软考-软件工程习题 - 图文 下载本文

UML 中包含用例图、类图、对象图、状态图、顺序图、协作图、活动图、构件图、部署图共九种。 1) 用例图定义的是系统的功能需求 2) 类图用来表示系统中的类和类与类之间的静态关系。 3) 对象图是类图的一个实例。它及时具体地反映了系统执行到某处时系统的工作状况。 4) 状态图显示了类的所有对象可能具有的状态以及引起状态变化的事件。 5) 顺序图反映若干个对象之间的动态协作关系,主要用来显示对象之间发送消息的顺序,显示了对象之间的交互。 6) 协作图,反映的也是动态协作.除了显示消息变化(称为交互)外,协作图还显示了对象和它们之间的关系(称为上下文有关)。 7) 活动图反映一个连续的活动流。活动图常用于描述某个操作执行时的活动状况。 8) 构件图用来反映代码的物理结构。 9) 部署图用来显示系统中软件和硬件的物理架构。 ------------------------------------------------------------------------------------------------------------------ 10-A 1、简述瀑布模型的特点,与原型模型的关键区别是什么? 瀑布模型有以下优点 1)为项目提供了按阶段划分的检查点。2)当前一阶段完成后,您只需要去关注后续阶段。 3)可在迭代模型中应用瀑布模型。4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。 瀑布模型有以下缺点 1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。 4)瀑布模型的突出缺点是不适应用户需求的变化。 原型模型是跟瀑布模型区别,原型模型开始时没有很好的对整个系统做很全面的分析,设计,而就其中的某些基本功能实现一个雏形,然后马上给用户看,再改,它就是将经典软件生命周期几个阶段做成了循环,进行多次,这样可以很好避免功能上与用户需求有出入的错误,相比瀑布模型更具有弹性,但它的缺点就是对客户来说一开始就没有完整的功能实现出来。 2、软件产品与一般产品相比有哪些不同的特点。 答:特点:a)软件具有高度抽象性,软件及软件产生的过程具有不可见性。 b)同一功能软件的多样性,软件生产过程中的易错性。 C)软件在开发和维护过程中的易变性。 d)不同开发者之间思维碰撞的易发性。 3、一个商场要引入一个商品供销存系统,要进行软件的经济可行性分析,你认为应该从哪几个方面进行分析。 答:成本、效益、货币的时间价值、投资回收期和纯收入。 4、为什么说需求分析是一个十分重要的过程。 答:项目失败最重要的8个原因中的5个与需求有关 需求阶段产生的错误将扩散到其他阶段;以需求为基础的设计与编码阶段对错误的检测与发现很困难; 后期发现的需求错误的修正费用很高;软件项目的成本与时间超支,大多是需求分析不准确造成; 好的需求开发和客户的利益的保证; 5、画一个远程网络教学系统的教师参与者的用例图。(略) ------------------------------------------------------------------------------------------------------------------ 10-B 1、一个医院,需要完善医院管理系统,可以采购商品软件,也可以自行开发,以医院的角度从成本和效益两方面进行分析。 2、简述软件需求的获取和确认的过程。 软件需求:是为了解决用户的问题和实现用户的目标,用户所需的软件必须满足的能力和条件。 软件需求的获取与确认过程:获取-协商-说明与定义-确认(需求间无冲突、内容一致)。 3、简述软件工程的过程,ISO/IEC 12207信息技术定义的软件过程有哪些主要过程? 过程:(1)开发过程(2)管理过程(3)供应过程(4)获取过程(5)操作过程 (6)维护过程(7)支持过程 ISO 12207规定了5个“主要过程”:采办、供应、开发、维护和操作。 4、什么是软件危机?软件危机的表现是什么?其产生的原因是什么? 答:软件开发技术的进步一直未能满足发展的需要。在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。软件危机表现在以下四个方面:(1)经费预算经常突破,完成时间一再拖延。(2)开发的软件不能满足用户要求。(3)开发的软件可维护性差。(4)开发的软件可靠性差。 造成软件危机的原因是:(1)软件的规模越来越大,结构越来越复杂。 (2)软件开发管理困难而复杂。(3)软件开发费用不断增加。(4)软件开发技术落后。(5)生产方式落后。(6)开发工具落后,生产率提高缓慢。 5、什么是α测试和β测试?它们之间的主要异同是什么? 答:α、β常用来表示软件测试过程中的三个阶段,α是第一阶段,一般只供内部测试使用;β是第二个阶段,已经消除了软件中大部分的不完善之处,但仍有可能还存在缺陷和漏洞,一般只提供给特定的用户群来测试使用; ------------------------------------------------------------------------------------------------------------------- 11-A 1.与软件项目相关的国际标准有哪些?简述其作用。 答:IEEE1058.1软件项目管理计划标准 作用:在IEEE标准1058.1中给出了软件项目管理计划的框架,它实质上是一个通用的结构,不论承担何种软件项目,在制定项目管理计划时都可以参考它。 ISO9000质量标准 作用:ISO9000是一族标准,它主要是为促进国际贸易而发布的,现在,通过ISO9000认证已经成为一个企业证明其产品质量和工作质量的标志。 ISO/IEC 12207软件生命周期过程标准 作用:ISO/IEC 12207软件生命周期过程标准,是指导软件过程实施的一个标准,它从多个角度说明了软件生命周期各个过程中的活动,对规范软件开发过程,协调各类人员之间的关系,都具有指导作用。 ISO/IEC TR 15504软件过程评估标准 作用:ISO/IEC TR 15504软件过程评估标准,是从过程评估角度对软件过程进行规范的标准。该标准具有两维的结构,其中一维是过程维,另一维是能力维。 能力成熟度模型 作用:能力成熟度模型(CMM),是改进软件过程的一种策略。 2.简述活动图与时序图的区别以及使用场合。 答:时序图用于描述对象之间的传递消息的时间顺序, 即用例中的行为顺序. 在 UML 中, 时序图表示为一个二维的关系图, 其中, 纵轴是时间轴, 时间延竖线向下延伸. 横轴代表在协作中各个独立的对象. 当对象存在时, 生命线用一条虚线表示, 消息用从一个对象的生命线到另一个对象的生命线的箭头表示. 箭头以时间的顺序在图中上下排列. 在 UML 中, 活动图本质上就是流程图. 它用于描述系统的活动, 判定点和分支等. 3.简述UML中的组件图和部署图的作用。 答:组件图是用来反映代码的物理结构。从组件图中,可以了解各软件组件(如源代码文件或动态链接库)之间的编译器和运行时依赖关系。使用组件图可以将系统划分为内聚组件并显示代码自身的结构。 组件图作用:组件图的主要目的是显示系统组件间的结构关系。组件图对于不同的小组是有用的交流工具。 部署图是用来显示系统中软件和硬件的物理架构。从部署图中,可以了解到软件和硬件组件之间的物理关系以及处理节点的组件分布情况。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。 部署图作用:探究系统投产的相关问题. · 探究你的系统和生产环境中的其它系统的依赖关系,这些系统可能是已经存在,或是将要引入的。 · 描述一个商业应用主要的部署结构。 · 设计一个嵌入系统的硬件和软件结构。 · 描述一个组织的硬件/网络基础结构。 4.简述用例图中用例关系《include》和《extend》的区别。 答:《include》: 表示一个用例包含另一个用例,即要完成包含用例就一定要执行被包含用例。 《extend》:表示一个用例扩展到另一个用例。 区别:在执行一个被扩展用例时,不一定执行扩展用例。即扩展用例的执行是受条件限制的,是可选的。这一点,是区别两个用例之间的关系是《include》还是《extend》的依据。 5.简述软件项目规划应处理哪些问题及其作用。 答:项目规划是用于协调项目编制、指导项目执行和描述项目控制的文件,关键组成部分包括项目简介或概览、如何组织项目的描述、用于项目管理的技术和过程,描述需要完成的工作内容、进度信息和预算信息。 处理哪些问题: –项目划分的各个实施阶段 –每个阶段的工作重点和任务是什么 –完成本阶段工作和任务的人力、资源需求,时间期限 –阶段工作和任务的成果形式 –项目实施过程中对风险、疑难、其他不可预见因素等的处理机制 –各任务组及开发人员之间的组织、协调关系等。 1.什么是软件工程,软件工程的准则是什么?

软件工程是指导计算机软件开发和维护的工程学科。采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。软件工程准则可以概括为六条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)应能清楚地审查结果;(6)合理安排软件开发小组的人员。

2.什么是编码风格,包括哪些方面?

编码风格又称程序设计风格或编程风格,实际上指编程的原则。表现为四个方面:源程序文档化,数据说明的方法,语句结构和输入/输出方法。

源程序文档化:源程序文档化又可从四个方面来阐述,①符号名的命名;②程序的注释;③标准的书写格式; 数据说明:数据说明的次序应当规范化。使数据属性容易查找,也有利于测试,排错和维护。

语句结构:语句构造力求简单、直接,不能为了片面追求效率而使语句复杂化。可从以下几方面注意:1.使用标准的控制结构;2.尽可能使用库函数;3.程序编写首先应当考虑清晰性;4.注意使用GOTO语句。 3、什么是黑盒测试?黑盒测试的方法有哪些? 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完

全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试。 主要方法有:等价类划分、边界值分析、比较测试、错误猜测和因果图方法。

什么是白盒测试?白盒测试的方法有哪些?

白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。

主要方法:基本路径测试法。 4 比较黑盒测试与白盒测试的区别。

黑盒测试法把程序看成一个黑盒子,完全不考虑程序的内部结构和处理过程。黑盒测试是在程序接口进行的测试,它只检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。黑盒测试又称为功能测试。

白盒测试法的前提是可以把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理过程。这种方法按照程序内部的逻辑测试程序,检验程序中的每条通路是否都能按预定要求正确工作,白盒测试又称为结构测试。 10、在软件开发前期,要进行开发软件的经济可行性分析,你认为应该从哪几个方面进行分析? 成本: 软件成本,设备成本,附属设备、人工等

效益来源:减少了工作人员、运行费用、错误、货币管理上的损失、不良帐单或信贷损失、库存与库存过期损失,提高了交易处理速度,更快的收取应收帐款等等。

12、一个系统改进需要投资10万元,第二年开始有效益,第一年是3万,以后每年递增20%,你认为最少需要多少年才能收回投资(如果按照年存储利率12%计算)。 累计现在年 将来值 现在值 值 1 2 3 4 5 30000 36000 43200 51840 1.12 1.25 1.4 1.57 1.76 24000 25714 27516 29455 24000 49714 77230 106685 需要不到5年的时间即可 13、软件质量保证应做好哪几方面的工作?

a)软件质量保证是软件工程管理的重要内容,这些任务由两类不同的角色承担: 负责技术工作的软件工程师和负责质量保证工作的SQA小组。

b)软件工程师可以通过以下可靠的技术方法和措施、进行正式的技术评审、计划周密的软件测试来考虑质量问题,并完成如埃及质量保证和质量控制活动。

c)SQA小组的职责是辅助软件工程小组的到高质量的最终产品。可以通过以下活动:

为项目准备SQA计划、参与开发项目的软件过程描述、评审各项软件工程过程,对其是否符合定义好的软件过程中的相应部分进行核实、审计指定的软件工作产品,对其是否符合良好定义的软件过程中的相应部分进行核实确保软件工程及工作产品中的偏差已被记录在案,并根据预定规程进行处理。记录所有不符合的部分并报告给高级管理者。 14、什么是软件过程?它与软件工程方法学有何关系?

答:软件过程是为了开发出高质量的软件产品所需完成的一系列任务的框架,它规定了完成各项任务的工作步骤。

软件过程定义了运用技术方法的顺序、应该交付的文档资料、为保证软件质量和协调软件变化必须采取的管理措施,以及标志完成了相应开发活动的里程碑。软件过程是软件工程方法学的3个重要组成部分之一。

15、什么是软件生命周期模型?试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明每种模型的适用范围。 答:软件生命周期模型规定了把生命周期划分成哪些阶段及各个阶段的执行顺序,因此,也称为过程模型。 四种模型的优缺点在于:

瀑布模型历史悠久、广为人知,它的优势在于它是规范的、文挡驱动的方法;这种模型的问题是,最终开发出的软件产品可能并不是用户真正需要的。

快速原型模型正是为了克服瀑布模型的缺点而提出来的。它通过快速构建起一个可在计算机上运行的原型系统,让用户试用原型并收集用户反馈意见的办法,获取用户的真实需求。

增量模型具有可在软件开发的早期阶段使投资获得明显回报和教易维护的优点,但是,要求软件具有开放的结构是使用这种模型时固有的困难。

风险驱动的螺旋模型适用于内部开发的大型软件项目,但是,只有在开发人员具有风险分析和排除风险的经验及专门知识时,使用这种模型才会获得成功。

16、在软件开发的早期阶段为什么要进行可行性研究?应该从哪些方面研究目标系统的可行性? 答:可行性研究的目的不是解决问题,而是确定问题是否值得去解决。实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。 应该从以下的方面研究目标系统的可行性:

技术可行性:使用现有的技术能实现这个系统吗?

经济可行性:这个系统的经济效益能超过它的开发成本吗?

操作可行性:这个系统的操作方式在该客户组织内行得能工通吗? 17、怎样与用户有效地沟通以获取用户的真实需求?

答:分析员与用户沟通进行需求分析的典型方法如下所述: 访谈:它有两种基本形式,分别是正式的和非正式的访谈。 面向数据流自顶向下求精。 简易的应用规格说明技术。 快速建立软件原型。

18、什么是功能模型?建立功能模型时主要使用哪些图形符号?

答:功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。 通常,功能模型由一组数据流图组成。建立功能模型时主要使用的图形符号如下所示:

或 数据的源点/终点 或 变换数据的处理 或 数据存储 数据流

19、为什么要选择软件开发模型?软件开发模型与软件生存周期有什么关系?

答:因为软件开发模型是软件工程研究的四大内容之一,它虽然不是软件工程研究的重点,但是在宏观上特别重要。软件公司的项目组在开发一个大项目或产品时,首先在技术上必须选择一个开发模型,使开发模型非常适合这个项目或产品的生存周期;随后通过对生存周期的裁减,来给出适合与本项目或产品的软件生存周期定义。

软件的开发模型与软件生存周期有关:不同的开发模型,可能对应着不同的生存周期。生存周期不同,该软件的开发阶段划分、评审次数、基线标准都有所不同,甚至维护方法都有所区别。 20、请说明“三个模型”的定义,以及三者之间的关系。

答:功能模型是描述系统能做什么,即对系统的功能、性能、接口和界面进行定义。

业务模型是描述系统在何时、何地、由何角色、按什么业务规则去做,以及做的步骤或流程,即对系统的操作流程进行定义。 数据模型是描述系统工作前的数据来自何处,工作中的数据存什么地方,工作后的数据放到何处,以及这些数据之间的关联,即对系统的数据结构进行定义。

功能模型和业务模型是在需求分析时建模,是两个基本点。数据模型是一个中心,在设计时建模。功能模型和业务模型给数据模型提供数据与维护数据,数据模型支持功能模型和业务模型的正常运行。 21、需求分析的目的是什么?需求分析的难点在哪?

答:软件需求分析,其目的是用于说明软件产品或软件项目需要满足的条件和限制。在软件工程项目中首先要获取用户的需求,通过对软件需求的提取、分析、文档化及验证,为进一步的设计和实现提供依据。

需求分析的难点是:在系统的功能、性能和接口方面,开发者与客户达成完全一致的需求,让客户最终签字确认,并保证在项目验收前,需求相对稳定不变。万一需求有一点变化,双方必须履行“需求变更管理程序”,而变更管理程序在签订合同时已经做了规定。要知道,合同是具有法律效力的。

22.可行性研究报告的主要内容有哪些? 答:一个可行性研究报告的主要内容如下:

(1)引言:说明编写本文档的目的;项目的名称、背景;本文档用到的专门术语和参考资料。(2)可行性研究前提:说明开发项目的功能、性能和基本要求;达到的目标;各种限制条件;可行性研究方法和决定可行性的主要因素。(3)对现有系统的分析。(4)所建议系统的技术可行性分析。(5)所建议系统的经济可行性分析。(6)社会因素可行性分析。(7)其他可供选择方案。(8)结论意见。

23.系统设计的内容是什么?

答:系统设计阶段先从高层入手,然后细化。系统设计要决定整个结构及风格,这种结构为后面设计阶段的更详细策略的设计提供了基础。主要内容为:(1)系统分解。(2)确定并发性。(3)处理器及任务分配。(4)数据存储管理。(5)全局资源的处理。(6)选择软件控制机制。(7)人机交互接口设计。 25.软件质量保证应做好哪几方面的工作?

答:软件质量保证是软件工程管理的重要内容,软件质量保证应做好以下几方面的工作:(1)采用技术手段和工具。(2)组织正式技术评审。(3)加强软件测试。(4)推行软件工程规范(标准)。(5)对软件的变更进行控制。软件的修改和变更常常会引起潜伏的错误,因此必须严格控制软件的修改和变更。(6)对软件质量进行度量。即对软件质量进行跟踪,及时记录和报告软件质量情况。 26、软件项目规划中包含的具体内容是什么?

软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。 在软件项目管理过程中一个关键的活动是制定项目计划,它是软件开发工作的第一步。 项目计划的目标是为项目负责人提供一个框架,使之能合理地估算软件项目开发所需的资源 、经费和开发进度,并控制软件项目开发过程按此计划进行。 在做计划时,必须就需要的人力、项目持续时间及成本作出估算。这种估算大多是参考 以前的花费作出的。软件项目计划包括二个任务:研究和估算。即通过研究确定该软件 项目的主要功能、性能和系统界面。

27、现在要开发一个高校人事管理系统,从学校的角度看,请从成本和效益两个方面进行分析? 1)成本

1.1)基本建设投资 本系统的基本建设投资有如下几项

一、采购必要设备投资:网络平台建设,这一块需要6万左右;服务器和存储系统,这一块需要10万左右。 二、开发系统的投资:按照目前市场人事管理系统的开发价格来看,开发所需的大概在三十万不等; 三、安装费用:2万;总计:48万左右2.2)、运行维护费用:一、硬件维护运行,包括设备耗电量和检修维护,这一块费用每年10万左右;二、软件运行维护,按开发费用的5%计算,1万/年左右;三、人员成本与办公经费(2名维护人员,每人一个月4000员计算。9.6万/年) 2)、效益

? 直接效益提高了对用户的各种请求操作的反应速度,能够高效的录入数据并降低了出错机率,从而节省了用户大量的时间,使管

理人员的工作量大大减少。学校就可以精简人员,使原材料和劳动力资源得到更合理的利用。该系统也不需要其他特殊的外部设备,更方便了各类信息的存储,减少了企业为存档而支出的费用。从而降低了很多成本。