软件
1983年IEEE这么定义:软件是计算机程序、方法、规则、相关的文档资料和在计算机上运行程序所必需的数据。
软件工程
1983年IEEE这么定义:软件工程是软件开发、运行、维护和修复软件的系统方法。
1993年IEEE这么定义:软件工程是:1)把系统化的、规范的、可度量的途径应用于软件开发、运行和维护的过程,也就是把工程化应用于软件中;
2)研究1)中提到的途径。
软件危机
指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
产生原因:一是和软件本身特点有关,另一方面也和软件开发与维护的方法不正确有关。
解决途径:从技术(方法和工具)上和管理上努力。
软件工程七大原理
1、用分阶段的生命周期计划严格管理
2、坚持进行阶段评审
3、实行严格的产品控制
4、采用现代程序设计技术
5、结果应能清楚地审查
6、开发小组的人员应该少而精
7、承认不断改进软件实践的必要性
软件工程三要素
方法、工具、过程
使用最广泛的软件工程方法学
传统方法学
又称生命周期方法学或结构化范型(范型与方法学在软件工程同义)。
特征:要等到前一阶段完成,后一阶段才开始。
缺点:当软件的需求随着时间的变化时,不适合用此范型,往往不成功。这种方法数据和方法想脱离。
面向对象方法学
又称面向对象范型
特征:面向对象方法=对象+类+继承+用消息通信
扩展:如果只有对象和消息,只能说是基于对象的方法(如javascript),如果只有对象、类、消息只能说是基于类的方法,当满足公式时才能说是面向对象的方法。
优点:将数据和行为结合在了一起。
扩展
软件开发设计过程从抽象层次上分析,往往是从行为域开始,以低层的结构域(结构化方法)结束。