软件工程习题
计算机二级考试软件工程题库及答案
计算机二级考试软件工程题库及答案一、选择题1. 下列哪个不是软件工程的基本特征?A. 可靠性B. 可维护性C. 可重复性D. 可移植性答案:C2. 软件需求分析的目的是什么?A. 建立软件体系结构B. 确定软件需求C. 设计软件模块D. 编写软件代码答案:B3. 下列哪个不是软件开发生命周期的阶段?A. 需求分析B. 设计C. 测试D. 销售答案:D二、填空题1. 软件工程的目标是提高软件的_________。
答案:质量2. 软件需求分析阶段的主要任务是对用户的需求进行_________。
答案:分析3. 软件测试的目的是为了发现软件中的_________。
答案:缺陷三、简答题1. 什么是软件开发生命周期?请简要描述各个阶段的主要任务。
答案:软件开发生命周期指的是软件从开始开发到结束的整个过程。
主要阶段包括需求分析、设计、编码、测试和维护。
需求分析阶段的主要任务是确定用户的需求;设计阶段的主要任务是根据需求设计软件的结构和模块;编码阶段的主要任务是根据设计编写软件代码;测试阶段的主要任务是发现并修复软件中的缺陷;维护阶段的主要任务是对软件进行更新和修复。
2. 请简要说明软件工程的重要性。
答案:软件工程的重要性体现在以下几个方面。
首先,软件工程可以提高软件的质量,确保软件能够满足用户的需求。
其次,软件工程可以提高软件的可维护性,使得软件可以持续更新和修复。
最后,软件工程可以提高软件的开发效率,节省时间和资源。
以上是计算机二级考试软件工程题库及答案的内容。
希望对您有所帮助!。
《软件工程》练习题及其答案
《软件工程》练习题及其答案
一、单选题(每题10分,共50分)
1、程序控制一般分为( B )、分支、循环三种基本结构。
A.分块
B.顺序
C.选择
D.循环
2、在解决人工智能上使用最多的有非常强的表处理功能的函数程序设计语言是( D)。
A. Prolog
B.Snobol
C. COBOL
D. Lisp
3、以谓词逻辑为基础的,核心是事实、规划和推理机制的实用逻辑程序设计语言是( C )。
A.Java
B.Lisp
C. Prolog
D.Smalltalk
4、在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的(D)。
A.技巧生
B.保密性
C.一致性
D.可理解性
5、项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是(D)。
A.系统软件
B.数据处理与数据库应用
C.实时处理
D.UNIX操作系统
二、填空题(每空5分,共50分)
1、编码是将详细设计阶段得的处理过程的描述转换为基于某种计算机语言的程序,即源程序代码。
2、近年来,推出了许多面向对象的语言,如 C++ 、 Java 等。
3、提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构与算法,而不是靠编程时对程序语句做调整。
4、效率是一个性能要求,目标在需求分析给出。
5、追求效率建立在不损害程序可读性,或可靠性基础上。
(完整word版)软件工程习题及答案解析
软件工程习题及答案一、选择题: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、1/6B、1/5C、1/4D、1/37. 变换型和事务型是程序结构的标准形式.从某处获得数据,再对这些数据作处理,然后将结果送出是属于。
A、变换型B、事务型8。
PAD(Problem Analysis Diagram)图是一种工具.A、系统描述B、详细设计C、测试D、编程辅助9. 分层数据流图是一种比较严格又易于理解的描述方式,它的顶层描绘了系统的。
A、总貌B、细节C、抽象D、软件的作者10。
数据流图中,当数据流向或流自文件时,。
A、数据流要命名,文件不必命名B、数据流不必命名,有文件名就足够了C、数据流和文件均要命名,因为流出和流进数据流是不同的D、数据流和文件均不要命名,通过加工可自然反映出11. 分析员是.A、用户中系统的直接使用者B、用户和软件人员的中间人C、软件的编程人员D、用户和软件人员的领导12. 在软件开发中,有利于发挥集体智慧的一种做法是.A、设计评审B、模块化C、主程序员制D、进度控制13. 在开发软件时, 可用来提高程序员的工作效率.A、程序开发环境B、操作系统的作业管理功能C、编译程序的优化功能D、并行运算的大型计算机14. 结构化程序设计主要强调程序的。
软件工程习题
第一章1.填空(1)软件是计算机系统中的___程序(指令)__、数据及其__文档(+服务)___的总称。
(2)软件的类型按功能可以分为___系统软件___、__支撑软件___和___应用软件__3中类型。
(3)国家标准GB/T 1147—1995《软件工程术语》对软件工程的定义是软件开发、运行、维护和引退________系统方法_______。
(4)软件工程是指导计算机______软件开发和维护____的工程学科。
(5)软件工程采用_____工程的概念、原理、技术和方法_____来开发与维护软件。
(6)软件工程的目标是____实现软件的优质高产______。
(7)软件工程的主要内容是_____软件开发技术和软件工程管理_____。
2.选择。
(1)下面(B)不是软件的特征。
A系统性与复制性B有形性与可控性C抽象性与智能性D依附性与泛域性(2)下面(D)不是系统软件。
A.BIOS B.Windows C.设备驱动程序 D.办公软件(3)软件危机的主要原因(A)A软件本身特点与开发方法B对软件的认识不够C软件生产能力不足D软件工具落后(4)下面(C)不属于软件工程学科所要研究的基本内容。
A软件工程原理B软件工程目标C软件工程材料D软件工程过程(5)下面(B)是正确的说法。
A.20世纪50年代提出了软件工程的概念B. 20世纪60年代提出了软件工程概念C. 20世纪70年代出现了客户机/服务器技术D. 20世纪80年代软件工程学科达到成熟.第二章1.填空(1)___软件可行性分析____的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否得去开发。
(2)可行性分析的目的不是去开发一个软件项目,而是研究这个软件项目内容是否____值得去开发、其中的问题能否解决___。
(3)可行性分析实质上是要进行一次简化,压缩了的___ 需求分析____和___设计____过程,要在较高层次上以较抽象的方式进行需求分析和设计过程。
软件工程练习题
"软件工程"练习题一、填空题1.软件主要包括程序、数据和文档三局部容。
2. 目前使用最广泛的软件工程方法学是传统〔构造化方法〕方法和面向对象方法。
3.软件可行性研究的任务是从技术、经济和社会可行性三个方面分析软件工程的可行性。
4.软件测试的目的是找出软件潜在的错误和缺陷;通常把软件测试方法分为黑盒测试〔功能测试〕和白盒测试〔构造测试〕两大类。
5.软件测试中,测试用例由输入数据和预期的输出结果两局部组成。
6.典型的软件生命周期模型〔软件过程模型〕包括瀑布模型、快速原型模型和增量模型、螺旋模型、喷泉模型等。
7.模块 A 调用模块 B 以查询学生成绩,模块A 通过参数向模块 B 传送所查询学生的**,模块 B通过参数向模块 A 返回学生的考试成绩。
模块A 和模块 B 之间的耦合类型属于数据耦合。
8.在类的继承构造中,不同层次的类共享同一个行为名称,但各个类可以按照自己的需要为同名行为设计不同的算法,此性质称为类的重写。
9.测试软件中的模块时,通常需要为被测模块设计辅助模块,辅助模块的名称分别是驱动模块和桩模块。
10.软件生存期中时间最长的是_软件维护阶段。
11.构造化分析方法中,功能模型用 DFD 描述;数据模型用 E-R 描述。
12.过程设计〔详细设计〕中,常用的描述工具有图形、表格和语言三类。
13.在模块构造图中,直接调用*一模块的其他模块数称为该模块的扇入数。
14.面向对象分析〔OOA〕方法中,必须定义对象间的通信机制,对象间通信是通过消息传递机制来实现的。
15.面向对象方法用对象分解取代了构造化方法的功能分解。
16.写出以下各对事物之间的关系〔继承、会萃、普通关联〕:交通工具——汽车的关系是:继承;书——读者的关系是:普通关联;班级——学生的关系是:会萃;多边型——线段的关系是:会萃。
17.面向对象设计〔OOD〕阶段,可以将面向对象的设计容划分为四局部,分别是:人机界面部分、问题域局部、任务管理局部和数据管理局部。
软件工程练习题&答案
软件工程练习题一. 选择题(单选或多选)(1)需求分析阶段最重要的技术文档是( C )。
A)项目开发计划B) 设计说明书C)需求规格说明书D) 可行性分析报告(2)在软件工程中,白盒测试法可用于测试程序的内部结构。
此方法将程序看作是(A )A) 路径的集合B) 循环的集合C) 目标的集合 D) 地址的集合(3)在以下模块耦合性类型中,模块之间独立性最差的类型是( D )A) 非直接耦合B) 标记耦合C)控制耦合D)内容耦合(4)软件详细设计的主要任务是对(A)进行的详细设计。
A) 算法和数据结构B) 外部接口C)软件编码D)功能(5)Jackson方法是一种面向(C)的结构化方法。
A) 数据流B) 对象C)数据结构D)控制流(6)一个成功的测试可以( D )。
A) 表明程序没有错误B) 发现所有错误C)提高软件可靠性D)发现尚未发现的错误(7)下述陈述中,哪一个不是软件健壮性的度量指标?(C )。
A)失败后重新启动所需的时间B)引起失败的时间所占的百分比C)失败前的平均工作时间D)在一次失败中数据恶化的概率(8)黑盒技术设计测试用例的方法之一为( A )。
A)因果图B)逻辑覆盖C)循环覆盖D)基本路径测试(9)CMM模型将软件过程的成熟度分为5个等级,以下选项中,属于可管理级的特征是(D )。
A)工作无序,项目进行过程中经常放弃当初的计划B)建立了项目级的管理制度C)建立了企业级的管理制度D)软件过程中活动的生产率和质量是可度量的(10)在面向数据流的软件设计方法中,一般将信息流分为( A )。
A)变换流和事务流B)变换流和控制流C)事务流和控制流D)数据流和控制流(11)软件设计中一般将用到图形工具,下述哪种工具可用作设计的图形工具。
( ABCDEF )A)结构图B)实体关系图C)IPO图D)流程图E) N-S图F) 判定树(12)软件需求分析阶段建立原型的主要目地是( C )。
A)确定系统的性能要求B)确定系统的运行要求C)确定系统是否满足用户需要D)确定系统是否满足开发人员需要(13)要显示描绘软件开发项目各作业的依赖关系,应选择(B )。
软件工程练习题及参考答案
软件工程练习题及参考答案《软件工程练习题及参考答案》一.单向选择题(四选一.每小题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.螺旋模型的适应场合有哪些?适应场合:支持需求不明确.特别是大型软件系统的开发,并支持面向规格说明.面向过程.面向对象等多种软件开发方法,是一种具有广阔前景的模型。
《软件工程》11套考试复习练习题、作业题(含答案)
作业1: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:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
软件工程习题附答案
软件⼯程习题附答案⼀、选择题1、软件是⼀种( 2 )性⼯业产品。
(1)理论(2)知识(或逻辑)(3)消耗(4)体⼒2、需求分析是在( 2 )进⾏的。
(1)⽤户(2)⽤户和分析⼈员之间(3)开发⼈员内部(4)使⽤和维护⼈员之间3、在软件的可⾏性研究中经常从不同⾓度对系统进⾏可⾏性研究,其中从功能⾓度对系统进⾏研究属于( 2 )的研究。
(1)经济可⾏性(2)技术可⾏性(3)操作可⾏性(4)法律可⾏性4、在软件⼯程项⽬中,不随参与⼈员的增加⽽使软件的⽣产率增加的主要问题是( 4 )。
(1)⼯作阶段的等待时间(2)⽣产原型的复杂性(3)参与⼈员所需的⼯作站数(4)参与⼈员之间的沟通困难5、需求分析阶段的研究对象是( 1 )。
(1)⽤户需求(2)分析员要求(3)系统需求(4)软硬件需求6、对某公司进⾏调查分析,确定是否值得开发⼀个新系统的⼯作是进⾏( 4 )。
(1)系统设计(2)系统分析(3)系统详细调查(4)系统初步调查7、系统分析员应当( 4 )。
(1)善于使⽤户接受⾃已的观点(2)善于使⾃已获得成就(3)是⽤户与计算机技术⼈员的有效协调与组织者(4)满⾜上述所有条件8、数据流图的绘制过程,是对新系统的需求进⾏综合分析和形成新系统( 1 )的过程。
(1)逻辑模型(2)物理模型(3)总体⽅案(4)可⾏性报告9、系统测试的⽬的是( 4 )。
(1)找出编码错误(2)找出数据错误(3)要证明程序⽆错(4)发现软件错误10、⼀个模块内部各程序段都在同⼀张表上操作,这个操作的内聚性称为( 3 )。
(1)时间内聚(2)功能内聚(3)通信内聚(4)顺序内聚11、在结构化⽅法中全⾯指导模块划分的最重要的原则是( 4 )A.程序模块化B.模块⾼内聚C.模块低耦合D.模块独⽴性12、最⾼程度也是最差的耦合是( 2 )。
(1)公共耦合(2)内容耦合(3)控制耦合(4)数据耦合13、概要设计阶段产⽣的⽂档不包括( 4 )。
(1)概要设计说明书(2)数据库设计说明书(3)⽤户⼿册(4)开发进度报告14、汽车有⼀个发动机,汽车和发动机之间的关系是( 2 )。
软件工程练习题
软件⼯程练习题⼀.填空题1.软件⽣命周期分为、需求分析、概要设计、详细设计、软件实现、软件测试及运⾏维护7个阶段。
2. 是最早的软件⽣存周期开发模型,它将软件开发过程中的各项活动规定为依固定顺序连接的若⼲阶段⼯作,形如瀑布流⽔,最终得到软件系统或软件产品。
3. 是⼀种软件开发模型,在这种模型的每⼀个阶段,都要编码产⽣⼀个新的构件,并将新构件集成到先前已经构成的产品中并作为⼀个整体进⾏测试,直到满⾜⽤户需求为⽌。
4.当没有⾜够的⼈员在规定的期限内开发完整的产品或者由于不可克服的客观原因⽽把交付期限规定的太短时应选⽤软件开发模型。
5. 是⼀种软件开发模型,由需求定义、风险分析、实施开发和计划评审4个部分组成,主要适⽤于⼤型软件项⽬开发。
6. ⽂档说明该软件开发项⽬的实现在技术上、经济上和社会因素上等⽅⾯的可⾏性,评述为了合理地达到开发⽬的可供选择的各种可能实施的⽅案,说明并论证所选定实施⽅案的理由。
7.可⾏性分析的⽬的是。
8. ⽤于描述系统的物理模型,⽤物理符号以⿊盒⼦的形式描绘系统⾥的每个部件,仅表达信息在系统个部件之间流动的情况。
9. (⼀种图)可以⽤来进⾏项⽬进度管理。
10. 结构化分析与设计是⼀种⾯向的分析设计⽅法。
11. 常见的需求获取⽅式有、情景分析技术等。
12. 在结构化分析中,⽤于描述加⼯逻辑的⼯具主要有结构化语⾔、判定树和。
13. 数据字典中的条⽬主要有、数据流、⽂件和加⼯四种。
14. 结构化软件开发⽅法贯穿始终的⼋字⽅针为。
15. 在软件⽣命周期中的每⼀个阶段结束后必须进⾏,这是为了能尽早发现项⽬开发中的错误。
16. 是软件⽣命周期中重要的⼀步,是软件定义阶段的最后⼀个阶段,是关系到软件开发成败的关键步骤。
17. 数据流图分为变换型和两种类型。
18. 衡量不同模块彼此之间相互依赖的紧密程度。
19. 衡量不同模块彼此之间相互依赖的紧密程度。
20.在软件模块设计时应该采取的设计原则是。
软件工程习题附答案
软件工程习题附答案软件工程是一门研究和应用如何以系统性、规范化、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。
以下是一些软件工程的习题及答案,希望能帮助您更好地理解这门学科。
一、选择题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)二软件项目管理 (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),软件排错的目的是(E)。
A(1)过程,子程序,分程序(2)顺序,条件,循环(3)递归,堆栈,队列(4)调用,返回,转移B(1)不能嵌套使用(2)只能用来写简单程序(3)已经用硬件实现(4)只有一个入口和一个出口C(1)筛选法(2)递归法(3)归纳法(4)逐步求精法D(1)证明程序中没有错误(2)发现程序中的错误(3)测量程序的动态特性(4)检查程序中的语法错误E(1)找出错误所在改正之(2)排除存在错误的可能性(3)对错误性质进行分析(4)统计出错的次数2、软件测试的目的是(A)。
为提高测试的效率,应该(B)。
使用白盒测试方法时,测试数据应根据(C)和指定的覆盖标准。
一般说来,与设计测试数据无关的文档是(D),软件集成测试最好由(E)承担,以提高集成测试的效果。
A(1)评价软件质量(2)发现软件的错误(3)找出软件中的所有错误(4)证明软件是正确的B(1)随机地选取测试数据(2)取一切可能的输入数据作为测试数据(3)在完成编码以后制定软件测试计划(4)选择发现错误的可能性大的数据作为测试数据C(1)程序内部逻辑(2)程序的复杂程序(3)使用说明书(4)程序的功能D(1)需求规格说明书(2)总体设计说明书(3)源程序(4)项目开发计划E(1)该程序的设计人员(2)该软件开发组的负责人(3)该软件的编程人员(4)不属于该软件开发组的软件设计人员3、软件测试中常用的静态测试分析方法是(A)和(B)。
(B)用来检查模块或子程序间的调用是否正确。
分析方法(白盒法)中常用的方法是(C)方法。
非分析方法(黑盒法)中常用的方法是(D)方法和(E)方法。
(E)在单元测试后进行。
A,B(1)引用分析(2)算法分析(3)可靠性分析(4)效率分析(5)接口分析(6)操作性分析C,D,E(1)路径测试(2)等价类(3)边界值分析(4)归纳测试(5)综合测试(6)追踪(7)深度优待(8)排错(9)相对图4、原型法是用户和设计者之间执行的一种交互过程,适用于(A)系统。
软件工程复习题
软件工程复习题1.软件生命周期中所花费用最多的阶段是( D )。
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.结构化程序设计主要强调的是( D )。
A.程序的规模B.程序的效率C.程序设计语言的先进性D.程序易读性7.软件测试的目的是( B )。
A.为了表明程序没有错误B.为了说明程序能正确地执行C.为了发现程序中的错误D.为了评价程序的质量8.针对软件需求分析所进行的软件测试是指()。
A.集成测试B.确认测试C.黑盒子测试D.白盒子测试9.块间的信息可以作“控制信息”用,也可以作为()使用。
A.控制流B.数据结构C.控制结构D.数据10.在对数据流的分析中,主要是找到中心变换,这是从()导出结构图的关键。
A.数据结构B.实体关系C.数据流图D.E-R图11.Putnam成本估算模型是一个( D )模型。
A.静态单变量B.动态单变量C.静态多变量D.动态多变量12.软件调试技术包括(B)。
A.边界值分析B.演绎法C.循环覆盖D.集成测试13.瀑布模型的存在问题是( B )。
A.用户容易参与开发B.缺乏灵活性C.用户与开发者易沟通D.适用可变需求14.程序的三种基本控制结构是( B )。
A.过程、子程序和分程序B.顺序、选择和重复C.递归、堆栈和队列D.调用、返回和转移15.在详细设计阶段,经常采用的工具有( A )。
A.PAD B.SAC.SC D.DFD16.需求分析中开发人员要从用户那里了解()。
软件工程习题
软件工程习题CH1一、填空题1、软件工程需要解决的问题包括:、、、和。
2、到目前为止,软件生产的发展经历了三个阶段,即、和。
3、计算机科学中的研究曾国均可用于软件工程,但计算机科学侧重于,而软件工程侧重于。
4、软件工程有用管理科学的方法和原理进行。
5、软件工程是用科学知识和技术原理来、、软件的一门科学。
6、软件工程研究的主要内容包括软件开发技术和软件开发管理技术两个方面。
在软件开发技术方面,主要研究、、。
在软件开发管理技术方面主要研究、、。
7、作为一门交叉学科,软件工程具有很强的综合性,它涉及、、、等领域。
8、软件生产周期是指一个软件从提出开发要求开始直到该软件报废为止的整个时期。
通常包括、、、、、、、等活动,可以将这些活动以适当方式分配到不同阶段去完成。
9、开发软件工具的主要目的是为了提高软件生产效率和改善。
10、描述软件开发过程中各种活动如何执行的模型称为模型。
11、从软件工程诞生以来,已经提出了多种软件开发方法,如、、,它们对软件工程及软件产业的发展起到了不可估量的作用。
12、结构化方法由、和构成。
它是一种面向的开发方法。
13、模型是一种非整体开发方法的模型。
软件在该模型中是“逐渐”开发出来的,开发一部分向用户展示一部分,可让用户及早看到部分软件,及早发现问题。
或者先开发一个“原型”软件,完成部分主要功能,展示给用户并征求意见,然后逐步完善,最终获得满意的软件产品。
14、喷泉模型是一种以为动力,以作为驱动的模型,适合于的开发方法。
它克服了瀑布模型不支持软件重用和多项开发活动集成的局限性。
喷泉模型使开发过程具有和。
15、结构化方法总的指导思想是。
它的基本原则是功能的和。
它是软件工程中最早出现的开发方法,特别适用于的问题。
16、螺旋模型将模型和模型结合起来,加入了两种模型均忽略了的风险分析,弥补了这两种模型的不足。
17、螺旋模型将开发过程分为几个螺旋周期,在每个螺旋周期内分为4个工作步骤。
第一步,确定目标,选定实施方案,明确开发限制条件。
软件工程(习题及参考答案)
第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.软件开发瀑布模型中的软件定义时期各个阶段依次是:(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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程复习重点难点重点要求是以软件工程课程的教学大纲为依据,目的在于使学生理清思路,分清主次。
为本课程的期末复习提供参考。
一、各章重点、难点和复习要求说明第一章软件工程概述1.重点掌握的内容:软件和软件工程的基本概念软件:软件定义由以下三部分组成:(1)在运行中能提供所希望的功能和性能的指令集(即程序);(2)使程序能够正确运行的数据结构;(3)描述程序研制过程、方法所用的文挡。
软件是一种产品,同时又是开发和运行产品的载体。
作为一种产品,它表达了由计算机硬件体现的计算潜能。
作为开发运行产品的载体,软件是计算机工作的基础、信息通信的基础,也是创建和控制其他程序的基础。
软件的特点: ①软件是一种逻辑实体,而不是具体的物理实体,因而它具有抽象性。
②软件是通过人们的智力活动,把知识与技术转化成信息的一种产品,是在研制、开发中被创造出来的。
③在软件的运行和使用期间,没有硬件那样的机械磨损、老化问题。
④软件的开发和运行经常受到计算机系统的限制,对计算机系统有着不同程度的依赖性。
⑤软件的开发至今尚未完全摆脱手工的开发方式。
⑥软件的开发费用越来越高,成本相当昂贵。
软件工程:是指导计算机软件开发和维护的工程学科。
采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。
软件工程准则可以概括为七条基本原理:(1)用分阶段的生存周期计划严格管理;(2)坚持进行阶段评审;(3)实行严格的产品控制;(4)采用现代程序设计技术;(5)结果应能清楚地审查结果;(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性。
详细阐述见书中1.2.2节。
软件危机:指的是软件开发和维护过程中遇到的一系列严重问题。
软件工程的基本内容:软件工程学的内容可包括理论、结构、方法、工具、环境、管理、规范等。
第二章软件过程1.重点掌握的内容:软件生存周期及软件开发的各种模型;软件生存周期:一个软件从定义到开发、使用和维护,直到最终被弃用,要经历一个漫长的时期,通常把软件经历的这个漫长的时期称为生存周期。
软件生存周期一般可分为以下阶段:·问题定义·需求分析与可行性研究·设计·编码·测试·运行与维护软件开发模型:软件开发模型是跨越整个软件生存周期的系统开发、运作、维护所实施的全部工作和任务的结构框架。
瀑布模型即生存周期模型,由B.M.Boehm提出,是软件工程的基础模型。
其核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。
采用结构化的分析与设计方法,将逻辑实现与物理实现分开。
此外,还有螺旋模型、第四代技术模型、原型模型、构件组装模型、混合模型等软件开发模型。
第三章需求分析1.重点掌握的内容:需求分析的方法和面向数据流的分析方法;。
需求分析的方法:需求分析方法由对软件的数据域和功能域的系统分析过程及其表示方法组成,它定义了表示系统逻辑视图和物理视图的方式,大多数的需求分析方法是由数据驱动的,也就是说,这些方法提供了一种表示数据域的机制,分析员根据这种表示,确定软件功能及其他特性,最终建立一个待开发软件的抽象模型,即目标系统的逻辑模型。
面向数据流的需求分析方法:结构化分析方法是面向数据流进行需求分析的方法。
结构化分析方法使用数据流图DFD与数据字典DD来描述,面向数据流问题的需求分析适合于数据处理类型软件的需求描述。
其核心思想是分解化简问题,将物理与逻辑表示分开,对系统进行数据与逻辑的抽象。
具体来说,结构化分析方法就是用抽象模型的概念,按照软件内部数据传递、变换的关系,自顶向下逐层分解,直到找到满足功能要求的所有可实现的软件为止。
重点掌握结合实例画数据流图和定义数据字典。
系统流程图:系统流程图是描绘物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序,文件,数据库,表格,人工过程等等)。
系统流程图表达的是部件的信息流程,而不表示对信息进行加工处理的控制过程。
详见2.3节。
系统流程图的功能:1.制作系统流程图的过程是系统分析员全面了解系统业务处理概况的过程,它是系统分析员作进一步分析的依据。
2.系统流程图是系统分析员、管理人员、业务操作人员相互交流的工具。
3.系统分析员可直接利用系统流程图画出可以实现计算机处理的部分。
4.可利用系统流程图来分析业务流程的合理性。
2.一般掌握的内容:需求分析的任务和原则。
.需求分析的任务:它的基本任务是准确地回答“系统必须做什么?”这个问题。
需求分析所要做的工作是深入描述软件的功能和性能,确定软件设计的限制和软件同其它系统元素的接口细节,定义软件的其它有效性需求。
需求分析的任务不是确定系统如何完成它的工作,而是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。
其实现步骤如下图所示:模型化抽象化理解需求怎么做做什么具体化实例化表达需求一般说来,需求分析阶段的任务包括下述几方面:①确定对系统的综合需求对系统的综合需求主要有:系统功能需求、系统性能需求、运行需求、将来可能提出的需求。
②分析系统的数据需求③导出系统的逻辑模型就是在理解当前系统“怎样做”的基础上,抽取其“做什么”的本质,明确目标系统要“做什么”,可以导出系统的详细的逻辑模型。
具体做法是:首先确定目标系统与当前系统的逻辑差别;然后将变化部分看作是新的处理步骤,对功能图(一般为数据流图)及对象图进行调整;最后由外及里对变化的部分进行分析,推断其结构,获得目标系统的逻辑模型。
通常用数据流图、数据字典和主要的处理算法描述这个逻辑模型。
④修正系统开发计划在经过需求分析阶段的工作,分析员对目标系统有了更深入更具体的认识,因此可以对系统的成本和进度做出更准确的估计,在此基础上应该对开发计划进行修正。
⑤开发原型系统使用原型系统的主要目的是,使用户通过实践获得关于未来的系统将怎样为他们工作的更直接更具体的概念,从而可以更准确地提出和确定他们的要求。
需求分析的步骤:1.调查研究;2.分析与综合;3.书写文档;4.需求分析评审需求分析的原则:其基本原则可概括为: (1)必须能够表达和理解问题的数据域和功能域;(2)按自顶向下、逐层分解问题;(3)要给出系统的逻辑视图和物理视图;2.可行性研究的任务和步骤,成本效益分析可行性研究的任务:是用最小的代价在尽可能短的时间内确定问题是否能够解决。
一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案等方面研究可行性。
可行性研究的步骤:可行性研究的步骤分为九个步骤。
成本效益分析:成本/效益分析的目的是要从经济角度分析开发一个特定的新系统是否可行,从而帮助使用部门负责人正确地做出是否投资于这项开发工程的决定。
几种度量效益的方法:1.货币的时间价值;2.投资回收期;3.纯收入。
第四章结构化设计1.重点掌握的内容:结构化设计的过程和方法概要设计任务:①系统分析员审查软件计划、软件需求分析提供的文档,提出最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,供专家审定,审定后进入设计。
②确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。
确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。
③编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。
选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。
概要设计过程:概要设计要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。
软件设计的概念与原则:①将软件划分成若干独立成分的依据。
②如何表示不同的成分内的功能细节和数据结构。
③如何统一衡量软件设计的技术质量。
其中有几个概念:1.模块化:就是把程序划分成若干个模块,每个模块具有一个子功能,把这些模块集总起来组成一个整体,可以完成指定的功能,实现问题的要求。
2. 抽象:就是抽出事物的本质特性而暂时不考虑它们的细节。
3. 信息隐蔽: 模块中所包括的信息不允许其它不需要这些信息的模块调用。
4. 信息局部化:是指把一些关系密切的软件元素物理地放得彼此靠近。
5. 模块独立性:是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。
模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。
6. 耦合:是对一个软件结构内各个模块之间互连程度的度量。
耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。
7. 内聚:标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。
概要设计的方法:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。
面向数据流的设计要解决的任务,就是上述需求分析的基础上,将DFD 图映射为软件系统的结构。
换句话说,这类设计方法允许把用DFD图表示的系统逻辑模型方便地转换成对于软件结构的初始设计描述。
理解基本概念:信息流(包括变换流和事务流)、抽象与逐步求精;模块化与信息隐藏;软件总体结构、数据结构与软件过程。
面向数据结构的分析设计方法:①Jackson系统开发方法(JSD): Jackson系统开发方法(JSD,Jackson SystemDevelopment)是一种典型的面向数据结构的分析设计方法,它是以信息驱动的,是将信息转换成软件的程序结构。
② Warnier方法:Warnier程序设计方法是由法国人J.D.Warnier提出的另一种面向数据结构的设计方法,又称为逻辑构造程序的方法,简称LCP(Logical Construction of Programs)方法。
Warnier方法的原理和Jackson方法类似,也是从数据结构出发设计程序,但是这种方法的逻辑更严格。
2.一般掌握的内容:概要设计的文档与评审学会撰写概要设计的文档并能评审出概要设计文档是否符合要求。
概要设计说明书的主要内容及结构详见4.5节。
详细设计1.重点掌握的内容:详细设计的任务和方法详细设计的任务:详细设计就是要在概要设计的结果的基础上,考虑“怎样实现”这个软件系统,直到对系统中的每个模块给出足够详细的过程性描述。
主要任务如下:①为每个模块确定采用的算法,选择某种适当的工具表达算法的过程,写出模块的详细过程性描述;②确定每一模块使用的数据结构;③确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。
④要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码(即程序)进行预定的测试,模块的测试用例是软件测试计划的重要组成部分,通常应包括输入数据,期望输出等内容。