为什么结构化方法在分析和设计中存在鸿沟而面向对象能否有效解决?
全部1个回答
-
万鸡哥真想抽死你,咱别丢人丢到外边来行不行! 在结构化方法中,在分析和设计模块和模块之间的关系时,被紧紧局限于信息流,这限制了对模块之间众多关系的表达,也无法体现模块和模块之间其他的众多关系,包含各种各样的结构、行为、依赖、包含(在结构化设计中这种关系隐含在分层中)、继承、关联关系等等.它仅仅解决了模块在封装和信息隐藏方面的问题,出现了需求和设计之间的鸿沟. 再看面向对象设计方法,充分挖掘了“关系”的表达方式,可以尽可能的将事物之间复杂的关系予以体现,而这些关系是实现设计的关键.可以这样比喻目前为什么面向对象方法如此流行,记得小时候经常在各种杂志上看到许多这样的图画“一个钢球,从高处落下,击中某个翘起的装置,装置受到钢球的冲击,另一端抬起后,原来被截断的水流开始流通,并引发另一个设备开始工作……,最终在另一端的某个蜡烛被点燃”.这就是在工业时代,众多人被机械设计的灵巧和创意所深深吸引的其中一份图画.姑且不论这样的装置是否有实用价值,但它肯定带给构思者无限的快乐和想象力,以至于当时经常可以看到各种各样这样的图画.而面向对象的方法正是因使用对象的概念让设计更接近于上面的各种设备,而让机械设计时代的疯狂和无尽的创造力进入了软件工程师的视野.由于能够充分表达事物之间各种各样的关系(更接近于结构和行为方面),面对对象设计方法在今天创造了一个奇迹,各式各样巧妙的设计实现、设计模式的流行,几乎在永无止境的激发着爱好设计的人们的想象力和创造力,实现了分析和设计同需求的有效结合,跨越了这个鸿沟. 回到结构设计化方法上来,虽然很多人都说结构化设计和面向对象设计没有本质上的区别,那是因为某些关系依然可以通过转换映射到信息流上,但这毕竟绕了一个大弯,而且由于缺乏足够的表达各种关系的能力,极大的限制了软件设计者的想象力和创造力.结构化设计方法使用自顶向下的手段,通过Process的逐层分解来理解和构建系统,然后把Process分配给模块,这里的“分配”这几乎让每一个初次接触结构化设计方法的人大惑不解,似乎模块是Process分解的结果,甚至在如果已知了某些模块时又直接将模块映射成一个黑盒的Process,Process和模块究竟是什么关系?沿着这个思路,很容易陷进“鸡生蛋,蛋生鸡”的困境.而事实是,模块和Process的诞生,两者之间根本没有任何关联,都是独自根据经验所产生的.为什么会产生这
相关问题
-
【安顺万达广场】 买房时说一期和二期都是一样的设计!为啥一期有的配套设施二期一样也没有?
答: 一期分为A区和B区,都统称为一期,也就是我们的地块D3 ,园区内所有小区配套设施都是通用户通的,一边静区一边为动区的一个园林设计理念
-
【龙湖三千云锦】 设计风格是什么样的??
-
【西北设计院家属院】 这个小区有房出售吗?
答: 你好,小区有房源可以进行出售的。
-
【鸿华I尚城(商住楼)】 怎么全是这么奇怪的设计,厨房和卧室连通的,做饭一屋子的烟味啊!
答: 您好,平层的公寓基本上都是这样的设计,因为面积比较小,无法做独立的厨房可以做饭的时候在厨房哪一个透明的隔条,这样的话可以挡住油烟,希望能够帮助到您
-
雷士全屋光环境设计的原理是什么?
答: 方便,很科技,自助调节
-
新房马上要装修了,设计师推荐我选雷士全屋照明,靠谱吗?
答: 货比三家,建议您可以到实体店看看