软件工程题库.doc

上传人:s****u 文档编号:12789575 上传时间:2020-05-24 格式:DOC 页数:10 大小:67KB
返回 下载 相关 举报
软件工程题库.doc_第1页
第1页 / 共10页
软件工程题库.doc_第2页
第2页 / 共10页
软件工程题库.doc_第3页
第3页 / 共10页
点击查看更多>>
资源描述
Test 11.1软件是如何不同于其他工程学科产生的产品?答:参考p2页最后一段。1.2软件与硬件有哪些区别?答:(1)软件是设计开发的,而不是传统意义上生产制造的。(2)软件不会磨损。(3)多数软件是定制的而不是组件组装出的。(虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需要定制的)1.3列出过程模型可能在哪三个方面彼此不同?答:(1)活动,动作和任务的总体流程,以及相互依赖关系。 (2)在每一个活动框架中,动作和任务细化的程度。(3)工作产品的定义和要求的程度。(4)质量保证活动应用的方式。(5)项目跟踪和控制活动应用的方式。(6)过程描述的详细程度和严谨程度。(7)客户与利益相关者对项目参与的程度。(8)软件团队所赋予的自主权。(9)队伍组织和角色明确程度。1.4请解释计算机软件并不需要随着时间的推移而进化这一概念是错的。答:(1)软件需要进行适应性调试,从而可以满足新的计算环境或者技术的要求。(2)软件必须升级以实现新的商业要求。(3)软件必须扩展使之具有与更多新的系统和数据库互操作的能力。(4)软件架构必须进行改建使之能适应多样化的网络环境。Test22.1描述软件开发阶段的原型模型答:p26的2.2.3的第五段。快速策划沟通建模快速设计部署交付及反馈构建原型开始于沟通,定义软件的总体目标,明确已知的需求,并大致勾画以后再进一步定义的东西。然后迅速策划一个原型开发迭代并进行建模(以快速设计的方式)。快速设计生产一个原型。对原型进行部署,然后由利益相关者进行评价,根据反馈信息进一步细化软件的要求。2.2基于组件的过程模型在软件工程中主要优点是什么?答:基于组件的过程模型促进软件重用并且可重用性有可能使开发周期减少70,项目成本减少84和提高70的生产率。2.3个人软件过程为什么没有被行业广泛采用?答:个人软件过程是一个智力挑战,需要一定程度的智力保证(例如昂贵和周期长的培训要求)这并不总是能被接受的。此外,所要求的的测量水平,对大多数的软件从业者是有一定的困难的。2.4在现在的环境下,为什么演化模型被许多人认为是最好的软件开发方法?答:由于现代软件开发的时间线越来越短,客户日趋多样化(对需求理解更难)。需求变更变得更为普遍(交付前),我们需要一种方法提供增量或进化的交付。这种模型在进化过程中可容纳的不确定性优于大多数过程模型,允许部分解决方案在一个有秩序,有计划的方法中交付,最重要的是反映出到底在建立复杂的系统时,发生了什么。Test44.1需求工程的六个步骤是什么?答案(4.1)起始 导出 精化 协商 规格说明 需求确认4.2描述需求工程师如何实现利益相关者协同合作的工作?答案(4.2.3)需求工程师的工作是标识公共区域(即所有利益相关者都同意的需求)和矛盾区域(即某个利益相关者提出的需求和其他利益相关者的需求相矛盾)以及期望的需求或特性不一致的区域区域。4.3使用分析模式在模型的分析建立过程中有什么好处?答案(4.5.2)这些分析模式在特定的应用领域内提供了一些解决方案(如类、功能、行为)。首先,分析模式提高了抽象分析模型的开发速度,通过提供可重复使用的分析模型捕获具体问题的主要需求。其次,通过建议的设计模式和可靠的通用问题解决方案,分析模式有利于把分析模型转变到设计模型。4.4在需求工程进程工作中有什么产品?答案(4.1)需求工程的目的在于为各方面提供关于问题的一个书面理解。不过依然可以得到工作产品:用户场景、功能和特征列表、需求模型或规格说明。Test 55.1描述域分析的目的。答:软件域分析是识别、分析和详细说明某个特定应用领域的公共需求,特别是那些在该应用领域内被多个项目重复使用的需求。面向对象的域分析是在某个特定应用领域内,根据通用的对象、类、部件和框架,识别、分析和详细说明公共的、可复用的能力。5.2 哪种UML(统一建模语言)在基于场景的建模图中有作用?答:用例图、泳道图、活动图。5.3 描述数据属性和数据关系的区别。答:数据属性描述数据对象本身的属性。数据关系描述数据对象如何彼此相连。5.4 描述CRC卡片三个部分的角色。答:卡片分为三部分。识别独特数据对象的类名。职责是类的属性和操作。协作者是这些类必须提供的信息是这个类需要完成的职责。5.5 列举需求模型动作产生的模型类型并解释每种模型类型的作用。答:场景模型:出自各种系统“参与者”观点的需求。数据模型:描述问题信息域的模型。面向类的模型:表示面向对象类(属性和操作)的模型,其方式为通过类的协作获得系统需求。面向流程的模型:表示系统的功能元素并且描述当功能元素在系统中运行时怎样进行数据变换的模型。行为模型:描述如何将软件行为看做是外部“事件”后续的模型。Test 66.1描述创建一个数据流图的一般过程。答:(1)第0层的数据流图应将软件或系统描述为一个泡泡。(2)应仔细标记主要的输入和输出。(3)通过把选定的处理,数据对象和数据存储分离为下一层表示而开始精化过程。(4)应使用有意义的名称标记所有的箭头和泡泡。(5)当从一个层转到另一个层时要保持信息流连续性。(6)一次精化一个泡泡。6.2建立行为模型所需要的步骤是什么?答:(1)评估所有的用例,以保证完全理解系统内的交互顺序。(2)识别驱动交互顺序的事件,并理解这些事件如何与特定的对象相互关联。(3)为每个用例生成序列。(4)创建系统状态图。(5)评审行为模型以验证准确性和一致性。6.3描述应用内容,功能、交互和配置模型的内容。答:内容模型结构元素表示应用内容要求。功能模型用户可观察到的行为,分析类中包含的交付给最终用户的操作来实现类的行为.。交互作用模型表明用户如何利用应用内容和功能。配置模型可能是服务器端和客户端属性列表所需的应用6.4 解释控制规格说明与处理规格说明。答:处理规格说明用于描述出现在求精过程中最终层次的所有流程模型的处理。处理规格说明的内容可以包括叙述性正文、处理算法的程序设计语言描述、数学方程、表或UML活动图。控制规格说明使用两种不同的方式表现系统的行为。CSPEC包含一个状态图,该图是行为的序列说明,也可能包括程序激活表即行为的组合说明。Test77.1.列出三个可以作为一个评估设计价值的指南的特点答案(Section 7.2.1):(1)设计实现了所有包含在需求模型中的明确要求,而且必须满足利益相关者期望的所有隐含要求。(2)对于那些生成代码的人和那些进行测试以及随后维护软件的人而言,设计必须是可读的,可理解的指南。(3)设计必须提供软件的一全貌,从实现的角度说明数据域,功能域和行为域。7.2说明如何通过各个模块功能独立实现有效的进行模块化设计? 答案(Section 7.3.5):模块功能的独立的实现是通过与其它模块或系统元件模块独立(高内聚),并防止过度交互(低耦合)。独立的模块更易于开发,维护和测试,因为副作用的影响被降低了(比如错误的传播)。这也使得它更容易执行并行执行模块。7.3描述信息隐藏适用于软件设计的原则。 答案(7.3.6): 信息隐藏的原则意味着模块相互共享的信息只有在“需要知道”的基础上实现一些特定的软件功能。隐藏强制限制两个模块程序的细节并且模块的任何数据结构都是本地的。期末考试题 7.4列出所需的软件设计和每个角色的完整规范的四个设计模型。 答案(7.4): 数据设计元素创建在高抽象级上描述用户的数据观点或信息观点。体系结构设计元素显示特定的软件分析模型与硬件元素之间的关系和协作。接口设计元素接口描述了一组描述外部可见的类的行为的和提供对业务访问的操作。构件级设计元素描述了每一个软件构件的内部细节。Test 88.1体系结构风格的组成元素有哪些?答:执行所需系统功能的一组组件。允许组件之间相互通信的一组接口。用于描述组件集成形成系统可能方式的约束条件。使设计者通过分析构件的已知属性以明白系统整体性能的语义模型。8.2什么是原型?答:原型是表示核心抽象的类或模式,该抽象对于目标系统体系结构的设计非常关键。8.3在数据流图中如何区分事务中心与变换中心?答:事务中心把外部信息流转换成系统内部的许多动作路径之一。事务中心把流入的外部信 息映射到流出的外部世界信息中。 期末考试问题:8.4描述存在于结构设计中类型的依赖关系。答:共享依赖表示使用相同资源的消费者或为相同消费者生产的生产者之间的依赖关系。流依赖表示资源的生产者和消费者间的依赖关系。约束依赖表示在一组活动间相关控制流上的约束。Test99.1从面向对象的观点和传统观点上看构件级设计有什么不同?答案(Section 9.1.1 and 9.1.2):面向对象的视角注重细化来自于问题域和基础设施与的设计类。类需要被细化,确定合适接口、细化属性并定义实现它们的数据结构,描述每个操作的处理流程。传统的视角细化三种构件:控制构件,问题域模块和基础设施模块。这需要足够详细的表示出程序模块的数据结构、接口和算法,以指导生成用编程语言书写的源代码。9.2用软件工程术语描述内聚性与耦合性的不同。答案(9.2.3节和9.2.4节):内聚性意味着构件或者类只封装那些相互关联密切,以及与构件或类自身有密切关系的属性和操作。耦合是类之间彼此联系程度的一种定性度量9.3描述WEB应用的构件级设计答案(9.4.1和9.4.2节):WebAPP构件级设计通常包括内容设计元素的功能设计元素。构件级内容设计关注内容对象,以及包装展示给WebApp最终用户的方式。功能体系结构描述了关键的功能构件和这些构件时如何进行交互的。9.4在基于构件的软件工程中领域工程的目的是什么?答案(9.6.1节):领域工程的目的是识别、构件、分类和传播一组软件构件,这些构件再某一特定的应用领域中可以使用于现有的和未来的软件。9.5软件开发中完成构件级设计的步骤答案(9.3节):(1).标识出所有与问题与相对应的设计类(2)确定所有与基础设施与相对应的设计类(3).细化所有不需要作为可复用构件的设计类(4)说明持久数据源(数据库和文件)并确定管理数据源所需要的类(5)开发并且细化类或构件的行为表示(6)细化部署图以提供额外的实现细节(7)考虑每个构建及设计表示,并且时可考虑其他可选方案9.6描述一下在构件级设计中构件合格性检验、适应性修改与组合完成了什么?答案(9.6.2节):(1)构件合格性检验功能是检查库构件并且确保功能适合新的应用程序。(2)构件适应性修改是通过构建包装处理在向新应用程序中加入库构件时发生的冲突(3)构建组装经过合格性检验的、适应性修改的以及开发的构件组装到新的应用系统的体系结构中Test1010.1列举出建立用户界面时所需要遵循的3条准则。答案:用户操纵设置减少用户的记忆负担保持界面一致10.2在进行进化(或螺旋)式的用户界面开发过程之前需要先完成什么框架活动?答案:用户,任务以及分析环境界面设计界面构造界面确认10.3列举出在大多数用户界面发展中的4个用户界面设计问题答案: 响应时间 帮助设施 错误处理菜单和命令标识 应用系统的可访问性 国际化10.4WebApp界面的主要设计目标都有什么?答案:WebAPP 界面需要设计成一个能为终端用户回答以下3个主要问题的界面:我在哪里我现在能做什么?我去过哪里,我将去哪里?10.5用户界面设计的哪些部分可以不需要建立工作计算机原型来评估?答案:(1)系统及其界面的需求模型或书面规格说明的长度和复杂性在一定程度上表示了用户学习系统的难度。(2)指定用户任务的个数以及每个任务动作平均数在一定程度上表示了系统的交互时间和系统的总体效率。设计模型中动作、任务和系统状态的数量反映了用户学习系统时所要记忆内容的多少(3)界面风格、帮助设施和错误处理协议在一定程度上表示了界面的复杂度和用户的接受程度。Test 1414.1为什么回归测试是任何集成测试程序的一个重要组成部分?答:集成测试的目标是确保各自独立的模块运行正确,当添加到相同的程序(总是可能存在无法预料的副作用)互不干扰。回归测试由现有的程序变化检查传播到其他模块的缺陷。14.2描述面向对象的单元测试。答:对面向对象软件的类测试等同于对传统软件的单元测试。所有的关注点都在于设计并测试适当的操作顺序来检验所有类的状态。对类进行单独地操作或算法测试都是没有意义的。14.3列出四种类型的系统测试。答:恢复测试、安全测试、压力测试、性能测试。14.4确认测试的目标和验收测试的目标关键的不同之处在于?答案:在确认测试中,测试团队确保每一个软件功能或工作特性符合规格说明。在验证测试中,测试团队需要保证软件能够在目标用户的正常工作环境中正确地运行。Test 1515.1一个好的软件测试的属性是什么?答:能高效率找到错误不冗余能够发现一整类的错误不应该太简单或是太复杂15.2请描述黑盒测试和白盒测试之间的差异。答:黑盒测试是在不知道其内部逻辑的细节的情况下,测试软件组件的功能。白盒测试在了解所有接口的情况下,测试独立的逻辑路径。15.3软件测试的等价类划分是什么?答:黑盒测试中输入域被分为等价数据项的类,测试用例由每个等价类的元素组成。没有必要对所有输入域的值进行穷举测试。(15.6.1节第一段。)期末考试15.4描述三种控制结构测试策略。答:条件或分支测试通过检查程序模块中包含的逻辑条件进行测试用例设计。数据流测试根据变量的定义和使用位置来选择程序测试路径。循环测试测试重点放在循环构成的有效性。Test 1616.1面向对象中的单元测试与传统软件单元测试有何不同?答案(16.3.1节)你不可能在独立的测试单一的操作(独立的测试单一的操作是单元测试的传统观点),而是要作为类的一部分进行测试。最小的可测试单元是封装类而不是单独的模块。因为一个类可以包含很多不同的操作,并且一个特定的方法有可能属于多个不同的类,使得单元测试的意义发生了极大变化。16.2什么是基于场景的测试?答案(16.4.5节)用例描述的用户任务被用来建立测试用例。基于场景的测试被用于发现那些发生在测试人员与软件交互时发生的错误(关注用户的行为,而不是产品的行为)。一般而言,宁愿花时间在反复回顾已创建的用例上,也不要花时间在测试上。16.3请描述如何由行为模型导出测试用例来辅助类间测试?答案(16.6.2)测试用例必须覆盖状态转换图中的所有状态可以使用状态模型的广度优先遍历(一次测试一个转换,测试新的转换时只使用之前测试过的转换)可以推导出测试用例来确保类的所有行为都被充分执行过。16.4请描述三种适用于面向对象系统类级测试的划分策略答案(16.5.2)基于状态的划分促使状态改变的操作与未促使状态改变的操作分别测试基于属性的划分对类的每一个属性,使用属性的操作分为一类,修改属性的操作分为一类,既不使用又不修改的属性分为一类基于类别的划分操作根据功能(初始化,计算,查询,终止)来划分。Test1818.1有效的项目管理中4P是什么?答:人员,产品,过程,和项目。18.2可以采取哪些步骤,来避免许多导致软件项目失败的问题?答:p330的五点。(1)在正确的基础上开始工作。(2)保持动力。(3)跟踪进展。(4)做出英明的决策。(5)进行事后分析。18.3列举基于绩效管理的6个关键软件实践?答:p331的18.7的第二段。基于度量的项目管理 成本及进度的经验估算 获得价值跟踪根据质量目标跟踪缺陷 人员计划管理18.4如何定义软件范围?答:p327的18.3.1 软件范围是通过回答下列问题来定义的:项目环境。要开发的软件如何适应于大型的系统、产品或业务环境,该环境下要施加什么约束?信息目标。软件要产生那些客户可见的数据对象作为输出?需要什么数据对象作为输入?功能和性能。软件要执行什么功能才能将输入数据变换为输出数据?软件需要满足什么特殊的性能要求?软件项目范围在管理层和技术层都必须是无歧义的和可理解的。对软件范围的描述必须是可界定的。Test1919.1软件过程度量与软件项目度量的区别是什么?答:p336的19.1.2的第一段。软件过程度量用于战略目的,软件项目测量则用于战术目的。也就是说,项目管理者和软件项目团队通过使用项目度量及从中导出的指标,可以改进项目工作流程和技术活动。19.2采用面向对象的软件度量的目标是什么?答:1)为了更好地了解产品质量。2)要评估的过程的有效性。3)为了提高在项目级别的工作质量。19.3 对于软件项目团队4个有用的软件测量质量指标是什么?答:正确性,可维护性,完整性,可用性。19.4软件开发人员利用测量来指导自己的工作为什么是很重要的?答:开发者需要测量以便能告诉他们的工作是否改善。如果没有测量,这是很难实现。19.5请解释面向规模的度量和面向功能的度量有什么不同?答:p338的19.2.1的最后一段。和19.2.2的两段来总结答案。Test2020.1项目规划的目标是什么?答:p349中20.2的第一段第一句。软件项目策划的目标是提供一个能使管理人员对资源、成本及进度做出合理估算的框架。20.2在规划过程中为什么可行性评估是其中的一部分?答:如果一个项目在技术上是不可能的,那么就不可能进行。然而技术可行性并不是一个项目是否可行的全部。该项目还必须满足业务需要,以避免一个软件产品做好以后却没有任何用户。20.3在项目评估过程中通常包括哪些资源?答:人力资源(人数及所需技能),可重复使用的软件资源,环境资源。20.4为什么购买决定软件外包开发是否是软件规划过程中的一个重要组成部分?答:这也许这样比开发一款软件更符合成本效益来获取一款软件,相似地,决定外包软件开发,可以释放资源从而用于其他的项目(或减少费用)。但是软件外包会使软件开发更难控制管理交货的时间和开发的成本。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 考试试卷


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!