1、CASE,J M U,集美大学工商管理学院信息管理与信息系统系,第3章,电子商务系统分析与设计,软件开发过程,主要内容,RUP统一过程模型在RUP中的作用,统一过程,统一软件开发过程:(Unified Software Development Process) 把增量和迭代开发与瀑布模型提供的传统过程结构结合UP的3个公理: 用例和风险驱动 迭代和增量 构架为中心注:风险知识点延伸参阅课件附,风险管理小案例,HR的烦恼.如此用户!,根据对统一过程生命周期的不同划分方法,统一过程还分为企业统一过程(EUP)、Rational统一过程(RUP)等不同子类型。而极限编程则不同于统一过程,它在本质上属
2、于更为敏捷的一种软件过程,并由一系列简单却互为补充的实践所组成。,RUP统一过程,UML的创始者在创建UML的同时,在Rational公司的支持下综合了多种软件开发过程的长处,提出了一种新的面向对象的软件开发过程,称之为 Rational统一过程(Rational Unified Process,RUP)。,Rational 统一过程,Rational统一过程是一种二维结构的软件开发过程,其中一维是时间,另一维是过程成分(Process Component)。,Rational 统一过程-项目开发阶段,项目开发阶段从管理角度来讲,Rational统一过程把软件项目 的开发过程划分为4个阶段:
3、开端阶段(Inception) 精化阶段(Elaboration) 构建阶段(Construction) 过渡阶段(Transition),Rational 统一过程-项目开发阶段,开端阶段目标:建立商业用例、划定项目领域产物:(见下页),前景文档:对核心项目需求、关键性质、主要限制的一个一般性的前景说明;一个最初的用例模型(大约是整个系统的10到20) 一个最初的项目词汇表(也可以部分地表示成一个领域模型) 一个最初的商业用例,包括商业环境、一些成功的准则(税收预测、市场认知等),以及金融预测 最初的风险评估; 一个项目规划,明确阶段和迭代;,精化阶段 目标:建立一个合理的架构基础,开发项目
4、规划。 产物:用例模型(至少完成了80)识别出了所有的用例和角色,以及大多数用例的描述; 一些增加的需求,包括非功能性需求以及任何与特定用例无关的需求;软件架构描述;一个可执行的架构原型;一个修正后的风险表和商业用例; 一份整个项目的开发规划,包括粗略项目规划,显示“迭代”以及对每个迭代的评估准则; 一个更新过的开发用例,指定要使用的过程: 一份初步的用户手册(可选),在精化阶段实现了系统的逻辑模型和物理模型。严格说来,在精化阶段又分为分析和设计阶段。开发人员在分析阶段根据开端阶段提供的系统需求将其规格说明形式化,构造一个具有系统属性和系统行为的模型。进一步说,得到系统的3个要素,即数据交换(
5、功能模型)、静态结构(对象模型)和交互次序(动态模型)。此时得到系统粗略的逻辑模型。,思考: 传统的结构化分析方法中,上述3种模型如何表示?,构建阶段目标:开发所有其它的组件和应用部件,进行测试,并集成到产品中。 构造阶段的产品是一个可以立即提交给它的用户使用的产品,它至少应该包括; 在足够的平台上集成的软件产品: 用户手册; 对当前版本的描述。 里程碑:初始运行能力,过渡阶段目标:把软件产品过渡给用户群。重点在实现和测试工作流。已做了充分的设计去纠正在b e t a测试中发现的任何设计错误。,RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3
6、个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。,Rational 统一过程-核心工作流,RUP过程成分核心支持工作流 配置和变更管理(Configuration and Change Management) 跟踪并维护系统所有产品的完整性和一致性。 项目管理(Project Management) 为计划、执行和监控软件开发项目提供可行性的指导;为风险管理提
7、供框架。 环境(Environment) 为组织提供过程管理和工具的支持,RUP过程成分核心过程工作流从技术角度来讲,RUP规定了6个过程成分:业务建模、需求分析、系统分析与设计、实现、测试、系统配置.它们是RUP过程的核心工作流,即软件系统开发的主要的开发活动。,Rational 统一过程核心工作流,一、业务建模(Business Modeling)业务建模的任务是对将来使用该系统的组织机构或企业进行评估,理解它们的需要以及它们要求未来系统解决的问题。业务建模的结果是建立一个业务Use Case模型和业务对象模型。,Rational 统一过程核心工作流,二、需求分析需求工作流程的目标是描述系
8、统应该“做什么”,并且允许开发人员和客户都同意这一个描述。为了达到这个目的,我们启发、组织所需要的功能和约束,并编制文档把它们记录下来:跟踪并记录所做的折衷和决策。,Rational 统一过程核心工作流,需求分析的任务是采集和评价系统的需求,其重点是充分考虑系统的实用性。需求分析的结果可以用一个Use Case模型表达,模型中的活动者代表外部的与系统交互的单元(人或外部系统), Use Case代表交互的事务序列,它为活动者提供可度量的结果值。,Rational 统一过程核心工作流,Rational 统一过程-核心工作流,需求分析工作流的具体例子,三、分析和设计分析与设计工作流程的目标是说明在
9、实现阶段是“如何”实现系统的。建立的系统要: 在特定环境下,完成用例说明中所指定的任务和功能; 满足对它的所有需求;,Rational 统一过程核心工作流,分析与设计的结果是设计模型以及可选的一个分析模型。设计模型是源代码的一个抽象;也就是说,设计模型的作用是一个“蓝图” 设计模型由设计类组成,通过定义好的接口,它们被结构化为设计包和设计子系统 。,Rational 统一过程核心工作流,系统分析与设计的任务是研究欲采用的实现环境和系统构建的效用,结果是产生一个对象模型,即设计模型。设计模型包含了Use Case的实现,可以表现对象是如何相互通信和运作实现Use Case流的。在设计模型中可能包
10、含对象类和子系统的接口定义,规定它们提供操作服务的责任。这个对象模型也可以在实现环境中采用,那就是用程序设计语言、分布等来表达。,Rational 统一过程核心工作流,四、实现实现的目的是: 通过分层次地组织实现子系统来定义代码的结构: 用组件(原文件,可执行义作等)来实现类; 把所开发的组件按照单元来测试; 把每个实现人员(团队)工作的结果集成到一个可执行的系统中。,Rational 统一过程核心工作流,五、测试测试的目的是: 验证对象之间的交互: 验证是否恰当地集成了软件的所有组件: 在发布软件之前,找到错误并改正。,Rational 统一过程核心工作流,Rational统一过程就是用一个
11、迭代的方法,在整个项目过程都在进行测试。这些可以迟早发现错误,大幅度降低修改错误的成本。测试是沿着三个质量维进行的:可靠性、功能性、应用性能和系统性能。,Rational 统一过程核心工作流,六、部署系统配置的任务是在真实的使用运行环 (硬件)中配置系统,调试系统,解决系统正式使用前可能存在的问题。,Rational 统一过程核心工作流,业务建模、需求分析、系统分析与设计、实现、测试、系统配置是RUP核心的开发活动,它们与系统模型的关系如图 模型是各个过程成分中的产物,也是下一个过程成分的工作依据。,Rational 统一过程核心工作流,螺旋上升式开发RUP开发过程由一连串的循环组成。RUP沿
12、用了原型法的思想,采用螺旋上升式的开发模式,一个软件系统的开发是渐增、循环、重复地完成的.RUP的每一个开发阶段,尤其是系统构建阶段,可以进一步划分为若干循环重复的工作节(section).本次循环工作节的结果是下一次循环工作节的输入,下一次循环工作节的结果是本次结果的精化和扩展。,每一个阶段都由一个或多个连续的迭代组成,每一个迭代都是一个完整的开发过程是一个具体的迭代工作流从头到尾的执行。 与核心工作流不同的是RUP并没有也无法给出迭代工作流的具体实现步骤,它需要项目经理根据当前迭代所处的阶段、以及上次迭代的结果,适当地对核心工作流中的行为进行剪裁以实现一个具体的迭代工作流。,主要内容,RU
13、P统一过程模型在RUP中的作用,卡车问题,一个项目组集体外出,不幸被卡车撞上。有多少人受伤使项目不得不停止?,最坏的情况是一个!,敏捷过程与极限编程,敏捷软件开发宣言由下述4个简单的价值观组成。 (1)个体和交互胜过过程和工具 (2)可以工作的软件胜过面面俱到的文档 (3)客户合作胜过合同谈判 (4)响应变化胜过遵循计划,极限编程,极限编程(eXtreme Programming, XP)是敏捷过程中最富盛名的一个,其名称中“极限”二字的含义是指把好的开发实践运用到极致。目前,极限编程已经成为一个典型的开发方法,广泛应用于需求模糊且经常改变的场合。,极限编程的有效实践,客户作为开发团队的成员
14、使用用户素材 短交付周期 验收测试 结对编程 测试驱动开发 集体所有 持续集成 可持续的开发速度 开放的工作空间 及时调整计划 简单的设计 重构 使用隐喻,极限编程的整体开发过程,极限编程的迭代过程,综上所述,以极限编程为杰出代表的敏捷过程,具有对变化和不确定性的更快速、更敏捷的反应特性,而且在快速的同时仍然能够保持可持续的开发速度。上述这些特点使得敏捷过程能够较好地适应商业竞争环境下对小型项目提出的有限资源和有限开发时间的约束。,风险分析 知识点,Robert Charette给出了风险概念的定义是: 首先,风险关注未来将要发生的事情。今天和昨天已不再被关心。 未来什么样的风险会导致软件项目
15、彻底失败? 其次,风险涉及改变,如思想、观念、行为、或地点的改变。 客户需求、开发技术、目标环境以及所有其他与项目相关因素的改变 第三,风险涉及选择及选择本身所包含的不确定性。 选择应该采用什么方法及工具?需要多少人员参与?.,Charette提出的风险分类方式: 已知风险 通过仔细评估项目计划、开发项目的商业及技术环境以及其他可靠的信息来源之后可以发现的那些风险。 可预测风险 能够从过去项目的经验中推断出来的风险。 不可预测风险 可能会真的出现,但很难事先加以识别的风险。,风险分析 知识点,风险分析 知识点,风险影响三要素 风险的性质 风险发生时可能产生的问题。 风险的范围 风险引发损失的分布及严重性。 风险的时间 风险发生的时间、持续的时间,应注意这时项目所处的状态。,风险分析 知识点,确定风险影响的步骤 确定每个风险元素发生的平均概率; 按照给出的标准确定每个元素的影响; 填写风险表並分析其结果; 风险预测和分析技术可以在软件项目进展过程中反复使用,项目组应定期复查风险表,评估每一个风险,以此为基础判断风险发生概率及影响的变化。必要时可潻加新的风险元素,删去不存在影响的元素,並对风险表重新排序。,风险分析 知识点,谢谢!,