软件工程习题大家参考一下.docx
- 文档编号:6613304
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:12
- 大小:44.82KB
软件工程习题大家参考一下.docx
《软件工程习题大家参考一下.docx》由会员分享,可在线阅读,更多相关《软件工程习题大家参考一下.docx(12页珍藏版)》请在冰豆网上搜索。
软件工程习题大家参考一下
一:
1什么是软件软件可以分类为那些?
软件是计算机系统中与硬件相互依存的另一部分,它是包括程序,数据及其相关文档的完整集合。
系统软件操作系统,数据库管理系统,设备驱动程序,通信处理程序等
支撑软件文本编辑程序,文件格式化程序,磁盘向磁带向数据传输的程序,程序库系统,支持需求分析、设计、实现、测试和支持管理的软件
应用软件商业数据处理软件,工程与科学计算软件,计算机辅助设计/制造软件,系统仿真软件,智能产品嵌入软件,办公自动化软件,计算机辅助教学软件
可复用软件软件构件
2什么是软件工程
软件工程是指导计算机软件开发和维护的一门工程学科。
采用工程的概念、原理、技术和方法来开发和维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好技术结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。
3软件生存期由哪3个时期组成每个时期又划分为哪些阶段
软件定义时期问题定义、可行性研究和需求分析。
软件开发时期由概要设计、详细设计、编码和测试4个阶段组成
软件运行维护时期改正性维护,适应性维护,完善性维护,预防性维护
4软件生存期模型有哪些
瀑布模型快速原型模型增量模型螺旋模型喷泉模型统一过程
5软件工程知识体系包括那些知识域?
二:
1软件工程三要素是什么?
三要素:
方法、工具和过程。
软件工程方法为软件开发提供了“如何做”的技术;
软件工具为软件工程方法提供了自动的或半自动的软件支撑环境;
过程是为了获得高质量的软件所需要完成的一系列任务框架,它规定了完成各项任务的工作步骤
2结构化方法的基本思想是什么
把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
3面向对象方法是以什么概念为基础的方法
面向对象方法(Object-OrientedMethod)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。
4什么是形式化方法?
形式化方法是一种基于形式化数学变换的软件开发方法,它可将系统的规格说明转换为可执行的程序。
5UML的特点。
1)统一标准
UML不仅统一了Booch、OMT和OOSE等方法中的基本概念,还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法的影响。
已经成为OMG的标准。
(2)面向对象
UML支持面向对象技术的主要概念,它提供了一批基本的表示模型元素的图形和方法,能简洁明了地表达面向对象的各种概念和模型元素。
(3)可视化,表达能力强大
UML是一种图形化语言,用UML的模型图形能清晰地表示系统的逻辑模型或实现模型。
UML还提供了语言的扩展机制,用户可以根据需要增加定义自己的构造型、标记值和约束等。
(4)独立于过程
UML是系统建模的语言,不依赖特定的开发过程。
(5)容易掌握使用
UML概念明确,建模表示法简洁明了,图形结构清晰,容易掌握使用。
(6)与编程语言的关系
支持UML的一些CASE工具(如Rose)可以根据UML所建立的系统模型自动产生Java、C++等代码框架。
三1结构化分析方法
结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。
它的基本思想:
把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。
四1软件设计的原则。
1)分而治之
2)分而治之是人们解决大型复杂问题时通常采用的策略。
将大型复杂的问题分解为许多容易解决的小问题,原来的问题也就容易解决了。
3)模块独立性
4)模块的独立性是指软件系统中每个模块只涉及软件要求的具体的子功能,而和软件系统中其他的模块的接口是简单的。
例如,若一个模块只具有单一的功能且与其他模块没有太多的联系,那么,我们则称此模块具有模块独立性
5)提高抽象层次
6)抽象是指忽视一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
7)当我们进行软件设计时,设计开始时应尽量提高软件的抽象层次,按抽象级别从高到低进行软件设计
8)
复用性设计
复用是指同一事物不做修改或稍加修改就可以多次重复使用。
将复用的思想用于软件开发,称为软件复用。
我们将软件的重用部分称为软构件。
也就是说,在构造新的软件系统时不必从零做起,可以直接使用已有的软构件即可组装(或加以合理修改)成新的系统。
9)灵活性设计
10)保证软件灵活性设计的关键是抽象。
11)面向对象系统中的类结构类似一座金字塔,越接近金字塔的顶端,抽象程度就越高。
12)“抽象”的反义词是“具体”。
理想情况下,一个系统的任何代码、逻缉、概念在这个系统中都应该是唯一的,也就是说不存在重复的代码。
13)2结构化软件设计划分为哪两个阶段设计任务分别是什么?
14)概要设计阶段和详细设计阶段。
15)体系结构设计:
体系结构设计定义软件的主要结构元素及其之间的关系。
16)接口设计:
接口设计描述用户界面,软件和其他硬件设备、其他软件系统及使用人员的外部接口,以及各种构件之间的内部接口。
17)数据设计:
传统方法主要根据需求阶段所建立的实体—关系图(ER图)来确定软件涉及的文件系统的结构及数据库的表结构。
过程设计:
过程设计的主要工作是确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
3什么是模块模块的分类。
一个软件系统通常由很多模块组成,结构化程序设计中的函数和子程序都可称为模块,它是程序语句按逻辑关系建立起来的组合体。
传入模块,传出模块,变换模块,协调模块
4课后习题.将图4-49修改为等价的结构化流程图,并用标准流程图、N-S图、和PAD图分别表示。
六:
1名词解释:
软件测试、测试用例、黑盒测试、白盒测试。
软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量控制的关键步骤。
测试用例是指对一项头顶的软件产品进行测试任务的描述,体现测试方案、方法、技能和策略。
内容包括测试目标,测试环境,输入数据,测试步骤,预期结果,测试脚本等,并形成文档。
黑盒测试是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
白盒测试是对软件的过程性细节做细致的检查。
这一方法是把测试对象看做一个打开的盒子或透明的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
1软件:
完成特定功能的程序+数据结构+文档
2软件危机:
指计算机软件的开发和维护过程中所遇到的一系列严重问题
4软件生命周期:
一个软件从定义、开发、使用和维护直至最终被废弃,要经历的漫长时期
5 数据流图:
一种图形化技术,它描绘信息流和数据从输入移动到输出过程中所经受的变换
6数据字典:
数据字典是关于数据数据信息的集合,也就是对数据流图中包含的所有元素的定义集合
7概念性数据模型(ER图):
是一种面向问题的数据模型,按照用户的观点对数据建立模型
8数据对象:
是对软件必须理解的复合信息的抽象
9复合信息:
指具有一系列不同性质或属性的事物,仅有单个值的事物不是数据对象
10模块:
由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表他
11 模块化:
把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能
12模块独立:
每个模块完成一个相对独立的特定子功能,并且和其他模块关系简单
13结构程序设计经典定义:
如果一个程序代码块仅仅通过顺序 选择和循环三种基本控制结构进行连接,且每个代码块只有一个入口一个出口,则称这个程序结构化 14. ☆结构化程序设计更全面定义:
尽可能少用GO TO语句的程序设计方法,最好仅在检测出错误时才使用,而且应该总是使用前项GO TO语句
15耦合:
是对一个软件结构内不同模块间互联程度的度量
16内聚:
标志着一个模块内各个元素彼此之间互联程度的度量
17编码:
就是把软件设计结果翻译成用某种程序设计语言书写的程序
18编码风格:
指不影响程序正确性和效率的前提下,有效编排和合理组织程序的基本原则
21软件的可靠性:
是程序在给定的时间间隔内,按照规格说明书规定成功地运行概率
22 软件可用性:
是程序在给定的时间点,按照规格说明书规定成功地运行概率
23软件维护:
是软件已经交付使用后,为了改正错误或满足新的需要而修改的软件的过程
24对象:
由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的统一体
25类:
是对具有相同属性和行为的一个或多个对象的描述 26. ☆实例:
由某个特定的类所描述的一个具体对象
27消息:
要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明
28方法:
就是对象所能执行的操作,也就是类中所定义的服务
29属性:
就是类中所定义的数据,它是对客观世界实体所具有的性质抽象
30继承:
广义的说是指能够直接获得已有的性质和特征,而不必重复定义它们 狭义的说是子类自动地共享基类中定义的数据和方法的机制 31. 面向对象分析:
抽取和整理用户需求并建立问题域精确模型过程
32 软件设计:
从抽象概括到具体实践过程
33抽象:
抽出事物的本质特征而暂时不考虑它们细节
34逐步求精定义:
为了能集中精力解决主要问题而尽量推迟对问题细节考虑
35局部化指:
把一些关系密切的软件元素物理放的彼此靠近
36深度表示软件结构中控制的层数,它往往能错略标志一个系统的大小和复杂程度
37宽度是软件结构内同一个层次上模块总数的最大值。
宽度越大系统越复杂
38扇出是一个模块直接控制的模块数目,扇出过大或过小都不好
39扇入是有多少上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多这是有好处的 但也不能
违背模块独立原理单纯追求高扇入
2逻辑覆盖的分类。
由于覆盖测试的目标不同,逻辑覆盖又可分为:
语句覆盖
判定覆盖
判定—条件覆盖
条件组合覆盖
路径覆盖
3等价类划分方法中选择测试用例的原则。
①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.
②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.
③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.
④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.
⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).
⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.
4比较α测试和β测试,说明其异同
α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。
β测试是由软件的多个用户在一个或多个用户的实际使用环境下进行的测试。
与α测试不同的是,开发者通常不在测试现场,由用户记下遇到的所有问题。
5软件测试过程的4个步骤。
单元测试、组装测试、确认测试和系统测试
七:
UML中有哪几种类图每种类图的作用是什么
用例图类图交互图状态图活动图实现图
用例模型描述的是外部执行者(actor)所理解的系统功能
类图描述类和类与类之间的静态关系,它是从静态角度表示系统的,因此类图属于一种静态模型。
顺序图描述对象之间的动态交互关系,着重表现对象间消息传递的时间顺序
协作图是顺序图的一种变化形式,用于描述相互协作的对象间的交互关系和链接关系。
状态图描述一个特定对象的所有可能的状态以及引起状态转换的事件。
活动图用来捕捉用例的活动,使用框图的方式显示动作及其结果
构件图描述软件构件及构件之间的依赖关系,显示代码的静态结构。
部署图描述处理器、设备和连接,它显示系统硬件的物理拓扑结构及在此结构上执行的软件。
九1.体系结构的概念和作用
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。
处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。
作用
(1)体系结构的表示有助于风险承担者(项目干系
人)进行交流。
(2)体系结构突出了早期设计决策。
(3)软件体系结构是可传递和可复用的模型。
2.调用-返回风格的体系结构包含哪些
1.主程序/子程序体系结构2.面向对象风格3.层次结构
分布式系统结构的优点
(1)资源共享。
分布式系统允许硬件、软件等资源共享使用。
(2)经济性。
(3)性能与可扩展性。
(4)固有分布性。
(5)健壮性
3.客户/服务器体系结构的组成,三层C/S体系结构分成哪三层
服务器、客户机和网络三部分组成。
,表示层、应用逻辑层和数据层三个部分
S体系结构的优缺点。
(1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
(2)B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网和统一服务的最现实的开放性基础。
缺点:
(1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
(2)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。
(3)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。
十一1.软件维护的概念和分类。
软件维护是指在软件运行/维护阶段对软件产品所进行的修
改就是所谓的维护。
根据维护工作的性质,软件维护的活动
可以分为以下4种类型。
改正性维护
适应性维护
完善性维护
预防性维护
2.程序修改的步骤.
分析和理解程序、实施修改以及重新验证程序。
十二1.过程要素的构成。
(1)输入;
(2)输出;
(3)活动及进一步分解的任务(或作业);
(4)资源是支持活动执行所必须的,包括人员、设备及相关的耗费;
(5)测量与验证能保证过程中的相关元素是合格的(在图中这些过程元素标有△记号);
(6)过程目标,如活动取得的效果是增值。
2.软件过程成熟度的概念
软件过程成熟度(SoftwareProcessMaturity)是软件过程改进的一个重要概念,它是指:
一个特定软件过程得到清晰的定义、管理、测量、控制的有效程度。
成熟度意味着能力的增长具有潜力,并表示组织软件过程是珍贵的,他在组织内所有项目中的应用是一致的。
3.什么是CMM
CMM是能力成熟度模型CapabilityMaturityModel三个英文单词第一个字母组成的事实上,该模型最早提出时,它指的是软件过程能力成熟度模型。
该模型按软件过程的不同成熟度划分了5个等级,1级被认为成熟度最低,5级则成熟度最高。
模型的等级划分
成熟度等级(ML,MaturityLevel)初始级(ML1)已管理级(ML2)已定义级(ML3)已量化管理级(ML4)优化级(ML5)
能力等级(CL,CapabilityLevel)完备级(CLO)已实施级(CL1)已管理级(CL2)已定义级(CL3)定量管理级(CL4)优化级(CL5)
十三1.软件项目管理的目标。
(1)达到项目预期的软件产品功能和性能要求。
也就是软件产品达到了用户已认可的需求规格说明的要求。
(2)时限要求。
项目应在合同规定的期限内完成。
(3)项目开销限制在预算之内。
2.软件项目管理涉及哪几个方面。
人员、产品、过程和项目,即所谓4P(People、Product、Process、Project)。
补充习题;
1简述传统方法学软件设计的基本原理及内容。
传统方法学也称生命周期方法学或结构化范型。
原理:
采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务,并使用适当的软件工具或软件工程环境来支持结构化技术的运用。
内容:
把软件生命周期的全过程依次划分为若干个阶段,然后顺序地完成每个阶段的任务。
采用生命周期方法学可以大大提高软件开发的成功率,软件开发的生产率也能明显提高。
2写出CMM5个等级的名称以及每个等级所包含的KPA至少各列出2个KPA
答初始级
可重复级需求管理、项目策划等
已定义级组织过程焦点、组织过程定义等
已管理级过程定量管理、软件质量定量管理
优化级缺陷预防、技术革新管理等
3解释里程碑、基线与检查点等3个术语的概念
答检查点指在规定的时间间隔内对项目进行检查比较实际与计划之间的差异并根据差异进行调整。
里程碑指一个或一组配置项在项目生命周期的不同时间点上通过正式评审而进入正式受控的一种状态。
基线完成阶段性工作的标志
4以的观点,简述对软件测试的定义。
给出了关于测试的一些规则,这些规则也可以看作是测试的目标或定义。
(1) 测试是为了发现程序中的错误而执行程序的过程;
(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案; (3) 成功的测试是发现了至今为止尚未发现的错误的测试。
从上述规则可以看出,测试的正确定义是“为了发现程序中的错误而执行程序的过程”
简述面向对象方法学的4个要点。
5概括地说,面向对象方法学具有下述4个要点:
(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。
(2) 把所有对象都划分成类(class)。
(3) 按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。
(4) 对象彼此间仅能通过发送消息互相联系。
6. 列举出5个详细设计阶段的常用工具。
程序流程图,盒图,PAD图(问题分析图),判定表,判定树,过程设计语言
7简述什么是系统流程图。
答:
系统流程图是描述物理系统的传统工具。
它的基本思想是用图形符号以黑盒子形式描绘系统里的每个部件(程序、文件、数据库、表格、人工过程等)。
系统流程图表达的是部件的信息流程,而不表示对信息进行加工处理的控制过程。
8为什么数据流图要分层
答:
这了表达数据处理过程的数据加工情况,用一个数据流图是不够的。
为表达稍为复杂的实际问题,需要按照问题的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系。
9软件的质量反应为哪些方面的问题
答:
软件需求是度量软件质量的基础,不符合需求的软件就不具备质量。
在各种标准中定义了一些开发准则,用来指导软件人员用工程化的方法来开发软件。
如果不遵守这些开发准则,软件质量就得不到保证。
往往会有一些隐含的需求没有明确地提出来。
如果软件只满足那些精确定义了的需求而没有满足这些隐含的需求,软件质量也不能保证。
软件质量是各种特性的复杂组合。
它随着应用的不同而不同,随着用户提出的质量要求不同而不同。
10简单传述软件可维护性度量的含义。
(5分)
答:
可维护性度量表示软件系统维护工作的强度或维护工作量的大小。
人们为了度量可维护性,
常将可维护性度量问题分解为对:
可测试性、可理解性、可修改性、可移植性、可靠性、有效性和可用性的度量。
11耦合性有哪几种类型 其耦合度的顺序如何
低:
非直接耦合 数据耦合标记耦合 控制耦合外部耦合 公共耦合
内容耦合 :
高
12什么是软件危机为什么会产生软件危机
软件危机是指软件在开发和维护过程中遇到的一系统严重问题,主要包含二方
面的问题,一是如何开发利用软件,三是如何维护数量不断膨胀的已有软件。
产生软件危机的原因,一方面与软件本身的特点有关,另一方面和软件开发与维护的方法不正确有关。
13简述需求分析工作可以分成哪四个方面软件需求分析的有哪三个基本原则
:
需求分析阶段分成四个方面:
对问题的识别、分析与综合、制定规格说明和评
审。
三个基本原则:
必须能够表达和理解问题的数据域和功能域;必须按自顶向下、逐步分解的方式对问题进行分解和不断细化;要给出系统的逻辑视图和物理视图。
提空题:
1.目前使用最广泛的软件工程学方法分别是传统方法学和(面向对象方法学 ) 。
2. 2.数据流图中信息流的类型有(变换流 )和事务流。
3.软件的定义是:
软件=程序+数据+ ( 文档 ) 。
4.经典结构程序设计包括顺序、选择和 ( 重复 )三种结构。
5.集成测试时对软件结构中上层使用 自顶向下 的集成测试方法,对软件结构中下层使用 ( 自底向上 ) 的集成测试方法。
6.软件维护包括( 改正性维护 )、适应性维护、完善性维护、预防性维护。
7.面向对象方法学建模得到的三个基本子模型是 (对象建模) .动态模型、功能模型。
8.复杂大型问题的对象模型通常由主题层、类与对象层、结构层、(属性层 )、及服务层5个层次组成。
9.面向对象方法学是基于 软件 的重用。
10.软件层次结构图中方框间的连线表示 调用 关系。
1软件工程学的基本原则包括 分解性 、 独立性 、一致性、确定性等
2软件生存周期一般可分为问题定义,可行性研究、需求分析 、设计、编码、测试 ,运行与维护阶段。
3.成本估计方法主要有 自顶向下方法 、自底向上方法 和算法模型估计三种类型。
4.数据流图的基本符号包括 数据输入的源点和数据输出的汇点 、 加工 、 数据流 、 数据存储文件 5.JSD是一种典型的 面向数据结构 的分析设计方法。
6.详细设计的工具有 图形工具 、表格工具和 语言工具 。
7.IPO图由 输入 、处理和 输出 三个框组成。
这个图的特点是能够直观的显示三者之间的关系。
8.面向对象技术是一整套关于如何看待 软件系统 和 现实世界 的关系,以什么观点来研究问题并进行分析求解,以及如何进行系统构造的软件方法学。
面向对象方法是一种运用 类 、 对象 、 继承 、 封
装 、聚集、消息传送、多态性等概念来构造系统的软件开发方法。
9.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的 逆向工程 。
10.程序测试是对编码阶段的语法错、 语义 和 运行 进行查找的编码执行活动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 习题 大家 参考 一下