您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > UML案例-网上购物
第1页网上购物系统-学习案例UML只是建立在系统开发模型的规范语言,并非是标准开发过程。面向对象的开发过程仍然是按软件工程的方法进行。面向对象的设计发法和传统的结构化设计一样,也是将分析阶段所建立的分析模型转变为软件设计模型。标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。当采用面向对象技术系统时,首先是描述需求;其次根据需求建立系统的静态模型,以构造系统的结构。第三步是描述系统的行为。其中在第一步与第二步中所建立的模型都是静态的,包括用例图、类图、对象图、构件图和部署图等5种图行,是标准建模语言UML的静态建模机制。其中第三步中所建立的模型或者可以执行,或者表示执行时的时序状态或交互关系。它包括状态图、活动图、顺序图和协作图等4种图形,是标准建模语言UML的动态建模机制。在介绍完了UML的几种模、UML的使用工具及UML的面向对象机制以后,我们也积累了一些UML的使用经验并初步学习了一个开发过程发法学的框架。下面我们就通过一个事例来说明在一个应用中如何使用UML。通过前面第2页的讨论,首先在分析模型中用用例来描述应用。然后,将分析模型扩展成设计模型。最后,用JSP和Servlet语言编辑,具体实现可以运行的应用。我们将讨论的案例是一个“网上购物系统”,它主要是通过在网页上进行简单的对商品进行选购。该案例的目的主要是:一,学习UML在面向对象技术中的应用。二,演示在一个完整的应用中如何使用UML:从分析到设计模型到真正的代码和可运行的应用。三,学习使用UML建模工具RationalRose。本案例遵循的是一种顺序过程。如下图所示:用户需求分析设计代码组件图类图时序图状态图用例用例图部署图协作图原代码第3页4.1需求分析分析就是描述系统的需求,通过定义系统中的关键域来建立模型。分析的根本目的的在开发者和提出需求的之间建立一种理解和沟通机制。分析不受技术方案或细节的限制。在分析阶段,不考虑代码或程序的问题。它是迈向真正理解需求和所要设计的系统的第一步。分析的第一步是定义用例,既描述学生信息管理系统的功能、确定系统的功能需求。首先,要确定角色。该系统的角色为客户。因为,角色并不是都表示人,也可以是外部系统。所以,本系统的数据库处理角色就是一个外部系统。系统的角色图如下:角色图系统的角色分析完后,其次该分析系统的用例,用例分析是对每个角色行为的分析,该系统的角色的用例如下:第4页选购商品向购物车添加商品从购物车删除商品购买商品并结帐预览商品从上是的用例中可以分析出,客户登陆首页时将会选择商品,根据客户需求,客户将选择商品,然后在将商品加入购物车中。客户将根据浏览商品的资料判断是否删除商品,如果客户对购物车的商品表示满意,客户将去结帐。根据以上对用例的分析可以得出此系统的用例图。系统的用例图如下:网上购物系统的用例图第5页在整个系统中,用例描述系统的功能需求.在分析阶段,利用他们来检查某个域类是否已定义.在设计阶段,可以用来证实技术反噶是否能够处理要求的功能.根据以上角色图和用例图就可以得到整个系统的用例如下:网上购物系统的用例接下来根据上提供的几个用例进一步描述每个用例的执行过程,这里我们就将用到时序图,它描述对象是如何交互的,并且将重点放在消息的序列上.下面我将分别介绍以上几个用例.第6页加入购物车时序图该时序图描述了用户在登陆主页到向购物车内添加商品的整过程。对象从左到右布置时序图的顶部。从每个对象伸展的虚线叫做对象的生命线。在生命线声的窄矩形框被称做激活,激活表示正在执行的某个操作。如上图所示,当顾客登陆主页时,他即将看到数据库提供给他的一些商品,当顾客选择商品点击addtoCard按钮时,首页就将用户选择商品的信息传递给,在内将信息入数组并添加到购物车内。每次用户在Eshop.jsp页内加入一件物品,页面就向控第7页制servlet发送一个请求。由servlet依次决定适当的动作,然后处理要加入的物品的请求参数。然后它例示一个新的CDBean(见代码清单4)表示所选物品,并在会话内更新购物车对象。从购物车中删除商品的时序图该时序图描述了用户从购物车中删除商品随时间变化的过程。如上图所示,当顾客点击Delete按钮时,Cart.jsp将用户选择的商品信息再一次传递给第8页ShoppingServlet进行处理,并在通过它对购物车的商品进行操作。浏览购物车中的商品如上图,在用户将选择的商品添加到购物车内以后,如果用户点击购物车内的按钮预览商品时,Cart.jsp就会把用户点击的那一行商品的信息发送到Disc.jsp内,在由它进行判断该商品的序号是那一种商品,然后在显示该商品的资料.第9页结帐时序图Checkout.jsp仅从会话中取出购物车和所有请求的总数,然后显示所选的物品及总价格。显示了结帐时客户端的时序图。一旦用户结帐,购物车商品的数量、价格等参数传递给ShoppingServlet,由它在进行处理运算,并把最终的结果再传递个Checkout.jsp,再又它显示出来。第10页浏览店内的商品当客户登陆首页时,用户选择的商品完全是由数据库提供的,用户可以对菜单中的商品进行选择.4.2网上购物构件图在分析阶段,构件图表达的UML是现实世界中的实体。它是软件系统的一个物理单元,它驻留在计算机中而不是只存在系统分析员的脑海里。构件之间存在的唯一关系是构件的依赖性。构件依赖性指一个构件依赖于另一个构件。构件依赖性画成构件之间的虚线箭头。如下图箭头指的构第11页件表示被依赖,也就是说,Cart、Eshop、Checkout都依赖于ShoppingServlet。下图描述的是在网上购物系统中几个构件之间的依赖关系。网上购物购件图4.3网上购物类图在面向对象建模技术中,客观世界的实体被映射为对象,并归纳成一个个类。对于想要描述的目标系统,其类模型和对象模型揭示了系统的结构。在UML中,类图和对第12页象图表示。类图技术是面向对象的方法的核心,它表示系统中类与类之间的交互。下图显示了网上购物整个系统的类图。网上购物系统的类图上图显示了从用户登陆首页选择商品到结帐离开类之间的关系,分别由4种类图组成。上图描述的是一种把JSP与Servlet联合使用来实现动态内容服务的方法。它吸取了两种技术各自的突出优点,用JSP生成表达层的内容,让Servlet完成深层次的处理任务。也就是说Servlet在整个的第13页系统中起到了支配作用。在这里,Eshop、Cart.jsp和Checkout.jsp在系统中几乎没有任何的操作,只负责提供与用户进行交互的界面,当用户通过Eshop.jsp选择商品时,并点击按钮加入商品时,Eshop.jsp会把信息传递给Servlet,由它在进行处理后并送到购物车。Servlet充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的bean和对象,同时根据用户的动作决定把那个JSP页传给请求者。特别要注意,在JSP页内没有处理逻辑;它仅负责检索原先由Servlet创建的对象或Beans,从Servlet中提取动态内容插入静态模板。在我看来,这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。客户机页窗体Servlet服务器页如图上图所示,Class框图显示系统中类、接口、和关系的子集。典型的系统有许多不同的Class框图。在Rose中用不同的图标表示Class框图中的不同类。例如上图是用于建模Web应用程序。Rose中有许多Web模型的类版型,如客户机页、服务器页和HTML窗体。这些类放在Clss框第14页图中,和传通的类一样可以包括属性、操作和关系。象上图介绍的类图。传统的类图4.4网上购物系统介绍本系统是基于UML构建Web动态网站,所用的语言是JSP和Servlet,在此系统中虽然没那么复杂,但在功能上基本完成了添加商品、删除商品、结帐和预览商品的几个基本功能。在系统的一种把JSP与Servlets联合使用来实现动态内容服务的方法。它是两种语言最佳的结合点,用JSP生成表达层的内容,让Servlets完成深层次的处理任务。在这里,Servlets充当控制者的角色,负责管理对请求的处理,创建JSP页需要使用的bean和对象,同时根据用户的动作决定把那个JSP页传给请求者。特别要注意,在JSP页内没有处理逻辑;它仅负责检索原先由Servlets创建的对象或beans,从Servlet中提取动态内容插入静态第15页模板。在我看来,这是一种有代表性的方法,它清晰地分离了表达和内容,明确了角色的定义以及开发者与网页设计者的分工。连接类的直线显示类之间的关系。例如ShoppingServlet与Eshop.jsp就是一种继承关系,Eshop.jsp与Cart.jsp是聚集关系。其中前者包含后者。4.5网上购物状态图状态图用来描述一个特定对象的所有可能状态及引起其状态转移的事件。大多数面向对象技术都用状态图表示单个对象在起周期中的行为。一个状态图包括一系列的状态以及状态之间的转移。在这里我以购物车为例对它的状态进行分析,首先观察购物具有两个状态,车内有商品、车内无商品。然后再分析他的活动,如果选择商品,可添加到购物车内,可以继续选择商品。如果选够了商品,就从一个状态进入了另一个状态,一个状态可以加进五种信息:活动、进入操作、退出操作、事件和状态历史。活动是对象在特定状态时进行的行为。进入操作是对象进入某个状态时发生的行为。退出操作与进入操作相似,但它在退出某个状态时发生。如下图。第16页购物车状态图4.6网上购物购物车活动图活动图显示动作及其结果,它即可用来描述操作(类的方法)的行为,也可以描述用例和对象内部的工作过程。活动图是由状态图变化而来的,它们用于不同的目的。活动图主要强调的是动作。与状态图不一样,活动图中的动作状态之间的迁移于是靠事件触发的,当动作状态中的活动完成时迁移就触发,活动图中一个活动结束后将立即进入下一个活动。在下图描述了网上购物系统中购物车的活动图。和购物车的状态图相比它的活动图包含状态以外还第17页包括了购物车的几个活动,象添加商品、删除商品和结帐等等接个活动。我感觉状态图就好象活动图的整体设计,状态图可以包含几个活动图,也就是说一个状态可以引发出接个动作来。但是状态图和活动图不能想时序图与协作图之间可以相互转换。图4.8所示的就是网上购物系统中购物车的活动图。购物车活动图以上分别以购物车为例,说明了购物车的活动图和状态图。下面将分别介绍其它部分的状态图,在这里就详细描述了。第18页结帐状态图浏览商品状态图第19页网上购物首页状态图4.7网上购物的协作图协作图用于描述相互协作的对象间的交互关系和链接关系,但侧重点不同。时序图着重体现交互的时间顺序,协作图侧重体现交互对象间的静态链接关系,同时时序图与协作图之间可以相互转换。图4.8所示的就是购物车的时序图转化的协作图。第20页购物车协作图4.8网上购物的部署图部署图描述系统硬件的物理结构以及在此结构上执行的软件。部署图可以显示计算节点的拓扑结构和通信路径、结点上运行的软件组件、软件组件包含的逻辑单元等。部属图常常用于帮助理解分布式系统。在网上购物系统中,我们可以从网络上开始划分结构,该系统分为三层结构,分别针对数据库、服务器、和客户机。下图显示了网上购物系统的主要部属。第21页网上购物部署图4.8小结本章将UML建模应用到构建系统设计上,并通过八种框图,从各种角度观察系统来进行需求分析、系统设计。通过一个完整的简单例子来说明UML在整个系统设计所发挥的作用。第22页总结通过这次的毕业设计,使我对UML全新的理解,使我对UML产生了更加浓厚的兴趣,在程序的设计过程中,我发现自己的软件知识尤其是对软件的整体设计不是完全理解,对于一些细节不够了解,对知识的了解不全面,有待学习和提高。在每学期结束前,老师都会让我们设计一些程序,用我们当时或以前所学到的知识。那时就总有些困难没有基本的设计思想,完全没有按照软件工
本文标题:UML案例-网上购物
链接地址:https://www.777doc.com/doc-5430080 .html