软件工程-需求分析-复习答案
- 格式:docx
- 大小:310.91 KB
- 文档页数:13
软件工程(软件需求)习题与答案软件工程(软件需求)习题与答案1. 引言在软件工程领域,软件需求是项目成功的关键之一。
对于开发者来说,了解和熟悉软件需求的基本概念和流程是至关重要的。
本文将针对软件工程中的软件需求进行习题和答案的探讨,帮助读者更好地理解和应用相关知识。
2. 习题集2.1 习题一:什么是软件需求?为什么软件需求很重要?答案:软件需求是指软件开发过程中,对于所要开发的软件系统的功能、性能以及其他特点的描述和规定。
软件需求的编写和理解对于项目的成败具有决定性的作用。
准确的软件需求能够指导开发团队进行开发工作,并确保最终的软件产品符合用户的期望。
2.2 习题二:软件需求的分类是什么?答案:软件需求可以分为功能需求和非功能需求两类。
功能需求描述了软件系统应具备的功能和行为,非功能需求则描述了软件系统的性能、可靠性、安全性等方面的需求。
2.3 习题三:请列举几个软件需求的常见问题。
答案:常见的软件需求问题包括:- 不完整的需求描述:缺少必要的细节和规范,导致开发团队无法准确理解用户需求。
- 冲突的需求:不同的用户提出了矛盾的要求,导致开发过程复杂化。
- 模糊的需求:需求描述含糊不清,无法量化和验证。
- 可测量性问题:需求无法被准确地测量和评估。
- 可行性问题:需求不符合项目的可行性要求,无法被合理地实施。
3. 答案解析3.1 习题一解析软件需求是对软件系统功能、性能和其他特点的描述和规定。
软件需求的重要性在于它能够指导开发团队进行开发工作,并确保最终产品符合用户期望。
缺乏准确的软件需求往往导致项目失败或产品无法满足用户需求。
3.2 习题二解析软件需求可以分为功能需求和非功能需求两类。
功能需求描述了软件系统应具备的功能和行为,如注册、登录等;非功能需求描述了软件系统的性能、可靠性、安全性等方面的需求,如响应时间、可扩展性等。
3.3 习题三解析常见的软件需求问题包括需求描述不完整、冲突的需求、模糊的需求、可测量性问题以及可行性问题。
软件需求分析一、复习要求1. 了解软件需求的目标和任务。
2. 了解软件软件需求的获取方法。
3. 了解可行性研究的方法和可行性研究报告的主要内容。
4. 掌握结构化分析方法。
5. 了解支持需求分析的原型化方法。
6. 了解需求规格说明和需求评审的主要内容。
二、例题分析【例1】软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。
供选择的答案:A. 总结B. 阶段性报告C. 需求分析评审D. 以上答案都不正确答案: C.分析:作为需求分析阶段工作的复查手段,在需求分析的最后一步,应该对功能的正确性、完整性和清晰性,以及其它需求给予评价。
一般,评审的结果都包括了一些修改意见,待修改完成后再经评审通过,才可进入设计阶段。
【例2】各种需求方法都有它们共同适用的( )。
供选择的答案:A.说明方法B.描述方式 C. 准则D.基本原则答案: D.分析:虽然各种分析方法都有独特的描述方法,但所有的分析方法还是有它们共同适用的基本原则。
这些基本原则包括:需要能够表达和理解问题的信息域和功能域;要能以层次化的方式对问题进行分解和不断细化;要分别给出系统的逻辑视图和物理视图。
【例3】在结构化分析方法中,用以表达系统内数据的运动情况的工具有( )。
供选择的答案:A. 数据流图B. 数据词典C. 结构化英语D. 判定表与判定树答案: A.分析:数据流图从数据传递和加工的角度,以图形的方式刻画数据流从输入到输出的移动变换过程,所以,它不是描述数据的静态结构,而是描述数据流的传递和变换。
数据词典主要用于定义数据和控制对象的细节,结构化英语、判定表和判定树主要用于描述加工规格说明,都不是表达数据在系统内运动情况的工具。
【例4】在结构化分析方法中用状态―迁移图表达系统或对象的行为。
在状态―迁移图中,由一个状态和一个事件所决定的下一状态可能会有( )个。
供选择的答案:A. 1B. 2C. 多个D. 不确定答案: C.分析:在状态―迁移图中,由一个状态和一个事件所确定的下一状态可能会有多个。
)1. 以下哪一项不是软件危机的表现A.开辟的软件可维护性差 B.软件极易被盗版C.经费预算时常被突破 D.开辟的软件不能满足用户需求2.下面不属于软件工程的三个要素是) 。
A 过程B 环境C 方法D 工具)。
3. 需求分析阶段的任务是确定A 软件开辟方法B 软件开辟工具C 软件开辟费用D 软件开辟功能4. 下列不属于需求分析工具的是)。
A。
数据流图 B.用例图 C。
状态图D。
程序流程图5.关于软件测试的目的,下面观点错误的是) ArrayA.为了发现错误而执行程序的过程B.一个好的测试用例能够发现至今尚未发现的错误C。
证明程序是正确、没有错误的D。
一个成功的测试用例是发现了至今尚未发现的错误的测试6。
软件详细设计阶段的任务是)。
A.算法与数据结构设计B.功能设计C.调用关系设计 D。
输入/输出设计)7. 下列属于静态测试方法的是A.人工检测 B.路径覆盖C.黑盒测试 D.白盒测试)8.汽车是一种交通工具,汽车类和交通工具类之间的关系是ArrayA.组合会萃关系 B。
共享会萃关系C.普通-具体关系 D。
整体-部份关系) .9.结构化程序设计的风格,主要强调的是ArrayA.程序的执行效率B.模块的内聚C.程序的可理解性 D.模块的耦合)。
10.在整个软件维护阶段所花费的全部工作中,所占比例最大的是ArrayA.校正性维护 B.适应性维护C.预防性维护 D.完善性维护11 。
“ 软件工程的概念是为解决软件危机而提出的”这句话的意思是)A。
强调软件工程成功解决了软件危机的问题B。
说明软件危机的存在总是使软件开辟不像传统工程项目那样容易管理C.说明软件工程这门学科的形成是软件发展的需要D。
说明软件工程的概念 ,即:工程的原则、思想、方法可解决当时软件开辟和维护存在的问题12。
在软件工程的需求分析阶段,不属于问题识别内容的是)A。
输入/输出需求 B。
性能需求C.环境需求D.功能需求13. 软件需求规格说明书的作用不包括)A.软件验收的依据B.软件设计的依据C.软件可行性研究的依据D.用户与开辟人员对软件要做什么的共同理解14.一个成功的测试可以)A.表明程序没有错误B.发现了尚未发现的错误C。
软件工程复习题(带答案)软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚 B模块低耦合 C模块独立性 D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机 B质量保证 C开发效率 D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A )A软件系统目标 B软件的性能C软件的功能 D软件的质量4、软件需求分析一般应确定的是用户对软件的( D )A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D )A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。
A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系 D属性13、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小14、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A )A.黑盒法B.白盒法C.灰盒法D.综合法15、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C )A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码16、结构化程序设计思想的核心是要求程序只由顺序、循环和( A )三种结构组成。
第一章3.需求分析与需求工程之间的关系那就是需求工程含义更广,包括需求获取、需求分析、需求定义5.需求工程包含的活动?为什么重视需求工程?需求工程包含需求开发和需求管理,而需求开发又包括需求获取、需求分析、需求规格说明、需求验证。
因为计算机应用于现实世界的广泛性,所以软件工程师的工作也具有行业上的广泛性,但是软件工程师不可能了解所有的领域,所以常常需要将工作中的很大一部分用来定义问题,然后再为其设计解决方案,定义问题就是需求工程的任务,开发软件系统最困难的部分就是准确说明开发什么,最为困难的概念性工作便是编写详细技术需求,这包括所有面向用户,面向机器和其他软件系统的接口,同时这也是一旦有错,最终将给系统带来极大损害的部分,并且以后要对他进行修改也极为困难。
第二章3.解释下列名词,需求,规格说明,问题域特性和约束,并结合他们的含义说明需求工程的主要任务是什么?需求是用户对问题域中的实体状态或事件的期望描述规格说明:规格说明是解系统为满足用户需求而提供的解决方案,规定了解系统的行为特征。
问题域的特性:在和解系统相互影响的同时,问题域是自治的,它有自己的运行规律,而且这些规律不会因解系统的引入而发生改变,这种自治的规律性称为问题域特性,当这些特性非常明确时称之为约束。
需求工程的主要任务:1.需求工程必须说明软件系统将应用的环境及目标,说明用来达成这些目标的软件功能,还要说明在设计和实现这些功能时上下文环境对软件完成任务所用的方式、方法所施加的限制和约束。
2需求工程必须将目标、功能和约束反映到软件系统中,映射为可行的软件行为,并对软件行为进行准确的规格说明。
3需求工程还要妥善处理目标、功能和约束随着时间的演化情况。
1、进行需求开发,确定用户的期望效果R2、研究问题背景,描述问题域特性E3、构建解系统,描述解系统行为S,使得E,S->R。
5.业务需求、用户需求、系统需求之间的区别与联系?业务需求:描述了组织为什么要开发系统,通常来自项目的投资人,购买产品的顾客,实际用户的管理者,市场营销部门等。
一、选择1、文档是软件产品的一部分,没有文档的软件就不称其为软件。
对2、在需求分析过程中,分析员要从用户那里解决的最重要的问题是给该软件提供哪些信息。
错3、需求规格说明书在软件开发中具有重要的作用,它也可以作为软件可行性分析的依据。
错4、建立用例模型的步骤包括确定角色、确定用例和绘制用例图。
错5、数据流图建立系统的功能模型,它由数据流、加工和数据存贮组成。
错6、软件配置管理是一组标识、组织和控制修改源程序的活动。
错7、UML是一种直观化、明确化、构建和文档化软件产物的通用语言。
错8、好的测试是用少量的测试用例运行程序,发现被测程序尽可能多的错误。
对9、边界值分析方法是取输入/输出等价类的边界值作为测试用例。
对10、面向对象的分析是面向计算机系统建立软件系统的对象模型。
错11、(D)是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
A 软件过程B 软件测试C 软件生存周期D 软件工程12、ISO9000是由ISO/TC176制定的关于(B)和质量保证的国际标准。
A 质量控制B 质量管理C 质量策划D 质量改进13、CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟度等级。
除第1级外,每个等级都包含了实现该成熟度等级目标的若干(B)。
A 关键实践 B 关键过程域 C 软件过程能力 D 软件过程14、在软件开发的各种资源中,(D)是最重要的资源。
A 开发工具B 方法C 硬件环境D 人员15、软件的复杂性是(A),它引起人员通信困难、开发费用超支、开发时间超时等问题。
A 固有的B 人为的C 可消除的D 不可降低的16、在各种不同的软件需求中,(D)描述了用户使用产品必须要完成的任务,可以在用例模型或方案脚本中予以说明。
A 业务需求B 功能需求C 非功能需求D 用户需求17、原型化方法是用户和软件开发人员之间进行的一种交互过程,适用于(A)系统。
软件需求分析复习题一、判断题1、使用实例方法可以使用户更清楚地认识到新系统允许他做什么,那么我们就应该试图把每一个需求及一个使用实例相联系,尽可能多的使用实例。
〔F〕2、在状态图中定义的状态主要有:初态(即初始状态),终态(即最终状态)与中间状态,在一张状态图中只能有一个初态,而终态那么可以有0至多个。
〔T 〕3、构造化分析方法适合于数据处理类型软件的需求分析。
〔T〕4、数据流图中每个加工至少有一个输入数据流,但可以没有输出数据流。
〔F〕5、DFD及数据流程图的区别是程序流程图用于表示程序的过程设计,DFD用作描述软件的逻辑功能,不能表示程序的控制构造。
〔T〕6、属性是指实体某一方面的特征,一个实体通常有多个属性。
联系也可以有属性。
〔T〕7、软件需求描述的是“如何做〞,而不是“做什么〞。
〔F〕8、软件成功的标准是用户在用,并且可以很容易做完要做的事。
〔T〕9、业务规那么包括企业方针、政府条例、工业标准、会计准那么与计算方法等。
业务规划本身就是软件需求。
〔F〕10、软件需求的层次包括业务需求、用户需求、功能需求。
〔T〕二、选择题1.需求分析最终结果是产生〔C 〕A.工程开发方案B.可行性分析报告C.需求规格说明书D.设计说明书2.需求分析中,开发人员要从用户那里解决的最重要的问题是〔A 〕A.让软件做什么B.要给软件提供哪些信息C.需求软件工作效率怎样D.让软件具有何种构造3.需求规格说明书的内容不应包括对〔B 〕的描述。
A.主要功能B.算法的详细过程C.用户界面的运行环境D.软件性能4.需求规格说明书的作用不应包括〔D 〕A.软件设计的依据B.用户及开发人员对软件要做什么的共同理解C.软件验收的依据D.软件可行性研究的依据5.下面关于面向对象方法中消息的表达,不正确的选项是〔B 〕A.键盘,鼠标,通信端口、网络等设备——有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C.应用程序之间可以相互发送消息D.发送及接收消息的通信机制及传统的子程序调用机制不同6.面向对象技术中,对象是类的实例。
软件⼯程复习题及参考答案软件⼯程复习题及参考答案⽂稿归稿存档编号:[KKUY-KKIO69-OTM243-OLUI129-G00I-FDQS58-《软件⼯程》课程复习资料⼀、单项选择题:1.下⾯哪些UML图描述系统⾏为?[ ]A.⽤例图B.类图C.对象图2.属于概要设计活动的是[ ]A.软件结构设计B.数据结构设计C.算法设计3.属⾏为型设计模式的是[ ]A.组合模式B.⼯⼚⽅法模式C.观察者模式4.下列说法正确的是[ ]A.UML 是软件开发⽅法B.UML是系统描述语⾔C.UML是软件开发过程5.根据程序流程图划分的模块通常是[ ]A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块6.如果某程序中的⽐较个数是m,则其 McCabe环形复杂度为[ ]C.m+17.按ISO9000-3的说明,下列属软件配置项的是[ ]A.软件开发⽅法B.软件开发组织管理制度C.软件开发合同8.软件测试的⽬的是[ ]A.证明软件⽆错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是[ ]A.软件体系结构B.模块细节C.软件性能10.软件项⽬开发计划的内容有[ ]A.数据分析B.风险分析C.功能分析11.在UML的类图中,描述整体与部分关系的是[ ]A.泛化关系B.聚合关系C.依赖关系12.软件过程能⼒成熟度模型CMM⽤以评价[ ]A.软件过程能⼒B.组织能⼒C.学习能⼒13.因计算机硬件和软件环境的变化⽽作出的修改软件的过程称为[ ]C.适应性维护14.对项⽬软件⽽⾔,软件功能需求信息主要由谁提供[ ]A.软件⽤户B.软件开发⼈员C.软件项⽬管理⼈员15.IDEF0 图反映不出[ ]A.系统做什么B.系统功能由谁做C.系统如何做16.原型模型是⼀种什么开发过程模型?[ ]A.⾃顶向上B.由外⾄内C.增量式17.系统流程图描述[ ]A.物理系统B.逻辑系统C.软件体系结构18.需求规格说明书的内容不应该包括[ ]A.软件确认准则B.软件的性能描述C.算法过程的详细描述19.适合需求模糊或需求不确定系统开发的软件开发模型是[ ]A.瀑布模型B.RAD 模型C.原型模型20.UML 图中描述系统结构的是[ ]C.状态图21.⾯向对象⽅法是⼀种什么软件开发⽅法?[ ]A.层次化B.迭代增量式C.逐步求精22.不可以⽤来衡量软件可维护性的是[ ]A.可靠性B.可⽤性C.可⾏性23.系统分析员在需求分析最后负责编写[ ]A.⽤户⼿册B.概要设计说明书C.可⾏性研究报告24.为了提⾼软件的可靠性、可维护性等⽽对软件的修改称为[ ]A.改正性维护B.适应性维护C.预防性维护25.在结构化⽅法中,为使需求改变对软件影响较⼩,应该使软件结构[ ]A.与问题结构对应B.与问题结构独⽴C.与⽤户界⾯对应26.单元测试的计划应该在什么阶段完成?[ ]A.需求分析B.概要设计C.详细设计27.下列属⾯向对象软件开发⽅法的是[ ]28.强调信息隐藏的软件⼯程设计⽅法是[ ]A.Jackson ⽅法B.Parnas ⽅法C.SA/SD ⽅法29.描述系统动态⾏为的模型是[ ]A.包图B.软件结构图C.状态图30.考虑输⼊条件组合的测试⽤例设计⽅法是[ ]A.等价分类法B.语句覆盖法C.因果图法31.下列能减少⽀援性维护活动的是[ ]A.利⽤软件包B.进⾏配置管理C.对⽤户进⾏适当培训32.只⽀持单重继承的程序设计语⾔是[ ]A.C++B.DelphiC.C33.IDEF0 图的顶层图是[ ]A.A0 图B.A-0 图C.A-1图34.在UML的⽤例图中,扩展关系是⼀种[ ]35.独⽴测试⼩组开始介⼊测试是在[ ]A.模块测试阶段B.集成测试阶段C.确认测试阶段36.在成本估计中容易低估局部问题的⽅法是[ ]A.基于经验模型的估计B.⾃底向上估计C.⾃顶向下估计37.在IDEF1X图中,如果⼦实体与⽗实体存在联系,则⼦实体将继承⽗实体的[ ]A.全部属性B.主关键字属性C.⾮主关键字属性38.结构化分析⽅法使⽤的⼯具是[ ]A.数据流图B.类图C.软件结构图39.⽩盒测试设计⽤例的⽅法是[ ]A.等价分类法B.基本路径覆盖法C.因果图法40.在衡量软件质量时,最重要的标准是[ ]A.可维护性好B.可⽤性好C.满⾜⽤户功能需求41.瀑布模型是⼀种[ ]42.模块的独⽴程度可以由什么定性标准度量?[ ]A.耦合度B.复杂度C.可靠性43.以下选项中,不属于对象的特点有[ ]A.继承B.多态C.封闭44.⾯向数据结构的设计⽅法有[ ]A.Parnas ⽅法B.Jackson ⽅法C.IDEF0 ⽅法45.与UML配合最好的软件开发⽅法是[ ]A.RUP ⽅法B.Coad/Yourdon⽅法C.IDEF4⽅法⼆、填空题:1.统⼀建模语⾔UML提供了两种描述整体/部分关系的⽅法,分别是和。
软件工程课后习题参考答案一、概述软件工程作为一门跨学科的学科,涉及到软件开发的各个方面,对培养软件工程师的能力具有重要意义。
课后习题是巩固和深化学生对课程知识的理解和应用的重要途径。
本文将为软件工程课后习题提供一些参考答案,供学生参考和自我评估。
二、需求分析与规格说明1. 什么是软件需求?软件需求分析的目的是什么?软件需求是对问题域中用户对软件所期望的功能和性能的描述。
软件需求分析的目的是识别、理解、规范和管理软件系统开发的需求。
2. 软件需求分析的基本步骤是什么?软件需求分析的基本步骤包括需求获取、需求建模、需求验证和需求管理。
3. 什么是功能需求?什么是非功能需求?功能需求描述的是软件系统应具备的具体功能和行为。
非功能需求则描述了软件系统的其他属性,例如性能、安全性、可靠性等。
4. 举例说明一些常见的软件需求验证方法。
常见的软件需求验证方法包括需求审查、原型验证、测试和模型检查等。
三、软件设计与架构1. 什么是软件架构?软件架构的重要性是什么?软件架构是软件系统的基础结构和组织方式,决定了软件系统的可扩展性、可维护性和可演化性。
软件架构的合理设计能够降低开发和维护的难度。
2. 请简要介绍常见的软件架构模式。
常见的软件架构模式包括分层架构、客户-服务器架构、面向对象架构和微服务架构等。
3. 什么是设计模式?列举几个常见的设计模式。
设计模式是针对软件设计中的常见问题所提出的解决方案。
常见的设计模式包括单例模式、观察者模式、工厂模式和策略模式等。
4. 请简要介绍面向对象设计的原则。
面向对象设计的原则包括单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则和接口隔离原则等。
四、软件测试与质量保证1. 软件测试的目的是什么?请简要介绍测试驱动开发(TDD)。
软件测试的目的是发现软件产品中的错误和缺陷。
测试驱动开发是先编写测试用例,再根据用例编写代码的开发模式。
2. 请简要介绍黑盒测试和白盒测试。
黑盒测试是基于软件外部行为和需求的测试,不考虑软件的内部实现。
《软件工程》标准答案软件工程标准答案1、引言2、软件需求分析2.1 需求获取与分析2.2 需求建模与规格化2.3 需求验证和确认3、软件设计3.1 软件结构设计3.2 软件数据设计3.3 软件界面设计3.4 软件组件设计4、软件测试4.1 软件测试基础4.2 软件测试类型4.3 软件测试方法与技术4.4 软件测试工具5、软件质量保证5.1 质量特性与度量5.2 质量保证计划与评审5.3 缺陷管理与跟踪5.4 过程改进与质量控制6、软件项目管理6.1 项目计划与调度6.2 项目进度和成本控制6.3 风险管理6.4 质量管理与配置管理7、软件维护与演化7.1 维护的类型与流程7.2 演化与重构7.3 可维护性设计8、软件过程与方法8.1 软件过程模型8.2 敏捷与迭代开发方法8.3 结构化与面向对象开发方法8.4 面向服务的开发方法9、软件工程实践9.1 软件工程中的职业道德与法律9.2 软件工程项目实践案例9.3 软件工程学术研究与领域前沿附件:法律名词及注释:1、版权:指知识产权法中规定的对作品的独占权,包括复制权、发行权、表演权、放映权、广播权等。
2、商标:指为区分商品或服务来源而使用的标识,包括商标图形、商标文字、商标组合等。
3、专利:指一项新的发明或创造性的技术解决方案,经过授权可以获得一定时期内的独占权。
4、许可证:指获得他人授权使用其知识产权的合法凭证。
5、保密协议:指合同文件中约定的对某些信息进行保密的责任和义务。
6、知识产权:指人们通过智力创造所取得的对某种创造或发明的经济利益所享有的权利。
单项选择题1. 以下哪一项不是软件危机的表现( B ) A.开发的软件可维护性差 B •软件极易被盗版C.经费预算经常被突破 D •开发的软件不能满足用户需求2.下面不属于软件工程的三个要素是(B )。
A 过程B 环境C 方法D 工具3. 需求分析阶段的任务是确定( D )。
A 软件开发方法 B 软件开发工具 C 软件开发费用 D软件开发功能4. 下列不.属.于.需求分析工具的是( D )。
A.数据流图 B.用例图 C. 状态图 D.程序流程图5. 关于软件测试的目的,下面观点错误的是( C )A. 为了发现错误而执行程序的过程B. 一个好的测试用例能够发现至今尚未发现的错误C. 证明程序是正确、没有错误的D. —个成功的测试用例是发现了至今尚未发现的错误的测试9.结构化程序设计的风格,主要强调的是( C ) A.程序的执行效率 B.模块的内聚 C •程序的可理解性D•模块的耦合10.在整个软件维护阶段所花费的全部工作中,所占比例最大的是( D )A.校正性维护 B .适应性维护11. “软件工程的概念是为解决软件危机而提出的”这句话的意思是 ( C )A. 算法与数据结构设计B.功能设计 C .调用关系设计 D. 输入/输出设计7. 下列属于静态测试方法的是( A )A.人工检测 B .路径覆盖 C •黑盒测试D.白盒测试8.汽车是一种交通工具, 汽车类和交通工具类之间的关系是 A.组合聚集关系 B. 共享聚集关系 C. 一般-具体关系 D. 整体-部分关系C )C.预防性维护D .完善性维护 6. 软件详细设计阶段的任务是( A )A. 强调软件工程成功解决了软件危机的问题B. 说明软件危机的存在总是使软件开发不像传统工程项目那样容易管理C. 说明软件工程这门学科的形成是软件发展的需要D. 说明软件工程的概念,即:工程的原则、思想、方法可解决当时软件开发和维护存在的问题12. 在软件工程的需求分析阶段,不属于问题识别内容的是(A )A. 输入/输出需求B. 性能需求C. 环境需求D. 功能需求13. 软件需求规格说明书的作用不包括(C )A. 软件验收的依据B. 软件设计的依据C•软件可行性研究的依据D. 用户与开发人员对软件要做什么的共同理解14.一个成功的测试可以( B )A. 表明程序没有错误B. 发现了尚未发现的错误C .发现所有错误D. 提高软件的可靠性15. 下列属于详细设计工具的是(D )A. 数据流图B. 用例图C. 状态图D. 程序流程图16. 下列不属于动态测试方法的是(A )A.人工检测 B .路径覆盖C•白盒测试 D .黑盒测试17. 大学生是学生,学生类和大学生类之间的关系是( C )A.组合聚集关系B. 共享聚集关系C. 一般-具体关系D. 整体-部分关系18. 为了提高软件的可维护性,编程阶段应注意( B )。
A.提高模块的独立性 B .养成良好的程序设计风格C. 文档的副作用D .保存测试用例和数据19. 软件生命周期中所花费用最多的阶段是(D )。
A.详细设计 B .软件编码C•软件测试 D .软件维护二、简答题1. 软件生存周期可以分为几个阶段,每个阶段的提交物是什么?答:软件生存周期分为六个阶段:(1)可行性研究和项目开发计划,提交项目开发计划和可行性分析报告(2)需求分析,提交软件需求说明书。
(3)概要设计,提交概要设计说明书。
(4)详细设计,提交详细设计说明书。
(5)编码,提交源程序清单。
(6)测试,提交测试报告。
(7)维护,提交维护报告。
2. 简述统一过程模型(UP)及其主要的特点。
答:统一过程模型是风险驱动的基于用例技术的,以架构为中心的,迭代可配置的软件开发流程。
主要特点:UP是一个通用的过程框架,可以用于各类软件系统和应用领域, 并是以用例驱动的,以架构为中心,迭代和增量的过程,是在重复一系列组成系统生命周期的循环。
3. 简述需求分析的任务及其过程步骤。
答:需求分析的任务是理解客户需要什么,分析需求,评价可行性,协商合理的方案,无歧义地详细说明方案,确认规格说明,管理要求,以至将这些需求转化为可行系统。
过程步骤:(1)初步沟通(2)导出需求(3)分析和精化(4)可行性研究(5)协商与沟通(6)规格说明4. 什么是黑盒测试技术?并简述有哪些常用黑盒测试方法。
答:黑盒测试技术是根据程序组件的规格说明测试软件功能的方法。
常用的黑盒测试方法:等价类划分法,边界值分析法和错误推测法,因果图法等。
5. 什么是软件配置管理?配置管理主要有哪些活动?答:软件配置管理是对软件变通(或称为进化)过程的管理。
主要活动:(1)配置管理规划(2)变更管理(3)版本和发布管理6. 原型按其使用方式的不同分为哪几种类型?答:根据原型的不同作用, 有三类原型模型:1、探索型原型这种类型的原型是把原型用于开发的需求分析阶段,目的是要澄清用户的需求,确定所期望的特性,并探索各种方案的可行性。
它主要针对开发目标模糊,用户与开发都对项目都缺乏经验的情况,通过对原型的开发来探明用户的需求。
2、实验型原型这种原型主要用于设计阶段,考核实现方案是否合适,能否实施。
对于一个大型系统,若对设计方案没有把握时,可通过这种原型来证实设计方案的正确性。
3、演化型原型这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框架,或者包含系统的主要功能,在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统。
它将原型的思想扩展到软件开发的全过程。
7. 什么是软件危机?软件危机的表现是什么?其产生的原因是什么?答:软件危机是指计算机运行速度,容量,可靠性有显著地提高,生产成本显著下降,这为计算机的广泛应用创造了条件。
一些复杂的,大型的软件开发项目提出来了。
但是软件开发技术的进步一致未能满足发展的需要。
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下四个方面:1 、经费预算经常突破;2、开发的软件不能满足用户要求;3、开发的软件可维护性差;4、开发的软件可靠性差。
造成软件危机的原因是:1 、软件的规模越来越大,结构越来越复杂;2、软件开发管理困难而复杂;3、软件开发费用不断增加;4、软件开发技术落后;5、生产方式落后;6、开发工具落后,生产率提高缓慢。
8. 可行性研究报告的主要内容有哪些?答:可行性研究报告主要内容是回答以下三个问题(1)系统是否符合软件使用单位的总体要求(2)系统是否可以在现在的技术条件,预算和时间限制内完成(3)系统能否把已有的其他系统集成9. 简述软件概要设计的任务。
答:软件概要设计的主要任务是:将系统划分成模块,决定每个模块的功能,决定模块的调用系统,即模块间传递的数据,决定模块的界面。
10. 什么是白盒测试技术?并简述有哪些常用白盒测试方法。
答:白盒测试技术是有选择地执行(或覆盖)程序中某些最有代表性路径的测试方法。
常用的白盒测试方法:语句覆盖,判定覆盖,条件覆盖,判定条件覆盖,条件组合覆盖。
11. 什么是软件配置项?答:计算机程序(源程序和执行代码),软件(产品)文档(技术文档和用户文档)以及数据(程序内部和程序外部的数据),这些输出信息包含了所有在软件过程中产生的信息,称为软件配置项。
12.原型按其开发方式的不同分为哪几种类型?答:由于运用原型的目的和方式不同,在使用原型时也采取不同的策略,有抛弃策略和附加策略。
(1)抛弃策略抛弃策略是将原型用于开发过程的某个阶段,促使该阶段的开发结果更加完整、准确、一致、可靠,该阶段结束后,原型随之作废。
探索型和实验型就是采用此策略的。
(2)附加策略附加策略是将原型用于开发的全过程,原型由最基本的核心开始,逐步增加新的功能和新的需求,反复修改反复扩充,最后发展为用户满意的最终系统, 演化型快速原型就是采用此策略。
采用何种形式、何种策略运用快速原型主要取决于软件项目的特点、人员素质、可供支持的原型开发工具和技术等,这要根据实际情况的特点来决定。
三、用例建模分析题1. 分析图书管理系统要求,画出该系统的用例图。
管理员:管理员能按系统授权维护和使用系统不同功能,可以创建、修改、删除读者信息和图书信息即读者管理和图书管理,借阅、归还图书以及罚款即借阅管理。
读者:读者能通过互联网或图书馆查询终端,查询图书信息和个人借阅信息,还可以在符合续借的条件下自己办理续借图书。
解答:由此可见该系统的用例图:2. 分析旅店预定系统要求,画出该系统的用例图。
某公司要开发一个旅店预定系统,该旅店可对外开放豪华双人间、双人间、 三人间和单人间,房间费用视情况按季节调整,但周一到周五半价(周末全 价)折扣不变。
对于外界请求,该系统应能根据请求入住时间预定指定档次 的房间,记录旅客姓名、地址、联系电话、有效证件号、房间类型和预定天 数,并计算出总费用。
预定的同时旅客按规定须提交 10%E 金。
六个小时之 内旅店允许旅客取消预定,并退回所有定金,超过六个小时定金不退还。
每 周一系统自动打印一周预定情况清单。
采用哪种费用支付方式和何种类型操 作界面尚不确定。
互二9曳旨论贸还韦诣巨寒者言 慝習理淒耆共 引苣理匣书嗤息查洵區裁一、1圉书案奁书"SSrV孑空,r)f 出版社倍息V善理亠好芋信闻情I二圭解答:查找房间预定房间计算总费用取消预订退还定金打印预定清单四、综合分析与设计题1. 某登录用例描述如下:1 •界面对象接受输入的用户名和密码2. 用例控制对象根据用户名和密码进行权限验证3. 用户对象确认用户是合法用户4. 通过用户的用户组对象获得有关权限5. 界面对象显示登录成功(1)画出该用例分析阶段的顺序图解答:酒店前台调整价格爲滋广i京入用户若口令:(2)给出三层经典架构及其对应的软件设计类的类型解答:层经典架构:展现层、业务逻辑层、数据层。
对应的软件设计类:边界类、控制类、实体类。
(3)画出该用例软件设计阶段的顺序图2. 某登录用例描述如下:1. 界面对象接受输入的用户名和密码2. 用例控制对象根据用户名和密码进行权限验证3. 用户对象确认用户是合法用户4. 通过用户的用户组对象获得有关权限5. 界面对象显示登录成功1.识别分析出该用例的类图。
2•请分析上述用例描述,画出分析阶段的顺序图解答:人用户冬口令]--------- *1J中严也眼f > :五、测试用例设计题1.下面是一段伪码程序(代码前的数字只作标号用,不参与程序执行):START1: INPUT(A,B,C,D)2: IF(A>0)AND(B>0)THEN3:X=A+BELSE4:X=A-B5:END6:IF(C>A)OR(D<B)THEN7:Y=C-DELSE8:Y=C+D9:END10:PRINT(X,Y)STOPU根据以上的描述:(1)画出对应的流程图和程序图。