三个阶段:
(1)程序设计阶段[1946-1956];(2)程序系统阶段[1956-1968];(3)软件工程阶段[1968-至今]
软件危机☞计算机软件的开发和维护过程中遇到的一系列严重问题。
1968年,北大西洋公约组织,联邦德国,“软件危机”概念的题出
软件危机的表现:
软件危机的原因是多方面的,根本原因在于软件本身所具有的复杂性,主要体现在:
软件工程基本思想:用现代工程的概念、原理、技术和方法来进行软件的开发、管理和维护。
IEEE对于软件工程的定义:
软件工程是
(1)运用系统的、规范的和可定量的方法来开发、运行和维护软件,即将工程化应用于软件;
(2)对(1)中涉及方法的研究
软件工程三要素:方法、工具和过程。
软件工程的目标是成功地生产具有正确性、可用性以及开销合宜的产品。
软件工程研究的内容:软件工程过程、软件生存周期、软件开发模型、软件开发方法、软件工具、软件开发环境、计算机辅助软件工程、软件工程经济学等。
形式化方法的基本含义:借助数学的方法来研究计算机科学中的有关问题。
从广义角度,形式化方法是软件开发过程中分析、设计及实现的系统工程方法。狭义地,形式化方法是软件规格和验证的方法。因此形式化方法氛围形式化规格和验证。
将形式化方法用于软件开发的主要目的是保证软件的正确性。采用了软件生命周期的变换模型。
形式化方法软件开发实际上就是把现实世界的需求反映成软件的模型化过程,涉及到三方面的系统模型:现实世界、模型表示和计算机系统。开发过程中的任务依次分为模型获取、模型验证、模型变换。
以上三个活动分别对应如下三方面的活动:形式化规格、形式化验证、程序求精(Refinement)
形式化方法的研究方向:
形式化方法缺陷:
形式化方法应用到具体的软件项目时候,需要考虑的因素:应用的类型,规模和结构,类型的选择,形式化级别,使用范围,工具。