2020/4/29软件工程方法1第二章统一建模语言UML本章目的:掌握UML特点和基本图标元素的表示符掌握UML软件系统体系结构的五种视图和九种基本图了解UML的用例模型、静态模型、动态模型的简单建模方法了解UML的系统体系结构模型掌握UML与软件开发统一过程2020/4/29软件工程方法22.1UML模型系统体系结构2.1.1UML的诞生与发展2020/4/29软件工程方法32020/4/29软件工程方法4统一标准面向对象可视化、表达能力强独立于过程易掌握、易用2.1.2UML的特点2020/4/29软件工程方法52.1.3软件系统体系结构的描述作用:描述系统的功能需求,找出用例和执行者;适用对象:客户、分析者、设计者、开发者和测试者;描述使用的图:用例图和活动图;重要性:系统的中心,它决定了其他视图的开发,用于确认和最终验证系统。1.用例视图2020/4/29软件工程方法62.逻辑视图作用:描述如何实现系统内部的功能;适用对象:分析者、设计者、开发者;描述使用的图:类图和对象图、状态图、顺序图、合作图和活动图;重要性:描述了系统的静态结构和因发送消息而出现的动态协作关系。2020/4/29软件工程方法7作用:描述系统代码构件组织和实现模块,及它们之间的依赖关系;适用对象:设计者、开发者;描述使用的图:构件图;重要性:描述系统如何划分软件构件,如何进行编程。3.构件视图2020/4/29软件工程方法8作用:描述系统的并发性,并处理这些线程间的通信和同步;适用对象:开发者和系统集成者;描述使用的图:状态图、顺序图、合作图、活动图、构件图和配置图;重要性:将系统分割成并发执行的控制线程及处理这些线程的通信和同步。4.进程视图2020/4/29软件工程方法9作用:描述系统的物理设备配置,如计算机、硬件设备以及它们相互间的连接;适用对象:开发者、系统集成者和测试者;描述使用的图:配置图;重要性:描述硬件设备的连接和哪个程序或对象驻留在哪台计算机上执行。5.配置视图2020/4/29软件工程方法102.1.4UML模型元素2020/4/29软件工程方法11关联:连接(connect)模型元素及链接(link)实例。依赖:表示一个元素以某种方式依赖于另一种元素。泛化:表示一般与特殊的关系,即“一般”元素是“特殊”关系的泛化。聚合:表示整体与部分的关系。2020/4/29软件工程方法122.2UML系统模型与建模三大类九种图表示用例模型图:由用例图组成。静态模型图:由类图、对象图、包图、构件图和配置图组成。动态模型图:由活动图、顺序图、状态图和合作图组成。2020/4/29软件工程方法132.2.1用例模型及组成成分2020/4/29软件工程方法142.2.2静态模型与系统体系结构建模1.类图(Classdiagram)2020/4/29软件工程方法152.对象图(Objectdiagram)2020/4/29软件工程方法163.包图(Packagediagram)2020/4/29软件工程方法174.构件图(Componentdiagram)2020/4/29软件工程方法185.配置图2020/4/29软件工程方法192.2.3动态模型与行为控制流建模1.顺序图顺序图(SequenceDiagram)用来描述对象之间动态的交互关系,着重体现对象间消息传递的时间顺序。2020/4/29软件工程方法202020/4/29软件工程方法212.合作图2020/4/29软件工程方法223.状态图2020/4/29软件工程方法234.活动图2020/4/29软件工程方法242020/4/29软件工程方法252.3.1子系统组织的系统体系结构2.3UML系统体系结构模型2020/4/29软件工程方法262.3.2系统模型组织的系统体系结构2020/4/29软件工程方法272.3.3系统体系结构模型的描述方式2020/4/29软件工程方法282020/4/29软件工程方法292.4UML的扩展、调整机制2.4.1模型元素的分类与标记2020/4/29软件工程方法302.4.2模型元素的特性规格说明2020/4/29软件工程方法312.4.3模型元素的语义扩展与约束2020/4/29软件工程方法322.5UML与软件开发统一过程2020/4/29软件工程方法332.5.1迭代、渐增式的开发过程2.详细规划阶段(1)用例分类1)将用例的优先级分为三级:2)体系结构方面的风险的风险。3)进度风险(对实现每个用例所需工作量估算的评价)分为三级:(2)确定每次迭代的开发周期(3)将用例分配到各次迭代中1.开始阶段2020/4/29软件工程方法344.移交阶段3.系统构造阶段渐增式集成测试测试演示保存测试案例2020/4/29软件工程方法352.5.2软件开发步骤及核心支持活动1.需求分析2.系统设计3.实现4.测试5.配置2020/4/29软件工程方法366.核心支持工作(1)配置与变化管理(2)项目管理(3)环境设置2020/4/29软件工程方法372.5.3UML软件开发过程产生的模型与文档(1)业务模型:建立问题领域的组织结构和业务流程的抽象。描述方式:需求分析规格说明书。(2)领域模型:建立问题领域的需求分析说明。描述方式:需求分析规格说明书。(3)用例模型:表达系统的功能。描述方式:用例图、活动图及需求分析规格说明书。1.模型2020/4/29软件工程方法38基本功能分析;实现功能的对象;对象之间的关系;4)分析模型(任选):只有复杂的系统才需要建立独立的分析模型。该模型包括:描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。2020/4/29软件工程方法39(5)设计模型:系统具体解决方案,由调整和完善分析模型而成。描述方式:类图、对象图、包图、顺序图、合作图、状态图和活动图。(7)实现模型:软件的系统体系结构。描述方式:包图和构件图。(6)进程模型(任选):描述系统并发和同步机制。有多线程的并发系统才建立。描述方式:状态图、顺序图、合作图、活动图、构件图和配置图。2020/4/29软件工程方法40(8)配置模型:描述系统软件在各个硬件上的配置。描述方式:配置图。(9)测试模型:描述验证系统功能的途径。描述方式:测试案例和测试报告。2020/4/29软件工程方法41(1)技术文档(2)管理文档2.文档2020/4/29软件工程方法422.5.4UML软件开发过程的基本特征1.用例驱动的系统2020/4/29软件工程方法432.以体系结构为中心3.螺旋上升式的开发过程4.以质量控制和风险管理为目标2020/4/29软件工程方法442.6本章小结UML特点和基本图标元素的表示符UML软件系统体系结构的五种视图和九种基本图UML的用例模型、静态模型、动态模型的简单建模方法UML的系统体系结构模型UML与软件开发统一过程