当前位置:文档之家› 软件危机出现的原因

软件危机出现的原因

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什么是数据字典?其作用是什么?它有哪些条目?数据字典是用来定义数据流图中的各个成分的具体含义的,它以一种准确的、无二义性的说明方式为系统的分析、设计及维护提供了有关元素的一致的定义和详细的描述。

他和数据流图共同构成了系统的逻辑模型,是需求规格说明书的主要组成部分。

数据字典是为分析人员查找数据流图中有关名字的详细定义而服务的,因此也像普通字典一样,要把所有条目按一定的次序排列起来,以便查阅。

数据字典有以下四类条目:数据流、数据项、数据存储、基本加工。

数据项是组成数据流和数据存储的最小元素。

源点、终点不在系统之内,故一般不在字典中说明。

12采用黑盒技术设计测试用例有哪几种方法?这些方法各有什么特点?1等价类划分。

等价类划分是将输入数据域按有效的或无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其它值的测试。

2边界值分析。

该方法是将测试边界情况作为重点目标,选取正好等于,刚刚大于或刚刚小于边界值的情况,根据这些情况选择测试用例。

3错误推测。

错误推测法没有确定的步骤,凭检验进行。

它的基本思想是列出程序中可能发生错误的情况,根据这些情况选择测试用例。

4因果图。

因果图能有效的检测输入条件的各种组合可能会引起的错误。

因果图的基本原理是通过画因果图,把用自然语言描述的功能说明转换为判定表,最后为判定表的每一列设计一个测试用例。

13何谓软件生存周期?其可以划分为几个时期?每个时期又可分为几个阶段?每个阶段的主要任务是什么?一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。

软件生存期也可以分为三个时期:计划时期、开发时期和运行时期。

软件生存周期一般可分为以下几个阶段:1问题定义:问题定义阶段必须回答的关键问题是“要解决的问题是什么?”2可行性研究:这个阶段要回答的关键问题是:对于上一个阶段所确定的问题“有行得通的解决办法吗?”,可行性研究阶段应该导出系统的高层逻辑模型,准确地估计系统的成本和效益。

3需求分析需求分析阶段的任务,主要是确定目标系统必须具备的功能,得出经用户确认的系统逻辑模型。

4总体设计:必须回答的是“概括地说,应该如何解决这个问题”。

总体设计的目标是将需求分析阶段定义的系统模型转换成相应的软件结构,以规定软件的形态及各成分间的层次关系、界面及接口要求。

5详细设计:详细设计阶段的任务是把解法具体化,理解“应该怎样具体地实现这个系统”。

详细设计亦即模块设计。

它是在算法设计和结构设计的基础上,针对每个模块的功能、接口和算法定义,设计模块内部的算法过程及程序的逻辑结构,并编写模块设计说明。

6编码:任务,是根据详细设计的结果,选择一种适合的程序设计语言,把详细设计的结果翻译成程序的源代码。

7测试:以便尽早发现程序中的错误和缺陷而进行的一个过程,有单元测试、集成测试、确认测试和系统测试4种。

8运行与维护:通过各种必要的维护措施支持软件系统能持久地满足用户的需要。

14如何做好软件质量保证工作?软件质量保证工作是软件工程管理的重要内容,软件质量保证应做好以下几个方面的工作:<1>采用技术手段和工具。

质量保证活动要贯彻开发过程始终,必须从采用技术手段和工具,尤其是使用软件开发环境来进行软件开发。

<2>组织正式技术评审,在软件开发的第一个阶段结束时,都要组织正式的技术评审。

国家标准要求单位必须采用审查、文档评审、设计评审、审计和测试等具体手段来保证质量。

<3>加强软件测试。

软件测试是质量保证的重要手段,因为测试可发现软件可发现软件中大多数潜在错误。

<4>推选软件工程规范。

用户可以自己指定软件工程规范,但标准一旦确认就应贯彻执行。

<5>对软件的变更进行控制。

软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。

<6>对软件质量进行度量。

即对软件质量进行跟踪,及时记录和报告软件质量情况。

15什么是面向对象分析,其主要思想是?面向对象分析是一个系统的开发过程中进行系统业务调查以后,按照面向对象的思想来分析问题。

主要思想:面向对象分析利用面向对象的技术来分析过程建立问题域的静态模型和动态模型,通过理解问题,抽取类对象属性和操作。

确定对象间的结构关系分析对象的状态变化以及对象的消息往来并用UML等工具来表示这一需求,对应的类/对象模型,对象关系模型对象行为模型等,来完成问题空间模型形成面向对象的分析模型。

选择:1常用耦合和内聚这两个定性度量标准来评定模块的独立性。

2结构化设计方法以数据流图为基础,按一定步骤映射成软件结构,数据流图有两种基本结构:变换型结构和事务流型结构。

3软件的定义可以简单的表述为:软件=程序+文档4测试技术有黑盒测试和白盒测试两种,根据程序的功能来设计测试用例,这种方法称为黑盒测试。

5在面向对象的系统设计过程中,有4种主要的设计组件必须定义,它们是领域组件、人机交互组件、任务管理组件和数据管理组件。

6统一建模语言是面向对象软件工程所使用的一种建模工具,其英文缩写是UML7软件结构的深度、宽度、扇人、扇出四个特征,定义了软件结构的形态。

扇出是指一个模块直接调用的下属模块的数目。

8软件维护的内容包括纠错性维护,适应性维护、完善性维护和预防性维护。

9向一个已经拖期的项目追加开发人员,可能使它完成得更晚。

鉴于这一发现的重要性,许多文献称之为Brooks定律。

10在UML的图形符号中,虚线箭头表示的是两个元素之间的依赖关系。

11软件的测试可以分为4个步骤,主要包括单元测试、集成测试、确认测试和系统测试。

12在软件的开发过程中,必须遵循的原则是抽象、信息隐蔽和模块化。

13为使软件适应运行环境的改变而进行的一类维护称之为适应性维护。

14在结构化分析中,数据字典用于详细地定义数据流图中的成分。

15耦合性和内聚性是衡量模块独立性的两个定性的标准。

16结构化程序设计是一种程序设计技术,它采用自顶向下、逐步求精的设计方法和顺序、选择、循环三种基本控制结构构造常态程序。

17结构化分析方法中,数据流图的四种基本成分为:处理、源点或终点数据存储和数据流。

18从模块内外的联系来看,结构化设计的要求是高内聚低耦合。

19在需求分析中,可从有关问题的简述中提取组成数据流图的基本成分。

通常问题简述中的动词短语将成为数据流图中的处理成分。

20如果两模块间的通信信息是若干个参数,而每个参数是单一的数据项,则称这种耦合性为数据耦合。

21模块内部的算法设计在结构化方法的详细设计阶段进行。

22定性度量模块独立性的两个标准是内聚性和耦合性。

相关主题