>end the bussinesscheck the car8公司员工参与的用例图
【用例图说明】
(1) system login:系统登陆用例。 (2) reserve process:预定处理用例。
(3) Query customer order record:查询客户预定历史记录用例。工作人员可以把客户的
历史记录作为判断是否接受客户请求的一个依据。
(4) Refuse request:拒绝预定请求用例。工作人员可以根据情况拒绝客户的预定请求,
例如客户历史记录不良,没有所需车辆等。
(5) Accept request:接受预定请求用例。工作人员在核对客户情况及车辆状态后,可以
接受客户的请求。
(6) Give the car to customer:将预定的车交给客户用例。
(7) Check the car:检查车辆状况用例。技术人员可以对车辆进行检查,以确定车辆是否
被损坏。
(8) End the business:结束租赁业务用例。
系统的时序图
汽车租赁系统的时序图主要有如下4个。 (1) 管理人员开展工作的时序图。 (2) 客户预定车辆的时序图。 (3) 客户取车时序图。 (4) 客户还车时序图。
1、 管理人员开展工作的时序图
精选
theManager: ManagertheRentRecord:WorkRecordtheEmployee:Common WorkerviewRecord()viewWorkRecord()calculate()return result
9管理人员开展工作的时序图
【时序图说明】
(1) viewRecord():查看记录函数。 (2) viewWorkInfo():查看工作记录函数。 (3) calculate():计算工作人员的任务完成率的函数。
管理人员既可以查看汽车的租赁记录,又可以查看普通工作人员的工作记录和任务完成情况。
2、 客户预定车辆的时序图
theCudyomrt: Customerthe Request :Request OrdertheCustomerRecord:CustomerRecordtheCommonWorker: CommonWorkerthe Car:carfillOrder()checkRequest()check()no problemokcreate new customer recordAllow()nktify()isHandle()
10客户预定车辆时序图
精选
【时序图说明】 (1) fillOrder():填写租赁申请表的函数。 (2) checkRequest():查看申请的函数。 (3) check():检查历史记录的函数。 (4) Inserviced():判断车辆状态的函数。 (5) Allow():允许客户租赁车辆的函数。 (6) Notify():通知客户前来取车的函数。
客户要租赁车辆,首先必须填写申请表。公司员工负责处理申请表,他们根据客户租赁的历史记录以及客户申请的车辆的状态决定是否接受客户请求。如果两个条件都满足,那么将接受请求并且为客户预留该车;否则就拒绝请求,处理过的申请表的状态都设为已处理。如果接受用户的租赁请求,首先为该客户添加一条记录,然后通知客户前来取车。 3、 客户取车时序图
theCustomer: CustomertheRequestOrder:RequestOrdertheCommonWorker:CommonWorkertheWorkRequest:WorkRequesttheCar:carshow_notice()check()okpay()fillWorkRecord()update_carstatus()
11客户取车时序图
【时序图说明】
(1) Show-notice():向工作人员出示取车通知。 (2) check():工作人员取车通知的合法性。 (3) pay():客户付款。 (4) fillWorkRecord():公司员工创建工作记录。 (5) update-carstatus():更新汽车状态信息。 客户在约定的时间到前台取车,公司员工首先验证取车通知,验证通过后,将要求客户付款,然后填写一份工作记录,同时修改车辆状态。 4、 客户还车时序图
精选
thecustomer:customerthecommonworkertheskillworker:skillworkerthe car:carthe servicerecord:servicerecordthe customerrecord:customerrecordtherentrecord:workrecordreturnbackcheck_carstatus()fillrecord()returnnotify_payment()pay()update_castutas()end()updaterecord()
12客户还车时序图
【时序图说明】
(1) check-carstatus():检查车辆状况的函数。 (2) fillRecord():填写车辆检查记录的函数。 (3) notify-payment():通知客户支付租赁款项的函数。 (4) update-carstatus():更新汽车信息的函数。 (5) end():结束交易的函数。 (6) updateRecord():更新工作记录的函数。 客户在规定时间将车返还给租赁商后,技术人员将对车进行检修以确定是否有损坏,并且填写一份服务记录,公司职员将根据记录确定客户应付的款项,与客户交易完成以后,需要修改车辆状态、客户记录以及工作记录等。 系统的协作图
汽车租赁系统的协作图主要有如下几个。 (1) 客户预定车辆的协作图。 (2) 客户取车协作图。 (3) 客户还车协作图。 1、 客户预定车辆的协作图
精选
6: is handled()1: fill order()the requestorder:requestorder7: notify() : customer2: checkrequest()5: allow()/deny()4: inserviced()3: check()8: new customer recordthe car :carthe customerrecodr:custormerrecord
13客户预定车辆协作图
【协作图说明】 (1) fillOrder():申请表类中填写租赁申请表的函数。 (2) checkRequest():普通公司员工类中查看申请的函数。 (3) check():客户租赁历史记录类中的检查历史记录的函数。 (4) InServiced():车辆类中的判断车辆状态的函数。 (5) Allow():允许客户租赁车辆的函数。 (6) isHandled():判断预定表单是否被处理的函数。 (7) notify():通知客户前来取车的函数。 2、 客户取车协作图
1: show notice()the requestorder:requestorder4: take_car() : customer2: check()3: validate5: fillworkerecord()6: update_carstatus()the car:carthe workrecord:workrecord
14客户取车协作图
【协作图说明】
(1) show-notice():向工作人员出示取车通知。 (2) check():工作人员检查取车通知的合法性。 (3) take-car():客户取车。 (4) fillWorkRecord():公司员工创建工作记录。 (5) update-carstatus():更新汽车状态信息。 3、 客户还车协作图
精选
3: fillrecord()4: update_carstatus()1: return_car()the car:car2: check-carstatus5: end() : customer6: updaterecord()the customerrecord:customerrecordthe serviceorder:servicerecordthe workrecord:work record
15客户还车协作图
【协作图说明】
(1) return-car():客户还车函数。 (2) check-carstatus():检查车辆状况的函数。 (3) fillRecord():填写车辆检查记录的函数。 (4) update-carstatus():更新汽车状态信息。 (5) end():结束交易的函数。 (6) updateRecord():更新工作记录的函数。 系统的状态图
由于系统的几个对象,如客户预定申请表类、客户租赁历史记录类、工作记录类、维修记录类和车辆类的状态都很少,不需要用创建状态图,所以将建立整个系统的状态图,如图16所示。
精选
end the businesscustomer send the requestdeny the requestemployee handle the requestsearch relating informationcheck the caraccept the requestcustomer return the carstore informationcustomer get the car
16系统状态图
【状态图说明】
(1) customer send the request:客户提出租赁申请。
(2) Employee handle the request:公司员工处理申请请求。 (3) Search relating information:查找租赁的相关历史记录。 (4) Accept the request:接受租赁请求。 (5) Store information:存储交易信息。 (6) Customer get the car:客户取车。 (7) Customer return the car:客户还车。 (8) Check the car:检查车辆状况。 (9) Deny the request:拒绝租赁请求。 (10) End the business:接受交易。 从客户填写的预定申请表开始,租赁商收到客户的申请并对其进行处理。根据客户的历史记录以及车辆的状态确定是否接受客户请求。如果某个条件不符合,就向客户发送一个拒绝通知,交易结束;如果条件都符合,则接受该请求并保存相关数据。客户在约定时间内来取车,取车需要出示相关通知。车辆使用以后,客户必须在规定的时间将车返还给租赁商。还车后,技术人员还会对车辆进行检查,根据车辆状况收取相应费用,如果车辆破损还要收取罚金。最后,交易结束。 系统的活动图
汽车租赁系统的活动图如图17所示
精选
customer requestemployee check the requestno new requeststore the requesthave new requesthandle new requestcheck the customer's recordthe history is badthe history is goodthe car is availabledeny requestsend the messageyescustomer acquire the carnocustomer give the car back
17系统活动图
【活动图说明】
(1) customer request:客户填写租赁申请。 (2) Store the request:存储申请表。
(3) Employee check the request:公司员工查看申请请求。 (4) Handle new request:处理新的租赁申请。
(5) Check the customer’s record:查看客户租赁的历史记录。 (6) Deny the request:拒绝租赁请求。 (7) The car is available:车辆为可用。 (8) Send the message:发送取车通知。 (9) Customer acquire the car:客户取车。 (10) Customer give the car back:客户还车。 汽车租赁活动的大致流程和系统的状态变化类似,需注意一点,租赁者填写租赁申请表和公司员工处理申请可以并发执行。
精选
类图的生成
1、 客户与公司员工类
系统中公司员工和客户类图如图18所示。
18客户与员工的类图
【类图说明】
(1) Person类是所有的父类,它包含4个属性:姓名(name),身份证号(ID),地址(address)
和电话号码(phoneNo)。它包含的方法都是用来设置和获取这些属性值。
(2) Customer类是包含客户信息的类,除了继承父类的属性和方法,它包括车辆类型
(CarType)和驾驶证号(licenseNo)等属性。
(3) Employee类是包含员工信息的类,其中包含了员工的聘用日期等信息。同时,它还
是Manager、CommonWorker、SkillWorker 3个类的父类。
(4) Manager类是管理人员的类,管理人员可以查看工作人员的工作记录。
CommonWorker类是普通工作人员的类,commissionRate属性是该员工任务完成率;方法calculate()用来计算该工作人员的完成的任务率;checkRequest()用来查询是否有没处理的申请单。SkillWorker类是技术人员的类,Skills属性代表该员工的技术特长,而qualification属性则表示他的技术职称。
各个类之间的关系
类不是一个单独的模块,各个类之间是存在联系。汽车租赁系统各个类之间的联系如图19所示。
精选
19各类之间的关系
【类图说明】
1) CustomerRecord类表示客户记录。CustomID是客户的身份证号码,rentDate是租车日
期,CarType是所租车辆的车型,CarNumber是车牌号码,IsFinish代表该交易是否结束。Check()用来得到该客户的记录,end()用来结束该交易。
2) Car类代表车辆记录。Type是该车的车型,CarNumber是车牌号码,status是指该车
是否被预定、正在使用中或空闲状态,condition是指该车的状态,InServiced()用来判断该车是否空闲,update-carstatus()用来修改车辆所处的状态。
3) ServiceOrder类表示每一次租赁服务的记录。serviceHistory是服务的历史记录,
progressReport是指该过程中的报告。fillRecord()用于填写表格。
4) RequestOrder类表示的是填写客户申请资料的表格。CarType表示客户申请的车型,
RentDate是租车的时间,IsAllow属性表示该客户的申请是否得到批准。Allow()用来接受客户的请求,fillOrder()是指客户填写表格,check()用来检查是否存在这个申请,isHandled()设置该申请已被处理。
5) WorkRecord 类是职员的工作记录。属性包括交易中涉及的员工、客户、车辆以及租
赁信息。FillworkRecord()用来填写这份记录,viewRecord()用来查看这份记录,updateRecord()用来修改这份记录。
从图中可以看出,工作人员(CommonWorker)可以查看所有客户(Customer)的租赁历史记录(CustomerRecord),可以处理几个客户的租赁申请(RequestOrder)。由于工作人员可以同时处理多个业务,那么他可以拥有多个服务记录(ServiceRcorder)和工作记录
精选
(WorkRecord)。技术人员(SkillWorker)需要同时维护多辆车(Car),每辆车也需要多个人员进行维护。经理(Manager)可以查看多个工作人员的工作记录。
系统的配置与实现 系统的组件图
汽车租赁系统是建立在一个含有过去租赁记录、汽车信息、服务记录以及客户和员工信息的中央数据库上。系统组件图如图20所示,包括租赁程序、员工记录、服务记录、工作记录和汽车记录5个组件。
rend applicationemployee recordcar recordwork recordservice record
20系统的组件图
系统的配置图
汽车租赁系统由5个节点构成,应用服务器负责整个系统的总体协作工作数据库负责数据管理;前台工作人员负责处理客户请求以及进行租赁交易;管理人员管理界面主要是用来对员工信息进行查询;而技术工人界面则用于技术人员查询、修改汽车的状态。系统配置图如图21所示。
data b...applicati...common workermanage...skill worker
21系统配置图
精选