荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Minatl (苏醒), 信区: Program
标  题: 软件开发方法述平
发信站: BBS 荔园晨风站 (Mon Oct 11 08:14:56 1999), 转信

软件开发方法述平
复旦大学 陈增荣
[返回]
  60年代中期开始爆发了众所周知的软件危机。为了克服这一危机,在1968、1969年
连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善
。与此同时,软件研究人员也在不断探索新的软件开发方法。至今已形成八类软件开发
方法。
一、Parnas方法
  最早的软件开发方法是由D. Parnas在1972年提出的。由于当时软件在可维护性和可
靠性方面存在着严重问题,因此Par-nas提出的方法是针对这两个问题的。首先,Parna
s提出了信息隐蔽原则:在概要设计时列出将来可能发生变化的因素,并在模块划分时将
这些因素放到个别模块的内部。这样,在将来由于这些因素变化而需修改软件时,只需
修改这些个别的模块,其它模块不受影响。信息隐蔽技术不仅提高了软件的可维护性,
而且也避免了错误的蔓延,改善了软件的可靠性。现在信息隐蔽原则已成为软件工程学
中的一条重要原则。
  Parnas提出的第二条原则是在软件设计时应对可能发生的种种意外故障采取措施。
软件是很脆弱的,很可能因为一个微小的错误而引发严重的事故,所以必须加强防范。
如在分配使用设备前,应该取设备状态字,检查设备是否正常。此外,模块之间也要加
强检查,防止错误蔓延。
  Parnas对软件开发提出了深刻的见解。遗憾的是,他没有给出明确的工作流程。所
以这一方法不能独立使用,只能作为其它方法的补充。
二、Yourdon方法
  1978年,E.Yourdon和L.L.Constan-tine提出了结构化方法,即SASD方法,也可称为
面向功能的软件开发方法或面向数据流的软件开发方法。1979年Tom DeMarco对此方法作
了进一步的完善。
  Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软
件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP
)。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典
型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深
受软件开发人员的青睐。
三、面向数据结构的软件开发方法
1.Jackson方法
  1975年,M.A.Jackson提出了一类至今仍广泛使用的软件开发方法。这一方法从目标
系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整
的程序结构图。这一方法对输入、输出数据结构明确的中小型系统特别有效,如商业应
用中的文件表格处理。该方法也可与其它方法结合,用于模块的详细设计。
  Jackson方法有时也称为面向数据结构的软件设计方法。
2.Warnier方法
  1974年,J.D.Warnier提出的软件开发方法与Jackson方法类似。差别有三点:一是它
们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同
;最主要的差别是在构造程序框架时,Warnier方法仅考虑输入数据结构,而Jackson方法
不仅考虑输入数据结构,而且还考虑输出数据结构。
四、问题分析法PAM
  问题分析法PAM(Problem Analysis Method)是80年代末由日立公司提出的一种软
件开发方法。
  PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,
而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在
系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理
框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的
PAD图。从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综
合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。
  PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好
的详细设计表示方法之一,远远优于N-S图和PDL语言。
  这一方法在日本较为流行,软件开发的成功率也很高。由于在输入、输出数据结构
与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。



--
※ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: 192.168.0.158]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店