《一线架构师实践指南》------CA小谈
概念架构(CA阶段)初次看到这个知识是非常模糊的概念,但是还是通过两个简单的例子对概念架构有了简单的认识。本书通过小张和老王的故事从两个方面阐述了概念架构的作用。小张是从重大需求中重塑概念架构,老王是从概念架构中寻找重大需求,进而满足客户的期望。这两个看上去差不多,但是其中的内涵却很不相同。
小张的例子,他是知道该做什么,怎么做。但是对于需求方面他又参透了很多独特的间接。就突然发现该PASS系统需要关注的点很多,所以不能直接开始设计模块以及接口。需要关注使用者,分工,集成等因素进行概念架构。他不要关注接口明确的定义。而是需要根据这些需求进行扩展,分析到底有什么是需要设计的,影响系统的因素有哪些。然后小张就针对不同因素一层一层进行分析,从而设计出比最开始版本更完善考虑更周全的架构。
老王的例子,他接受到的有效文档就一页通用文档,根本看不出这个架构是设计什么软件的。老王则从概念架构分析,这个项目需要什么需求,分析客户需要什么东西。不是盲目的实现,而且确定客户想要什么。在演讲之前老王就想到,不是分析纯技术,而是抓住客户担心的问题,然后再根据问题进行阐述实现策略。
那么什么是概念架构呢。我的理解是概念架构虽然满足组件+交互,但是我们不需要关注接口怎么实现,我们只需要分析系统如何交互,各个角色之间的关系,各个模块的职责,将这些划分清楚。
实现策略绘制鲁棒图,这样可以初步设计功能交互,还能检查用例规范。根据鲁棒图实现初步设计,只针对关键功能不要针对细节。然后进行高层分割,主要就是划分子系统,再分层设计,其次考虑非功能方面的需求,对系统软件进行完善。