Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS487 Software Engineering Omar Aldawud CS487 Software Engineering Omar Aldawud

Similar presentations


Presentation on theme: "1 CS487 Software Engineering Omar Aldawud CS487 Software Engineering Omar Aldawud"— Presentation transcript:

1 1 CS487 Software Engineering Omar Aldawud CS487 Software Engineering Omar Aldawud

2 2 What is SW Process? When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result. When building a Product it’s important to go through a series of predictable steps, road map, that help you create a timely, and high-quality result. The ROAD MAP that you follow is the SW process. The ROAD MAP that you follow is the SW process. Process depends on the SW you are building Process depends on the SW you are building Web design vs. telephone switch!! Web design vs. telephone switch!!

3 3 Software Process Process defines who is doing: – What?, – When and how? – To reach a goal Process defines tasks and activities within a schedule Results – Programs – Documents – And data Software process is a roadmap for high quality software

4 4 Generic Framework activities Communication Get to know your Customer and their processes Identify stakeholders Requirement elicitation

5 5 Generic Framework activities Planning Plan the work Identify resources Identify tasks Set the schedule

6 6 Generic Framework activities Modeling Analysis of requirements Design Blue print for customer and developers communications

7 7 Generic Framework activities Construction Code generation Testing

8 8 Generic View of SE SW Engineering is the: SW Engineering is the: Analysis, Analysis, Design, Design, Construction, Construction, Verification and. Verification and. Management of Software. Management of Software.

9 9 SW Process Models Guides the SW team thought a set of framework activities (process flow) Linear Incremental evolutionary It is a set of activities required to Define, design, implement, test and maintain a software product. A SW process model is chosen based on the nature of the project. Each process model prescribes a workflow for SE activities

10 10 Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models

11 11 SW Process Models Prescriptive process models advocate an orderly approach to software engineering. Prescriptive process models advocate an orderly approach to software engineering. It is a set of activities required to: It is a set of activities required to: Define, design, implement, test and maintain a software product. Define, design, implement, test and maintain a software product. A SW process model is chosen based on the nature of the project. A SW process model is chosen based on the nature of the project.

12 12 SW Process Model Phases All models have phases and each phase has 3 components: All models have phases and each phase has 3 components: Set of activities, this is what you do. Set of activities, this is what you do. Set of deliverables, this is what you produce. Set of deliverables, this is what you produce. Quality control measures, this is what you use to evaluate the deliverables. Quality control measures, this is what you use to evaluate the deliverables. The activities defines the process Framework, the generic set encompasses: The activities defines the process Framework, the generic set encompasses: Communication, planning, modeling, construction, and deployment Communication, planning, modeling, construction, and deployment

13 13 The Waterfall Model This Model suggests a systematic, sequential approach to SW development that begins at the system level and progresses through analysis, design, code and testing.

14 14 Waterfall Model Advantages Easy Easy Structured Structured Provide a template into which methods for analysis, design, code, testing and maintenance can be placed. Provide a template into which methods for analysis, design, code, testing and maintenance can be placed.Disadvantages Sequential, does not reflect reality Sequential, does not reflect reality Does not allow for feedback Does not allow for feedback Does not produce a prototype Does not produce a prototype User must wait until the end to see the final program. User must wait until the end to see the final program.

15 15 When to use the Waterfall Model Simple Projects Simple Projects Limited amount of time Limited amount of time Requirements are well understood Requirements are well understood We can use it for our Class Project. We can use it for our Class Project.

16 16 Incremental Models Goal to provide quick basic functionality to the users Goal to provide quick basic functionality to the users Process is not linear Process is not linear Requirements are well defined Requirements are well defined Software is completed in an increments fashion Software is completed in an increments fashion Will Study 2 models: Will Study 2 models:  Incremental Model  RAD

17 17 1.Incremental Model It combines characteristics of the waterfall model and the iterative nature of the prototyping model. It combines characteristics of the waterfall model and the iterative nature of the prototyping model. 1 st build is usually the CORE product 1 st build is usually the CORE product Each increment “deliverable” may add a new functionality. Each increment “deliverable” may add a new functionality. This is repeated until the product is complete This is repeated until the product is complete

18 18 The Incremental Model Communication Communication Planning Planning Modeling Modeling Construction Construction Deployment Deployment

19 19 When to Use the Incremental Model When staffing is not available by deadline. When staffing is not available by deadline. When the software can be broken into increments and each increment represent a solution When the software can be broken into increments and each increment represent a solution

20 20 2.The Rapid Application Development RAD Model Builds on the Incremental model with emphases on short development cycle. Builds on the Incremental model with emphases on short development cycle. In other words high speed waterfall model In other words high speed waterfall model Components are build using this model as a fully functional units in a relatively short time Components are build using this model as a fully functional units in a relatively short time It assumes that the system can be modularized It assumes that the system can be modularized RAD will fail if you don’t have strong and skillful teams RAD will fail if you don’t have strong and skillful teams High performance might be an issue High performance might be an issue

21 21 The RAD Model

22 22 Evolutionary Process Models Core requirements are well understood but additional requirements are evolving and changing fast Core requirements are well understood but additional requirements are evolving and changing fast Time-to-Market Time-to-Market Iterative – software gets more complex with each iteration Iterative – software gets more complex with each iteration  Prototype  Spiral  Concurrent

23 23 Evolutionary SW Process Models Advantages Advantages Do not require full knowledge of the requirements Do not require full knowledge of the requirements Iterative Iterative Divide project into builds Divide project into builds Allows feedback, show user something sooner Allows feedback, show user something sooner Develop more complex systems Develop more complex systems

24 24 1.Prototyping Model Start with what is known about requirements. Start with what is known about requirements. Do a quick design. Do a quick design. Build the prototype by focusing on what will be seen by the user. Build the prototype by focusing on what will be seen by the user. Use the prototype to show the user and help refining requirements. Use the prototype to show the user and help refining requirements.

25 25 Evolutionary Models: Prototyping communication Quick plan Modeling Quick design Construction of prototype Deployment delivery & feedback

26 26 When to Use Prototype Model When the customer define general objectives for the SW but does NOT identify details about INPUT, OUTPUT, or processing requirements. When the customer define general objectives for the SW but does NOT identify details about INPUT, OUTPUT, or processing requirements. The developer is unsure of the efficiency of an algorithm, human machine interaction, etc. The developer is unsure of the efficiency of an algorithm, human machine interaction, etc.

27 27 Prototype Model Advantages Prototype is served as the machinery for identifying requirements. Prototype is served as the machinery for identifying requirements. Is developed very quick. Is developed very quick.Disadvantages Customer might think that the prototype is the final product and forget lack of quality i.e PERFORMANCE, RELIABILITY. Customer might think that the prototype is the final product and forget lack of quality i.e PERFORMANCE, RELIABILITY.

28 28 2.Spiral Model Iterative (like Prototype) and controlled (like waterfall) model. Iterative (like Prototype) and controlled (like waterfall) model. Software is developed using evolutionary releases Software is developed using evolutionary releases Software complexity increase with each release Software complexity increase with each release

29 29 Spiral Model Consist of 6 task regions. Consist of 6 task regions. Customer communication - the goal is to establish good communication between customer and developer. Customer communication - the goal is to establish good communication between customer and developer. Planning - produce/adjust project plan. Planning - produce/adjust project plan. Risk analysis - assess management and technical risks. Risk analysis - assess management and technical risks. Engineering - build one or more representations of the application. Engineering - build one or more representations of the application. Construction and release - - to construct, test, install and support the application. Construction and release - - to construct, test, install and support the application. Customer evaluation – get customer feedback. Customer evaluation – get customer feedback.

30 30 Evolutionary Models: The Spiral

31 31 When to Use the Spiral Model Very large projects. Very large projects. When technical skills must be evaluated at each step. When technical skills must be evaluated at each step.

32 32 Component based development The process to apply when reuse is a development objective The process to apply when reuse is a development objective Evolutionary Evolutionary COTS are used to build software COTS are used to build software Steps: Steps:  Identify candidate components Design each using and model or OO classes Design each using and model or OO classes  Component integration  Architecture  Testing

33 33 CBD component-based development (CBD) model incorporates many of the iterative characteristics of the spiral model. component-based development (CBD) model incorporates many of the iterative characteristics of the spiral model. The main difference is that in CBD the emphasis is on composing solutions from prepackaged software components or classes The main difference is that in CBD the emphasis is on composing solutions from prepackaged software components or classes

34 34 Process Models AOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects AOSD—provides a process and methodological approach for defining, specifying, designing, and constructing aspects

35 35 Unified Process a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) Tools are used to describe customer views (use cases) Tools are used to describe customer views (use cases) Used mainly for OO based methodologies Used mainly for OO based methodologies Runs in phases Runs in phases

36 36 inception The Unified Process (UP) inception elaboration Phase 1 Communication + Planning Phase 2 Planning + Modeling Phase 3 Coding, unit test & integrate Components Phase 4 Deployment result

37 37 UP Phases

38 38 UP Work Products


Download ppt "1 CS487 Software Engineering Omar Aldawud CS487 Software Engineering Omar Aldawud"

Similar presentations


Ads by Google