软件工程名词解释题简答题汇总.docx
《软件工程名词解释题简答题汇总.docx》由会员分享,可在线阅读,更多相关《软件工程名词解释题简答题汇总.docx(12页珍藏版)》请在冰豆网上搜索。
软件工程名词解释题简答题汇总
名词解释题汇总:
1.软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序与其操作的文档。
2.信息隐藏模块中的软件设计决策信息封装起来的技术,只知道它的功能以与对外的接口,而不知它的内部细节
3.对象对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封
4.软件可维护性指软件被理解、改正、调整和改进的难易程度。
5.原型是目标软件系统的一个可操作模型,它实现了目标软件系统的某些重
6.软件生存周期软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。
7.白盒测试是已知产品内部工作过程,通过测试检验产品内部动作是否按照产品规格说明的规定正常进行
8.预防性维护是为了进一步改善软件系统的可维护性和可靠性,并为以后的改进奠定基础。
9.构件图描述软件实现系统中各组成部件以与它们之间的依赖关系。
10.场景从单个执行者的角度观察目标软件系统的功能和外部行为。
11.计算机辅助软件工程(CASE)将若干工具集成起来,与软件工程数据库和计算机系统构成一个支持软件开发的系统
12.编程风格是在不影响性能的前提下,有效地编排和组织程序以提高可读性和可维性。
13.黑盒测试方法是已知产品应该具有的功能,通过测试检验每个功能是否都能正常使用;
14.实体—关系图描述系统所有数据对象的组成和属性,描述数据对象之间关系的图形语言。
15.软件维护的副作用指由于维护或在维护过程中其他一些不期望的行为引入的错误,
16.软件生存周期软件产品从形成概念开始,经过开发、运行(使用)和维护直到退役的全过程称为软件生存周期,包括软件定义、开发、使用和维护三部分。
17.结构化程序设计是一种程序设计技术,采用自顶向下逐步求精的设计方法和单入口单出口的控制构件。
18.软件过程(softwareprocess)软件开发人员为开发和维护软件与相关产品所实施的一系列步骤,这些步骤涉与方法、工具与人的组织和行为。
19.综合测试是组装软件的系统测试技术,按设计要求把通过单元测试的各个模块组装在一起之后,进行综合测试以便发现与接口有关的各种错误。
20.过程抽象把完成一个特定功能的动作序列抽象为一个过程名和参数表,通过指定过程名和实际参数调用此过程;
21.水平原型是指仅仅模拟目标软件系统某一层面(通常是用户界面层)的原型。
22.CASE工具是一些软件系统,支持软件过程的常规活动,如编辑设计图表、检查图表的连贯性、跟踪已经运行的程序测试等。
23.部署图(deploymentdiagram)描述软件系统运行环境的硬件与网络的物理体系结构。
24.垂直原型是指模拟目标软件系统某一部分的多个层面的原型。
当目标系统的内部功能和用户界面都需要借助原型来确定时,这类原型特别有用。
一般的进化性原型都属于垂直原型。
25.数据抽象把一个数据对象的定义(或描述)抽象为一个数据类型名,用此类型名可定义多个具有相同性质的数据对象。
26.项目风险指项目在预算、进度、人力、资源、顾客和需求等方面的原因对软件项目产生的不良影响。
27.α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品(称为α版本)进行测试,试图发现错误并修正。
28.完善性维护成任务是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
29.技术风险指软件在设计、实现、接口、验证和维护过程中可能发生的潜在问题,对软件项目带来的危害。
30.活动图描述系统为完成某项功能而执行的操作序列,这些操作序列可以并发和同步。
31.内聚性内聚性是模块独立性的衡量标准之一,它是指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
32.软件工程方法是软件生产的组织方式,包括对软件过程的建议、使用的标记法、进行系统描述的规律和设计指南。
33.适应性维护是为适应环境的变化而修改软件的活动。
34.数据设计是为在需求规格说明中定义的那些数据对象选择合适的逻辑表示,并确定可能作用在这些逻辑结构上的所有操作(包括选用已存在的程序包)。
35.异步消息(AsynchronousMessage)表示消息源发出消息后不必等待消息处理过程的返回,即可继续执行自己的后续操作。
36.软部件合成是指将库中的软部件(经适当修改后)相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件
37..进化性原型如果原型不仅用来理解问题、试验求解方案,而且用作目标软件系统的基础,在后续开发过程中逐步进化为最终的软件产品.
38..软件质量软件产品满足规定的和隐含的与需求能力有关的全部特征和特性,
39.恢复测试主要检查系统的容错能力。
当系统出错时,能否在指定的时间间隔内修正错误并重新启动系统。
40.状态图描述类的对象的动态行为。
它包含对象所有可能的状态、在每个状态下能够响应的事件以与事件发生时的状态迁移与响应动作。
简答题汇总:
●一
●问
●:
1.简述设计模型精化时需要考虑的任务
●2.简述人机界面的风格大致经历了那四代的演变。
3.简述螺旋模型的基本开发过程。
●4.简述启发式设计策略最常用的几条。
●5.简述采用信息隐藏原理指导模块设计优点。
●答:
●1.设计模型精化时需要考虑的任务:
●以顶层架构图为基础,精化目标软件系统的体系结构;精化类之间的关系;
●精化类的属性和操作;针对具有明显状态转换特征的类,设计状态图;
●针对比较复杂的类方法,设计活动图。
●2、人机界面的风格大致经历了那四代的演变:
●最早,即在图形显示、鼠标、高速工作站等技术出现之前,现实可行的界面方式只能是命令和询问方式,通信完全以正文形式并通过用户命令和用户对系统询问的响应来完成。
●第二代界面是简单的菜单式。
●第三代界面是面向窗口的点选界面,亦称为WIMP界面。
●最新一代HCI把第三代HCI技术与超文本、多任务概念结合起来,使用户可同时执行多个任务(以用户的观点)。
●3.螺旋模型的基本开发过程可描述如下:
●需求定义2)风险分析3)工程实现4)评审。
●上述过程将不断迭代,直至给出用户满意的目标软件产品。
●4.启发式设计策略最常用的几条有:
●改造程序结构,减小耦合度,提高内聚度。
●改造程序结构,减少高扇出,在增加程序深度的前提下追求高扇入。
●改造程序结构,使任一模块的作用域在其控制域之内。
●改造程序结构,减少界面的复杂性和冗余程度,提高协调性。
●模块功能应该可预言,避免对模块施加过多限制。
●改造程序结构,追求单入口单出口的模块。
●为满足设计或可移植性的要求,把某些软件用包(Package)封装起来。
●5.采用信息隐藏原理指导模块设计优点:
●支持模块的并行开发;减少软件测试和软件维护的工作量。
●二
●问
●1.在软件开发过程中,为了达到软件开发目标,必须遵循哪些原则?
●2.CMM的能力成熟度共分哪五级?
●3.用例实现方案的设计方法分为哪三个步骤?
●4.单元测试任务主要有哪些?
●5.面向功能的度量有哪些优点和缺点
●答:
●1.在软件开发过程中,为了达到软件开发目标,必须遵循的原则:
●抽象模块化 信息隐藏局部化
●一致性完全性 可验证性
●2.CMM的能力成熟度共分为五级为:
●L1初始级、L2可重复级、L3己定义级、L4己管理级、L5优化级
●3.用例实现方案的设计方法分为三个步骤:
●提取边界类、实体类和控制类;
●构造交互图;
●根据交互图精化类图。
●4.单元测试任务主要有:
●模块接口测试;
●模块局部数据结构测试;
●模块边界条件测试;
●模块中所有独立执行通路测试;
●模块的各条错误处理通路测试。
●5.面向功能的度量的优点和缺点
●答:
优点
●①与程序设计语言无关,它不仅适用于过程式语言,也适用于非过程式的语言;
●②软件项目开发初期就能基本上确定系统的输入、输出等参数,功能点度量能用于软件项目的开发初期。
●缺点
●①它涉与到的主观因素比较多,如各种权函数的取值;
●②信息领域中的某些数据有时不容易采集;
●③FP的值没有直观的物理意义。
●三
●问:
●1.简述概要设计,详细设计,实现任务,组装测试,确认测试它们的任务?
●2.制定软件项目进度表有哪两种途径?
●3.简述软件需求分析阶段的主要内容,技术和方法?
●4.简述过程设计语言(PDL)的特点。
●5.简述过程式程序设计语言的基本机制所包括哪些内容。
●答:
●1.概要设计任务:
●根据SRS建立目标软件系统的总体结构和模块间的关系、定义各功能模块的接口,设计全局数据库和数据结构,规定设计约束,制定组装测试计划等等。
●详细设计任务:
●细化概要设计所生成的各个模块,并详细描述程序模块的内部细节(算法,数据结构等),形成可编程的程序模块,制订单元测试计划
●实现任务:
●根据详细设计规格说明书编写源程序,并对程序进行调试、单元测试、系统集成,验证程序与详细设计文档的一致性
●组装测试任务:
●组装测试应满足概要设计的要求。
●确认测试任务:
●根据软件需求规格说明书,测试软件系统是否满足用户的需求
●2.制定软件项目进度表的两种途径:
●软件开发小组根据提供软件产品的最后期限从后往前安排时间。
●软件项目开发组织根据项目和资源情况制定软件项目开发的初步计划和交付软件产品的日期。
●3.软件需求分析阶段的主要内容,技术和方法分别为:
●需求分析主要内容:
问题分析、需求描述、需求评审
●技术和方法:
初步需求获取技术需求建模技术快速原型技术
●问题抽象、问题分解与多视点分析
●4.过程设计语言(PDL)的特点:
●①关键字采用固定语法并支持结构化构件、数据说明机制和模块化;
●②处理部分采用自然语言描述;
●③允许说明简单(标量、数组等)和复杂(链表、树等)的数据结构;
●④子程序的定义与调用规则不受具体接口方式的影响。
●5.过程式程序设计语言的基本机制所包括内容:
●对象说明数据类型的定义和检查子程序控制结构
●四
●问:
●1、简述软件工程目标。
●2、简述CMM优点和缺点。
●3、用SD方法将数据流图转换为软件结构,简述其过程。
●4、试述软件测试过程。
●5、面向对象程序设计语言最基本的机制包括哪些?
●
●答:
●1、软件工程目标:
在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可适应性、可追踪性、可移植性、可互操作性并满足用户需求的软件产品。
●2、CMM优点和缺点:
●优点
●CMM模型概念清晰、层次分明、易于操作。
●为组织负责人和管理者提供指导组织逐步成熟的、明确的、有效的、单一路途。
●缺点
●在阶段式模型中,属于较高级别成熟度的过程域不支持较低级别的过程域,如在L2级就无法安排属于L3级的“同行评审”过程域的实践活动。
●CMM过程域的度量只有通过或不通过,度量比较粗糙没有反映优势和一般。
●3用SD方法将数据流图转换为软件结构,其过程分为:
●确定信息流的类型;划定流界;
●将数据流图映射为程序结构;提取层次控制结构;
●通过设计复审和启发式策略精化结构。
●4、试述软件测试过程:
●可概括为用单元测试保证模块正确工作,用综合测试保证模块集成到一起后正常工作,用确认测试保证软件需求的满足,用系统测试保证软件与其他系统元素合成后达到系统各项性能要求。
●5、面向对象程序设计语言最基本的机制包括:
●类、子类、对象和实例的定义,单继承和多继承,对象的部分—整体关系,消息传递和动态链接等等。
●
●五
●问:
●1、项目风险指项目在预算、进度、人力、资源、顾客和需求等方面的原因对软件项目产生的不良影响。
●2、α测试是指软件开发公司组织内部人员模拟各类用户行为对即将面市的软件产品(称为α版本)进行测试,试图发现错误并修正。
●3、完善性维护成任务是根据用户在使用过程中提出的一些建设性意见而进行的维护活动。
●4、技术风险指软件在设计、实现、接口、验证和维护过程中可能发生的潜在问题,对软件项目带来的危害。
5、活动图描述系统为完成某项功能而执行的操作序列,这些操作序列可以并发和同步。
●
●答:
●1、软件危机表现方面:
●软件开发成本过高;软件质量得不到保证;软件开发效率低;
●难以控制开发进度,工作量估计困难;
●软件不能满足社会发展的需求,成为社会、经济发展的制约因素;
●程序规模、工作量与成本的关系。
●2、软件项目管理任务:
●制定软件项目的实施计划和方案;
●对人员进行组织和分工;
●按照计划进度,以与成本管理、风险管理、质量管理的要求进行软件开发,完成软件项目的各项要求和任务。
●3、采用信息隐藏原理指导模块设计优点:
●支持模块的并行开发;减少软件测试和软件维护的工作量。
●4、黑盒测试完全不考虑程序的内部结构和处理过程,测试仅在程序界面上进行。
因此黑盒测试设计测试用例旨在说明:
●①软件的功能是否可操作;
●②程序能否适当地接收输入数据并产生正确的输出结果或在可能的场景中事件驱动的效果是否尽如人意;
●③能否保持外部信息(如数据文件)的完整性。
●5、简述设计模型精化需要需要考虑的任务:
●以顶层架构图为基础,精化目标软件系统的体系结构。
●精化类之间的关系。
●精化类的属性和操作。
●针对具有明显状态转换特征的类,设计状态图。
●针对比较复杂的类方法,设计活动图。
●六
●问:
●1.子程序是可独立编译的程序单元,子程序一般具备那三种机制
●2.试述瀑布模型的优点和缺点?
●3.软件工程的目标是生产高质量的软件,高质量的软件应该具备那三个条件。
●4.在省略有关建模的技术细节之后,简述域分析过程步骤。
●5.软件总体结构应该包括哪两方面内容?
●答:
●1.子程序是可独立编译的程序单元,子程序一般具备那三种机制
1子程序说明,它给出子程序与其他程序单元的接口;
2子程序体,它实现子程序的数据和控制结构;
3调用方式。
●2.试述瀑布模型的优点和缺点?
●瀑布模型的优点
●软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;
●软件开发过程具有系统性、可控性,克服了软件开发的随意性
●瀑布模型的缺点
●项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。
●项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。
●采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。
●3.软件工程的目标是生产高质量的软件,高质量的软件应该具备那三个条件。
●①满足软件需求定义的功能和性能
●②文档符合事先确定的软件开发标准
●③软件的特点和属性遵循软件工程的目标和原则。
●4.在省略有关建模的技术细节之后,简述域分析过程步骤。
●发现并描述可重用的实体;
●对这些实体与它们之间的关系进行抽象化、一般化和参数化;
对可重用的实体进行分类、归并,以备日后重用。
●5.软件总体结构应该包括那两方面内容?
●一是由系统中所有过程性部件(即模块)构成的层次结构,亦称为程序结构;
●二是输入输出数据结构。
●七
●问:
1.简述软件危机发生的原因。
2.程序设计环境的语言机制包括哪些?
3简述人机界面的设计过程可分为哪几个步骤?
4.典型的软件重用过程一般包括哪些?
5.面向对象程序设计语言最基本的机制包括哪些?
●
答:
1.简述软件危机发生的原因:
软件的规模加大、复杂性提高、性能增强
软件是逻辑产品,尚未完全认识其本质和特点
缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法
用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应
软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足
2.程序设计环境的语言机制包括:
用于描述用户需求的规格说明语言,
用于表示设计文档的设计描述语言,
用于书写原型的原型语言以与用于书写目标软件产品的程序设计语言。
3简述人机界面的设计过程可分为:
创建系统功能的外部模型;
确定为完成此系统功能人和计算机应分别完成的任务;
考虑界面设计中的典型问题;
借助CASE工具构造界面原型;
真正实现设计模型;
评估界面质量
4.典型的软件重用过程一般包括:
域分析、开发软部件、组织与扩充软部件库、检索与提取软部件、理解与修改软部件、合成软部件等阶段
5.面向对象程序设计语言最基本的机制包括:
●八:
●问:
●1.软件产品具有哪些特点?
●2.简述在测试中采用自顶向下集成和自底向上集成的优缺点。
●3.边界类描述目标软件系统与外部环境的交互,简述边界类主要任务是什么?
●4.精化体系结构的目的是什么?
●5.一般而言,衡量某种程序语言是否适合于特定的项目,应考虑哪些因素?
●1.软件产品具有哪些特点?
●软件开发与传统的产品生产存在本质差别;
●软件是逻辑产品,而不是物理产品;
●软件不会磨损;
●2.简述在测试中采用自顶向下集成和自底向上集成的优缺点
●自顶向下集成的优点在于能尽早地对程序的主要控制和决策机制进行检验,因此较早地发现错误。
●缺点是在测试较高层模块时,低层处理采用桩模块替代,不能反映真实情况,重要数据不能与时回送到上层模块,因此测试并不充分。
●自底向上集成方法不用桩模块,测试用例的设计亦相对简单,但缺点是程序最后一个模块加入时才具有整体形象。
●它与自顶向下综合测试方法的优缺点正好相反。
●3.边界类描述目标软件系统与外部环境的交互,简述边界类主要任务是什么?
●界面控制:
包括输入数据的格式与内容转换,输出结果的呈现,软件运行过程中界面的变化与切换等。
●外部接口:
实现目标软件系统与外部系统或外部设备之间的信息交流和互操作。
主要关注跨越目标软件系统边界的通信协议。
●环境隔离:
将目标软件系统与操作系统、数据库管理系统、应用服务器中间件等环境软件进行交互的功能与特性封装于边界类之中,使目标软件系统的其余部分尽可能地独立于环境软件。
●4.精化体系结构的目的是
●寻找一种包的划分方案,使得每个包直接包含的类的数量适中,包的边界清晰、自然,并且包间的耦合度较低。
●5.一般而言,衡量某种程序语言是否适合于特定的项目,应考虑下面一些因素:
应用领域;
●算法和计算复杂性;
●软件运行环境;
●用户需求中关于性能方面的需要;
●数据结构的复杂性;
●软件开发人员的知识水平;
可用的编译器与交叉编译器。
●