很多刚进入互联网领域或刚开始学习编程的小伙伴都会认为,说起软件开发,其可以联想到的就是编写程序。这也造成了很多非互联网人员对软件开发这样一个工作产生了一定的误解。
但其实不然,编写程序只不过是在进行软件开发的过程中较为基础的一个部分,而并非属于软件开发整个过程的全部。
其实软件和很多产品一样,都是有一定的生存周期的,这个周期就叫做“软件生存周期”。同时它也是在进行软件开发的时候必须要经过的一个阶段。
所以今天大灰狼就来和大家分析一下,一个软件从开始设想到最后投入使用,这样一个生存周期的过程。
从上面这个图,我们就可以很直观的看出一个软件的生存周期包括:可行性研究与计划、需求分析、总体设计、详细设计、实现(编码与单元测试)、集成测试、确认测试、使用与维护八个阶段。
其实在软件开发的过程中,这八个阶段每一步都是至关重要且不可忽视的。那么接下来大灰狼就来和大家聊一聊,这八个阶段各有怎样的关键任务和要做哪些工作。
可行性研究与计划
我们在开发任何一款软件的时候,都要对它进行可行性研究分析,进行深入的调研,来判断这款软件的开发是否具有一定的可行性。就像我们去做一件事儿,要事先对他进行考虑是否行得通是一样的道理。
在可行性研究与计划中,它的关键任务是要解决怎样的问题,是否具有行的通的解决办法和进行粗略的计划。
那么当这一过程完成之后,我们必须要生成的三个文档:
问题定义报告:其中应包含问题性质、工程目标和工程规模三项;
可行性研究报告:其中应该对经济技术社会操作可行性进行详细分析;
项目开发计划:在这一项中,我们应该对该软件开发的过程进行粗略计划实施,以保证后续的开发工作可以有较为全面的依托。
需求分析
当我们的软件通过可行性分析以后,那么就会进入需求分析这样一步,这一步主要是与用户进行沟通、分析用户的需求,并能够较好的根据用户需求进行软件开发。
在这一步中,我们要做的关键任务是:目标系统必须要做什么内容,由于可行性研究的需求分析是粗略的、不准确的。
所以在需求分析这一步,我们必须要进行完整、准确、清晰、具体的软件开发需求分析,这样才能保证我们的软件在开发处男以后与用户所需求差距更小。
在需求分析这一步完成以后,我们要生成的文档是需求规格说明书,其内容应包含目标系统的详细需求。
总体设计
当我们详细的了解到用户的需求之后,就要对整个软件的开发过程进行整体而又详细的设计。
在这一步的关键任务是:应该怎样实现目标?系统根据需求设计方案分析推荐最佳方案、设计软件结构等。
当进行总体设计之后,要生成的文档是总体设计说明书,该说明书中应详细记录总体设计的结果。
详细设计
当进行总体设计之后,我们要进入的便是详细设计阶段。
在该阶段中,我们要将进行软件开发时所使用的语言算法函数以及各类型裤确定下来,并进行详细设计规划、选择处进行该软件较为合适的设计方案,具体到每一个方法和每一个代码。
**该阶段的关键任务是:应该怎样具体的实现系统设计,每个模块的算法和数据结结构
在该阶段完成时,应生成的是详细设计说明书,该说明书中应包含适当表达工具、表达算法和数据结构内容,对所用到的函数及方法进行分析。
实现
在实现阶段,包含两方面内容:一方面是编码,另一方面为单元测试,同时这也是我们刚进入软件开发编程阶段时学习的内容。
在该阶段,我们要做的关键任务便是选择语言工具翻译和进行详细设计结果并对每一个编码完成的模块进行测试,这样一个过程就叫单元测试。
当编码完成后,应实现的阶段性文档是:程序清单和单元测试报告,其中应对所用到的关键程序进行详细介绍,并对每一个模块的检验结果进行分析说明,确保构成软件的每一个单元完好无误。
集成测试
当我们将程序以单元的方式进行编写完毕之后,我们要做的就是将各个单元模块进行集成。
在该阶段要做的关键任务是:将进行单元测试模块组装起来进行测试,通过测试使软件达到预定要求。
在该阶段要生成的是:测试报告,其中应包含测试计划,测试方案和测试结果三方面,并对测试中所出现的问题进行分析。
确认测试
该测试是由用户进行接触的测试,因此又叫验收测试。
是我们将进行集成测试过后的软件交付给用户,让用户进行最后的确认测试,并对软件中所存在的问题和缺陷进行提出,对于需求不一样的内容进行更正。
该阶段的关键任务是:由用户按需求规格说明书规定进行检测,这就用到第二阶段需求分析时所生成的「需求规格说明书」,同时它也是检验我们所开发的软件是否达到用户所预期需求的唯一标准。
该阶段要称成的文档是测试报告,其中应包含软件的设计方案和软件,最后测试结果。
使用与维护
当用户进行确认测试并验收以后,软件就已基本完成。但在软件使用的过程中,难免会出现由于环境和方式的不同而产生的问题。因此,要对软件进行定期维护。
该阶段所要完成的关键任务是:通过必要的维护活动,使系统持久满足用户的需求。
同时进行维护的类型可以分为:
改正性维护:即用户在运行软件的过程中出现问题和发现错误并进行维护;
适应性维护:软件在运行过程中,软硬件环境发生变化时应进行的维护;
完善性维护:用户在使用过程中发现软件存在不足,提出要求,改进扩充软件时所进行的维护。
预防性维护:作为软件开发者一方,应对软件将来可能要出现的问题进行分析,并为将来的维护做出准备。
以上便是进行软件开发时所必须的八个阶段,由此便可以看出,编码阶段只不过是在软件开发中的一部分,当总体设计和详细设计分析出来以后,只需按照需求进行编码即可。
因此软件的开发过程总体依托这八个方面逐步进行,只有这样才能尽可能的保证在软件开发过程中将风险和问题降到最低。
觉得有用记得关注分享,大灰狼为你的软件开发之路助一臂之力!
最后你也可以关注我的微信公众号“灰狼洞主”,获取更多程序实例教程,和互联网资讯分享!