软件工程学科的诞生

软件工程学科的诞生

软件工程学科的产生背景:

        计算机发展到今天,已经历经四个不同的发展阶段,但是,人们还没有彻底摆脱“软件

危机”的困扰,软件已经成为限制计算机系统发展的瓶颈。为了更加有效地开发和维护软件,

软件工作者在20世纪60年代后期认真研究消除软件危机的途径,从而逐渐形成一门新兴的

工程学科——软件工程学。由此软件工程学科就诞生了!

软件工程学科的解决软件危机问题的策略与途径:

        我们常说的“软件危机”是指在计算机软件的开发和维护过程中所遇到的一系列严重问

题。软件危机有以下典型的表现:

        1:对软件开发成本和进度的估计不准确。

        2:用户对“已完成的”软件系统不满意的现象经常发生。

        3:软件产品的质量不可靠。

        4:软件常常是不可维护的。

        5:软件通常没有适当的文档资料。

        6:软件成本在计算机系统总成本中所占的比例逐年上升。

        7:软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。

要想解决软件危机,就得知道是什么原因造成的软件危机,从而表现出以上特征。经过

分析,产生软件危机的主要原因是在软件开发和维护上的错误。对用户要求没有完整准确的

认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。另一方面是软件开发

初期忽视文档,数据等软件配置,造成软件在后期的维护上需要花费很大的代价。

了解了软件危机的产生原因,那么就可以对症下药,研究出消除软件危机的策略和途径。

为了消除软件危机,首先应该对计算机软件有一个正确的认识。应该彻底消除在计算机系统

早期发展阶段形成的“软件就是程序”的错误观念。一个软件必须有一个完整的配置组成,

事实上,软件是程序、方法、规则、相关文档资料的完整集合。更重要的是,必须充分认识

到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协

同配合、共同完成的工程项目。必须充分吸取和借鉴人类长期以来从事各种工程项目所积累

的行之有效的原理、概念、技术和方法,特别要吸取几十年来人类从事计算机硬件研究和开

发的经验教训。必须推广使用在时间中总结出来的开发软件的成功的技术和方法,并且研究

探索更好更有效地技术和方法。尽快消除在计算机系统早期发展阶段形成的一些错误概念

和做法。应该开发和使用更好的软件工具。正如机械工具可以“放大”人类的体力一样,软

件工具可以“人类”的智力。在软件开发的每个阶段都有许多繁琐重复的工作需要做,在适

当的软件工具辅助下,开发人员可以吧这类工作做得既快又好。如果把各个阶段使用的软件

工具有机的集合成一个整体,支持软件开发的全过程,则成为软件工程支撑环境。总之,

为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。

软件工程学科的研究内容:

软件工程主要研究软件开发技术和管理技术。

        软件工程是知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术

和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的

技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

软件工程的七条基本原理:

       (1)用分阶段的生存周期计划进行严格的管理。

       (2)坚持进行阶段评审。

       (3)实行严格的产品控制。

  (4)采用现代程序设计技术。

  (5)软件工程结果应能清楚地审查。

  (6)开发小组的人员应该少而精。

  (7)承认不断改进软件工程实践的必要性。

软件生命周期由软件定义、软件开发和运行维护3 个时期组成。

软件定义时期包含问题定义、可行性研究、需求分析。

软件开发时期包含总体设计、详细设计、编码和单元测试、综合测试。

软件维护时期包含软件的各项维护。

        通常把在软件生命周期全过程中使用的一整套技术方法的集合成为方法学。软件工程

方法学包含3 个要素:方法、工具、和过程。其中,方法是完成软件开发的各项任务的技术

方法,回答怎样做的问题,目前使用最广泛的软件工程方法学分别是传统方法学和面向对

象方法学;工具是为运用方法而提供的自动或半自动的软件工程支撑环境;过程是为了获得

高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

传统方法学

又称生命周期方法学或结构化范型。

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

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

和方法想脱离。

面向对象方法学

又称面向对象范型

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

扩展:如果只有对象和消息,只能说是基于对象的方法(如javascript),如果只有对象、

类、消息只能说是基于类的方法,当满足公式时才能说是面向对象的方法。

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

所谓管理就是通过计划,组织和控制等一系列活动,合理地配置和使用各种资源,以达

到既定目标的过程。

总结:

        经过对第一章内容的学习,我理解了软件工程学科产生的原因、如何才能避免软件危机、

以及软件工程学科的研究内容,这让我对我的专业又有了新的认识——不仅仅只是编代码。

我们应该在软件开发技术和管理能力上综合提升自己,这才是我们学习软件工程专业的主要

目的。


猜你喜欢

转载自blog.csdn.net/weixin_38214171/article/details/79780627