桃园文印室
(2) 关联的角色:在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如:
(3) 限定关联:限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。
(4) 关联类:如:
3) 聚集:
聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。4). 泛化:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。 5) 依赖和细化 (1) 依赖关系:
依赖关系描述两个模型元素(类、用例等)之间的语义连接关系: 其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。 (2) 细化关系
当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。 重点:对象模型实现 P217,要求会作图。
26
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
1、动态模型(描述系统控制结构的动态模型):它是基于事件共享而相互关联的一组状态图的集合(联系P65页,状态转换图)。
2、 功能模型(描述系统功能的功能模型):功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。通常,功能模型由一组数据流图组成。 重点:功能模型实现 P225,要求会作图。例子:自动取款机 3、面向对象建模的三种模型之间的关系?
(P228)答:在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定基。1)针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。
2)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。
3)功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供的服务。有时一个处理(或用例)对应多个服务,也有一个服务对应多个处理(或用例)。
4)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。 5)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。 6)用例中的行为者,可能是对象模型中的对象。
7)功能模型中的处理(或用例)可能产生动态模型中的事件。
8)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。
总之,功能模型指明了系统应该”做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做;对象模型则定义了做事情的实体.
4、用例图:一幅用例图包含的模型元素有系统、行为者、用例及用例之间的关系。 1) 用例之间的关系: (1) 扩展关系
向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。 (2) 使用关系
当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。
27
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
图9.18 含扩展和使用关系的用例图
第十章:面向对象分析。
一、开发软件,分析的过程都是系统需求提取的过程,它要求系统分析员通过与用户及相关
领域的专家交流,充分理解用户的需求和相关领域的背景知识,最终把这种理解制作成文档资料的过程,但由于问题的复杂性,该理解过程并不能达到理想的成程度,因此需要进一步去验证说明规格文档的正确性、完整性、有效性。
1、分析工作主要内容: 理解、表达、验证(其中理解和验证的过程是反复进行的,有事还需要原型系统作为辅助工具)。
2、分析过程得出的结果就是软件需求规格说明文档,相对于面向对象,由对象模型、动态模型、功能模型组成。 二、面向对象分析的基本过程
1、面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 1) 基本过程流程:
(1)从分析陈述用户需求的文件开始(可由用户单方,也可由系统人员与用户
配合写出需求陈述)。
(2)需求陈述通常是不完整、不准确的、还是非正式的。因此,需求陈述不是
一成不变, 应通过分析,补充和改正其内容。
(3)系统人员深入分析理解用户的需求,抽象出系统的本质属性,并用模型准
确表示出来。
(4)建模过程中,分析员应该认真向领域专家学习,还应仔细研究以前针对
相同的或类似问题域进行面向对象分析得出的结果。
28
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
桃园文印室
2).三个子模型与五个层次
a.三个子模型:
()静态结构(对象模型):被包含于下面两种模型中。?1?():适用于问题涉及交互作用和时序时?2)交互次序(动态模型? (如用户界面及过程控 制)。??3)数据变换(功能模型():用于解决运算量大的问题(如高级语言的编译)???。b.五个层次:
(?1)主题层(??2)类与对象层 (??3)结构层 (?4)属性层(???5)服务层与之对应的面向对象分析过程中建立的对象模型为:
(?1)找出类与对象(??2)识别结构 (??3)识别主题 (?4)定义属性(???5)定义服务综合以上知,面向对象分析可按下列顺序进行:
(?1)寻找类与对象(??2)识别结构(?3)识别主题 (???4)定义属性 (?(?5)建立动态模型?6)建立功能模型(???7)建立服务、 需求陈述 其内容包括:
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班
29
2
桃园文印室
()问题范围?1?(?2)功能需求? (?3)性能需求
?4)应用环境(??(?5)假设条件三、建立对象模型
六、面向对象分析的过程,首要的工作是建立问题域的对象模型,然后再建立另外两个模型。
七、建立对象模型时的主要信息来源:
()需求陈述?1 ?
(以及关于客观世界的常识?2)应用领域的专业知识3、建立对象模型工作步骤:
()确定对象类和关联,对于大型复杂问题还要进一步划分?1?(,进一步描述他们?2)给类和关联增添属性?3)利用适当的继承关系进一步合并和组织类 ( ?
1)、确定类与对象 (1)找出候选对象与类
对象定义:对象是对问题域中有意义的事物的抽象,可是物理
实体,也可是抽象概念。
其中,大多数客观事物包括:
?a. 可感知的事物??b.人或组织的角色? ?c.应该记忆的事物
?d.两个或是两个以上对象的相互作用,通常具有交易或是接触的性质???e.需要说明的概念 2)、筛选出正确的类和文件
筛选时删除不正确或不必要的类和对象时依据标准:
30
计算机科学学院 软件工程(二)班 软件工程导论复习资料2 星光二班