《一线架构师实践指南》第三章Refined Architecture阶段学习总结

此次博客写的是自己对学习《一线架构师实践指南》第三章Refined Architecture阶段的一些总结。

首先文章开头就问了一句什么是Pre-architecture书中说道Pre-architecture就是架构设计的最前期阶段,其工作目标包括:理解需求、建立需求大局观、确定架构设计方向等

然后又提到作为一名软件架构师需求理解的大局观有效处理互相矛盾的需求目标;识别重大需求、特色需求、高风险需求;相对短的时间内设计出一套正确且有效的架构等等

不仅需建立需求大局观还要学会降低架构失败风险因为作为架构师我们往往在需求的理解、权衡、取舍和补充这些方面能力严重不足。

在做任何架构设计时都要记住尽早开始架构设计Pre-architecture阶段的好处:能够在需求没有“全面完成”的情况下开始架构设计。为了尽早开始架构设计,需要做好:让架构师参与需求分析工作;不能被动地等待完善的《软件需求规则说明书》出现的那一刻。只要满足下面3个条件就可以开始架构设计工作:

1有了明确的业务需求:必须保证甲、乙双方就建设系统的目标达成共识,《愿景文档》经过正式评审,并且明确了投资、工期标准、整合等约束条件;

2了解全面的用户需求:系统能帮助用户干什么、不能干什么已经非常明确。如果采用用例技术,表现为“用例图”比较完善,没明显遗漏;

3有了典型的行为需求;如果采用用例技术,表现为核心功能的《用例约束》已经定义

在开始进行架构设计之后作为软件架构师我们需要很快明确架构设计的“驱动力”是什么,在关注《软件需求规格说明书》的同时,必须还要关注其他很多因素,最终理性地确定真正的架构设计“驱动力”。书中给我们指出了一些实践要领

1不同需求影响架构的不同原理,才是架构设计思维的基础

2“需求决定架构”是对的,但不同需求影响架构的不同原理,才是架构设计思维的基础。

3不同需求是如何以不同原理影响架构设计:

在学习本章的过程中我觉得本章中最重要的知识点就是确定关键质量”。书中告诉了我们确定关键质量目标意义是:指定错误的质量属性目标(包括遗漏重要的质量属性),将面临客户不满、项目返工、同事抱怨……

确定关键质量主要完成以下两点:

1根据系统所在领域的特点及系统规模等因素,确定架构设计重点支持哪些质量属性(例如高性能、可扩展性…)

2分析上述质量属性之间的制约关系,第一时间指定权衡折衷的具体策略(例如明确高性能是第一位,可扩展性和高性能相矛盾时应照顾高性能要求,是否引入支持可扩展性的涉及需经过架构组评审)

确定关键质量我们必须遵守5大原则

1分类合适+必要扩充

2考虑多方涉众

3检查性思维

4识别矛盾+划定优先级

5严格程度符合领域和规模特点

 

此次博客写的是自己对学习《一线架构师实践指南》第三章Refined Architecture阶段的一些总结。

首先文章开头就为了一句什么是Pre-architecture书中说道Pre-architecture就是架构设计的最前期阶段,其工作目标包括:理解需求、建立需求大局观、确定架构设计方向等

然后又提到作为一名软件架构师需求理解的大局观有效处理互相矛盾的需求目标;识别重大需求、特色需求、高风险需求;相对短的时间内设计出一套正确且有效的架构等等

不仅需建立需求大局观还要学会降低架构失败风险因为作为架构师我们往往在需求的理解、权衡、取舍和补充这些方面能力严重不足。

在做任何架构设计时都要记住尽早开始架构设计Pre-architecture阶段的好处:能够在需求没有“全面完成”的情况下开始架构设计。为了尽早开始架构设计,需要做好:让架构师参与需求分析工作;不能被动地等待完善的《软件需求规则说明书》出现的那一刻。只要满足下面3个条件就可以开始架构设计工作:

1有了明确的业务需求:必须保证甲、乙双方就建设系统的目标达成共识,《愿景文档》经过正式评审,并且明确了投资、工期标准、整合等约束条件;

2了解全面的用户需求:系统能帮助用户干什么、不能干什么已经非常明确。如果采用用例技术,表现为“用例图”比较完善,没明显遗漏;

3有了典型的行为需求;如果采用用例技术,表现为核心功能的《用例约束》已经定义

在开始进行架构设计之后作为软件架构师我们需要很快明确架构设计的“驱动力”是什么,在关注《软件需求规格说明书》的同时,必须还要关注其他很多因素,最终理性地确定真正的架构设计“驱动力”。书中给我们指出了一些实践要领

1不同需求影响架构的不同原理,才是架构设计思维的基础

2“需求决定架构”是对的,但不同需求影响架构的不同原理,才是架构设计思维的基础。

3不同需求是如何以不同原理影响架构设计:

在学习本章的过程中我觉得本章中最重要的知识点就是确定关键质量”。书中告诉了我们确定关键质量目标意义是:指定错误的质量属性目标(包括遗漏重要的质量属性),将面临客户不满、项目返工、同事抱怨……

确定关键质量主要完成以下两点:

1根据系统所在领域的特点及系统规模等因素,确定架构设计重点支持哪些质量属性(例如高性能、可扩展性…)

2分析上述质量属性之间的制约关系,第一时间指定权衡折衷的具体策略(例如明确高性能是第一位,可扩展性和高性能相矛盾时应照顾高性能要求,是否引入支持可扩展性的涉及需经过架构组评审)

确定关键质量我们必须遵守5大原则

1分类合适+必要扩充

2考虑多方涉众

3检查性思维

4识别矛盾+划定优先级

5严格程度符合领域和规模特点

猜你喜欢

转载自www.cnblogs.com/lover995/p/12670269.html