Date post: | 01-Apr-2015 |
Category: |
Documents |
Upload: | corbin-rencher |
View: | 217 times |
Download: | 2 times |
Chapter 7: Software production Chapter 7: Software production processprocess
Refers to the activities that are used for building,
delivering, deploying, and evolving a software product, from inception of an idea all the way to the delivery and
final retirement of the system
Life cycle Life cycle (Overview of different Activities)(Overview of different Activities)
The life cycle of a software product:The life cycle of a software product: from inception of an idea for a product from inception of an idea for a product
towards:towards: requirements gathering and analysisrequirements gathering and analysis architecture design and specificationarchitecture design and specification coding and testingcoding and testing delivery and deploymentdelivery and deployment maintenance and evolutionmaintenance and evolution retirementretirement
Software process modelSoftware process model
Attempt to organize the software life Attempt to organize the software life cycle bycycle by
defining activities involved in software defining activities involved in software productionproduction
order of activities and their relationshipsorder of activities and their relationships
GGoals of a software processoals of a software process standardization, predictability, standardization, predictability,
productivity, high product quality, productivity, high product quality, ability to plan time and budget ability to plan time and budget requirementsrequirements
Code & FixCode & Fix
The earliest approachThe earliest approach Write codeWrite code Fix it to Fix it to eliminate any errorseliminate any errors that have that have
been detected, to been detected, to enhance existing enhance existing functionalityfunctionality, or to , or to add new featuresadd new features
Source of difficulties and deficienciesSource of difficulties and deficiencies impossible to predictimpossible to predict impossible to manageimpossible to manage CMM initial phaseCMM initial phase
Models are neededModels are needed
Symptoms of inadequacy: the Symptoms of inadequacy: the software crisissoftware crisis scheduled time and cost exceededscheduled time and cost exceeded user expectations not metuser expectations not met poor qualitypoor quality
The size and economic value of The size and economic value of software applications required software applications required appropriate "process models"appropriate "process models"
Process model goals Process model goals (B. Boehm 1988)(B. Boehm 1988)
“Determine the order of stages involved in software development and evolution, and to establish the transition criteria for progressing from one stage to the next. These include completion criteria for the current stage plus choice criteria and entrance criteria for the next stage. Thus a process model addresses the following software project questions:
What shall we do next?How long shall we continue to do it?"
Process as a "black box"Process as a "black box"
Product
Process
Informal Requirements
Quality?Uncertain /Incomplete requirementIn the beginning
ProblemsProblems
The assumption is that requirements The assumption is that requirements can be fully understood prior to can be fully understood prior to developmentdevelopment
Interaction with the customer occurs Interaction with the customer occurs only at the beginning (requirements) only at the beginning (requirements) and end (after delivery)and end (after delivery)
Unfortunately the assumption almost Unfortunately the assumption almost never holdsnever holds
Process as a "white box"Process as a "white box"
Product
Process
Informal Requirements
feedback
Waterfall Software Process Waterfall Software Process model (1)model (1)
Invented in the late 1950s for large Invented in the late 1950s for large air defense systems, popularized in air defense systems, popularized in the 1970sthe 1970s
They organize activities in a They organize activities in a sequential flowsequential flow
Exist in many variants, all sharing Exist in many variants, all sharing sequential flow stylesequential flow style
Feasibility study
Requirements
Design
Coding and module testing
Integration and system testing
Delivery, deployment, and maintenance
A waterfall model
Waterfall models (2)Waterfall models (2)
Organizations adopting them Organizations adopting them standardize the outputs of the standardize the outputs of the various phases (various phases (deliverablesdeliverables))
May also prescribe methods to May also prescribe methods to follow in each phasefollow in each phase organization of methods in organization of methods in
frameworks often called frameworks often called methodologymethodology Example: Military Standard (Example: Military Standard (MIL-MIL-
STD-2167STD-2167))
Critical evaluation of the Critical evaluation of the waterfall modelwaterfall model
Software process subject to Software process subject to discipline, planning, and discipline, planning, and management.management.
Postpone implementation to after Postpone implementation to after understanding objectives.understanding objectives.
Linear, rigid, monolithic:Linear, rigid, monolithic: No feedbackNo feedback No parallelismNo parallelism A single delivery dateA single delivery date
Feasibility study
Requirements
Design
Coding and module testing
Integration and system testing
Delivery, deployment, and maintenance
Waterfall with feedback
Problems with waterfallProblems with waterfall
Estimates made when limited Estimates made when limited knowledge availableknowledge available
Difficult to gather all requirements Difficult to gather all requirements once and for allonce and for all users may not know what they wantusers may not know what they want requirements cannot be frozenrequirements cannot be frozen
Evolutionary modelsEvolutionary models
Many variants availableMany variants available Product development evolves through Product development evolves through
incrementsincrements "do it twice" (F. Brooks, 1995)"do it twice" (F. Brooks, 1995) evolutionary prototypeevolutionary prototype
Evolutionary process model (B. Boehm, Evolutionary process model (B. Boehm, 1988)1988)""model whose stages consist of expanding model whose stages consist of expanding
increments of an operational software increments of an operational software product, with the direction of evolution being product, with the direction of evolution being determined by operational experiencedetermined by operational experience""
Ch. 7 17
Spiral modelB. Boehm, 1989
Spiral Model
Ch. 7 18
Unified Software Unified Software Development ProcessDevelopment Process
(UP)(UP)
Ch. 7 19
PrinciplesPrinciples
Industry standard process model, initiated by Industry standard process model, initiated by Ericsson, then Objectory and Rational Ericsson, then Objectory and Rational companiescompanies
Development of an OO systemDevelopment of an OO system Uses the UML notation throughout the Uses the UML notation throughout the
process: process: Different views that are informal and not Different views that are informal and not
necessarily consistent.necessarily consistent. Supports an Supports an iterativeiterative and and incrementalincremental process process Decomposes a large process into controlled Decomposes a large process into controlled
iterations (iterations (mini projectsmini projects))
Ch. 7 20
UML ModelsUML Models
Ch. 7 21
Unified Process (UP)Unified Process (UP) Underlying model:Underlying model:
Any large software project should be broken into Any large software project should be broken into controlled iterationscontrolled iterations (mini-projects) that provide (mini-projects) that provide increments of the productincrements of the product
A UP life cycle can be depicted abstractly as a A UP life cycle can be depicted abstractly as a sequence of cycles from the project’s inception to its sequence of cycles from the project’s inception to its termination.termination.
Each cycle outputs a product release - (I.e., ready for Each cycle outputs a product release - (I.e., ready for delivery). delivery).
The output is complete and consistent set of artifacts, The output is complete and consistent set of artifacts, including the executable code and all the needed including the executable code and all the needed documents (requ, design, tests, ..), specified in UML.documents (requ, design, tests, ..), specified in UML.
Each cycle in turn is divided into a sequence of four Each cycle in turn is divided into a sequence of four phases, where each phase terminates with in a phases, where each phase terminates with in a milestone that is used for project control.milestone that is used for project control.
Ch. 7 22
Phases of a UP cyclePhases of a UP cycleimportantimportant
InceptionInception: roughly corresponds to feasibility study; that is : roughly corresponds to feasibility study; that is documenting a vision of the product and a business analysis to documenting a vision of the product and a business analysis to justify why this product should be developed. justify why this product should be developed.
ElaborationElaboration: defining use cases and software architecture for : defining use cases and software architecture for the current release, where the architecture will become a the current release, where the architecture will become a baseline baseline that must be agreed on and stakeholders must adhere that must be agreed on and stakeholders must adhere to it.to it.
ConstructionConstruction: building the product through enriching the : building the product through enriching the architecture’s architecture’s baseline baseline and developing and testing the code. and developing and testing the code. Milestone for this phase is quality control via validation Milestone for this phase is quality control via validation checking.checking.
TransitionTransition: corresponds to beta testing. A trusted set of early : corresponds to beta testing. A trusted set of early adopters tries the product and provides reports on possible adopters tries the product and provides reports on possible defects. Either fixed or deferred to next release. defects. Either fixed or deferred to next release.
Milestone: consists of delivering an intermediate set of artifacts Milestone: consists of delivering an intermediate set of artifacts that can be subject to quality control via reviews and inspections.that can be subject to quality control via reviews and inspections.
Ch. 7 23
Unified Process Cycles and phases of a cycleUnified Process Cycles and phases of a cycle
time
death
cycle1 ... cycle2 cycle n
product releases
milestone
product release Inception Elaboration Construction Transition
Intermediate set of artifacts for quality control
Ch. 7 24
Distribution of workflows over phasesDistribution of workflows over phases
inception elaboration construction transition
Iter1 Iter2 ... ... ... ... ... ... ... ... Iter n
Requirements
Analysis
Design
Implementation
Testing
-Feasibility
- Use cases - Architecture- Base line
-Develop-Test-Quality check
-Beta test