文档介绍:第九章面向对象方法学引论(Object - Oriented Methodology)
§1 面向对象方法学概述
1、瀑布模型的缺点:僵化
瀑布模型要求:生命周期各阶段间遵守严格的顺序。
实际情况是:软件开发往往在反复实践中完成。
瀑布模型要求:预先定义并“冻结”软件需求。
实际情况是:某些系统的需求是一个逐渐明确的过程,且预先定义的需求到软件完成时可能已经过时。
§1面向对象方法学概述
●本质上是功能分解,以实现功能的过程为中心,而用户的需求变化主要是针对功能的。这就使基于过程的设计不易被理解;且功能变化往往引起结构变化较大,稳定性不好。
●系统有明确的边界定义,且系统结构依赖于系统边界的定义,这样的系统不易扩充和修改。
●数据与操作分开处理,可能造成软构件对具体应用环境的依赖,可重用性(reusability)较差.
2、SA - SD - SP 技术的缺点:
(结构化分析、结构化设计、结构化程序设计)
面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。
3、面向对象方法学(OOM)
面向对象方法学具有下述4个要点。
把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。
(2) 把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。
(3) 按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。
(4) 对象彼此间仅能通过发送消息互相联系。
也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。
杭州
北京
Post-office
Message
Send by method
对象Object
Object
= 数据Attribute
Attributes:
location;
employee;
……
+ 操作Method
Methods:
send;
sell;
……
注意:Object内部的attributes不允许外部用户直接改动,只有当它提供了相应的服务method时,用户才能通过发送message来提请它执行。
我想把邮局搬到
我家门口,多加几个
邮递员,24小时都开门
……
对不起,
本邮局不提供
此类服务
唉,那就先送束花吧——
(request, payment)
例:
特点:尽可能模拟人类习惯的思维方式,即问题域与求解域在结构上尽可能一致。与传统方法相反,OOM以数据或信息为主线,把数据和处理结合构成统一体——对象。这时程序不再是一系列工作在数据上的函数集合,而是相互协作又彼此独立的对象的集合。
OOM的四要素:
①对象(object):世界由对象组成。
②类(class) :对象可划分为类;单个对象可视为某一类的实例(instance)。
§1面向对象方法学概述
例: class Post_office {
private :
loc_type location ;
emp_type employee ;
……
public :
void send (req_type request, money_type payment);
void sell (int goods, money_type payment) ;
……
} ;
main ( )
{ Post_office My_PO ;
req_type My_request ;
money_type My_payment ;
……
( My_request, My_payment) ;
……
}
§1面向对象方法学概述
③继承(inheritance):类可分层,下层子类与上层父类有相同特征,称为继承。
④消息(message):对象间只能通过发送消息进行联系,外界不能处理对象的内部数据,只能通过消息请求它进行处理(如果它提供相应消息的话)。
§1面向对象方法学概述
OOM:以object 为核心,强调对现实概念的模拟而不强调算法。“面向对象方法学的基本原则,是按照人们习惯的思维方式建立问题域的模型,开发出尽可能直观、自然地表现求解方法的软件系统”。 Class:由特殊到一般的归纳(induction) Inheritance:由一般到特殊的演绎(deduction)