毕业设计-UML案例-网上购物_第1页
毕业设计-UML案例-网上购物_第2页
毕业设计-UML案例-网上购物_第3页
毕业设计-UML案例-网上购物_第4页
毕业设计-UML案例-网上购物_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计说明书摘要本论文共分四部分,分别介绍了统一建模语言(UML)、Rational Rose软件、面向对象程序分析与设计以及通过一个简易电子商务系统的例子介绍如何应用UML和Rose进行项目需求分析、结构规划和生成框架代码,以及如何从现有系统逆向转出代码,生成Rose模型。该设计的主要目的是对统一建模语言的学习过程,并在学习中,通过一个简单的例子来理解UML语言的建模思想。本设计是通过一个购物车的例子来理解UML语言的。通过面向对象程序设计方法与UML思想的结合,对系统进行建模。即设计UML中的用例图、顺序图、活动图、状态图、类图、组件图和部署图。通过这些UML框图生成代码。然后,根据生成的代码框架及UML模型来完善整个程序。这个网上购物系统,主要是实现向购物车中添加和删除商品及对商品进行结帐的功能。系统是用JSP语言实现的,它的主要功能都是通过Servlet控制的。该程序的设计思想都是通过UML语言体现的,论文详细描述了整个设计及学习的全过程。关键字:统一建模语言,JSP,电子商务。Abstract This paper is divided into four parts and introduces separately Unified Modeling Language, Rational Rose software, OOA and OOD . By a piece of easy E-business system , It shows how to apply UML and Rose to carry on Requirement Analysis and Structure plan and to turn into project code, and how to transfer to project code reversely and produce Rose model from a existing system. The main purpose of this design is to study course of Unified Modeling Language. During studying, the modeling thought of UML can be understood through a simple example. In order to understand the thought of UML, an example of shopping cart is citinged. Through the combination of the method of OOD and the thought of UML, the model of the system is realized . Namely, it is to design Use Case Diagram、Sequence Diagram、State Diagram、Class Diagram、Component Diagram and Deployment Diagram. The code is produced by using these UML block diagrams. Then, the whole program is perfected according to code frame that are produced and UML model . The online shopping system mainly realizes functions of adding goods to shopping cart and deleting goods from shopping cart and checking out . The system is developed by JSP language, and the main functions of it are controlled through Servlet. The design philosophy of this procedure was all embodied through UML language. the paper has described in detail the design and whole studying processes.Key Words: Unified Modeling Language, JSP, E-business.目录摘要IAbstractII前 言11 统一建模语言(UML)简介31.1 UML的诞生41.2 什么是UML41.3 UML的使用目的51.4 UML的架构51.5 UML的行业特性61.6 UML的主要内容71.7 UML的应用领域151.7.1 在不同类型系统中的应用151.7.2 在软件开发过程中的应用161.8小 结172 Rational Rose192.1 Rose简介192.2 Rose模型四个视图222.2.1Use Case视图222.2.2 Logical视图232.2.3 Component视图242.2.4 Deployment视图262.3 小结273 UML设计与传统的软件设计的区别283.1传统方法的弊端283.1.1僵化的瀑布模型303.1.2结构化技术的缺点303.2软件开发的新途径313.3面向对象的优点323.4基于面向对象思想的UML323.5 小结334 学习案例介绍344.1 需求分析364.2网上购物构件图434.3 网上购物类图444.4网上购物系统介绍474.5网上购物状态图484.6网上购物购物车活动图494.7网上购物的协作图524.8网上购物的部署图534.8小 结54总 结55致 谢57参考文献58附录59V前 言好的分析与设计可以成就一个好的系统,这就是为什么在软件开发过程中的需求分析和设计阶段最具挑战性。虽然目前人们普遍开始采用面向对象的分析与设计,但很少有开发人员使用形式化的方法。这主要是由于缺乏同一的语言或语义,来为复杂的软件系统的组件进行定义,可视化,构建和编制文档。UML改变了这一现状。UML是由三位面向对象方法领域著名的方法学家 Grady Booch,James Rumbaugh和Ivar Jvar jacobson提出,结合了他们以及其它众多优秀软件方法和思想,得到了世界多家知名公司的使用和支持,于1997年11月被OMG组织采纳,成为面向对象建模的标准语言.国际软件社会第一次有了一个标准的建模语言。 一个成功的系统开发项目的成功之处在于它能够在想象者和实现这些想象的系统开发人员之间建立起沟通的桥梁。统一建模语言(Unified Modeling Language,UML)就是一种建立桥梁的工具。它能帮你捕捉住对系统所发挥的想象力,并是你能够用这些想象出来的东西来和项目的风险承担人(在这里可以理解我用户)进行交流。UML借助与一套符号和图形来帮助我们完成这些工作。每种图形在开发过程中都发挥其各自不同的作用。 在这里我将本论文分为三个部分。第一部分为“UML的概述”部分。在这一部分中我首先是对UML进行了一个综述,介绍了UML从诞生到发展的过程。并比较详细的描述了UML的几个图的组成。然后转向面向对象这个主题,面向对象的概念是建立对象图和类图时要用到的最基本的概念。还讨论了用例(use case)用于展示从用户角度所观察到的系统功能的UML组件,我还花了一些额外的时间来讨论和用例有关的一些基本概念。因为在使用UML的大部分时间里我所用到的东西都是建立在这两个基本概念上的。在第一部分还介绍其余的UML图。第二部分为“Rose的简介”部分,在本部分中介绍被大多数公司所提倡的建模工具包,而且是软件包中最有名的Rational Rose,通过几个的视图简单的描述了Rose 的基本组成部分。第三部分为“学习案例”部分,通过一个真实的学习案例介绍了一种简化的系统开发方法,而且详细描述了系统需求分析,设计开发和代码生成的整个过程。1 统一建模语言(UML)简介 软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。 首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。 其次,统一建模语言扩展了现有方法的应用范围。特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。 第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。因此首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。1.1 UML的诞生目前人们普遍开始采用面向对象的分析与设计,但是很少有开发人员使用形象化的设计方法,其主要原因就是缺乏统一的语言语义来为复杂软件系统的组件定义、可视化、构建和编制文档。而UML的出现彻底的改变了这一现状,并成为了面向对象建模的标准语言。1.2 什么是UML对象分析与设计的一种标准表示。UML不是一种可视化的程序设计语言,而是一种可视化的建模语言;UML不是工具或者是知识库的规格说明,而是一种语言规格说明,是一种表示的标准;UML不是过UML( Unified Modeling Language )是一种标准的图形化建模语言,它是面向程和方法,但是允许任何一种过程和方法使用它。1.3 UML的使用目的1、 UML易于使用,能够进行可视化建模;2、 与具体的实现无关,可应用于任何语言平台和工 具平台;3、 与具体的过程无关,可应用于任何软件开发的过程;4、 简单并且可扩展,具有扩展和专有化机制,便于扩展,无须对核心概念进行修改;5、 为面相对象的设计与开发中涌现出的高级概念提供支持,强调软件在开发过程中对架构、框架、模式和组件的重用;6、 与最好的软件工程实践经验集成;7、 有利于面对对象工具的市场成长;1.4 UML的架构UML是由图和元模型组成的。图是UML的语法,而元模型则给出图的意思,是UML的语义。UML的语义是定义在一个四层建模概念框架中的,其层结构如下: 1、 元元模型层,组成UML的基本元素“事物”,代表要定义的所有事物; 2、 元模型层,组成了UML的基本元素,包括面向对象和面向组件的概念。这一层的每一个概念都是元元模型中“事物”概念的实例; 3、 模型层,组成了UML的模型,这一层的每个概念都是元模型中概念的一个实例,这一层的模型通常叫做类模型或者类型模型;4、 用户模型层,这个层中的所有所有元素都是UML模型的例子。这一层中的每个概念都是模型层的一个实例,也是元模型的一个实例。这一层的模型通常叫做对象模型或实例模型。1.5 UML的行业特性UML在各个行业都得到了广泛的应用,并迅速成为了一个事实上的工业标准,它成为人们用来为各种系统建模、描述系统架构、商业架构和商业过程的统一工具。UML之所以得到普及的主要原因不外乎以下几点:1、 UML是国际统一的标准,用它表示的产品符合国际标准,产品能够得到广泛的认可。2、 作为国际标准,国际软件业和商业对UML的支持也相当普遍因而采用它将可以得到最广泛的技术支持和工具支持。 3、 UML采用图的形式来表述系统的视图,图形化易于理解的优势使得不同知识背景的客户用户、领域专家、系统分析以及开发人员可以方便的交流。 4、 UML是一种标准的表示方法,任何方或者过程都可以采用UML,它与具体的方法和过程无关,具有通用性。 5、 UML具有良好的可扩展性,可适用到不同的领域,在具有通用性的同时还具有使自身专用化的能力。 6、 UML与最好的软件实践经验集成,其自身虽然没有表述任何方法或过程,但是却要求使用它的过程具有以下的特征:以架构为中心、用例驱动、支持迭代和递增地开发。这些特征体现了软件开发的成功经验。7、 UML对软件设计和分析实践中涌现出来的新思想和新方法提供了很好的支持,它支持模式、框架和组件等概念,提供从“概念模型到现时代码”的可跟踪性。1.6 UML的主要内容 客观世界是一个复杂巨系统,需要从不同的角度来考察,才能真正理解这个系统。为了能支持从不同角度来考察系统,标准建模语言UML定义了下列5类、共10种模型图:第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。用例图用于需求分析阶段,他的建立是系统开发者和用户反复讨论的结果,表明了开发者和用户对需求规格达成的共识。在UML中,一个系统由若干个用例图描述,用例图的主要元素是用例和角色。如图,是在网上商店系统经理的用例图如下: 网上购物系统用例图第二类是静态图(Static diagram),包括 类图、对象图和包图。 类图 包 对象其中类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。类图描述的是一种静态关系,在系统的整个生命周期都是有效的。对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。一个对象图是类图的一个实例。由于对象存在生命周1期,因此对象图只能在系统某一时间段存在。包由包或类组成,表示包与包之间的关系。包图用于描述系统的分层结构。第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响并且发生改变的类画状态图。ATM系统状态图活动图很象流程图。它显示出工作步骤、判断点和分支。这种类型的图可用与表达一个对象和操作和一个业务过程。活动图是对状态图的扩张图。状态图突出显示的是状态,而活动图突出显示的是活动。每个活动的图标被表示为圆角矩形,比状态图标更扁更接近椭圆。活动图的起始点和终止点图符和状态图一样。活动图描述满足用例要求所要进行的活动以及活动间的约束关系,有利于识别并行活动。 第四类是交互图(Interactive diagram),描述对象间的交互关系。其中时序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互;协作图描述对象间的协作关系,协作图跟时序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序图;如果强调上下级关系,则选择协作图。这两种图合称为交互图。 网上商店Add to Cart 时序图 第五类是实现图( Implementation diagram )。 实现图有可以分为两种,构件图和部署图。 构件图中包括构件、接口和关系。它与前介绍的图有明显的不同。它不是诸如类或者状态这样的概念实体模型,它表达的是真实世界中的实体-软件构件。软件构件驻留在计算机中,而不是只存在于分析员的脑海里。构件的图标是左边附有两个小矩形的大矩形框。其中构件图描述代码部件的物理结构及各部件之间的依赖关系。如下图。 ATM系统构件图一个构件可能是一个资源代码部件、一个二进制部件或一个可执行部件。 它包含逻辑类或实现类的有关信息。构件件图有助于分析和理解部件之间的相互影响程度。部署图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设备(用节点表示)以及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节点跟可执行软件单元的对应关系。ATM系统部署图从应用的角度看,当采用面向对象技术设计系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构;第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图(包含包)、对象图、构件图和部署图等五个图形,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、时序图和协作图等四个图形,是标准建模语言UML的动态建模机制。因此,标准建模语言UML的主要内容也可以归纳为静态建模机制和动态建模机制两大类。1.7 UML的应用领域 1.7.1 在不同类型系统中的应用UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。 以下是常见的UML应用: 系统信息向用户提供信息的存储、检索、交换和提交。处理存放在关系或对象数据库中大量具有复杂关系的数据;技术系统处理和控制技术设备,它们必须处理设计的特殊接口,标准软件相对较少,技术系统通常是实时系统;嵌入式实时系统在嵌入到其它设备硬件上执行的系统。通常是通过低级程序设计进行的,需要实时支持;分布式系统分布在一组机器上运行的系统,数据很容易从一台机器传到另一台计其。需要同步通信机制来确定数据完整性,通常是建立在对象机制上的。1.7.2 在软件开发过程中的应用UML适用于系统开发过程中从需求规格描述到系统完成后测试的不同阶段。在需求分析阶段,可以用用例来捕获用户需求。通过用例建模,描述对系统感兴趣的外部角色及其对系统(用例)的功能要求。分析阶段主要关心问题域中的主要概念(如抽象、类和对象等)和机制,需要识别这些类以及它们相互间的关系,并用UML类图来描述。为实现用例,类之间需要协作,这可以用UML动态模型来描述。在分析阶段,只对问题域的对象(现实世界的概念)建模,而不考虑定义软件系统中技术细节的类(如处理用户接口、数据库、通讯和并行性等问题的类)。这些技术细节将在设计阶段引入,因此设计阶段为构造阶段提供更详细的规格说明。编程(构造)是一个独立的阶段,其任务是用面向对象编程语言将来自设计阶段的类转换成实际的代码。在用UML建立分析和设计模型时,应尽量避免考虑把模型转换成某种特定的编程语言。因为在早期阶段,模型仅仅是理解和分析系统结构的工具,过早考虑编码问题十分不利于建立简单正确的模型。UML模型还可作为测试阶段的依据。系统通常需要经过单元测试、集成测试、系统测试和验收测试。不同的测试小组使用不同的UML图作为测试依据;单元测试使用类图和类规格说明;集成测试使用构件图和协作图;系统测试使用用例图来验证系统的行为;验收测试由用户进行,以验证系统测试的结果是否满足在分析阶段确定的需求。总之,标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。 1.8小 结系统开发是一种人力活动,如果没有易于理解的表示法系统,开发过程就会冒很大的错误风险。UML就是一套表示法系统,它已经成为系统开发领域中的标准。UML是由Grady Booch、James Rumbaugh和Ivar Jacobson发明的。UML由一组图组成它使得系统分析员可以利用这一标准来建立能够为客户、程序员以及任何参与开发的的风险人员理解的多角度的系统蓝图。因为不同承担人通常使用不同种图相互交流,因此UML包含所有这些种类的图是很有必要的。 UML模型只说明一个系统应该做什么,并没有告诉我们系统应该怎么做。2 Rational Rose2.1 Rose简介 Rational Rose是分析和设计面向对象软件系统的强大的可视化工具,可以用来先建模系统再编写代码,从而一开始就保证系统结构合理。利用模型可以更方便地捕获设计缺陷,从而以较低的成本修正这些缺陷。 Rational Rose支持业务模型,帮助了解系统的业务,有助于系统分析,可以先设计使用案例和Use Case框图,显示系统的功能。也可以用Interaction框图显示对象之间的如何配合,提供所需功能。Class框图可以显示系统中的对象及其相互关系。Component框图可以演示类如何映射到实现组建。最后,Deployment框图可以显示系统的网络设计。 Rose模型是系统的图形,包括所有UML框图、角色、使用案例、对象、类、组件和部署节点。它详细描述系统的内容和工作方法,开发人员可以用模型作为所建系统的蓝图。 蓝图是Rose模型很好的比喻。就象房子有一组蓝图,让建筑队的不同成员从不同角度使用,Rose模型包含许多不同的框图,使项目小组可以从不同角度观察这个系统。 用Rose能避免一些老问题: 往往开发出来的系统不是客户心目中想象的系统,而且维护系统时总会遇到这样和那样的问题。在传统的过程中,我们采用如下步骤:代码需求传统开发过程 用户的需求被建成文档,但设计在开发人员的脑子里,因此只有某个开发人员知道系统的结构。如果这个开发人员离开,则这个信息也将离开。如果你代替他,则你会知道要了解这个文档有多么费事。 Rose模型采用的过程如下:对象模型需求代码 Rose模型开发过程设计被建成文档,开发人员就可以在编码之前在一起讨论设计决策了,不必担心系统设计中每个人选不同的方向。但这个模型不仅为开发人员使用:() 整个小组用Business Use Case框图了解系统针对 的业务。() 客户和项目经理用Use Case框图取得系统的高级视图,确定项目的范围。() 项目经理用Use Case框图和文档将项目分解成为管理的小块。() 分析人员和客户用使用案例文档了解系统提供的功能。() 技术作者用使用案例文档开始编写拥护手册和培训计划。() 分析人员和开发人员用Sequence和Collaboration 框图了解系统的逻辑流程,系统中的对象及其对象间的消息。() 质量保证人员用使用案例文档和Sequence,Collaboration框图取得测试脚本所需要的信息。() 开发人员用Class框图和Statechart框图取得系统各部分的细节及其相互关系的信息。因此,Rose是整个项目组使用的工具,是每个小组成员可以收集所需要信息的范围和分析,设计信息的仓库。2.2 Rose模型四个视图Rose模型的四个视图是:Use Case视图、Logical视图、Component视图和Deployment视图。2.2.1Use Case视图Use Case视图包括系统中的所有角色使用案例和Use Case框图,还可能包括一些Sequence或Collaboration 框图。Use Case视图是系统中与实现无关的视图。图2.1是Rose浏览器中的Use Case视图。图2.1 Use Case 视 图Use Case 框图,显示角色、使用案例和它们之间的交互。Interaction框图,显示一个使用案例流程涉及的对象或类。 角色,是与所建系统交互的外部实体。 使用案例,是系统的高层功能块。Activity框图,描述用例中的工作流或用例中的事物流。 包是角色/使用案例或其他模型元素组。2.2.2 Logical视图Logical视图如图2.2,其关注系统如何实现使用案例中提出的功能。它提供系统的详细图形,描述组件见如何关联。除了这些外,Logical视图还包括需要的特定类,Class框图和Statechart框图。利用这些细节元素,开发人员可以构造系统的详细设计。 图2.2 Logical视 类是系统的建筑块。Class框图用于浏统系统中的类,类的属性与操作及其相互关系。2.2.3 Component视图Component视图包含模型代码库,可执行文件,运行库和其他组件的信息,组件是代码的实际模块。在Rose中,组件和Component框图在Component 视图如图2.3所示,系统的Component视图可以显示代码模块间的关系。图2.3 Component视图 组件,代码的实际模块。 Component框图,显示组件间的关系,可以帮你了解编译相关性。利用这个信息,就可以确定组件的编译顺序。 包,相关组件的组。Component视图的主要用户是负责控制代码和编译部署应用程序的人。有些组件是代码库有些是组件,如可执行文件或动态连接库(DLL)文件。开发人员也用Component视图显示已经生成的代码库和每个代码库中包含的类。2.2.4 Deployment视图Rose中的最后一个视图是Deployment视图。Deployment视图关注系统的实际部署,可能与系统的逻辑结构有所不同。例如,系统可能用三层逻辑结构换句话说,界面与业务逻辑可能分开,业务逻辑又与数据库逻辑分开。但部署可能是两层的。界面放在一台机器上,而业务和数据库逻辑放在另一台机器上。Deployment视图还要处理其他问题,如容错、网络宽带、故障恢复和响应时间。图2.4显示了Deployment视图。图2.4 Deployment视图进程,是在自己的内存空间执行的线程。处理器,任何有处理功能的机器。每个进程可以在一个或 几个处理器中的运行。设备,包括任何没有处理功能的机器,例如打印机。Deployment框图显示网络上的进程和设备及其相互间的实际联系。Deployment框图还显示进程,哪个进程在哪台机器上运行。整个小组都用Deployment视图的信息了解系统部署,但主要用户是发布应用程序的人员。2.3 小结本章介绍了Rose,利用这些知识就可以利用Rose工具来对系统进行建模。在众多的建模工具之中,Rose是比较流行,受到广大公司青睐的建模工具。它分别提供了4种视图:Use Case视图,从主体角色描述系统。Logical视图,包括系统中的类、类包和其他逻辑结构。Component视图,描述文件的物理布局。Deployment 视图,描述部署系统的网络结构。通过这四个视图,项目小组成员可以完成了解系统,从高层到细节层。3 UML设计与传统的软件设计的区别 3.1传统方法的弊端尽管传统的生命周期方法曾经给软件产业带来了巨大的进步,部分的缓解了软件危机,但是,这种方法学仍然存在比较明显的缺点.为了克服传统方法学的缺点,近年来快速崛起的面向对象方法日益受到人们的重视,很可能会软件产业带来新的飞跃。 面向对象的由来 面向对象方法学开发软件的过程中,通常建立的三种模型:对象模型、动态模型、和功能模块。 传统的生命周期方法学的本质,是在具体的软件开发工作开始之前,通过需求分析预先定义软件的需求,然后一个阶段接着一个阶段有条不紊地开发用户的所要求的软件,实现预先定义的软件需求。相对于早期的只重视编程,轻视对用户需求的了解和分析,最终产品只有程序代码,没有响应的文档资料的个体化的“软件“开发方法来说,生命周期的方法学是一个巨大的进步,对实现软件开发工程化曾经起了重要的促进作用。部分地缓解了软件危机。国内外都有许多用生命周期方法学成功的指导软件开发工作的范例。 但是,实践表明,传统的生命周期方法学并不能完全消除软件危机。生命周期方法学仍然有许多不足之处,对某些的软件开发,这种方法学比较适用,对另一些类型的软件则肯完全不适应。正如软件第七条基本原理所指出的那样,必须承认不断改进软件工程实践的必要性。软件存在的问题:l 生产效率提到幅度远不能满足需要l 软件重用程度很低l 软件仍然很难维护l 软件往往不能真正满足用户的需要出现问题的原因3.1.1僵化的瀑布模型传统的生命周期方法学可以用瀑布模型来模拟。瀑布模型意味着在生命周期各阶段存在着严格的顺序性和依赖性。生命周期方法学特别强调预先定义需求的重要性。但是,实践表明,在系统建立起来之前,往往很难仅仅依靠分析就确定出一套完整、准确、一致、有效的应用需求,这种预先定义需求的方法更不能适应用户需求的不断变化的情况:(1) 某些类型的系统需求是模糊的(2) 项目参与者之间存在通信的鸿沟(3) 预先定义的需求可能是过时的3.1.2结构化技术的缺点生命周期方法学使用的基本技术,是结构分析和结构设计技术,同时,结构分析和结构设计技术也是建立在系统生命周期的概念基础上的。结构分析和结构设计虽然有很多优点,但也有比较明显的缺点:有关这种技术开发出的软件,其稳定性、可修改性和可重用性都比较差。结构分析和机构设计技术是围绕实现处理功能的“过程”来构造系统的。然而用户需求的变化大部分是针对功能的,因此,这种变化对基于过程的实际来说是灾难性的,用这种技术设计出的系统结果常常是不稳定的。也就是说,用户需求的变化往往找成系统结构的交低变化,从而需求花费很大代价才能实现这种变化。3.2软件开发的新途径为提高软件系统的稳定性、可修改性和可重用性,人们在实践中逐渐创造出软件工程的一种途径面向对象方法学。面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是描述的问题与实现解法在结构上尽可能一致。如下图 客观世界的问题都是由客观世界中的实体及实体相互间的关系构成的,把客观世界中的实体抽象为问题于中的对象。从本质上说,我们用计算机解决客观实际的问题,借助于某种程序的设计语言的规定,对计算机中的实体施加某种处理,并用处理结果去映射解。3.3面向对象的优点和传统的结构化设计一样,面向对象设计也是将分析阶段所建立的分析模型装边为软件设计毛性。所不同的是,面向对象分析和面向对性设计之间没有每年关系的接性,很难精确区分出两者阶段,再者,面向对象防呢系和面向对象设计都是迭代过程,设计之后可能再进行进一步的分析,但在设计阶段也是基于抽象、信息隐藏、功能独立和模块化等重要的软件设计的基础上的,同时它的模块化不仅仅局限在过程处理部分,而是通过将数据和数据的操作封装在一起,共同完成信息和处理的双重模块化。3.4基于面向对象思想的UML建立模型是软件工程中最常使用的技术之一,无论软件分析或软件设计,都需要建立模型。从传统的软件工程到OO软件工程,出现了各种用于建模的工具,其大多数是图形工具。UML就是OO软件工程使用的统一建模语言。它是一种图形化了的语言,组要是用图形方式来表示,也可以称为一种基于面向对象的可视化建模语言。它提供了丰富的用图形符号表示的模型元素,这些标准的图形符号隐含了UML的语法,而由这些图形符号组成的各种模型,则给出了UML的语义。它的简单、一致、通用的定义,使开发者能在语义上取得一致,消除了因人而异的表达方法所造成的影响。同时,也充分体现了面向对象思想的精华所在。3.5 小结面向对象学把分析、设计和实现很自然地联结在一起了。虽然面向对象设计原则上不依赖于特定的实现环境,但是实现结果和实现成本却在很大程度上取决与实现环境。因此,直接支持面向对象设计范式的面向对象程序语言、开发环境及类库,对于面向对象实现来说是非常重要的。良好的程序设计风格对于面向对象实现来说格外重要。它即包括系统的程序设计风格准则,也包括与面向对象方法的特点相适应的一些新准则。面向对象方法学使用独特的概念和技术完成软件开发工作,因此,在测试面向对象呈现的时候,除了继承窗同的测试技术之外,还必须研究与面向对象程序特点想适应的测试技术。4 学习案例介绍UML只是建立在系统开发模型的规范语言,并非是标准开发过程。面向对象的开发过程仍然是按软件工程的方法进行。面向对象的设计发法和传统的结构化设计一样,也是将分析阶段所建立的分析模型转变为软件设计模型。 标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。当采用面向对象技术系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构。第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图、对象图、构件图和部署图等5种图行,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和协作图等4种图形,是标准建模语言UML的动态建模机制。在介绍完了UML的几种模、UML的使用工具及UML的面向对象机制以后,我们也积累了一些UML的使用经验并初步学习了一个开发过程发法学的框架。下面我们就通过一个事例来说明在一个应用中如何使用UML。通过前面的讨论,首先在分析模型中用用例来描述应用。然后,将分析模型扩展成设计模型。最后,用JSP和Servlet语言编辑,具体实现可以运行的应用。我们将讨论的案例是一个“网上购物系统”,它主要是通过在网页上进行简单的对商品进行选购。该案例的目的主要是:一,学习UML在面向对象技术中的应用。二,演示在一个完整的应用中如何使用UML:从分析到设计模型到真正的代码和可运行的应用。三,学习使用UML建模工具Rational Rose。本案例遵循的是一种顺序过程。如下图所示:用户需求 分析 设计 代码用例图组件图类图状态图原代码时序图用例协作图部署图4.1 需求分析分析就是描述系统的需求,通过定义系统中的关键域来建立模型。分析的根本目的的在开发者和提出需求的之间建立一种理解和沟通机制。分析不受技术方案或细节的限制。在分析阶段,不考虑代码或程序的问题。它是迈向真正理解需求和所要设计的系统的第一步。分析的第一步是定义用例,既描述学生信息管理系统的功能、确定系统的功能需求。 首先,要确定角色。该系统的角色为客户。因为,角色并不是都表示人,也可以是外部系统。所以,本系统的数据库处理角色就是一个外部系统。系统的角色图如下:角色图系统的角色分析完后,其次该分析系统的用例,用例分析是对每个角色行为的分析,该系统的角色的用例如下:l 选购商品l 向购物车添加商品l 从购物车删除商品l 购买商品并结帐l 预览商品从上是的用例中可以分析出,客户登陆首页时将会选择商品,根据客户需求,客户将选择商品,然后在将商品加入购物车中。客户将根据浏览商品的资料判断是否删除商品,如果客户对购物车的商品表示满意,客户将去结帐。根据以上对用例的分析可以得出此系统的用例图。系统的用例图如下: 网上购物系统的用例图 在整个系统中,用例描述系统的功能需求.在分析阶段,利用他们来检查某个域类是否已定义.在设计阶段,可以用来证实技术反噶是否能够处理要求的功能.根据以上角色图和用例图就可以得到整个系统的用例如下: 网上购物系统的用例接下来根据上提供的几个用例进一步描述每个用例的执行过程,这里我们就将用到时序图,它描述对象是如何交互的,并且将重点放在消息的序列上.下面我将分别介绍以上几个用例. 加入购物车时序图 该时序图描述了用户在登陆主页到向购物车内添加商品的整过程。对象从左到右布置时序图的顶部。从每个对象伸展的虚线叫做对象的生命线。在生命线声的窄矩形框被称做激活,激活表示正在执行的某个操作。如上图所示,当顾客登陆主页时,他即将看到数据库提供给他的一些商品,当顾客选择商品点击add to Card按钮时,首页就将用户选择商品的信息传递给,在内将信息入数组并添加到购物车内。每次用户在Eshop.jsp页内加入一件物品,页面就向控制servlet发送一个请求。由servlet依次决定适当的动作,然后处理要加入的物品的请求参数。然后它例示一个新的CD Bean(见代码清单4)表示所选物品,并在会话内更新购物车对象。 从购物车中删除商品的时序图该时序图描述了用户从购物车中删除商品随时间变化的过程。如上图所示,当顾客点击Delete按钮时,Cart.jsp将用户选择的商品信息再一次传递给ShoppingServlet进行处理,并在通过它对购物车的商品进行操作。浏览购物车中的商品如上图,在用户将选择的商品添加到购物车内以后,如果用户点击购物车内的按钮预览商品时,Cart.jsp就会把用户点击的那一行商品的信息发送到Disc.jsp内,在由它进行判断该商品的序号是那一种商品,然后在显示该商品的资料. 结帐时序图Checkout.jsp仅从会话中取出购物车和所有请求的总数,然后显示所选的物品及总价格。显示了结帐时客户端的时序图。一旦用户结帐,购物车商品的数量、价格等参数传递给ShoppingServlet,由它在进行处理运算,并把最终的结果再传递个Checkout.jsp,再又它显示出来。 浏览店内的商品当客户登陆首页时,用户选择的商品完全是由数据库提供的,用户可以对菜单中的商品进行选择.4.2网上购物构件图在分析阶段,构件图表达的UML是现实世界中的实体。它是软件系统的一个物理单元,它驻留在计算机中而不是只存在系统分析员的脑海里。构件之间存在的唯一关系是构件的依赖性。构件依赖性指一个构件依赖于另一个构件。构件依赖性画成构件之间的虚线箭头。如下图箭头指的构件表示被依赖,也就是说,Cart、Eshop、Checkout都依赖于ShoppingServlet。下图描述的是在网上购物系统中几个构件之间的依赖关系。 网上购物购件图4.3 网上购物类图 在面向对象建模技术中,客观世界的实体被映射为对象,并归纳成一个个类。对于想要描述的目标系统,其类模型和对象模型揭示了系统的结构。在UML中,类图和对象图表示。类图技术是面向对象的方法的核心,它表示系统中类与类之间的交互。下图显示了网上购物整个系统的类图。 网上购物系统的类图上图显示了从用户登陆首页选择商品到结帐离开类之间的关系,分别由4种类图组成。上图描述的是一种把JSP与Servlet联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让Servlet完成深层次的处理任务。也就是说Servlet在整个的系统中起到了支配作用。在这里,Eshop、Cart.jsp和Checkout.jsp在系统中几乎没有任何的操作,只负责提供与用户进行交互的界面,当用户通过Eshop.jsp选择商品时,并点击按钮加入商品时,Eshop.jsp会把信息传递给Servlet,由它在进行处理后并送到购物车。Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的bean和对象,同时根据用户的动作决定把那个JSP页传给请求者。特别要注意,在JSP页内没有处理逻辑;它仅负责检索原先由Servlet创建的对象或Beans,从Servlet中提取动态内容插入静态模板。在我看来,这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。客户机页 窗体 Ser

温馨提示

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

最新文档

评论

0/150

提交评论