软件工程简答题汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简述软件工程的基本原理
(1)用分阶段的生存周期计划严格管理
(2)坚持进行阶段评审
(3)实行严格的产品控制
(4)采用现代程序设计技术
(5)结果应能清楚地审查
(6)开发小组人员应该少而精
(7)承认不断改进软件工程实践的必要性
模块独立性是什么?怎么度量?
是模块化、抽象、信息屏蔽和局部化概念的直接结果。模块独立性是通过开发具有单一功能和与其他模块没有太多交互作用的模块来达到的。
模块的独立性可以从两个方面来度量,即模块之间的耦合和模块本身的内聚。耦合是指模块之间相互独立性的度量,内聚则是指模块内部各个成分之间彼此结合的紧密程度的度量。
软件测试要经过哪些步骤,这些测试与软件开发各阶段之间的关系?
单元测试:以详细设计的说明为指导,测试模块内的重要控制路径,力求在模块范围内发现错误。
集成测试:是在单元测试的基础上,将所有模块按要求组装成一个完整的系统而进行的测试,所以也称组装测试。
确认测试:是从质量的角度,在功能、性能、可靠性、易用性等方面对软件做全面的质量检测。
系统测试:是完成确认测试,得到用户确认的合格软件产品,但为了检查该产品能否与系统其它部分协调工作而进行的测试。
单元测试是对软件基本组成单元进行的测试。
集成测试是将已分别通过测试的单元按设计要求组合起来再进行测试,以检查这些单元之间的接口是否存在问题,同时检查与设计相关的软件体系结构的有关问题。
确认测试是检查所开发的软件是否满足需求规格说明书中所确定的功能和性能的需求。
简述面向过程软件工程的开发过程
(1)采用结构化分析、结构化设计和结构化实现完成软件开发的各项
任务。
(2)把软件生存周期划分成若干个阶段,然后顺序完成各个阶段的任务。
(3)每一个阶段的开始和结束都有严格标准,前一阶段结束的标准是
后一阶段工作开始的标准
(4)在每一阶段结束之前,必须正式地进行严格的技术审查和管理复
审
软件模块设计需遵循哪些准则
(1)降低模块之间的耦合性,提高模块的内聚性
(2)模块结构的深度、宽度、扇出和扇入应适当
(3)模块的作用范围应该在控制范围内
(4)模块接口设计要简单,以便降低复杂程度和冗余度
(5)设计功能可预测并能得到验证的模块
(6)适当划分模块规模,以保持其独立性
什么是类,什么是对象?类和对象是什么关系?
对象是对问题域中客观存在的事物的抽象,是一种属性和在这些属性
上的操作的封装体。
类是具有相同属性和操作的一组相似对象(实体)的集合,类为属于
该类的全部对象提供了统一的抽象描述。
类是静态的,但对象是动态的,在程序执行过程中可以动态地创建和
删除对象。
类代表一类抽象的概念或事物。对象是在客观世界中实际存在的类的
实例。
对象又称为是类的一个实例,类又称为是对象的模版
如何理解需求分析阶段的任务是决定“做什么”,而不是“怎么做”?
需求分析实际上是调查、评价以至肯定用户对软件需求的过程,其
目的在于精化软件的作用范围,也是分析和确认软件系统构成的过程,以确定未来系统的主要成分及它们之间的接口细节。因此需求分析实
际上是一个对用户意图不断进行揭示和判断的过程,它并不考虑系
统的具体实现,而是完整地、严密地描述应当“做什么”的一种过程。
为了具有人机界面设计风格应该注意哪些方面的问题?
(1)系统响应时间,系统响应时间过长过短都会产生负面影响
(2)用户帮助设计,交互式系统的每个用户都需要帮助
(3)出错信息处理,出错信息设计的不好,将向用户提供无用的甚至
误导的信息
(4)交互命令,用户既可以从菜单中选择软件功能,也可以通过键盘
命令序列调用软件功能
简述半形式化的结构化分析描述工具
(1)数据流图:是一种描述“分解”的结构化过程建模的工具。
(2)数据字典关于数据信息的集合,用于定义数据流图中的数据和加工,对数据流图中包含的所有元素的定义的汇集
(3)描述加工逻辑的结构化语言、判定表和判定树。数据流图中的不
能再被分解的每一个基本加工处理逻辑的详细描述采用结构化语言、判定表和判定树。
模块的耦合有哪些类型、含义
(1)无直接耦合:如果两个模块分别从属于不同模块的控制与调用,
它们之间不传递任何信息,没有直接的联系,互相独立,称无直接
耦合。
(2)数据耦合:如果两个模块之间有调用关系,相互传递的信息以参
数的形式给出,而且传递的信息仅仅是简单的数据,则称数据耦合。
(3)标记耦合:如果两个模块之间传递的是数据结构,而且被调用模
块不需要作为参数传递过来的整个数据结构,只需要使用数据结构
其中一部分数据元素,则称为标记耦合。
(4)控制耦合:当一个模块调用另一个模块时,传递的信息控制了该
模块的功能,则称为控制耦合。
(5)公共环境耦合:两个或多个模块共用一个数据环境,称公共环境
耦合。
(6)内容耦合:一个模块直接访问另一个模块的内部数据,一个模块
不通过正常入口而转入另一个模块内部,一个模块有多个入口,这
都属于内容耦合。
在软件项目开发中,选择程序设计语言考虑什么因素
(1)待开发软件的应用领域
(2)用户的要求
(3)软件的运行环境
(4)软件开发人员的知识
(5)软件的可移植性要求
简述结构化设计方法的步骤
(1)复审数据流图,必要时可进行修改或精化;
(2)确定数据流图类型:如果是变换型,确定逻辑输入和逻辑输出的
边界,找出变换中心,映射为变换结构的顶层和第一层;如果是事务型,确定事务中心和活动路径,映射为事务结构的顶层和第一层,建立软件结构的基本框架;
(3)分解上层模块,设计中下层模块结构;
(4)根据软件结构设计准则对软件结构求精并改进;
(5)导出接口描述和全程数据结构;
(6)复审,如果有错,转入修改完善,否则进入下一阶段详细设计。
简述软件工程中需求分析的基本任务
(1)需求获取:调查研究
(2)需求提炼:分析建模
(3)需求描述:编写SRS
(4)需求验证
黑盒测试和白盒测试有什么区别?
黑盒测试:是把被测程序看成一个黑盒子,只在软件接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。也称功能测试或数据驱动测试。
白盒测试:白盒测试
是把被测程序看成一个透明白盒子,需了解程序的内部结构和处理过程,
要求对程序的结构特性做到一定程度的覆盖,对程序中的所有逻辑路径进
行测试,并检验内部控制结构是否有错,确定实际的运行状态与预期的状
态是否一致。
详细设计的根本目的是
详细设计的根本目的就是确定应该怎样具体实现所要求的系统,也
就是说经过这一阶段的设计工作,应该得出对目标系统的精确描述,具体的就是为软件结构图中每一个模块确定采用的算法和块内数据
结构,用某种选定的详细设计工具更清晰地描述,从而在编码阶段可以把这些描述直接翻译成某种程序设计语言书写的源程序。