软件工程的目标 在给定成本、进度的前提下,开发出具有高效、可靠、可维护、可追踪、可修改、可理解、可重用、可适应、可移植和可互操作并且满足用户需求的软件产品。 软件工程的过程 开发过程、运作过程、维护过程。 概要设计 建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义。 详细设计 产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。 实现活动 把设计结果转换为可执行的程序代码。 确认活动 贯穿于整个开发过程,实现完成后的确认,保证最终产品满足用户的要求。 维护活动 包括使用过程中的扩充、修改与完善. 软件工程的原则 选取适宜开发范型 认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。 采用合适的设计方法 在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方法有助于这些特征的实现,以达到软件工程的目标。 提供高质量的工程支持 工欲善其事,必先利其器 重视开发过程的管理 仅当软件过程得以有效管理时,才能实现有效的软件工程 七条基本原理 用分阶段的生命周期计划严格管理 6个必备的计划: 项目概要、里程碑、项目控制、产品控制、验证、运行维护。 坚持进行阶段评审 实行严格的产品控制 采用科学的产品控制技术来顺应需求的改动。也就是要采用变动控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。 采纳现代程序设计技术 结果应能清楚的审查 开发小组的人员应该小而精 高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多; 当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。 承认不断改进软件工程实践的必要性 设计新系统 需求 业务需求、用户需求和功能需求 业务背景,需求确认, 设计 编码 测试 软件需求主要包括 功能需求、 界面需求、 性能需求、 环境需求、 可靠性需求、 安全保密需求、 资源使用需求、 软件成本消耗与开发进度需求、 目标需求。 需求分析20条准则 [...]