跟我学统一建模语言UML—— 软件系统开发人员为什么要使用UML

  • 格式:pdf
  • 大小:295.66 KB
  • 文档页数:8

杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 1/8页 1.1 跟我学统一建模语言UML——软件系统开发人员为什么要使用UML 1.1.1 UML可以以图形的方式来展示软件系统的各个方面的特性——建立模型的必要性 1、工程建模 作曲家会将其脑袋中的旋律谱成乐曲,建筑师会将其设计的建筑物画成蓝图和制作出建筑沙盘模型,这些乐曲、蓝图、沙盘模型其实都是模型(Model),而建构这些模型的过程就称为建模(Modeling)。 2、软件建模 软件系统的开发也如同音乐谱曲及建筑设计,在其开发过程中也不仅必须要将软件系统的需求、分析、设计、实现、部署等各个阶段的各项工作流程的构想与设计结果予以呈现出,而且还需要从软件系统的功能方面、非功能方面和组织结构方面等不同的角度描述和说明软件系统。 从而有助于项目组的其它人员的理解和开发人员的实现,这就是软件系统的建模。因此,软件系统设计中通过使用UML,可以以面向对象(OO)的方式来进行软件系统的需求分析、系统设计和编程实现,并且已经被OMG(Object Management Group)标准化了。 软件建模体现了软件设计的思想,在软件系统的需求和软件系统的实现之间架起了一座桥梁。软件开发实现工程师按照软件系统的设计人员所建立的各种模型,开发出符合设计目标的软件系统,而且软件系统的维护和升级、改进也都要基于该软件系统的分析模型。 3、面向对象的建模方法 面向对象方法它有着自己的优点——它与人类习惯的思维方法一致,使得使用者和维杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 2/8页 护人员都容易理解。而面向对象所具有的抽象、封装、继承、多态等特性不仅可以很好地描述目标事物,也还具有良好的可扩展性。 利用面向对象的思想为软件系统建模,已经成为软件开发的主要工作。一个软件系统的模型如果建立的比较良好,就为满足用户需求、保证系统的稳定性和质量、提高系统的扩展性打下了良好的基础。 1.1.2 在软件系统开发实现中为什么要应用UML 1、使用UML主要是基于如下的各种目的 (1)可以无歧义地理解软件系统 因为在UML表示法中的每一个符号都有明确的语义。这样,一个开发者可以用UML绘制一个软件模型,而另外一个开发者可以无歧义地理解这个软件模型,有助于项目组的人员相关沟通和交流。 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 3/8页

(2)独立于软件系统编程实现语言的系统建模 UML不是一种可视化的编程语言,但用UML描述的软件系统模型可以与各种编程语言直接相连。比如可以进行正向工程和逆向工程两种不同形式的工程从而实现将UML的模型直接转换为程序代码或者根据程序代码获得对应的UML模型,并且是独立于软件系统编程实现语言的系统建模。 下图为在某个UML建模工具中右击某个类的名称,在弹出的快捷菜单项目中选择“Go to Source”子菜单项目,将直接显示出该类的代码。 选择“Go to Source”,将显示该类的源代码的定义——如下图所示。 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 4/8页

(3)UML的文档化语言特性是可以产生出软件开发中的各种制品 一个高质量的软件系统不仅需要规范的高质量的可执行的代码,也还需要配套提供其他相关的文档或者制品——如系统需求分析规格说明书、系统设计说明书等。通过这些制品的产出是度量和理解软件系统的关键,否则所开发创建的软件系统将不可维护和升级完善。 (4)可视化建模是一种交流和沟通的工具 因为使用可视化建模可以抓住软件系统中的业务对象和业务逻辑、数据关系等要素,软件系统开发人员使用UML其实是想用它来配合面向对象的设计方法和面向对象的程序实现,并实现在整个开发的各个阶段中,开发人员之间的相互沟通和交流。 2、UML是人类思想和计算机代码的一个连接桥梁 由于软件是依赖人脑创建的一种特殊的产品,与其它工业化的物质产品存在一个最大的差别——无形。因此,如何能够将某个软件系统用户的期望、软件系统设计人员的解决方案和软件系统编程实现人员的开发实现能够以一种可视化的形式表现在对应的文档中?而UML成功地帮助软件系统开发人员解决了此棘手的问题,因此UML是人类思想和计算机代码的一个连接桥梁。 (1)UML所定义的概念和符号可用于软件系统开发的分析、设计和实现的全过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。 (2)UML所用的语言元素基本都是图形化的,便于理解和沟通,不但开发人员之间可以采用UML进行交流,软件系统的客户和软件系统的开发人员之间也可以用它作为交流的杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 5/8页 工具。 1.1.3 如何合理和正确地应用UML 1、UML 最适于的过程 (1)用例驱动的 (2)以体系结构为中心 (3)迭代的和增量的 由于UML的目标是以面向对象图的方式来描述任何类型的系统,因此其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。 2、UML常见的应用范围 (1)信息系统 信息系统为用户提供存储、检索、变换和表现信息等功能。该系统处理那些具有复杂关系的大量数据,这些数据存储在关系数据库或对象数据库中。 (2)技术系统 技术系统处理和控制技术装备,比如电信、军事系统或工业处理系统。它们必须处理装备的特定接口,并且拥有的标准软件也比信息系统少。技术系统通常是实时系统。 (3)嵌入式实时系统 这种类型的系统在嵌入到其他装备(如移动电话、汽车、家用电器等)中的简单硬件上运行。这是通过低级编程(需要实时性支持)实现的。这些系统通常缺少像显示器、硬盘等之类的设备。 (4)分布式系统 分布式系统指软件分布于多台机器上,数据可以很容易地从一台机器传送到另一台的系统。它们需要同步通信机制以确保数据的完整性,并且通常是基于面向对象机制建立的,如CORBA、COM/DCOM或Java Beans/RMI。 (5)系统软件 系统软件定义其他软件所使用的技术基础,如操作系统、数据库以及对硬件执行低级操作的用户接口,同时,系统软件还为其他软件提供通用接口。 (6)业务系统 业务系统描述业务的目标、资源(人、计算机等)、规则(法律、业务战略、政策等),杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 6/8页 以及实际任务。 3、UML的主要功能 (1)主要作用 UML,Unified Modeling Language,统一建模语言,是一种面向对象的建模语言,它的主要作用是帮助我们对软件系统进行面向对象的描述和建模,它可以描述这个软件开发过程从需求分析直到实现和测试的全过程。 (2)UML提供动静态建模技术 UML通过建立各种类、类之间的关联、类/对象怎样相互配合实现系统的动态行为等成分(这些都称为模型元素)来组建整个模型,刻画客观世界。 (3)UML提供了各种图形 比如Use Case图、类图、对象图、顺序图、协作图、状态图(共五类9种图)等,来把这些模型元素及其关系可视化,让人们可以清楚容易的理解模型。我们可以从多个视角来考察模型,从而更加全面的了解模型,这样同一个模型元素可能会出现在多个图中,对应多个图形元素。 4、应用UML所应该注意的要点 (1)UML 的价值在于实现开发团队中无歧义的沟通 由于自然语言(如人类的语言,中文或者英文等)本身无法达到无歧义,因此需要 UML 这样的形式化语言的帮助描述或者说明软件系统,应用UML的最终目的并不是得到一个完美的图形。 这个目的(更好的沟通)是开发人员必须要永远要记住的,UML 可以很好地服务于这个目的。一旦软件系统的开发人员发现已经达到了这种沟通效果,开发人员也就可以毫不杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 7/8页 迟疑地转向软件系统的代码实现,而不要将大量的时间耗费在描绘精美的UML图形。 因此,UML的价值不仅体现在软件系统的设计和开发实现阶段,更主要是在软件系统的业务分析阶段,因为如何能够尽快地让客户和开发人员理解待实现的软件系统的业务,并对业务流程能够进行有效地沟通和理解显得更为重要。 (2)UML 还是限于开发团队之内的沟通 和用户做沟通 UML 未必是最有效的沟通手段,使用 UML 来和用户沟通的效果远远不如使用微软的PowerPoint。因此在与用户沟通时,最好不要直接用用例图,而是把各种图表进行整理后采用PowerPoint向客户做汇报。 因为PowerPoint 可以嵌入各种生动的图形和表格,还可以支持超链接,是编写需求文档的重要工具。而用例图有一些特殊的表示方法(扩展、包含等等开发人员很容易掌握的概念,用户未必容易掌握),用户很难看懂。用例图的优点是精确,如果需要这种精确性,可以画些用例图。 5、实现UML建模的工具 Rose、Together、PowerDesigner、Visio、MyEclipse等 1.1.4 UML架构和UML中的各种视图 1、UML的架构 UML是由图和元模型组成的。图是UML的语法,而元模型则给出图的意思,是UML的语义。UML的语义是定义在一个四层建模概念框架中的,其层结构如下: (1)元元模型层 组成UML的基本元素“事物”,代表要定义的所有事物; (2)元模型层 组成了UML的基本元素,包括面向对象和面向组件的概念。这一层的每一个概念都是元元模型中“事物”概念的实例; (3)模型层 组成了UML的模型,这一层的每个概念都是元模型中概念的一个实例,这一层的模型通常叫做类模型或者类型模型; (4)用户模型层 这个层中的所有所有元素都是UML模型的例子。这一层中的每个概念都是模型层的一个实例,也是元模型的一个实例。这一层的模型通常叫做对象模型或实例模型。 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料

杨教授大学堂,版权所有,盗版必究。 8/8页 2、UML中的视图 (1)视图是由多个图来描述的 后者强调系统的某个特定方面的信息。这里会存在一点点重叠的内容,实际上,一个图可以是多个视图的组成部分。从不同的视图来观察系统,可以使人们在某段时间内集中注意系统的一个方面。 (2)所有视图结合在一起(通过它们各自的图)就描述了系统的完整画面。 3、UML为什么要采用多个不同的视图来描述软件系统 在理想的情况下,软件系统应该是由单一的图形来描述,该图形明确地定义了整个软件系统以及软件系统的各个层次的信息,并且该单一的图形还要易于人们之间的相互交流和理解。然而,通常这是不可能实现的。因为单一的图形不可能捕获到描述软件系统所需的所有信息。 工程项目或者产品需要不同形式的模型描述不同层次和层面的信息,软件系统也需要应用不同的视图描述不同方面的信息。 一般来说,软件系统通常是从多个不同的方面来描述的:在功能方面,需要描述软件系统的静态结构和动态交互;在非功能方面,则需要描述时间需求、可靠性、部署等方面的需求;而在组织结构方面,则需要说明任务组织结构、代码模块的映射等方面的信息。 因此,软件系统就由许多视图来共同描述,每一个视图代表完整软件系统描述的投影,显示软件系统的各个特定方面的信息。