UML课程设计报告汽车租赁系统.docx
《UML课程设计报告汽车租赁系统.docx》由会员分享,可在线阅读,更多相关《UML课程设计报告汽车租赁系统.docx(36页珍藏版)》请在冰豆网上搜索。
UML课程设计报告汽车租赁系统
《面向对象分析与设计(UML)》
课程设计报告
设计题目:
网络教学系统
院系:
计算机科学与工程学院
专业:
软件工程
班 级:
08软件一班
学号:
180108122
姓名:
赵林
指导教师:
姚宇峰
设计地点:
N6-107
开课时间:
2010至2011学年第1学期
常熟理工学院计算机科学与工程学院制
学生姓名成绩
评语:
指导教师(签名)
年月日
1.设计目的和任务...........................................................................................1
2.开发环境.......................................................................................................1
2.1硬件环境..............................................................................................1
2.2软件环境..............................................................................................1
3.设计题目.........................................................................................................2
3.1题目名称..............................................................................................2
3.2题目详细描述.......................................................................................2
3.3功能要求..............................................................................................2
4.相关技术及知识点.........................................................................................4
4.1用例图..................................................................................................4
4.2时序图...................................................................................................5
4.3协作图...................................................................................................6
4.4状态图...................................................................................................7
4.5活动图...................................................................................................8
4.6类图......................................................................................................9
4.7组件图..................................................................................................10
4.8配置图.................................................................................................11
5.设计................................................................................................................5
5.1用例图……..............................................................................................5
5.2类图……..................................................................................................7
5.3活动图....................................................................................................10
5.4协作图.....................................................................................................13
5.5时序图...................................................................................................14
5.6状态图....................................................................................................16
5.7组件图....................................................................................................18
5.8配置图....................................................................................................20
6.双向工程.......................................................................................................21
7.总结...............................................................................................................30
8.参考资料……................................................................................................31
1.设计目的和任务
目的:
让学生了解和掌握最新的面向对象技术。
通过上课教授和上机进行课程设计,全面掌握采用面向对象的软件开发分析设计的基本步骤与方法,以及各种新涌现的面向对象技术。
掌握软件开发工具ROSE的使用方法与技巧,使同学们能够掌握采用面向对象技术独立开发一个软件项目的过程和建模方法,对开发面向对象软件项目的过程有一个完整、全面地了解。
任务:
1.对系统功能进行必要的描述;
2.绘制系统的主要模型图;
3.模型图要有说明性文字解释。
4.掌握UML常用语法,熟悉ROSE工具的使用
5.掌握面向对象的分析技术、设计技术;
2.开发环境
2.1硬件环境
计算机
2.2软件环境
RationalRose
3.设计题目
3.1题目名称
汽车租赁系统的需求分析与设计
3.2题目详细描述
系统的整体目标是:
利用互联网和信息化技术,结合汽车租赁经营的实际运作情况,建设一个覆盖汽车租赁经营全部业务的“汽车租赁系统”,通过该系统提高企业信息化水平,完善经营管理体系,提高员工素质,进一步加强企业市场竞争能力。
3.3功能要求
1)客户可以通过不同的方式(包括电话、前台、网上)预订车辆;
2)能够保存客户的预订申请单;
3)能够保存客户的历史记录;
4)工作人员可以处理客户申请;
5)技术人员可以保存对车辆检修的结果。
满足上述需求的系统主要包括以下几个模块:
a)基本数据维护模块:
该模块提供了使用者录入、修改并维护基本数据的途
b)基本业务模块:
在系统中,客户可以填写汽车租赁申请表,工作人员处理这些表格;同时,技术人员还可以提交每辆车的状态,以便工作人员根据这些资料决定是否批准客户的请求。
c)数据库管理模块:
在系统中,对所有客户、工作人员以及车辆的信息都要进行统一管理,车辆的租赁情况也要进行详细的登记。
d)信息查询模块:
该模块主要用于查询相关信息。
3.3.1基本数据维护模块
基本数据维护模块包括的主要功能模块:
●添加车辆信息
●修改车辆信息
●添加员工信息
●修改员工数据
3.3.2基本业务模块
基本业务模块包含的功能:
●用户填写预定申请
●工作人员处理预定请求
●技术人员填写服务记录
●工作人员处理还车
3.3.3数据库模块
数据库模块的功能:
●客户信息管理
●车辆信息管理
●租赁信息管理
●职员信息管理
3.3.4信息查询模块
信息查询模块是查询数据库中的相关信息,包括:
●查询客户信息
●查询职员信息
●查询车辆信息
●查询客户记录
4.相关技术及知识点
4.1用例图:
A.用例图显示谁将是相关的用户、用户希望系统提供什么服务以及用户需要为系统提供的服务。
B.用例图最常用来描述系统以及子系统。
C.用例图包含6个元素:
参与者(Actor)
用例(UseCase)
关联关系(Association)
包含关系(Include)
扩展关系(Extend)
泛化关系(Generalization)
D.参与者的种类:
系统用户
与所建造的系统交互的其他系统
一些可以运行的进程
E.用例间的关系
1关联关系:
表示参与者和用例之间进行通信。
2包含关系:
客户用例可以简单地包含提供者用例具有的行为,并把它所包含的用例行为作为自身行为的一部分。
3扩展关系:
扩展用例被定义为基础用例的增量扩展。
4泛化关系:
子用例表示父用例的特殊形式。
4.2时序图:
A.时序图是强调消息时间顺序的交互图。
B.时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
C.时序图将交互关系表示为一个二维图。
其中,纵轴是时间轴,时间沿竖线向下延伸。
横轴代表了在协作中各独立的对象。
D.时序图包含了4个元素:
对象(Object)
生命线(Lifeline)
消息(Message)
激活(Activation)
E.时序图中对象的符号和对象图中对象所用的符号一样。
将对象置于时序图的顶部意味着在交互开始的时候对象就已经存在了,如果对对象的位置不在顶部,那么表示对象是在交互的过程中被创建的。
4.3协作图:
A.协作图描述的是和对象结构相关的信息。
B.协作图的用途是表示一个类操作的实现。
C.协作图对交互中有意义的对象和对象之间的链建模。
D.在UML中,协作图用几何排列来表示交互作用中的对象和链,附在链的箭头代表消
息,消息的发生顺序用消息箭头处的编号来说明。
E.协作图包含了3个元素:
对象(Object)
链(Link)
消息(Message)
F.协作图与时序图中的对象的概念是一样,只不过在协作图中,无法表示对象的创建和撤销,所以对于对象在图中的位置没有限制。
4.4状态图:
A.状态机是展示状态与状态转换的图。
B.状态机包含了一个类的对象在其生命期间所有状态的序列以及对象对接受到的事件
所产生的反应。
利用状态机可以精确地描述对象的行为。
C.状态机的组成:
状态(State)
转换(Transition)
事件(Event)
活动(Activity)
动作(Action)
D.一个状态图表示一个状态机。
状态图表现从一个状态到另一个状态的控制流。
状态图由表示状态的节点和表示状态之间转换的带箭头的直线组成。
4.5活动图:
A.活动图是一种描述系统行为的图,它用于展现参与行为的类所进行的各种活动的顺序关系。
B.活动图与状态图都是状态机的表现形式。
C.在UML中,活动表示成圆角矩形。
如果一个活动引发下一个活动,两个活动的图标之间用带箭头的直线连接。
活动图也有起点和终点,表示法和状态图中相同。
活动图中还包括分支与合并、分叉与汇合等模型元素。
分支与合并的图标和状态图中的判定的图标相同,而分叉与汇合则用一条加粗的线段表示。
D.组成UML的图形元素:
动作流(ActionFlow):
所有动作状态之间的转换流称之为动作流。
与状态图的转换相同,活动图的转换也用带箭头的直线表示,箭头的方向指向转入的方向。
分支(Branch)与合并(Merge):
分支一般用于表示对象类所具有的条件行为。
条件行为用分支和合并表达。
一个合并有两个带条件的入转换和一个出转换,合并表示
从对应的分支开始的条件行为的结束。
分叉(Fork)与汇合(Join):
分叉用于将动作流分为两个或者多个并发运行的分支,
而汇合则用于同步这些并发分支,以达到共同完成一项事务的目的。
汇合代表两个或多个并发控制流同步发生,当所有的控制流都达到汇合点后,控制才能继续往下进行。
每个汇合可以有两个或多个输入转换和一个输出转换。
泳道(Swimlane):
泳道将活动图中的活动化分为若干组,并把每一组指定给负责这
组活动的业务组织即对象。
泳道区分了负责活动的对象,明确地表示了哪些活动是由哪些对象进行的。
对象流(ObjectFlow):
对象流是动作状态或者活动状态与对象之间的依赖关系,表
示动作使用对象或者动作对对象的影响。
4.6类图:
A.类图的元素:
类(Class)
接口(Interface)
协作(Collaboration)
依赖关系(Dependency)
泛化关系(Generalization)
关联关系(Association)
实现关系(Realization)
B.类是面向对象系统组织结构的核心。
对一组具有相同属性、操作、关系和语义的对象的抽象。
包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。
名称:
应该来自系统的问题域。
应该是一个名词,且不应该有前缀或后缀。
分为简单名称和路径名称。
属性:
描述了类在软件系统中代表的事物(即对象)所具备的特性。
类可以有任意数目的属性,也可以没有属性。
操作:
对类的对象所能做的事务的抽象。
一个类可以有任意数量的操作或者根本没有操作。
返回类型、名称和参数一起被称为操作签名。
4.7组件图:
A.组件图描述了软件的各种组件和它们之间的依赖关系。
B.组件图中通常包含3个元素:
组件(Component)
接口(Interface)
依赖关系(Dependency)
C.组件是定义了良好接口的物理实现单元,是系统中可替换的物理部件。
组件可以是源代码组件、二进制组件或一个可执行的组件。
在UML中,组件用一个左侧带有突出两个小矩形的矩形来表示。
D.在对软件系统建模的过程中,存在3种类型的组件:
配置组件(DeploymentComponent)
工作产品组件(WorkProductComponent)
执行组件(ExecutionComponent)
E.接口和组件之间的关系分为两种:
实现关系(Realization)
依赖关系(Dependency)
F.组件的接口分为两种:
导入接口(importinterface)供访问操作的组件使用
导出接口(exportinterface)由提供操作的组件提供
G.组件图用依赖关系表示各组件之间存在的关系类型。
4.8配置图:
A.配置图描述了运行软件的系统中硬件和软件的物理结构。
B.配置图中通常包含2个元素:
节点(Node)
关联关系(Association)
C.节点是在运行时代表计算资源的的物理元素。
节点通常拥有一些内存,并具有处理能力。
节点通过查看对实现系统有用的硬件资源来确定,这需要从能力和物理位置两方面来考
虑。
在UML中,节点用一个立方体来表示。
D.在实际的建模过程中,可以把节点分为两种类型:
处理器(Processor)
设备(Device)
E.配置图可以将节点和组件结合起来,以建模处理资源和软件实现之间的关系。
当组件驻留在某个节点时,可以将它建模在图上该节点的内部。
为显示组件之间的逻辑通信,需要添加一条表示依赖关系的虚线箭头。
5.设计
5.1用例图
⏹创建用例图之前首先需要确定参与者。
⏹系统中的参与者主要有两类:
●客户
●公司职员
1.客户参与的用例图
图5-1
2.公司职员参与的用例图
图5-2
5.2类图
1.客户和公司职员类
图5-3
2.一些其他的类
图5-4
3.2各个类之间的关系
图5-5
5.3活动图
图5-6
5.4协作图
1.客户预订的协作图
图5-7
2.客户取车的协作图
图5-8
3.客户还车的协作图
图5-9
5.5时序图
1.管理人员开展工作的顺序图
图5-10
2.客户预订车辆的顺序图
图5-11
3.客户取车的顺序图
图5-12
4.客户还车的顺序图
图5-13
5.6状态图
图5-14
5.7组件图
图5-15
5.8配置图..
图5-16
6.双向工程
●Person.java
classPerson
{
privateStringname;
privateStringID;
privateStringaddress;
privateStringphoneNo;
/**
@roseuid4D0EE7360203
*/
publicPerson()
{
}
/**
@returnjava.lang.String
@roseuid4D0EE6250157
*/
publicStringgetName()
{
returnnull;
}
/**
@roseuid4D0EE6EB0213
*/
publicvoidsetName()
{
}
/**
@returnjava.lang.String
@roseuid4D0EE70A0177
*/
publicStringgetID()
{
returnnull;
}
/**
@roseuid4D0EE7200177
*/
publicvoidsetID()
{
}
/**
@returnjava.lang.String
@roseuid4D0EE725003E
*/
publicStringgetAddress()
{
returnnull;
}
/**
@roseuid4D0EE72E008C
*/
publicvoidsetAddress()
{
}
}
●Employee
publicclassEmployeeextendsPerson
{
privateStringdataHired;
privateintType;
privateStringWorkID;
/**
@roseuid4D0EE80A029F
*/
publicEmployee()
{
}
}
●Customer
publicclassCustomer
{
privateStringCarType;
privateStringlicenseNO;
/**
@roseuid4D0EE773030D
*/
publicCustomer()
{
}
/**
@roseuid4D0EE78A0290
*/
publicvoidprint()
{
}
}
●Manager
publicclassManger
{
privatebooleanmanager;
publicWorkRecordtheWorkRecord[];
/**
@roseuid4D0EEAB0003E
*/
publicManger()
{
}
/**
@roseuid4D0EE7B3000F
*/
publicvoidManager()
{
}
/**
@roseuid4D0EE7BF02EE
*/
publicvoidviewWorkInfo()
{
}
}
●SkilWorker
publicclassSkilWorker
{
privateStringskills;
privateStringqualifications;
/**
@roseuid4D0EE9380399
*/
publicSkilWorker()
{
}
}
●CommonWorker
publicclassCommonW