01.RUP统一软件过程概论
- 格式:pdf
- 大小:1.03 MB
- 文档页数:77
1 什么是Rational 统一过程(Rational Unified Process,RUP)1.1 什么是过程1.2 什么是软件开发过程1.3 什么是统一过程1.3.1 统一过程是用例驱动的1.3.2 统一过程是以构架为中心的1.3.3 统一过程是迭代和增量的1.4 关于RUP产品2 RUP产品为软件开发过程所提供的主要实践指导2.1 迭代的开发产品2.2 需求管理2.3 基于构件的体系结构2.4 可视化软件建模2.5 验证软件质量2.6 控制软件的变更3 过程简介3.1 基本定义3.1.1二维结构3.1.2 角色3.1.3 活动3.1.4 产物3.1.5 工作流3.2 循环或周期3.3 阶段3.3.1 初始阶段3.3.2 细化阶段3.3.3 构建阶段3.3.4 交付阶段3.4 迭代过程3.5 核心工作流(Core workflows)3.5.1 商业建模3.5.2 需求3.5.3 分析和设计3.5.4 实现3.5.5 测试3.5.6 发布3.5.7 项目管理3.5.8 配置和变更管理3.5.9 环境1 什么是Rational 统一过程(Rational Unified Process,RUP)1.1 什么是过程过程是为了达到一个确定的目标,需要什么人在什么时间以何种方式做何种工作的集合。
1.2 什么是软件开发过程软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。
1.3 什么是统一过程统一过程是一个软件开发过程。
它提供了在开发组织中分派任务和责任的纪律化方法。
它的目标是在可预见的日程和预算前提下,确保实现满足最终用户需求的高质量产品。
统一过程不是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统,各种不同的应用领域,各种不同类型的组织,各种不同的功能级别以及各种不同的项目规模。
统一过程是基于构件的,即所构造的软件系统是由软件构件通过明确定义的接口相互连接所建造起来的。
1什么是Rational统一过程(Rational Unified Process,RUP)1.1什么是过程1.2什么是软件开发过程1.3什么是统一过程1.3.1统一过程是用例驱动的1.3.2统一过程是以构架为中心的1.3.3统一过程是迭代和增量的1.4关于RUP产品2RUP产品为软件开发过程所提供的主要实践指导2.1迭代的开发产品2.2需求管理2.3基于构件的体系结构2.4可视化软件建模2.5验证软件质量2.6控制软件的变更3过程简介3.1基本定义3.1.1二维结构3.1.2角色3.1.3活动3.1.4产物3.1.5工作流3.2循环或周期3.3阶段3.3.1初始阶段3.3.2细化阶段3.3.3构建阶段3.3.4交付阶段3.4迭代过程3.5核心工作流(Core workflows)3.5.1商业建模3.5.2需求3.5.3分析和设计3.5.4实现3.5.5测试3.5.6发布3.5.7项目管理3.5.8配置和变更管理3.5.9环境1什么是Rational统一过程(Rational Unified Process,RUP)1.1什么是过程过程是为了达到一个确定的目标,需要什么人在什么时间以何种方式做何种工作的集合。
1.2什么是软件开发过程软件开发过程是一个将用户需求转化为软件系统所需要的活动的集合。
1.3什么是统一过程统一过程是一个软件开发过程。
它提供了在开发组织中分派任务和责任的纪律化方法。
它的目标是在可预见的日程和预算前提下,确保实现满足最终用户需求的高质量产品。
统一过程不是一个简单的过程,而是一个通用的过程框架,可用于各种不同类型的软件系统,各种不同的应用领域,各种不同类型的组织,各种不同的功能级别以及各种不同的项目规模。
统一过程是基于构件的,即所构造的软件系统是由软件构件通过明确定义的接口相互连接所建造起来的。
(构件:系统中一个物理上可替代的部分,它符合并提供一组接口的实现)统一过程使用统一建模语言(UML)来制定软件系统的所有蓝图。
RUP统一软件过程概论胡协刚软件架构师UML/RUP专家szjinco@中国软件架构师网 内容提要¾软件开发过程¾RUP总体概貌¾RUP核心过程概貌¾裁减和采用RUP¾CMMI与RUP¾扩展RUP中国软件架构师网 软件开发过程软件开发过程中的常见问题•老板指定了一个负责人并给了几个人选后,项目组便算是成立了;然而项目开始一段时间了,各成员却并不明了自己在项目中的角色与职责,结果有的事没人做,有的事却同时有多人在做,争吵越来越多,项目很难推进下去;•项目当前构架混乱、程序员各行其是、重复代码满天飞、命名到处冲突,最后只能用“一盘散沙”来形容开发出的软件;中国软件架构师网 软件开发的要素z软件开发通常以项目为单位来组织展开z开发需要各种资源,这主要包括:具备相应技能和能够遵循过程的人;项目交付所依赖的技术(已有构件、构架框架、设计模式等);符合过程要求、支持开发人员工作的合适工具z按照项目需求,组织人员执行一系列将用户需求转化为交付系统的活动,这些活动包含产出工件、人员角色、执行步骤、方法、和工具运用等元素,由此在时间维度上形成软件开发的一个执行实例中国软件架构师网 软件开发要素的关注点z项目:目标,资源,成本,进度,风险…z人员:利益,角色,职责…z产品/服务:架构,工作,质量…z工具:效率,配置…z过程:活动,任务,工作流程…中国软件架构师网 人员至关重要z人员:与项目相关的所有人力资源。
如与开发相关的架构师、开发人员、测试人员和项目管理人员;与项目相关的用户、投资商、销售人员等z这里人员是指实际的个人(individual),因此我们将他们视作项目的资源(resource)。
与后面提到的工作角色(Role)的概念不同,工作角色是将人员放在项目的特定工作职位上形成的岗位概念中国软件架构师网 人员与角色z人员–项目组的成员个体(Individual)z工作角色–项目组的所有相关职位(Job Position) z人员的角色会随着项目而发生变化z如何将“人员”向“工作角色”分配?–项目经理根据每个人的能力分配相应的岗位–根据工作人员所担负职责间的关系中国软件架构师网 项目产出产品z项目–软件系统经历的整个生命周期中所有开发工作的集合,是一个实例化的过程z通过项目将得到产品的新版本z项目实施需要考虑的因素–一系列变化–一系列迭代–组织模式中国软件架构师网 产品z产品–是整个生命周期中产出的所有工件/制品(artifact)的集合z工件/制品(artifact)–系统开发过程中由工作人员创建、生产、修改或使用的各种人造物–模型(UML图)、开发文档、代码、可执行文件等z RUP中的最重要的制品是模型(model),而不是代码(code)中国软件架构师网 软件过程z为了确保不同的项目都能重复取得成功,可以从以往成功的软件开发执行实例中总结和归纳,抽象出一套软件开发活动序列的定义,即——软件过程z软件过程是对开发活动序列的定义,即按照什么顺序,在何时When、由何人Who、在何处Where做什么What(产出的制品),怎么做How才能达成目标Goal,以及为什么等中国软件架构师网 z软件过程是一种抽象定义,实际上为项目开发的具体活动序列提供了模板(template)z软件过程的实例(process instance)可以认为就是项目(project)本身中国软件架构师网 z提供项目的时间轴视图–使开发组每个成员都能理解其在项目中的位置和该做的工作–同时也了解其他开发人员正在做的工作,形成配合z保持开发过程的一致性–使人员和项目经理在项目之间可以方便地调换–使成果的度量具有可比性z开发过程可以在不同项目中重复,即能足够准确地设定工作进度和成本;通过标准化的培训能够保证这种重复的实施中国软件架构师网 有效的软件过程z保证交付产品的质量z迅速减少项目风险(需求、技术等)z保证项目的可预测性(进度、成本等)z能够获得和提供最佳实践方法z促进软件开发领域内的共识和相互理解中国软件架构师网 工具支持过程的实施z可自动化的开发过程才具有实用意义(可操作性),而工具可以将重复的任务自动化,提高工效z工具本身体现了过程的规范,强制使用者依从过程z使整个生命周期的工作更加精确z帮助使用者学习与理解过程及方法z用工具保证模型之间的一致性,以及模型与实现之间的一致性中国软件架构师网 RUP总体概貌RUP过程的基本结构(2003版)中国软件架构师网 过程表达符号Activity ArtifactA unit of work aworker may beasked to perform A piece of information that is produced, modified, or used by a processA role that may be played by an individual or a team in the development organization科目Disciplinez是关于特定关注领域的一组相关活动,它描述了基于一类技能的关联角色、活动与工件,及其关系。
z每个科目下都对应有相应的基本工作流程。
z2000版RUP使用的是工作流Workflow来表达同一概念,2002版之后改用科目Discipline 。
中国软件架构师网 工作流Workflowz核心工作流定义了一组生成特定的工件集(artifacts)而可能要经历的所有活动(activities)序列,并从逻辑上把相关工作角色(Role)和活动划分为组,以描述RUP的逻辑组成部件。
z核心工作流是一种抽象的工作流,它相当于模板,并不在开发过程中真正的执行。
z在不同阶段的迭代中将核心工作流根据不同情况具体化后,在项目开发中执行。
中国软件架构师网 示例:需求工作流中国软件架构师网 中国软件架构师网www.soft 示例:需求工作流明细作模型Project Management PhasesSupporting Workflows Configuration & Change MgmtTransition ConstructionWorkflows group activities logically In an iteration, you walk through all workflows中国软件架构师网迭代工作流Iteration Workflow 中国软件架构师网 工作流要素及其关系z工作流中所包含的活动z活动中输入和产生的制品/工件z参与活动的工作角色中国软件架构师网 活动Activityz活动是具体的工作人员在工作流中执行的有形工作单元,并为项目提供符合要求的结果(工件)z活动有明确的目的,基于明确定义的输入(一组工件),产生明确定义的输出(另一组工件)。
例如一个模型、一个类或一份文档z工作单元:将活动与工作人员相结合形成的概念中国软件架构师网 角色Rolez开发过程中承担相似职责的一类岗位的抽象z角色具有一系列在活动中需要担负的职责中国软件架构师网 角色集Role Setsz Analysts分析人员z Developers开发人员z Managers管理人员z Production and Support产品与支持人员z Testers测试人员z Additional Roles附属人员中国软件架构师网 Each individual in the project is assigned to one or several workers工件Artifactz由工作人员在执行活动的过程中创建、修改和使用的最终或中间产物z工件由某个或多个工作人员负责z通常要被置于配置管理之下中国软件架构师网 工件集Artifact Sets¾Requirements Artifact Set¾Analysis & Design Artifact Set¾Implementation Artifact Set¾Test Artifact Set¾Deployment Artifact Set¾Configuration & Change Management Artifact Set¾Project Management Artifact Set¾Environment Artifact Set¾Business Modeling Artifact Set中国软件架构师网 指南、工具指导和模板z指南是规则、建议和启示,用于支持活动的展开–例如,建模和编码的指南z工具指导阐述了如何使用特定的工具来执行一项活动或活动中的一个步骤–例如,使用Rational Rose构建设计模型z模板是预定义的工件–例如,一个Rational SoDA的模板用于生成Use-Case报告z指南、工具指导和模板使得正确和一致地应用过程(RUP)变得更容易中国软件架构师网 RUP核心过程概貌中国软件架构师网www.soft RUP 总揽RUP核心过程科目Disciplines1)Business Modeling业务建模(开发过程)2)Requirements需求开发(开发过程)3)Analysis & Design系统分析&设计(开发过程)4)Implementation实施(开发过程)5)Test测试(开发过程)6)Deployment部署(开发过程)7)Configuration & Change Management配置与变更管理(支撑过程)8)Project Management项目管理(支撑过程)9)Environment开发环境管理(支撑过程)中国软件架构师网 Configuration and Change Management。