前言
最近这段时间,都在忙着写软件工程文档。可是一开始写的时候,真的是非常不解,为什么好好的代码不敲,非要写这些“中文汉字”呢!后来多番打听,听说了华为的运作模式,引来了我对软工文档的思考。在华为工作的程序员80%原来都在写文档,而只有少部分人才去真正敲代码,代码实现更有很大一部分是由外包完成。文档驱动的运作模式既可以方便各个部门、各个环节交流,也可以减少意外状况(员工跳槽)发生给公司带来的损失。由此看来,文档表面上看起来作用不大,但关键时刻还真能发挥重要作用呢!接下来给大家说说我对软工文档的总结吧!
内容
一、层次
软件工程的生命周期与文档紧紧联系在一起,生命周期分为制定计划、需求分析、软件设计、编写代码、测试和运行维护,每个生命周期中都有各自的文档。例如需求分析阶段生成的需求分析说明书,给大家上一张图,可以更加清晰说明每个阶段都有哪些文档:
按照适用对象和目标也可以将文档分为:开发文档、管理文档和用户文档。
二、解释
下面来总结一下各个文档的用处和使用范围:
1、开发文档
文档名 | 读者 | 内容 |
可行性研究 | 系统主管、研发人员、维护人员 | 分析是否具备研发的必要性和可能性。 |
软件需求说明书 | 开发人员和用户 | 大概了解用户需求,让用户得到满意 |
概要设计说明书 | 设计和编码人员 | 对软件进行初步大体上的设计 |
详细设计说明书 | 设计和编码人员 | 在概要设计基础上进一步明确系统结构,完成算法设计、数据结构设计、物理设计等 |
数据库设计说明书 | 数据库设计师、数据库管理员 | 设计数据库,为后期数据库设计指明方向 |
数据要求说明书 | 数据库设计师、系统测试人员 | 明确系统各项功能和非功能需求实现所需要的数据 |
2、管理文档
文档名 | 读者 | 内容 |
项目开发计划 | 系统主管、研发人员、维护人员 | 为开发系统做一个详细计划,包括时间期限、成本费用、人力组织,硬件配套设施等。 |
测试计划 | 测试人员 | 描述测试活动的范围、方法、资源和时间进度 |
测试分析报告 | 软件开发人员 | 对测试结果以及测试数据加以记录和分析总结 |
开发进度报表 | 全体开发人员 | 总结本月工作,包括进度、资源消耗、经费支出、工作计划和建议 |
项目开发总结报告 | 全体开发人员 | 总结开发经验,找出不足之处,吸取经验 |
3、用户文档
文档名 | 读者 | 内容 |
用户手册 | 用户 | 为使用者提供使用指南 |
操作手册 | 操作人员 | 告知使用者本系统的功能以及如何使用这些功能 |
总结