最近几周都在根据新的功能需求编写相对应的文档,先编写项目立项报告,编写结束后开始编写需求规格说明书,之后便是详细设计说明书,下个阶段便是编写阶段了。以前也编写过需求规格说明书和详细设计说明书,因为以前经验少,写的东西不够深度没有特点,有一种为了完成文档而写。
这次完全把自己当做设计,想要让自己设计的功能,能尽量站在用户的角度,使功能简单、易用、交互性强。写了这么其他的,我们转向文章重点,文档的总结。
首先为什么要写文档,在大学的软件工程,,最重要的原因就是确定需求边界(确定要实现的需求),这与公司利益密切相关,再强大的开发团队也无法忍受三天两头的更改需求,其次指引开发者进行功能的开发,减少功能偏差。实际开发中也有很多完成功能,再进行相关文档的的补充,但这其中无绝对的不对,在项目初期为了快速实现功能,发布产品占领新市场,这也是正确的战略,所以文档是尽量保证,但不缺乏灵活变通,让利益最大化。
写的第一个文档是项目立项报告,这份文档是给用户或上级领导查看的,他们将决定功能的去和留,所以要站在用户的角度编写该文档。编写时应描述功能的主要业务场景,因为功能的实现方式有很多种,根据业务场景能提高功能的可用性,切入用户最关心的内容。
需求规格说明书也是对需求的描述,提供研发人员使用,所以要站在研发人员的角度进行编写,需求文档需要注意功能点要详细不能遗漏,防止需求遗漏,需求规格说明书要开始使用EA制作用例图、时序图、和事件流,感兴趣的同学可以去试试。
详细设计对需求规格说明书功能细化至代码逻辑,包括用例图、时序图和类图,那么详细设计的用例图和时序图和需求文档的图有什么区别呢?用例图,举个例子:在需求文档中一个功能点是“制定XX方案”,制定方案可以通过添加或编辑方案实现,在详细设计文档中呢,就为“添加方案”和“编辑方案了”。时序图,需求文档中,时序图不需要考虑失败情况,失败情况在事件流里面表现,详细设计文档时序图就是一个考虑各种情况各种走向完整的图。
最后总结,刚开始编写相关文档比编码实现功能还累,需要不停的切换角度,绞尽脑汁的组织语言和设计功能,但经过一段时间的编写,感受到完成功能设计的成就感,想着这就是用户期望的功能,也对整个软件开发过程更加熟悉,应在今后开发功能前多思考,想清楚了再进行实现。