SlideShare a Scribd company logo
1 of 32
Chapter 3
 Prescriptive Process
       Models
      - Generic process framework (revisited)
      - Traditional process models
      - Specialized process models
      - The unified process




(Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
Generic Process Framework
• Communication
    – Involves communication among the customer and other stake holders; encompasses
      requirements gathering
• Planning
    – Establishes a plan for software engineering work; addresses technical tasks,
      resources, work products, and work schedule
• Modeling (Analyze, Design)
    – Encompasses the creation of models to better under the requirements and the
      design
• Construction (Code, Test)
    – Combines code generation and testing to uncover errors
• Deployment
    – Involves delivery of software to the customer for evaluation and feedback


                                                                                     2
Modeling: Software Requirements
             Analysis
• Helps software engineers to better understand the problem they will
  work to solve
• Encompasses the set of tasks that lead to an understanding of what the
  business impact of the software will be, what the customer wants, and
  how end-users will interact with the software
• Uses a combination of text and diagrams to depict requirements for
  data, function, and behavior
    – Provides a relatively easy way to understand and review requirements for
      correctness, completeness and consistency




                                                                                 3
Modeling: Software Design
• Brings together customer requirements, business needs, and technical
  considerations to form the “blueprint” for a product
• Creates a model that that provides detail about software data structures,
  software architecture, interfaces, and components that are necessary to
  implement the system
• Architectural design
    – Represents the structure of data and program components that are required to build
      the software
    – Considers the architectural style, the structure and properties of components that
      constitute the system, and interrelationships that occur among all architectural
      components
• User Interface Design
    – Creates an effective communication medium between a human and a computer
    – Identifies interface objects and actions and then creates a screen layout that forms
      the basis for a user interface prototype
• Component-level Design
    – Defines the data structures, algorithms, interface characteristics, and communication
      mechanisms allocated to each software component

                                                                                      4
Traditional Process Models
Prescriptive Process Model

• Defines a distinct set of activities, actions, tasks, milestones, and work
  products that are required to engineer high-quality software
• The activities may be linear, incremental, or evolutionary




                                                                               6
Waterfall Model
                          (Diagram)
Communication
Project initiation
 Requirements
   gathering
                      Planning
                     Estimating
                     Scheduling
                      Tracking    Modeling
                                  Analysis
                                   Design    Construction
                                                Code
                                                Test        Deployment
                                                             Delivery
                                                              Support
                                                             Feedback
                                                                 7
Waterfall Model
                     (Description)
• Oldest software lifecycle model and best understood by upper management
• Used when requirements are well understood and risk is low
• Work flow is in a linear (i.e., sequential) fashion
• Used often with well-defined adaptations or enhancements to current
  software




                                                                        8
Waterfall Model
                     (Problems)
• Doesn't support iteration, so changes can cause confusion
• Difficult for customers to state all requirements explicitly and up front
• Requires customer patience because a working version of the program
  doesn't occur until the final phase
• Problems can be somewhat alleviated in the model through the addition of
  feedback loops (see the next slide)




                                                                         9
Waterfall Model with Feedback
               (Diagram)
Communication
Project initiation
 Requirements
   gathering

                      Planning
                     Estimating
                     Scheduling
                      Tracking    Modeling
                                  Analysis
                                   Design    Construction
                                                Code
                                                Test        Deployment
                                                             Delivery
                                                              Support
                                                             Feedback
                                                                10
Incremental Model
                                (Diagram)
Increment #1
Communication
                 Planning
                                Modeling
                                               Construction
                                                                   Deployment


                Increment #2
                Communication
                                    Planning
                                                     Modeling
                                                                     Construction
                                                                                       Deployment



                                    Increment #3

                                     Communication
                                                              Planning
                                                                            Modeling
                                                                                          Construction
                                                                                                         Deployment



                                                                                                          11
Incremental Model
                     (Description)
• Used when requirements are well understood
• Multiple independent deliveries are identified
• Work flow is in a linear (i.e., sequential) fashion within an increment and is
  staggered between increments
• Iterative in nature; focuses on an operational product with each increment
• Provides a needed set of functionality sooner while delivering optional
  components later
• Useful also when staffing is too short for a full-scale development




                                                                           12
Prototyping Model
                  (Diagram)
                                Quick
                               Planning

        Communication
Start

                                           Modeling
                                          Quick Design
        Deployment,
          Delivery,
        and Feedback


                        Construction
                        Of Prototype
                                                         13
Prototyping Model
                    (Description)
• Follows an evolutionary and iterative approach
• Used when requirements are not well understood
• Serves as a mechanism for identifying software requirements
• Focuses on those aspects of the software that are visible to the customer/user
• Feedback is used to refine the prototype




                                                                          14
Prototyping Model
                  (Potential Problems)
• The customer sees a "working version" of the software, wants to stop all
  development and then buy the prototype after a "few fixes" are made
• Developers often make implementation compromises to get the software
  running quickly (e.g., language choice, user interface, operating system
  choice, inefficient algorithms)
• Lesson learned
    – Define the rules up front on the final disposition of the prototype before it is
      built
    – In most circumstances, plan to discard the prototype and engineer the actual
      production software with a goal toward quality




                                                                                     15
Spiral Model
                 (Diagram)
                      Planning

Communication



Start                                           Modeling




Start



        Deployment               Construction

                                                           16
Spiral Model
                           (Description)
•   Invented by Dr. Barry Boehm in 1988 while working at TRW
•   Follows an evolutionary approach
•   Used when requirements are not well understood and risks are high
•   Inner spirals focus on identifying software requirements and project risks; may
    also incorporate prototyping
•   Outer spirals take on a classical waterfall approach after requirements have been
    defined, but permit iterative growth of the software
•   Operates as a risk-driven model…a go/no-go decision occurs after each
    complete spiral in order to react to risk determinations
•   Requires considerable expertise in risk assessment
•   Serves as a realistic model for large-scale software development


                                                                              17
General Weaknesses of
     Evolutionary Process Models
1)   Prototyping poses a problem to project planning because of the
     uncertain number of iterations required to construct the product
2)   Evolutionary software processes do not establish the maximum speed of
     the evolution
     •   If too fast, the process will fall into chaos
     •   If too slow, productivity could be affected
1)   Software processes should focus first on flexibility and extensibility, and
     second on high quality
     •   We should prioritize the speed of the development over zero defects
     •   Extending the development in order to reach higher quality could result in
         late delivery


                                                                               18
Specialized Process Models
Component-based Development Model
• Consists of the following process steps
    – Available component-based products are researched and evaluated for the
      application domain in question
    – Component integration issues are considered
    – A software architecture is designed to accommodate the components
    – Components are integrated into the architecture
    – Comprehensive testing is conducted to ensure proper functionality
• Relies on a robust component library
• Capitalizes on software reuse, which leads to documented savings in
  project cost and time




                                                                            20
Formal Methods Model
              (Description)
• Encompasses a set of activities that leads to formal mathematical
  specification of computer software
• Enables a software engineer to specify, develop, and verify a
  computer-based system by applying a rigorous, mathematical notation
• Ambiguity, incompleteness, and inconsistency can be discovered and
  corrected more easily through mathematical analysis
• Offers the promise of defect-free software
• Used often when building safety-critical systems




                                                                    21
Formal Methods Model
              (Challenges)
• Development of formal methods is currently quite time-consuming and
  expensive
• Because few software developers have the necessary background to
  apply formal methods, extensive training is required
• It is difficult to use the models as a communication mechanism for
  technically unsophisticated customers




                                                                   22
The Unified Process
Background
• Birthed during the late 1980's and early 1990s when object-oriented
  languages were gaining wide-spread use
• Many object-oriented analysis and design methods were proposed;
  three top authors were Grady Booch, Ivar Jacobson, and James
  Rumbaugh
• They eventually worked together on a unified method, called the
  Unified Modeling Language (UML)
    – UML is a robust notation for the modeling and development of object-
      oriented systems
    – UML became an industry standard in 1997
    – However, UML does not provide the process framework, only the
      necessary technology for object-oriented development



                                                                             24
Background (continued)
• Booch, Jacobson, and Rumbaugh later developed the unified process,
  which is a framework for object-oriented software engineering using
  UML
    – Draws on the best features and characteristics of conventional software
      process models
    – Emphasizes the important role of software architecture
    – Consists of a process flow that is iterative and incremental, thereby
      providing an evolutionary feel
• Consists of five phases: inception, elaboration, construction, transition,
  and production




                                                                                25
Phases of the Unified Process
Inception                               Elaboration

                    planning


                                       modeling
  communication


                               construction
                                                  Construction
              deployment


Production                           Transition           26
Inception Phase

• Encompasses both customer communication and planning activities of the
  generic process
• Business requirements for the software are identified
• A rough architecture for the system is proposed
• A plan is created for an incremental, iterative development
• Fundamental business requirements are described through preliminary use
  cases
    – A use case describes a sequence of actions that are performed by a user




                                                                                27
Elaboration Phase
• Encompasses both the planning and modeling activities of the generic process
• Refines and expands the preliminary use cases
• Expands the architectural representation to include five views
    –   Use-case model
    –   Analysis model
    –   Design model
    –   Implementation model
    –   Deployment model
• Often results in an executable architectural baseline that represents a first cut
  executable system
• The baseline demonstrates the viability of the architecture but does not provide
  all features and functions required to use the system



                                                                             28
Construction Phase

• Encompasses the construction activity of the generic process
• Uses the architectural model from the elaboration phase as input
• Develops or acquires the software components that make each use-case
  operational
• Analysis and design models from the previous phase are completed to reflect the
  final version of the increment
• Use cases are used to derive a set of acceptance tests that are executed prior to
  the next phase




                                                                          29
Transition Phase

• Encompasses the last part of the construction activity and the first part of the
  deployment activity of the generic process
• Software is given to end users for beta testing and user feedback reports on
  defects and necessary changes
• The software teams create necessary support documentation (user manuals,
  trouble-shooting guides, installation procedures)
• At the conclusion of this phase, the software increment becomes a usable
  software release




                                                                             30
Production Phase
•   Encompasses the last part of the deployment activity of the generic process
•   On-going use of the software is monitored
•   Support for the operating environment (infrastructure) is provided
•   Defect reports and requests for changes are submitted and evaluated




                                                                            31
Unified Process Work Products
• Work products are produced in each of the first four phases of the
  unified process
• In this course, we will concentrate on the analysis model and the
  design model work products
• Analysis model includes
    – Scenario-based model, class-based model, and behavioral model
• Design model includes
    – Component-level design, interface design, architectural design, and
      data/class design




                                                                            32
                                                                                 

More Related Content

What's hot

Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notesSiva Ayyakutti
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models Satya P. Joshi
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9Ian Sommerville
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineeringRupesh Vaishnav
 
Software architecture
Software architectureSoftware architecture
Software architecturenazn
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1Mohammed Romi
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Software process Models
Software process ModelsSoftware process Models
Software process ModelsSADEED AMEEN
 
Structural modeling and analysis
Structural modeling and analysisStructural modeling and analysis
Structural modeling and analysisJIGAR MAKHIJA
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of SoftwareShankar Dahal
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design IntroductionUsman Khan
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressmanRohitGoyal183
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 MuhammadTalha436
 

What's hot (20)

Slides chapters 26-27
Slides chapters 26-27Slides chapters 26-27
Slides chapters 26-27
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Software Engineering Process Models
Software Engineering Process Models Software Engineering Process Models
Software Engineering Process Models
 
Ch13-Software Engineering 9
Ch13-Software Engineering 9Ch13-Software Engineering 9
Ch13-Software Engineering 9
 
Agile development, software engineering
Agile development, software engineeringAgile development, software engineering
Agile development, software engineering
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Ian Sommerville, Software Engineering, 9th Edition Ch1
Ian Sommerville,  Software Engineering, 9th Edition Ch1Ian Sommerville,  Software Engineering, 9th Edition Ch1
Ian Sommerville, Software Engineering, 9th Edition Ch1
 
Slides chapter 2
Slides chapter 2Slides chapter 2
Slides chapter 2
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Software process Models
Software process ModelsSoftware process Models
Software process Models
 
Structural modeling and analysis
Structural modeling and analysisStructural modeling and analysis
Structural modeling and analysis
 
Evolving role of Software
Evolving role of SoftwareEvolving role of Software
Evolving role of Software
 
Software development process models
Software development process modelsSoftware development process models
Software development process models
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Software Architecture and Design Introduction
Software Architecture and Design IntroductionSoftware Architecture and Design Introduction
Software Architecture and Design Introduction
 
Chapter 01 software engineering pressman
Chapter 01  software engineering pressmanChapter 01  software engineering pressman
Chapter 01 software engineering pressman
 
Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020 Software Engineering Solved Past Paper 2020
Software Engineering Solved Past Paper 2020
 
Slides chapter 10
Slides chapter 10Slides chapter 10
Slides chapter 10
 
Requirement Engineering
Requirement EngineeringRequirement Engineering
Requirement Engineering
 

Viewers also liked

Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelssaurabhshertukde
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process ModelsAhsan Rahim
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process ModelsAtul Karmyal
 
Unified Process
Unified ProcessUnified Process
Unified Processguy_davis
 
Concurrent Modeling in the Early Phases of the Software Development Life Cycle
Concurrent Modeling in the Early Phases of the Software Development Life CycleConcurrent Modeling in the Early Phases of the Software Development Life Cycle
Concurrent Modeling in the Early Phases of the Software Development Life CycleKonrad Wieland
 
11. modelos según roger s
11.  modelos según roger s11.  modelos según roger s
11. modelos según roger sYvan Mayta
 
Lecture 3 software process model
Lecture 3   software process modelLecture 3   software process model
Lecture 3 software process modelIIUI
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4Siddharth Ayer
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.Masoud Kalali
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidEvolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidTahaa Shahid
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified ProcessOmkar Dash
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4Mohammed Romi
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )eshtiyak
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsPiyush Gogia
 

Viewers also liked (20)

Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Traditional Process Models
Traditional Process ModelsTraditional Process Models
Traditional Process Models
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Slides chapter 3
Slides chapter 3Slides chapter 3
Slides chapter 3
 
Process models
Process modelsProcess models
Process models
 
Slides chapter 1
Slides chapter 1Slides chapter 1
Slides chapter 1
 
Software Process Models
Software Process ModelsSoftware Process Models
Software Process Models
 
Unified Process
Unified ProcessUnified Process
Unified Process
 
Ch03 prescriptive process models
Ch03 prescriptive process modelsCh03 prescriptive process models
Ch03 prescriptive process models
 
Ch9
Ch9Ch9
Ch9
 
Concurrent Modeling in the Early Phases of the Software Development Life Cycle
Concurrent Modeling in the Early Phases of the Software Development Life CycleConcurrent Modeling in the Early Phases of the Software Development Life Cycle
Concurrent Modeling in the Early Phases of the Software Development Life Cycle
 
11. modelos según roger s
11.  modelos según roger s11.  modelos según roger s
11. modelos según roger s
 
Lecture 3 software process model
Lecture 3   software process modelLecture 3   software process model
Lecture 3 software process model
 
Software Engineering - Ch4
Software Engineering - Ch4Software Engineering - Ch4
Software Engineering - Ch4
 
An overview of software development methodologies.
An overview of software development methodologies.An overview of software development methodologies.
An overview of software development methodologies.
 
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha ShahidEvolutionary Software Process Module in Easy Terminology by Taha Shahid
Evolutionary Software Process Module in Easy Terminology by Taha Shahid
 
Rational Unified Process
Rational Unified ProcessRational Unified Process
Rational Unified Process
 
Ian Sommerville, Software Engineering, 9th Edition Ch 4
Ian Sommerville,  Software Engineering, 9th Edition Ch 4Ian Sommerville,  Software Engineering, 9th Edition Ch 4
Ian Sommerville, Software Engineering, 9th Edition Ch 4
 
Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )Software Development Life Cycle (SDLC )
Software Development Life Cycle (SDLC )
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_models
 

Similar to Pressman ch-3-prescriptive-process-models

Software enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soniSoftware enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar sonimanojsonikgn
 
software engineering
software engineeringsoftware engineering
software engineeringramyavarkala
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptxMarwondoMarwondo
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتEiman Idris
 
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRoger Snook
 
Software engineering
Software engineeringSoftware engineering
Software engineeringh2eEdgar
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsCognizant
 
Dec 2012 Evening Talk - Managing Complex Project
Dec 2012 Evening Talk - Managing Complex ProjectDec 2012 Evening Talk - Managing Complex Project
Dec 2012 Evening Talk - Managing Complex ProjectZulkefle Idris
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMDebora Di Piano
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 pptDr VISU P
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptitadmin33
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposalcfry
 

Similar to Pressman ch-3-prescriptive-process-models (20)

Software enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soniSoftware enginnering unit 01 by manoj kumar soni
Software enginnering unit 01 by manoj kumar soni
 
Unit2
Unit2Unit2
Unit2
 
software engineering
software engineeringsoftware engineering
software engineering
 
04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx04_Materi Software Proses-Models(1).pptx
04_Materi Software Proses-Models(1).pptx
 
Waterfall model
Waterfall modelWaterfall model
Waterfall model
 
Brochure for pmvt
Brochure for pmvtBrochure for pmvt
Brochure for pmvt
 
Incremental
IncrementalIncremental
Incremental
 
CHAPTER12.ppt
CHAPTER12.pptCHAPTER12.ppt
CHAPTER12.ppt
 
مناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجياتمناهج التعليم وصناعة البرمجيات
مناهج التعليم وصناعة البرمجيات
 
RSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value FeaturesRSA and RAD 8.5 Top New Value Features
RSA and RAD 8.5 Top New Value Features
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Reality checking agile's architectural inner workings
Reality checking agile's architectural inner workingsReality checking agile's architectural inner workings
Reality checking agile's architectural inner workings
 
Unit1
Unit1Unit1
Unit1
 
Dec 2012 Evening Talk - Managing Complex Project
Dec 2012 Evening Talk - Managing Complex ProjectDec 2012 Evening Talk - Managing Complex Project
Dec 2012 Evening Talk - Managing Complex Project
 
Lanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALMLanzamiento Visual Studio 2012 - Modern ALM
Lanzamiento Visual Studio 2012 - Modern ALM
 
Oose unit 4 ppt
Oose unit 4 pptOose unit 4 ppt
Oose unit 4 ppt
 
OOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.pptOOSE Unit 4 PPT.ppt
OOSE Unit 4 PPT.ppt
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
MDE first glance
MDE first glanceMDE first glance
MDE first glance
 
Adm Initial Proposal
Adm Initial ProposalAdm Initial Proposal
Adm Initial Proposal
 

Recently uploaded

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Pressman ch-3-prescriptive-process-models

  • 1. Chapter 3 Prescriptive Process Models - Generic process framework (revisited) - Traditional process models - Specialized process models - The unified process (Source: Pressman, R. Software Engineering: A Practitioner’s Approach. McGraw-Hill, 2005)
  • 2. Generic Process Framework • Communication – Involves communication among the customer and other stake holders; encompasses requirements gathering • Planning – Establishes a plan for software engineering work; addresses technical tasks, resources, work products, and work schedule • Modeling (Analyze, Design) – Encompasses the creation of models to better under the requirements and the design • Construction (Code, Test) – Combines code generation and testing to uncover errors • Deployment – Involves delivery of software to the customer for evaluation and feedback 2
  • 3. Modeling: Software Requirements Analysis • Helps software engineers to better understand the problem they will work to solve • Encompasses the set of tasks that lead to an understanding of what the business impact of the software will be, what the customer wants, and how end-users will interact with the software • Uses a combination of text and diagrams to depict requirements for data, function, and behavior – Provides a relatively easy way to understand and review requirements for correctness, completeness and consistency 3
  • 4. Modeling: Software Design • Brings together customer requirements, business needs, and technical considerations to form the “blueprint” for a product • Creates a model that that provides detail about software data structures, software architecture, interfaces, and components that are necessary to implement the system • Architectural design – Represents the structure of data and program components that are required to build the software – Considers the architectural style, the structure and properties of components that constitute the system, and interrelationships that occur among all architectural components • User Interface Design – Creates an effective communication medium between a human and a computer – Identifies interface objects and actions and then creates a screen layout that forms the basis for a user interface prototype • Component-level Design – Defines the data structures, algorithms, interface characteristics, and communication mechanisms allocated to each software component 4
  • 6. Prescriptive Process Model • Defines a distinct set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software • The activities may be linear, incremental, or evolutionary 6
  • 7. Waterfall Model (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback 7
  • 8. Waterfall Model (Description) • Oldest software lifecycle model and best understood by upper management • Used when requirements are well understood and risk is low • Work flow is in a linear (i.e., sequential) fashion • Used often with well-defined adaptations or enhancements to current software 8
  • 9. Waterfall Model (Problems) • Doesn't support iteration, so changes can cause confusion • Difficult for customers to state all requirements explicitly and up front • Requires customer patience because a working version of the program doesn't occur until the final phase • Problems can be somewhat alleviated in the model through the addition of feedback loops (see the next slide) 9
  • 10. Waterfall Model with Feedback (Diagram) Communication Project initiation Requirements gathering Planning Estimating Scheduling Tracking Modeling Analysis Design Construction Code Test Deployment Delivery Support Feedback 10
  • 11. Incremental Model (Diagram) Increment #1 Communication Planning Modeling Construction Deployment Increment #2 Communication Planning Modeling Construction Deployment Increment #3 Communication Planning Modeling Construction Deployment 11
  • 12. Incremental Model (Description) • Used when requirements are well understood • Multiple independent deliveries are identified • Work flow is in a linear (i.e., sequential) fashion within an increment and is staggered between increments • Iterative in nature; focuses on an operational product with each increment • Provides a needed set of functionality sooner while delivering optional components later • Useful also when staffing is too short for a full-scale development 12
  • 13. Prototyping Model (Diagram) Quick Planning Communication Start Modeling Quick Design Deployment, Delivery, and Feedback Construction Of Prototype 13
  • 14. Prototyping Model (Description) • Follows an evolutionary and iterative approach • Used when requirements are not well understood • Serves as a mechanism for identifying software requirements • Focuses on those aspects of the software that are visible to the customer/user • Feedback is used to refine the prototype 14
  • 15. Prototyping Model (Potential Problems) • The customer sees a "working version" of the software, wants to stop all development and then buy the prototype after a "few fixes" are made • Developers often make implementation compromises to get the software running quickly (e.g., language choice, user interface, operating system choice, inefficient algorithms) • Lesson learned – Define the rules up front on the final disposition of the prototype before it is built – In most circumstances, plan to discard the prototype and engineer the actual production software with a goal toward quality 15
  • 16. Spiral Model (Diagram) Planning Communication Start Modeling Start Deployment Construction 16
  • 17. Spiral Model (Description) • Invented by Dr. Barry Boehm in 1988 while working at TRW • Follows an evolutionary approach • Used when requirements are not well understood and risks are high • Inner spirals focus on identifying software requirements and project risks; may also incorporate prototyping • Outer spirals take on a classical waterfall approach after requirements have been defined, but permit iterative growth of the software • Operates as a risk-driven model…a go/no-go decision occurs after each complete spiral in order to react to risk determinations • Requires considerable expertise in risk assessment • Serves as a realistic model for large-scale software development 17
  • 18. General Weaknesses of Evolutionary Process Models 1) Prototyping poses a problem to project planning because of the uncertain number of iterations required to construct the product 2) Evolutionary software processes do not establish the maximum speed of the evolution • If too fast, the process will fall into chaos • If too slow, productivity could be affected 1) Software processes should focus first on flexibility and extensibility, and second on high quality • We should prioritize the speed of the development over zero defects • Extending the development in order to reach higher quality could result in late delivery 18
  • 20. Component-based Development Model • Consists of the following process steps – Available component-based products are researched and evaluated for the application domain in question – Component integration issues are considered – A software architecture is designed to accommodate the components – Components are integrated into the architecture – Comprehensive testing is conducted to ensure proper functionality • Relies on a robust component library • Capitalizes on software reuse, which leads to documented savings in project cost and time 20
  • 21. Formal Methods Model (Description) • Encompasses a set of activities that leads to formal mathematical specification of computer software • Enables a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation • Ambiguity, incompleteness, and inconsistency can be discovered and corrected more easily through mathematical analysis • Offers the promise of defect-free software • Used often when building safety-critical systems 21
  • 22. Formal Methods Model (Challenges) • Development of formal methods is currently quite time-consuming and expensive • Because few software developers have the necessary background to apply formal methods, extensive training is required • It is difficult to use the models as a communication mechanism for technically unsophisticated customers 22
  • 24. Background • Birthed during the late 1980's and early 1990s when object-oriented languages were gaining wide-spread use • Many object-oriented analysis and design methods were proposed; three top authors were Grady Booch, Ivar Jacobson, and James Rumbaugh • They eventually worked together on a unified method, called the Unified Modeling Language (UML) – UML is a robust notation for the modeling and development of object- oriented systems – UML became an industry standard in 1997 – However, UML does not provide the process framework, only the necessary technology for object-oriented development 24
  • 25. Background (continued) • Booch, Jacobson, and Rumbaugh later developed the unified process, which is a framework for object-oriented software engineering using UML – Draws on the best features and characteristics of conventional software process models – Emphasizes the important role of software architecture – Consists of a process flow that is iterative and incremental, thereby providing an evolutionary feel • Consists of five phases: inception, elaboration, construction, transition, and production 25
  • 26. Phases of the Unified Process Inception Elaboration planning modeling communication construction Construction deployment Production Transition 26
  • 27. Inception Phase • Encompasses both customer communication and planning activities of the generic process • Business requirements for the software are identified • A rough architecture for the system is proposed • A plan is created for an incremental, iterative development • Fundamental business requirements are described through preliminary use cases – A use case describes a sequence of actions that are performed by a user 27
  • 28. Elaboration Phase • Encompasses both the planning and modeling activities of the generic process • Refines and expands the preliminary use cases • Expands the architectural representation to include five views – Use-case model – Analysis model – Design model – Implementation model – Deployment model • Often results in an executable architectural baseline that represents a first cut executable system • The baseline demonstrates the viability of the architecture but does not provide all features and functions required to use the system 28
  • 29. Construction Phase • Encompasses the construction activity of the generic process • Uses the architectural model from the elaboration phase as input • Develops or acquires the software components that make each use-case operational • Analysis and design models from the previous phase are completed to reflect the final version of the increment • Use cases are used to derive a set of acceptance tests that are executed prior to the next phase 29
  • 30. Transition Phase • Encompasses the last part of the construction activity and the first part of the deployment activity of the generic process • Software is given to end users for beta testing and user feedback reports on defects and necessary changes • The software teams create necessary support documentation (user manuals, trouble-shooting guides, installation procedures) • At the conclusion of this phase, the software increment becomes a usable software release 30
  • 31. Production Phase • Encompasses the last part of the deployment activity of the generic process • On-going use of the software is monitored • Support for the operating environment (infrastructure) is provided • Defect reports and requests for changes are submitted and evaluated 31
  • 32. Unified Process Work Products • Work products are produced in each of the first four phases of the unified process • In this course, we will concentrate on the analysis model and the design model work products • Analysis model includes – Scenario-based model, class-based model, and behavioral model • Design model includes – Component-level design, interface design, architectural design, and data/class design 32 