1文档的作用与分类1.文档的概念文档(document)是指某些数据媒体和其中所记录的数据。文档具有永久性,并可以由人或机器阅读。在软件工程中文档常常用来表示对活动、需求、过程或结果进行描述、定义、规定、报告或认证的任何书面或图示的信息。它们描述和规定了软件设计和实现的细节,说明使用软件的操作命令。文档也是软件产品的一部分,没有文档的软件就不成其为软件。软件文档的编制在软件开发中占有突出的地位和相当大的工作量。高质量,高效率地开发、管理和维护文档对于转让、变更、修正、扩充和使用文档,对于充分发挥软件产品的效益有着重要的意义。在写文档之前必须考虑:1、应当写哪些内容2、说明什么问题3、起什么作用?2.文档的作用在软件的开发与生产过程中,总是伴随着大量的信息要记录,要使用,因此,软件文档在产品的开发生产过程中起着重要的作用。(1)提高软件开发过程中的能见度即把开发过程中发生的事件以某种可阅读的形式记录在文档中,这些记录可作为检查软件开发进度和开发质量的依据,实现对软件开发的工程管理。(2)提高开发效率文档的编制,使开发人员对各个阶段的工作都进行周密的思考,全盘权衡,从而减少返工,并可在开发早期发现错误和不一致性,便于及时加以纠正。(3)记录开发过程中的有关信息,便于协调以后(后面)的软件,开发、使用2和维护。(4)作为开发人员在一定阶段的工作成果和结束标志,(即告一段落的标志)(5)文档可提供对软件的运行,维护和培训有关信息,便于管理人员,开发人员,操作人员和用户之间的协作,交流与了解,使软件开发活动更科学,更有成效。(6)提供市场效益。文档便于潜在用户了解软件的功能,性能等各项指标,为他们选购符合自己需要的软件提供必要依据。3.文档的分类按照文档产生和使用的范围大致可分为三类:1)开发文档这类文档内容包括:1.可行性研究报告2.项目开发计划3.软件需求说明书4.数据要求说明书5.概要设计说明书6.详细设计说明书2)管理文档这类文档内容包括:1.开发计划2.测试计划33.测试报告4.开发进度月报5.项目开发总结3)用户文档这类文档是软件开发人员为用户准备的有关软件使用、操作、和维护的资料。主要包括用户手册、操作手册、维护修改建议和软件需求说明书。软件项目开发过程文档编写指南开发一个项目需要考虑以下文档的编写,这些文档包括:1.可行性研究报告2.项目开发计划3.需求规格说明书(软件需求说明书)4.概要设计说明书5.详细设计说明书6.用户操作手册7.测试计划8.测试报告9.开发进度月报10.项目开发总结报告11.程序维护手册12.软件问题报告13.软件修改报告4撰写各种文档的参考提纲为了使同学们具体了解怎样编写文档,下面列出了十几种文档的内容、要求及简单说明,并给出了一个统一的文档封面格式供大家参考。文档封面格式如下:文档编号_______版本号_______文档名称:________项目名称:________项目负责人:________编写_____________年_____月_____日校对_____________年_____月_____日审核_____________年_____月_____日批准_____________年_____月_____日开发单位________一、可行性研究报告1.引言51.1编写目的【阐明编写可行性研究报告的目的,指出读者对象。】1.2项目背景【应包括:a.所建议开发软件的名称;b.项目任务提出者、开发者、用户及实现软件的单位;c.项目与其他软件或其他系统的关系。】1.3定义【列出文档中用到的专门术语的定义和缩写词的原文。】1.4参考资料【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:a.项目经核准的计划任务书、合同或上级机关的批文;b.与项目有关的已发表的资料;c.文档中所引用的资料,所采用的软件标准或规范。】2.可行性研究的前提2.1要求【列出并说明建议开发软件的基本要求,如:a.功能;b.性能;c.输出;d.输入;e.基本的数据流程或处理流程;f.安全与保密要求;g.与软件有关的其他系统;h.完成期限。】2.2设计目标【可包括:a.人力与设备费用的节省;b.处理速度的提高;c.控制精度和生产能力的提高;d.管理信息服务的改进;e.决策系统的改进;f.人员工作效率的提高,等等。】2.3条件、假定和限制【可包括:a.建议软件开发运行的最短寿命;b.进行系统方案选择比较的期限;c.经费来源和使用限制;d.法律和政策方面的限制;e.硬件、软件、运行环境和开发环境的条件和限制;f.可利用的信息和资源;g.建议开发软件投入使用的最迟时间。】2.4可行性研究方法2.5决定可行性的主要因素3.对现有系统的分析3.1处理流程和数据流程63.2工作负荷3.3费用支出【如人力、设备、空间、支持性服务、材料等项目支出。】3.4人员【列出所有人员的专业技术类别和数量。】3.5设备3.6局限性【说明现有系统存在的问题以及为什么需要开发新的系统。】4.所建议技术可行性分析4.1对系统的简要描述4.2处理流程和数据流程4.3与现有系统比较的优越性4.4采用建议系统可能带来的影响4.4.1对设备的影响4.4.2对现有软件的影响4.4.3对用户的影响4.4.4对系统运行的影响4.4.5对开发环境的影响4.4.6对运行环境的影响4.4.7对经费支出的影响4.5技术可行性评价【包括:在限制条件下,功能目标是否能达到;利用现有技术,功能目标是否能达到;对开发人员数量和质量的要求,并说明能否满足;在规定的期限内,开发能否完成。】5.所建议系统经济可行性的分析5.1支出75.1.1基建投资5.1.2其他一次性支出5.1.3经常性支出5.2效益5.2.1一次性收益5.2.2经常性收益5.2.3不可定量收益5.3收益/投资比5.4投资回收周期5.5敏感性分析【敏感性分析是指一些关键性因素,如:系统生存周期长短、系统工作负荷量、处理速度要求、设备和软件配置变化对支出和效率的影响等的分析。】6.社会因素可行性分析6.1法律因素【如:合同责任、侵犯专利权、侵犯版权的问题的分析。】6.2用户使用可行性【如,用户单位的行政管理、工作制度、人员素质等能否满足要求。】7.其他可供选择的方案【逐个阐明其他可供选择的方案,并重点说明未被推荐的理由。】8.结论意见【结论意见可能是:a.可着手组织开发需待若干条件(如资金、人力、设备等)具备后才能开发;b.需对项目目标进行某些修改;d.不能进行或不必进行(如技术不成熟,经济上不合算等)e.其他。】8二、项目开发计划1.引言1.1编写目的【阐明编写开发计划的目的,指出读者对象。】1.2项目背景【可包括:项目的委托单位、开发单位和主管部门;该软件系统与其他系统的关系。】1.3定义【列出本当中用到的专门术语的定义和缩写词的原文。】1.4参考资料【可包括:项目经核准的计划任务书,合同或上级机关的批文;文档所引用的资料、规范等;列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。】2.项目概述2.1工作内容【简要说明项目的各项主要工作,介绍所开发软件的功能、性能等。若不编写可行性研究报告,则应在本节给出较详细的介绍。】2.2条件与限制【阐明为完成项目应具备的条件、开发单位已具备的条件以及尚需创造的条件。必要时还要说明用户及分合同承包者承担的工作、完成期限及其他条件的限制。】2.3产品2.3.1程序【列出应交付的程序名称、使用的语言及存储形式。】2.3.2文档【列出应交付的文档。】2.4运行环境【应包括硬件环境、软件环境。】2.5服务【阐明开发单位可向用户提供的服务。如人员培训、安装、包修、维护和其他运行支持。】2.6验收标准93.实施计划任务分解【任务的划分与各项任务的负责人。】进度【按阶段完成的项目,用图表说明开始时间。】预算关键问题4.人员组织及分工5.交付期限6.专题计划要点【如测试计划、质量保证计划、配置管理计划、人员培训计划、系统安装计划等。】三、需求规格说明书1.引言1.1编写目的【阐明编写规格说明书的目的,指明读者对象。】1.2项目背景【应包括:项目的委托单位、开发单位和主管部门;该软件系统与其他系统的关系。】1.3定义【列出本当中所用到的专门术语的定义和缩写词的原文。】1.4参考资料【可包括:a.项目经核准的计划任务书,合同或上级机关的批文;b.项目开发计划;c.文档所引用的资料、标准和规范等。列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源。】2.任务概述2.1目标2.2运行环境2.3条件与限制103.数据描述3.1静态数据3.2动态数据【包括输入数据和输出数据。】3.3数据库描述【给出使用数据库的名称和类型。】3.4数据词典3.5数据采集4.功能需求4.1功能划分4.2功能描述5.性能需求5.1数据精确度5.2时间特性【如响应时间、更新处理时间、数据转换与传输时间、运行时间等。】5.3适应性【在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。】6.运行需求6.1用户界面【如屏幕格式、报表格式、菜单格式、输入输出时间等。】6.2硬件接口6.3软件接口6.4故障处理7.其他需求【如可使用性、安全保密、可维护性、可移植性等。】11四、概要设计说明书1.引言1.1编写目的【阐明编写概要设计说明书的目的,指明读者对象。】1.2项目背景【应包括:项目的委托单位、开发单位和主管部门;该软件系统与其他系统的关系。】1.3定义【列出本当中所用到的专门术语的定义和缩写词的原文。】1.4参考资料【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:a.项目经核准的计划任务书,合同或上级机关的批文;b.项目开发计划;需求规格说明书;c.需求规格说明书;d.测试计划(初稿);e.用户操作手册(初稿);f.文档所引用的资料、采用的标准标准或规范。】2.任务概述2.1目标2.2运行环境2.3需求概述2.4条件与限制3.总体设计3.1处理流程3.2总体结构和模块外部设计3.3功能分配【表明各项功能与程序结构的关系。】4.接口技术4.1外部接口【包括用户界面、软件接口与硬件接口。】4.2内部接口【模块之间的接口】125.数据结构设计5.1逻辑结构设计5.2物理结构设计5.3数据结构与程序的关系6.运行设计6.1运行模块的组合6.2运行控制6.3运行时间7.出错物理设计7.1出错输出信息7.2出错处理对策【如设置后备、性能降级、恢复及再启动等。】8.安全保密设计9.维护设计【说明为方便维护工作的设施,如维护模块等。】五、详细设计说明书1.引言1.1编写目的【阐明编写详细设计说明书的目的,指明读者对象。】1.2项目背景【应包括项目的来源和主管部门等。】1.3定义【列出本文当中所用到的专门术语的定义和缩写词的原文。】1.4参考资料【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:a.项目的计划任务书、合同或批文;b.项目开发计划;c.需13求规格说明书;d.概要设计说明书;e.测试计划(初稿);f.用户操作手册(初稿);g.文档所引用的其他资料、软件开发标准或规范。】2.总体设计2.1需求概述2.2软件结构【如给出软件系统的结构图。】3.程序描述【逐个模块给出以下的说明:】3.1功能3.2性能3.3输入项目3.4输出项目3.5算法【模块所选用的算法。】3.6程序逻辑【详细描述模块实现的算法,可采用:a.标准流程图;b.PDL语言;c.N-S图;d.PAD;e.判定表等描述算法的图表。】3.7接口3.8存储分配3.9限制条件3.10测试要点【给出测试模块的主要测试要求。】六、用户操作手册1.引言1.1编写目的【阐明编写手册的目的,指明读者对象。】1.2项目背景【说明项目来源、委托单位、开发单位及主管部门。】141.3定义【列出手册中使用的专门术语的定义和缩写词的原意。】1.4参考资料【列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:a.项目的计划任务书、合同或批文;b.项目开发计划;c.