软件工程导论期末复习(九)

本文介绍了面向对象方法学的基本概念和原则,强调其模拟人类思维方式、稳定性和可重用性的优点。面向对象包括对象、类、实例、消息、方法等核心概念,以及关联、聚集、泛化、依赖和细化等关系。文章还探讨了对象模型、动态模型和功能模型之间的关系,并提出了面向对象设计的准则,如模块化、抽象、信息隐藏等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文用书:《软件工程导论》 第六版 清华大学出版社

1、面向对象方法学概述

2、面向对象建模(涵盖第9章和第10章)

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

4、面向对象的设计准则

第九章 面向对象相关内容

9.1 面向对象方法学概述

1.面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。

(1)认为客观世界是由各种对象组成的,任何事物都是对象,复杂的对象可以由比较简单的对象以某种方式组合而成。

(2)把所有对象都划分成各种对象类(简称为类,class),每个对象类都定义了一组数据和一组方法。

(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。

(4)对象彼此之间仅能通过传递消息互相联系。

2.优点:

(1)与人类习惯的思维方法一致;

(2)稳定性好;

(3)可重用性好;

(4)较易开发大型的软件产品;

(5)可维护性好。

9.2 面向对象的概念

1.对象:是具有相同状态的一组操作的集合。

(1)特点:

以数据为中心。  

对象是主动的。  

本质上具有并行性。  

模块独立性好。

实现了数据封装。

2.其他概念

(1)类;

(2)实例;

(3)消息;

(4)方法;

(5)属性;

(6)封装;

(7)继承;

(8)多态性;

(9)重载。

9.3 面向对象建模(略)

9.4 对象模型

1.表示关系的符号

(1)关联

<1>普通关联

重数:

 0…1                   表示0到1个对象

0…*或*               表示0到多个对象

1+或1…*               表示1到多个对象

1…15               表示1到15个对象

3                   表示3个对象      

  如果图中未明确标出关联的重数,则默认重数是1。

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

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

<4>关联类:为了说明关联的性质可能需要一些附加信息。可以引入一个关联类来记录这些信息。关联中的每个连接与关联类的一个对象相联系。关联类通过一条虚线与关联连接。

(2)聚集:表示类与类之间的关系是整体与部分的关系。除了一般聚集之外,还有两种特殊的聚集关系,分别是共享聚集和组合聚集。

<1>共享聚集:在聚集关系中处于部分方的对象可同时参与多个处于整体方对象的构成

<2>组合聚集:如果部分类完全隶属于整体类,部分与整体共存,整体不存在了部分也会随之消失(或失去存在价值了)

(3)泛化:UML中的泛化关系就是通常所说的继承关系,它是通用元素和具体元素之间的一种分类关系。

在UML中,用一端为空心三角形的连线表示泛化关系,三角形的顶角紧挨着通用元素。、 注意,泛化针对类型而不针对实例,一个类可以继承另一个类,但一个对象不能继承另一个对象。

<1>普通泛化

<2>受限泛化:可以给泛化关系附加约束条件,以进一步说明该泛化关系的使用方法或扩充方法。预定义的约束有4种: 多重、不相交、完全和不完全。这些约束都是语义约束。

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

(5)细化:假设两个模型元素A和B描述同一个事物,它们的区别是抽象层次不同,如果B是在A的基础上的更详细的描述,则称B细化了A,或称A细化成了B。

9.5 动态模型(略)

9.6 功能模型(略)

9.7 3种模型之间的关系

功能模型指明了系统应该“做什么”;动态模型明确规定了什么时候(即在何种状态下接受了什么事件的触发)做;对象模型则定义了做事情的实体。

(1) 针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。

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

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

(4) 数据流图中的数据存储,以及数据的源点/终点,通常是对象模型中的对象。

(5) 数据流图中的数据流,往往是对象模型中对象的属性值,也可能是整个对象。

(6) 用例图中的行为者,可能是对象模型中的对象。

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

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

面向对象的设计准则

1.模块化

2.抽象

3.信息隐藏

4.弱耦合

5.强内聚

6.可重用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值