建立分析类图UML 案例
经典的软件工程思想将软件开发分成5个阶段:需求分析\系统分析与设计;系统实现\测试及维护五个阶段.之所以如此,是因为软件开发中饣含了物和人的因素,存在着很大的不确定性,这使得软件工程不可能像理想的,可以其于物理学等的原理来做的物质生产过程.如想建造一幢高档的写字楼,那么刚开始便将一切材料和工具全准备好显然是无比愚蠢的行为,因为有可能你正在使用他人的钱,而这些人将是建筑大小,开状和样式的决定者,通常情况下,投资方会在开工生改变想法,这样你必须有额外的计划.而对于整个工程,你也许只是其中的某一个工作组,因此,你需要有各种各样的图纸和模型同其他小组沟通,达到联合工作.很显然,在客户的需求与实际的建筑技术之间找好一个契合点,是做好工程的关键.许多软件工开发过程也如同上面例子一样,软件问题不仅仅是代码的问题,而成为了一个怎么样将整个过程转变成一个结构,过程和工具相结合的问题.建模,即其目的和作用在于提供系统蓝图,包含细节设计,也含有对系统的总体设计,同时模型可以帮助开发小组更好地规划系统设计,更快的开发.UML是一种功能强大的,面向对象的可视化系统分析的建模语言,它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠,更完善的系统模型.从而使用户和开发人员对问题的描述达到相同的理解,以减少语义差异,保障分析的正确性.
设计几个类,用UML类图说明一个 学生借阅图书 系统
基于UML的图书馆借阅管理系统设计(1)系统分析(包括系统描述(问题域描述)、用例模型、分析类图)。
(2)系统设计(包括系统的逻辑模型如设计类图、顺序图、状态图及组件图等)。
(3)系统实施(包括信息代码设计、数据库设计、输入设计、输出设计、用户界面设计和处理过程的设计以及最终的程序设计)。
(4)编制好程序后,设计若干测试用例,上机测试并通过所设计的程序系统。
(5)设计报告格式按附件要求书写。
课程设计报告书正文的内容应包括: 1.问题描述; 2.用例模型及分析类图的描述; 3.设计类图、核心用例的顺序图与状态图、组件图等的描述; 4.信息代码设计、数据库设计、输入设计、输出设计的描述; 5.用户界面设计和处理过程的设计的描述; 6.给出软件的测试方法和测试结果。
7.设计的特点、不足、收获与体会。
UML类图怎么画
UML 类图简介 UML 对很多人来说应该不是一个陌生的概念,这一两年来,UML 被大家越来越多的讨论着。
本来 UML 跟我这个主题似乎并不能扯上多大的关系(它是语言无关的,甚至可以说其本身就是一种语言——用于交流的)。
我在此谈到它有两个目的: 1. UML 是针对面向对象软件开发的,而 C++正是这样的一种语言 2. UML 在设计中被越来越多的使用着,而下一篇杂谈准备讨论设计模式,如果不了解 UML,那么无法进行下去 UML,全称:Unified Modeling Language,其目的是为了对软件密集型的制品进行可视化、详述、构造和文档化的图形语言。
UML 是依据许多前人的思想总结出的成果,1997 年被 OMG 通过并成为标准(所以在《设计模式》书中如果你看到与标准不一样的地方,不要奇怪,那本书是 95 年的)。
关于 UML 的历史和更详细的描述,可以参考《UML 参考手册》。
UML 主要由一系列视图组成,其中包括静态视图(Static vi ew),用例视图(Use case view)活动视图(Acti vity view)等,不同的图用处自然也不一样,而对开发人员来讲(或者说为我的下一篇来说),更重要的应该是静态视图中的类图(class diagram)和交互视图(Interaction view)中的顺序图(Sequence diagram),请注意 view 和 diagram 的区别。
类图 静态视图说明了对象的结构,其中最常用的就是类图,类图可以帮助我们更直观的了解一个系统的体系结构,有时侯,描述系统快照的对象图(Object diagram)也是很有用的。
在这里,我们主要介绍类图,下面的图就是一个简单的类图: 在类图中,类由矩形框来表示,如上图中,定义了 4 个类,分别为 Base、A、B、 C,类之间的关系通过各种线条和其他符号来表示,在上图中,空心的三角表示继承关系,在 UML 的术语中,这种关系被称为泛化(Generalization),所以上面的类用等价代码表示为: class Base{…}; class A:public Base{…}; class B:public Base{…}; class C:public Base{…}; 我们再看下一幅图: 这幅图与上幅几乎没有什么区别,唯一的不同就是 Base 类中增加了成员,一个私有的 integer _x(UML 术语为 property)和一个公有的 fun()的函数(method),是否需要这些类的内部细节 UML 本身并没有限制,完全取决于你自己如何使用, UML 的用处在于帮助你了解系统,所以只要你自己觉得足够清楚,那么够了,不要再复杂了。
接着看第三幅图: 上面图中的箭头表示一种关系,箭头另一边有一个菱形(空心)表示聚合(aggregation),聚合的意义表示 has-a 关系,其等价代码如下: class A{…}; class B{ A* theA;…}; 聚合是一种相对松散的关系,聚合类 B 不需要对被聚合的类 A 负责。
下面的图: 这幅图与上面的唯一区别是菱形为实心的,它代表了一种更为坚固的关系——组合(composition)。
组合表示的关系也是 has-a,不过在这里,A 的生命期受 B 控制,通常情况,等价代码如下: class A{…}; class B{A theA;…}; 即 A 会随着 B 的创建而创建,随 B 的消亡而消亡。
下图: 这里 B 与 A 的关系只是一种依赖关系,这种关系表明,如果类 A 被修改,那么类 B 会受到影响,一个简单的例子就是: class A{…}; class B{fun(A params);…}; 常用的关系就是我们上面用的这些,通过这些关系和类表示的类图,我们可以用图形化的方式描述一个系统的设计部分,当你习惯使用 UML 后,你会发现,这往往比你告诉同伴某某类从某某类派生,派生类又和某某类具有什么关系容易的多。
顺序图: UML 中另外一个常用的图形就是交互视图中的顺序图,在以往的过程化语言中,我们通常使用流程图来描述一个函数(系统)是如何工作的,而在面向对象的系统中,这显然是不可行的,而顺序图正是来解决这个问题的。
假设有如下的伪代码: class circle { public: void fillcolor() { // ... }; void draw() { fillcolor(); }; }; class window { public: void drawcircle() { _circle.draw(); }; private: circle _circle; }; 对于下面的调用: window wnd; wnd.drawcircle(); 对应的顺序图如下: 图中上方的方块表示参与的对象,垂直的虚线表示对象的生命线,方框表示激活,其中箭头表示了一个调用消息(也可以有回送 return),如果是异步的消息,则用半箭头表示,其中 draw 表示了一个自调用(self call) 至此,UML 中最常用的(从开发人员的角度),当然 UML 的内容远远不只这些,这里的介绍只是一些简单的概括,并且 UML 本身也在不断的发展之中,无论怎样,我觉得 UML 会越来越多的深入我们的开发过程中,特别是对下一篇我们要介绍的设计模式而言,类图是主要的描述工具(到那个时候你会体会到 UML 描述的优越)。
如果你看过《设计模式》着本书,你会发现与我上面所描述的有一些细微的不同,不要紧张,《设计模式》是 GOF95 年的作品,那时候 UML 还没有形成,而且,其中也明确那是 OMT 方法(Jim Rumbaugh 在通用电气发表的建模技术——Object Modeling Technique)和 Booch 方法。
UML图在软件设计中的作用(java)
UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。
最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。
UML的主要的模型 在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示系统的功能,包括用例图。
对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。
动态模型: 展现系统的内部行为。
包括序列图,活动图,状态图。
是数据库设计过程中,在E-R图(实体-联系图)的设计后的进一步建模。
UML 怎么学呀? 现在比较流行的UML工具都有什么?
统一建模语言UML 软件工程领域在1995年至1997年取得了前所未有的进展,其成果超过软件工程领域过去15年来的成就总和。
其中最重要的、具有划时代重大意义的成果之一就是统一建模语言(UML:Unified Modeling Language)的出现。
在世界范围内,至少在近10年内,UML将是面向对象技术领域内占主导地位的标准建模语言。
采用UML作为我国统一的建模语言是完全必要的:首先,过去数十种面向对象的建模语言都是相互独立的,而UML可以消除一些潜在的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提高其灵活程度。
统一建模语言(UML)是用来对软件密集系统进行描述、构造、视化和文档编制的一种语言。
首先,也是最重要的一点,统一建模语言融合了Booch、OMT和OOSE方法中的概念,它是可以被上述及其他方法的使用者广泛采用的一门简单、一致、通用的建模语言。
其次,统一建模语言扩展了现有方法的应用范围。
特别值得一提的是,UML的开发者们把并行分布式系统的建模作为UML的设计目标,也就是说,UML具有处理这类问题的能力。
第三,统一建模语言是标准的建模语言,而不是一个标准的开发流程。
虽然UML的应用必然以系统的开发流程为背景,但根据我们的经验,不同的组织,不同的应用领域需要不同的开发过程。
举个例子来说,开发错综复杂的软件是非常有趣的工作,但开发这种软件与构造严格实时的航空电子系统是大不一样的,后者是性命攸关的大事。
因此我们首先把精力集中在设计通用的元模型上(统一不同方法的语义),其次是建立通用的表示法(提供对这些语义的形象化的表达)。
虽然UML的开发者们将继续倡导从用例驱动到体系结构为中心最后反复改进、不断添加的软件开发过程,但实际上设计标准的开发流程并不是非常必要的。
UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。
它溶入了软件工程领域的新思想、新方法和新技术。
它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。
面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。
在美国,截止1996年10月,UML获得了工业界、科技界和应用界的广泛支持,已有700多个公司表示支持采用UML作为建模语言。
1996年底,UML已稳占面向对象技术市场的85%,成为可视化建模语言事实上的工业标准。
1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。
UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
标准建模语言UML的内容 首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。
尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。
作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。
(1) UML语义 描述基于UML的精确元模型定义。
元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。
此外UML还支持对元模型的扩展定义。
(2) UML表示法 定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。
这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
标准建模语言UML的重要内容可以由下列五类图(共9种图形)来定义: ·第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。
·第二类是静态图(Static diagram),包括类图、对象图和包图。
其中类图描述系统中类的静态结构。
不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。
类图描述的是一种静态关系,在系统的整个生命周期都是有效的。
对象图是类图的实例,几乎使用与类图完全相同的标识。
他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。
一个对象图是类图的一个实例。
由于对象存在生命周期,因此对象图只能在系统某一时间段存在。
包由包或类组成,表示包与包之间的关系。
包图用于描述系统的分层结构。
·第三类是行为图(Behavior diagram),描述系统的动态模型和组成对象间的交互关系。
其中状态图描述类的对象所有可能的状态以及事件发生时状态的转移条件。
通常,状态图是对类图的补充。
在实用上并不需要为所有的类画状态图,仅为那些有多个状...
急求设计团购网站的UML类图和实体关系图!!! 任务一:UML类图 ...
没有人给你画这个,除了你自己,因为你最了解需求,可以去trufun网站下载uml模型案例,参考他们提供的实际案例模型。
。
学uml建模,上trufun.net,最专业详细的UML参考书,还有具体的uml模型案例,专业的uml2最新标准工具,一应俱全,还有专业的客服解答。
。
UML
好像还真没有。
就算有钱好像也买不到。
号称最牛B的 rational rose 其实只能支持 jdk1.4 1.5以上就报废了。
我的感觉真是难用。
我用过最好用的是 StarUMLStarUML 开源的。
正向工程 逆向工程都可以优点是简单好用。
我用过的的工具里面最好用的。
最大的缺点是不支持 衍型。
如果你的类里有一个 ArrayList或者其他 就不行了。
astah_professional可以支持jdk1.5以上的逆向工程。
但你要在网上搜索破解补丁。
你搜一下 astah_professional 破解版就行了。
trufun 不了解。
因为它是以eclipse 插件的方式运行的,它的eclipse版本总是老版本。
所以我没怎么用过。
不了解。
另外类图生成时序图是不可能的。
时序图其实表现的是方法的调用关系,目前只能靠肉眼观察吧。
即使肉眼观察的话,不搞清整个程序的结构也是画不准确的,想想都难,计算机自动实现更不可能了。
其实,生成类图后再画时序图就简单多了,因为模型里已经有类了。
你首先创建一个时序图,把类用鼠标拉进来,相应的元素就自动生成了。
只要类图生成的准确,其它模型都很简单的。
另外,准确的叫法是“顺序图”,时序图的说法过时了。
还有分吗?
如何用eclipse的插件UML2自动生成UML类图
安装步骤: 1、通过Eclipse的更新来安装 Help -> install New Softwares -> Available site 输入网址: 在出现选项后全部勾选选择下一步即可。
使用: 1、选择File-> New ->Other->eUML2 Diagrams->UML2 Class Diagram; 2、下一步选择需要为那部分内容生成类图,输入文件名、包名即可。
...
转载请注明出处51数据库 » 外卖软件设计 uml类图