首页 > 编程知识 正文

软件开发的演变过程,说明软件发展的演变过程

时间:2023-05-03 10:12:46 阅读:269589 作者:2094

软件的发展,可以大体上划分为三个阶段:软硬件一体化阶段(50s-70s),软件作为独立产品的阶段(70s-90s),网络化和服务化的阶段(90s-)。软件和硬件的发展是相互促进的;按照著名的摩尔定律,硬件每18个月晶体管数量翻番而价格减半。软件运行于硬件之上,软件可以代替硬件实现很多硬件无法实现的功能。一开始软件开发的水平比较低,进度比较缓慢;但是自从操作系统的出现,就让软件开发的难度(开发的难度以及调试的难度等)降低了,从而让人们能够“基于软件而架设软件”,因此软件可以不再受制于硬件提供的单一功能,而可以组合出一系列比较复杂的功能。所以后续,软件可以作为独立的产品进行生产;当人们发现自己总是在“重复制造轮子”的时候,就出现了服务化的思想。可以直接调用别人提供的服务而不用自己从头开始开发,其实我觉得这种思想的出现也是基于软件具有一定复杂的基础之上的。因为软件太复杂了导致重复开发费时费力,所以很好的推广了服务化和网络化的思想。

从软件发展的三大历史阶段来看,总体上来讲:

软件的重要性相较于硬件而言越来越高;

软件的规模越来越大,架构越来越复杂;

软件从集中的单点式进行开发、服务,演化的更加具有普适性、公用性。

软件过程的演变我觉得是服务于软件形态的发展的,不同阶段的软件发展都有一套适应自己的软件过程;人们总会发现,特定的软件体量、形态都有最适合自己的一套软件过程方法,软件开发“没有银弹”。在早期,硬件操作的成本要远远高于软件,在这种情况下需要尽量减少软件出错的记录;所以出现了需要让程序员反复衡量代码的“Measure twice, cut once”过程方法。在同一发展时期,“软件小作坊”则会开发一些规模较小的软件,写完了跑一下看有没有bug;有就改一改,没有就万事大吉——“code and fix”方法。但是随着软件复杂度的增加,code and fix已经不再适应这个体量的软件的开发,需要一套更加完善的软件过程来指导开发、提升软件的质量。这时候就出现了形式化方法、结构化程序设计和瀑布模型以及CMMI——用来解决大型软件的开发。但是随着用户的数量急剧增加、需求的不确定性,在网络化和服务化的时代,传统的软件过程方法无法应对快速的需求变更,因此出现了迭代时软件开发(软件产品分迭代一次次的进行交付)、敏捷软件开发。

从软件过程的演变之中,总体上来讲:

软件过程服务于特定规模/形式的软件开发软件过程从简单走向复杂,从封闭走向开放

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。