注册  登录退出
服务热线

029-68224489

软件开发方法的历史及发展

发布时间:2013-01-05 作者:admin

       软件工程的目标在给定成本、 进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用、可适应性、可 移植性、可追踪性和可互操作性并且满足用户需求的软件产品。追求这些目标有助于提高软件产品的质量和开发效率,减少维护的困难。

(1)可修改性(modifiablity)。容许对系统进行修改而不增加原系统的复杂性。它支持软件的调试与维护,是一个难以达到的目标。

(2)有效性(efficiency)。软件系统能最有效地利用计算机的时间资源和空间资源。 各种计算机软件无不将系统的时/空开销作为衡量 软件质量的一项重要技术指标。很多场合,在追求时间有效性和空间有效性方面会发生矛盾,这时不得不牺牲时间 效率换取空间有效性或 牺牲空间效率换取时间有效性。时/空折衷是经常出现的。有经验的软件设计人员会巧妙地利用折衷概念,在具体的物理环境中实现用户的 需求和自己的设计。

(3)可靠性(reliability)。能防止因概念、设计和结构等方面的不完善造成的软件 系统失效,具有挽回因操作不当造成软件系统失效 的能力。对于实时嵌入式计算机系统,可靠性是一个非常重要的目标。因 为软件要实时地控制一个物理过程,如宇宙飞船的导航、核电站 的运行,等等。如果可靠 性得不到保证,一旦出现问题可能是灾难性的,后果将不堪设想。因此在软件开发、编码和测试过程中,必须将 可靠性放在重要地位。

(4)可理解性(understandability)。系统具有清晰的结构,能直接反映问题 的需求。可理解性有助于控制软件系统的复杂性,并支持 软件的维护、移植或重用。

(5)可维护性(maintainability)。软件产品交付用户使用后,能够对它进行修 改,以便改正潜伏的错误,改进性能和其他属性,使软 件产品适应环境的变化,等等。由于软件是逻辑产品,只要用户 需要,它可以无限期的使用下去,因此软件维护是不可避免的。软件维护 费用在软件开发费用中占有很大的比重。可维护性是软件工程中一项十分重要的目标。软件 的可理解性和可修改性有利于软件的可维护性 。

(6)可重用性(reusebility)。概念或功能相对独立的一个或一组相关模块定义为一 个软部件。软部件可以在多种场合应用的程度称为 部件的可重用性。可重用的软部件有的可以不加修改直接使用,有的需要修改后再用。可重用软部件应具有清晰的 结构和注解,应具有正 确的编码和较低的时/空开销。各种可重用软部件还可以按照某种规则存放在软部件库中,供软件工程师选用。可重用性有助于提高软件产 品的质 量和开发效率、有助于降低软件的开发和维护费用。从更广泛的意义上理解,软件工程的可重用性还应该包括:应用项目的重用, 规格说明(也称为规约)的重用, 设计的重用,概念和方法的重用,等等。一般来说,重用的层次越高,带来的效益也就越大。

(7)可适应性(adaptability)。软件在不同的系统约束条件下,使用户需求得到满 足的难易程度。适应性强的软件应采用广为流行的 程序设计语言编码,在广为流行的操作系统环境中运行,采用标 准的术语和格式书写文 档。适应性强的软件较容易推广使用。

(8)可移植性(portability)。软件从一个计算机系统或环境搬到 另一个计算机系统或环境的难易程度。为了获得比较高的可移植性, 在软件设计过程中通常采用通用的程序设计语言和运 行环境支撑。对依赖于计算机系统的低级(物理)特征部分,如编译系统的目标代码 生成,应相对独立、集中。这样,与处理机无关的部分就可以移植到其他系统上使 用。可移植性支持软件的可重用性和可适应性。

(9)可追踪性(tracebility)。根据软件需求对软件设计、程序进行正向追踪,或根 据程序、软件设计对软件需求进行逆向追踪的能力 。软件可追踪性依赖于软件开发各个阶段文档和程序的完整性、一致性和可理解性。降低系统的复杂性会提高软件 的可追踪性。软件在测 试或维护过程中或程序在执行期间出现问题时,应记录程序事件或有关模块中的全部或部分指令现场,以便分析、追踪产生问题的因果关 系。

(10)可互操作性(interoperability)。多个软件元素相互通信并协同完成任 务的能力。为了实现可互操作性,软件开发通常要遵循某 种标准,支持折衷标准的环境将为软件元素之间的可互操作提供便利。可互操作性在分布计算环境下尤为重 要。 为了达到上述的目标,自从计算机诞生以来的60多年,无数的计算机工程师在努力改进开法方法和软件开发语言,下表列出了几代开发方 法的对比:

  • 序号

    开法方法

    开始时间

    比上一代的优点

    和下一代比的缺点

    代表性产品

    1

    面向机器

    1946

    用机器动作的方法去解决问题

    上述工程

    机器语言,二进制指令。汇编语言

    2

    面向过程

    容易编写

    数据和代码分离

    c,pascal,fortran

    COBOL,basic等

    3

    面向对象

    60年代末

    数据和代码集中

    C++,java

    4

    面向模型

    2004

    能完成全部软件工程目标

    MDA

 

客服热线: 029-68224489
联系我们 | 关于赛斐 | 团队博客
Copyright © 西安赛斐软件科技有限公司版权所有,未经授权,严禁非法复制或镜像 | 陕ICP备11007392号-1
推荐1024x768的分辨率,IE6+,firefox,Google Chrome,opera或者使用其内核的浏览器显示效果更佳!