管理信息系统 第10章 UML和统一软件开发过程
第10章 UML和统一软件开发过程 10.1 UML概述 10.2 统一软件开发过程 10.3 CASE 工具
10.1 UML概述 UML概述 UML是一种标准的图形化建模语言,它是面向对象分析与设计的一种标准表示,不是一种可视化的程序设计语言,是一种可视化的建模语言。是类似于建筑图纸的做图符号,是一种表示的标准。UML不是过程也不是方法,允许任何一种过程和方法使用它。
10.1 UML概述 UML概述 UML的优越之处表现为以下几点: (1)UML是人类思想和计算机代码的一个连接桥梁。
10.1 UML概述 UML概述 UML由视图(views)、图(Diagrams)、模型元素(Model elements)、和通用机制(general mechanism)等几个部分构成。 UML架构简单说来由模型元素构成了图,UML描述模型的基本工具是图,开发人员在CASE工具中把图组织成不同的视图。用视图从不同的目的、不同侧面来描述系统,这些视图构成了系统的模型。
10.1 UML概述 模型元素
10.1 UML概述 图 图由模型元素构成的,一个典型的系统模型应有多个各种类型的图。图表示了系统的一个特殊部分或某个方面,一个典型的系统模型有多种类型的图。UML中包含用例图、类图、对象图、状态图、序列图、协作图、活动图、组件图、展开图共九种。用这九种图可以描述任何复杂的系统。
10.1 UML概述 图 1)用例图 用例图(use-case diagram )描述了若干参与者(actor)以及这些参与者与系统提供的用例之间的连接关系,用例是系统提供的功能。 用例图中包含系统、参与者和用例等三种模型元素。画用例图时既要画出三种模型元素,同时还要画出元素之间的各种关系。
10.1 UML概述 图 1)用例图 参与者:与系统交互的人或事。 用例:一个完整的功能,是动作步骤的集合,动作是系统的一次执行。 用例之间的关系:用例之间存在扩展、使用、组合三种关系。 参加裁判课程 审核裁判课程 参加裁判认证考试 教师 项目管理员 裁判主考官 1 裁判学员 裁判申请人 认证系统
10.1 UML概述 图 2)类图 类图(class diagram)是用类和它们之间的关系描述系统的一种图,是从静态角度表示系统的。类图属于一种静态模型,类图是构建其它图的基础,没有类图就没有状态图、协作图等。 (1)描述类、(2)属性、(3)操作 、 (4)关系、 (5)类图 例子见284页图10-3。
10.1 UML概述 图 3)对象图 对象图表示的是类的对象实例,而不是真实的类,对象图作为类图的一个范例,对象图反映出系统执行到某处时的工作状况。对象图中的图示符号与类图几乎完全一样,差别是对象图中的对象名加了下划线,要画出类与类之间关系的所有实例。
10.1 UML概述 操作员 计算机 0…1 1..* 王强:操作员 姓名:string 年龄:integer 名称:string 姓名=丁一 年龄=30 王强办公室的PC: 计算机 名称=联想 内存=256M 王强家里的PC: 名称=浪潮
10.1 UML概述 图 4)状态图 状态图主要用来描述对象、子系统、系统的生命周期,通过状态图可以了解到一个对象所能到达的所有状态,以及对象收到的事件对对象状态的影响等。状态图可以有一个起点和多个终点、起点。 状态图中的状态用一个圆角四边形表示,状态之间为状态转换,用一条带箭头的线表示引起状态转换的事件。一个状态一般包含三个部分,第一部分为状态的名称,第二部分为可选的状态变量的变量名和变量值属性,第三部分为可选的活动表,活动表列出有关的事件和活动。
10.1 UML概述 图 提交申请 已注册考试 已完成测试 通过测试 提交高级别的申请 未通过测试 申请的认证级别 已登记测试 等待测试结果
10.1 UML概述 图 5)序列图 用序列图来描述多个对象之间的动态协作关系,描述对象之间交互随时间变化。序列图主要描述对象间发送消息的先后次序,描述消息是如何在对象间发送和接收的。说明对象之间的交互过程、系统执行过程中在某一具体位置发生的事件。
10.1 UML概述
10.1 UML概述 6)协作图 协作图(Collaboration Diagram)描述的也是动态协作,除了显示消息变化外,协作图还显示了对象之间的关系,主要描述协作对象间的交互和链接,一条链接是一个关联的实例化。协作图强调的是链接,显示对象以及对象间是如何联系在一起的。
10.1 UML概述
10.1 UML概述 7)活动图 活动图反映连续的活动流,活动图比用例图或交互图更常用于描述某个操作执行时的活动状况。活动图着重描述操作实现中所完成的工作以及用例实例或对象中的活动。活动图的主要目的是描述动作及对象状态改变的结果,当状态中的动作被执行时活动图中的状态直接转移到下一个阶段。活动图是另一种描述交互的方式,描述采取何种动作做什么、何时发生以及在何处发生。
10.1 UML概述
10.1 UML概述 8)组件图 用组件图反映代码的物理结构,代码的物理结构用代码组件表示,组件图描述软件组件及组件之间的关系。组件之间存在依赖关系,利用这种依赖关系可以方便地分析一个组件的变化给其他的组件带来的影响。
10.1 UML概述 8)组件图
10.1 UML概述 9)部署图(配置图) 用部署图(deployment diagram)显示系统中软件和硬件的物理架构,用结点表示计算机和设备,部署图显示了各个结点之间的关系,显示出每个结点内部可执行的组件和对象,显示出结点上运行的软件,从而了解哪一个组件正在哪个节点上运行哪些逻辑元素(类对象协作等等)。组件之间依赖关系也显示在部署图中。
10.1 UML概述
10.1 UML概述 10)包 包(package)是一种组合机制,把各种各样的模型元素通过内在的语义连在一起成为一个整体就叫做包。构成包的模型元素称为包的内容,包用于对模型的组织管理。有时又将包称为子系统。包的实例没有任何语义含义,仅在模型执行期间包才有意义。包与包之间允许建立的关系有依赖、精化和通用化。
10.1 UML概述 图 10)包 User Services Business Services Data Services
10.1 UML概述 UML的模型 UML是用来描述模型的,它用模型来描述系统的结构或静态特征,以及行为或动态特征。它从不同的视角为系统的架构建模,形成系统的不同视图,UML模型简称4+1视图构架。 包括:用例视图、逻辑视图、过程视图、组件视图和部署视图(配置图)。
10.1 UML概述 UML的模型
10.1 UML概述 UML的应用领域 ⑴信息系统:向用户提供信息的储存、检索、转换和提交。处理存放在关系或对象数据库中大量具有复杂关系的数据。 ⑵技术系统:处理和控制技术设备,如电信设备或工业过程。技术系统通常是实时系统。 ⑶商业系统:描述目标、资源、法规、商业策略政策等和商业中的实际商业过程。
10.2 统一软件开发过程 统一软件开发过程概述 统一软件过程的核心是为软件开发团队提供指南文档模板和工具,以使整个团队能够最有效地利用以下六大最好的软件开发经验: 1 迭代地开发软件 2 管理需求 3 使用基于组件的架构 4 为软件可视化建模 5 验证软件质量 6 控制对软件的变更
10.2 统一软件开发过程 统一软件开发过程是基于组件的,利用它开发的软件系统是由组件构成的,组件之间通过定义良好的接口相互联系。在开发的早期就能确定或获得稳定的软件体系结构,这样降低了系统开发风险。 统一软件开发过程基于UML,采用统一建模语言来描述据系统,UML作为面向对象系统建模语言的国际标准,得到了众多国际上顶级软件开发商和开发工具供应商的支持。
10.2 统一软件开发过程 统一开发过程特征 统一软件开发过程的突出特点是: 用例驱动 以架构为中心 迭代式和增量性
10.2 统一软件开发过程
10.2 统一软件开发过程 统一软件开发过程的四种模型元素 统一软件开发过程应用了四种重要的模型元素,分别描述了在一个软件开发过程中“谁做”、“做什么”、“怎么做”和“什么时候做”。模型元素包括角色(Workers)、活动(Activities)、产物(Artifacts)和工作流(Workflows)。
10.2 统一软件开发过程 统一软件开发过程的四种模型元素
10.2 统一软件开发过程 统一软件开发过程的核心工作流 工作流是产生具有可观察结果的活动序列。统一软件开发过程中有9个核心工作流,代表了所有角色和活动的逻辑分组情况。分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。这些工作流在整个生命周期中一次又一次被访问。9个核心工作流在项目中被轮流使用,在每一次迭代中以不同的重点和强度重复。
10.2 统一软件开发过程 统一软件开发过程的核心工作流 1)业务建模工作流 2)需求工作流 3)分析和设计工作流 4)实现工作流 5)测试工作流 6)部署工作流 7)配置和变更管理工作流 8)项目管理工作流 9)环境工作流
10.2 统一软件开发过程 工作流程、模型与UML图之间的关系
10.2 统一软件开发过程 R:需求分析 D:设计 C:实现 T:测试 迭代式开发 R D C T 瀑布开发过程 R D C T 时间
10.2 统一软件开发过程 统一软件开发过程的开发阶段 每个阶段的结果都是一个里程碑
10.2 统一软件开发过程 有迭代进化模型 模型逐渐增加 设计 实施 初始 细化 构造 移交 用例模型 分析模型 设计模型 实施模型 实现模型 测试模型
10.3 CASE 工具 使用UML和统一软件开发过程开发软件,需要在计算机辅助开发工具CASE的支持下开展。 画图 导航 积累 产生代码 逆转 集成 模型互换
10.4 统一软件开发过程和UML开发实例 理解需求-业务建模 从现实中用户的需求到整个管理信息系统的建立,人们首先要做的是业务模型的建立。业务模型反映了人们对世界的认知与理解,是从现实世界到人们大脑世界的映射,对后期MIS的建设起着先导性的作用。图书馆自动化管理系统确定用户的需求主要有以下几点: 图书借阅、图书采购、典藏管理、图书预定等
10.4 统一软件开发过程和UML开发实例 需求分析 需求分析就是描述系统的需求,通过定义系统中的类来建立模型。 分析的根本目的是在开发者和提出需求的人(用户/客户)之间建立一种理解和勾通的机制,它是理解需求设计系统的第一步。 分析的首先是定义用例,描述图书馆系统的功能用以确定系统的功能在整个系统开发过程中,然后用用例描述系统的功能需求。
图书馆信息系统用例图 读者 图书管理员 预约 取消预约 借阅 归还 维护 增加书目 删除书目 增加复本 删除副本
10.4 统一软件开发过程和UML开发实例 收到图书证、图书 借阅审查 图书证审查 超期图书审查 借阅限量审查 标记复本 增加借阅记录 否 借阅活动图
10.4 统一软件开发过程和UML开发实例 关键类及其它分析
10.4 统一软件开发过程和UML开发实例 设计 设计的目的是产生可用的解决方案,并且能够比较容易地将方案转换成程序代码。对分析阶段定义的类被进一步细化定义,并且定义新的类来处理技术方面的问题。 设计一般包括两部分:架构设计和详细设计。 架构设计中需要定义包、包间的相关性和基本的通信机制。用包来定义子系统。
借阅的序列图 图书管理员 借阅窗口 :读者 :复本 :书目 :借阅 1 查找读者 2 查找() 3 找复本 5 找书目 4 查找() 6 查找() 7 借出 8 借出()
应用包及同相关性的类图 应用包 用户接口包 业务对象包 数据库包 此包包含与 用户接口的 界面类,负责 与用户的交互
10.4 统一软件开发过程和UML开发实例 实现 实现阶段是细化各个子系统的接口和交互,得到可以使用的设计模型,完成组件图和部署图、编程实现类、转向数据库模型的设计。将分析设计阶段产生的设计模型作为输入,用源代码、脚本、二进制代码、可执行体等组件来实现系统。 向数据库的映射转换,设计模型的组件图,系统采用VB设计,使用关系数据库系统,调用了COM组件。
(from Bushnese Object Model) 向数据库的映射转换 书目 (from Bushnese Object Model) <<pk>>索书号:String <<>>正题名 作者 单价 增加书目() 删除书目() 查找() 复本 <<fk>>索书号:String <<pk>>财产号 入库日期 增加复本() 删除复本() 书 目 * 索书号 正题名 出版社 复 本 * 财产号 FK_复本_数目 1 1..*
<<Standard EXE>> 图书馆信息系统组件图 <<Standard EXE>> Library System <<COM>> DAO VBA stdole VB ComctlLib MSComDlg VBRUN
10.4 统一软件开发过程和UML开发实例 测试和配置 在发布应用系统前必须对应用系统进行测试。首先用最初的用例做来测试,看看应用系统是否支持这些最初的用例用例。检查应用系统是否按照用例中的要求进行运行,最后,将应用系统交给用户进行测试。 系统配置是指将成型的可执行系统发布给用户,提交给用户的东西包括应用系统软件和文档。文档包括系统帮助手册、用户操作手册和用户安装手册。
图书馆信息系统配置图 系统服务器 数据库服务器 客户机 打印机 条码阅读器