购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.7 逻辑设计与物理设计

1.7.1 载体介质及其匹配

设计方案可能是纯粹逻辑的,例如一个桌子的几何图案、一件衣服的设计图。但设计方案总是要实现的,这时它们就需要找到承载的介质,例如木料、服装面料。如果介质非常理想,自然是很好的,但更多的时候介质还需要进行加工处理才能完全承载设计的实现。例如,自然界中没有方方正正的树,总是需要加工才能形成可用的木料。

软件设计方案可能是纯粹逻辑的,也可能需要考虑载体介质,软件设计方案的载体介质主要是程序设计语言。例如,一个设计方案需要匹配表达式中的“(”和“)”,一个自然的思路是使用堆栈结构进行处理,但是在编写程序时,很多语言都没有提供堆栈这一抽象类型,需要程序员使用数组或者链表进行封装,建立堆栈类型,然后再基于堆栈类型解决表达式中“(”和“)”的匹配,这时数组/链表被封装为堆栈类型就是对载体介质的加工过程,使用堆栈解决“(”和“)”匹配的部分是纯粹逻辑的。

一个软件设计会因为它的纯粹逻辑结构而带有一定的逻辑复杂度,建立纯粹逻辑结构的设计称为逻辑设计。如果一个软件设计方案需要加工其载体介质才能实现逻辑结构,那么对载体介质的加工形成的复杂度就被称为介质匹配复杂度,它实质上反映了逻辑结构与载体介质的不适应程度。包含了介质匹配的设计称为物理设计。很明显,物理设计包含了逻辑设计,是“逻辑设计+介质匹配”。 NMQdVmrMnBzeecRhOiX1bgVO5ui7SWZeI2M74X2EZxHfxvFKI/sa1MFP3kK7LwVs



1.7.2 区分逻辑设计与物理设计

简单地说,设计有逻辑设计和物理设计之分,它们的区分点在于载体介质。不考虑载体介质的设计是逻辑设计,考虑载体介质特征的设计是物理设计。一个服装裁剪与缝制方案就只是逻辑设计,再追加考虑布料的特点(质地、纹理等)才被视为物理设计。

逻辑设计只需要考虑理论上的合理性,所以更简单一些。物理设计不仅要具备理论上的合理性,更要保证可实现性,要保证有合格的载体介质,所以更复杂一些。例如航母、飞机、原子弹的逻辑设计固然复杂,但真正困难得是无法加工出理想的载体介质——特种材料。

软件也是一样,纯粹抽象的设计方案属于逻辑设计,更简单一些。考虑编程语言、实现平台、硬件环境等载体介质的设计方案属于物理设计,更复杂一些。实践中,开发者通常先进行逻辑设计实现理论方案,然后再过渡到物理设计考虑实现可行性,这种分两步进行的设计过程会更顺利一些。

如果逻辑结构与载体介质完美匹配,物理设计与逻辑设计就会完全等同,可以统一考虑。人们更需要注意的是大多数情况下逻辑结构与载体介质会有失配现象,这时就需要区分逻辑设计与物理设计,按照先逻辑后物理的过程进行软件设计。

在物理设计与逻辑设计不统一的情况下,因为设计方案总是要被实现的,所以介质的加工是不可能被忽视的,但是逻辑设计就未必能得到正确对待了。逻辑设计思路可能会被复杂的介质加工所掩盖,导致最终设计方案存在隐患。新手设计者学习设计方案时,更要区分逻辑设计和物理设计,才不至于混淆设计的目标和手段。 NMQdVmrMnBzeecRhOiX1bgVO5ui7SWZeI2M74X2EZxHfxvFKI/sa1MFP3kK7LwVs

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开