软件工程
字数
1217 字
阅读时间
5 分钟
一、软件工程诞生的背景:软件危机
表现
- 许多软件项目的技术进步无法满足用户的进一步需求
- 许多软件项目超出预算和时间安排
造成大量已有软件难以维护
原因
- 客观原因:软件本身特点,如软件规模和软件开发难度的增加
- 主观原因:不正确的开发方法
二、软件工程的出现
标志事件
- 1968年,北大西洋公约组织(NATO)的德国格密斯学术会议正式提出了“软件工程”这一概念,即:用工程化的方法来进行软件开发
软件工程化
定义
- 工程:有序化、可控制、可管理
- 涉及的三要素:方法、技术、管理
- 四个核心步骤:计划、实施、反馈、优化
注意区分工程的三要素和软件工程的三要素
软件工程化的难度
- 结构复杂
- 目标难以定量
- 演化性
三、软件工程的定义
软件工程目前没有统一、一致的定义
- Fritz Bauer(“软件工程”的概念提出者):软件工程是建立和使用一套合理的工程原则,以便获得经济的软件,这种软件是可靠的,可以在实际机器上高效地运行
- IEEE:软件工程是:
- 将系统化的、严格约束的、可量化的方法应用于软件的开发、运行和维护,即:将工程化应用于软件
- 对第一点所提到的方法的研究
- 计算机科学百科全书:软件工程是应用计算机科学、数学及管理科学等原理,开发软件的工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本为目的
四、软件工程的框架
- 一图示例:
软件工程的目标/目的
- 生产具有正确性、可用性以及开销合宜的产品
- 正确性:产品实现相应功能规约的程度
- 可用性:软件的基本结构、实现及其文档为用户可用的程度
- 开销合宜:软件开发与运行的总代价满足用户要求的程度
软件生存周期
- 核心步骤:系统工程
需求分析 设计 实现 测试 运行与维护 - 系统工程:将基于计算机系统的功能、性能等要求分配到各系统元素中
- 需求分析:确定软件的功能、性能、数据、界面等要求
- 设计:概要设计和详细设计
- 实现:用某种程序设计语言将设计的结果转换为可执行的代码程序
- 测试:发现并纠正软件中的错误和缺陷
- 运行与维护:在软件运行期间,对软件进行必要的修改
软件工程原则[1]
- 围绕工程设计、工程支持和工程管理
- 要选用适宜的开发模型
- 采用合适的设计方法
- 提供高质量的工程支持
- 重视软件工程的管理
软件工程的核心三大要素
- 方法
- 工具
- 过程
软件过程
定义
- 软件生存周期所涉及到的一系列相关过程
- 软件过程技术的目标:
- 通过工程化、标准化和形式化的方法管理软件的开发过程,从而改变基于手工作坊的软件生产方式,实现大规模的软件生产
软件方法
定义
- 提供如何构造软件的技术
- 结构化开发方法
- 面向数据结构的开发方法
- 面向对象开发方法
- 基于构件的软件开发方法
- 敏捷软件开发
软件工具
定义
- 用来辅助计算机软件的开发、运行、维护、管理、支持过程中的活动或任务的软件
- 称呼:计算机辅助软件工程(Computer Aided Software Engineering)简称CASE
分类
- 开发过程工具
- 维护过程工具
- 管理过程工具
- 应用类工具
- 具体一图示例:
贡献者
freeway348
文件历史
重点框架 ↩︎