《高级软件工程》课外大作业设计报告参考模板.docx
《《高级软件工程》课外大作业设计报告参考模板.docx》由会员分享,可在线阅读,更多相关《《高级软件工程》课外大作业设计报告参考模板.docx(28页珍藏版)》请在冰豆网上搜索。
《高级软件工程》课外大作业设计报告参考模板
《高级软件工程》
软件系统分析与设计
设计题目:
娱乐明星管理系统
院系:
计算机与通信学院
专业:
软件工程
学号:
162085212001
姓名:
亓祥惠
指导教师:
张秋余
成绩:
开课时间:
2016至2017学年第二学期
1问题分析
本系统定位于某娱乐公司为加上娱乐明星同网友的互动,开发了这个系统。
基本需求就是提供一个平台用于娱乐明星和网友进行互动,同时增加了管理对用户的管理和对明星资料维护的功能。
2开发环境
2.1硬件环境
一台PC台式机或是便携式电脑
2.2软件环境
中文windows7以上系统
EnterpriseArchitect12
3设计题目
3.1题目名称
娱乐明星管理系统
3.2题目详细描述
本系统的基本需求是餐厅在营业时记录预约、更新预约单信息、分配餐桌以及接待未预约的顾客的能力,添加了会员业务,为会员提供提前点菜的服务。
主要的功能有下订单、修改订单、取消订单以及在顾客未按时到达时及时提醒顾客;同时还能记录未预约的顾客;维护订单和未预约记录,如记录到达、离开,以便及时更新餐桌的状态;附加的功能有管理会员信息,为会员提供提前点菜的服务。
3.3功能要求
本系统主要分为餐桌管理,会员管理,菜单管理和订单管理四大功能模块。
餐桌管理:
进入餐桌管理,可以点击餐桌对订单进行编辑,还可以显示餐桌的订单状态。
会员管理:
进入会员管理,可以对会员信息进行编辑,可以添加会员,修改会员信息和删除会员信息。
菜单管理:
进入菜单管理,可以菜单会员信息进行编辑,可以添加菜单,修改菜单会员信息和删除菜单信息。
订单管理:
进入订单管理,里面显示的是所有的订单信息。
4详细设计
4.1用例图
本系统是一个餐厅订餐系统,主要功能是为餐厅提供订餐记录和维护功能,同时扩展了订菜和定时提醒的功能。
下面使用了用例图的方式表现了整个系统的所有功能。
用例名:
Recordbooking(记录预约)
角色:
Receptionist
描述:
1、接待员执行“显示预约”用例;
2、有一张合适的餐桌可以使用;
3、接待员输入顾客姓名和电话号码、预订时间、用餐人数以及预留的餐桌
4、系统记录和显示新预约
用例名:
Remindbooking(订餐提醒)
角色:
Receptionist
描述:
1、系统显示预约用餐时间超过当前系统时间的预约
2、接待员执行“显示预约”用例
3、接待员打电话提醒顾客,询问是否取消预约
4、如果顾客回答“否”,用例终止
5、如果顾客回答“是”,接待员执行“取消预约”用例
用例名:
Cancelbooking(取消订单)
角色:
Receptionist
描述:
1、接待员选择要求的预约
2、接待员取消预约
3、系统询问接待员确认取消
4、接待员回答“是”,系统记录取消并更新显示
用例名:
Tabletransfer(换桌)
角色:
Receptionist,HeadWaiter
描述:
1、侍者领班选择需要的预约
2、侍者领班改变该预约的餐桌分配
3、系统记录改变并更新显示
用例名:
Displaybookings(显示餐厅预约信息)
角色:
用户
描述
1、用户输入一个日期
2、系统显示当日的预约
用例名:
Searchemptytable(查找空桌)
角色:
Receptionist
描述:
1、接待员输入日期和时间
2、系统显示空桌的信息
用例名:
Modifymemberinformation(修改会员)
角色:
用户
描述:
1、用户执行“显示会员信息”用例
2、修改会员信息
3、系统询问用户确认修改
4、用户确认修改
5、用户回答“是”,系统记录更新并显示更新
用例名:
Displaymemberinformation(显示会员信息)
角色:
用户
描述:
1、用户输入会员号
2、系统显示该会员的信息
用例名:
Deletemember(删除会员)
角色HeadWaiter
描述:
1、侍者领班选择要取消的会员
2、侍者领班取消该会员
3、系统询问侍者领班确认取消
4、侍者领班回答“是”,系统记录取消并更新显示
用例名:
Registermember(会员注册)
角色:
HeadWaiter
描述:
1、侍者领班输入顾客的姓名和电话号码
2、系统记录并显示该顾客的信息
用例名:
Recordleft(记录离开)
角色Receptionist
描述:
1、接待员输入餐桌号
2、系统显示使用该餐桌的所有预约和未预约登记
3、如果存在预约或未预约登记处于用餐状态,接待员确认该预约或未预约登记已经离开
4、系统对此进行记录并更新显示器,将顾客标记为已离开
用例名:
Recordwalk-in(记录未预约登记)
角色HeadWaiter
描述:
1、侍者领班执行“显示预约”用例
2、侍者领班输入时间、用餐人数和分配给顾客的餐桌
3、系统记录并显示新预约
用例名:
Recordarrival(记录到达)
角色HeadWaiter
描述:
1、侍者领班执行“显示预约”用例
2、侍者领班确认一个选定的预约已经到达
3、系统对此进行记录并更新显示,将顾客标记为已到达
图4.1系统用例图
4.2类图
在类图中类用矩形框来表示,它的属性和操作分别列在分格中。
如不需要表达详细信息时,分格可以省略。
一个类可能出现在好几个图中。
同一个类的属性和操作可只在一种图中列出,在其它图中可省略。
关系用类框之间的连线来表示,不同的关系用连线上和连线端头处的修饰符来区别。
图4.2订餐系统业务类图
4.3活动图
UML中的活动图用于描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动和工作流程情况。
活动图实际上就是用来为用例的事件流建模的工具。
图4.3-1记录预约活动图
图4.3-2记录到达活动
图4.3-3记录离开
图4.3-4修改会员信息活动图
4.4顺序图
顺序图表示了对象之间传送消息的时间顺序。
每一个类元角色用一条生命线来表示,即用垂直线代表整个交互过程中对象的生命期。
生命线之间的箭头连线代表消息。
顺序图可以用来进行一个场景说明——即一个事务的历史过程。
顺序图的一个用途是用来表示用例中的行为顺序。
当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件。
4.4.1取消订单
取消订单功能,使用户可以取消已经下过的订单。
图4.4-1取消订单顺序图
4.4.2删除会员
删除会员功能,使餐厅可以注销某些用户。
图4.4-2删除会员顺序图
4.4.3显示订单
显示订单功能,根据用户设定的时间显示的餐桌的信息。
图4.4-3显示订单顺序图
4.4.4显示会员信息
显示会员信息功能,显示选定的会员信息,以供管理员查看并作为修改的依据。
图4.4-4显示会员信息顺序图
4.4.5修改订单
修改订单的功能为用户提供修改预约的机会,比如更换时间、换桌等。
图4.4-5修改订单顺序图
4.4.6修改会员信息
修改会员信息提供给管理员以修改会员信息的功能,比图联系方式、用户姓名、信誉度等。
图4.4-6修改会员信息顺序图
4.4.7记录到达
记录到达功能会记录用户的到达情况,同时餐桌状态的显示跟它有一定的关系。
图4.4-7记录到达顺序图
4.4.8记录订单
记录订单为接待员提供记录订单的功能,但接待员接到客户的电话预约时,会使用此功能来记录客户的预约,包括吃饭时间、吃饭桌号和预约人数等。
图4.4-8记录订单顺序图
4.4.9记录离开
记录离开功能,但用餐者吃完饭后离开时记录此事件,同时修改桌子的状态为没有使用。
图4.4-9记录离开顺序图
4.4.10记录未订餐者
记录未订餐者。
对于没有预定的用餐者使用此功能来记录用餐信息。
图4.4-10记录未订餐者顺序图
4.4.11会员注册
会员注册功能。
可以增加新的会员。
图4.4-11会员注册顺序图
4.4.12定时提醒
定时提醒功能。
但订单时间已到但用餐者还没有到达时就会体现本功能的作用。
系统开辟一个线程单独来完成本功能,每隔一秒检查一下系统时间,如果到达用户设置的提醒时间,就从数据库中读取应当到达却未到达的订单信息显示给接待员,使其可以通过提供的联系方式提醒客户。
图4.4-12定时提醒顺序图
4.5状态机图
4.5.1记录到达的状态机图
图4.5-1记录到达的状态机图
4.5.2修改会员信息的状态机图
图4.5-2修改会员信息的状态机图
4.5.3记录离开的状态机图
图4.5-3记录离开的状态机图
4.6通信图
通信图和顺序图都可以表示各对象间的交互关系,但它们的侧重点不同。
顺序图用消息的几何排列关系来表达消息的时间顺序,各角色之间的相关关系是隐含的。
通信图用各个角色的几何排列图形来表示角色之间的关系,并用消息来说明这些关系。
在实际中可以根据需要选用这两种图。
一个通信图描述了系统中为实现某些服务所涉及的对象扮演的角色及其相互之间的交互。
通信图着重于有协作关系的对象之间的交互和链接(指对象实例之间的物理或概念上的链接,一个链接是某关联的一个实例)。
它可用于图示系统中的操作执行、用例执行或一个简单的交互场景。
通信图描述了对象及其之间的链接,还描述了链接的对象之间如何发送消息。
4.6.1取消订单
取消订单功能,使用户可以取消已经下过的订单。
图4.6.1取消订单通信图
4.6.2显示会员信息
显示会员信息功能,显示选定的会员信息,以供管理员查看并作为修改的依据。
图4.6.2删除会员通信图
4.6.3修改订单
修改订单的功能为用户提供修改预约的机会,比如更换时间、换桌等。
图4.6.3显示订单通信图
4.6.4修改会员信息
修改会员信息提供给管理员以修改会员信息的功能,比图联系方式、用户姓名、信誉度等。
(略)
图4.6.4修改会员信息通信图
4.6.5记录到达
记录到达功能会记录用户的到达情况,同时餐桌状态的显示跟它有一定的关系。
图4.6.5记录到达功通信图
4.6.6记录订单
记录订单为接待员提供记录订单的功能,但接待员接到客户的电话预约时,会使用此功能来记录客户的预约,包括吃饭时间、吃饭桌号和预约人数等。
图4.6.6记录订单通信图
4.6.7记录离开
记录离开功能,但用餐者吃完饭后离开时记录此事件,同时修改桌子的状态为没有使用。
图4.6.7记录离开通信图
4.6.8记录未订餐者
记录未订餐者。
对于没有预定的用餐者使用此功能来记录用餐信息。
图4.6.8记录未订餐者通信图
4.6.9会员注册
会员注册功能。
可以增加新的会员。
图4.6.9会员注册通信图
4.6.10定时提醒
定时提醒功能
图4.6.10定时提醒通信图
4.7构件图
在UML中对一个系统的构件和构件图建模就是在物理结构上建模。
每一个构件图只是系统静态视图的某一个图形表示,描述系统的某一个侧面。
也就是说,任何一个构件图都不必面面俱到,试图全面地描述系统的整个面貌,系统中所有的构件图合起来才能描述系统的完整静态视图。
图4.7构件图
4.8部署图
部署视图表示运行时的计算资源(如计算机及它们之间的连接)的物理布置。
这些运行资源被称作节点。
在运行时,节点包含构件和对象。
构件和对象的分配可以是静态的,它们也可以在节点间迁移。
如果含有依赖关系的构件实例放置在不同节点上,部署视图可以展示出执行过程中的瓶颈。
节点是某些计算资源的物理对象,包括计算机、外部设备等。
节点可被看作类型,也可看作实例。
节点与节点之间是通过物理连接发生关联,以便从硬件方面保证系统各节点之间的协同运行。
餐厅订餐系统的部署图描述如下:
节点:
普通PC机和移动PC机作为终端设备,1台应用程序服务器,和多台Web服务器。
节点属性
该系统各节点计算机的性能指标
节点之间联系
客户机节点是简单通信联系,采用TCP/IP通信协议;客户通过Internet网与Web服务器相连接,利用浏览器进行查询。
图4.8餐厅订餐系统部署图
5.双向工程
5.1简单类、在类中添加属性和方法、类可见性设置。
修改属性、方法可见性,添加方法的参数。
publicclassWalkin
{
publicWalkin()
{
}
publicvoidwalkin()
{
}
publicvoidinsert()
{
}
publicvoidmodify()
{
}
publicvoiddelete()
{
}
publicvoidrecordLet()
{
}
publicvoidmain()
{
}
}
5.2类图中的关系:
泛化关系、关联关系(包括一对一关联、一对多关联、多对多关联、聚合关系、组合关系)、依赖关系、实现关系。
泛化关系:
PublicclassBooking
{
PrivateintBooking;
Privateinteateing;
Privateintleft;
PrivateintTableNumber;
PrivateDateeatDate;
PrivateinteatTime;
Privateintstate;
PublicBooking(){}
PublicgeteatTime(){}
PublicgeteatDate(){}
PublicgettableNumber(){}
Publicgetstate(){}
PublicsettableNumber(){}
PublicseteatDate(){}
PublicseteatTime(){}
Publicsetstsate(){}
Publiccancel(){}
PublicrecordLet(){}
}
publicclassWalkinextendsBooking
{
publicWalkin(){}
publicvoidwalkin(){}
publicvoidinsert(){}
publicvoidmodify(){}
publicvoiddelete(){}
publicvoidrecordLet(){}
publicvoidmain(){}
}
单向关联:
PublicclassReataurant
{
PrivateintBooking;
Privateinteating;
Privateintleft;
Publicvoidrestaurant(){}
Publicvoidmain(){}
PublicvoidgetBooking(){}
PublicvoidsearchEmptyTable(){}
Publicvoidcancel(){}
PublicvoidmakeRastaurant(){}
PublicvoidmodifyBooking(){}
PublicvoidgetNotArrival(){}
PublicvoidgetRestaurant(){}
}
PublicclassSystemInfo
{
PrivateArraysRemindTimes;
PrivatebooleanNeedRemind;
PublicRestauranttheRestaurant;
PublicvoidSystemInfo(){}
}
一对多关联:
PublicclassMenu
{
PrivateStringName;
PrivateStringDesciption;
PublicOrderListtheOrderList;
PublicvoidMenu(){}
PublicvoidgetMenu(){}
PublicvoidgetDesciption(){}
}
PublicclassOrderList
{
PublicMenu[]Menu;
PublicvoidOrderList(){}
PublicvoidGetOrderList(){}
Publicvoidmain(){}
}
6.总结
订餐系统颠覆了传统餐饮业的经营模式,为用户节约了时间,缩短了距离,带来了方便,提高了效率,具有较高的实用价值。
经过本次课程设计,进一步加深了我对UML语言的认识,也学会了利用面向对象的方法去看待实际问题,熟悉掌握了基于UML的面向对象分析与设计方法,以及对Rose建模工具的运用,这对以后的就业工作是很有帮助的。
在此也非常感谢我的同学们,在我的设计中,他们给予了我极大的帮助。
使我对整个设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我有了很大收获。
在整个过程中提出了许多宝贵意见,并给我解决了一些专业性问题。
在课程设计过程中经常给我提出许多关键性的问题,使我受益匪浅。