2.软件工程的起源和概念

2.1 软件工程的起源

(1)早期计算机程序

在1946年计算机刚诞生时,人们采用机器码编制程序,根本没有独立的软件的概念。

机器码指令只是为了驱动计算机硬件工作,就像人们调节电视机、录像机、洗衣机等家用电器的按钮一样。

1947年,冯诺依曼首先提出用流程图描述计算机的运行过程,才使人们认识到程序设计是完全不同于硬件研制的另一项工作。从此以后,软件的开发和研究才开始独立地进行。

(2)现在人们认为

在信息产业中,微电子是基础,计算机和网络是载体,软件是核心

2.2 软件开发的三个阶段

(1)个人程序时期(1947年-1950年代末)

  • 这一时期特点是硬件价格非常昂贵,软件完全作为硬件的附属
  • 硬件致力于执行功能单一的程序
  • 应用大多集中在科学计算方面
  • 软件是为了某个具体的应用和特定的硬件而定制
  • 程序设计完全凭程序员的经验和技艺以个人或小组方式进行

在这个时期,程序员使用的开发语言主要是机器语言和汇编语言,负责从程序的开卡、运行和维护的全过程,这是一种私人化的软件环境。

 

(2)软件作坊时期(1960年代初-1960年代末)

随着以计算机为基础的系统应用范围的不断扩大,以及系统数量的不断增长,个体生产方式已经不能适应社会发展的需求,而是需要多人分工合作,共同完成一个程序的编制,需要对项目开发进行管理,即所谓“作坊式生产方式”。

出现了若干高级程序语言

(3)软件工程时期(1970年代初至今)

计算机应用领域的进一步扩大,软件的规模和复杂性也不断增加

在软件开发领域出现了“软件危机”:

  软件质量差,可靠性难以保证

  成本难以控制,很少有在预算内完成的

  开发进步难以把握,周期长

  可维护性较差,维护人员和费用增加

2.3 软件工程的定义

软件工程概念的提出:

  1968年,NATO在联邦德国举行的关于软件开发的会议上,首次提出了软件工程的术语,标志着软件工程作为一门学科的正式出现,至今已有40年的历史。

其目的是倡导以工程的原理、原则和方法进行软件开发,以解决软件危机。

计算机百科全书上的软件工程定义:

  应用计算机科学、数学及管理科学等原理,以工程化方法制作软件的工程。它借鉴传统工程的原则、方法,创建软件以达到提高质量,降低成本的目的。

  其中,计算机科学、数学用于构造模型与算法,工程科学用于指定规范、设计范型、评估成本 及确定权衡,管理科学用于计划、资源、质量、成本等管理。

  软件工程是一门指导计算机软件开发和维护的工程学科。软件工程师一门交叉性学科。

首次NATO会议上的软件工程定义:

  软件工程是用来建立和使用合理的工程原则,以经济地获取可靠的、且在真实机器上可高效工作的软件。

IEEE中软件工程定义:

  (1)将系统化的、规范的、可量化的方法应用到软件的开发、运行及维护中,即将工程化方法应用于软件;

  (2)在(1)中所述方法的研究。

原文地址:https://www.cnblogs.com/jasonwu/p/10735328.html