一线架构师实践指南阅读体会_需求之于架构
架构设计是由需求驱动,而非模型驱动。架构师是公认的技术高手,但不代表架构师就不需要懂需求。软件架构师,可以不是需求捕获或《需求规格说明书》编写的专家,但他一定应该在需求分类、需求折衷和需求变更的研究方面是专家。
软件需求分为功能需求、质量属性(非功能需求)和设计约束三部分。各部分对架构设计的影响如下。
功能需求:功能是发现职责的依据,每个功能是都是由一条“职责协作链”完成的,架构师通过为功能规划职责协作链、将职责分配到子系统、为子系统界定接口、确定基于接口的交互机制,来推动架构设计的进行;
质量属性(非功能需求):质量是完善架构设计的动力,基于当前的架构设计中间成果,进一步考虑具体质量要求,对架构设计中间成果进行细化、调整、甚至推倒重来,一步步地使架构设计完善起来。质量和功能共同影响架构设计,抛开功能,单依据质量要求设计架构是不可能的;
设计约束:可分为直接制约设计决策的约束,转化为功能需求的约束,转换为质量属性需求的约束。
ADMEMS是一套软件架构设计的方法体系,通过3个阶段和1个贯穿环节,来覆盖“需求进,架构出”的架构设计完整工作内容。其中Pre-architecture阶段通过全面地理解需求、建立需求大局观、确定架构设计方向,为后期的CA阶段和RA阶段的执行提供了基础。
以上是对相关知识的简单梳理,个人觉得不管是高层次的架构设计也好,还是最简单的功能实现也罢,对需求的把握都是至关重要的。需求才是我们付出所有努力想要达到的目的,脱离了需求,就是“答非所问”。同样,大多的反复和变更都是因为对需求的把握不够精准,因此我们要给予需求足够的重视。
一点个人见解,若有偏差,望批评指正。