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

1.5.6 软件设计的结果是一种折中与妥协

一个软件设计想在所有质量维度上都达到极致是很难做到的,甚至是不太可能做到的,因为软件设计的结果本身就是一种折中与妥协。

1.足够好

理论上,设计方案的质量越高越好,但在实践操作中还是要视工程环境而定。一方面,质量提升往往意味着建造成本的增加,但效益未必有非常明显的改善,所以出于对成本效益比的考虑,人们并不追求最好的质量而是足够好的质量。另一方面,质量有很多维度,它们之间有一些会互相冲突(例如安全性的提升可能会导致性能下降,性能改善可能会牺牲未来的可修改性,等等),选择提升哪些质量维度、牺牲哪些质量维度还要视具体工程情况来加以确定,这也是需求分析中要确定非功能需求的原因之一。

人们在实践中追求的是足够高质量的设计方案,而不是最高质量的设计方案,甚至可能根本就不存在最高质量的设计方案。足够高质量的基本要求是设计方案质量能够满足非功能需求,额外要求是在不恶化成本效益比的情况下尽量提升质量效果。

2.没有完美

设计师不仅需要在多质量维度之间取舍,还需要在功能、质量与审美三种特质之间进行折中和妥协。

用户、客户、产品经理、需求工程师等代表用户立场的人会要求产品有最出色的效用表现,但是实践中常常是打折扣的。例如,买火车票的人希望12306网站的购票功能最简单——一键购票,但工程师却不得不为了安全考虑让购票过程有些复杂。又如用户总希望能够一次看到所有的数据,但工程师却不得不因为性能因素将数据逐步展示。功能虽然不可或缺,但却常常会因为质量的考虑而打折扣。反之,为了更好的功能表现而在质量上打折扣的情况也并不鲜见。所以,功能与质量之间是要折中和妥协的。

审美与质量在大多数情况下是相互促进的,简洁、结构清晰、一致都可以极大地提升设计的易开发、可修改、可扩展、可复用等质量。但它们之间也可能会发生冲突,例如为了提高可修改性会将简单结构复杂化(策略模式),为了实现可扩展性将清晰结构模糊化(装饰模式),为了实现灵活性破坏一致性(桥接模式),等等。

总之,没有完美的设计方案,只有足够好的设计方案,它是在功能、质量(尤其是多质量维度之间)、审美之间折中和妥协的结果。 /h9Qf1oEJ22X8JXIH9HR+FJwX9/LWlYcW1KZSsEsilDiefyURqREjwaC0T4iTyWN

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