background image

计算机软件设计方法的探讨

 【摘要】:随着信息化时代的到来

, 计算机已广泛应用于社会各领域, 发挥着无与伦比的作

用,而计算机软件的开发与完善极大地提高了计算机的使用效益

,又促进了计算机硬件的更

新换代

, 因此计算机软件设计方法的发展已成为人们关注的焦点之一。本文结合国内外在软

件工程方面的最新理论及成果

, 以及在项目开发中实行软件工程化探索的经验,探讨了计算

机软件设计的几种常用方法,以期会给软件开发者提供有益的启迪。
  【关键词】:软件

 设计 方法

  开发一个软件首先要给出功能说明

,然后确定解题方案或算法,设计流程图,最后编写代

码。为此,根据系统的实际需求,分别针对具体情况选择采用不同的软件设计方法,可以充
分发挥软件设计各种方法的优势。
  

1.问题的提出

  随着计算机技术的迅速发展,软件开发供不应求的局面日益加速,应用滞后已达数年
软件设计人员已成为一种贫乏资源,形成新的

 软件危机

”。(软件危机是指在计算机软件的

开发和维护过程中所遇到的一系列严重问题。)主要包括三个方面的问题:一是如何开发软
件,怎样满足对软件增长的需求;二是如何维护数量不断膨胀的已有软件;三是如何大幅
度提高软件生产率已成为软件界的众矢之的和当务之急,为此,探索计算机的软件设计方
法有助予人们更好地开发软件。
  

2.几种典型的软件设计方法

  

2.1 模块化设计法

  模块化设计的基本概念是:
  (

1)每个模块完成一个单一和相对独立的功能;

  (

2)每个模块应只有一个入口和一个出口, 每个模块应尽可能小;

  (

3)上层模块只调用下层模块;

  (

4)整个系统由模块构成。

  为降低软件系统的复杂性

, 模块化没计采用分而治之的思想, 将问题分解为若干子问题, 

对子问题再作进一步分解。直至能用模块实现为止

, 这样自顶向下逐级分解, 形成一个层次的

模块结构。模块可见部分是它的接口

, 而其内部的数据和操作细节则对外部是隐藏的。模块可

以由多人同时编程、单独测试和最后集成。模块化设计提高了程序的可读性和可修改性。
  在模块化设计中,按什么思想准则和方法来分解系统和划分模块,就产生不同的设计
方法。
  

2.2 结构化分析与设计方法(SA/SD)

  结构化分析与设计方法的基本思想是自顶向下按功能的不同划分不同的子系统,然后
对每个子系统按照逐步求精的方法求得问题解,将软件开发过程看作是软件生命周期,建
立的是瀑布模型。
  其基本步骤为:分析一设计一编码一测试一运行/维护。
  这种方法的主要优点是应用时间长、简单、直观、易于接受,并且已有了一定的应用基础
并开辟了应用市场。局限性主要在于功能经常变化,难于适应变化要求;后期发现的错误维
护代价太高;不支持功能复用,造成大量的代码冗余。
  

2.3 数据流设计法

  数据流没计法在设计过程中是面向数据流信息的。它以分析阶段使用结构化分析产生的
数据流图(

DFD)为基础,检查 DFD 中信息流的特征,确定信息流是变换型还是事物型,

然后采用变换分析或事物分析来导出相应的软件结构。
  数据流设计法提出了两个定性准则来评价软件结构中模块的独立性,即内聚和藕合,