汽车租赁系统 UML建模与设计[特选材料]_第1页
汽车租赁系统 UML建模与设计[特选材料]_第2页
汽车租赁系统 UML建模与设计[特选材料]_第3页
汽车租赁系统 UML建模与设计[特选材料]_第4页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、材料 a1 目录目录 1 需求分析需求分析.3 1.1 需求获取 .3 1.2 业务建模 .3 1.3 业务规则建模 .4 1.3.1管理人员开展工作顺序图.4 1.3.2客户预订车辆的顺序图.5 1.3.3客户取车顺序图.6 1.3.4客户还车顺序图.7 1.3.5 客户预订车辆的协作图.8 1.3.6客户取车协作图.8 1.3.7客户还车协作图.9 1.4 业务过程建模 .9 1.4.1系统的状态图.9 1.4.2系统的活动图.10 2 系统分析系统分析.12 2.1 概念用例 .12 2.1.1客户参与的用例图.12 2.1.2公司员工参与的用例图.13 2.2 分析类模型 .13 2.

2、3 组件模型 .15 2.4 软件构架和框架建模.15 3 系统设计系统设计.16 3.1 设计类模型 .16 3.1.1客户和公司员工类.16 3.1.2一些其他的类.17 3.2 接口设计模型 .18 3.3 包设计模型 .19 3.4 部署模型 .19 材料 a2 1 需求分析需求分析 这里介绍一个简单汽车租赁系统的需求分析。 1.1 需求获取需求获取 本系统的功能性需求包括以下几个方面: (1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆; (2)能够保存客户的预订申请单; (3)能够保存客户的历史记录; (4)工作人员可以处理客户申请; (5)技术人员可以保存对车辆的检修结

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

4、户信 息等。 图 1 所示表示汽车租赁系统的功能需求。 图 1 功能需求 1.2 业务建模业务建模 系统业务用例图如图 2 所示。 材料 a3 uc 业 业 业 业 customer system management rent car return car employee 图 2 系统业务用例图 1.3 业务规则建模业务规则建模 汽车租赁系统的顺序图主要有如下 4 个: (1)管理人员开展工作的顺序图。 (2)客户预订车辆的顺序图。 (3)客户取车顺序图; (4)客户还车顺序图; 1.3.1 管理人员开展工作顺序图管理人员开展工作顺序图 sd 业 业 业 业 业 业 业 业 Manager

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

6、业 业 业 业 业 业 业 业 Customer theRequest业 RequestOrder theCar:CartheCustomerRecord业 CustomerRecord 业 CommonWorker 1业 fillOrder() 2业 checkRequest() 3业 check() 4业 no problem() 5业 InServiced() 6业 ok() 7业 create new customer record() 8业 allow() 9业 isHandled() 10业 notify() 图 4 客户预订车辆的顺序图 顺序图说明: (1)fillOrder()

7、:填写租赁申请表的函数。 (2)checkRquest():查看申请的函数。 (3)check():检查历史记录的函数。 (4)InServiced():判断车辆状态的函数。 (5)allow():允许客户租赁车辆的函数。 (6)isHandled():表明请求已处理。 (7)notify():通知客户前来取车的函数。 客户要租赁车辆,首先必须填写申请表。公司员工负责处理申请表,他们根据客户租赁的历史记录以 及客户申请的车辆的状态决定是否接受客户请求。如果他们两个条件都满足,那么将接受请求并且为客户 预留该车;否则就拒绝请求,处理过的申请表的状态都设为已处理,如果接受用户的租赁请求,首先为该

8、客户添加一条记录,然后通知客户前来取车。 材料 a5 1.3.3 客户取车顺序图客户取车顺序图 sd 业 业 业 业 业 业 业 业 Customer theRequestOrder 业 RequestOrder theWorkRecord业 WorkRecord theCar业 Car 业 CommonWorker 1业 show_notice() 2业 check() 3业 ok() 4业 pay() 5业 fillWorkRecord() 6业 update_carstatus() 图 5 客户取车顺序图 顺序图说明: (1)show_notice():向工作人员出示取车通知。 (2)c

9、heck():工作人员检查取车通知的合法性。 (3)pay():客户付款。 (4)fillWorkRecord():公司员工创建工作记录。 (5)update_carstatus():更新汽车状态信息。 客户在约定的时间到前台取车,公司员工首先验证取车通知,验证通过后,将要求客户付款,然后填 写一份工作记录,同时修改车辆状态。 材料 a6 1.3.4 客户还车顺序图客户还车顺序图 sd 业 业 业 业 业 业 业 业 Customer业 CommonWorker业 SkillWorker theCar业 CartheServiceRecord 业 ServiceRecord theCustom

10、erRecord 业 CustomerRecord theRentRecord业 WorkRecord 1业 return back() 2业 check_carstatus() 3业 fillRecord() 4业 return() 5业 notify_payment() 6业 pay() 7业 update_carstatus() 8业 end() 9业 updateRecord() 图 6 客户还车顺序图 顺序图说明: (1)check_carstatus():检查车辆状况的函数。 (2)fillRecord():填写车辆检查记录的函数。 (3)notify_payment():通知客户

11、支付租赁款项的函数。 (4)update_carstatus():更新车辆信息的函数。 (5)end():结束租赁交易的函数。 (6)updateRecord():更新工作记录的函数。 客户在规定时间将车返还给租赁商店,技术人员将对车辆进行检修以确定是否有损坏,并且填写一份 服务记录,公司职员将根据记录确定客户应付的款项。与客户交易完成后,需要修改车辆的状态、客户记 录以及工作记录等。 材料 a7 1.3.5 客户预订车辆的协作图客户预订车辆的协作图 theCustomer业 Customer theRequestOrder业 RequestOrder theCommonWorker业 Com

12、monWorker theCar业 Car theCustomerRecord业 CustomerRecord 1: fillOrder业 业 2: checkRequest业 业 3: check业 业 4: InServiced业 业 5: Allow业 业 /Deny业 业 6: isHandled业 业 7: notify业 业 8: newCustomerRecord 图 7 客户预订车辆的协作图 协作图说明: (1)fillOrder():申请表类中填写租赁申请表的函数。 (2)checkRequest():普通公司员工类中查看申请的函数。 (3)check():客户租赁历史记录类

13、中的检查历史记录的函数。 (4)InServiced():车辆类中的判断车辆状态的函数。 (5)Allow():允许客户租赁车辆的函数。 (6)isHandled():判断预订表单是否被处理的函数。 (7)notify():通知客户前来取车的函数。 1.3.6 客户取车协作图客户取车协作图 theCustomer业 Customer theRequestOrder业 RequestOrder theCommonWorker业 CommonWorker theCar业 Car theWorkRecord业 WorkRecord 1: show_notify业 业 2: check业 业 3: v

14、alidate 4: take_car业 业 5: fillWorkRecord() 6: update_carstatus 图 8 客户取车协作图 协作图说明: (1)show_notify():向工作人员出示取车通知。 (2)check():工作人员检查取车通知的合法性。 材料 a8 (3)take_car():客户取车。 (4)fillWorkRecord():公司员工创建工作记录。 (5)update_carstatus():更新汽车状态信息。 1.3.7 客户还车协作图客户还车协作图 theCustomer业 Customer theCar业 Car theWorkRecord业 W

15、orkRecord theCommonWorker业 CommonWorker theCustomerRecord业 CustomerRecord theServiceOrder业 ServiceRecord 1: return_car() 2: check_carstatus() 3: fillRecord() 4: update_carstatus() 5: show_payment() 6: pay_money() 7: end() 8: updateRecord() 图 9 客户还车协作图 协作图说明: (1)return_car():客户还车的函数。 (2)check_carstat

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

17、 材料 a9 图 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

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

19、 所示。要注意的一点就是,租赁者填写租赁申请表和公司员工处理申 请可以并发执行。 材料 a10 图 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)

20、send the message:发送取车通知。 (9)customer acquire the car:客户取车。 (10) customer give the car back:客户还车。 材料 a11 2 系统分析系统分析 2.1 概念用例概念用例 2.1.1 客户参与的用例图客户参与的用例图 图 12 客户参与的用例图 用例图说明: (1)reserve the car:预订车辆的用例。 (2)by phone:电话预订用例。这是从预订用例扩展出来的一种预订方式。 (3)on the web:网络预订用例。这是从预订用例扩展出来的另一种预订方式,用户可以在公司主 页上提交预订申请。 (

21、4)fill the order form:填写预订申请表的用例。如果客户在网上预订,也必须完成预订申请表。 (5)get the car:取车用例。 (6)return the car:还车用例。 (7)return with fine:交纳罚金用例。客户如果不能够按时还车将要交纳罚金。 材料 a12 2.1.2 公司员工参与的用例图公司员工参与的用例图 图 13 公司员工参与的用例图 用例说明: (1)system login:系统登录用例。 (2)reserve process:预订处理用例。 (3)query customer order record:查询客户预订历史记录用例。工作人

22、员可以把客户的历史记录作 为判断是否接受客户请求的一个依据。 (4)refuse request:拒绝预订请求用例。工作人员可以根据情况拒绝客户的预订请求,例如客户历 史记录不良,没有所需车辆等。 (5)accept request:接受预订请求用例。工作人员在核对客户情况及车辆状态后,可以接受客户的 请求。 (6)give the car to customer:将预订的车交付客户用例。 (7)check the car:检查车辆状况用例。技术人员可以对车辆进行检查,以确定车辆是否被损坏。 (8)end the business:结束租赁业务用例。 2.2 分析类模型分析类模型 系统中各实体

23、类、边界类、控制类之间的交互如图 14、15、16 所示。 材料 a13 class 业 业 业 业 业 employee 业 业 业 CustomerRecord WorkRecord ServiceRecord CarRecord 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 EmployeeRecord 图 14 查询的分析类类图 class 业 业 业 业 业 2 employee 业

24、业 业 CustomerRecord WorkRecord ServiceRecord CarRecord 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 EmployeeRecord 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 图 15 编辑基本信息的分析类类图 class 业 业 业 业 业 3 employee 业 业 业 业 业 业 业 业

25、业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 业 RequestOrder CarRecordCustomerRecord 业 业 业 业 业 ServiceRecord 业 业 业 业业 业 业 业 业 业 业 业 业 业 WorkRecord 材料 a14 图 16 业务处理的分析类类图 2.3 组件模型组件模型 汽车租赁系统是建立在一个含有过去租赁记录、汽车信息、服务记录以及客户和员工信息的中央数据 库上。系统组件图如图 17 所示,包括租赁程

26、序、员工记录、服务记录、工作记录和汽车记录 5 个组件。 图 17 汽车租赁系统的组件图 2.4 软件构架和框架建模软件构架和框架建模 本系统采用 CS 架构的三层体系结构,如图 18 所示,应用 JAVA 语言辅以 SQL Server 数据库进行开 发。 图 18 系统 CS 三层架构图 数据服务层 功能层 表示层 业务服务层 用户服务层 Server Client 材料 a15 3 系统设计系统设计 3.1 设计类模型设计类模型 类图的设计是系统设计最核心的部分,明确基本类以及基本类之间的相互的关系有助于开发的后续设 计。此处将详细介绍汽车租赁系统的类图设计。 3.1.1 客户和公司员工

27、类客户和公司员工类 系统中客户和公司员工类图如图 19 所示。另外,这里省略了一些普通方法,例如 get 和 set 方法。 class 业 业 Person - address: String - ID: String - name: String - phoneNo: String + getAddress() : String + getID() : String + getName() : String + Person() : void + setAddress() : void + setID() : void + setName() : void Customer - CarTy

28、pe: String - licenseNo: String + Customer() : String + print() : String Employee - dateHired: String - Type: int - WorkID: String + Employee() : String Manager - manager: boolean + Manager() : String + viewWorkInfo() : String CommonWorker - commissionRate: int + calculate() : float + checkRequest()

29、: boolean + viewWorkInfo() : String SkillWorker - qualifications: String - skills: String + SkillWorker() : String 图 19 客户和公司员工类图 类图说明: (1)Person 类是所有类的父类,它包含 4 个属性:姓名(name) ,身份证号(ID) ,地址 (address)和电话号码(phoneNO) 。它包含的方法都是用来设置和获取这些属性值。 (2)Customer 类是包含客户信息的类,除了继承父类的属性和方法,它包括车辆类型(CarType) 和驾驶证号(licens

30、eNo)等属性。 材料 a16 (3)Employee 类是包含员工信息的类,其中包含了员工的聘用日期等信息。同时,它还是 Manager、CommonWorker、SkillWorker3 个类的父类。 (4)Manager 类是管理人员的类,管理人员可以查看工作人员的工作记录。CommonWorker 类是普 通工作人员类,commissionRate 属性是该员工完成任务率;方法 calculate()用来计算该工作 人员完成的任务率;checkRequest()用来查询是否有没处理的申请单。SkillWorker 类是技术 人员的类,skills 属性代表该员工的技术特长,而 qual

31、ifications 属性则表示他的技术职称。 3.1.2 一些其他的类一些其他的类 其他的类图如图 20 和图 21 所示。 class 业 业 CustomerRecord - CarNumber: String - CarType: String - customerID: String - IsFinish: String - rentDate: String + check() : String + end() : void Car - CarNumber: String - condition: String - status: String - Type: String + In

32、Serviced() : boolean + update_carstatus() : void ServiceRecord - progressReport: String - serviceHistory: String + fillRecord() : void 图 20 其他类图 1 class 业 业 RequestOrder - CarType: String - IsAllow: String - RentDate: String + Allow() : void + check() : boolean + fillOrder() : void + isHandled() : v

33、oid WorkRecord - 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)CustomerRecord 类表示客户记录。customer

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

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

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

37、 - SkillWorkID: String + fillWorkRecord() : void + updateRecord() : void + viewRecord() : String Car - CarNumber: String - condition: String - status: String - Type: String + InServiced() : boolean + update_carstatus() : void Employee Manager - manager: boolean + Manager() : String + viewWorkInfo() : String Employee CommonWorker - commissionRate: int + calculate() : float + checkRequest() : boolean + viewWorkInfo() : String Employee SkillWorker - qualifications: String - skills: String + SkillWorker() : String CustomerRecord - CarNumber: String - CarType

温馨提示

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

评论

0/150

提交评论