[架构之路-99]:《软件架构设计:程序员向架构师转型必备》-9-确定关键性需求与决定系统架构的因素
Posted 文火冰糖的硅基工坊
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[架构之路-99]:《软件架构设计:程序员向架构师转型必备》-9-确定关键性需求与决定系统架构的因素相关的知识,希望对你有一定的参考价值。
第9章 确定关键性需求与决定系统架构的因素
9.1 概念架构是什么
![](https://image.cha138.com/20230216/7bc4566c80504b36ac2d3181ee5a3276.jpg)
![](https://image.cha138.com/20230216/914cb13fd28346878b701b64ee6e53ff.jpg)
![](https://image.cha138.com/20230216/020beaa1e638447697b165a6df8837d0.jpg)
![](https://image.cha138.com/20230216/bc811daac3db4cfb83ba34702a7c77d2.jpg)
9.1.1 概念架构是直指目标的设计思想、重大选择
![](https://image.cha138.com/20230216/7af9ffaf9024402db00237fe2d0af739.jpg)
![](https://image.cha138.com/20230216/a4faceb264b047e1949063fac8f6155e.jpg)
9.1.2 案例1:汽车电子AUTOSAR——跨平台复用
NA
9.1.3 案例2:腾讯QQvideo架构——高性能
NA
9.1.4 案例3:微软MFC架构——简化开发
NA
9.2 概念架构设计概述
9.2.1 “关键需求”进,“概念架构”出
![](https://image.cha138.com/20230216/6cddeaf335b345dd816bda472d1051e4.jpg)
![](https://image.cha138.com/20230216/a4769561437b43dfad6832d8234c28d6.jpg)
9.2.2 概念架构≠理想化架构
![](https://image.cha138.com/20230216/73c78a209b1d42819537cdb1a6c670b8.jpg)
9.2.3 概念架构≠细化架构
![](https://image.cha138.com/20230216/04ff164258234a50804948bb529eb9c2.jpg)
![](https://image.cha138.com/20230216/2c14510f19034c429e29894594e6c58d.jpg)
9.3 左手功能——概念架构设计(上)
![](https://image.cha138.com/20230216/30ade3d2daa94bbb834aaa6590e11fdb.jpg)
9.3.1 什么样的鸿沟,架什么样的桥
![](https://image.cha138.com/20230216/a1ce1440ab074ec887671e69f2d410c3.jpg)
9.3.2 鲁棒图“是什么”
![](https://image.cha138.com/20230216/b482f5ecca174d3497702b2e00c2026d.jpg)
9.3.3 鲁棒图“画什么”
![](https://image.cha138.com/20230216/b4df56d27c364f1dbc1eb9f5e8da0321.jpg)
![](https://image.cha138.com/20230216/18ebaed6dd7c4ebe969ce4d559801a12.jpg)
![](https://image.cha138.com/20230216/0c6635990f3c4371bd3b906b119d5d54.jpg)
应用程序层由特定于此应用程序的那些元素组成。 所以这将包含UI,UI的后端处理以及应用程序和业务逻辑层之间的任何绑定。 在完美的世界里,这个层不会包含任何业务领域的逻辑,纯粹的软件编程。
业务逻辑层(BLL)包含特定于业务领域的逻辑,与特定的业务领域强相关。 另外,如果要创build一个单独的BLL,该层应该包含其他应用程序可以使用的逻辑以及这个逻辑。 例如,一组Web服务暴露了一个定义良好的API。 这将BLL与您的应用程序分离开来,并使您可以灵活地在将来构build其他应用程序。
业务层负责业务决策和涉及客户协议的逻辑。
应用程序层是与业务决策无关的原始进程。
![](https://image.cha138.com/20230216/3affcadf23a54998ab7be73b7c2aeb96.jpg)
9.3.4 鲁棒图“怎么画”
![](https://image.cha138.com/20230216/e603cd2a668a4fe3905a747deb8a79d6.jpg)
![](https://image.cha138.com/20230216/91656f0d571b46cf9df87ec3f7892697.jpg)
![](https://image.cha138.com/20230216/88992d2cbfc04c2a838e2397ee2de182.jpg)
![](https://image.cha138.com/20230216/a25b832b9457458aaa1983777a728a7d.jpg)
![](https://image.cha138.com/20230216/f8a13db211324b369b2d3796b9a81ad7.jpg)
![](https://image.cha138.com/20230216/38b76fe19d8d45efb8545eef549635d8.jpg)
![](https://image.cha138.com/20230216/76e8e959f9944bbfb8ca75463d905df2.jpg)
9.4 右手质量——概念架构设计(下)
![](https://image.cha138.com/20230216/5dcf105c0d4643539593b53fb13dcce1.jpg)
9.4.1 再谈什么样的鸿沟,架什么样的桥
![](https://image.cha138.com/20230216/e92356a7e76f416a9d658761f9fd753e.jpg)
9.4.2 场景思维
笼统需求 =》 场景描述 =》 概念设计
![](https://image.cha138.com/20230216/ecc35588cdd543dfa647b59119e2b962.jpg)
在上图中:
指标目标:笼统性的质量需求
场景:明确性的路径
设计决策:根据明确的路径,明确设计决策,以满足笼统的质量要求。
备注:
场景思维的本质是把笼统的质量需求,转换“功能性、场景性、明确化、具体化“需求。
在特定的场景中,体现质量需求!!!
9.4.3 场景思维的工具
![](https://image.cha138.com/20230216/43e39a56c4994667a7c8e800f059453f.jpg)
备注:
把质量需求转换成特定的场景,原本是需求分析师的责任。
但在现实中,很多需求分析师,只给出功能性需求,非功能性需求都是架构师去挖掘的,更谈不上需求分析师把非功能性需求转换成场景了。这个活,就落在了架构师的身上,如果架构师也没有进行转换,就只能靠程序之间的造化了。
![](https://image.cha138.com/20230216/54934eaa79d64cbdbfda3b337b5252f4.jpg)
备注:
上述的箭头反应了反向的作用力的过程。
而概念设计时,正好是相反的,即:目标需求,如质量属性 =》分解成质量场景 =》设计决策,决定哪些场景是支持的,哪些场景是不支持的。
![](https://image.cha138.com/20230216/84bb0b487c39447bb1fe0bc5a7cbc7ba.jpg)
9.4.4 目标—场景—决策表应用举例
![](https://image.cha138.com/20230216/3e4d35c4d488483386f2c903514783fe.jpg)
![](https://image.cha138.com/20230216/3075a7f6457540709358043cc416a29f.jpg)
备注:
在某个场景下,可以有很多if....then.....子场景。
![](https://image.cha138.com/20230216/d5563cb738ec4007a3e2039cbda4edfe.jpg)
9.5 概念架构设计实践要领
9.5.1 要领1:功能需求与质量需求并重
![](https://image.cha138.com/20230216/ac0d6cd4c1164b949cb81b8b694cdaf2.jpg)
9.5.2 要领2:概念架构设计的1个决定、4个选择
![](https://image.cha138.com/20230216/525351d00b214970b0a3e66375e965fc.jpg)
![](https://image.cha138.com/20230216/fc4d5bc6a1f74bb09e0ff7dd89504174.jpg)
9.5.3 要领3:备选设计
![](https://image.cha138.com/20230216/e1b3eb212fb44c1889cd87b45a51fbd5.jpg)
9.6 实际应用(7)——PM Suite贯穿案例之概念架构设计
9.6.1 第1步:通过初步设计,探索架构风格和高层分割
9.6.2 第2步:选择架构风格,划分顶级子系统
9.6.3 第3步:开发技术、集成技术与二次开发技术的选型
9.6.4 第4步:评审3个备选架构,敲定概念架构方案
以上是关于[架构之路-99]:《软件架构设计:程序员向架构师转型必备》-9-确定关键性需求与决定系统架构的因素的主要内容,如果未能解决你的问题,请参考以下文章
[架构之路-94]:《软件架构设计:程序员向架构师转型必备》-4-软件架构设计的通用过程
[架构之路-94]:《软件架构设计:程序员向架构师转型必备》-4-软件架构设计的通用过程
[架构之路-92]:《软件架构设计:程序员向架构师转型必备》-2-解析软件架构的概念
[架构之路-92]:《软件架构设计:程序员向架构师转型必备》-2-解析软件架构的概念