《基于UML的酒店管理系统的分析与设计.docx》由会员分享,可在线阅读,更多相关《基于UML的酒店管理系统的分析与设计.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于UML的酒店管理系统的分析与设计 基于UML的酒店管理系统的分析与设计 摘要:酒店管理系统是现代企业管理系统的一个重要组成部分,传统的系统分析设计方法已经难以保证软件开发的效率和质量,UML是一种面向对象的可视化建模语言,通过用例模型、类模型及交互模型的建立可以快速、有效地进行软件开发,将UML应用于酒店管理系统建模,可以加速软件开发进程,提高软件质量,支持动态的业务需求,并方便地集成已有的企业管理资源。 关键词:酒店管理系统;UML;系统分析;系统设计;建模;实现 目录 1. 定义 (2) 2. 需求分析 (3) 3.系统的UML分析与实现 (5) 3.1.酒店管理系统的业务建模和需求分
2、析 (6) 3.2.酒店管理系统设计 (7) 3.2.1. 系统架构设计 (7) 3.2.2. 系统详细设计 (8) 3.2.3. 酒店管理系统的实现、测试和系统配置 (12) 4. 结束语 (12) 1.定义 当今社会对信息系统的需求日益增长,需求变化也越来越快,软件开发的技术发展方向已经从“提升被开发系统的执行效率”转变为“提升开发效率”。 UML 作为一种通用的建模语言,融入了软件工程领域的新思想、新方法、新技术,在软件的开发不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用,具有定义良好、易于表达、功能强大等优势。面向对象技术降低了解决方法域与问题域的差别,提供了良
3、好的复用机制,能够更加有效提高软件开发效率,完全顺应了软件开发技术的发展方向。 UML(The Unified Modeling Language,即统一建模语言) 是一个通用的标准建模语言,可以对复杂的系统建立可视化系统模型,目前已经被工业标准组织OMG(Object Management Group)接受,一经推出便得到许多著名计算机厂商如Microsoft,HP,IBM,Oracle等支持,在国际上应用日益广泛。UML(Unified Modeling Language)又称统一建模语言或标准建模语言,是一个支持模型化和软件系统的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,由
4、类图、对象图、用例图、状态图、顺序图、活动图、协作图、构件图、包图及部署图这些基本图型组成。 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法,软件工程的方法、工具和过程构成了软件工程的三要素。软件工程的目标实在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性并满足用户需求的软件产品。软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程成为软件的生存周期。 软件的生存周期都包括软件定义、软件开发、软件使用与维护3个部分。软件开发模型给出了软件开发各个阶段之间的关系。它
5、是软件开发过程的概括,是软件工程的重要内容。它为软件工程管理提供里程碑和进度表;为软件开发过程提供原则和方法。 本文通过一个酒店管理系统的分析与设计,阐述如何通过UML降低开发难度和提高开发效率。 2.需求分析 酒店管理系统的基本特征和功能模块:在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程。在这个过程中,系统软件员和软件工程师确定顾客的需要。只有在确定了这些需要后他们才能够分析和寻求新系统的解决方法。 1)用户与开发人员很难进行交流:在软件生存周期中,其它四个阶段都是面向 软件技术
6、问题,只有本阶段是面向用户的。需求分析是对用户的业务活动进行分析,明确在用户的业务环境中软件系统应该做什么。但是在开始时,开发人员和用户双方都不能准确地提出系统要做什么?。因为软件开发人员不是用户问题领域的专家,不熟悉用户的业务活动和业务环境,又不可能在短期内搞清楚;而用户不熟悉计算机应用的有关问题。由于双方互相不了解对方的工作,又缺乏共同语言,所以在交流时存在着隔阂。 2)用户的需求是动态变化的:对于一个大型而复杂的软件系统,用户很难精确 完整地提出它的功能和性能要求。一开始只能提出一个大概、模糊的功能,只有经过长时间的反复认识才逐步明确。有时进入到设计、编程阶段才能明确,更有甚者,到开发后
7、期还在提新的要求。这无疑给软件开发带来困难。 3)系统变更的代价呈非线性增长;需求分析是软件开发的基础。假定在该阶段 发现一个错误,解决它需要用一小时的时间,到设计、编程、测试和维护阶段解决,则要花2.5、5、25、100倍的时间。因此,对于大型复杂系统而言, 首先要进行可行性研究。开发人员对用户的要求及现实环境进行调查、了解,从技术、经济和社会因素三个方面进行研究并论证该软件项目的可行性,根据可行性研究的结果,决定项目的取舍。 本系统以“酒店服务”为核心,构建出了以“客户”为中心的酒店管理模式。所以该系统具有以下一些功能: i.用户信息管理:对酒店管理系统的使用员工进行管理,包括对员工的基
8、本信息(如用户姓名、所属部门、用户类型等)进行检索、录入和修改;ii.类型管理:用户可自定义类型,并对其进行管理,包括对类型的基本信息(如类型名称、面积、床位、价格等)进行检索、录入和修改; iii.信息管理:用户对信息进行管理,包括对的基本信息(如号、类型、位置等)进行检索、录入和修改; iv.经营管理:实现对的订房和退房管理,包括对的业务信息(如号、入房时间、退房时间、金额等)进行检索、录入和修改。 v.客户信息查询:用户可对入住过酒店的客户信息进行查询,包括对客户的基本信息(如身份证号、客户姓名、联系电话)进行检索。 vi.经营状况统计:根据酒店的业务记录,用户可选择不同的统计方式对营业
9、额进行统计。 从功能描述的内容来看,本实例可以实现六大功能。我们根据这些功能,设计出系统的功能模块,如图1所示。 图1. 酒店管理系统功能模块示意图 酒店管理系统作为当前使用非常广泛的数据库应用系统之一,其开发过程包括需求分析、UML系统建模、数据库分析和设计以及各功能模块的实现。我们重点对UML系统建模进行详细讲述。 3.系统的UML分析与实现 UML概述及特点;UML又称统一建模语言或标准建模语言,是一个支持模型化和软件系统的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。由类图、对象图、用例图、状态图、顺序图、活动图、协作图、构件图、包图及部署图这些基本图形组成。 UML 是一种
10、编制系统蓝图的标准化语言,可以对大型复杂系统的各种成分可视化说明并构造系统模型,以及建立各种必要的文档。UML通过三类图形建立系统模型: Use Case图,静态结构图(类图,对象图,组件图,配置图)和动态行为图(顺序图,协同图,状态图,活动图),这些图可以从不同抽象角度使系统可视化。 UML具有面向对象、可视化、独立与开发过程和程序设计语言以及 易于掌握使用等特点。UML适用于各种规模的系统开发,能促进软件复用,方便地集成已有的系统并有效减少开发中的各种风险。 UML在酒店管理系统中的实际应用 .UML 是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号。U
11、ML的创始人booch,Jacobson和Rum Baugh在rational公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开发过程,称为Rational统一过程(Rational Unified Process,RUP)。RUP过程的核心工作流程包括:业务建模、需求分析、系统分析与设计和实现、实现、测试和系统部署。下面通过UML来分析并构造酒店管理系统模型,并结合Rational统一过程加以描述,图形使用Rational Rose 工具软件绘制。 3.1.酒店管理系统的业务建模和需求分析 业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需求,理解系统要解决的问题,重点
12、是充分考虑系统的实用性。结果可以用一个业务用例(Business Use Case)框图表达,根据酒店管理系统的基本特征和功能可得到本系统的用例图,如图2。 图2. 酒店管理系统业务用例框图 模型中的活动者代表外部与系统交互的单元,包括酒店管理员、前台服务员等等;业务用例框图是对系统需求的描述,表达了系统的功能和所提供的服务, 该用例图标记了酒店管理系统的所有用例,并且形象地描述了各用例与用户角色之间的关系。 图2 是酒店管理系统层次的用例模型,只包含了最基本的Use Case模型,是系统的高层抽象。在开发过程中,随着对系统需求认识的不断加深,用例模型可以从顶向下不断细化,演化出更加详细的Us
13、e Case模型。根据系统的用例图,可以对系统的持久对象进行设计。 3.2.酒店管理系统设计 系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模型,也就是设计模型。设计模型包含了Use Case的实现,可以表现对象如何相互通信和运作来实现Use Case流的。对于系统的静态结构,可以通过类图、对象图、组件图和配置图来描述;对于系统的动态行为,可以通过顺序图、协同图、状态图、活动图描述。这些图在加上说明文档就构成一个完整的设计模型。 3.2.1.系统架构设计 酒店管理系统拥有大量业务信息资源,这些资源包括各种客户信息、订房、和退房等信息。其数据量大、信息变化快,非结构化信息与结
14、构化信息共存。使用UML对酒店管理系统进行基于面向对象的分析和实现,可以从开发的第一步开始,从系统的底层就把握住酒店信息资源的特征,为下一步具体实现打好基础。在酒店管理系统建立模型时要涉及到处理大量的模型元素,如类、接口、组件、节点、图等,可以将语意上相近的模型元素组织在一起,这就构成了UML的包,包从较高的层次来组织管理系统模型。 系统主要有以下四个包: 1)用户接口包(User Interface Package) 用户接口包在其他包的顶层次,为系统用户提供访问信息和服务。要注意一点,由于开发工具使用不同,该接口描述也是有区别的。如果采用Java Web开发,就要以JSP(Java Ser
15、ver Pages)为基础,如果采取Microsoft的 开发, 其基础就是标准化控件组。本系统在此将使用Java Web开发,下面有关代码的描述都是基于Java的。 2)业务逻辑包(Business Rule Package) 该包是酒店管理系统业务的核心实现部分,包括客户管理、订房管理、退房管理等,其他包可以通过访问该包提供的接口,实现业务逻辑,如客户管理业务等。 3)数据持久访问包(Data Persistence Package) 该包实现数据的持久化,也就是与数据库交互,实现数据的存取、修改等操作。 4)通用工具包(Util Package) 该包主要包括应用程序安全检查的类,可以为
16、上面三个包提供安全检查,如客户端检查和服务器端业务规则检查等,同时包括一些系统异常检查与抛出处理以及系统日志服务等。 3.2.2.系统详细设计 详细设计主要是描述在系统分析阶段产生的类,与分析阶段类的区别就是偏重于技术层面和类的细节实现。酒店管理系统提供的各种服务都是建立在分布、开放的信息结构之上,依托高速、可靠的网络环境来完成的。每项服务都可以看作一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制序列(Sequence)框图和协作(Collaboration)框图来帮助观察和理解。此外,描述工作流和并发行为还可以通过活动框图,表达从一个活动到另一个
17、活动的控制流。同时,可以在理解这些图的基础上,抽象出系统的类图,为系统编码阶段继续细化提供基础。下面以Java Web开发为例,介绍客户管理子系统的详细设计。 1.客户管理子系统的基本结构建模:下图是客户管理子系统主要类极其关系的 详细设计 图3.酒店管理系统域类图 2.序列图:序列图是一种对象交互图,着重强调了时间序列,而不是静态对象 的关系,通过序列图可以清楚地看到“谁在什么时间对谁说了写什么”。 图4.订房管理时序图 图5. 退房管理时序图 图4是一个订房管理的序列框图例子。描述了先加载某个客户;显示某些状态;再更改某些属性值,最后更新数据库状态的一次执行过程。 通过序列框图可以清晰看出
18、系统客户、客户管理子系统的用户接口、数据库连接模块之间以时间为顺序的消息交换,这对于把握系统的控制流、顺序行为和交互行为是非常有益的。建立在分布网络环境下的管理系统的事件流和控制流是非常复杂的,需要从顶层到底层进行一步步分解,用多幅能反映动态结构的图来分析与说明。图5反映了退房管理的顺序框图。 3.状态图适合描述一个对象穿越多个Use Case的行为。类的状态图表示类的对 象可以呈现的状态和这个对象从一种状态到另一种状态的转换。 图6. 状态图 图6 描述了对象的生命期中可能的状态及状态变化(从创建、更新到消亡的转变过程),我们需要使用状态图来描述类的对象的状态及其行为,显示对象的整个生命周期
19、。此例说明其他对象的操作可能改变当前对象的状态。 到此,经过了需求分析,使用UML建模绘出了各用例的用例图、状态图、时序图之后,我们已经对酒店管理系统的具体功能实现有了比较明确的认识。接下来,需要我们对系统进行框架设计和详细设计。 在进行构架设计时,我们将酒店管理系统设计视图中的类组织成一个标准的三级体系结构,如图7所示。用户服务包(User Services)中的元素提供了表现信息和收集的可视化界面。业务服务包(Bussiness Services)中的元素负责维护、访问和修改数据。数据服务包(Data Services)中的元素为另两个包的元素搭桥,并包含了管理用户请求(为了执行业务上的任务)的所有类和其他元素,包括支配数据操纵策略的业务规则。