阅读以下关于软件工程管理方面的叙述,回答问题1和问题2。某大型企业集团的信息工程部有一百多名专职的软件工程师从事企业内外的软件开发与维护工作,该集团分布地域广阔。集团内采用了多种操作系统平台和多类开发环境。王总工程师在总结近三年来的软件开发工作时,发现有10%左右的软件开发项目未能完成而被迫取消;其余25%的项目中大多也不能完全实现预定的目标。特别是在软件测试环节出了很大问题。王总工程师组织了信息工程部内有关的管理人员和业务骨干,召开了三次小结与分析会议,在会上集中讨论了软件工程管理有关的问题,在归纳的意

题目

阅读以下关于软件工程管理方面的叙述,回答问题1和问题2。

某大型企业集团的信息工程部有一百多名专职的软件工程师从事企业内外的软件开发与维护工作,该集团分布地域广阔。集团内采用了多种操作系统平台和多类开发环境。王总工程师在总结近三年来的软件开发工作时,发现有10%左右的软件开发项目未能完成而被迫取消;其余25%的项目中大多也不能完全实现预定的目标。特别是在软件测试环节出了很大问题。

王总工程师组织了信息工程部内有关的管理人员和业务骨干,召开了三次小结与分析会议,在会上集中讨论了软件工程管理有关的问题,在归纳的意见中出现了以下的一些内容:

(1)软件开发已经逐渐成为一类工业化的生产过程,必须尽可能对其中的所有环节进行有效的管理与控制。

(2)软件工程管理与其它工程管理相比,主要的困难包括:软件产品的不可见性(难以把握开发进展与质量要求等)、软件开发过程的非标准化和许多软件项目开发的“一次性” (缺少可借鉴的经验)等。

(3)软件开发面对着进度、成本、功能和性能四方面的主要约束,即要求在预定的期限内,使用规定的有限资源,满足不断增长的软件功能与性能需求。从这个角度来看,必须强化软件工程的管理。

(4)Client/Server与Browser/Server模式等已成为当前软件体系结构的主流。在日益复杂的分布式开发环境下,进行跨平台的团队开发,实现代码共享相当困难,软件工程管理在其中可以发挥其重大作用。

(5)从目前情况看,要注意软件维护可能带来的副作用,也就是没有找到隐含的错误,在以后的软件维护中一定要注意。

(6)跨平台复杂环境多重结构开发含有许多需要加以管理的对象类型,多样化的团体开发也应加强管理。

(7)为使得开发人员对软件产品的各个阶段工作都进行周密的思考,从而减少返工,所以测试计划的编制是很重要的。

(8)一个大中型的应用系统的开发可能包含有成百上千个软件模块以及数以百万计的代码行,任何一个编程人员不可能了解和追踪该应用系统所有的每一个片断,因此使软件代码具有可管理性和可审核性将是软件工程管理中的一项重要任务。

(9)要提高软件的使用效率,要实施软件复用。软件复用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率、降低开发成本的目的。软件复用的两个层次包括知识复用;方法和标准复用,软件复用的级别包括代码复用和分析结构的复用。

(10)我们的长远目标是需要建立一类软件开发管理体系,能有效地辅助软件开发全过程中对有关信息的收集和管理,这类体系应是可重复使用的并可适用于各类软件开发项目,使软件资源在软件的生命周期中保持完整。

(11)对外服务的软件开发机构应当努力取得ISO9000质量认证,并根据CMM(能力成熟度模型)标准来改进自己的开发过程。在这些质量标准实现的过程中,软件工程管理起着重要的作用。

王总工程师指出在上述十一条意见中,有三条的提法是不够恰当的或者是不够全面的,请你指出其序号,并各用50字以内文字说明理由。


相似考题
更多“阅读以下关于软件工程管理方面的叙述,回答问题1和问题2。某大型企业集团的信息工程部有一百多名专职的软件工程师从事企业内外的软件开发与维护工作,该集团分布地域广阔。集团内采用了多种操作系统平台和多类开发环境。王总工程师在总结近三年来的软件开发工作时,发现有10%左右的软件开发项目未能完成而被迫取消;其余25%的项目中大多也不能完全实现预定的目标。特别是在软件测试环节出了很大问题。王总工程师组织了信息工程部内有关的管理人员和业务骨干,召开了三次小结与分析会议,在会上集中讨论了软件工程管理有关的问题,在归纳的意”相关问题
  • 第1题:

    下列叙述中正确的是______。

    A.软件工程只是解决软件项目的管理问题

    B.软件工程主要解决软件产品的生产率问题

    C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

    D.软件工程只是解决软件开发中的技术问题


    正确答案:C
    解析:软件工程的定义是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。其主要强调了软件开发过程中应用工程化原则的重要性。

  • 第2题:

    (7)下列描述中正确的是 A.软件工程只是解决软件项目的管理问题B.软件工程主要解决软件产品的生产率问题C.软件工程的主要思想是强调在软件开发过程中需要应用工程化的原则 D.软件工程只是解决软件开发过程中的技术问题


    正确答案:C
    【解析】软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

  • 第3题:

    软件工程三要素不包括()。

    A、方法:完成软件项目的技术手段

    B、步骤:指导软件每一步计划、设计、实现等工作

    C、工具:支持软件开发和管理、文档生成

    D、过程:贯穿于各环节的任务框架,规定了软件开发、评估、管理和控制等完成任务的工作步骤


    参考答案:B

  • 第4题:

    阅读下面监理文件管理方面的叙述,回答问题1至问题3。

    [说明]

    阅读下面监理文件管理方面的叙述,回答问题1和问题2。

    某大型信息系统工程项目,建设单位委托某监理公司负责开发阶段的监理工作。该公司王副经理出任项目总监理工程师,王总监成立了项目监理部,任命了信息管理专家侯工为信息管理组组长。

    在监理内部会议上,王总监授权网络专业监理工程师白工统一管理本工程监理档案资料,责成信息管理组侯王要积极配合软件监理工程师的档案管理工作,并要求侯工亲自管理收发文登记。

    王总监要求信息管理组:对开发过程中形成的主要的监理文件档案加强管理,不得丢失任何重要存档的文件。

    白工根据王总监的指示,列出了主要的监理文件档案的清单:监理规划、监理日记、监理例会会议纪要、监理工作总结。

    王总监是按怎样的步骤建立项目监理部的?


    正确答案:建立项目监理部的步骤是: (1)确定项目监理机构目标(四控); (2)确定监理工作内容(四控三管一协调); (3)监理机构组织结构设计(组织形式、管理层次跨度、部门划分、职责考核标准派人); (4)制定工作信息流程。
    建立项目监理部的步骤是: (1)确定项目监理机构目标(四控); (2)确定监理工作内容(四控三管一协调); (3)监理机构组织结构设计(组织形式、管理层次跨度、部门划分、职责考核标准,派人); (4)制定工作信息流程。

  • 第5题:

    下列描述中,正确的是( )。

    A.软件工程只是解决软件项目的管理问题

    B.软件工程主要解决软件产品的生产率问题

    C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

    D.软件工程只是解决软件开发中的技术问题


    正确答案:C
    解析:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

  • 第6题:

    信息工程部与王总工程师在详细分析本集团的软件工程管理方面存在的各类问题时,发现在不少软件项目实施过程中,随着软件开发规模的增大、复杂程度的增加,以寻找软件中的错误为目的的测试工作就显得更加困难。软件测试这一环节较为薄弱.尤其是对软件测试问题认识上有一些偏差。软件测试包括人工测试和机器测试两大部分。请你用250字以内文字以提纲方式说明,软件测试的一般步骤?(只需列出相应的书称并且简要说明即可)


    正确答案:软件测试的一般步骤是: (1)测试人员要阅读有关资料包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则全面熟悉系统编写测试计划设计测试用例作好测试前的准备工作。 (2)为了保证测试的质量将测试过程分成几个阶段即:代码审查、单元测试、集成测试和验收测试。代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。单元测试集中在检查软件设计的最小单位-模块上通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况以及编码的错误。集成测试是将模块按照设计要求组装起来同时进行测试主要目标是发现与接口有关的问题。验收测试的目的是向未来的用户表明系统能够像预定要求那样工作。经过上述的测试过程对软件进行测试后软件基本满足开发的要求测试宣告结束经验收后将软件提交用户。
    软件测试的一般步骤是: (1)测试人员要阅读有关资料,包括规格说明、设计文档、使用说明书及在设计过程中形成的测试大纲、测试内容及测试的通过准则,全面熟悉系统,编写测试计划,设计测试用例,作好测试前的准备工作。 (2)为了保证测试的质量,将测试过程分成几个阶段,即:代码审查、单元测试、集成测试和验收测试。代码会审是由一组人通过阅读、讨论和争议对程序进行静态分析的过程。单元测试集中在检查软件设计的最小单位-模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。验收测试的目的是向未来的用户表明系统能够像预定要求那样工作。经过上述的测试过程对软件进行测试后,软件基本满足开发的要求,测试宣告结束,经验收后,将软件提交用户。

  • 第7题:

    下列叙述中正确的是( )。

    A.软件工程只是解决软件项目的管理问题

    B.软件工程主要解决软件产品的生产率问题

    C.软件工程的主要思想是强调在软件开发过程牛需要应用工程化原则

    D.软件工程只是解决软件开发中的技术问题


    正确答案:C
    解析:软件工程是计算机软件开发和维护的工程学科,它采用工程的概念原理、技术和方法来开发和维护软件,它把经过实践考验而证明正确的管理技术和当前能够得到的最好技术结合起来。

  • 第8题:

    论软件开发成本估算

    软件开发成本估算是软件工程项目管理中的一项重要任务。软件开发成本主要是指软件开发过程中所花费的工作量及相应的代价,软件开发成本估算应该以整个软件开发过程中所花费的人工代价为依据。

    试围绕“软件开发成本估算”论题,依次从以下3个方面进行论述。

    1.概要叙述你参与分析和开发的应用项目以及你所担任的主要工作。

    2.论述在估算软件开发成本时可以采用的方法和模型,并进一步分析这些估算方法和模型的优缺点。

    3.详细论述在你参与分析和开发的应用项目中具体采用的估算软件开发成本的技术、方法、模型、工具及其实际效果。


    正确答案:软件开发成本估算是一个十分容易被忽视但却又是十分重要的内容。其重要的原因是没有成本估算项目计划就会失去基础;容易被忽视的原因却是由于大部分软件开发组织未能够有效掌握它。 软件估算包括规模估算、工作量估算、进度估算和成本估算。整个估算的过程是:首先根据软件需求进行规模估算也就是估计软件的规模通常以代码行数、功能点数为单位;然后在估计的规模的基础上根据项目的特定因素(例如技术能力、使用的语言和平台、团队稳定性、项目复杂度等)、开发生产率经验数字来估算开发的工作量这通常以人天、人月、人年为单位;最后根据客户提出的进度需求进行进度估算根据人员及其他成本 (如设备、房租、差旅等)对总的开发成本进行估算。软件估算的基础是经验数字和经验模型。 从上面的描述中可以看出规模估算是软件开发成本估算的基础(数据来源)而工作量估算则是软件开发成本估算的关键(决定了开发成本)。 规模估算最常用的方法包括LOC(代码行)估算法和FP(功能点)估算法。LOC估算法主要根据历史项目记录以经验数据进行推测;FP估算法则通过一个较严谨的经验模型计算公式来进行估算。FP估算法是一种比较通行的软件规模估算方法。 工作量估算可以采用的模型、方法和技术就比较多了大致可以分为算法方法、类比法和自底向上法3种。 (1)算法方法估算是自顶向下的方式实现使用数学方式表达出估算所含的各种参数之间的关系如规模、工作量、进度、复杂度之间的关系。这个模型可以是静态的也可是动态的。最常见的算法方法估算模型包括MarkⅡ估算、COCOM0 81、COCOMOII、 COCOMO组、Putnam估算模型等。 ①MarkⅡFP估算:它不是一个严格的算法模型是基于各种因素和它们的影响的主观评价之间关系的一些理解。 ②COCOMO:它是根据软件产品规模和几个特征计算工作量和日历时间的估算算法模型。它是由Barry Boehm博士开发的发布于1981年即COCOMO 81而 COCOMOII则是其新版本不过由于它们各有特色因此还共同存在于估算实践中。这是一个较严格并经受了大量实践考验的一个经典估算模型。 ③COCOMO组:包括重点应用于COTS组件项目的COCOTS模型;用来预测每 KLOC或FP中残留错误的COQUALMO模型;着重于开发软件的成本在开发活动上的分布的COSSEMO模型;着重在预测新技术、提高生产率的发明方面最有效的成本分配的COPROMO模型。 ④Putnam估算模型:它是一个工作量动态的、多变量的估算模型它对交付时间十分敏感。 ⑤静态模型:除了以上动态模型之外还有一些常用的静态模型其中最常用的是 Watson和Felix模型。其计算公式是不变的:工作量;5.2×(KLCC)0.91持续时间(月): 4.1×(KLOC)0.36。可以用来生成较粗略的估算值。 算法方法估算法虽然定义严谨但是由于这些算法只是源于几十个项目的数据总结因此其结果并不是精确的但其仍然还是具有较高的参考价值。并且随着开发团队数据的积累和经验的堆积产生的估算也会越来越精确。 (2)类比估算法则是自顶向下的查看系统它借助经验丰富的人员的“本能感受”去识别待估项目和已完成的项目之间的相似与差异之处并评估这些差别对评估的影响。这种方法的主观意识较强估算结果的精确度与估算人员的经验有很大的关系。 (3)自底向上估算是将项目分解成为较小的活动和任务对每个较低层的任务做估算然后将所有的较低层的任务估算值加在一起就可以得到项目总的工作量估算值由于这种估算通常是由程序员来进行小任务块的估算因此容易让程序员产生责任感进度更有保障。 有了工作量估算后就可以计算出工作人员成本但在进行开发成本估算时还应该考虑硬件、软件、通信、差旅、培训以及其他成本。 可以从上面的描述中总结出撰写关于软件开发成本估算的论文主要应该注意以下几个方面的要点: (1)由于许多软件开发成本估算模型都需要一些参数依据因此应该对于项目的复杂度、涉及的关键技术、团队情况等因素进行阐述以便能够连贯地说明估算的过程。 (2)由于工作量估算是成本估算的关键其估算的结果决定了成本估算而成本估算则是在工作量的基础上做一些简单的财务计算因此可以理解为工作量估算的方法和模型。 (3)文章中应该列举算法方法估算法、类比估算法以及自底向上估算法3种模型并且应该抓住它们各自鲜明特点进行深入的阐述。 (4)在前面描述的基础上针对本项目的特色进行分析引出最合适的模型然后再结合实例详细地说明应用的具体方案。编写时一定要注意突出其真实性。 (5)文章应该花一定篇幅来说明估算的效果也就是估算的误差值是多少并且可以简要地分析这些误差值会来源于何处。
    软件开发成本估算是一个十分容易被忽视,但却又是十分重要的内容。其重要的原因是没有成本估算,项目计划就会失去基础;容易被忽视的原因却是由于大部分软件开发组织未能够有效掌握它。 软件估算包括规模估算、工作量估算、进度估算和成本估算。整个估算的过程是:首先根据软件需求进行规模估算,也就是估计软件的规模,通常以代码行数、功能点数为单位;然后在估计的规模的基础上,根据项目的特定因素(例如,技术能力、使用的语言和平台、团队稳定性、项目复杂度等)、开发生产率经验数字来估算开发的工作量,这通常以人天、人月、人年为单位;最后根据客户提出的进度需求进行进度估算,根据人员及其他成本 (如设备、房租、差旅等)对总的开发成本进行估算。软件估算的基础是经验数字和经验模型。 从上面的描述中,可以看出规模估算是软件开发成本估算的基础(数据来源),而工作量估算则是软件开发成本估算的关键(决定了开发成本)。 规模估算最常用的方法包括LOC(代码行)估算法和FP(功能点)估算法。LOC估算法主要根据历史项目记录,以经验数据进行推测;FP估算法则通过一个较严谨的经验模型计算公式来进行估算。FP估算法是一种比较通行的软件规模估算方法。 工作量估算可以采用的模型、方法和技术就比较多了,大致可以分为算法方法、类比法和自底向上法3种。 (1)算法方法估算是自顶向下的方式实现,使用数学方式表达出估算所含的各种参数之间的关系,如规模、工作量、进度、复杂度之间的关系。这个模型可以是静态的,也可是动态的。最常见的算法方法估算模型包括MarkⅡ估算、COCOM0 81、COCOMOII、 COCOMO组、Putnam估算模型等。 ①MarkⅡFP估算:它不是一个严格的算法模型,是基于各种因素和它们的影响的主观评价之间关系的一些理解。 ②COCOMO:它是根据软件产品规模和几个特征计算工作量和日历时间的估算算法模型。它是由Barry Boehm博士开发的,发布于1981年,即COCOMO 81,而 COCOMOII则是其新版本,不过由于它们各有特色,因此还共同存在于估算实践中。这是一个较严格,并经受了大量实践考验的一个经典估算模型。 ③COCOMO组:包括重点应用于COTS组件项目的COCOTS模型;用来预测每 KLOC或FP中残留错误的COQUALMO模型;着重于开发软件的成本在开发活动上的分布的COSSEMO模型;着重在预测新技术、提高生产率的发明方面最有效的成本分配的COPROMO模型。 ④Putnam估算模型:它是一个工作量动态的、多变量的估算模型,它对交付时间十分敏感。 ⑤静态模型:除了以上动态模型之外,还有一些常用的静态模型,其中最常用的是 Watson和Felix模型。其计算公式是不变的:工作量;5.2×(KLCC)0.91持续时间(月): 4.1×(KLOC)0.36。可以用来生成较粗略的估算值。 算法方法估算法虽然定义严谨,但是由于这些算法只是源于几十个项目的数据总结,因此其结果并不是精确的,但其仍然还是具有较高的参考价值。并且随着开发团队数据的积累和经验的堆积,产生的估算也会越来越精确。 (2)类比估算法则是自顶向下的查看系统,它借助经验丰富的人员的“本能感受”去识别待估项目和已完成的项目之间的相似与差异之处,并评估这些差别对评估的影响。这种方法的主观意识较强,估算结果的精确度与估算人员的经验有很大的关系。 (3)自底向上估算是将项目分解成为较小的活动和任务,对每个较低层的任务做估算,然后将所有的较低层的任务估算值加在一起,就可以得到项目总的工作量估算值,由于这种估算通常是由程序员来进行小任务块的估算,因此容易让程序员产生责任感,进度更有保障。 有了工作量估算后,就可以计算出工作人员成本,但在进行开发成本估算时还应该考虑硬件、软件、通信、差旅、培训以及其他成本。 可以从上面的描述中总结出撰写关于软件开发成本估算的论文,主要应该注意以下几个方面的要点: (1)由于许多软件开发成本估算模型都需要一些参数依据,因此应该对于项目的复杂度、涉及的关键技术、团队情况等因素进行阐述,以便能够连贯地说明估算的过程。 (2)由于工作量估算是成本估算的关键,其估算的结果决定了成本估算,而成本估算则是在工作量的基础上做一些简单的财务计算,因此可以理解为工作量估算的方法和模型。 (3)文章中应该列举算法方法估算法、类比估算法以及自底向上估算法3种模型,并且应该抓住它们各自鲜明特点进行深入的阐述。 (4)在前面描述的基础上,针对本项目的特色进行分析,引出最合适的模型,然后再结合实例,详细地说明应用的具体方案。编写时一定要注意突出其真实性。 (5)文章应该花一定篇幅来说明估算的效果,也就是估算的误差值是多少,并且可以简要地分析这些误差值会来源于何处。

  • 第9题:

    试题一论模型驱动的软件开发方法及其应用

    模型驱动架构( MDA)是对象管理组织(OMG)提出的一种新的软件开发方法,它强调由软件系统的建模行为驱动整个系统的开发过程,来完成系统的需求分析、架构设计、构建、测试、部署和运行维护等工作。与传统的UML模型相比,MDA能够创建出机器可读和高度抽象的模型,这种模型通过转换( Transformation)技术可自动转换为代码、测试脚本、数据库定义以及各种平台的部署描述。通过使用MDA技术,可以有效解决传统软件开发过程中的生产效率问题、系统移植问题、互操作问题以及文档和系统后期维护问题。

    请围绕“模型驱动的软件开发方法及其应用”论题,依次从以下三个方面进行论述。

    1.概要叙述你参与实施的模型驱动的软件开发项目以及你所担任的主要工作。

    2.阐述模型驱动的软件开发过程中的主要活动,并论述模型驱动的软件开发过程

    与传统的软件开发过程的区别。

    3.阐述在进行模型驱动的软件开发时遇到了哪些问题,如何解决。


    正确答案:

    写作要点:
    一、论文中要具体介绍组织的业务背景、组织结构、软件系统的架构、采用的技术
    等内容和担任的实际工作。
    二、相关的内容包括:
    1.模型驱动的软件开发过程中的主要活动包括:
    (1)需求分析人员根据领域需求得到描述软件系统外部特征的计算无关模型(CIM);
    (2)在对CIM进行分析的基础上得到平台无关模型(PIM),并根据业务逻辑进一步精化PIM;
    (3)进行PIM到平台特定模型(PSM)的模型转换;
    (4)将每个PSM转换为实现特定模型(ISM),生成应用程序代码,并进行测试。
    2.与传统的软件开发过程相比,模型驱动的软件开发方法有5个主要区别。
    (1)自动实现模型变换。
    传统的开发过程中,模型到模型的变换,或模型到代码的变换都是手工完成的;而模型驱动的开发过程中,模型变换都是由相关工具自动完成的,PIM到PSM、PSM到
    ISM都可以自动转换实现。
    (2) 模型是开发产品,也是程序生成的基础设施。
    模型驱动的开发过程中,模型是软件开发生命周期中的核心产品,通过一系列转换
    最终可以自动生成执行代码,是产生执行代码的基础设施。而在传统开发过程中模型只是分析人员、设计人员进行分析与交流的文档与图标,不能生成可用的应用程序代码。
    (3)模型变换过程与代码生成过程同步,可维护性强。
    模型驱动开发过程中,执行代码是由模型通过转换直接生成的,保证了模型与代码的同步。开发人员维护系统的重心不在是传统开发方法中的程序代码,而是与业务逻辑
    相关、与技术平台无关的平台无关模型PIM。
    (4)业务逻辑模型与实现技术平台分离。
    需求分析阶段生成的PIM模型与开发技术、开发平台以及实现技术无关,并且PIM模型可以根据不同的技术平台,自动生成以模型为基础的、适用于不同技术平台的软件系统。
    (5)提高了开发效率与软件质量。
    模型驱动开发的模型架构代表了对系统不同层次的抽象,使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所困扰。开发人员专注于根据系统业务
    逻辑构建PIM,通过代码生成技术自动生成实现代码,减少了由于人为因素导致的系统实现错误。
    三、在进行模型驱动的软件开发时可能存在的问题包括:如何对CIM和PIM进行建模;如何进行模型之间的转换,特别是PIM到PSM的转换;如何根据需求进行实现
    平台选择;如何根据PSM生成ISM(代码);如何进行系统测试;等等。

     

  • 第10题:

    软件工程管理的对象是()。

    • A、软件开发人员
    • B、软件工程项目
    • C、软件开发过程
    • D、软件开发速度

    正确答案:B

  • 第11题:

    软件工程过程包含软件开发、维护以及软件开发和维护时所需的管理活动。


    正确答案:正确

  • 第12题:

    ( 难度:中等)下列关于软件工程描述正确的是()。
    A.软件工程的主要思想是强调在软件开发过程中需要应用工程化的原则
    B.软件工程主要解决软件产品的生产率问题
    C.软件工程只是解决软件开发中的技术问题
    D.软件工程只是解决软件项目的管理问题

    答案:A

  • 第13题:

    软件工程学涉及软件开发技术和工程管理两方面的内容,下述内容中( )不属于开发技术的范畴。

    A.软件开发方法

    B.软件开发工具

    C.软件工程环境

    D.软件工程经济


    正确答案:D

  • 第14题:

    下列描述中正确的是( )。

    A.软件工程只是解决软件项目的管理问题

    B.软件工程主要解决软件产品的生产率问题

    C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

    D.软件工程只是解决软件开发过程中的技术问题


    正确答案:C
    解析: 软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。

  • 第15题:

    “软件工程的概念是为解决软件危机而提出的”这句话的意思是 _____。

    A. 说明软件工程的概念,即:工程的原则、思想、方法可解决当时 软件开发和维护存在的问题

    B. 说明软件工程这门学科的形成是软件发展的需要

    C. 强调软件工程成功地解决了软件危机的问题

    D. 说明软件危机存在的主要问题是软件开发不像传统工程项目那样 容易管理


    正确答案:B

  • 第16题:

    阅读以下关于信息系统工程管理方面的叙述,回答问题1和问题2。

    希赛公司的信息工程部有一百多名专职的工程师从事着企业内外的信息系统开发与维护工作,集团分布地域广阔,集团内采用了多种操作系统平台和多类开发环境。王总工程师在总结近三年来的信息系统开发工作时,发现有15%左右的开发项目未能完成而被迫取消:其余85%的项目中大多也不能完全实现预定的目标。比如,平均每个项目的实际完成成本超过预算152%,平均完成时间超过预期的216%。这些数据表明信息工程部未能对开发成本和开发进度实施有效的控制。

    王总组织了信息工程部内有关的管理人员和业务骨干,召开了三次小结与分析会议,在会上集中讨论了信息系统工程管理有关的问题,在归纳的意见中出现了以下的一些内容。

    (1)信息系统开发已经逐渐成为—类工业化的生产过程,必须尽可能对其中的所有环节进行有效的管理与控制。

    (2)信息系统工程管理与其他工程管理相比,主要的困难包括软件产品的不可见性 (难以把握开发进展与质量要求等)、信息系统开发过程的非标准化和许多信息系统项目开发的“一次性”(缺少可借鉴的经验)、等。

    (3)信息系统开发面对着进度、成本、功能和性能四方面的主要约束,即要求在预定的期限内,使用规定的有限资源,满足不断增长的信息系统功能与性能需求。从这个角度来看,必须强化信息系统工程的管理。

    (4)Client/Server与Browser/Server模式等已成为当前信息系统体系结构的主流。在日益复杂的分布式开发环境下,进行跨平台的团队开发,实现代码共享相当困难,信息系统工程管理在其中可以发挥其重大作用。

    (5)尽可能采用更加先进的操作系统、工作平台和开发工具,这样可以极大地提高信息系统开发效率,从根本上防止和解决王总在总结中所发现的信息系统开发问题。

    (6)面向对象(OO)技术的使用,可以保证在跨平台的复杂环境下团队开发的需要,从而可从根本上免除信息系统工程管理上的烦恼,也能从根本上缓解王总所发现的信息系统开发问题。

    (7)信息系统开发项目未能完成而被迫取消,究其根本原因无非是两大类:一是用户需求变更过于频繁或要求过高,另一类是信息系统开发人员的素质不能适应项目要求。

    (8)一个大中型的应用系统的开发可能包含成百上千个软件模块,以及数以百万计的代码行,由于任何一个编程人员不可能了解和追踪该应用系统所有的每一个片断,因此使软件代码具有可管理性和可审核性将是信息系统工程管理中的一项重要任务。

    (9)信息系统在投入使用后的维护与支持工作极为重要,信息系统工程管理在这方面也可以发挥其重要作用。

    (10)我们的长远目标是需要建立一类信息系统开发管理体系,能有效地辅助信息系统开发全过程中对有关信息的收集和管理,这类体系应是可重复使用的,并可适用于各类信息系统开发项目,使信息系统资源在信息系统的生命周期中保持完整。

    (11)对外服务的信息系统开发机构应当努力取得ISO9000质量认证,并根据 CMM(能力成熟度模型)标准来改进自己的开发过程。在这些质量标准实现的过程中,信息系统工程管理起着重要的作用。

    王总工程师指出在上述十一条意见中,有三条的提法是不够恰当的或者是不够全面的,请你指出其序号,并各用50字以内的文字说明理由。


    正确答案:(5)从目前情况看先进的工具与平台至多包含部分软件:工程辅助还不可能取代信息系统工程的管理的全部内容。 (6)跨平台复杂环境包含有许多需要加以管理的对象类型多样化的团队开发也应加强管理。 (7)更深层次看项目失败主要是缺乏有效的信息系统工程管理的机制所引起的。
    (5)从目前情况看,先进的工具与平台至多包含部分软件:工程辅助,还不可能取代信息系统工程的管理的全部内容。 (6)跨平台复杂环境包含有许多需要加以管理的对象类型,多样化的团队开发也应加强管理。 (7)更深层次看,项目失败主要是缺乏有效的信息系统工程管理的机制所引起的。 解析:本题是一道信息系统工程管理的分析试题,主要涉及到项目开发过程中加强管理的必要性和资源的计划。
    [问题1]
    问题1要求考生在11条有关信息系统开发管理的意见中确认出3条不够恰当的叙述,并说明理由。这属于辨别题,需要逐条地分析。
    第五条:“尽可能采用更加先进的操作系统、工作平台和开发工具,可以极大地提高信息系统开发效率,从根本上防止和解决王总在总结中所发现的信息系统开发问题”。
    “从根本上防止和解决”这一提法,肯定是偏激的,过分强调工具的作用,而忽略了人的素质和项目管理的重要性,显然是荒诞不经的。就好比鼓吹电脑可以替代人脑一样。我们坐飞机可以缩短旅行时间,可是没有很好的航班调度与控制,恐怕连性命都很难保。
    采用同样的道理可以分析以下几条:
    第六条:“面向对象(OO)技术的使用,可以保证在跨平台的复杂环境下团队开发的需要,从而可从根本上免除信息系统工程管理上的烦恼,也能从根本上缓解王总所发现的信息系统开发问题”。
    说“面向对象技术的应用,可从根本上免除信息系统工程管理的烦恼”自然也不对。所以,描述中带有绝对化的表述,一般都应格外关注,往往是不对的。
    第七条:“信息系统开发项目未能完成而被迫取消,究其根本原因无非是两大类:一是用户需求变更过于频繁或要求过高,另一是开发人员的素质不能适应项目要求”。
    又用到“无非”这一字眼,只强调了需求变更和人员素质的重要,把信息系统工程管理的重要性忽略了。
    实际上,有权威调查表明信息系统项目的失败可归结为四个原因:项目组织管理原因、缺乏需求管理、缺乏计划与控制和估算错误。

  • 第17题:

    软件开发环境是一个综合性的概念,它涵概了开发软件产品的方法、(6)和管理等多方面的因素。软件开发(6)是软件开发环境的一个因素,它包含软件工程整个过程(包括需求、设计、编码、测试等阶段)使用的所有工具软件,而不仅仅是用来供程序员使用的集成开发软件工具。不断完善软件开发环境,统一各个阶段接口的目的就是要不断提高软件工程过程的(7),实现软件工程各个环节相关人员正确的信息交互。提高企业的软件工程水平必须通过不断完善企业的软件工程本身,也就是软件工程的各个环节而实现。软件工程的水平不是指软件产品的技术水平,它是对软件产品开发过程的工程水平的描述。

    A.要素

    B.人员

    C.工具

    D.平台


    正确答案:C

  • 第18题:

    软件工程学包含软件开发技术和软件工程管理两部分,下列选项( )是与工程管理中有关的研究内容。

    A.开发方法学

    B.软件工程环境

    C.开发成本估算

    D.软件开发工具


    正确答案:C

  • 第19题:

    阅读以下关于嵌入式软件测试方面的叙述,回答问题1至问题3。

    甲公司是一个专业的航空软件开发公司,当前正在为某用户开发某航空嵌入式实时软件,王工是该软件开发项目的负责人。应用户要求,甲公司委托乙公司对其开发的航空软件进行第三方测试。张工是乙公司中该测试项目的负责人。

    王工在与张工讨论该软件的测试计划时,就软件的测试环境产生了争执。张工认为所有的第三方测试工作都必须在目标机环境下完成,否则无法保证测试的有效性。王工认为开发工作进度很紧,而且开发工作需要频繁占用目标机环境,第三方测试在仿真环境下进行就可以了,没有必要非得在目标机环境下测试。请在200字以内对上述两人意见的正确性进行评价与分析,并简述你对本题目中的测试环境问题的建议。


    正确答案:(1)张工和王工的意见都不完全正确。 为了节省对目标机环境的争用测试的很多工作可以在仿真环境下进行;但是为了防止由于仿真环境与目标环境差异带来的测试错误最终的测试程序必须在目标机环境上重新运行以查看软件最终在目标环境下的实际运行情况。 (2)针对本题所述情况为了提高开发与测试工作的并行度张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工作完成后再在目标机环境下完整地运行所有的测试程序。
    (1)张工和王工的意见都不完全正确。 为了节省对目标机环境的争用,测试的很多工作可以在仿真环境下进行;但是为了防止由于仿真环境与目标环境差异带来的测试错误,最终的测试程序必须在目标机环境上重新运行,以查看软件最终在目标环境下的实际运行情况。 (2)针对本题所述情况,为了提高开发与测试工作的并行度,张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工作完成后,再在目标机环境下完整地运行所有的测试程序。 解析:本题重点考查考生对软件测试技术的掌握程度。作为系统分析员,承担着管理项目和分解项目实施的工作,第三方软件测试是提高软件产品质量的有效手段,因此掌握好软件测试技术,是软件工程师(尤其是项目负责人)必不可少知识。
    问题1主要考查考生在嵌入式软件测试方面如何解决开发和测试对资源需求竞争的问题。通常,根据V字形软件研制过程,用户不可能为测试而专门研制一套目标机,只能依赖真是目标机完成所有测试任务,为了节省对目标机环境的争用,测试的很多工作一般可以在仿真环境下进行。但是,在仿真环境下完成测试工作后,并不代表测试工作的结束,为了防止由于仿真环境与目标环境差异带来的测试错误(此差别永远存在),最终的测试程序必须在目标机环境上重新运行,以查看软件最终在目标环境下的实际运行情况。因此,两者之间缺一不可。在理解了这种现象下,为了提高开发与测试工作的并行度,张工的项目组可以先在仿真环境下开发和运行测试程序;待王工项目组的代码开发工作完成后,再在目标机环境下完整地运行所有的测试程序。
    如果考生从事过嵌入式软件开发和测试工作(尤其是航空软件),应该知道嵌入式软件可根据所依附的嵌入式设备在系统中的失效影响程度,分为多种级别,而不同的软件级别,其测试项要求也不相同。本问题主要考查考生对安全级别较高的软件,对修正的条件判定覆盖(MC/DC)和条件判定覆盖(C/DC)两项测试技术的掌握程度。
    (1)对于C/DC,要求测试集满足如下条件:判定中每个条件的真值与假值都至少取一次;同时判定的真值与假值也要求至少取一次。
    (2)对MC/DC,要求测试集满足如下条件:
    首先应满足C/DC的测试条件。
    判定中每个条件的取值都必须独立地影响判定的结果,即在其他条件取值不变的前提下,仅改变这个条件的值,而使判定结果改变。
    根据上述有关C/DC和MC/DC的测试要求,在所给例子中,A和B的C/DC测试集应是{TT,FF},因为该测试用例集中,条件A与B分别取了T与F,判定A OR B,也取了T值(当A=T,B=T时)和F值(当A=F,B=F时);而A和B的MC/DC测试集是{FF,TF,FT},因为C/DC要求的测试用例集是{TT,FF}无法满足MC/DC的要求,条件A与B均没有独立地影响判定的输出结果。
    问题三主要考查考生对测试工作的看法,这里考生应清楚的是以下几点:软件测试的作用是查找软件中存在的问题,但是不能保证软件的正确性。软件正确性需要软件研发的全过程来保证。
    从本题的情况来看,问题的根源很可能是王工或张工项目组的开发或测试工作中的某些点没有做好,主要原因包括:
    (1)软件需求规格说明没有全面地反应用户的要求。
    (2)需求文档和设计文档质量不高。
    (3)软件代码的质量本身不高,可读性较差。
    (4)测试用例没有100%覆盖需求。
    (5)测试和开发人员责任心不够,开发过程控制不到位。
    (6)软件开发无标准可循,测试人员难以理解。
    等等。

  • 第20题:

    下列描述中正确的是

    A.软件工程只是解决软件项目的管理问题

    B.软件工程主要解决软件产品的生产率问题

    C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则

    D.软件工程只是解决软件开发中的技术问题


    正确答案:C

     软件工程是试图用工程、科学和数学的原理与方法研制、维护计算机软件的有关技术及管理方法。软件工程的主要思想是强调在软件开发工程中需要应用工程化的原则。软件工程用来解决以下问题:软件需求的增长得不到满足、软件开发成本和进度无法控制、软件质量难以保证、软件不可维护或维护程度低、软件得成本不断提高、软件开发生产率的提高赶不上硬件的发展和应用需求的增长。软件项目的管理、软件产品的生产率、软件开发中的技术都是软件工程需要解决的部分问题。因此选项C正确。

  • 第21题:

    阅读以下软件架构设计的问题,在答题纸上回答问题1和问题2。
    某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:
    (1)在线交易平台必须在1s内完成客户的交易请求。
    (2)该平台必须保证客户个人信息和交易信息的安全。
    (3)当发生故障时,该平台的平均故障恢复时间必须小于10s。
    (4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。
    针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。
    【问题1】(9分)
    软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举六种不同的软件质量属性名称,并解释其含义。
    【问题2】(16分)
    请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。


    答案:
    解析:
    【问题1】
    常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-operation)等。
    这些质量属性的具体含义是:
    (1)性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
    (2)可用性是系统能够正常运行的时间比例。
    (3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
    (4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
    (5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
    (6)可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
    (7)可变性是指体系结构经扩充或变更成为新体系结构的能力。
    (8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
    (9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
    (10)功能性是系统所能完成所期望工作的能力。
    (11)互操作性是指系统与外界或系统与系统之间的相互作用能力。
    【问题2】
    (1)在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
    (2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
    (3)当发生故障时,该平台的平均故障恢复时间必须小于l0s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
    (4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。
    【解析】

    本题考查考生对于质量属性及质量属性实现策略的掌握情况。
    【问题1】
    常见的软件质量属性有多种,例如性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-operation)等。
    这些质量属性的具体含义是:
    (1)性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。
    (2)可用性是系统能够正常运行的时间比例。
    (3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。
    (4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。
    (5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
    (6)可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。
    (7)可变性是指体系结构经扩充或变更成为新体系结构的能力。
    (8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。
    (9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。
    (10)功能性是系统所能完成所期望工作的能力。 
    (11)互操作性是指系统与外界或系统与系统之间的相互作用能力。
    【问题2】
    本题主要结合实际案例,考查实现各种质量属性的策略。
    (1)在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。
    (2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。
    (3)当发生故障时,该平台的平均故障恢复时间必须小于l0s。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。
    (4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。

  • 第22题:

    为了克服软件危机中出现的各种问题,在软件开发过程中,需要遵循一些基本原理,以下与软件工程基本原理相违背的是()。

    • A、用分阶段的生命周期计划严格管理。
    • B、对软件开发每一阶段的成果进行严格的评审。
    • C、实行严格的产品控制。
    • D、在项目中组织尽可能多的软件开发人员来加快软件开发的进度。

    正确答案:D

  • 第23题:

    判断题
    软件工程过程包含软件开发、维护以及软件开发和维护时所需的管理活动。
    A

    B


    正确答案:
    解析: 暂无解析