软件开发文档包括哪些
设计开发输入应包括以下内容:a)产品主要功能、性能要求。这些要求来自市场的需求与期望;b)适用的法律、法规要求,对国家强制性标准一定要满足;c)对确定产品的安全性和适用性的特性要求,包括安全、包装、运输、存放、维护及环境等;d)以前类似设计提供的适用信息。设计开发输出文件因产品不同而不同,可包括电气原理图、PCB图、硬件组成框图、结构图、零部件图、元器件明细表、外形图、包装图、包装说明、软件流程图、源程序、可执行文件、用户手册、工艺文件、检验文件等。
软件项目开发文档包括的内容有哪些?
在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!需求阶段1、可行性分析报告说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。2、项目开发计划为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。3、软件需求说明书(软件规格说明书)对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。设计阶段4、概要设计说明书该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。5、详细设计说明书着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。开发阶段6、开发进度月报该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。测试阶段7、测试计划为做好集成测试和验收测试,需为如何组织测试制订实施计划。计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。8、测试分析报告测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。收尾阶段9、用户操作手册本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。10、项目开发总结报告软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。11、软件维护手册主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。维护阶段12、软件问题报告指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软件修改提供准备文档。13、软件修改报告软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。
软件开发前期的需求文档怎么写?
如何写需求分析报告(软件需求说明书GB856T-88)近来学校的一些科研项目又在申报了,一些学弟开始Q我一些软件工程上书面的问题。大概的总结了下,写到这里。本文涉及到的是需求分析部分的书写,主要是根据国家标准文档中的要求来的。在互联网公司或者一些敏捷开发的公司里,其实大家都是秉承着重开发,重讨论,而轻文档的态度。这个轻文档并不是指没有文档或者几乎不做文档,而是在严格的文档流程中解脱出来,只把最最实际的部分写出来。这个特征是有互联网本身迭代周期短,版本发布快等特点决定的。而在实际的兼职项目的时候,同学们就要注意了,最重要的应该就是在签合同的时候一定要附上最清楚的一份需求分析,虽然这份需求说明可能不是按照某些标准文档而来的,描述清楚每个功能达到的效果,而这个效果一定要让客户点头确认,而不能出现“应该是”、“可能是”、“也许是”这样的模糊回答。否则在项目后期就会比较难过了。在学校申请的项目和大型公司项目开发中,是重视文档流程的,一部一部来。所以还是看情况来对待文档的深度和标准。一、目录:目录要用word的“引用”—>”目录”,自动生成目录,一般都是要三级目录。通常这部分基本都不需要改结构,直接更新页码即可。二、内容部分。国家标准软件需求说明书G856T-88下载1引言1.1编写目的说明编写这份软件需求说明书的目的,指出预期的读者。(这部分说明需求分析报告的概况,例如:本X需求分析报告是为S系统而编写的。+S系统的两句话概述。+本X报告旨在使U1(需求者)明确S系统的要求和细节,给U2(开发人员)了解需求实现的难度和困难,最终提供给U3(审核人、管理者)讨论和审核,达到沟通效果)1.2背景说明:a.待开发的软件系统的名称;b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;c.该软件系统同其他系统或其他机构的基本的相互来往关系。(这部分可以将a,b,c分为2部分,例子如下:1.2.1项目概况本需求分析报告所预期开发的软件系统是:S。S是(不是则无)SS系统的某一个功能子模块,S和S1、S2等系统之间的联系,以及概述其他系统的状态等等。1.2.2任务分配a.任务提出者:xxxb.软件开发者:xxc.产品使用者:xxd.文档编写者:xxe.预期产品使用者:xx)1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。(这部分很简单,就是描述专业词汇,比如1.XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。2.Word2,解释。。。)1.4参考资料列出用得着的参考资料,如:a.本项目的经核准的计划任务书或合同、上级机关的批文;b.属于本项目的其他已发表的文件;c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。2任务概述2.1目标叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|(本模块开发主要是为SS的整体服务,完成SS工作中的XX部分以及相关的工作。其涉及的范围就是,从下达A、B命令后,到给出C结果的过程。具体描述:B1,来完成B11功能;B2,来完成B22功能;等等。本部分是(否)耦合在分词工具包其他部分中的,主要为嵌入方式和先后方式相互交互。图图1.该系统的组成同其他各部分的联系和接口)2.2用户的特点列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束(例如:二次开发和系统调用人员:具有很高的专业知识水平,理解XX的运行机制。可以对开放代码进行阅读和分析,以完成其系统独特的需求,提供给这部分用户开放API手册和Debug版本的源代码即可;预期这部分用户会占本系统总用户量的多大部分。xx使用者:具有一定的计算机操作能力和知识,了解xx领域的相关概念和用途。提供给这部分用户操作手册即可。预期这部分使用者主要是来简单的xx操作。维护人员:具有较高的计算机专业水平,可以对常见的系统Bug进行追踪和分析,具有一定的测试能力。这部分用户主要是采用了本系统之后的后期工作维护者。等等)2.3假定和约束列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。(这部分重要是对你有的技术力量、资金状况、人力资源等情况的假设,以使得你可以在什么样的情况和时间范围内完成工作。工期约束,经费约束,人员约束,地理约束,设备约束等几个方面列举说明。)3需求规定3.1对功能的规定用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。(例如:INPUT输入PROCESS处理OUTPUT输出LOAD负载量A预处理,做怎样的动作,AACCBBBBBBbvCCCCCccv表一、xx模块IPO表对IPO表的简单文字描述。)3.2对性能的规定3.2.1精度说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。(例如:Xx目标处理:1Byt_10M,包括左右边界值。yy精度范围:.ZZ的精度:由于xx的特殊性,本系统均采用xx型来进行字符统计运算,概率部分以及其他比率部分精度精确到0.0x%。)3.2.2时间特性要求说明对于该软件的时间特性要求,如对:a.响应时间;b.更新处理时间;c.数据的转换和传送时间;d.解题时间;等的要求。(这部分只要一一列举就可以:由于xxx过程中,需要大量xxxx操作或怎样,故xx解题时间占总时间的最大部分。其次就是xx转换和存储的开销。其具体时间特性要求,如下:a.xx响应时间:xxms左右;b.yy更新处理时间:yy;c.zz数据的转换和传送时间:zz;d.vv解题时间:vv。等等)3.2.3灵活性说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:a.操作方式上的变化;b.运行环境的变化;c.同其他软件的接口的变化;d.精度和有效时限的变化;e.计划的变化或改进。对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。(这部分按列举来即可,由于本模块第一目的是用于xxx,其次则是xxxx。故本模块的灵活性在于实际应用者的不同。当需求发生某些变化时,该软件对这些变化的适应能力。具体情况如下:f.操作方式上的变化:采用集成运行制和独立运行制两种模式,集成运行制是把本模块嵌入到分词工具包的主框架中,提供给用户具有一定UI的可操作软件;独立运行制是可以独立运行于后台,并提供给各种程序调用的模式的工作方式,以增强其生命力。g.运行环境的变化:主采用Windows平台的编译版本运行和调试,在时间允许的情况下,同步开发支持SUSELinux的服务器版本。;h.同其他软件的接口的变化:在尽量保证接口不出现变动的情况下,允许接口的重载和再定义。但接口的命名规则是统一的;i.精度和有效时限的变化:精度在必须调整的条件下,可以上下浮动10个百分点;有效时限则依据现实的测试情况允许稍大范围的变化。j.计划的变化或改进:工作时间安排会存在必然的浮动,这部分要协同分词工具包课题设计组其他成员一同来进行商定,前期的计划可以稍微有些变动,后期的安排尽量按照计划执行。等等)3.3输人输出要求解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。(这部分可以把输入输出分为3.3.1输入要求和3.3.2输出要求,如下给出一个单元的例子。XXX输出数据名称:XXX输出数据实际含义:用于XX,表示XXXX数据类型:Character(字符串)数据格式:XX数据约束:由于xxx,,大小在xx以内)3.4数据管理能力要求说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。(根据实际系统要求列举即可Name名称Number数量Size大小Increase增长词典xxxxxxxx并行执行,其大小依据实际xx大文本而增长)3.5故障处理要求列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。(包括软件压力,内存不足,硬件损坏等,这部分可以根据百度到其常见故障。)3.6其他专门要求如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。(例如安全保密性:密钥更换等;预期扩展:扩展兼容等;OS更换:Slackware转SUSE等)4运行环境规定4.1设备列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:a.处理器型号及内存容量;b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;c.输入及输出设备的型号和数量,联机或脱机;d.数据通信设备的型号和数量;e.功能键及其他专用硬件(列举说明即可)4.2支持软件列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。(操作系统和版本:xxxx支撑环境和版本:xxxx备用IDE环境和版本:xxxx与该软件有关的软件组件:xxxx后续可能扩展环境:xxxx)4.3接口说明该软件同其他软件之间的接口、数据通信协议等。(例如:a.用户和主程序调用接口(图中接口1)。这个接口采用封装API形式和函数调用形式,分别以外部调用和内部调用的方式为不同用户提供使用本机械分词工具的入口。例如以xxxx方式调用DLL文件,以xxxx方式调用函数。如下图2所示。图2.软件接口调用图b.xx接口(图中接口2)。这里是一个xxx的接口调用过程。xxxx)4.4控制说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。(例如:下面通过图表的形式,将本模块以及涉及到本模块的软件模块的运行方法、控制信号,以及这些控制信号的来源,其中箭头所指方向对应的模块的控制信号来自箭头另一方向的模块,具体情况如下:图3.控制流程图图3的具体说明情况如下表所示:Name模块名称Method运行方式Signal控制信号Forward控制去向主程序模块运行框架用户调用或运行1.调用xx模块2.调用xx方法3.调用标准输出模块xxx模块xxxxxx调用Xxx模块
软件开发需要准备哪些文档(软件开发需求文档怎么写)
软件开发过程:立项、需求分析、概要设计、详细设计、编码、测试、运行及维护;单元测试参照详细设计说明说(LLD)集成测试参照概要设计说明书(HLD)系统测试参照需求规格说明说(SRS)需求规格说明书是为使用用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。概要设计就是设计软件的结构,包括组成模块,模块的层次结构,模块的调用关系,每个模块的功能等等。详细设计就是为每个模块完成的功能进行具体的描述,要把功能描述转变为精确的、结构化的过程描述。