uml开发实验指导书

2024-06-25

uml开发实验指导书(通用6篇)

uml开发实验指导书 篇1

前 言

《UML开发》课程是计算机科学与技术本科专业的一门重要的专业课.通过本课程的学习,使学生在已有的计算机软,硬件基础知识,程序设计知识,数据库和网络通信知识的基础上系统掌握面向对象系统分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析,设计与实现)的能力。通过学习本课程学生可以理解和掌握面向对象系统的分析和设计的方法和分步过程、掌握面向对象系统分析和设计的建模标准UML语言,能够利用Rational Rose(或Microsoft Visio)软件以某一信息系统为例进行系统分析和设计。

本课程主要介绍UML的基本概念、面向对象分析和面向对象设计的方法、面向对象分析和设计的UML建模标准等内容。

通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:

1.使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法; 2.使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;

3.使学生掌握在UML系统模型下应用高级语言建立应用系统的方法; 4.通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。

本实验所要求的建模工具为Rational Rose 2003。本课程通过对LSTC图书馆管理系统进行建模设计开发。

实 验 要 求

计算机软件建模技术现在越来越广泛的应用于软件工程中。《UML开发》课程实验的目的是为了使学生在课程理论学习的同时,通过在一个实践的环境下,实际学习软件统一建模语言,对软件建模技术有一个初步的了解及认识。通过本指导书中的各个实验,学习掌握对一般面向对象系统建模的方法与技术。总之,通过上述实验环节,使学生加深了解和更好地掌握《UML开发》课程教学大纲要求的内容。

在《UML开发》的课程实验过程中,要求学生做到:

(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。

(2)仔细观察上机时出现的各种现象,记录主要情况,作出必要说明和分析。(3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分析。对需编程的实验,写出程序设计说明,给出源程序框图和清单。

(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。

(5)实验课程不迟到、不早退、不缺席。如有事不能出席,需出示系上假条。实验的验收将分为两个部分。第一部分是上机操作,包括检查模型质量和即时提问。第二部分是提交书面的实验报告。此外,针对以前教学中出现的问题,本实验将采用阶段检查方式,每个实验都应当在规定的时间内完成并检查通过,过期视为未完成该实验,不计成绩。以避免期末集中检查方式产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。

目 录

《UML开发》实验指导书..............................................................................错误!未定义书签。前 言...............................................................................................................................................1 实 验 要 求...............................................................................................................................2 目 录.............................................................................................................................................3 实验一 Rational Rose基本操作..................................................................................................4 实验二 用例图.................................................................................................................................7 实验三 活动图...............................................................................................................................13 实验四 状态图...............................................................................................................................22 实验五 类.......................................................................................................................................29 实验六 类的关系...........................................................................................................................37 实验七 交互图...............................................................................................................................42 实验八 对象图和包.......................................................................................................................51 实验九 组件图和部署图...............................................................................................................53 实验十 正向工程...........................................................................................................................60

实验一 Rational Rose基本操作

实验一 Rational Rose基本操作

一、实验目的

1.熟悉Rose的工作环境。2.掌握Rose的基本操作方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

Rational Rose工具简介。

Rational Rose 2003企业版的安装。Rose应用程序界面。Rose基本操作

四、实验步骤

1.Rose工具的基本功能:面向对象建模;用例分析;支持UML、COM、OMT和Booch’93;语义检查;支持可控的迭代开发;双向工程;支持多用户并行开发;可以与数据建模工具集成;OLE链接、自动化;多平台可用性。

2.Rose安装:安装向导(引导安装),安装主程序,配置许可协议。3.Rose应用程序界面:

 应用程序窗口:显示载体。

 浏览器窗口:模型图超出屏幕显示范围时用于选择观察区域。 文档窗口:记录用户操作和模型元素信息的辅助提示窗口。 模型图窗口:用于建立和修改当前模型的图形化视图。 规范窗口:用于查看或设置各种模型元素的属性和关系。

实验一 Rational Rose基本操作

4.Rose基本操作

(1)创建Rose模型(FileNew):框架向导(Framework Wizard插件)。框架是一系列预定义的模型元素,可以定义某种系统的体系结构,也可以提供一系列可重用构件。

(2)保存Rose模型(FileSave):在默认的情况下,Rose模型都以扩展名为.mdl的文件进行保存。*.ptl格式文件类似于模型文件(*.mdl),但是只是模型文件的一部分。模型文件*.mdl则保存完整的模型。以Rose的旧版本保存模型,可能会丢失某些模型元素和特性。

(3)Rose模型的导入导出(FileImport,FileExport):略。

实验一 Rational Rose基本操作

(4)Rose模型的网页发布(ToolsWeb Publisher):略。(5)Rose全局选项设置(ToolsOptions):略。

五、实验报告要求

1. 整理实验结果。2. 小结实验心得体会。

实验二 用例图

实验二 用例图

一、实验目的

1.熟悉用例图的基本功能和使用方法。2.掌握如何使用建模工具绘制用例图方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

根据LSTC图书馆管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。要求:

1.对其中主要功能的用例书写书面用例。

四、实验步骤

书写“删除读者信息”用例的书面用例。一般应包含以下信息:(1)管理员在录入界面,输入待删除的读者名;

(2)“业务逻辑”组件在数据库中,查找待删除的读者名;

(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;

(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。分析: 在图书馆管理系统中,管理员首先登录系统,系统验证通过后,管理方可向系统查询数据,在查询后,系统会给出提示,有没有找到相关的数据,管理员根据系统查询的返回结果,进行下一步的操作,就是删除读者,在删除的过程中,系统会对查询得到的结果判断该记录是否可以删除,若可以删除,则给删除提示,若不能删除,也给相关的提示信息。

绘图步骤:(1)在用例视图上双击main,出现如图1.1所示,为绘制用例图做好准备。

实验二 用例图

图1.1(2)在图中的工具栏选取“Actor”图标,在右边的图中添加一个Actor,并输入名称:administrator,如图1.2所示。

图1.2(3)在左边的工具栏中,选取“Use Case”的图标,在右边的图中画出一个用例,并输入用例的名称:login。

实验二 用例图

图1.3

(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。

图1.4

实验二 用例图

图1.5(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。

图1.6

实验二 用例图

(6)根据步骤(5),同时完成如图1.7和图1.8。此时,“删除读者信息”用例图就到此完成。其系统查询读者信息等其他的功能会在时序图和活动图中描绘。

图1.7

图1.8(7)根据分析情况,进一步添加或细化用例图。

实验二 用例图

五、实验报告要求

1. 整理实验结果。2. 小结实验心得体会。

六、实验作业

1. 通过各种途径(查阅图书资料,网上搜索等),了解“LSTC图书馆管理系统”的需求,形成一份“图书馆管理系统软件需求说明书”,格式可参见“计科学院主页毕业设计文档下载软件需求说明书(GB856T——88)”。

2. 在上述第1步的基础之上,对“LSTC图书馆管理系统”进行用例建模,形成完整的用例模型。

3. 将第1步得到的需求说明书WORD文档和第2步得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。(注:账号和初始密码均为学生学号。)

实验三 活动图

实验三 活动图

一、实验目的

1.熟悉活动图的基本功能和使用方法。2.掌握如何使用建模工具绘制活动图方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

根据LSTC图书馆管理系统开发进度,在完成对系统的需求建模,得到用例模型后,应针对每个用例进行业务分析,说明其具体的业务流程,现系统分析部指派您完成该项任务。要求:

用活动图来描述系统中已知用例的业务过程: 1.描述“删除读者信息”用例。

四、实验步骤

绘制“删除读者信息”用例的活动图。删除读者信息一般按照以下步骤进行:(1)管理员在录入界面,输入待删除的读者名;(2)“业务逻辑”组件在数据库中查找待删除的读者名;

(3)如果不存在,则显示出错信息,返回步骤(1),如果存在则继续;(4)“业务逻辑”组件判断“待删除的读者”是否可以删除;

(5)如果不可以,则显示出错信息,返回步骤(8),如果可以则继续;(6)在数据库中,删除相关信息;(7)显示删除成功信息;(8)结束。绘图步骤:

(1)在用例图中,找到“删除读者信息”的用例,如图2.1所示,在“删除读者信息”用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”Activity Diagram”,选中后单击,便可以新建好一个活动图。如图2.2所示。

实验三 活动图

图 2.1

图2.2(2)新建好活动图后,双击“删除读者信息”的活动图,得到如图2.3所示,然后在左边的工具栏内点击“Swimlane”,在右边的图添加一个泳道,如图2.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图2.5。

实验三 活动图

图2.3

图2.4

实验三 活动图

图2.5(3)接着在左边的工具上选取“Start State”,并在administrator的泳道上添加,如图2.6所示;添加完开始结点后,再来为此活动图添加活动,图2.7所示,在左边的工具栏上选中“Activity”这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图2.8所示。

图2.6

实验三 活动图

图2.7

图2.8

(4)完成步骤(3)后,登录输入需要对输入的信息进行验证,则在图中利用“Decision”图标添加一个验证框,如图2.9所示:添加验证框后,验证的内容,如果通过,则允许管理员进行查询操作,如图2.10所示;如不能通过,则结束,如图2.11所示。

实验三 活动图

图2.9

图2.10

实验三 活动图

图2.11

(5)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图2.12和图2.13所示。

图2.12

实验三 活动图

图2.13(6)最后,在删除后,系统会返回操作结果给操作者,图2.14所示;删除成功或删除失败系统都会有信息返回给操作者。

图2.14(7)根据分析设计情况,进一步添加或细化活动图。

五、实验报告要求

实验三 活动图

1. 整理实验结果。2. 小结实验心得体会。

六、实验作业

1. 在实验二所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立活动图。

2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。

实验四 状态图

实验四 状态图

一、实验目的

1.熟悉状态图的基本功能和使用方法。2.掌握如何使用建模工具绘制状态图方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

通过前面内容的学习,完成了对LSTC图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动图。通过这两种图我们可以初步了解系统的业务处理过程,但对业务处理过程的处理状态间转换了解仍不够,这不利于设计人员对系统业务的进一步理解,而状态图能从对象的动态行为的角度去描述系统的业务活动。因此,指派你运用本节所学的状态图,完成如下任务:

1.完成图书馆业务模块中“还书”用例的状态图。

四、实验步骤

1.业务分析:由前面章节对图书馆管理系统中的还书主要业务的描述和分析可知,还书业务的动态行为是由:空闲(idle)、图书查找(finding)、还书(reversion)、失败(Failure)、归还成功(Success)5种状态及激活相互转换的事件。

2.绘制状态图:请您根据业务分析,运用UML绘制“还书”用例的状态图。分析:

还书的主要业务都是由管理员来完成,首先管理员必须先登录系统,并通过验证后,便可以进行下一步的操作,查找该书的相关信息,如存在,则进行还书操作,如不存在该信息,则给出提示信息;

绘图步骤:

(1)在用例图中的还书(reversion)用例,单击右键,如图3.1所示,新建一个状态图,命名为reversion状态图,图3.2所示。

实验四 状态图

图3.1

图3.2(2)双击“reversion”状态图,展开后,在左边的工具栏上选取一个“Start State”,此结点为开始结点,图3.3所示;当还书的时候,操作者先要询问系统的状态,如果系统忙,操

实验四 状态图

作者则必需等待,因此,得到系统的两种状态,如图3.5所示。

图3.3

图3.4

实验四 状态图

图3.5(3)操作者在询问系统和状态后,得到的图3.6所示两种状态,如果系统忙,操作者必需要等待、结束,如图3.7和图3.8所示,重返步骤(1)。

图3.6

实验四 状态图

图3.7

图3.8(4)如系统空闲,则进行对还书的信息进行查询操作,图3.9所示;查询也有两种结果,一是查询得到该书的相关信息,二查询不到该书的相关信息;则此时有两种状态,需要

实验四 状态图

建立两种状态,如图3.10所示。

图3.9

图3.10(5)最后,操作者进行了操作后,系统会给出操作的结果给操作者;操作成功或失败,都会有提示信息给出。整个的还书的过程便完成;图3.11所示。

实验四 状态图

图3.11(7)根据分析设计情况,进一步添加或细化状态图。

五、实验报告要求

1.整理实验结果。2.小结实验心得体会。

六、实验作业

1. 在实验三所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立状态图。

2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。

实验五 类

实验五 类

一、实验目的

1.理解类的基本概念。

2.掌握如何从需求分析中抽象出类的方法。3.掌握在Rational Rose中绘制类的操作方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

通过前面内容的学习,完成了对LSTC图书馆管理系统的需求的初步分析,得出系统的用例图和相应的活动图、状态图。通过这三种图我们可以初步了解系统的业务处理流程。现在需要对系统进行静态建模,这就需要从系统的用例图、活动图和状态图去寻找和发现类。因此,指派你运用本节所学的有关如何抽象出类的知识,完成如下任务:

1. 寻找和抽象出书籍管理功能中的类。

四、实验步骤

1.分析:由前面章节对图书馆管理系统中的书籍管理功能可知,该模块是由书籍信息类、书目类、新增书籍界面类、修改书籍界面类、删除书籍界面类和书籍管理类6个类组成。

2.绘制类的步骤:

(1)打开前面初步构建的UML模型文件;(2)打开Rose中的逻辑视图(Logical View),用鼠标右击逻辑视图,在弹出来的菜单中选择“New→Class diagram”项,创建“图书馆业务功能”类图,如图4.1所示。

(3)双击新建的“图书馆业务功能”类图,并点右边控件集中选中的“Class”图标,并用鼠标在图中拖出一个类图,并命名为Book,如图4.2所示。

实验五 类

图4.1

图4.2(4)接下来的一步为设置Book类的属性,在类图中双击Book类,可以在打开的“Class Specification”对话框中设置Book类的属性和方法等其他的信息,如图4.3所示;然后点击“Attributes”这个选项卡,此栏目为设置类的属性的选项,在图中间单击右键,可以看到有一个“Insert”的选项,如图4.4所示,选中这个选项,然后在出现的对话框中输入相关信息如图4.5所示,即书本的ISBN号,在“Type”这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置“Private”这个权限,如图4.6所示。Book类的其他属性也可以按照以上的做法设置,最后得到的结果是图4.7所示。

实验五 类

图4.3

图4.5

图4.4

图4.6

实验五 类

图4.7(5)设置好Book类的属性,现在来设置Book类的方法(也是操作),双击Book类后在“Class Specification”对话框中选“operations”这个选项卡,可以看到图4.8所示,在图中的空白地方,单击右键,在弹出的菜单中选“insert”这个选项,见图4.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentation的方框内填写一些相关的方法说明,如图4.12所示,设置好该方法的访问权限,见图4.13。Book类的其他方法也可以按上面来设置好,最后,得到Book类的其他方法见图4.14。

图4.8

实验五 类

图4.9

图4.11

图4.10

图4.12

实验五 类

图4.13 图4.14(6)至此,Book类的方法和属性都设置好了,如图4.15所示。

图4.15(7)接下来为书目类(BookItem)设置,按照上面的步骤可以设置好BookItem类的属性和方法,如图4.16和图4.17所示。

实验五 类

图4.16 图4.17

(8)最后,绘制出由分析得出的各个类,如图4.18所示,此时,“图书馆业务功能”类图便完成。

图4.18

实验五 类

(9)根据分析情况,进一步细化添加相关的类。

五、实验报告要求

1.整理实验结果。2.小结实验心得体会。

六、实验作业

1. 在实验四所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上进行静态建模,抽象出该系统中的每个类,并建立对应的类图。

2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。

实验六 类的关系

实验六 类的关系

一、实验目的

1.理解类间关系的基本概念。2.掌握描绘类间关系的方法。

3.掌握在Rational Rose中绘制类关系的操作方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

通过对前面内容的学习,使我们完成了LSTC图书馆管理系统的需求分析,并从业务对象中抽象出了类。我们知道类通常是不会单独存在,而是由关联、泛化、依赖等关系相互协作来静态描述业务系的。因此,我们在找出系统中所存在的类的前提下,需要进一步对业务对象间如何联系进行建模。现指派你运用本节所学的相关知识,完成如下任务:

1.对书籍管理功能中的类的关系建模。

四、实验步骤

1.分析:由前面章节对图书馆管理系统中的书籍管理业务分析和对该业务抽象出来的类可知,图书馆的主要静态模型类图是由书籍管理类、书类、书目类、管理员类、用户类和各种界面操作类组成。其中用户类与管理员类是泛化的关系,而其它类之间均是关联关系。

2.请根据你的静态建模分析结果,在Rational Rose中绘制类间的关系。绘图步骤:

(1)打开上面做好的类图,添加管理员类,用户类,界面类。首先,将实验二 “Use Case View”中的administrator角色拖到类图中,即添加了一个管理员类,图5.1,并按照上面所说方法添加类的各种属性和方法,见图5.2、图5.3。

实验六 类的关系

图5.1

图5.2

实验六 类的关系

图5.3(2)可以依照上面的操作来添加其他的类,如:用户类(Reader类)、界面类(ActionForm),添加完后结果如图5.4 和图5.5所示;

图5.4

实验六 类的关系

图5.5(3)其他的类添加完后,就可以为各个类添加关系了,由关联、泛化、依赖等关系相互协作来静态描述业务系,所以,各个类的关系也由这几个关系来完成。如图5.6所示:Person类是administrator类和reader类两个类的父类,他们之间为泛化关系,即administrator类和reader类是继承自Person类。BoobItem类是继承自Book类的,其他的类为一般的依赖关系,最后,连接完线条便得到图5.6。

实验六 类的关系

图5.6(4)根据分析设计情况,进一步细化各类之间的关系。

五、实验报告要求

1.整理实验结果。2.小结实验心得体会。

六、实验作业

1. 在实验五所得到的“LSTC图书馆管理系统”ROSE模型基础之上进行静态类间关系建模,挖掘出该系统的各个类之间的关系,并绘制对应的类图。

2.将本实验完成后得到的ROSE模型文件进行打包,通过课件主页的“作业提交”栏目完成作业上传。

实验七 交互图

实验七 交互图

一、实验目的

1.理解时序图的基本概念。2.理解协作图的基本概念。

3.掌握在Rational Rose中绘制交互图的操作方法。

二、实验器材

1.计算机一台。

2.Rational Rose 工具软件。

三、实验内容

通过对教学内容的学习,使我们完成了LSTC图书馆的管理系统的需求分析,并从业务对象中抽象出了类以及类间关系。现在需要对前面所给出的用例进行实现,而用例的实现主要由交互图来描述系统的动态特性。现指派你运用本节所学的相关知识,完成如下任务:

1.对书籍管理功能中的用例进行动态建模。

四、实验步骤

1.分析:根据图书馆业务功能模块中的交互操作进行动态建模的操作步骤和方法,请你对书籍管理模块中的交互操作进行动态建模。该模块中主要存在“新增书籍”、“修改书籍信息”和“删除书籍信息”三种交互操作。

2.请在Rational Rose中绘制上述的交互图。绘图步骤:

(1)在Rose的“Logical View”单击右键,选择“Sequence Diagram”新建一个时序图,时序图是交互图一种表示,可以用时序来表示,如图6.1;在此,先简单介绍一下用法:图中的直线箭头是发送消息;虚线箭头是返回消息;曲折线是对象自己给自己发送消息并调用。

(2)接下来的是添加类,系统中的类是其他的方法的边界,在前面的实验中做好的类可以直接拖拉到时序图中,见图6.2 和图6.3所示。

实验七 交互图

图6.1

图6.2

实验七 交互图

图6.3(3)添加类后,便可以添加方法了,开始时必须是外面的实体向系统发送消息,如图6.4所示,是管理员登录时向系统发送的消息;

图6.4

实验七 交互图

(5)可以按上一步的方法来完成其他的方法,如validate(验证),返回验证结果,当用户收到结果后,可以正常登录后便能进行增加图书见图6.5到图6.9。最后得到的时序图如图6.10所示。

图6.5 : administrator1: login : ActionFormSystem2: login3: validate

图6.6

实验七 交互图

: administrator : SystemActionForm1: login2: login3: validate4: result5: result图6.7 : administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add图6.8

实验七 交互图

: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook

图6.9

: administrator : SystemActionForm1: login2: login3: validate4: result5: result6: add7: add8: addbook9: addruselt10: addresult

图6.10

(6)完成了时序图后,可以按F5键便得到“新增图书”的协作图,见图6.11所示。

实验七 交互图

1: login6: add : administrator5: result10: addresult : ActionForm3: validate8: addbook4: result9: addruselt2: login7: addSystem

图6.11

(7)剩下的“修改图书信息”和“删除图书信息”的交互图在此不再一一详细的介绍,其绘图方法跟绘制“新增图书”的方法一样,最后结果见图6.12 到图6.15 : administrator : ActionForm1: login2: loginupdate : System3: validate4: result5: result6: updatebook7: updatebook8: updatebook9: updateresult10: updateresult

图6.12

实验七 交互图

1: login6: updatebook : administrator5: result : ActionForm10: updateresult4: result3: validate9: updateresult8: updatebook2: login7: updatebookupdate : System图6.13

: : System : administratorActionForm1: login2: login3: viladate4: viladateresult5: viladateresult6: delete7: delete8: delete9: deleteresult10: deleteresult图6.14

实验七 交互图

1: login6: delete : administrator5: viladateresult10: deleteresult : ActionForm3: viladate8: delete4: viladateresult9: deleteresult2: login7: delete : System

图6.15

五、实验报告要求

1.整理实验结果。2.小结实验心得体会。

六、实验作业

1.在实验六所得到的“LSTC图书馆管理系统”ROSE用例模型基础之上,选择其中至少2个最核心的用例,对其建立时序图和协作图。

uml开发实验指导书 篇2

目前哲学领域中通用的适用技术概念是指适应于该国或该地区的自然环境现状、市场规模、社会文化环境、现有的技术状态等因素, 能获得社会、经济、环境的综合效益最佳的技术。本文综合运用几种符合教育技术专业技术背景的“适用技术”来开发桌面虚拟实验, 旨在突破限制桌面虚拟实验在教育中广泛应用的技术瓶颈, 为促进桌面虚拟实验在教育领域中的应用提供一个思路。

一、实验简介

转动惯量是描述刚体转动惯性大小的物理量, 是研究和描述刚体转动规律的一个重要物理量。通过这个实验, 使学生明白刚体转动惯性的大小不仅取决于刚体的总质量, 而且与刚体的质量分布以及转轴位置有关。本实验的实验原理是:用两个质量相同的刚体, 保持其中一个刚体的滑块 (图1中 (2) , 共有四个) 的位置不动。调整好另外一个刚体的滑块的位置以改变此刚体的质量分布或转轴的位置, 挪开挡板 (图1中 (6) ) 后, 在相同的力矩作用下两个刚体绕轴由静止同时开始转动, 通过观察小球 (图1中 (8) ) 落地的先后来定性地判断出刚体转动惯量的大小, 从而得出实验结论。

二、实验开发流程

虚拟现实的三个特征是沉浸性、交互性和想象性。在搭建虚拟现实情景的过程中, 要想实现投入的沉浸感和灵活的交互, 单纯使用3DMAX通常无法满足需求。具有强大建模功能的3DMAX可以制作出逼真的三维效果, 然而其交互性相对来说较差。而Flash的交互性和表现力正好可以弥补这一不足, 但Flash只是一种制作二维动画的软件, 以前用Flash所做的桌面虚拟实验仅仅是仿三维界面, 在表现三维动画方面力不从心, 这样, 虚拟性又稍逊一筹。如何将二者有机结合起来呢?Swift3D的出现使得将三维模型导入Flash成为现实。从而, 在Flash中实现了真正意义上的三维动画。

利用3DMAX、Swift3D和Flash开发桌面虚拟实验的流程图如下所示:

下面结合转动惯量实验具体阐述一下利用这3个软件来开发桌面虚拟实验的过程。

1. 三维建模

Flash本身没有建模功能。Swift3D虽然自身也具有挤压和放样两种常用的建模功能, 但是相比专业的3D软件还有很大差距。为了弥补这一缺陷, Swift3D提供了导入外部3D模型的接口, 可以非常方便地导入三维模型, 目前支持DXF和和DXD两种格式。这样, 在实验中用到的模型可以在3DMAX中建好。建模的过程相当关键, 因为这关系到在以后的过程中能否对其进行控制以及工作量和开发效率的问题。

建模过程中应该注意的问题有:

(1) 在建模之前, 首先要分析实验过程和实验原理以确定实验部件应该单独建造还是整合成组, 以便在Swift3D和Flash中对其进行单独控制。例如, 在本实验中, 转杆 (图1中 (7) ) 和中轴 (图1中 (5) ) 可以组合成组, 但是两个滑块就不可以。因为在Swift3D中要实现当滑块在不同位置时的动画效果。

(2) 应该为各个部件单独命名, 做到见名知意, 目的是在进行控制的时候便于查找, 也便于管理。

(3) 应该把各个器件整合到3D M A X中的同一个场景中, 然后将需要单独渲染导出以外的模型隐藏, 再渲染导出JPEG文件或者生成DXF文件。避免在以后的制作过程中重新调整模型的视角和模型的比例大小。否则在增加了工作量的同时, 还会影响到桌面虚拟实验的沉浸性。

2. 导出

这里的导出操作主要分为两种。一是在3DMAX中导出, 得到D X F文件和J P E G文件;另外一种是将在Swift3D中制作出三维动画导出为swf文件。

在3DMAX中建完模型之后, 主要导出为两种格式:DXF和JPEG。模型应该以什么格式导出, 主要取决于实验要达到的教学目标, 以及这个实验要实现的实验效果和实验目的。正如流程图中所示, 如果需要三维动画演示, 就应该将模型导出为DXF文件;如果不需要三维动画演示, 就应该将其导出为JP EG格式。例如在本实验中, 实验要求实现在调整好滑块的位置, 挪开挡板后, 转杆要转动的效果。这样就需要将这一部分导出为DXF格式的文件, 然后在Swift3D中实现三维动画效果。而像实验台、底座 (图1中 (3) ) 、滑轮 (图1中 (4) ) 这些模型, 就可以将其导出为JPEG格式的图片, 导入Flash中直接使用就可以了。

此外, 最好把实验台、滑轮和底座一起输出为图片格式, 这主要是因为这些模型不需要制作三维动画效果, 并且也不需要对其进行控制。这种做法除了可以保证各个设备的透视视角相同, 增加虚拟实验的虚拟性外, 还可以减少在制作实验过程中的工作量, 因为在将JPEG格式的文件导入到Flash中后, 需要将背景去掉才可以使用。

3. 导入

对于扩展名为D X F的文件, 利用S w i f t3D中的“文件/导入”菜单命令就可以将其导入到Swift3D中, 从而实现对三维模型的控制, 制作出所需要的三维动画效果;把DXF格式转化为swf格式后, 就可以将swf文件导入到Flash中, 作为一个影片剪辑;对于扩展名为JPEG格式的文件, 直接导入到Flash中, 将其“打散”去掉背景颜色后, 再根据需要将其转变为影片剪辑、图形或者按钮就可以了。

在制作三维动画的时候应该注意这样几个比较关键的步骤:

(1) 移动中心点

如果中心点和转动部分的重心不在同一线上, 制作出来的三维动画会发生摇摆现象。在调整的过程中可以选中“只移动中心点”选项按钮, 用鼠标进行粗略调整后, 再利用下方的“对象位置”和“重心位置”进行细微调整, 从而避免出现摇摆现象。

(2) 材质的选择

材质的好坏直接决定了制作出的虚拟实验的逼真程度和教学效果。Swift3D本身带有一些材质, 并且可以对某些材质进行编辑和制作。由于在这个实验中要多次用到同一个动画, 并且要在Flash中的调用。所以统一材质是非常必要的。

(3) 相机的镜头长度务必保持一致

否则在导入到Flash中后可能会出现大小不一的问题。Swift3D自身带有许多三维动画效果, 利用Swift3D中自带的动画效果就可以满足本实验的要求。

将s w f文件导入到F l a s h中的操作步骤比较简单, 在此不再赘述。简单说明该过程的两个关键问题的解决办法和技巧。在这个实验中, 因为当滑块位置不同的时候, 转杆的转速是不一样的。当滑块在中间部分的时候与在两边的时候相比, 转动速度要快。可以通过在各个关键帧中间插入空帧来实现速度的变化。其次, 通常来说, 转杆需要转两圈或者更多小球才能落地。如果重新复制一下影片剪辑中的帧, 虽然可以达到目的, 但是毫无疑问, 这将增加文件的大小。可以通过添加几行简单的代码来实现, 在影片剪辑的第一帧加入如下代码:v a r i:Number=1;在最后一帧加入如下代码:

这样通过修改变量i的值就可以很容易的控制转杆转动的圈数, 而且还能保证文件的大小基本上不会变化。

4. 添加交互

swf文件和JPEG文件导入Flash之后, 虚拟实验的制作最终是在Flash中完成的。

将不需要添加交互的设备, 例如实验台、底座、挡板等等, 摆放到合适的位置。制作这个虚拟实验的难点是当把滑块移动到某个位置, 挪开挡板后, 就播放相应位置的三维动画。可以通过以下方法解决这个难题。首先定义一个全局变量, 作为调用swf文件的标志。当滑块滑动到某个位置的时候, 利用hitTest () 方法来触发某个函数, 从而为这个全局变量赋值。然后为虚拟实验添加一个标尺 (图1中 (1) ) , 限制滑块的“灵活”移动, 让滑块只能在刻度尺标有刻度的地方停顿。刻度尺的添加使得在保证教学效果的前提下, 降低了制作该虚拟实验的难度, 同时还让学生对滑块的位置有一个从定性到定量的升级, 更有利于学生理解这个实验的原理。具体操作步骤如下:

将左右两个环做成影片剪辑, 分别命名为mLeftCircle和mRightCircle。在杆上截取一段适当的距离, 将其制作为影片剪辑。将影片剪辑实例化后, 保证影片剪辑和滑杆重合, 同时将其命名为mLeftArea1到mLeftArea6。将挡板做成影片剪辑, 实例化后将其命名为mBoard。在主场景中添加一个祯, 命名为a s。选中该帧后, 打开动作面板后添加代码。

利用_g l o b a l属性定义两个全局变量。当滑块m L e f t C i r c l e位于刻度尺最左边刻度的时候, 将markerL赋值为1;当滑块位于中间刻度的时候, 将markerL赋值为2;当滑块位于最右边刻度处时, 将markerL赋值为3。因为两边滑块的最初位置是在中间刻度处, 所以相应地也应该将两个全局变量赋初值为2。编写代码如下:

_global.markerL=2;

_global.markerR=2;

当鼠标在滑块上按下, 实现对滑块的拖动。通过设置startDrag () 方法的参数, 保证滑块在滑杆范围内移动。同时记录下影片剪辑mLeftArea1到mLeftArea3的坐标位置。编写代码如下:

当鼠标松开, 滑块停止拖动。然后检测滑块和哪个影片剪辑发生碰撞, 即检测滑块停留的位置。判断出滑块停留的位置后, 为全局变量赋值, 记录下滑块停留的位置。假设与mLeftArea1发生碰撞, 编写代码如下:

调整好滑块的位置后, 点击挡板以挪开挡板。然后通过检测两个全局变量的值判断滑块的位置, 进而调用相应位置的三维动画。编写代码如下:

三、展望

本篇论文从解决“技术的复杂性”这个角度来解决桌面虚拟实验在教育中的应用较少的问题, 希望能抛砖引玉, 挖掘更多的平民化技术开发桌面虚拟实验, 为桌面虚拟实验的大众化铺平道路。也期望通过桌面虚拟实验在教育中大量应用, 逐渐形成完善的运用模式。

参考文献

[1]何克抗, 李文光.教育技术学[M].北京:北京师范大学出版社, 2002

[2]黄荣怀.信息技术与教育[M].北京:北京师范大学出版社, 2002

[3]王殿元.大学物理实验[M].北京:北京邮电大学出版社, 2004

[4]吴俊海, 王俊伟.3ds max8入门必练[M].北京:清华大学出版社, 2006

[5]Joey Lott Robert Reinhardt.Flash8ActionScript宝典[M].北京:电子工业出版社, 2006

[6]黄慕雄.高校教学型虚拟实验室建设的现状与建议[J].电化教育研究, 2005, 9:77-80

[7]朱海, 李瑞芬, 赵辉.谈虚拟现实技术及实践教学的虚拟化[J].现代远距离教育, 2005, 3:64-66

uml开发实验指导书 篇3

——中断按键点亮LED实验

一、中断控制设计流程

<1>由中断控制器汇集各类外设发出的中断信号,然后向CPU发出处理请求。

<2>CPU保存当前程序的运行环境,调用中断服务程序(ISR,Interrupt Service Rout)处理这些中断。

<3>在ISR中通过读取中断控制器、外设相关寄存器来识别当前中断是哪个中断,并进行相应处理。

<4>清除中断:通过读写中断控制器和外设的相关寄存器来实现。

<5>最后恢复被中断程序的运行环境(即前面保存的各个寄存器等),继续执行。

二、程序设计组成框架

程序由head.s、init.c、interrupt.c、makefile四个程序模块组成head.s:初始化,设置中断模式、系统模式的栈,设置中断处理函数,设置

各类异常的向量地址。

init.c: 关看门狗(WATCHDOG),否则CPU会不断重启。初始化LED、初始化外部中断、使能外部中断、设置外设中断的触发方式。interrupt.c:设计代码根据识别出来的中断(即按键)点亮LED,然后清除

中断。写上主函数,主函数只是个不做任何工作的无限循环。Makefile: Linux中使用make命令编译程序以提高编译效率,makefile既是

make所要执行的命令。

三、程序设计结果

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

UML是继80年代末和90年代初面向对象建模技术高潮后,出现方法学大战,应市场对统一建模语言的要求,由世界著名的面向对象技术专家Booch>Jacobson和Rumbaugh发起,在著名的Booch表示法、OOSE方法和OMT方法的基础上,广泛征求意见,集众家之长,几经修改而完成时。在美国,截至10月,UML已经获得工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML语言作为建模语言。

到11月17日UML被OMG(ObjectManagementGroup)米纳为基于面向对象技术的建模语言标准。这标志着面向对象技术中建模语言的争论暂时告一段落。

作为建模语言,UML可以说是一种定义良好、易于表达、功能强大且普遍适用的建模语言,

它为用户建模提供了完整的符号表示和不同层次的兀模型(metamodel)如用例图(uses—casedia—gram)包图(packagediagram)、类图(classdiag—ram)、状态图(statediagram)、X寸象图(objectdia—gram)、活动图(activitydiagram)、顺序图(se—quencediagram)合作图(collaborationdiagram)组件图(componentdiagram)、配置图(deploy—mentdiagram)等。它的作用域不仅支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程,但如何恰当地将这些可视化图形建模技术用于解决软件开发所面临的问题以及对建模过程的研究和支持工具的研究,仍是目前该领域的热点问题。

目前,在基于UML的开发方法和环境方面国际上已经进行了一些研究和实际开发工作。Ra—tional公司正致力于它称之为Objectory过程的研究,并试图将其原有支持OMT的工具作进一步扩充,以期支持UML建模,并支持对OMT模型的升级。国内对UML的研究尚处于起步阶段。

本文从当前对软件开发过程的需求出发,提出了UML柔性软件开发过程,并设计了相应的集成化支持环境的组成框架。

1UML柔性软件开发过程

电子计算机技术和现代通讯技术的飞速发展正迅速改变着人们对时间和空间的概念,世界在物理上正变得越来越小,而内容却比以前任何时候都复杂。全球经济竞争、信息高速公路等近代信息技术都迫使各个企业面临着新的挑战。为了能在瞬息万变的市场和激烈的竞争中保住一席之地,负责信息技术机构的主管人员将不得不学会应变管理技术(changemanagement)。在软件开发领域,需要改变其开发与生产的范式,以满足这种新的需求。

传统的软件开发模式越来越难以满足当前企业和市场的需求。新的产品开发周期已不再是一次性的从需求定义、软件设计、实现和交付,迭代式增量开发方式已得到广泛采用。这是由于软件系统的规模越来越大,其复杂程度不断提高,而与此同时又不得不面临激烈的竞争对手和瞬息万变的市场。时间就是效益,谁先占领市场,谁就是胜利者。但是占领市场和击败对手的条件除了时间之外,更重要的是过硬的质量和提供用户真正需要的产品。因此将新的软件开发模式归结为图1所示的迭代式开发和图2所示的柔性软件开发模型。

所谓柔性软件开发是指软件开发过程应在需求工程的牵引下,首先建立系统模型,对模型进行模拟、分析和调整,进行从需求到建模的“自顶向下建模,由底向上修改”即从需求工程出发,首先明确用户要求,确定需求优先级;在此基础上为系统建立模型,该模型应是可模拟的,通过对模型的模拟运行,以分析模型是否满足用户需求和满足的程度。整个建模过程是自顶向下逐层细化的,而模拟修改则由底向上地进行。

uml开发实验指导书 篇6

关键词:系统建模,UML,Rhapsody,VxWorks

0 引言

Vx Works操作系统[1]作为高性能嵌入式实时操作系统,具有进程管理、存储管理、设备管理、文件系统管理、网络协议及系统应用等多种功能,并可以实现实时多任务调度、多中断管理、实时的系统资源分配以及实时的任务间通信。在开发基于Vx Works系统的应用程序时如果仅仅依靠程序员进行传统的代码编程调试,则很难发挥出其的强大功能进而设计出可靠、高效的嵌入式应用系统,因此必须要有与之相配套的开发工具。

UML(统一建模语言)是构建系统模型尤其是软件系统模型的标准方法[2]。使用它进行系统建模,可以使用户专注于系统设计的重要部分,收集关键信息,编制文档以便在各个系统组成部分之间建立通信。Rhapsody是一种遵循UML 2.0标准的基于模型驱动的(ModelDriven Development,MDD)软件开发平台[3],其专门针对嵌入式操作系统设计,实现了基于UML2.0的可视化建模。为开发嵌入式应用系统提供了从软件分析、设计一直到代码实现和测试的开发环境。

1 系统建模

1.1 项目需求分析

以某项目开发为例,该项目是根据某装备的实际操作流程建立一个模拟的训练环境。包括信息显控和信息处理两个子系统,其中信息显控子系统主要由主界面、参数装定、故障诊断以及模拟训练界面的显示操作处理等4个部分组成;信息处理子系统则包括CAN总线(CAN1,CAN2)数据、串口(COM1,COM2)数据、同步信号数据的采集处理,以及模拟数据源的产生。整个项目的功能需求分析使用基于UML的用例图(User Case Diagrams)描述如图1所示[4]。

1.2 系统建模

根据项目的功能需求分析[5],将系统从顶层划分为三个对象模块,如图2所示,分别为界面显示与人机交互操控处理模块(its GUIPro)、底层通信处理模块(its H-WPro)和GUI与底层的接口对象模块(its Iface),其各自的对象组成模型如图图所示。

2 系统设计

系统运行于基于X86架构的硬件体系中,系统程序的开发采用上位机目标机()交叉开发模式。在上位机中进行应用程序的开发,通过局域网将应用程序下载到运行Vxworks操作系统的目标机中进行在线调试。系统开发模式如图6所示。

运行于上位机中的开发环境为Tornado 2.2和Rhapsody 6.1。具体为:在Tornado 2.2中完成对运行于目标机上的Vx Works操作系统组件的裁剪配置及编译生成映像文件;Rhapsody 6.1则进行系统建模和软件设计实现。项目采用面向对象的设计方法替代了传统的结构化设计,共由8个任务组成,并按优先级从高到低的顺序排列。

2.1 嵌入式系统生成

根据项目使用的X86架构平台制作基于PentiumIII CPU的BSP包;在Tornado 2.2中创建基于该BSP包的bootable工程,并根据项目实际需要裁剪了Vx Works操作系统包含的组件,最终编译生成了Bootrom文件和Vx Works映像文件,并通过局域网下载到目标机上进行在线调试,Vx Works操作系统可正常初始化启动且图形模式下测试程序运行正常。

2.2 应用程序开发

2.2.1 Rhapsody 6.1环境配置

首先在Rhapsody 6.1中新建工程,双击工程浏览窗口的Default Config,弹出Configuration对话框,单击Propertys选项卡,将CPP_CGConfigurationEnvirenment选项修改为Vx Works,CPP_CGVx WorksBSP选项修改为PENTIUM3;单击Settings选项卡,添加工程库文件和头文件目录,具体如图7所示。

2.2.2 建立状态图

接下来依据1.2节中系统的建模结果,对模型中各对象的基类属性和操作进行具体实现。在实现各对象功能的基类中采用了事件触发有限状态机之间自动进行转移来管理对象生命周期中的所有活动,这样各对象之间以及对象内部之间的动态交互流程更为清晰,增强了程序的可读性[7]。顶层设计中对象模块its GUIPro和its HWPro的功能实现状态图如图8,图9所示,接口模块its Iface对象中的属性和操作仅供对象its GUIPro和its H-WPro在各自的功能实现中调用,故没有独立的状态图。

2.2.3 程序实现

限于篇幅,仅就对its HWPro对象从创建到销毁整个生命周期的关键代码进行说明。

2.2.4 系统调试

Rhapsody 6.1中通过创建生成顺序图来捕捉对象之间的消息映射从而进行系统模型级的调试和验证。以在Rhapsody 6.1中实现its HWPro对象功能程序的调试为例,调试运行时得到的顺序图片段如图10所示。通过这种直观地方式能够尽早发现系统中存在的设计错误或缺陷,从而在很大程度上降低了项目风险。

3 结语

通过在嵌入式系统开发中使用UML对系统进行功能需求分析,建立迭代式模型,进而最终根据模型进行了代码实现。经项目开发实践证明,这种面向对象的开发模式可有效提高软件重用率,缩短系统开发时间,加快项目的研发速度,代表了软件开发自动化的发展方向。

参考文献

[1]王金刚,宫霄霖.基于VxWorks的嵌入式实时系统设计[M].北京:清华大学出版社,2004.

[2][美]SCHMULLER Joseph.UML基础、案例与应用[M].李虎,赵龙刚,译.北京:人民邮电出版社,2006.

[3]孙强,张振华.使用Rhapsody软件框架和UML的实时系统开发[J].单片机与嵌入式系统应用,2003(2):63-65.

[4][美]BOOCH Grady.UML用户指南[M].邵维忠,译.2版.北京:人民邮电出版社,2006.

[5][美]LARMAN Craig.UML和模式应用[M].姚淑珍,李虎,译.北京:机械工业出版社,2002.

[6]孔祥营,柏桂枝.嵌入式实时操作系统VxWorks及其开发环境Tornado[M].北京:中国电力出版社,2002.

上一篇:服装店圣诞节促销策划方案下一篇:孤岛求生具体规则