今天,软件遍布这个世界,对这个社会的经济和文化产生了深远的影响。如何以经济有效的方法开发高质量的软件是人们长期以来一直努力研究的问题。而软件工程就是为了解决开发成本效益和软件质量的问题产生的。
一.软件:
- 软件的特性
(1) 软件是复杂的。(2)软件是不可见的。(3)软件是不断变化的。没有任何变化的软件一定是没有用的。
- 软件的发展
(1) 第一阶段:20世纪50-60年代,计算机主要应用是快速计算出现了Algol,Fortune等编程语言为标志的算法技术。
(2) 第二阶段:20世纪70年代,出现了pascal,cobol等编程语言和关系数据库管理系统为标志的结构化软件技术。
(3) 第三阶段:20世纪80年代,软件工程开发环境case及其相应的集成工具大量涌现,出现了著名的软件工作量估计COCOMO模型、软件过程改进模型CMM等。后期,以Smalltalk、C++等为代表的面相对象与技术重新崛起。
(4) 第四阶段:20世纪90年代至今,internet技术的迅速发展使软件系统从封闭走向开放。
- 软件危机
(1) 软件开发的成本和进度难以准确估计,延迟交付甚至取消项目的现象屡见不鲜。
(2) 软件存在着错误多,性能低,不可靠,不安全等质量问题。
(3) 软件成本在计算机系统的整个成本中所占比例越来越大。
(4) 软件维护极其困难,而且很难适应不断变化的客户需求和使用环境。
二.软件工程
定义:①将系统性的 ,规范性的,可定量的方法应用于软件的开发、运行和维护,即将工程化应用到软件上;②对①中所述方法的研究。
软件工程包括两个主要内容:1.软件工程是工程概念在软件领域里的一个特定应用。2.软件工程涉及软件产品的所有环节。
- 软件工程的三要素:过程、方法和工具
- 软件质量的最基本特征:可靠性,正确性,有效性。
- 软件工程的方法:①传统的软件开发方法:主要以功能分析和数据分析为基础的结构化方法。②面向对象方法。
- 计算机辅助软件工程CASE:CASE系统可分为工具、工作台和环境3个层次。
- 当前面临的主要挑战:遗留的系统问题;高可信软件开发的要求;软件开发方式的变化。
三.软件工程知识体系(SWEBO)
组成
软件需要;软件设计;软件构造;软件测试;软件维护;软件配置管理;软件工程管理;软件工程过程;软件工程工具与方法;软件质量。
四.软件工程职业道德规范
①IEEE/ACM职业道德规范
②软件工程人员的职业道德建设
- 遵纪守法是软件工程人员应具备的基本素质。
- 服务客户、造福社会是软件工程人员必须牢固树立的观念。
- 诚实信用是软件工程人员职业道德的核心所在。