软件过程管理Unit_002.ppt
《软件过程管理Unit_002.ppt》由会员分享,可在线阅读,更多相关《软件过程管理Unit_002.ppt(65页珍藏版)》请在冰豆网上搜索。
1UnitNineSoftwareProcessManagementChenGInternationalSchoolofSoftware,WHU2软件过程管理UnitNine第九单元Rational统一软件过程陈刚武汉大学国际软件学院3目录七、项目管理规程八、业务建模规程九、需求规程十、分析和设计规程十一、实现规程十二、测试规程UnitNine4七、项目管理规程
(1)UnitNineu目的项目管理规程有以下三个目的:
l为管理软件密集型项目提供框架。
l为项目计划、执行、人员分配和监督提供实际的指南。
l为管理风险提供框架。
这个RUP规程并没有试图覆盖项目管理的所有方面。
它主要关注的是迭代开发过程的某些方面:
l制定一个整个生命周期的迭代项目计划以及某个特定迭代的计划。
l风险管理。
l监督迭代项目的进展情况和度量。
5七、项目管理规程
(2)UnitNineu计划迭代项目项目计划的目标是:
l在一段时间内给一个团队中的人员分派任务和职责。
l监督与所做计划相关的工作的进展情况,在项目展开过程中发现潜在的问题。
在迭代过程中,我们建议要基于以下两个计划:
l一个粗粒度的计划:
阶段计划l一个细粒度的计划:
迭代计划可以将迭代计划想象成一个在阶段计划中移动的窗口,它扮演着放大镜的角色。
因为迭代过程是动态的,会随着目标和战略的改变而调整,所以不用花过多的时间做一个超越当前计划范围的详细计划。
6七、项目管理规程(3)UnitNineu风险的概念:
什么是风险风险就是阻挡在我们成功路上的障碍物,并且当前是未知和不确定的。
进一步可将风险量化为直接风险和间接风险。
l直接风险:
项目对其控制得很好的风险。
l间接风险:
项目对其几乎或完全没有控制的风险。
我们也可以为风险加上两条重要的属性:
l发生的概率(可能性)l对项目的影响(严重性)这两个属性通常被合并为一个属性:
风险量级指标,它取5个离散值:
最高、较高、适中、较低、最低。
7七、项目管理规程(4)UnitNineu风险的概念:
策略如何处理风险风险管理中的关键思想是:
在决定如何处理风险之前,不能被动地等待风险变成问题。
对任何一个可预测的风险,必须提前采取行动。
可采取以下3中主要的方法:
l避免风险l转移风险l接受风险当你接受了风险时,要做两件事:
l缓解风险l制定应急计划风险在计划迭代的活动中扮演了一个重要的角色。
8七、项目管理规程(5)UnitNineu度量的概念度量的主要目的是更好地控制项目从而管理好项目。
度量有两种类型:
l度量:
是一个实体的具体的数字化属性(例如一个数字、一个百分比、一个比率)。
l原始度量:
是一个原始数据项,用来计算一个度量。
每个度量都是一个或多个度量的集合。
因此,每一个原始度量都必须明确定义,而且要说明集合过程。
9七、项目管理规程(6)UnitNineu角色和制品10七、项目管理规程(7)UnitNineu角色和制品项目管理规程中的主要角色是项目经理。
项目管理规程中的关键制品如下:
l软件开发计划(SDP)l业务用例l迭代计划(每个迭代有一个迭代计划)l迭代评估l(定期的)状态评估l工作顺序l项目度量数据库SDP又包含以下几个制品:
l产品接受计划l风险管理计划(和风险清单)l问题解决方案l度量计划11七、项目管理规程(8)UnitNineu工作流FigureWorkflowinprojectmanagement12七、项目管理规程(9)UnitNineu工作流:
工作流细节每一个活动代表了一个RUP的工作流细节。
每一个工作流细节依次包含了一个或多个活动。
工作流被分解为一组工作流细节:
l构思新项目l评价项目的范围和风险l制定软件开发计划l计划下一个迭代l监督和控制项目l管理迭代l停闭阶段l停闭项目13七、项目管理规程(10)UnitNineu工作流:
制定一个阶段计划为了制定阶段计划,需要对项目规模有一个大致的估计。
然后,从计划的结束日期向前倒推,安排每个重要里程碑的假设日期。
研究表明,不能用人员交换时间:
如果一个女人怀胎9月可以生下一个孩子,为什么不能让9个女人在一个月中生下一个孩子呢?
为了精化里程碑日期,可以从一个典型的外廓(Profile)出发。
14七、项目管理规程(11)UnitNineu工作流:
制定一个阶段计划根据项目的实际情况,拉伸这个外廓使之适应你的环境。
使用未知的新技术,可以延长细化阶段的时间。
迭代是一个几乎完整的袖珍项目,期中要经历所有的主要工作流,大多数情况下会产生一个可以执行但不完整的系统。
通常,一个迭代的时间跨度是26周,但也因项目而异。
完成迭代开发的速度取决于项目开发组织的规模。
15一、最佳的软件开发实践(6)UnitEightu需求管理软件密集型系件密集型系统的需求管理的挑的需求管理的挑战在于它在于它们的的动态性。
性。
明确一个系明确一个系统的真正需求是一个持的真正需求是一个持续的的过程。
程。
管理管理项目需求可以提供一系列的解决目需求可以提供一系列的解决软件开件开发根根本本问题的方案:
的方案:
l在需求管理中内建规程化的方案l人员之间的交流建立在已定义的需求之上l区分需求优先级,并进行过滤与跟踪l可以对功能和性能做出客观的评估l借助适当的工具支持,使用与外部文档的自动链接,可以为系统的需求、属性和轨迹提供库支持16一、最佳的软件开发实践(7)UnitEightu应用基于构件的架构构件构件Component架构架构Architecture一个系一个系统的架构包含关于以下元素的一系列的重要的架构包含关于以下元素的一系列的重要的的结论:
l软件系统的组织l组成系统的结构元素以及它们的接口的选择l它们的行为,通过这些元素之间的协作来说明l将这些结构元素和行为元素组合成为较大的子系统l指导组织的架构风格:
这些元素和它们的接口,它们的协作和组合17一、最佳的软件开发实践(8)UnitEightu为软件建立可视化模型18一、最佳的软件开发实践(9)UnitEightu为软件建立可视化模型模型是模型是现实的的简化,它从一个特定的角度完整地描化,它从一个特定的角度完整地描述了一个系述了一个系统。
为软件建立可件建立可视化模型可以提供一系列的解决化模型可以提供一系列的解决软件件开开发根本根本问题的方案:
的方案:
l通过用例和场景可以无二义性地详细说明行为l通过模型可以无二义性地理解软件设计l暴露出非模块化的和不灵活的架构l必要时可以隐藏细节l无二义性的设计可以更容易地反映出不一致性l高质量的应用程序应该从好的设计开始l可视化建模工具提供对UML建模的支持19一、最佳的软件开发实践(10)UnitEightu对软件的质量进行持续的验证在完成部署之后再去查找软件问题,所付出的代价要比在早期进行这项工作高出1001000倍。
20一、最佳的软件开发实践(11)UnitEightu对软件的质量进行持续的验证验证一个系一个系统的功能的功能测试活活动的主要工作的主要工作包括包括对每个关每个关键场景景进行行测试。
对软件件质量量进行行验证可以提供一系列的解决可以提供一系列的解决软件开件开发根根本本问题的方案:
的方案:
l对于项目状况的评估是客观而非主观的,因为我们评价的是测试结果而非书面文档l这个客观的评估可以暴露需求、设计和实现中的不一致l测试和验证的工作关注的是高风险区域,因此增加了这些区域的质量水平和效率l可以尽早发现缺陷,从根本上降低修复它们的代价l自动化测试工具提供了对功能、可靠性和性能的测试21一、最佳的软件开发实践(12)UnitEightu控制软件的变更要将迭代要将迭代过程和程和发布布协调一致,就要在每次迭代一致,就要在每次迭代结束束时建立并建立并发布一个已布一个已测试过的基的基线。
控制控制软件的件的变更可以提供一系列的解决更可以提供一系列的解决软件开件开发根本根本问题的方案:
的方案:
l定义需求变更的工作流,且需求变更的工作流可重复l变更请求使交流更加清晰l独立的工作空间减少了并行工作的团队成员之间的相互干涉l变更率统计表为客观评估项目状况提供了很好的度量l工作空间包含了所有制品,这样有利于保持一致性l变更的传播是可评估和可控制的l可以在一个健壮的、可定制的系统中维护变更22一、最佳的软件开发实践(13)UnitEightuRUP软件开件开发过程有四种角色:
程有四种角色:
l为团队的活动顺序提供指导l详细说明开发哪些制品以及何时开发l指导每一个开发人员和整个开发团队的任务l为监控和度量项目的产品和活动提供标准23二、RUP
(1)UnitEightu什么是RUPRUP是一种软件工程过程RUP是一个过程产品RUP也是一个过程框架RUP以一种大多数项目和开发组织都能适应的形式,吸收了许多现代软件开发中的最佳实践。
24二、RUP
(2)UnitEightu作为产品的RUPRUP本身也是一个本身也是一个软件件产品:
品:
lIBM公司定期地发布升级版本l利用网络技术可以在线交付RUPlRUP与IBM公司的Rational系列软件开发工具集成,开发人员可以在这些他们使用的工具中获得过程指导将过程作为一种软件产品有如下好处:
将过程作为一种软件产品有如下好处:
l过程从不会过时l所有项目人员可通过公司内网访问过程配置的最新版本l便于查找及时更新的过程指导或策略,包括最新模板l通过超链接导航至开发工具或指导文档l可以很容易地包含特定项目或程序l每个项目或部门可管理他们自己的过程版本或过程变体25二、RUP(3)UnitEightu作为产品的RUP第一第一维代表代表过程被激活程被激活时动态的一面:
通的一面:
通过周期、周期、阶段、迭代和里程段、迭代和里程碑表示。
碑表示。
第二第二维代表代表过程静程静态的一面:
通的一面:
通过过程构件、活程构件、活动、规程、制品和角程、制品和角色来描述。
色来描述。
26二、RUP(4)UnitEightuRUP中的最佳软件实践:
迭代开发它可以使你考它可以使你考虑需求的改需求的改变。
集成工作不是最后集成工作不是最后结尾尾时的的“大爆炸大爆炸”;相反,元素是逐;相反,元素是逐渐集成起来的。
集成起来的。
迭代开迭代开发可以在早期降低可以在早期降低风险,因,因为通常只有在集成通常只有在集成过程中才能程中才能发现或找到或找到风险。
对产品做品做战略性改略性改变时,迭代开,迭代开发提供了相提供了相应的的变更管更管理方法。
理方法。
迭代开迭代开发可以方便复用。
可以方便复用。
因因为可以在几个迭代可以在几个迭代过程中不断修正程中不断修正错误,所以架构会,所以架构会变得更加得更加坚固。
固。
开开发人人员可以在可以在过程中不断学程中不断学习。
开开发过程本身也在不断地提高和精化。
程本身也在不断地提高和精化。
27二、RUP(5)UnitEightuRUP中的最佳软件实践:
需求管理需求管理是一种系需求管理是一种系统性的方法,用于抽取、性的方法,用于抽取、组织、交流、交流、和管理和管理软件密集型系件密集型系统或或应用程序中不断改用程序中不断改变的需求。
的需求。
有效的需求管理具有以下有效的需求管理具有以下优点:
点:
l更好地控制复更好地控制复杂项目。
目。
l提高提高软件件质量和客量和客户满意度。
意度。
l降低降低项目成本和延目成本和延迟。
l增增强团队中的交流。
中的交流。
28二、RUP(6)UnitEightuRUP中的最佳软件实践:
架构和构件的使用RUP的的设计活活动,是以架构(,是以架构(Architecture,系,系统架构或架构或软件架构)件架构)为中心的。
中心的。
RUP提供了一个提供了一个设计、开、开发、验证架构的系架构的系统性的方法。
性的方法。
它它还提供了一个模板,用以描述建立在多重架构提供了一个模板,用以描述建立在多重架构视图概概念基念基础上的架构。
上的架构。
软件构件(软件构件(Component)是软件、模块、包或子系统的)是软件、模块、包或子系统的一个重要部分,它完成了一个明确的功能,有着明确的一个重要部分,它完成了一个明确的功能,有着明确的界限,并能够集成到一个定义良好的架构中。
界限,并能够集成到一个定义良好的架构中。
29三、静态结构:
过程描述
(1)Unit