1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.

Slides:



Advertisements
Similar presentations
PROCESS FRAMEWORK Lecture - 3. Topics covered PROCESS FRAMEWORK PROCESS MODELS DIFFERENCE.
Advertisements

CS487 Software Engineering Omar Aldawud
SE382 Software Engineering Lecture 04 Process Models (1)
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering Process
Slide Set to accompany Web Engineering: A Practitioner’s Approach
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 2 Process Models
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS487 Software Engineering Omar Aldawud
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
Chapter 2 Software Process: A Generic View
Chapter 2 The process Process, Methods, and Tools
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 2 Process: A Generic View
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software process improvement Framework for SPI SPI support groups, maturity and immaturity models Assessment and gap analysis Education and training Selection.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 4 프로세스 모델 Process Models
Process: A Generic View
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Chapter 3 소프트웨어 프로세스 구조 Software Process Structure 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
1 2.1 Software Engineering Software engineering is a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software;
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Engineering CE 501 Prepared by : Ashwin Raiyani.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter 2.
1 Chapter 1 Software and Software Engineering Software Engineering: A Practitioner’s Approach, 7th edition by Roger S. Pressman.
Software Life Cycle “What happens in the ‘life’ of software”
Process Models.
Chapter 2 Process: A Generic View
Chapter 2 The Process.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 2 Process Models
For University Use Only
Chapter 2 Process Models
Chapter 2 The Process.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
For University Use Only
Chapter 2 Process Models
Chapter 2 Process Models.
Chapter 4 Process Models
Chapter 2 Process Models
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Chapter 2 Process Models
Presentation transcript:

1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University Use Only May be reproduced ONLY for student use at the university level when used in conjunction with Software Engineering: A Practitioner's Approach. Any other reproduction or use is expressly prohibited.

2 A Layered Technology Software Engineering a “quality” focus process model methods tools

System Development Life Cycle It is about developing a software-driven It is about developing a software-driven solution to a business problem solution to a business problem It concerns a process which takes from two months to two years It concerns a process which takes from two months to two years This is called a System Development Life Cycle but it should really be called a (Business) Solution Development Life Cycle This is called a System Development Life Cycle but it should really be called a (Business) Solution Development Life Cycle 3

Business Solution Characteristics A software-driven solution consists of two parts: Model Model Prototypes Prototypes Diagrams and supporting Documents Diagrams and supporting Documents System System Hardware Hardware Software Software 4

Sample Deliverables Analysis: Analysis: Use case Use case Shows the dynamics between the users (actors) of the system and the system itself Shows the dynamics between the users (actors) of the system and the system itself This is a narrative representation This is a narrative representation Conceptual Diagram Conceptual Diagram Shows the structure of the objects and their relationships Shows the structure of the objects and their relationships This is a graphical representation This is a graphical representation System Sequence Diagram System Sequence Diagram Shows the dynamics between the users (actors) of the system and the system itself Shows the dynamics between the users (actors) of the system and the system itself This is a graphical representation This is a graphical representation Contracts Contracts Shows the state of each object before each action Shows the state of each object before each action This is a narrative representation This is a narrative representation 5

Sample High-level Architecture Design Logical Blueprint 6

Sample Deliverables - Design Design: Design: Interaction Diagram Interaction Diagram Shows the interaction between objects Shows the interaction between objects This is a graphic representation This is a graphic representation It is a dynamic blueprint It is a dynamic blueprint Class Diagram Class Diagram Shows the structure between objects Shows the structure between objects Shows the structure inside objects Shows the structure inside objects This is a graphic representation This is a graphic representation It is a static blueprint It is a static blueprint 7

A Generic Process Model 8

Identifying a Task Set A task set defines the actual work to be done to accomplish the objectives of a software engineering action A task set defines the actual work to be done to accomplish the objectives of a software engineering action A list of the tasks to be accomplished A list of the tasks to be accomplished A list of the work products to be produced A list of the work products to be produced A list of the quality assurance filters to be applied A list of the quality assurance filters to be applied 9

10 A Process Framework Process framework Framework activities work tasks work products milestones & deliverables QA checkpoints Umbrella Activities

11 Framework Activities Communication Communication Planning Planning Modeling Modeling Analysis of requirements Analysis of requirements Design Design Construction Construction Code generation Code generation Testing Testing Deployment Deployment

12 Umbrella Activities Software project management Software project management Formal technical reviews Formal technical reviews Software quality assurance Software quality assurance Software configuration management Software configuration management Work product preparation and production Work product preparation and production Reusability management Reusability management Measurement Measurement Risk management Risk management

13 Process Patterns Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors Process patterns define a set of activities, actions, work tasks, work products and/or related behaviors A template is used to define a pattern A template is used to define a pattern Typical examples: Typical examples: Customer communication (a process activity) Customer communication (a process activity) Analysis (an action) Analysis (an action) Requirements gathering (a process task) Requirements gathering (a process task) Reviewing a work product (a process task) Reviewing a work product (a process task) Design model (a work product) Design model (a work product)

Process Pattern Types Stage patterns - defines a problem associated with a framework activity for the process Stage patterns - defines a problem associated with a framework activity for the process Task patterns - defines a problem associated with a software engineering action or work task and relevant to successful software engineering practice Task patterns - defines a problem associated with a software engineering action or work task and relevant to successful software engineering practice Phase patterns - define the sequence of framework activities that occur with the process, even when the overall flow of activities is iterative in nature Phase patterns - define the sequence of framework activities that occur with the process, even when the overall flow of activities is iterative in nature 14

Waterfall Model 15

Incremental Model 16

Evolutionary Model: Spiral 17

Other Models Component based development - the process to apply when reuse is a development objective Component based development - the process to apply when reuse is a development objective Formal methods - emphasizes the mathematical specification of requirements Formal methods - emphasizes the mathematical specification of requirements 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 Unified Process - a “use-case driven, architecture- centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) Unified Process - a “use-case driven, architecture- centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML) 18

UP Phases 19

Personal Software Process(PSP) Planning. This activity isolates requirements and develops both size and resource estimates. In addition, a defect estimate (the number of defects projected for the work) is made. All metrics are recorded on worksheets or templates. Finally, development tasks are identified and a project schedule is created. Planning. This activity isolates requirements and develops both size and resource estimates. In addition, a defect estimate (the number of defects projected for the work) is made. All metrics are recorded on worksheets or templates. Finally, development tasks are identified and a project schedule is created. High-level design. External specifications for each component to be constructed are developed and a component design is created. Prototypes are built when uncertainty exists. All issues are recorded and tracked. High-level design. External specifications for each component to be constructed are developed and a component design is created. Prototypes are built when uncertainty exists. All issues are recorded and tracked. High-level design review. Formal verification methods are applied to uncover errors in the design. Metrics are maintained for all important tasks and work results. High-level design review. Formal verification methods are applied to uncover errors in the design. Metrics are maintained for all important tasks and work results. Development. The component level design is refined and reviewed. Code is generated, reviewed, compiled, and tested. Metrics are maintained for all important tasks and work results. Development. The component level design is refined and reviewed. Code is generated, reviewed, compiled, and tested. Metrics are maintained for all important tasks and work results. Postmortem. Using the measures and metrics collected (this is a substantial amount of data that should be analyzed statistically), the effectiveness of the process is determined. Measures and metrics should provide guidance for modifying the process to improve its effectiveness. Postmortem. Using the measures and metrics collected (this is a substantial amount of data that should be analyzed statistically), the effectiveness of the process is determined. Measures and metrics should provide guidance for modifying the process to improve its effectiveness. 20

21 The Process Model: Adaptability the framework activities will always be applied on every project... BUT the framework activities will always be applied on every project... BUT the tasks (and degree of rigor) for each activity will vary based on: the tasks (and degree of rigor) for each activity will vary based on: the type of project the type of project characteristics of the project characteristics of the project common sense judgment; concurrence of the project team common sense judgment; concurrence of the project team

22 The CMMI The CMMI defines each process area in terms of “specific goals” and the “specific practices” required to achieve these goals. The CMMI defines each process area in terms of “specific goals” and the “specific practices” required to achieve these goals. Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective. Specific goals establish the characteristics that must exist if the activities implied by a process area are to be effective. Specific practices refine a goal into a set of process- related activities. Specific practices refine a goal into a set of process- related activities.

Homework #2 Research and put together a comparative write-up or traditional Process Models (300 words max): Research and put together a comparative write-up or traditional Process Models (300 words max): Waterfall Waterfall V Phased Phased Evolutionary Evolutionary Spiral Spiral CBSE CBSE RUP RUP PSP/TSP PSP/TSP 23

24 Process Assessment The process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering The process should be assessed to ensure that it meets a set of basic process criteria that have been shown to be essential for a successful software engineering. Many different assessment options are available: Many different assessment options are available: SCAMPI SCAMPI CBA IPI CBA IPI SPICE SPICE ISO 9001:2000 ISO 9001:2000

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Assessment and Improvement

These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by R.S. Pressman & Associates, Inc., copyright © 1996, 2001, Personal Software Process (PSP) Recommends five framework activities: Recommends five framework activities: Planning Planning High-level design High-level design High-level design review High-level design review Development Development Postmortem Postmortem stresses the need for each software engineer to identify errors early and as important, to understand the types of errors stresses the need for each software engineer to identify errors early and as important, to understand the types of errors

27 Team Software Process (TSP) Each project is “launched” using a “script” that defines the tasks to be accomplished Each project is “launched” using a “script” that defines the tasks to be accomplished Teams are self-directed Teams are self-directed Measurement is encouraged Measurement is encouraged Measures are analyzed with the intent of improving the team process Measures are analyzed with the intent of improving the team process

28 The Primary Goal of Any Software Process: High Quality Remember: High quality = project timeliness Why? Less rework!