传统软件工程复习:模型、过程与管理

需积分: 10 2 下载量 115 浏览量 更新于2024-07-19 收藏 4.18MB PDF 举报
"软件工程1复习提纲涵盖了传统软件工程的主要知识点,包括软件与软件工程的概念、软件过程的各种模型、软件项目管理的核心内容、需求分析的基础以及软件设计的基本原则。复习资料强调了名词解释、简答、设计和建模等多种题型的准备,特别注重对软件生命周期各阶段的理解和应用。" 在软件工程领域,软件被定义为一组控制计算机运行的指令和数据,具有非消耗性、复杂性、演化性的特点。软件的发展经历了从原始编程到结构化编程,再到面向对象编程和敏捷开发等多个阶段。软件危机的出现源于需求不明确、质量难以保证、成本超支和进度延误等问题。为解决这些问题,引入了软件工程这一系统化、规范化的开发方法,它包括方法、工具和过程三个要素,贯穿于软件生命周期的各个阶段,如需求获取、分析、设计、实现、测试和维护。 软件过程涉及多种开发模型,例如经典的瀑布模型,适合需求稳定、顺序执行的项目;原型模型允许快速创建可运行的原型以验证需求;螺旋模型结合了瀑布模型的线性顺序和原型模型的迭代特性,增加了风险分析;增量模型将软件构建分为多个阶段,每次增加一部分功能;并发开发模型允许并行处理多个任务;形式化开发方法强调严格的逻辑证明;构件集成模型利用预构建的组件加速开发;RUP(Rational统一过程)是一种迭代和以架构为中心的方法。 CMM(软件能力成熟度模型)和CMMI(能力成熟度模型集成)是评估和改进软件组织成熟度的标准,分为阶段式和连续式模型,旨在提高软件开发的质量和效率。 软件项目管理涵盖了项目范围、时间、成本和质量的管理,其中,代码行和功能点估算用于预测工作量;McCabe度量法用于计算程序的环路复杂度,帮助识别复杂代码;成本估算方法如自下而上、自上而下和类比估算各有优缺点;关键路径法(CPM)用于确定项目中最长的依赖路径,以优化资源分配。 在需求分析阶段,理解软件需求的内容至关重要,包括功能需求、非功能需求和用户需求。常用的分析技术有数据流图(DFD)、实体关系图等。DFD能描绘系统的数据流程,数据字典作为其补充,提供详细的数据定义。 软件设计阶段的任务包括模块划分、接口定义和实现策略选择。设计准则强调抽象以降低复杂性,信息隐蔽以保护数据安全,模块化和自顶向下逐步求精以提高可维护性。耦合度衡量模块间的相互依赖程度,内聚度则反映模块内的相关性,高内聚低耦合被认为是良好的设计原则。 中心变换分析和事务分析是两种设计方法,用于理解和构建软件层次结构,确保软件结构的合理性与可扩展性。通过这些深入理解和实践,考生将能更好地应对软件工程1的复习与考试。