软件工程期末复习重点:试题与答案解析

需积分: 0 1 下载量 199 浏览量 更新于2024-07-01 收藏 436KB PDF 举报
"软件工程期末考试复习题及答案1" 软件工程是一门专注于计算机软件开发和维护的工程学科,旨在通过工程化的理念、原则、技术和方法来高效地创建高质量的软件,并确保其长期有效的维护。软件工程试图解决“软件危机”,即在软件开发和维护过程中遇到的一系列难题,如成本超支、进度延迟和质量问题。 软件开发模型是指导软件项目进程的不同框架,包括瀑布模型,这是一种线性、逐步演进的模型,强调文档的完整性和严格的阶段划分;快速原型模型则注重快速构建软件原型以获取用户反馈;增量模型将软件开发分成多个阶段,每次增加一部分功能;而螺旋模型结合了瀑布模型的线性顺序与迭代开发的特点,增加了风险分析。 软件工程的三要素是方法、工具和过程。方法涉及特定的开发策略和技术;工具支持自动化和辅助开发活动;过程则定义了如何组织和执行这些活动。 可行性研究在项目开始时进行,考虑经济、技术、法律等多个方面,以确定项目是否值得投资和实施。数据流图(DFD)是一种图形化表示数据处理过程的工具,包含数据的源点和终点、加工、存储以及数据流。数据对象间的关系在实体-联系图(E-R图)中被表示,如一对一、一对多和多对多关系。 需求分析阶段要构建数据模型、功能模型和行为模型,以确保需求的正确性。需求的正确性通常通过一致性、完整性、现实性和有效性来验证。HIPO图(Hierarchical Input-Process-Output)由层次图和IPO图组成,用于系统设计的早期规划。 模块独立性是软件设计中的关键概念,耦合度衡量模块间的依赖程度,内聚度衡量模块内部元素的相关性。理想的系统应有低耦合和高内聚的模块。模块的扇出和扇入影响系统的复杂性,通常顶层模块扇出较高,中层较低,底层较高。 程序控制结构包括顺序、选择(分支)和循环,支持各种逻辑路径的执行。软件的可移植性是衡量其在不同环境下的适应能力。模块化设计的目标是确保每个模块具有单一职责,降低模块间关联,提高软件的可维护性和可扩展性。