本章的主要内容是面向对象基础
软件工程学家 Codd 和 Yourdon 认为:面向对象 = 对象 + 类 + 继承 + 通信;
面向对象方法概述
面向对象技术的发展历史
1. 初始阶段:20 世纪 60 年代末到 20 世纪 80 年代;2. 发展阶段:20 世纪 80 年代中期到 90 年代;3. 成熟阶段:20 世纪 90 年代以后。
面向对象的软件工程方法
1. 面向对象分析;2. 面向对象设计;3. 面向对象编程;4. 面向对象测试;5. 面向对象维护。
面对对象基本概念
对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。属性和服务是构成对象的两个基本要素。
类:类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内容包括属性和服务两个主要部分。
封装:封装是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。
继承:继承是指子类可以自动拥有父类的全部属性和服务。
消息:消息是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等信息。
关联:管线是对象属性之间的静态联系,它通过对象的属性来表示对象之间的依赖关系。
聚和:聚合是对象之间的组合关系,即一个(或一些)对象是另一个对象的组成和部分。聚合是一种特殊的关联,表示对象之间整体与部分的关系。
多态性:多态性是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为。
软件建模概念
系统、模型和视图
1. 系统是为特定目的而设计的由相互关联的若干部分组成的集合,其中各个组成部分又可以看作是一个更简单的系统,成为子系统;2. 模型是对系统的抽象表示;3. 视图是从某一个侧面对系统模型的关注。
软件建模的重要性
1. 软件系统越来越大,如 Window NT5.0 具有4千万行代码,任何个人都不可能单独关系这些代码;2. 没有参加开发的人员无法直接理解程序代码;3. 人们需要一种描述复杂系统的简单的方法。
统一建模语言 UML
1. UML 是一种语言;2. UML 是一种可视化的建模语言;3. UML 是一种可用于详细描述的语言;4. UML 是一种构造语言;5. UML 是一种文档化语言。
UML 的发展历史
面向对象的建模方法开始于 20 世纪 80 年代初期,大量有决定意义的思想形成与 20 世纪 90 年代中期,1998 年开始,国际上每年召开一次专门的 UML 会议,推进 UML 语言的不断发展和广泛应用。
UML 的概念模型
1. 视图;2. 图;3. 模型元素;4. 语义规则;5. 公共机制;6. 扩展机制。
UML 建模实例
UML 应用
UML 语言是一种强有力的系统建模语言,具有创建系统的静态结构和动态行为等多种模型的能力,其应用范围十分广泛,即可以应用于商业建模和软件开发建模的咯咯阶段,也可以应用于其他类型的应用系统。UML 主要应用适合于大型复杂系统的开发,具体要求如下:1. 支持用例驱动;2. 以体系结构为中心;3. 迭代的或增量的开发过程。
常用的 UML 图
用例图:用例图是从用户的观点描述系统的功能,它由一组用例、参与者以及它们之间的关系组成。
类图:类图描述系统的静态结构,表示系统中的类、类与类之间的关系以及类的属性和操作。
顺序图:顺序图描述了一组交互对象之间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
状态图:状态图是由状态机图扩展而开的,用来描述对象所经过的对外部事件作出响应的状态序列。