uml考试总结

2024-11-16 版权声明 我要投稿

uml考试总结(精选6篇)

uml考试总结 篇1

回答:任何系统都有多种风险承担人.每种UML图都提供了用于一种或几种风险承担人对话的视图。

2.那种UML 图给出了系统的静态视图?

回答:下列UML 图提供了系统的静态视图:类图、对象图、构建图 和 部署图。

3.哪种UML 图提供了系统的动态视图(也就是说,描述系统随时间所经历的变化)?

回答: 下列UML 图提供了系统的动态视图:用例图、状态图、顺序图、活动图 和 协作图。

1.什么是对象?

回答: 对象是一个类的实例。

2.对象之间如何协同工作?

回答:对象通过相互发送消息协同工作。

3.多重性说明了什么?

回答: 多重性说明了一个类的多少个对象能够与另一个类的对象发生关联。

4.两个对象之间能够以多种方式关联吗?

回答:可以。例如两个人之间既可以形成朋友关系也可以形成同事关系。

1.如何用UML 表示类?

回答:用一个矩形框来表示一个类。类名位于矩形框的中央,接近框的顶部。

2.类图中可以指明哪些信息?

回答:可以指明类的属性,操作。

3.什么是约束?

回答:约束是类图应该遵循的一个或一组规则,它用一个花括号括起来的文本表示。

4.为什么要对类图标注附加的注释。

回答:可以为类图增加注释,增加一些在属性、操作或职责中没有指明的信息。例如,可以用它来指明一个包含更多信息的文档。

1.多重性怎么表示?

回答:在关联线的一端可以指明多少个远端对象可以和近端多少个对象发生关联。

2.如何发现类之间的继承关系?

回答:在初始模型的类列表中,找出两个或多个具有相同属性和操作的类。其中的一个类可能就是其他类的父亲,或者

可以为这些类新建一个父类。

3.什么是抽象类?

回答:抽象类用做继承层次中的基类,但是它不产生实例对象。

4.限定符有哪些作用?

回答:限定符的作用是将一对多关联化解为一对一关联。

1.聚集和组成之间有什么区别?

回答: 组成和聚集都是整体类和部分之间的整体-部分关联.在聚集中, 部分可能属于多个整体.在组成中, 部分职能属于一个整体.2.什么叫实现?实现和继承有何相似之处?两者又有何不同之处?

回答:实现是类和它的接口之间的关系。可以说成是类实现了它的接口。实现和继承的类似之处在于类可以使用它的接口中的操作也可以操作也可以

从父类中继承操作。两者的不同之处是类不能使用它的接口中的属性但可以继承父类的属性。(?)

3.写出3种可见性层次的名称,并描述每一种可见性的含义?

如果一个类的属性或操作具有public 可见性,在另一个类中可以使用这个类的属性或操作。

如果一个类的属性或操作具有protected 可见性,那么这个类的子类或者其他的子孙可以使用这个类中的属性或操作。

如果一个类的属性或操作具有private 可见性,那么只有拥有它的属性和操作的类才能使用它们。

接口中的操作都具有公用可见性。

1.发起一个用例的外部实体被称为什么?

回答:发起用例的外部实体被称为参与者actor。

2.包含用例是什么含义?

回答:“包含一个用例”的含义是一个用例中某个场景中的一些步骤和另一个用例中某个场景中的一些步骤是相同的。

所以可以不列出用例的所有场景,而只是指明它所包含的用例就可以了。

3.扩展用例是什么含义?

回答:“扩展”一个用例是指在这个用例中增加步骤。这样可以产生一个新的用例。

4.用例和场景是同一个概念吗?

回答:不是。用例是一组场景的集合。

1.举出可视化表示用例的两个优点。

回答:有了可视化表示的用例,就可以(1)将这种图形化的表示给用户,可从用户那里得到更多的相关信息。

(2)可以将这些图与其他类型的图结合起来。

2.说明如何可视化描述本章中学到的用例之间的两种关系:泛化和分组。举出需要对用例分组的两种情况。

在泛化关系中,一个用例继承了另一个用例的含义和行为。分组时将一组用例组织成为一个包。

3.类和用例之间有什么类似之处?又有哪些差异?

回答:相同点:两者都是结构元素。两者都有继承关系。

不同点:类由属性和操作组成。用例由场景组成,每个场景又由一个步骤序列组成。类提供了系统的部分静态视图,用例提供了系统动态的行为视图。

类描述的是系统的内部构成,而用例说明的是从外部看到的系统。

1.状态图在哪些重要方面与类图、对象图或者用例图有所不同?

回答:状态图只是对一个对象的状态建模。类图、对象图或者用例图对一个系统或者至少是一部分建模。

2.给出下列术语的定义:转移、事件和动作。

转移是从一个状态变化到另一个状态。事件是引起一个转移的某件事情的发生。动作是一个可执行的计算,它能引起一个状态变化。

3.什么是无触发器转移?

回答:无触发器转移是由于状态内的活动发生而引起的,不是因为对一个事件的响应而引起的。

4.顺序子状态和并发子状态有什么区别?

子状态是状态内的状态。顺序子状态一个接一个地顺序出现。而并发子状态同时出现。

5.什么是伪状态?请举例说明。

uml考试总结 篇2

关键词:UML,用例图,类图,顺序图,协作图,网上考试系统

1 引言

考试是教学过程中的一个重要环节,也是检验教学效果的一个主要手段,但传统的考试方式,局限性大、资源浪费严重,不能适应远程教育的要求,取而代之的网上无纸化考试方式。基于网络的考试系统的应用,能减轻教师的评卷工作量,加快教学信息的反馈等,已成为一种发展趋势。

考试要求考试系统必须具有很强的稳定性、可维护性和可重用性。面向对象的系统分析方法被认为是最具发展潜力的分析方法。UML(Unified Modeling Language)[1,2]是Rational Software公司研制的一种基于面向对象技术的、定义良好、易于表达、功能强大且普遍适用的描述系统架构的建模语言。它涵盖了面向对象的分析、设计和实现,融合了早期面向对象建模方法和各种建模语言的优点,并融入了软件工程领域的新思想、新方法和新技术,为面向对象系统的开发、软件自动化工具与环境提供了丰富的、严谨的、扩充性强的表达方式。使用UML进行系统分析和设计,可以加速开发进程,提高代码质量,支持动态的业务需求,能促进软件复用,使系统功能层次清楚,角色任务明确,便于团队沟通,可以提高工作效率,保证系统设计的可靠性。它使得整个软件分析设计相对传统E-R图来说更有助于提高开发效率。

本文以网上考试系统的分析为例,给出了基于UML的面向对象的系统建模的方法。通过使用UML建模语言和Rational Rose工具对系统进行建模,给出了考试系统的用例图、类图、顺序图和协作图,这对后期系统的开发和维护起到了很好的效果。

2 UML建模简介

UML是由著名的三位技术专家Gray Booch、Jim Rum baugh和Ivar Jacobson发起,在Booch、OMT和OOSE方法基础上的完善。它是一种可以对复杂系统的各个侧面进行可视化描述、构造系统模型以及建立和维护各种所需文档的标准的图形化建模语言,是汇集了多种面向对象建模技术的精华而发展起来并成为面向对象建模语言的工业标准。UML采用的是一种图形表示法,即它将模型中的信息用标准图形元素直观的显示。建立模型后,所有重要的信息将一目了然。例如,用户可以通过模型直观地看到用户与系统间的交互,分析人员可以看到系统对象间的交互,开发人员可以看到要开发的对象和每个对象的任务,测试人员可以看到对象间的交互并根据这些交互准备测试案例,项目管理人员可以看到整个系统各部分的交互。

UML可以对任何具有静态结构和动态行为的系统进行建模。UML共定义了10种模型图从静态与动态两方面来描述系统。静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系,表示静态结构的模型图有用例图、类图、对象图、组件图和部署图;动态行为定义了对象的时间特性和对象为完成目标任务而相互进行通信的机制,表示动态行为的模型图有顺序图、协作图、活动图和状态图。此外,UML还定义了一些关系:类与类之间的关系有关联、继承(泛化)、依赖和聚合,用例与用例之间的关系有包含、扩展和泛化。

UML定义的五类、共10种模型图如下[3]:

1)第一类是用例图。它从用户的角度描述系统的功能,并指出各功能的操作者。用例图有助于系统开发者与用户之间进行交流,以获取用户需求。

2)第二类是静态图,包括类图、对象图和包图。其中类图用于定义系统中的类,包括描述类之间的联系(如关联、依赖、聚合等)以及类的内部结构,即类的属性和操作;对象图显示类的对象实例,一个对象图是类图的一个实例;包图由包或类组成,主要表示包与包、或包与类之间的关系,用于描述系统的分层结构。

3)第三类是行为图,描述系统的动态模型和组成对象间的交互关系。一种是状态图,它描述一类对象的所有可能的状态以及事件发生时状态的转移条件;另一种是活动图,它描述为满足用例要求所要进行的活动以及活动间的约束关系。

4)第四类是交互图,它描述对象间的交互关系,系动态视图。一种称之为顺序图,用以显示对象之间的动态合作关系;另一种是协作图,它着重描述对象间的协作关系。

5)第五类是实现图,包括构件图和配置图。构件图描述代码部件的物理结构以及各部件之间的依赖关系;配置图定义系统中软硬件的物理体系结构。这些图为系统的分析、开发提供了多种图形表示,它们的有机结合就有可能分析与构造一个一致的系统。

另外,Rose是美国Rational公司的可视化UML建模工具,是UML市场上领先的重量级产品。可以用来先建模系统再编写代码,从而一开始就保证系统结构合理。利用模型可以更方便地捕获设计缺陷,从而以较低成本修正这些缺陷。Rational Rose还可以帮助开发人员产生框架代码,适用于多种程序开发语言。

下面以网上考试系统为例,介绍运用UML的建模机制来进行面向对象的系统建模的完整过程。

3 基于UML的网上考试系统建模过程

运用UML进行面向对象的系统分析设计,其过程通常由3个步骤组成:首先是描述需求,其次是根据需求建立系统的静态模型,以构造系统的结构,最后是描述系统的行为。其中前两步中所建立的模型都是静态的,而在第三步中所建立的模型或者是可以执行、或者是执行时的时序图或交互图,是动态的。

3.1 系统需求分析

需求分析的目的就是确定系统的功能,而UML的用例图能形象地描述系统的功能。用例图展示了系统的参与者(角色)、用例以及它们之间的相互关系。角色是指位于所工作的系统外部的人或其它系统。用例就是用户因某外部事件而与计算机进行的一次交互。建立用例图,首先要识别系统的使用者和相关外部系统,确立好角色(Actor),然后再依据系统功能来建立用例图。

在网上考试系统中系统的参与者有三种:一是系统管理员,二是教师,三是考生。系统管理员管理题库的增加、删除、修改和用户权限的分配。教师可以自主管理自己权限下的试题和试卷,对其进行添加、更改、删除、组卷以及批阅试卷等操作。学生则主要是进行考试。针对这三种用户,系统可以分为三大模块:用户管理模块、考试管理模块和试题管理模块。本文主要围绕考试管理模块进行建模。

由上述的需求分析,可以定义考试系统全局用例图,如图1所示。

3.2 系统总体设计

使用UML对系统进行总体设计,即建立系统的对象模型。系统的对象模型通常包括两个部分:静态模型和动态模型。在此阶段,由需求分析入手,建立系统的静态模型与动态模型。

3.2.1 系统静态模型

用例图只考虑系统应该提供什么样的功能,而对这些功能的内部运作情况不予考虑,为了揭示系统的内部关系,需要建立系统的静态模型。

系统静态模型主要是对系统静态结构的描述。在UML中,系统的静态结构主要用类图、包图及对象图进行描述。类图是对一类具有相同特征的对象的描述它定义了系统中的类以及类之间的联系,如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。由于类图描述的是一种静态关系,所以在系统的整个生命周期都是有效的。类图设计是面向对象方法的核心技术,通过类图将用例的实现具体到每个类中,从而完成设计走向细化的过程。

建立系统类图,主要找出系统中的类与对象以及它们之间的关系。即:首先需识别出系统中的对象,并进一步从对象中抽象出类,然后定义类的内部特征,最后找到类的外部关系。

根据系统用例图,可以确定系统中的主要类有:试题、试卷、教师、考生、系统管理员、考试。对于考试模块,它涉及到的主要类为:试题、试卷、考生、考试。“试卷”类和“试题”类之间存在聚合关系。“试卷”由一道道试题组成,每一道试题可能在多份试卷中。考生类和考试类有依赖关系,考试和试卷类之间是单向关联关系。考试模块的类图如图2所示。

3.2.2 系统动态模型

动态模型是对静态模型的补充。在UML中,动态模型主要用顺序图、协作图和状态图来描述。状态图描述一个对象所处的可能状态及状态之间的转换,并给出了状态变化序列的起点和终点。顺序图描述对象之间按照特定顺序发生的交互关系。协作图描述的是对象之间交互的语境与交互的对象的整体组织。UML通过顺序图、协作图和状态图来描述对象间的交互关系和交互顺序、对象的生命周期以及生命周期中对象可能存在的状态和状态间的转换约束[4,5]。

顺序图和协作图都是用来描述一个用例的行为,只是两者的侧重点不一样,顺序图着重体现交互的时间顺序,协作图主要表示对象与对象之间的连接。下面对网络考试系统的主要用例—考试用例建立顺序图和协作图。

1)顺序图。考试用例的顺序图如图3所示。

从这个顺序图中可以看出,参与考试过程有四个对象类:考生、考试、试卷、试题。考试开始时,考生登录系统、考试对象检查考生考试状态,然后试卷对象从试题对象中读取考试试题供考生作答。每答完一道题,试卷对象保存考生答案,同时考试对象保存与考试相关的一些信息:考试剩余时间、当前题目号等。答题完毕后,考生对象选择交卷从而完成考试。

2)协作图。它用于描述系统的行为是如何由系统的对象实现的。对考试系统的主要用例绘制协作图,以便深入地了解和表示系统的行为和各个对象的作用。考试用例协作图如图4所示。

4 结束语

网上考试系统实现了计算机考试整个过程的自动化,有很强的实用性。UML是一种面向对象的建模语言,可用于网络考试系统的建模。通过分析系统功能需求,得出系统的用户模型;通过分析并设计用例,得出系统的静态模型和动态模型;基于对系统的需求分析、总体设计,完成程序代码编写,最终实现系统的建立。使用UML建立系统模型,使开发流程变得十分清晰,提高了软件开发的效率和保证了软件设计的质量,有利于提高系统的稳定性、可维护性和可重用性,并为不同背景、不同领域下的专家、开发人员以及用户提供了一条标准的交流途径。

参考文献

[1]刘超,张莉.可视化面向对象建模技术[M].北京:北京航空航天大学出版社,1999.

[2]Larman C.UML和模式应用—面向对象分析与设计导论[M].姚淑珍,李虎,译.北京:机械工业出版社,2002.

[3]周伯生,张莉.标准建模语言UML及其支持环境[J].计算机世界,1998(43):24-25.

[4]翼振燕.UML系统分析设计与应用案例[M].北京:人民邮电出版社,2003.

UML建模实验指导书总结 篇3

实验一 熟悉UML开发工具Microsoft Visio 2007 【实验目的】

熟悉UML开发工具Microsoft Visio 2007。【实验要求】

1. 熟悉Visio的UML建模绘图界面。2. 通过绘制类图学习Visio的使用方法。3. 通过绘制对象图学习Visio的使用方法。4. 通过绘制顺序图学习Visio的使用方法。【实验步骤】

一.熟悉Visio的UML建模绘图界面 1.进入Visio的UML建模绘图界面 通过“开始”|“程序”,运行Microsoft Office Visio 2007,出现Microsoft Visio界面。在左侧的“类别”区域中单击“软件”,然后在右侧的“模板”中单击“UML模型图”,则进入Visio的UML建模绘图界面。

2.熟悉UML建模绘图界面

在Visio的UML建模绘图界面中,最大的白色区域就是绘图区。左上方的“形状”窗口就是Visio的UML元素调板,它由很多的标签页组成。每个标签页提供了一个特定的UML图标。左下方的“模型资源管理器”就是Visio的字典,字典就是所创建的所有元素及其属性的记录的集合。当Visio打开并准备开始UML绘图的时候,“UML静态结构”标签页就会激活,我们就可以创建类图和对象图了。

二.绘制类图

下面我们使用Visio来绘制一个如图1所示的行星系统的类模型。

图1 一个行星系统的类图

1.从“UML静态结构”标签页中选择“类”图标并把它拖放到绘图区中。双击绘图区

中的类图标,出现“UML类属性”窗口。在“名称”字段中输入“PlanetarySystem”来重新命名这个类。单击“确定”按钮回到绘图界面。我们可以通过控制工具栏中“缩放”按钮的显示比例,使界面中的类图标显示合适的大小。采用同样的方法添加Planet类。在“模型资源管理器”中反映出了增加的新类。

2.下面我们为Planet类添加两个属性和一个操作,并把它设置为一个抽象类。

在Planet类上双击打开“UML 类属性”对话框。选中“IsAbstract”复选框,然后,从左边的“类别”区域选择“特性”,在右边的对话框中打开“特性”表。单击“新建”按钮,则在 “特性”表中添加了一行,在“特性”表项中输入diameter。采用同样的方式加入 distanceFromStar属性。

然后从“类别”区域选择“操作”,打开“操作”表,单击“新建”按钮,则在 “操作”表中添加了一行,在“操作”表项中输入“receiveLight”。单击“确定”按钮,赋予抽象类Planet相应的属性和操作。

3.注意每个属性左边的减号和每个操作左边的加号,它们表示可见性。为了使图显得比较简单,我们可以在图中去掉它们。只需要在Planet类上右击,打开弹出式菜单,选择“形状显示选项”,打开“UML 形状显示选项”对话框。去掉“可见性”复选框,单击“确定”按钮,则Planet类的属性和操作前面不再显示可见性。

4.我们把其他的类拖拽到大图中,然后添加组成关系。

首先是组成关系。从“UML静态结构”标签页中把“聚合”图标拖拽到绘图区,实心菱形一端连接到PlanetarySystem,另一端(尾端)连接到Star。

在图中,我们可以看到组成关系的每一段都有多重关系、可见性和缺省名。为了在图中去掉缺省名和可见性,在组成关系上右击,在弹出菜单中选择“形状显示选项”。这次,在“UML 形状显示选项”对话框中,去掉“第一个端名”、“第二个端名”和“端的可见性”选项,单击“确定”按钮。

现在我们来关注一下Star类的多重关系。双击组成关系图标,打开“UML关联属性”对话框。在“关联端”表格中,选择“结束2”一行“多重性”列的单元格。单击这个单元格中的下拉列表框,显示出“结束2”的可能多重性关系的一个列表。选择“1”并单击“确定”按钮,我们将在图中得到所选多重性的表示。

采用同样的方式拖拽“聚合”图标,先把菱形箭头的一端连在“PlanetarySystem”,然后再把尾端连接到Planet类,并进行多重性等相关设置。

5.向图中添加继承关系。

从“UML静态结构”标签页中将“泛化”符号拖拽到绘图区,把三角形的一端连接到Planet,尾端连接到HabitablePlanet。重复拖拽一个“泛化”符号,把三角形的一端连接到Planet,尾段连接到NonHabitablePlanet。完成这些操作后,绘图区中就是完整的类图。

三.绘制对象图

下面我们使用Visio绘制一个如图2所示的Earth和Sun的对象模型。

图2 Earth和Sun的对象图

1.在“模型资源管理器”中“顶层包”的文件夹上右击,从弹出菜单中选择“新建”|“静态结构图”,则创建并打开了一个新的静态结构图。从“形状”的“UML 静态结构”标签页中选择“对象”图标,拖拽到绘图区。

2.在对象图标上双击打开“UML对象属性”对话框。在“名称”字段中输入“theSun”替代缺省名字。我们还需要表明theSum是Star类的一个实例,为此,选择“类”字段并单击下拉列表。从类列表中选择“顶层包::Star”,然后单击“确定”按钮。

3.用相同的一系列步骤创建HabitablePlanet类的一个earth对象。双击打开“UML对象属性”对话框。从“类别”区域选择“特性值”打开“Attribute Values”表。在这张表中,我们可以填入diameter和distanceFromTheStar属性的值,这两个属性是HabitablePlanet继承自Planet的。在“值”列赋值,单击“确定”按钮。

4.在对象之间添加连接。

从“UML 静态结构”标签页中拖动“链接”符号到绘图区,将其两端分别和对象连接起来。完成这个步骤后,“结束1”和“结束2”的名字就出现了,在连接上右击,并通过“形状显示选项”可以从图中移除它们。

四.绘制顺序图

下面我们使用Visio绘制一个如图3所示的示意theSun和Earth之间的一个交互的顺序图(简化的图形,只有一条消息)。

图3 示意theSun和earth之间的一个交互的顺序图

1.在“模型资源管理器”的“顶层包”图标上右击,从弹出菜单上选择“新建”|“序列图”,则打开一个新的绘图区。

2.从“UML序列”标签中,拖拽一个“对象生命线”图标并把它放入到绘图区。双击图标打开“UML 分类器角色属性”对话框,在“名称”区域命名对象以后,在“分类器”区域从你创建的类列表中选定对象所属的类,单击“确定”按钮。

3.右击新添加的对象生命线,单击“UML形状显示选项”,通过选择“分类器名称”复选框可以显示类名。

4.通过一系列类似的步骤,创建另一个表示Earth的对象生命线图标。5.创建从sun对象到earth对象的消息。

从“UML 序列图”中选择 “消息”图标,并把它拖拽到绘图区,把它的尾部连接到sun对象的生命线,把它的头部连接到earth对象的生命线。

要改变消息的缺省标记,双击消息图标打开“UML 消息属性”对话框。由于只有一个可能的操作,名字和来自earth对象的消息所请求的操作都已经被选好了。单击“确定”按钮,则把操作放到消息之上。

6.从“UML序列”标签中,拖拽一个“激活条”图标完成顺序图。【思考问题】

1.对于本实验中创建的类图和对象图能在两个不同的绘图文件中分别创建吗?类图和顺序图呢?为什么?

2.本实验中创建的顺序图是在“顶层包”下新建的序列图中创建的,请问顺序图能在静态结构图中创建吗?为什么?

实验二 用例图设计

【实验目的】

掌握在Visio下用例图的设计。【实验要求】

1. 针对网上选课系统掌握识别参与者和用例的方法。2. 学习通过Visio绘制用例图的方法。3. 掌握如何对每个用例进行用例描述。【实验步骤】

一.网上选课系统需求分析

某学校的网上选课系统主要包括如下功能:

1. 管理员通过系统管理界面进入,建立本学期要开的各种课程,将课程信息保存在数据库中并可以对课程进行改动和删除。

2. 学生通过客户机浏览器根据学号和密码进入选课界面,在这里学生可以进行三种操作:查询已选课程、选课以及付费。同样,通过业务层,这些操作结果存入数据库中。二.在Visio中设置全局属性 1. 添加四个模型

单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“模型”,则打开了“UML模型”窗口。单击“新建”按钮,在“模型”表项中输入模型的名字。依次添加4个模型:用例模型、分析模型、设计模型和实现模型。

下面简要介绍一下四个模型的功能。

(1)用例模型:用例贯穿于建模的整个过程,因为软件和顶层包的价值就在于实现用例,从而为用户提供期望的功能。用例细化可使用活动图、顺序图等。

(2)分析模型:识别分析类,利用分析类实现用例,是用例模型中用例细化活动的延伸。主要使用顺序图和协作图实现用例。

(3)设计模型:将分析模型转化为解决方案。分析类转化为一个或多个设计类、接口、类(和接口)的操作、类的特性都被完整的定义。根据解决问题的需要,可能会引入一些包,这些包提供了诸如数据库访问、异常处理、分布式通信等基础服务。

通常有两种途径获得设计类:

1)将分析类转化一个或多个设计类;

2)通过引入基础服务获得设计类。

用设计类实现用例:使用顺序图和协作图。

设计系统原型:通过它验证解决方案的正确性,并为实现者提供指南。

(4)实现模型:将设计模型转化可执行代码的过程。关键的活动有:代码编写、测试、部署。使用构件图来描述系统的静态实现视图,使用部署图来描述系统的动态实现视图。

2. 将UML系统改名为SelectCourseSystem 在“模型资源管理器”窗口下,右击顶层节点,选择“属性”命令。在“UML子系统属性”对话框的“名称”文本框中输入新的名称“SelectCourseSystem”。在“文档”文本框中可以输入一些说明消息。

3. 设置模型的数据类型 在默认情况下,UML中可以使用的数据类型有4个包。本例中将目标语言绑定为C++,所以仅保留C++数据类型包。

单击Visio界面上菜单栏中的“UML”菜单,选择其下拉菜单中的“选项”,则打开了“UML选项”窗口。在 “UML文档”选项卡中选择C++数据类型。

三.实现用例模型 1. 识别参与者

本系统涉及的用户包括管理员Registrar和学生Student,他们是用例图的参与者,他们的主要特征相似,都具有姓名和学号等信息,所以可以抽象出“基”参与者人People,而Registrar和Student则从People统一派生。数据库管理系统Database是另外一个参与者。

2. 识别用例

识别、详述用例是用例建模过程中最重要的活动。顺着参与者出发,通过考虑参与者和系统的交互,可以识别出主要用例。

(1)与Students参与者相关的用例有哪些?(2)与Registrar参与者相关的用例有哪些?(3)哪些用例与Database参与者相关?

3. 绘制参与者以及参与者之间的关系

(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“主角”命令,出现“UML主角属性”对话框。将主角命名为“Registrar”,然后在“文档”栏中输入一些描述管理员主角职责的文字。其中的完整路径显示了主角在UML模型中所处的位置。单击“确定”按钮,则在“用例模型”的“顶层包”下新增了一个名为“Registrar”的主角。

重复上面操作,在用例模型的顶层包中添加上所有主角。

(2)下面绘图角色之间的关系。

双击“用例模型”“顶层包”下的“静态结构图”,这时会在绘图画板中打开。分别将Registrar角色、Student角色、People角色拖放到绘图画板,然后将“UML静态结构”标签页中的“泛化”图标拖放到绘图画板,并用它来连接两个角色。4. 绘制用例以及用例之间的泛化关系

(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例”命令,出现“UML用例属性”对话框。在“名称”框中输入一个你所找到用例名,单击“确定”按钮。

重复上面操作,在用例模型的顶层包中添加上所有用例。

(2)用例之间如果存在泛化关系,则拖拽“UML静态结构”标签页中的“泛化”图标到静态结构图中,来连接两个用例。5. 绘制用例图

(1)在“模型资源管理器”中,右击“用例模型”下的“顶层包”,选择“新建”|“用例图”,这时会新建一个名为“用例-1”的空白用例图,右击新建的空白用例图节点,选择“重命名”,可对用例图重新命名。

(2)在“形状”中的“UML用例”标签页中,将“系统边界”形状拖放到用例图中,双击系统边界形状,可进行重新命名。

(3)在“模型资源管理器”中“用例模型”下,选中“Registrar”、“Student”和“Database”主角,拖放到用例图的系统边界之外。将“用例模型”下创建的用例拖放到用例图的“系统边界”内。

(4)绘制参与者与用例之间的关联。

如果主角和系统的交互包含某个用例,那么主角和该用例之间存在通信关系。将“UML用例”标签页中的“通信”图标拖放到用例图中,用它来连接参与者和用例。

端点名表示通信连接两端在通信中扮演的角色。端点的多重性表示通信另一端连接的一个对象对应着本端点连接的对象的数量。右击通信连线,选择“属性”,出现“UML关联属性”对话框,可以设置连接线的两个端点的多重性,还可以设置连接线的导航方向。为了降低图表的复杂性,通常只有在例外的情况下才显示导向性。

如果不关心端点名等信息,为了在视觉效果上隐藏这些信息,右击通信连线,选择“形状显示选项”命令,进行设置即可。(5)绘制用例之间的包含和扩展关系。

用例之间如果存在包含关系,则通过拖拽“UML用例”标签页中的“用”图标来连接两个用例;用例之间如果存在扩展关系,则通过拖拽“UML用例”标签页中的“扩展”图标来连接两个用例。

用例图作为一种UML模型元素,也必须用包来组织。本例中将两个用例图都放到了用例模型顶层包中,还可以用注释元素对用例图作简单说明。

6.对每个用例进行用例描述。为了便于以后对用例进行细化,每个用例都要提供用例描述。一个用例是多个场景组成的,对每个用例的场景进行场景描述,写入Word文档中。

【思考问题】

1.绘制用例图的步骤是什么?

2.结合网上选课系统的用例图设计实例,总结一下用例图在系统分析过程中所起的作用。

实验三 类图设计

【实验目的】

掌握在Visio下类图的设计。【实验要求】

1. 通过网上选课系统学习识别类的方法。

2. 通过网上选课系统学习识别类之间关系的方法。3. 学习使用Visio绘制类图。【实验步骤】 一.识别类 1.通过实验二中用例图的设计,我们找到了四个参与者:管理员Registrar,学生Student,学生和管理员的父类People,数据库Database。这些参与者都可以作为类图中的类。

2.识别选课系统中其他的类。

在选课系统中,还能找出哪些类?这些类有哪些属性和操作? 二.绘制类图 1.绘制类

在“模型资源管理器”中,双击“分析模型”中“顶层包”下的静态结构图,此时在绘图区中显示的则是此静态结构图。按照实验一中给出的方法绘制这四个类,包括这些类的属性和操作。

2.绘制类之间的关系

确定类之间是否有关系以及有什么关系。

如果存在“关联”关系,则将“形状”窗口中“UML静态结构”标签页中的“二元关

联”图标拖到绘图区,来连接两个类;如果存在“泛化”关系,则将“UML静态结构”标签页中的“泛化”图标拖到绘图区,来连接类;如果存在“聚集”或“组成”关系,则将“UML静态结构”标签页中的“复合”图标拖到绘图区,来连接类;如果存在“依赖”关系,则将“UML静态结构”标签页中的“依赖关系”图标拖到绘图区,来连接类。

在绘图区中双击这些关系图标,可以打开它们的属性对话框来修改属性。具体操作可参考实验一。

【思考问题】

1.绘制类图的步骤是什么? 2.结合网上选课系统的用例图设计实例,总结一下类图在系统分析过程中所起的作用。

实验四 状态图设计

【实验目的】

掌握在Visio下状态图的设计。【实验要求】

1. 通过网上选课系统学习识别对象状态的方法。2. 通过网上选课系统理解对象状态的转换。3. 学习使用Visio绘制状态图。【实验步骤】

一.识别课程类(对象)的状态 我们考察一个课程类(对象)(Course)的状态变化过程。

课程对象被创建、添加到数据库中。管理员可以删除、修改课程信息,在某个学期,开设该课程,如果选修人数超过指定人数,就不再允许学生选这门课程。学期结束,课程的状态终止。

通过上述需求描述,我们能够识别出课程类(对象)的哪些状态? 二.绘制状态图

1.在“模型资源管理器”的“分析模型”中,右击“课程”类,选择“新建”|“状态图”,这时会新建一个名为“状态图-1”的空白状态图,右击新建的空白状态图节点,选择“重命名”,可对状态图重新命名。

2.在“形状”窗口的“UML状态图”标签页中,选中“初始状态”图标并拖拽到绘图区,选中“最终状态”图标并拖拽到绘图区。

3.在“UML状态图”标签页中,选中“状态”图标并拖拽到绘图区,来添加一个状态。双击此状态,打开“UML状态属性”对话框,进行相应的设置。

4.在“UML状态图”标签页中,选中“复合状态”图标并拖拽到绘图区,来添加一个复合状态。双击此状态,打开“UML复合状态属性”对话框,进行相应的设置。

在“模型资源管理器”中,单击此复合状态前的“+”号,可以看到此复合状态下有一个新的状态图,可以通过双击此状态图,在绘图区中进行此状态图的绘制。

5.在“UML状态图”标签页中,选中“转换”图标并拖拽到绘图区,来添加状态到状态间的转换。双击转换图标,进入“UML转换属性”对话框,进行相应设置。

【思考问题】

1.总结绘制状态图的步骤。

2.结合网上选课系统的状态图设计实例,总结一下状态图在系统分析设计过程中所起的作用。

实验五 顺序图设计

【实验目的】

掌握在Visio下顺序图的设计。【实验要求】

1. 学习根据用例描述绘制顺序图的方法。2.学习使用Visio绘制顺序图。【实验步骤】

下面我们以Select Course(选课)用例为例来设计和制作顺序图。

一.识别对象

首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程

3.对于业务层的操作,也应该有对象进行处理。4.事件流中涉及的参与者有:学生、数据库。二.识别对象之间的交互

分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。2.界面向控制对象请求课程信息。

3.控制对象向数据库发送查询数据信息。4.控制对象暂存数据库的查询结果。

5.界面对象从控制对象中取得所有的课程信息。6.在界面上显示所有的课程信息。

7.界面对象发送命令要求控制对象删除课程信息。8.学生选择课程。

9.界面对象要求学生输入学号。

10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。11.控制对象从数据库中查询关联信息。12.控制对象判断是否可以选课。

13.如果可以选课,则向数据库中添加关联信息。14.向界面对象返回信息。三.绘制Select Course顺序图

1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“序列图”,这时会新建一个名为“序列-1”的空白序列图,右击新建的空白序列图节点,选择“重命名”,可对序列图重新命名。

2.在“形状”窗口的“UML序列”标签页中,拖拽“对象生命线”到绘图区,在绘图区中双击此对象生命线,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。

要想显示出分类器名字,可以右击此对象生命线,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。

3.绘制对象间的通信。

在 “UML序列”标签页中,拖拽“消息”图标到绘图区,连接对象的生命线。双击“消

息”,打开“UML消息属性”对话框,进行消息的属性设置。通过拖拽“激活”图标到绘图区的生命线上,来表示该对象正在执行某个操作。

四.绘制其他用例的顺序图

按照上述例子的方法,画出网上选课系统中其他用例的顺序图。【思考问题】

1.总结绘制顺序图的步骤。

2.结合网上选课系统的顺序图设计实例,总结一下顺序图在系统分析设计过程中所起的作用。

实验六 协作图设计

【实验目的】

掌握在Visio下协作图的设计。【实验要求】

1. 学习根据用例描述绘制协作图的方法。2.学习使用Visio绘制协作图。【实验步骤】

下面我们以Select Course(选课)用例为例来设计和制作协作图。

一.识别对象

首先,查找Select Course用例的用例描述,从事件流中发现涉及以下对象: 1.界面 2.课程

3.对于业务层的操作,也应该有对象进行处理。4.事件流中涉及的参与者有:学生、数据库。二.识别对象之间的交互

分析对象、参与者之间交互的消息。本用例主要有以下交互: 1.学生通过界面发送选课命令。2.界面向控制对象请求课程信息。

3.控制对象向数据库发送查询数据信息。4.控制对象暂存数据库的查询结果。

5.界面对象从控制对象中取得所有的课程信息。6.在界面上显示所有的课程信息。

7.界面对象发送命令要求控制对象删除课程信息。8.学生选择课程。

9.界面对象要求学生输入学号。

10.界面对象向控制对象发送信息,查询该生是否可以选择选定的课程。11.控制对象从数据库中查询关联信息。12.控制对象判断是否可以选课。

13.如果可以选课,则向数据库中添加关联信息。14.向界面对象返回信息。三.绘制Select Course协作图

1.在“模型资源管理器”的“分析模型”中,右击“顶层包”,选择“新建”|“协作图”,这时会新建一个名为“协作-1”的空白序列图,右击新建的空白序列图节点,选择“重

命名”,可对协作图重新命名。

2.在“形状”窗口的“UML协作”标签页中,拖拽“分类器角色”到绘图区,在绘图区中双击此分类器角色,出现“UML分类器角色属性”对话框,在“名称”栏输入名字,在“分类器”栏中选择所属的类。单击“确定”按钮。

要想显示出分类器名字,可以右击此分类器角色,选择“形状显示选项”,打开“UML形状显示选项”对话框,选中“分类器名称”项,单击“确认”即可。

3.绘制对象间的通信。

在 “UML序列”标签页中,拖拽“关联角色”图标到绘图区,连接对象。双击此关联角色,打开“UML关联角色属性”对话框,进行属性设置。

四.绘制其他用例的协作图

按照上述例子的方法,画出网上选课系统中其他用例的协作图。【思考问题】

1.总结绘制协作图的步骤。

2.结合网上选课系统的协作图设计实例,总结一下协作图在系统分析设计过程中所起的作用。

实验七 活动图设计

【实验目的】

掌握在Visio下活动图的设计。【实验要求】

1. 学习根据用例描述绘制活动图的方法。2.学习使用Visio绘制活动图。【实验步骤】

下面我们以Add Course(添加课程)用例为例来设计和制作活动图。

一.识别活动

针对Add Course用例的用例描述,因为管理员密码验证过程可以抽取出来,作为通用的流程,所以将管理员输入课程信息作为起始的活动。内容如下:(1)管理员输入信息。

(2)系统验证是否和已有课程冲突。A:有冲突。

(3)系统添加新课程,提示课程添加成功。(4)系统重新进入管理主界面,显示所有课程。(5)用例结束。其他事件流: A:有冲突

(1)系统提示冲突,显示冲突课程信息。(2)用户重新输入。

(3)继续验证直到无冲突。

(4)进入添加课程事件流第(3)步。

根据以上描述并进一步细化,能识别出哪些活动? 二.识别负责活动的角色

在绘制活动图的时候,要对角色可视化,需要画出泳道。所以我们要识别出负责每个活动的角色。

三.绘制活动图

1.在“模型资源管理器”的“用例模型”中,右击“顶层包”,选择“新建”|“活动图”进行创建。这时会新建一个名为“活动-1”的空白活动图,右击新建的空白活动图节点,选择“重命名”,可对活动图重新命名。

2.在“形状”窗口的“UML活动”标签页中,分别拖动“初始状态”图标和“最终状态”图标到绘图区。

3.添加泳道。

在“UML活动”标签中,将“泳道”图标拖到绘图区来添加泳道。双击泳道,可以打开“UML分区属性”对话框,进行分区属性的设置。

4.添加状态。

在“UML活动”标签中,将“动态状态”或“状态”图标拖到绘图区来添加活动。双击图标可以打开属性对话框,进行属性的设置。

动作状态表示对象正在执行一个不可中断的原子操作。状态可以被分解成其他动作状态或状态,因此如有必要,可用一个单独的活动图描述状态。

5.添加转换。

在“UML活动”标签中,“判定”图标来表示在某一点做出判定。“转换(分叉)”和“转换(连接)”图标来描述并发的活动,此时包含多个控制流。“控制流”描述单个控制的简单转换。双击图标可以在相应的属性对话框中进行属性设置。

四.绘制其他用例的活动图

按照上述例子的方法,画出网上选课系统中其他用例的活动图。【思考问题】

1.总结绘制活动图的步骤。

UML实验报告[推荐] 篇4

班 级:软件0841

姓 名:张文成 学 号:081842173

实验内容:

用例建模、分析建模、设计建模(1)、设计建模(2)

实验一:用例建模

[实验目的] 〃掌握客户需求分析的方法和步骤

〃了解以用例驱动的软件开发方法 〃识别并编写用例

〃掌握用Rose 进行用例建模的具体方法和步骤

[实验内容] 要求学生根据周围的实际情况,自选一个小型应用项目,分析业务需求,识别并编写用例、绘制用例图以理解系统需求。亦可采用教师指定的“企业综合信息管理系统”中的“进销存管理子系统”

[实验原理和步骤] 建模原理:

(1)需求获取。以任务和客户为中心,通过会议、面谈等手段对客户需求进行调研,获得系统目标、范围和功能要求的初步说明。(2)用例分析。确定用例,同时采用分层思想,对用例的层次级别进行划分(高层用例、子系统级、用户目标级)

(3)用例描述。分层绘制用例图,撰写用例的文字描述(采用单栏格式)。

步骤:

(1)需求获取。自选题目,与相关客户、领域专家等反复商讨,获得系统目标、范围和功能要求的初步说明。(也可采用教师指定的题目:“企业综合信息管理系统”中的“进销存管理子系统”,但要仔细研读“企业现状”、“系统目标、范围和功能要求”等文字说明)。(2)用例分析。确定系统范围和边界、确定参与者、确定用例。(3)用例描述。分层绘制用例图、描述用例。

画图原理:

采用Rose 软件进行用例建模必须建立在完好的系统用例分析基础之上.只有做好系统用例分析,系统用例建模才能这到预期的效果。步骤:

(1)分层绘制用例图,每层采用“包”进行管理。

(2)以“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”为主线,完成附录2 中的操作过程(亦可选择“企业综合信息管理系统”-> “进销存管理”子系统-> “库存管理”-> “原材料出库”->“领料单处理”主线)

[ 实验结果]

实验2 分析建模

[ 实验目的](1)理解面向对象系统分析和对象类建模(概念建模)的概念(2)了解和掌握面向对象系统分析的方法和步骤(3)了解和掌握寻找待开发系统中类(概念)的方法和技巧(4)掌握使用ROSE 绘制概念模型的方法

[ 实验内容] 在用例分析的基础上,选择第一个迭代周期打算开发的用例,建立相关的概念模型。

[ 实验原理和步骤] 建模原理:

(1)使用概念目录列表(见下图)和非正式分析法(识别出问题域的文本描述中的名词短语,然后将其作为概念或属性的候选对象。)相结合的方法识别概念。因此,待开发用例的文字描述中,名词可能成为概念或属性的候选对象;表示行为的动词词组有可能成为事务型或过程型对象;形容词词组有可能对应抽象的名词型概念。

采用的技术基本上就是:ER 图+纯行为+OO 的聚合、泛化。(2)最终关联的数量介于“需要知道”型关联与【“需要知道”型关联+“需要理解”型(从通用关联列表中派生出 的,见下图)】之间。

步骤:

(1)识别关键用例作为第一个迭代周期的开发目标(一般是在用例图中被依赖得比较多的用例)。可以选“企业综合信息管理系统”-> “进销存管理”子系统-> “库存管理”-> “原材料出库”->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“增加销售合同”或“收款单处理”用例。(其实,选“库存管理”主线更合适;当然,如果要实现产销一体化,以销售订单指导生产和采购,并实现零库存目标,那么一切工作就以销售管理为中心。即便如此,首选“增加合同”用例也更为合适。)

(2)识别概念和重要属性。

(3)建立概念间的关联。

画图原理:

(1)可以采用“逻辑视图”下的类图描述概念模型,只不过每个类中只有类名和属性,没有方法。在概念建模 阶段也没有必要确定属性的类型和访问属性。

(2)概念间的关联可以采用一般关联(无方向实线),当然,对于聚合和泛化,应采用相应的连线(组合:实心菱形+实线;聚合:空心菱形+实线;泛化:空三角形+实线)

步骤:

(0)前提条件:第一个迭代周期可以选“企业综合信息管理系统”

-> “进销存管理”子系统-> “库存管理”->“原材料出库”->“领料单处理”主线中的“领料单处理”用例;也可以选“企业综合信息管理系统”->“进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“增加销售合同”或“收款单处理”用例。做好与此用例相关的概念模型

(1)建立相关的概念模型的基础上,在“逻辑视图”下的类图中描述概念模型,可以直接在类图main 中绘制,也可采用类似用例图中用过的分包机制

(2)绘制概念和重要属性。(3)绘制概念间的关联。

[ 实验结果]

[ 实验总结] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:筛选概念的要点;区分概念与属性的要点;关联取舍的要点;画图时如何防止关联重名。

实验3 设计建模(1)

[ 实验日期]2011年5月20日 [ 实验目的](1)理解顺序图的基本概念

(2)了解和掌握软件工程中用例逻辑时序的分析方法(3)掌握使用ROSE 创建顺序图的方法

[ 实验内容] 在用例模型和概念模型的基础上,对首选的用例进行事件分解,识别出系统事件(系统操作),(并写出契约的后置条件);为每个系统事件画顺序图,为对象分配职责。

[ 实验原理和步骤] 原理:

(1)在系统顺序图中,所有的系统都被当成黑盒子看待,顺序图的重点是参与者发起的跨越系统边界的事件。

(2)系统事件是由某参与者发起的指向系统的输入事件。一个事件的发生能够触发一个响应操作的执行。

(3)请仔细研究下图,考察它是如何从左边的“购买商品”用例的文字描述中分解出3 个系统事件的。

(4)参照用例模型和概念模型,为每个系统操作估计后置条件。(实例创建、形成关联、属性修改)(5)按照设计模式为对象分配职责。

步骤:

(1)分析首选用例的文字描述,按事件进行分解,识别出系统事件。(下面以“企业综合信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中的“收款单处理”用例为例)。

我们暂不考虑批处理。第一个核对,因为要将“货款金额填写到合同中”。后置条件显然有“销售合同”的属性修改。此合同显然已经存在,不需要创建,但需要根据合同编号find,然后形成关联。第二个核对需要根据合同明细到仓库的“存货明细”(概念模型中还没有)中去查。此核对发生前虽然敲了一下键盘,但随后并没有新的消息穿越系统边界,因此这仍然是同一个系统事件。先考虑成功场景,应该向库存系统发提货单(概念模型中还没有)就结束了。后续的削减库存(核销)、预警显然不是销售管理员的职权,并且真正的核销必须由仓库的发货人执行,才能保证货帐一致。并且“生产厂家”与“邮购公司”的运作方式不同,后者是自己的员工取货并邮寄,而前者还有可能是来人来车取货,这时仓库收到取货单后并不能立即自动处理(开发货单),必须等取货人到达才能处理。

根据题意,本项目应该是“生产厂家”模式。这又存在一个问题,如

果在开出提货单后不修改库存,可能影响并发用户和后续付款单的处理。所以有必要设计一个“临时存货明细”(概念模型中还没有)(不是真实的“存货明细”)供修改,何时按存货明细”进行刷新应该是库存管理系统的事(比如每天夜里刷新,但因为雨雪天气,取货 人迟迟不提货,是提货单作废(相当于退回销售系统,付款单变为未处理)还是就强行刷新(此时有冲突危险)?)失败场景。向“生产调度部门”发送“产品生产申请单”。如果是专门为此单进行生产,那么还应该有库存系统发来的“产品入库通知处理”用例来调用本用例进行发货。本题显然一概根据付款单运作,因此如果失败,就不处 理付款单,但按日期把它排在待处理付款单的前面。从前面的分析来看,就一个系统事件,我们就命名为“付款单处理(pb:付款单)”(2)为每个系统事件估计后置条件。(以上已做了部分分析)(3)按设计模式进行设计。

首先考虑控制者,领域控制者选参与者角色,即“销售人员”。为了避免使用FORM,窗口等表示层对象,我们人造一 个类”应用协调者”向控制者发送消息。

[ 实验结果]

① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:事件分解的要点;控制者选择的要点;绘制顺序图的要点。

[ 实验总结] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

③ 收获与体会:事件分解的要点;控制者选择的要点;绘制顺序图的要点。

实验4 设计建模(2)

[ 实验日期] 2011年5月27日 [ 实验目的](1)理解面向对象类之间关联关系的概念(2)了解和掌握分析类之间的关联关系的方法

(3)了解和掌握待开发系统中类之间关联关系的分析方法(4)完善设计类图,掌握使用ROSE 对关联进行建模的过程

[ 实验内容] 根据设计建模(1)中的交互分析,进一步设计关联和对象可见性(补

上遗漏的关联),完善设计类图。

[ 实验原理和步骤] 建模原理:

(1)关联关系描绘了给定类的对象个体之间的语义连接,是类与类之间的连接。关联可以分为一般关联、聚合关 联、组合关联和依赖关联等。

(2)一般关联包括一对类的二元关联及多个类之间的多元关联。

(3)聚合(Aggregation)表示整体和部分之间较强的关联关系,聚合关系的多重性大于1,则称为共享聚合。

(4)组合(Composition)关系表示整体和部分之间有比聚合关系更强的关系,它们之间是一对一的关系,即同生死共存亡,组合关系不能共享。

(5)依赖关系是一种使用关系,表现为一个对象仅仅调用了另一个对象的服务。可以使用下列的指导方针列出暂时性的关系:

(1)存在两个或两个以上的类相互之间就可能有关联。(2)类的操怍(成员函数)的参数列表里出现其他类的对象。(3)一个类包含另一个类的对象(对象成员)。(4)根据一般常识可能会出现的关联。步骤:

(1)分析已建立的设计类图和交互图,进一步设计关联和

对象可见性(补上遗漏的关联)。(下面以“企业综合 信息管理系统”-> “进销存管理”子系统-> “销售管理”-> “合同管理”->“收款单处理”主线中 的“收款单处理”用例为例)。

在销售管理子系统中,定义的各个类之间一般都有关系发生。销售人员和客户(大客户)共同签署销售合同,销售合同中涉及到多种可以销售的产品,合同经公司经理审查并签字后该合同才能生效,付款单需要客户付款,销售人员签发催款单向客户催缴欠款,销售人员制定销售计划,销售人员要检查督促执行期合同按合同执行、履 约,履约后的合同转到履约合同数据库存档备查等等。例如:

(a)销售人员与客户:一般关联,多对多

(b)销售合同与合同明细,销售计划与计划明细:组合。(c)付款单与客户:依赖关系。《如果付款单类中有“统计付款金额(客户类客户对象)”操作的话,付款 单类就依赖客户类》(2)完善设计类图 画图原理:

(1)关联关系描绘了给定类的对象个体之间的语义连接,是类与类之间的连接。关联可以分为一般关联、聚合关 联、组合关联和依赖关联等。

(2)一般关联包括一对类的二元关联及多个类之间的多元关联。

(3)聚合(Aggregation)表示整体和部分之间较强的关联关系,聚合关系的多重性大于1,则称为共享聚合。

(4)组合(Composition)关系表示整体和部分之间有比聚合关系更强的关系,它们之间是一对一的关系,即同生死共存亡,组合关系不能共享。

(5)依赖关系是一种使用关系,表现为一个对象仅仅调用了另一个对象的服务。步骤:

(1)在关联和对象可见性分析的基础上,补充一般关联、组合,泛化、依赖

(a)一般关联关系要注意关联的命名以及哪个是role A 哪个是role B。

(b)一般关联选中role B detail 中的aggregate,就变成聚合;再选中by value 就变成组合。(c)依赖画虚线箭头。(2)完善设计类图

[实验结果] ① 对重点实验结果进行分析;

② 实验中的问题和提高:对自己的分析或设计进行评价,指出合理和不足之处,提出改进的方案。

UML库存管理系统 篇5

报告 设计名称: 库存管理系统

专业班级: 姓 名: 学 号: 起止时间: 成 绩 评 定

考核 设计 设计 综合评 答辩 内容 表现 报告 定成绩 成 绩 计算机科学与工程系

一、系统需求说明 20世纪90年代以来随着科学技术和生产力的迅速发展以及经济全球环境的深刻变化,企业面临着一个崭新而又激烈的竞争环境,体现在全球化的信息网络和全球化市场形成所带来的信息爆炸技术变革的加速市场和劳务竞争的全球化,围绕新产品的市场竞争日趋激烈,用户的需求越来越苛刻,同时产品的生命周期不断缩短,企业又面临着缩短交货期、提供产品质量、降低成本和改进服务的压力,在这种情况下全面提高和改善自身水平成为企业最关心的问题之一。企业实施信息化建设已成为企业的发展趋势和提高企业的管理水平的有效手段。信息化建设不在是企业的效益工程而是企业的生存工程,20世纪90年代美国著名的IT分析公司Grant Group Inc,提出了ERP企业资源计划的概念,迎合了信息时代企业管理的发展要求。随着ERP相关理论,以及ERP系统开发的逐渐成熟,企业界掀起了实施ERP管理信息系统的浪潮。中国作为制造大国,在制造业迅速发展的今天,库存国民投资额在整个国民生产总值占有相当大的比重达到了20%——30%,库存管理的适当与否对企业经营利润有很大影响,因此新环境下非常值得人们对ERP环境下的库存管理进行深入研究和探讨。本文结合ERP环境下的库存管理系统,重点研究如何利用UML建模语言对库存管理系统进行建模,给出了ERP环境下库存管理系统的需求模型和对象模型,在建模过程中利用了用例图、类图、包图、顺序图等图形。最后,结合系统模型的研究,实现了库存管理系统。

二、系统分析

(一)库存管理业务流程分析 企业的库存管理工作主要由企业物资部门或仓库部门完成,其主要业务就是对企业物料收获、存货、发货,以及分析提供库存管理所需的各种数据报表等管理工作。库存管理业务流程图,如图所示: 采购部门采购订单 供应商发票 财务部门发货 检验接受库存盘点发销售出入库票货款凭证求购处理入库领料通知单生产发料发料 生产部门仓库部门客户入库 库存订单工票产品入库分析提货单决策部门销售部门 2

(二)Uml表示法 1.1 用例图 根据业务流程图确定系统边界,确定用例(Use Case)。用例可从另一个方面对企业的业务流程建模,从中可以提取对我们开发系统有用的信息,可以确定系统功能。如图2所示库存管理系统的用例图

inter manageout manageadministratorinventory manage

information search

该图展示了一张仓库管理系统的用例图,从系统的外部执行者的角度来看,普通仓库管理员可以进行出库管理、入库管理、盘点管理和信息查询等操作。(2)顺序图

: administrator1: load

2: back3: data name and position4: copy data5: copy success 3

(3)活动图

produce inventory bills inventory on the spot inventory manage

三、系统设计报告(一)库存管理系统需求模型的建立

1、用例图 在库存管理系统中,由于牵扯到大量的执行者和用例,为了便于组织,按与系统交互的对象的不同将系统划分为三个包,如图所示:

用例模型包图 其它系统与仓库高层决策人员和系统仓库管理员管理系统的交互 管理员与系统的交互 与交互系统 仓库管理员与系统交互包主要描述仓库管理员要使用系统的那些功能,向系统输入哪些信息,从系统获取哪些信息,以及需要系统提供哪些功能支持仓库管理员的日常工作。高层决策人员及系统管理员与系统交互包描述高层决策人员需要从系统获取什么信息,做出什么分析与决策支持系统更好的运转;系统管理员则需要维护,管理系统,使其正常化工作。由于库存管理系统并不是一个孤立系统,他需要其他系统进行交互,其他系统与库存管理系统的交互包则反映交互信息的流向。下面对每个系统包进行详细的描述。4

(1)仓库管理员与交互的用例模型

high-inventory alarm identity testexpand

useinventory place appointaccount updateinter manageuseexpandadministratorout

managelow-inventory alarminventory manageinformation searchform produce 在这个用例模型中有一个执行者:库存管理员。十一个用例:身份验证,入库管理员,最高库存警报,出库管理,最低库存管理,指定库位,更新账目,库存信息查询,盘点管理及报表生成。当有物资需要进行出入库时,仓库管理员就要进行出入库的管理:核实账单,清点物资,录入单据,然后由系统自动为该批物资分配货架,同时更新账目。在入库时,如果系统检测该类物资库存量超过限定的最高存量,也将发出警报。在入库管理用例与最高库存警报用例,出库管理用例与最低库存警报用例之间采用了扩展关系。入库管理,出库管理与指定库位之间,指定库位与更新账目之间采用了使用关系。扩展时一种基本需求的特殊情况。而当在两个或更多的用例中出现重复描述而又想避免这种重复时,采用使用。出入库单据录入后,仓库管理员还需要定期对单据进行核对,即进行库存信息的查询,主要包括:账目信息,出入库信息,以及库位信息,存量信息等。当所有信息核对完成后,仓库管理员还需要定期打印出各种报表,以供其他系统做出一些决策。盘点也是库管员一项很重要的工作,保持经常有效的盘点,可以更加全面准确的掌握库存信息。当库管员进行盘点时,首先要锁定盘点的库位或物料信息,即盘点时刻不允许出入库;盘点完毕后,要填写盘点记录,对于盘点数量与账目数量不同的物料需求要给出原因。5

(2)高层决策人员与系统管理员的交互用例模型

inventory originallimits manage

inventory controlidentity testadministratorhigh-adminform produceanalyze reportdata copy and resume 在这个用例模型中共有两个执行者:高层决策人员,系统管理员。七个用例:基本信息维护、数据的备份与恢复、身份验证、仓库信息初始化、库存控制、分析评价及库存信息查询。其中身份验证和库存信息查询用例和库管员和系统的交互的用例是同一用例。对于高层决策人员来讲仓库一些基本信息的初始化,主要是账目和库位信息初始化。当系统开始使用,高层决策人员还是要进行一些库存控制,即为了满足用户及生产需求,确定最低库存量,决定订货时间及订货量。当然为了及时动态了解库存情况,还需要一些库存信息进行分析评价,例如:资金占用情况,积压失效情况,仓库使用情况等。不论是做决定还是分析,都需要库存基本信息支持。对于系统管理员来讲,主要的工作室进行基本信息的维护,包括权限的管理和数据的备份与恢复。(3)其它系统与库存系统的交互

out manageform produceproduce sys information searchsupply syscost manage project data syssell sysinter manage 由于库存管理系统并不是一个独立的系统,他需要和其他系统进行信息的集成,以保证数据的完整和准确。再生产计划出入库时,需要根据计划来限制出入库的物资品种及数量。6

当然,计划的制定还需要准确的库存信息。采购供应管理系统需要根据库存信息来制定采购计划,外购物资则需要根据采购计划进行入库。库存管理系统需要用工程数据管理系统中的一些基本信息,包括:物料信息,人员信息,以支持系统准确的进行。销售和成本核算管理系统的梳理进行同样需要库存数据的支持。2.业务活动图(1)物资入库活动 inter form receive identity test inter manage inventory inventory inventory place checkcheckstate check alarm transmit inventory place appoint account update 物资的出入库是库存管理中主要的业务,合理的出入库流程不仅能加快出入库的效率,7

而且能够对库存信息做到心中有数。当一批物资需要进行出入库时,首先库管员需要核对入库单,清点入库物资,当入库单据与入库物资相符时,才能入库。接着库管员登录系统,通过身份验证,进入入库管理主界面。输入要入库物资的基本信息后,系统自动进行一些信息查询:存量信息,库位状态,盘点状态。当该类物资存量超出最高库存量,系统发出报警,此时可以退出系统,即此类物资不在进行入库,也可以强行入库。在检查库位信息时,如果发现没有空余库位,同样系统会发出警报,但允许入库,只是需要人工指定库位。完成上述步骤,系统会主动为物资安排库位,更新账目,到此时也就完成入库过程。(2)主要业务活动图 inventory inter out check account place checkcheckcheck

produce

inter and

inventory formoutmanage

analyze

and

inventory NewStatevaluatecontrole 8

库存管理的业务都是以出入库信息,账目信息和库位信息为依托进行的。所以首先需要将出入库信息,账目信息,库位信息进行核对,只有这些信息准确无误才可以进行下一步的工作。核对基本信息后,为了确定仓库内物资,可以进行盘点;为了进行分析评价,库存控制,可以生成报表;对一些信息筛选后,可以进行数据的备份或恢复。

(二)库存管理系统对象模型的建立 1. 类图 基本信息中的类图 入库类别与出库类别的属性为出入库别编码及名称,在进行出入库时,以其为依据判别出入库类型,例如确定一批货物是一般收料还是委托加工等等。不论是仓库管理员还是系统管理员还是高层决策人员在登录时,都需要进行身份验证,以确定其权限,如果是仓库管理员则需要细化仓库一级权限。下图为主要类图及没类图的具体属性及操作,如图所示: 9

2.顺序图与协作图(1)物资入库顺序图

inter windowaccountshelves state

inter shelves info1: ready to assign shelve 2: shelve not null3: shelve on inventory4: shelve available5: work normal and update6: back 物资入库顺序图 在完成入库单与入库项的填写后,进入胃物资指定库位的操作中,首先系统要自动检查库位的状态,当没有多余库位或者库位正在进行盘点时,则系统提示不能进入下一步的操作,如果有多余库位则系统自动为物资安排库位,进行物资的入库,同时修改库存信息,此时完成了物资的入库的所有操作。(2)物资入库协作图 5: error4: error

6: change or check of goods incoming of 3: incoming of change the form(right)formitem2: incoming of form7: checkquit9: surpass of max reserve

window of

account of incomingreserve8: less than max resevelogon 1: incoming of administrgoodsator 11

物资入库协作图 上图为物资入库的合作图。在一批物资要入库时,首先仓库管理员登陆系统进入入库窗体,然后进行入库单录入,只有在入库单填写正确的情况下才能转入入库项填写,如果入库项填写错误时,同样不能进行下一步操作;并且如果在填写入库项时发现仓库内此类物资正在盘点,则此批货物此时不能进行入库的,需要退出或等待。当所有条件都符合时,系统自动检查物资的库存量,但超出仓库最大库存时,退出所有操作;反之进入为此货物指定库位的操作。(3)状态图

系统人机交互状态图

fail logonstartlogonlogon successoperateentry/ inputdo/ check

namefinishreturncancel password and logoncancelcancelfinishexit/ quit

entry/ prompt do/ checkexit/ quit or returnoutcome 人机系统交互状态图

四、系统的配置与实现

(一)系统的组件图

<>Businessp

The user

The

Server The rocessinterfacedatebase 系统组件图 12

(二)系统配置图

clientdatab...program 系统配置图

uml考试总结 篇6

1 构建用例模型

用例模型用于需求分析阶段,它的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。

1.1 获取参与者

本系统参与者获取结果如表1所示。

1.2 获取用例

根据已经确定的“考生”参与者,可以建立如下顶层用例:

(1)浏览新闻政策

(2)网上报名

(3)修改报名信息

(4)成绩查询

根据已经确定的“系统管理员”参与者,可以建立如下顶层用例:

(1)帐户管理

(2)后台管理

根据已经确定的“考务管理员”参与者,可以建立如下顶层用例:

(3)后台管理

其中,“后台管理”包括如下用例:

1)新闻管理(网站维护)

2)报名管理

3)考务管理

4)数据管理

5)成绩管理

1.3 创建用例模型

在确定了参与者和用例后,使用用例模型来表示参与者和用例之间的关系。根据前期的分析,考生的用例图如图1所示。

管理员的用例图如图2所示。

2 构建对象和类图

2.1 发现对象和类

在UML中,采用用例捕获系统需求,通过分析用例,从用例中寻找对象和类。初步确定了“考点(ExamLocation)”类、“管理员(Manager)”类、“考生(Examinee)”类、“报名(RegForExam)”类、“考试(Exam)”类、“考场(ExamRoom)类”、“成绩(Scores)”类。其中,“考场”类又由“笔试考场(PaperTestRoom)”和“上机考场(OperationTestRoom)”聚合而成。

2.2 定义类之间的联系

在网上报名系统中,Manager类与SystemManager类和ExamManager类之间是泛化关系,ExamRoom类与PaperTestRoom类和OperationTestRoom类之间也是泛化关系;ExamLocation类与Exam类之间是聚合关系;其余为关联关系。

2.3 建立模型

类图是面向对象模型中的核心,表达了一组类和它们之间的联系,在类图中,一方面描述了类的本身,另一方面描述了系统类之间的静态关系。本系统的类图如图3所示。

3 系统的组件图建模

根据网上报名系统的总体类图中定义好的类,及分析它们之间的依赖关系,得到系统的组件图,如图4所示。

4 动态系统建模

在建好系统静态模型的基础上,接下来需要分析和设计系统的动态结构,并且建立相应的动态模型。动态模型描述了系统随时间变化的行为,这些行为是用从静态视图中抽取的系统的瞬间值变化来描述的。在UML的表现上,动态模型主要是建立系统的交互图和行为图。交互图包括顺序图和协作图;行为图则包括状态图和活动图。

4.1 建立活动图

活动图是描述系统工作控制流程的一种方式,可以用来描述系统采取了哪些动作(活动)、做了什么(对象状态发生改变)、何时发生(动作序列)以及在何处发生(泳道)[1]。

考生的网上报名活动图,如图5所示。

管理员的后台管理活动图,如图6所示。

4.2 建立顺序图

顺序图可描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序,说明对象之间的交互过程,以及系统执行过程中,在某一时刻将会有什么事件发生。顺序图可较好地说明对象间的交互作用,有助于理解系统,并可从中提取类的操作[3]。

考务管理顺序图如图7所示。

5 系统架构

系统的软件体系结构如图8所示。

6 结语

在对UML建模语言的研究基础上,对网上报名系统软件进行了建模实践,最终描述了一个可视化的网上报名系统。首先从功能需求出发建立用例模型,分别设计出了考生和管理员的用例图;其次对用例模型和功能需求进行分析得到系统的整个结构,即建立静态模型,设计出了系统的总体类图;然后建立系统的动态模型,描述各个对象是如何完成这些功能的,设计出了考生的网上报名活动图、管理员的后台管理活动图、管理员的考务管理顺序图,从而设计出了系统的软件体系结构。实践表明,运用UML语言对系统进行分析与设计,为用户和开发人员提供了一个全景的、动态的、清晰的、可视化的问题空间。至此,开发人员基本没有了认识上盲区与误区,有效解决了软件开发中的问题,提高了开发人员的工作效率。

摘要:运用面向对象的分析与设计方法,利用可视化统一建模语言UML、ROSE建模工具对网上报名系统进行需求分析、系统分析与设计,完成了静态建模和动态建模,设计了系统的软件体系结构。

关键词:网上报名,面向对象,UML语言,ROSE建模

参考文献

[1]刁成嘉,等.UML系统建模与分析设计-课程设计.机械工业出版社,2008.

[2]Joey F.George,等.面向对象的系统分析与设计.清华大学出版社,2005.

[3]刘敏莺,等.Rational Rose2003基础教程.冶金工业出版社,2005.

[4]陈冠军.精通ASP.NET2.0企业级项目开发.人民邮电出版社,2007.

上一篇:工程预算部管理职责下一篇:市政公司2011年终总结