前期我们针对架构准备阶段及需求分析这块我们写了2篇内容《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-上篇》《HRMS(人力资源管理系统)-从单机应用到SaaS应用-架构分析(功能性、非功能性、关键约束)-下篇》内容来展开说明。
本篇主将详细的阐述架构设计过程中概要架构设计要点来和大家共同交流,掌握后续如何强化概要架构设计在架构设计中作用,帮助我们快速确认架构的方向及核心大框架。
在阐述具体的概要架构工作方法之前,还请大家先参考我们限定的业务场景:
1、HRMS系统的介绍?(涵盖哪些功能?价值和作用是什么?行业什么情况?)
请阅读《HRMS(人力资源管理系统)-从单机应用到SaaS应用-系统介绍》
2、本章分析的内容将围绕4类企业代表的业务场景,(区分不同规模企业的关注点,规模将决定系统的设计方案)
本篇将围绕4类企业代表来阐述不同规模企业对于HRMS的需求及应用
A、100人以下的中小企业
B、500人以下的大中型企业
C、1000人以上的集团化大企业
D、全球类型的公司体系(几万人)
3、架构师在设计该系统时的职责及具备的核心能力是什么?
请阅读《系统架构系列-开篇介绍》
概念架构就是对系统设计的最初构想,就是把系统最关键的设计要素及交互机制确定下来,然后再考虑具体的技术应用,设计出实际架构。概念架构阶段主抓大局,不拘小节,不过分关注设计实现的细节内容。
概要架构阶段的特点:
Ø满足“架构=组件+交互”的基本定义(所有架构都逃离不了该模式)
Ø对高层组件的“职责”进行笼统界定,并给出高层组件的相互关系
Ø不应涉及接口细节
在讲具体的概要架构设计实践之前,请大家思考以下问题:
Ø不同系统的架构,为什么不同?
Ø架构设计中,应何时确立架构大方向的不同?(功能、质量、约束
架构设计是功能需求驱动的,对吗?
架构设计是用例驱动的,对吗?
实际上架构设计的驱动力:功能+质量+约束
1.2.2、误把“阶段”当“视图”概要架构阶段还是概念视图?
阶段体现先后关系,视图体现并列关系
概要架构阶段根据重大需求、特殊需求、高风险需求形成稳定的高层架构设计成果
概念架构是一个架构设计阶段,必须在细化架构设计阶段之前,针对重大需求,特色需求、高风险需求、形成文档的高层架构设计成果。
重大需求塑造概念架构,这里的重大需求涵盖功能、质量、约束等3类需求的关键内容。
如果只考虑功能需求来设计概念架构,将导致概念架构沦为“理想化的架构”,这个脆弱的架构不久就会面临“大改”的压力,甚至直接导致项目失败。
整体可分为3个阶段:
1、通过鲁棒图:初步设计的目标就是发现职责,运用“职责协作链”原理画鲁棒图
2、高层分割:运用成熟的经验及方法论,结合场景选择合适的架构模式来确定系统的层级关系
3、质疑驱动:考虑非功能性需求来不断驱动概要架构设计过程。
2.1、初步设计的目标就是发现职责,运用“职责协作链”原理画鲁棒图鲁棒图的三种对象:
•边界对象对模拟外部环境和未来系统之间的交互进行建模。边界对象负责接 收外部输入、处理内部内容的解释、并表达或传递相应的结果。
•控制对象对行为进行封装,描述用例中事件流的控制行为。
•实体对象对信息进行描述,它往往来自领域概念,和领域模型中的对象有良好的对应关系。
初步设计原则•初步设计的目标是“发现职责”,为高层切分奠定基础
•初步设计“不是”必须的,但当“待设计系统”对架构师而言并无太多直接 经验时,则强烈建议进行初步设计
•基于关键功能(而不是对所有功能)、借助鲁棒图(而不是序列图,序列图太细节)进行初 步设计