[架构之路-99]:《软件架构设计:程序员向架构师转型必备》-9-确定关键性需求与决定系统架构的因素

news2025/1/16 13:52:39

第9章 确定关键性需求与决定系统架构的因素

9.1 概念架构是什么

9.1.1 概念架构是直指目标的设计思想、重大选择

9.1.2 案例1:汽车电子AUTOSAR——跨平台复用

NA

9.1.3 案例2:腾讯QQvideo架构——高性能

NA

9.1.4 案例3:微软MFC架构——简化开发

NA

9.2 概念架构设计概述

9.2.1 “关键需求”进,“概念架构”出

9.2.2 概念架构≠理想化架构

9.2.3 概念架构≠细化架构

9.3 左手功能——概念架构设计(上)

9.3.1 什么样的鸿沟,架什么样的桥

9.3.2 鲁棒图“是什么”

9.3.3 鲁棒图“画什么”

  • 应用程序层由特定于此应用程序的那些元素组成。 所以这将包含UI,UI的后端处理以及应用程序和业务逻辑层之间的任何绑定。 在完美的世界里,这个层不会包含任何业务领域的逻辑,纯粹的软件编程

  • 业务逻辑层(BLL)包含特定于业务领域的逻辑,与特定的业务领域强相关。 另外,如果要创build一个单独的BLL,该层应该包含其他应用程序可以使用的逻辑以及这个逻辑。 例如,一组Web服务暴露了一个定义良好的API。 这将BLL与您的应用程序分离开来,并使您可以灵活地在将来构build其他应用程序。

  • 业务层负责业务决策和涉及客户协议的逻辑。

  • 应用程序层是与业务决策无关的原始进程。

9.3.4 鲁棒图“怎么画”

9.4 右手质量——概念架构设计(下)

9.4.1 再谈什么样的鸿沟,架什么样的桥

9.4.2 场景思维

笼统需求 =》 场景描述 =》 概念设计

在上图中:

指标目标:笼统性的质量需求

场景:明确性的路径

设计决策:根据明确的路径,明确设计决策,以满足笼统的质量要求。

备注:

场景思维的本质是把笼统的质量需求,转换“功能性、场景性、明确化、具体化“需求。

在特定的场景中,体现质量需求!!!

9.4.3 场景思维的工具

备注:

把质量需求转换成特定的场景,原本是需求分析师的责任。

但在现实中,很多需求分析师,只给出功能性需求,非功能性需求都是架构师去挖掘的,更谈不上需求分析师把非功能性需求转换成场景了。这个活,就落在了架构师的身上,如果架构师也没有进行转换,就只能靠程序之间的造化了。

备注:

上述的箭头反应了反向的作用力的过程。

而概念设计时,正好是相反的,即:目标需求,如质量属性 =》分解成质量场景 =》设计决策,决定哪些场景是支持的,哪些场景是不支持的。

9.4.4 目标—场景—决策表应用举例

备注:

在某个场景下,可以有很多if....then.....子场景。

9.5 概念架构设计实践要领

9.5.1 要领1:功能需求与质量需求并重

9.5.2 要领2:概念架构设计的1个决定、4个选择

9.5.3 要领3:备选设计

9.6 实际应用(7)——PM Suite贯穿案例之概念架构设计

9.6.1 第1步:通过初步设计,探索架构风格和高层分割

9.6.2 第2步:选择架构风格,划分顶级子系统

9.6.3 第3步:开发技术、集成技术与二次开发技术的选型

9.6.4 第4步:评审3个备选架构,敲定概念架构方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/198109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

断网后,是否能够ping通127.0.0.1?

引言 说起这个问题很搞笑,其实也是挺有意思的。是这么回事,公司突然断网了,有人突然来了一句,断网了,能不能ping通127.0.0.1呢?大家就实验起来了! 结果显而易见,如上图,…

什么时候可以不进行测试?

如果存在任何原因导致不需要使用测试结果提供的信息,就没有必要进行测试。测试得到的信息不可靠,也没有必要测试。 1、测试后风险增加 软件行业的经理经常需要做出带风险的决定,通常在获得部分信息的情况下做出决定是比较保险的。但有些时候…

沿着数字中国的大江大河,领略云上三峡

长年以来,提到沿江旅行,国人脑海中浮现的画面一定是三峡。而在今天,沿着数字中国的大江大河溯源而上,也会看到一座云上三峡。郦道元在《水经注》里是这样描写三峡的“至于夏水襄陵,沿溯阻绝。有时朝发白帝,…

Docker - 11. 本地镜像发布到私有库

1. 为什么要有私有库? 如果涉及到公司机密文件,使用DockerHub、阿里云这样的公共镜像仓库就不合适,所以需要创建一个本地私人仓库提供给团队使用,基于公司内部项目构建镜像。而 Docker Registry是官方提供的工具,可以…

【技术应用】java实现排行榜方案

【技术应用】java实现排行榜方案一、前言二、实现方案方案一、通过数据库实现方案二、通过集合List实现数据排序功能方案三、通过redis的zset实现方案四、通过java中的sortedSet集合实现方案五、通过java的priorityQueue队列实现一、前言 最近在做一个项目的性能优化&#xff…

12、获取字符串信息

目录 一、获取字符串长度 二、字符串查找 (1)indexOf(String s) (2)lastIndexOf(String str) 三、获取指定索引位置的字符 一、获取字符串长度 使用String类的length()方法可获取声明的字符串对象的长度。 语法如下&#x…

Linux Centos9 Stream 安装mysql8

安装mysql8教程前言安装Mysql8.0使用Mysql yum 存储库进行安装。安装mysql8.0启动mysql 服务创建用户完成安装使用Navicat 连接刚装好的mysql如果博主的文章对您有所帮助,可以评论、点赞、收藏,支持一下博主!!!前言 操作系统:Linux Centos9 …

JAVA-Spring Bean作用域

目录 基本概念 Bean 作用域 spring支持的bean作用域有哪些? 近日研究Spring和SpringBoot的一些内容,给大家做一些分享,请大家多多提出您的宝贵意见。 学习知识要了解其涉及到的基本概念,才能理解这个知识,并且做到…

八种排序算法

文章目录1、冒泡排序1.基本思路2.代码实现3.时间复杂度和空间复杂度2、快速排序1.基本思路2.代码实现3.时间复杂度和空间复杂度3、直接插入1.基本思路2.代码实现3.时间复杂度和空间复杂度4、希尔排序1.基本思路2.代码实现3.时间复杂度和空间复杂度5、简单选择1.基本思路2.代码实…

数据库管理系统有哪些

文章目录RDBMS非RDBMSDocumentKey-valueGraphhttps://db-engines.com/en/ranking该网站根据各 DBMS的流行度,列出了它们的排名,每月更新一次。当前是2023年2月份的排名。DataBase Model这一列中显示了各 DBMS所使用的 数据模型,有的使用了单个…

SpringAMQP从0到1

初识MQ 同步和异步通讯 微服务间通讯有同步和异步两种方式: 同步通讯:就像打电话,需要实时响应。 异步通讯:就像发邮件,不需要马上回复。 两种方式各有优劣,打电话可以立即得到响应,但是你却…

Redis最佳实践 | 黑马Redis高级篇

目录 一、Redis键值设计 1、优雅的key结构 2、BigKey问题 什么是BigKey BigKey的危害 如何发现BigKey 如何删除BigKey 3、恰当的数据类型 二、批处理优化 1、Pipeline 大量数据导入的方式 MSET Pipeline 2、集群下的批处理 三、服务端优化 1、持久化配置 2、慢…

MyBatis案例 | 使用映射配置文件实现CRUD操作——多条件查询

本专栏主要是记录学习完JavaSE后学习JavaWeb部分的一些知识点总结以及遇到的一些问题等,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥JavaWeb Java入门篇: 🔥Java基础学习篇 Java进阶学习篇&…

【论文阅读】Exathlon: A Benchmark for Explainable Anomaly Detection over Time Series

论文来源 标题: Exathlon: A Benchmark for Explainable Anomaly Detection over Time Series (Vincent Jacob,2021) 作者: Vincent Jacob, Fei Song, Arnaud Stiegler, Bijan Rad, Yanlei Diao, Nesime Tatbul 期刊: Proceedings of the VLDB Endowment 研究问题 Exathlon是…

尚医通(三)医院设置模块后端 | swagger | 统一日志 | 统一返回结果

目录一、医院设置模块需求二、医院设置表结构三、医院模块配置四、医院查询功能1、创建包结构,创建SpringBoot启动类2、编写controller代码3、创建SpringBoot配置类5、运行启动类6、统一返回的json时间格式五、医院设置逻辑删除功能1、HospitalSetController添加删除…

CDA Level Ⅱ 模拟题(二)

练习题 【单选题】1/20 一项针对全国25-35岁用户群的手机喜好调查,但调研项目经费大概是10万元,并且用户群相对集中在中国中部城市。前期预调研显示,用户群的数值方差和调研费用不等。以下哪种情况是比较适宜的调查方式? A.简单随…

【C++入门】

目录1、命名空间1.1、命名空间定义1.2、命名空间的使用2、C输入和输出3、缺省参数3.1 缺省参数概念3.2缺省参数分类4、函数重载4.1、函数重载概念4.2 C支持函数重载的原理--名字修饰5、引用5.1、引用概念5.2、引用特性5.3、常引用5.4、使用场景5.5、传值、传引用效率比较5.6、引…

【JavaEE】如何构造 HTTP请求认识HTTPS

✨哈喽,进来的小伙伴们,你们好耶!✨ 🛰️🛰️系列专栏:【JavaEE】 ✈️✈️本篇内容:如何构造 HTTP 请求同时认识HTTPS! 🚀🚀代码存放仓库gitee:JavaEE代码! …

HW在即,那些被遗忘的物理安全还好吗?

近段时间,一个网络攻击的段子在互联网上火了起来。 “某公司被黑客勒索,每20分钟断一次网,给公司带来了极其严重的影响,但通过技术手段怎么也找不到问题。最后公司发现是黑客买通了保安,每20分钟拔一次网线。” 看完…

即时通讯系列---如何设计消息协议层方案

1. 前言 上篇即时通讯系列—如何下手做技术方案设计 最后总结出IM系统的端侧基本结构 后续文章将从下到上以此做架构设计. 本文Agenda 什么是消息同步同步协议的常见设计方案包含哪些应该采用哪种方案方案细节 2. 名词定义: 消息漫游 : 用户如何从消息服务器获取会话和消息…