软件的开发方法综述

       众所周知,软件工程(software engineering)是近几年兴起的学科之一,那么什么是软件工程呢?软件工程的定义是(1)将系统性的,规范的,可定量的方法应用于软件的开发,运行和维护,即将工程化应用到软件上.(2)对(1)中所述方法的研究。下面就说一说软件的开发方法:

(1)Parnas法

       Parnas方法是最早的软件开发方法,是有D.Parnas在1972年提出的。由于当时软件在可维护性和可靠性方面存在着严重问题,因此Parnas提出的方法是针对这两个问题的。Parnas提出了信息隐蔽原则,在概要设计时,把易改变的或可能改变因素放到个别模块内部,这样修改时,只需要改变个别模块,信息隐蔽原则不仅提高了软件的可维护性,而且避免了错误的蔓延。这在面向对象开发方法中的抽象,也达到了信息隐蔽。

(2)SASD法

       1978年,E.Yourdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件开发(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。

(3)面向数据结构的软件开发方法

      1.Jackson方法 

      从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。

     2.Warnier方法

      此方法和Jackson方法类似,差别有三点:一是它们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同;最主要的差别是在构造程序框架时,Warnier方法仅考虑输入数据结构,而Jackson方法不仅考虑输入数据结构,而且还考虑输出数据结构。

(4)问题分析法

      PAM问题分析法

      PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。

 

(5)面向对象的软件开发方法

       面向对象方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。在后面将展开详细介绍面向对象的软件开发方法。随着面向对象编程向面向对象设计和面向地向分析的发展,最终形成面向对象的软件开发方法OMT(Object Modelling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。

(6)可视化开发方法

      可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件.

(7)ICASE

      ICASE的最终目标是实现应用软件的全自动开发,即开发人员只要写好软件的需求规格说明书,软件开发环境就自动完成从需求分析开始的所有的软件开发工作,自动生成供用户直接使用的软件及有关文档。

      在应用最成熟的数据库领域,目前已有能实现全部自动生成的应用软件,如MSE公司的Magic系统。它只要求软件开发人员填写一系列表格(相当于要求软件实现的各种功能),系统就会自动生成应用软件。它不仅能节省90%以上的软件开发和维护的工作量,而且还能将应用软件的开发工作转交给熟练的用户。

(8)软件重用和组件连接

      软件重用(软件复用或软件再用)是利用已有的软件成份来构造新的软件。它可以大大减少软件开发所需的费用和时间,且有利于提高软件的可维护性和可靠性。

      而当今时下最流行的当属敏捷开发,因为敏捷过程很容易适应变化并迅速做出自我调整,在保证质量的前提下,做到文档,度量适度,适用于各类软件企业。

 

 

原文地址:https://www.cnblogs.com/zsjy/p/3607941.html