- 软件工程基础与实训教程
- 杜文洁 白萍编著
- 3189字
- 2020-08-28 15:53:30
1.3 软件的开发方法
软件工程学的最终目的是以较少的投资获得较高质量的软件产品。研究软件开发方法的目的是使开发过程“纪律化”,也就是寻找一些规范的“求解过程”,使开发工作能够有计划、有步骤地进行。
软件开发方法又称为软件工程方法论。目前,常用的软件开发方法有面向过程的开发方法、面向数据的开发方法和面向对象的开发方法。在本书的后续章节中,将详细介绍面向过程、面向数据和面向对象的开发方法。
1.3.1 面向过程的方法
面向过程的方法包括面向过程需求分析、面向过程设计、面向过程编程、面向过程测试、面向过程维护、面向过程管理。面向过程的方法又称结构化方法,包括结构化分析、结构化设计、结构化编程、结构化测试、结构化维护。面向过程的方法的特点是:程序的执行过程不由用户控制,完全由程序控制,故其优点是简单实用,缺点是维护困难。
面向过程的方法开始于20世纪60年代,成熟于70年代,盛行于80年代。该方法的基本特点是,分析设计中强调“自顶向下、逐步求精”,编程实现时强调程序的“单入口和单出口”。这种方法在国内曾经大量应用,非常普及。
对于软件行业来说,某一种方法论往往来自于某一类程序设计语言。面向过程的方法,来自于20世纪60至70年代流行的面向过程的程序设计语言,如ALGOL、Pascal、BASIC、FORTRAN、COBOL、C 语言等。这些语言的特点是:用“顺序、选择(if-then-else)、循环(do-while或do-until)”三种基本结构来组织程序编制,实现设计目标。
面向过程的方法,在军事上的实时跟踪监控系统中有很好的应用。如我方侦察卫星发射后其飞行轨迹的捕获、测量、跟踪和预报,导弹防御系统中敌方导弹发射后飞行轨迹的捕获、测量、跟踪和预报,其软件系统都是采用面向过程的方法设计和实现的。使用面向过程的方法,系统的执行路径可由系统自动控制,也就是程序自动控制,这是一切自动控制与跟踪系统所必需的。
1.3.2 面向数据的方法
面向数据的方法,也称为面向元数据(Metadata)的方法。元数据是关于数据的数据,组织数据的数据。例如,数据库概念设计中的实体名和属性名,数据库物理设计中的表名和字段名,它们就是元数据。而具体的某一个特定的实例,就不是元数据,它们叫做对象或记录,是被元数据组织或统帅的数据。
面向数据的方法开始于20世纪80年代,成熟于90年代。20世纪80年代中期,美国学者James Martin在《信息系统宣言》中提出了“以数据为中心”的学说,它是这种设计方法的萌芽与起源。90 年代中期,Sybase 和 Oracle 公司的 CASE 工具 Power Designer 和Designer/2000(以后叫做Oracle Designer)的出现,宣告这种设计方法已经进入工程化、规范化、自动化和实用化阶段,因为CASE工具中隐含了这种方法。概括起来,面向数据方法的要点是:
(1)数据(Data)位于企业信息系统的中心。信息系统就是对数据的输入、处理、传输、查询和输出。
(2)只要企业的业务方向和内容不变,企业的元数据就是稳定的,由元数据构成的数据模型(Data Model)也是稳定的。
(3)对元数据的处理方法是可变的。用不变的元数据支持可变的处理方法,即以不变应万变,这就是企业信息系统工程的基本原理。
(4)企业信息系统的核心是数据模型。数据模型包括概念数据模型CDM(Conceptual Data Model)和物理数据模型PDM(Physics Data Model)。数据模型的表示形式是E-R图,E-R图要用CASE工具设计。例如,Power Designer,Oracle Designer或ERwin,它们不但具有正向设计功能,而且具有逆向分析功能,这样才能实现快速原型法。
(5)信息系统的实现(编码)方法主要是面向对象,其次才是面向数据和面向过程。
(6)用户自始至终参与信息系统的分析、设计、实现与维护。
面向数据方法的特点是:程序的执行过程中,根据数据流动和处理的需要,有时由程序员控制(如数据库服务器上触发器和存储过程的执行),有时由用户控制(如用户浏览层上控件的选择与执行)。
面向数据方法的优点是通俗易懂,特别适合信息系统中数据层(数据库服务器)上的设计与实现,缺点是实现窗口界面较困难。
面向数据的方法来自于20世纪80年代开始流行的关系数据库管理系统RDBMS,以及关系数据库程序设计语言。例如,Oracle,Sybase 关系数据库语言,这种关系数据库语言或命令,提供了强大的面向关系表中数据的编程能力,典型的例子就是编写存储过程和触发器。Oracle数据库管理系统自带的编程工具Developer 2000,首先是一个面向数据的编程工具,其次才是一个面向对象的编程工具。Oracle Designer加上Developer 2000,便构成了一个完整的面向数据的信息系统开发环境。
面向数据的方法与关系数据库管理系统紧密地捆绑在一起,只要面向对象数据库不能完全替代关系数据库,这种方法就不会终结。目前数据库管理系统的发展趋势是:在关系型数据库的基础上,将面向对象的某些特性(如继承)添加上去,称为“对象-关系型数据库”,但本质上仍然是一个关系型数据库。正如美国数据库专家David M.Kroenke所说的,“面向对象这样的数据库只是概念上的兴趣,他们在商用数据库处理中只起很小的作用。”
面向数据的方法在电子商务中的应用有:网站后台数据库服务器上的数据处理和数据传输,其软件都是利用面向数据的方法设计与实现的。实际上,不管网络应用系统结构是两层结构还是三层结构,在数据库服务器上对数据的分析、设计和实现,都自觉或不自觉地使用了面向数据的方法。
1.3.3 面向对象的方法
面向对象方法起源于面向对象编程语言。20世纪80年代中期到90年代,面向对象的研究重点已从编程语言转移到设计方法学上来,其中有代表性的工作有:
(1)B.Henderson-sellers和J.M.Edwards提出的面向对象软件生存周期的喷泉模型,以及面向对象系统开发方法;
(2)G.Booch提出面向对象开发方法等;
(3)P.Coad和E.Yourdon提出面向对象分析(OOA)和面向对象设计(OOD);
(4)J.Rumbaugh等人提出的对象建模技术(OMT);
(5)Jacobson提出的面向对象软件工程(OOSE);
(6)由G.Booch,J.Rumbough和Jacobson等人发起,在Booch方法、OMT方法加OOSE方法的基础上推出了统一的建模语言(UML)。
面向对象方法包括分析、设计和实现活动。它是一种把面向对象的思想运用于软件开发过程,指导开发活动的系统方法,建立在“对象”概念(对象、类和继承)基础上的方法学基于对象概念,以对象为中心,以类和继承为构造机制来认识、理解、刻画客观世界和设计、构建相应的软件系统。面向对象方法的应用,目前有两个方面:
(1)在分析、设计、实现活动中完全采用面向对象的技术;
(2)传统的功能分解方法与面向对象方法结合使用,即功能分析、面向对象的设计和实现,以及面向对象分析和设计、实现用过程式语言。
面向对象分析的任务就是通过分析问题域建立系统的概念模型,并用相应的符号系统表示。而模型一般由五个层次构成,即主题层、类及对象层、结构层、属性层和服务层,因此其步骤也是按其五个层次逐步展开的。
面向对象设计是在面向对象分析的基础上进行系统设计,包括交互过程和用户接口、任务管理、全局资源协调并确定边界、各个类的存储和数据格式。
面向对象实现就是用面向对象程序设计语言来实现面向对象设计,因为该类语言支持对象、运行多态性和继承,因此比较容易,如果使用非面向对象程序设计语言,则需要特别注意和规定保留程序的面向对象式的程序结构。
用面向对象方法开发的软件,是基于客观世界界定的对象结构,与传统的软件相比较,软件本身的内容结构发生了质的变化,因而易复用性和易扩充性都得到了提高,而且能适应需求的变化。
谈到软件开发方法,软件复用技术是必不可缺的。当今国际上十分重视软件复用,提出了构件、体系结构和框架等一系列方法。我们将在本书的其他章中加以介绍。
面向对象的方法在电子商务中也有应用,网站前台界面的制作、信息的发布和处理、用户在网上浏览和录入信息等应用软件都是利用面向对象的方法设计与实现的,除此之外,个人网页的制作也是面向对象方法的应用例子。窗口操作系统与互联网的出现,为面向对象方法的前景提供了无限的空间。
1.3.4 三种开发方法的比较
面向过程的方法、面向数据的方法和面向对象的方法这三种开发方法的比较如表 1-1所示。
表1-1 三种开发方法的比较
由表 1-1 可知,这三种开发方法各有优缺点、生存时间和适用空间,所以它们在信息系统领域能和平共处、互相促进,共同构成一个多极化的世界。