Download presentation
Presentation is loading. Please wait.
Published by羊规 支 Modified 7年之前
1
第11章 UML与RUP 软件开发过程是软件工程的要素之一,有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP)。RUP是软件开发过程的一种,它为有效地使用统一建模语言UML提供了指导。 本章将介绍如何通过与UML紧密结合的RUP进行软件开发。
2
本章学习要点: 了解软件开发过程 了解UML与RUP的关系及使用RUP的原因 理解RUP的二维空间 理解RUP的各核心工作流程
3
11.1 理解软件开发过程 软件开发过程是指应用于软件开发和维护当中的阶段、方法、技术、实践和相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。 软件开发过程是开发高质量软件所需完成的任务的框架。软件工程是一种层次化的技术,如图所示。
4
11.2 Rational统一过程(RUP) UML(Unified Modeling Language)仅仅是一种系统建模语言,它并没有告诉建模人员应该如何使用它,为了使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP),也称为Unified Process(统一过程)。
5
理解RUP 软件开发过程是使软件从概念到成品所能遵循的一系列阶段,RUP作为一种软件开发过程包含了以下4个阶段:初始阶段(Inception)、筹划阶段(Elaboration)、构建阶段(Construction)和转换阶段(Transition)。 1.初始阶段 RUP的初始阶段是进行最初分析的阶段,用于确定要开发的系统,包括其内容和业务。 2.筹划阶段 RUP的筹划阶段是进行详细设计的阶段,用于确定系统的功能。 3.构建阶段 RUP的构建阶段是一个根据系统设计的结果进行实际的软件产品构建的过程,该过程是一个增量过程,代码在每个可管理的部分进行编写。 4.转换阶段 在该阶段中,将会处理将软件系统交付给用户的事务。
6
为什么要使用RUP 在目前比较流行的软件开发过程中,RUP是由发明UML的3位方法学家提出的,与其他软件开发过程相比,使用RUP可以更好地进行UML建模,而且,RUP能够为软件开发团队提供指南、文档模板和工具,从而使软件开发团队能够最有效地利用当前软件开发实践中所获得的六大最好经验。
7
1、迭代式开发。在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程都可以执行版本结束,可以鼓舞开发人员。 2、管理需求。确定系统的需求是一个连续的过程,开发人员在开发系统之前不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用以被证明是捕获功能性需求的有效方法。
8
3、基于组件的体系结构。组件使重用成为可能,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。 4、可视化建模。RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。
9
5、验证软件质量。在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。
6、控制软件变更。迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。
10
11.3 RUP的二维空间 在RUP中,根据时间和核心工作流程,软件生命周期被划分为二维空间,也可以说RUP是沿着两个轴发展的。其中,水平轴(时间维)显示了RUP动态的一面,在RUP中,使用周期(Cycle)、阶段(Phase)、迭代(Iteration)等术语进行描述;垂直轴代表了RUP静态的一面,该维是按照内容组织的,包含了RUP的核心过程工作流程和核心支持工作流程,在RUP中使用活动(Activity)、产品(Artifact)、工作人员(Worker)和工作流(Workflow)等术语进行描述。
11
时间维 时间维空间是RUP随着时间的动态组织。RUP将软件生命周期划分为初始阶段、筹划阶段、构建阶段和转换阶段4个阶段,每个阶段的结果都是一个里程碑,都要达到特定的目标。本章第二节的介绍已使读者对这4个阶段有了一个大概的了解,下面将对这4个阶段进行更加详细的介绍。 在RUP的初始阶段,需要为软件系统建立商业模型并确定系统的边界。为此,需要识别出所有与系统交互的外部实体,包括识别出所有用例、描述一些关键用例,除此之外,还需要在较高层次上定义这些交互。
12
初始阶段的输出(P165) 系统蓝图文档,包括对系统的核心需求,关键特性,主要约束等纲领性文献. 初始的用例模型(占完整模型的10%-20%) 初始的项目词汇表 初始的商业案例,包括商业环境,验收标准和金融预测等. 初始的风险评估. 确定阶段和迭代的项目规划 可选的商业模型 若干个原型
13
筹划阶段的主要任务是:分析问题域,建立合理的架构基础,制定项目规划,并消除项目中风险较高的因素.
筹划阶段的输出(P166) 用例模型(占完整模型的80%以上)………… 构建阶段的输出是可以交付给用户使用的软件产品,它应该包括: 集成到适当平台上的软件产品; 用户手册; 对当前版本的描述。 转换阶段(交付阶段),要将软件产品交付给用户……(P167)
14
RUP的静态结构 RUP的静态结构是用工作人员、活动、产品和工作流等描述的,这些建模元素描述了什么人需要做什么,如何做,以及应该在什么时候做。
15
11.4 核心工作流程 在上一节中已经对RUP中的工作流进行了概括性的介绍,本节将分别结合工作人员、产品和工作流这3个建模元素对RUP中的几个核心工作流进行详细介绍。
16
需求获取工作流 系统的用户对其所用系统在功能、性能、行为和设计约束等方面的要求就是软件的需求。需求获取就是通过对系统问题域的分析和理解而确定系统所涉及的信息、功能和系统行为,进而将系统用户的需求精确化、完全化。进行需求获取的任务主要是在RUP的初始阶段和筹划阶段完成的。
17
需求获取工作流 系统的用户对其所用系统在功能、性能、行为和设计约束等方面的要求就是软件的需求。需求获取就是通过对系统问题域的分析和理解而确定系统所涉及的信息、功能和系统行为,进而将系统用户的需求精确化、完全化。进行需求获取的任务主要是在RUP的初始阶段和筹划阶段完成的。
18
分析工作流 分析工作流的主要工作是从初始阶段的末尾开始进行的,但是大部分工作是在筹划阶段进行的。通常情况下,在对系统进行需求获取的同时也需要进行分析。 工作人员 分析工作流期间的工作人员包括: 架构工程师 架构工程师在该过程中负责“分析模型”和“架构描述”两个UML产品,但是不需要对分析模型中各种产品的持续开发和维护负责。 用例工程师 用例工程师的任务是完成若干用例的分析和设计,使这些用例实现相应的需求。 组件工程师 在分析工作流中,组件工程师的任务是定义并维护若干个分析类,使它们都能实现相应用例实现的需求,并维护如干个包的完整性。
19
设计工作流 设计工作流中的主要工作是在筹划阶段的末尾部分和构建阶段的开头部分完成的。在获取系统需求和分析活动比较完善之后,接下来的主要工作就是设计了。下面将对设计工作流进行详细介绍。 工作人员 设计工作流中的工作人员包括: 架构工程师 在该工作流中,架构工程师的主要任务是确保系统设计和实现模型的完整性、准确性和易理解性。 用例工程师 在设计工作流中,用例工程师的任务是确保用例实现(设计)的图形和文本易于理解并且准确地描述系统的特定功能。 组件工程师 组件工程师的任务是定义和维护设计类的属性、操作、方法、关系以及实现性需求,确保每个设计类都实现特定的需求。
20
实现工作流 实现工作流是把系统的设计模型转换成可执行代码的过程,可以认为实现工作流的重点就是完成系统的可执行代码。实现工作流是RUP中构建阶段的重点。系统的实现模型只是实现工作流的副产品,系统开发人员应当把重点放在开发系统的代码上。 工作人员 RUP的分析工作流期间的工作人员包括: 架构设计师 在实现工作流中,架构设计师主要负责确保实现模型的完整性、正确性和易理解性。 架构设计师必须对系统实现模型架构以及可执行体与节点间的映射负责,但实现模型中各种产品的继续开发和维护不属于他的职责范围。 组件工程师 组件工程师的任务是定义和维护若干组件的源代码,保证系统中的每个组件都能正确实现其功能,除此之外,组件工程师还应确保实现子系统的正确性。 系统集成人员 系统集成人员主要负责规划在每次迭代中所需的构造序列,并在实现每个构造后对其进行集成。
21
测试工作流 在获取系统需求以及分析、设计、实现等阶段的工作都完成后,就需要认真查找软件产品中潜藏的错误或者缺陷,并进行更正和完善。测试工作流的工作量通常会占到系统开发总工作量的40%以上。测试工作流贯穿于系统开发的整个过程,它开始于RUP的初始阶段,并是筹划阶段和构建阶段的重点。 工作人员 RUP的测试工作流期间的工作人员包括: 测试设计人员 该类人员所进行的工作主要包括:决定测试的目标和测试进度;选择测试用例和相应的测试规则;对完成测试后的集成及系统测试进行评估。 组件工程师 该类人员的任务是测试软件,以自动执行一些测试规程。 系统测试人员 系统测试人员直接参与系统的测试工作,对作为完整迭代的结构的构造进行系统测试。
Similar presentations