Title: ObjectOriented Software Development Software Development Life Cycle Software Development Process Mod
1Object-Oriented Software DevelopmentSoftware
Development Life CycleSoftware Development
Process ModelWeek 5Jarungjit Parnjai
Object Oriented Technology
2Software Development
3What Is Software?
- Software is
- ????????? (Instructions) ????????????????????????
????????????????????????????? ????????????????????
???????????? (computer programs) - ??????????????? (Data structures)
??????????????????????????? ??????????????????????
??? - ?????? (Documents) ???????????????????????
???????????????????????
4How Does Software Work?
- ????????? (Instructions) ??? ?????? (data)
?????????????????????? ???????????????????????????
????????????????? - ?????????????????????????????? ??????????
- ?????????? ??? Software ??????????????????
5Systems and Software Systems
- A System is
- An organized or connected group of Objects a
whole composed of parts in orderly arrangement
according to some scheme or plan
A software-intensive System (Software System) is
system ????????????????? software ????????
?????????? ???????????????????????????????????????
????????????????
Examples of Software Systems ????????????????,
???????????, ???????? ?????????????
6Why Do We Build Software Systems?
- ?????????????????????????????? customer
- software ??????????????????????????????
- software ????????????????????????????????????????
??????
7How Do We Build Software Systems?
- ???????????? decomposition ??? synthesis
- ????????? ???????????????????????????????????????
???????????????????????????? (??????????
Specification/Analysis) - ??????/??????????????????????????????? (problem
domain) ????????????????????????? - ??????????????? (Synthesize) ?????????????????
(solution) ?????????????? actions ???? data
(?????????? Design /Implementation)
8Software Development Methodology
Notation
Process
Tools
9Software Development Phases
- Requirement Specification define problem domain
- Analysis what problem to be solved?
- Design how to solve the problem?
- Implementation how to implement the solution?
- Testing how to ensure that the solution can
solve the problem? - Maintenance how to adjust the solution to
accomodate change? - Retirement when does the system to be retired?
10Software Development Life Cycle Model
- SDLC Model
- ???????????????????????????? ????????????????
Software (Software Development Process) - ????????????????????? ???????????????
- ?????? Model ????????????????????????????????????
?? ???? Waterfall Model, Incremental Model,
Spiral Model ??????? - ????? Software ??? Model ???????????????????????
- ????? Model ????????? ??????? ????????
11Build-and-Fix Model
12Waterfall Model
13Rapid Prototyping Model
14Spiral Model
15Incremental Model
16And more...
17The Cost of Change
18What Techniques Can Be Used?
- ?????????????????? software engineer
????????????????????????????(Synthesis)
????????????????? - ???????? Process (Action)
- ???????? Data
- ???????? Object
19Traditional Software Development
- ??? Structured Analysis Design Techniques
- ???????????? Data (Data-Oriented)
- ???????????? Data Flow Model, ER
(Entity-Relational) Model - ???????????? Action (Action-Oriented)
???????????????/???????? Data - ???????????? Finite State Machine (FSM)
- ??? Structural/Procedural Implementation
Techniques - ??? Structured/Procedural Programming Languages
- ???????????? BASIC, Pascal, C
20Problems with Traditional Techniques
- Do Traditional techniques work?
- Yes, they do (at a cost !!!)
- Problems
- ?????????? Commercial Software ???????? ????????
Traditional Techniques - Software ?????????? ?????????????????
??????????????????????????????????????????????????
Hardware - ????????????????????? Software Design ???
Implementation ?????????? ???????????????????? - ????????????? Software ?????????????
???????????????????????????????
21Software Crisis
- Software ???????????????? (Change) ????????
- ???? Software ???? (Legacy Software)
????????????????????????????????????????????????
(Interoperability) - ?????????????????????????? Software ????
(Extendability) - ??????????? Software ?????????????????????????
(Reusuability) - ???????? Software ??????????? ????????????????????
??????????
22Software Crisis
- ???????? Hardware ???????
- ???? (Size) ?????????? ????????
??????????????????? (Complexibility) ??????? - ??????????? Software ??? ????? bug
- ?????????? (Cost) ?????????? ????????????????
(Maintainability) - ????????????????? (Time to Market) ??? ????
??????????????????????????????????????????????????
???? - ??????????????? Users ??? Programmers
23What are Object-Oriented Techniques?
- ????????????? Software Decomposition
- ????????????? (attribute/data) ???
???????/???????? (Action/behavior)
??????????????? (Object) - ??????????????????? Synthesis
- ?????????????????????????? ???????????????
?????????????? Data ??? Actions
?????????????????????????? Object - ?????????? Data ??? Actions ???????????????????
???????? ??????????? Module - ????????????????????? (Problem Domain)
??????????????????????????? (Modeling Objects)
??????????????????? (Real World)
24What are Object-Oriented Techniques?
- ??????? software ??????????? clients ??? servers
- servers ???? Implementation ??? Actions ?????????
Interface - clients ???????????????? Interface ??? server
?????????????????????
25Object-Oriented Software
- ?????????????????? (Object-Oriented Software)
- ??? ????? ???????(Collection) ???????????????????
????????????????????????????????????
????????????????????????????? ?????????????
(Message) ???????????????
26What is Software Modeling?
- ???????????????? (Modeling)
- ???????????????????? ????????? (Analysis and
Design) ???????????????????????????????????
???????????????????????????????? - ????????????????????????????? ????????????????????
????????????? - Visual Modeling
- ????????????????????????????????????
27Software Modeling
28Models
- Requirement Analysis Models (Requirement
Specification) - ??????????????????????????????????????????????
?? (Requirement Analysis) - Analysis Model
- ?????????????????????????????????????????????
? (System Analysis) - Design Model
- ???????????????????????????????????? (System
Design)
29From Analysis to Design
- Analysis Phase
- ???????? ???????????????????????????
?????????????????? ?????? ??? ?????????????
?????????????????????? - ???? what happens in the current system? ???
what is required in the new system? - ????? Analysis Model ???????????????????????????
?????? ????????????????????????????????????????? - Use Case Diagram / Requirement
- Analysis Model Class Diagram
30From Analysis to Design
- Design Phase
- ???????? Solution ?????????? Requirement
?????????? Analysis Phase - how the system will be constructed without
actually building it? - Phase ??????? Software Development Life Cycle
- water fall clear cut ??????? analysis ???
design - iterative ????? clear cut ??????? analysis ???
design
31Traditional SDLC
- ??????????????????????????? ?? Advantage ???
Clear Cut ??????? Analysis ??? Design ?????? - project management
- Staff Skill and experience
- Client Decision
- choice of development environment
- ?????????????????? Analysis ??? Design
??????????? ????????? Diagram ?????? - Analysis ??? Data Flow Diagram
- Design ??? Structure Diagram/ Structure Charts
32Object-Oriented Approached
- ?????? Model ??????????????????????????????????
(Software Development Life Cycle) - ?????????????????? Analysis ??? Design
??????????? ????????????????????????????? Model
Rumbaugh 1997 - ????? Design Model
- Interaction Diagrams
- State Diagrams
- Design Model Class Diagrams
33System and Detailed Design
- ???????????????????????? 2 ?????
- System Design ???????????????????????????????????
?????? ??????????? standards - ???????? standards ???? ????????? human-computer
interface - Detailed Design ??????????????????????????????????
????????? ????????????????????????????????????
??? ?????????? standard ???????????? - ???? ????????? Object
34System Design
- ??????????????????????????????????? ????
- ?????????????????????????? ?????? ????
Client-Server - ??????????????? how processes and objects will
be distributed to different machine? - System Architect/System Design ?????????????????
??????????? ????????????????????????? - ????????? Standards ?????????? ????
- ???????????????? Standards ????????? Use
Interface ???????????????? Interface ????????
system
35Detailed Design
- Detailed design ??? Traditional System/Structured
System ??????????????????????????? activities
????? ?????? - ????????? Inputs
- ????????? Outputs
- ????????? Processes
- ????????? files
- Detailed design ??? OO System ????????????????????
???? activities ????? ?????????????
???????????????????????? - reusability
- ???????? responsibilities ?????? ????
36Reuse
- ??????????????????????? (Design Reuse)
?????????????? 2 levels ?????? - ?????? design patterns
- ???????????????? Analysis Phase
???????????????????????????????
?????????????????? ???? ????? ????????????????????
?? ????????????????? ????????????? ???? ???????
vendor ?????? (Components)
37Assignment of Responsibilities to Classes
- ???????? Responsibilities ??????????
- ??????? main task ????????????
- ?????????????????
- ???????? responsibilities ?????? Operation
????????????????????
38Criteria for Good Design
- Low Coupling
- High Cohesion
39Summary
- Software, Systems and Software Systems
- Software Crisis
- Software Development Process Model
- Traditional Software Development
- Object-Oriented Software Development