面向对象的系统分析及设计实验报告Word格式.docx
- 文档编号:16261806
- 上传时间:2022-11-22
- 格式:DOCX
- 页数:55
- 大小:2.23MB
面向对象的系统分析及设计实验报告Word格式.docx
《面向对象的系统分析及设计实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《面向对象的系统分析及设计实验报告Word格式.docx(55页珍藏版)》请在冰豆网上搜索。
(2)在图中的工具栏选取Actor图标,在右边的图中添加一个Actor,并输入名称:
administrator,如图1.2所示。
(3)在左边的工具栏中,选取用例的图标,在右边的图中画出一个用例,并输入用例的名称:
login。
图1.2
(4)按照步骤(3),绘制出如图1.4和图1.5的两个用例。
图1.3
图1.4
图1.5
(5)在绘出了用例后,接下来的是绘制参与者与用例实现,如图1.6所示。
图1.6
(6)根据步骤(5),同时完成如图1.7和图1.8。
此时,删除读者用例图就到此完成。
其系统查询读者信息等其他的功能会在时序图和活动图中描绘。
(7)根据分析情况,进一步添加或细化用例图。
图1.7
2、实验结果
图1.8
3、心得体会
用例图的建立主要是要能够理解Actor和用例,每个Actor给他如何去分配不同的用例,在这个设计过程中是需要花大量时间去思考和设计的,在实验中我经过多次的整理与修改,最终确定了这种设计结果。
实验二活动图
(1)这次实验是进行活动图的设计,在活动图中,仍然可以在上次实验的基础上进行设计,建立心得活动图的文件,开始实验的设计。
在用例图中,找到删除的用例,如图2.1所示,在删除用例上单击右键,在弹出的快捷菜单中选“New”,Rose工具也会弹出一个菜单,选”ActivityDiagram”,选中后单击,便可以新建好一个活动图。
如图2.2所示。
图2.1
图2.2
(2)新建好活动图后,双击删除的活动图,得到如图2.3所示,然后把在左边的工具栏点击“Swinlane“,在右边的图添加一个泳道,如图2.4所示,并命名为administrator.按照此步骤,再添加另一个泳道,并命名为SystemTool,得到图2.5。
图2.3
(3)接着在左边的工具上选取开始点,并在administrator的泳道上添加,如图2.6所示;
添加完开始结点后,再来为此活动图添加活动,图2.7所示,在左边的工具栏上选中Activity这个图标,在administrator这边的泳道上添加一个活动,命名为登录(login),再在开始结点和活动登录(login)之间添加活动关系,如图2.8所示。
图2.4
图2.5
图2.6
图2.7
图2.8
(3)完成步骤
(2)后,登录输入需要对输入的信息进行验证,则在图中添加一个验证框,如图2.9所示:
添加验证框后,验证的容,如果通过,则允许管理员进行查询操作,如图2.10所示;
如不能通过,则结束,如图2.11所示。
图2.9
图2.10
图2.11
(4)验证后,下一步的操作是查询需要删除的记录,添加一个活动,命名为delete,如图2.12和图2.13所示。
图2.12
图2.13
(5)最后,在删除后,系统会返回操作结果给操作者,图2.14所示;
删除成功或删除失败系统都会有信息返回给操作者。
图2.14
活动图是UML用于对系统的动态行为建模的另一种常用工具,它描述活动的顺序,展现从一个活动到另一个活动的控制流。
活动图在本质上是一种流程图。
活动图着重表现从一个活动到另一个活动的控制流,是部处理驱动的流程。
活动图的设计过程中在对开始点和结束点的设计是非常重要的,同时不同的阶段也有不同的控制流程,还要考虑到整个活动状况下所遇到的各种不同的情景模式,进行相应的策略设计。
实验三状态图
(1)在用例图中的还书(revesion)用例,单击右键,如图3.1所示,新建一个状态图,命名为revesion状态图,图3.2所示。
图3.1
图3.2
(2)双击“receivesion”状态图,展开后,在左边的工具栏上选取一个实心圆点,此结点为开始结点,图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
状态图(StatechartDiagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件(Event),以及因状态转移而伴随的动作(Action)。
一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机(State
MachineDiagram),重点在与描述状态图的控制流。
状态是指在对象的生命周期中的某个条件或者状况,在此期间对象将满足某些条件、执行某些活动活活等待某些事件。
所有对象都有状态,状态是对象执行了一系列活动的结果,当某个事件发生后,对象的状态将发生变化。
实验四类
(1)打开前面初步构建的UML模型文件;
(2)打开Rose中的逻辑视图(LogicalView),选择分析模型(analysismodel)目录。
并在其下创建一个子目录并命名为:
“图书馆业务功能”。
(3)用鼠标右击“图书馆业务功能”在弹出来的菜单中选择“New→Classdiagram”项,创建类图,如图4.1所示。
(4)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Book,如图4.2所示。
图4.1
图4.2
(5)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,图4.3所示;
后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项,图4.4所示,后在出现的对话框中输入相关信息如图4.5所示;
如书本的ISBN号,在Type这个方框输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权限,一般这些属性都设置Private这个权限,如图4.6所示。
这个类的其他属性也可以按照以上的做法设置,最后得到的结果是图4.7所示。
图4.3图4.4
图4.5图4.6
(6)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图4.8所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,见图4.9,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框填写一些相关的方法说明,如图4.12所示,设置好该方法的访问权限,见图4.13。
类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见类4.14。
图4.7图4.8
图4.9图4.10
图4.11图4.12
图4.13图4.14
(7)至此,类的方法和属性都设置好了,如图4.15所示。
图4.15
(8)接下来为书目类设置,按照上面的步骤可以设置好该类的属性和方法,如图4.16和图4.17所示。
图4.16图4.17
(9)最后,绘制出由分析得出的各个类,如图4.18所示,此时,类图便完成。
图4.18
类图是面向对象系统建模中最常用和最重要的图,是定义其它图的基础。
类图主要是用来显示系统中的类、接口以及它们之间的静态结构和关系的一种静态模型。
类图的设计中,类名的选取是一个必不可少的环节,什么样的类名决定了之后对软件编码过程中的困难程度,尽量使用能够识别的,容易理解的参数名、类名、属性和方法,便于之后的维护工作。
实验五类的关系
(1)打开上面做好的类图,添加管理员类,用户类,界面类。
首先,添加一人管理员类,图5.1,并按照上面所说方法添加类的各种属性和方法,见图5.2、图5.3。
(2)可以依照上面的操作来添加其他的类,如:
用户类(Reader类)、界面类(ActionForm),添加完后结果如图5.4和图5.5所示;
(3)其他的类添加完后,就可以为各个类添加关系了,由关联、泛化、依赖等关系相互协作来静态描述业务系,所以,各个类的关系也由这几个关系来完成。
如图5.6所示:
Person类是administrator类和reader类两个类的父类,他们之间为泛化关系。
administrator类和reader类是继承Person类。
BoobItem类是继承Book类的,其他的类为一般的依赖关系,最后,连接完线条便得到图5.6。
(4)根据分析设计情况,进一步细化各类之间的关系。
图5.1
图5.2
图5.3
图.5.4
图5.5
图5.6
类图中最重要的四大关系是关联关系(association)“、”聚合关系(aggregation)“、”合成关系(postion)“和”依赖关系(dependency)。
关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法。
聚合是整体和部分之间的关系,是通过成员变量来实现的。
合成关系是关联关系的一种,是比聚合关系还要强的关系。
它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。
依赖关系也是类与类之间的联结,依赖总是单向的。
依赖关系在Java或C++语言中体现为局部变量、方法的参数或者对静态方法的调用。
实验六、七交互图
(1)在Rose软件的左边栏目上的LogiclView单击右键,新建一个时序图,时序图是交互图一种表示,可以用时序来表示,如图6.1;
在此,先单间介绍一下用法:
图中的直线箭头是发送消息;
虚线箭头是返回消息;
曲折线是对象自己给自己发送消息并调用。
(2)接下来的是添加类,系统中的类是其他的方法的边界,在上面做好的类找到可以直接拖拉来图中,见图6.2和图6.3所示。
图6.1
图6.2
图6.3
(3)添加类后,便可以添加方法了,开始是必需是外面的实体向系统发送消息,如图6.4所示,是管理员登录时向系统发送的消息;
图6.4
(5)可以按上一步的方法来完成其他的方法,如viladate(验证),返回验证结果,当用户收到结果后,可以正常登录后便能进行增加图书见图6.5到图6.9。
最后得到的时序图如图6.10所示。
图6.5
图6.6
图6.7
图6.8
图6.9
图6.10
(6)完成了时序图后,可以按F5键便得到增加图书的协作图,见图6.11所示。
图6.11
(7)剩下的更新图书信息和删除图书信息的交互图在此不再一一详细的介绍,其绘图方法跟绘制增加图书的方法一样,最后得到见图6.12到图6.15
图6.12
图6.13
图6.14
图6.15
一次交互就是指在特定语境中,为了实现某一个目标,而在一组对象之间进行交换的一组消息所表示的行为,交互片断操作符assert是用来表示容所描述的行为是执行过程中那个时刻唯一的有效行为。
如果执行到这个片断的前面,则说明该片断就一定会发生。
它通常和ignore或consider一起使用,以断言某种特定种类的消息行为。
交互图的设计能够更加清楚表示各个事件的关系和操作顺序。
实验八、九对象图和包
为了更好的描述借书过程,根据图8.1绘制借书过程中某一时刻的对象图
图8.1
(1)确定对象的值
假定管理员在为读者“S05001”办理“UMLGuide”的借书手续,这时首先弹出一个借书窗口“lfLend”,在其上输入读者ID和书名,点击“借书”按钮。
这里lfLend对象将调用业务管理者类bmMain对象的findBookByName方法去获取一个书名为“UMLGuide”的Book对象bLend,然后bmMain再通过lendBook方法,去调用bLend对象findFreeItem方法,去查找一本可借阅的图书,这里假定找到图书iLend,然后使用setLoanState更改iLend的借阅状态为“借出”,完成借书过程。
表8.1描述了在成功设置iLend对象借阅状态为“借出”状态时,与借书过程有关的各对象的值。
表8.1
类名
对象名
属性值
方法
LendFrame
lfLend
BookName=”UMLGuide”
ReaderID=”S05001”
lendBook
BookManager
bmMain
findBookByName
Book
bLend
ISBN=”ISBN12315”
findFreeItem
Item
iLend
ItemID=”B05001”
getItemID
setLoanState
(2)绘图,根据
(1)中的描述,绘制出当iLend状态变更时,系统中各对象的状态如图8.2所示。
(3)根据分析设计情况,进一步设计对象和包之间的关系。
图8.2
UML包图中描绘两个或更多的包以及这些包之间的依赖关系。
包是UML中的一种结构,用来将各种建模元素(如用例或者类)分组组织起来。
包的符号是文件夹的样子,可以应用于任何UML图中。
任何图中如果只包含包(以及包之间的依赖),都可以看作是UML包图。
UML包图实际上是UML2中的一个新概念,在UML1中一直是非正式的部分,过去被称为UML包图的东西实际上通常是仅仅包含包的UML类图或UML用例图。
UML对象图(ObjectDiagram)是显示了一组对象和他们之间的关系。
使用UML对象图来说明数据结构,类图中的类或组件等的实例的静态快照。
UML对象图和类图一样反映系统的静态过程,但它是从实际的或原型化的情景来表达的。
UML对象图显示某时刻对象和对象之间的关系。
一个UML对象图可看成一个类图的特殊用例,实例和类可在其中显示。
对象也和合作图相联系,合作图显示处于语境中的对象原型(类元角色)。
实验十、十一组件图和部署图
(1)在组件视图中双击Main图,出现图10.1,为编辑组件图做好准备,这时绘图工具栏中的图标如图中椭圆所示,其中具体含义可参看本节“补充图标”一段的介绍。
图10.1
(2)在组件视图中,从工具栏中选择MainProgram图标,在右边的绘图区中添加一个新组件,并取名StartClass.java表明新增一个主程序。
图10.2
(3)选择新创建的组件,点击鼠标右键,在弹出的菜单中选择“OpenSepcification”,弹出图10.3对话框。
(4)在对话框中,可以修改组件的名称,设置组件的类型,指定实现的语言。
这里新组件的名称定为“StartClass.java”,组件构型为MainProgram(Rose中提供了多种构型,大部分在补充图标一段中均有简单的介绍),实现语言为JAVA(Rose中默认的是分析语言Analysis),修改结果如图10.4所示。
图10.3
图10.4
(5)组件图描述的是系统的实现视图,因此要指定实现组件功能的文件。
点击File选项卡,在列表框中点击鼠标右键,在弹出的菜单中选择“InsertFile”,弹出文件对话框。
在对话框中,键入StartClass.java,点击“打开”按键,这时对话框如图10.5所示。
图10.5
(6)双击StartClass.java,弹出是否创建对话框,询问是否创建文件,选择“YES”,弹出记事本,这时可输入相应的源程序(注意:
如果这里选择的文件已经存在,则不会弹出创建文件对话框,而是直接显示相应文件容)。
(7)创建相应的包。
选择包图标,在右图中创建。
这里同样需要对每个组件打开“OpenSpecification”对话框,设置具体的属性,对“包”组件来说需要在Files选项卡中指明与其对应的目录。
创建完毕的组件图如图10.6所示。
图10.6
(8)选择业务对象包(BO),双击,打开业务对象包的详细组件图,这里根据分析的结果分别创建Title.java,Item.java,Loan.java,BorrowerInfomation.java,Reservation.java组件,并设置好每个组件的构型和对应的文件。
创建好的BO包组件图如图10.7。
图10.7
(9)创建依赖关系。
在本节“关系”一段中,已经描述过依赖关系使用虚线表示,因此根据分析中的结果,在图中将相互依赖的组件连接即可。
完成后的组件图如图10.8。
图10.8
2.绘制部署图
分析:
TJKD的图书管理系统目前开发的是一个单机版系统,其中所有的运算均在一台机器上完成,但是由于打印报表的需要,系统还应配备一台打印机。
因此得出系统中存在2个节点:
1一台主机,其类型是Processor。
2一台打印机,其类型是Device。
绘图步骤:
(1)浏览窗口中选择“DeploymentView”,弹出如图10.9所示窗口。
图10.9
(2)在图中添加分别添加一个Processer和Device,并分别命名为“puter withjavasupport”和“Printer”,添加完毕后,其结果如图10.10所示。
图10.10
(3)为节点添加连接关系。
全图如图10.11。
图10.11
组件图提供系统的物理视图,它的用途是显示系统中的软件与其他软件组件(例如,库函数)的依赖关系。
组件图可以在一个非常高的层次上显示,从而仅显示粗粒度的组件,也可以在组件包层次上显示。
部署图表示该软件系统如何部署到硬件环境中。
它的用途是显示该系统不同的组件将在何处物理地运行,以及它们将如何彼此通信。
因为部署图是对物理运行情况进行建模,系统的生产人员就可以很好地利用这种图。
组件图和部署图的交互使用,加深了我对自己所做系统的业务认识,不断更新和优化。
实验十二正向工程
(1)在上面做好的类图和组件图,浏览窗口中选择“ponentView”;
见图12.1。
(2)本例是用实现administrator类为例来讲一下怎样实现正向工程,首先在左边的工具栏选一个组件,并命名为administrator类,并找到这个类。
(3)在上面的图中找到administrator类后,把它拖拉到刚才建好的组件图里面,见图12.2所示。
图12.1
图12.2
(4)做完上一步后,双击该组件,在找开的对话框中,选“Files”这个选项,如图12.3那样设置。
图12.3
(5)做完一步后,右键单击该组件,便会看到有一项为“Java/J2EE”,如图12.4所示,当鼠标移到该项上时会有弹出快捷菜单“GenerateCode“,见图12.5,接下来会一另一个对话框出现,选择刚才添加的类点击中间的“Assige”键,图12.6示。
到此,正向工程生成代码做完,不过,生成的代码没有具体的代码,有类的属性和方法,但没有方法,这需要程序员编写。
图12.4
图12.5
图12.6
以下为所生成的administrator.java的部分源代码
//Sourcefile:
D:
\\UML\\1\\administrator.java
publicclassadministratorextendsPerson
{
publicStringname;
publicStringId;
/**
*roseuid46F9CE9B01B5
*/
publicadministrator()
{
}
}
(6)其他的类的正向工程生成代码同上面的方法一样,在此不再一一介绍。
(7)请尽量实现你所作类图和组件图所涉及的代码。
正向工程是对一个系统物理结构实现的高层抽象性、逻辑性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 系统分析 设计 实验 报告