如何开展软件架构之概念架构
到目前为止,我们已经完成了需求的分析过程,总结来说,主要的步聚是
一)需求结构化,
二)分析约束影响
三)重点关注质量需求。
那么接下来的阶段则是系统的概念架构了,这也许是大家最感兴趣的话题,前面提到系统的多层架构,各层之间相互隔离,下层提供服务而不知道上层应用,上层也只通过接口与下层交互,每一层的修改均不会影响其它层的逻辑,看上去有多华丽就有多华丽!
但是真正开始系统架构时,却有无从下手无力感,为啥?因为你注意到软件的概念架构最主要的任务就是将系统按照某作规则划分成各种子系统,确定各子系统之间的协作,为下一阶段的细化设计奠定基础。
系统划分的规则主要有三类:
1:按逻辑分割
2:按物理部署分割
3:按通用性分割
而三层架构也正是按逻辑分割的体现。
简单地说,要对系统进行分割,我们必须明确系统有哪些职责,在明确职责之后,再将相似或相近的划分至各层中。
在需求分析阶段我们了解了系统需要实现的功能,但仅基于此,却难以支撑我们确定职责。在需求用例与功能职责之间还需要一座桥,那就是鲁棒图。
如前文提到的查看签到记录用例,通过绘制鲁棒图,我们发现了很多用例中没有体现的对象及相互之间的交互。系统分割正是基于此时发现的职责来进行割分的。