软件工程面向对象的分析和设计方法尽管传统的生命周期方法学曾经给软件产业带来了巨大的进步,部分地缓解了软件危机,在开发许多中、小规模软件项目都获得了成功
但是,这种方法学应用于大型软件产品的开发时,很少取得成功
为了克服传统方法学的缺点,近年来很快发展起来的面向对象方法学已成为当前最好的软件开发技术,是人们开发软件时的首选范型
1面向对象方法学概述面向对象(Object-Oriented,缩写为OO)方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程
也就是使描述问题的问题空间(也称为问题域)与实现解法的解空间(也称为求解域)在结构上尽可能一致
客观世界的问题都是由客观世界中的实体及实体与实体间的关系构成的
我们把客观世界中的实体抽象为问题域中的对象(object)
1面向对象方法学的要点认为客观世界是由各种对象组成,任何事物都是对象,复杂的对象可由比较简单的对象以某种方式组合而成
把所有对象划分成类(class),每个类都定义了一组数据和一组方法(method)
数据表示对象的静态属性(attribute),是对象的状态信息
方法是允许施加于该类对象上的操作,又称服务
对象类组成层次结构的系统(又称为类等级)
处于下层的子类(派生类)可以继承(inherit)上层的父类(基类)的特性(包括数据和方法)
但如果在子类中对某些特性做了重新描述,在子类中这些特性将以新描述为准,即低层特性将屏蔽高层的同名特性
对象彼此间仅能通过传递消息(message)互相联系
对象不同于传统的数据,不能从外界直接对它的私有数据进行操作;对象是进行处理的主体,必须必消息请求它执行它的某个操作(方法),处理它的私有数据
私有信息被封装(encapsulate)在对象类中,实现了信息隐藏
面向对象的定义OO=