Features:
Story based
Estimate time line and cost for story board
Choose next story
Test- driven
Daily build
Pair programming
On site customer
Strong points:
Agile and flexible process
Suitable for small and medium project
Suitable for unclear requirements
Adapt request change
Weak points:
Lack of standard
Diversity in practice
Difficulty in evaluation
44 trang |
Chia sẻ: tuanhd28 | Lượt xem: 1835 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Software Process Models, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Software Process ModelsNguyen Thi Thanh Thuynttthuy@hcmuaf.edu.vnContentIntroductionMain conceptsSoftware Process ModelsThe economies of all developed nations are dependent on softwareMore and more systems are software-controlledSoftware engineering expenditure represents a significant part of GNP in all developed countriesIntroductionMain conceptsSoftware engineeringSoftware productsSoftware costsSoftware processSub-processActivitiesRolesToolsArtifactsPhasesSoftware engineeringSoftware engineering is an engineering discipline which is concerned with theories, methods, and tools for developing and delivering useful software productsSoftware engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints, and the resources availableSoftware productsSoftware products may be developed for a particular customer or for a general marketSoftware products may beGeneric developed to be sold to a range of different customersBespoke (custom) developed for a single customer according to their specificationObjectives of software productsQuality: satisfies user requirements Time lineCostFactors effect software productsHuman resourceComplexity and workloadTimeTechnique and toolsBudgetSoftware costs often dominate system costs. The costs of software on a PC are often greater than the hardware costRoughly 60% of costs are development costs, 40% are testing costs. Software costs more to maintain than to develop. For systems with a long life, maintenance costs may be several times the development costsCosts vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliabilityDistribution of costs depends on the development model that is usedSoftware engineering is concerned with the cost-effective production of large-scale software systemsSoftware costsSuccess of softwareDeliver required functionality and performance be maintainable, dependable, and usableMaintainabilitySoftware must evolve to meet changeDependabilitySoftware must be trustworthyEfficiencyMake no wasteful use of system resourcesUsabilitySoftware must be usable by the people for which it was designedFailure of SoftwareThe larger software project, the more difficult managementWrong requirementsWeak estimationBad planWeak managementWeak risk managementWeak techniqueLow performance of staffSluggish adaptability with request changeLow traceability of changeModules are out of jointDifficulty in maintenance, upgrade, extensionUnreliable build and deployment processEtcSoftware processSoftware process ís a set of activities made by people (role), based onCASE ToolsMethods, Knowledge, Experiencewhose goal is artifacts or evolution of a software system AI phải LÀM GÌ, KHI NÀO, BẰNG CÁCH NÀO làm ra SẢN PHẨM GÌActivitiesActivity is a task in software processActivities in process make control flowAutomatic flowSemi-automatic flowManual flowRolesRole is an object doing an activity in software processPeopleBusiness Analysis (BA)System Architect (SA)Software Architect (SA)Graphic Designer (GD)Developer (Dev)TesterDeployerTeam Leader (TL)Project Manager (PM)Software agentsCASE (Computer-Aided Software Engineering) toolsCASE tools are software tools intended to provide automated support for software process activities. CASE tools are often used for method supportUpper-CASETools to support the early process activities of specification and designLower-CASETools to support later activities such as programming, debugging, and testingMethodsMethod is structured approach to software development which includes system models, rules, design recommendations, and process guidanceModels Graphical models that should be producedRulesConstraints applied to system modelsRecommendationsAdvice on good design practiceProcess guidanceWhat activities to follow and how to do soArtifactsArtifact is product in software process (program, source code, reports, models, etc)Input artifactsOutput artifactsIntermediate artifactsAn exampleTesting processActivities: Prepare, test, confirm bugs, fix bugs, close bugsRoles: Developers, TestersArtifacts: test reportTools: Excel, Case tools, Bug ZilaOther conceptsProposalMilestoneDeliveryDefect - BugQA: Quality AssuranceQC: Quality ControlLabWriting ProposalPlanning ProjectSVN structureVersion for buildsProposal1. Introduction1.1 Overview1.2 Problem statement1.3 Scope2. Literature review3.SolutionChosen Technology4. Evaluation5. Quotation6. Timeline7. Conclusion & RecommendationSoftware processStructured set of activities required to develop a software systemPhasesGeneric phases in all software processes areSpecification what the system should do and its development constraintsDevelopment design and implementation of the software systemValidation checking that the software is what the customer wantsEvolution changing the software in response to changing demandsDepends on Software Life Cycle Models, phases are organized, broken down, arranged in different orders, bases on methodology, knowledge, experienceSoftware process modelSoftware process model is a abstract representation of a software process, presented from a specific perspectiveExamples of generic process models“Waterfall”, formal transformationsEvolutionary developmentIntegration from reusable componentsExamples of process perspectivesWork flow what is done when?Data flow which information flows where?Role / activity who does what?Software process model (cont)Personal Software Process (PSP): Personal measurement of work product and quality, leading to improvementTeam Software Process (TSP): Goal is to build a “self-directed” project team that organizes itself to produce high-quality softwareRational Unified Process (RUP): A modern process model derived from the work on the UML and associated processSoftware process model (cont)Big-Bang ModelBuild-and-fix modelWaterfall modelWaterfall Model with “back flow”V modelSynchronize-and-stabilize modelExploratoryRapid prototypeIncremental ModelIterative ModelSpiral modelRUPExtreme programming and agile processesScumBig-Bang modelFeaturesDeveloper gets requirementsWorks independently in specific timeSubmits resultExpects it to satisfy user requirementsStrong pointsSimplecityWeak pointsSuitable for project with 1 developer Build and Fix modelFeaturesNo plan, no analysis and designProgram is only one artifactStrong pointsSmall program for 1 developerWeak pointsUnderstandability and maintenance decrease when scale of program increasesWaterfall modelFeaturesStrictly separated phases Can’t drawbackSpecification done before developmentStrong pointsFixed milestoneOne phase at one timeEasy to manage progressEasy to understandWeak pointsDifficult to respond to customer changing requirementsThe drawback is the difficulty of accommodating change after the process underwayOne phase has to be complete before moving onto the next phase.Product produced at the end of processWaterfall model with ‘back flow’V modelFeaturesVerification at each phaseStrong pointsSame Waterfall with frequent verification -> find errors soonerWeak pointsNot flexibleSuitable for small or medium projectSynchronize-and-stabilize modelFeaturesEach team works on each module and frequently synchronize and verify source code during software processStrong pointsFlexible: can adapt with request changeWeak pointsSuitable for small projectExploratory developmentFeaturesObjective is to work with customers and to evolve a final system from an initial outline specification.Should start with well-understood requirements and add new features as proposed by the customer.Strong pointsApplicabilityFor small or medium-size interactive systems;For parts of large systems (e.g. the user interface);For short-lifetime systems.Weak pointsLack of process visibility;Systems are often poorly structured;Special skills (e.g. in languages for rapid prototyping) may be required.Rapid prototypeFeaturesRepeat prototyping to understand the system requirements, then use waterfall modelVerification at each phaseStart with poorly understood requirements to clarify what is really neededStrong pointsRapid developingSame WaterfallWeak pointsLack of process visibility;Systems are often poorly structured;Special skills (e.g. in languages for rapid prototyping) may be requiredSuitable for small and medium projectIncremental modelFeaturesRepeat modelFunctions are first evaluated and prioritizedFunctions with higher priority are put in the first loopFunctions are added in each releaseStrong pointsDeliverables in short timeFollow up progress of productWeak pointsDifficult in cover all functions of product if lack expert knowledgeIterative modelFeaturesRepeat modelEach iterator builds one releaseStrong pointsGood risk managementPost-release suggests more requirements for later releaseFollow up progress of productContinuous developing after release phaseApplied in Agile methodologyWeak pointsLarge scaleTake more cost for process management Spiral modelFeaturesRisks are explicitly assessed and resolved throughout the process.Estimate risks, prioritize risk Build prototype for each riskStart with prototype with the highest priority of riskApply Waterfall at each prototypeIf one risk is solved, evaluate result and start with next prototypeIf risk can’t be solve, close projectStrong pointsGood risk managementWeak pointsLarge scaleTake more cost for process management RisksUnclear user requirementsNew techniqueHuman resourceetcA modern process model derived from the work on the UML and associated process.The Rational Unified ProcessRUP phaseInception: Establish the business case for the system.Elaboration: Develop an understanding of the problem domain and the system architecture.Construction: System design, programming and testing.Transition: Deploy the system in its operating environment.Static workflowWorkflowDescriptionBusiness ModelingThe business processes are modeled using business use casesRequirementsActors who interact with the system are identified anduse cases are developed to model the system requirementsAnalysis and DesignDesign model is created and documented usingarchitectural, component, object, and sequence modelsImplementationSystem components are implemented andstructured into implementation sub-systems.TestTesting is an iterative process carried out in conjunction with implementation.DeploymentA product release is created, distributed, and installed in the workplaceConfiguration and ChangeManagementManages changes to the systemProject ManagementManages system developmentEnvironmentWorkflow for making appropriate software toolsavailable to development teamExtreme programmingFeatures:Story basedEstimate time line and cost for story boardChoose next storyTest- drivenDaily buildPair programmingOn site customerStrong points:Agile and flexible processSuitable for small and medium projectSuitable for unclear requirementsAdapt request changeWeak points:Lack of standardDiversity in practiceDifficulty in evaluationExtreme programming (cont)ScrumAgile MethodologyQ & AThank you
Các file đính kèm theo tài liệu này:
- 20090910_chap01_sofwareprocessmodels_5273.ppt