汽车租赁系统UML建模与设计说明书Word格式文档下载.docx
《汽车租赁系统UML建模与设计说明书Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《汽车租赁系统UML建模与设计说明书Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
1.2业务建模
系统业务用例图如图2所示。
图2系统业务用例图
1.3业务规则建模
汽车租赁系统的顺序图主要有如下4个:
(1)管理人员开展工作的顺序图。
(2)客户预订车辆的顺序图。
(3)客户取车顺序图;
(4)客户还车顺序图;
1.3.1管理人员开展工作顺序图
图3管理人员开展工作的顺序图
顺序图说明:
(1)viewRecord():
查看记录函数。
(2)viewWorkInfo():
查看工作记录函数。
(3)calculate():
计算工作人员的任务完成率的函数。
管理人员既可以查看汽车的租赁记录,又可以查看普通工作人员的工作记录和任务完成情况。
1.3.2客户预订车辆的顺序图
图4客户预订车辆的顺序图
(1)fillOrder():
填写租赁申请表的函数。
(2)checkRquest():
查看申请的函数。
(3)check():
检查历史记录的函数。
(4)InServiced():
判断车辆状态的函数。
(5)allow():
允许客户租赁车辆的函数。
(6)isHandled():
表明请求已处理。
(7)notify():
通知客户前来取车的函数。
客户要租赁车辆,首先必须填写申请表。
公司员工负责处理申请表,他们根据客户租赁的历史记录以及客户申请的车辆的状态决定是否接受客户请求。
如果他们两个条件都满足,那么将接受请求并且为客户预留该车;
否则就拒绝请求,处理过的申请表的状态都设为已处理,如果接受用户的租赁请求,首先为该客户添加一条记录,然后通知客户前来取车。
1.3.3客户取车顺序图
图5客户取车顺序图
顺序图说明:
(1)show_notice():
向工作人员出示取车通知。
(2)check():
工作人员检查取车通知的合法性。
(3)pay():
客户付款。
(4)fillWorkRecord():
公司员工创建工作记录。
(5)update_carstatus():
更新汽车状态信息。
客户在约定的时间到前台取车,公司员工首先验证取车通知,验证通过后,将要求客户付款,然后填写一份工作记录,同时修改车辆状态。
1.3.4客户还车顺序图
图6客户还车顺序图
(1)check_carstatus():
检查车辆状况的函数。
(2)fillRecord():
填写车辆检查记录的函数。
(3)notify_payment():
通知客户支付租赁款项的函数。
(4)update_carstatus():
更新车辆信息的函数。
(5)end():
结束租赁交易的函数。
(6)updateRecord():
更新工作记录的函数。
客户在规定时间将车返还给租赁商店,技术人员将对车辆进行检修以确定是否有损坏,并且填写一份服务记录,公司职员将根据记录确定客户应付的款项。
与客户交易完成后,需要修改车辆的状态、客户记录以及工作记录等。
1.3.5客户预订车辆的协作图
图7客户预订车辆的协作图
协作图说明:
申请表类中填写租赁申请表的函数。
(2)checkRequest():
普通公司员工类中查看申请的函数。
客户租赁历史记录类中的检查历史记录的函数。
车辆类中的判断车辆状态的函数。
(5)Allow():
判断预订表单是否被处理的函数。
1.3.6客户取车协作图
图8客户取车协作图
(1)show_notify():
(3)take_car():
客户取车。
1.3.7客户还车协作图
图9客户还车协作图
(1)return_car():
客户还车的函数。
(2)check_carstatus():
(3)fillRecord():
(5)show_payment():
通知客户相关费用。
(6)pay_money():
(7)end():
(8)updateRecord():
1.4业务过程建模
1.4.1系统的状态图
由于系统的几个对象,如客户预订申请表类、客户租赁历史记录类、工作记录类、维修记录类和车辆类的状态都很少,不需要用创建状态图,所以此处将建立整个系统的状态图,如图10所示。
图10系统状态图
状态图说明:
(1)customersendtherequest:
客户提出租赁申请。
(2)employeehandletherequest:
公司员工处理申请请求。
(3)searchrelatinginformation:
查找租赁的相关历史记录。
(4)accepttherequest:
接受租赁请求。
(5)storeinformation:
存储交易信息。
(6)customergetthecar:
(7)customerreturnthecar:
客户还车。
(8)checkthecar:
检查车辆状况。
(9)denytherequest:
拒绝租赁请求。
(10)endthebusiness:
结束交易。
从客户填写预订申请表开始,租赁商收到客户的申请并对其进行处理。
根据客户的历史记录以及车辆的状态确定是否接受客户请求。
如果某个条件不符合,就向客户发送一个拒绝通知,交易结束;
如果条件都符合,则接受该请求并保存相关数据。
客户在约定时间来取车,取车需出示相关通知。
车辆使用以后,客户必须在规定的时间将车返还给租赁商。
还车后技术人员还会对车辆进行检查,根据车辆状况收取相应费用,如果车辆破损还要收取罚金。
最后,交易结束。
1.4.2系统的活动图
汽车租赁系统的活动图如图11所示。
要注意的一点就是,租赁者填写租赁申请表和公司员工处理申请可以并发执行。
图11系统的活动图
活动图说明:
(1)customerrequest:
客户填写租赁申请。
(2)storetherequest:
存储申请表。
(3)employeechecktherequest:
公司员工查看租赁申请。
(4)handlenewrequest:
处理新的租赁申请。
(5)checkthecustomer’srecord:
查看客户租赁的历史记录。
(6)denyrequest:
(7)thecarisavailable:
车辆为可用。
(8)sendthemessage:
发送取车通知。
(9)customeracquirethecar:
(10)customergivethecarback:
2系统分析
2.1概念用例
2.1.1客户参与的用例图
图12客户参与的用例图
用例图说明:
(1)reservethecar:
预订车辆的用例。
(2)byphone:
预订用例。
这是从预订用例扩展出来的一种预订方式。
(3)ontheweb:
网络预订用例。
这是从预订用例扩展出来的另一种预订方式,用户可以在公司主页上提交预订申请。
(4)filltheorderform:
填写预订申请表的用例。
如果客户在网上预订,也必须完成预订申请表。
(5)getthecar:
取车用例。
(6)returnthecar:
还车用例。
(7)returnwithfine:
交纳罚金用例。
客户如果不能够按时还车将要交纳罚金。
2.1.2公司员工参与的用例图
图13公司员工参与的用例图
用例说明:
(1)systemlogin:
系统登录用例。
(2)reserveprocess:
预订处理用例。
(3)querycustomerorderrecord:
查询客户预订历史记录用例。
工作人员可以把客户的历史记录作为判断是否接受客户请求的一个依据。
(4)refuserequest:
拒绝预订请求用例。
工作人员可以根据情况拒绝客户的预订请求,例如客户历史记录不良,没有所需车辆等。
(5)acceptrequest:
接受预订请求用例。
工作人员在核对客户情况及车辆状态后,可以接受客户的请求。
(6)givethecartocustomer:
将预订的车交付客户用例。
(7)checkthecar:
检查车辆状况用例。
技术人员可以对车辆进行检查,以确定车辆是否被损坏。
(8)endthebusiness:
结束租赁业务用例。
2.2分析类模型
系统中各实体类、边界类、控制类之间的交互如图14、15、16所示。
图14查询的分析类类图
图15编辑基本信息的分析类类图
图16业务处理的分析类类图
2.3组件模型
汽车租赁系统是建立在一个含有过去租赁记录、汽车信息、服务记录以及客户和员工信息的中央数据库上。
系统组件图如图17所示,包括租赁程序、员工记录、服务记录、工作记录和汽车记录5个组件。
图17汽车租赁系统的组件图
2.4软件构架和框架建模
本系统采用CS架构的三层体系结构,如图18所示,应用JAVA语言辅以SQLServer数据库进行开发。
图18系统CS三层架构图
3系统设计
3.1设计类模型
类图的设计是系统设计最核心的部分,明确基本类以及基本类之间的相互的关系有助于开发的后续设计。
此处将详细介绍汽车租赁系统的类图设计。
3.1.1客户和公司员工类
系统中客户和公司员工类图如图19所示。
另外,这里省略了一些普通方法,例如get和set方法。
图19客户和公司员工类图
类图说明:
(1)Person类是所有类的父类,它包含4个属性:
(name),号(ID),地址(address)和(phoneNO)。
它包含的方法都是用来设置和获取这些属性值。
(2)Customer类是包含客户信息的类,除了继承父类的属性和方法,它包括车辆类型(CarType)和驾驶证号(licenseNo)等属性。
(3)Employee类是包含员工信息的类,其中包含了员工的聘