一、系统开发方法概念的形成
系统开发方法概念的形成和人们开始着手对系统开发方法的研究始于1960年左右。早期研究信息系统的开发方法主要从两个方面开始的:一是从开发一个大型软件工程的角度;二是从开发出一个适用于管理实际需要的角度。我们现在讨论的则是融两者为一体的信息系统开发方法。
产生于50-60年代的EDP,在开发过程中有一个很不如人意的地方,就是如何充分合理地组织开发一个大型的应用软件系统,其中有两个问题是:在设计系统时,如何合理地划分系统,并组织多个人力来共同工作,以及在系统实现时,如何合理地将众多开发者所做的工作合并在一起。60年代约当(Edward Yourdon)、康斯坦丁(Larry L.Constantine)等提出了自顶向下、结构化系统开发方法,其贡献在于:
1.开创了系统开发方法学研究的先河
此方法的核心是将整个应用软件系统的开发分为三个阶段:问题分析、系统设计和编程实现。前两个阶段采用自顶向下(top-down)的方法来结构化地划分、分析和设计一个系统,后一阶段则采用从底向上(bottom-up)的方法,按照前两个阶段分析设计的结果,从最基层模块做起,一个一个地编程,然后按结构逐步拼接成整体系统。由于这一研究是从如何开发实现一个大型的应用软件系统这个角度提出的,具有一般性,故被认为是系统开发方法学研究的开始。
2.系统方法在软件开发中的应用
50年代是系统论奠基和发展的年代,系统论的观点被广泛应用于各个领域。当时系统论的发展除一些确定性的结构模型和定量描述模型外,强调整体性、系统划分和有机协调的观点被广泛地用来解释几乎所有事物。系统论的创始人贝塔朗菲(L.V.Bertranffy)认为系统论从某种意义上说就是对事物“整体”和“整体性”的科学探索。在这种前调整体性的系统观点的指导下,约当、康斯坦丁、迪莫柯等人巧妙地将它与大型软件系统的开发过程结合起来,并将其演变为一种自顶向下的软件分析设计方法,即对问题的分析和软件的设计都必须坚持先整体后局部的原则,只有在整体最优的情况下才有局部的优化。在确保全局性的前提下对系统进行自顶向下的划分,即将系统划分成若干既有机联系又相互独立的子系统(或模块),然后以此类推,层层细分,直至最终完成整个系统的分析和设计。
3.工程化开发软件
用工程化的手段和方法来开发大型软件工程是结构化系统开发方法求解问题的主要手段之一。以工程化的方法开发软件系统并非结构开发方法的独创,而是人类在大型工程项目(包括软件工程)中一直用于组织协调群体劳动的一种有效方法。结构化开发方法的主要贡献就是将工程化开发方法与自顶向下的系统思想、结构化的系统划分方法溶为一体,从而较好地解决了大型软件系统开发中,个体工作和群体工作的关系。
在结构化系统分析中强调的工程化方法具体来说就是:
首先,把开发过程分成了很多工程化的开发阶段和步骤,如可行性分析、问题分析、系统设计、编程实现等等。
其次,在每一个开发步骤中,都规定出很多工程化的图表来规划、记录和表达开发者在这一步骤中的工作成果。这些图表包括两部分:一部分是流程图和解构图,它类似于一般的工程图;另一部分是程序文档文件,主要用于说明程序设计中的一些细节,以便日后维护和修改之方便。
二、开发方法的发展
一些开发方法从不同的角度展开研究,共同促进了系统开发方法学的形成与发展。较有代表性的例子有:从JSP到JSD的杰克逊开发方法,结合结构化开发方法和需求定义(requirement definition)方法的信息系统工程方法,以及后来的各类信息系统开发工程规范、原型方法、OO方法、CASE方法等等。
1.杰克逊系统开发方法
杰克逊(Michael Jackson)系统开发方法最早是从研究程序设计方法开始的。1975年杰克逊在其《程序设计原理》中提出一种系统化的程序设计方法,被称之为结构化程序方法(简称JSP)。1983年杰克逊又在《系统开发》中将JSP推广到整个系统开发领域,故称之为杰克逊系统开发方法(简称JSD)。JSD是一种描述和实施计算机系统的方法,应用范围包括需求描述、功能描述、逻辑系统设计、应用系统设计、物理系统设计、程序描述和设计、程序实施以及系统与程序维护。
2.信息工程
信息工程是马丁(James Martin)和芬克尔斯顿(Clive Finkeletein)在其合著的《信息工程》中提出的一种全面支持信息系统开发过程的工程方法。它是一种基于数据和数据关系的、用户驱动的方法。用信息工程方法开发所包括的内容有:战略需求规划、数据模型化和规范化分析、过程形成、数据使用分析、实施策略、分布分析、物理数据库设计、第四代语言、程序描述合成等。
我们按时间顺序简要地回顾信息系统开发方法的发展过程。将各类方法按程序设计方法、软件工程方法、管理/需求分析方法、自动化系统开发方法四类进行归纳如表1所示。
表1
年代
70
80
90
程序设计方法
SP方法 JSP方法
软件工程方法
SADT方法 JSD方法
prototyping方法
OO方法
管理/需求分析
SRD方法 BSP方法
CSFs方法
自动化开发方法
CASE方法
其中SP(Structured Program)为结构化程序方法,JSP(Jackson Structured Program)为杰克逊结构程序方法,JSD(Jackson System Development)为杰克逊系统开发方法,SADT(Structured Analysis & Design Technology)为结构化系统分析与设计技术,prototyping为原型方法,OO(Object Oriented)为面向对象的开发方法,SRD(Structured Requirements Defination)为结构化需求定义方法,BSP(Business Systems Planning)为商业系统规划法,CSFs(Critical Success Fastors)为关键成功因子法,CASE(Ccomputer Aided Software Engineering)为计算机辅助软件工程方法。
本文地址:http://com.8s8s.com/it/it33119.htm