软件工程试题集与解答,涵盖基础理论与实践

需积分: 10 3 下载量 11 浏览量 更新于2024-08-02 1 收藏 305KB DOC 举报
"这是一份关于软件工程的练习题集,包含了判断题、单项选择题、多项选择题和简答题,旨在帮助学习者巩固软件工程的相关知识,特别是设计方法、测试策略、软件维护和模块化设计等方面。" 本文将详细讨论这些题目中涉及的软件工程知识点: 1. **面向数据结构的设计方法**: Warnier方法被提及,虽然题目指出它是面向数据结构的,但错误地声称其逻辑更严格。面向数据结构的方法通常包括结构化设计,强调数据结构和操作的结合。 2. **PAD图与控制结构**: PAD图(Problem Analysis Diagram)是一种图形表示程序控制流的方法,尽管它支持基本控制结构,但不直接支持递归调用。 3. **软件维护**: 加倍维护人员并不一定能加速维护进度,因为增加人员可能导致沟通成本上升,反而降低效率。 4. **验收测试与软件开发完成**: 验收测试通过只是表明软件满足了用户需求,但完整的开发过程还包括文档编写、维护准备等。 5. **程序注释**: 注释在软件开发中至关重要,不应在测试后删除,它们有助于代码的可读性和后期维护。 6. **模块间联系**: 总体设计时,应该尽量降低模块间的耦合度,而不是增强联系,以提高系统的可维护性和扩展性。 7. **系统结构图与系统流程图**: 系统结构图和系统流程图有不同的目的,前者关注软件的组织结构,后者侧重于程序执行的流程。 8. **黑盒测试**: 黑盒测试关注软件功能,而非内部逻辑,测试用例应基于输入-输出行为设计。 9. **程序调试**: 找出错误的位置和性质通常比改正错误更具挑战性,需要深入理解程序逻辑。 10. **面向对象设计(OOD)**: OOD以对象、类、继承和通信为基础,是现代软件开发中常用的设计方法。 接下来是选择题涉及的概念: - **事务流与变换流**: 软件系统的信息流可以分为事务流(处理事件)和变换流(转换数据),b和c选项正确。 - **需求分析工具**: 数据流图、PAD图、判定表、数据词典都是常用的分析工具,但PAD图在详细设计阶段更为合适。 - **详细设计工具**: PAD图常用于详细设计,以可视化程序结构。 - **详细设计对程序的影响**: 详细设计直接影响程序的质量,而非规模、运行速度或可维护性。 - **白盒测试**: 白盒测试基于程序内部逻辑来确定测试数据,确保所有逻辑路径都被覆盖。 最后是多项选择题和简答题: - **模块定义**: 子程序、函数、过程都可以作为模块,而编译文件通常不是。 - **黑盒测试类型**: 包括等价类划分、边界值分析、错误推测等。 - **度量效益方法**: 货币的时间价值、投资回收期、收入和投资回报率都是评估项目效益的指标。 - **软件维护策略**: 包括改正性维护、适应性维护和完善性维护。 - **软件测试过程**: 单元测试、组装测试、确认测试是软件测试的主要阶段。 简答题涉及了耦合性和内聚性的分类和强度顺序,这是模块化设计中的关键概念。耦合性衡量模块间的相互依赖程度,内聚性则反映模块内部元素的关联强度。低耦合和高内聚是设计良好模块的目标,耦合度由低到高排序为:非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合、内容耦合;内聚强度由低到高排序为:偶然内聚、逻辑内聚、过程内聚、通信内聚、顺序内聚、功能内聚、信息内聚。