漫谈软件设计与分工协作

 

漫谈软件设计与分工协作

 

 

 

本节导读:

 

阐述“分工/协作”是世界万事万物进化发展的必然选择,也是软件设计首要指导思想,也是软件分层、分模块的理论依据。

 

对于从事软件行业的人来说,大部分人会经历软件架构设计,想尽可能的将软件设计的灵活、简单、好用,谈到软件设计我们经常会听到一些术语,比如:面向对象设计、设计模式,设计原则、分层思想等。但这些模式、原则起什么作用,为什么需要这些模式、原则,我们可能说是为了软件可阅读性,可维护性,可扩展性,为了程序解耦,为了模块化,为了插件化。但这是理由吗,这个理由能站得住脚吗藏在这些需求背后的是否有个“万有引力”在支配呢/span>

  

   
 

面向对象:

早期的计算机编程是基于面向过程的方法,例如实现算术运算1+1+2 = 4,通过设计一个算法就可以解决当时的问题。随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。

 

 
 

设计模式:

GOF23个设计模式,包括创建模式、结构模式、行为模式

 

 
 

设计原则:

开闭原则、李氏替换原则、依赖倒转原则、接口隔离原则、合成聚合服用、最小知识原则(迪米特法则)

 

 
 

分层思想:

TCP/IP七层模型,硬件软件分层,操作系统应用软件分层,WEB系统表现层业务层数据访问层分层

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    让我们的思绪回到中世纪,牛顿那个年代,那个年代的人们对于日月星辰的运转规律已经有比较准确认识,人们已经学会根据日月星辰的规律来指导生产生活实践,但是这个时代的人们仅仅是在利用规律,并不知道是什么在支配这些日月星辰的运转,直到牛顿出现,发现了万有引力,人类才利用万有引力将人造卫星送上天。

 

那么我们软件行业的很多规律、原则,比如上面提到的,面向对象开发、程序解耦、设计模式、设计原则、模块化,插件化,这些都是工作经验的总结,但我们为什么必须遵守这些规律和原则,这些规律和原则背后的万有引力是什么/span>

 

要解决这个问题,我们需要从计算机最初诞生说起,在第二次世界大战中,敌对双方都使用了飞机和火炮,猛烈轰炸对方军事目标。要想打得准,必须精确计算并绘制出射击图表。经查表确定炮口的角度,才能使射出去的炮弹正中飞行目标。但是,每一个数都要做几千次的四则运算才能得出来,十几个人用手摇机械计算机算几个月,才能完成一份图表。针对这种情况,人们开始研究把电子管作为电子开关来提高计算机的运算速度。许多科学家都参加了实验和研究,终于制成了世界上第一台电子计算机,起名为埃尼阿克

 

第一台计算机制造出来后,没有内存,电脑只负责计算,输入输出都要靠人,第一台计算机使用相当不方便,因此冯·诺依曼博士在此基础上提出了计算机“冯·诺依曼结构结构”,见下图:

下节导读:

 

阐述软件分工的原则,协作原则,从现实世界分工习惯来推导软件系统应该如何分工,指导软件系统如何解耦。

 

相关资源:win10,win11可用,智尊宝纺服装CAD制版软件,win7可用最新版9.74…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2015年1月12日
下一篇 2015年1月12日

相关推荐