Skip to content

软件工程

字数
1217 字
阅读时间
5 分钟

一、软件工程诞生的背景:软件危机

表现

  • 许多软件项目的技术进步无法满足用户的进一步需求
  • 许多软件项目超出预算和时间安排 造成大量已有软件难以维护

原因

  • 客观原因:软件本身特点,如软件规模和软件开发难度的增加
  • 主观原因:不正确的开发方法

二、软件工程的出现

标志事件

  • 1968年,北大西洋公约组织(NATO)的德国格密斯学术会议正式提出了“软件工程”这一概念,即:用工程化的方法来进行软件开发

软件工程化

定义
  • 工程:有序化、可控制、可管理
    • 涉及的三要素:方法、技术、管理
  • 四个核心步骤:计划、实施、反馈、优化
注意区分工程的三要素和软件工程的三要素

软件工程化的难度

  1. 结构复杂
  2. 目标难以定量
  3. 演化性

三、软件工程的定义

软件工程目前没有统一、一致的定义
  • Fritz Bauer(“软件工程”的概念提出者):软件工程是建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行
  • IEEE:软件工程是:
    1. 系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即:将工程化应用于软件
    2. 对第一点所提到的方法的研究
  • 计算机科学百科全书:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的

四、软件工程的框架

  • 一图示例:

软件工程的目标/目的

  • 生产具有正确性、可用性以及开销合宜的产品
    • 正确性:产品实现相应功能规约的程度
    • 可用性:软件的基本结构、实现及其文档为用户可用的程度
    • 开销合宜:软件开发与运行的总代价满足用户要求的程度

软件生存周期

  • 核心步骤:系统工程 需求分析 设计 实现 测试 运行与维护
    • 系统工程:将基于计算机系统的功能、性能等要求分配到各系统元素中
    • 需求分析:确定软件的功能、性能、数据、界面等要求
    • 设计:概要设计和详细设计
    • 实现:用某种程序设计语言将设计的结果转换为可执行的代码程序
    • 测试:发现并纠正软件中的错误和缺陷
    • 运行与维护:在软件运行期间,对软件进行必要的修改

软件工程原则[1]

  • 围绕工程设计、工程支持和工程管理
    1. 要选用适宜的开发模型
    2. 采用合适的设计方法
    3. 提供高质量的工程支持
    4. 重视软件工程的管理

软件工程的核心三大要素

  1. 方法
  2. 工具
  3. 过程

软件过程

定义
  • 软件生存周期所涉及到的一系列相关过程
  • 软件过程技术的目标:
    • 通过工程化、标准化和形式化的方法管理软件的开发过程,从而改变基于手工作坊的软件生产方式,实现大规模的软件生产

软件方法

定义
  • 提供如何构造软件的技术
    1. 结构化开发方法
    2. 面向数据结构的开发方法
    3. 面向对象开发方法
    4. 基于构件的软件开发方法
    5. 敏捷软件开发

软件工具

定义
  • 用来辅助计算机软件的开发、运行、维护、管理、支持过程中的活动或任务的软件
    • 称呼:计算机辅助软件工程(Computer Aided Software Engineering)简称CASE
分类
  1. 开发过程工具
  2. 维护过程工具
  3. 管理过程工具
  4. 应用类工具
  • 具体一图示例:

贡献者

The avatar of contributor named as freeway348 freeway348

文件历史


  1. 重点框架 ↩︎

撰写