汽车租赁系统 UML建模与设计参考模板_第1页
汽车租赁系统 UML建模与设计参考模板_第2页
汽车租赁系统 UML建模与设计参考模板_第3页
汽车租赁系统 UML建模与设计参考模板_第4页
汽车租赁系统 UML建模与设计参考模板_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 / 22目录目录1 需求分析需求分析.31.1 需求获取 .31.2 业务建模 .31.3 业务规则建模 .41.3.1管理人员开展工作顺序图.41.3.2客户预订车辆的顺序图.51.3.3客户取车顺序图.61.3.4客户还车顺序图.71.3.5 客户预订车辆的协作图.81.3.6客户取车协作图.81.3.7客户还车协作图.91.4 业务过程建模 .91.4.1系统的状态图.91.4.2系统的活动图.102 系统分析系统分析.122.1 概念用例 .122.1.1客户参与的用例图.122.1.2公司员工参与的用例图.132.2 分析类模型 .132.3 组件模型 .152.4 软件构架和框

2、架建模.153 系统设计系统设计.163.1 设计类模型 .163.1.1客户和公司员工类.163.1.2一些其他的类.173.2 接口设计模型 .183.3 包设计模型 .193.4 部署模型 .191 需求分析需求分析这里介绍一个简单汽车租赁系统的需求分析。1.1 需求获取需求获取本系统的功能性需求包括以下几个方面:(1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆;(2)能够保存客户的预订申请单;(3)能够保存客户的历史记录;(4)工作人员可以处理客户申请;(5)技术人员可以保存对车辆的检修结果;为了满足上述需求,则系统主要包括以下几个模块:(1)基本数据维护模块。基本数据维护

3、模块提供了使用者录入、修改并维护基本数据的途径。例如,对客户的个人信息、租赁信息、车辆的基本信息等的录入和修改。(2)基本业务模块。基本业务模块中,客户可以填写汽车租赁申请表,工作人员负责处理这些表格。同时,技术人员还可以提交每辆车的状态,以便工作人员根据这些资料决定是否批准客户的请求。(3)数据库管理模块。在汽车租赁系统中,对所有客户、工作人员以及车辆的信息都要进行统一管理,车辆的租赁情况也要进行详细的登记。(4)信息查询模块。信息查询模块主要用于查询相关信息,例如工作人员查询车辆信息和客户信息等。图 1 所示表示汽车租赁系统的功能需求。 图 1 功能需求1.2 业务建模业务建模系统业务用例

4、图如图 2 所示。 uc 业 业 业 业customersystem managementrent carreturn caremployee图 2 系统业务用例图1.3 业务规则建模业务规则建模汽车租赁系统的顺序图主要有如下 4 个:(1)管理人员开展工作的顺序图。(2)客户预订车辆的顺序图。(3)客户取车顺序图;(4)客户还车顺序图;1.3.1 管理人员开展工作顺序图管理人员开展工作顺序图 sd 业 业 业 业 业 业 业业 ManagertheRentRecord业WorkRecord业 CommonWorker1业 viewRecord()2业 viewWorkInfo()3业 cal

5、culate()4业 returnresult()图 3 管理人员开展工作的顺序图顺序图说明:(1)viewRecord():查看记录函数。(2)viewWorkInfo():查看工作记录函数。(3)calculate():计算工作人员的任务完成率的函数。管理人员既可以查看汽车的租赁记录,又可以查看普通工作人员的工作记录和任务完成情况。1.3.2 客户预订车辆的顺序图客户预订车辆的顺序图 sd 业 业 业 业 业 业 业 业 业业 CustomertheRequest业RequestOrdertheCar:CartheCustomerRecord业CustomerRecord业 CommonW

6、orker1业 fillOrder()2业 checkRequest()3业 check()4业 noproblem()5业 InServiced()6业 ok()7业 create new customerrecord()8业 allow()9业 isHandled()10业 notify()图 4 客户预订车辆的顺序图顺序图说明:(1)fillOrder():填写租赁申请表的函数。(2)checkRquest():查看申请的函数。(3)check():检查历史记录的函数。(4)InServiced():判断车辆状态的函数。(5)allow():允许客户租赁车辆的函数。(6)isHandle

7、d():表明请求已处理。(7)notify():通知客户前来取车的函数。客户要租赁车辆,首先必须填写申请表。公司员工负责处理申请表,他们根据客户租赁的历史记录以及客户申请的车辆的状态决定是否接受客户请求。如果他们两个条件都满足,那么将接受请求并且为客户预留该车;否则就拒绝请求,处理过的申请表的状态都设为已处理,如果接受用户的租赁请求,首先为该客户添加一条记录,然后通知客户前来取车。1.3.3 客户取车顺序图客户取车顺序图 sd 业 业 业 业 业 业 业业 CustomertheRequestOrder业 RequestOrdertheWorkRecord业WorkRecordtheCar业

8、Car业 CommonWorker1业 show_notice()2业 check()3业 ok()4业 pay()5业 fillWorkRecord()6业 update_carstatus()图 5 客户取车顺序图顺序图说明:(1)show_notice():向工作人员出示取车通知。(2)check():工作人员检查取车通知的合法性。(3)pay():客户付款。(4)fillWorkRecord():公司员工创建工作记录。(5)update_carstatus():更新汽车状态信息。客户在约定的时间到前台取车,公司员工首先验证取车通知,验证通过后,将要求客户付款,然后填写一份工作记录,同时

9、修改车辆状态。1.3.4 客户还车顺序图客户还车顺序图 sd 业 业 业 业 业 业 业业 Customer业 CommonWorker业 SkillWorkertheCar业 CartheServiceRecord业 ServiceRecordtheCustomerRecord业 CustomerRecordtheRentRecord业WorkRecord1业 returnback()2业 check_carstatus()3业 fillRecord()4业 return()5业 notify_payment()6业 pay()7业 update_carstatus()8业 end()9业

10、updateRecord()图 6 客户还车顺序图顺序图说明:(1)check_carstatus():检查车辆状况的函数。(2)fillRecord():填写车辆检查记录的函数。(3)notify_payment():通知客户支付租赁款项的函数。(4)update_carstatus():更新车辆信息的函数。(5)end():结束租赁交易的函数。(6)updateRecord():更新工作记录的函数。客户在规定时间将车返还给租赁商店,技术人员将对车辆进行检修以确定是否有损坏,并且填写一份服务记录,公司职员将根据记录确定客户应付的款项。与客户交易完成后,需要修改车辆的状态、客户记录以及工作记录

11、等。1.3.5 客户预订车辆的协作图客户预订车辆的协作图theCustomer业CustomertheRequestOrder业RequestOrdertheCommonWorker业CommonWorkertheCar业CartheCustomerRecord业CustomerRecord1: fillOrder业 业2: checkRequest业 业3: check业 业4: InServiced业 业5: Allow业 业 /Deny业 业6: isHandled业 业7: notify业 业8: newCustomerRecord图 7 客户预订车辆的协作图协作图说明:(1)fill

12、Order():申请表类中填写租赁申请表的函数。(2)checkRequest():普通公司员工类中查看申请的函数。(3)check():客户租赁历史记录类中的检查历史记录的函数。(4)InServiced():车辆类中的判断车辆状态的函数。(5)Allow():允许客户租赁车辆的函数。(6)isHandled():判断预订表单是否被处理的函数。(7)notify():通知客户前来取车的函数。1.3.6 客户取车协作图客户取车协作图theCustomer业CustomertheRequestOrder业RequestOrdertheCommonWorker业CommonWorkertheCar

13、业CartheWorkRecord业WorkRecord1: show_notify业 业2: check业 业3: validate4: take_car业 业5: fillWorkRecord()6: update_carstatus图 8 客户取车协作图协作图说明:(1)show_notify():向工作人员出示取车通知。(2)check():工作人员检查取车通知的合法性。(3)take_car():客户取车。(4)fillWorkRecord():公司员工创建工作记录。(5)update_carstatus():更新汽车状态信息。1.3.7 客户还车协作图客户还车协作图theCusto

14、mer业CustomertheCar业CartheWorkRecord业WorkRecordtheCommonWorker业CommonWorkertheCustomerRecord业CustomerRecordtheServiceOrder业ServiceRecord1: return_car()2: check_carstatus()3: fillRecord()4: update_carstatus()5: show_payment()6: pay_money()7: end()8: updateRecord()图 9 客户还车协作图协作图说明:(1)return_car():客户还车的

15、函数。(2)check_carstatus():检查车辆状况的函数。(3)fillRecord():填写车辆检查记录的函数。(4)update_carstatus():更新车辆信息的函数。(5)show_payment():通知客户相关费用。(6)pay_money():客户付款。(7)end():结束租赁交易的函数。(8)updateRecord():更新工作记录的函数。1.4 业务过程建模业务过程建模1.4.1 系统的状态图系统的状态图由于系统的几个对象,如客户预订申请表类、客户租赁历史记录类、工作记录类、维修记录类和车辆类的状态都很少,不需要用创建状态图,所以此处将建立整个系统的状态图,

16、如图 10 所示。图 10 系统状态图状态图说明:(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 th

17、e request:拒绝租赁请求。(10) end the business:结束交易。从客户填写预订申请表开始,租赁商收到客户的申请并对其进行处理。根据客户的历史记录以及车辆的状态确定是否接受客户请求。如果某个条件不符合,就向客户发送一个拒绝通知,交易结束;如果条件都符合,则接受该请求并保存相关数据。客户在约定时间内来取车,取车需出示相关通知。车辆使用以后,客户必须在规定的时间将车返还给租赁商。还车后技术人员还会对车辆进行检查,根据车辆状况收取相应费用,如果车辆破损还要收取罚金。最后,交易结束。1.4.2 系统的活动图系统的活动图汽车租赁系统的活动图如图 11 所示。要注意的一点就是,租赁者

18、填写租赁申请表和公司员工处理申请可以并发执行。图 11 系统的活动图活动图说明:(1)customer request:客户填写租赁申请。(2)store the request:存储申请表。(3)employee check the request:公司员工查看租赁申请。(4)handle new request:处理新的租赁申请。(5)check the customers record:查看客户租赁的历史记录。(6)deny request:拒绝租赁请求。(7)the car is available:车辆为可用。(8)send the message:发送取车通知。(9)custome

19、r acquire the car:客户取车。(10) customer give the car back:客户还车。2 系统分析系统分析2.1 概念用例概念用例2.1.1 客户参与的用例图客户参与的用例图图 12 客户参与的用例图用例图说明:(1)reserve the car:预订车辆的用例。(2)by phone:电话预订用例。这是从预订用例扩展出来的一种预订方式。(3)on the web:网络预订用例。这是从预订用例扩展出来的另一种预订方式,用户可以在公司主页上提交预订申请。(4)fill the order form:填写预订申请表的用例。如果客户在网上预订,也必须完成预订申请表

20、。(5)get the car:取车用例。(6)return the car:还车用例。(7)return with fine:交纳罚金用例。客户如果不能够按时还车将要交纳罚金。2.1.2 公司员工参与的用例图公司员工参与的用例图图 13 公司员工参与的用例图用例说明:(1)system login:系统登录用例。(2)reserve process:预订处理用例。(3)query customer order record:查询客户预订历史记录用例。工作人员可以把客户的历史记录作为判断是否接受客户请求的一个依据。(4)refuse request:拒绝预订请求用例。工作人员可以根据情况拒绝客

21、户的预订请求,例如客户历史记录不良,没有所需车辆等。(5)accept request:接受预订请求用例。工作人员在核对客户情况及车辆状态后,可以接受客户的请求。(6)give the car to customer:将预订的车交付客户用例。(7)check the car:检查车辆状况用例。技术人员可以对车辆进行检查,以确定车辆是否被损坏。(8)end the business:结束租赁业务用例。2.2 分析类模型分析类模型系统中各实体类、边界类、控制类之间的交互如图 14、15、16 所示。 class 业 业 业 业 业employee业 业 业CustomerRecordWorkRec

22、ordServiceRecordCarRecord业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业EmployeeRecord图 14 查询的分析类类图 class 业 业 业 业 业 2employee业 业 业CustomerRecordWorkRecordServiceRecordCarRecord业 业 业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业

23、业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业业 业 业 业 业 业 业 业EmployeeRecord业 业 业 业业 业 业 业业 业 业 业业 业 业 业 业 业 业图 15 编辑基本信息的分析类类图 class 业 业 业 业 业 3employee业 业 业业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业 业 业 业业 业 业 业业 业 业 业 业 业 业 业 业 业 业业 业 业 业 业RequestOrderCarRecordCustomerRecord业

24、业 业 业 业ServiceRecord业 业 业 业业 业 业 业 业 业业 业 业 业WorkRecord图 16 业务处理的分析类类图2.3 组件模型组件模型汽车租赁系统是建立在一个含有过去租赁记录、汽车信息、服务记录以及客户和员工信息的中央数据库上。系统组件图如图 17 所示,包括租赁程序、员工记录、服务记录、工作记录和汽车记录 5 个组件。图 17 汽车租赁系统的组件图2.4 软件构架和框架建模软件构架和框架建模本系统采用 CS 架构的三层体系结构,如图 18 所示,应用 JAVA 语言辅以 SQL Server 数据库进行开发。图 18 系统 CS 三层架构图数据服务层功能层表示层

25、业务服务层用户服务层ServerClient3 系统设计系统设计3.1 设计类模型设计类模型类图的设计是系统设计最核心的部分,明确基本类以及基本类之间的相互的关系有助于开发的后续设计。此处将详细介绍汽车租赁系统的类图设计。3.1.1 客户和公司员工类客户和公司员工类系统中客户和公司员工类图如图 19 所示。另外,这里省略了一些普通方法,例如 get 和 set 方法。 class 业 业Person- address: String- ID: String- name: String- phoneNo: String+ getAddress() : String+ getID() : Stri

26、ng+ getName() : String+ Person() : void+ setAddress() : void+ setID() : void+ setName() : voidCustomer- CarType: String- licenseNo: String+ Customer() : String+ print() : StringEmployee- dateHired: String- Type: int- WorkID: String+ Employee() : StringManager- manager: boolean+ Manager() : String+ v

27、iewWorkInfo() : StringCommonWorker- commissionRate: int+ calculate() : float+ checkRequest() : boolean+ viewWorkInfo() : StringSkillWorker- qualifications: String- skills: String+ SkillWorker() : String图 19 客户和公司员工类图类图说明:(1)Person 类是所有类的父类,它包含 4 个属性:姓名(name) ,身份证号(ID) ,地址(address)和电话号码(phoneNO) 。它包含

28、的方法都是用来设置和获取这些属性值。(2)Customer 类是包含客户信息的类,除了继承父类的属性和方法,它包括车辆类型(CarType)和驾驶证号(licenseNo)等属性。(3)Employee 类是包含员工信息的类,其中包含了员工的聘用日期等信息。同时,它还是Manager、CommonWorker、SkillWorker3个类的父类。(4)Manager 类是管理人员的类,管理人员可以查看工作人员的工作记录。CommonWorker 类是普通工作人员类,commissionRate 属性是该员工完成任务率;方法 calculate()用来计算该工作人员完成的任务率;checkReq

29、uest()用来查询是否有没处理的申请单。SkillWorker 类是技术人员的类,skills 属性代表该员工的技术特长,而 qualifications 属性则表示他的技术职称。3.1.2 一些其他的类一些其他的类其他的类图如图 20 和图 21 所示。 class 业 业CustomerRecord- CarNumber: String- CarType: String- customerID: String- IsFinish: String- rentDate: String+ check() : String+ end() : voidCar- CarNumber: String-

30、 condition: String- status: String- Type: String+ InServiced() : boolean+ update_carstatus() : voidServiceRecord- progressReport: String- serviceHistory: String+ fillRecord() : void图 20 其他类图 1 class 业 业RequestOrder- CarType: String- IsAllow: String- RentDate: String+ Allow() : void+ check() : boolea

31、n+ fillOrder() : void+ isHandled() : voidWorkRecord- CarNumber: String- CarType: String- CommonWorkID: String- CustomerID: String- money: float- RentDate: String- ReturnDate: String- SkillWorkID: String+ fillWorkRecord() : void+ updateRecord() : void+ viewRecord() : String图 21 其他类图 2类图说明:(1)Customer

32、Record 类表示客户记录。customerID 是客户的身份证号码,rentDate 是租车日期,CarType 是所组车辆的车型,CarNumber 是该车的车牌号码,IsFinish 代表该交易是否结束。check()用来得到该客户的记录,end()用来结束该交易。(2)Car 类代表车辆记录。Type 是该车的车型,CarNumber 是车牌号码,status 是指该车是否被预订、正在使用中或空闲状态,condition 是指该车的状态。InServiced()用来判断该车是否空闲,update_carstatus()用来修改车辆所处的状态。(3)ServiceRecord 类表示每

33、一次租赁服务的记录。serviceHistory 是服务的历史记录,progressReport 是指该过程中的报告。fillRecord()用于填写表格。(4)RequestOrder 类表示的是填写客户申请资料的表格。CarType 表示客户申请的车型,RentDate是租车的时间,IsAllow 属性表示该客户的申请是否得到批准。Allow()用来接受客户的请求,fillOrder()是指客户填写表格,check()用来检查是否存在这个申请,isHandled()设置该申请已被处理。(5)WorkRecord 类是职员的工作记录。属性包括交易中涉及的员工、客户、车辆以及租赁信息。fill

34、WorkRecord()用来填写这份记录,viewRecord()用来查看这份记录,updateRecord()用来修改这份记录。3.2 接口设计模型接口设计模型类不是单独一个模块,各个类之间是存在联系的,本系统中不存在接口的实现。汽车租赁系统各个类之间的联系如图 22 所示。 class 业 业 2WorkRecord- CarNumber: String- CarType: String- CommonWorkID: String- CustomerID: String- money: float- RentDate: String- ReturnDate: String- SkillWo

35、rkID: String+ fillWorkRecord() : void+ updateRecord() : void+ viewRecord() : StringCar- CarNumber: String- condition: String- status: String- Type: String+ InServiced() : boolean+ update_carstatus() : voidEmployeeManager- manager: boolean+ Manager() : String+ viewWorkInfo() : StringEmployeeCommonWorker- commissionRate: int+ calculate() : float+ checkRequest() : boolean+ viewWorkInfo() : StringEmployeeSkillWorker- qualifications: String- skills: String+ SkillWorker() : StringCustomerRecord- CarNumber: String

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论