uml与系统分析设计(精选8篇)
1.uml与系统分析设计 篇一
基于UML的图书管理系统的需求分析与设计
摘要:本文对面向对象的概念、UML产生的背景及其基本内容进行了阐述,在对图书馆图书管理系统进行功能描述和需求分析的基础上,结合软件工程和面向对象需求分析,设计了基于UML的用例图、包图和顺序图,状态图等语言机制的图书馆图书管理系统模型。关键词: UML;建模语言;面向对象;需求分析;图书管理系统 1关于面向对象
面向对象是一种的程序设计方法,或者说它是一种程序设计类型,其基本思想是使用对象,类,继承,封装,消息等基本概念来进行程序设计。它是从现实世界中客观存在的事物(即对象)出发来构造软件系统,并在系统构造中尽可能运用人类的自然思维方式,强调直接以问题域(现实世界)中的事物为中心来思考问题,认识问题,并根据这些事物的本质特点,把它们抽象地表示为系统中的对象,作为系统的基本构成单位(而不是用一些与现实世界中的事物相关比较远,并且没有对应关系的其它概念来构造系统)。这可以使系统直接地映射问题域,保持问题域中事物及其相互关系的本来面貌。它可以有不同层次的理解:
(1)从世界观的角度可以认为:面向对象的基本哲学是认为世界是由各种各样具有自己的运动规律和内部状态的对象所组成的;不同对象之间的相互作用和通讯构成了完整的现实世界。因此,人们应当按照现实世界这个本来面貌来理解世界,直接通过对象及其相互关系来反映世界。这样建立起来的系统才能符合现实世界的本来面目。
(2)从方法学的角度可以认为:面向对象的方法是面向对象的世界观在开发方法中的直接运用。它强调系统的结构应该直接与现实世界的结构相对应,应该围绕现实世界中的对象来构造系统,而不是围绕功能来构造系统。
(3)从程序设计的角度来看,面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列。
面向对象的方法学包括了以下核心概念:
对象(object):即指现实世界中各种各样的实体。它可以指具体的事物也可以指抽象的事物。
类(class):类是具有相似内部状态和运动规律的实体的集合(或统称、抽象)。类的概念来自于人们认识自然、认识社会的过程。
消息(Message): 消息是指对象间相互联系和相互作用的方式。一个消息主要由5部分组成:发送消息的对象、接收消息的对象、消息传递办法、消息内容(参数)、反馈。
封装:对象间的相互联系和相互作用过程主要通过消息机制得以实现。对象之间并不需要过多的了解对方内部的具体状态或运动规律。面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口)与实现(用户不可见的内部实现)显式地分开,其内部实现按其具体定义的作用域提供保护。类是封装的最基本单位。封装防止了程序相互依赖性而带来的变动影响。在类中定义的接收对方消息的方法称为类的接口。
继承:类之间的继承关系是现实世界中遗传关系的直接模拟,它表示类之间的内在联系,以及对属性和操作的共享,即子类可以沿用父类的某些特征。
重载:重载是指类的同名方法在给其传递不同的参数是可以有不同的运动规律。在对象间相互作用时,即使接收消息对象采用相同的接收办法,但消息内容的详细程度不同,接收消息对象内部的运动规律也可能不同。关于UML UML(Unified Modeling Language)是在Booch方法、OOSE方法和OMT方法的基础上演化而来的基于面向对象技术的标准建模语言。它统一了面向对象建模的基本概念、术语和图示符号,描述了建模过程中所必须遵循的基本步骤,提供了一整套描述软件系统模型的概念和图形表示法,可从不同的视角为系统建模。统一建模语言UML是一种语义丰富、通用、可视化的建模语言和事实上的国际工业标准,易于理解和交流。UML提供的丰富的视图从多个视角描述系统的不同侧面,可以有效运用于软件的建模、分析与设计。标准建模语言UML的定义包括UML语义和UML表示法两个部分。UML语义通过其元模型来严格地定义。UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法来建模提供标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。UML的主要内容通常用用例图、类图、对象图、状态图、活动图、构件图、配置图、顺序图、协作图和包图等l0种图来描述,它们从不同的角度和层次为系统建模提供支持,完全可以 描述系统的方方面面。
与传统的软件建模方法相比, UML 有如下一些特点:(1)UML 是一个可视化建模语言, 是一种图形化的面向对象的设计工具语言,而不是可视化程序设计语言,但用UML描述的模型可与各种编程语言直接相连,把UML 模型映射成编程语言。在不同程序中使用同样的UML 图表类型, 因为UML 具有任意程序的独立性,定义一个标准程序不是一个UML 的目标。
(2)UML 是一种可用于详细描述的语言,其所建立的模型是精确、无歧义和完整的。同时UML是一种文档化的语言,对其各建模元素可进行详细说明,并能生成所建模型的文档。标准建模语言UML支持面向对象的分析与设计,定义良好、易于表达、功能强大。它的最大用途是利用图形来描述真实世界各个对象的符合表示,让所有系统设计者在构建系统需求分析、对象模型化定义到对象设计的整个开发过程完全标准化。3 本课题的研究意义
一个图书馆的图书资料库在正常运转中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。图书馆作为一个信息资源的集散地,图书和用户借阅资料繁多,包含着很多的信息数据。以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用人工检查,对借阅者的借阅权限以及借阅天数等采用人工计算、手抄进行,数据信息处理工作量大,容易出错和丢失。因此,建立一个智能化、系统化、信息化的图书资料库是十分重要的。使用计算机软件对图书进行管理,是计算机应用的一部分。充分利用计算机的功能,实现对读者管理、书籍管理等自动化控制,将会使图书资料库的工作强度大大减弱,可以实现图书检索迅速、可靠性高、存储量大、寿命长、成本低,能最大限度地提高图书管理的效率,也是图书管理信息化、正规化管理的必然趋势。4 基于UML的图书管理系统的需求分析与设计过程
图书管理系统的开发和应用主要通过两个步骤来实现:首先是基于系统功能的需求分析,其次是系统模型的设计和实现。
4.1需求分析
需求分析是软件工程过程的一个重要阶段,其中一个主要任务是确定系统的功能需求,采用面向对象方法,基于UML的可视化系统需求分析,因为有用户的积极参与,既可以加快设计者对于问题的理解,又能够在系统描述方面减少语义差异,保证分析的正确性。需求分析的目标就是建立需求模型,即从功能需求出发建立用例模型, UML的用例视图从用户的需求中提取,以盒图的方式描述待开发的系统的功能需求。每个用例都指定了客户的需求即他们需要系统干什么。用例图为设计活动不仅记 录需求而且还提供了一种挖掘的信息, 它记录了需求到设计结果之间的映射关系,能够确保设计结果具有明确的根据或者说具有可维护性,基于UML的软件开发过程是以用例驱动的。
首先我们进行角色识别,角色识别的任务是找出所有可能与系统发生交互行为的外部实体、对象、系统。它们的行为不受系统控制,但是可以提供输入给系统。对于一所大学的图书管理系统,基本的功能是完成图书的借阅和相关信息的管理,服务的对象有本科生,研究生,教师,及其他学校的学生,还有社会人员,这些人可归结为一类即读者。而为帮助读者顺利完成借还书的可以是工作人员,可以是自动借还书机,他们可以归结为一类即图书管理人员。因此对于一个图书管理系统主要有两类角色,读者、图书管理员。
其次,在主要角色的基础上,可以识别出与角色相应的用例,从而得到系统的用例模型。与读者相关的过程包括:借书、还书、预定、图书信息检索、借阅查询(如查询本人借书记录、还书期限、是否超期)、个人相关信息查询及修改(如学号、姓名、性别、年级、专业、家庭住址、联系电话、出生日期、民族、政治面貌、身份证号等)。与图书管理员相关的过程包括:办理借书、办理还书、解除预定、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。系统管理(系统的登陆、退出、日志维护、系统更新)。以上分析中,与读者,图书管理员相关的过程构成了本系统的基本用例。
4.2 系统的整体结构
综上所述一个图书管理系统的整体结构可以分为三大模块:图书管理模块、读者管理模块、系统管理模块。
(1)图书管理模块包括与图书相关的一些过程,主要有图书的借出、图书的归还、预定、图书信息检索、图书订购、图书相关信息管理。
(2)读者管理模块主要包括与读者有联系相关的过程,主要有增加/删除读者、修改读者权限及密码、借阅信息查询、个人信息查询及修该、借阅超期和丢失罚款。
(3)系统管理模块包括系统的登陆、退出、系统维护、系统更新。综上我们画出系统的整体结构,如图一所示:
图书管理系统图书管理读者管理图一 图书管理系统的整体结构
系统管理 4.3 图书管理系统的用例图
从以上分析中我们不难得出系统的基本用例图,如图二所示:
借书/还书预定/解除预定图书检索图书信息管理图书订购借阅信息查询个人信息查询/修改读者信息管理 读者借阅超期罚款 图书管理员系统管理图二 系统的基本用例图
图书管理和图书管理是图书管理系统的重要组成部分,为此我们按照前文所述将图书管理模块和读者模块以及系统管理模块详细精化得出如下的用例图,如图
三、图
四、图五所示:
按年代查询图书借入借出管理出版社查询图书购入作者查询图书查询书名查询图书管理模糊查询图书管理员图书信息管理类别查询信息删除信息添加
图三 图书管理模块的用例图
信息修改增加/删除读者修改权限个人信息查询/修改图书管理员读者管理读者借阅信息查询读者办理挂失图四 读者管理用例图
超期/丢失罚款
登陆/退出软件更新系统管理系统更新 管理员系统维护硬件更新日志维护 图五 系统管理模块的用例图
4.4 图书管理系统的行为图
我们再进行动态建模分析。对于图书管理系统借书还书是两个重要的过程,我们先来分析一下借书、还书的一般过程,并由借书的一般过程画出其顺序图、协作图以及活动图。
(1)借书的过程:读者刷卡进入图书馆,或者先查询图书及个人借阅信息,或者直接去挑选图书,选择好图书后进入借书程序,管理员先检查读者的借书证件,查验能否借阅,比如:证件是否无效或书籍是否已经借满等,即检验其借书的合法性和有效性,如果是非法用户或借书数量范围外,则该读者不能借阅图书。如果满足借阅要求,则再获取所借书的标题以进行库内搜索,获取书目查询此书的数量,看是否还有此书,如果没有则阻止其他借书者可能进行的预订活动,将此书借出,根据书号将此书的借阅标志位取反以表示此书已借出,并将此书的书目减1。并为此读者记录借阅日期,以及归还日期,在归还日期内未能归还和续借的,并为其记录超借天数及罚款数额。
(2)还书过程:在返还图书的过程中,管理员首先获取读者的借阅信息和被归还的书籍的信息,如书标题信息,数量等,并一一审核每本书的归还日期是否超过应归还日期。在完成阶段,将此书的书号登记并设计标志位为已归还,以便读者网上预订和继续借阅,同时将此类图书的数量加1,如果读者超期或丢失所借书籍,则要进行赔偿处理。
所以我们不难画出借书一般过程的顺序图,如图六所示:
图书管理员读者信息图书信息修改图书借出刷卡进入并选书核对读者信息 图书扫描并消磁修改读者借阅信息图六 借书一般过程的顺序图
有顺序图可得到协作图,如图七所示。仔细分析借书过程的细节,可以画出如图八所示的活动图,它表示了复杂算法的过程,尤其是过程中的判断、并发和同步。
刷卡进入 读者挑选图书图书管理员 核对信息图书信息修改图书扫描 消磁读者借阅信息 修改读者信息图书借出
图七 借书一般过程的协作图
读者 管理系统N禁止入内刷卡是否为本馆服务对象Y输入卡号/密码选择图书N卡号密码正确?Y个人信息查询/修改Y借阅信息查询图书检索刷条形码显示读者相关信息能否借阅N确定借书NY刷图书条码更改改读者及图书的借阅信息退出是否借阅完毕YN图八 借书过程活动图
以上我们用多种语言机制分析了读者的主要相关事件流,下面我们绘制图书管理员使用系统的状态图分析图书管理员的主要事件流。从以上分析可知,图书管理员相关的过程包括:办理借书、办理还书、解除预定、图书订购、读者信息管理(增加/删除读者、修改读者权限及密码、借阅超期罚款)、图书信息管理(增加/删除数目、图书类别等相关信息的修改、流通情况)。由此我们可绘制如图九所示的图书管理员使用系统的状态图:
登陆关闭办理借书修改图书信息办理还书增加数目图书预留取消增加加读者解除预定删除读者查询数目存储信息修改读者权限查询读者信息图九图书管理员使用系统的状态图
4.5 图书管理系统的静态图
定义并描述了各个类后,我们可以根据实际情况引入包来管理类,本图书馆管理系统可以划分为四个包:用户管理:对系统用户进行管理,为用户提供信息服务接口,便于对系统进行操作。借阅管理包括借书处理,还书处理和罚款处理等。读者管理包括对读者图书等信息进行维护,主要有读者信息的增删,对图书更新资料进行维护。系统服务:包括系统登录检查,安全维护等。系统的包图如图十所示:
用户管理借阅管理读者及图书管理系统服务 图十 系统包图 4.6 图书管理系统的实现
经过系统分析和设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行系统。进而需要对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。测试结果将确认所完成的系统可以真正使用。参考文献
[1] 齐治昌.谭庆平.宁洪.软件工程.北京:高等教育出版社 [2] 张海藩.软件工程.北京:人民邮电出版社
[3] 董翔.基于UML的图书管理系统的开发和应用.科技情报开发与经济2008年第l8卷第l2期 [4] 吴开华.邢养晓.罗德撤
.数字图书馆元数据研究[J].中国图书馆学报,2002,(3).
[5] 刘治国.构建基于B/S结构的图书管理系统[J].信息技术,2005(3):72—73. [6] 管斌.袁国忠 译.用例驱动的UML对象建模应用-范例分析.北京:人民邮电出版社 结束语
本文以一个图书馆图书管理系统开发为背景,针对图书馆对图书资源进行有效利用和管理的功能需求,采用统一建模语言(UML)对图书资源进行面向对象的描述,通过利用统一建模语言UML中的各种图形,分析和设计图书管理系统,建起了图书管理的面向对象模型,探讨了基于UML的体系结构建模及其实现问题。由建模过程可以看出UML在体系结构建模方面存在很好的优势,不但从整体上正确描述了该图书管理系统的体系结构,并且可以充分利用UML面向对象的优势,从而实现整个软件系统面向对象的分析、设计与开发,大大缩短开发周期,最终使得项目成功完成,此管理系统节省了管理人员和读者的大量时间,有利于信息处理效率的提高。鉴于篇幅有限,本文只对主要部分和主要过程做了介绍,限于水平,欢迎各位读者对本文的缺点、错误提出批评。
2.uml与系统分析设计 篇二
一、数字图书馆基本特征与信息系统的结构
数字图书馆组织了一系列与平台无关、面向对象、分布式的数字化信息资源并且提供相关的服务。
当前的数字图书馆有着急速倍增的数字化资源,数字化的资源又是以文字、图像、音频、视频、虚拟空间等多媒体形式不断涌现,其信息量是GB、TB甚至PB为度量单位,并具有多种存储和压缩格式。因此要具有相应的、完善的管理与服务。
现代化的数字图书馆要为用户提供较为统一的访问手段,用户能够透明方便地获取所需的信息而不必关心这些信息的具体位置。对数字资源的检索应该是智能化、交互式的,对全文、多媒体信息、多语言信息的检索都可以达到很好的查全率和查准率。数字化资源并不是孤立的,而是相互关联的动态的。数字图书馆是数字化资源的统一,可以通过一定的相关关系,由特定的协议和存取方法来查找和访问这些数字化资源。
数字图书馆建立在异构平台上,具有分布、开放的信息结构,高速、可靠的网络环境是其运行的基础。它突破了时间、空间的限制,让用户可以在任何地方、任何时间获取自己所需的信息。在此基础上提供的导航式和个性化的服务,使服务内容更多样、服务模式更广泛,这是对传统图书馆服务功能的突破。
UML是一种表达能力丰富的、强有力的建模语言,可以在此构架基础上组织系统化建模。
图书馆管理信息系统按管理职能可分为三部分:租借系统、购买系统、管理人员系统以及服务问题反馈系统等。这几部分既相互自成系统,又互相联系缺一不可,共同组成一个完整的图书馆管理信息系统。
数字图书馆的模式可以用图1简单说明。可以看到,数字图书馆的内部基本组织结构为:管理系统通过网络和通信系统,连接到数字图书馆的各个子系统,通过信息的交流及时获取和掌控各种信息资源,属于典型的信息集成管理系统。
具体在某一个子系统中信息管理应用UML进行软件开放,要对实际工作流程进行周详调查和分析。分阶段地建立需求分析模型、静态模型、动态模型、软件设计与测试。
二、UML信息管理系统的流程与应用
1、以图书流通子系统为例
下面模型中的指向过程代表外部与系统交互的单元,包括用户、图书馆工作人员及信息源。
图书流通系统用例图,用来描述系统边界和主要功能,并指出各功能的操作者。借书处理过程的活动流程不能在用例图中表示出来,要使用活动图还表示这种动态属性。活动图实质上是一种流程图,只不过表现的是从一个活动到另一个活动的控制流,活动图描述活动的序列,并且支持对带条件的行为合并发行为的表达。
2、图书馆管理系统的主要图书流通业务的事件流程
(1)验证借书者的身份;(2)查该图书库存量;(3)使用图书管理系统登记出借资料;(4)记录借书者信息;(5)更新图书数据库。
在构建阶段完成后,可以进入软件编程的实现阶段以及测试。我们可以选择Java编程语言作为实现系统的软件支持,因为Java具有跨平台性,能满足本系统可以运行在各种处理器和操作系统平台之上的要求,且它很容易实现从UML逻辑视图到代码部件的映射,大大提高编程人员的工作效率。利用Rational Rose提供的正向工程生成Java代码框架,再根据具体的细节添加代码。
3、编写代码时,从下面的UML设计模型图中取出规范说明
(1)类规范:每一个类的规范都详细地显示了必要的属性和操作。
(2)类图:类图由类构成,显示了类的结构以及类之间的相互关系。
(3)状态图:类的状态图显示了类可能具有的状态以及需要处理的状态转移(或触发转移操作)。
(4)动态图(序列图、写作图与活动图):涉及类的对象,显示了类的特定方法的实现过程,或对象之间如何使用其它类的对象进行交互。
(5)用例图与规范:当开发者需要了解更多的关于系统如何被使用的信息时,它们可以显示出系统被使用的结果。
设计中的某些缺陷可以在编码阶段发现。如果需要一些新的操作和修改某些新的操作,开发者就必须调整或改变设计模型。这种调整或修改在所有的工程中都会发生,最重要的是将设计模型和代码同步,以使模型成为系统的稳定的最终文档。
经过系统分析与设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统。需要对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。测试的结果将确认所完成的系统可以真正使用。最后系统配置的任务是在真实的使用运行环境中配置、调试系统,解决系统正式使用前可能存在的任何问题。
三、结语
UML是一种绘制软件蓝图的标准语言。用于对软件系统的各种成份的可视化、说明和构造系统模型,以及建立软件文档。本文以图书管理系统为开发背景,运用UML面向对象建模机制对系统进行分析设计。从中可以认识到使用统一建模语言UML开发应用系统的方法和过程,对开发管理系统有一定的借鉴作用。
摘要:随着社会信息量积累速度的加快,图书资料的系统管理的现代化工作十分迫切。目前传统图书馆纷纷向数字图书馆转变和过渡,在这个转变过程中可以借助UML的信息化技术,以实现对信息资源最有效的利用和共享。
关键词:图书馆管理,数字化系统,UML
参考文献
[1]Rational Software Corp.UML Summary.[EB/OL].URL[DB].<http://www.rational.com/uml>.
[2]OMG Unified Modeling Language Specification(Draft)URL[DB].[EB/OL].<http://www.omg.org/uml>.
[3]薛华成.管理信息系统(第三版)[M].北京:清华大学出版社.1997.8.
[4]郑巧英.数字图书馆的一种模式-网络图书馆[J].现代图书情报技术,2005(2):30~33.
3.uml与系统分析设计 篇三
【关键词】网络报名;智能;考务系统;UML网络
随着计算机网络的快速发展,计算机网络技术逐渐渗入到社会生活的各个层面。在教育领域,由于引入计算机网络技术使得传统的教育方式也发生着变革,教学手段不断发展变化,作为教学重要环节的考试方式也正在随着计算机网络技术的进步在不断的更新发展。计算机网络考试简化了传统考试的过程,节省了出卷、批改试卷等工作所需的精力和时间,具有组织考试简单方便的优点。
在各类系统软件开发过程中,一般通常采用较为成熟的开发模型和编程语言。采用成熟的软件开发模型和设计模式能够有效地降低软件开发的复杂性,妥善处理项目中遇到的变化,减小失败的风险, UML就是能够满足这些要求的很好的工具。 UML作为统一建模语言,提供多种基本的模型图,通过对这些图的综合运用,能够刻画出整个系统的全貌。 UML的目标是以面向对象的方式描述各种类型的系统,适用于从需求规格描述到系统完成后进行测试的各个阶段。在考务系统开发中,使用UML进行系统分析和设计,可以加速开发进程,提高代码质量,支持动态的业务需求,能促进软件复用,使系统功能层次清楚,角色任务明确, 便于开发团队沟通,可以提高工作效率,保证系统设计的可靠性。
1.UML的系统分析及设计方法
UML通过三类图形建立系统模型:用例图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图)。运用UML进行面向对象的系统分析设计,其过程通常由以下三个步骤组成:
首先,确定需求分析。主要是分析系统的角色及用例。依据软件项目的业务流程、数据流程及用户种类,分析识别出系统中的所有角色和用例。用例是从用户的角度描述如何使用系统。用例封装了系统要执行的一系列操作步骤,能够帮助系统分析员和用户确定系统的使用情况。用例模型的建立是系统开发者和用户反复讨论的结果,表明开发者和用户对需求规格达成共识,用例是使用UML语言设计系统的起点。
其次,系统分析并抽取类。系统分析的任务是在用例基础上找出系统的所有需求并加以描述,同时建立域模型。使用UML建模工具画出类图表现系统的静态结构,以及画出协作图、状态图、序列图、活动图表现系统的动态特征。活动图是在用例图之后的系统分析阶段对系统进行充分描述的工具,它在面向对象系统的不同组件之间建模工作流。使用活动图能够演示出系统中存在的功能和不同组件的功能如何共同满足用例图建模的商务需求,帮助用户了解系统的执行以及如何根据不同的条件和刺激改变执行方向。
最后,系统设计类及其行为。设计阶段由结构设计和详细设计组成。根据系统需求分析,建立系统的顶层用例模型,捕获整个系统的功能,借助UML的各种静态和动态模型从各个角度对系统作进一步的分析和设计,深入分析系统的要求和实现目标,以及系统的动态特性,划分出系统的结构层次。
2.网络智能中职考务系统的设计与实现过程
网络智能中职考务系统(NITS)包括系统维护、考生在线考试两大子系统,其中考生在线考试子系统则包括考生登录、自动随机出题、自动判卷三个子模块;系统维护则包括考生管理、题目管理、成绩统计、数据备份四大子模块。对于每一个子系统,都具有相应的模型,即不同的UML图。NITS系统是针对中等职业学校的考试而准备的,其基本要求是实现考生在线答题、自动判卷、自动成绩统计和数据备份。
2.1NITS需求分析
网络智能中职考务系统的功能需求,其需求简要概括如下:
考题分类显示:考试的题型分为单选题、多选题、判断题三种题型。当考生登录后进入考试答题页面时,系统则能够把数据库中存放的题型进行分类,并随机抽取,当前的答题页面中给予显示。
自动判卷:在考生答题完毕后并将所选试题的答案提交,系统则根据考生的试题答案对其进行自动判卷并把成绩存入数据库。
网络智能中职考务系统后台管理功能:系统管理员可以向数据库录入考生基本信息、试题、以及对考生的成绩进行统计,自动对考生的成绩进行排名,同时可以自动生成报表进行打印和数据备份。
在该系统中,考生在线考试管理用例和管理员管理用例是主要的用例。考生在线用例(见图1所示)基本描述了在线考试系统主要的功能,将这些基本功能实现,就形成了一个简单的在线考生考试管理系统。而管理员管理用例包括了在线考试管理系统中的全部角色和用例(见图2所示),描述了考务管理中心办事员的所有任务。
图1考生在线考试管理用例
图2 管理员管理用例
2.2NITS分析并抽取类
分析模型的建立在整个项目的开发中占有至关重要的位置。因为这是一个将用例模型转化成类的阶段,是将系统功能如何用类实现的阶段。整个项目开发的后续工作,都是分析模型的基础上进行的。所以,在项目的开发过程中,要确保该阶段工作的质量,严格完成该阶段的各种UML图。在这个阶段,首先找出考试管理系统中涉及的主要类,并且结合用例模型中的用例,将类与用例有机结合起来。对系统中的类建立相应的类图,表示各个类之间的关系。如何让用例与类进行结合,则需要建立相应的序列图、协作图进行建模。
分析模型的建立,并不是一个或几个类图所能实现的,为了对系统进行充分建模,对于每个的项目可以选用不同的建模元素和建模机制。在此考试系统的建模中,我选择了类图和序列图来构建对应的分析模型。在分析模型中给出的类图,并不需要详细定义方法和属性。在考试管理系统的分析模型中,通过对该系统的分析和几次迭代,找出了考试管理系统中的类,并给出了如图3所示的类图和各个类之间的关系:
图3考生考试类图
在上面给出的类图中,选择了Rose提供的三种类表示,即边界类、控制类、实体类,还表示了各个类之间的关系。边界类是用户交互的界面类的抽象;控制类是系统中的计算、控制类的抽象;实体类是存储数据类的抽象。
序列图和协作图是等价的,到底采用什么建模元素,完全取决于项目的实际需要。而且这两种图只需要构造一种就可以。在一般的实时系统中,采用序列图,,能够清楚地看到每个对象间交互时的时间与顺序关系。而在不强调时间与顺序的情况下,可以使用协作图来表示对象间的关系。在对考试管理系統的动态建模中,根据用例的不同情况,可以选择两种建模机制。当强调时间或顺序时选择序列图来表示;否则选择协作图来表示用例在系统运行时的动态执行情况,其序列图如图4所示:
图4 考试序列图
在创建用例的序列图过程中,应该注意每个类的初级设计,即发现每个类的方法和属性。而且,在此阶段发现的类属性和设计都是非常重要和关键的。对于这个阶段发现的方法和属性不需要进行严格的定义,可以将对方法和属性的严格定义放在设计阶段去完成。但对每一个发现的方法和属性应该记录下来,使用文字进行详细的描述。
2.3NITS设计与实现
在设计阶段的工作是根据分析模型,建立相应的设计模型;确切地说,是定义分析阶段所确定的每个类,即定义每个类的方法和属性,并确定每个成员的可见性,可见性包括每个类成员是私有的、保护的、还是公有的。考试管理系统中各个抽象类之间的关系,它仅在考试管理系统的域中确定。考试管理类图中,类图中的每个类只有名字,而没有属性和方法;目的是减小类图的大小,使之比较清晰。通过对每个类的不断细化,确定了每个类的方法和属性后,设计阶段的UML模型也全部完成,下一步工作就是如何实现系统。
NITS系统是一个包含多个子系统的考试管理平台,各个子系统最后实现为一个独立的DLL。由于考试管理子系统中各类在最后的实现中。每个类都包含两个文件,一个头文件和一个实现文件。因此在最后的实现模型中,使用了组件图和配置图来表示该NITS系统的实现模型。配置图用来表示NITS系统实现模型的另一个图是配置图,配置图定义了NITS系统中软硬件的物理体系结构。如图5所示:
图5 NITS系统配置图
在图5中,NITS系统分布在各个不同的客户端,数据库放置在服务端。在硬件结构上,服务器为一个独立的机器,每个客户端为一个单独的PC机,服务器和客户端通过局域网相连。
NITS系统是由一个子系统运行平台和五个子系统组成。其中系统运行平台提供其它子系统的一个运行平台与框架,其它子系统最终都设计成一个CLASS,每个子系统的运行都必须在该系统运行上进行动态加载。子系统运行平台主要提供用户登录,与数据库服务器的连接,子系统的更新以及提供其它子系统的运行环境。子系统运行平台是一个可执行程序,任何一个子系统都不能跨越它而进行启动操作。整个NITS系统的总体结构图可以表示如下图6所示:
图6NITS系统总体结构
从图6所表示的系统实现模型中可以看出,各个子系统与系统运行平台以及整个NITS系统与数据库服务器之间的关系。
在编码实现阶段,可以从已经建立的各种UML模型中得到所系统的详细信息,发现设计模型中漏掉的的不足和缺陷。因此,在这种情况下,则需要对类增加新的方法/属性或者修改已有的方法/属性,并且对设计模型进行相应的修改,保持设计模型和编码的同步。这样,创建的各种模型就成为系统的最终文档。
3.结论
UML作为从不同角度观察和展示系统各种特征的一种标准方法,为软件的开发者,包括领域分析专家、系统分析员、软件设计和开发人员提供了一个实用、全面的工具。本文在UML模型的基础上,实现了NITS系统表明:UML是新时期软件开发出现的一个标准建模语言, UML的各种建模元素和建模机制,为实现由传统的考试向现代网上在线考试转变的思路,设计网络考试系统,無纸化考试提供了条件。
【参考文献】
[1]Joey F.George,等.梁金昆,译.面向对象的系统分析与设计[M].北京:清华大学出版社,2005.
[2]郑子儒.UML在网络考试系统设计中的应用[J].辽宁师专学报,2007,(3):46.
[3]鲁向前.基于UML的网络考试系统设计[J].企业技术开发,2006,(8):12-13.
[4]车艳,李少芳.基于网络考试系统的UML建模[J].佳木斯大学学报(自然科学版),763-765.
4.uml与系统分析设计 篇四
关键词:计算机技术;嵌入式系统;UML语言
UML语言又被称为标准建模语言,主要是被用来进行软件开发与支持模型化的计算机图形化的语言。在软件开发过程中,可以通过标准建模语言提供的可视化与模型化支撑进行软件规格、配置及构造的最优化。与此同时,它还是一种易于表达、功能强大、定义良好的建模语言,基于这些优势,将UML语言应用到嵌入式系统的开发设计中,能实现目前用户对该系统的功能、体积、功耗及可靠性的要求。
1嵌入式系统应用背景的产生
嵌入式系统是基于计算机技术,融合了电子技术、半导体技术,并对应用领域实际需求产生的一种具有功能强大、可塑性强及应用广泛的知识集成系统。由于该系统自身的优势,因此,被广泛应用于技术、资金密集的工业生产中。目前,市场中的电子产品、汽车、数码等都应用了嵌入式系统进行生产。嵌入式系统最早形成时还形不成“系统”概念,因为最初的嵌入式系统主要是依靠单片机运行的,只能执行单线程的工作程序[1]。随着计算机技术及商业社会的发展需求,嵌入系统初步形成,可以运用计算机嵌入式系统进行应用软件的编辑,执行任务管理和内存管理等功能。发展到至今,嵌入式系统已经可以实现实时的多任务操作,成为目前应用软件开发的主流,发展与应用前景广阔。
2UML语言及其框图的应用模式分析
UML语言是一种应用于计算机系统编程的可视化建模语言,在具体应用操作中可以实现满足用户对系统需求的刻画、分析、设计集成以及实现和测试,实现系统功能的构建更加合理[2]。UML建模语言可以将建立的模型数据信息运用标准的图形元素直观地展示在用户、测试人员、管理人员以及开发人员或是其他项目相关人员面前,使他们可以对系统的功能、结构设计进行更好的交流,实现对系统的良好构建。目前,市场上最为常用的建模语言主要有Booch、OMT及UML三种语言,相较于其他两种建模语言来讲,UML语言更加简化,操作简单、适用范围广泛,因此,被许多企业采用。UML语言不仅可以对静态的结构进行建模,还可以对具有动态行为的系统进行建模,因此,适用于系统的全部开发阶段。UML语言是一种可视化的建模语言,因此,该语言中的所有语素都是由一个个的框图组成的。系统设计人员应用在UML语言时,就是通过对框图的描述来实现对整个系统的设计。UML语言的框图有很多种,现针对几种主要框图进行分析。BusinessUseCase框图与UseCase:这两种框图所对应的语素不同,BUC框图所代表的语素主要是对整个系统的机构功能进行描述;而UC框图则主要是根据用户对系统的需求,进行系统功能描述。因此,经常被用来与客户之间进行交流,提取有效建构信息。Class框图:此种框图是一种静态图,代表语素主要被用来对系统中的类进行描述。通过对该框图的观察,可以清楚地了解系统中类的内容、功能以及结构关系。StateChart框图:该框图主要被用来对建模对象的状态及各个建模对象之间的转换关系进行描述,主要用来提供建模系统的动态功能[3]。此种框图在实际应用中被广泛运用到系统的实际建立中,可以生成系统构建所需的全部代码。Collaboration框图与Sequence框图:这两种框图都是对系统对象之间的相互关系进行描述的框图。但Sequence框图在进行描述时主要以时间顺序进行,而Collaboration框图则是针对系统角色与显示对象之间的交互进行着重描述。通过Collaboration框图,可以让系统建筑师与质量保证工程师及时了解分析对象的分布情况,若出现不合理状况,系统建筑师便可及时进行调整或重新分配。UML语言中包含的这些框图,在进行系统设计、建模以及分析的过程中,会提供多种不同的图片表达形式,因此,可以用在系统开发的不同阶段。将UML语言中的这些框图应用在嵌入式系统开发中,通过它们之间的有机结合可以构建出一个功能完整、一致的高效系统。
3UML语言在嵌入式系统中的有效应用
3.1以车载GPS终端为例
嵌入式系统在各个领域被广泛应用,在本文中,我们以车载GPS终端为例进行UML语言在嵌入式统中的有效应用研究[4]。机动车的车载GPS终端是用来进行实时定位的装置,被广泛应用在出租车或运输车这类需要进行调度、定位的车队中。该终端的功能实现主要通过车载GPS终端与卫星进行实时的信号传输,实现对机动车位置的掌握,进而进行准确定位。准确定位后,再通过无线通讯网络将机动车位置反馈给远程的中心系统。此时,中心指挥系统就可以清楚掌握终端反馈的位置信息,实现对机动车的远程控制与跟踪。在机动车遇到特殊情况时,中心系统可以通过终端对车辆进行控制,实现车队的正常运行。与此同时,若是车辆遇到险情,车载终端还可以起到电话功能,进行远程报警。
3.2进行嵌入式设计时对UML语言的需求分析
运用UML语言对嵌入式车载GPS终端系统需求进行分析时,可以通过UseCase框图进行系统功能分析。UseCase框图在进行系统功能表达时,在图中显示的车载GPS终端系统功能需求将其分为两部分来展示,即角色与案例。所谓的角色就是指与系统之间进行交互的人和物,而其中的案例则是用来表示系统所提供的功能块。通过UseCase框图对系统进行观察,可以帮助人们将系统实现与系统目标进行分离,因此,可以使系统开发人员详细了解系统的重要组成部分。最后,设计出的系统功能能实现用户的需求,而不会使设计人员在系统细节实现上过多地浪费时间[5]。通过观察UseCase框图发现,车载GPS终端中的角色定位主要有两类,即车载终端的用户与监控中心的用户。车载终端的用户可以通过终端进行报警。而监控中心系统的用户则可以通过系统查询车辆位置信息及发送调度信息。
3.3通过UML语言对产品进行规格说明
对系统的规格说明要求要比需求分析的显示更为详细,因此,运用UML语言进行嵌入式系统的设计,可以使系统规格说明更加清晰与直观。在对车载终端系统中的规格进行说明时,首先、可以通过Class框图进行描述。该框图可以对系统处理的数据结构进行描述,对接收到的GPS卫星信号进行描述。其次,Class框图在进行规格说明时,还要将系统进行功能模块划分,并且找出所有系统,对主要对象进行识别。之后再通过UML语言中的Collaboration框图对各对象之间的关系进行描述。最后,在进行规格说明的业务描述时,也就是对规范的操作系统完成主要功能流程的显示,此时,可以运用UML语言中的Activity框图进行展示。
4结语
通过对嵌入式系统开发需求以及UML语言的功能进行分析,发现利用UML语言进行嵌入式系统设计可以满足提高该系统的开发速度与产品质量要求。与此同时,还可以增加系统设计的可重复使用性,实现了对系统设计的优化及利用,满足了用户对系统的各项需求,具有广阔的应用前景。
参考文献
5.uml与系统分析设计 篇五
房地产销售管理系统是针对传统房地产企业管理模式与业务手段中逐渐表现出的效率低下、信息滞后、规范与执行力差等特点,利用先进的IT信息技术,结合房地产企业自身管理思想和模式,参考一系列大型房地产企业管理经验,帮助房地产企业实现在波动的大环境下,保持稳定、健康的可持续性发展的信息化管理软件。房地产销售管理软件在重视系统功能的全面性,流程的可控性,技术的先进性的同时更要注重系统的易用性。下面就将介绍一个简单的房产销售系统的建模方法。
1需求分析
房产销售系统的需求分析简述如下:
(1)客户可以通过网上和前台预定房子。
(2)客户注册后,可以查看房子信息;看到自己满意的房子可以提交预订单。(3)职员审核验证订单,如果客户资料无误,通过预定单并更新房产状态;否则拒绝订单请求。
(4)客户收到订单通过消息后,预付购房款,获得订单成功通知。
(5)客户来签订房产合同时出示通知,职员查看无误后,要求客户支付购房首款,并填写工作记录。
2系统建模
在系统建模以前,我们首先需要在Rational Rose 2007中创建一个模型。并命名为“房产销售系统”,该名称将会在Rational Rose 2007的顶端出现,如下图4-1所示。
图 4-1创建项目系统模型
2.1创建系统用例模型
创建系统用例的第一步是确定系统的参与者。房产销售系统的参与者包含以下两种:
(1)客户(2)职员(3)管理员 三个参与者如图4-2所示。
客户职员管理员
图4-2 系统参与者
然后,我们根据参与者的不同分别画出各个参与者的用例图。
1.客户用例图:客户在本系统中可以进行个人信息注册、预订房子、查看房产信息、支付购房预付款等操作,通过这些活动创建的客户用例图如图4-3所示。
个人信息注册楼盘信息查询查看房产信息客户户型信息查询预订房子支付购房预付款
图4-3 客户用例图
2.职员用例图:职员在本系统中能够进行系统登录、处理预订单、查询房产信息和录入房产信息的相关操作,通过这些活动创建的职员用例图如图4-4所示。
系统登录<
图4-4 职员用例图
3.管理员用例图:管理员在本系统中能够进行登录系统,审核客户注册请求,查看客户资料,删除账号的相关操作,通过这些活动创建的管理员用例图如下图所示。
登录系统<
图4-5管理员用例图
2.2创建系统静态模型
从前面的需求分析中,我们可以依据主要的八个类对象:房产、客户、职员、管理员、请求订单、工作记录、客户资料和服务记录创建完整的类图如图4-6所示。
图 4-6 系统类图
2.3创建系统动态模型
系统的动态模型我们可以使用交互作用图、状态图和活动图来描述。
2.3.1 创建序列图
1.管理员审核客户注册账号的活动步骤:(1)客户提交申请注册资料(2)管理员核实客户资料(3)添加客户(4)返回添加成功消息(5)通知客户注册成功。根据以上步骤创建的序列图,如下图4-7所示。
图4-7管理员审核客户注册账号序列图
2.客户签订购房合同的活动步骤包括:(1)客户出示预订单的通知(2)职员查看通知无误(3)客户支付购房首款(4)职员填写工作记录(5)更新房产的状态(6)客户签订购房合同。根据以上步骤创建的序列图,如下图4-8所示。
图4-8客户签订购房合同序列图
3.客户预订房产的活动步骤包括:(1)客户填写预订单(2)职员检查预订单并检查客户资料(3)办理预定房产订单的手续(4)完成手续后,建立新的客户手续(5)同意房产预定请求(6)通知客户。根据以上步骤创建的序列图,如图4-9所示。
图4-9客户预订房产序列图
2.3.2 创建活动图
我们还可以利用系统的活动图来描述系统的参与者是如何协同工作的。房产销售系统中,根据管理员、客户和职员的活动步骤我们可以创建活动图如下图4-10所示。
图4-10 系统活动图
2.3.3 创建状态图
在房产销售系统中,从客户开始发送预定请求道最后客户签订购房合同为止,整个系统的状态图如下图4-11所示。
图4-11 系统状态图
2.4创建系统部署模型
对系统的实现结构进行建模的方式包括两种,即构件图和部署图。
房产销售系统的部署图描绘的是系统节点上运行资源的安排。包括三个节点,分别是:客户端浏览器、Http服务器、数据库服务器,创建后的部署图如图4-12所示。
6.档案管理系统UML实训报告 篇六
1.实训名称..........................................................2 2.实训题目..........................................................2 3.实训目的..........................................................2 4.实训内容及结果....................................................2
4.1档案管理系统需求分析.....................................................................................................2
4.1.1系统功能需求...................................................2 4.1.2用户管理模块...................................................5 4.1.3系统参数设置模块...............................................5 4.1.4借阅管理模块...................................................6 4.1.5案卷管理模块...................................................6 4.1.6文件管理模块...................................................7 4.1.7数据管理模块...................................................7 4.2系统的UML建模...............................................................................................................8
4.2.1UML初始模型....................................................8 4.2.2业务建模.......................................................8 4.2.2.1业务用例模型.............................................8 4.2.2.2业务分析模型............................................15 4.2.3分析模型......................................................18 4.2.3.1参与者..................................................18 4.2.3.2用例....................................................18 4.2.3.3用例图..................................................19 4.2.3.4时序图..................................................20 4.2.3.5协作图..................................................24 4.2.3.6状态图..................................................26 4.2.3.7分析类图................................................27 4.2.4设计模型......................................................29 4.2.4.1包图....................................................29 4.2.4.2类图....................................................31 4.2.4.3组件图..................................................33 4.2.4.4部署图..................................................33 4.2.4.5数据建模................................................33 5.实训小结.........................................................39
1.实训名称
信息系统分析与综合课程设计
2.实训题目
档案管理系统
3.实训目的
通过实践使学生更深入地了解与掌握信息系统的概念、分析设计信息系统的原理和方法,使学生熟练掌握结构化系统分析与设计的方法。为学生今后在使用、管理与开发管理信息系统打下基础。
4.实训内容及结果
4.1档案管理系统需求分析
4.1.1系统功能需求
档案管理系统是一套功能强大,操作简便、实用的自动化管理软件,包括用户管理、系统参数设置、档案数据录入(分为文件录入和案卷录入两部分)、案卷数据查询(分为文件查询和案卷查询两部分)、借阅管理、数据维护(分为数据备份和数据操作)、操作日志查看、报表打印等。可以用于一般的档案室,也可用于网络中的办公系统,进行联网操作。本档案管理系统主要针对某档案室的具体业务流程开发设计,系统提供了较好的功能扩充接口。开发档案管理软件是为了满足该档案室对档案管理和业务管理的方便,以现代化的创新思维模式工作。下面概括一下本档案管理系统大致的功能需求。用户登陆 在用户进入系统前,首先要求用户进行登录,登录是要验证用户名和密码是用户的登录密码要求机密保存在数据库中。用户登录后需要记入到日志库否匹配,验证通过后允许用户进入本系统操作。用户的密码需要进行加密算法。中。修改注册信息 用户登录后,可以修改自己的注册信息,包括修改用户密码,每页显示行数等信息,不允许修改用户名、姓名和部门等信息。
权限设置
本模块只有系统管理员可以操作。
管理员可以增加系统用户、删除系统用户、修改用户的相关属性、修改用户的权限表。
系统参数设置
本模块设置系统的辅助参数表,这些参数表是输入数据时作为辅助使用的。每个参数表需要有增加、删除、修改和查看等操作。
数据录入 本模块处理用户输入新的档案文件信息或者档案案卷信息。
输入数据时要考虑用户连续录入的情况,可以从上一条记录复制数据到新的记录中。
不同的档案不同的输入情况,比如科技档案只有文件信息,没有案卷信息。输入案卷信息之后可以接着输入此案卷下的文件信息,案卷信息中相应的字段带入文件信息输入界面,且不可更改。
数据维护
本模块需要具有“数据维护”的权限的用户可以操作。
数据维护模块对已经“删除”(只是做删除标记)的档案文件做最后的判定,判断该文件是否要删除。此模块涉及两种操作:回复和彻底删除。
数据查询
按用户输入的条件查询相应的档案文件信息。
查询结果以列表目录形式显示,也可以卡片形式显示。具有档案处理权限的用户可以对查询的结果编辑并保存,也可以“删除”(做删除标记)档案文件记录。
数据修改
本模块主要实现批量修改数据的功能,可以有用户指定条件,将数据库中所有符合条件的文件或案卷记录按要求修改某个字段的值。
例如可以指定将所有文件年份为“2002”的文件记录的保管期改为“长期”。报表打印
打印各种档案的目录表和统计表。可以由用户设计进行报表的自动生成。
档案借阅
此模块分为外借登记、归还记录和电子借阅申请处理两部分,具有“借阅管理”权限的用户可以操作此模块。
外借模块实现档案文件的借出登记和归还登记功能。
电子借阅申请由具有“借阅管理”权限的用户处理,一般用户提出阅读电子文档的申请后,被同意阅读后,文件将被发送给申请人。
数据备份及恢复
本模块需要实现数据的备份和恢复机制。
数据备份操作可以按、档案种类等条件做部分备份或完全备份。数据恢复就是将备份的数据恢复到数据库中。
可以对数据进行备份和恢复,备份的路径在系统参数设置中指定。备份生成一个XML文件,恢复的时候自动由此恢复。具有批量备份和恢复功能。
查阅操作日志
本模块对系统运行日志操作,具有“日志操作”权限的用户可以进入本模块。可以尽心查看日志记录等操作。
下图为整个档案管理系统的功能需求。
图1 档案管理系统的功能需求
4.1.2用户管理模块
用户管理模块包括如下图2所示几个部分
图2 用户管理模块
添加用户:管理员可以对用户进行添加操作。
删除用户:管理员可以对已有用户进行删除操作。
查看用户权限:每个用户都具有一定的权限,管理员可以查看用户的管理权限。
修改管理权限:管理员可以修改用户的管理权限。
添加管理权限:管理员在权限管理中可以添加管理权限。
删除管理权限:管理员在权限管理中可以删除管理权限。
4.1.3系统参数设置模块
系统参数设置模块包括如下图3所示几个部分
图3 系统参数设置模块
系统表:管理员可以修改单位名称和卷宗号并保存。
档案种类表:对档案种类进行添加、删除操作。
文件种类表:对文件种类进行添加、删除操作。文件类目表:对文件类目进行添加、删除操作。
其他参数表:对其他文件进行编辑、删除操作。在编辑时可以修改附件存放路径和备份文件存放路径。
4.1.4借阅管理模块
借阅管理模块包括如下图4所示几个部分
借阅登记:输入借阅条件后就可以申请借阅登记。
借阅查询:提供对所借出案卷的查询工作,对归还日期做详细说明。
网上借阅:网上借阅提供网上借阅申请、未提交的借阅申请、已处理的借阅申请、借阅申请处理和网上答复几个小模块。
其中网上借阅申请、未提交的借阅申请、已处理的借阅申请模块是所有用户都拥有的,借阅申请处理是具有借阅管理权限的用户所拥有的模块、网上答复是具有借阅答复权限的用户所拥有的模块。
图4 借阅管理模块
4.1.5案卷管理模块
案卷管理模块包括如下图5所示几个部分
图5 案卷管理模块
案卷查询:对所需要的案卷进行查询操作。
案卷录入:保存案卷。4.1.6文件管理模块
文件管理模块包括如下图6所示几个部分
图6 文件管理模块
文件查询:对所需要的文件进行查询操作。
文件录入:保存文件。
4.1.7数据管理模块
数据管理模块包括如下图7所示几个部分
图7 数据管理模块
数据备份:对文件表和案卷分别进行备份。
数据恢复:对文件表和案卷分别进行数据恢复。
4.2系统的UML建模
4.2.1UML初始模型
选择菜单命令【File—>New】打开如图8所示的【Create New Model】对话框,选择J2SE模式,然后单击【OK】按钮。并保存这个新的模型为“档案管理系统”。
图8 新建模型
4.2.2业务建模
4.2.2.1业务用例模型 确定业务参与者
参与者是系统的主体,表示提供或接收系统信息的人或系统,他们是交互作用的人或事物。本系统的功能大致可以分为以下几个部分。
用户登录——验证用户身份的合法性,判断是否运行进入本系统。
修改注册信息。
权限设置——增、删用户,修改用户属性和用户的权限。
系统参数设置——设置系统的辅助参数表。
数据录入——档案案卷和文件信息的录入。
数据维护——对用户删除的数据进行判定,恢复或者正式删除。
数据查询——查询档案数据,可以查看查询到档案文件数据,根据权限的不太也可以修改指定的档案数据。
数据修改——用户可以通过此模块批量修改数据。
报表打印——打印各类档案目录及统计报表。
档案借阅——包括档案外借、归还的登记以及网上借阅的处理。
数据备份和恢复——档案数据的备份和恢复。
日志记录。
通过以上的分析,可以创建以下的参与者:
管理员
档案室人员
案卷输入人员
借阅管理人员
一般人员
在Rose中,参与者的创建如图9所示。
图9 业务参与者
确定业务用例
经过分析调查,档案管理系统根据业务流程可以分为以下几个用例:
用户登录
根据权限进入
管理员系统参数设置
管理员进行用户管理
数据信息录入
数据查看
数据备份和恢复
普通用户网上借阅管理
管理员操作日志并查看
报表打印
用户注册管理
在Rose中,使用Use Case View建立用例,如图10所示。
图10 业务用例
用例规约
每个用例都有其用例规约,即每个用例的含义,这里仅对部分用例进行用例规约。
借阅登记:
正常事件流:
借阅管理员选择借阅者
借阅管理员查看借阅者当前时段之前的借阅申请记录 借阅者提交借阅登记命令 借阅管理员选择需要借阅的时间 在借阅视图中显示新的借阅信息 可选事件流:
借阅管理员选择借阅者
借阅管理员选择一个已有的借阅记录 借阅管理员改变借阅时间
在借阅视图中更新这个新信息,并在以后视图中都可以看到
异常事件流: 没有此借阅者。
借阅查询:
正常事件流:
借阅管理员输入需要查询的案卷号 在借阅视图中显示这个案卷的借阅信息 网上借阅:
正常事件流:
借阅者查看已提交和未提交的借阅申请 借阅者查看已提交的借阅申请是否被处理 借阅管理员处理借阅申请
用例建模
按照业务参与者的只能划分,档案管理的用例图分别为:借阅管理员的用例图,档案室人员的用例图,系统管理员进行系统维护的用例图。如图
11、图
12、图13所示。
借阅管理人员的用例图
图11 借阅管理人员的用例图
档案室人员的用例图
图12 图档案室人员的用例图 系统管理员进行系统维护的用例图
图13 系统管理员进行系统维护的用例图
活动图 活动图描述活动是如何协同工作的。当一个操作必须完成一系列事情,而又无法确定以什么样的顺序来完成这些事情时,活动图可以清晰地描述这些事。在档案管理系统中,有明确活动的类有系统管理员、案卷输入人员、借阅管理人员、一般人员。可以在系统中为这几个类建立活动图。
一般人员的活动图
一般人员首先登录系统,然后进入网上借阅、借阅登记、借阅查询等活动,注意这几个活动都是并列的。完成活动后退出系统。如图14所示。
图14 一般人员的活动图 借阅管理人员的活动图
借阅管理员可以处理两种情况,借阅申请处理和借阅归还处理。当一般人员申请借阅档案时,借阅管理员要检查一般人员的凭证是否满足借阅条件;当一般人员归还档案时,借阅管理员要检查所借的档案是否超时,如果超时,将采取一定的惩罚措施。如图15所示。
图15 借阅管理人员的活动图
案卷输入人员的活动图
案卷输入人员的活动比较简单,主要负责案卷的录入工作。如图16所示。
图16 案卷输入人员的活动图
系统管理员的活动图
系统管理员拥有最高的权限,几乎可以做任何工作,所以相对处理的内容比较多,活动图也就很多。因此,这里仅以一部分为例。 系统管理员维护系统数据的活动图
系统管理员在维护系统数据的活动中,可以进行两种操作,即数据备份和数据恢复。如图17所示。
图17 系统管理员的活动图
系统管理员维护用户的活动图
系统管理员在维护用户的活动中,可以对用户实行管理,在用户管理中可以添加用户、删除用户,还可以查看用户权限;在权限管理中,系统管理员还可以对用户实现权限管理,进行删除用户权限和添加用户权限的操作。如图18所示。
图18 系统管理员维护用户的活动图 系统管理员设置系统参数的活动图
系统管理员在设置系统参数的活动中,设计多个并列的小活动。如修改单位名称及卷宗号、添加/删除档案种类、添加/删除文件种类、添加/删除文件类目,还有其他参数设置。这些操作都将在设置系统参数的大活动中进行。如图19所示。
图19 统管理员设置系统参数的活动图
4.2.2.2业务分析模型 时序图
时序图按照时间顺序描述系统元素之间的交互。档案管理系统的时序图主要有如下几个。
用户管理模块中的系统管理员添加、删除或修改用户的时序图。
案卷管理模块中的案卷输入员录入或查询案卷的时序图。
借阅管理模块中的借阅管理员管理借阅案卷的时序图。
文件管理模块中的一般人员查询文件的时序图。
数据管理模块中的系统管理员备份或恢复数据的时序图。
系统参数设置模块中的系统管理员的添加、删除文件档案的时序图。
系统管理员添加用户的时序图
图20 系统管理员添加用户的时序图
案卷输入员录入案卷的时序图
图21 案卷输入员录入案卷的时序图
借阅管理员管理借阅案卷的时序图
图22 借阅管理员管理借阅案卷的时序图 一般人员查询文件的时序图
图23 一般人员查询文件的时序图
系统管理员备份数据的时序图
图24 系统管理员备份数据的时序图
系统管理员的添加档案的时序图
图25 系统管理员的添加档案的时序图 4.2.3分析模型
4.2.3.1参与者
通过分析调查,可以创建以下的参与者,如图26所示。
管理员
档案室人员
案卷输入人员
借阅管理人员
一般人员
图26 参与者
4.2.3.2用例
根据分析得出该业务一共有以下用例,如图27所示。
图27 用例
4.2.3.3用例图
按照业务参与者的只能划分,档案管理系统的用例图分别为:借阅管理人员的用例图、档案室人员的用例图、系统管理员进行系统维护的用例图。如图
28、图
29、图30所示。
借阅管理人员的用例图
图28 借阅管理人员的用例图
档案室人员的用例图
图29 档案室人员的用例图 系统管理员进行系统维护的用例图
图30 系统管理员进行系统维护的用例图
4.2.3.4时序图
时序图按照时间顺序描述系统元素之间的交互。档案管理系统的时序图主要有如下几个。
用户管理模块中的系统管理员添加、删除或修改用户的时序图。
案卷管理模块中的案卷输入员录入或查询案卷的时序图。
借阅管理模块中的借阅管理员管理借阅案卷的时序图。
文件管理模块中的一般人员查询文件的时序图。
数据管理模块中的系统管理员备份或恢复数据的时序图。
系统参数设置模块中的系统管理员的添加、删除文件档案的时序图。
系统管理员添加用户的时序图
用户首先使用自己的用户名和密码登录系统,在登录时,登录模块会讲用户的ID保存在系统的缓存中并提交给下一页面。然后进入用户管理模块,在进入这个模块时,同样会验证用户的ID,因为这个模块只有具有管理员身份才可以进入。进入后单击“添加用户”命令即可在添加列表中按要求添加用户信息,完毕后单击“保存”按钮提交列表信息给数据库模块,进行添加处理,最后提示添加成功信息给管理员。如图31所示。
图31 系统管理员添加用户的时序图
案卷输入员录入案卷的时序图
案卷输入员首先使用自己拥有的用户名和密码登录系统。在登录时,登录模块将案卷输入员的ID保存在系统的缓存中并提交给下一页面。进入案卷管理模块,只有他和比他权限大的用户才可以进去。然后提交“案卷录入”命令,要求案卷输入人员输入案卷的相关信息,注意录入信息的具体要求。录入完毕后单击“保存”即可完成案卷录入工作,并提示案卷录入成功的信息。如图32所示。
图32 案卷输入员录入案卷的时序图 借阅管理员管理借阅案卷的时序图
借阅管理员用系统管理员分配的用户名和密码登录系统,进入借阅管理模块。在登录时,登录模块会将借阅管理人员的ID保存在系统的缓存中并提交给下一页面。想借阅必须先登记,提交“借阅登记”命令,进入借阅借阅登记页面,要求借阅管理人员输入相关借阅的内容,主意内容的输入要求。单击“查询”命令寻找满足用户需求的文件,如果有,单击“借阅”命令即可完成借阅操作。如图33所示。
图33 借阅管理员管理借阅案卷的时序图
一般人员查询文件的时序图
一般人员的权限非常小,他根据管理员分配的用户名和密码登录档案管理系统,同时提交ID给文件管理模块。这样就看操作文件管理模块中的某项功能了,比如查询文件功能。在档案管理系统的界面中单击“文件查询”命令,将进入查询文件的界面,然后按要求输入查询条件并提交,这时,系统将根据提交的信息显示出结果给一般人员,至此完成文件查询操作。如图34所示。
图34 一般人员查询文件的时序图 系统管理员备份数据的时序图
系统管理员拥有在高的权限级别,几乎可以干任何事情。首先还是要登录档案管理系统,并提交ID给数据管理模块,然后单击“数据备份”命令,系统提示输入想要备份的文件路径。管理员输入信息后提交信息给数据库,保存该条信息,以便日后查询,最后显示备份成功信息给管理员。如图35所示。
图35 系统管理员备份数据的时序图
系统管理员的添加档案的时序图
系统管理员做的第一步就是登录系统,并提交他的ID给档案管理模块。在档案管理系统的后台界面中单击“档案录入”命令,进入添加档案界面,该界面要求输入待添加档案的基本信息。添加完毕提交档案信息并保存到数据库中,最后显示添加档案成功信息给管理员,至此添加档案操作动作完成。如图36所示。
图36 系统管理员的添加档案的时序图 4.2.3.5协作图 协作图用来表现系统的对象间另一种交互,即时间和空间顺序上的交互。档案管理系统的协作图主要有以下几个。如图
37、图
38、图
39、图40、图
41、图42所示。
用户管理模块中的系统管理员添加、删除或修改用户的协作图。
案卷管理模块中的案卷输入员录入或查询案卷的协作图。
借阅管理模块中的借阅管理员管理借阅案卷的协作图。
文件管理模块中的一般人员查询文件的协作图。
数据管理模块中的系统管理员备份或恢复数据的协作图。
系统参数设置模块中的系统管理员的添加、删除文件档案的协作图。
系统管理员添加用户的协作图
图37 系统管理员添加用户的协作图
案卷输入员录入案卷的协作图
图38 案卷输入员录入案卷的协作图 借阅管理员管理借阅案卷的协作图
图39 借阅管理员管理借阅案卷的协作图
一般人员查询文件的协作图
图40 一般人员查询文件的协作图
系统管理员备份数据的协作图
图41 系统管理员备份数据的协作图 系统管理员的添加档案的协作图
图42 系统管理员的添加档案的协作图
4.2.3.6状态图 在档案管理系统中,有明确状态转换的类有档案和借阅者账户(相当于包含 档案的状态图
档案处于外借状态时,可以借阅,借阅后就变为借阅状态。外借档案归还后又变为可外借状态。如图43所示。特定个人信息的电子借阅证)。可以在系统中为这两类事物建立状态图。
图43 档案的状态图
借阅者账户的状态图
借阅者的账户刚被管理员添加时处于借阅账户的可用状态,当所借档案数带到规定的借阅数目上限后,变为不可用状态。当账户被管理员删除后,变为删除状态。如图44所示。
图44 借阅者账户的状态图
4.2.3.7分析类图 实体类
经过分析,有如下实体类,分别为借阅时间、日志、管理权限、数据备份记录、文件存放路径、报表、数据恢复记录、文件种类、用户、借阅申请、档案种类、案卷信息,如图45所示。
图45 实体类 控制类
经过分析,有如下控制类,分别为:打印报表workflow、档案种类表操作workflow、根据权限查看workflow、借阅查询workflow、数据查看workflow、数据信息录入workflow、数据备份和恢复workflow、管理员用户管理workflow、网上借阅workflow、普通用户网上借阅管理workflow、管理员操作日志并查看workflow、用户注册管理workflow、用户登录workflow、借阅登记workflow、文件种类表操作workflow、管理员系统参数设置workflow,如图46所示。
图46 控制类
边界类
经过分析有,如下边界类,分别为:借阅登记UI、借阅查询UI、文件种类操作UI、管理员系统参数设置UI、数据查看UI、档案种类操作UI、网上借阅UI、管理员操作日志并查看UI、用户注册管理UI、数据备份和恢复UI、管理员用户管理UI、数据信息录入UI、用户登录UI、普通用户网上借阅管理UI、根据权限查看UI、报表打印UI,如图47所示。
图47 边界类
4.2.4设计模型
4.2.4.1包图 本系统共有6个包,分别为用户管理模块的包、系统参数设置模块的包、借阅管理模块的包、案卷管理模块的包、系统中文件管理模块的包、系统中备份管理模块的包。
图48 包图
包中的类
系统中用户管理模块的类图,如图49所示
图49 统中用户管理模块的类图
系统中中系统参数设置模块的类图,如图50所示
图50 系统中中系统参数设置模块的类图 系统中借阅管理模块的类图,如图51所示
图51 系统中借阅管理模块的类图
系统中案卷管理模块的类图,如图52所示
图52 系统中案卷管理模块的类图
系统中文件管理模块的类图,如图53所示
图53 系统中文件管理模块的类图 系统中备份管理模块的类图,如图54所示
图54 系统中备份管理模块的类图
4.2.4.2类图
和数据库字段相关的基础类 在档案管理系统中最基本的几个类:User、fVolumn、Archive、FileType、RoleUser,如图55所示。
图55 和数据库字段相关的基础类
User类是用户信息类,它的属性很多,包括用户登录所用名(EnterName)、用户姓名(UserName)、用户密码(PassWord)、用户所属部门(Department)、没有显示查询条数(RowsPage)。
fVolumn类是档案案卷信息数据描述类,包括案卷编号(VolumID)、档案种类(ArchiveType)、案卷号(VolumnNo)、案卷标题(VolumnTitle)、工程代号
31(Code)、类目号(Category)、保管期限(RetentionPeriod)、案卷起始年月(StartDate)、案卷截止年月(EndDate)、案卷总件数(TotalNum)、案卷总页数(TotalPage)、责任者(Duty)等属性。
Archive类是档案管理类,包括档案序号(SeriaNo)、状态(Status)、删除标记(Deleted)、同步标记(RepFlag)、档案种类(ArchiveType)、文件种类载体种类(FileType)、题目分说明(Title)、一般文献类型标识(literatureType)、题目说明(TitleRemark)、成文日期载体形式时间(FileDate)、文件年代工程代号载体年代(Code)等属性。
FileType类是档案种类类。RoleUser类是用户角色类。
各类之间的关系
数据库表类之间的关系,如图56所示。
图56 各类之间的关系
User类表示档案管理系统中的用户,RoleUser类指用户的权限。在现实世界中,一个用户只能拥有一个权限,但是一种权限可以分配给多个用户,所以User和RoleUser之间是多对一的关系。fVolum记录的是案卷的基本信息,FileType记录了案卷的种类,Archive是档案管理的类,所以fVolum与FileType是一对一的关系,fVolum与Archive是多对一的关系。
4.2.4.3组件图
系统的组件图包括系统服务和数据服务两个组件。如图57所示。
图57 组件图
4.2.4.4部署图
配置图主要是用来说明如何配置系统的软件和硬件。系统由多个节点构成,应用服务器负责整个系统运行的总体协调工作,数据库负责数据管理。Web应用程序模块拥有参与者进行各自权限的操作。管理员可以通过管理应用服务器来管理整个系统。一般人员可以通过互联网访问应用服务器来操作服务。系统的配置图,如图58所示。
图58 配置图
4.2.4.5数据建模 创建数据库对象
在构建视图中创建BBS数据库
图59 BBS数据库(1)
选择SQL Sever 2000数据库
图60 BBS数据库(2)
创建模式
在逻辑视图中创建模式
图61 创建模式
创建域包和域
在逻辑视图中创建域包和域 创建域包
图62 创建域包
创建域
在这里创建3个域,分别为ID域、name域和pwd域。
ID域
ID域数据类型为INT,有唯一性约束和非空约束。
图63 ID域
name域
name域数据类型为VARCHAR,长度为20,有唯一性约束和非空约束。
图64 name域
pwd域
pwd域数据类型为VARCHAR,长度为15,有唯一性约束和非空约束。
图65 pwd域
创建数据模型
图66 创建BBS数据模型
创建表
分别创建用户表、管理员表、版块信息表、帖子信息表。如图
52、图
53、图
54、图55所示。 User表
图67 User表
Archive表
图68 Archive表
fVolumn表
图69 fVolumn表
RoleUser表
图70 RoleUser表
FileType表
图71 FileType表
创建表与表之间的关系
创建各表之间的关系,如图72所示。
图72 各表之间的关系
代码生成
在“档案”模式上单击右键,选择弹出菜单中的选项“Data Modeler”,在弹出的子菜单中再选择前向工程“Forward Engineering„”,打开前向工程对话框,如图73所示。
图73 代码生成(1)
单击“Next”进入下一个对话框进行功能设置,选择希望生成代码的模型元素。功能选项如图74所示
图74 代码生成(2)
单击“Next”选择保存脚本代码的文件。输入保存代码的文件名,选择好文件路径,点击“Next”完成。显示的对话框如图75所示。
图75 代码生成(3)
生成代码,如图76所示。
图76 代码
5.实训小结
7.uml与系统分析设计 篇七
随着计算机网络技术的飞速发展,教学的形式发生了很大变化。教育教学改革的需要使得大家开始通过网络进行学习就显得非常重要。远程教学大家都在探索与研究,很多都采用传统工具进行设计与开发。UML语言是近几年兴起的统一建模语言,采用具有可视化、能够柔性实现分析、设计和开发系统的统一建模语言实现系统网上教学系统模型构建有着非常重要的意义。
2 UML简介
UML(Unified Modeling Language)是由Grady Booch、Ivar Jacobson和Jim Rumbangh共同提出的一种建模语言,属于第三代建模语言。它是一种用来建模和开发软件系统的图形化语言。它提供了软件开发的各个阶段的可视化建模支持,包括从需求分析到规格书写,以及系统开发和建立等。采用UML和可视化建模的目的在于能够通过图形化的表示使开发者捕捉到与系统相关的重要细节。下面通过实际开发网络教学系统的实例,介绍如何利用UML来分析、设计基于WEB的网上教学系统。
3 网上教学系统用例分析
要开发一个软件系统,首先要对软件系统的需求进行分析,要深入描述目标系统的功能和性能,确定软件设计的限制和软件同其他系统元素间的接口细节,定义软件的其他有效性需求。UML的用例图较详细和确切地描述了用户的功能需求,根据本系统的需求和职责范围,可以确定四个参与者:学生、教师、系统管理员和访客。对于每个参与者都要确定其业务活动,如参与教学活动、系统管理、浏览公开信息、参与课程建设的讨论等。根据具体功能需求,可以先画出系统的顶层用例图,从整体上把握系统的需求和目标,如图1所示。
为了更为深入地分析系统的需求和目标,用以指导设计,需要将以上用例细化为更小的用例,并据此画出系统第一层用例图。例如,由“参与教学活动”这个用例可以细化出“作业处理”,“公告发布”、“实时讨论”、“非实时答疑”、“学习资料处理”等五个用例。
4 系统静态建模
建立系统静态模型包括类图、对象图、包图、组件图、和配置图的建立,其中最重要的是确立系统的类图。在各种UML图中,只有类图很好地定义了应用程序所需的数据结构。因此,可以用类图为数据库中存放的数据结构建模,从而达到指导数据库设计的目的。对于这次所要开发的网络教学系统来说,可以在用户信息、逻辑关系、用户界面等方面抽象出以下几方面的类及类之间的联系。
以用户界面为例:用户必须通过用户界面来使用本系统,所以还可抽象出以下主要接口类:用户注册表单、课程注册表单、院系注册表单、信息发布表单、信息查询表单、作业提交表单、作业下载表单、公告发布表单、资料提交表单、资料下载表单等。
从本系统的整体角度看,以上属于各个方面的类之间也存在着各种关系,因此可画出系统类图,如图2所示。
5 动态模型
在建立好系统静态模型的基础上,接下来需要分析和设计系统的动态结构及建立相应的动态模型。UML在表现上,主要是建立系统的交互图和行为图,其中交互图包括顺序图和协作图,行为图包括状态图和活动图。
5.1 活动图
一般来讲,状态图描述了一个特定对象的所有可能状态以及由于各种事件的发生而引起的状态之间的转移。活动图描述的是满足用例要求所要进行的活动及活动间约束之间的约束关系。在实质上是一种流程图,只不过表现的是从一个活动到另一个活动的控制流,活动图描述活动的序列,并且支持对带条件的行为和并发行为的表达。图3给出了教学管理系统资源管理的活动图。
在本系统中需要管理的资源大致有4种:人员、课程、院系和诸如交流区等平常要用到的资源。这些资源的管理方法大同小异,因此只做一张活动图来表示对所有资源的管理,如图3所示。
以上只是本系统的资源管理的活动图,活动图仅仅是强调了从活动到活动的控制流,为了描述完成某个特定的功能而在系统对象之间的信息交换,还需要为系统作出顺序图。下面将给出本系统主要用例的顺序图来说明各种信息是怎样在本系统对象中传递的。
5.2 顺序图
顺序图很好地描述了系统对象之间动态的消息传递关系,它是强调消息的时间顺序的系统动态行为模型。可以把顺序图看成一个表,系统的对象在这个表中沿X轴排列,而消息则按照时间顺序沿Y轴排列。比如说,教师“处理作业”这一用例的主要交互事件有提交院系和身份、提交用户信息、验证用户信息、打开教师用户界面、上传作业要求、下载学生作业、提交作业成绩等,其顺序图如图4所示。
而学生“处理作业”这一用例的主要交互事件与教师“处理作业”的类似,有提交院系和身份、提交用户信息、验证用户信息、打开学生用户界面、下载作业要求、上传学生作业、查阅学生成绩等,在此不再绘制其顺序图。
6 实现模型
静态模型中提到了系统的静态行为包括组件图和配置图,它们在本质上表示了系统实现的一些特性,描述了软件系统结构、硬件体结构以及通信机制。组件是对建模元素物理实现的描述,组件图则是用依赖关系链接起来的组件的集合。又因为组件可带有接口,故组件图也可以描述组件之间的接口关系和调用关系。
6.1 系统组件图
本系统选择B/S运行模式。在这种模式下,客户端只需配备一个标准的、支持表格和表单的浏览器,而所有的业务逻辑都在服务器端执行。因此,从“系统”层面上讲,本系统主要由下列组件构成:
通过以上分析可绘制出本系统的“系统”级组件图,如图5所示。
由图5还可看出本系统所采用的B/S模式的主要组件大多位于服务器端。
6.2 系统配置图
配置主要用来描述构成物理系统的各个节点(节点指的是计算机等各种物理设备。)的分布和安装,以及运行于这些节点上的组件的配置情况。图6是本系统的配置图,可看出数据库服务器和WEB服务器配置在不同的节点上,数据库服务器向WEB服务器提供各种数据服务。用户使用客户机上的浏览器访问WEB服务器来获得各种教学应用服务。
7 结束语
8.uml与系统分析设计 篇八
关键词:统一建模语言;面向对象;设计模式;桥模式;策略模式
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)16-30889-01
Application Design Pattern in Library Manage System on UML
LI Cui-ling,SUN Wu-hua
(Faculty of Information Science and Technology,Jiujiang University,Jiujiang 332005,China)
Abstract:Because of the complication of the development about software,the tradition process and normal object-oriented can't satisfy Today's software development and maintain,follow as: Rigidity—It is difficult to addition a new property, Fragility—before modify, we can't expect the interact somewhere, Immobility、Viscosity—when we want use something, we will find that this codes act with some else. Suffer from this we need the thinking of Extensibility ,Flexibility, Pluggability,So the design pattern take the important roles.
Key words:UML Object-oriented;Design pattern;Bridge;Strategy
1 引言
以前我们大多采用非面向对象的技术进行软件设计,所以当我们转而使用面向对象的方法设计软件时感到非常困难,而设计可复用的面向对象软件就更加困难。因为软件设计既要针对现有的问题,同时又要对将来潜在的问题和需求有足够的通用性,尽可能减少重复设计和更改。设计模式为我们提供了有效的解决思路,使我们可以方便、高效地设计和复用成功的设计和已有的体系结构。
2 设计模式
2.1设计模式的基本概念
从程序设计的角度理解,一个设计模式提供了一个针对某一特定问题的解决方案。在面向对象的程序设计中,一个设计模式有一个特定的结构。使用这样的结构,程序的体系结构更加灵活、代码可以更加方便地被复用,程序具有更好的适应性。
2.2设计模式的基本要素
2.3桥模式
能够分别实现类的抽象和行为的实现,使其相互间没有影响,降低了程序的耦合度能够很方便地扩展类的功能,能够在扩展功能的同时隐藏内部机制,保证透明度。
参与者和协作者:
2.4策略模式
策略模式定义一系列的算法,把这些算法一个个封装起来,使它们可以相互替换,而对用户提供统一的接口。因而,这些算法可以独立于使用它的客户而变化。
参与者和协作者:
3 设计模式在图书管理系统中的应用
3.1问题的产生
首先,要对图书管理系统进行分析,即运用基于UML的面向对象方法,我们知道,系统核心功能必须满足面对各种角色,如老师、博士、研究生、本科生、专科生、其他,提供各种服务,如借书、还书、预定等等。
区分各种角色的目的是由于各种角色的接、还、预定、等功能的不同限制,如借书的期限不同,借书的本数不同等等。
而且,如果管理要提供新的服务功能,或者要加入一种新的角色,还有可能,要改变借书期限和借书本数,我们如果用传统的方法编写的代码那么我们势必会对代码的修改产生一些负面影响。
3.2解决方法
针对以上问题,我们发现各种角色和各种服务正好对应这样一个抽象和行为,于是桥模式就自然而然的浮现出来了。
UML图如下:
如果系统要面向新的借书者,要提供新的服务功能,只需在上图的“桥”的左右两边分别加上Actor 和 imp的继承类即可,这样对与系统的这个影响的波动就会相当的小,十分容易被开发者掌握范围和预测其影响。
同时我们还要清楚的认识到,“桥”模式是提供系统的一个最大范围的一个场景,即是系统领域方面的最大的骨架。
此外,我们还有这样的一个问题需要解决,即当要改变各种借阅者借书期限和借书本数,或者其他的限制条件时我们又该怎么办?
一个办法就是,将这些限制作为各个角色的成员变量,这样就能解决问题。的确可以,但是也许会涉及到可维护性。如果我们用设计模式里的策略模式效果就不同了,因为策略模式对用户提供统一的接口,算法可以独立于使用它的用户,所以改变借书天数和借书本数就不会对使用用户产生影响。
如下UML图:
其中的Strategy1、2、3分别代表不同的借书期限和本数的计算方式,并且还可以计算过期的各种算法。
由此,对于该图书管理系统的总的桥模式和策略模式的综合使用如下UML图:
通过以上的关于图书管理系统整体设计模式的研究我们的系统具有了如下性质:
(1)可扩展性
很容易向系统加入新性能。例如,我们可以十分轻松的添加新的角色—教授,添加新的服务等等(在桥两边加),根本不影响整体构架。
(2)灵活性
允许代码修改平稳地发生,不会波及很多其他模块。
(3)可插入性
可以很容易地将一个类抽出去,同时将另一个有同样接口的类加进来。如实现了上述策略。
4 设计模式对软件设计的指导
设计模式是对学习OO设计原则的具体指导。
优越性:
(1)通过扩展已有的软件系统,可以提供新的行为,满足新需求,使系统有一定适应性和灵活性。
(2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使系统有一定的稳定性和延续性。
(3)抽象化是关键。
可以给出一个或多个抽象类或接口,规定出所有具体类必须提供的方法的特征,作为系统设计的抽象层。这个抽象层预见了所有可能的扩展,因此在任何扩展情况下都不会改变,使得系统的抽象层不需修改。(对修改关闭)同时,从抽象层导出一个或多个新的具体类可以改变系统的行为,因此系统的设计对扩展是开放的。
(4)对可变性的封装原则
找到一个系统的可变因素,将它封装起来。这意味着,一种可变性不应当散落在代码的很多角落里,而应当被封装到一个对象里面;一种可变性不应当与另一种可变性混合在一起(设计模式中所有类图的继承结构一般不会超过两层,否则意味着将两种不同的可变性混合在一起了)。
5 结束语
当我们在进行软件设计的时候,我们要多考虑用一些经典的设计模式来指导自己,这样对于系统的总体稳定性十分有益,只要我们善于观察,总会发现模式和提高自己的设计分析能力,同时我们还要牢记以下三点面向对象的重要原则:
(1)遵从开—闭原则对扩展开放,对修改关闭。
(2)组合优于继承。
(3)面向接口编程。
通过这样,我们一定会使面向对象的设计和分析方法上一个新的台阶。
参考文献:
[1]ErichGamma RichardHelm RalphJohnson john Vlissides设计模式—可复用面向对象软件的基础[M].机械工业出版社,2000.
[2]Alan Shalloway, James R.Trott.设计模式精辟[M].北京:清华大学出版社,2004.
[3]Craig Larman.UML和模式应用——面向对象分析和设计导论[M].机械工业出版社,2002.
[4]王少锋.UML面向对象技术教程[M].北京:清华大学出版社,2004.
【uml与系统分析设计】推荐阅读:
管理系统uml建模分析05-31
基于UML的网络购物系统的分析03-26
系统分析与设计教案09-15
系统分析与设计图文04-01
crm系统分析与设计07-24
《信息系统分析与设计》课程设计指导书05-20
超市采购管理系统的分析与设计07-05
郑大鹏—系统分析与设计实践教学大纲12-12
苏宁易购电子商务系统分析与设计06-03