《基于UML建模的设计与分析》由会员分享,可在线阅读,更多相关《基于UML建模的设计与分析(43页珍藏版)》请在金锄头文库上搜索。
1、基于基于UMLUML的的 系统分析与设计系统分析与设计软件学院21 统一建模语言UML概述1.1 UML及其优点 n 什么是UML ( Unify Modeling Language ) ?UML 是一种通用的、统一的的建模语言,是一种用图形方式 描绘面向对象软件系统结构的有效方法。n UML的优点(1)UML是一种定义良好,易于表达,功能强大且普遍实用的 标准建模语言。(2)UML是综合了面向对象领域的几种优秀方法的特点和长处 而提出的,是一种国际标准的建模语言,适合于面向对象分析 与设计的建模描述。(3) UML是软件业界的第一个统一的建模语言,并得到工业界 的广泛支持。31.2 UML的
2、模型视图用UML描述的系统模型一般是由几种视图组成 的。UML主要提供了9种视图:用例图、类图、对 象图、组件图、配置图、序列图、协作图、状态 图和活动图,如下图所示。41.3 用例图 (1)用例图定义用例图是从用户使用系统的角 度描述系统功能的图形表达方法 。 一个用例(Use Case) 是用于 描述系统的一项功能需求或系统 提供给用户的一项服务。 (2)用例图举例右边为自动售货机系统的用例图。 图中的方框代表系统,椭圆代表 用例(售货、供货和取货款是自动 售货机系统的典型用例),小人形 (线条人)代表行为者,它们之 间的连线表示关系。51.4 类图(1)类图的定义类图是表达构成系统的类及
3、其相互联系的图示。 类图是面向对象设计的核心,建立状态图、协作 图和其他图的基础。 (2)类图的描绘方法 (1)使用名词/动词分析法来寻找构成系统的类, 描绘这些类; (2)建立类与类之间的联系,包括关联、聚合/组 合、泛化/特化、依赖等。671.5 对象图 (1) 对象图的定义对象图(Object Diagram)表示一组对象和 它们之间的联系。对象图实质上是类图的实 例,也称实例图(Instance Diagram) 。对 象图的表示方法与类图的表示方法大体相同 。对象图是系统在某个特定时刻的具体状态 。 (2) 对象图举例81.6 序列图 (1) 序列图的定义序列图用来描述一组对象间的交
4、互关系,它表 示为完成某项操作所需的参与对象和这些对象 之间传递消息的时间顺序。 (2)序列图举例91.7 状态图 (1)状态图(StatechartDiagram)的定义状态图描述系统运行过程中某类对象可能出现 的状态,以及在不同状态间的跳转和触发这些跳转 的外部事件。状态图侧重于描述对象在其生命周 期中的动态行为。 (2) 状态图的组成UML状态图的图形元素包括:初始状态、转移 、 (中间)状态、判定、同步和终止状态。101.8 活动图(1)活动图的定义活动图(activity diagram) 用于描述系统业务流程或工 作流程。 活动图由一系列的 动作状态构成,动作的状态控 制可以从一个
5、状态转向另一 个与之相邻的状态。 活动图 还可以表示条件判断、分支 决策、动作状态的并行执行 、消息的规范说明等内容。11(2)活动图的组成 活动图的基本 元素包括:活动状 态、动作流、泳道 、对象流,另外还 包括初始状态、终 止状态、判定、 分叉、合并等元素 。121.9 协作图 (1)协作图的定义用来描述实现某些服务所涉及的对象及其相 互之间的关系(包括消息通信)的图示就称为 协作图(Collaboration)。协作图可用来描 绘业务流程。 (2)协作图举例131.10 组件图 (1) 组件图的定义组件是提供了一组接口的物理实现模块, 它可以是软件开发过程中的产物,如源码、二 进制码和可
6、执行码等。它们是类、接口等逻辑 模型的物理实现。接口是为外部提供可调用函 数原型的程序模块。组件图表示构成系统的组件及其相互之间 的联系。它是描述系统的软件结构的模型。14(2) 组件图的组成组件图由组件、接口和组件之间的联系构成 。a)组件由一个左边嵌两个小矩形的大矩形表 示,大矩形中填写组件的名字。b)接口由一个空心圆表示。c)组件之间的依赖是指一个组件的模型元素 需要使用另一个组件的模型元素。依赖用一 个虚箭线表示,箭线从客户组件指向供应者 组件。151.11 配置图(1)配置图定义 配置图就是用于表示构成分布式系统的节点集 和节点之间的联系的图示,它可以表示系统中 软件和硬件的物理架构
7、。16172 基于UML的面向对象系统开发方法像一般的系统开发方法一样,基于UML的面向对象系统开 发方法也可以分为如下步骤: (1)需求分析(用例分析) 建立用例模型来描述用户需求; (2)系统分析将用例模型转化为由类图和对象图组成的分析模型; (3)系统设计a)用编程语言或接近编程语言的语言来更精确地描述类图和 对象图,以便于后面能将类图和对象图映射到编码实现的系 统。b)在详细设计阶段要对每个用例进行动态建模,包括建立序 列图、协作图等,以描述如何通过类图中的对象协作实现用 例中的功能。随着动态建模的深入,会发现前面建立的类往 往存在缺陷或不够完整,需要对分析中得到的类图进行不断 的修正
8、和调整。 (4)系统实现用源代码、脚本语言、二进制代码、可 执行子程序或组件实现系统。183 UML的应用举例1图书管理系统的建模下面以一个图书管理系统的建模为例, 介绍使用UML进行建模的基本过程。整个系 统的分析以及设计过程按照软件开发的一 般流程进行,包括如下步骤:l 需求分析 l系统分析 l系统设计 l系统实现193.1 需求分析 3.1.1 图书管理系统功能概述图书管理主要是借书、还书以及其他一些附 带操作(例如,超期罚款、催还图书等)的处 理。一个简单的图书管理系统应提供如下功能 : u借书处理:完成读者借书的流程处理。 u还书处理:完成读者还书的流程处理。 u信息查询:包括图书信
9、息查询和读者借阅情 况查询。 u图书管理:包括输入新书记录和删除旧书记 录。203.1.2 系统主要业务流程分析与系统功能相对应,系统主要有四个流程: 借书流程、还书流程、资料查询、图书资源 管理。各流程的主要过程描述如下: u借书流程:读者借阅所需的图书,借出后图 书的借阅标志为false(已被借出),借书记 录中增加一个实例。 u还书流程:读者归还所借的图书,还书后图 书的借阅标志为true(可被外借),借书记 录中删除一个实例。21u信息查询:读者和工作人员可以进行图 书信息查询,输入图书的编号或书名, 从图书对象列表中查找相应的实例。 u图书管理:首先由工作人员在“录入新 书资料”和“
10、删除旧书资料”两个选项中 选择。若是“录入新书资料”,则由工作 人员输入新书资料,将新书添加为图书 对象列表的新实例。若是“删除旧书资 料”,则查找需要删除的图书,将其从 图书对象列表中删除。223.1.3 系统功能模块分析满足上述需求的系统应该相应地包括以下 几个功能模块: l基本业务处理模块:主要用于实现图书管 理员对读者借书和还书的处理。 l信息查询模块:主要用于实现读者对图书 信息和自身借阅信息的查询。 l系统维护模块:主要用于实现系统管理员 对读者信息、图书管理员信息、图书信息 、和数据库的管理。233.1.4 建立用例模型根据功能需求构造用例模型,主要任 务是识别系统中的所有参与者
11、,并对每 个参与者找出其用例,建立用例模型。系统主要的参与者为“读者”、“图书 管理员”和“系统管理员”。各个参与者 的用例图如下。 24(1)读者用例图25(2)图书管理员用例图26(3)系统管理员用例图273.1.5 详述用例在设别了参与者和主要用例并创建了用 例图之后,如果有必要,还可以按顺序 详述每个用例,包括用例如何开始、结 束以及如何与参与者进行交互。2829303.2 系统分析在定义系统需求后,下一步就是确定构成 系统的对象类。系统中对象类的识别可以使用 名词/动词分析法来进行,即文本中的名词和名 词短语暗示类或类的属性,动词和动词短语暗 示职责或者类的操作。通过用例图的分析可知
12、,在图书管理系统中 可以确定的主要对象类包括 “读者”,“图书”、 “图书管理人员”和系统管理员。其中“读者”和“ 图书”通过借阅关系可以构成一个新类“借阅记 录”。31另外,分析用例图可知,用 例“身份验证”和“图书资料 查询”是对象类“读者”和“工 作人员”共同拥有的,并且 用例“身份验证”是除用例“ 图书资料查询”之外其余用 例执行的前提,因此可以将 “身份验证”与“图书资料查 询”定义为接口类中的操作 (接口类是不含属性且操作 函数没有具体实现的抽象类 ,接口类通过一个实现联系 获得其它对象类的支持,这 些对象类实现接口类中定义 的全部操作)。其余用例则 抽象为与该用例交互的参与 者所
13、属对象类的操作。32因此,最后可获得的对象类图为:33除了定义上述用于系统数据信息存储管理和业务逻辑 控制的类之外,在用图形用户界面开发系统时,我们还可 以定义一些相应的用户界面类: (1)MainWindow类MainWindow是图书管理员与系统交互的 主界面,系统的主界面具有菜单,当用户选择不同的菜单 项时,MainWindow对象调用相应的方法完成功能操作。 (2)BorrowDialog类BorrowDialog是进行借书操作时需要 的对话框。 (3)ReturnDialog类ReturnDialog是进行还书操作时需要 的对话框。 (4)QueryDialog类QueryDialo
14、g是查询某借阅者的借阅信 息或图书库存信息的对话框。 (5)MaintenanceWindow类MaintenanceWindow是系统管理 员对系统进行维护的主界面。它也提供菜单项.34353.3 系统设计系统设计的主要工作是用例实现设计 。即对每个用例进行动态建模,包括建立 序列图、协作图等,描述如何通过类对象 的协作来实现用例中的功能。随着动态建 模的深入,会发现原来建立的类存在缺陷 或不够完整,需要对分析中得到的类图进 行不断的修正和调整。所以,还应该通过 动态建模来修正和完善类图。363.3.1 用例动态模型设计37383.3.2 类图设计进一步扩充和细化分析阶段定义的类, 包括定义新的类来处理用户的需求。 随 着动态建模的深入,也会发现原来建立 的类存在缺陷或不够完整,需要对分析 中得到的类图进行不断的修正和调整。 所以,还应该通过动态建模来修正和完 善类图。39403.3.3 物理架构设计物理架构设计就是用UML图形描述系统软件和硬 件的大致结构,包括画出组件图和配置图。 (1)组件图:图书管理系统的组件图如下所示, 其中包含“借/还书处理”、“信息查询”、“图书资 源管理”和“身份验证”等组件。41(2)配置图图书管理系统是一个基于网络和数据库的应用 系统,可以采用B/S结构,系统配置图下图所示.42Visio 的用法43