软件工程概述
软件相比于硬件的特点
- 不可见性
- 大量脑力劳动
- 使用过程中不会磨损
- 依赖于特定的计算机系统环境
- 有可复用性
软件危机与软件工程的起源
起源
20世纪60年代中期以前:通用的硬件已经相当普遍,但是软件是对每个具体的应用专门编写的很不方便。
到了20世纪70年代中期(第二代),计算机技术有了很大的进步。多道程序,多用户系统引入人机交互系统新概念,实时系统等。特征是“软件作坊”
“软件危机”就开始出现,1968北大西洋公约组织通过会议提出了“软件工程”,这门学科就此诞生。
软件危机介绍
软件危机的问题:
- 如何开发软件,一满足对软件日益增长的需求
- 如何维护数量不断膨胀的已有软件
产生的原因:
- 软件本身特点
- 软件开发与维护的方法不正确
消除危机的途径:
软件工程
概括:
软件工程是知道计算机软件开发和维护的工程学科
概念:
软件工程是指利用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题,指导计算机软件开发和维和的工程学科
软件工程原理:
是指软件工程学科在发展过程中遵循的基本原则和普遍规律
基本原则:
- 讲软件的生命周期分为多个阶段,实行严格的项目管理
- 坚持评审制度,以确保软件产品的质量
- 实施严格的产品控制,以适应软件规格的变更
- 采用现代化程序设计技术
- 开发的软件产品能够清楚地被审查
- 合理安排软件开发小组人员
- 不断改进软件工程实践
软件工程方法
软件工程方法学包括三个要素:方法、工具和过程
目前使用最广泛的软件工程方法分别是传统方法学和**面向对象方法学*
软件工程包含的领域
IEEE在2004年发布的《软件工程知识体系指南》中将软件工程体系划分为10个知识领域:
- 软件需求(software requirements)
- 软件设计(software design)
- 软件构建(software construction)
- 软件测试(software testing)
- 软件维护(software maintenance)
- 软件配置管理(software configuration management)
- 软件工程管理(software engineering management)
- 软件工程过程(software engineering process)
- 软禁工程工具和方法(software engineering tools and methods)
- 软件质量(software quality)