软件开发文档的分类
1. 《功能要求》 -- 来源于客户要求和市场调查,是软件开发中最早期的一个环节。
客户提出一个模糊的功能概念,或者要求解决一个实际问题,或者参照同类软件的一个功能。
有软件经验的客户还会提供比较详细的技术规范书,把他们的要求全部列表书写在文档中,必要时加以图表解说。
这份文档是需求分析的基础。
2. 《投标方案》 -- 根据用户的功能要求,经过与招标方沟通和确认,技术人员开始书写《投标方案》,方案书一般包括以下几个重要的章节: 前言 -- 项目背景、公司背景和业务、技术人员结构、公司的成功案例介绍等。
需求分析 -- 项目要求、软件结构、功能列表、功能描述、注意事项等。
技术方案 -- 总体要求和指导思想、技术解决方案、软件开发平台、网络结构体系等。
项目管理 -- 描述公司的软件开发流程、工程实施服务、组织和人员分工、开发进度控制、软件质量保证、项目验收和人员培训、软件资料文档等。
技术支持 -- 公司的技术支持和服务介绍、服务宗旨和目标、服务级别和响应时间、技术服务区域、技术服务期限、授权用户联系人等。
系统报价 -- 软、硬件平台报价列表、软件开发费用、系统维护费用等。
项目进度 -- 整个项目的进度计划,包括签署合同、项目启动、需求分析、系统分析、程序开发、测试维护、系统集成、用户验收、用户培训等步骤的时间规划。
3. 《需求分析》 -- 包括产品概述、主要概念、操作流程、功能列表和解说、注意事项、系统环境等。
以《功能要求》为基础,进行详细的功能分析 ( 包括客户提出的要求和根据开发经验建议的功能 ) ,列出本产品是什么,有什么特殊的概念,包括哪些功能分类,需要具备什么功能,该功能的操作如何,实现的时候该注意什么细节,客户有什么要求,系统运行环境的要求等。
这里的功能描述跟以后的使用手册是一致的。
4. 《技术分析》 -- 包括技术选型、技术比较、开发人员、关键技术问题的解决、技术风险、技术升级方向、技术方案评价,竞争对手技术分析等。
以《需求分析》为基础,进行详细的技术分析 ( 产品的性能和实现方法 ) ,列出本项目需要使用什么技术方案,为什么,有哪些技术问题要解决 ,估计开发期间会碰到什么困难,技术方案以后如何升级,对本项目的技术有什么评价等。
5. 《系统分析》 -- 包括功能实现、模块组成、功能流程图、函数接口、数据字典、软件开发需要考虑的各种问题等。
以《需求分析》为基础,进行详细的系统分析 ( 产品的开发和实现方法 ) ,估计开发期间需要把什么问题说明白,程序员根据《系统分析》,开始在项目主管的带领下进行编码。
6. 《数据库文档》 -- 包括数据库名称、表名、字段名、字段类型、字段说明、备注、字段数值计算公式等。
以《系统分析》为基础,进行详细的数据库设计。
必要时可以用图表解说,特别是关系数据库。
7. 《功能函数文档》 -- 包括变量名、变量初值、功能,函数名,参数,如何调用、备注、注意事项等。
以《系统分析》为基础,进行详细的说明,列出哪个功能涉及多少个函数,以便以后程序员修改、接手和扩展。
8. 《界面文档》 -- 包括软件外观、界面素材、编辑工具、文件名、菜单、按钮和其它界面部件的要求,这里与软件完成后的运行界面是一致的。
9. 《编译手册》 -- 包括服务器编译环境、操作系统、编译工具、 GNU 的 C++ 编译器版本信息、目录说明、程序生成、源程序文件列表、 Makefile 配置及其相关程序的对应关系列表。
客户端的编译过程、编译结果、编译示例、编译环境、操作系统、编译工具、源文件列表和制作安装程序的过程。
10. 《 QA 文档》 -- 包括产品简介、产品原理、产品功能列表、功能描述、功能流程、执行结果、数据库结构、测试要求等,提供给软件测试人员使用。
11. 《项目总结》 -- 包括项目简介、项目参与人员和开发时间、项目风险管理过程、项目功能列表、项目结构特点、技术特点、对项目的升级建议、对以后的项目的建议、人员素质情况等。
1. 《产品简介》 -- 包括公司背景、产品概念、适用范围、产品功能、功能特点、运行要求和公司联系地址。
2. 《产品演示》 -- 包括公司简介、产品背景、产品描述、产品特点、产品作用、适用范围、使用分析、功能模块、解决问题、合作伙伴、成功案例等。
一般用 Power point 或者 VCD 录制软件实现。
3. 《疑问解答》 -- 列出用户关心的问题和处理方法。
用于解答软件的操作功能和解决用户的疑难问题。
4. 《功能介绍》 -- 以《需求分析》为书写基础,包括软件介绍、软件结构、功能列表、功能描述和公司联系地址。
5. 《技术白皮书》 -- 以《技术分析》为书写基础,包括功能实现、技术选型、关键技术问题的解决、技术方案特点、技术升级方向等。
6. 《评测报告》 -- 第三方权威评测报告。
包括评测目的、评测范围、评测环境、评测内容、实测数据、性能表现、结果分析和评测总结等。
7. 《安装手册》 -- 包括系统环境、运行平台、产品安装过程、初始环境设置、安装记录等。
8. 《使用手册》 -- 包括产品简介、功能列表、功能描述和解释、功能操作、客户服务和联系方式等。
9. 《维护手册》 -- 包括产品简介、系统须知、初始...
软件开发方法?
常见的软件开发方法有结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。
1.结构化方法:指导思想:自顶向下,逐步求精;基本原则:功能的分析与抽象。
优点:1、 适用于数据处理领域的问题;2、支持工具较多,发展成熟。
缺点:1、不适应规模大的项目;2、不适应特别复杂的项目;3、难于解决软件重用的问题;4、难于适应需求变化的问题;5、难于彻底解决维护问题。
2.Jackson方法:这是一种面向数据结构的方法过程:JSP—>JSDJSP方法:1、以数据结构为驱动;2、首先描述问题的输入,输出数据结构,分析其对应性,然后退出相应的程序结构,从而给出问题的软件过程描述。
JSD方法:1、以事件作为驱动;2、首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调了操作之间的时序性。
3.维也纳开发方法(VDM):这是一种形式化的开发方法,是一个基于模型的方法。
主要思想:将软件系统当做模型来给予描述,具体说是把软件的输入,输出看做模型对象,而这些对象在计算机中的状态可看做为该模型在对象上的操作。
借助工具:描述工具语言Meta-IV。
4.面向对象的开发方法:定义:以对象作为最基本的元素,是分析问题,解决问题的核心。
对象:具体的事物,事件,概念和规则。
基本点:尽可能按照人类认识世界的方法和思维方法来分析和解决问题。
软件开发方法有哪些?
在上个世纪60年代中期爆发了众所周知的软件危机。
为了克服这一危机,在1968、1969年连续召开的两次著名的NATO会议上提出了软件工程这一术语,并在以后不断发展、完善。
与此同时,软件研究人员也在不断探索新的软件开发方法。
至今已形成了八类软件开发方法。
1 Parnas方法 2 SASD方法 3 面向数据结构的软件开发方法 4 问题分析法 5 面向对象的软件开发方法 6 可视化开发方法 7 ICASE 8 软件重用和组件连接
软件开发文档应该如何写?
展开全部如果我们知道软件文档的价值,那么为什么不经常使用它呢?对于新手,大多数软件文档都存在很多下面提到的这些问题: · 糟糕的语法和/或拼写错误的词语 · 不完整 · 过期或不准确 · 篇幅太长 http://www.mscto.com· 首字母缩写没有解释或术语不专业 http://www.mscto.com· 难于找到信息或在文档中定位 软件开发网 存在这些问题的主要原因是软件文档通常没有被给予足够的重视。
项目预算被迫将主要活动花在了开发工作上,在那里管理层很容易看到他们的收益。
值得投入成本的文档工作通常都是主观的,而且通常被刻画为需要避免的成本,因为它们被认为不能产生投资回报(ROI)。
很多项目经理将客户所需要的最少文档看作是“镀金”。
软件开发网 软件文档的另外一个麻烦来源是文档的作者。
很多应用程序开发经理觉得软件文档是开发工作的一个标准部分,因此,要求他们的开发人员在编码时也编写软件文档。
虽然这在理论上是说得过去的,但是不应该将开发人员看成文档作者。
很简单,技术人员只被培训如何开发,而没有被培训如何写文档。
为了解决这一问题,很多应用程序开发经理尝试通过聘请一些技术性写手或商业分析人员来提高他们的软件文档的质量。
这就导致出现了一个相反的问题:技术写手和商业分析人员通常只有有限的技术技能。
解决方案依赖于文档,文档应该迎合其潜在读者的口味。
这方面的通用规则是要求使用一个协同工作方法来编写文档,这种方法允许开发人员和写手发挥他们的长处。
例如,如果潜在的读者是系统设计人员,那么开发人员应该提供详细的输入,但是允许技术写手去组织和编辑内容以使文档符合语法。
不管潜在的读者还是被选中的读者,软件文档的质量与其可使用性相关,以下六个属性可以用来测量软件文档的可使用性: · 适用性:文档提供了相关的信息吗? · 合时性:文档所提供的是当时的信息吗? · 正确性:文档所提供的信息正确吗? · 完整性:文档是不是足够详细? · 可用性:文档随手可用吗? · 可使用性:能够快速直观地找希望能助你一臂之力
软件开发方法是什么?
1、结构化方法 结构化开发方法是由E.Yourdon 和 L.L.Constantine 提出的,即所谓的SASD 方法, 也可称为面向功能的软件开发方法或面向数据流的软件开发方法。
Yourdon方法是80年代使用最广泛的软件开发方法。
它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。
它给出了两类典型的软件结构(变换型和事务型)使软件开发的成功率大大提高。
2、面向数据结构的软件开发方法 Jackson方法是最典型的面向数据结构的软件开发方法,Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。
三种基本的结构形式就是顺序、选择和重复。
三种数据结构可以进行组合,形成复杂的结构体系。
这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。
这一方法对输入、输出数据结构明确的中小型系统非凡有效,如商业应用中的文件表格处理。
该方法也可与其它方法结合,用于模块的具体设计。
3、 面向问题的分析法 PAM(PRoblem Analysis Method)是80年代末由日立公司提出的一种软件开发方法。
它的基本思想是考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。
这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。
这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。
PAM方法的另一个优点是使用PAD图。
这是一种二维树形结构图,是到目前为止最好的具体设计表示方法之一。
当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。
4、原型化方法 产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义而且反复修改是不可避免的。
当然能够采用原型化方法是因为开发工具的快速发展,比如用VB,Delphi等工? 们可以迅速的开发出一个可以让用户看的见、摸的着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。
开发原型化系统一般由以下几个阶段: (1) 确定用户需求 (2) 开发原始模型 (3) 征求用户对初始原型的改进意见 (4) 修改原型。
原型化开发比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。
当系统规模不是很大也不太复杂时采用该方法是比较好的。
5、面向对象的软件开发方法 当前计算机业界最流行的几个单词就是分布式、并行和面向对象这几个术语。
由此可以看到面向对象这个概念在当前计算机业界的地位。
比如当前流行的两大面向对象技术DCOM和CORBA就是例子。
当然我们实际用到的还是面向对象的编程语言,比如C++。
不可否认,面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。
随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT (Object Modeling Technique)。
这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。
所以OMT彻底实现了PAM没有完全实现的目标。
不仅如此,OO技术在需求分析、可维护性和可靠性这三个软件开发的要害环节和质量指标上有了实质性的突破,基本地解决了在这些方面存在的严重问题。
综上所述,面向对象系统采用了自底向上的归纳、自顶向下的分解的方法,它通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。
当前业界关于面向对象建模的标准是UML(Unified Modeling Language)。
这里我们需要谈一下微软的MSF(Microsoft Solutions Framework)的框架,它简单的把系统设计分成三个阶段:概念设计、逻辑设计和物理设计。
概念设计阶段就是从用户的角度出发可以得到多少个对象,并且以对象为主体,画出业务框架。
逻辑设计阶段就是对概念设计阶段的对象进行再分析、细分、整合、删除。
并建立各个对象的方法属性以及对象之间的关系。
而物理设计实际上就是要确定我们实际需要的组件、服务和采用的框架结构、具体的编程语言等。
MCF整个结构比较清楚是基于对象开发的一个比较好的可操作的框架系统。
6、可视化开发方法 其实可视化开发并不能单独的作为一种开发方法,更加贴切的说可以认为它是一种辅助工具,比如用过SYBASE的S-Design的人都知道,用这个工具可以进行显示的图形化的数据库模式的建立,并可以导入到不同的数据库中去。
当然用过S-Design的人不一定很多,但用过VB,DELPHI,C++ Builder等开发工具的人一定不少,实际上你就是在使用可视化开发工具。
当然,不可否认的是,你只是在编程这个环节上用了可视化,而不是在系统分析和系统设计这个高层次上用了可视化的方法。
实际上,建立系统分析和系统设计的可视化工具是一个很...
软件开发需要准备哪些文档?
模块开发卷宗(GB8567——88)1标题软件系统名称和标识符模块名称和标识符(如果本卷宗包含多于一个的模块,则用这组模块的功能标识代替模块名)程序编制员签名卷宗的修改文本序号修改完成日期 卷宗序号(说明本卷宗在整个卷宗中的序号)编排日期(说明整个卷宗最近的一次编排日期)2模块开发情况表3功能说明扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。
可以从系统设计说明书中摘录。
同时列出在软件需求说明书中对这些功能的说明的章、条、款。
4设计说明说明本模块(或本组模块)的设计考虑,包括:a. 在系统设计说明书中有关对本模块(或本组模块)设计考虑的叙述,包括本模块在软件系统中所处的层次,它同其他模块的接口;b. 在程序设计说明书中有关对本模块(或本组模块)的设计考虑,包括本模块的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等;c. 在编制目前已通过全部测试的源代码时实际使用的设计考虑。
5原代码清单要给出所产生的本模块(或本组模块)的第一份无语法错的源代码清单以及已通过全部测试的当前有效的源代码清单。
6测试说明说明直接要经过本模块(或本组模块)的每一项测试,包括这些测试各自的标识符和编号、进行这些测试的目的、所用的配置和输入、预期的输出及实际的输出。
7复审的结论把实际测试的结果,同软件需求说明书、系统设计说明书、程序设计说明书中规定的要求进行比较和给出结论。
软件开发文档重要么,什么方法可以让开发人员在完成好
在软件项目开发过程中,应该按软件开发要求撰写十三类文档,文档编制要求具有针对性、精确性、清晰性、完整性、灵活性、可追溯性!展开全部 需求阶段 1、可行性分析报告 说明该软件开发项目的实现在技术上、经济上和社会因素上的可行性,评述为了合理地达到开发目标可供选择的各种可能实施方案,说明并论证所选定实施方案的理由。
2、项目开发计划 为软件项目实施方案制订出具体计划,应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。
3、软件需求说明书(软件规格说明书) 对所开发软件的功能、性能、用户界面及运行环境等作出详细的说明。
它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。
该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。
设计阶段 4、概要设计说明书 该说明书是概要实际阶段的工作成果,它应说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为详细设计提供基础。
5、详细设计说明书 着重描述每一模块是怎样实现的,包括实现算法、逻辑流程等。
开发阶段 6、开发进度月报 该月报系软件人员按月向管理部门提交的项目进展情况报告,报告应包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。
测试阶段 7、测试计划 为做好集成测试和验收测试,需为如何组织测试制订实施计划。
计划应包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。
8、测试分析报告 测试工作完成以后,应提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。
收尾阶段 9、用户操作手册 本手册详细描述软件的功能、性能和用户界面,使用户对如何使用该软件得到具体的了解,为操作人员提供该软件各种运行情况的有关知识,特别是操作方法的具体细节。
10、项目开发总结报告 软件项目开发完成以后,应与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力,此外,还需对开发工作做出评价,总结出经验和教训。
11、软件维护手册 主要包括软件系统说明、程序模块说明、操作环境、支持软件的说明、维护过程的说明,便于软件的维护。
维护阶段 12、软件问题报告 指出软件问题的登记情况,如日期、发现人、状态、问题所属模块等,为软 件修改提供准备文档。
13、软件修改报告 软件产品投入运行以后,发现了需对其进行修正、更改等问题,应将存在的问题、修改的考虑以及修改的影响作出详细的描述,提交审批。
我是要成为海贼老王的男人