computer science

software engineering

软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

  1. 定义

    软件工程是开发、运行、维护和修复软件的系统方法。强调在软件开发过程中需要应用工程化原则的重要性。

  2. 软件危机的具体表现

    ①软件开发的进度难以控制,完成期限一再拖延的现象。

    ②软件成本严重超标。

    ③软件需求在开发初期不明确,导致矛盾在后期集中暴露从而对整个开发过程带来灾难性的后果。

    ④由于缺乏完整规范的资料,加之软件测试不充分,从而造成软件质量低下,运行中出现大量问题。

  3. 软件生存周期

    1. 制订计划
    2. 需求分析
    3. 软件设计
    4. 程序编码
    5. 软件测试
    6. 运行和维护
  4. 软件工程方法

    • 结构化方法

      结构化方法是在1978年提出,也称为面向功能的软件开发方法或面向数据流的软件开发方法。结构化程序设计方法的产生和发展形成了现代软件工程的基础,其基本思想是采用自上而下、逐步求精的设计方法和单入口单出口的控制结构。

    • 模块化方法

      在自上而下、逐步细化的过程中,把复杂问题分解成一个个简单问题的最基本方法就是模块化。在程序设计中是用子程序来实现程序模块的,子程序是程序设计的一个里程碑。模块化程序设计是对于自上而下、逐步求精方法的一个强有力的补充。

    • 面向数据结构方法

      面向数据结构开发的基本思想是:从目标系统的输入/输出数据结构入手,导出程序的基本框架结构,在此基础上对细节进行设计,得到完整的程序结构图。对输入和输出数据结构明确的中小型系统特别有效。

    • 面向对象方法

      面向对象方法是将数据和对数据的操作紧密地结合起来的方法,它的出发点和基本原则是尽可能地模拟现实世界中人类的思维方式,使开发软件的方法和过程尽可能地接近人类解决现实问题的方法和过程,从而使描述问题的问题空间与实现解法的解空间在结构上尽可能一致。面向对象方法已成为当前软件工程学中的主流方法。

    • 基于构件的软件开发方法

      基于构件的软件开发方法(CBSD)是一种基于预先开发好的软件构件,通过将其集成组装的方式来开发软件系统的方法。又称基于构件的软件工程,它是软件复用的实现方式之一。其根本目的仍然是为了提高软件开发的质量和效率。提供了一种自底向上的、基于预先定制包装好的类属元素(构件)来构作应用系统的途径。

    说到底就是组件化、封装和重用。