题目描述:请问 “软件” , “软件工程”,瀑布模型,Code Complete,Agile Methodology 这些词汇是如何出现的 - 何时、何地、何人提出。
引用:
https://linux.cn/article-4778-weibo.html
http://baike.so.com/doc/5392576-5629410.html
概念解释:
1、软件(Software):控制计算机硬件功能及其运行的指令、例行程序和符号语言。如Windows、DOS、AutoCAD、PRO/E等,都是软件。
2、软件工程(Software Engineering):是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。
3、瀑布模型(water fall):瀑布模型是将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。
概述:
1)阶段间具有顺序性和依赖性;
2)推迟实现的观点;
3)质量保证的观点。
优点:采用规范的方法;严格规定每个阶段提交的文档;要求每个阶段交出的产品必须经过验证。
4、敏捷方法(Agile Methodology):它是一组开发方法的统称。 随着技术的迅速发展和经济的全球化,软件开发出现了新的特点,即在需求和技术不断变化的情况下实现快节奏的软件开发,这就对生产率提出了很高的要求。
敏捷过程:具有高效、快速响应变化的开发过程。
1)个体和交互胜过过程和工具;
2)可以工作的软件胜过面面俱到的文档;
3)客户合作胜过合同谈判;
4)响应变化胜过遵循计划。
对于软件、软件工程这些专业词汇的提出,通过阅读相关文献资料了解到,有很多种不同的说法。
第一种说法是由Margaret Hamilton在阿波罗 11 号研发期间提出的。她在接受采访时提到:
“软件在这个计划的初期还被当作初初学步的孩子一般对待,完全不像其他工程学科;例如像硬件工程那样的受到重视,而且在大家的眼光中他就像是艺术、魔术一般,而不是一门科学。”
“我一直以来坚信这项发明流着艺术与科学的血液,虽然当时很少人是这么想。因此,我致力于为软件以及那些发明者争取应有的正统性与尊重,所以我开始使用“软件工程”这样的字眼来将之与硬件还有其他工程学类做出区别。”
“当我第一次使用这样的语词时,大家都觉得有些好笑,甚至有很长一段时间被当作笑话。他们常笑我极端的想法。但最终,软件学科确实得到了应有的尊重!”
第二种说法是:
1968年在德国举行的NATO软件工程会议上,为应对"软件危机"的挑战,提出了"软件工程"的术语。这个时期有代表性的软件工程定义是"为了经济地获得在真实机器上可靠工作的软件而制定和使用的合理工程原则和方法"。
1972年IEEE学会的计算机协会第一次出版了《软件工程学报》。此后,"软件工程"这个术语被广泛用于工业、政府和学术界,众多的出版物、团体和组织、专业会议在它们的名称里使用"软件工程"这个术语,很多大学的计算机科学系先后设立软件工程课程。
其中,对于软件危机的理解:计算机软件的开发和维护过程中所遇到的一系列严重问题。(正常、不正常运行软件都具有这种问题)
软件危机的典型表现:
1)对软件开发成本和进度的估计常常很不准确;
2)用户对完成的软件系统不满意的现象经常发生;
3)软件产品的质量往往靠不住;
4)软件常常是不可维护的;
5)软件通常没有适当的文档资料;
6)软件成本在计算机系统总成本中所占的比例逐年上升;
7)软件开发生产率提高的速度跟不上计算机应用的发展趋势。
博客编辑:马舒婕