第1章 概论

  • 软件=程序+软件工程

  • 软件是可以运行在计算机及电子设备中 的指令和数据的有序集合。软件形式:系统软件、应用软件、恶意软件等。

  • 软件工程是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。

  • 软件开发过程中的五个难题:

    • 复杂性:软件可以说是人类创造的最复杂的系统类型,软件的各个模块之间有各种显性或隐性的依赖关系,随着系统的成长和模块的增多,这些关系的数量往往以几何级数的速度增长。
    • 不可见性:工程师是“看”不到自己的源代码如 何具体地在用户的机器上被执行的。几乎无法完整重现到底程序出现了什么问题。
    • 易变性:人们自然地期待软件能在下面两种情况下“改变”: a) 让软件做新的事情;b) 让软件适应新的硬件。
    • 服从性:软件不能独立存在,它总是要运行在硬件上面,它要服从系统中其他组成部分的要求,它还要服从用户的要求、行业系统的要求。
    • 非连续性:输入上很小的变化,会引起输出上极大的变化。
  • 软件的生命周期:需求分析 程序理解 软件构建、配置管理 软件设计 软件测试 软件维护

  • 计算机科学和软件工程的不同侧重点

    计算机理论的进展会帮助软件工程;软件工程的进展会帮助计算机科学家做更多的实验和探索。

  • 软件工程的一个重要任务,就是要决定一个软件在什么时候能“足够好”。
    1.研发出符合用户需求的软件说明;
    2.通过一定的软件流程,在预计的时间内发布“足够好”的软件说明;
    3.通过数据和其他方式展现所开发的软件是可以维护和继续发展的说明。

 posted on 2019-11-04 10:29  捞起月亮的渔民  阅读(119)  评论(0编辑  收藏  举报