软件文档和设计规范

软件文档和设计规范

软件文档综述

软件文档的定义

软件 = 程序+文档+数据。 文档是某种数据媒体和其中所记录的数据。

软件文档的特点

文档具有永久性,可供人阅读。 文档是计算机软件的重要组成部分

软件的生存周期

  • 从构思软件开始到该产品不再使用为止的时间段
  • 分为计划、开发、运行三个时期。不同实践不同角色参与其中。
  • 计划时期:
    • 问题分析
    • 可行性研究
    • 制定计划
  • 开发时期
    • 需求分析
    • 概要设计
    • 详细设计
    • 编码测试
    • 软件发布
  • 运行维护时期
    • 运行维护

软件文档的作用

管理的依据 技术交流的语言 软件质量的保证 支持培训与参考 支持软件维护 记录软件的历史

软件文档的分类

  • 使用范围:
    • 管理类文档,记录项目管理的信息
    • 开发类文档,描述软件开发过程本身
    • 产品类文档,描述开发过程的产物
  • 阅读对象:
    • 管理人员
    • 开发人员
    • 维护人员
    • 最终用户
  • 软件开发方法
    • 面向过成的文档
    • 面向对象的文档

软件工程文档标准化的意义

  • 提高软件的可靠性、可维护性和可移植性
  • 提高软件的生产率和软件人员的技术水平
  • 提高软件人员之间的通信效率,减少差错和误解
  • 有利于软件管理
  • 有利于降低软件产品的成本和运行维护成本
  • 有利于缩短软件开发周期

软件工程文档标准的层次:

国际标准 国家标准 行业标准 企业规范 项目规范

软件开发方法

传统的软件开发方法概括

生命周期模型 强 项 弱 项
构造与调试模型 适合小程序,不需要维护的程序 几乎没有软件工程的概念,不适合任何稍大的程序
瀑布模型 有纪律的方法,文档驱动 交付的产品可能无法满足用户的要求
快速原型模型 快速体现用户需求,确保交付的产品满足用户的要求,非常适合界面和人机交互的系统的快速开发 原型通常只是一个参考。很多软件的原型很难做
增量模型 早期投入得到最大化的回报,提升可维护性 要求体系结构必须开放,可能退化为建造和调试模型
螺旋模型 结合上述的所有优点 只能用于大规模的内部产品,开发者必须有风险分析和回避的能力
喷泉模型 支持每个阶段内部的迭代以及阶段间的并行工作 可能退化为CABTAB(code a bit, test a bit)

构造与调试

img

瀑布模型

快速原型模型

增量模型

螺旋模型

喷泉模型

敏捷开发

个体和交互 胜过 过程和工具 可以工作的软件 胜过 面面俱到的文档 客户合作 胜过 合同谈判 响应变化 胜过 遵循计划

Scrum敏捷开发过程

步骤:项目开发——迭代——冲刺——模块 一次完整的项目开发过程由若干次迭代开发过程组成,每次迭代完成后将发布一个功能有限的软件产品,经历若干次迭代后,最终发布功能完备的软件产品。

一次迭代开发过程需要在需求稳定的前提下开展,分别经历需求分析、架构设计、数据库设计(可选)、界面设计、若干次冲刺开发过程,以及集成测试,最终发布产品

一次冲刺开发过程由若干次模块开发过程组成,本次冲刺中包含的所有模块开发完成后,本次冲刺开发过程结束。

一次模块开发过程需经历物理设计、编码自测、代码评审、验收测试、模块测试等活动,最终以通过模块测试为结束依据。