软件工程——UML

面向对象方法

面向对象方法是一种以对象、对象关系等来构建软件系统模型的系统化方法
面向对象方法的主要特点:

    首先,面向对象分析(OOA,Object-Oriented Analysis),这个缩写的全称大家要清楚。
    OOA的任务就是要建立满足用户需求的、表达系统功能的模型及规约。这 个和我们采用结构化分析方法的任务是一样的。在软件开发需求分析阶段 就是要明确做什么。只是采用的分析方法不同而已。
    OOA的过程简单的概述总结:
    1.用例建模:通过用例驱动的分析方法获取用户需求,从而确定系统功能 。UML建模支持:用例图
    2.领域与业务建模:从用例描述、以及领域概念中识别对象、抽象出类( 属性、操作)以及类间的结构关系(主要指多重性关系)。从而确定实现 系统功能的责任类(通常又叫分析类)。
    UML建模支持:类图,还有包图
    3.系统行为建模:对用例实现行为进行补充,进一步细化用例描述的系统 功能细节
    UML建模支持:各种动态图(如活动图、顺序图、通信图、状态图等)

    用例图有哪些元素(术语)strong>
    主题、用况、参与者、关系
    用例与用例之间有哪几种关系strong>
    关系:关联、扩展、包含、泛化
    参与者之间的关系—— 泛化关系
    参与者与用例之间的关系—— 关联关系
    用例之间的关系——包含关系
    用例之间的关系——扩展关系
    包含关系是一个用例的行为包含另外一个用力的行为,而扩展关系式扩展用例可以在基础用例之上添加新的行为。

    我们讲到了领域与业务建模,那么主要是采用分析类的方法。我们回顾一下,分析类又包括哪几种类型,或者说构造型示什么意思
    ①边界类: 边界类用于建立系统与其参与者之间交互的模型,表示用户界面、系统接口、硬件接口。每个边界类至少应该与一个参与者有关,反之亦然。
    ②控制类:控制类代表协调、排序、事务处理以及其他对象的控制,经常用于封装与某个具体用例有关的控制。
    ③实体类:实体类用于对长效持久的信息建模。大多数情况下,实体类是直接从业务对象模型中相应的业务实体类得到的。
    一般一个用例中都需要一个边界类,一个控制类,以及多个实体类,我们需要从用例中识别这些类,承担不同的责任,以及这些类的的协作类,具体可以采用CRC技术

    顺序图是一种交互图,即由一组对象以及这些对象之间的关系(通信)组成,其中还包括这些对象之间被发送的消息。
    顺序图包含的内容
    (1)交互各方:角色或对象
    (2)交互方式:同步或异步
    (3)交互内容:消息
    1.顺序图是用来描述对象自身及对象间信息传递顺序的视图。顺序图用一个二维图描述系统中各个对象之间的交互关系,其中,纵轴是时间轴,时间沿竖线向下延伸,横轴代表了参与相互作用的对象。
    2.顺序图的主要元素:对象,参与者,生命线,激活条,消息。
    3顺序图关注的是实体之间的互相调用,而活动图中的活动有些是实体自身的活动;顺序图每个消息除了调用,还有返回值

    OOD

    定义: 面向对象的设计(Object-Oriented Design,OOD)就是在OOA模型基础上运用面向对象方法进行系统设计,目标是产生一个符合具体实现条件的OOD模型,以便OOP直接接受。
    根本目的:
    1.提高软件生产率
    2.提高质量
    3.加强可维护性
    OOD和OOA的关系:有俩种观点
    1.OOA考虑做什么,OOD考虑怎么做。
    2.OOA考虑问题域与系统责任,OOD考虑与现实相关的因果。OOA与OOD没有严格的划分,自然过渡。
    按照coad/yourdon方法,OOD的组成包含哪些部分的设计
    1.主体部件(PDC)设计(问题领域部分)
    2.用户界面部件(HIC)设计(人机交互部分)
    3.控制驱动部分(TMC)设计
    4.数据管理部件(DMC)设计
    对OOA进行调整、补充,以及OOA未完善的地方进行细化,实际上是对问题域部分的设计

    问题域部分

    什么是问题域部分
    问题域部分是OOD模型的四个组成部分之一,是由问题域有关的对象构成,并且在特定的实现条件下提供用户所需功能的组成部分。它是在OOA模型基础上按实现条件进行必要的修稿、调整和细节补充而得到的。
    是对OOA模型的补充与调整。
    有哪些对于问题域部分有影响的实现条件strong>
    1.编程语言
    2.硬件、操作系统及 络设施
    3.复用支持
    4.数据管理系统
    5.界面支持系统

    1.UML提供什么图来支持软件逻辑体系结构的建模用面向对象方法进行总体设计时,应该如何去构建软件逻辑体系结构p>

    UML提供包图、类图
    描述系统的逻辑结构(例如分层的体系结构,UML包图、类图提供建模支持,通常以设计模式为指导,优化结构

    2.类图之间的关系有哪些和组合关系属于哪种关系,两者之间有什么区别计角度来看,泛化和实现关系在什么情形下使用,有什么用途p>

    类图之间的关系有:泛化、实现、关联(组合、聚合、一般关联)、依赖
    聚合和组合属于关联关系。
    聚合:是整体与部分的关系,且部分可以离开整体单独存在,用带空心菱形的实线表示,菱形指向整体
    组合:是整体与部分的关系,单部分不能离开整体单独存在,用带实心菱形的实线表示,菱形指向整体

    泛化:是一种继承关系,表示一般与特殊的关系,指定子类如何特化弗雷的所有特征和行为,用带空心箭头的实线表示,箭头指向父类
    实现:是一种类和接口的关系,表示类是接口所有特征和行为的实现,用带空心箭头的虚线表示,箭头指向接口

    依赖:元素A的变化会影响元素B,那么B和A的关系是依赖关系,B依赖A。要避免双向依赖,一般来说,不应该存在双向依赖。关联、实现、泛化都是依赖关系。用带箭头的虚线表示,箭头指向被依赖元素。

    声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月6日
下一篇 2020年3月6日

相关推荐