Alternative
development strategies
Unified modeling
language (Figure 22.26)
Category |
Elements |
Details |
Objects/Things |
Structural |
Classes Interfaces Collaborations Use cases Active classes Components Nodes |
Behavioral |
Interactions States |
|
Grouping |
Packages |
|
Annotational |
Notes |
|
Relationship |
Structural |
Dependencies Aggregations Associations Generalizations |
Behavioral |
Communicates Includes Extends Generalizes |
|
Diagrams |
Structural |
Class Object Component Deployment |
Behavioral |
Use Case Sequence Collaboration State Chart Activity |
Use case modeling
Partitions system functionality into behaviors (use cases) from the perspective of the users of the system (actors)
1. Define the use case model
2. Define the object model
3. Define the system model
a. Derive the sequence diagrams from use case scenarios and class diagrams
b. Develop state chart, collaboration, and activity diagrams for complex processes that cannot be fully derived by the sequence diagrams
4. Define the system design
a. Derive class specification for each class that include the class properties, methods, and descriptions
b. Develop method specifications for each method
c. Develop deployment diagrams to indicate how your system components will be deployed in the production environment
Comparison of
analysis methodologies
Components |
Structured |
O-O |
Entities |
ER |
Class and object diagram |
Relationship |
ER |
Class and object diagram |
Attributes |
Data dictionary |
Class and object diagram |
Decomposition |
DFD |
N/A |
Processing sequence |
DFD |
N/A |
States and transitions |
N/A |
State-transition diagrams |
Entity communications |
N/A |
Sequence diagram |
Comparison of design
methodologies
Components |
Structured |
O-O |
Hierarchy of modules |
Structured chart |
N/A |
Procedural logic |
Pseudocode |
N/A |
Inheritance |
N/A |
Class diagram |
Message connections |
N/A |
Sequence diagram |
Source: Fichman, R.G., and Kemerer, C.F., "Object-Oriented and Conventional Analysis and Design Methodologies: Comparison and Critique," IEEE Computer, vol.25, no.10, 1992, pp.22-39
Rapid
application development (Figure 8.7)
To rapidly analyze a business problem, to design a visible system solution through intense cooperation between end users and system developers, and to quickly get the finished application in the hands of end users
Advantages and
disadvantages of RAD
Advantages |
Disadvantages |
|
|
RAD vs SDLC (Figure 8.9)
RAD |
SDLC |
Respond rapidly to dynamic information requirements |
Create systems are complete, accurate, and integrated well with standard business procedures and culture |
System design is based on visual model representation of a prototype |
System design is based on a conceptual design represented on paper |
Users are well involved throughout |
Users are separated from analysts after analysis phase |
RAD guidelines
1. Well-informed users and developers, e.g., frequent changes in user requirements are expected
2. Supportive organizational climate, e.g., tools are available
3. Need for experimentation
4. Explicit management and control procedure, e.g., set cost, effort, and time limits
Source: Alavi, M., "An Assessment of the Prototyping Approach to Information Systems Development," Communications of the ACM, vol.27, no.6, June, 1984, pp.556-563
Phase |
Description |
Deliverables |
Planning |
Define product vision, specification and schedule |
§ Vision statement § Specification document § Schedule and team formation |
Development |
Divide project into multiple ( |
§ Fist 1/3 of most critical features and shared components § Next 1/3 of features § Final 1/3 of features |
Stabilization |
Comprehensive internal and external testing, final debugging, code stabilization, and ship |
§ Internal testing § External/beta testing § Release preparation |
Synch-and-stabilize vs SDLC
Synch-and-stabilize |
SDLC |
Product development and testing done in parallel |
Separate phases done in sequence |
Evolving vision statement and specification |
Frozen specification |
Features prioritized and built in 3 or 4 milestone subprojects |
All pieces of a product are built simultaneously |
Frequent synchronization (daily) and intermediate stabilization (milestones) |
One integration and system test phase at the end of project |
"Fixed" release and ship dates and multiple release cycle |
Feature perfection in each cycle |
Continuous customer feedback |
Feedback after development |
Source: Cusumano. M.A., and Selby, R.W., "How Microsoft Builds Software," Communications of the ACM, vol.40, no.6, June, 1997, pp.53-61