第六章面向对象的软件工程
一、复习要求
1. 了解面向对象的概念,包括什么是范型,面向对象的概念,对象和对象的分类等。
2. 了解用面向对象方法构造软件的开发过程,包括应用生存期和类生存期的概念。
3. 了解面向对象分析方法,包括论域分析,应用分析的介绍。
4. 了解面向对象设计方法,包括高层设计模型和设计原则,类设计的目标和方针,复用设计及类设计的方法。
5. 了解有影响的coad方法、Booch方法和OMT方法的基本思想。
二、内容提要
面向对象技术是一个非常实用而强有力的软件开发方法。它的特征是:
§ 方法的唯一性,即方法是对软件开发过程所有阶段进行综合考虑而得到的。
§ 从生存期的一个阶段到下一个阶段的高度连续性,即生存期后一阶段的成果只是在前一阶段成果的补充和修改。
§ 把面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)集成到生存期的相应阶段。
1. 面向对象的概念
(1) 范型
范型(Paradigm)又称为范例、风范或模式(Pattern)。从软件开发角度来看,范型与问题解决技术有关。范型定义了特定的问题和应用的开发过程中将要遵循的步骤,确定将用于表示问题和它的解决的那些成分的类型,并利用这些成分表示与问题解决有关的抽象,直接得到问题的结构。因此,范型的选择影响整个软件开发生存期。就是说,它支配了设计方法、编码语言、测试和检验技术的选择。
①流行的范型:目前流行多种范型,它们提供了许多方法,可进行系统分解。流行的范型有:过程性的,逻辑的,面向存取的,面向进程的,面向对象的,函数型的,说明性的。每个范型都有它的支持者和用户,每个范型都特别适合于某种类型的问题或子问题。例如,逻辑程序设计范型是基于规则的,它把有关问题的知识分解成一组具体规则,用语言的“if_then”等结构来表示这些规则。面向存取范型是一种在构造用户界面方面很有用的技术。此外,每一个范型都用不同的方式考虑问题,每一个范型都使用不同的方法来分解问题,而且每一个范型都导致不同种类的块、过程、产生规则。下面主要讨论三种范型。研究的目的是帮助我们找到解决问题的入手点。
②过程性范型:过程性范型是使用最广泛、历史最长的软件范型。它产生过程的抽象,这些抽象把软件视为处理流,并定义成由一系列步骤构成的算法。每一步骤都是带有预定输入和特定输出的一个过程,把这些步骤串联在一起可产生合理的稳定的贯通于整个程序的控制流,最终产生一个简单的具有静态结构的体系结构,(a)所示。
过程性范型侧重建立构成问题解决的处理流,数据抽象、数据结构是根据算法步骤的要求开发的,它贯穿于过程,提供过程所要求操作的信息。系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程。
过程性范型是一种成熟的应用开发过程。对这种方法已有许多支持工具。然而,在大型系统的开发上存在一些问题。
③面向对象范型:在过程性范型中优先考虑的是过程抽象,而在面向对象范型中优先考虑的是实体,即问题论域的对象。在面向对象范型中,把标识和模型化问题论域中的主要实体做为系统开发的起点,主要考虑对象的行为而不是必须执行的一系列动作。
面向对象系统中的对象是数据抽象与过程抽象的综合。系统的状态保存在各个数据抽象的核心所定义的数据存储中。控制流包含在各个数据抽象中的操作内。不像在过程性范型里那样,把数据从一个过程传送到另一个过程,而是把控制流从一个数据抽象通过消息传送到另一个数据抽象。完成的系统体系结构更复杂但也更灵活,(b)所示。把控制流分离成块,这样可以把复杂的动作视为各个局部间的相互作用。
过程性系统和面向对象系统的基本构造
④面向进程的范型:面向进程的范型是把一个问题分解成独立执行的模块。让不只一个程序同时运行。这些进程互相配合,解决问题。面向进程范型产生的主要的块是进程。一个进程中的活动独立于其它进程的活动,但可以要求从其它进程得到信息,或为其它进程提供信息。甚至可以异步处理,仅需要进程暂停发送或接收信息。在面向对象范型中,各个对象是相对独立的,但也存在单线索(单线程)控制。面向进程范型支持与面向对象范型相同的封装,但可提供多线索(多线程)执行。
一个智能数据分析系统
⑤混合范型:在大型系统的开发中,很难说哪种范型对整个问题的解决最好。系统开发现在有一种补充步骤,可把大型问题分解成一组子问题。对于每个子问题可以采用适当的软件范型。例如,设计一个智能数据分析系统时,可把它分解为4个子系统,。系统的数据库界面,可以使用面向对象的方法进行设计;智能数据分析用逻辑范型设计;而分析算法则是过程性的;系统通过一个用户界面来实用化,这个用户界面是用面向存取范型设计出来的。
这
6 面向对象的软件工程 来自淘豆网m.daumloan.com转载请标明出处.