软件文档和设计规范
软件文档综述
软件文档的定义
软件 = 程序+文档+数据。 文档是某种数据媒体和其中所记录的数据。
软件文档的特点
文档具有永久性,可供人阅读。 文档是计算机软件的重要组成部分
软件的生存周期
- 从构思软件开始到该产品不再使用为止的时间段
- 分为计划、开发、运行三个时期。不同实践不同角色参与其中。
- 计划时期:
- 问题分析
- 可行性研究
- 制定计划
- 开发时期
- 需求分析
- 概要设计
- 详细设计
- 编码测试
- 软件发布
- 运行维护时期
- 运行维护
软件文档的作用
管理的依据 技术交流的语言 软件质量的保证 支持培训与参考 支持软件维护 记录软件的历史
软件文档的分类
- 使用范围:
- 管理类文档,记录项目管理的信息
- 开发类文档,描述软件开发过程本身
- 产品类文档,描述开发过程的产物
- 阅读对象:
- 管理人员
- 开发人员
- 维护人员
- 最终用户
- 软件开发方法
- 面向过成的文档
- 面向对象的文档
软件工程文档标准化的意义
- 提高软件的可靠性、可维护性和可移植性
- 提高软件的生产率和软件人员的技术水平
- 提高软件人员之间的通信效率,减少差错和误解
- 有利于软件管理
- 有利于降低软件产品的成本和运行维护成本
- 有利于缩短软件开发周期
软件工程文档标准的层次:
国际标准 国家标准 行业标准 企业规范 项目规范
软件开发方法
传统的软件开发方法概括
生命周期模型 | 强 项 | 弱 项 |
---|---|---|
构造与调试模型 | 适合小程序,不需要维护的程序 | 几乎没有软件工程的概念,不适合任何稍大的程序 |
瀑布模型 | 有纪律的方法,文档驱动 | 交付的产品可能无法满足用户的要求 |
快速原型模型 | 快速体现用户需求,确保交付的产品满足用户的要求,非常适合界面和人机交互的系统的快速开发 | 原型通常只是一个参考。很多软件的原型很难做 |
增量模型 | 早期投入得到最大化的回报,提升可维护性 | 要求体系结构必须开放,可能退化为建造和调试模型 |
螺旋模型 | 结合上述的所有优点 | 只能用于大规模的内部产品,开发者必须有风险分析和回避的能力 |
喷泉模型 | 支持每个阶段内部的迭代以及阶段间的并行工作 | 可能退化为CABTAB(code a bit, test a bit) |
构造与调试
瀑布模型
快速原型模型
增量模型
螺旋模型
喷泉模型
敏捷开发
个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划
Scrum敏捷开发过程
步骤:项目开发——迭代——冲刺——模块 一次完整的项目开发过程由若干次迭代开发过程组成,每次迭代完成后将发布一个功能有限的软件产品,经历若干次迭代后,最终发布功能完备的软件产品。
一次迭代开发过程需要在需求稳定的前提下开展,分别经历需求分析、架构设计、数据库设计(可选)、界面设计、若干次冲刺开发过程,以及集成测试,最终发布产品
一次冲刺开发过程由若干次模块开发过程组成,本次冲刺中包含的所有模块开发完成后,本次冲刺开发过程结束。
一次模块开发过程需经历物理设计、编码自测、代码评审、验收测试、模块测试等活动,最终以通过模块测试为结束依据。