标签:软件开发报告
由于需要交软件开发报告的作业,没办法,硬着头皮写了。本文主要讲讲我在写这篇报告过程中的一些感悟。
在公司,我主要负责技术实现的,也就是标准的码农。平时我很少考虑文档的重要性,当然,我自己也很少写文档,一直都觉得写文档很浪费时间。在仔细地分析了各种软件开发报告后,我发现我彻底地错了。程序功能的实现并不难,只要掌握了相关技术,或者说即使不会,网上也有很多参考资料。而文档的编写却是真正考察一个人的能力,它体现了一个人思考问题解决问题的能力。可以毫不含糊地说,要写出一份好的文档比开发一个好的程序难多了。
一个小的项目可以不用文档,因为都是自己一个人开发,所有的思路都在自己脑海中,当然如果有文档会更好,因为写文档的过程也是思路的整理过程。而现在的项目都不可能一个人完成,需要与他人配合,那么如何让别人理解你的思路并且配合你去完成这个项目呢?这个时候就体现了文档的重要性。
一篇好的文档,应该让所有跟这个项目的有关的人(包括老板、项目经理、程序开发人员、测试人员、程序使用者)都能很好地理解自己的想法,所以光有文字是远远不够的,还必须使用UML图、用例图等各种模型作为辅助手段。
一份好的软件开发报告要完整地体现出来,必须包含软件开发的各个方面:软件需求分析、软件概要设计、软件详细设计、软件数据库设计、软件编码、软件测试、软件交付准备、软件鉴定验收、培训等一系列工作。每一部分都有其侧重点和主要针对的人群。一份好的文档能很好地提高我们的工作效率,能让大家更好地配合,也有利于后期的维护工作。
软件开发报告主要包含一下几个方面:
1.软件的需求分析
首先,开发者应该对软件应用需求作充分的调研,提交完整的需求分析报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的结果,而不是获得这些结果的手段。软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。
2.软件的概要设计
在认可的软件的需求分析基础上,开发者进行下一步的工作。开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。
3.软件的详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。
4.软件的编码
在软件编码阶段,开发者根据软件的详细设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。在软件编码的同时应进行单元测试。
5.软件的测试
为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时,测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。开发者针对单元测试,集成测试,系统测试分别制定测试计划。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照测试计划、需求分析报告的要求进行,最后形成软件测试报告。
6.软件的交付准备
在软件测试证明软件达到要求后,软件开发者应提交开发的目标安装程序、数据库的数据字典、用户安装手册、用户使用指南、需求报告、设计报告、测试报告等产物。
7.软件的鉴定验收
在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。
8.培训
开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。
可见,软件开发文档包含了软件开发的各个方面,编码工作只占其中1/3不到的工作量,而现实生活中,很多开发(公司)人员都忽略了文档的重要性,把80%以上的精力都用在了软件开发上,结果就是软件修修改改,想到哪就改哪,改到最后都已经面目全非了,严重影响了系统的稳定性,最终导致一系列的问题。
当然,写出一份好的文档不仅需要很优秀的项目负责人和开发人员,而且需要大量的时间精力投入。所以,这其中的代价也是很大的。
以上只是个人见解,如有问题,欢迎批评指正。
标签:软件开发报告
原文地址:http://blog.csdn.net/bingdianlanxin/article/details/42007777