软件建模软件工程专业课件

上传人:cl****1 文档编号:588532027 上传时间:2024-09-08 格式:PPT 页数:71 大小:1.54MB
返回 下载 相关 举报
软件建模软件工程专业课件_第1页
第1页 / 共71页
软件建模软件工程专业课件_第2页
第2页 / 共71页
软件建模软件工程专业课件_第3页
第3页 / 共71页
软件建模软件工程专业课件_第4页
第4页 / 共71页
软件建模软件工程专业课件_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《软件建模软件工程专业课件》由会员分享,可在线阅读,更多相关《软件建模软件工程专业课件(71页珍藏版)》请在金锄头文库上搜索。

1、1软件工程软件工程 2软件工程软件工程软件建模软件建模3主要讲解内容主要讲解内容1 1、UMLUML的建模思想的建模思想2 2、UMLUML的的7 7种结构事物种结构事物3 3、UMLUML中中5 5种关系种关系4 4、UMLUML的的9 9种图种图5 5、UMLUML的的5 5种规则种规则6 6、UMLUML的公共机制的公共机制7 7、UMLUML的的5 5张视图张视图8 8、UMLUML的微观建模内容的微观建模内容9 9、UMLUML的软件开发生存周期的软件开发生存周期1010、UMLUML的缺点与不足的缺点与不足1111、三个模型的建模思想、三个模型的建模思想4 软件建模软件建模导读导读

2、: : 软件开发的主要工作是软件需求和软件设计,软件开发的主要工作是软件需求和软件设计,其关键问题是软件建模。软件建模的思想与方式很其关键问题是软件建模。软件建模的思想与方式很多,但是最时尚的是多,但是最时尚的是UMLUML的建模思想和的建模思想和Rational Rational RoseRose的建模实现方式。的建模实现方式。本章重点讲述本章重点讲述“业务模型、功能模型、数据模型业务模型、功能模型、数据模型”这三个模型的建模思想与建模方法。这三个模型的建模思想与建模方法。705 软件建模软件建模要要 求求具体内容具体内容了了 解解 1) 1)软件建模的概念软件建模的概念 2)UMl2)UM

3、l对软件工程发展的影响对软件工程发展的影响 3)UML3)UML中面向对象的基本中面向对象的基本“构造块构造块”,支配这些构造块,支配这些构造块放在一起建模的放在一起建模的UMLUML“规则规则”,运用于整个,运用于整个UMlUMl的的“公共机公共机制制” 4)UML4)UML的宏观建模思想和微观建模思想的宏观建模思想和微观建模思想 5)UML5)UML的的“统统软件开发过程软件开发过程”理理 解解 1)UML 1)UML的支撑环境的支撑环境Rose Rose 2)UML 2)UML建模思想的优缺点建模思想的优缺点 3)3)三个模型建模思想的优缺点三个模型建模思想的优缺点掌掌 握握 1) 1)

4、业务模型的概念及表示方式业务模型的概念及表示方式 2)2)功能模型的概念及表示方式功能模型的概念及表示方式 3)3)数据模型的概念及表示方式数据模型的概念及表示方式6 UML的建模思想的建模思想UMLUML对软件工程的重大影响对软件工程的重大影响 模型是系统分析、设计、实现、测试的蓝图,可模型是系统分析、设计、实现、测试的蓝图,可视化统一建模语言视化统一建模语言UML(Unified Modeling Language)UML(Unified Modeling Language)将模型中的信息用标准图形元素直观地表示出来,实将模型中的信息用标准图形元素直观地表示出来,实现模型内部及外部的各种通

5、信。虽然利用非可视信息现模型内部及外部的各种通信。虽然利用非可视信息也能对系统进行描述与通信,但是图形比文字更容易也能对系统进行描述与通信,但是图形比文字更容易帮助人们理解系统的结构与层次。帮助人们理解系统的结构与层次。 UMLUML是一种面向对象的图形化的建模语言,主要是一种面向对象的图形化的建模语言,主要用于软件的分析与设计。用于软件的分析与设计。 7 UML的建模思想的建模思想 UML UML是是RationalRoseRationalRose的理论基础,的理论基础,RoseRose是是UMLUML的实的实现工具。现工具。UMLUML和和RoseRose的组合已构成了一种新的软件建的组合

6、已构成了一种新的软件建模思想和开发方式,势必会对软件工程的发展与创模思想和开发方式,势必会对软件工程的发展与创新产生重大影响,主要表现在如下新产生重大影响,主要表现在如下4 4个方面:个方面: (1)(1)软件生存周期:软件生存周期:UMLUML用统一的软件开发生存周用统一的软件开发生存周期来替代原有的软件生存周期。期来替代原有的软件生存周期。 (2)(2)软件建模方式:软件建模方式:UMLUML用可视化的语言实现软件用可视化的语言实现软件整个生存周期各个阶段的建模。整个生存周期各个阶段的建模。 (3)(3)软件文档规范:正向工程和逆向工程的文档软件文档规范:正向工程和逆向工程的文档全部由全部

7、由UMLUML建模工具自动产生。建模工具自动产生。 (4)(4)软件人员分工:软件人员分工:UMLUML使得分析、设计、实现、使得分析、设计、实现、维护的岗位界线逐渐趋向模糊。维护的岗位界线逐渐趋向模糊。8 UML的建模思想的建模思想 对于对于UMLUML,一直存在争议,但是多数组织和个人看,一直存在争议,但是多数组织和个人看好好UMLUML。目前对。目前对UMLUML和和RoseRose的学习与研究,已经成为软件的学习与研究,已经成为软件工程界的热点。由于工程界的热点。由于UMLUML结构复杂,内容丰富,牵涉的结构复杂,内容丰富,牵涉的知识面十分广泛,所以本节不可能详细介绍,而只能对知识面十

8、分广泛,所以本节不可能详细介绍,而只能对几个几个“关键问题关键问题”进行初步分析,使读者对进行初步分析,使读者对UMLUML的概貌的概貌有所了解,为以后的深入学习与应用打下基础。如果读有所了解,为以后的深入学习与应用打下基础。如果读者感兴趣,最好的学习方法还是上机学习,用者感兴趣,最好的学习方法还是上机学习,用RoseRose解决解决某个具体问题,哪怕这个具体问题很小,这样由感性到某个具体问题,哪怕这个具体问题很小,这样由感性到理性的认识过程,没有这种上机实践经验,光看书学习理性的认识过程,没有这种上机实践经验,光看书学习很难掌握很难掌握UMLUML。就像学游泳一样,不下水是不行的。就像学游泳

9、一样,不下水是不行的! !下水下水是学习,而且是更重要的学习。是学习,而且是更重要的学习。9 UML的建模思想的建模思想 我们将了解我们将了解UMLUML的如下几个的如下几个“关键问题关键问题”是:是: (1)UML(1)UML的概念模型的概念模型 (2)UML(2)UML的建模思想的建模思想 (3)UML(3)UML的软件开发生存周期的软件开发生存周期 (4)UML(4)UML的缺点与不足的缺点与不足 (5)UML(5)UML的支撑环境的支撑环境RoseRose (6)UML (6)UML的发展方向的发展方向7010 UML的建模思想的建模思想 UMLUML的概念模型的概念模型 统一建模语言

10、统一建模语言UMLUML是一种可视化的图形符号建是一种可视化的图形符号建模语言,利用它可以进行需求分析、概要设计、模语言,利用它可以进行需求分析、概要设计、详细设计、编程实现、项目计划、测试、原型迭详细设计、编程实现、项目计划、测试、原型迭代、产品发布和产品维护。对象管理组织于代、产品发布和产品维护。对象管理组织于19971997年年1111月月1414日采纳了日采纳了UMLl.1UMLl.1版本。此后又不断改进、版本。此后又不断改进、升级。升级。19981998年年6 6月发布了月发布了UMLl.2UMLl.2版本,版本,20002000年通年通过了最新的过了最新的UMLlUMLl3 3版本

11、。版本。11 UML的建模思想的建模思想 目前,计算机技术发达国家已有大量的软件组织开始用目前,计算机技术发达国家已有大量的软件组织开始用UMLUML进行系统建模,学习和使用进行系统建模,学习和使用UMLUML已经成为一种潮流。我国已经成为一种潮流。我国软件界对软件界对UMLUML也相当关注,也相当关注,19981998年初就开始了对年初就开始了对UMLUML和和RoseRose的的学习、研究和应用。由于学习、研究和应用。由于UMLUML的复杂性,掌握它不是一件轻松的复杂性,掌握它不是一件轻松的事。的事。(UML(UML用户指南用户指南) )和和UMLUML与与Rational Rose 20

12、02Rational Rose 2002从入门从入门到精通到精通等技术参考书的中文版本已先后出版。使用等技术参考书的中文版本已先后出版。使用UMLUML的关的关键是用它来简明、准确地建立模型。键是用它来简明、准确地建立模型。 下面将对下面将对UMLUML中实质性内容的几个要点做一个简明扼要的中实质性内容的几个要点做一个简明扼要的介绍。只要抓住这些要点,介绍。只要抓住这些要点,UMLUML入门并不太难。为了理解入门并不太难。为了理解UMLUML的建模元素,关键是要学习它的三个要素:的建模元素,关键是要学习它的三个要素:12 UML的建模思想的建模思想1 1、UMLUML中面向对象的基本中面向对象

13、的基本“构造块构造块”2 2、支配这些构造块放在一起建模的、支配这些构造块放在一起建模的UMLUML“规则规则”3 3、运用于整个、运用于整个UMLUML的的“公共机制公共机制” 通俗地讲,通俗地讲,“构造块构造块”就是就是UMLUML建模的积木块;建模的积木块; “规则规则”就是就是UMLUML建模的粘合剂;建模的粘合剂; “公共机制公共机制”就是就是UMLUML模型的图纸说明,模型的图纸说明, 它们都是它们都是UMLUML建模的元素。由此可见,所谓建模的元素。由此可见,所谓UMLUML建模,就是用粘合剂将积木块粘合起来,附以模型建模,就是用粘合剂将积木块粘合起来,附以模型的图纸说明。遗憾的

14、是,的图纸说明。遗憾的是,UMLUML中的积木块太多,可能中的积木块太多,可能会给学习带来困难。下面对积木块、粘合剂、图纸会给学习带来困难。下面对积木块、粘合剂、图纸说明逐一予以简单介绍。说明逐一予以简单介绍。 13 UML的建模思想的建模思想 1 1UMLUML的的“构造块构造块” UMLUML中有中有3 3种基本构造块,分别是种基本构造块,分别是“事物事物”、“关系关系”和和“图图”,它们是,它们是UMLUML建模中的积木元素或建模中的积木元素或积木组合体。积木组合体。 第第1 1种构造块:事物。种构造块:事物。 事物是构造块,它们分别是结构事物、行为事事物是构造块,它们分别是结构事物、行

15、为事物、分组事物和注释事物。物、分组事物和注释事物。(1)(1)结构事物结构事物(StructuralThing)(StructuralThing),它是,它是UMLUML模型中模型中的静态要素,包括类、接口、协作、用例、主动类、的静态要素,包括类、接口、协作、用例、主动类、构件和节点构件和节点7 7种元素。种元素。7014 UML的的7种结构事物种结构事物 序号序号事物名称事物名称 结构事物语义结构事物语义1 1类类 它是一组具有相同属性、操作、关系、语义的对象模板。它是一组具有相同属性、操作、关系、语义的对象模板。它就是面向对象程序设计中的类,数据库中的实体或表。它就是面向对象程序设计中的

16、类,数据库中的实体或表。 类用一个矩形表示,矩形中分为上、中、下三个部分,分类用一个矩形表示,矩形中分为上、中、下三个部分,分别表示类的名称、属性、操作。别表示类的名称、属性、操作。2 2接口接口 它是说明一个类或构件的一个服务的操作集。它是说明一个类或构件的一个服务的操作集。 接口用一个带有名称的圆表示接口用一个带有名称的圆表示3 3协作协作 它是多个元素的交互,它是多个元素的交互, 用一个仅包含名称的虚线椭圆表示用一个仅包含名称的虚线椭圆表示4 4用例用例 它是跟系统有关的参与者的一组动作序列,参与者可以是它是跟系统有关的参与者的一组动作序列,参与者可以是人、设备或其他系统。用一个仅包含名

17、称的实线椭圆表示。人、设备或其他系统。用一个仅包含名称的实线椭圆表示。5 5主动类主动类 它是拥有进程或线程的类,用一个外框线加粗的类表示它是拥有进程或线程的类,用一个外框线加粗的类表示6 6构件构件 它是物理上的可替代的软部件,用一个带有小方框的、包它是物理上的可替代的软部件,用一个带有小方框的、包含名称的矩形表示含名称的矩形表示7 7节点节点 它一般是网络中的一台服务器,就是网络中的节点,用包它一般是网络中的一台服务器,就是网络中的节点,用包含名称的立方体表示含名称的立方体表示15 UML的行为事物的行为事物(2)行为事物:行为事物:它是它是UMLUML模型中的动态元素模型中的动态元素序号

18、序号行为事物名称行为事物名称行为事物语义行为事物语义1 1交互交互 它是一组对象间的交换消息,它是一组对象间的交换消息, 用包含操作名的一条有向线段表示用包含操作名的一条有向线段表示 2 2状态书状态书 它是一个对象或一个交互在其生存周期它是一个对象或一个交互在其生存周期内响应其事件而经历的状态序列,内响应其事件而经历的状态序列, 用一个包含名称的圆角矩形表示用一个包含名称的圆角矩形表示(3)分组事物:它是)分组事物:它是UML模型的组织元素模型的组织元素 用一个包含名称,左上角带有一个小矩形的大矩形表示用一个包含名称,左上角带有一个小矩形的大矩形表示(4)注释事物:它是)注释事物:它是UML

19、模型的解释元素模型的解释元素 用一个包含注解内容的右上角为折角的矩形表示用一个包含注解内容的右上角为折角的矩形表示第第2 2种构造块:关系。种构造块:关系。16 UML中中5种关系种关系序号序号关系名称关系名称关系语义关系语义1 1依赖依赖 当一个独立的事物发生变化而影响另一个事物的语义时,当一个独立的事物发生变化而影响另一个事物的语义时,称为依赖。用一条可能有方向的虚线表示称为依赖。用一条可能有方向的虚线表示2 2关联关联 关联是对象间连接的结构关系,用一条实线表示关联是对象间连接的结构关系,用一条实线表示3 3泛化泛化泛化是指从特殊到一般的关系,如子元素与父元素的关系:泛化是指从特殊到一般

20、的关系,如子元素与父元素的关系:子元素共享父元素的结构和行为。子元素共享父元素的结构和行为。 用一条带空心的箭头且指向父元素的实线表示用一条带空心的箭头且指向父元素的实线表示4 4实现实现 实现是一个类元指定了由另一个类元保证执行的契约的语实现是一个类元指定了由另一个类元保证执行的契约的语义关系。如接口和实现接口的构件之间、用例和实现它的协义关系。如接口和实现接口的构件之间、用例和实现它的协作之间,就是作之间,就是“实现实现”关系。关系。 用一条带空心箭头的虚线表示用一条带空心箭头的虚线表示5 5累积累积 表示整体与部分关系,即表示整体与部分关系,即“部分部分”是是“整体整体”的一部分,的一部

21、分, 用一条实线表示,用一条实线表示,“部分部分”一端为箭头,一端为箭头,“整体整体”一端为一端为菱形菱形17第第3 3种构造块:图。种构造块:图。 图也是构造块,图也是构造块,UMLUML中有中有9 9种图,图是软种图,图是软件系统在不同角度上的投影,是一组元素的件系统在不同角度上的投影,是一组元素的表示,是包含事物及其关系的组合。表示,是包含事物及其关系的组合。 用代表事物的顶点和代表关系的连通图用代表事物的顶点和代表关系的连通图表示图,表示图, 18 UML的的9种图种图 序号序号图名称图名称规则语义规则语义1 1 类图类图 类图展示了一组类、接口和协作及它们之间的关系。在建模中所建立的

22、最常类图展示了一组类、接口和协作及它们之间的关系。在建模中所建立的最常见的图就是类图。包含主动类的类图是专注于系统的静态进程视图。系统可有见的图就是类图。包含主动类的类图是专注于系统的静态进程视图。系统可有多个类图,单个类图仅表达了系统的一个方面。要在高层给出类的主要职责,多个类图,单个类图仅表达了系统的一个方面。要在高层给出类的主要职责,在低层给出类的属性和操作在低层给出类的属性和操作2 2对象图对象图 对象图展示了一组对象及它们之间的关系。用对象图说明类图中所反映的事对象图展示了一组对象及它们之间的关系。用对象图说明类图中所反映的事物实例的数据结构和静态快照。对象图表达了系统的静态设计视图

23、或静态过程物实例的数据结构和静态快照。对象图表达了系统的静态设计视图或静态过程视图,除了现实和原型方面的因素外,它与类图作用是相同的视图,除了现实和原型方面的因素外,它与类图作用是相同的3 3用例图用例图 用例图展现了一组用例、参与者以及它们之间的关系。可以用用例图描述系用例图展现了一组用例、参与者以及它们之间的关系。可以用用例图描述系统的静态使用情况。在对系统行为组织和建模方面,用例图是相当重要的统的静态使用情况。在对系统行为组织和建模方面,用例图是相当重要的4 4顺序图顺序图 顺序图展现了一组对象和由这组对象收发的消息,用于按时间顺序对控制流顺序图展现了一组对象和由这组对象收发的消息,用于

24、按时间顺序对控制流建模。用顺序图说明系统的动态视图建模。用顺序图说明系统的动态视图5 5协作图协作图 协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强协作图展现了一组对象,这组对象间的连接以及这组对象收发的消息。它强调收发消息的对象的组织结构,按组织结构对控制流建模调收发消息的对象的组织结构,按组织结构对控制流建模6 6状态图状态图 状态图展现了一个特定的对象的所有可能状态,以及各种事件的发生而引起状态图展现了一个特定的对象的所有可能状态,以及各种事件的发生而引起的状态间的转移。一个状态图描述了一个状态机,用状态图说明系统的动态视的状态间的转移。一个状态图描述了一个状态机,用

25、状态图说明系统的动态视图。它对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存图。它对于接口、类或协作的行为建模尤为重要,可用它描述用例实例的生存周期周期19 UML的的9种图种图序号序号图名称图名称规则语义规则语义7 7活动图活动图活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的活动图是一种特殊的状态图,描述需要做的活动、执行这些活动的顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它对顺序(多为并行的)以及工作流(完成工作所需要的步骤)。它对于系统功能建模特别重要,强调对象之间的控制流程。高层活动图于系统功能建模特别重要,强调对象之间的控制流程。高层活动图用于表

26、示需要完成的一些任务,即用于分析用例,理解涉及多个用用于表示需要完成的一些任务,即用于分析用例,理解涉及多个用例的工作流、多线程及并行,显示相互联系的行为整体,它还可用例的工作流、多线程及并行,显示相互联系的行为整体,它还可用于对企业过程建模,对系统功能建模。低层活动图用于表示类的方于对企业过程建模,对系统功能建模。低层活动图用于表示类的方法。但活动图不适用于描述动作与对象间的关系、显示对象间的协法。但活动图不适用于描述动作与对象间的关系、显示对象间的协作,以及显示对象在生存周期内的运转情况作,以及显示对象在生存周期内的运转情况8 8构件图构件图构件图展现一组构件之间的组织和依赖关系,用于对源

27、代码、可执构件图展现一组构件之间的组织和依赖关系,用于对源代码、可执行的发布、物理数据库和可调整的系统建模行的发布、物理数据库和可调整的系统建模9 9实施图实施图实施图展现运行时处理节点,以及其中构件的部署。它描述系统硬实施图展现运行时处理节点,以及其中构件的部署。它描述系统硬件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及件的物理拓扑结构(包括网络布局和构件在网络上的位置),以及在此结构上执行的软件(即运行时软构件在节点中的公布情况)。在此结构上执行的软件(即运行时软构件在节点中的公布情况)。用实施图还可用来说明系统结构的静态实施视图,即说明分布、交用实施图还可用来说明系统结构的静

28、态实施视图,即说明分布、交付和安装的物理系统付和安装的物理系统20 1 1、类图、类图212 2、对象图、对象图223 3、用例图用例图70234、顺序图、顺序图245 5、协作图、协作图256 6、状态图、状态图267 7、活动图、活动图278 8、构件图、构件图289 9、 配置(实施)图配置(实施)图7029 UML的的5种规则种规则序号序号规则名称规则名称规则语义规则语义1 1命名命名为事物、关系和图命名为事物、关系和图命名2 2范围范围给一个名字以特定含义的语境,即范围给一个名字以特定含义的语境,即范围3 3可见性可见性怎样使用或看见名字,即可见性怎样使用或看见名字,即可见性4 4完

29、整性完整性事物如何正确、一致地相互联系,即完整性事物如何正确、一致地相互联系,即完整性5 5执行执行运行或模拟动态模型的含义是什么,即执行运行或模拟动态模型的含义是什么,即执行 另外,另外,UMLUML还允许在一定阶段隐藏模型的某些元素、遗漏还允许在一定阶段隐藏模型的某些元素、遗漏某些元素,以及不保证模型的完整性,但模型逐步地要达到完某些元素,以及不保证模型的完整性,但模型逐步地要达到完整和一致。整和一致。2.UML运用构造块的运用构造块的“规则规则” 为了将为了将UML的构造块有机地组装在一起形成一个结构良好的构造块有机地组装在一起形成一个结构良好的模型,的模型,UML需要描述下列事物的语义

30、规则,需要描述下列事物的语义规则, 30 UML的公共机制的公共机制3UML的公共的公共机制序号序号机制名称机制名称机制内容机制内容1 1规格説明规格説明UMLUML的图形表示法的每一部分都有説明,提供对的图形表示法的每一部分都有説明,提供对UMLUML构造块的语构造块的语法、语义的文字描述。法、语义的文字描述。UMLUML为规格説明书提供语义底板。为规格説明书提供语义底板。2 2修饰修饰UMLUML表示法中的每一个元素都有一个基本符号,这些符号对元表示法中的每一个元素都有一个基本符号,这些符号对元素的最重要的方面提供了可视化表示,对元素的描述还包含其素的最重要的方面提供了可视化表示,对元素的

31、描述还包含其他细节。例如,一个类是否是抽象类(没有实例),或它的属他细节。例如,一个类是否是抽象类(没有实例),或它的属性和操作是否可见。要把这样的修饰细节加到基本符号上性和操作是否可见。要把这样的修饰细节加到基本符号上3 3通用划分通用划分UMLUML有两种通用划分方法:一是可同时对类和对象建模有两种通用划分方法:一是可同时对类和对象建模; ; 二是可同时对接口和实现建模。二是可同时对接口和实现建模。4 4扩展机制扩展机制UMLUML的扩展机制包括的扩展机制包括3 3种类型:种类型: 1 1)构造型:)构造型:UMLUML允许创造新的构造块,可以从现有的构造块允许创造新的构造块,可以从现有的

32、构造块派生,又可以针对读者要解决的问题派生,又可以针对读者要解决的问题 2 2)标记值:)标记值:UMLUML允许创建详述元素的新信息允许创建详述元素的新信息 3 3)约)约 束:束:UMLUML允许增加新的规则或修改现有的规则。允许增加新的规则或修改现有的规则。31 UML的建模思想的建模思想 UML UML 是一种用不同图形、从不同角度来描述系统是一种用不同图形、从不同角度来描述系统的建模语言,尽管它的功能覆盖了整个软件开发生的建模语言,尽管它的功能覆盖了整个软件开发生存周期,从需求分析、设计、实现、测试、实施、存周期,从需求分析、设计、实现、测试、实施、配置管理、维护直到环境部署,但是目

33、前应用较多配置管理、维护直到环境部署,但是目前应用较多的还是需求分析与设计阶段的建模。的还是需求分析与设计阶段的建模。 UMLUML的建模思想相当复杂,为了使复杂问题的建模思想相当复杂,为了使复杂问题“简简单化单化”,我们从宏观和微观两个方面,来观察和分,我们从宏观和微观两个方面,来观察和分析析UMLUML的建模思想,以求在宏观上摸清它的的建模思想,以求在宏观上摸清它的“纲纲”,在微观上理清它的,在微观上理清它的“目目”。7032 UML的建模思想的建模思想1 1、UMLUML的宏观建模思想的宏观建模思想 UMLUML的宏观建模思想,表现在的宏观建模思想,表现在“9 9个模型、个模型、9 9种

34、图、种图、5 5张视图张视图”。 由于大型软件系统的复杂性,很难用一个模型、由于大型软件系统的复杂性,很难用一个模型、一种图、一张视图来描述清楚,所以在一种图、一张视图来描述清楚,所以在UMLUML中出现了中出现了许多的模型、图和视图。当然,对于同一个软件系许多的模型、图和视图。当然,对于同一个软件系统,没有必要同时使用统,没有必要同时使用“9 9个模型、个模型、9 9种图、种图、5 5张视图张视图”,正确的原则是,正确的原则是“精兵简政、实事求是、按需使精兵简政、实事求是、按需使用用”。33 UML的建模思想的建模思想 9 9个模型是:业务模型、领域模型、用例模型个模型是:业务模型、领域模型

35、、用例模型( (需求模需求模型型) )、分析模型、设计模型、过程模型、部署模型、分析模型、设计模型、过程模型、部署模型( (实施实施模型模型) )、实现模型和测试模型。、实现模型和测试模型。 9 9种图是:类图、对象图、用例图、顺序图、协作图、种图是:类图、对象图、用例图、顺序图、协作图、状态图、活动图、构件图、部署图状态图、活动图、构件图、部署图( (实施图实施图) )。 9 9种视图是:用例视图、设计视图、进程视图、实现种视图是:用例视图、设计视图、进程视图、实现视图和实施视图。视图和实施视图。 我们可以从不同的角度,来分析与设计软件系统,进我们可以从不同的角度,来分析与设计软件系统,进行

36、系统建模。行系统建模。7034 UML 9 UML 9 个个 模模 型型序号序号模型名称模型名称模型定义模型定义对模型通俗解释对模型通俗解释1 1业务模型业务模型建立组织的一个抽象建立组织的一个抽象业务操作流程业务操作流程2 2领域模型领域模型建立系统的语境建立系统的语境业务操作规则业务操作规则3 3用例模型用例模型建立系统的功能需求建立系统的功能需求用户功能需求列表用户功能需求列表4 4分析模型分析模型建立概念设计建立概念设计系统的逻辑设计系统的逻辑设计5 5设计模型设计模型建立问题的词汇及解决方案建立问题的词汇及解决方案物理设计(含字典设计物理设计(含字典设计) )6 6过程模型过程模型建

37、立系统的并发和同步机制建立系统的并发和同步机制系统的进程设计系统的进程设计7 7部署模型部署模型建立系统硬件拓扑网络结构建立系统硬件拓扑网络结构系统的网络节点设计系统的网络节点设计8 8实现模型实现模型建立实施和发布系统各部件建立实施和发布系统各部件系统的软硬件配置设计系统的软硬件配置设计9 9测试模型测试模型建立验证和校验系统的路径建立验证和校验系统的路径系统的测试计划设计系统的测试计划设计35 UML UML 的的 9 9 种种 图图序 号图 名 称 图 定 义 图 性 质1类图显示一组类、接口、协作以及它们的关系表示结构2对象图显示一组对象以及它们的关系表示结构3用况图显示一组用况、参与

38、者以及它们的关系表示行为4时序图 强调消息的时间排序表示行为5协作图强调消息发送和接收的对象的结构组织表示行为6状态图强调事件的排序从状态到状态的控制流表示行为7 活动图 强调从活动到活动的流动表示行为8构件图 显示一组构件以及它们的关系表示结构9实施图 显示一组节点以及它们的关系表示结构36 UMLUML的的5 5张视图张视图序号序号视图名称视图名称视图内容视图内容静态表现静态表现动态表现动态表现观察角度观察角度1 1用况视图用况视图( (用户模型视图用户模型视图) )系统行为、动力系统行为、动力用况图用况图交互图、交互图、状态图、状态图、活动图;活动图;用户、分析用户、分析员、测试员员、测

39、试员2 2设计视图设计视图( (结构模型视图结构模型视图) )问题及其解决问题及其解决方案的术语词汇方案的术语词汇类、对象图类、对象图类、接口、类、接口、协作协作3 3进程视图进程视图( (行为模型视图行为模型视图) )性能、可伸缩性、性能、可伸缩性、吞吐量吞吐量类、对象图类、对象图线程、进程线程、进程4 4实现视图实现视图( (模型视图模型视图) )构件、文件构件、文件构件图构件图配置、发布配置、发布5 5实施视图实施视图( (环境模型视图环境模型视图) )部件的发布、交部件的发布、交付、安装付、安装实施图实施图拓扑结构的拓扑结构的节点节点372 2UMLUML的微观建模思想的微观建模思想

40、UMLUML的微观建模思想,表现在它的基本结构模型、的微观建模思想,表现在它的基本结构模型、高级结构模型、基本行为模型、高级行为模型、体高级结构模型、基本行为模型、高级行为模型、体系结构模型系结构模型5 5个方面上,共计有个方面上,共计有6666个微观建模。这些个微观建模。这些具体的建模种类及内容,不要求读者完全理解与记具体的建模种类及内容,不要求读者完全理解与记忆,也不是对每一个软件都要做这忆,也不是对每一个软件都要做这6666个微观建模,个微观建模,只要求在微观上理解只要求在微观上理解UMLUML的建模思想。的建模思想。7038 UML的微观建模内容的微观建模内容模型名模型名称称建模内容建

41、模内容建模说明建模说明基本结基本结构模型构模型(16(16个个建模建模) )对类建模对类建模(4(4个个) ) 类是对一组具有相同属性、操作、关系和语义的对象的描述。因类是对一组具有相同属性、操作、关系和语义的对象的描述。因此要对系统的事物词汇建模此要对系统的事物词汇建模( (如顾客、产品、发票如顾客、产品、发票) )、对系统中的职、对系统中的职责分布建模责分布建模 ( (使类的职责均衡使类的职责均衡) )、对非软件事物建模、对非软件事物建模( (如硬件设备如硬件设备) )、对简单类型建模对简单类型建模( (如整数、字符如整数、字符) )对关系建模对关系建模(3(3个个) ) 对依赖关系建模、

42、继承关系建模、结构关系对依赖关系建模、继承关系建模、结构关系( (关联关联) )建模建模对公共机制对公共机制建模建模(4(4个个) ) 对注释建模、新构造块建模、新特性建模、新语义建模对注释建模、新构造块建模、新特性建模、新语义建模对图建模对图建模 (3(3个个) )对静态结构图建模:包括对类图、对象图、构件图、实施图建模对静态结构图建模:包括对类图、对象图、构件图、实施图建模对动态行为图建模:用例图、顺序图、协作图、状态图、活动图对动态行为图建模:用例图、顺序图、协作图、状态图、活动图对复杂视图建模对复杂视图建模对类图建模对类图建模(2(2个个) ) 对类图建模:包括对简单协作建模对类图建模

43、:包括对简单协作建模 对数据库逻辑模型建模对数据库逻辑模型建模39 UML的微观建模内容的微观建模内容模型名模型名称称建模内容建模内容建模说明建模说明高级结高级结构模型构模型(10(10个个建模建模) )对高级类建对高级类建模模(1(1个个) )对类的语义建模:类元是一种描述结构特征和行为特征的对类的语义建模:类元是一种描述结构特征和行为特征的机制,它包括类、接口、数据类型、信号、构件、用例、机制,它包括类、接口、数据类型、信号、构件、用例、节点、子系统节点、子系统对高级关系对高级关系建模建模(1(1个个) )对关系网建模:事物间的高级关系是依赖、泛化、累积、对关系网建模:事物间的高级关系是依

44、赖、泛化、累积、关联和实现,多个事物在一起将组成关系网关联和实现,多个事物在一起将组成关系网对接口、类对接口、类型和角色建型和角色建模模(3(3个个) ) 因为接口是表示系统中的一个接缝,它把使用和实现分因为接口是表示系统中的一个接缝,它把使用和实现分离,所以要对系统中的接缝建模、对静态类型建模、对动离,所以要对系统中的接缝建模、对静态类型建模、对动态类型建模态类型建模对包建模对包建模(2(2个个) ) 包是把元素组织成组的机制,系统由包组成,包由元素包是把元素组织成组的机制,系统由包组成,包由元素组成。对成组的元素建模,使其成为包;对体系结构视图组成。对成组的元素建模,使其成为包;对体系结构

45、视图建模,使其成为子系统建模,使其成为子系统 40 UML的微观建模内容的微观建模内容模型名称模型名称建模内容建模内容 建模说明建模说明对实例建对实例建模模(2(2个个) ) 实例就是对象,它有名称、操作、状实例就是对象,它有名称、操作、状态等特征,实例分为具体实例和原型实态等特征,实例分为具体实例和原型实例,前者出现在静态场合,后者出现在例,前者出现在静态场合,后者出现在动态场合。要对具体实例建模、对原型动态场合。要对具体实例建模、对原型实例建模实例建模对对象图对对象图建模建模(1(1个个) ) 对象图包括对象、链、注解和约束,对象图包括对象、链、注解和约束,它表示动态场景它表示动态场景(

46、(交互图交互图) )中的中的个静态个静态画面,因此要对对象结构画面,因此要对对象结构( (静态设计视静态设计视图或静态进程视图图或静态进程视图) )建模建模41 UML的微观建模内容的微观建模内容模型名称模型名称建模内容建模内容 建模说明建模说明基本行为基本行为模型模型(8 8个建个建模模) )对交互建模对交互建模(1(1个个) ) 交互是为实现某一目标的交互是为实现某一目标的组对象之间交换一组消息所产生的组对象之间交换一组消息所产生的行为。对象、消息和行为表现在控制流中,因此要对表示时间或行为。对象、消息和行为表现在控制流中,因此要对表示时间或组织的控制流建模组织的控制流建模对用例建模对用例

47、建模(1(1个个) ) 用例是对一组动作序列用例是对一组动作序列( (行为行为) )的描述,动作序列表示系统外部的描述,动作序列表示系统外部的参与者与系统本身的交互。因此要刘。元素的行为建模的参与者与系统本身的交互。因此要刘。元素的行为建模对用例图建模对用例图建模(2(2个个) ) 用例图是表示一组用例、参与者以及它们之间的关系用例图是表示一组用例、参与者以及它们之间的关系( (依赖、泛依赖、泛化、关联化、关联) )的图。因此要对系统的语境建模的图。因此要对系统的语境建模( (将参与者划分到系统将参与者划分到系统之外之外) )、对系统的需求建模、对系统的需求建模 说明系统为参与者做什么说明系统

48、为参与者做什么) ) 对交互图建模对交互图建模(2(2个个) ) 交互图强调从对象到对象的控制流,它包括顺序图和协作图。交互图强调从对象到对象的控制流,它包括顺序图和协作图。顺序图强调消息的时间顺序,协作图强调发送和接收消息的对象顺序图强调消息的时间顺序,协作图强调发送和接收消息的对象的组织结构。因此要按时间顺序对控制流建模,按组织结构对控的组织结构。因此要按时间顺序对控制流建模,按组织结构对控制流建模制流建模对活动图建模对活动图建模(2 2个个) ) 活动图强调从活动到活动的控制流,它包括对计算过程的顺序活动图强调从活动到活动的控制流,它包括对计算过程的顺序和对操作的控制步骤,因此要对工作流

49、建模、对操作建模和对操作的控制步骤,因此要对工作流建模、对操作建模42 UML的微观建模内容的微观建模内容名称名称建模内容建模内容 建模说明建模说明高级高级行为行为模型模型(9个个建模建模)事件和信号建事件和信号建模模(2个个) 事件是在时空中占有位置、有意义和事情的规格说明,它分事件是在时空中占有位置、有意义和事情的规格说明,它分信号、调用、时间延迟、状态改变信号、调用、时间延迟、状态改变4种。种。 信号是由一个对象异步发送给另一个对象接收的命名对象。信号是由一个对象异步发送给另一个对象接收的命名对象。对信号族建模、对异常情况建模对信号族建模、对异常情况建模状态机建模状态机建模(1个个) 状

50、态机是对象在其生存期中响应事件的所经历的状态序列及状态机是对象在其生存期中响应事件的所经历的状态序列及对事件的响应;对事件的响应;进程和线程建进程和线程建模模(2个个) 进程是可并发执行的重量级控制流,线程是可并发执行的轻进程是可并发执行的重量级控制流,线程是可并发执行的轻量级控制流,量级控制流, 两者都是主动类。对多控制流建模、对进程通两者都是主动类。对多控制流建模、对进程通信建模信建模 时间和空间建时间和空间建模模(3个个) 为了处理实时系统为了处理实时系统(绝对时间、相对时间、需求时间绝对时间、相对时间、需求时间)和分布和分布式系统式系统(构件在节点上分布和移动构件在节点上分布和移动),

51、必须对时间约束建模、对,必须对时间约束建模、对对象分布建模、对移动对象建模;对象分布建模、对移动对象建模; 状态图建模状态图建模(1个个) 当系统的对象出现从状态到状态的控制流,或从事件到事件当系统的对象出现从状态到状态的控制流,或从事件到事件的控制流时,要对反应型对象建模的控制流时,要对反应型对象建模43 UML的微观建模内容的微观建模内容名称名称内容内容 建模说明建模说明体系结体系结构模型构模型(23个个建模建模)构件构件建模建模(7个个) 它分为实施构件它分为实施构件(如如.DLL和和.EXE)、产品构件和执行)、产品构件和执行构件构件(如如COM+对象对象)。对系统的可执行体建模、对系

52、统。对系统的可执行体建模、对系统的对象库、对表、对文件、对文档、对应用程序接口和的对象库、对表、对文件、对文档、对应用程序接口和对源代码建模。对源代码建模。实施实施建模建模(2个个) 节点是网络拓扑结构中的一台计算机或设备,一个节点节点是网络拓扑结构中的一台计算机或设备,一个节点上可以部署多个构件,一个构件可以部署到多个节点上。上可以部署多个构件,一个构件可以部署到多个节点上。对网络拓扑结构中的处理器和设备建模、对构件在节点对网络拓扑结构中的处理器和设备建模、对构件在节点上的分布建模上的分布建模协作协作建模建模(3个个) 协作是一组类、接口和其他元素的命名群体,它有结构协作是一组类、接口和其他

53、元素的命名群体,它有结构(类图类图)和行为和行为 (交互图交互图)两个部分。一个面向对象的系统两个部分。一个面向对象的系统由一组协作组成,一个用例或一个操作要用一个或多个由一组协作组成,一个用例或一个操作要用一个或多个协作来实现。协作还可以作为系统的机制单独存在,机协作来实现。协作还可以作为系统的机制单独存在,机制是应用于一组类的群体的设计模式。对用例的实现建制是应用于一组类的群体的设计模式。对用例的实现建模、对操作的实现建模、对机制建模模、对操作的实现建模、对机制建模7044 UML的微观建模内容的微观建模内容名称名称内容内容 建模说明建模说明体系体系结构结构模型模型(23个个建模建模)对模

54、式和对模式和框架建模框架建模(2个个) 模型是对应用系统提供的通用解决方案,框架是为某个专模型是对应用系统提供的通用解决方案,框架是为某个专业领域内的应用系统提供模板的体系结构模式。业领域内的应用系统提供模板的体系结构模式。对构件图对构件图建模建模(4个个)构件图是构件及其之间关系的组合图,用它对系统的实现构件图是构件及其之间关系的组合图,用它对系统的实现视图进行静态建模、对源代码产品、对可执行体的发布、视图进行静态建模、对源代码产品、对可执行体的发布、对物理数据库、对可适应的系统建模。对物理数据库、对可适应的系统建模。对实施图对实施图建模建模(3个个) 实施图是拓扑结构的节点及节点上的构件配

55、置图。对嵌入实施图是拓扑结构的节点及节点上的构件配置图。对嵌入式系统建模、对客户机服务器系统、对分布式系统建模。式系统建模、对客户机服务器系统、对分布式系统建模。对系统建对系统建模模(2个个)系统是元素的集合,它的体系结构由用例视图、设计视图、系统是元素的集合,它的体系结构由用例视图、设计视图、进程视图、实现视图、实施视图组成。一个良好的系统,进程视图、实现视图、实施视图组成。一个良好的系统,是以用例驱动、以体系结构为核心、以增量式迭代为开发是以用例驱动、以体系结构为核心、以增量式迭代为开发模式的系统。对体系结构建模、对于系统或系统建模模式的系统。对体系结构建模、对于系统或系统建模45 作为系

56、统分析、设计、实现、实施的作为系统分析、设计、实现、实施的建模工具,建模工具,UMLUML提供的模型、图、视图和提供的模型、图、视图和6666种微观建模方式,实在是太丰富多彩了,种微观建模方式,实在是太丰富多彩了,甚至会把读者吓倒。事实上,甚至会把读者吓倒。事实上,“只要用它只要用它20%20%的有用内容,就可以解决的有用内容,就可以解决70%70%的系统问的系统问题题” 。或者说,只要知道它。或者说,只要知道它20%20%的有用内的有用内容,通过了上机学习容,通过了上机学习RoseRose,就可以解决它,就可以解决它的的70%70%的问题。的问题。7046 UML的软件开发生存周期的软件开发

57、生存周期有说过:聪明的人善于将复杂问题简单化,愚蠢的有说过:聪明的人善于将复杂问题简单化,愚蠢的人习惯于将简单问题复杂化。既然生存周期与开发模人习惯于将简单问题复杂化。既然生存周期与开发模型如此复杂和多种多样,那么能否将它们简单化呢型如此复杂和多种多样,那么能否将它们简单化呢? ?为了解决这个问题,为了解决这个问题,RUPRUP试图集中所有的生存周期开试图集中所有的生存周期开发模型的优点,用统一的建模语言发模型的优点,用统一的建模语言UMLUML加以实现。加以实现。 一个软件有一个生存周期,它开始于软件项目的一个软件有一个生存周期,它开始于软件项目的“立项、需求和策划立项、需求和策划”之初,成

58、长于之初,成长于“设计、实现、设计、实现、实施、维护实施、维护”之中,终止于该软件退出市场之时。对之中,终止于该软件退出市场之时。对于用于用RUPRUP模型开发的软件来说,它成长于模型开发的软件来说,它成长于“初始、细初始、细化、构造、交付化、构造、交付”的迭代循环之中,这就是的迭代循环之中,这就是RUPRUP的软的软件开发生存周期。件开发生存周期。47RUPRUP的特点是:的特点是: 3 3个以个以:以用例为驱动、以体系结构为中心、以迭以用例为驱动、以体系结构为中心、以迭代和增量为开发过程。代和增量为开发过程。 4 4个阶段:初始、细化、构造、交付。个阶段:初始、细化、构造、交付。 9 9个

59、工作流:商业建模需求、分析和设计、实现、个工作流:商业建模需求、分析和设计、实现、测试部署、配置和变更、项目管理、环境。每个阶测试部署、配置和变更、项目管理、环境。每个阶段又分为若干次迭代,每次迭代都包括段又分为若干次迭代,每次迭代都包括9 9个工作流。个工作流。 用例驱动的优点是:在到达最终软件产品之前,用例驱动的优点是:在到达最终软件产品之前,每个阶段都可以回溯到用户的真正需求,因为用户每个阶段都可以回溯到用户的真正需求,因为用户需求是软件开发过程中最重要的一条基线。需求是软件开发过程中最重要的一条基线。48 UML的缺点与不足的缺点与不足 对对UMLUML的优点要讲透,对的优点要讲透,对

60、UMLUML的缺点要讲够,并跟踪的缺点要讲够,并跟踪UMLUML今今后的发展进程。后的发展进程。 UMLUML对系统模型的表达能力,超出了以往任何一种面向对对系统模型的表达能力,超出了以往任何一种面向对象的分析和设计工具,对它深入研究和全面理解之后,可能象的分析和设计工具,对它深入研究和全面理解之后,可能会认为它是一本面向对象的百科全书。随之出现的问题是,会认为它是一本面向对象的百科全书。随之出现的问题是,它的复杂性也超出了以往任何一种工具。它的复杂性也超出了以往任何一种工具。UMLUML还存在许多问题,还存在许多问题,自它产生之日起就从未离开过批评。自它产生之日起就从未离开过批评。(1)UM

61、L(1)UML在宏观上提供了在宏观上提供了“9 9个模型、个模型、9 9种图、种图、5 5张视图张视图”的建的建模工具;在微观上提供了模工具;在微观上提供了5 5个方面共计个方面共计6666个建模方式,对于如个建模方式,对于如此众多的建模可视化图形符号。大家抱怨它的内容太多、太此众多的建模可视化图形符号。大家抱怨它的内容太多、太宽、太深。作为一个建模工具,内容太多、太宽、太深是不宽、太深。作为一个建模工具,内容太多、太宽、太深是不能普及的,其生命力也是值得怀疑的。能普及的,其生命力也是值得怀疑的。49 (2)UML(2)UML缺少一个少而精的核心和一个大而广的缺少一个少而精的核心和一个大而广的

62、外围,有些语义定义不够精确且带有二义性。建模外围,有些语义定义不够精确且带有二义性。建模实践者认为它缺少支持自己领域建模要求的机制。实践者认为它缺少支持自己领域建模要求的机制。工具开发商则因为规范本身的不确定性而产生理解工具开发商则因为规范本身的不确定性而产生理解上的偏差,他们认为对上的偏差,他们认为对UMLUML的自行注释有可能误导的自行注释有可能误导用户。人们要问:既然用户。人们要问:既然“利用利用UMLUML的大约的大约2020就可就可以为以为7070左右的问题建模左右的问题建模”,那么为什么不将这大,那么为什么不将这大约约2020的内容精炼成它的核心,而将其余的内容精炼成它的核心,而将

63、其余7070的内的内容作为它的外围,从而使它不致于过于繁琐、庞大容作为它的外围,从而使它不致于过于繁琐、庞大和复杂呢和复杂呢? ?7050 (3)UML (3)UML的应用领域极其广泛:横向从软件需求分析开始,的应用领域极其广泛:横向从软件需求分析开始,直到对象模型设计、数据模型设计、工程代码、测试、配置、直到对象模型设计、数据模型设计、工程代码、测试、配置、维护的整个生存周期;纵向从系统软件开始,直到应用软件、维护的整个生存周期;纵向从系统软件开始,直到应用软件、嵌入式软件:实施平台从单机开始,直到客户机嵌入式软件:实施平台从单机开始,直到客户机/ /服务器、服务器、B BS S三层结构的三

64、层结构的WebWeb分布式系统。因此,分布式系统。因此,UMLUML过多地考虑了各种过多地考虑了各种分析、设计、实现的普遍性,过少地考虑了它们的特殊性,分析、设计、实现的普遍性,过少地考虑了它们的特殊性,幻想一口吃个胖子,企图包罗万象,忽视了具体问题具体分幻想一口吃个胖子,企图包罗万象,忽视了具体问题具体分析的实事求是思想。实践证明:方法和模型越是通用,其实析的实事求是思想。实践证明:方法和模型越是通用,其实用性就越差。正确的选择是在通用性和实用性之间搞平衡:用性就越差。正确的选择是在通用性和实用性之间搞平衡:核心部分实现其普遍性,外围部分实现其特殊性。核心部分实现其普遍性,外围部分实现其特殊

65、性。51 (4)UML(4)UML的关键问题是过于庞大和复杂,以及在的关键问题是过于庞大和复杂,以及在语言体系结构、语义等方面存在理论缺陷。产生语言体系结构、语义等方面存在理论缺陷。产生这些问题的一个重要原因是,在形成规范的过程这些问题的一个重要原因是,在形成规范的过程中不得不照顾多种方法和流派的观点,以及多家中不得不照顾多种方法和流派的观点,以及多家公司的利益,它的创始人就是并列的三位软件专公司的利益,它的创始人就是并列的三位软件专家,而不是以某一位首席专家的思路为主,这就家,而不是以某一位首席专家的思路为主,这就是它的致命弱点。是它的致命弱点。7052 (5)UML (5)UML的另一个问

66、题是过于细致。例如,的另一个问题是过于细致。例如,“用活用活动图对一个操作建立流程图,这几乎是将动图对一个操作建立流程图,这几乎是将UMLUML作为一作为一种可视化编程语言来使用种可视化编程语言来使用”。面对日新月异的强大的。面对日新月异的强大的面向对象的编程语言,如面向对象的编程语言,如DelphiDelphi许多细致工作本来可许多细致工作本来可以在编程阶段由程序员实现,不必将这些细致工作纳以在编程阶段由程序员实现,不必将这些细致工作纳入设计模型中去。其所以会出现这种情况,是因为入设计模型中去。其所以会出现这种情况,是因为UMLUML起初的立足点是起初的立足点是JavaJava和和C+C+等

67、。要知道:功能强大等。要知道:功能强大的面向对象的编程语言的飞速发展,也是克服软件危的面向对象的编程语言的飞速发展,也是克服软件危机、提高软件质量、降低软件设计复杂度、节约软件机、提高软件质量、降低软件设计复杂度、节约软件成本、加速开发进度的重要途径之一。成本、加速开发进度的重要途径之一。53 (6) (6)尽管尽管UMLUML提供了大量丰富的图形、词汇表和规提供了大量丰富的图形、词汇表和规则,但是它申明自己只是一种建模语言,不是一种建则,但是它申明自己只是一种建模语言,不是一种建模方法。方法与语言的不同之处在于:方法不但包括模方法。方法与语言的不同之处在于:方法不但包括模型,而且包括建模过程

68、和建模结果。因此,方法要模型,而且包括建模过程和建模结果。因此,方法要告诉读者在建模过程中做什么、怎么做、什么时候做、告诉读者在建模过程中做什么、怎么做、什么时候做、为什么做、做的过程中要注意什么。但是,为什么做、做的过程中要注意什么。但是,UMLUML只是只是提供了一大堆建模的可视化图形符号,并没有告诉读提供了一大堆建模的可视化图形符号,并没有告诉读者,应该在什么时候、用什么方法、去建立什么模型。者,应该在什么时候、用什么方法、去建立什么模型。所以所以UMLUML对开发者的素质要求太高,这是它不能快速对开发者的素质要求太高,这是它不能快速普及的原因之一。普及的原因之一。54 尽管尽管UMLU

69、ML还存在许多不足,但是它仍然代表软件工还存在许多不足,但是它仍然代表软件工程发展的一个方向,尤其是与之配套的程发展的一个方向,尤其是与之配套的RoseRose工具的工具的出现,从多方面弥补了它的不足。出现,从多方面弥补了它的不足。UMLUML一出现,就引一出现,就引起了我国学术界、教育界、软件工程界的高度重视,起了我国学术界、教育界、软件工程界的高度重视,他们正在对他们正在对UMLUML扬长避短,为我所用。扬长避短,为我所用。由于由于UMLUML的复杂性,对它的掌握和使用确实不是一的复杂性,对它的掌握和使用确实不是一件轻松的事。最好通过学习件轻松的事。最好通过学习UMLUML的实现工具的实现

70、工具RoseRose,来,来达到初步了解达到初步了解UMLUML的目的,因为的目的,因为RoseRose可视、直观,通可视、直观,通过例子可以逐步深入,从中能够获得许多过例子可以逐步深入,从中能够获得许多UMLUML的感性的感性知识。知识。7055 三个模型的建模思想三个模型的建模思想三个模型是指业务模型、功能模型和数据模型三个模型是指业务模型、功能模型和数据模型 1、功能模型:描述系统能做什么,即对系统、功能模型:描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。的功能、性能、接口和界面进行定义。 2、业务模型:描述系统在何时、何地、由何、业务模型:描述系统在何时、何地、由何角色、

71、按什么业务规则去做,以及做的步骤或流角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。程,即对系统的操作流程进行定义。 3、数据模型:描述系统工作前的数据来自何、数据模型:描述系统工作前的数据来自何处,工作中的数据暂存什么地方,工作后的数据处,工作中的数据暂存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义的数据结构进行定义。56 在企业资源计划管理系统在企业资源计划管理系统(ERP)(ERP)中,业务模型就是系统中,业务模型就是系统的业务流程图加上相应的业务规则。这里的业务流程图,是的业务流程

72、图加上相应的业务规则。这里的业务流程图,是指企业在业务流程再造(指企业在业务流程再造(BPRBPR)之后形成的操作流程和业务)之后形成的操作流程和业务规则。规则。 业务模型的范围包括:企业的组织结构,部门职责及岗业务模型的范围包括:企业的组织结构,部门职责及岗位位( (或角色或角色) )职能,岗位操作流程,岗位业务规则,每个流程职能,岗位操作流程,岗位业务规则,每个流程的输入、响应、输出。的输入、响应、输出。 业务模型的描述方法为:组织结构图,岗位业务模型的描述方法为:组织结构图,岗位( (或角色或角色) )职职能表,业务流程图加上业务规则说明。能表,业务流程图加上业务规则说明。 70业务模型

73、业务模型57 业务流程图的画法没有统一的规定,一般要规定输入、业务流程图的画法没有统一的规定,一般要规定输入、处理、输出、文件及流向的图形标志。在图形内部或外部处理、输出、文件及流向的图形标志。在图形内部或外部可书写文字说明。可书写文字说明。 业务流程图可以用业务操作步骤来描述,业务流程图可以用业务操作步骤来描述,UMLUML规定采用规定采用用例图加上顺序图用例图加上顺序图( (时序图时序图) )、交互图、状态图、活动图来、交互图、状态图、活动图来表述业务流程。业务模型是动态的,所以为动态模型或操表述业务流程。业务模型是动态的,所以为动态模型或操作模型。业务模型既是功能模型设计基础,又是用户操

74、作作模型。业务模型既是功能模型设计基础,又是用户操作手册编写的依据。手册编写的依据。 我们可以定义一套业务流程图的图标,画出我们可以定义一套业务流程图的图标,画出“书店信书店信息管理系统息管理系统”的业务流程图,如书店的组织结构,部门岗的业务流程图,如书店的组织结构,部门岗位位( (或角色或角色) )职能,操作流程,业务规则,每个流程的输入、职能,操作流程,业务规则,每个流程的输入、处理、输出等。处理、输出等。 7058从宏观上说,功能模型是什么从宏观上说,功能模型是什么? ? 站在用户的角度上看,功能模型就是系统功能需求列表:站在用户的角度上看,功能模型就是系统功能需求列表:站在设计的角度上

75、看,功能模型就是系统内部功能模块站在设计的角度上看,功能模型就是系统内部功能模块( (功功能部件能部件) )的有机排列和组合;的有机排列和组合;站在站在RoseRose角度上看,功能模型就是系统的用例的集合角度上看,功能模型就是系统的用例的集合站在产品的角度上看,功能模型就是系统的用户操作手册站在产品的角度上看,功能模型就是系统的用户操作手册站在操作界面的角度上看,功能模型就是系统的功能菜单站在操作界面的角度上看,功能模型就是系统的功能菜单总之,功能模型描述系统能做什么,是系统所有功能的集总之,功能模型描述系统能做什么,是系统所有功能的集合,具体表现在系统的功能、性能、接口和界面上。合,具体表

76、现在系统的功能、性能、接口和界面上。 70功能模型功能模型59从微观上说,功能模型是什么从微观上说,功能模型是什么? ? 因为应用软件的执行方式已由以前的面向过程的连续型因为应用软件的执行方式已由以前的面向过程的连续型“过程过程控制控制”,变为现在的面向对象的离散型,变为现在的面向对象的离散型“事件驱动事件驱动”和和“消息传送消息传送”。由以前按程序事先安排好的顺序执行,变为现在按用户的随机。由以前按程序事先安排好的顺序执行,变为现在按用户的随机交互指令顺序执行,所以现在的软件功能比以前复杂多了。也就是交互指令顺序执行,所以现在的软件功能比以前复杂多了。也就是说,如今是用户控制执行顺序,而不是

77、开发者控制。说,如今是用户控制执行顺序,而不是开发者控制。 比如,窗口上各种控件都隐含了各种不同事件,像打开、关闭、比如,窗口上各种控件都隐含了各种不同事件,像打开、关闭、复制、粘贴、单击、双击、拖放、隐藏、显示等事件。当用户事件复制、粘贴、单击、双击、拖放、隐藏、显示等事件。当用户事件发生时,系统将事件转化为相应的消息,传递给相应的消息响应函发生时,系统将事件转化为相应的消息,传递给相应的消息响应函数或过程,产生一次按用户意愿执行的程序,完成用户想要的功能,数或过程,产生一次按用户意愿执行的程序,完成用户想要的功能,这就是一次用户面向对象操作的结果。这就是一次用户面向对象操作的结果。 所以要

78、从微观上回答功能模型中的微观功能有多少,实在是一所以要从微观上回答功能模型中的微观功能有多少,实在是一个难题,开发者事先估计不到的。这就是面向对象操作与面向过程个难题,开发者事先估计不到的。这就是面向对象操作与面向过程操作的不同之处。操作的不同之处。60 功能模型在需求分析时的表示方法为:系统功能需求功能模型在需求分析时的表示方法为:系统功能需求列表、性能需求列表、接口需求列表、界面需求列表。列表、性能需求列表、接口需求列表、界面需求列表。 功能模型的设计和实现方法为:将相同的功能归并,功能模型的设计和实现方法为:将相同的功能归并,设计为一个个的构件或组件设计为一个个的构件或组件( (部件部件

79、) ),将不同的功能设计成,将不同的功能设计成模块,然后用面向对象的语言将这些离散的部件或模块组模块,然后用面向对象的语言将这些离散的部件或模块组装起来,形成一个完整的系统,供最终用户使用。装起来,形成一个完整的系统,供最终用户使用。 功能模型既是动态的,又是静态的。因为有的功能与功能模型既是动态的,又是静态的。因为有的功能与系统运行的时间序列有关。功能模型既是数据库和数据结系统运行的时间序列有关。功能模型既是数据库和数据结构设计的基础,又是功能模块构设计的基础,又是功能模块( (功能部件功能部件) )设计、编程实现设计、编程实现和测试验收的依据。和测试验收的依据。7061 企业信息系统中的数

80、据模型,是指它的企业信息系统中的数据模型,是指它的E-RE-R图及其相应图及其相应的数据字典。这里的数据字典,包括实体字典、属性字典、的数据字典。这里的数据字典,包括实体字典、属性字典、关系字典。关系字典。E-RE-R图将系统中所有的元数据按照其内部规律组图将系统中所有的元数据按照其内部规律组织在一起,通过他们再将所有原始数据组织在一起,有了这织在一起,通过他们再将所有原始数据组织在一起,有了这些原始数据,再经过各种算法分析,就能派生出系统中的一些原始数据,再经过各种算法分析,就能派生出系统中的一切输出数据,从而满足人们对信息系统的各种需求。数据字切输出数据,从而满足人们对信息系统的各种需求。

81、数据字典是系统中所有元数据的集合,或者说是系统中所有的表名、典是系统中所有元数据的集合,或者说是系统中所有的表名、字段名、关系名的集合。由此可见,字段名、关系名的集合。由此可见,E-RE-R图及其数据字典确图及其数据字典确实是信息系统的数据模型。抓住了实是信息系统的数据模型。抓住了E-RE-R图,就抓住了信息系图,就抓住了信息系统的核心。统的核心。70数据模型数据模型62 数据模型分为概念数据模型数据模型分为概念数据模型CDMCDM和物理数据模型和物理数据模型PDMPDM两个两个层次。层次。CDMCDM就是数据库的逻辑设计,即就是数据库的逻辑设计,即E-RE-R图。图。PDMPDM就是数据就是

82、数据库的物理设计,即物理表。有了库的物理设计,即物理表。有了CASECASE工具后,从工具后,从CDMCDM就可以就可以自动转换为自动转换为PDMPDM,而且还可以自动获得主键索引、表级触发,而且还可以自动获得主键索引、表级触发器。数据模型设计是企业信息系统设计的中心环节,数据模器。数据模型设计是企业信息系统设计的中心环节,数据模型建设是企业信息系统建设的基石,设计者与建设者万万不型建设是企业信息系统建设的基石,设计者与建设者万万不可粗心大意。可粗心大意。数据模型的表示方法为:系统的概念数据模型和物理数据数据模型的表示方法为:系统的概念数据模型和物理数据模型,加上相应的表结构。模型,加上相应的

83、表结构。UMLUML规定,用类图加上对象图来规定,用类图加上对象图来表述数据模型。在数据模型中可以增加逻辑规则表述数据模型。在数据模型中可以增加逻辑规则( (业务规则业务规则) ),定义表、字段、存储过程和触发器,建立主键、外键、关,定义表、字段、存储过程和触发器,建立主键、外键、关系和视图等。系和视图等。7063 在企业信息系统的在企业信息系统的“业务模型、功能模型、数业务模型、功能模型、数据模型据模型”这三个模型中,数据模型最为重要,因为这三个模型中,数据模型最为重要,因为它是企业信息系统的核心与灵魂,企业信息系统就它是企业信息系统的核心与灵魂,企业信息系统就是对数据模型的录入、处理、传输

84、与查询等操作。是对数据模型的录入、处理、传输与查询等操作。除此之外:除此之外: 数据模型是维护信息系统的基础和根据,数据模型是维护信息系统的基础和根据, 数据模型是项目经理控制项目进度和调度项目数据模型是项目经理控制项目进度和调度项目组成员工作的法宝组成员工作的法宝( (调度板调度板) ); 数据模型为项目组成员完成模块编码、模块接数据模型为项目组成员完成模块编码、模块接口、单元测试和集成测试,提供了共同的数据结构口、单元测试和集成测试,提供了共同的数据结构和数据接口;和数据接口;70644 4、三个模型建模思想的优点、三个模型建模思想的优点(1 1)符合中国人的心理。因为中国人在信息系统的开

85、发)符合中国人的心理。因为中国人在信息系统的开发中,中,1010多年来已经形成了一套具有中国特色的做法:多年来已经形成了一套具有中国特色的做法: 系统有什么功能?对应系统的系统有什么功能?对应系统的“功能模型功能模型”。 系统怎么操作?对应系统的系统怎么操作?对应系统的“业务模型业务模型”。 系统的数据怎样组织和维护?对应系统的系统的数据怎样组织和维护?对应系统的“数据模型数据模型”。 (2)(2)符合客观事物的发展规律。因为做任何事情,都必须符合客观事物的发展规律。因为做任何事情,都必须回答三个向题:回答三个向题: 做什么做什么? ?这就是系统这就是系统“功能模型功能模型”的任务。的任务。

86、怎么做怎么做? ?做到刊做到刊么程度么程度? ?这就是系统这就是系统“业务模型业务模型”的任的任务务 在什么地方做在什么地方做? ?做事的原材料在们什么地方做事的原材料在们什么地方? ?做完后的产做完后的产品放到什么地方品放到什么地方? ?这就是系统这就是系统“数据模型数据模型”的任务。的任务。7065 (3) (3)符合将复杂问题简单化和抓主要矛盾的哲学思想。软符合将复杂问题简单化和抓主要矛盾的哲学思想。软件系统很复杂,开发软件系统也很麻烦,搞得不好就脱不开身。件系统很复杂,开发软件系统也很麻烦,搞得不好就脱不开身。业务经理的主要精力是业务经理的主要精力是“三抓三抓”: 抓系统的抓系统的“功

87、能模型功能模型”。抓系统的抓系统的“业务模型业务模型”。抓系统的抓系统的“数据模型数据模型”。 (4)(4)符合符合“简单、方便、直观简单、方便、直观”的原则。因为软件工程是的原则。因为软件工程是一门工程科学,一种实用技术。一门工程科学,一种实用技术。 “功能模型功能模型”看得见:菜单、界面、报表。看得见:菜单、界面、报表。“业务模型业务模型”摸得着:操作说明书、业务流程图、业务规摸得着:操作说明书、业务流程图、业务规则。则。 “数据模型数据模型”听得懂:实体、属性、关系、表、字段、记听得懂:实体、属性、关系、表、字段、记录、数据字典、原始数据、统计数据、临时数据。录、数据字典、原始数据、统计

88、数据、临时数据。7066 (5) (5)符合节省成本、降低费用的经济效益目标。在发展中国符合节省成本、降低费用的经济效益目标。在发展中国家,软件开发费用相对于发达国家低得多,所以软件的开发方家,软件开发费用相对于发达国家低得多,所以软件的开发方法与文档标准,不应该完全与发达国家相同,而应该本地化,法与文档标准,不应该完全与发达国家相同,而应该本地化,结合中国的国情来做。一些外企解决方案的文档要比国内公司结合中国的国情来做。一些外企解决方案的文档要比国内公司做得好,不是说我们没有水平和能力,而是如果按照那样搞的做得好,不是说我们没有水平和能力,而是如果按照那样搞的话,成本要高得多。客户不认可花很

89、多成本去搞很高水平的文话,成本要高得多。客户不认可花很多成本去搞很高水平的文档。档。7067 三个模型建模思想的缺点三个模型建模思想的缺点 (1)(1)功能模型表述不规范:目前,功能模型还只能用功能模型表述不规范:目前,功能模型还只能用“功功能点列表、性能点列表、接口列表能点列表、性能点列表、接口列表”这三个列表来表示,其这三个列表来表示,其他还没有找到更好的方法。他还没有找到更好的方法。 (2)(2)业务模型表述不规范:目前,业务模型还只能从业务模型表述不规范:目前,业务模型还只能从“业业务操作步骤、业务流程图、用户操作手册务操作步骤、业务流程图、用户操作手册”这三个方面来表这三个方面来表示

90、,其他还没有找到更好的办法。示,其他还没有找到更好的办法。 (3)(3)只能覆盖需求分析和设计两个阶段,不能覆盖整个软只能覆盖需求分析和设计两个阶段,不能覆盖整个软件生存周期。业务模型和功能模型主要适合在软件需求阶段件生存周期。业务模型和功能模型主要适合在软件需求阶段建模,数据模型主要适合在软件设计阶段建模。当然,这三建模,数据模型主要适合在软件设计阶段建模。当然,这三个模型对软件实现和软件测试两个阶段,也具有重要指导意个模型对软件实现和软件测试两个阶段,也具有重要指导意义。功能模型中的三个列表,既是软件实现和软件测试的出义。功能模型中的三个列表,既是软件实现和软件测试的出发点,又是它们的归宿

91、。发点,又是它们的归宿。70683 3值得思考的问题值得思考的问题(1)(1)业务模型和功能模型描述方法的改进和提高,是三个模业务模型和功能模型描述方法的改进和提高,是三个模型建模思想的发展方向。既然型建模思想的发展方向。既然UMLUML的作者申明,的作者申明,UMLUML只是一种只是一种建模语言,不是一种方法论,它独立于过程,不包括过程中建模语言,不是一种方法论,它独立于过程,不包括过程中的方法与步骤,利用它建模时,可遵循任何类型的建模过程。的方法与步骤,利用它建模时,可遵循任何类型的建模过程。那么能否用那么能否用UMLUML来实现业务模型和功能模型的建模呢来实现业务模型和功能模型的建模呢?

92、 ?作者认作者认为在某种程度上说是可以的,读者可以在为在某种程度上说是可以的,读者可以在RoseRose上机中进行实上机中进行实践。践。7069 (2) (2)三个模型不完全是并列关系,而应以数据模型为中三个模型不完全是并列关系,而应以数据模型为中心,以业务模型和功能模为两个基本点。尤其是在企业信息心,以业务模型和功能模为两个基本点。尤其是在企业信息系统的分析、设计和实现中,因为关系型数据库管遵理系统系统的分析、设计和实现中,因为关系型数据库管遵理系统RDBMSRDBMS仍然是其支撑平台,所以应该这样去理解三个模型的仍然是其支撑平台,所以应该这样去理解三个模型的建模思想。建模思想。 (3)(3

93、)“三个模型三个模型”的思想,加上的思想,加上“五个面向理论五个面向理论”,就,就构成了一个完整的方法论,该方法论主要适合于信息系统建构成了一个完整的方法论,该方法论主要适合于信息系统建设。设。7070小小 结结 软件建模是软件开发的重要环节,当前最流行的建模语软件建模是软件开发的重要环节,当前最流行的建模语言是言是UMLUML,但是它比较复杂而深奥,完全理解并掌握它不是一,但是它比较复杂而深奥,完全理解并掌握它不是一件容易的事。学习中要先结合它的实现工具件容易的事。学习中要先结合它的实现工具RoseRose,用,用RoseRose解解决几个比较简单而熟悉的问题,增加面向对象分析设计感性决几个

94、比较简单而熟悉的问题,增加面向对象分析设计感性知识,积累面向对象分析设计的实践经验,最后再回过头来知识,积累面向对象分析设计的实践经验,最后再回过头来主攻主攻UMLUML,这样做周期可能会长一些,但这是最好的办法。,这样做周期可能会长一些,但这是最好的办法。 本章还介绍了本章还介绍了“三个模型三个模型”的建模思想和实现方法,它的建模思想和实现方法,它深入浅出,通俗易懂,非常实用,该方法适合于在需求阶段深入浅出,通俗易懂,非常实用,该方法适合于在需求阶段创建创建“业务模型业务模型”和和“功能模型功能模型”,在设计阶段创建,在设计阶段创建“数据数据模型模型”,然后在关系数据库管理系统的支持下,结合

95、,然后在关系数据库管理系统的支持下,结合CMMCMM的软的软件过程管理、类库和构件库的支撑,运用面向对象的编程语件过程管理、类库和构件库的支撑,运用面向对象的编程语言,进行面向对象编程和面向功能的测试,而最终实现系统言,进行面向对象编程和面向功能的测试,而最终实现系统的的“功能、性能、接口和界面功能、性能、接口和界面”需求,达到成功。需求,达到成功。71思思 考考 题题1 1、请简述、请简述UMLUML的宏观建模思想和微观建模思想。的宏观建模思想和微观建模思想。2 2、请简述、请简述UMLUML的优点和缺点。的优点和缺点。3 3、信息系统的业务模型、功能模型、数据模型各是什么、信息系统的业务模型、功能模型、数据模型各是什么? ?4 4、进一步规范、进一步规范“监狱犯人信息管理系统监狱犯人信息管理系统”的业务模型、功的业务模型、功能模型、数据模型。能模型、数据模型。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 学术论文 > 大学论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号