统一建模语言UML--软件建模概述ppt课件_第1页
统一建模语言UML--软件建模概述ppt课件_第2页
统一建模语言UML--软件建模概述ppt课件_第3页
统一建模语言UML--软件建模概述ppt课件_第4页
统一建模语言UML--软件建模概述ppt课件_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、统一建模语言统一建模语言UML软件建模概述软件建模概述面向过程还是面向对象?面向过程还是面向对象?l面向过程面向过程l结构化程序设计结构化程序设计lDFD图、图、ER模型、模型、UC矩阵等矩阵等l面向对象面向对象l继承、封装、多态、复用等继承、封装、多态、复用等Grady Booch :l我对面向对象的目标从来就不是复用。我对面向对象的目标从来就不是复用。l对我来说,对象提供了一种处理复杂性问题的对我来说,对象提供了一种处理复杂性问题的方式。这个问题可以追逐到亚里士多德:您把方式。这个问题可以追逐到亚里士多德:您把这个世界视为过程还是对象?这个世界视为过程还是对象?l在面向对象兴起之前,编程以

2、过程为中心,然在面向对象兴起之前,编程以过程为中心,然而系统已经达到了超越其处理能力复杂性极点。而系统已经达到了超越其处理能力复杂性极点。l有了对象,我们能够通过提升抽象级别来构建有了对象,我们能够通过提升抽象级别来构建更大更复杂的系统,这才是面向对象编程运动更大更复杂的系统,这才是面向对象编程运动的真正胜利。的真正胜利。面向过程的世界观面向过程的世界观l世界是由一个个相互关联的世界是由一个个相互关联的小系统组成。小系统组成。l每个小系统都有着明确的开每个小系统都有着明确的开始和明确的结束,开始和结始和明确的结束,开始和结束之间有着严谨的因果关系。束之间有着严谨的因果关系。l只要将系统中的每一

3、个步骤只要将系统中的每一个步骤和影响这个小系统走向的所和影响这个小系统走向的所有因素都分析处理,就能完有因素都分析处理,就能完全定义系统行为。全定义系统行为。面向过程的分析方法面向过程的分析方法l首先将过程描述出来,定义其中的因果关系,首先将过程描述出来,定义其中的因果关系,l通过结构化的设计方法,将这些过程进行细化,通过结构化的设计方法,将这些过程进行细化,l找到过程的起点,依次分析安排每一个部份,找到过程的起点,依次分析安排每一个部份,知道过程的终点。知道过程的终点。面向过程传统的商业过程面向过程传统的商业过程 过程中的数据过程中的数据l面向过程中,数据是很重要的,必须保证数据面向过程中,

4、数据是很重要的,必须保证数据的完备性和正确性。的完备性和正确性。l催生了关系数据库的一系列理论。催生了关系数据库的一系列理论。l主键、外键、关系理论、范式主键、外键、关系理论、范式lER分析模型也被广为使用。分析模型也被广为使用。面向过程的困难面向过程的困难l随着需求越来越复杂,系统庞大化,功能点越随着需求越来越复杂,系统庞大化,功能点越来越多,数据被多个过程共享,且其创建和读来越多,数据被多个过程共享,且其创建和读取方式也越来越复杂多样,经常出现矛盾的数取方式也越来越复杂多样,经常出现矛盾的数据需求。据需求。l因此分析和设计也变得困难。因此分析和设计也变得困难。 疑惑疑惑l当过程不再稳定,结

5、果无法预设时,面向过程当过程不再稳定,结果无法预设时,面向过程方法如何进行分析?方法如何进行分析?l当数据量大,且频繁变化时,以数据为基础的当数据量大,且频繁变化时,以数据为基础的面向过程方法如何保持程序的稳定性?面向过程方法如何保持程序的稳定性?本质原因本质原因l将世界看作过程化的,由一系列小系统由密不将世界看作过程化的,由一系列小系统由密不可分的因果关系互联起来。可分的因果关系互联起来。l当需求复杂程度较低时,非常管用。当需求复杂程度较低时,非常管用。l当构成的系统因素太多,要把所有的因素及其当构成的系统因素太多,要把所有的因素及其中的因果关系都考虑到,再把这个过程模拟出中的因果关系都考虑

6、到,再把这个过程模拟出来就太困难了。来就太困难了。面向对象世界观面向对象世界观l将世界看作一个个相互独立的对象,相互之间将世界看作一个个相互独立的对象,相互之间并无因果关系。并无因果关系。l只有在某个外部力量的驱动下,对象之间才会只有在某个外部力量的驱动下,对象之间才会依据某种规律相互传递信息。这样的交互就构依据某种规律相互传递信息。这样的交互就构成了一个成了一个“过程过程”。l在没有外力的情况下,对象则保持在没有外力的情况下,对象则保持“静止的静止的状态。状态。微观角度看对象微观角度看对象l有坚硬的外壳,除了与外界交互的信息通道外,有坚硬的外壳,除了与外界交互的信息通道外,对象内部就是黑匣子

7、。对象内部就是黑匣子。l 封装封装l对象可以结合在一起产生新对象,具有前两者对象可以结合在一起产生新对象,具有前两者的特性总和。的特性总和。l 聚合聚合l可以繁育,孩子将具有父辈的全部本领。可以繁育,孩子将具有父辈的全部本领。l 继承继承微观角度看对象微观角度看对象l多面派,它会根据不同的要求展现其中的一面。多面派,它会根据不同的要求展现其中的一面。l 接口接口l多个对象可能长着相同的脸,而这张脸背后又多个对象可能长着相同的脸,而这张脸背后又有着不同的行为。有着不同的行为。l 多态多态宏观角度看对象宏观角度看对象l对象是对象是“短视的,它不知道它身处的世界,短视的,它不知道它身处的世界,也不知

8、道它的行为是如何贡献给这个世界的。也不知道它的行为是如何贡献给这个世界的。l它只和身边的某一些伙伴保持信息交流,但仍它只和身边的某一些伙伴保持信息交流,但仍然顽固的保护着自己的领地,只允许伙伴通过然顽固的保护着自己的领地,只允许伙伴通过它打开的小小窗口来进行交流。它打开的小小窗口来进行交流。对象构成的世界对象构成的世界l对象是没有纪律,但是一旦我们确定了一系列对象是没有纪律,但是一旦我们确定了一系列的规则,把符合规则要求的对象组织起来,形的规则,把符合规则要求的对象组织起来,形成特定的结构,它们就能拥有某些特定的能力,成特定的结构,它们就能拥有某些特定的能力,再给这个结构一个推动力,它们就能做

9、出规则再给这个结构一个推动力,它们就能做出规则要求的行为。要求的行为。对象组装对象组装 对象组成的好处对象组成的好处l每个对象只与有限的其它对象有联系,每个对每个对象只与有限的其它对象有联系,每个对象不需要再从整个系统的角度来分析,使得我象不需要再从整个系统的角度来分析,使得我们在分析对象时需要考虑的问题量大大减少。们在分析对象时需要考虑的问题量大大减少。l只要符合规则要求,这些标准的零件就可以替只要符合规则要求,这些标准的零件就可以替换,给我们带来了极大的灵活性和扩展能力。换,给我们带来了极大的灵活性和扩展能力。l从小对象组合成整体对象,也体现抽象层次这从小对象组合成整体对象,也体现抽象层次

10、这个特性,使得我们可以停留在不同的抽象层次个特性,使得我们可以停留在不同的抽象层次解决该层次的问题。解决该层次的问题。面向过程面向过程面向对象面向对象l面向对象不再把世界看作一个紧密关联的系统,面向对象不再把世界看作一个紧密关联的系统,而是看成一些相互独立的小零部件,依据某种而是看成一些相互独立的小零部件,依据某种规则组织起来,完成某一特定功能。规则组织起来,完成某一特定功能。l“过程是由通过某特定规则组织起来的对象过程是由通过某特定规则组织起来的对象“表现出来的。表现出来的。面向对象的疑问面向对象的疑问l零件能组装出我们要的功能,但是零件又是怎零件能组装出我们要的功能,但是零件又是怎么来的?

11、符合规则的标准零件是如何设计和制么来的?符合规则的标准零件是如何设计和制造出来的?造出来的?l这个结构可以完成特定的功能,但是换另一组这个结构可以完成特定的功能,但是换另一组零件另一组装规则就不能完成特定功能了吗?零件另一组装规则就不能完成特定功能了吗?这个结构到底是怎样实现特定功能的呢?这个结构到底是怎样实现特定功能的呢?l零件是标准的,我们可以任意改变规则来组合零件是标准的,我们可以任意改变规则来组合它们,那我们随意组装的结构表达了什么意思它们,那我们随意组装的结构表达了什么意思呢?呢?归结为归结为l对象是怎么抽象出来的?对象是怎么抽象出来的?l什么样的组合是好的,什么样的组合是差的?什么

12、样的组合是好的,什么样的组合是差的?l给我们一个对象组合,怎么样才能理解它表达给我们一个对象组合,怎么样才能理解它表达了怎样的含义?了怎样的含义? 实际工作中实际工作中l我们常常设计许多类来满足要求,但要设计多我们常常设计许多类来满足要求,但要设计多少个类才能满足要求?少个类才能满足要求?l靠经验。靠经验。l经验不足的,只好不断尝试,拼一拼,凑一凑,经验不足的,只好不断尝试,拼一拼,凑一凑,不行就重头来过。不行就重头来过。实际工作中实际工作中l许多程序员拿着设计师的设计结果和系统分析许多程序员拿着设计师的设计结果和系统分析员编写的需求说明,却搞不清楚设计到底是如员编写的需求说明,却搞不清楚设计

13、到底是如何映射到需求上的。何映射到需求上的。l说明:现实世界和对象世界之间的存在着一道说明:现实世界和对象世界之间的存在着一道鸿沟笼统。鸿沟笼统。l这是面向对象的精髓也是面向对象的困难。这是面向对象的精髓也是面向对象的困难。跨越鸿沟,我们需要:跨越鸿沟,我们需要:l一种把现实世界映射到对象世界的方法。一种把现实世界映射到对象世界的方法。l一种从对象世界描述现实世界的方法。一种从对象世界描述现实世界的方法。l一种验证对象世界行为是否反映了现实世界的一种验证对象世界行为是否反映了现实世界的方法。方法。l UML什么是什么是UML?l诞生的历史诞生的历史lSmalltalk诞生诞生改进开发效率,优化

14、代码,改进开发效率,优化代码,代码重用;但分析设计领域仍然以结构化为主。代码重用;但分析设计领域仍然以结构化为主。l对象无法结构化设计中自然的推导出来。对象无法结构化设计中自然的推导出来。l过程化结构化设计与事件驱动的对象之间有难过程化结构化设计与事件驱动的对象之间有难以调和的矛盾。以调和的矛盾。l设计无法指导编程。设计无法指导编程。诞生的历史诞生的历史l为此提出一批面向对象设计方法:为此提出一批面向对象设计方法:lGOOD 通用面向对象开发通用面向对象开发lHOOD层次化面向对象设计层次化面向对象设计lOOSE面向对象结构设计面向对象结构设计l等等l 它们的应用为面向对象理论发展提供了非常它

15、们的应用为面向对象理论发展提供了非常重要的实践和经验。重要的实践和经验。诞生的历史诞生的历史l随着应用程序的进一步复杂,需求分析成为比随着应用程序的进一步复杂,需求分析成为比设计更为重要的问题。设计更为重要的问题。OOA方法开始走上舞方法开始走上舞台。台。lBooch:Booch方法方法lJacobson:OOSE面向对象软件工程面向对象软件工程lRumbaogh:OMT对象建模技术对象建模技术诞生的历史诞生的历史l这些方法虽然各不相同,但是理念相似,三位这些方法虽然各不相同,但是理念相似,三位大师决定将他们各自的方法统一起来,在大师决定将他们各自的方法统一起来,在2019年年10月推出了第一

16、版,称为月推出了第一版,称为“统一方统一方法法”。l随后又以随后又以“统一建模语言统一建模语言UML的正式名称的正式名称提交到提交到OMG对象管理组织),在对象管理组织),在2019年年1月正式成为一种标准建模语言。月正式成为一种标准建模语言。UMLl是一种建模语言,由是一种建模语言,由“基本词汇和基本词汇和“语法构语法构成成”。l定义了建模所需要的基本元素,以及元素之间定义了建模所需要的基本元素,以及元素之间关系的规则,关系的规则,l以及如何用这些元素和最终绘制图形,建立模以及如何用这些元素和最终绘制图形,建立模型映射现实世界。型映射现实世界。l创造了一种大家都认同的统一语言。创造了一种大家

17、都认同的统一语言。统一语言统一语言lUML用一种统一的语言来覆盖整个软件过程用一种统一的语言来覆盖整个软件过程需求、分析、设计需求、分析、设计),让不同的开发团),让不同的开发团队能顺畅沟通。队能顺畅沟通。可视化可视化lUML采用了采用了“可视化的图形方式来定义语可视化的图形方式来定义语言。言。l可视化:可视化:l不是可以用眼睛看到不是可以用眼睛看到l而是而是UML通过它的元模型和表示法,把文字通过它的元模型和表示法,把文字等方式很难表达清楚的,隐晦的潜台词用简单等方式很难表达清楚的,隐晦的潜台词用简单直观的图形表达,准确直观的描述复杂的含义。直观的图形表达,准确直观的描述复杂的含义。例如:例

18、如:l一段文字描述:一段文字描述:l造一辆车,车身是红色金属漆的小轿车,装配造一辆车,车身是红色金属漆的小轿车,装配4个普利斯通轮胎,它是一辆四门车,车门是个普利斯通轮胎,它是一辆四门车,车门是加厚的,并且前后门玻璃上贴黑色的膜,前后加厚的,并且前后门玻璃上贴黑色的膜,前后挡风玻璃都装有电热丝,后视镜是可以电动调挡风玻璃都装有电热丝,后视镜是可以电动调节的。节的。 汽车的汽车的UML表述表述 从现实世界到业务模型从现实世界到业务模型l软件建模要求:软件建模要求:l过程严谨,可追述和可验证,易于将模型转化过程严谨,可追述和可验证,易于将模型转化为计算机能够理解的模型为计算机能够理解的模型建模的本

19、质建模的本质l建模过程就是一个抽象过程,因此首先要知道建模过程就是一个抽象过程,因此首先要知道如何抽象现实世界。如何抽象现实世界。l站在很高的抽象层次,高度归纳的视角看世界:站在很高的抽象层次,高度归纳的视角看世界:人、事、物、规则。人、事、物、规则。l建立模型就是弄明白什么人,做什么事,会产建立模型就是弄明白什么人,做什么事,会产生什么物,中间有什么规则,以及定义人、事、生什么物,中间有什么规则,以及定义人、事、物之间的关系。物之间的关系。UML是否提供了相关元素来建立是否提供了相关元素来建立模型?模型?l参与者参与者l模型信息来源提供者,也是第一驱动者。模型信息来源提供者,也是第一驱动者。

20、l是整个建模过程的核心。是整个建模过程的核心。l代表了现实世界中的代表了现实世界中的“人人”。l用例用例l表示驱动者的业务目标,即想做什么并且获得表示驱动者的业务目标,即想做什么并且获得什么。什么。l代表了现实世界中的代表了现实世界中的“事事” l场景、用例场景:场景、用例场景:l描述这件事是怎么做的,依据什么规则。描述这件事是怎么做的,依据什么规则。l代表现实世界中的代表现实世界中的“规则规则”。l业务对象模型:业务对象模型:l业务对象模型的视图说明在达成业务目标过程业务对象模型的视图说明在达成业务目标过程中涉及到的事物,用逻辑概念来表示它们,并中涉及到的事物,用逻辑概念来表示它们,并定义它

21、们之间的关系。定义它们之间的关系。l代表现实世界中的代表现实世界中的“物物”。面向对象方法的第一步面向对象方法的第一步 lUML通过上述的元模型和视图,捕获现实世通过上述的元模型和视图,捕获现实世界中的人、事、物和规则,于是现实信息转换界中的人、事、物和规则,于是现实信息转换成为业务模型。成为业务模型。从现实世界到业务模型从现实世界到业务模型 从业务模型到概念模型从业务模型到概念模型lUML通过概念化过程来建立适合计算机理解通过概念化过程来建立适合计算机理解和实现的模型分析模型和实现的模型分析模型l分析模型介于原始需求和计算机实现之间,是分析模型介于原始需求和计算机实现之间,是一种过渡模型。一

22、种过渡模型。分析模型的主要元素分析模型的主要元素l边界类边界类l狭义上说就是界面狭义上说就是界面l广义上说,就是内部与外部交互的边界。广义上说,就是内部与外部交互的边界。l边界能决定整个分析的结果。边界能决定整个分析的结果。分析模型的主要元素分析模型的主要元素l实体类:实体类:l原始需求领域中的业务实体,映射了现实世界原始需求领域中的业务实体,映射了现实世界中参与者完成业务目标时所涉及的事物,中参与者完成业务目标时所涉及的事物,UML采用实体类来重新表达业务实体采用实体类来重新表达业务实体l记录了业务过程中必须被记录的信息,而且添记录了业务过程中必须被记录的信息,而且添加了执行计算机逻辑时需要

23、的控制信息。加了执行计算机逻辑时需要的控制信息。分析模型的主要元素分析模型的主要元素l控制类:控制类:l表述原始需求中的动态信息表述原始需求中的动态信息l边界类、实体类之间相互访问,都要通过控制边界类、实体类之间相互访问,都要通过控制类来代理。类来代理。分析模型中的映射关系分析模型中的映射关系l所有的操作都通过边界类来进行,做什么,不所有的操作都通过边界类来进行,做什么,不能做什么都由边界类来决定,所以:能做什么都由边界类来决定,所以:l边界类边界类原始需求中的原始需求中的“事事”l实体类代表领域模型中业务目标所涉及的事物,实体类代表领域模型中业务目标所涉及的事物,所以:所以:l实体类实体类现

24、实世界中的现实世界中的“物物” l控制类代理访问请求,所以:控制类代理访问请求,所以:l控制类控制类现实世界中的现实世界中的“规则规则”l加上参与者加上参与者,就表达出了特定的业务含义就表达出了特定的业务含义 。业务模型到概念模型业务模型到概念模型 从概念模型到设计模型从概念模型到设计模型l设计模型中设计模型中l边界类边界类操作界面或者系统接口操作界面或者系统接口l控制类控制类工作流、算法体或者控制程序工作流、算法体或者控制程序l实体类实体类数据库表、数据库表、XML文档或者其它带有文档或者其它带有 l 持久化特征的类持久化特征的类l这个过程可以遵循某些软件架构或者框架,或这个过程可以遵循某些

25、软件架构或者框架,或者某些编程语言的要求者某些编程语言的要求概念模型到设计模型概念模型到设计模型 面向对象的困难解决了吗?面向对象的困难解决了吗?l在前面我们提到要解决面向对象的困难,我们在前面我们提到要解决面向对象的困难,我们要这样一些方法:要这样一些方法:l一种把现实世界映射到对象世界的方法。一种把现实世界映射到对象世界的方法。l一种从对象世界描述现实世界的方法。一种从对象世界描述现实世界的方法。l一种验证对象世界行为是否反映了现实世界的一种验证对象世界行为是否反映了现实世界的方法。方法。lUML是否为我们提供了上述方法呢?是否为我们提供了上述方法呢?从现实世界到业务模型从现实世界到业务模型lUML采用用例来捕获现实世界的人要做的事,采用用例来捕获现实世界的人要做的事,l再通过用例场景、模型视图将现实世界的人、再通过用例场景、模型视图将现实世界的人、事、物、规则这些构成现实世界的元素用事、物、规则这些构成现实世界的元素用UML描述出来。描述出来。l将我们的现实世界映射到了对象世界。将我们的现实世界映射到了对象世界。从业务模型到概念模型从业务模型到概念模型l在业务模型中,我们已经采用了对象视角。在业务模型中,我们已经采用了对象视角。l进而将用例所代表的业务过程用进而将用例所代表的业务过程用“边境边境”、“控制控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论