第11章 UML与RUP 软件开发过程是软件工程的要素之一,有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational.

Slides:



Advertisements
Similar presentations
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
Advertisements

初级会计电算化 (用友T3) 制作人:张爱红.
第一章 系統開發概論 1-1 系統開發概論 1-2 常見的資訊系統 1-3 系統開發生命週期 1-4 系統開發方法論簡介.
第二章 UML簡介 課前指引 本章介紹什麼是UML以及利用圖形來塑模資訊系統的好處在哪裡。文中也介紹了何謂「4+1的觀點」、以及簡述各項UML圖形的使用目的。並且,我們從靜態以及動態這兩個觀點來分類、介紹各圖形的使用時機。
UI(用户界面)集训班 Illustrator 高级班.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
第四次大作业 登陆学校图书馆网站的电子数据库
第三篇 组织工作.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
LSF系统介绍 张焕杰 中国科学技术大学网络信息中心
DM81X 视频采集处理 ——MCFW框架介绍 广州创龙电子科技有限公司
扁平化精美IT工作实施规划 涛说PPT.
SVN的基本概念 柳峰
面向对象建模技术 软件工程系 林 琳.
学习前的准备工作 讲师:burning.
R in Enterprise Environment 企业环境中的R
第 3 章 基本概念.
存储系统.
走进编程 程序的顺序结构(二).
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
Visual Studio Team System 简介
2019/1/12 GDP设计协同 超级管理员操作手册 GDP项目组.
化学品清单 类型.
单元测试工具XUnit 任课老师:黄武 下午2时20分 25.
数据挖掘工具性能比较.
PaPaPa项目架构 By:Listen 我在这.
本节我们结合AD5724驱动时序给大家介绍一下状态机在实际工程中的使用。
Instructions: Language of the Machine
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
实验1 信息系统分析与设计工具安装.
三:基于Eclipse的集成开发环境搭建与使用
程序设计工具实习 Software Program Tool
第4章 非线性规划 4.5 约束最优化方法 2019/4/6 山东大学 软件学院.
何勉 新浪微博: Scrum框架及其背后的原则 原始图片 何勉 新浪微博:
录制回放工具使用说明 鲁晓宇
新一代安全网上银行 小组成员:杨志明 王晶 任毅 刘建中 关昊 刘超.
《产品设计工程应用》课程 陈兴波 顺德职业技术学院/设计学院/工业设计专业.
解决变化问题的自底向上 流程建模方法 严志民 徐玮.
第二章 登录UNIX操作系统.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
微机系统的组成.
VisComposer 2019/4/17.
WPT MRC. WPT MRC 由题目引出的几个问题 1.做MRC-WPT的多了,与其他文章的区别是什么? 2.Charging Control的手段是什么? 3.Power Reigon是什么东西?
4.2 证明⑶.
Aspect Oriented Programming
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
项目二:HTML语言基础.
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
iSIGHT 基本培训 使用 Excel的栅栏问题
Chapter 18 使用GRASP的对象设计示例.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
机械设备的完整性和可靠性管理 Maintenance integrity & reliability.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
计算机绘图 AutoCAD2016.
敏捷开发下 问题驱动的软件测试设计 郑文强 测试架构师 阿尔卡特-朗讯.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二节 C语言的特点.
基于列存储的RDF数据管理 朱敏
本节内容 进程 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 UNIX文件系统.
第十七讲 密码执行(1).
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
入侵检测技术 大连理工大学软件学院 毕玲.
IT 方法 INTOSAI IT 审计培训.
DEV243 Visual Studio Team System 测试深入探讨
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
Presentation transcript:

第11章 UML与RUP 软件开发过程是软件工程的要素之一,有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。UML是一种可应用于软件开发的非常优秀的建模语言,但是UML本身并没有告诉人们怎样使用它,为了有效地使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP)。RUP是软件开发过程的一种,它为有效地使用统一建模语言UML提供了指导。 本章将介绍如何通过与UML紧密结合的RUP进行软件开发。

本章学习要点: 了解软件开发过程 了解UML与RUP的关系及使用RUP的原因 理解RUP的二维空间 理解RUP的各核心工作流程

11.1 理解软件开发过程 软件开发过程是指应用于软件开发和维护当中的阶段、方法、技术、实践和相关产物(计划、文档、模型、代码、测试用例和手册等)的集合。有效的软件开发过程可以提高软件开发团队的生产效率,并能够提高软件质量、降低成本、减少开发风险。 软件开发过程是开发高质量软件所需完成的任务的框架。软件工程是一种层次化的技术,如图所示。

11.2 Rational统一过程(RUP) UML(Unified Modeling Language)仅仅是一种系统建模语言,它并没有告诉建模人员应该如何使用它,为了使用UML,需要有一种方法应用于它,当前最流行的使用UML的方法就是Rational的统一过程(Rational Unified Process,简称RUP),也称为Unified Process(统一过程)。

11.2.1 理解RUP 软件开发过程是使软件从概念到成品所能遵循的一系列阶段,RUP作为一种软件开发过程包含了以下4个阶段:初始阶段(Inception)、筹划阶段(Elaboration)、构建阶段(Construction)和转换阶段(Transition)。 1.初始阶段 RUP的初始阶段是进行最初分析的阶段,用于确定要开发的系统,包括其内容和业务。 2.筹划阶段 RUP的筹划阶段是进行详细设计的阶段,用于确定系统的功能。 3.构建阶段 RUP的构建阶段是一个根据系统设计的结果进行实际的软件产品构建的过程,该过程是一个增量过程,代码在每个可管理的部分进行编写。 4.转换阶段 在该阶段中,将会处理将软件系统交付给用户的事务。

11.2.2 为什么要使用RUP 在目前比较流行的软件开发过程中,RUP是由发明UML的3位方法学家提出的,与其他软件开发过程相比,使用RUP可以更好地进行UML建模,而且,RUP能够为软件开发团队提供指南、文档模板和工具,从而使软件开发团队能够最有效地利用当前软件开发实践中所获得的六大最好经验。

1、迭代式开发。在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程都可以执行版本结束,可以鼓舞开发人员。 2、管理需求。确定系统的需求是一个连续的过程,开发人员在开发系统之前不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用以被证明是捕获功能性需求的有效方法。

3、基于组件的体系结构。组件使重用成为可能,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。 4、可视化建模。RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。

5、验证软件质量。在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。 6、控制软件变更。迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。

11.3 RUP的二维空间 在RUP中,根据时间和核心工作流程,软件生命周期被划分为二维空间,也可以说RUP是沿着两个轴发展的。其中,水平轴(时间维)显示了RUP动态的一面,在RUP中,使用周期(Cycle)、阶段(Phase)、迭代(Iteration)等术语进行描述;垂直轴代表了RUP静态的一面,该维是按照内容组织的,包含了RUP的核心过程工作流程和核心支持工作流程,在RUP中使用活动(Activity)、产品(Artifact)、工作人员(Worker)和工作流(Workflow)等术语进行描述。

11.3.1 时间维 时间维空间是RUP随着时间的动态组织。RUP将软件生命周期划分为初始阶段、筹划阶段、构建阶段和转换阶段4个阶段,每个阶段的结果都是一个里程碑,都要达到特定的目标。本章第二节的介绍已使读者对这4个阶段有了一个大概的了解,下面将对这4个阶段进行更加详细的介绍。 在RUP的初始阶段,需要为软件系统建立商业模型并确定系统的边界。为此,需要识别出所有与系统交互的外部实体,包括识别出所有用例、描述一些关键用例,除此之外,还需要在较高层次上定义这些交互。

初始阶段的输出(P165) 系统蓝图文档,包括对系统的核心需求,关键特性,主要约束等纲领性文献. 初始的用例模型(占完整模型的10%-20%) 初始的项目词汇表 初始的商业案例,包括商业环境,验收标准和金融预测等. 初始的风险评估. 确定阶段和迭代的项目规划 可选的商业模型 若干个原型

筹划阶段的主要任务是:分析问题域,建立合理的架构基础,制定项目规划,并消除项目中风险较高的因素. 筹划阶段的输出(P166) 用例模型(占完整模型的80%以上)………… 构建阶段的输出是可以交付给用户使用的软件产品,它应该包括: 集成到适当平台上的软件产品; 用户手册; 对当前版本的描述。 转换阶段(交付阶段),要将软件产品交付给用户……(P167)

11.3.2 RUP的静态结构 RUP的静态结构是用工作人员、活动、产品和工作流等描述的,这些建模元素描述了什么人需要做什么,如何做,以及应该在什么时候做。

11.4 核心工作流程 在上一节中已经对RUP中的工作流进行了概括性的介绍,本节将分别结合工作人员、产品和工作流这3个建模元素对RUP中的几个核心工作流进行详细介绍。

11.4.1 需求获取工作流 系统的用户对其所用系统在功能、性能、行为和设计约束等方面的要求就是软件的需求。需求获取就是通过对系统问题域的分析和理解而确定系统所涉及的信息、功能和系统行为,进而将系统用户的需求精确化、完全化。进行需求获取的任务主要是在RUP的初始阶段和筹划阶段完成的。

11.4.1 需求获取工作流 系统的用户对其所用系统在功能、性能、行为和设计约束等方面的要求就是软件的需求。需求获取就是通过对系统问题域的分析和理解而确定系统所涉及的信息、功能和系统行为,进而将系统用户的需求精确化、完全化。进行需求获取的任务主要是在RUP的初始阶段和筹划阶段完成的。

11.4.2 分析工作流 分析工作流的主要工作是从初始阶段的末尾开始进行的,但是大部分工作是在筹划阶段进行的。通常情况下,在对系统进行需求获取的同时也需要进行分析。 工作人员 分析工作流期间的工作人员包括: 架构工程师 架构工程师在该过程中负责“分析模型”和“架构描述”两个UML产品,但是不需要对分析模型中各种产品的持续开发和维护负责。 用例工程师 用例工程师的任务是完成若干用例的分析和设计,使这些用例实现相应的需求。 组件工程师 在分析工作流中,组件工程师的任务是定义并维护若干个分析类,使它们都能实现相应用例实现的需求,并维护如干个包的完整性。

11.4.3 设计工作流 设计工作流中的主要工作是在筹划阶段的末尾部分和构建阶段的开头部分完成的。在获取系统需求和分析活动比较完善之后,接下来的主要工作就是设计了。下面将对设计工作流进行详细介绍。 工作人员 设计工作流中的工作人员包括: 架构工程师 在该工作流中,架构工程师的主要任务是确保系统设计和实现模型的完整性、准确性和易理解性。 用例工程师 在设计工作流中,用例工程师的任务是确保用例实现(设计)的图形和文本易于理解并且准确地描述系统的特定功能。 组件工程师 组件工程师的任务是定义和维护设计类的属性、操作、方法、关系以及实现性需求,确保每个设计类都实现特定的需求。

11.4.4 实现工作流 实现工作流是把系统的设计模型转换成可执行代码的过程,可以认为实现工作流的重点就是完成系统的可执行代码。实现工作流是RUP中构建阶段的重点。系统的实现模型只是实现工作流的副产品,系统开发人员应当把重点放在开发系统的代码上。 工作人员 RUP的分析工作流期间的工作人员包括: 架构设计师 在实现工作流中,架构设计师主要负责确保实现模型的完整性、正确性和易理解性。 架构设计师必须对系统实现模型架构以及可执行体与节点间的映射负责,但实现模型中各种产品的继续开发和维护不属于他的职责范围。 组件工程师 组件工程师的任务是定义和维护若干组件的源代码,保证系统中的每个组件都能正确实现其功能,除此之外,组件工程师还应确保实现子系统的正确性。 系统集成人员 系统集成人员主要负责规划在每次迭代中所需的构造序列,并在实现每个构造后对其进行集成。

11.4.5 测试工作流 在获取系统需求以及分析、设计、实现等阶段的工作都完成后,就需要认真查找软件产品中潜藏的错误或者缺陷,并进行更正和完善。测试工作流的工作量通常会占到系统开发总工作量的40%以上。测试工作流贯穿于系统开发的整个过程,它开始于RUP的初始阶段,并是筹划阶段和构建阶段的重点。 工作人员 RUP的测试工作流期间的工作人员包括: 测试设计人员 该类人员所进行的工作主要包括:决定测试的目标和测试进度;选择测试用例和相应的测试规则;对完成测试后的集成及系统测试进行评估。 组件工程师 该类人员的任务是测试软件,以自动执行一些测试规程。 系统测试人员 系统测试人员直接参与系统的测试工作,对作为完整迭代的结构的构造进行系统测试。