导读:在学习C/S部分,结构化的程序开发中,我们基本上是以文档驱动的形式在做开发。那么,在软件工程中,文档有着什么样的意义呢?文档是从哪里来的,为什么要有文档呢?(每次给徒弟验收,就陪着徒弟,这样子似乎也挺好)
一、文档从哪里来
在最开始的软件开发过程中,事实上是没有文档这一概念的。那么文档究竟是从哪里来的?从广义上说,文档的产生,是伴随着软件工程而来 的。在初期的软件开发过程中,对程序的设计和管理还不足,所以极大程度上导致了后续的软件危机。
文档作为一个交流和设计的结晶,在文档驱动的程序开发中,应用的最为显著。
二、文档是什么
软件文档(源代码文档):是指与软件系统及其软件工程过程有关联的文本实体。包括开发过程中填写的各种图表,以及编制的技术资料和技术管理资料。
附:软件工程文档
注:此文档分类是以文档的产生和使用范围作为依据
三、文档的作用
1,工具:文档可以作为整个软件生命周期中的一个重要的交通工具,并将交通结果记录下来。
2,检验点:利于管理者对开发过程进行评估(进度、质量等)。
3,组成部分:软件=程序+数据+文档,文档是整个软件开发的一部分,为维护和扩充提供依据。
四、文档的参与者
参与文档的,有编写者和阅读者。事实上,软件工程发展到现阶段,对于具体的每个文档的编写者和阅读者已经没有具体的界限了。从开发文档、用户文档和管理文档这三类的划分来看,那么似乎是管理文档应该由项目组长或者经理来写,可是事实上,一个软件开发的文档,是可以全部交付给第三方或者是机器实施编写的。而对于文档的阅读者,这也没有一定的界限,比如说用户手册,难道就仅仅只是用户才可以阅读吗?
文档的参与者,没有绝对的划分定义,最多不过是一个主要对象而已。
五、缺点和补救
缺点:文档在软件工程中的地位是不可被颠覆的,但是,一份精美的文档将是一项巨大的工程。它的迭代工作是非常繁重的,而文档的形成是建立在需求的基础之上,一旦需求不明确或者需要变动,那么文档必须得同步变动。在这一过程中,开发人员不得不花费巨大的精力去进行文档的编写,这项工作将非常不利于需求不明确,复杂的系统开发。
补救:以需求为驱动,原型为辅助,先进行项目的实施,在整个项目完成之后,对于系统文档进行补充。
六、感受总结
一个正常的逻辑似乎该是先写文档,再编码实现。即使是在需求变动的情况下,也应该是在文档本身上进行迭代更替。开发和文档同步进行,但是在现实开发中,文档的编写任务往往比开发任务更为的繁杂。于是类似于XP的开发模式衍生,具体情况具体分析!什么时候写文档,或许仅仅只是文档迭代的颗粒度不同罢了。但是,保证文档的版本和系统版本维持一致,我认为这也是一种最基本的要求!