UML和面向对象分析与设计总结
1、UML中常见的关系的线性表示:
扩展关系:、泛化(继承)关系:、依赖关系:
聚合关系:、组成关系:、
关联关系:、实现关系:
2、UML中几种基本图及其基本功能作用:
UML的重要内容可以由哪五类图(共9种图形)来定义:
答:用例图:用例图。
静态图:类图、对象图
行为图:状态图、活动图
交互图:时序图、协作图
实现图:构件图、部署图
1)类图:类图是描述类、接口、协作以及它们之间的关系的图,用来显示系统中各个类的静态结构。
类包括:类图、属性、方法。
类图包括:类、接口、协作、关系、约束、注释以及包。
类的表示包括:名称、属性、操作、职责和约束。
类图的建模过程:确定对象与类、确定类的属性、确定类的关系。
类图在UML中的重要作用:1.为开发人员提供这种模仿现实世界的表达方式。
2.让分析员使用客户所采用的术语和客户交流,促使客户说出所要解决的问题的重要细节。
2)对象图:对象图表示在某一时刻一组对象以及他们之间的关系的图。
UML对象图的用途
◆捕获实例和连接、◆在分析和设计阶段创建、◆捕获交互的静态部分、◆举例说明数据/对象结构、◆详细描述瞬态图、◆由分析人员、设计人员和代码实现人员开发
3)用例图:表述了一组用例、参与者以及它们之间的关系的图。
用例模型包括:用例图和用例规则。
用例规则包括:基本流和备选流。
用例图的组成元素有:参与者,用例,通信关联,用例规约
建立用例模型步骤:
1) 根据系统边界确定参与者
2) 根据每个参与者确定与之相关联的用例
3) 对每个用例写出用例规约文档,调整用例模型(优化参与者与参与者之间的关系,用例与用例之间的关系)
用例对于系统开发人员来说的价值:是用来从用户的观察角度收集系统需求的一项技术,便于分析员与客户和用户交流,使系统更符合用户的需求
4)顺序图也称为时序图,它描叙了系统中对象间通过消息进行的交互,强调了消息在时间轴上的先后顺序。
顺序图是由对象、生命线、控制焦点和消息等构成。(消息表示了对象间的通信,生命线表示了对象的生存期,控制焦点表示对象正在执行一些活动)
顺序图将交互关系表示为一张二维图,其中纵向是时间轴,时间沿竖线向下延伸,横向代表了在协作中各独立对象的角色。
顺序图中从左到右各对象分别为:执行者角色、控制类、用户接口、业务层、后台数据库。
顺序图的作用:顺序图常用来描述用例的实现,它表明了由哪些对象通过消息相互协作来实现用例的功能。在顺序图中,标识了消息发生的先后顺序。
5)协作图:描述了系统中对象间通过消息进行的交互,强调了对象在交互行为中承担的角色。
协作图包括对象、链(连接器)、消息。
(协作图与顺序图的比较与各自的优缺点下面有)
交互图(协作图与顺序图)的特征:交互图形主要用于对用例中的控制建模,一般情况下,一个交互图形表达单个用例的行为,它表示出该用例中若干个实例对象和对象之间所传递的消息,交互图形有效的帮助人们观察和理解系统内部的协作关系和过程行为。
6)状态图:描述了一个对象所处的可能状态以及状态之间的转换,并给出了状态变化序列的起点和终点。
状态图包括:状态、转换。
一个状态图表示一个状态机,表示从一个状态到另一个状态的控制流。
引发状态转换的事件主要有:调用事件、变化事件、时间事件以及信号事件。
建模步骤:找出适合用模型描述其行为的类、确定对象可能存在的状态、确定引起状态转换的事件、确定转换进行时对象执行的相应动作、对建模结果进行相应的精化和细化。
作用:能帮助分析员、设计员和开发人员理解系统中对象的行为。(P87)
7)活动图:描述从活动到活动的流。
活动图包括:动作状态,活动状态,动作流、分支与合并、分关与汇合、泳道以及对象流。
8)构件图:主要用来描述各种软件构件之间的依赖关系,是描述构件与构件关系的图。
构件图包括注释、约束和包。
构件包括5个要素:接口声明、接口实现、构件标准、封装方法以及部署方法。
构件分为3种类型:配置构件、工作产品构件以及执行构件。
构件图的基本目的是:使系统人员和开发人员能够从整体上了解系统的所有物理部件;同时,也使我们知道如何对构件进行打包,以便交付给最终客户;最后,构件图显示了被开发系统所包含的构件之间的依赖关系
(构件和类的比较见下面)
9)部署图:描述系统中的硬件节点及节点之间如何连接的图。
部署图的组成元素包括节点、节点间的链接。
部署图的目的:描述系统投产的相关问题;描述系统与生产环境中的其他系统间的依赖关系,这些系统可能是已经存在,或是将要引入的;描述一个商业应用主要的部署结构;设计一个嵌入系统的硬件和软件结构;描述一个组织的硬件/网络基础结构。
(活动图与状态图的比较见下面)
3、类图的表示:
4、略
5、对象间的可见性:可见性指的是一个对象能够“看到” 或者引用另一个对象的能力。Public + ,private - ,protected #
6、类的区分:
UML将类分为边界类、实体类以及控制类。
1)边界类用于描述外部参与者与系统之间的交互。
边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。这种交互包括转换事件,并记录系统表示方式(例如接口)中的变更。
2)实体类主要是作为数据管理和业务逻辑处理层面上存在的类别。
实体类的主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。
实体类保存要放进持久存储体的信息。持久存储体就是数据库、文件等可以永久存储数据的介质。实体类可以通过事件流和交互图发现。通常每个实体类在数据库中有相应的表,实体类中的属性对应数据库表中的字段。
实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。
3)控制类用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序。
1.边界类,描述外部与系统内部交互的类;2.控制类,控制其他类;3.实体类,存储信息和相关行为的类;
7、面向对象开发系统是一系列对象的集合。
8、面向对象的三大机制:封装、继承、多态。
9、软件工作的有效性和可靠性。
10、面向对象之前是面向过程的结构化分析与设计方法,这种方法以功能分析为基础。
11、对象是客观实体的抽象表示,是由描述对象属性的数据和对这些数据进行的操作行为两部分组成。而类是对具有相同属性和行为一组对象的抽象描述。因此,它作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的实例。通过继承关系又可形成一种类层关系。
12、UML中静态图有:用例图、类图、对象图、构件图、部署图
动态图有:活动图、顺序图、协作图、状态图
简答题:
1、简述面向对象的三大机制:封装性、继承性以及多态性。
1)封装性。所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息的隐蔽;2)继承性。如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类成为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构;3)多态性。在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。多态即程序中同名的不同方法共存的情况,常见的两种多态方式为:①子类对父类方法的覆盖;② 利用重载在同一个类中定义多个同名的不同方法。
2、简述面向对象发展的动因:
为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法。面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的结合,其面向对象设计又将分析的结果映射到某一种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它成为成熟的广为采用的软件开发方法。
3、分析顺序图和协作图之间的差别和优缺点:
顺序图可视化地表示了对象之间随时间发生的交互,它除了展示对象之间的关联,还显示出对象之间的消息传递。与顺序图一样,协作图也展示对象之间的交互关系。顺序图强调的是交互的时间顺序,而协作图强调的是交互的语境和参与交互的对象的整体组织。顺序图按照时间顺序布图,而协作图按照空间组织布图。
顺序图可以清晰地表示消息之间的顺序和时间关系,但需要较多的水平方向的空间。
协作图在增加对象时比较容易,而且分支也比较少,但如果消息比较多时难以表示消息之间的顺序。
填空、选择:
1、2略
3、在用例图中用例与角色是关联角色。
4、顺序图中有生命线。
5、整体与局部的关系用聚集(聚合)表达的。
6、UML图中,关联角色的构造型有5种
7、略
8、UML中4大关系:依赖、泛化、实现和关联。
9、UML构造块中的事物和关系各包含哪些内容?
UML的事物包含:动作事物、结构事物、分组事物、注释事物
动作事物包含:交互、状态机
结构事物包含:类、接口、用例、协作、节点、构件、活动类
分组事物包含:包
注释事物包含:注解
10、活动图中的泳道技术的作用:通过泳道不仅体现了整个活动控制流,还体现出了每个活动的实施者。
11、状态图描述从状态到状态的控制流程,常用来对系统的动态特称进行建模。
12、UML中类可分为3大类:实体类、控制类和边界类。
13、UML体系分为3大部分:UML基本构造块、UML规则和UML公共机制。
1. 比较活动图与状态图:
1)活动图和状态图描述的重点不同:活动图描述的是从活动到活动的控制流,而状态图表述的是对象的状态及状态之间的转移。
2)活动图和状态图使用的场合不同:对于以下几种情况可以使用活动图:分析用例、理解涉及多个用例的工作流、处理多线程应用:对于下面的情况要使用状态图:显示一个对象在其生命周期内的行为。
2. 构件和类的比较:从构件的定义来看,构件和类十分相似,如都有名称,都可以实现一组接口,都可以参与依赖,泛化和关联关系,都可以被嵌套,都可以有实例,都可以参与交互,但它们之间也存着以下明显区别:1)类是对实体的抽象,而构件是对存在于计算机中的物理部件的抽象。也就是说构件是可以部署的,而类不能部署。2)构件是属于软件模块,而非逻辑模块,与类相比,它们处于不同的抽象级别,甚至可以说,构件就是由一组类通过协作完成的;3)类可以直接拥有操作和属性,而构件仅拥有可以通过其接口访问的操作。
3、面向对象方法的基本观点:
(1)客观世界由对象组成,任何客观实体都是对象。对象是系统的基本单位。
(2)复杂的对象可以包含简单的对象。
(3)事物的静态特征用对象的属性表示;事物的动态特征用对象的操作表示。
(4)对象的属性与操作结合在一起,封装成一个独立的实体
(5)具有相同属性和操作的对象可归纳成类,对象是类的一个实例。
(6) 类可以派生出子类,子类除了继承父类的全部特性外还可以有自己的特性。
(7)对象之间通过消息进行通信,以实现对象之间的动态联系。
4、简述面向对象分析方法(OOA)的5个基本步骤
1)、识别对象,识别对象包括标识潜在的对象和筛选对象两步
2)、识别对象的属性
3)、识别对象的行为
4)、识别对象所属的类
5)、定义主题词