前言
为了提高综合客户满意度及不同质量属性的满意度,必须考虑计划和设计产品时的不同质量属性。
-- Stephen H.Kan,《软件质量工程》
质量属性很难定义,但它们经常可以区分产品是只完成了其应该完成的任务呢,还是使客户感到满意。......优秀的软件产品反映了这些竞争性质量属性的优化平衡。
-- Karl E.Wiegers, 《软件需求(第二版)》
软件行业发展到今天,依然比较年轻。一个有趣的印证就是我们经常拿自己的行业和其他行业类比 -- 今天类比建筑行业,明天类比汽车行业,后台类比拍电影。
我并不能确定把架构师和哪个职业相类比最适合,但或许,架构师最嫉妒的职业是拳击。人家的目标永远正确:打到对方。而架构师,却要面对纠结在一起的“需求”--需求不是一个攻击目标,而是一堆攻击目标,而是一堆可能不够明确、相互矛盾的目标。昨天、今天、甚至明天,都会有相同的故事在上演:笼统界定的“非功能目标”让软件工程师深感困惑......
这就是现状。
在这种状态之下,架构师不应“坐等”明确的需求,而是应该运用目标-场景-决策表等方法主动出击,设计成更有针对性的架构。
作为决策者,架构