软件设计思想发展--简介

        自从20世纪70年代起,软件设计基本进入了面向过程的时代。面向过程的设计思想解除了软件本身和机器内存,寄存器,地址之间的耦合·。也在同一时期,软件工程开始被开发者和研究者进行研究,之后进行一系列的设计方法被提出,以降低模块之间的耦合,提高代码的重用率。对于面向过程的设计思想而言,代码以函数为基本模块,但是由于数据被全局共享,导致了某个函数的变化会影响整个系统的其他函数。而这一情况在面向对象的设计思想被提出后得到改善,面向对象的思想把数据和行为(函数)封装在对象之中。在保持对象对外特征不变的情况下,对象内部数据的更改或行为的重构,将不再影响系统中的其他对象。在面向对象思想被普遍接受之后,软件设计模式得到了较大的发展。Gof的设计模式中,把面向对象的特征:继承,多态,封装使用到了极致,面向对象的设计思路是软件设计思路发展的极致,最大程度地降低了系统模块之间的解耦。面向对象的设计思路是软件设计思想发展中的一个里程碑,时至今日,它依然是模块开发的基本思想。

       但是面向对象的设计思想在企业系统开发中依然暴露出弊端,(1)首先对象的传递问题。当对象跨越进程或者主机时,系统需要对对象进行特殊的处理(序列化和反序列化);其次(2)是版本问题,由于传统的面向对象设计思路并没有考虑类型的版本定义,这样在系统中某些类型进行重新部署或升级时,就会不可避免地产生错误,这无疑是模块之间耦合的一个表现。

        为了进一步降低降低系统内模块之间的耦合,面向服务(SOA)的思想应运而生。大约在2000年初,面向服务的设计思想正式被提出,用服务来作为系统的最基本模块。面向服务相对于面向对象而言,引入了技术无关性,平台无关性,进一步降低了模块与模块之间的耦合。就目前来说,SOA的思想非常适合企业系统的开发。但值得说明的是,在目前的主流设计中,服务的设计还保持在粗粒度的情况。而在服务内部,仍主要使用面向对象的思想来设计。

        再次回顾软件设计思想的发展过程,一个始终贯彻的规律是,软件设计思路的发展实现的是模块之间的解耦,但同时牺牲的是系统运行的效率。这条规律不仅适合用于过去,也同样适用于将来的发展趋势,设计思路的发展本质是用效率换取灵活性。而之所以以这样的规律进行发展,背后的原因是计算机硬件技术的不断发展。

 

                                 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章