A. 什么是软件工程它有哪些本质特征怎样用软件工程消除软件危机
○1 软件危机是指在计算机软件开发,使用与维护过程中遇到的一系列严重问题和难题.它 包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有 软件.
○2.软件危机表现在以下四个方面:
(1) 对软件开发成本和进度的估计常常很不准确.常常出现实际成本比估算成本高出一个数量 级,实际进度比计划进度拖延几个月甚至几年的现象.而为了赶进度和节约成本所采取的一 些权宜之计又往往损害了软件产品的质量.这些都降低了开发商的信誉,引起用户不满. (2) 用户对已完成的软件不满意的现象时有发生. (3) 软件产品的质量往往是靠不住的. (4) 软件常常是不可维护的. (5) 软件通常没有适当的文档资料.文档资料不全或不合格,必将给软件开发和维护工作带来 许多难以想象的困难和难以解决的问题. (6) 软件成本,软件维护费在计算机系统总成本中所占比例逐年上升. (7) 开发生产率提高的速度远跟不上计算机应用普及的需求.
○3 造成软件危机的原因是: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大,复杂,修改,维护困难. (2) 软件开发与维护的方法不当: 忽视需求分析; 认为软件开发等于程序编写; 轻视软件维护. (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心.
B. 什么是软件危机怎么解决这个危机
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。那么你对软件危机了解多少呢?以下是由我整理关于什么是软件危机的内容,希望大家喜欢!
软件危机的介绍
软件危机(software crisis),20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发 方法 ,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。
60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现; 操作系统 的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 。
1968年,北大西洋公约组织(NATO)在联邦德国的国际学术会议创造软件危机(Software crisis)一词。而1960年代中期开始爆发众所周知的软件危机,为了解决问题,在1968、1969年连续召开两次着名的NATO会议,并同时提出软件工程的概念。
软件危机的解决途径
软件工程诞生于60年代末期,它作为一个新兴的工程学科,主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。软件工程学从硬件工程和其他人类工程中吸收了许多成功的 经验 ,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。
此外,人工智能与软件工程的结合成为80年代末期活跃的研究领域。基于程序变换、自动生成和可重用软件等软件新技术研究也已取得一定的进展,把程序设计自动化的进程向前推进一步。在软件工程理论的指导下,发达国家已经建立起较为完备的软件工业化生产体系,形成了强大的软件生产能力 。软件标准化与可重用性得到了工业界的高度重视,在避免重用劳动,缓解软件危机方面起到了重要作用。
软件危机的主要表现
软件开发进度难以预测
拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。
软件开发成本难以控制
投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。
而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。
用户对产品功能难以满足
开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。
在双方互不充分了解的情况下,就仓促上阵设计系统、匆忙着手编写程序,这种"闭门造车"的开发方式必然导致最终的产品不符合用户的实际需要。
软件产品质量无法保证
系统中的错误难以消除。软件是逻辑产品,质量问题很难以统一的标准度量,因而造成质量控制困难。
软件产品并不是没有错误,而是盲目检测很难发现错误,而隐藏下来的错误往往是造成重大事故的隐患。
软件产品难以维护
软件产品本质上是开发人员的代码化的 逻辑思维 活动,他人难以替代。除非是开发者本人,否则很难及时检测、排除系统故障。
为使系统适应新的硬件环境,或根据用户的需要在原系统中增加一些新的功能,又有可能增加系统中的错误。
软件缺少适当的文档资料
文档资料是软件必不可少的重要组成部分。实际上,软件的文档资料是开发组织和用户的之间权利和义务的合同书,是系统管理者、总体设计者向开发人员下达的任务书,是系统维护人员的技术指导手册,是用户的操作 说明书 。
缺乏必要的文档资料或者文档资料不合格,将给软件开发和维护带来许多严重的困难和问题。
软件危机的原因分析
用户需求不明确
在软件开发过程中,用户需求不明确问题主要体现在四个方面:
在软件开发出来之前,用户自己也不清楚软件开发的具体需求;
用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;
在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;
软件开发人员对用户需求的理解与用户本来愿望有差异。
缺乏正确的理论指导
缺乏有力的方法学和工具方面的支持。由于软件开发不同于大多数其他工业产品,其开发过程是复杂的逻辑思维过程,其产品极大程度地依赖于开发人员高度的智力投入。由于过分地依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件开发产品的个性化,也是发生软件开发危机的一个重要原因。
软件开发规模越来越大
随着软件开发应用范围的增广,软件开发规模愈来愈大。大型软件开发项目需要组织一定的人力共同完成,而多数管理人员缺乏开发大型软件开发系统的经验,而多数软件开发人员又缺乏管理方面的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。软件开发项目开发人员不能有效地、独立自主地处理大型软件开发的全部关系和各个分支,因此容易产生疏漏和错误。
软件开发复杂度越来越高
C. 软件危机产生的原因是什么
软件危机产生的原因:
1、用户需求不明确
2、在软件开发过程中,用户需求不明确问题主要体现在四个方面:
3、在软件开发出来之前,用户自己也不清楚软件开发的具体需求;
4、用户对软件开发需求的描述不精确,可能有遗漏、有二义性、甚至有错误;
5、在软件开发过程中,用户还提出修改软件开发功能、界面、支撑环境等方面的要求;
6、软件开发人员对用户需求的理解与用户本来愿望有差异。
软件危机解决途径:
软件工程诞生于60年代末期,它作为一个新兴的工程学科,主要研究软件生产的客观规律性,建立与系统化软件生产有关的概念、原则、方法、技术和工具,指导和支持软件系统的生产活动,以期达到降低软件生产成本 、改进软件产品质量、提高软件生产率水平的目标。软件工程学从硬件工程和其他人类工程中吸收了许多成功的经验,明确提出了软件生命周期的模型,发展了许多软件开发与维护阶段适用的技术和方法,并应用于软件工程实践,取得良好的效果。
在软件开发过程中人们开始研制和使用软件工具,用以辅助进行软件项目管理与技术生产,人们还将软件生命周期各阶段使用的软件工具有机地集合成为一个整体,形成能够连续支持软件开发与维护全过程的集成化软件支援环境,以期从管理和技术两方面解决软件危机问题。
D. 软件工程是如何克服软件危机的
研制软件系统需要投入大量的人力和物力,但系统的质量却难以保证,也就是说,开发软件所需的高成本同产品的低质量之间有着尖锐的矛盾,这种现象就是所谓的“软件危机”。
· 产生软件危机的原因:
j 用户对软件需求的描述不精确,可能有遗漏、有二义性、有错误,甚至在软件开发过程中,用户还提出修改软件功能、界面、支撑环境等方面的要求。
k 软件开发人员对用户需求的理解与用户的本来愿望有差异,导致开发出来的软件产品与用户要求不一致。
l 大型软件项目需要组织一定的人力共同完成,多数管理人员缺乏开发大型软件系统的经验。各类人员的信息交流不及时、不准确、有时还会产生误解。
m 软件项目开发人员不能有效地、独立自主地处理大型软件的全部关系和各个分支,因此容易产生疏漏和错误。
n 缺乏有利的方法学和工具方面的支持,过分的依靠程序设计人员在软件开发过程中的技巧和创造性,加剧软件产品的个性化。
o 软件产品的特殊性和人类智力的局限性,导致人们无力处理“复杂问题”。
· 要克服软件危机,就要认真分析软件危机的原因,探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理、维护和更新。
2. 什么叫软件工程?软件工程的诞生是否从根本上消除了软件危机? 为什么?
解:· 软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术及管理方法。
· 软件工程的诞生只能大大减少软件开发成本并提高软件质量,不能从根本上消除软件危机。
3.软件生存周期为什么要划分阶段?各个阶段的任务是什么?
解:· 软件也是一种产品,同样存在生存周期。把软件生存周期划分为几个阶段后,软件开发按照每个阶段的基本任务进行并产生相应的工作结果,这样有利于对软件开发过程进行管理,有利于提高软件产品质量。
· 可行性研究与计划阶段的基本任务:研究开发该项目的可行性。
需求分析阶段的基本任务: 理解和表达用户的要求。
设计阶段的基本任务: 建立系统的结构。
编程阶段的基本任务: 编写程序。
测试阶段的基本任务: 发现错误和排除错误。
4.什么是软件?如何评价软件的质量?
解:· 软件是程序以及开发、使用和维护程序所需的所有文档。
· 软件质量从可维护性、可靠性、可理解性和效率等方面对软件作较全面的评价。
求采纳为满意回答。
E. 怎样运用软件工程消除软件危机
你这个问题太泛了,软件工程的主要目标就是为了消除软件危机,但是要达到这个目标是很难的。
什么是软件工程?它有哪些本质特性?怎样用软件工程消除软件危机?
答: 软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来 开发与维护软件,
把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,
以 经济地开发出高质量的软件并有效地维护它。
~希望回答对你有帮助,如果有疑问,请继续“追问”!
~答题不易,互相理解,您的采纳是我前进的动力,感谢您!!.
F. 软件危机产生的原因,以及应对方法
软件危机是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。
产生软件危机的原因主要有两个方面:
1.这与软件本身的特性有关。
与硬件不同,软件是计算机系统的逻辑部分,而不是物理部分。软件样品是产品,试制过程也是生产过程。
软件不会因使用时间过长而“老化”或“磨损”;在编写程序代码并在计算机上运行之前,很难测量软件开发过程的进度和评估软件质量。因此,软件开发过程的管理和控制是非常困难的。
2.软件开发人员的弱点。
首先,软件产品是人们思考的结果,所以软件产品的水平最终在很大程度上取决于软件人员的教育、培训和经验积累。
合作开发大型软件通常需要很多人,即使对于一个软件开发人员深入研究领域的应用程序,所以你需要用户和软件和软件开发人员之间的沟通,不可避免地发生在这个过程中理解的差异,导致后续错误的设计或实现。
(6)如何使用软件工程解决软件危机扩展阅读:
解决途径
人们开始开发过程中软件开发和软件工具的使用,协助软件项目管理和生产技术,人们还将使用在软件生命周期的所有阶段的软件工具有机地集合作为一个整体,形成可以支持软件开发和维护的整个过程的集成软件支持环境,以解决软件危机从管理和技术两个方面的问题。
此外,人工智能和软件工程的结合在20世纪80年代后期成为一个活跃的研究领域。基于程序转换、自动生成和可复用软件的新软件技术的研究取得了一定的进展。
在软件工程理论的指导下,发达国家建立了较为完整的软件产业生产体系,形成了较强的软件生产能力。软件标准化和可重用性受到业界的高度重视,在避免劳动重复使用和缓解软件危机方面发挥了重要作用。
G. 什么叫软件工程软件工程是如何克服软件危机的
软件工程是将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程及上述方法的研究。为了克服软件危机,人们从其他产业的工程化生产得到启示,采用工程的概念、原理、技术和方法来开发和维护软件