面向对象分析与设计实验指导书
课程号:230005006
适用专业:软件工程
撰写人:冯元勇
广州大学
计算机科学与教育软件学院
2014 年4 月(第三版)
2013 年4 月(第二版)
2012 年4 月(第一版)
目录
目录 (2)
前言 (3)
实验过程要求 (4)
实验报告要求 (6)
实验一静态建模 (7)
实验二动态建模 (8)
实验三应用系统分析与设计 (9)
附录一:系统分析与设计题目限选清单 (10)
0. 网页更新检测 (10)
1. 全国网络售票模拟系统 (10)
2. 手机与投影同步PPT播放 (10)
3. 淘宝比价及商品推介 (10)
4. 校友技能反馈平台 (11)
5. 手机课程表应用设计 (11)
6. 飞机订票系统 (11)
7. 图书管理系统 (11)
附录二:实验步骤示例 (13)
1. 建立项目模型文档 (13)
2. 绘制用例图 (13)
3. 绘制类图 (14)
4. 绘制类间的关系 (20)
5. 绘制活动图 (31)
6. 绘制状态图 (23)
7. 绘制顺序图 (28)
附录三:常见问题及解决办法 (31)
1. Rose打开和退出时异常 (35)
前言
《面向对象分析与设计》课程是计算机科学与技术本科专业的一门重要的专业课.通过本课程的学习,使学生在已有的计算机软,硬件基础知识,程序设计知识,数据库和网络通信知识的基础上系统掌握面向对象分析与设计的基本方法和技术,并具有针对特定环境下的应用问题进行信息系统开发(包括系统分析,设计与实现)的能力。通过学习本课程学生可以理解和掌握面向对象系统的分析和设计的方法和分步过程、掌握面向对象系统分析和设计的建模标准UML语言,能够利用Rational Rose(或Microsoft Viso)软件以某一信息系统为例进行系统分析和设计。
本课程主要介绍系统原理的基本概念、系统开发过程RUP、对面向对象分析和面向对象设计的方法、对面向对象分析和设计的建模标准UML等内容。
通过本课程的学习,学生掌握的知识、内容及掌握的程度要求为:
1. 使学生理解面向对象的信息系统的开发过程、系统分析和设计的原则和方法;
2. 使学生掌握UML语言的基础知识,以及UML在面向对象的软件系统分析和设计中的应用,并能使用UML工具建立系统模型;
3. 使学生掌握在UML系统模型下应用高级语言建立应用系统的方法;
4. 通过案例教学和实验,提高学生在应用面向对象技术开发软件方面的动手能力和解决问题的能力,并鼓励创新。
本实验课程参考的建模工具为Rational Rose 2003。
实验过程要求
在《面向对象设计与开发》的课程实验过程中,要求学生做到:
(1)预习实验指导书有关部分,认真做好实验内容的准备,就实验可能出现的情况提前作出思考和分析。
(2)仔细观察上机时出现的各种现象,记录主要情况,作出必要说明和分析。
(3)认真书写实验报告。实验报告包括实验目的和要求,实验情况及其分析。对需编程的实验,写出程序设计说明,给出源程序框图和清单。
(4)遵守机房纪律,服从辅导教师指挥,爱护实验设备。
(5)每次上机应按照真实所用的机器1登记,并记住
本课程第一次上机所用的机器,此后本课程所有上机使用
该机器,不得随意更改。每次实验均需在实验日志相应机
号(非课表课室者需注明课室号)签到。教师将以登记的(第
一次使用的)机号作为学生考勤与课堂纪律巡查的依据2。
假设姓名为“张三”,非课表课室为416,签到格式为:
课表机房,3号机器
课表机房,53号机器 机器号
帐户名 签名 3(53) 机器号 帐户名 签名 3(53) 非课表机房,3号号机
非课表机房,53号号机 机器号
帐户名 签名 3(53) 机器号 帐户名 签名 3(53)
(6)考勤员/学委/班长/其他班干部/其他同学在上课前到机房管理室417领取实验日志并填写实验项目、时间等内容后传给各位同学签名,课后放回原处。
(7)实验课程不得迟到。未能正常出勤者,所缺实验不补。
实验的验收将分为两个部分。第一部分是上机操作,包括检查程序运行和即时提问。第二部分是提交书面的实验报告。此外,针对以前教学中出现的问题,本实验将采用阶段检查方式,每个实验都将应当在规定的时间内完成并检查通过,过期视为未完成该实验,
1 机房的基本要求是按班序号使用相应编号机器。如遇机器坏或班级无序号者,应先告知机房管理员或指导老师。
2 如果登记的机号上无人,则视为该机号登记的学生缺勤。如果学生没有在登记的机器上操作,则视为该机号登记对应的学生到勤。
机器号
不计成绩。以避免期末集中检查产生的诸多不良问题,希望同学们抓紧时间,合理安排,认真完成。
实验报告要求
1. 每个实验以个人为单位单独完成一份实验报告,且在该实验大纲结束的后一周上系统提交。每迟交一周扣除等级分一级。第十七周前必须提交所有实验报告,此后不再接收。
2. 实验报告不必列出操作步骤细节,但应体现出独立工作的成果,不得雷同: a)
问题的描述; b)
整体的解决思路、流程或算法; c) 重要的实验结果。该结果应由学生自已独立实验所得,体现出个人所用的实验数据、思路、算法;
d) 实验中遇到的困难及解决办法、心得。
3. 实验报告中的图、表、核心代码尽量不使用屏幕截图,便于批改、查看,也可减少报告文档的存储空间。
4. 实验一和实验二只需给出一个子系统范围内的静态模型和动态模型即可。实验三要求给出完整的系统模型,并在实验一、二的基础上加入设计的内容并全面优化模型。
5. 实验报告仅作为实验工具的操作指导,其示例系统为图书馆管理系统。建议学生自选系统(可从附录中选择,也可自己再拟项目)进行实验并提交报告。
6. 实验报告电子版的文件名格式为:学号-姓名-实验1/2/3-实验名称.doc/mdl/…。
7. 最后一次提交实验报告时,由学委(亦可委托班长等班干部代办)将全班所有同学的实验报告集中起来,以非压缩的格式刻录到一张光盘上。文件夹格式为: 实验一实验二实验三学号1
...实验一实验二实验三学号N 按学号排序学号1...学号N 实验一学号1...学号N 实验二学号1...学号N 实验三按实验号排序
实验一静态建模
一、实验目的
1.熟悉类模型的基本功能和使用方法。
2.熟悉从问题陈述等文档资源中识别领域类的分析方法
3.掌握如何使用建模工具绘制用类图方法。
二、实验器材
1.计算机一台;
2.Rational Rose 工具软件。
三、实验内容
本实验需要完成如下任务:
1.识别一个子系统中的用例,进行用例描述,绘制用例图;
2.对子系统中的类建模,绘制类图。
实验二动态建模
一、实验目的
1.熟悉活动图的基本功能,掌握如何使用建模工具绘制活动图方法;
2.熟悉状态图的基本功能,掌握如何使用建模工具绘制状态图方法;
3.理解顺序图的基本概念,掌握如何使用建模工具绘制顺序图方法。
二、实验器材
2.计算机一台;
3.Rational Rose 工具软件。
三、实验内容
要对前面所选定的用例描述其动态特性:
1.对用例进行动态建模;
2.用活动图来描述系统中已知用例的业务过程;
3.用状态图描述用例中的关键状态类;
4.形成(至少一个子系统)完整的需求分析报告。
实验三应用系统分析与设计
一、实验目的
1.在实验一和实验二的基础上,进一步了解系统分析与设计的迭代过程;
2.加深对类模型、状态模型和交互模型的理解;
3.理解包图与组件图的基本概念;
4.掌握在Rational Rose中绘制对象图和包。
二、实验器材
1.计算机一台;
2.Rational Rose 工具软件。
三、实验内容
在实验一和实验二的基础上,进一步完善静态模型和动态模型:
1.绘制对象图;
2.完成系统的组件图;
3.形成完整的、优化了的系统设计报告
附录一:系统分析与设计题目限选清单
每位同学必须按学号来选定所分析与设计的系统,规则是该系统的编号为学号的除以8所得的余数。例如学号为11287051238的同学应对编号为6的系统进行分析与设计。
0.网页更新检测
对论坛等需要登录/不需要登录的静态/动态页面(如门户、微博、QQ共享空间、群通知等)通过版面分析,对页面的特定部分的更新进行检测,按指定的周期从用户感兴趣的角度提供内容变更摘要。
1.全国网络售票模拟系统
多地点多终端接入,支持Internet网银购票
提供与电话购票、代售点购票、火车站购票的余票信息或分配共享方案接口。
支持预约、即时订票,在系统繁忙时提供排队购票(较准确估计排队时间、成功概率)、排队购票成功时调整支付等待时间(缺省为45分钟)。
支持高效地选票。尽量减少对票加锁。可考虑在余票充足时支持选票,余票紧张时由系统指定席别。尽量一次提供客户的要求(多人同车同席别、同车不同席别、同车不同起止站等),如人员、可接受的席别、是否相同的席别要求,当缺省的席别要求不能满足时,能提供变通的方案(如非连续、非同排、非同车厢、非同车次、非同席别、上/中/下铺位不符、仅部分成功购票等),并告警。
业务流量模拟,进行系统压力测试。
采用分布式布局,避免流量过于集中。
2.手机与投影同步PPT播放
在手机上上下翻页、跳转时,手机/投影/电脑上同步演示。
可通过无线(wifi)、蓝牙连接手机与电脑。蓝牙传输命令,无线(wifi)则可直接传输视频。
3.淘宝比价及商品推介
在浏览商品中,允许对同类商品进行比较
每选择一个商品,可以给出一些同类商品的推介,但剔除已参加对比了的商品及(或)已浏览(或已排除)商品)
允许对同类对比商品手动/自动排序,在形成最后订单时同类商品只选一种。
在查看购物车时,可以有两种查看形式:按店铺分类(在每个店铺尽量购买全部商品)、按总费用多少分类(考虑商品价格、运费、信用、用户评价等)。
4.校友技能反馈平台
学校的教育成功与否,一个直接指标可从校友及其组织对于在校所受教育的应用、评价中获得。本课题意图设计一个系统,收集我校往届毕业生及其组织对于专业课程,特别是选修课程所学知识的应用情况、评价等反馈信息,进行适当的分析,得出关于课程设置的某些综合评价指标,供课程建设、调整参考。
初步设想可收集的信息包括:个人信息(专业背景、毕业年限、工作领域及职务变迁经历)、评价信息(课程名称、授课老师、知识点、工作中的运用程度评语及打分、对工作的帮助程度评语及打分)
可挖掘信息:课程对不同工作领域及工作年限人员的帮助、改进建议,对教师技能的印象评价、建议
5.手机课程表应用设计
与Google/QQ/163日历整合,同时有学年、学期(每学期的起始日期需重设)、周次、课程大节、小节、调课等概念,具有每个半天提醒的功能,可导入学校的课表,能进行学生创新项目、毕业设计等跨学期/学年教学工作的日程管理。可以学年、学期为周期重复日程
6.飞机订票系统
任务:通过此系统可以实现如下功能:
录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);
可以输入起飞抵达城市,查询飞机航班情况;
订票:可以订票,如果该航班已经无票,可以提供相关可选择航班;(订票情况可以存在一个数据文件中,结构自己设定)
退票:可退票,退票后修改相关数据文件;
客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件
7.图书管理系统
问题描述:设计一个计算机管理系统完成图书管理基本业务。
基本要求:
(1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;
(2)系统主要功能如下:
** 采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加;
** 借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量;
** 归还:注销对借阅者的登记,改变该书的现存量。
附录二:实验步骤示例
1. 建立项目模型文档
打开Rational Rose,在对话框中选择“New”页,新建“Rational Unified Process”类型的项目。该过程也可在打开应用后,通过菜单操作实现。
注意:软件使用过程中可能会出现意想不到的状况,因此应随时保存文档(快
..................................
捷键是
....-.S.)。
..
...Ctrl
2. 绘制用例图
(1)右击Rose中的用例视图(Use Case View)。
(2)在弹出来的菜单中选择“New→Use Case Diagram”项,创建用例图,如图1所示。
图1 创建用例图
(3)命名用例图。
(4)双击打开用例图
(5)点击工作区左侧工具条的椭圆图标(,表示用例)
(6)在工作区空白处点击,新建一个用例并命名。如图2:
图2 一个用例
图3 一个外部参与者
注意,模型中所有类型的元素,如...............果已经建立,则可直接将其............从左侧的资源浏.......
览栏中...拖拉到图中。......相应地,简单地从某图中删除某元素并.................不.意味着从模型中删除。..........若要删除,需从资源浏览栏中右键弹出菜单中选取......................Delete ......操作来完成。......
(7)点击工作区左侧工具条的人形图标(,表示外部参与者)
(8)在工作区空白处点击,新建一个外部参与并命名。如图3。
(9)点击工作区左侧工具条的关联图标(),在外部参与者处按下鼠标不放,移至相应的用例上放开,建立外部参与者与用例之间的关联。形成如下用例图:
图4 一个简单的用例图
(10)依次添加其它外部参与者及用例。
注意,...Rose ....中的..RUP ...范本还提供了许多其它的特性,请查阅参考相关的资料........................
或多多研究本工具软件(如程序菜单)。本实验指导书仅给基本的使用技巧。..................................本指..导书所列业务及其建模思路也仅出于示范的目的,具体的实验...........................操作..请自行...斟酌。...
3. 绘制类图
(1)右击Rose 中的用例视图(Use Case View )或逻辑视图(Logical View ),前者建议在需求分析时选用(此时最好在相应的用例上建立类图,方法是右击该用例。),后者建议在系统设计时选用。此后的顺序图、状态图、活动图的新建议方法类似。
(2)在弹出来的菜单中选择“New →Class diagram ”项,创建类图,如图5所示。
图5 新建类图
(3)双击新建的类图,并点右边控件集中选中的类的图标,并用鼠标在图中分别拖出一个类图,并命名为Book,如图6所示。
图6 新建类
(4)接下来的一步为设置类的属性,在新的类中双击该类,在打开属性面板中,可以看到在此可以设置类的属性和方法等其他的信息,见图7所示;后撞击Attributes这个栏目,此栏目为设置类的属性的选项,在图中间的单击右键,可以看到有一个“Insert”的选项,选中这个选项,图9所示,后在出现的对话框中输入相关信息如图9所示;如书本的ISBN 号,在Type这个方框内输入此属性的类型值,同时可以看到一栏可以设置此属性的访问权
限,一般这些属性都设置Private这个权限,如图10所示。这个类的其他属性也可以按照以上的做法设置,最后得到的结果是图11所示。
图7 设置类属性图8 插入属性
图9 设置属性信息图10 设置private权限(5)设置好类的属性,现在来设置类的方法(也是操作),双击类后在弹出的菜单上选operations这个选项,可以看到图12所示,在图中的空白地方,单击右键,在弹出的菜单中选insert这个选项,也就只有这个选项可用,见图13,接着输入方法名,同时可以设置该方法的返回类型,也可以在Documentations的方框内填写一些相关的方法说明,如图16所示,设置好该方法的访问权限,见图17。类的其他方法也可以按上面来设置好,最后,得到该类的其他方法见图18。
图11 一个设置好的类
图12 查看操作列表
图13 插入操作
图14 定义操作
图15 双击操作
图16 定义操作细节
图17 描述操作
图18 定义好了的操作列表 (6)至此,类的方法和属性都设置好了,如图19所示。
图19 类图中的book 类
(7)接下来为书目类设置,按照上面的步骤可以设置好该类的属性和方法,如图20和图21所示。
图20 书目类的属性列表
图21 书目类的操作列表 (8)最后,绘制出由分析得出的各个类,如图22所示,此时,类图便完成。
图22 无类间关联的类图
(9)根据分析情况,进一步细化添加相关的类。
4. 绘制类间的关系
(1)打开上面做好的类图,添加管理员类,用户类,界面类。首先,添加一个管理员类(可从左侧资源浏览栏中直接拖拉而来),如图23。并按照上面所说方法添加类的各种属性和方法,见图24、图25。
(2)可以依照上面的操作来添加其他的类。
(3)其他的类添加完后,就可以为各个类添加关系了,由关联、泛化、依赖等关系相互协作来静态描述业务系,所以,各个类的关系也由这几个关系来完成。如图1.2.6所示:Person类是administrator类和reader类两个类的父类,他们之间为泛化关系。administrator 类和reader类是继承Person类。BoobItem类是继承Book类的,其他的类为一般的依赖关系,最后,连接完线条便得到图26。
(4)根据分析设计情况,进一步细化各类之间的关系。