欢迎访问文稿网!

面向对象方法学概述

范文之家 分享 时间: 加入收藏 我要投稿 点赞

面向对象方法学概述

    8.1 面向对象方法学概述

    一、从传统软件工程到面向对象软件工程

    传统软件工程方法在面向对象软件工程方法出现以前,一直是标准的和最常用的软件工程方法,目前软件开发大部分仍然沿用传统的软件工程方法。传统软件工程方法主要指结构化软件工程方法,以下所说传统软件工程方法均指结构化软件工程方法,传统软件工程方法对应的软件过程模型(或者软件生命周期模型)通常是瀑布模型,可以划分为以下阶段:

    ①问题定义。

    ②可行性研究。

    ③需求分析。

    ④总体设计。

    ⑤详细设计。

    ⑥编码(编程)和单元测试。

    ⑦综合测试。

    ⑧软件维护。

    目前通常将通用的传统软件工程方法划分为以下阶段:

    ①需求分析。

    ②总体设计。

    ③详细设计。

    ④编程。

    ⑤测试。

    ⑥软件维护。

    目前较新的部分文献则将传统软件工程方法划分为以下阶段:

    ①系统工程。

    ②分析。

    ③设计(包括总体设计、详细设计和编程)。

    ④测试。

    ⑤软件维护。

    从上述对传统软件工程方法的划分可以看出,传统软件工程方法的前期工作主要集中在分析(需求分析)和设计(包括总体设计和详细设计)阶段,实际上分析和设计是传统软件工程方法中最为重要的阶段。传统软件工程方法以功能、数据和数据流进行分析,实际上传统软件工程方法是基于数据(包括数据存储和数据处理,软件的功能也是针对数据进行处理)的。在传统软件工程方法的分析阶段,所使用的主要工具有数据字典(DD)、实体—关系图(ERD)、数据流图(DFD)和状态—变换图(STD);在传统软件工程方法的设计阶段,所使用的主要工具有针对总体设计的模块结构图(MSD)和针对详细设计的流程图,在目前实际的软件开发中,通常不使用流程图,而直接通过编程完成详细设计,所以较新的部分文献中,设计阶段包括了总体设计、详细设计和编程阶段,之间的界限较模糊。

    传统软件工程方法的主要缺点是在分析阶段以功能、数据和数据流进行分析,对问题域的认识和描述不是以问题域中的固有事物(这就相当于面向对象软件工程方法中的对象)作为基本单位并保持它们的原貌,这些方法的分析结果不能直接地映射到问题域;在设计阶段分析的结果——数据流图和设计的结果——模块结构图是两种不同的表示体系,从分析到设计的转换实际上没有可靠的转换规则,带有人为的随意性,导致为软件开发带来隐患和设计结果与问题域偏差大。应该说这些缺点为现代软件开发带来了很多问题,目前从导向上看来,面向对象软件工程方法大有取代传统软件工程方法的趋势。

    面向对象软件工程方法(OOSE)是面向对象(OO)方法在软件工程领域的全面应用,面向对象软件工程方法目前有多种(流派),但目前面向对象软件工程方法对应的软件过程模型也可以划分为以下阶段:

    ①面向对象的分析(OOA)。

    ②面向对象的设计(OOD)。

    ③面向对象的编程(OOP)。

    ④面向对象的测试(OOT)。

    ⑤面向对象的软件维护(OOSM)。

    OOA直接针对问题域中客观存在的各项事物设立OOA模型中的对象,用对象的属性和服务(方法)分别描述事物的静态特征和行为,OOA模型能够很好地映射问题域;OOA针对问题域运用OO方法,OOA模型独立于具体的实现,OOD则是针对系统的一个具体实现运用OO方法,OOA模型直接搬到OOD中,作为OOD的一个部分,针对具体实现补充一些与实现有关的部分。OOA到OOD不存在转换。从理论上说,面向对象软件工程方法更加适合现代软件开发。

    二、了解面向对象的概念

    面向对象(OO)其实是认识事物的一种方法,准确地说,它是一种以对象为中心的思维方式。图8.1是现实生活中对青蛙的认识方法,其实这个认识过程就是一个面向对象的过程。所以说,面向对象是贴近自然、贴近人们的认识过程的。

    img144

    

    图8.1 用面向对象方法来认识青蛙

    这一节介绍面向对象的几个主要概念:对象、类、封装、继承、多态性、消息、关联。

221381
领取福利

微信扫码领取福利

微信扫码分享