简单地说,设计有逻辑设计和物理设计之分,它们的区分点在于载体介质。不考虑载体介质的设计是逻辑设计,考虑载体介质特征的设计是物理设计。一个服装裁剪与缝制方案就只是逻辑设计,再追加考虑布料的特点(质地、纹理等)才被视为物理设计。
逻辑设计只需要考虑理论上的合理性,所以更简单一些。物理设计不仅要具备理论上的合理性,更要保证可实现性,要保证有合格的载体介质,所以更复杂一些。例如航母、飞机、原子弹的逻辑设计固然复杂,但真正困难得是无法加工出理想的载体介质——特种材料。
软件也是一样,纯粹抽象的设计方案属于逻辑设计,更简单一些。考虑编程语言、实现平台、硬件环境等载体介质的设计方案属于物理设计,更复杂一些。实践中,开发者通常先进行逻辑设计实现理论方案,然后再过渡到物理设计考虑实现可行性,这种分两步进行的设计过程会更顺利一些。
如果逻辑结构与载体介质完美匹配,物理设计与逻辑设计就会完全等同,可以统一考虑。人们更需要注意的是大多数情况下逻辑结构与载体介质会有失配现象,这时就需要区分逻辑设计与物理设计,按照先逻辑后物理的过程进行软件设计。
在物理设计与逻辑设计不统一的情况下,因为设计方案总是要被实现的,所以介质的加工是不可能被忽视的,但是逻辑设计就未必能得到正确对待了。逻辑设计思路可能会被复杂的介质加工所掩盖,导致最终设计方案存在隐患。新手设计者学习设计方案时,更要区分逻辑设计和物理设计,才不至于混淆设计的目标和手段。