软件工程导论重点内容 联系客服

发布时间 : 星期五 文章软件工程导论重点内容更新完毕开始阅读4ee21a252f60ddccda38a0bf

6)属性:属性就是类中定义的数据,它是对客观世界实体所具有的性质的抽象。 7)封装:封装也就是信息隐藏,通过封装对外界隐藏了对象的实现细节。

对象具有封装性的条件:有一个清晰的边界;有确定的接口(即协议);受保护的内部实现。

8)继承:是现实世界中遗传关系的直接模拟。可用来表示类之间的内在联系以及对属性和操作的共享。子类可以沿用父类的某些特征,同时子类也可以具有自己独立的属性和特征。 9)多态性: 10)重载:

函数重载是指在同一作用域内的若干个参数特征不同的函数可以使用相同的函数名字; 运算符重载是指同一个运算符可以施加不同类型的操作数上面。 五、 面向对象建模:!!!!!!!!!!!!!!!!!!!!!

1、 模型定义:模型,就是为了理解事物而对事物作出的一种抽象,是对事物的一种无歧义的书面描述。

2、 对象模型(描述系统数据结构的对象模型):对象模型表示静态的、结构化的系统的“数据”性质。它是对模

拟客观世界实体的对象以及对象彼此间的关系的映射,描述了系统的静态结构。

3、 通常,使用UML提供的类图来建立对象模型。在UML中术语“类”的实际含义是,“一个类及属于该类的

对象”。 4、 类图的基本符号

1) :定义类:UML中类的图形符号为长方形,用两条横线把长方形分成上、中、下3个区域(下面两个区

域可省略),3个区域分别放类的名字、属性和服务,如图所示。2) 类名是一类对象的名字。为类命名时应该遵守以下几条准则:

(1) 使用标准术语。(2) 使用具有确切含义的名词。(3) 必要时用名词短语作名字。名字应该是富于描述

性的、简洁的而且无二义性的。

3)、定义属性

UML描述属性的语法格式如下:可见性 属性名:类型名=初值{性质串} 4). 定义服务

服务也就是操作,UML描述操作的语法格式如下: 可见性 操作名(参数表): 返回值类型{性质串} 5、 表示关系的符号

1)关联:表示两个类的对象之间存在某种语义上的联系

(1) 普通关联:

(2) 关联的角色:在任何关联中都会涉及到参与此关联的对象所扮演的角色(即起的作用),在某些情况下显式标明角色名有助于别人理解类图。如:

(3) 限定关联:限定关联通常用在一对多或多对多的关联关系中,可以把模型中的重数从一对多变成一对一,或从多对多简化成多对一。在类图中把限定词放在关联关系末端的一个小方框内。

17

(4) 关联类:如:

3) 聚集:

聚集也称为聚合,是关联的特例。聚集表示类与类之间的关系是整体与部分的关系。4). 泛化:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。 5) 依赖和细化 (1) 依赖关系:

依赖关系描述两个模型元素(类、用例等)之间的语义连接关系: 其中一个模型元素是独立的,另一个模型元素不是独立的,它依赖于独立的模型元素,如果独立的模型元素改变了,将影响依赖于它的模型元素。 (2) 细化关系

当对同一个事物在不同抽象层次上描述时,这些描述之间具有细化关系。

重点:对象模型实现 P217,要求会作图。 1、动态模型(描述系统控制结构的动态模型):它是基于事件共享而相互关联的一组状态图的集合(联系P65页,状态转换图)。

2、 功能模型(描述系统功能的功能模型):功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。通常,功能模型由一组数据流图组成。 重点:功能模型实现 P225,要求会作图。例子:自动取款机 3、面向对象建模的三种模型之间的关系?

(P228)答:在面向对象方法学中,对象模型是最基本最重要的,它为其他两种模型奠定基。1)针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。

2)状态转换驱使行为发生,这些行为在数据流图中被映射成处理,在用例图中被映射成用例,它们同时与类图中的服务相对应。

3)功能模型中的处理(或用例)对应于对象模型中的类所提供的服务。通常,复杂的处理(或用例)对应于复杂对象提供的服务,简单的处理(或用例)对应于更基本的对象提供的服务。有时一个处理(或用例)对应多个服务,也有一个服务对应多个处理(或用例)。

4)数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。 5)数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。 6)用例中的行为者,可能是对象模型中的对象。

7)功能模型中的处理(或用例)可能产生动态模型中的事件。

8)对象模型描述了数据流图中的数据流、数据存储以及数据源点/终点的结构。

总之,功能模型指明了系统应该”做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做;对象模型则定义了做事情的实体. 4、用例图:一幅用例图包含的模型元素有系统、行为者、用例及用例之间的关系。

1) 用例之间的关系: (1) 扩展关系

18

向一个用例中添加一些动作后构成了另一个用例,这两个用例之间的关系就是扩展关系,后者继承前者的一些行为,通常把后者称为扩展用例。 (2) 使用关系

当一个用例使用另一个用例时,这两个用例之间就构成了使用关系。

图9.18 含扩展和使用关系的用例图 第十章:面向对象分析。

一、开发软件,分析的过程都是系统需求提取的过程,它要求系统分析员通过与用户及相关领域的专家交流,充分理解用户的需求和相关领域的背景知识,最终把这种理解制作成文档资料的过程,但由于问题的复杂性,该理解过程并不能达到理想的成程度,因此需要进一步去验证说明规格文档的正确性、完整性、有效性。

1、分析工作主要内容: 理解、表达、验证(其中理解和验证的过程是反复进行的,有事还需要原型系统作为辅助工具)。

2、分析过程得出的结果就是软件需求规格说明文档,相对于面向对象,由对象模型、动态模型、功能模型组成。

二、面向对象分析的基本过程

1、面向对象分析,就是抽取和整理用户需求并建立问题域精确模型的过程。 1) 基本过程流程:

(1)从分析陈述用户需求的文件开始(可由用户单方,也可由系统人员与用户

配合写出需求陈述)。

(2)需求陈述通常是不完整、不准确的、还是非正式的。因此,需求陈述不是 一成不变, 应通过分析,补充和改正其内容。

(3)系统人员深入分析理解用户的需求,抽象出系统的本质属性,并用模型准 确表示出来。

(4)建模过程中,分析员应该认真向领域专家学习,还应仔细研究以前针对

相同的或类似问题域进行面向对象分析得出的结果。

2).三个子模型与五个层次

a.三个子模型:

19

(?)静态结构(对象模型):被包含于下面两种模型中。(?1?2)交互次序(动态模型):适用于问题涉及交互作用和时序时 (如用户界面及过程控??制)。 (?3)数据变换(功能模型):用于解决运算量大的问题(如高级语言的编译)???。b.五个层次:

(?)主题层(?1?2 (?)类与对象层?3)结构层 (?4)属性层(???5)服务层与之对应的面向对象分析过程中建立的对象模型为:

(?(?1)找出类与对象? (?2)识别结构?3)识别主题 (?(?4)定义属性??5)定义服务综合以上知,面向对象分析可按下列顺序进行:

(?1)寻找类与对象(??2)识别结构(?3)识别主题 (???4)定义属性 (?5(?)建立动态模型?6(?)建立功能模型??7)建立服务 2、 需求陈述 其内容包括:

(?1)问题范围(??2)功能需求 (??3)性能需求

(?4)应用环境(???5)假设条件三、建立对象模型

六、面向对象分析的过程,首要的工作是建立问题域的对象模型,然后再建立另外两个模型。七、建立对象模型时的主要信息来源:

20