目录1需求分析 (2)1.1需求获取 (2)1.2业务建模 (2)1.3业务规则建模 (3)1.3.1管理人员开展工作顺序图 (3)1.3.2客户预订车辆的顺序图 (4)1.3.3客户取车顺序图 (5)1.3.4客户还车顺序图 (6)1.3.5 客户预订车辆的协作图 (7)1.3.6客户取车协作图 (7)1.3.7客户还车协作图 (8)1.4业务过程建模 (8)1.4.1系统的状态图 (8)1.4.2系统的活动图 (9)2系统分析 (11)2.1概念用例 (11)2.1.1客户参与的用例图 (11)2.1.2公司员工参与的用例图 (12)2.2分析类模型 (12)2.3组件模型 (14)2.4软件构架和框架建模 (14)3系统设计 (15)3.1设计类模型 (15)3.1.1客户和公司员工类 (15)3.1.2一些其他的类 (16)3.2接口设计模型 (17)3.3包设计模型 (18)3.4部署模型 (18)1需求分析这里介绍一个简单汽车租赁系统的需求分析。
1.1需求获取本系统的功能性需求包括以下几个方面:(1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆;(2)能够保存客户的预订申请单;(3)能够保存客户的历史记录;(4)工作人员可以处理客户申请;(5)技术人员可以保存对车辆的检修结果;为了满足上述需求,则系统主要包括以下几个模块:(1)基本数据维护模块。
基本数据维护模块提供了使用者录入、修改并维护基本数据的途径。
例如,对客户的个人信息、租赁信息、车辆的基本信息等的录入和修改。
(2)基本业务模块。
基本业务模块中,客户可以填写汽车租赁申请表,工作人员负责处理这些表格。
同时,技术人员还可以提交每辆车的状态,以便工作人员根据这些资料决定是否批准客户的请求。
(3)数据库管理模块。
在汽车租赁系统中,对所有客户、工作人员以及车辆的信息都要进行统一管理,车辆的租赁情况也要进行详细的登记。
(4)信息查询模块。
信息查询模块主要用于查询相关信息,例如工作人员查询车辆信息和客户信息等。
图1所示表示汽车租赁系统的功能需求。
图1功能需求1.2业务建模系统业务用例图如图2所示。
UML系统分析设计报告图2系统业务用例图1.3业务规则建模汽车租赁系统的顺序图主要有如下4个:(1)管理人员开展工作的顺序图。
(2)客户预订车辆的顺序图。
(3)客户取车顺序图;(4)客户还车顺序图;1.3.1管理人员开展工作顺序图图3管理人员开展工作的顺序图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():通知客户前来取车的函数。
客户要租赁车辆,首先必须填写申请表。
公司员工负责处理申请表,他们根据客户租赁的历史记录以及客户申请的车辆的状态决定是否接受客户请求。
如果他们两个条件都满足,那么将接受请求并且为客户预留该车;否则就拒绝请求,处理过的申请表的状态都设为已处理,如果接受用户的租赁请求,首先为该客户添加一条记录,然后通知客户前来取车。
UML系统分析设计报告1.3.3客户取车顺序图图5客户取车顺序图顺序图说明:(1)show_notice():向工作人员出示取车通知。
(2)check():工作人员检查取车通知的合法性。
(3)pay():客户付款。
(4)fillWorkRecord():公司员工创建工作记录。
(5)update_carstatus():更新汽车状态信息。
客户在约定的时间到前台取车,公司员工首先验证取车通知,验证通过后,将要求客户付款,然后填写一份工作记录,同时修改车辆状态。
51.3.4客户还车顺序图图6客户还车顺序图顺序图说明:(1)check_carstatus():检查车辆状况的函数。
(2)fillRecord():填写车辆检查记录的函数。
(3)notify_payment():通知客户支付租赁款项的函数。
(4)update_carstatus():更新车辆信息的函数。
(5)end():结束租赁交易的函数。
(6)updateRecord():更新工作记录的函数。
客户在规定时间将车返还给租赁商店,技术人员将对车辆进行检修以确定是否有损坏,并且填写一份服务记录,公司职员将根据记录确定客户应付的款项。
与客户交易完成后,需要修改车辆的状态、客户记录以及工作记录等。
UML系统分析设计报告71.3.5 客户预订车辆的协作图6: isHandled ()图7 客户预订车辆的协作图协作图说明:(1) fillOrder ():申请表类中填写租赁申请表的函数。
(2) checkRequest ():普通公司员工类中查看申请的函数。
(3) check ():客户租赁历史记录类中的检查历史记录的函数。
(4) InServiced ():车辆类中的判断车辆状态的函数。
(5) Allow ():允许客户租赁车辆的函数。
(6) isHandled():判断预订表单是否被处理的函数。
(7) notify ():通知客户前来取车的函数。
1.3.6客户取车协作图图8 客户取车协作图协作图说明:(1) show_notify ():向工作人员出示取车通知。
(2) check ():工作人员检查取车通知的合法性。
(3) take_car ():客户取车。
(4)fillWorkRecord():公司员工创建工作记录。
(5)update_carstatus():更新汽车状态信息。
1.3.7客户还车协作图6: pay_money()图9客户还车协作图协作图说明:(1)return_car():客户还车的函数。
(2)check_carstatus():检查车辆状况的函数。
(3)fillRecord():填写车辆检查记录的函数。
(4)update_carstatus():更新车辆信息的函数。
(5)show_payment():通知客户相关费用。
(6)pay_money():客户付款。
(7)end():结束租赁交易的函数。
(8)updateRecord():更新工作记录的函数。
1.4业务过程建模1.4.1系统的状态图由于系统的几个对象,如客户预订申请表类、客户租赁历史记录类、工作记录类、维修记录类和车辆类的状态都很少,不需要用创建状态图,所以此处将建立整个系统的状态图,如图10所示。
UML系统分析设计报告图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 the request:拒绝租赁请求。
(10)end the business:结束交易。
从客户填写预订申请表开始,租赁商收到客户的申请并对其进行处理。
根据客户的历史记录以及车辆的状态确定是否接受客户请求。
如果某个条件不符合,就向客户发送一个拒绝通知,交易结束;如果条件都符合,则接受该请求并保存相关数据。
客户在约定时间内来取车,取车需出示相关通知。
车辆使用以后,客户必须在规定的时间将车返还给租赁商。
还车后技术人员还会对车辆进行检查,根据车辆状况收取相应费用,如果车辆破损还要收取罚金。
最后,交易结束。
1.4.2系统的活动图汽车租赁系统的活动图如图11所示。
要注意的一点就是,租赁者填写租赁申请表和公司员工处理申请可以并发执行。
9图11系统的活动图活动图说明:(1)customer request:客户填写租赁申请。
(2)store the request:存储申请表。
(3)employee check the request:公司员工查看租赁申请。
(4)handle new request:处理新的租赁申请。
(5)check the customer’s record:查看客户租赁的历史记录。
(6)deny request:拒绝租赁请求。
(7)the car is available:车辆为可用。
(8)send the message:发送取车通知。
(9)customer 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:填写预订申请表的用例。
如果客户在网上预订,也必须完成预订申请表。
(5)get the car:取车用例。
(6)return the car:还车用例。
(7)return with fine:交纳罚金用例。
客户如果不能够按时还车将要交纳罚金。
112.1.2公司员工参与的用例图图13公司员工参与的用例图用例说明:(1)system login:系统登录用例。
(2)reserve process:预订处理用例。
(3)query customer order record:查询客户预订历史记录用例。
工作人员可以把客户的历史记录作为判断是否接受客户请求的一个依据。
(4)refuse request:拒绝预订请求用例。
工作人员可以根据情况拒绝客户的预订请求,例如客户历史记录不良,没有所需车辆等。
(5)accept request:接受预订请求用例。
工作人员在核对客户情况及车辆状态后,可以接受客户的请求。
(6)give the car to customer:将预订的车交付客户用例。