(一)软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。 软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。今天我们来聊聊软件开发的整体流程,最简单明了的总结则是:
1.软件规划阶段:开发计划、质量计划、测试计划;业务蓝图 ,也就是需要产生什么文档,用到什么工具?
2.软件概要设计阶段:需求分析、概要设计;业务流程图,即需要产生什么文档,用到什么工具?
3.软件详细设计阶段:详细设计、系统架构设计、部分编码;详细业务流程图,即需要产生什么文档,用到什么工具?
4.软件编码测试阶段:编码、测试及报告,即需要产生什么文档,用到什么工具?
5.软件完成阶段:操作手册、用户手册、维护说明,即需要产生什么文档,用到什么工具?
接下来详细的谈谈软件开发每一步:
1、软件需求调研
内容:通过对软件项目目标、项目价值点的沟通,初步判断软件项目的可行性,并根据沟通情况初步规划项目实施路径,评估项目规模、投入预算等因素。
价值:此项工作是软件开发项目目标与项目价值点能否落地的第一环节,对项目成败起到决定性作用
2、拟定软件开发解决方案
内容:根据软件开发项目背景沟通,定位项目核心价值点,并以此规划价值点落地路径,把软件开发项目需要解决的核心痛点清晰暴露,提出可行性建议以及实施计划。
价值:通过体系化的价值点落地路径和计划,清晰项目实施的主要方向,让软件开发项目资源、时间规划、人力投入等项目成败因素在规划阶段就得到关注,并能够及时预见部分项目疏漏点,尽可能在规划阶段降低风险,提高软件开发成功率。
3、软件需求文档制作
内容:根据敲定的解决方案,进行需求文档制作,确定软件功能规划,细化功能实现方式。
价值:明确功能模块及其实现方式、敲定功能细节,保障软件开发工作能够按照解决方案的思路顺利进行。
4、软件原型制作
内容:根据功能结构,进行原型图制作,功能规划较复杂情况下,会加入近似于功能开发完毕后呈现出的功能效果,用于客观的指导开发工作。
价值:原型图的制作,能够直观的表达出功能实现意图以及效果,结合需求说明文档,能够最大程度上避免最终功能开发结束后,与预期差距大的问题。
5、实施方案敲定
内容:需求确定后,软件开发项目整体时间规划确定,整体实施计划的时间安排,会根据项目需求节点进行规划;在时间过于紧张的情况下,会采取分期方案进行开发,一部分先投入使用,后续开发同期进行。
价值:确定好整体实施计划后,项目资源的准备就有了明确的时间规划,项目正式上线运营进入倒计时阶段,能够相对紧密地开展准备工作,避免多余的人力消耗,另外可以按软件开发计划做好市场准备工作。
6、效果图设计
内容:根据功能规划,设计效果图,确定网站/APP布局设计,定义整体软件系统风格。
价值:用于确定站点设计风格,展示软件开发完以后的实际视觉效果。
7、软件研发
内容:根据需求和整体实施计划开始进行软件编码工作,实现软件功能。
价值:软件开发需求和设计正式进入实现阶段。
8、软件测试
内容:检查功能实现是否与软件需求规划一致,软件功能开发是否存在BUG和相关问题。
价值:保障软件系统质量。
9、软件系统安装部署
内容:软件系统部署到在线服务器,可以在线进行测试。
价值:在实际运营前,更彻底的发现软件系统遗留问题,减少软件系统在实际环境中出现问题的可能性。
10、软件交付验收
内容:在线测试验收结束后,针对实际运营服务器的部署,以及相关软件成果整理,如架构文档、测试文档、产品白皮书、接口文档等。
价值:软件系统进入实际使用阶段。
11、软件维护
内容:针对软件系统日常使用问题进行培训答疑、软件程序BUG修复、软件功能使用培训、服务器管理等,根据软件开发项目实际所需维护工作制定维护策略,并开始执行。
价值:保障软件系统上线后,能够稳定支撑运营工作。
(二)1、最喜欢的两种团队类型:
(1)特工团队:特工团队中每个人对软件开发的某个领域都达到了“专家”“高手”的地位,合作起来各司其职,效率和正确率会非常高。
(2)社区模式:社区模式中每个人选择自己感兴趣的项目,贡献力量,这种模式的好处是众人拾柴火焰高。
2、这门课程中最应该采取哪种类型:我认为应该采取社区模式
3、出优劣
优点:能够每个人参与进来,并且如果有的成员有做不到,其他成员可以互帮互助。
缺点:如果每个人都有一个不会的地方那么难题就无法解决,效率就会低下。