软件工程课程设计指导书
《软件工程》课程设计任务书 一.目的
软件工程课程设计是软件工程专业一个综合性的实践教学环节,其目的在于促进学生复习和巩固计算机软件设计知识,加深对软件设计方法、软件设计技术和设计思想的理解,并能运用所学软件设计知识和面向对象技术进行综合软件设计,提高学生的综合应用能力。通过这次课程设计,要掌握UML(统一建模语言),并能运用UML在Rational Rose中建模。
二.要求: 1. 一人一组。
2. 熟悉Rose开发环境。
3. 掌握UML的基本模型元素(如角色、用例、类等)。
4. 熟悉UML,主要了解UML中的9大图:Use case diagram(用例图)、Class diagram(类图)、Sequence diagram(序列图)、Collaboration diagram(协作图)、Statechart diagram(状态图)、Activity diagram(活动图)、Component diagram(组件图)、Deployment diagram(配置图)、datamodel diagram(数据模型图)。
5. 进行系统需求分析与系统功能模块设计,绘出系统详细的业务流程图和数据流程图,建立完整的系统数据库的逻辑模型。
6. 完成对系统的建模实现。 7. 进行检查,并提交设计报告。 三.报告要求: 1. 实验题目
2. 实验目的 3. 实验要求 4. 实验内容
5. 系统设计的源程序和文档(包括说明) 6. 心得体会 四.参考资料:
1. Wendy Boggs & Michael Boggs 著 邱仲潘译《UML与Rational Rose2002从入门到精通》 电子工业出版社
2. Martin Fowler & Kendall Scott:UML Distilled Second Edition A Brief Guide to the Standard Object Modeling Language
3. UML参考手册
4. Jason T. Roff 著 张瑜 杨继萍 等 译《UML基础教程》 清华大学出版社
五.设计内容
可自选题目,但须经过指导教师审查。
1.房产管理系统:
在我国住房管理是一个关系到每个人切身利益的大问题。某大学拟开发一个用计算机进行房产管理的系统,要求系统具有分房、调房、退房和咨询统计等功能。
房产科把用户申请表输入系统后,系统首先检查申请表的合法性,对不合法的申请表系统会拒绝接受;对合法的申请表则根据其类型分别进行处理。
如果是分房申请,则根据申请者的情况(年龄、工龄、职称、职务、家庭人口等)计算其分数,当分数高于阈值分数时,按分数高低将申请表插到分房队列的适当位置。每月最后一天进行一次分房活动:从空房文件中读出空房信息(房号、面积、等级、单位面积房租等);把好房优先分配给排在前面的符合该等级住房条件的申请者,从空房文件中删除这个房号的信息,从分房队列中删除该申请者;把此房号的信息和住房信息一起写入住房文件中,输出住房分配单给住户,同时计算房租写入房租文件中。
如果是退房申请,则从住房文件和房租文件中删除有关信息,再把此房号的信息写到空房文件中。
如果是调房申请,则根据申请者的情况确定其住房等级,然后在空房文件中查找属于该等级的空房,退掉原住房,再进行与分房类似的处理。
住户可向系统询问分房的阈值分数,居住某类房屋的条件,某房号的单位面积房租等信息。房产科可要求系统打印出住房情况的统计表,或更改某类房屋的居住条件、单位面积房租等信息。
2.选票统计系统:
某学会下属的各个专业委员会经常需要改选或补选,因此希望开发一个选票统计系统。
一次选举最多有10组选票,每组用于一个委员会的选举。一个组内的所有选票都在第61至80列穿有该委员会的名字,以及该委员会候选人的名字。每个委员会最多可有25名候选人。选举人欲投某候选人的票,就在选票的第21至45列(对应候选人1~25号)的相应列上穿一个减号。一张选票上允许有多个减号,因为一个委员会可能有多个空缺名额。一包选票由若干张选票组成(一个委员会一张)。选举人每人一包选票,穿好记号后交给系统去统计票数。系统首先读入基本信息(委员会名、候选人数、该委员会需补选的人数),然后读入一张选票。若选票无效时则打印出选票内容。继续下一张选票的读取;若选票有效则处理该选票,然后继续下一张选票的读取。选票全部处理完后,打印出每个委员会的每名候选人的得票数。
选票的有效性判断步骤如下:
① 核对委员会名字(61至80列),若有此名则继续; ② 检查21至45列,若只有减号或空白,则继续; ③ 检查在最后一个候选人后面还有无记号,若无则继续; ④ 统计选票上记号的总数,若不超过允许的记号数,则此张选票有效。 若上述4项有一项不合格,则此张选票无效。
3.旅馆客房管理系统:
某旅馆有客房若干,客房房间朝向分南、北两种,朝南的房间又分两人间、三人间两种;朝北的房间分三人间、四人间两种。每天住宿费因房间类型而异。每个房间、床位分别有房间号、床号。
系统根据房间已住旅客性别分配性别相同的旅客住进去,若是空房间则可分配给任意同一性别的旅客住。旅客住宿登记时需登记姓名、身份证号、住址、性别、住进日期;旅客退房时根据居住天数和住房规格结算住宿金额。
4.自动售货机系统:
自动售货机系统是一种无人售货系统。售货时,顾客把硬币投入机器的投币口中,机器检查硬币的大小、重量、厚度及边缘类型。有效的硬币是一元币、五角币、一角币、五分币和一分币。其它货币都被认为是假币。机器拒收假币,并将其从退币孔退出。当机器接收了有效的硬币之后,将之送入硬币储藏器。顾客支付的货币根据硬币的面值进行累加。
自动售货机装有货物分配器,每个分配器中包含0 个或多个价格相同的货物。顾客通过选择货物分配器来选择货物。如果有货,且顾客支付的货币值不小于该货物的价格,货物将被分配到货物传送孔送给顾客,并将找零返回到退币孔。如果无货,则和顾客支付的货币值相等的硬币将被送到退币孔。如果顾客支付的货币值小于所选货物的价格,机器将等待顾客投进更多的货币。如果顾客决定不买所选择的货物,他投放进的硬币将从退币孔中退出。
5.学校医疗费管理系统:
要求数据库中存放每个职工的职工号、姓名、所属部门。职工报销医疗费时需填写所属部门、职工号、姓名、日期。医疗费分校内门诊费、校外门诊费、住院费、子女医疗费四种。该校规定,每年每个职工的医疗费有一个限额,在年初时确定,一年内医疗费不超过限额时可全部报销;超额部分报销90%,其余10%由职工个人负担。职工子女的医疗费也另有限额。
系统每天记录当天报销的若干职工或职工子女的医疗费类别、金额,在当天下班前自动结账,统计当天报销的医疗费总额,供出纳员核对。每笔账要保存备查。每天报销的费用要和各个职工已报销的金额累计起来,以便检查哪些职工已超额。系统要配有适当的查询功能。年终结算后,下一年度开始时要对数据库文件进行初始化。职工调离、调入本单位、或在本单位内部部门间调动,数据库文件要及时修改。
6. 路障跟踪与维修系统:
某市政部门欲开发计算机控制的路障与维修系统(PHTRS)。路障被发现上报后,系统赋予该路障一个识别号码,并存入其所在街道地址、大小(按1比10的比例)、位置(路中、人行道上等等)、所属街区(根据街道地址得出)、以及维修优先级(根据其大小确定)。对每个路障有一个施工命令,包括路障位置、大小、施工队编号、施工人数、配备工具、维修的工时数,路障状态(施工中、已修复、临时修复、未修复)、材料用量、维护费用(根据维修工时、人数、材料及工具等计算得出)。最后,系统建立一个损失报告文件,记录此路障造成的损失,包括市民的姓名、地址、电话、损失类型、以及损失量(以元为单位)。PHTRS是一个在线系统,可随时查询。
7. 网上超市系统:NetSuperMarket
主要功能描述:用户通过浏览器访问网上超市系统,系统以分类的形式显示所有商品,帮助用户逐步找到所要的商品;系统也提供关键词检索功能;用户在浏览商品目录是可以点击察看商品的具体信息和价格;如果满意,用户可以将商品暂时放入“购物车“;也可以随时从“购物车“中取出商品。当用户选完后可以进行付款处理,这时用户输入信用卡号,系统联系对应的银行支付系统,开始支付。最后系统应能够向管理员提供查询界面和各类报表,统计商品的销售情况。