高级软件工程第二章ppt.ppt
Chapter 2Process:A Generic ViewSoftware Engineering:A Practitioners Approach,6th editionby Roger S.Pressman1Chapter OverviewChapter OverviewWhat?A software process-a series of predictable steps that leads to a timely,high-quality product.Who?Managers,software engineers,and customers.Why?Provides stability,control,and organization to an otherwise chaotic(无秩序的)activity.Steps?A handful of activities are common to all software processes,details vary.Work product?Programs,documents,and data.Correct process?Assessment,quality deliverable.2A Layered TechnologySoftware Engineeringa“quality”focusa“quality”focusprocess modelprocess modelmethodsmethodstoolstools3Software EngineeringSoftware EngineeringSoftware Engineering:(1)The application of a Software Engineering:(1)The application of a systematic,disciplined,quantifiable approach to systematic,disciplined,quantifiable approach to the development,operation,and maintenance of the development,operation,and maintenance of software;that is,the application of engineering to software;that is,the application of engineering to software.(2)The study of approaches as in(1).software.(2)The study of approaches as in(1).-IEEE Standard 610.12-1990-IEEE Standard 610.12-19904A Process FrameworkProcess frameworkUmbrella activitiesframework activity#1SE action#1.1Software processtasksetswork taskswork productsQA pointsmilestonesSE action#1.2tasksetswork taskswork productsQA pointsmilestonesframework activity#2SE action#2.1tasksetswork taskswork productsQA pointsmilestonesSE action#2.2tasksetswork taskswork productsQA pointsmilestones5Umbrella ActivitiesUmbrella ActivitiesSoftware project managementFormal technical reviewsSoftware quality assuranceSoftware configuration managementWork product preparation and productionReusability managementMeasurementRisk management6Framework ActivitiesFramework ActivitiesCommunicationPlanningModelingAnalysis of requirementsDesignConstructionCode generationTestingDeployment7The Process The Process Model:AdaptabilityModel:AdaptabilityThe framework activities will always be applied on every project.BUTThe tasks(and degree of rigor)for each activity will vary based on:the type of project characteristics of the projectcommon sense judgment;concurrence of the project team8The CMMIThe CMMIThe 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 practices refine a goal into a set of process-related activities.9Personal Software Process Personal Software Process(PSP)(PSP)Recommends five framework activities:PlanningHigh-level designHigh-level design reviewDevelopmentPostmortemStresses the need for each software engineer to identify errors early and as important,to understand the types of errors10Team Software Process Team Software Process(TSP)(TSP)Each project is“launched”using a“script”that defines the tasks to be accomplishedTeams(of 2 to 20 engineers)are self-directed:Plan and track work,set goals,own processes and plansMeasurement is encouragedMeasures are analyzed with the intent of improving the team process(through coaching,motivation,)11Process PatternsProcess PatternsProcess patterns define a set of activities,actions,work tasks,work products and/or related behaviorsA template is used to define a patternTypical examples:Customer communication(a process activity)Analysis(an action)Requirements gathering(a process task)Reviewing a work product(a process task)Design model(a work product)12Process AssessmentProcess AssessmentThe 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:SCAMPICBA IPISPICEISO 9001:200013Assessment and ImprovementAssessment and Improvement14The Primary Goal of Any Software The Primary Goal of Any Software Process:Process:High QualityHigh QualityRemember:Remember:High quality High quality project timeliness project timelinessWhy?Why?Less rework!Less rework!15