Systems Design Approaches The Waterfall vs. Iterative Methodologies.

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Intro to Rational Unified Process Software Process Improvement Marion Lepmets
CS487 Software Engineering Omar Aldawud
CS3773 Software Engineering Lecture 01 Introduction.
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Object-Oriented Analysis and Design
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
PRJ270: Essentials of Rational Unified Process
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 8: Post-Project Analysis.
SE 470 Software Development Processes James Nowotarski 21 April 2003.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
SE 555 Software Requirements & Specification Requirements Management.
SE470 - Rational Unified Process Overview
SE 555 Software Requirements & Specification Requirements Validation.
Continuing Best Practices ► Slide information taken in large part from former Rational Corporation slides considerably modified and supplemented for classroom.
SwE 313 Introduction to Rational Unified Process (RUP)
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Iterative development and The Unified process
Object-Oriented Analysis and Design Using the UML Module 1: Best Practices of Software Engineering.
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
211 Continuing Best Practices ► Slide information taken in large part from former Rational Corporation slides. Considerably modified and supplemented for.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Best Practices of Software Engineering.
Principles of Object Technology Module 1: Principles of Modeling.
The Systems Development Environment. Learning Objectives Define information systems analysis and design. Describe the different types of information systems.
Rational Unified Process
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Chapter 2 The process Process, Methods, and Tools
The Rational Unified Process
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
RUP Implementation and Testing
Rational Unified Process Fundamentals Module 4: Disciplines II.
Software Development Best Practices
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
Identify steps for understanding and solving the
MCS 270 Spring 2014 Object-Oriented Software Development.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Testing Workflow In the Unified Process and Agile/Scrum processes.
1 SEG4910 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Review of Analysis and Iterative Development Timothy C. Lethbridge.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
® IBM Software Group © 2006 IBM Corporation Writing Good Use Cases Module 1: Introduction to Use-Case Modeling.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Process Or how to make strength productive Tools Requirements Management Visual Modeling Test coverage and metrics Change Management Requirements.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
The principles of an object oriented software development process Week 04 1.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
Smart Home Technologies
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
1 Continuing Best Practices ► Slide information taken in large part from former Rational Corporation slides and the RUP textbook - considerably modified.
Unified Software Practices v5.5 Copyright © Rational Software, all rights reserved 1 Module 1: The Six Best Practices of Modern Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Rational Unified Process Fundamentals Module 1: Best Practices of Software Engineering Rational Unified Process Fundamentals Module 1: Best Practices of.
Unified Software Practices v D Copyright  1998 Rational Software, all rights reserved 1 Practice 5: Verify Software Quality Control Changes Develop.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Rational.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
1.Introduction to Rational Unified Process (RUP)
Introduction to Software Engineering
Rational Unified Process
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Presentation transcript:

Systems Design Approaches The Waterfall vs. Iterative Methodologies

Traditional Systems Development Lifecycle (“The Waterfall Model”) Planning

Planning Analysis

Planning Analysis LogicalDesign

Planning Analysis LogicalDesign PhysicalDesign

Planning Analysis LogicalDesign PhysicalDesign Implementation

Database Development Process Planning Analysis LogicalDesign PhysicalDesign Implementation enterprise data model

Database Development Process Planning Analysis LogicalDesign PhysicalDesign Implementation enterprise data model conceptual data model

Database Development Process Planning Analysis LogicalDesign PhysicalDesign Implementation enterprise data model conceptual data model logical data model

Database Development Process Planning Analysis LogicalDesign PhysicalDesign Implementation enterprise data model conceptual data model logical data model technologymodel

Database Development Process Planning Analysis LogicalDesign PhysicalDesign Implementation enterprise data model conceptual data model logical data model technologymodel databases and repositories

Rational Unified Process 

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

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

Software Development: Best Practices 1.Develop software iteratively 2.Manage requirements 3.Use component-based architectures 4.Visually model software 5.Continuously verify software quality 6.Control changes to software

1. Develop Software Iteratively Planning Analysis Logical Design Physical Design Implementation The “classic” waterfall lifecycle

1. Develop Software Iteratively Planning Analysis Logical Design Physical Design Implementation Risk Time Risk pushed forward in time

Iterative Approach Planning Requirements Analysis and Design Implementation Deployment Test Evaluation Initial Planning -continuous discovery and implementation --each iteration results in an executable

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)

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

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.

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

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

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)

Viewing a system from different perspectives Model Scenario Diagrams State Diagrams Deployment Diagrams Component Diagrams Use Case Diagrams Class Diagrams

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

5. Continuously verify software quality Cost Time Software problems can be thousands of times more expensive to find and repair after deployment than if discovered earlier in the project - Software problems can be thousands of times more expensive to find and repair after deployment than if discovered earlier in the project

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

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

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

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

So…..

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:

The Rational Unified Process  - software development process that attempts to ensure quality systems developed in a repeatable and predictable way

RUP

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

Software Development: Best Practices 1.Develop software iteratively 2.Manage requirements 3.Use component-based architectures 4.Visually model software 5.Continuously verify software quality 6.Control changes to software

RUP

Agile Development Click slide title for the video