第2章 信息技术知识
2.2 面向对象系统分析与设计
2.2.1 面向对象的基本概念
基本概念 | 定义 |
---|---|
对象 | - 由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。 - 用计算机语言来描述,对象是由一组属性和对这组属性进行的操作构成的。 - 对象包含3个基本要素,分别是对象标识、对象状态和对象行为。 - 例如,对于姓名(标识)为Joe的教师而言,其包含性别、年龄、职位等个人状态信息,同时还具有授课等行为特征,Joe就是封装后的一个典型对象。 |
类 | - 现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。 - 例如,Joe是一名教师,也就拥有了教师的特征,这些特征就是教师这个类所具有的。 - 如图2.l所示,类和对象的关系可理解为,对象是类的实例,类是对象的模板。 - 如果将对象比作房子,那么类就是房子的设计图纸。 |
抽象 | - 通过特定的实例抽取共同特征以后形成概念的过程。 - 抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。 - 对象是现实世界中某个实体的抽象,类是一组对象的抽象。 |
封装 | - 将相关的概念组成一个单元模块,并通过一个名称来引用它。 - 面向对象封装是将数据和基于数据的操作封装成一个整体对象,对数据的访问或修改只能通过对象对外提供的接口进行。 |
继承 | - 表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。 - 如图22所示,Dog和Cat类都是从Mammal继承而来,具有父类的eyeColor属性特征,因此在子类中就可以不用重复指定eyeColor这个属性。 |
多态 | - 使得在多个类中可以定义同一个操作或属性名称,并在每个类中可以有不同的体现。 - 多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。 - 如图2.3所示,Rectangle和Circle都继承于Shape,对于Shape而言,会有getArea()的操作。 - 但Rectangle和Circle的getArea()方法的实现是完全不—样的,这就体现了多态的特征。 |
接口 | - 描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。 - 可以将接口理解成为类的一个特例,它规定了实现此接口的类的操作方法,把真正的实现细节交由实现该接口的类去完成。 |
消息 | - 体现对象间的交互,通过它向目标对象发送操作请求。 |
组件 | - 表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。 - 组件应当是内聚的,并具有相对稳定的公开接口。 |
复用 | - 指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。 |
模式 | - 描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案3个组成部分。 - 应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。 |
2.2.2 统一建模语言与可视化建模
统一建模语言(Unified Modeling Language UML)
- 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具
- 是一种可视化的建模语言,而不是编程语言
- 静态:用例图(UseCaseDiagram)、类图(ClassDiagram)、对象图(Oh|ectDiagram)、组件图(ComponentDjagram)、部署图(DeploymentDiagram)
- 动态:状态图(StateDiagram)、序列图(SequenceDiagram)、协作图(CollaborationDiagram)、活动图(ActivityDiagram)
- RUP(Rational Unified Process)是使用面向对象技术进行软件开发的最佳实践之一
2.2.3 面向对象系统分析
- 面向对象系统分析运用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。
- 面向对象系统分析的模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。
2.2.4 面向对象系统设计
- 面向对象系统设计基于系统分析得出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。
- 面向对象系统设计主要包括用例设计、类设计和子系统设计等。