之前就听说过架构师这个工作,总是觉得非常的高大上,并且薪资待遇也好,也是我认为一直遥不可及的、梦寐以求的工作,但是
仔细想一想,其实都是人,说不定我也可以胜任这份工作,现在不行,但是以后还是有可能的。
Pre-architecture的定义
Pre-architecture就是架构设计的最前期阶段,其工作目标包括:理解需求、建立需求大局观确定架构设计方向等。
Pre-architecture阶段虽然是铺垫性质的阶段,但对架构实践而言意义重大。
Pre-Architecture:准备架构
准备架构阶段,最最重要的是弄清楚要做什么东西,即掌握用户需求。应该来说,整个准备阶段都围绕着“需求”来转。
描述为如下过程:需求-->约束-->质量-->关键功能
1.需求
业务级需求:包含客户或出资者要达到的业务目标、预期投资、工期要求,以及要符合哪些标准、对哪些遗留系统进行整合等约束条件;
用户级需求:用户使用系统来辅助完成哪些工作?对质量要求如何?用户群及所处的使用环境方面有何特殊要求?
开发级需求:开发人员需要实现什么?开发期间、维护期间有何质量考虑?开发团队的哪些情况会反过来影响架构?
2.约束
前面说了,整个阶段都是围绕“需求”来转,接下来的“约束”、“质量”都是对需求做限制的。那么何为“约束”?
约束:制约项目发展的因素。
首先,约束来自与需求又制约需求,比如“用户级需求”中提到了“用户群特点”的约束,就说明,本产品必须要考虑针对哪些用户群来做,要做一个儿童教育软件,就不应涉及成人的复杂理论和逻辑。这就是约束!
3.质量
质量,类似于“约束”,它更重视某一事物具备的属性。当然,有些时候可以把质量属性来当做约束,比如可移植性,可以把它看做是质量也可以当做一种约束来看。
4 关键功能
关键功能包含如下四个方面:1.核心功能;2.必做功能;3.高风险功能;4.独特功能。
五大视图
即逻辑视图、开发视图、运行视图、物理视图、数据视图。
5个视图各自“思维立足点”:
职责划分(逻辑视图)。
程序单元组织(开发视图)。
控制流组织(运行视图)。
物理节点安排(物理视图)。
持久化设计(数据视图)。