软件架构系列感想(五)

工业软件行业深度报告:深度剖析工业软件.pdf 工业软件行业深度报告:深度剖析工业软件.pdf,是非常全非常深度的报告,干货满满,非常值得学习与研究,推荐相关人员深入学习。 立即下载

1、通用的抽象集合。

可以将软件系统简单的理解成由多个容器构成,容器又由多个组件构成,组件由一个或多个类实现。

类(在一个面向对象系统里,类是最小结构单元)

组件(组件可以想象成一个或多个类组成的逻辑群组,通常由多个类在更高层次的约束下组合而成)

容器(指一个在其内部可以执行组件或驻留数据的东西)

系统(系统是最高的抽象层次,代表了能够提供价值的东西)

2、软件的静态视图。

语境(设定场景的高层次图,包括关键的系统依赖和参与者)

容器(容器图显示了高层次的技术选择,容器如何分担职责、如何通信)

组件(组件图可以看到每个容器的关键逻辑组件及之间的关系)

类(这是一个可选的细节层次)

3、语境图能回答以下问题:

(1)我们构建的(或已经构建的)软件系统是什么

(2)谁会用它

(3)如何融入已有的IT环境

4、容器图能回答以下问题:

(1)软件系统的整体形态是什么样的

(2)高层次技术决策有哪些

(3)职责在系统中如何分布

(4)容器之间如何相互交流

(5)为了实现特性,作为一个开发者,我需要在哪里写代码

5、容器间的通信通常是进程间通信。

交互的目的(如读写数据、发送报告)

通信方法(如Web服务、远程方法调用、消息服务)

通信方式(如同步、异步、批量、两阶段提交等)

6、语境图展示的软件系统是一个盒子,而容器图是打开盒子展示里面的东西。

(1)让高层次的技术选择更明确

(2)展示了哪些容器之间有关联,以及他们如何沟通

(3)提供了一个放置组件的框架

(4)展示了高层次的语境图和通常很乱的组件图之间经常缺失的连接,组件图画的是整个软件系统中所有的逻辑组件

7、组件图可以回答以下问题:

(1)系统由哪些组件/服务组成

(2)在高层次上,系统如何工作是否清晰

(3)所有组件/服务都驻留在一个容器中吗

组件图展示了驻留在每个容器中的逻辑组件,展示了在高层次上将软件系统分解为职责不同的组件;展示了组件之间的关系和依赖;为软件开发的高层次预估和如何分解交付提供了一个框架。

8、明确技术选择。

(1)这个组件如何与运行在单独进程中的另一个组件沟通

(2)这个组件如何初始化,职责又是什么

(3)为什么这个进程需要和另一个进程沟通

(4)为什么这个组件要用X技术而不是Y技术实现

9、职责驱动设计和组件分解。

对于软件架构,一个重要的方面是理解软件系统的重要元素是如何结合在一起的,这意味着深入组件、服务或模块的层次,他们各自有一组特定的职责。组件是接口背后的一组相关行为,可以用一个或多个协作类实现。好的组件和好的类有一些共性,应该高内聚、低耦合、有良好定义的公共接口、良好的封装等。

10、用层封装代码。

如果你打开一个代码库,就会看到域类包、UI素材包、业务服务包、数据访问包、集成包等。

11、架构和设计软件并不需要UML工具。但如果你不使用工具,就需要明确地思考各个抽象层次之间的可追溯性、规约和一致性。

手把手教你校准垂起固定翼(VTOL)遥控器与电调:从零到飞的完整流程 本文详细介绍了垂起固定翼(VTOL)遥控器与电调的校准流程,从基础认知到飞行前检查,涵盖遥控器通道配置、电调校准、舵机方向调整等关键步骤。通过图文并茂的指导,帮助无人机爱好者安全完成VTOL调试,确保首飞成功。特别强调多旋翼模式、过渡模式和固定翼模式的设置要点,适合新手和进阶用户参考。 阅读详情

相关推荐

Matlab实战:5分钟搞定脉冲多普勒雷达信号处理仿真(附完整代码)

本文详细介绍了如何使用Matlab在5分钟内完成脉冲多普勒雷达信号处理仿真,包括环境配置、线性调频信号生成、数字下变频处理、动目标检测及性能优化技巧。通过完整代码示例和实用技巧,帮助工程师快速验证算法可行性,提升雷达信号处理效率。

nokia的博客 944

软件架构学习小结

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!                软件架构设计系统整体架

hggugfn的博客 520

ESP32开发环境避坑指南:用Thonny烧录MicroPython固件时常见的5个错误及解决方法

本文针对ESP32开发新手,详细解析了使用Thonny IDE烧录MicroPython固件时最常见的5个错误及其解决方案。内容涵盖驱动安装、端口识别、固件烧录失败、版本兼容性、连接不稳定以及文件系统操作异常等核心痛点,并提供硬件层面的深度排查指南,帮助开发者高效搭建稳定的ESP32开发环境。

weixin_29189003的博客 407

软件架构系列感想(一)

1、什么是架构?架构是一种能力,架构角色则是要求你在具体事物中行使某些行为,而架构师则是用来标识这些能力与行为的一个职务。对于不同的人来说,可能意味着什么是不一样的。模块、连接、依赖和接口;大局观;改变成本很高的事情;难以改变的事情;更加兼顾全局的设计;接口而非实现;审美(比如艺术般的整洁代码);概念模型;满足非功能需求/质量属性;每件事情都有架构;沟通能力(抽象、语言、词汇);计划;一定程度的严...

woshibendangao的专栏 1148

非标准包 game.rgss3a 的打开方法 | 2023 年实测

生活笔记

陌雨’的博客 1万+

手把手教你用TL431设计反激电源补偿器(附波特图调试技巧)

本文详细介绍了如何使用TL431设计反激电源补偿器,并提供了波特图调试技巧。通过实战经验分享,帮助工程师快速掌握补偿网络设计、分压电阻计算和稳定性判据,避免常见设计误区,提升电源稳定性与效率。

weixin_29201859的博客 378

软件架构设计的心得

最近正在为公司提炼一个规范的、通用的 开发架构,有一些心得,需要把它辑录下来, 以免以后忘掉。1。建立一个软件架构,最关键得核心应该是建立一套标准的、易于执行的、代码编写规则。预先对常见的情况,定义一些编写规则,并要求开发者必须执行,以保证代码的可读性,以及易维护性。2。对一些常用的场景,要设计一些通用的的、可以解决大部分情况的共用构件,以提高开发质量和开发效率。而且这些共用构件,目的是为

gavinou的专栏 1203

CTF---Web---文件包含---01

文章目录前言一、题目描述二、解题步骤1.查看源代码2.文件包含(/etc/passwd)3.解码总结 前言 题目分类: CTF—Web—文件包含 一、题目描述 题目:提示寻找passwd文件 二、解题步骤 1.查看源代码 提示所有图片存储路径是download.php?name=img, 此时name参数的存在就提示此题可能为“文件包含”。 2.文件包含(/etc/passwd) 两种查看方式: 2.1、访问view-source:http://192.168.87.180/download.php

qq_22160557的博客 1391

软件架构系列感想(六)

1、代码不会讲述完整的故事。编写好的代码很重要,重构迫使我们考虑让方法变得更小、更可复用和自文档化,每个人都应该追求易于阅读、理解和维护的好代码。了解系统的设计意图,可以通过代码库如何被拆分为子项目、目录、包、命名空间等对整体架构做出一些判断,也可以根据对这个项目有限的了解、业务领域、你对团队如何构建软件的期望以及你对所用技术的知识,做出自己的假设。(1)软件系统如何融入已有的系统形态(2)为什么...

woshibendangao的专栏 420

深度学习笔记(1)机器学习与深度学习基础

一些深度学习的简单概念和Transformer的学习。

hanliu2003的博客 1492

Linux 下安装 openjdk 17【详细步骤】

JDK17,安装教程。

甘蓝的专栏 7504

软件架构系列感想(四)

1、技术约束。时间和预算是大多数软件开发者都熟悉的约束,还有一些在大型组织里经常碰到的一些技术相关的约束:(1)批准的技术清单(目的是限制组织必须支持,运行,维护和购买许可证的技术)(2)现有系统的互操作性(有时别的系统需要和你构建的系统整合,这时组织性的约束规定了你可以用于整合的协议和技术)(3)目标部署平台(包括嵌入式设备、windows或Linux服务器的可用性,以及云)(4)技术成熟度(有...

woshibendangao的专栏 431

基于模糊神经网络实现水质评价预测 - Matlab源码

首先定义输入层、隐含层和输出层的节点数,并初始化权重和阈值,然后开始训练模型,在每轮训练中通过比较模型的输出值与实际值的误差来更新权重和阈值,直到误差达到最小值,为了提高模型的性能,我们可以采用交叉验证等技术进行优化。首先需要准备好数据集,使用的是嘉陵江的水质监测数据集,数据集包含了多个指标,如 pH 值、溶解氧、总氮、总磷等,以及相应的水质等级,我们需要将数据集分为训练集和测试集。在当今环境日益恶化的情况下,水质监测变得越来越重要,模糊神经网络作为一种新型的。

weixin_50547796的博客 147

软件架构系列感想(二)

3、软件架构师是什么? 应用程序架构的关注点是应用程序,通常包括将应用程序解构为类和组件,确保设计模式的正确应用,构建和使用框架等等。本质上,应用程序架构谈论的是软件设计的低级别切面,通常只考虑单一的技术栈。 结构单元主要以软件为基础,包括编程语言和结构、类库、框架、api等。它由类、组件、函数、模块、设计模式等加以描述。应用程序架构着重考虑软件和代码组织。 大多数软件系统实际上是由横跨不同...

e5Max的专栏 397

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

软件架构系列感想(三)

1、未来的架构师在哪里?我们可能花了很长时间谈论编写代码、自动化测试、自动化部署、工具、各种技术,以及所有相关的流程,而可用的软件是关键。多想想这些问题:(1)你上次写代码是什么时候(2)你上次重构是什么时候(3)你上次测试你的代码是什么时候(4)你上次设计东西是什么时候(5)你上次从零开始设计一个软件系统是什么时候(6)你上次从零开始设计一个会由一个团队来实现的软件系统是什么时候2、有些人过于渴...

woshibendangao的专栏 385

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

读《周志明的软件架构课》--学习笔记和感想随笔

主要记录对周老师的《周志明的软件架构课》的学习笔记,本篇章是对课程不可变基础设施部分的学习,从虚拟化的技术理解容器技术的产生和发展,从部署运维角度理解应用的封装,从网络虚拟化理解容器网络,从扩展的角度理解K8s的存储设计,从解耦的角度理解服务网格。从周老师的课程中可以以一种由浅入深的方式来探寻云原生技术的渊源、发展及使用。

wangchaodee的博客 792

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

架构漫谈阅读感想

这几天,读了老师推荐有关架构的一篇系列文章《架构漫谈》,其中通俗易懂的语言,风趣幽默的风格,形象明了的对比形式让我对架构有了更进一步的了解。何为架构?最早期社会我们一个人就可以完全独立生活完成衣食住行所有事情,随着需求的增加,比如说人类延续,人们开始群居。接下来人们发现各自有各自的长处,有的人种田厉害,有的人制作工具厉害,有些地方适合产出粮食,这就导致分工,各自做擅长的事情。由于每个人的...

weixin_30848775的博客 135

读《Code Complete》后的一点感想

软件工程,不只是编码。             ——题记 最近通读了一遍Code Complete,虽然看的不算十分细致,但是感触还是有不少。 在这学期开始之前,我始终以为,软件工程,不过就是一个编码的过程,充其量不同的人编码的效率不同罢了。不过,读过这本书以后,彻底改变了我的肤浅的看法。 书中的第一章叫做“欢迎进入软件构建的世界”,一开始就提及软件构建所涉及的活动:定义问题,需求分...

weixin_30724853的博客 177

什么是软件架构

一、概述  二、目的  三、项目背景  四、系统建设目标  五、参考资料  六、架构设计  六.1 架构分析  六.2 设计思想  六.3 架构体系  六.4 系统视图  六.5 模块划分  六.5.1 模块描述  六.5.2 模块接口  我们在做架构设计文档一般分为两个层面:  1 技术架构设计。  从技术的解决上来讨论,着重点是讨论采用什么样的技术,如

白及 1323

阅读王概凯老师架构漫谈系列总结

这学期在学软件体系架构的课程,老师推荐了王概凯老师的架构漫谈系列专栏,在阅读专栏之后,对于什么是架构,怎样做好架构,软件架构如何落地,如何写好程序等问题有了较深的理解,在此简单记录一下阅读之后的感想 架构漫谈第一篇主要在介绍什么是架构以及为什么会产生架构,在没有阅读文章以前,在学习中或许用到过架构的思想,但也是模棱两可,并不知道什么是架构,更不清楚是怎么产生架构的。王概凯老师提到,架构...

weixin_30387663的博客 285

jQuery源码学习感想

  还记得去年(2015)九月份的时候,作为一个大四的学生去参加美团霸面,结果被美团技术总监教育了一番,那次问了我很多jQuery源码的知识点,以前虽然喜欢研究框架,但水平还不足够来研究jQuery源码,那时我不明白他们为何要求那么高,现在才知道,原来没那么高,他问的都是jQuery最基本的框架架构,不过对于不知道的来说,再简单我也是不知道,那时写了一篇博文去吐槽了一下,那时候也是我自己...

153
上一篇: 软件架构系列感想(四)
下一篇: 软件架构系列感想(六)
e5Max
博客等级 码龄14年 145粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值