软件工程题目精选_第1页
软件工程题目精选_第2页
软件工程题目精选_第3页
软件工程题目精选_第4页
软件工程题目精选_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1什么是软件危机?主要表现在哪些方面?软件开发技术的进步未能满足发展的要求。在软件开发中遇到的问题找不到解决的办法,问题积累起来,形态尖锐的矛盾,导致了软件危机。表现方面: (1) 用户对开发出的软件很难满意。(2) 软件产品的质量往往靠不住。 (3) 一般软件很难维护。 (4) 软件生产效率很低。 (5) 软件开发成本越来越大。 (6) 软件成本与开发进度难以估计。(7)软件技术的发展远远满足不了计算机应用的普及与深入的需要。4什么是软件件工程?它目目标和内容是是什么?软件工程:就是是用科学的知知识工程和技技术原理来定定义,开发,维维护软件的一一门学科。软软件工程的目目标:付出较较低开发成本

2、本;达到要求求的功能;取取得较好的性性能;开发的的软件易于移移植;只需较较低的维护费费用;能按时时完成开发任任务,及时交交付使用;开开发的软件可可靠性高。软软件工程的内内容:研究内内容包括开发发技术和开发发管理两个方方面。开发技技术主要研究究:软件开发发方法,开发发过程,开发发工具和环境境。开发管理理主要研究:软件管理学学,软件经济济学,软件心心理学。5软件工程面面临的问题是是什么?软件工程需要解解决的问题:软件的费用用,可靠性,可可维护性,软软件生产率和和软件的重用用。6什么是软件件生存周期?它有哪几个个活动?软件生存周期:一个软件从从提出开发要要求开始直到到该软件报废废为止的整个个时期。包

3、括:可行性分分析和项目开开发计划,需需求分析,概概要设计,详详细设计,编编码,测试,维维护。7什么是软件件生存周期模模型?有哪些些主要模型?生存周期模型:描述软件开开发过程中各各种活动如何何执行的模型型。对软件开开发提供强有有力的支持,为为开发过程中中的活动提供供统一的政策策保证,为参参与开发的人人员提供帮助助和指导,是是软件生存周周期模型化技技术的基础,也也是建立软件件开发环境的的核心。主要要有:瀑布模模型,增量模模型,螺旋模模型,喷泉模模型,基于知知识的模型,变变换模型。10、什么是软软件过程?为了获得高质量量软件所需要要完成的一系系列任务的框框架,规定了了完成各项任任务的工作步步骤。在完

4、成成开发任务时时必须进行一一些开发活动动,并且使用用适当的资源源,在过程结结束时将把输输入转化为输输出。11、瀑布模型型的特点及优优点?特点:(1)各个阶段段的顺序性和和依赖性; (2)划分逻逻辑设计与物物理设计,尽尽可能推迟程程序的物理实实现; (3)每个阶段段必须完成规规定的文档,对对其中问题通通过复审及早早发现,及早早解决。优点:可强迫开发人员员采用规范的的方法(例如如,结构化技技术); 严格地规定定了每个阶段段必须提交的的文档;要求每个阶段交交出的所有产产品都必须经经过质量保证证小组的仔细细验证。12、螺旋模型型的优点?对可选方案和约约束条件的强强调有利于已已有软件的重重用,也有助助于

5、把软件质质量作为软件件开发的一个个重要目标;减少了过多多测试(浪费费资金)或测测试不足(产产品故障多)所所带来的风险险;在螺旋模型中维维护只是模型型的另一个周周期,在维护护和开发之间间并没有本质质区别。螺旋模型主要适适用于内部开开发的大规模模软件项目。项项目越大,风风险也越大,因因此,进行风风险分析的必必要性也越大大。此外,只只有内部开发发的项目,才才能在风险过过大时方便地地中止项目。13、快速原型型的分类、特特点及使用策策略?分类:探索型、实实验型、进化化型 特点:尽快快向用户提供供一个可在计计算机上运行行的目标系统统的模型,以以便使用户和和开发者在目目标系统应该该“做什么”这个问题上上尽可

6、能快地地达成共识。快速原型应该具具备的第一个个特点是“快速”;快速原型应该具具备的第二个个特点是“容易修改”。原型的“修改试用反馈”过程可能重重复多遍。使用策略:废弃弃策略和追加加策略。14、软件工程程的目标?付出较低开发成成本;达到要要求的功能;取得较好的的性能;开发发的软件易于于移植;只需需较低的维护护费用;能按按时完成开发发任务,及时时交付使用;开发的软件件可靠性高。17、快速原型型开发的步骤骤?快速开发、需求求、构造原形形、原形、运运行原形、评评价原形、修修改意见。1、可行性研究究的任务是什什么?可行研究的任务务:首先需要要进行概要的的分析研究,初初步确定项目目的规模,目目标,约束和和

7、限制。分析析员再进行简简要的需求分分析,抽象出出项目的逻辑辑结构,建立立逻辑模型。从从逻辑模型出出发,经过压压缩的设计,探探索出若干种种可供选择的的解决方法,对对每种解决方方法都要研究究它的可行性性。主要从四个方面面考虑:.技术可行性性:.经济可行性性:.法律可行性性:(4).管理可行性性:2、可行性研究究有哪些步骤骤?.确定项目规规模和目标;.研究正在运运行的系统;.建立新系统统的高层逻辑辑模型;.导出和评价价各种方案;.推荐可行方方案;.编写可行性性研究报告;3、可行性研究究过程包括哪哪些?1. 复查系统统规模和目标标2. 研究目目前正在使用用的系统3. 导出新系系统的高层逻逻辑模型4.

8、进一步定定义问题5. 导出和评评价供选择的的解法6. 推荐行动方方针7. 草拟开开发计划8. 书写文档档提交审查4、什么是数据据流图?其作作用是什么?数据流图(DFFD):以图图形的方式描描述数据在系系统中流动和和处理的逻辑辑过程。只反反映系统必须须完成的逻辑辑功能,是一一种功能模型型。5、什么是数据据字典?其作作用是什么?共有哪些条条目? 数据字典(DDD)用来定义义数据库流图图中的各个成成分的具体含含义。有以下下四类条目:数据流,数数据项,数据据存储,基本本加工。10、系统流程程图是概括地描绘物物理系统的传传统工具,表表达的是数据据在系统各部部件之间流动动的情况,11、原型化方方法主要用于

9、于解决什么问问题?试说明明这种方法的的主要优缺点点。原型化方法主要要用于解决在在产品开发的的早期阶段需需求不确定的的问题,用户户、经理和其其他非技术项项目风险承担担者发现在确确定和开发产产品时,原型型可以使他们们的想象更具具体化。 这这种方法的主主要优点如下下:(1) 明明确并完善需需求 原型作作为一种需求求工具,它初初步实现所理理解的系统的的一部分,用用户对原型的的评价可以指指出需求中的的许多问题。(2) 探探索设计选择择方案 原型型作为一种设设计工具,可可以探索不同同的用户界面面技术,使系系统达到最佳佳的可用性,并并且可以评价价可能的技术术方案。(3) 发展展为最终的产产品 原型作作为一种

10、构造造工具,是产产品最初子集集的完整功能能实现,通过过一系列小规规模的开发循循环,你可以以完成整个产产品的开发。(4) 这这种方法的主主要缺点包括括:(1) 用户户看到一个正正在运行的原原型便以为产产品即将完成成,他们会要要求不再进行行产品重建,而而只是对原型型进行一些修修改就交付。由由于原型没有有考虑软件的的总体质量和可维护性性,交付原型型往往造成欲速则不达达的情况。(2) 开发人人员为了快速速构造原型,可可能会采用不不合适的操作作系统或程序序设计语言,也也可能使用一一些效率低的的算法。在一一段时间的开开发之后,他他们往往已经经习惯了这些些选择,于是是便在系统中中参杂了这些些不理想的选选择。

11、 1、什么是需求求分析?需求求分析阶段的的基本任务是是什么? 需求分析:开发发人员准确地地理解用户的的要求,进行行细致的调查查分析,将用用户非形式的的需求陈述转转化为完整的的需求定义,再再由需求定义义转换到相应应的需求规格格说明的过程程。 基本任务: 问题识别:双方确定对对问题的综合合需求,这些些需求包括功功能需求,性性能需求,环环境需求,用用户界面需求求。 分析与综合合,导出软件件的逻辑模型型 。编写文档:包括编写需求规格说说明书,初步用户使使用手册,确认测试试计划,修改完善软软件开发计划划 。2、什么是结构构分析方法?该方法使用用什么描述工工具? 结构化分析:简简称SA,面向数数据流进行数

12、数据分析的方方法。采用自自顶向下逐层层分解的分析析策略。顶层层抽象地描述述整个系统,底底层具体地画画出系统工程程的每个细节节。中间层则则是从抽象到到具体的过渡渡。使用数据据流图,数据据字典,作为为描述工具,使使用结构化语语言,判定表表,判定树描描述加工逻辑辑。3、结构化分析析方法通过哪哪些步骤来实实现? 了解当前系统统的工作流程程,获得当前前系统的物理理模型。 抽象出当前前系统的逻辑辑模型。 建立目标系系统的逻辑模模型。 作进一步补补充和优化。14、从哪些方方面验证软件件需求的正确确性(1) 一致性性所有需求必必须是一致的的,任何一条条需求不能和和其他需求互互相矛盾。(2) 完整整性需求必须须

13、是完整的,规规格说明书应应该包括用户户需要的每一一个功能或性性能。(3) 现实性指指定的需求应应该是用现有有的硬件技术术和软件技术术基本上可以以实现的。对对硬件技术的的进步可以做做些预测,对对软件技术的的进步则很难难做出预测,只只能从现有技技术水平出发发判断需求的的现实性。(4) 有效效性必须证明明需求是正确确有效的,确确实能解决用用户面对的问问题。1、什么是总体体设计?总体体设计的任务务是什么?总体设计又称为为概要设计或或初步设计。确定系统功能是实现。基本任务是:建立软件系统结构、数据结构和数据库的设计、编写概要设计文档。2、总体设计分分为哪两个阶阶段?系统设计阶段,确确定系统的具具体实现方

14、案案;结构设计计阶段,确定定软件结构。3、总体设计过过程包括几个个步骤?1. 设想供选选择的方案22. 选取合合理的方案33. 推荐最最佳方案4. 功能分解解5. 设计软软件结构6. 设计数据据库7. 制定测测试计划8. 书写文档档9. 审查和和复审4、模块化是把把程序划分成成独立命名且且可独立访问问的模块,每每个模块完成成一个子功能能,把这些模模块集成起来来构成一个整整体,可以完完成指定的功功能满足用户户的需求。5、模块化的优优点 (1)模块块化使软件容容易测试和调调试,因而有有助于提高软软件的可靠性性。(2)模块化也也有助于软件件开发工程的的组织管理。66、抽象就是是抽出事物的的本质特性而

15、而暂时不考虑虑它们的细节节。7、抽象象化包括哪些些?过程的抽抽象 、数据据抽象。8、模块的独独立程度的定定性标准度量量是什么?好好的模块应满满足什么标准准?内聚和耦耦合;高内聚聚低耦合。99、什么耦合合?模块间的的耦合有哪些些?指衡量不同模块块彼此间互相相依赖(连接)的紧密程度度;有非直接接耦合、标记记耦合、数据据耦合 、控制耦合合 、外部耦合合、公共耦合合和内容耦合合 。10、非直接接耦合如果两两个模块之间间没有直接关关系,它们之之间的联系完完全是通过主主模块的控制制和调用来实实现的,这就就是非直接耦耦合。这种耦耦合的模块独独立性最强。11、标记耦合如果一组模块通过参数表传递记录信息,就是标

16、记耦合。这个记录是某一数据结构的子结构,而不是简单变量。12、数据耦合如果一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的,则称这种耦合为数据耦合。13、控制耦合如果一个模块通通过传送开关关、标志、名名字等控制信信息,明显地地控制选择另另一模块的功功能,就是控控制耦合。114、外部耦耦合一组模块块都访问同一一全局简单变变量而不是同同一全局数据据结构,而且且不是通过参参数表传递该该全局变量的的信息,则称称之为外部耦耦合。15、公共耦耦合 若一组组模块都访问问同一个公共共数据环境,则则它们之间的的耦合就称为为公共耦合。公公共的数

17、据环环境可以是全全局数据结构构、共享的通通信区、内存存的公共覆盖盖区等。16、内容耦合合如果发生下列情情形,两个模模块之间就发发生了内容耦耦合 (1) 一一个模块直接接访问另一个个模块的内部部数据; (2) 一个个模块不通过过正常入口转转到另一模块块内部;(33) 两个模模块有一部分分程序代码重重迭(只可能出现现在汇编语言言中);(44) 一个模模块有多个入入口。17、内聚 衡量一个模模块内部各个个元素彼此结结合的紧密程程度。功能内内聚 ,信息内聚聚 ,通信内聚聚 ,过程内聚聚,时间内聚聚,逻辑内聚聚,巧合内聚聚。19、功能内内聚 一个模块中各个个部分都是完完成某一具体体功能必不可可少的组成部

18、部分,或者说说该模块中所所有部分都是是为了完成一一项具体功能能而协同工作作,紧密联系系,不可分割割的。则称该该模块为功能能内聚模块。26、扇出是一个模块直接控制(调用)的模块数目。27、扇入 一个模块的扇入表明有多少个上级模块直接调用它。31、逐步求精精、分层过程程与抽象等概概念之间的相相互关系如何何?“自顶向下,逐逐步求精”是Niklaaus Wiirth提出出的设计策略略:即将软件件的体系结构构按自顶向下下方式,对各各个层次的过过程细节和数数据细节逐层层细化,直到到用程序设计计语言的语句句能够实现为为止,从而最最后确立整个个的体系结构构。这样的结构实际际就是一个模模块的分层结结构,即分层层

19、的过程。在在实施时,采采用抽象化的的方法,自顶顶向下,给出出不同的抽象象层次。在最最高的抽象层层次上,可以以使用问题所所处环境的语语言概括地描描述问题的解解法。而在较较低的抽象层层次上,则采采用过程化的的方法。在描描述问题的解解法时,我们们可以配合使使用面向问题题的术语和面面向现实的术术语。但最后后在最低的抽抽象层次上,应应使用能够直直接实现的方方式来描述这这个解法。32、什么是软软件结构图?简述软件结结构设计优化化准则。软件系统的模块块层次结构,反反映了整个系系统的功能实实现,即将来来程序的控制制体系。准则则:高内聚低低耦合、作用用范围在控制制范围内、软软件的深度、宽宽度、扇入、扇扇出适当、

20、模模块大小适中中、接口简单单清晰易懂。33、什么是模模块的控制范范围和作用范范围?他们的的关系如何?控制范围:是模模块本身和它它的下属模块块的集合。作作用范围:模模块中的一个个判定影响的的所有模块的的集合。作用用范围应该在在控制范围内内。33、什么是变变换流?什么么是事物流?变换流由输入、变变换(或处理理)、输出三三部分组成。事物流某个加工工将它的输入入流分离成许许多发散的数数据流,形成成许多加工路路径,并根据据输入选择其其中一个路径径来执行。1、 详细设计计的基本任务务是什么?有有那几种描述述方法?设计模块的数据据结构、设计计数据库的物物理结构、设设计模块的详详细算法、其其它(代码设设计、输

21、入/输出格式设设计、人机对对话设计)、编编写详细设计计说明书、评评审。1、软件测试的的目的是什么么?软件测试中中,应注意哪哪些原则?答:软件测试的的目的是为了了发现软件的的错误。软件件测试中应注注意的原则有有:(1)测试用例例应由输入数数据和预期的的输出数据两两部分组成。(2)测试且例不仅选用合理输入数据,还要选择不合理的输入数据。(3)除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。 (4)应制定测试计划并严格执行,排除随意性。 (5)长期保留测试用例。 (6)对发现错误较多的程序段,应进行更深入的测试。 (7)程序员应避免测试自己的程序。2、什么是白盒盒测试法?有哪

22、些覆盖盖标准?试对他们的的检错能力进进行比较?答:白盒法测试试法把测试对对象看作一个个打开的盒子子,测试人员员须了解程序序内部结构和和处理过程,以以检查处理过过程的细节为为基础,对程程序中尽可能能多的逻辑路路径进行测试试,检验内部部控制结构和和数据结构是是否有错,实实际的运行状状态与预期的的状态是否一一致。白盒法有下列几几种覆盖标准准:语句覆盖盖:设计若干干个测试用例例,运行被测测程序,使得得每一可执行行语句至少执执行一次。判判定覆盖:设设计若干个测测试用例,运运行被测程序序,使得程序序中每个判断断的取真分支支和取假分支支至少经历一一次。条件覆覆盖:设计若若干个测试用用例,运行被被测程序,使使

23、得程序中每每个判断的每每个条件的可可能取值至少少执行一次。判判定/条件覆盖:设计足够的的测试用例,使使得判断中每每个条件的所所有可能取值值至少执行一一次,同时每每个判断中的的每个条件的的可能取值至至少执行一次次。 条件件组合覆盖:设计足够的的测试用例,运运行被测程序序,使得每个个判断的所有有可能的条件件取值组合至至少执行一次次。路径覆盖盖:设计足够够的测试用例例,覆盖程序序中所有可能能的路径。3、什么是黑盒盒测试法?采用黑盒技技术测试用例例有哪几种方方法?这些方法各各有什么特点点?答:黑盒测试法法把被测试对对象看成是一一个黑盒子,测测试人员完全全不考虑程序序的内部结构构和处理过程程,只在软件件

24、接口处进行行测试,依据据需求规格说说明书,检查查程序是否满满足功能要求求。采用黑盒技术测测试用例的方方法有:等价类的划分、边边界值分析、错错误推测和因因果图。等价类的划分:是将输入数数据按有效的的或无效的(也称合理的的或不合理的的)划分成若干干个等价类,测测试每个等价价类的代表值值就等于对该该类其他值的的测试。这样样就把漫无边边迹的随机测测试改为有针针对性的等价价类测试,用用少量有代表表性的例子代代替大量测试试目的相同的的例子,能有有效地提高测测试效率。但但这个方法的的缺点是没有有注意选择某某些高效的、能能够发现更多多错误的测试试用例。边界界值分析法:是将测试边边界情况作为为重点目标,选选取正

25、好等于于、刚刚大于于和刚刚小于于边界值的测测试数据。这这种方法可以以查出更多的的错误,因为为在程序中往往往在处理边边界情况时易易发生错误。错错误推测法:是在测试程程序时,人们们根据经验或或直觉推测程程序中可能存存在的错误,从从而有针对性性地编写检查查这些错误的的测试用例。因因果图:能够够有效地检测测输入条件的的各种组合可可能会引起的的错误。它的的基本原理是是通过画因果果图,把用自自然语言描述述的功能说明明转换为判定定表,最后为为判定表的每每一列设计一一个测试用例例。4、软件测试要要经过哪些步步骤?这些测试与与软件开发各各阶段之间有有什么关系?答:软件测试要要经过的步骤骤是:单元测测试集成测试确

26、认测试系统测试。单元测试:对源源程序中每一一个程序单元元进行测试,检检查各个模块块是否正确实实现规定的功功能,从而发发现模块在编编码中或算法法中的错误。该该阶段涉及编编码和详细设设计文档。集成测试:是为为了检查与设设计相关的软软件体系结构构的有关问题题,也就是检检查概要设计计是否合理有有效。确认测试:主要要是检查已实实现的软件是是否满足需求求规格说明书书中确定了的的各种需求。系统测试:是把把已确认的软软件与其他系系统元素(如硬件、其其他支持软件件、数据、人人工等)结合在一起起进行测试。以以确定软件是是否可以支付付使用。5、单元测试有有哪些内容?测试中采用用什么方法?答:单元测试主主要针对模块块

27、的以下五个个基本特征进进行测试:(1)模块接接口 (2)局部数据结结构 (3)重要的执行行路径 (44)错误处理理 (5)边界条条件 6、什么是集成成测试?非渐增式测测试与渐增式式测试有什么么区别? 渐增式测测试如何组装装模块?答:集成测试是是指在单元测测试的基础上上,将所有模模块按照设计计要求组装成成一个完整的的系统进行的的测试。非渐增式测试是是指首先对每每个模块分别别进行单元测测试,再把所所有模块组装装成一个完整整的系统进行行的测试。而而渐增式测试试就是逐个把把未经测试的的模块组装到到已经过测试试的模块上去去进行集成测测试,每加入入一个新模块块进行一次集集成测试,重重复此过程直直到程序组装

28、装完毕。渐增增式测试有两两种不同的组组装方法:自自顶向下和自自底向上结合合。两者区别是:(1)非渐增式式方法把单元元测试和集成成测试分成两两个不同的阶阶段,前一阶阶段完成模块块的单元测试试,后一阶段段完成集成测测试。而渐增增式测试往往往把单元测试试和集成测试试合在一起,同同时完成。(2)非渐增式式需要更多的的工作量,因因为每个模块块都需要驱动动模块和桩模模块,而渐增增式利用已测测试过的模块块作为驱动模模块或桩模块块,因此工作作量少。(3)渐增式可可以较早地发发现接口之间间的错误,非非渐增式最后后组装时才发发现。(4)渐增式有有利于排错,发发生错误往往往和最近新加加入的模块有有关,而非渐渐增式发

29、现接接口错误推迟迟到最后,很很难判断是哪哪一部分接口口出错。(5)渐增式比比较彻底,已已测试的模块块和新的模块块再测试。(6)渐增式点点用时间较多多,但非渐增增式所需更多多的驱动模块块和桩模块也也占用一些时时间。(7)非渐增式式开始可并行行测试所有模模块,能充分分利用人力,对对测试大型软软件很有意义义。1、软件维护有有哪些内容? 答:(1)校正正性维护。在在软件交付使使用后,一些些隐含的错误误在某些特定定的使用环境境下会暴露出出来。为了识识别和纠正错错误,修改软软件性能上的的缺陷,应进进行确定和修修改错误的过过程,这个过过程就称为校校正性维护。 (2)适应性维维护。为了使使应用软件适适应计算机

30、硬硬件、软件环环境及数据环环境的不断发发生的变化而而修改软件的的过程称为适适应性维护。 (3)完善性维维护。为增加加软件功能、增增强软件性能能、提高软件件运行效率而而进行的维护护活动称为完完善性维护。 (4)预防性维维护。为了提提高软件的可可维护性和可可靠性而对软软件进行的修修改称为预防防性维护。 2、 软件维护护的特点是什什么? 答:主要体现在在三个方面: (1) 非结构构化维护和结结构化维护。软软件的开发过过程对软件的的维护有很大大的影响。若若不采用软件件工程的方法法开发软件,则则软件只有程程序而无文档档,维护工作作非常困难,这这是一种非结结构化的维护护。若采用软软件工程的方方法开发软件件,则各阶段段都有相应的的文档,容易易进行维护工工作,这是一一种结构化的的维护。 (2) 维护的困难性。软件维护的困难性是由于软件需求分析和开发方法的缺陷。软件生存周期中的开发阶段没有严格而又科学的管理和规划,就会引起软件运行时的维护困难。(3) 软件维护的费用。软件维护的费用在总费用中的比重是在不断增加的,这是软件维护有形的代价。另外还有无形的代价,即要占有更多的资源。软件维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论