1、UML课程设计案例学生公寓管理系统浙江大学理工学院2011年 10月目 录1. 系统需求描述 32. MDA 系统分析与设计 .32.1 CIM-1 定义业务流程 .32.2 CIM-2 分析业务流程 .42.3 CIM-3 定义系统范围 .82.4 PIM-1 系统用例叙述 .92.5 PIM-2 分析业务规则 .122.6 PIM-3 定义静态结构 .132.7 PIM-4 定义操作与方法 .133、设计总结 161. 系统需求描述文字描述系统功能需求和人员 1.1、开发目的:为了方便学生公寓管理人员更高效地管理学生,我们开发设计了学生公寓管理系统。1.2、系统主要功能:系统主要功能包括登
2、记学生值日和安全使用电器分数、计算出年度行为纪实分数、审核年度行为纪实分数、登记访客信息、记录公共设施使用状况、记录报修信息等六大功能。登记学生值日和安全用电分数:楼长在每周在特定的时间检查寝室卫生,检查完后给值日的同学打出分数。每名学生的安全用电分数以已有的值日分数为起点,采用倒扣的制度,即若有同学使用违章电器即扣 3-5 分。计算年度行为纪实分数:每学年结束,楼长会将学生一年的值日分数,计算出生活园区行为纪实。审核年度行为纪实:在计算完学生的行为纪实之后,楼长还需审核行为纪实分数,以确定分数正确无误。登记访客信息:访客来访,楼层管理员将会登记访客的姓名、性别、证件号,来访时间等。在访客离开
3、后,记录访客离开时间。记录公寓公共设施使用状况:楼层管理员将定时对公共设施(例如灭火器、微波炉等)进行排查和登记,更新其使用现状。如有新的公共设施投入使用,则添加新的公共设施信息。记录报修信息:楼层管理员记录学生的报修信息并上报新宇公司,要求维修人员前来维修。维修完成,获得学生维修反馈。若维修好,则由楼层管理人员结算并收取费用,并标记保修单为“修好” ,记录维修好的时间;若没有修好,则保留报修单,继续联系维修人员上门维修。1.3、系统涉众:此系统中的学生公寓管理人员包括楼层管理员、楼长、新宇主管三层管理。不同的管理人员承担不同的管理任务。楼层管理员负责排查并登记学生公寓公共设施使用状况、登记访
4、客信息、登记并上报学生报修信息等多项任务,楼长负责学生日常值日工作的安排和检查、检查是否使用违章电器、结算年度行为纪实分数、审核行为纪实分数等多项任务,新宇主管负责派遣维修人员等任务。2. MDA 系统分析与设计我们采用 MDA 方法设计系统。CIM 规定了学生公寓管理系统的环境以及需求,即学生公寓管理系统在学校使用,主要实现公寓管理人员高效管理学生公寓的功能。PIM 规定了学生公寓管理系统的内部细节,即系统用例如何实现,有哪些类来实现,用怎么样的方法来实现,他们之间的调用关系是什么等。2.1 CIM-1 定义业务流程按照参与者,绘制业务流程,即该参与者的主要工作场景 1、宿舍管理人员业务用例
5、图 2-1-12.2 CIM-2 分析业务流程针对主要的业务用例,绘制业务流程 1、 登记访客.图 2-2-12、 登记学生报修信息.图 2-2-23、 学生行为纪实管理图 2-2-34、 排查并管理学生公寓公共设施.图 2-2-42.3 CIM-3 定义系统范围按照活动负责人,绘制系统用例图 1、楼层管理员系统用例2、楼长系统用例3、新宇公司主管系统用例2.4 PIM-1 系统用例叙述1、 系统用例叙述 登记访客信息用例名称 用例编号 用例简述 用例图 系统 执行者相关用例 其他( )主要流程 替代流程 例外流程其他( )启动事件或条件 前置条件 后置条件 失败时状态业务规则 其他( )用例
6、叙述的历史版本 用例图 参考画面 非 UML 文档其他( 访客信息登记表 )优先性 迭代等级 待解决问题 基本假设 相关人员特殊需求 其他( )其他( )用例名称 登记访客信息用例编号 SUC001用例简述 楼层管理员登记每位访客的信息,并在访客离开后记录访客离开时间用例图主要流程 1) 系统列出学校所有楼层所有寝室2) 楼层管理员选择某一幢某一寝室,并按“确定”3) 楼层管理员在询问访客后录入访客的姓名、性别、联系方式,到访时间等信息4) 楼层管理员按“保存”后,将访客信息存入数据库5) 待访客走后, “浏览”访客记录,在该记录“离开时间”中填上相应时间,按“保存” ,数据提交到数据库6)
7、登记访客信息完成,显示出访客信息报表替代流程 2a)访客要访问的寝室不存在系统出现查找失败信息,回到主流程 1,楼层管理员重新输入要查找的寝室;业务规则 系统按照公寓原有的编码方式生成编号系统用例图 楼层管理员系统用例图其他 访客登记信息报表2、 系统用例叙述 登记公寓维修状况用例名称 用例编号 用例简述 用例图 系统 执行者相关用例 其他( )主要流程 替代流程 例外流程其他( )启动事件或条件 前置条件 后置条件 失败时状态业务规则 其他( )用例叙述的历史版本 用例图 参考画面 非 UML 文档其他( 公寓维修状况报表 )优先性 迭代等级 待解决问题 基本假设 相关人员特殊需求 其他(
8、)其他( )用例名称 登记公寓维修状况用例编号 SUC002用例简述 楼层管理员登记每次学生上报的维修信息,并根据学生的反馈处理报修信息用例图主要流程 1) 系统列出学校所有楼层所有寝室2) 楼层管理员选择需要维修的寝室,并按“确定”3) 楼层管理员选择要维修的项目,并按“确定”4) 系统结算出此次报修的金额5) 楼层管理员将报修项目标记为“已修好” ,填上维修成功日期并按保存6) 记录保存到数据库,此系统用例完成替代流程 3a)选择的报修项目不存在添加新的报修项目,并保存到数据库 业务规则 系统按照公寓原有的编码方式生成编号系统用例图 楼层管理员系统用例图其他 公寓维修信息报表3、 系统用例
9、叙述 更新公共设施信息用例名称 用例编号 用例简述 用例图 系统 执行者相关用例 其他( )主要流程 替代流程 例外流程其他( )启动事件或条件 前置条件 后置条件 失败时状态业务规则 其他( )用例叙述的历史版本 用例图 参考画面 非 UML 文档其他( 公共设施现状报表 )优先性 迭代等级 待解决问题 基本假设 相关人员特殊需求 其他( )其他( )用例名称 更新公共设施信息用例编号 SUC003用例简述 楼层管理员排查公寓楼公共设施状况,更新公共设施现状用例图主要流程 1) 楼层管理员打开界面显示所有楼层所有寝室2) 楼层管理员选择所在的公寓幢号、楼层,按下“确定”3) 楼层管理员选择“
10、浏览所有已有公共设施信息”4) 按“更新已有信息” ,更新公共设施信息5) 按下“保存并返回”后完成更新并提交数据库替代流程 2a)楼层寝室错误 楼层管理员选择错误的楼层寝室,回到主流程 1,重新选择2b) 楼层寝室不存在 回到主流程 1,重新选择4a) 没有该设施记录 回到主流程 3,选择“添加项目”业务规则 系统按照公司原有的编码方式生成编号系统用例图 楼层管理员系统用例图4、 系统用例叙述 每周学生值日检查并打分用例名称 用例编号 用例简述 用例图 系统 执行者相关用例 其他( )主要流程 替代流程 例外流程其他( )启动事件或条件 前置条件 后置条件 失败时状态业务规则 其他( )用例
11、叙述的历史版本 用例图 参考画面 非 UML 文档其他( 学生值日分数表 )优先性 迭代等级 待解决问题 基本假设 相关人员特殊需求 其他( )其他( )用例名称 每周学生值日打分用例编号 SUC004用例简述 楼长每周定时检查寝室卫生,给当日值日的同学打分用例图主要流程 1) 系统显示所有公寓楼层2) 楼长选择公寓楼,层号、寝室号、床号,并按下“确定”3) 楼长按“填写值日分数” ,填写改学生值日的分数4) 在填写完成后按保存5) 系统将分数提交到数据库,该用例完成替代流程 2a) 【选择楼层、寝室、床号错误】回到主流程 1,重新选择3a) 【填写分数失败】系统显示填写分数失败,回到主流程
12、2,重新填写业务规则 系统按照公寓原有的编码方式生成编号系统用例图 楼长用例图其他 学生值日分数报表2.5 PIM-2 分析业务规则根据重要业务对象,绘制状态图 1、报修单状态图图 2-5-1 报修单状态图2.6 PIM-3 定义静态结构绘制类图,可进一步根据顺序图反馈改进 图 2-6-1 系统类图2.7 PIM-4 定义操作与方法根据用例行为,绘制顺序图 1、检查学生值日并打分2、登记访客信息3、管理学生报修信息4、更新学生公寓公共设施3、设计总结xxx 个人总结:本次 UML 大作业中,我的工作是负责做业务用例图,业务活动,系统用例图。通过这次作业我了解到,要做一个系统是很繁琐的,工作量是
13、很大的。不仅需要扎实的编程技术,而且还必须在前期做好整个系统的规划和设计,一旦前期做的不好,那最后的开发出来的项目会存在很多的问题,需要的时间和精力去修改。所以前期的设计很重要,而且团队合作精神也相当重要,一个系统的开发仅仅靠一个人是很难完成的,需要大家一起合作完成。还有一点是最重要的,像我们组做的是学生公寓管理系统,就必须要清楚的了解学生公寓的组成人员和各人员各自承担的工作,必须了解的十分清楚,这样才能准确的画出各种图,这对之后的开发起这决定性作用。这次大作业对我的帮助很大,我更清楚的知道了怎么去做一个系统的前期工作,希望下次还有这样的机会,以增加自己的实践机会,便于更好的学习专业知识。xx
14、x 个人总结:此次,我和同组同学 xxx 一起做了学生公寓管理系统。通常情况下,我们经过讨论得出图应该怎样画,然后由我画图。我主要负责画用例简述、状态图、类图、时序图。在项目开始之初,我们遇到了很多的困难,比如项目到底具备哪些功能,谁是项目的参与者等。经过我们的讨论,我们确定项目的主要参与者是学生公寓管理人员,分别包括楼层管理人员、楼长、新宇公司主管三级。每一级的管理人员负责不同的工作。项目开发的目的是为了方便学生公寓管理人员更方便的管理学生,所以系统主要功能包括登记学生值日和安全使用电器分数、计算出年度行为纪实分数、审核年度行为纪实分数、登记访客信息、记录公共设施使用状况、记录报修信息等六大
15、功能。楼层阿姨负责排查并登记学生公寓公共设施使用状况、登记访客信息、登记并上报学生报修信息等多项任务,楼长负责学生日常值日工作的安排和检查、检查是否使用违章电器、结算年度行为纪实分数、审核行为纪实分数等多项任务,新宇主管负责派遣维修人员等任务。另外,我们在最后画 PIM-3 时也遇到了挺大的困难。时序图总是画不对,我们很难从代码级去画时序图。但是,通过我们的努力,我们还是完成了此次项目。此次的项目设计让我学到了很多东西,首先,团队合作精神很重要。一个人的想法往往不能涵盖系统全部的需求、一个人也无法完成整个项目的设计;其次,我觉得掌握 UML很重要。掌握了这样一个有用的东西,我们在设计面向对象的系统时就可以有一定的规则可循。三、我觉得创意很重要,我们在开发项目时不应该仅仅局限于书本上的例子,应该从身边寻找实际存在的、并且有需求的例子来作为项目的模型。