由于需要交软件开发报告的作业,没办法,硬着头皮写了。本文主要讲讲我在写这篇报告过程中的一些感悟。

在公司,我主要负责技术实现的,也就是标准的码农。平时我很少考虑文档的重要性,当然,我自己也很少写文档,一直都觉得写文档很浪费时间。在仔细地分析了各种软件开发报告后,我发现我彻底地错了。程序功能的实现并不难,只要掌握了相关技术,或者说即使不会,网上也有很多参考资料。而文档的编写却是真正考察一个人的能力,它体现了一个人思考问题解决问题的能力。可以毫不含糊地说,要写出一份好的文档比开发一个好的程序难多了。

一个小的项目可以不用文档,因为都是自己一个人开发,所有的思路都在自己脑海中,当然如果有文档会更好,因为写文档的过程也是思路的整理过程。而现在的项目都不可能一个人完成,需要与他人配合,那么如何让别人理解你的思路并且配合你去完成这个项目呢?这个时候就体现了文档的重要性。

一篇好的文档,应该让所有跟这个项目的有关的人(包括老板、项目经理、程序开发人员、测试人员、程序使用者)都能很好地理解自己的想法,所以光有文字是远远不够的,还必须使用UML图、用例图等各种模型作为辅助手段。

一份好的软件开发报告要完整地体现出来,必须包含软件开发的各个方面:软件需求分析、软件概要设计、软件详细设计、软件数据库设计、软件编码、软件测试、软件交付准备、软件鉴定验收、培训等一系列工作。每一部分都有其侧重点和主要针对的人群。一份好的文档能很好地提高我们的工作效率,能让大家更好地配合,也有利于后期的维护工作。

软件开发报告主要包含一下几个方面:

1.软件的需求分析
首先,开发者应该对软件应用需求作充分的调研,提交完整的需求分析报告。在需求分析报告中必须描述的基本问题是:功能、性能、强加于实现的设计限制、属性、外部接口。应当避免把设计或项目需求写入需求分析报告中。它必须说明由软件获得的结果,而不是获得这些结果的手段。软件需求可以用若干种方法来表达,如通过输入、输出说明;使用代表性的例子;用规范化的模型。开发者应尽可能地使用模型的方式,因为这是表达复杂需求的精确和有效的方法。比如用统一建模语言(UML)来描述需求。

2.软件的概要设计
在认可的软件的需求分析基础上,开发者进行下一步的工作。开发者需要对软件系统进行概要设计,即系统设计。概要设计需要对软件系统的设计进行考虑,包括系统的基本处理流程、系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为软件的详细设计提供基础。

3.软件的详细设计
在概要设计的基础上,开发者需要进行软件系统的详细设计。在详细设计中,描述实现具体模块所涉及到的主要算法、数据结构、类的层次结构及调用关系,需要说明软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,以便进行编码和测试。应当保证软件的需求完全分配给整个软件。详细设计应当足够详细,能够根据详细设计报告进行编码。

4.软件的编码
在软件编码阶段,开发者根据软件的详细设计中对数据结构、算法分析和模块实现等方面的设计要求,开始具体的编写程序工作,分别实现各模块的功能,从而实现对目标系统的功能、性能、接口、界面等方面的要求。为了提高编程实现的质量,软件的程序设计必须遵照国家颁布的相关编程规范。主要内容包括:规范化的程序内部文档、数据结构的详细说明、清晰的语句结构、编码规范。编码规范的内容包括命名规范、界面规范、提示及帮助信息规范、热键定义等。在软件编码的同时应进行单元测试。

5.软件的测试
为了尽早发现软件产品中的错误,从而达到提高软件质量、降低软件维护的费用,开发者应在编码过程中对各个模块的程序代码进行单元测试,系统集成时进行集成测试,系统集成完成后对整个软件进行系统测试。单元测试是在软件开发过程中针对程序模块进行正确性检验。集成测试是在单元测试的基础上,将所有模块按照设计要求组装成系统或子系统,对模块组装过程和模块接口进行正确性检验。软件系统测试不仅是检测软件的整体行为表现,从另一个侧面看,也是对软件开发设计的再确认。进行软件系统测试工作时,测试主要包括界面测试、可用性测试、功能测试、稳定性(强度)测试、性能测试、强壮性(恢复)测试、逻辑性测试、破坏性测试、安全性测试等。开发者针对单元测试,集成测试,系统测试分别制定测试计划。集成测试需要根据需求分析报告和概要设计制作测试用例,并须经过评审。软件测试按照测试计划、需求分析报告的要求进行,最后形成软件测试报告。

6.软件的交付准备
在软件测试证明软件达到要求后,软件开发者应提交开发的目标安装程序、数据库的数据字典、用户安装手册、用户使用指南、需求报告、设计报告、测试报告等产物。

7.软件的鉴定验收
在软件开发完成后,为了确保软件是按照需求分析的要求进行开发的,保证软件产品的质量,需要对软件产品进行鉴定验收。验收内容应该包括:合法性检查、文档检查、软件一致性检查、软件系统测试与测试结果评审等几项工作。

8.培训
开发者应详细列出培训计划,包括培训内容、教材、时间和人员等。

可见,软件开发文档包含了软件开发的各个方面,编码工作只占其中1/3不到的工作量,而现实生活中,很多开发(公司)人员都忽略了文档的重要性,把80%以上的精力都用在了软件开发上,结果就是软件修修改改,想到哪就改哪,改到最后都已经面目全非了,严重影响了系统的稳定性,最终导致一系列的问题。

当然,写出一份好的文档不仅需要很优秀的项目负责人和开发人员,而且需要大量的时间精力投入。所以,这其中的代价也是很大的。

以上只是个人见解,如有问题,欢迎批评指正。

为什么需要软件开发报告相关推荐

  1. 基于安卓系统的SM4-SM2/3加解密软件开发报告

    目 录 第一章需求分析 1.1软件功能需求 1.2平台需求 1.3人员分工 第二章概要设计 2.1 软件开发平台 2.2 软件基本流程 2.3 UML图 第三章 程序详细设计 3.1 程序接口设计 3 ...

  2. 基于微信小程序的多功能记事本软件开发 报告+前后台(java)项目源码+数据库

    摘 要 随着人们生活越来越被科技方便化,人们已经不能接受自己做笔记或者记录生活变得慢速或者繁琐,手机市场的发展让人们越来越习惯用手机来办公或者娱乐,人们的生活和手机的关系越来越紧密,对手机的需求迅速增 ...

  3. 第七十八期:2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑

    Hired发布了<2019 年度薪酬状况报告>.调查显示:仅有23%的计算机科学相关专业硕士/博士表示高学历为其带来高薪:54%从业者表示不会继续深造:40岁后薪资呈现下降.60岁基本降到 ...

  4. 2019全球程序员薪酬报告:软件开发比机器学习抢手!40岁后收入下滑

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载自新智元.   新智元报道   编辑:鹏飞.亮亮.张佳 [新智元导读]Hired发布了<2019 年度薪酬状况报告>.调查显示:仅有 ...

  5. JavaScript 流行度最高,Java 屈居第三! | 2020 最新软件开发状况报告

    整理 | 弯月,责编 | 郭芮 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 这篇报告将重点介绍六大方面的主题,其中每个主题部分都包含可视化图表,通过数据为开发人员 ...

  6. OUC_2022年夏季《移动软件开发》实验报告-实验2

    2022年夏季<移动软件开发>实验报告 实验名称: 实验 2 :天气查询小程序 博客地址: https://blog.csdn.net/Postlude Github仓库地址: https ...

  7. 智能化软件开发沙龙优秀学者报告·第1期PPT分享(张天翼 普渡大学)

    智能化软件开发沙龙优秀学者报告 第1期 张天翼 内容简介 Title Rethinking Automated Code Generation with Human-Centered Intellig ...

  8. 《移动软件开发》实验1:第一个微信小程序 实验报告

    2022年夏季<移动软件开发>实验报告 本实验报告所参考实验文档为:Docs (feishu.cn) 如想获得详细的制作过程,请点击上面链接.该博客仅为个人使用实验报告 姓名和学号? / ...

  9. 软件开发之我剑-----立项报告和需求分析,初出江湖

    做软件开始的头等大事就是要写立项报告和需求分析. 立项报告是用来评测软件开发可行性的.其中包括软件开发的背景.资源.困难.风险等等.一切都是要知道的,程序开始做的时候,并不表示你要做的东西就已经完成了 ...

最新文章

  1. 计科系大一c语言期末考试题,大一大学计算机基础期末考试试题「附答案」
  2. 目标检测 /yolo算法原理的详解
  3. 子弹短信 android,子弹短信精简版
  4. SAP License:企业ERP系统
  5. Oracle 11g R2 Rman备份与恢复
  6. matlab随机生成点图,matlab随机生成散点图
  7. Parallels将Win10引入Apple Silicon,实测运行效果糟糕
  8. 微信开放平台授权java_微信开放平台授权登录(java版)
  9. Paypal国际版网站集成
  10. Java项目:ssm+jsp实现手机WAP版外卖订餐系统
  11. 一键QQ聊天与一键加群QQ功能
  12. 3.1 TMO MATLAB 框架(Advanced High Dynamic Range Imaging )
  13. 一起实践神经网络INT8量化系列教程(一)
  14. 2022kali安装docker教程
  15. 一句话概括 java 动态代理
  16. R3300L运行CoreELEC, EmuELEC和Armbian
  17. 基于SSM框架的洗车店预约系统的设计与实现
  18. ImageModeler v4.02 完整版+HTRI
  19. 笔记本电脑没有鼠标怎么右键_没有键盘怎么办Windows10屏幕键盘让你实现用鼠标打字...
  20. 2022级郑州轻工业大学学生平台管理系统期末设计(最终版v3.0)

热门文章

  1. Kewail-短信接口接入流程
  2. HTML之表格与表单
  3. Base64的编码(Encode)与解码(Decode)
  4. 组合数据类型(集合)
  5. 前端面试题及答案(字节跳动)(二)
  6. 园区SDN网络自动化能力优化思路
  7. 无线网sdn服务器,云服务器:采用SDN网络有哪些优势?
  8. 物理机下安装 VMware ESXi 6.7
  9. VMware vCenter Converter 物理机迁移
  10. 微信公众号 创建菜单post数据格式