systems design approaches the waterfall vs. iterative methodologies
TRANSCRIPT
![Page 1: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/1.jpg)
Systems Design Approaches
The Waterfall vs. Iterative Methodologies
![Page 2: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/2.jpg)
Traditional Systems Development Lifecycle (“The Waterfall Model”)
PlanningPlanning
![Page 3: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/3.jpg)
Traditional Systems Development Lifecycle (“The Waterfall Model”)
PlanningPlanning
AnalysisAnalysis
![Page 4: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/4.jpg)
Traditional Systems Development Lifecycle (“The Waterfall Model”)
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
![Page 5: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/5.jpg)
Traditional Systems Development Lifecycle (“The Waterfall Model”)
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
![Page 6: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/6.jpg)
Traditional Systems Development Lifecycle (“The Waterfall Model”)
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
![Page 7: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/7.jpg)
Database Development Process
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
enterprise data enterprise data modelmodel
![Page 8: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/8.jpg)
Database Development Process
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
enterprise data enterprise data modelmodel
conceptual data conceptual data modelmodel
![Page 9: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/9.jpg)
Database Development Process
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
enterprise data enterprise data modelmodel
conceptual data conceptual data modelmodel
logical data logical data modelmodel
![Page 10: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/10.jpg)
Database Development Process
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
enterprise data enterprise data modelmodel
conceptual data conceptual data modelmodel
logical data logical data modelmodel
technology technology modelmodel
![Page 11: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/11.jpg)
Database Development Process
PlanningPlanning
AnalysisAnalysis
Logical Logical DesignDesign
PhysicalPhysicalDesignDesign
ImplementationImplementation
enterprise data enterprise data modelmodel
conceptual data conceptual data modelmodel
logical data logical data modelmodel
technologytechnologymodelmodel
databases and databases and repositoriesrepositories
![Page 12: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/12.jpg)
Rational Unified Process
![Page 13: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/13.jpg)
Why do so many projects fail?
• Characteristics of failed projects– Inaccurate understanding of end-user needs– Inability to deal with changing environments– Late discovery of serious project flaws– Poor software quality– Modules that do not fit together– Unacceptable software performance
• These are just symptoms of deeper underlying problems
![Page 14: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/14.jpg)
Root Causes for Project Failure
• Ad hoc requirements management• Ambiguous and imprecise communication• Overwhelming complexity• Insufficient testing• Subjective assessment of project status• Uncontrolled change propagation• Insufficient automation
![Page 15: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/15.jpg)
Software Development: Best Practices
1. Develop software iteratively2. Manage requirements3. Use component-based architectures4. Visually model software5. Continuously verify software quality6. Control changes to software
![Page 16: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/16.jpg)
1. Develop Software Iteratively
Planning
Analysis
Logical Design
PhysicalDesign
Implementation
The “classic” waterfall The “classic” waterfall lifecyclelifecycle
![Page 17: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/17.jpg)
1. Develop Software Iteratively
Planning
Analysis
Logical Design
PhysicalDesign
Implementation
Risk
Time
Risk pushed forward in time
![Page 18: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/18.jpg)
Iterative ApproachIterative Approach
Planning RequirementsRequirements
Analysis and DesignAnalysis and Design
ImplementationImplementation
DeploymentDeployment
TestTest
EvaluationEvaluation
InitialPlanning
-continuous discovery and implementation--each iteration results in an executable
![Page 19: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/19.jpg)
Advantages of the iterative process• Misunderstandings made evident early• Encourages user feedback• Continuous testing allows objective status
assessment• Inconsistencies between analysis, design, and
implementation detected early• Workload spread evenly (especially testing)
![Page 20: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/20.jpg)
2. Manage Requirements
• Requirements are conditions or capabilities that a system must meet
• Requirements of a system are dynamic• Identifying a system’s requirements is a continuous
process• Impossible to exhaustively state a systems
requirements before start of development• Managing requirements involves
– Eliciting, organizing, documenting requirements– Evaluating changes to requirements– Tracking and documenting trade-offs and decisions
![Page 21: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/21.jpg)
3. Use Component-based architecture• Many people are involved in the development of a
system– End users, analysts, developers, testers, technical writers,
project managers…• Each stakeholder views the system in a different way
during the course of a project• System architecture allows management of views• Architecture covers structure and behavior of
software elements, usage, functionality, performance, reuse, aesthetics, etc.
![Page 22: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/22.jpg)
Component-based development (CBD)
• Allows reuse and customization of components from thousands of available sources
• Can use new, existing, or third-party components and strap them together to achieve desired functionality
• In an iterative approach, each cycle produces an executable architecture– Can be measured, tested, evaluated against requirements– Allows developers to attack risks continuously
![Page 23: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/23.jpg)
Advantages of CBD architectures
• Components facilitate strong and flexible architectures
• Modularity enables separation of elements that are subject to change
• Components provide a natural basis for configuration management
• Visual modeling tools can be used for automation
![Page 24: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/24.jpg)
4. Visually Model Software
• A model is a simplification of reality that describes system from specific perspective
• Models help teams visualize, specify, construct, and document system
• Improves ability to manage system complexity• Communication is improved through the use of a
common modeling language (such as UML)
![Page 25: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/25.jpg)
Viewing a system from different perspectives
ModelModel
Scenario Diagrams
State Diagrams
Deployment Diagrams
Component DiagramsUse Case
Diagrams
Class Diagrams
![Page 26: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/26.jpg)
Advantages of Visual Modeling
• Use-cases and scenarios clearly specify system behavior
• Inflexible architectures quickly exposed• Detail can be hidden when necessary• Unambiguous designs show inconsistencies
easily• Visual Modeling tools support UML
![Page 27: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/27.jpg)
5. Continuously verify software quality
Cost
Time
- Software problems can be thousands of Software problems can be thousands of times times more expensivemore expensive to find and repair to find and repair afterafter deployment than if discovered earlier in the deployment than if discovered earlier in the projectproject
![Page 28: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/28.jpg)
Testing and Quality
• Testing involves– Creating tests for systems key scenarios– Assessing functionality by asking which scenarios
failed– Testing at every iteration, continuously improving
quality
![Page 29: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/29.jpg)
6. Control Changes to Software
• Complex systems typically involve– Multiple developers– Multiple teams– Multiple sites– Multiple releases, platforms, and products
• Can quickly degenerate into chaos
![Page 30: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/30.jpg)
To control changes…
• Must establish repeatable workflow for managing changes
• A tested baseline is released at the end of every iteration
• By developing iteratively, the process of change control is continuous and traceable
![Page 31: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/31.jpg)
Advantages of Formal Change Control
• Change requests facilitate unambiguous communication
• Change rate statistics are good metric for project status
• Change propagation is controlled• All outputs are in a single location – provides
for consistency
![Page 32: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/32.jpg)
So…..
![Page 33: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/33.jpg)
• Guide the order of a team’s activities• Specify which artifacts (deliverables) must
be produced and when they must be produced
• Direct activities of both individuals and teams
• Monitor and measure project activities
Any software development process must:
![Page 34: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/34.jpg)
The Rational Unified Process
- software development process that attempts to ensure quality systems
developed in a repeatable and predictable way
![Page 35: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/35.jpg)
RUPRUP
![Page 36: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/36.jpg)
What is RUP?
• The Rational Unified Model is a software engineering process
• Both process and product• Provides a common project knowledge base that may
be accessed by team members– Ensures consistency of communication– Commonality of project vision– Enhances productivity
• Focuses on the development and maintenance of models
• Reflect the best practices of software development
![Page 37: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/37.jpg)
Software Development: Best Practices
1. Develop software iteratively2. Manage requirements3. Use component-based architectures4. Visually model software5. Continuously verify software quality6. Control changes to software
![Page 38: Systems Design Approaches The Waterfall vs. Iterative Methodologies](https://reader033.vdocuments.mx/reader033/viewer/2022061602/56649eba5503460f94bc27b2/html5/thumbnails/38.jpg)
RUPRUP