UML复习资料(整理)
一、关于面向对象方法论OOM
1. 结构化分析与设计的主要特点:
A. 功能分解.以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好
B. 自顶向下.边界定义明确,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改
C. 数据与操作分离,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差
2. 面向对象方法与结构化方法的区别?
传统结构化方法面向对象方法(UML建模工具为例)
需求模型输入I、处理P、输出O的视角,
面向功能的文档(用户需求规格
说明书)需求变化,其功能变化,
所以系统的基础不稳固
从用户和整体角度出发
使用系统抽象出用例图、活动图,获取需求;
如需求变化,对象的性质相对功能稳定,系
统基础稳定
分析模型面向过程的数据流图DFD、实
体—关系图ERD、数据字典
DD表示分析模型
功能分解,数据和功能/过程分开
把问题作为一组相互作用的实体,显式表示
实体间的关系
数据模型和功能模型一致
类、对象图表示分析模型,状态、顺序、
协作、活动图细化说明
设计模型功能模块(SC图),模块之间的
连接/调用是模块的附属形式
类和对象实现, 类/对象的关联、聚集、继承
等连接、连接规范和约束作为显式定义
实施模型体系结构设计构件图,配置图
测试模型根据文档进行单元测试,集成测
试,确认测试
单元测试采用类图,集成测试用实现图和交
互图,确认测试采用用例图
3. 什么是面向对象方法,以及其要点?
答:OO方法是基于“对象、类、封装性、继承性、多态性、消息机制等技术特征”的构造系统的软件开发方法。它有以下一些特点:
(1)客观世界由具有各种对象组成。OO的软件系统也是由对象组成的,任何复杂的软件都是由简单的对象以及对对象的处理组合而成的。
(2)所有对象都可以划分为不同的对象类,具体的对象只是对象类中的一个实例,每个对象都有自己特定的数据和方法(对数据的操作)。
(3)对象类具有层次结构,子类可以继承父类的特性和方法(继承性)。
(4)对象之间只能通过传递消息构成相互之间的联系(消息机制)。
二、OOA & OOD
概念:
OOA:分析问题论域,出问题解决方案,发现对象,分析对象的内部构成和外部关系,建立软件系统的对象模型
OOD:根据已确定的系统对象模型,运用面向对象技术,进行系统软件设计
1. OOM中的基本元素是什么?
答:对象,每个对象可用它本身的一组属性和它可以执行的一组操作来定义。
2. 类的主要构成部分
答:类是一组具有相同数据结构和相同操作的对象的集合。类的定义包括一组数据属性和在数据上的一组合法操作。
3. 类或对象之间的通讯机制:消息
▪消息的组成:: Object ID + Operations + List of Parameters
4. 对象之间的几种关系及其含义:
▪ 1. 关联.是一种弱的连接关系,不构成完全的依赖关系。(例如,汽车和乘客,或者教室与学生,书架
与书)
▪ 2. 组合表示一种强得多的“拥有”关系,在一个组合关系里面,部分和整体的生命周期是一样。(例如,人和四肢)
▪ 3. 聚合. 是一种强关联关系,表示“拥有”关系或整体与部分的关系;通常用于将不同的对象通过聚合关系形成一个整体,即形成了“部分-整体”的层次结
构”(例如汽车,微波炉)
▪ 4. 依赖依赖总是单向的,表示一个类依赖于另一个类的定义。(例如人可以买房或买车)
5. OOA & OOD的三个主要特征
▪ 1.封装.具有相同数据结构和相同操作的对象放一起
▪ 2.继承.类可分层,下层子类与上层父类有相同特征,称为继承
▪ 3.多态.以不同方式响应同一消息的不同对象,使对象可以不必知道相互的类型而交互,不同层次的classes 可共享一个method名,但按各自的方
式来实现这种method
三、UML概述
1. UML是一种建模语言,而不是一种方法.
答:UML(统一建模语言)是为软件系统的制品进行描述(specifying)、可视化(visualizing)、构造(constructing)、文档化(documenting)的一种语言。
2. UML的三个组成部分:
▪基本元素,模型图, 建模规则.
3. 4+1视图以及各自的作用
用例视图、设计视图、进程视图、实现视图、分布视图
每个视图分别关注软件开发的某一侧面
♦用例视图用来支持软件系统的需求分析,它定义系统的边界,关注的是系统的外部功能的描述。它从系统的使用者的角度,描述系统的外部的
▪静态的功能
▪动态行为
♦逻辑视图定义系统的实现逻辑, 描述为实现用例图描述的功能,在对软件系统进行设计时, 所产生的设计概念。逻辑视图定义了:
■设计词汇的逻辑结构
■存在于它们之间的语义联系
■设计词汇包括系统的类/协同/接口及其关系
♦实现视图:当系统的逻辑结构在逻辑视图里被定义之后,需要定义逻辑结构的物理实现。这包括:
■设计元素对应的源代码文件
■各物理文件之间的关系、存放路径,等等
实现视图描述组成一个软件系统的各个物理部件,这些部件以各种方式组合起来,构成了一个可实际运行的系统。
♦分布视图用来描述软件产品在计算机硬件系统和网络上的安装、分发(delivery)、分布(distribution)
UML = UML成员+ UML建模规则
UML成员= UML 基本模型元素+ 关系+ 模型图
UML基本模型元素= 结构模型元素+行为模型元素+成组元素+注解元素
4. UML的公共机制:
▪规格说明:体现了UML规则的省略性原则
▪通用划分:UML提供了事物的两分法表达
方法一:抽象的描绘(class)和具体的实例
方法二:接口和实现(接口定义了一种协议,实现是此协议的实施)▪修饰:在某些情况无法完整而准确地描述软件系统的分析和设计,修饰扩展▪扩展机制
5. UML中的三种扩展机制
▪构造型:对特定建模问题特有的建模元素
▪标记值:有必要在建模元素的基本构成之外再增加一些构成
▪约束:约束用来扩充UML建模元素的语义,以便增加新的规则或修改已有的规则
6.逻辑视图的两个组成部分:静态结构,动态行为
7. UML中的几种主要关系
▪关联,依赖,泛化,实现
四、User Case
1.用例图的基本组成部分:
▪用例:一组场景,用以共同描述用户的某个特定的目标(从用户的观点对系统行为的一个描述)
▪执行者
▪系统边界
2.用例之间的几种关系:
▪包含include:描述在多个用例中都有的公共行为。由用例A连向用例B,表示用例A中使用了用例B中的行为或功能。
▪扩展extend,:类似于泛化关系,但添加了一些新规则。由用例A连向用例B,表示用例B描述了一项基本需求,而用例A则描述了该基本需求的特殊情
况,即一种扩展。
▪泛化generalization:一个用例类似与另一个用例,但多一些内容
3.《include》和《extend》之间的主要区别。
答:扩展和包含用例都于基用例相联。在基用例的执行过程中,可能在某种条件下基用例的执行流被中断,转而执行扩展或包含用例(在UML中统称为附加用例)的流。当附加用例流执行完毕,控制将返回到基用流原来被中断的那个位置恢复执行。
它们的主要区别在于用例实例中断基用例、执行附加用例的方式。
■包含:当一个通用的用例可以成为几个特殊的用例的组成部分时用包含关系。
因此,当在两个或更多的用例中出现重复描述而又想避免这种重复时,采用包含关系。
■扩展:当一个用例是另一个一般化用例的特例时,用扩展关系。因此,当描述一般行为的变化时,采用扩展关系。要说明扩展点。
五、类图和对象图
类图和对象图的基本要素:
关联;
属性;
操作;
泛化;定义类和包之间的一般元素和特殊元素之间的分类关系。
授权;把原来属于类A的部分责任或任务转交给(授权)类B来完成。这时,类B应看作是类A的不可分割的一个组成部分
约束规则。将约束条件放在括号{ }中
1.类图描述的是系统的静态视图,属于逻辑视图
类图描述系统中的类及其相互之间的各种关系,反映了系统中包含的各种对象的类型以及对象间的各种静态关系,主要是:关联和子类型。类图也可描述类的属性和行为
以及对模型中各种成分的约束。
对象图是类图的实例,描述系统中各种对象(类的实例)以及对象之间的各种静态关系♦类和对象的表示法(1)名称;(2)属性;(3)行为;
2.类中元素的三种可视化规则:
▪+Public:公有成员在程序的任何位置都是可见的,系统中的任何对象都可以使用它。
▪-Private:私有成员仅可以由定义它的类使用。
▪#protected:受保护的成员仅可以由定义它的类和该类的子类中的对象使用。
3.聚合和组合之间的区别。
(1)聚合:强关联关系,整体与部分的生命周期分开;(部分不一定只有一个整体) (2)组合:强聚合,整体与部分的生命周期相同;(每个部分体只能属于一个整体)
4.抽象类及其特点:
▪不允许直接实例化,具有抽象方法
详细:抽象类是指那些不具有任何对象的类,其作用是为其他的类描述它们的
公共属性和行为。通常,抽象类具有一组抽象操作。一个拥有至少一个抽象操
作的类必定是一个抽象类。
5.接口及其特点:
▪不带实现的类,只规定类的外部特性,包括公共属性、操作及其语义,因此只有操作声明而没有方法体和物理存储区。
6.接口和抽象类的区别
抽象类和接口很相似,也只定义接口而推迟定义其实现部分,然而抽象类允许增加一些方法的实现,但接口必须推迟定义所有的方法。
抽象类是一种类是对一组具有相同属性和方法的逻辑上有关系的事物的一种抽象。
而接口则是对一组具有相同属性和方法的逻辑上不相关的事物的一种抽象。
六、交互图
1.动态模型描述的是系统的动态行为,分为交互模型和状态模型。
在UML中,用序列图和协作图为交互模型建模,用状态图和活动图为状态模型建模。
交互图描述对象之间的动态合作关系以及合作过程中的行为次序。交互图常常用来描述一个用例的行为,显示该用例中所涉及的对象以及这些对象之间的消息传递情况。
2.交互模型包括:顺序图和协作图
3.顺序图:关注的是对象之间消息传递的时间先后顺序.主要用来描述对象之间信
息交换时的时间顺序。
4.协作图:侧重于对象之间的结构行为和协作关系。用来描述系统对象之间如何协
作共同完成系统功能的要求。
5.顺序图中消息的4种主要类型:
▪简单消息:
对象模型是什么展示了控制如何从一个对象传递到另一个对象,但不描述任何通信的细节▪同步消息:
是一种嵌套的控制流,通常用操作调用来实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论