什么是概念架构

概念性架构界定系统的高层组件,以及它们之间的关系。概念性架构意在对系统进行适当分解,而不陷入细节。借此,可以与管理人员、市场人员、用户等非技术人员交流架构。概念性架构规定了每个组件的非正式规约及架构图,但不涉及接口细节。

实际意义

1.不同系统的架构,为什么不同?
需求不同,所以架构不同。这里需求包括了功能、质量、约束等方面。

2.架构设计中,应何时确立架构大方向的不同?
进行概念架构设计时应确立架构大方向。架构设计贵在有针对性,概念架构针对重大需求、特色需求、高风险需求的要求,给出高层次的解决方案——这就是概念架构的最重要意义。

实践要领

重大需求塑造概念架构
ADMEMS方法Conceptual Arch阶段核心理念:重大需求塑造概念架构,这里重大需求应涵盖功能需求、质量及约束3类需求的关键部分。


概念架构阶段的3个步骤
1.初步设计。基于关键功能,借助鲁棒图进行以发现职责为目的的初步设计。
2.高层分割。对系统这个黑盒子进行高层切分,例如切分复杂系统为多个二级系统,或者直接切分系统为具体子系统。
3.考虑非功能需求


初步设计

初步设计对复杂系统的意义
1.架构师只有在设计复杂系统(或涉及不熟悉的领域,感受“挺复杂”)时才需要初步设计。
2.初步设计的目标:发现职责。无须展开架构设计细节。
后续的架构实际工作必然以初步设计为基础。

鲁棒图简介

鲁棒图包括3种元素,分别是边界对象、控制对象、实体对象:
边界对象对模拟外部环境和未来系统之间的交互进行建模。边界对象负责接收外部输入,处理内部内容的解释,并表达或传递响应的结果。
控制对象对行为进行封装,描述用例中事件流的控制行为。
实体对象对信息进行描述。


例如


基于鲁棒图进行初步设计的10条经验
1.遵守建模规则


2.简化建模语法


3.遵循3种元素的发现思路


4.增量建模
先识别最“明显”的职责->开始考虑职责间的关系,并发现新职责->继续考虑职责间的关系,并发现新职责->直到模型比较完善

5.实体对象≠持久化对象

6.只对关键功能(用例)画鲁棒图

7.每个鲁棒图有2~5个控制对象

8.勿关注细节

9.勿过分关注UI,除非辅助或验证UI设计

10.鲁棒图≠用例规约的可视化

高层分割
高层分割的两种实践套路:
“高层分割”的两种实践讨论:切系统为系统;切系统为子系统


切系统为系统
具体指:
1)系统比较复杂,需要进行两级高层切分。
2)首先,把系统切成更小一级的系统,每个更小一级的系统都可以有单独的需求、设计、实现…
3)之后,针对每个“更小一级的系统”,进行“切系统为子系统”…
例子:


切系统为子系统
最常见就是分层。
例子:


分层式概念架构

分层“3+1种”流派:
Layer:逻辑层
Tier:物理层
按通用性分层
技术堆叠

Layer:逻辑层
逻辑层重视职责的划分,职责之间常常是上层使用下层的关系——但是不关心上层和下层是否能分布在不同的机器。


Tier:物理层
物理层指能分布在不同机器上的软件单元,不同物理层之间必须有跨机器访问的能力——可以通过远程条用、或通信协议等方式。


按通用性分层
指:将通用性不同的部分划归不同的层,以此作为系统的总体切分方式。

一般而言,通用程度越大,所处的层次越靠下。例如


嵌入式系统分层架构通用性越强的层,位于中间,硬件相关部分,以及应用特定部分分别位于下层和上层。例如


技术堆叠
技术堆叠不是独立的架构模式,而是基于分层架构(或其他架构模式)提供的进一步说明。
例如

考虑非功能需求

考虑非功能目标要趁早
概念架构不等于理想化架构。ADMEMS强调:
1)重大需求塑造概念架构。
2)概念架构是一个“架构设计阶段”,必须在细化架构设计阶段之前,针对重大需求、特色需求、高风险需求,形成稳定的高层架构设计成果。
3)如果只考虑“功能需求”来设计概念架构,将导致概念架构沦为“理想化架构”,这个脆弱的架构不就就会面临“大改”的压力,甚至导致投板等工作失败

转载于:https://my.oschina.net/yaukie/blog/3060580

架构师之路(二)-概念架构相关推荐

  1. 架构师之路(三)谈谈架构师的职责

    很早就想写一些架构师系列的文章了,因为自己做架构设计也有几年了,有得有失,想以此文来谈谈自己对架构师职责的认识.架构师这个话题很大,从技术选型到架构选型,从业务建模到系统建模,无一不是在做着决策. 一 ...

  2. 架构师之路二-架构设计方法论

    概念解析 在文章开始之前需要先理解几个概念: 什么是方法论? 我们拿到一个输入,然后根据这个输入预期一个输出,把中间这个过程描述出来就是方法论.所以我们本篇讲的架构师方法论就是架构师先拿到经过需求分析 ...

  3. 【架构师之路 二】需要掌握的技能点---工程架构能力

    万事开头难,制定好总纲之后,就要开始选择自己的计划点了. 1,计划点比较详细,包括技能大类,技能小类.精确到技能小类后就要规划要掌握该技能小类需要准备什么资源(书,视频,指导,培训) 2,然后制定优先 ...

  4. 架构师之路 — 软件架构 — 应用架构设计模式

    目录 文章目录 目录 应用架构设计模式(Application Architecture Patterns) 分层模式(Layered Pattern) 事件驱动模式(Event-based Patt ...

  5. 架构师之路 — 软件架构 — 系统架构设计模式

    目录 文章目录 目录 系统架构设计模式(System Architecture Patterns) 单体架构 分布式架构 微服务架构 Serverless 架构 系统架构设计模式(System Arc ...

  6. 架构师之路-2018

    架构师之路-2018 分布式架构 架构,为什么要做服务化? 架构,如何进行容量设计? 架构,关于负载均衡的一切 架构,反向代理与DNS轮询 架构,过载保护与异构服务器负载均衡 架构,MySQL主从延时 ...

  7. python爬虫架构师之路_一位资深 架构师大牛给予Java技术提升的学习路线建议

    一位资深 架构师大牛给予Java技术提升的学习路线建议 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择. 架构师在一家公司有多重要.优秀架构师需要具备怎样的素 ...

  8. 架构师之路---面向过程和面向对象 王泽宾

    1.引言    机算机科学是一门应用科学,它的知识体系是典型的倒三角结构,所用的基础知识并不多,只是随着应用领域和方向的不同,产生了很多的分支,所以说编程并不是一件很困难的事情,一个高中生经过特定的训 ...

  9. Android从程序员到架构师之路3

    本文学习自高焕堂老师的Android从程序员到架构师之路系列教学视频 40 - 认识线程(Thread)模式a 1. 线程(Thread)概念 所谓线程(Thread) 是指一串连续的执行动作,以达成 ...

  10. 典型数据库架构设计与实践 | 架构师之路

    转载自微信公众号[架构师之路] 本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以"用户中心"数据库为例,讲解数据库架构设计的常见玩法. ...

最新文章

  1. mysql acer_Acer电脑【no bootable device】引导修复
  2. Canny边缘检测原理及C#程序实现
  3. 第 28 小时项目管理过程实践和案例分析
  4. kernel笔记——块I/O
  5. python大神写的代码_初学Python,只会写简单的代码。手头有份Python代码,但是调用C模块生成的.pxd和.pyx文件,运行过程总报错,希望大神指点,调试前该做哪些工作呢?...
  6. wxpython组件SplitterWindow 的简单使用
  7. 递归和非递归实现二叉排序树(BST)的查找操作
  8. C++ 流体效果的实现
  9. 服务交付审查:缺失的DevOps反馈环
  10. SequoiaDB 系列之六 :源码分析之coord节点
  11. mui 头部tab代码2
  12. JPA基础(三):搭建JPA开发环境和全局事务介绍
  13. 管理感悟:不要过度自我合理化
  14. cfd软件matlab,【流体】| 10个目前流行的CFD仿真软件,你了解几个?
  15. qt下开发mqtt的访问程序
  16. AI时代取代手机:语音交互设计漫谈
  17. 厦门大学c语言第七八章作业答案,数据结构第七章考试题库(含答案).doc
  18. py实战项目进度甘特图绘制
  19. python网络爬虫——使用selenium抓取东方财富网上市公司公告
  20. UDP之广播搜索局域网内设备信息

热门文章

  1. 【预训练语言模型】MacBERT: Revisiting Pre-trained Models for Chinese Natural Language Processing
  2. 获取google chrome浏览器的安装位置
  3. static Splitterwnd hide and show --by wyj
  4. excel筛选排序从小到大_excel多条件筛选函数 用Excel函数实现排序与筛选的方法...
  5. 从IRQ到IRQL(PIC版)
  6. 音频降噪-fir滤波器
  7. python计算机视觉 相机标定--张正友棋盘格标定法
  8. C# datagridview / datatable 导出带表头的excel的数据
  9. CSS Sprite雪碧图
  10. 实现360浏览器内核模式切换