文章目录
软件工程的起源早期计算机程序软件开发的三个阶段(1)个人程序时期(1947-1950)(2)软件作坊时期(1960)(3)软件工程时期(1970-至今)软件工程的定义模型(model)何谓模型软件工程框架目标活动软件工程的起源
早期计算机程序
在1946年计算机刚诞生时,人们采用机器编码程序,根本没有独立的软件的概念。机器码指令只是为了驱动计算机硬件工程,就像人们调节电视机,录像机,洗衣机等家用电器的按钮一样。1947年,冯诺依曼首先提出用流程图描述计算机的运行过程,才使人们认识到程序设计是完全不同于硬件研制的另一项工作,从此以后,软件的开发和研究才逐渐独立地进行。现在人们认为,在信息产业中,微电子是基础,计算机网络是再起,软件是核心。
软件开发的三个阶段
(1)个人程序时期(1947-1950)
在这个时期,程序员使用的开发语言主要是机器语言和汇编语言,负责从程序的开发,运行和维护的全过程,这是一种私人化的软件环境。不同层次水平的程序员,可以编写出不同性能的程序。比较体现个人英雄主义。
(2)软件作坊时期(1960)
随着以计算机为基础的系统应用范围不断扩大,以及系统数量的不断增长,个体生产方式已经不能适应社会发展的需求,而是需要多人分工合作,共同完成一个程序的编制,需要对项目开发进行管理,即所谓“作坊式生产方式”。这是一个创新性的举措,可以有效地保护客户的投资;同时,也意味着软件不必依附于特定的硬件,可以作为独立的产品存在。
(3)软件工程时期(1970-至今)
随着计算机应用领域的进一步扩大,软件的规模和复杂性也在不断增加。在软件开发领域的地平线上出现了一朵乌云:
软件质量差,可靠性难以保证成本难以控制,很少有在预算内完成的开发进度难以把控,周期拖得很长可维护性较差,维护人员和费用不断增加
这就是所谓的软件危机 。
软件工程概念的提出:其目的是倡导以工程的原理、原则和方法进行软件开发,以解决软件危机。
软件工程的定义
计算机百科全书上的软件工程定义:
应用计算机科学,数学以及管理科学等原理,以工程化的方法制作软件的工程。它借鉴传统工程的原则,方法,创建软件以达到提高质量,降低成本的目的。其中,计算机科学,数学用于构造模型与算法,工程科学用于制定规范,设计范型、评估成本以及确定权衡,管理科学用于计划、资源、质量、成本等管理软件工程是一门指导计算机软件开发和维护的工程学科,软件工程是一门交叉性学科。
软件开发本质示意:
不同抽象层术语之间的“映射”不同抽象层处理逻辑之间的“映射”
模型(model)
何谓模型
模型是在特定意图下所确定的角度和抽象层次上对物理系统的描述,通常包含对该系统边界的描述,给出系统内各模型元素以及他们之间的语义关系。
分层的基本动机是控制开发的复杂性,一个抽象层是由一组确定的术语定义的。
软件工程框架
软件工程可定义为三元组:目标,原则,活动
(1)给出了软件所涉及软件工程的工程要素
(2)给出了各要素之间的关系
(3)给出了软件工程学科所研究的主要内容
目标
生产具有正确性、可用性以及开销合宜的产品
活动
生产一个最终满足需求且达到工程目标的软件产品所需要的步骤
主要包括需求、设计、实现、确认和支持等活动