软件工程:理论、方法与实践 绪论读后感

  第1章概括介绍软件工程的历史发展和基本原理,讨论IEEE和ACM最新提出的软件工程知识体系和软件工程职业道德规范。在第一节里我们把软件分为了通用软件与定制软件两种,随后我们了解了软件的特性知道它是复杂的,不可见的,变化及定制的。然后了解了软件的发展与危机。

  在第二节里,我们知道了软件工程的两种概念,以过程,方法和工具三要素组成,以关注软件质量为目标,即开发出高品质软件。而CASE系统可以分为工具,工作台和环境三个层次,但是在现在的挑战也有许多,如:1.遗留系统方面的问题。2.高可信软件开发的需求。3.软件开发方式的变化等等。

  而软件工程知识体系的产生有巨大意义,其组成为10个知识领域,分别为:软件需求(Software requirements),软件设计(Software design),软件建构(Software construction),软件测试(Software test),软件维护与更新(Software maintenance),软件构型管理(Software Configuration Management, SCM),软件工程管理(Software Engineering Management),软件开发过程(Software Development Process),软件工程工具与方法(Software Engineering Tools and methods),软件质量(Software Quality)。

  而软件的开发到底是一门科学还是一门工程,这是一个被争论了很久的问题。很多人认为软件工程基于计算机科学信息科学就如传统意义上的工程学之于物理化学一样。下表就是它们差别的一个汇总:

软件工程与计算机科学的差别[15]

 

软件工程

计算机科学

目标

时间资源人员这3个主要限制条件下构建满足用户需求的软件系统。

探索正确的计算和建模方法,从而改进计算方法本身。

产品

软件(比如办公包和编译器)。

算法(比如希尔排序法)和抽象的问题(比如哲学家进餐问题)。

进度与时间表

软件项目都有特定的进度与时间表

研究项目一般不具有设置的进度与时间表

关注点

软件工程关注如何为用户实现价值

软件理论关注的是软件本身运行的原理,比如时间复杂度空间复杂度,和算法的正确性。

变化程度

随着技术和用户需求的不断变化,软件开发人员必须时刻调整自己的开发以适应当前的需求。同时软件工程本身也处于不断的发展中。

对于某一种特定问题的正确解决方法将永远不会改变。

需要的其他知识

相关领域的知识。

数学

著名的探索者和教育家

Barry BoehmDavid Parnas佛瑞德·布鲁克斯

Edsger Dijkstra高德纳Robert TarjanPeter Slater艾伦·图灵姚期智

著名的实践者

John BackusDan Bricklin蒂姆·伯纳斯-李林纳斯·托瓦兹理查德·马修·斯托曼

无。

  在职业道德规范里我们也有着IEEE与ACM准则,我们需要遵从。

原文地址:https://www.cnblogs.com/chengchengshuaio/p/4300029.html