软件工程简答题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程简答题及答案
软件工程试题整理_ 简答题
1、可行性研究的任务是什么?
首先需要进行概要的分析研究,初步确定项目的规模和目标,确定项目的约束和限制,把他们清楚地列举出来。然后,分析员进行简要的需求分析,抽象出该项目的逻辑结构,建
立逻辑模型。从逻辑模型出发,经过压缩的设计,探索出若干种可供选择的主要解决方法,对每种解决方法都要研究它的可行性,可从以下三个方面分析研究每种解决方法的可行性。㈠技术可行性:对要开发项目的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,项目是否能实现。㈡经济可行性:进行开发成本的估算以及了解取得效益的评估,确定要开发的项目是否值得投资开发。㈢社会可行性:要开发的项目是否存在任何
侵犯、妨碍等责任问题,要开发项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质、操作方式是否可行。
2、什么是模块的影响范围?什么是模块的控制范围?他们之间应该建立什么关系?
一个模块的作用范围(或称影响范围)指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)的集合。
一个模块的作用范围应在其控制范围之内,且判定所在的模块应在其影响的模块在层次上尽
量靠近。如果再设计过程中,发现模块作用范围不在其控制范围之内,可以用“上移判点” 或“下移受判断影响的模块,将它下移到判断所在模块的控制范围内”的方法加以改进。
3、非渐增式测试与渐增式测试有什么区别?渐增式测试如何组装模块?
非渐增式测试与渐增式测试的测试方法有以下区别:㈠非渐增式测试方法把单元测试和
集成测试分成两个不同的阶段,前一阶段完成模块的单元测试,后一阶段完成集成测试。而
渐增式测试往往把单元测试与集成测试和在一起,同时完成。㈡非渐增式需要更多的工作量,
因为每个模块都需要驱动模块和桩模块,而渐增式利用已测试过的模块作为驱动模块或桩模
块,因此工作量较少。㈢渐增式可以较早的发现接口之间的错误,非渐增式最后组装是才发
现。㈣渐增式有利于排错,发生错误往往和最近加进来的模块有关,而非渐增式发现接口错
误推迟到最后,很难判断是哪一部分接口出错。㈤渐增式比较彻底,已测试的模块和新的模
块再测试。㈥渐增式占用的时间较多,但非渐增式须更多的驱动模块、桩模块也占用一些时
间。㈦非渐增式开始可并行测试所有模块,能充分利用人力,对测试大型软件很有意义。渐
增式测试有以下两种不同的组装模块的方法:㈠自顶向下组合。该方法只需编写桩模块,其
步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模
块都结合起来,它又有两种组合策略:①深度有先策略:先从软件结构中选择一条主控制路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合
其它需要优先考虑的路径。②宽度有先策略:逐层结合直接下属的所有模块。㈡自低向上结合。该方法仅需编写驱动模块。其步骤为:①把底层模块组合成实现一个个特定子功能的族。②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。③对模块族进
行测试。④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。
⑤重复②至④步,直至软件系统全部测试完毕。
4、软件质量与软件质量保证的含义是什么?
从实际应用来说,软件质量定义为:㈠与所确定的功能和性能需求的一致性。㈡与所成文的开发标准一致性。㈢与所有专业开发的软件所期望的隐含特性的一致性。软件质量保证
就是向用户及社会提供满意的高质量的产品,确保软件产品从诞生到消亡为止的所有阶段的
质量的活动,即确定、达到和维护需要的软件质量而进行的所有有计划、有系统的管理活动。
5、软件工程标准化的意义是什么?都有哪些软件工程标准?积极推进软件工程标准化,其道理是显而易见的。仅就一个软件开发项目来说,有许多层次,不同分工的人员相互配合,在开发项目的各个部分以及各开发阶段之间也都存在许多联系和衔接问题。如何把这些错综
复杂的关系协调好,需要有一系列统一的约束和规定。在软件开发项目取得阶段成果或最后
完成是时,需要进行阶段评价和验收测试。投入运行的软件,其维护工作中遇到问题又与开
发工作者有着密切的关系。软件的管理工作则渗透到软件生存期的每一个环节。所有这些都
要要求提供统一的行动规范和衡量准则,使得各种工作都有章可循。软件工程的标准主要有
以下三个:㈠FIPS135是美国国家标准局发布的《软件文档管理指南》㈡NSAC ―― 39是美国核子安全分析中心发布的《安全参数显示系统的验证与确认》。㈢ISO5807是国际标准化
组织公布(现已成为中国的国家标准)的《信息处理一数据流程图、程序流程图、程序网络图和系统资源图的文件编制符号及约定》。
5、需求分析阶段的基本任务是什么?
需求分析阶段的基本任务是要准确的定义新系统的目标,为了满足用户需要,回答系统
必须“做什么”的问题。本阶段要进行以下几方面的工作:㈠问题识别。双方确定对问题的综合需求,这些需求包括:功能需求、性能需求、环境需求、用户界面需求,另外还有可靠性、安全性、保密性、可移植性、可维护性等方面的需求。㈡分析与综合,导出软件的逻辑
模型。分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。这里也包括对数据域进行分解,并分配到各个子功能上,以确定系统的
构成及主要成份,并用图文结合的形式,建立起新系统的逻辑模型。㈢编写文档。编写“需求规格说明书”、编写初步用户使用手册、编写确认测试计划、修改完善软件开发计划。
7、说明动态建模的过程。
㈠准备脚本。
动态分析从寻找事件开始,然后确定各对象的可能事件的顺序。在分析阶段不考虑算法
的执行,算法是实现模型的一部分。
㈡确定事件。
确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备的信号、输入、转换和动作。
㈢准备事件跟踪表。
把脚本表示成一个事件跟踪表,对象为表中的列,给每一个对象分配一个独立的列。
㈣构造状态图。
对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图中
一条路径。
8、软件生产经历了几个阶段?各有何特征?
软件生产至今已经历了三个阶段:㈠程序设计时代(1946-1956):这个阶段的生产方式是个
体手工劳动,使用的工具实际其语言、汇编语言。开发方法是追