您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 基于UML建模的设计与分析
基于UML的系统分析与设计软件学院21统一建模语言UML概述1.1UML及其优点什么是UML(UnifyModelingLanguage)?UML是一种通用的、统一的的建模语言,是一种用图形方式描绘面向对象软件系统结构的有效方法。UML的优点(1)UML是一种定义良好,易于表达,功能强大且普遍实用的标准建模语言。(2)UML是综合了面向对象领域的几种优秀方法的特点和长处而提出的,是一种国际标准的建模语言,适合于面向对象分析与设计的建模描述。(3)UML是软件业界的第一个统一的建模语言,并得到工业界的广泛支持。31.2UML的模型视图用UML描述的系统模型一般是由几种视图组成的。UML主要提供了9种视图:用例图、类图、对象图、组件图、配置图、序列图、协作图、状态图和活动图,如下图所示。UML图静态图动态图用例图类图对象图组件图配置图序列图协作图状态图活动图41.3用例图(1)用例图定义用例图是从用户使用系统的角度描述系统功能的图形表达方法。一个用例(UseCase)是用于描述系统的一项功能需求或系统提供给用户的一项服务。(2)用例图举例右边为自动售货机系统的用例图。图中的方框代表系统,椭圆代表用例(售货、供货和取货款是自动售货机系统的典型用例),小人形(线条人)代表行为者,它们之间的连线表示关系。顾客供货人收银员自动售货系统::供货自动售货系统::取货款自动售货系统::售货-端1*-端2*-端1*-端2*-端1*-端2*自动售货系统51.4类图(1)类图的定义类图是表达构成系统的类及其相互联系的图示。类图是面向对象设计的核心,建立状态图、协作图和其他图的基础。(2)类图的描绘方法(1)使用名词/动词分析法来寻找构成系统的类,描绘这些类;(2)建立类与类之间的联系,包括关联、聚合/组合、泛化/特化、依赖等。6读者图书-name-number-password+借书()+还书()+借阅情况查询()-number-name-author-public-time借书记录-borrower-book图书管理人员-name-number-password+添加图书记录()+删除图书记录()接口身份验证接口图书资料查询**********系统对象类图**-Name-password系统管理员1nn11n71.5对象图(1)对象图的定义对象图(ObjectDiagram)表示一组对象和它们之间的联系。对象图实质上是类图的实例,也称实例图(InstanceDiagram)。对象图的表示方法与类图的表示方法大体相同。对象图是系统在某个特定时刻的具体状态。(2)对象图举例系别系别名学校A:学校B1:系别系别名=“计算机”B2:系别系别名=“电子”对象图是类图的实例81.6序列图(1)序列图的定义序列图用来描述一组对象间的交互关系,它表示为完成某项操作所需的参与对象和这些对象之间传递消息的时间顺序。(2)序列图举例读者身份认证借书记录1用户登录2身份验证(c)查询读者借阅记录序列图3输入查询信息5返回查询结果4信息查询91.7状态图(1)状态图(StatechartDiagram)的定义状态图描述系统运行过程中某类对象可能出现的状态,以及在不同状态间的跳转和触发这些跳转的外部事件。状态图侧重于描述对象在其生命周期中的动态行为。(2)状态图的组成UML状态图的图形元素包括:初始状态、转移、(中间)状态、判定、同步和终止状态。状态1状态2状态3状态4初始状态终止状态目标状态1目标状态2状态A分分源状态1源状态2目标状态分分101.8活动图(1)活动图的定义活动图(activitydiagram)用于描述系统业务流程或工作流程。活动图由一系列的动作状态构成,动作的状态控制可以从一个状态转向另一个与之相邻的状态。活动图还可以表示条件判断、分支决策、动作状态的并行执行、消息的规范说明等内容。接受订货填写订单寄送发票发货接受付款关闭订货顾客服务处理订货财务结算11(2)活动图的组成活动图的基本元素包括:活动状态、动作流、泳道、对象流,另外还包括初始状态、终止状态、判定、分叉、合并等元素。LoginCheckInputBookNumberFindLoanInfoDeleteUpdateLibrarianSystemSuccess121.9协作图(1)协作图的定义用来描述实现某些服务所涉及的对象及其相互之间的关系(包括消息通信)的图示就称为协作图(Collaboration)。协作图可用来描绘业务流程。(2)协作图举例Librarian1:queryLoan():QueryDialog2:createDialog():Borrower-Book3:queryLoanInfo()4:getBoook()6:返回借阅信息7:显示借阅信息5:消息查询查询读者借阅信息序列图:MainWindow131.10组件图(1)组件图的定义组件是提供了一组接口的物理实现模块,它可以是软件开发过程中的产物,如源码、二进制码和可执行码等。它们是类、接口等逻辑模型的物理实现。接口是为外部提供可调用函数原型的程序模块。组件图表示构成系统的组件及其相互之间的联系。它是描述系统的软件结构的模型。14(2)组件图的组成组件图由组件、接口和组件之间的联系构成。a)组件由一个左边嵌两个小矩形的大矩形表示,大矩形中填写组件的名字。b)接口由一个空心圆表示。c)组件之间的依赖是指一个组件的模型元素需要使用另一个组件的模型元素。依赖用一个虚箭线表示,箭线从客户组件指向供应者组件。组件1组件2接口实现依赖151.11配置图(1)配置图定义配置图就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。组件3组件4结点1组件5结点2连接配置图示例16172基于UML的面向对象系统开发方法像一般的系统开发方法一样,基于UML的面向对象系统开发方法也可以分为如下步骤:(1)需求分析(用例分析)—建立用例模型来描述用户需求;(2)系统分析—将用例模型转化为由类图和对象图组成的分析模型;(3)系统设计a)用编程语言或接近编程语言的语言来更精确地描述类图和对象图,以便于后面能将类图和对象图映射到编码实现的系统。b)在详细设计阶段要对每个用例进行动态建模,包括建立序列图、协作图等,以描述如何通过类图中的对象协作实现用例中的功能。随着动态建模的深入,会发现前面建立的类往往存在缺陷或不够完整,需要对分析中得到的类图进行不断的修正和调整。(4)系统实现—用源代码、脚本语言、二进制代码、可执行子程序或组件实现系统。183UML的应用举例1—图书管理系统的建模下面以一个图书管理系统的建模为例,介绍使用UML进行建模的基本过程。整个系统的分析以及设计过程按照软件开发的一般流程进行,包括如下步骤:需求分析系统分析系统设计系统实现193.1需求分析3.1.1图书管理系统功能概述图书管理主要是借书、还书以及其他一些附带操作(例如,超期罚款、催还图书等)的处理。一个简单的图书管理系统应提供如下功能:借书处理:完成读者借书的流程处理。还书处理:完成读者还书的流程处理。信息查询:包括图书信息查询和读者借阅情况查询。图书管理:包括输入新书记录和删除旧书记录。203.1.2系统主要业务流程分析与系统功能相对应,系统主要有四个流程:借书流程、还书流程、资料查询、图书资源管理。各流程的主要过程描述如下:借书流程:读者借阅所需的图书,借出后图书的借阅标志为false(已被借出),借书记录中增加一个实例。还书流程:读者归还所借的图书,还书后图书的借阅标志为true(可被外借),借书记录中删除一个实例。21信息查询:读者和工作人员可以进行图书信息查询,输入图书的编号或书名,从图书对象列表中查找相应的实例。图书管理:首先由工作人员在“录入新书资料”和“删除旧书资料”两个选项中选择。若是“录入新书资料”,则由工作人员输入新书资料,将新书添加为图书对象列表的新实例。若是“删除旧书资料”,则查找需要删除的图书,将其从图书对象列表中删除。223.1.3系统功能模块分析满足上述需求的系统应该相应地包括以下几个功能模块:基本业务处理模块:主要用于实现图书管理员对读者借书和还书的处理。信息查询模块:主要用于实现读者对图书信息和自身借阅信息的查询。系统维护模块:主要用于实现系统管理员对读者信息、图书管理员信息、图书信息、和数据库的管理。233.1.4建立用例模型根据功能需求构造用例模型,主要任务是识别系统中的所有参与者,并对每个参与者找出其用例,建立用例模型。系统主要的参与者为“读者”、“图书管理员”和“系统管理员”。各个参与者的用例图如下。24(1)读者用例图读者查找图书查询借阅信息登录系统借阅图书归还图书缴纳罚金《include》《extend》25(2)图书管理员用例图图书管理员查询借阅信息检查用户合法性归还图书收取罚金《include》《extend》26(3)系统管理员用例图添加书目删除书目查询图书系统管理员添加读者删除读者查询读者273.1.5详述用例在设别了参与者和主要用例并创建了用例图之后,如果有必要,还可以按顺序详述每个用例,包括用例如何开始、结束以及如何与参与者进行交互。28表7-1读者查找个人借阅信息用例用例:读者查找个人借阅信息(用例名称)ID:1(唯一标识符)参与者:(涉及用例的参与者)1.读者前提条件:(用例开始时,系统必须满足的条件)读者已经登录到系统事件流:(用例中的实际步骤)1.读者选择查找个人借阅信息界面2.读者录入图书证编号3.系统按图书证编号查找读者借阅信息结果:(用例结束时,系统的状态)系统向读者显示读者借阅信息,该用例结束29表7-2读者查找图书信息用例用例:读者查找图书信息(用例名称)ID:2(唯一标识符)参与者:(涉及用例的参与者)1.读者前提条件:(用例开始时,系统必须满足的条件)读者已经启动图书管理系统,并已知书名或书号事件流:(用例中的实际步骤)1.读者选择查找图书信息界面2.读者输入书名或书号3.系统按书名或书号查找图书信息结果:(用例结束时,系统的状态)系统向读者显示图书信息,该用例结束303.2系统分析在定义系统需求后,下一步就是确定构成系统的对象类。系统中对象类的识别可以使用名词/动词分析法来进行,即文本中的名词和名词短语暗示类或类的属性,动词和动词短语暗示职责或者类的操作。通过用例图的分析可知,在图书管理系统中可以确定的主要对象类包括“读者”,“图书”、“图书管理人员”和系统管理员。其中“读者”和“图书”通过借阅关系可以构成一个新类“借阅记录”。31另外,分析用例图可知,用例“身份验证”和“图书资料查询”是对象类“读者”和“工作人员”共同拥有的,并且用例“身份验证”是除用例“图书资料查询”之外其余用例执行的前提,因此可以将“身份验证”与“图书资料查询”定义为接口类中的操作(接口类是不含属性且操作函数没有具体实现的抽象类,接口类通过一个实现联系获得其它对象类的支持,这些对象类实现接口类中定义的全部操作)。其余用例则抽象为与该用例交互的参与者所属对象类的操作。借书处理还书处理资料查询图书资料查询借阅资料查询身份验证图书资源管理添加新书记录删除旧书记录useuseuseuseuseuseuseuseuseuseuseuseuse读者工作人员32因此,最后可获得的对象类图为:读者图书-name-number-password+借书()+还书()+借阅情况查询()-number-name-author-public-time借书记录-borrower-book图书管理人员-name-number-password+添加图书记录()+删除图书记录()接口身份验证接口图书资料查询**********系统对象类图**-Name-password系统管理员1nn11n33除了定义上述用于系统数据信息存储管理和业务
本文标题:基于UML建模的设计与分析
链接地址:https://www.777doc.com/doc-5872481 .html