软件设计不是一次性的活动,设计师需要逐层处理,渐进完成设计方案。这使得每一次的软件设计都要兼顾设计对象的外部表现和内部结构。
外部表现是从外部(黑箱)所观察到的一个设计对象或其部件的行为,通常更简洁、抽象。内部结构是从内部(白盒)所观察到的设计对象或其部件的组元结构,通常更具体、复杂。
对于一次软件设计任务来说,外部表现是事先指定、必须满足的,更多地体现效用因素。内部结构是需要设计师自行建立的,是设计师的主要工作内容,更多地体现坚固因素。外部表现和内部结构都需要美感,但外部表现更需要简洁,内部结构更需要结构清晰,二者都需要一致。
以收音机为例(如图1-10所示),左图是它的外部表现,简洁明了;右面两个图是它的内部结构,更复杂、细致。很明显,内部结构才是决定一个收音机坚固性的关键,通过外观是无法判定其坚固性的。
图1-10 收音机示例