软件开发过程 文档
在软件开发的过程中,为了有效地进行开发和管理,人们往往根据经验规律,形成一定的模式。将开发过程分成几个阶段,每个阶段都有明确的任务,并且需要产生一定规格的文档资料交付给下一个阶段,下一个阶段在上阶段的基础上继续进行开发过程。
按结构化方法,通常将开发过程分为软件计划、需求分析、软件设计、程序编码、软件测试、软件维护6个主要阶段,各个阶段像瀑布流水一样联为一体。
1.软件计划
通过初步的、总体的需求分析,确定这是一个什么样的软件。从总体上把握软件的目标和功能的框架,继而研究论证总体方案的可行性。该阶段的主要任务有:
1.问题定义,包括开发软件的现状、开发的条件和理由、总体要求以及目标。
2.可行性研究,一般从经济、技术、操作、法律、时间五方面讨论。
3.软件计划内容
软件范围的内容有:软件功能规模、软件能力对硬件的要求、接口界面的性质和复杂性。
环境资源包括需要什么样水平的人,什么功能性能的软件和硬件。
4.软件价格估计
5.成本/收益分析
6.编写项目开发计划文档
2.需求分析
所谓"需求分析",是指对要解决的问题进行详细的分析,弄清楚问题的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么。该阶段的主要任务就是深入描述软件的功能和性能,借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“干什么”的问题。该阶段编写需求规格说明书。
3.软件设计
软件设计的任务是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法,形成软件的具体设计方案。具体分为以下四方面的设计:
结构设计:定义软件系统各主要部件之间的关系。
数据设计:将模型转换成数据结构的定义。
接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。
过程设计:系统结构部件转换成软件的过程描述。
4.程序编码
在此之前,我们已经解决了系统是什么,干什么,怎么干的问题,接下来就是实际去干了。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,你必须永远面对这个问题。
5.软件测试
软件测试就是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。测试是为了发现程序中的错误而执行程序的过程。好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案。成功的测试是发现了至今为止尚未发现的错误的测试。测试并不仅仅是为了找出错误。通过分析错误产生的原因和错误的发生趋势,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进。
6.软件维护
软件维护就是在软件运行过程中,为了改正运行过程中偶尔出现的个别错误或由于外部环境以及用户对系统功能、性能的需求进行提高完善。该阶段的工作量占软件的整个生命周期的70%左右,主要包括对程序、数据、代码和设备的维护。
文档是软件开发建设的生命线,它贯穿于软件开发的整个过程。文档是软件开发人员、管理人员、维护人员、用户以及计算机之间的桥梁和纽带。
软件开发人员在各个阶段都要以文档作为前一阶段工作成果的体现和后一阶段工作的依据。在软件开发过程中需指定一些工作计划和工作报告,供给管理人员,并得到同意和支持。管理人员通过文档了解软件开发的项目安排、进度、资源使用和成果等。软件开发的最终目的是满足用户的需求,所以开发人员需要针对用户对所开发软件的使用、操作、维护等提供详细的说明指导。用户文档、开发文档、管理文档构成了软件文档的主要部分:
用户 文档 |
1.用户手册 |
|||
2.操作手册 |
||||
3.维护修改建议 |
||||
4.软件需求说明书 |
||||
开发 文档 |
1.软件需求说明书 |
|||
2.数据库设计说明书 |
||||
3.概要设计说明书 |
||||
4.详细设计说明书 |
||||
5.可行性研究报告 |
||||
6.项目开发计划 |
||||
管理 文档 |
1.项目开发计划 |
|||
2.测试计划 |
||||
3.测试分析报告 |
||||
4.开发进度月报 |
||||
5.项目开发总结报告 |
一、各文档在软件生存期的编写阶段:
阶段文档 |
可行性要求与计划 |
需求分析 |
设计 |
代码编写 |
测试 |
运行与维护 |
可行性研究报告 |
|
|
|
|
|
|
项目开发计划 |
|
|
|
|
|
|
软件需求说明 |
|
|
|
|
|
|
数据要求说明 |
|
|
|
|
|
|
概要设计说明 |
|
|
|
|
|
|
详细设计说明 |
|
|
|
|
|
|
测试计划 |
|
|
|
|
|
|
用户手册 |
|
|
|
|
|
|
操作手册 |
|
|
|
|
|
|
测试分析报告 |
|
|
|
|
|
|
开发进度月报 |
|
|
|
|
|
|
项目开发总结 |
|
|
|
|
|
|
维护修改建议 |
|
|
|
|
|
二、各文档所要问答的问题:
所提问题文档 |
什么 |
何处 |
何时 |
谁 |
如何 |
为何 |
可行性研究报告 |
√ |
√ |
||||
项目开发计划 |
√ |
√ |
√ |
|||
软件需求说明 |
√ |
√ |
||||
数据库设计说明 |
√ |
√ |
||||
概要设计说明 |
√ |
|||||
详细设计说明 |
√ |
|||||
测试计划 |
√ |
√ |
√ |
|||
用户手册 |
√ |
|||||
操作手册 |
√ |
|||||
测试分析报告 |
√ |
|||||
开发进度月报 |
√ |
√ |
||||
项目开发总结 |
√ |
|||||
维护修改建议 |
√ |
√ |
√ |
三、对各个文档主要内容和作用的理解:
1.可行性研究报告:
说明该软件开发项目的实现在技术、经济和社会因素等方面是否可行,阐述能够达到开发目标可供选择的各种可实施方案,以及指出当前系统存在的问题和需要改进之处,说明并论证所选定实施方案的理由和带来的效益。
2.项目开发计划:
为软件项目实施方案制定出具体计划,主要包括各部分工作人员开发的进度。经费的预算、所需的硬软件资源等。项目开发计划提供给管理部门,作为开发阶段评审的参考。
3.软件需求说明书:
也称软件规格说明书,其中对软件的功能、性能、用户界面及运行环境等做出详细的说明。它是用户与开发人员双方对软件需求取得共同理解基础上达成的协议,也是实施开发工作的基础。
4.数据库设计说明书:
给出数据库的概念设计、逻辑设计、物理设计以及数据字典和一些约定等,为生成和维护系统数据文卷做好准备。
5.概要设计说明书:
该说明书是概要设计阶段的工作成果,用于说明功能分配、模块划分、程序的总体结构、输入输出以及接口设计、运行设计、数据结构设计和出错处理设计等,为接下来的详细设计奠定基础。
6.详细设计说明书:
详细描述每一个模块是如何实现的,包括实现算法、逻辑流程等。
7.用户手册:
本手册详细描述软件的功能、性能和用户界面,使用户了解如何使用该软件。
8.操作手册:
本手册为操作人员提供该软件的各种运行情况的有关知识,特别是操作方法的具体细节。
9.测试计划:
为如何组织测试制定实施计划。计划包括测试的内容、进度、条件、人员、测试用例的选取原则、测试结果允许的偏差范围等。
10.测试分析报告:
测试工作完成后,提交测试计划执行情况的说明,对测试结果加以分析,并提出测试的结论意见。
11.开发进度月报:
软件开发人员按月向管理部门提交的项目进度情况报告。包括进度计划与实际执行情况的比较、阶段成果、遇到的问题和解决的办法以及下个月的打算等。
12.项目开发总结报告:
软件项目开发完成以后,要与项目实施计划对照,总结实际执行的情况,如进度、成果、资源利用、成本和投入的人力。此外还需对开发工作作出评价,总结经验教训。
13.维护修改建议:
软件产品投入运行后,发现了需要对其进行修正、更改的问题,将这些存在的问题、修改的考虑以及修改的影响估计作详细的描述,写成维护修改建议,提交审批。
软件开发过程 文档相关推荐
- 敏捷开发:软件与文档
也曾尝试过,不带文档的"裸体"前进,可想而知,最后经常造成项目的返工,新来的人员要拼命读以前的人留下的几乎没有注释的源码. 后来尝试过,制订完善的规范,用了大量的软件 ...
- 内部软件技术文档怎么做?
今天,互联网被认为是一个知识库.任何人都可以使用互联网访问任何类型的信息,例如文档,查看超文本和多媒体(音频和视频)通过Web服务器数据库. 此外,对于任何组织来说,提供对公司网站的公开访问都变得必要 ...
- 软件设计文档如何编写,设计文档内容都包括什么
我们经常听到这样的话: "设计文档没有用,是用来糊弄客户和管理层的文档": "用来写设计文档的时间,项目开发早就做完了": "项目紧张,没有时间做设计 ...
- 软件测试计划文档(初)
软件测试计划文档 1.引言 1.1 编写目的 满足大学生选课需求,解决选课难的问题 1.2 项目背景 如今,网上选课已成为大学生必经之路,但是普通的官方系统难以满足大学生需求,我们拟在大学内推广该软件 ...
- 软件需求分析文档模版
软件需求分析文档模版(转载自国家计算机标准和文件模板) 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最后一步,是 ...
- 局域网聊天软件 设计文档怎么写?
局域网聊天软件 设计文档怎么写?这种针对数据库记录的 局域网聊天软件 窃取,被一些攻击者称为拖库,于是有了一个自然而谐音的戏称脱裤.只是攻击者日趋不厚道,从前只是偷了人家的裤子,现在还要晾在大街上,并 ...
- 软件项目文档_什么是软件项目的好的文档?
软件项目文档 开放地理空间(OSGeo)基金会最近参加了Google的第一个文档季节 ,其中Google赞助了高级技术作家为开源项目做出贡献. OSGeo是大约50个地理空间开源项目的总括组织. 多年 ...
- rockycapture_RockyCapture航线规划软件介绍文档
马上注册,享用更多功能,让我们一起,飞遍世界! 您需要 登录 才可以下载或查看,没有帐号?抢先注册 x RockyCapture 航线规划 RockyCapture 航线设计规划是基于大疆无人机,由珞 ...
- 软件概要设计文档(终)
软件概要设计文档 1.引言 1.1目的 该文档的目的是描述辅助选课系统的概要设计,主要内容包括系统功能简介.系统结构设计.系统结构设计.系统接口设计.模块设计和界面设计等. 本文档预期的读者包括设计人 ...
最新文章
- 云视频通信在建筑施工企业的应用
- o型圈沟槽设计_液压密封件产品、沟槽设计、安装质量要求
- Fedora7 安装完全过程
- 哈希表数据结构_Java数据结构哈希表如何避免冲突
- WEB安全基础-SQL相关
- di-tech2016_2016年Tech最佳愚人节笑话
- Centos 云服务器磁盘占用率90%以上的排查解决
- java中接口有什么作用?请创建一个接口(举例)
- 2013年想学的东西。。。
- P5231 [JSOI2012]玄武密码
- 如何解决类似 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 的问题 #10
- 利用微信JSSDK实现自动定位
- android获取设备码,获取Android设备唯一标识码
- ai画面怎么调大小_AI页面面板中如何调尺寸
- 华为网络设备与基础配置
- Usb ssh 管理android,Android USB VID PID 及 ADB
- LeCo-83.删除排序链表中的重复元素
- python 代码格式化工具:pep8ify
- 关于redis创建集群时出现[ERR] Node x.x.x.x:6379 is not empty. Either the node already knows other nodes (check
- 用于情绪测试的软件,第七章 情感心理自我测试心理测评软件