软件开发过程 沈备军 1 Shanghai Jiao Tong University 上海交通大学软件工程中心 软件过程与管理 Module: Software Process 软件开发过程 2 Software Process and Management 沈备军 本节内容 统一软件过程 RUP 敏捷过程 Agile Process XP SCRUM 微软产品开发过程MSF 选择和实施软件过程 评估软件过程 3 Software Process and Management 沈备军 统一软件过程 RUP RUP是一个风险驱动的、基于UML和构件式架构的迭代、递增型开发过程。 4 Software Process and Management 沈备军 RUP的历史 •Rational Process Workbench •Major addition of content •Major addition of tool mentors Improved Process for independent testing Rational Objectory Process 4.1 1997 Rational Objectory Process 4.0 1996 Rational Unified Process 5.0 1998 Rational Unified Process 2000 Rational Unified Process 2001 Rational Unified Process 5.5 1999 Rational Unified Process 2002 Rational Unified Process 2003…… Rational Approach •Project Management •UML 1.3 •RealTime •Performance Testing •Business Modeling •Configuration & Change Mgt •Objectory UI Design •Data Engineering •UML 1.1 •OMT •Booch •UML 1.0 •Requirements •Test Process •Tree browser upgraded for enhanced capabilities of creating customized My RUP tree •Introduction of RUP Platform providing a configurable process framework Objectory Process 3.8 5 Software Process and Management 沈备军 RUP 蕴涵了最佳实践准则 Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change 6 Software Process and Management 沈备军 RUP和UML的关系 Rational Unified Process was developed hand-in-hand with the UML. Many artifacts in Rational Unified Process have a UML representation. Rational Unified Process also includes guidelines for UML concepts.
22
Embed
软件开发过程 沈备军 - SJTUbase.sjtu.edu.cn/~bjshen/spm/ppt/02.pdf · 敏捷过程Agile Process XP SCRUM 微软产品开发过程MSF 选择和实施软件过程 评估软件过程
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
软件开发过程 沈备军
1
Shanghai Jiao Tong University
上海交通大学软件工程中心
软件过程与管理Module: Software Process
软件开发过程
2Software Process and Management 沈备军
本节内容
统一软件过程 RUP敏捷过程 Agile Process
XPSCRUM微软产品开发过程MSF
选择和实施软件过程
评估软件过程
3Software Process and Management 沈备军
统一软件过程 RUP
RUP是一个风险驱动的、基于UML和构件式架构的迭代、递增型开发过程。
4Software Process and Management 沈备军
RUP的历史
•Rational Process Workbench•Major addition of content
•Tree browser upgraded for enhanced capabilities of creating customized My RUP tree
•Introduction of RUP Platform providing a configurable process framework
Objectory Process 3.8
5Software Process and Management 沈备军
RUP 蕴涵了最佳实践准则
Best PracticesProcess Made Practical
Develop IterativelyManage Requirements
Use Component ArchitecturesModel Visually (UML)
Continuously Verify QualityManage Change
6Software Process and Management 沈备军
RUP和UML的关系
Rational Unified Process was developed hand-in-hand with the UML.
Many artifacts in Rational Unified Process have a UML representation.
Rational Unified Process also includes guidelines for UML concepts.
软件开发过程 沈备军
2
7Software Process and Management 沈备军
RUP 的结构
RUP is organized:
By timePhases and iterations阶段和迭代
By contentDisciplines 规范
8Software Process and Management 沈备军
Inception Elaboration Construction Transition
RUP按时间组织
Lifecycle Objective Milestone
Lifecycle Architecture
Milestone
Initial Operational Capability Milestone
Product Release
time
Inception - Define the scope of projectElaboration - Plan project, specify features, baseline architecture Construction - Build the productTransition - Transition the product into end user community
每个阶段结束是一个大的里程碑
9Software Process and Management 沈备军
Inception Phase: Objectives
Establish project scope and boundary conditionsDetermine the use cases and primary scenarios that will drive the major design trade-offs Demonstrate a candidate architecture against some of the primary scenariosEstimate the overall cost and scheduleIdentify potential risks (the sources of unpredictability)Prepare the supporting environment for the project
10Software Process and Management 沈备军
Inception Phase: Evaluation Criteria
Stakeholder concurrence on scope definition and cost/schedule estimates Agreement that the right set of requirements has been captured and that there is a shared understanding of these requirementsAgreement that the cost/schedule estimates, priorities, risks, and development process are appropriateAll risks have been identified and a mitigation strategy exists for each
Milestone: Lifecycle Objectives (LCO)
11Software Process and Management 沈备军
Elaboration Phase: Objectives
Define, validate and baseline the architecture as rapidly as is practicalBaseline the visionRefine support environmentBaseline a detailed plan for the Construction phaseDemonstrate that the baseline architecture will support the vision at a reasonable cost in a reasonable period of time
12Software Process and Management 沈备军
Elaboration Phase: Evaluation Criteria
Product Vision and requirements are stable. Architecture is stable. Key test and evaluation approaches are proven; major risk elements have been addressed and resolved. Iteration plans for Construction phase are of sufficient detail and fidelity to allow work to proceed, and are supported by credible estimates. All stakeholders agree that current vision can be met if the current plan is executed to develop the complete system, in the context of the current architecture. Actual resource expenditures versus planned expenditures are acceptable.
Milestone: Lifecycle Architecture (LCA)
软件开发过程 沈备军
3
13Software Process and Management 沈备军
Construction Phase: Objectives
Complete the software product for transition to productionMinimize development costs by optimizing resources and avoiding unnecessary scrap and reworkAchieve adequate quality as rapidly as is practical Achieve useful versions (alpha, beta, and other test releases) as rapidly as possible
14Software Process and Management 沈备军
Construction Phase: Evaluation Criteria
The evaluation criteria for the Construction phase involve the answers to these questions:
Is this product release stable and mature enough to be deployed in the user community? Are all the stakeholders ready for the product’s transition into the user community? Are actual resource expenditures versus planned still acceptable?
Milestone: Initial Operational Capability (IOC)
15Software Process and Management 沈备军
Transition Phase: Objectives
Achieve user self-supportability Achieve stakeholder concurrence that deployment baselines are complete and consistent with the evaluation criteria of the visionAchieve final product baseline in a rapid and cost-effective manner
16Software Process and Management 沈备军
Transition Phase: Evaluation Criteria
The primary evaluation criteria for the Transition phase involve the answers to these questions:
Is the user satisfied? Are actual resources expenditures versus planned expenditures acceptable?
Milestone: Product release (“GA”)
17Software Process and Management 沈备军
Typical Effort and Time Percentages by Phase
10%50%30%10%Time/Schedule10%65%20%5%Effort
TransConstElabInc
Time
People
ConstElab TransInc
18Software Process and Management 沈备军
Lifecycle Evolution of Artifacts
With the iterative approach, artifact sets mature over time.
软件开发过程 沈备军
4
19Software Process and Management 沈备军
RUP 按内容组织
The disciplines are:Business ModelingRequirementsAnalysis & DesignImplementationTest
RUP content is organized into disciplines.
A discipline is a collection of activities that are all related to a major ‘area of concern’.
DeploymentConfiguration &
Change ManagementProject ManagementEnvironment
20Software Process and Management 沈备军
两者结合: 迭代方法time
content
Disciplines group related activities.
In an iteration, you walk through all disciplines.
21Software Process and Management 沈备军
• Results of previous iterations• Up-to-date risk assessment• Controlled libraries of models,
Rational Unified ProcessCaptures and presents best practicesIs a Web-enabled, tailorable knowledge base that enables efficient development of quality softwareIs continuously improved with regular upgradesContains templates, guidelines, and online Help Promotes common vision and cultureMentors successful use of tools
Process ManualsYour Process Online
23Software Process and Management 沈备军
What Is an Iteration?
Iteration: A distinct sequence of activities with a baselinedplan and evaluation criteria resulting in a release (internal or external).
In an iteration, you walk through all disciplines.
24Software Process and Management 沈备军
Changing Focus of Phases Over Time
Planned (Technical) Visibility Points
TransitionIteration
TransitionIteration
DevelopmentIteration
DevelopmentIteration
DevelopmentIteration
Architecture Iteration
ArchitectureIteration
PreliminaryIteration
TransitionConstructionElaborationInception
Acceptanceor end of life
Product sufficiently mature for customers to use (Have a solution)
Architecture baselined(Understand the solution)
Scope and Business Case agreement(Understand the problem)
Planned (Business) Decision Points
软件开发过程 沈备军
5
25Software Process and Management 沈备军
Changing Focus of Iterations Over Time
Time
Req
Design
Impl
Test
Deploy
Iteration 1 Iteration 2 Iteration 3
26Software Process and Management 沈备军
Duration of an IterationAn iteration begins with planning and requirements and ends with an internal or external release.Ideally an iteration should run from two to six weeks, depending on your project size and complexity.Factors that affect duration of an iteration:
Size, stability and maturity of organizationFamiliarity with the iterative processSize of projectTechnical simplicity of projectLevel of automation used to manage code, distribute information, perform testing
27Software Process and Management 沈备军
Number of IterationsRule of thumb: Use 6 ± 3 iterations
211Transition
963Total
321Construction
321Elaboration
110Inception
HighMediumLowPhase
28Software Process and Management 沈备军
Conditions that Increase the Number of Iterations
TransitionNeed for alphas and betasConversions of customer baseIncremental delivery to customers
ConstructionLots of code to write and verify New technology or development tools
ElaborationWorking with new system environment (new architectural features)Untested architectural elementsNeed for system prototypes
InceptionWorking with new functionality Unknown business environmentHighly volatile scopeMake-buy decisions
29Software Process and Management 沈备军
One IterationArtifact: Iteration Assessment
Artifact: Iteration Plan
Reduce risk
Accept change
Steer project
Start Iteration Using Iteration Plan
Start Next Iteration
Complete Planned Iteration Work
Adjust Objectives
Adjust Target Product
Adjust Remaining Plan
Plan Next Iteration
Project StoppedStop
Assess Iteration
Continue
•Consider risks
•Add Change Control Board-approved changes
30Software Process and Management 沈备军
Artifact: Iteration Plan
A time-sequenced set of activities and tasks, with assigned resources, and containing task dependencies. A fine-grained plan, one per iteration.
软件开发过程 沈备军
6
31Software Process and Management 沈备军
Iteration Plan Example
Shows timeframes and resources by discipline
Outline of an Iteration Plan
Iteration Schedule section for Requirements discipline
32Software Process and Management 沈备军
Artifact: Iteration Assessment
The Iteration Assessment captures the result of an iteration, the degree to which the evaluation criteria were met, lessons learned, and changes to be done.
33Software Process and Management 沈备军
Concepts That Drive Iterative Development
Some important concepts that affect iterative development are:
1) Early mitigation of risk
2) Early baselining of architecture
3) Use of objective metrics
34Software Process and Management 沈备军
Tailoring RUP For Your Project: A Simple PictureRUP Organizer
•Map content files to your process model to create a completed plug-in.
•Export completed plug-ins to RUP Builder
RUP Builder
•Import plug-ins
•Make checkmark selections to define various RUP configurations
•Define your choice of views for RUP configurations
•Publish RUP Web sites from configurations
•Personalize your view of the RUP Web site on your desktop.
MyRUP
•Design your plug-in
RUP Modeler
What You Get:
Process model + content files = completed plug-in
Process model
=Plug-in X + part of Plug-in Y + parts of RUP base = your configuration
Downloadable from RDNXPCreative DesignAsset-based DevelopmentEtc…
36Software Process and Management 沈备军
本节内容
统一软件过程 RUP敏捷过程 Agile Process
XPSCRUM微软产品开发过程MSF
选择和实施软件过程
评估软件过程
软件开发过程 沈备军
7
37Software Process and Management 沈备军
Orthodox Methodologies 传统的软件开发方法
目的Seek to avoid chaotic “code & fix” approachImpose a disciplined process on software developmentGoal is to make development more efficient and predictableStrong emphasis on “planning” inspired by engineering disciplines
特点:重载(Heavyweight)Emphases Process 强调过程
Emphases Documents 强调文档
Heavy Burdens for Developers 开发人员负担过重
38Software Process and Management 沈备军
New Challenge in Software Development
Fast-Moving Markets快速的市场进入时间
Fast-Changing Requirements快速变化的需求
Fast-Developing technologies快速发展的技术
Most developers and managers try to sidestep or manipulate the bureaucracy & complexity of the process
39Software Process and Management 沈备军
So, Ask…
If design is good, why not make it everyone’s job?If simplicity is good, why not use the simplest design that supports the currently desired functionality?If architecture is good, why not have everyone work at defining and refining the architecture continuously?If short iterations are good, why not make iterations really short (hours and days) instead of weeks and months?If requirements, design, and code reviews are good, why not do it all the time?If testing is good, why not do it all the time… even customers?If integration testing is good, why not do it several times a day?
Quickness – act rapidlyLightness – do the minimum neededNimbleness – adapt to change
42Software Process and Management 沈备军
敏捷过程的含义
敏捷过程很容易适应变化并迅速做出自我调整,在
保证质量的前提下,实现企业效益的最大化。
敏捷过程在保证软件开发有成功产出的前提下,尽量减少开发过程中的活动和制品,Just enoughThe most immediate difference is that they are less document-oriented, usually emphasizing a smaller amount of documentation for a given task. In many ways they are rather code-oriented: following a route that says that the key part of documentation is source code.
Team Empowerment 自我管理The project team is divided into self-managing multi-function units called Sprint Teams consisting of up to six or seven people. The team is empowered to use whatever development methods or tools they think best to prepare their deliverables
Iterative Development 迭代开发The project deliverables are built over several iterative development cycles, each adding additional features, and each resulting in demonstratable results: working code, written documentation, viewable designs, etc.
75Software Process and Management 沈备军
Scrum过程框架
Sprint 周期为30天的迭代
Backlog待办事项表(功能和非功能需求清单)
Daily Scrum每日15分钟简会
76Software Process and Management 沈备军
Scrum PlayersScrum 项目组
• Product Owner• Adds items to product backlog list• Set priorities
• Team• Determines sprint list (determine what can be done )• Develops software
• ScrumMaster (相当于传统的项目经理角色)• Responsible for Scrum process• Removes impediments
Other interested parties• Stakeholder
• Funded project, will use it, affected by it• Requests enhancements
• IT Management• Manpower allocation• Budgets & Billing
• Senior Business Management• Best use of corporate resources
77Software Process and Management 沈备军By Kevin Aguanno. (C) 2002 Element K Journals.
F e a tu re 1
F e a tu re 3
F e a tu re 7
F e a tu re 2
F e a tu re 4
F e a tu re 5
F e a tu re 6
G r o u p e d L is t o f F e a tu r e s
F e a tu re 1
F e a tu re 2
F e a tu re 3
F e a tu re 4
F e a tu re 5
F e a tu re 6
F e a tu re 7
In it ia l L is t o f F e a tu r e s
P la n n in g
S p r in t # 1
S p r in t # 2
Integrated D
emonstration
C lo su r e
P r o d u c t B a c k lo g
S C R U M S tr u c tu r e
Scrum Project Structure
78Software Process and Management 沈备军
一个Sprint
Sprint Planning meeting ( two 4 hour segments )• Product owner & Team: identifies backlog items to be delivered in
30 day sprint / Team commits• Team plans details in Sprint Backlog
Daily Scrum Meeting ( 15 minutes )• Team: Review prior day, identify impediments, plan day
Owner and other interested partiesSprint Retrospective meeting ( 3 hours )
• Team: how to improve next sprint or make more enjoyable
软件开发过程 沈备军
14
79Software Process and Management 沈备军
Daily SCRUM Meeting
This is a daily meeting attended by all team members for a Sprint. The call is generally very brief (15 mins.), the purpose of which is to update the project manager and other team members on progress and to raise any issues that the project manager or other team members can assist with. Three questions are answered by each participant:
What did I do in the last 24 hours? What do plan to do in the next 24 hours? What obstacles are standing in my way?
Using Versioned ReleasesForce closure on project issuesSet clear and motivational goals with all team membersManage the uncertainty and change in project scopeEncourage continuous and incremental feature deliveryEnable shorter time to market
Time
Func
tiona
lity
Version 1
Version 2
Version 3
90Software Process and Management 沈备军
Daily Builds and Internal Releases
Daily builds lead to internal (alpha releases)
InternalRelease
n
InternalRelease
n + 1Testing andStabilizing
BufferTime
FeatureDevelopment
Daily Builds
软件开发过程 沈备军
16
91Software Process and Management 沈备军
Baseline Early, Freeze Late
Project plans approved
Scope complete
Release readiness approved
Deployment complete
Vision/scope approved
Free
ze
Baseline
92Software Process and Management 沈备军
Testing that is acceptable on one project may be criminal on anotherTesting TargetsTrend AnalysisMetrics:
Identifying, analyzing, and addressing risk proactively
To manage risk proactivelyAnticipate problems vs. Fixing them when they occur
Address root causes vs. Addressing symptoms of the cause
Prevent and minimize risk vs. Reacting to consequencesthrough mitigation
Prepare for consequences vs. Reacting to a crisisto minimize impact
Use a known and vs. Using an ad-hoc processstructured process
94Software Process and Management 沈备军
MSF for Agile Software Development
First agile process that considers the whole software lifecycle and the full software team.Iterative and incrementalScenario-drivenSmall teamsQuality of Service requirementsRisksUtilizes a context-driven testing approach (based on test metric thresholds)
95Software Process and Management 沈备军
迭代(Iteration)Product definition, development, and testing occur in overlapping iterations. Small iterations allow you to reduce the margin of error in your estimates and provide fast feedback. Each iteration should result in a stable portion of the overall system.
96Software Process and Management 沈备军
管理(Governance)
软件开发过程 沈备军
17
97Software Process and Management 沈备军
角色(Roles)
Business Analyst Project Manager ArchitectDeveloper Tester Release Manager
98Software Process and Management 沈备军
工作项(work item)
5 work items to assign and track workScenarioQuality of service requirement• Security, performance, and user experience
TaskBugRisk
99Software Process and Management 沈备军
MSF for CMMI Process Improvement
First agile CMMI processHelp organizations operate at Capability Maturity Model Integration (CMMI) level 3, a standard defined by the Carnegie Mellon Software Engineering Institute (SEI) Elaborates on the MSF for Agile Software Development process
More work itemsExtensive reporting
Does not replace process improvement infrastructure
100Software Process and Management 沈备军
过程模型
Project plans approved
Scope complete
Release readiness approved
Deployment complete
Vision/scope approved
Milestone-basedIterativeFlexible
101Software Process and Management 沈备军
管理(Governance)
5 phases / milestones102Software Process and Management 沈备军
角色(Roles)
软件开发过程 沈备军
18
103Software Process and Management 沈备军
大项目的团队
Feature teams
Lead teamProgram
Management
ReleaseOperations
ProductManagement
UserExperience
Development
Test
Catalog
ProgramManagement
Development
Test
Site Engine & Design
ProgramManagement
UserExperience
Development
Test
Fulfillment
ProgramManagement
UserExperience
Development
Test
ReleaseOperations
Architecture
Architecture
Architecture
Architecture
104Software Process and Management 沈备军
工作项(work item)
7 work items to assign and track workTask Change Request Risk Review Requirement Bug Issue
105Software Process and Management 沈备军
每个阶段的主要活动(Activity)
Project Plans ApprovedScope
Complete
Release Readiness Approved
Deployment complete
Vision/Scope Approved
Pilot Complete
User Acceptance Testing Complete
Pre-Production Test Complete
Release Candidates
Zero Bug Bounce
Bug Convergence
Technology Validation
Functional Specification Baselined
Master Plan Baselined
Master Schedule Baselined
Development and Test Environment Set Up
Deployment Stable Interim Milestone
Site Deployments Complete Interim Milestone
Core Components Deployed
Core Team Organized
Vision/Scope Drafted
Proof of Concept CompleteInternal Build 1 Complete
Internal Build 2 CompleteInternal Build n Complete
106Software Process and Management 沈备军
本节内容
统一软件过程 RUP敏捷过程 Agile Process
XPSCRUM微软产品开发过程MSF
选择和实施软件过程
评估软件过程
107Software Process and Management 沈备军
最佳过程?
“One Size does not Fit All”不同的项目需要不同过程
具体环境:项目、产品(军用、民用等)、
资源、团队、文化、地域(集中、分布等)……层次:组织过程、项目过程、团队过程、个人过程
业务目标
开发类型:新产品、重用、COTS、维护、服务、产品线……
108Software Process and Management 沈备军
过程选择原则
越大的团体需要越大的过程。
越关键的系统(未发现的缺陷将产生更严重的灾害)在构建的正确性方面需要越多的透明度(更大的密度)。
在过程大小或密度上相对小的增加会引起项目成本相对大的增长。
最有效的沟通(交换意见)方式是面对面的互动,例如在白板前的讨论。
——Alistair Cockburn, Selecting a Project’s Methodology
Quantitatively Managed3 定义级 Defined2 管理级 Managed1 初始级 Performed
116Software Process and Management 沈备军
CMMI 结构
Maturity LevelsProcess
Capability Indicate
Key Process Areas
Goals
Contain
Achieve
Common Features
Implementation
Organized by
Address
Key Practices
Activities
Contain
Describe
117Software Process and Management 沈备军
A Management View of Visibility Into the Software Process at Each Maturity Level
118Software Process and Management 沈备军
Example - Buying a Vehicle for Family Transportation
?
119Software Process and Management 沈备军
Ineffective Approach
Go to “Vehicles R Us” and, on a whim, buy a really neat motorcycle!
Result: Goal of obtaining family transportation is not met.
(Capability level 0)Incomplete
120Software Process and Management 沈备军
Most Basic Approach
Go to “Vehicles R Us” and let a salesman talk you into the first thing that will hold your family.
Result: Goal of obtaining family transportation is met, but how deliberate was this approach? If this worked this time, could you predict similar success the next time?
(Capability level 1) Performed
软件开发过程 沈备军
21
121Software Process and Management 沈备军
A More Deliberate Approach
Develop a plan for your approach. Allocate the time for the task. Educate yourself on how to do it. Follow the plan. Have your spouse “keep you honest” on following your approach.
PLAN1…..
2 …..
Result: Goal of obtaining family transportation is met. Approach may be repeated the next time.
(Capability level 2) Managed
122Software Process and Management 沈备军
Turning this into a Business
You get so good at this, you develop an approach to be used by other families. You can tailor your approach to different family finances and needs. You improve your approach to stay in business.
Result: Goal of obtaining family transportation is met for a variety of situations. Can repeat success in different contexts. (Capability level 3) Defined
How toBuy
123Software Process and Management 沈备军
Using Numbers to Run Things
You get really good at this. Building on what you have, you collect numbers and use them to run all important aspects of the business.
123
1 ….2 ….3 ….
Result: Goal of obtaining family transportation is met in a variety of situations. Management of the business is quantitative rather than intuitive.(Capability level 4) Quantitatively Managed
124Software Process and Management 沈备军
Using Numbers to Improve Things
You get really good at this and continue improving. You use your numbers to run and improve all important aspects of the business.
Result: Business goals are met. Culture of continuous improvement driven by numbers is the “way we do business.”
(Capability level 5) Optimizing
125Software Process and Management 沈备军
A Common Theme: Learn from the Experience
At each step determineWhat went well?What could be improved and how?
Make improvements in the process.Use measures to help.
1234
126Software Process and Management 沈备军
Remember
CMM/CMMI model is not a process.
CMM/CMMI model shows what to do, NOT how to do it or who does it.
软件开发过程 沈备军
22
127Software Process and Management 沈备军
SetContext
BuildSponsorship
CharterInfrastructure
CharacterizeCurrent &Desired States
DevelopRecommendations
SetPriorities Develop
Approach
PlanActions
CreateSolution
Pilot/TestSolution
RefineSolution
ImplementSolution
AnalyzeandValidate
ProposeFutureActions
Stimulus for Change
Initiating
Diagnosing
Establishing
Acting
Learning
软件过程改进的IDEALSM 模型
128Software Process and Management 沈备军
Using CMMI Models with the IDEAL Model 1
Initiating phaseCMMI models can assist an organization in understanding how to build sponsorship and in developing the infrastructure for improvement.
Diagnosing phaseThe Standard CMMI Appraisal Methodology for Process Improvement (SCAMPISM) provides a yardstick for appraising processes based on CMMI.
129Software Process and Management 沈备军
Using CMMI Models with the IDEAL Model 2
Establishing phaseCMMI process areas focus the process improvement teams.
Acting phase CMMI models provide guidance for defining or improving processes.
Learning phaseLessons learned are documented and are the basis for revision of an organizational approach.