软件

1983年IEEE这么定义:软件是计算机程序、方法、规则、相关的文档资料和在计算机上运行程序所必需的数据。

软件工程

1983年IEEE这么定义:软件工程是软件开发、运行、维护和修复软件的系统方法。

1993年IEEE这么定义:软件工程是:1)把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;

                 2)研究1)中提到的途径。

软件危机

指在计算机软件的开发和维护过程中所遇到的一系列严重问题。

产生原因:一是和软件本身特点有关,另一方面也和软件开发与维护的方法不正确有关。

解决途径:从技术(方法和工具)上和管理上努力。

软件工程七大原理

1、用分阶段的生命周期计划严格管理

2、坚持进行阶段评审

3、实行严格的产品控制

4、采用现代程序设计技术

5、结果应能清楚地审查

6、开发小组的人员应该少而精

7、承认不断改进软件实践的必要性

软件工程三要素

  方法、工具、过程

使用最广泛的软件工程方法学

传统方法学

又称生命周期方法学或结构化范型(范型与方法学在软件工程同义)。

特征:要等到前一阶段完成,后一阶段才开始。

缺点:当软件的需求随着时间的变化时,不适合用此范型,往往不成功。这种方法数据和方法想脱离。

面向对象方法学

又称面向对象范型

特征:面向对象方法=对象+类+继承+用消息通信

扩展:如果只有对象和消息,只能说是基于对象的方法(如javascript),如果只有对象、类、消息只能说是基于类的方法,当满足公式时才能说是面向对象的方法。

优点:将数据和行为结合在了一起。

扩展

软件开发设计过程从抽象层次上分析,往往是从行为域开始,以低层的结构域(结构化方法)结束。