《软件工程基础》习题集答案
软件工程基础习题及答案
软件工程基础习题及答案1.下面描述不属于软件特点的是()。
DA)软件是一种逻辑实体,具有抽象性B)软件在使用中不存在磨损、老化问题C)软件复杂性高D)软件使用不涉及知识产权3.下面不属于软件需求分析阶段工作的是()。
BA)需求获取B)需求计划C)需求分析D)需求评审5.下面不属于黑盒测试方法的是()。
BA)边界值分析法B)基本路径测试C)等价类划分法D)错误推测法7.下面描述中不属于软件需求分析阶段任务的是()。
BA)撰写软件需求规格说明书B)软件的总体结构设计C)软件的需求分析D)软件的需求评审9.软件生命周期可分为定义阶段、开发阶段和维护阶段,下面不属于开发阶段任务的是()。
DA)软件测试B)软件实现C)软件总体设计D)可行性研究11.某系统结构图如下所示该系统结构图的最大扇入数是()。
AA)nB)1C)2D)313.某系统结构图如下图所示该系统结构图的最大扇出数是()。
DA)1B)2C)3D)n15.下面对软件测试和软件调试叙述错误的是()。
C A)严格执行测试计划,排除测试的随意性B)软件调试的目的是改正软件错误C)软件测试不需考虑测试成本D)正确的执行测试用例17.使用白盒测试方法时,设计测试用例应根据()。
A A)程序的内部逻辑B)程序的复杂结构C)程序的功能D)使用说明书19.下面对软件特点描述错误的是()。
DA)软件没有明显的制作过程B)软件是一种逻辑实体,不是物理实体,具有抽象性 C)软件的开发、运行对计算机系统具有依赖性D)软件在使用中存在磨损、老化问题20.某系统结构图如下图所示该系统结构图中最大扇入是()。
CA)021.软件生命周期是指()。
AA)软件产品从提出、实现、使用维护到停止使用退役的过程 B)软件的需求分析、设计与实现C)软件的运行和维护D)软件的实现和维护22.某系统结构图如下图所示该系统结构图中最大扇出数是()。
CA)123.程序流程图中带有箭头的线段表示的是()。
软件工程习题及解答
软件工程第一章习题一、选择题1、软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2、开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3、从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、( G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理二、简答题1、美国一家公司在1982年计划用FORTRAN语言开发一个在VAX750计算机上运行的应用程序,估计这个程序的长度为10000条FORTRAN指令。
软件工程练习题及参考答案
软件工程练习题及参考答案《软件工程练习题及参考答案》一.单向选择题(四选一.每小题3分,共18分)1.面向对象(Object Oriented)方法是将现实世界的事物以对象的方式( B )到计算机世界的方法。
对应映射反映反射2.盒图也称为(D)或Chapin图。
这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题。
流程图框图判定表 N-S图3.面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序数据逻辑物理4.人机界面的风格大致经过了(B)代的演变。
三四五六5.以下不属于白盒测试技术的是(D)逻辑覆盖基本路径测试循环覆盖测试等价类划分6.为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
纠错性维护适应性维护改善性维护预防性维护二.填空题(每空2分,共18分)1.文档一种数据媒体和其上所记录的数据。
(√)4. 软件工程使用的软件工具能够自动或半自动地支持软件的开发.管理和文档的生成。
(√)5. 为了充分发挥开发人员的潜力.缩短工期,软件工程项目的任务分解与安排应尽力挖掘可并行开发的部分。
(√)6. 需求分析阶段的成果主要是需求规格说明,但该成果与软件设计.编码.测试直至维护关系不大。
(X)7. 类是对具有共同特征的对象的进一步抽象。
(√)8. 面对日益增长的软件需求,人们显得力不从心。
往往是产生软件危机的原因之一。
(√)9. 数据输入的一般准则中包括采用灵活多样的交互方式,允许用户自选输入方式;允许用户控制交互过程。
(√)10. 如果在分析阶段和设计阶段采用的是面向对象的方法,而在编码阶段采用的是面向过程的语言,那么这种翻译就比较困难。
(√)11.软件测试是对软件规格说明.软件设计和编码的最全面也是最后的审查。
(√)12. 如果测试过程没有发现任何错误,则说明软件没有错误。
(X)四.简答题(每小题4分,共20分)1.螺旋模型的适应场合有哪些?适应场合:支持需求不明确.特别是大型软件系统的开发,并支持面向规格说明.面向过程.面向对象等多种软件开发方法,是一种具有广阔前景的模型。
软件工程课后习题(含答案)
第一章练习题一、填空题1、软件工程三要素是:方法、工具、过程。
2、软件开发方法是指软件开发过程中所应遵循的方法和步骤。
二、名词(术语)解释:1、可靠性---是指在给定的时间间隔内,程序成功运行的概率。
可靠性是衡量软件质量的一个重要目标。
2、可理解性---指系统具有清晰的结构,能直接反映问题的需求。
可理解性有助于控制软件系统的复杂性,并支持软件的维护、移植和重用。
三、问答题1、面向对象方法的优点是什么?答:(1)将现实世界问题向面向对象解空间直接映射,实现对现实世界的直接模拟。
(2)以数据为中心,而不是基于对功能的分解,使得软件结构相对稳定,软件的重用性、可靠性、可维护等特性都较好。
2、可视化开发方法的优点有哪些?答:(1)简化了图形用户界面的设计和编码工作,将开发的注意力主要集中在程序的执行逻辑和工作流程上。
(2)软件开发简单,易学、易上手。
(3)专业或非专业人员都能参与软件开发活动。
第二章练习题一、填空题:1、软件工程过程是:为获得软件产品,在软件工具支持下由软件人员完成的一系列软件工程活动。
2、一个软件从定义、开发、使用和维护,直到最终被废弃,所经历的生存过程经历的生存过程称为软件生存期或叫生命期。
3、软件生命周期的阶段划分为3个时期是:定义时期、开发时期、维护时期。
4、软件工程标准的5个层次是:国际标准、国家标准、行业标准、企业规范、项目规范。
二、简答题:1、瀑布模型的优点有哪些?答:1、强迫开发人员采用规范的技术方法;2、严格地规定了每个阶段必须提交的文档;3、每个阶段结束前必须正式进行严格的技术审查和管理复审。
2、瀑布模型的缺点是什么?答:1、在软件开发的初期阶段就要求做出正确、全面、完整的需求分析对许多应用软件来说是极其困难的。
2、在需求分析阶段,当需求确定后,无法及时验证需求是否正确、完整。
3、作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现的错误,只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。
《软件工程练习题及参考答案》
框图
判定表
N-S图
3、面向数据的设计方法就是根据问题的数据结构定义一组映射,把问题的数据结构转换为问题解的(A)结构。
程序
数据
逻辑
物理
4、人机界面的风格大致经Hale Waihona Puke 了(B)代的演变。三四
五
六
5、以下不属于白盒测试技术的是(D)
逻辑覆盖
基本路径测试
循环覆盖测试
等价类划分
6、为改正软件系统中潜藏的错误而进行的维护活动称为(A)。
1)一致性
2)二义性
3)紧致性
4)局部性
五、综合题(每小题10分,共20分)
1、可将软件生存周期划分为哪3个过程和哪9个阶段。
(1)3个过程是:软件定义过程、软件开发过程、软件使用与维护过程。
(2)9个阶段有:可行性研究、需求分析、概要设计、详细设计、实现、组装测试、验收测试、使用与维护、退役。
2、画出与图1所示的程序流程图对应的程序图,并试计算其巡回秩数V(G)。
4.计算机系统工程是用工程、科学和(数学)的原则与方法研制基于计算机的系统的有关技术、方法和过程。
5.在Jackson方法中,实体结构是指实体在时间坐标系中的行为序列。这种序列以顺序、选择和(重复)三种结构进行复合。
6.一个模块的“扇出数”是指该模块直接控制的其他(模块数)。
7.第二代界面是简单的(菜单)式。
7.类是对具有共同特征的对象的进一步抽象。(√)
8.面对日益增长的软件需求,人们显得力不从心。往往是产生软件危机的原因之一。(√)
9.数据输入的一般准则中包括采用灵活多样的交互方式,允许用户自选输入方式;允许用户控制交互过程。(√)
10.如果在分析阶段和设计阶段采用的是面向对象的方法,而在编码阶段采用的是面向过程的语言,那么这种翻译就比较困难。(√)
软件工程课后习题参考答案
软件工程课后习题参考答案软件工程课后习题参考答案1.简答题1.1 什么是软件工程?软件工程是一门研究和应用如何以系统化、规范化、可量化的方式开发和维护软件的学科,涉及到软件的设计、构建、测试、部署和维护等全生命周期的过程。
1.2 软件工程的目标是什么?软件工程的目标是提高软件开发过程的效率和质量,确保软件项目按时、按需求交付,并且能够满足用户的期望。
1.3 软件生命周期有哪些阶段?常见的软件生命周期包括需求分析、系统设计、详细设计、编码、测试、部署和维护等阶段。
1.4 什么是软件需求?软件需求是指对于软件系统所需满足的问题或需求的描述,包括功能需求、性能需求、接口需求等。
1.5 软件开发过程有哪些模型?常见的软件开发过程模型包括瀑布模型、迭代模型、螺旋模型、敏捷开发等。
2.客观题2.1 软件测试的目的是什么?a) 发现软件中的错误和缺陷b) 验证软件是否符合需求和规格c) 提高软件的可靠性和质量d) 以上皆是答案:d) 以上皆是2.2 瀑布模型的特点是什么?a) 瀑布模型是一种线性顺序的软件开发过程模型b) 各个开发阶段是相互独立的c) 开发过程按照需求分析、设计、编码、测试等顺序进行d) 以上皆是答案:d) 以上皆是2.3 敏捷开发的原则是什么?a) 个体和交互胜过流程和工具b) 可工作的软件胜过详尽的文档c) 客户合作胜过合同谈判d) 响应变化胜过遵循计划e) 以上皆是答案:e) 以上皆是3.计算题3.1 请计算以下代码的覆盖率:(假设代码行数为100行,已执行代码行数为80行)覆盖率 = 已执行代码行数 / 代码行数 100% = 80 / 100 100% = 80%3.2 请计算以下缺陷密度的值:(假设代码行数为1000行,代码中的缺陷数为10个)缺陷密度 = 缺陷数 / 代码行数 1000 = 10 / 1000 1000 = 103.3 请计算以下代码的复杂度:(假设代码中包含的判断语句有20个,循环语句有5个)复杂度 = 判断语句数 2 + 循环语句数 3 = 20 2 + 5 3 = 40 + 15 = 554.附件本文档涉及附件:无5.法律名词及注释本文涉及的法律名词及注释:无。
(完整版)软件工程习题+答案(可编辑修改word版)
一、选择题1.软件开发瀑布模型中的软件定义时期各个阶段依次是:(B)A)可行性研究,问题定义,需求分析。
B)问题定义,可行性研究,需求分析。
C)可行性研究,需求分析,问题定义。
D)以上顺序都不对。
(软件开发时期:概要设计、详细设计、软件实现、软件测试)2.可行性研究主要从以下几个方面进行研究:(A)A)技术可行性,经济可行性,操作可行性。
B)技术可行性,经济可行性,系统可行性。
C)经济可行性,系统可行性,操作可行性。
D)经济可行性,系统可行性,时间可行性。
3.耦合是对软件不同模块之间互连程度的度量。
各种耦合按从强到弱排列如下:(C)A)内容耦合,控制耦合,数据耦合,公共环境耦合。
B)内容耦合,控制耦合,公共环境耦合,数据耦合。
C)内容耦合,公共环境耦合,控制耦合,数据耦合。
(内容耦合、公共耦合、外部耦合、控制耦合、特征耦合、数据耦合)D)控制耦合,内容耦合,数据耦合,公共环境耦合。
4.在详细设计阶段所使用到的设计工具是:(C )A)程序流程图,PAD 图,N-S 图,HIPO 图,判定表,判定树.B)数据流程图,Yourdon 图,程序流程图,PAD 图,N-S 图,HIPO 图。
C)判定表,判定树,PDL,程序流程图,PAD 图,N-S 图。
D)判定表,判定树,数据流程图,系统流程图,程序流程图,层次图。
详细设计阶段工具:判定表、判定树、数据流程图、系统流程图、程序流程图、PAD 图、N-S 图、PDL在软件详细设计阶段,常用的图形描述工具有程序流程图,盒图(NS 图)和问题分析图(PAD) .常用的语言描述工具为 PDL(程序设计语言) ,常用的表格描述工具有判定表和判定树.DFD 数据流图:总体设计阶段5.按照软件工程的原则,模块的作用域和模块的控制域之间的关系是:(A)A)模块的作用域应在模块的控制域之内。
B)模块的控制域应在模块的作用域之内。
C)模块的控制域与模块的作用域互相独立。
D)以上说法都不对。
软件工程习题(附答案)
软件工程习题(附答案)软件工程习题(附答案)1.概述1.1 介绍本文档是一份软件工程习题文档,包含了一系列关于软件工程的习题及其对应的答案。
这些习题涵盖了软件工程的各个方面,旨在帮助读者巩固和扩展自己的软件工程知识。
1.2 目的本文档的目的是提供一份全面而详细的习题文档,供软件工程学习者参考和学习。
每个习题都配有答案,以便读者可以自行对比答案和解答过程,提高自己的理解和运用能力。
2.软件需求工程2.1 需求获取2.1.1 什么是需求获取?为什么它在软件工程中非常重要?答案:需求获取是指在软件开发过程中,获取并理解用户对软件系统所需功能和约束的过程。
它在软件工程中非常重要,因为一个完整、清晰、准确的需求基础是成功软件开发的关键,它直接影响着软件系统的功能、性能和质量。
2.1.2 几种常见的需求获取方法。
答案:常见的需求获取方法包括面谈、问卷调查、观察、原型展示等。
2.2 需求分析与规格2.2.1 什么是需求分析?它的目标是什么?答案:需求分析是指对需求进行深入的分析和理解,以确定需求的准确性、完整性和一致性。
它的目标是明确系统需求,并将其规格化,为软件开发提供指导和依据。
2.2.2 需求分析的主要步骤有哪些?答案:需求分析的主要步骤包括需求获取与识别、需求验证与确认、需求排序与组织、需求规格化等。
3.软件设计3.1 结构化设计3.1.1 什么是结构化设计?答案:结构化设计是指将系统进行层次化和模块化分解,定义各个模块之间的接口和关系,从而使系统具有更好的可维护性、可扩展性和可重用性。
3.1.2 结构化设计的原则有哪些?答案:结构化设计的原则包括模块化原则、信息隐藏原则、高内聚低耦合原则等。
3.2 面向对象设计3.2.1 什么是面向对象设计?答案:面向对象设计是一种基于对象的思维方式,将系统分解为各个独立的对象,通过对象之间的交互和协作来实现系统的功能。
3.2.2 面向对象设计的主要特点是什么?答案:面向对象设计的主要特点包括封装、继承、多态等。
软件工程习题与答案
第1章概述(习题和参考答案)[推断题]1. 由于今日个人计算机不断发展壮大,人们不再接受软件团队的开发方式。
(×)2. 由于软件是产品,因此可以应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数计算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不须要增加功能。
(×)5. 大多数软件系统是不简洁变更的,除非它们在设计时考虑了变更。
(√)6. 一般来说,软件只有在其行为和设计者的目标一样的状况下才能成功。
(×)[选择题]1. ()因素促使计算机系统越来越困难。
(D)A. 计算机内存和存储容量上的巨大增长B. 外部输入/输出选项的更加多样性C. 计算机体系结构方面的深刻变更D. 以上全部选项2. 下面的()不再是现代软件工程师关注的问题。
(A)A. 为什么计算机硬件的成本这么高?B. 为什么软件须要很长时间才能完成?C. 为什么开发一个软件的成本这么高?D. 为什么不能在产品发布前去除软件错误?3. 软件会慢慢退化而不会磨损,其缘由在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在运用之后C. 不断的变更使组件接口之间引起错误D. 软件备件很难订购4. 大多数软件照旧是定制开发的,其缘由在于()。
(C)A. 软件组件重用是特别普遍的B. 可重用的组件太昂贵而无法运用C. 软件在不运用其他组件的状况下很简洁构造出来D. 商业组件在许多应用领域中可以得到5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年头末期全面爆发B. 当前先进的软件工程方法已经解决了软件危机的问题C. 软件危机是指在计算机软件的开发和维护过程中遇到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的基本目标是()。
(B)A. 消退软件固有的困难性B. 开发高质量的软件C. 努力发挥开发人员的创建性潜能D. 更好地维护正在运用的软件产品7. ()是将系统化的、规范的、可定量的方法应用于软件的开发、运行和维护的过程,它包括方法、工具和过程三个要素。
软件工程基础考试题目和答案
软件工程基础考试题目和答案一、选择题(每题5分,共25分)1. 软件工程的主要目标是什么?A. 提高软件开发效率B. 确保软件质量C. 降低软件开发成本D. 提高软件的可维护性答案:B2. 下列哪个阶段不属于软件开发生命周期?A. 需求分析B. 设计C. 测试D. 需求变更答案:D3. 下列哪种编程范式主要用于降低软件复杂性?A. 面向对象编程B. 过程式编程C. 函数式编程D. 面向过程编程答案:A4. 下列哪个工具主要用于软件项目进度监控?A. Gantt图B. 思维导图C. 帕累托图D. 直方图答案:A5. 下列哪种方法主要用于风险管理?A. 风险识别B. 风险评估C. 风险应对D. 风险监控答案:A二、填空题(每题5分,共25分)1. 软件工程的核心思想是______,通过规范的开发过程和严格的质量控制,提高软件的质量和可靠性。
答案:工程化2. 软件需求分析的主要目的是______,明确软件的功能和性能要求。
答案:理解用户需求3. 结构化分析方法主要包括______、数据流图、实体关系图等。
答案:数据字典4. 软件测试的主要目的是______,发现并修复软件中的缺陷。
答案:保证软件质量5. 敏捷开发方法的核心价值观是______,强调快速响应变化和客户合作。
答案:个体和互动三、简答题(每题10分,共30分)1. 请简要描述软件开发生命周期的主要阶段及其作用。
答案:软件开发生命周期主要包括需求分析、设计、编码、测试和维护等阶段。
需求分析阶段用于理解用户需求,设计阶段用于制定软件架构和详细设计,编码阶段用于实现软件功能,测试阶段用于发现并修复软件缺陷,维护阶段用于提供软件支持和更新。
2. 请简要介绍敏捷开发方法的主要特点和实践原则。
答案:敏捷开发方法主要包括个体和互动、工作软件、客户合作、响应变化等价值观。
实践原则包括短迭代周期、持续反馈、自我组织和协作等。
敏捷开发方法强调快速响应变化,提高软件质量和开发效率。
(完整word版)软件工程习题集+答案
《软件工程》习题集目录一软件与软件工程 (1)二软件项目管理 (4)三需求分析 (7)四面向对象的需求分析 (10)五软件设计 (15)六程序设计语言和编码 (18)七软件测试 (20)八软件维护 (23)综合试卷一 (25)综合试卷二 (28)综合试卷三 (31)附参考答案: (34)一软件与软件工程参考答案 (34)二软件工程管理参考答案 (37)三需求分析参考答案 (39)四面向对象的需求分析参考答案 (43)五软件设计参考答案 (52)六程序设计语言和编码参考答案 (55)七软件测试参考答案 (59)八软件维护参考答案 (62)综合试卷一参考答案及评分标准 (65)综合试卷二参考答案及评分标准 (68)综合试卷三参考答案及评分标准 (71)一软件与软件工程一、选择题1.软件的主要特性是()A、无形性B、高成本C、包括程序和文档D、可独立构成计算机系统2.软件工程三要素是()A、技术、方法和工具B、方法、工具和过程C、方法、对象和类D、过程、模型、方法3.包含风险分析的软件工程模型是()A、螺旋模型B、瀑布模型C、增量模型D、喷泉模型4.软件工程的主要目标是()A、软件需求B、软件设计C、风险分析D、软件实现5.下列属于面向对象开发方法的是()A、BoochB、UMLC、CoadD、OMT6.软件危机的主要表现是()A、软件成本太高B、软件产品的质量低劣C、软件开发人员明显不足D、软件生产率低下7.软件开发方法的主要工作模型有()A、螺旋模型B、循环模型C、瀑布模型D、专家模型8.软件工程的目标有()A、易于维护B、低的开发成本C、高性能D、短的开发期9.软件工程学的目的和意义是()A、应用科学的方法和工程化的规范管理来指导软件开发。
B、克服软件危机。
C、作好软件开发的培训工作。
D、以较低的成本开发出高质量的软件。
二、判断题1.软件就是程序,编写软件就是编写程序。
2.瀑布模型的最大优点是将软件开发的各个阶段划分得十分清晰。
《软件工程》题库及参考答案
《软件工程》练习测试题库一、单项选择题1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做()A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的()研究的一方面。
A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统()A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是()A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是()A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是()A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是()A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。
因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是()A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究()A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。
设计这组测试用例的方法是()A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是()A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是()A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为()A.较正性维护B.适应性维护C.完善性维护D.预防性维护14.类库这种机制是()级别的信息共享。
软件工程基础习题(含答案)
软件工程基础习题(含答案)第三章软件工程重点:需求分析、概要设计、详细设计、软件测试和软件调试的作用、方法等一、软件工程基本概念软件定义与软件特点1. 软件是计算机系统中与硬件相互依存的重要部分,包括程序、数据及相关的文档。
其中,程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令(语句)序列。
2. 下列叙述中,正确的是( d )。
A)软件就是程序清单 B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果 D)软件包括程序和文档3. 软件按功能可以分为:应用软件(office)、系统软件(操作系统)、支撑软件(或工具软件)--需求分析工具软件危机与软件工程 61页4. 软件工程的出现是由于( c )A)程序设计方法学的影响 B)软件产业化的需要C)软件危机的出现 D)计算机的发展5. 开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做( b )A)软件投机 B)软件危机 C)软件工程 D)软件产生说明:软件工程概念的出现源自软件危机。
所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
总之,可以将软件危机归结为成本、质量、生产率等问题。
6. 开发大型软件时,产生困难的根本原因是( a )。
A)大型系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧、任务重7. 软件危机出现于20世纪60年代末,为了解决软件危机,人们提出了软件工程学的原理来设计软件这就是软件工程诞生的基础。
8. 下列不属于软件工程的3个要素的是( d )A)工具 B)过程 C)方法 D)环境软件工程过程与软件生命周期 63页9. 软件工程过程(定义)是把输入转化为输出的一组彼此相关的资源和活动。
通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期10. 软件生命周期中所花费用最多的阶段是(d)A)详细设计 B)软件编码 C)软件测试 D)软件维护11. 软件开发的结构化生命周期方法将软件生命周期划分成( a )。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题1、软件生命周期中所花费用最多的阶段是()A 详细设计B 软件编码C 软件测试D 软件维护答案:D解析:软件维护阶段需要对软件进行修改、优化和修复,由于软件在使用过程中可能会遇到各种问题和需求变更,所以维护阶段通常会花费大量的时间和资源。
2、下面不属于软件工程的 3 个要素的是()A 工具B 过程C 方法D 环境答案:D解析:软件工程的三要素是方法、工具和过程。
方法为软件开发提供了“如何做”的技术;工具为方法的运用提供了自动的或半自动的软件支撑环境;过程是将方法和工具结合起来,以达到合理、及时地进行软件开发的目的。
3、软件可行性研究实质上是要进行一次()需求分析和设计过程。
A 简化、压缩的B 详细的C 彻底的D 深入的答案:A解析:可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决,其实质是进行一次简化、压缩的需求分析和设计过程。
4、软件测试的目的是()A 证明软件的正确性B 找出软件中的所有错误C 尽可能多地发现软件中的错误D 调试程序答案:C解析:软件测试的目的是尽可能多地发现软件中的错误,而不是证明软件的正确性,也不可能找出软件中的所有错误。
5、下面描述中,不符合结构化程序设计风格的是()A 使用顺序、选择和重复(循环)三种基本控制结构表示程序的控制逻辑B 自顶向下C 注重提高程序的执行效率D 限制使用 goto 语句答案:C解析:结构化程序设计强调清晰的结构和良好的可读性,注重程序的可理解性和可维护性,而不是过于追求执行效率。
二、填空题1、软件生存周期一般可分为问题定义、可行性研究、()、设计、()、测试、运行与维护阶段。
软件工程基础知识考试
软件工程基础知识考试(答案见尾页)一、选择题1. 软件工程的基础是什么?A. 程序设计B. 数据结构C. 硬件D. 需求分析2. 软件开发过程中,需求分析和系统设计阶段的主要任务是什么?A. 编写代码B. 确定软件系统的功能需求C. 编写用户手册D. 进行系统测试3. 软件工程的生命周期通常包括哪些阶段?A. 开发B. 测试C. 部署D. 维护4. 在软件开发中,常用的软件开发方法有哪些?A. 敏捷开发B. 瀑布模型C. 结构化方法D. 面向对象方法5. 需求分析的目的是什么?A. 详细描述软件的功能和性能要求B. 确定软件开发的总成本C. 规划软件开发过程D. 评估项目风险6. 在软件工程中,什么是版本控制?A. 一种文件管理技术,用于跟踪软件的变更历史B. 一种软件开发方法论C. 一种编程语言D. 一种数据库管理技术7. 软件测试的目的是什么?A. 发现软件中的错误和缺陷B. 评估软件的性能C. 确保软件符合用户需求D. 提高软件的质量8. 在敏捷开发中,迭代周期通常有多长?A. 1周B. 2周C. 3周D. 4周9. 在软件工程中,什么是配置管理?A. 管理软件配置项的过程B. 软件开发过程中的一个活动C. 与软件开发和维护相关的所有活动的集合D. 软件开发完成后进行的活动10. 软件工程的定义是什么?A. 软件工程是一门研究用工程化方法构建和维护有效、实用和高质量的软件的学科。
B. 软件工程关注软件的开发、测试、维护和项目管理。
C. 软件工程的目标是实现软件的自动化开发。
D. 软件工程是一种实践性知识,不依赖于特定的工具或技术。
11. 软件开发过程中通常使用的模型有哪些?A. 瀑布模型B. 迭代模型C. 螺旋模型D. 面向服务的模型12. 什么是需求分析?它在软件开发过程中的作用是什么?A. 需求分析是识别和分析软件系统需要满足的条件或功能的过程。
B. 需求分析在软件开发过程中确保最终产品满足用户需求。
软件工程(习题及参考答案)
第1章概述(习题与参考答案)[判定题]1. 由于今天个人运算机不断进展壮大,人们再也不采纳软件团队的开发方式。
(×)2. 由于软件是产品,因此能够应用其他工程制品所用的技术进行生产。
(×)3. 购买大多数运算机系统所需的硬件比软件更昂贵。
(×)4. 大多数软件产品在其生命周期中不需要增强功能。
(×)5. 大多数软件系统是不容易转变的,除非它们在设计时考虑了转变。
(√)6. 一样来讲,软件只有在其行为与设计者的目标一致的情形下才能成功。
(×)[选择题]1. ()因素促使运算机系统愈来愈复杂。
(D)A. 运算机内存和存储容量上的庞大增加B. 外部输入/输出选项的加倍多样性C. 运算机体系结构方面的深刻转变D. 以上所有选项2. 下面的()再也不是现代软件工程师关注的问题。
(A)A. 什么缘故运算机硬件的本钱这么高?B. 什么缘故软件需要很长时刻才能完成?C. 什么缘故开发一个软件的本钱这么高?D. 什么缘故不能在产品发布前去除软件错误?3. 软件会慢慢退化而可不能磨损,其缘故在于()。
(C)A. 软件通常暴露在恶劣的环境下B. 软件错误通常发生在利用以后C. 不断的变更使组件接口之间引发错误D. 软件备件很难订购4. 大多数软件仍然是定制开发的,其缘故在于()。
(C)A. 软件组件重用是十分普遍的B. 可重用的组件太昂贵而无法利用C. 软件在不利用其他组件的情形下很容易构造出来D. 商业组件在很多应用领域中能够取得5. 下面的()说法是正确的。
(C)A. 软件危机在20世纪70年代末期全面暴发B. 当前先进的软件工程方式已经解决了软件危机的问题C. 软件危机是指在运算机软件的开发和保护进程中碰到的一系列严峻问题D. 软件危机是指在软件产品中存在一系列的质量问题6. 软件工程的大体目标是()。
(B)A. 排除软件固有的复杂性B. 开发高质量的软件C. 尽力发挥开发人员的制造性潜能D. 更好地保护正在利用的软件产品7. ()是将系统化的、标准的、可定量的方式应用于软件的开发、运行和保护的进程,它包括方式、工具和进程三个要素。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《软件工程基础》习题集答案第一章概述1.什么是软件危机,它有哪些典型表现?所谓“软件危机”就是,在计算机软件的开发和维护过程中所遇到的一系列严重的问题,概括起来归纳为:如何开发软件,以满足日益增长、日趋复杂的需要;如何维护数量不断膨胀的已有软件。
软件危机的典型表现主要有:a. 开发成本和进度不能准确估计b. 开发出来的软件不能满足用户的要求c. 软件的可维护性差d. 软件质量不可靠e. 软件成本在系统中的比重逐年上升f. 软件开发生产率的提高速度不够2.简述产生软件危机的原因和解决的思路。
软件危机产生的原因一方面与软件本身的特点有关,另一方面,是与已有软件开发、维护的方法不正确有密切关系。
解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。
即采用工程化的原则和方法组织软件开发是摆脱软件危机的一个主要出路。
3.什么是软件工程?它有哪些本质特性?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法进行软件开发和维护的学科。
其实质就是用工程的概念、原理、技术和方法,结合有效的管理方法和先进的开发技术,开发与维护软件,以解决软件危机。
4.软件工程是如何用来消除软件危机的?软件工程是从技术和管理两个方面来研究如何更好地开发和维护计算机软件,从源头上消除软件危机。
6.简述软件的定义。
软件=程序 + 数据 + 文档7.软件工程的目的是什么?为高质量的软件开发提供一个科学的体系框架。
8.什么是软件工程方法学?软件工程是一种什么样的技术?包括哪三大要素?分为哪三个分支?软件工程方法学就是指在软件生命周期全过程中使用的一整套管理和开发技术方法的集合。
目前,使用最广泛的软件工程方法学分别是传统方法学和面向对象方法学。
软件工程作为一种层次化的技术,有方法、工具和过程三大要素,并由于其涉及学科内容的极为广泛,而分为三个分支:软件开发技术、软件项目管理技术、软件质量管理技术。
9.简述软件工程的基本原理。
软件工程有7条基本原理:1.严格按照软件生命周期计划进行管理2.坚持进行阶段评审3.实行严格的产品控制4.采用先进的程序设计技术5.结果应能清楚的审查6.开发小组成员应少而精7.承认不断改进软件工程实践的必要性10.软件工程的基本开发原则有哪些?软件工程的基本开发原则有:1.模块化2.抽象和信息隐蔽3.模块的高内聚和低耦合4.确定性5.一致性6.完备性11.构成软件工程的基本元素有哪些?除了前面给出的软件工程三大要素,还应该包括控制和质量保证。
这里的控制,即规模控制、成本控制、复杂性控制等。
12.什么是软件过程?它与软件工程方法学有何关系?软件过程是指为了获得高质量软件产品,在软件工具支持下,由软件人员完成的一系列软件工程活动。
软件过程规定了开发软件所需完成的各项任务步骤。
过程步骤的设定与软件生命周期、生命周期模型、软件开发工具,以及参与开发的人员等诸方面因素有关。
13.什么是软件生命周期?什么是软件生命周期模型?软件如同自然界任何事物一样,都有其孕育、诞生、成长、成熟、衰亡的生存过程。
软件的这一过程,称为软件生命周期。
软件生命周期模型也称软件开发过程模型,是为了解决产业环境中的实际问题,而提出的开发策略。
是反映整个软件生命期中,系统开发、运行、维护等实施活动的一种结构框架。
14.简述软件生命周期方法学的途径,以及划分阶段步骤的目的和实质。
软件生命周期方法学是软件工程的传统途径,划分阶段步骤的目的和实质是:控制开发工作的复杂性,通过有限步骤,把抽象逻辑概念,转化为具体物力实现。
15.试比较瀑布模型、快速原型模型、增量模型和螺旋模型的优缺点,说明它们各自的适用范围。
1.瀑布模型。
瀑布模型广为人知和历史悠久,其优势是规范及文档驱动的方法。
但问题是,往往不能够真正满足用户的需求。
适用于传统软件工程领域的结构化开发。
2.原型模型。
是为了克服瀑布模型的缺点而提出来的。
通过快速构建一个在机器上可运行的原型系统,让用户试用原型,并收集反馈意见的办法,来获取用户真实的需求。
3.螺旋模型。
螺旋模型适用于大型软件项目,比起之前的其它模型而言,有其一定的优越性,但这些优越性并不是绝对的。
主要体现在对开发人员的风险评估经验和专门知识的要求较高。
如果项目风险较大,而开发人员的水平较低,不能准确的识别和分析风险,则势必造成重大损失。
4.增量模型。
具有在软件开发早期阶段使投资获得明显回报和交易维护的优点,但是要求软件具有开放的结构。
第二章可行性研究1.在软件开发的早期阶段,为什么要进行可行性研究?其目的和任务各是什么?可行性研究的目的是用最小的代价,在尽可能短的时间内确定问题是否可解决,以及是否值得解决。
可行性研究的任务不是解决问题,而是确定是否可解/值得解。
2.应该从哪些方面研究目标系统的可行性?主要从以下几个方面进行可行性研究:1. 技术可行性。
以现有技术,能否在预定时间内完成该系统开发。
2. 经济可行性。
通过成本-效益分析,估算系统的整体经济效益是否满足要求。
3. 操作可行性。
分析系统的运行方式、操作规程是否适应用户应用需要。
4. 社会可行性。
分析系统在法律、社会、市场等方面的认可度。
3.可行性研究有哪些工作步骤?(1) 复查定义,确定系统规模和目标。
(2) 研究老系统(3) 导出高层逻辑模型(conceptual design)(4) 重新定义(5) 导出多种解法(6) 推荐行动方针(7) 开发计划(粗略)(8) 审查、存档4.简述系统流程图在可行性研究中的作用。
系统流程图是概括的描述物理系统的传统工具。
系统流程图反映的是信息在系统各部分间流动的情况。
系统流程图可以帮助了解和分析系统,以概括的方式表达对系统的认识,并可以描述未来物理系统的概貌。
5.简述数据流图在可行性研究中的作用和用途。
数据流图在可行性分析中可以帮助分析和描绘数据在软件中流动和被处理的逻辑过程,用图形的方式描述系统的逻辑功能,是系统分析员和用户之间理想的通信工具。
6.简单描述数据字典的内容和定义数据的方法。
数据字典主要由下列4种元素定义组成:1.数据流2.数据流分量3.数据存储4.处理除了数据定义外,数据字典还应包含一些关于数据的其它信息。
定义数据的方法通常采用自顶向下分解的方式。
并由顺序、选择、重复三种基本数据元素类型组成数据。
7.说明软件计划的内容和目标。
软件计划的内容=项目任务范围 + 环境资源 + 工作量 + 进度软件计划的目标是为了提供一个框架,以便于管理者对资源、成本和进度等进行合理的估算。
8.什么是软件范围?定义软件范围需要哪些信息?软件范围就是在技术和管理层面上都是无二义性和可理解的项目范围,是软件开发各阶段的工作依据。
定义软件范围需要以下信息:a. 与用户、总体目标及利益相关的问题。
b. 有利于系统分析员理解的问题。
c. 集中于交流效果的问题。
9.简述软件开发环境资源的三个层次。
软件开发环境资源由三个层次构成:开发环境、软件构件以及最重要的资源——人。
10.软件环境资源的特征有哪些?它们对制定软件计划都有哪些意义?每一类资源都有四个特征:资源描述、可用性说明和资源提供的时间、资源使用的延续时间。
可以为制定软件计划估算软件开发所需的资源。
11.软件计划中,安排软件开发进度主要可以用哪些工具?都有哪些优缺点?编制进度计划的常用工具主要有甘特图和网络计划法。
甘特图的优点是简单,能动态地反映开发进展;缺点是难以反映多个任务间的逻辑关系。
网络计划法则恰好弥补了甘特图的缺点,最适合反映多个工作之间的逻辑关系。
12.主要的成本估计技术有哪些?其依据的主要是什么?主要有,代码行技术。
是一种基于规模的分解估算:D= f(vi)以及基于问题的分解估算:EV=(Sopt+4Sm+Spess)/6还有功能点技术。
这种技术以功能点(FP)为单位,度量软件的规模。
由于项目本身的复杂性,因此,成本估计技术主要采用“分而治之”的分解技术对软件项目进行估算。
13.为什么说成本估计是不可能精准的?那是由于太多的变化因素——人员、技术、环境、策略、复杂性等等,使得成本估算永远不可能精确。
14.进行成本/效益分析的方法主要有哪些?常用成本/效益分析的方法主要有:(1) 货币的时间价值(2) 投资回收期(3) 纯收入(4) 投资回收率16.如何对制定完成的软件计划进行复审?为什么要复审?软件计划的复审通常涉及有关软件工作范围和软硬件资源问题等。
复审应该邀请用户参加,用户可提出建议,并与开发人员最终商定内容。
复审内容分为技术和管理两个方面:技术方面需要考虑的问题有:系统的任务是否合理;系统的给你复杂性是否与开发成本、进度以及风险一致;系统规格说明书是否足够充分;系统性能要求是否恰当管理方面需要考虑的问题有:计划中描述的工作范围是否符合用户需求?计划中对资源的描述是否有效、合理?计划中系统的开发成本与进度要求是否合理?计划中人员的安排是否合理?系统开发存在哪些风险?复审可以尽早发现错误,复审是软件质量保证的重要措施。
第三章需求分析1.为什么要进行需求分析?通常对软件系统有哪些需求?需求问题是软件工程项目失败的主要原因。
一个高质量的软件,很大程度上取决于对要解决的问题的认识,以及如何准确的表达用户的需求。
需求分析就是要解决这个问题。
通常,对一个软件系统的需求可以有功能需求、性能需求、可靠性和可用性需求、出错处理需求、接口需求等多个方面。
2.怎样与用户有效地沟通,以获得用户的真实需求?访谈、情景分析,以及面向数据流的自顶向下求精等方法,编制简易的系统规格说明文档,创建原型等,是获取真实需求的有效方法。
3.需求分析的任务是什么?确定对待开发系统的综合要求。
4.通常系统的需求可以分为哪几个层次?一般可以分成5个层次:(1) 功能需求:系统必须做什么?(2) 业务需求:反映客户组织机构对系统高层次的目标要求。
(3) 运行需求:运行环境、软硬件配置等。
(4) 属性需求:包括用户关心的属性,如效率、灵活性、完整性、可靠性等;开发者关心的属性,如可维护性、可复用性、可移植性等。
(5) 未来可能的扩充需求:如HDIS各组的合并,3维虚拟现实的效果等等。
5.进行需求分析的步骤有哪些?1.确定系统的综合要求2.分析系统的数据要求3.导出逻辑模型4.修正系统开发计划6.简述建立原型模型对软件需求分析的作用。
可以快速构建旨在演示目标系统主要功能的可运行程序,帮助用户确定及提供更为精准的需求,以利用户和开发者能够在目标系统应该“做什么”这一问题上尽快达成一致。
7.解释实体-联系图及其用途。
实体-联系图是按照用户的观点对数据建立的模型。
描述从用户角度看到的数据,反映用户的现实环境,并且与在软件系统中的实现方法无关。
8.说明为什么需要进行需求验证及验证的步骤有哪些?进行需求验证是为了确保软件开发的质量,降低开发成本。