UML 建模 类图
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UML 建模 类图相关的知识,希望对你有一定的参考价值。
很急 希望能马上解决 QQ邮箱452512438@qq.com 谢谢了一、某学校学生成绩系统的业务需求如下:l 教师可以使用系统输入、更新学生成绩。l 系统管理员根据教师提供的成绩创建学生成绩报告单。l 教师需要通过系统分发学生的成绩报告单。l 系统允许教师和学生查询存储在数据库记录中的学生成绩。第一步:确定参与者通过分析,可以确定系统参与者有教师、学生和系统管理员第二步:确定用例通过解决“系统要做什么?”,可以确定系统用例有输入成绩、更新成绩、创建学生成绩报告单、分发成绩单和查询成绩。第三步:用例描述(简述)1. 用例名:输入成绩参与者:教师主要事件流程:教师登录→选择课程→系统调用数据库→输入成绩→校对成绩→系统提示保存成绩→成绩输入完毕提示。2. 用例名:更新成绩参与者:教师主要事件流程:教师登录→选择课程→输入更新条件→系统调用数据库→系统显示学生成绩→教师修改成绩→系统提示保存成绩→成绩更新完毕提示。3. 用例名:创建学生成绩报告单参与者:系统管理员主要事件流程:系统管理员登录→选择课程→系统调用数据库→系统显示学生成绩报告单→系统提示是否生成报告单→成绩报告单生成完毕提示。4. 用例名:分发成绩单参与者:教师主要事件流程:教师或学生登录→选择课程→输入查询条件→系统调用数据库→系统显示学生成绩。根据以上资料创建用例模型二、从资料一的用例描述中选出名词词组确定类,可以确定学生成绩类和成绩报告单类,以及教师类、学生类、系统管理员类。另外系统还应提供学籍网站类以使教师、学生、系统管理员能通过此类来访问和查询成绩信息。第一步:类之间的关系:l 一个教师类对应多个成绩类l 一个系统管理员类对应多个成绩报告单类l 一个学生类对应多个成绩报告单类第二步:确定属性及操作:l 学生成绩类中包括的属性(略)l 学生成绩类中包括的操作有:输入成绩()、更新成绩()、分发成绩()、存储成绩()、加载成绩()l 学籍网站类中包括的属性有:用户名、密码l 学籍网站类中包括的操作有:登录()、查询成绩()。l 成绩报告单类中包括的属性及操作(略)根据以上资料:1. 创建学生成绩系统的类图2. 创建学生成绩系统的包图
参考技术A 一般都是先画用例图,分析用例。然后把用例图中的actor去除,其余的名词中的大部分就是类了,再根据具体情况斟酌一下,就可以画类图。类图并非一下子画完的,可以在一开始先画出一些必要的成员变量和成员函数,然后分析业务逻辑,并且开始画状态图、活动图和协作图、顺序图,在画这些图的时候对业务逻辑会有进一步的认识。这时会发现类图中的一些漏洞,然后回过头来补充类图。我的理解是:代码的编写是以最终的类图和对类图的补充说明文档为基础的。
参考技术B 统一建模语言UML
软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。
在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。
统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。
首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。
其次,统一建模语言扩展了现有方法的应用范围。特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。
第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。因此我们首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
标准建模语言UML的内容
首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义 描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义:
·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。
·第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。
·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。而活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。
·第四类是交互图(Interactive diagram),描述对象间的交互关系。其中顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。
·第五类是实现图( Implementation diagram )。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度。
配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。
从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。
Uml 建模 一(类图建模和startuml的使用)
本文将分三个部分介绍Uml建模:Uml建模的作用、类图、startuml的使用
Uml的作用
本文以java为例介绍Uml,在当前的软件开发中大多数使用面向对象开发(OO),面向对象的就是将现实世界中的对象,行为,关系等模拟化到软件系统中。当在开发一个软件系统的时候,不会一开始直接编程。这样做的后果就是没有经过详细的设计,导致后期某些业务逻辑基于现有的系统不能开发。所以对于软件系统的设计尤其重要。对于系统的设计分为两部分:1.需求分析人员根据现实业务场景,梳理出业务关系。(eg:一个老师带一个班的课程)2.软件设计师设计出对应的对象关系,行为,状态等(一个老师类,一个学生类 ,多多关系)。UML建模是将现实世界的业务抽象到软件系统中,通过图形的方式勾勒出整个系统,在UML中可以清晰的了解所有模块之间的关联关系。
一:Uml 建模三种模型
类模型:描述系统内部对象及其关系的静态结构。类模型由类图构建,类图中节点表示类,类与类之间的关联关系用不同含义的弧标识。
状态模型:描述对象随着时间迁移发生了哪些变化。状态模型使用状态图确定并实现控制。状态图的节点是状态,弧是由时间引发的状态间的转移。
交互模型:描述系统中对象如何协作完成更为宽泛的任务。用例:关注系统的功能,即系统为用户做了哪些事情。顺序图:显示交互对象以及发生交互的时间顺序。活动图:描述重要的处理步骤。
二:面向对象建模离不开最基础的面向对象的特性:抽象,继承,封装,多态,这些特性都会表现在类图上,对象可以被实例化,实例化的对象的属性,操作,类型模拟具体的对象特征。
三:类模型的特征
1.关联关系(Associated):描述在对象之间在物理上或者概念上的联系。关系方向是双向的,人和工具的关联,人使用工具工作。人和工具是多对多的关系。
表示关联关系的符号:1..5(1~5),* (表示多的意思),+(表示类是public修饰的)
关联中还有一种自关联:自己关联自己,常见的在树形结构中,例如组织关系
一个子机构可以有多个父结构,一个父结构可以有多个子机构
2.泛化(generalization)指一个父类与其一个或多个子类之间的关系。子类继承父类的特性,还可以表现出更宽泛的特征。
:String(生命属性的类型),+(表示public) - (private)#(protected) ~(package) eat() (吃饭的方法)
3.实现(realization):接口是操作的集合,实现类继承接口,将接口声明的抽象操作具体化。例如:动物都有吃的动作,人是吃饭,猴子吃水果。
默认的接口图形是原型,在这里我再startUml 中修改了它的展现方式
4.聚合(aggregation)关系是一种弱关联。一个聚集对象有多个部件构成,部件是聚集的一部分。例如:车和轮胎的关系,轮胎没了,车依然存在。聚合具有传递性,A聚合B,B聚合C ,A聚合C,并且也具有反聚合性,A聚合C,C不能聚合A
这里以四轮车为例:一辆车由四个轮子聚合
5.组合(compostion):有两个恩爱的约束条件,一个组成部件至多属于一个装配件。而且一个组成部件一旦被分配给装配件,它就会和装配件有着相同的生命周期。装配件消亡,组成件也将随之消亡。例如:人和胳臂,人消失了,胳臂也不复存在,又例如:程序员没了代码就会死。这种关系要比聚合更强。这里也是用实心菱型表示。
6.单项关联(directedAssociation):没有生命周期的限制,一个引用另外一个
一个人有多辆车
7.依赖(dependency):物体与物体之间产生的依赖关系,例如:人依赖空气和水
所有的关联关系:
一个动物的接口被人类所实现(realization),人这个类被男人和女人两个类所泛化(generalization),人类依赖(dependency)水和空气而存活,人类的胳臂和腿才能组合(compostion)成人类,缺一不可,人类消亡,胳臂和腿已经消亡.人类可以开一辆车或者多辆车(directedAssociation),多个车轮聚合(aggregation)成车的一部分,人类可以自关联,人类的父亲,孩子。人类也可以双向关联(association)
四:startUml的使用
1.下载startUml之后双击打开,点击default approach.
2.若左侧的工具栏没有显示,则点击view-->toolbox 在前面勾选,勾选model explorer。
3.找到Model explorer-->design model 右键点击 add--->选择package或者class
选中之后修改名称
3.拖拽这个类到文本框中进行编辑
4.连接关联关系,直接拖拽
5.直接添加的接口是圆形图标,要想设置成方格的形式Format-stereotype dispaly-textual
6.选中类或者接口点击这两个按钮既可以显示属性和行为(方法)
以上是关于UML 建模 类图的主要内容,如果未能解决你的问题,请参考以下文章