软件开发的流程

  大家好我是狗蛋,最近呢我一直在学习Java,前几天和一些大厂的程序员进行了一些交流学到了不少东西,也了解到了一个软件开发的整个过程。所以我们今天分享的就是软件开发的整个流程。

 

 

   我们先来看看百度的名词解释:软件开发流程即软件设计思路和方法的一般过程,包括对软件先进行需求分析,设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编码和调试、程序联调和测试以及编写、提交程序等一系列操作以满足客户的需求并且解决客户的问题,如果有更高需求,还需要对软件进行维护、升级处理,报废处理。

有的小伙伴就问了:"狗蛋这么多的字我们也不好理解呀,能不能说的简单点。“那我们来进行详细的探索吧。

我们分公司性质来说一个软件的开发流程

软件公司和非软件公司

1.非软件公司

需求分析-概要设计-程序编码-程序测试-软件交付-客户验收-码农维护

2.软件公司

需求分析-概要设计-详细设计-程序编码-程序测试-软件交付-客户验收-码农维护

 上面这张图就是程序开发的整个过程

我们来一步一步的说:

1、可行性分析:从市场、政策、经济、技术、人员等各方面因素来分析这个软件项目开发的可实行性.我们做开发的需要知道开发的这个程序可行度是怎样的。

需求分析:做市场调研,通过请教行业专家或者分析市场同类型的产品,来判断这个项目的开发是否有发展前景。一个软件没有出现之前,只是有一部分人有一个想法,我需要一个这样的东西(想要一个孩子了)用来管理我的什么什么,这个时候一个想法出现了,就会有这个需求,他会找软件公司需求分析师来商量,这个时候一个软件就怀孕了,相当于开始发育了.需求分析是听完要求以后会将大概的功能描述一下,用Word或者Axure画出一个简单的Demo给用户看,经过几次确认以后需求分析师会最后确认功能是不是完善的,确认了以后进行我们的下一步-系统设计

 

系统设计:确定软件的体系结构、数据结构、算法、模块功能,以及用户界面的设计等等,如果这些事情没有设计好,接下来的设计可能会变得一团糟。这个功能主要是干嘛的呢?很多的公司觉得没必要,其实是很有必要的,这个就是相当于先规划一下怎么平安度过怀孕期,对于软件来说就是软件的处理逻辑,大概的一个流程是怎么走的,大概需要哪些模块,怎么运行,需要大概多少接口,后期怎么维护等问题,做这些干呢吗?为了下一步-详细设计

 

详细设计有人说,详细设计是很麻烦的一步,其实不是很麻烦的一步,我觉得是最难的一步,详细设计主要是用来确认细节的,接口的名字啊,控制器的名字啊,多少个控制器,谁来调用谁,这个不可以有错,因为后期码农是需要看这个开发的,你怎么起名字,他们就怎么写,所以这里出错也就意味着编码的时候也会错,最后会有一份详细设计书出现,这个就是告诉孕妇具体吃什么,怎么吃,多少量。

码农编码:很多人觉得这个就是搬砖,看着设计书就直接写就可以了,理论是这样的,但是为什么还有很多的bug出现呢?很大一部分原因并不是设计的原因(当然也有可能),很大原因是不规范造成的,还有就是是不是一个项目组的人可以协作处理代码,怎么做可可以提高编码的效率,这些问题都是在编码的时候出现的问题。这个是相当于孕妇实施那一套套餐的时候具体是不是按规范来吃的。
 

程序测试:这一步是里面很重要的一步,测试,我们不可能说写好直接就给用户用了,这个是不现实的,我们需要做的是先给测试部门进行系统的测试,当然这个测试不是按照用户的想法来的,他们会很暴力,举个栗子,一个按钮,正常的用户使用的时候会直接点击一次,看到效果就可以了,但是测试的时候不是,他们会疯狂的点击,知道他们觉得这个世界上不会有人比他们暴力的时候他们会停止,当然这是一个好的测试人员,很多的测试不会是这样的,他们觉得正常使用没问题就是没事的,其实一个软件好不好,很大一部分在于测试人员的测试力度。最后写一份测试报告就可以了。

软件交付:测试结束以后没有任何的问题的话,就可以写安装手册了,这个其实就是用户使用指南。客户验收交付后客户简单的测试以后觉得是和自己想的一样的,就收货,交钱.


码农维护:是不是验收以后就没事了呢?当然不是,一个软件很多时候是在用一段时间以后才会出问题的,所以会一直需要人来维护他们,当然不是说只是出问题才会维护的,主要的原因是软件会根据不同的需要更改功能,这样的过程也是维护的过程,QQ已经更新多少代了,是不是,这也是一个维护的过程。


项目重构:这个是一个项目如果出现了新的技术,功能没有改变的时候,为了用户体验,例如之前是SSH写的,但是运行的速度很低,用SpringBoot,大家都在用,用户反映很好,那么这个时候就需要项目重构了,用新的技术将之前的功能重新实现。

 

  关于软件的开发基本那就是这些了,另外细心的人也看到了非软件公司是没有详细设计的,这个解释一下,为什么呢?很简单,其实详细设计是和耗费时间的,非软件公司的人不会花费这个时间在设计上,他们就是直接告诉你需求,码农只需要直接编码就可以了,一般这样的对你用什么技术,什么框架是没有要求的。
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
汽车底层软件开发是指在汽车电子产品中负责开发和设计底层软件的工作。底层软件是指与硬件紧密结合的软件,它负责控制和管理汽车的各种功能和系统,如引擎控制单元(ECU)、车身控制模块(BCM)等。底层软件开发需要掌握嵌入式系统开发的相关知识和技能。 在学习汽车底层软件开发时,可以参考以下几本书籍: 1. 《汽车电子产品软硬件协同开发与应用》:这本书介绍了汽车电子产品的软硬件协同开发过程和方法,对于理解软硬件之间的关系和协同开发的重要性很有帮助。\[2\] 2. 《汽车软件构架》:这本书由汽车软件设计和架构实践者撰写,介绍了汽车软件的设计原理和架构实践。它包含了当前汽车软件架构的最新趋势和进展,对于理解汽车底层软件开发的概念和方法非常有益。\[3\] 除了书籍,还可以通过参加相关的培训课程和实践项目来学习汽车底层软件开发。此外,与软件PM和软件开发工程师进行交流和请教也是提高自己的学习效果的好方法。\[1\] 总之,学习汽车底层软件开发需要掌握嵌入式系统开发的知识和技能,同时了解软硬件协同开发的原理和方法。通过学习相关的书籍和与专业人士交流,可以帮助你更好地理解和应用汽车底层软件开发。 #### 引用[.reference_title] - *1* *2* *3* [汽车电子技术——软件、硬件、系统集成和项目管理之学习与分享概述](https://blog.csdn.net/weixin_38135620/article/details/115188067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值