统一建模语言.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

统一建模语言(UnifiedModelingLanguage)UML课程目标面向对象分析和设计(OOA/OOD)UP过程与“瀑布”模型UML简介需求分析与用例类图UML交互图UML活动图UML状态图面向对象分析与设计(OOA/OOD)UML不是OOA/OOD,也不是设计方法,它仅仅只是一种图形表示法如果不掌握面向对象思想,那么UML或任何Case工具(建模工具,如:Rose)将毫无意义。UML是一种思考工具,也是一种沟通方式,因此它能帮我们更好地表达我们的思想(面向对象的设计思想),所以我们会将OOA/OOD中应用UML,以此来更好地表达我们的思想(设计)分析(Analysis)—对问题和需求的调查研究设计(Design)—满足需求的概念上的解决方案例如:都有哪些类,它们之间的关系是什么,一个类都有哪些属性等等,以及这些类产生对象以后,这些对象之间是如何交互的,因此设计是对分析的进一步细化。面向对象分析与设计(OOA/OOD)面向对象分析(Object-OrientedAnalysis)在问题域内发现和描述对象,即:采用面向对象的方法,将现实中的需求抽象成一个个的对象模型,用以映射现实世界中指定问题域中的对象和实体,例如:顾客、汽车和销售人员等。面向对象设计(Object-OrientedDesign)如何定义软件对象以及它们之间如何协作,以实现需求。它是OO(面向对象)方法中一个中间过渡环节,其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP(面向对象编程)直接应用。【示例】看下面一段内容:东北人都是活雷锋。第一步:如何采用面向对象分析的方法来分析?(面向对象分析)首先这句话中都包含了哪些概念?(1)采用面向对象的思想分析,可以抽取出:①东北人②活雷锋第二步:如何采用面向对象来设计上面分析出的结果(面向对象设计)东北人都是活雷锋这是一种什么关系?这可能是一种继承关系:东北人都是人,东北人都是活雷锋第三步:如何实现上面的设计(实现)考虑采用什么语言来实现,如果采用Java语言,如何设计这些类,如何实现这些类之间的继承关系,这就需要进行进一步的设计类的代码。什么是建模建模就是给现实世界中的这些事物,建立一种能够被人理解的一些模型。这里的模型可以有很多种,例如:需求模型、概念模型等。模型其实就是我们的想法的具体表现。例如:从哈尔滨学院去远大购物中心如何走?我们可以建立如下模型,通过模型我们就可以知道如何走了。(1)用文字来描述出这个路径(走法)模型可以先走到学府路,然后在服装城站乘坐104路公交车,然后在博物馆站下车,过道后,步行至远大购物中心。通过上面的描述,我们大致了解了去远大购物中心的走法,但是如果把上面的这段文字描述(即:用文字描述的这种模型)给一个不认识字的人看,他是否能到达目的地呢?显然答案是否定的,这就需要我们再从另一个方面(角度)来表达上面的描述(即:从另一个方面(角度)来建立上面如何走的模型)(2)使用图形来描述这个路径(走法)模型我们可以在纸上将上面提到的走法,画成图,在图中就会出现各种线和图形,为了让别人看明白这张图这时就需要明确定义这条线是什么意思,这个图形是什么意思。通过上面的举例,可以看出有时为了表达同一件事,我们可以从不同的角度建立不同的模型来进行描述。通过软件系统来看模型一个软件系统通常也是较为复杂的,如果我们要想充分了解一个软件系统,就需要从不同的方面去描述它。首先我们要从需求的方面来了解即:这个软件是干什么的,都有什么样的功能,开发出来以后谁来用它等等,这就需要我们建立需求模型;有了需求以后,我们就要分析这些需求,从而得出一个概念模型,在概念模型中主要描述的就是概念模型中的这些模型之间的关联关系;有了概念模型以后我们就可以对这些概念模型进行实现,在实现阶段我们就会选取采用什么结构进行开发,是C/S结构还是B/S结构,采用哪种软件技术,用什么架构搭建程序,例如:采用Java程序和SSH技术,即:选择架构,选择技术。接下来我们就要真正的设计完成这个软件系统需要哪些类、哪些页面等等。可以看出开发一个软件系统就是需要这样一步一步去分析它,这每一个步骤就相当于我们在从不同的角度去观察这个软件系统,在每一个角度里都会有与之匹配的模型存在,因此如果要完整清晰地开发一个软件系统就需要从不同的角度去分析它、设计它,从而得到多个模型,所以一个软件系统会存在多个模型,正是通过这一系列的模型将一个完整的软件系统更好地呈现在用户面前。在实际的开发中,无论是需求分析阶段还是分析设计阶段以及后来的实现阶段,它们都被划分成两个大的方面:静态方面建模静态方面建模是指需求模型、概念模型等,即静态方面建模描述的就是一个软件系统都有什么功能、都有什么概念(领域对象)以及这些概念之间的关联关系。动态方面建模动态方面建模指的是软件系统中对象之间是如何交互的。例如:采用SSH框架,Action类调用业务逻辑层,业务逻辑层调用数据访问层,这种对象之间的调用就是动态建模。综上所述,软件建模总共包括两个方面:静态方面(建模)和动态方面(建模)因此分析一个软件系统我们要从这两个方面共同来描述这个软件系统。UP与瀑布模型什么是UP?软件开发过程(SoftwareDevelopmentProess)描述了构造、部署以及维护软件的方式。统一过程(TheUnifiedSoftwareDevelopmentProcess,UP)是一种流行的构造面向对象系统的迭代软件开发过程,这就是UP。特别是统一软件过程(RationalUnifiedProcess,RUP)是对统一过程的详细精化,并且已经被广泛采纳。UP中主要包括3个重要概念以架构为中心:构架就是各种模型,在整个过程中,需求有需求模型,分析有分析模型,设计有设计模型,测试有测试模型,这些模型就构成了软件的整体构架用例驱动:用例就是我们要开发的这个软件的目标,要确定用户使用这个软件究竟要干什么,他如何用,用它来促进整个过程。迭代和增量式开发:在一开始的时候,在了解了整个软件的整体需求后,从中挑出最重要,最不可缺少的20%左右的需求建立用例模型,然后进行详细分析,待这20%需求完成后就会做出一个基本成型的产品,然后再采用用例驱动模型分析剩余的需求,逐一细化添加到已有的系统中,不断循环往复将所有需求全部完成,至此一个完整的软件系统开发完毕。UP也可以引进其它方法中的有用的实践,比如极限编程(ExtremeProgramming,XP)。XP中的测试驱动开发(test-drivendevelopment)、重构(refactoring)和持续集成(continuousintegration)等。几点说明:极限编程:主要重视沟通与反馈:包括项目小组与客户之间的沟通,项目小组内部沟通,其实就是不断的沟通,通过沟通不断修改设计方案,最终实现全部系统功能。持续集成:指的是一开始先开发出一个最核心的小系统,然后在这个基础上逐步将后续新的需求增加至现有系统中,这样在这个过程中客户可以参与进来,及时提出问题,及时修正设计方案,问题提出的越早越好迭代和增量式开发这个阶段只分析整个项目中最为重要的20%左右的需求参见下方注释侧重于测试和部署阶段侧重于代码实现阶段不同的阶段都是采用迭代逐步完成,最后将完成整个系统什么是瀑布模型开发试图在编程这前(详细)定义所有或大部分需求通常于编程之前创建出完整的设计试图在开始前定义“可靠的”计划或时间表瀑布模型开发不适用于需求变化的情况!为什么要使用UML如何来描述一架飞机?计算机图形学,名言:一幅图顶得上一千个字UML简介标准定义统一建模语言(UnifiedModelingLanguage,UML)是描述、构造和文档化系统制品的可视化语言。UML是可视化语言UML是图形化语言图形便于交流(一幅图抵上千文字)用UML实际上就是在写文档,只不过这个文档是用图形写出来的。UML的定义包括UML语义和UML表示法两个部分。UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。UML表示法:定义了UML符号的表示方法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。UML发展文档版类精华相关documentsUML1.11997年9月最后提交给OMGdocumentsUML1.21998documentsUML1.31999documentsUML2.02001年计划的重要修订文字上的修改,没有显著的技术变化documentsUnifiedMethod0.81995documentsUML0.91996documentsUML1.01997年1月最初提交给OMGdocumentsUML1.42000年(计划的较小修订)应用UML的三种方式草图典型特征,可以随时丢弃,但是为什么还要画呢?因为在分析时会有各种想法,可以先画出草图,然后进行讨论,这样较为节省时间,最后确定一个基本完善的图。在这个期间会有一些图被丢弃,如果这些图画的比较全面,则会浪费很多的时间。草图主要是用来进行沟通使用的。蓝图蓝图是对草图的进一步细化,但是需要指出的是,在需求变化频繁的情况下,当原始的需求所对应的蓝图已经被确定,这种情况下,就要求蓝图不要绘制的过于精细,否则需要一旦变化,以前所绘制的蓝图就会全部作废,这也从另一个角度说明了UML怎么用,我们应该大概简略绘制,不要面面俱到。编程语言通常不把UML看作是一种编程语言,之所以把它称为语言,是因为在UML中有类的概念、有接口的概念等,但是UML本身并没有相应的编程语句,所以严格意义上来说,UML不是一门编程语言,而为了表述方便,把它称之为UML语言罢了。注:设计和开发在实际应用过程中是有一定偏差的,有时蓝图也可以在软件系统全部完成后再进行后期绘制,在开发前期只绘制相应的草图。这样做的目的是当软件系统开发完毕后,相对比较稳定,这样对应的UML图也确定下来了,将来UML图为后续的维护人员提供良好帮助,维护人员可以通过UML图快速了解整个软件系统。UML作用UML是以后工作中用到的一种工具,是面向对象思想分析和设计所使用的工具。在软件开发中最重要的是想法(即:OOAD思想),而UML不过是我们想法的一种表达工具。想法(即:OOAD思想)才是最重要的,如果没想法(即:OOAD思想)那么UML也就没有用武之地了。UML是我们想法的表达工具,在学习时就是要学习UML的各种表示法,这种不同的表示法是通过不同的图形来展现的。学习UML的要素表示法—图形这是我们后续学习的重点,我们就是要学习UML中各种图形的表示方法。工具—绘制UML图形的软件工具绘制UML的工具软件,它是UML知识体系中最不重要的,因为绘制UML图形的工具有很多种,例如:RationRose。UML模型图的构成事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象关系(Relationships):关系把事物紧密联系在一起图(Diagrams):图是事物和关系的可视化表示UML事物UML事物包含4种具体事物:构件事物:UML模型的静态部分,描述概念或物理元素构件事物包括以下几种:※类:具有相同属性相同操作相同关系相同语义的对象的描述※接口:描述元素的外部可见行为,即服务集合的定义说明※协作:描述了一组事物间的相互作用的集合※用例:代表一个系统或系统的一部分行为,是一组动作序列的集合※构件:系统中物理存在,可替换的部件※节点:运行时存在的物理元素另外:参与者、信号应用、文档库、页表等都是上述基本事物的变体行为事物:UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接状态机:描述事物或交互在生命周期内响应事件所经历的状态序列分组事物:UML模型图的组织部分,描述事物的组织结构包:把元素组织成组的机制子系统注

1 / 85
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功