基于UML的系统分析与设计
2010-09-09邱红丽李军豪
邱红丽 李军豪
(河南质量工程职业学院 信息工程系,河南 平顶山 467000)
基于UML的系统分析与设计
邱红丽 李军豪
(河南质量工程职业学院 信息工程系,河南 平顶山 467000)
目前,面向对象技术成为软件设计的主流设计思想。UML作为一种面向对象的可视化的统一建模语言,在软件的整个分析与设计过程中起着非常重要的作用,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。本文以网上订餐系统为例,探讨了在系统的整个开发过程中,如何使用UML作为建模语言进行系统的分析与设计。
面向对象;UML;建模;订餐系统;分析与设计
UML(Unified Modeling Language)作为一种通用的建模语言,融入了软件工程领域的新思想、新方法、新技术,在软件开发的不同阶段可以采用相同的一套概念和表示法,在同一个模型中它们可以混合使用,具有定义良好、易于表达、功能强大等优势。网上订餐系统作为一个WEB应用系统,它的分析、设计是一个复杂的过程,因此采用UML对订餐系统的分析和设计进行建模。随着网络技术的不断发展,人们对网络也有了越来越多的要求。餐饮业是一种个性化、多样化的服务产业,这种方便、快捷、个性化的网上订餐正在进入人们的生活。
一、UML建模语言
1.UML简介
UML又称统一建模语言,是一个支持模型化的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。无论分析、设计和开发人员采取何种不同的方法,他们递交的设计产品都是用UML来描述的,有利于促进相互的理解。UML能够描述系统的静态结构和动态行为:静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系;动态行为定义了对象的时间特性和对象为完成目标任务而相互进行通信的机制。UML共提供了九种不同的图形,静态图包括用例图、类图、对象图、组件图、部署图;动态图包括序列图、协作图、状态图和活动图。
2.UML的开发过程
UML的开发过程大致包括需求分析、系统设计、实现和测试几个阶段。在需求阶段,主要是建立用例图,它表述了系统参与者希望系统提供的功能。通过确定系统边界、确定参与者、确定用例和确定参与者与用例的关系四个步骤建立用例图。另外,还可以对子用例画出活动图。而系统设计阶段,是找出系统所需的类及对象,定义这些对象的属性和操作,以及它们之间静态和动态关系,其主要工作是:识别对象、为对象分类、确定类的发生和操作、确定类之间的关系、确定对象之间的交互、确定对象状态变化等,并根据实体类及其关系进行数据库设计。并且,要确立时序图,主要显示具体用例的详细流程和不同对象之间的调用关系,同时,根据用例图确定系统中使用的其他类和页面。实现是进行编程的过程,在此过程中,要进行单元测试。功能实现后,要进行集成测试和系统测试,测试主要是以用例定义的描述为依据,验证开发的系统是否满足要求。
二、基于UML的网上订餐系统的分析设计
1.系统简介
该系统以实用为目标,给客户的感觉是简单易用。需要实现的功能如下:(1)前台页面:浏览菜谱,查看餐品详情,用户登录,用户退出,用户注册,查看购物车,添加购物车,对购物车中的食品数量进行更改,添加订单,查看上一次订单。(2)后台管理:对其食品、食品类型进行增删改查,对所有提交的订单进行查看和处理,即根据订单状态(未处理,正在处理,已处理)查看、编辑和删除订单。
2.需求分析
需求分析阶段主要的任务就是画出系统用例图和子用例图,并对其进行分析。
(1)系统用例图。系统用例图见图1与图2。
(2)子用例说明及用例活动图。系统用例图设计之后,要进行子用例图的分析,同时画出子用例图的活动图,阐明业务用例实现的工作流程。以添加购物车用例为例:用户登录之后,如果要订购食品,就可以把要买的食品添加到购物车中,见图3。
3.系统设计
需求分析做好后,就要根据用例的分析进行系统设计。系统设计阶段主要包括:提取关键类图、设计用例时序图、设计数据库、界面设计。
(1)提取关键类图。关键类图就是整个系统中用到的实体类图,提取关键类图的根据就是各个子用例。从用例图中我们可以分析出需要以下实体类:
User(客户)类:包括用户姓名和密码,用户名唯一。
Food(食品)类:包括食品编号、名称、简介、价格、描述、图片和所属类型id。
FoodOrder(订单)类:包括订单id号、订餐人、送餐地址、邮政编码、联系电话、订单附言、付款总金额、提交订单时间、处理状态和用户id。
FoodType(食品类型)类:包括typeId号、食品类型名称。
CartItem(订单项)类:订单中的订单项。包括此订单项的id号、订单项的食品id、和此食品的数量,订单项所属订单的id号。
最后画出类图,并根据各个实体类之间的关系,画出实体之间的关系图。
(2)时序图设计。时序图是UML进行系统设计的重要环节,它用来显示对象之间的关系,并强调对象之间消息的时间顺序,同时显示了对象之间的交互。还以添加购物车用例为例,来说明如何使用UML语言画时序图。
描述:消费者在details.jsp或show.jsp页面上点击“订购”按钮,如果未登录跳转到login.jsp页面,否则提交请求给AddToShopCart。若按正常流程,AddToShopCart得到要添加的食品,并加入到购物车中。然后转到购物车shoppingCart.jsp页面,显示购物车中的所有食品。
(3)系统其他类和页面。设计好时序图之后,可以得到整个系统用到的其他的类和页面。比如,从图4我们可以得到控制层的AddToShopCart.java 和视图层的 details.jsp、show.jsp、login.jsp 和shoppingCart.jsp。同理,根据其他的时序图得到其他的类和页面。
(4)数据库设计。设计完实体类及其关系图之后,可以得到数据库表。如下图所示数据库关系图,进而设计各个数据库表。
(5)界面设计。使用UML设计中,界面设计也是一个很重要的环节。界面必须按照用户的需求进行设计,界面精致、风格统一且具有友好性。
使用UML进行软件的分析设计不是一个固定的模式,随着系统的不同整个过程也会有所变化。本文是根据自己的开发经验,以网上订餐系统为例,简要讲述了使用UML进行系统分析与设计的过程。
[1]杨明.面向对象的分析与设计[M].北京:科学技术文献出版社,2006.
[2]严悍,刘冬梅.UML2软件建模概念、规范与方法[M].北京:国防工业出版社,2009.
[3]徐袛祥.开发基于JSP/Servlet/JavaBean的网上交易系统[M].北京:科学技术文献出版社,2008.
TP311
A
1671-2862(2010)02-0111-02
2010-01-19
邱红丽,女,河南叶县人,硕士,研究方向:软件工程。