搜档网
当前位置:搜档网 › 软件危机的产生及解决

软件危机的产生及解决

软件危机的产生及解决
软件危机的产生及解决

1.分析上述说明中的案例,简述什么原因导致了以上情况,应用什么途径消除?

答:这些情况是由软件危机导致的,导致软件工程发生的主要原因为(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费

用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,

生产率提高缓慢。解决软件危机的办法是:(1) 充分吸收和借鉴人类长期以来从

事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取

几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力

作到良好的组织,严格的管理,相互友好的协作。(2) 推广在实践中总结出来

的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服

在计算机系统早期发展阶段形成的一些错误概念和作法。(3) 根据不同的应用

领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工

具集合成一个整体,形成一个很好的软件开发环境。总之为了解决软件危机,

既要有技术措施(方法和工具),又要有必要的组织管理措施

2.简述软件生命周期的划分及任务

答:软件生命周期的具体划分和任务如下

1.问题定义

此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

2.可行性研究

可行性分析的任务是明确应用项目的开发的必要性和可行性。必要性来自实

现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项

工作是建立在初步调查的基础上。

3.需求分析

在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。

需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项

目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整

个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应

付这种变化,以保护整个项目的顺利进行。

4.总体设计

此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设

计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设

计将为软件程序编写打下良好的基础。

5.详细设计

详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详

细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明

易懂。

6.编码和单元测试

此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中

必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,

提高程序的运行效率。

7.综合测试

在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的

问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶

段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建

立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。

8.软件维护

软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。

在软件危机的原因

在软件开发和维护的过程中存在这么多严重问题,一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。 软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。由于软件缺乏“可见试阶段没能检测出来的错误。因此,软件维护通常意味着改正或修改原来的设计,这就在客观上使得软件较难维护。 软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序规模的增加而旱指数上升。为了在预定时间内开发出规模庞大的软件,必须由许多人分工合作,然而,如何保证每个人完成的工作合在一起确实能构成一个高质量的大型软件系统,更是一个极端复杂困难的问题,不仅涉及许多技术问题,诸如分析方法、设计方法、形式说明方法、版本控制等,更重要的是必须有严格而科学的管理。 软件本身独有的特点确实给开发和维护带来一些客观困难,但是人们在开发和使用计算机系统的长期实践中,也确实积累和总结出r许多成功的经验。如果坚持不懈地使用经过实践考验证明是正确的方法,许多困难是完全可以克服的,过去也确实有一些成功的范例。但是,目前相当多的软件专业人员对软件开发和维护还有不少糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。 与软件开发和维护有关的许多错误认识和作法的形成,可以归因于在计算机系统发展的早期阶段软件开发的个体化特点。错误的认识和作法主要表现为忽视软件需求分析的重要性,认为软件开发就是写程序并设法使之运行,轻视软件维护等。 事实上,对用户要求没有完整准确的认识就匆忙着手编写程序足许多软件开发工程失败的主要原因之一。只有用户才真正了解他们自己的需要,但是许多用户在开始时并不能准确具体地叙述他们的需要,软件开发人员需要做大量深入细致的调查研究工作,反复多次地和用户交流信息,/j‘能真正全面、准确、具体地了解用户的要求。对问题和目标的正确认识是解决任何问题的前提和出发点,软件开发同样也不例外。急于求成,仓促上阵,对用户要求没有正确认识就匆忙着手编写程序,这就如同不打好地基就盖高楼一样,最终必然垮台。事实上,越早开始写程序,完成它所需要用的时间往往越长。 一个软件从定义、开发、使用和维护,直到最终被废弃,要经历一个漫长的时期,这就如一个人要经过胎儿、儿童、青年、中年和老年,直到最终死亡的漫长时期一样。通常把软件经历的这个漫长的时期称为生命周期。软件开发最初的工作应是问题定义,也就是确定要求解决的问题是什么;然后要进行可行性研究,决定该问题是否存在一个可行的解决办法;接下来应该进行需求分析,也就是深入具体地了解用户的要

软件工程课后习题答案

软件工程课后习题答案 第一章 一、什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机是指在计算机软件开发、使用与维护过程中遇到的一系列严重问题和难题。它包括两方面:如何开发软件,已满足对软件日益增长的需求;如何维护数量不断增长的已有软件。软件危机的典型表现: (1) 对软件开发成本和进度的估计常常很不准确。常常出现实际成本比估算成本高出一个数量级、实际进度比计划进度拖延几个月甚至几年的现象。而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量。这些都降低了开发商的信誉,引起用户不满。 (2) 用户对已完成的软件不满意的现象时有发生。 (3) 软件产品的质量往往是靠不住的。 (4) 软件常常是不可维护的。 (5) 软件通常没有适当的文档资料。文档资料不全或不合格,必将给软件开发和维护工作带来许多难以想象的困难和难以解决的问题。

(6) 软件成本、软件维护费在计算机系统总成本中所占比例逐年上升。 (7) 开发生产率提高的速度远跟不上计算机应用普及的需求。软件危机出现的原因: (1) 来自软件自身的特点:是逻辑部件,缺乏可见性;规模庞大、复杂,修改、维护困难。 (2) 软件开发与维护的方法不当:忽视需求分析;认为软件开发等于程序编写;轻视软件维护。 (3) 供求矛盾将是一个永恒的主题:面对日益增长的软件需求,人们显得力不从心。 二、假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改, 不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”是在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。

软件危机的表现及原因

软件危机的表现及原因 计算机科学与技术4班周才 1.软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 2.概况:20 世纪60年代以前,计算机刚刚投入实际使用,软件设计往往只是为一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。 60年代中期,大容量、高速度计算机的出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发 3.现象:早期出现的软件危机主要表现在: ①软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。 ③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。 软件危机不仅没有消失,还有加剧之势。主要表现在: ①软件成本在计算机系统总成本中所占的比例居高不下,且逐年上升。由于微电子学技术的进步和硬件生产自动化程度不断提高,硬件成本逐年下降,性能和产量迅速提高。然而软件开发需要大量人力,软件成本随着软件规模和数量的剧增而持续上升。从美、日两国的统计数字表明,1985年度软件成本大约占总成本的90%。 ②软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的需要,软件产品供不应求的状况使得人类不能充分利用现代计算机硬件所能提供的巨大潜力。 4.原因:①与软件本身的特点有关 软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件;软件样品即是产品,试制过程也就是生产过程;软件不会因使用时间过长而“老化”或“用坏”;软件具有可运行的行为特性,在写出程序代码并在计算机上试运行之前,软件开发过程的进展情况较难衡量,软件质量也较难评价,因此管理和控制软件开发过程十分困难;软件质量不是根据大量制造的相同实体的质量来度量,而是与每一个组成部分的不同实体的质量紧密相关,因此,在运行时所出现的软件错误几乎都是在开发时期就存在而一直未被发现的,改正这类错误通常意味着改正或修改原来的设计,这就在客观上使得软件维护远比硬件维护困难;软件是一种信息产品,具有可延展性,属于柔性生产,与通用性强的硬件相比,软件更具有多样化的特点,更加接近人们的应用问题。

软件危机出现的原因

1.软件危机出现的原因:软件维护费用的急剧上升,直接威胁计算机应用的扩大;软件生产技术进步缓慢,是加剧软件危机的重要原因 2软件的特征:软件的开发不同于硬件设计、不同于硬件制造、不同于硬件维修 3软件危机:开发软件需高成本和产品的低质量之间有着尖锐的矛盾 4软件维护有哪些种类?他们的目标分别是什么?软件维护的种类以及对应目标依次是:完善性维护:在软件漫长的运行时期中,用户往往会对软件提出新的功能要求与性能要求。为了适应这些变化,应用软件原来的功能和性能需要扩充和增强。这种增加软件功能、增强软件性能、提高软件运行效率而进行的维护活动称为完善性维护。适应性维护让软件适应运行环境的改变而进行的一种维护。纠错性维护纠正在开发期间未能发现的遗留错误。预防性维护为了提高软件的可维护性和可靠性而对软件进行的修改称为预防性维护。5软件重用的效益是什么?答:1软件重用可以显著地改善软件的质量和可靠性。2软件重用可以极大地提高软件开发的效率。3节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费。 6自顶而下渐增测试与自底而上渐增测试各有何优、缺点?答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误。缺点:需要存根程序,底层错误发现较晚。②自底而上渐增测试优点与缺点和自顶而下渐增测试相反。 7提高可维护性的方法有哪些?答:在软件工程的每一阶段都应该努力提高系统的可维护性,在每个阶段结束前的审查和复审中,应着重对可维护性进行复审。A在需求分析阶段的复审中,应对将来要扩充和修改的部分加以注明。在讨论软件可移植性问题时,要考虑可能要影响软件维护的系统界面。B在软件设计的复审中,因从便于修改、模块化和功能独立的目标出发,评价软件的结构和过程,还应对将来可能修改的部分预先做准备。C在软件代码复审中,应强调编码风格和内部说明这两个影响可维护性的因素。D在软件系统交付使用前的每一测试步骤中都应给出需要进行预防性维护部分的提示。E在完成每项维护工作后,都应对软件维护本身进行仔细认真的复审。F为了从根本上提高软件系统的可维护性,人们正试图通过直接维护软件规格说明来维护软件,同时也在大力发展软件重用技术。 8软件分析的目标是什么?包含哪些内容?软件分析的目标是将软件需求阶段产生的需求模型转变为软件分析模型。包含的任务:1理解用户的需求包含全面理解和分析用户分析,明确所开发的软件系统职责,形成文化并规范的加以表述,然后进行分析提取类和对象,并结合分析进行建模。其基本步骤为:标志类、定义属性和方法、刻画类的层次。表示对象以及对象与对象之间的关系,为对象的行为建模以上步骤可以进行反复直至完成建模。 9简述软件测试要经过哪几个步骤,每个步骤与什么文档有关解答:测试过程按4个步骤进行,即单元测试、集成测试、确认测试、和平行运行。2单元测试集中对用源代码实现的每一个程序单元进行测试,与其相关的文档是单元测试计划和详细设计说明书。3集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。与其相关的文档是集成测试计划和软件需求说明书。4确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。与其相关的文档是确认测试计划和软件需求说明书。5平行运行把已经经过确认的软件纳入实际运行环境中,与其他系统成份组合在一起进行测试。与其相关的文档:用户指南、使用手册等。 10请说明软件文档的作用?软件开发项目生存期各阶段都包含哪些文档?软件文档的作用是:提高软件开发过程的能见度;提高开发效率;作为开发人员阶段工作成果和结束标志;记录开发过程的有关信息便于使用与维护;提供软件运行、维护和培训有关资料;便于用户了解软件功能、性能。软件开发项目生存期各阶段应包括得文档以及与各类人员的关系如下:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、测试计划、概要设计说明书、详细设计说明书、用户手册、操作手册、测试分析报告、开发进度月报、项目开发总结、程序维护手册。 11什么是数据字典?其作用是什么?它有哪些条目?数据字典是用来定义数据流图中的各个成分的具体 含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一

软件工程题库及答案

一、选择题 软件 (2) 1.在软件开发的各种资源中,(D)是最重要的资源。 A开发工具B方法C硬件环境D人员 2.软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。 A固有的B人为的C可消除的D不可降低的 3.3:软件是计算机系统中与硬件相互依存的另一部分,它的组成部分是(D)。 A.程序、数据 B.程序、文档 C.程序 D.程序、数据、文档 4.软件是一种(B)产品。 A、有形 B、逻辑 C、物质 D、消耗 软件危机 (1)

5.1:开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 6.2:在软件生产的程序系统时代由于软件规模扩大和软件复杂性提高等原因导致了(A) A.软件危机 B.软件工程 C.程序设计革命 D.结构化程序设计 7.3:以下哪一项不是软件危机的表现形式(C ) (A)成本高(B)生产率低 (C)技术发展快(D)质量得不到保证 8.4:“软件危机”产生的主要原因是( A)。 A.软件日益庞大 B.开发方法不当 C.开发人员编写程序能力差 D.没有维护好软件 9.5:软件危机是指在软件开发和(C)过程中遇到的一系列严重问题。

A开发B使用C维护D更新 软件工程 (2) 1 0."1:为了解决软件危机人们提出了用(B)的原理来设计软件,这就是软件工程诞生的基础。 (A)运筹学(B)工程学(C)软件学(D)数学 1 1." 2.在软件工程时期,决定软件质量的主要因素是(A) A.管理水平 B.个人程序技术 C.小组技术水平 D.硬件的发展 1 2." 3.软件管理工作涉及到的直接对象不包括(B)。 A.软件开发人员 B.硬件设备 C.项目经费 D.软件项目

软件危机

软件危机 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 20 世纪60年代以前,计算机主要为电子管计算机,体积大,速度慢,性能较差,计算机刚刚投入实际使用,软件设计往往只是为了一个特定的应用而在指定的计算机上设计和编制,采用密切依赖于计算机的机器代码或汇编语言,软件的规模比较小,文档资料通常也不存在,很少使用系统化的开发方法,设计软件往往等同于编制程序,基本上是个人设计、个人使用、个人操作、自给自足的私人化的软件生产方式。 1964年4月,以IBM360为代表德大容量、高速度的计算机—集成电路计算机出现,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发。 早期出现的软件危机主要表现在: ①软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。 ③生产出来的软件难以维护。很多程序缺乏相应的文档资料,程序中的错误难以定位,难以改正,有时改正了已有的错误又引入新的错误。随着软件的社会拥有量越来越大,维护占用了大量人力、物力和财力。进入80年代以来,尽管软件工程研究与实践取得了可喜的成就,软件技术水平有了长足的进展,但是软件生产水平依然远远落后于硬件生产水平的发展速度。 为此,1968 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科——软件工程学——为研究和克服软件危机应运而生。 当前,类似的软件问题依然存在,具体体现在: 1. 软件开发进度难以预测 拖延工期几个月甚至几年的现象并不罕见,这种现象降低了软件开发组织的信誉。以丹佛新国际机场为例: 该机场规模是曼哈顿机场的两倍,宽为希思机场的10倍,可以全天侯同时起降三架喷气式客机;投资1.93亿美元建立了一个地下行李传送系统,总长21英里,有4,000台遥控车,可按不同线路在20家不同的航空公司柜台、登机门和行李领取处之间发送和传递行李;支持该系统的是5,000个电子眼、400台无线电接受机、56台条形码扫描仪和100台计算机。按原定计划要在1993年万圣节前启用,但一直到1994年6月,机场的计划者还无法预测行李系统何时能达到可使机场开放的稳定程度。 2. 软件开发成本难以控制 投资一再追加,令人难于置信。往往是实际成本比预算成本高出一个数量级。 而为了赶进度和节约成本所采取的一些权宜之计又往往损害了软件产品的质量,从而不可避免地会引起用户的不满。 3. 用户对产品功能难以满足 开发人员和用户之间很难沟通、矛盾很难统一。往往是软件开发人员不能真正了解用户的需求,而用户又不了解计算机求解问题的模式和能力,双方无法用共同熟悉的语言进行交流和描述。

软件工程概论答案

第1章软件与软件工程的概念 举出你所知道的应用软件的例子。 办公软件、游戏软件、财务软件、银行软件、人事管理软件、工资管理软件、学籍管理软件等。 认为“软件就是程序,软件开发就是编程序。”这种观点是否正确?为什么? 认为“软件就是程序,软件开发就是编程序。”这种观点是错误的。 首先,软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合,程序只是软件的组成部分之一;其次,在软件开发中,编程只是软件开发过程的一个阶段。 如果将软件开发比作高楼大厦的建造,可以将软件的设计比作什么? 可以将软件的设计比作建筑设计,软件设计的成果相当于建筑设计的设计图纸。 什么是软件危机?它有哪些典型表现?为什么会出现软件危机? 软件危机:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。 典型表现: (1)对软件开发成本和进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件常常是不可维护的。 (5)软件通常没有适当的文档资料。 (6)软件成本在计算机系统总成本中所占的比例逐年上升。 (7)软件开发生产率提高的速度,既跟不上硬件的发展速度,也远远跟不上计算机应用 迅速普及深入的趋势。 产生软件危机的原因:除了软件本身的特点,其原因主要有以下几个方面: (1) 缺乏软件开发的经验和有关软件开发数据的积累,使得开发工作计划很难制定。 (2) 软件人员与用户的交流存在障碍,使得获取的需求不充分或存在错误。 (3) 软件开发过程不规范。如,没有真正了解用户的需求就开始编程序。 (4) 随着软件规模的增大,其复杂性往往会呈指数级升高。需要很多人分工协作,不仅涉及技术问题,更重要的是必须有科学严格的管理。 (5) 缺少有效的软件评测手段,提交给用户的软件的质量不能完全保证。 什么是软件工程? 软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 简述软件生存期由哪些主要的阶段组成,每一阶段的主要任务是什么? (1)问题定义与可行性研究:问题定义必须回答的关键问题是:“要解决的问题是什么”。 可行性研究要回答的关键问题是:“在成本和时间的限制条件下能否解决问题?是否值得做?”。 (2)需求分析:这个阶段的任务仍然不是具体地解决客户的问题,而是准确地回答“目标 系统必须做什么”这个问题。 (3)软件设计:本阶段要回答的关键问题是“目标系统如何做?”为此,必须在设计阶段 中制定设计方案,把已确定的各项需求转换成相应的软件体系结构。结构中的每一组成部分都是意义明确的构件,此即所谓概要设计。进而具体描述每个构件所要完成的

软件危机的原因

1、软件危机的原因:①用户需求不明确。②缺乏正确的理论指导③软件规模越来越大。④软件复杂度越来越高。 2、信息系统危机:①效益问题②需求问题③规划问题④队伍建设问题 3、信息系统工程体系:信息系统工程是一种层次化的技术,包含以信息系统质量为核心的四个层面的内容:过程层、方法层、建设语言层、工具层、四个层次的核心焦点都是信息系统质量 4、信息系统开发方法:①结构化方法(面对过程的方法)②信息建模方法(面对数据的方法)③面对对象方法 5、模型是运用某种图表工具对系统特征(包括静态特征和动态特征)的一种表示 6、瀑布模型是于20世纪70年代提出的较早得一种生命周期模型 7、瀑布模型的特点是:强调阶段的划分及其顺行性、强调各阶段工作及其文档的完备性、是一种严格线性的、按阶段顺序的、逐步细化的开发模式 8、原型即样品、模型的意思。原型分为三类:抛弃式、演化式、增量式。 9、原型法的优点和缺点优点:①减少了开发时间,大大提高了系统开发效率。②使信息需求的定义工作更为简单、直观。③增加了用户对设计的满意程度,提高信息系统的质量。④减少了系统开发费用。缺点:①分析和设计上的深度不够。②快速原型法中的第一个工作原型可能并不是一个最优方案。 ③通过原型法所开发的系统不具备灵活性,难以适应用户需求的变化。④工作原型不容易修改。 10、统一过程的特点:用例驱动;以体系结构为中心;迭代和增量 11、结构化方法是理解问题和解决问题的一种模式,这种模式的实质可以概括为:模块化;自顶向下,逐步求精;信息隐藏 12、面向对象方法是一种风范,是观察和分析问题的一种方法论。具体来说,面向对象是一种运用对象、类、继承、封装、聚合、消息传递、多态性等概念来构造系统的软件开发方法。

软件危机的表现

1.软件危机的表现 答:(1)对软件开发成本和进度的估计常常很不准确。 (2)用户对“已完成的”软件系统不满意的现象经常发生。 (3)软件产品的质量往往靠不住。 (4)软件通常没有适当的文档资料。 (5)软件常常是不可维护的。 2.论述解决软件危机的途径 为了消除软件危机,首先应该对计算机软件有一个正确的认识。事实上,软件是程序、数据及相关文档的完整集合。 更重要的是,必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目。 应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。 应该开发和使用更好的软件工具。 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门新兴学科。 3.软件生命周期各个阶段的任务 答:(定义时期)确定要求解决的问题是什么;然后要进行可行性研究,决定该问题是否存在一个可行的解决办法;接下来应该进行需求分析,也就是深入具体地了解用户的要求,在所要开发的目标系统必须做什么这个问题上和用户取得完全一致的看法。 (开发时期)对软件进行设计(通常又分为概要设计和详细设计两个阶段),然后才能进入编写程序的阶段,程序编写完之后还必须经过大量的测试工作才能交付使用。

4.瀑布模型的优缺点 答:优点:可强迫开发人员采用规范的方法;严格规定了每个阶段必须提交的文档;要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。 缺点:将本来非线性的软件开发过程人为地加以线性化,开发的产品只有到交付使用时才能和用户见面,对于用户的反馈意见只能从需求分析开始从头修改,加大了软件开发的工作量。 总之,由于瀑布模型几乎完全依赖于书面的规格说明,很可能导致最终开发出的软件产品不能真正满足用户的需要。

软件危机的产生及解决

1.分析上述说明中的案例,简述什么原因导致了以上情况,应用什么途径消除? 答:这些情况是由软件危机导致的,导致软件工程发生的主要原因为(1)软件的规模越来越大,结构越来越复杂。(2)软件开发管理困难而复杂。(3)软件开发费 用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后, 生产率提高缓慢。解决软件危机的办法是:(1) 充分吸收和借鉴人类长期以来从 事各种工程项目中积累的行之有效的有效原理、概念、技术与方法,特别是吸取 几十年来人类从事计算机硬件研究和开发的经验教训。在开发软件的过程中努力 作到良好的组织,严格的管理,相互友好的协作。(2) 推广在实践中总结出来 的开发软件的成功的技术和方法,并研究更好、更有效的技术和方法,尽快克服 在计算机系统早期发展阶段形成的一些错误概念和作法。(3) 根据不同的应用 领域,开发更好的软件工具并使用这些工具。将软件开发各个阶段使用的软件工 具集合成一个整体,形成一个很好的软件开发环境。总之为了解决软件危机, 既要有技术措施(方法和工具),又要有必要的组织管理措施 2.简述软件生命周期的划分及任务 答:软件生命周期的具体划分和任务如下 1.问题定义 此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。 2.可行性研究 可行性分析的任务是明确应用项目的开发的必要性和可行性。必要性来自实 现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项 工作是建立在初步调查的基础上。 3.需求分析 在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。 需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项 目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整 个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应 付这种变化,以保护整个项目的顺利进行。 4.总体设计 此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设 计,数据库设计等等。软件设计一般分为总体设计和详细设计。好的软件设 计将为软件程序编写打下良好的基础。 5.详细设计 详细设计的主要任务是设计每个模块的实现算法、所需的局部数据结构。详 细设计的目标有两个:实现模块功能的算法要逻辑上正确和算法描述要简明 易懂。 6.编码和单元测试 此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中 必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性, 提高程序的运行效率。 7.综合测试 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的 问题并加以纠正。整个测试过程分单元测试、组装测试以及系统测试三个阶 段进行。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建

第1章 软件和软件危机

第1章软件和软件危机 ?基本概念 ?软件危机 ?软件工程、软件工程方法学 ?软件生命周期 ?软件过程 ?软件生命周期模型(过程模型) ?知识点 ?软件危机的表现、产生原因、消除软件危机的途径 ?软件工程的基本原理,软件工程方法学三要素 ?软件生命周期各个阶段的定义 ?瀑布模型、快速原型模型、增量模型、螺旋模型的特点 ?习题 一、选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内) 1.软件产品的开发主要是( D )。 A.复制 B.再生产 C.拷贝 D.研制 2.作坊式小团体合作生产方式的时代是( C )时代。 A.程序设计 B.软件生产自动化 C.程序系统 D.软件工程 3.软件工程与计算机科学性质不同,软件工程着重于( C )。 A.理论研究 B.原理探讨 C.建造软件系统 D.原理的理论 4.将每个模块的控制结构转换成计算机可接受的程序代码是( A )阶段的任务。 A.编码 B.需求分析 C.详细设计 D.测试 5.与计算机科学的理论研究不同,软件工程是一门( C )学科。 A.理论性 B.原理性 C.工程性 D.心理性 6.从结构化的瀑布模型看,在它的生命周期中的八个阶段中,下面的几个选项中哪个环节出错,对软件的影响最大( C )。 A、详细设计阶段 B、概要设计阶段 C、需求分析阶段 D、测试和运行阶段 7.软件工程的出现主要是由于( C )。 A.程序设计方法学的影响 B.其它工程科学的影响 C. 软件危机的出现 D.计算机的发展 8.在软件工程项目中,不随参与人数的增加而使软件的生产率增加的主要问题是( D ) A、工作阶段间的等待时间 B、生产原型的复杂性 C、参与人员所需的工作站数 D、参与人员之间的通信困难 9. 软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C ) A、硬件环境 B、软件开发的环境 C、软件开发工具和软件开发的环境 D、开发人员的素质 10. 在下面的软件开发方法中,哪一个对软件设计和开发人员的开发要求最高( B ) A、结构化方法 B、原型化方法 C、面向对象的方法 D、控制流方法 11. 软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为( A ) A、瀑布模型 B、对象模型 C、螺旋模型 D、层次模型 12.在结构化分析方法中,用以表达系统内数据的运动情况的工具有( B ) A. 数据流图 B. 数据字典 C. 结构化语言 D. 判定表与判定树

软件工程试题答案

一、选择题(每题2分,共40分) 1.软件项目的可行性研究要进行一次( C )需求分析。 A.详细的B.全面的C.简化的、压缩的D.彻底的 2、系统流程图用于可行性分析中的( A )的描述。 A.当前运行系统B.当前逻辑模型C.目标系统D.新系统 3、程序的三种基本控制结构的共同特点是( D ) A.不能嵌套使用B.只能用来写简单程序 C.已经用硬件实现D.只有一个入口和一个出口 4、维护中,因误删除一个标识符而引起的错误是( C )副作用。 A.文档B.数据C.编码D.设计 5、( D )是以提高软件质量为目的的技术活动。 A.技术创新B.测试C.技术创造D.技术评审 6、面向对象方法学的出发点和基本原则是尽可能模拟人类习惯的思维方式,分析、 设计和实现一个软件系统的方法和过程,尽可能接近于人类认识世界解决问题的方法和过程。因此面向对象方法有许多特征,如软件系统是由对象组成的; ( C );对象彼此之间仅能通过传递消息互相联系;层次结构的继承。 A.开发过程基于功能分析和功能分解B.强调需求分析重要性

C.把对象划分成类,每个对象类都定义一组数据和方法D.对既存类进行调整 7、原型化方法是用户和设计者之间执行的一种交互构成,适用于( A ) 系统。 A.需求不确定性高的B.需求确定的C.管理信息D.实时 8、为了提高测试的效率,应该( D )。 A.随机地选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.选择发现错误可能性大的数据作为测试数据 9、使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标 准。 A.程序的内部逻辑B.程序的复杂结构C.使用说明书D.程序的功能 10、开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做 ( C ) A.软件工程 B.软件周期 C.软件危机 D.软件产生 11、软件按照设计的要求,在规定时间和条件下达到不出故障,持续运行的要求 的质量特性称为( B )。

软件工程课后参考答案

第一章课后参考答案 1.什么是软件危机?它们有哪些典型表现?为什么会出现软件危机? “软件危机”是指计算机软件的“开发”和“维护”过程中所遇到的一系列“严重问题”。这些问题决不仅仅是不能正常运行的软件才具有的,实际上,几乎“所有软件”都不同程度地存在这些问题。 它们有以下表现: (1)对软件开发成本和进度的估计常常很不准确; (2)用户对“已完成的”软件系统不满意的现象经常发生; (3)软件产品的质量往往靠不住; (4)软件常常是不可维护的; (5)软件通常没有适当的文档资料; (6)软件成本在计算机系统总成本中所占的比例逐年上升; (7)软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势。 出现软件危机的主要原因 (1)与软件本身的特点有关 (2)与软件开发和维护过程中使用的方法不正确有关

2.假设自己是一家软件公司的总工程师,当把图1.1给手下的软件工程师们观看,告诉他们及时发现并改正错误的重要性时,有人不同意这个观点,认为要求在错误进入软件之前就清楚它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么,一个人怎么能在设计阶段清除它呢?”应该怎么反驳他? 答:在软件开发的不同阶段进行修改付出的代价是很不相同的,在早期引入变动,涉及的面较少,因而代价也比较低;在开发的中期,软件配置的许多成分已经完成,引入一个变动要对所有已完成的配置成分都做相应的修改,不仅工作量大,而且逻辑上也更复杂,因此付出的代价剧增;在软件“已经完成”时在引入变动,当然付出的代价更高。一个故障是代码错误造成的,有时这种错误是不可避免的,但要修改的成本是很小的,因为这不是整体构架的错误。 3.什么是软件工程?它有哪些本质特征?怎么用软件工程消除软件危机? 软件工程是指导知道计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。 本质特征: (1)软件工程关注于大型软件的构造 (2)软件工程的中心课题是控制复杂性 (3)软件经常变化

三次软件危机的表现及起因

软件危机:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 第一次软件危机(60年代~70年代) 20 世纪60年代以前,计算机刚刚投入实际使用,这个时期主要的软件开发方式是使用机器语言或者汇编语言在特定的机器上进行软件的设计与编写。此时的软件规模较小,文档资料通常也不存在,也不需要使用系统化的软件开发方法,基本上是个人设计编码、个人操作使用的的私人化的软件生产模式。这个时代的程序一个典型特征就是依赖特定的机器,程序员必须根据所使用的计算机的硬件特性编写特定的程序。 然而从60年代中期开始,大容量、高速度计算机问世,使计算机的应用范围迅速扩大,软件开发急剧增长。高级语言开始出现;操作系统的发展引起了计算机应用方式的变化;大量数据处理导致第一代数据库管理系统的诞生。软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出,程序设计的复杂度也随之增长。原来的个人设计、个人使用的方式不再能满足要求,迫切需要改变软件生产方式,提高软件生产率,软件危机开始爆发。 1968 年北大西洋公约组织的计算机科学家在联邦德国召开国际会议,第一次讨论软件危机问题,并正式提出“软件工程”一词,从此一门新兴的工程学科——软件工程学——为研究和克服软件危机应运而生,“软件危机”的概念也是在那次会议上由F. L. Bauer提出的。 当时业界最迫切的需求是需要在不损失性能的前提下获得更好的“抽象性”和“可移植性”。此时,比汇编和机器语言更高级的语言相聚诞生,典型的代表莫过于C语言(1972年)。C语言让程序员能让程序员编写的代码在没有或只有较少机器相关性的同时又有不输于汇编语言的性能,而且丰富的语言特性也使得编程难度大大降低,成功的解决了“抽象性”和“可移植性”的问题。 早期出现的软件危机主要表现在: ① 软件开发费用和进度失控。费用超支、进度拖延的情况屡屡发生。有时为了赶进度或压成本不得不采取一些权宜之计,这样又往往严重损害了软件产品的质量。 ②软件的可靠性差。尽管耗费了大量的人力物力,而系统的正确性却越来越难以保证,出错率大大增加,由于软件错误而造成的损失十分惊人。

软件体系结构复习题及答案

概述部分 1、请分析软件危机的主要表现和原因。 表现: a)软件成本日益增加:开发、部署与应用成本高 b)开发进度难以控制:不能按期完成 c)软件质量差:错误率高,不能满足用户的需求,没有生命力 d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误 原因: 1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高 2、请说明软件规模与复杂度对软件过程的影响及解决方法。 软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。 3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束) 软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 4、请简述软件重用的含义和意义。可重用元素包括哪些种类? 软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过 程。(含义) 可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。 (种类) 可重用的元素越大,我们就说重用的粒度(Granularity)越大。 软件重用是软件产业工业化、工程化的重要手段。软件重用对提高生产率,降低 开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。 (意义) 5、请简述常用的构件实现模型及其意义。 实现模型:

1.CORBA 2.EJB https://www.sodocs.net/doc/6810220961.html, / DCOM / COM+ 意义: 这些模型通常都定义了构件的实现方式、接口定义、访问方法等。符合这些标准的任何构件都有很高的重用能力。 描述部分 6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。 数据视图 风格部分

软件与软件危机

软件、软件危机、软件工程 [返回] 1、软件及其特性 第一个写软件的人是Ada(Augusta Ada Lovelace),在1860年代他尝试为Babbage (Charles Babbage)的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算机发展的史册。 在1950年代,软件伴随着第一台电子计算机的问世诞生了。以写软件为职业的人也开始出现,他们多是经过训练的数学家和电子工程师。1960年代美国大学里开始出现授予计算机专业的学位,教人们写软件。 本世纪中叶软件产业从零开始起步,在短短的50年的时间里迅速发展成为推动人类社会发展的龙头产业,并造就了一批百万、亿万富翁。随着信息产业的发展,软件对人类社会性越来越重要。 首先要说明的是,软件对于人类而言是一个全新的东西,其发展历史不过四、五十年。人们对软件的认识经历了一个由浅到深的过程。 在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过程。而且,除了源代码往往没有软件说明书等文档。 从60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。这一软件开发的方法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件危机”就这样开始了! “软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、容易修改和扩充。 现在,被普遍接受的软件的定义是:

软件危机案例

软件危机案例 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

摘要:软件系统的规模越来越大,复杂程度越来越高,软件可靠性问题也越来越突出。原来的个人设计,个人使用的方式不再能满足要求,迫切需要改变软件方式,提高软件生产率,软件危机开始爆发。 关键字:软件系统规模,软件可靠性,软件危机 软件危机案例: IBM公司的 OS/360,共约100万条指令,花费了5000个人力资源;经费达数亿美元,而结果却令人沮丧,错误多达2000个以上,系统根本无法正常运行。 OS/360系统的负责人Brooks这样描述开发过程的困难和混乱:“…像巨兽在泥潭中作垂死挣扎,挣扎得越猛,泥浆就沾得越多,最后没有一个野兽能够逃脱淹没在泥潭中的命运。…”1963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 I=1,3 误写为:DO 5 I=1 . 3 1967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降落伞而烧毁。 软件危机的定义:计算机软件的开发和维护过程所遇到的一系列严重问题. 软件危机的特征:

?对软件开发成本和进度的估计常常很不准确。 ?用户对“已完成的”软件系统不满意的现象经常发生。 ?软件产品的质量往往靠不住。 ?软件常常是不可维护的。 ?软件通常没有适当的文档资料。 ?软件成本在计算机系统总成本中所占的比例逐年上升。 ?软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 软件危机产生的原因: ①一方面与软件本身的特点有关 ②另一方面也和软件开发与维护的方法不正确有关 ?软件危机的特征: ?对软件开发成本和进度的估计常常很不准确。 ?用户对“已完成的”软件系统不满意的现象经常发生。 ?软件产品的质量往往靠不住。 ?软件常常是不可维护的。 ?软件通常没有适当的文档资料。 ?软件成本在计算机系统总成本中所占的比例逐年上升。

《软件工程》作业及答案

《软件工程》作业 第一章 1.什么是软件危机,它有哪些典型表现? 答: 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。概括地说,软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。 软件危机典型表现:对软件开发成本和进度的估计常常很不准确。用户对“已完成的”软件系统不满意的现象经常发生。软件产品的质量往往靠不住。软件常常是不可维护的。软件通常没有适当的文档资料。软件成本在计算机系统总成本中所占的比例逐年上升。软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。 产生软件危机的原因:一方面与软件本身的特点有关,另一方面也和软件开发与维护的方法不正确有关。软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。管理和控制软件开发过程相当困难。软件是规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。目前相当多的软件专业人员对软件开发和维护还有不省糊涂观念,在实践过程中或多或少地采用了错误的方法和技术,这是使软件问题发展成软件危机的主要原因。 2.简述产生软件危机的原因和解决的思路。 答:软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。 解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要

出路。 3.什么是软件工程?它有哪些本质特性? 答: 软件工程是指导计算机软件开发和维护的一门工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它。 软件工程本质特性:1、软件工程关注于大型程序的构造;2、软件工程的中心课题是控制复杂性;3、软件经常变化;4、开发软件的效率非常重要;5、和谐地合作是开发软件的关键;6、软件必须有效地支持它的用户;7、在软件工程领域中是由具有一种文化背景的人替具有另一种文化背景的人创造产品。 4.软件工程是如何用来消除软件危机的? 软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。 5.假设你是某软件开发企业的CEO,当你把教材P.4的图1.1给手下的软件工程师们看,同时告诉他们应及早发现并改正错误的重要性时,有人不以为然,认为要求在错误进入软件前就发现并清除它们是不现实的,并举例说:“如果一个故障是编码错误造成的,那么又如何能够在设计阶段就发现并清除呢?”那你应该如何说服? 首先要对错误造成工作的延误或一些问题表示歉意。错误是难免,关键是要虚心接受,在以后工作中要更加认真,避免错误机率降到最低。在编码过程中要,首先要在头脑清醒,要保持工作前有足够的睡眠。这样错误机会也会

相关主题