向架构师进军--->如何编写软件架构文档
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
问:为什么要编写软件架构文档,它的好处是什么?
答:
有文档的架构有助于不同利益相关者之间进行有效的沟通。
有文档的架构可以提供追溯其他工作产品的上下文。
有文档的架构可以传达可供选择的架构解决方案。
有文档的架构有助于从一个现有架构转换到一个新架构计划的计划编制。
有文档的架构通常能通过识别组成架构的元素及它们之间的依赖性来帮助编制计划。
有文档的架构可以提醒架构师在其所作的某些决定背后的基本原理。
有文档的架构有助于识别哪些资源可重用以及可重用的时机。
有文档的架构有助于架构的评估。
问:编写软件架构文档的步骤是什么?
答:
识别利益相关者组。
选择视点。
创建工作产品。
给架构描述打包。
问:编写软件架构文档的视点有哪些?
答:
视点分为两类,分别是基础视点和交叉视点。其中基本视点的类型有四种,分别为:
(1)功能性视点:它关注支持系统功能性的元素。
(2)部署视点:它关注支持系统分布的元素。
(3)需求视点:为形成架构的系统需求提供说明,它包括功能性需求、品质和约束。
(4)确认视点:为系统提供必需的功能、展示必需的品质和适应定义的约束提供说明。
交叉视点是从某一特定功能的视点出发,与基础视点交叉综合关注的元素,下图为一交叉视点的例子。
问:软件架构通常要描述框架,应该从哪些角度去描述?
答:
多重视图和场景视图的使用。
实现层级。
交叉关注。
问:软件架构的4+1视图模型是什么?
答:
软件架构的4+1视图是指逻辑视图、开发视图、过程视图、物理视图和场景(视图)。
逻辑视图是设计的对象模型。
过程视图获取设计的并发和同步方面的信息。
开发视图描述的是软件开发环境中的软件静态组织。
物理视图描述了软件与硬件之间的映射,还反映了它在分布式方面的信息
如果你对项目管理、系统架构有兴趣,请加微信订阅号“softjg”,加入这个PM、架构师的大家庭
向架构师进军--->如何编写软件架构文档的更多相关文章
- 向架构师进军--->怎样编写软件架构文档
假设你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",增加这个PM.架构师的大家庭 问:为什么要编写软件架构文档,它的优点是什么? 答: 有文档的架构有助于不同利益相关 ...
- 使用vim编写hexo文档,并用ultisnips/snipmates/snippets插件补全
作为一个vim使用者,编写markdown文档时若不能用vim这怎么能受的了! 下面是我编写markdown的时候用到的插件 Plugin 'Markdown'Plugin 'Markdown-syn ...
- 基于 Markdown 编写接口文档
最近公司开发项目需要前后端分离,这样话就设计到后端接口设计.复杂功能需要提供各种各样的接口供前端调用,因此编写API文档非常有必要了 网上查了很多资料,发现基于Markdown编写文档是一种比较流行而 ...
- 朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素
朱晔的互联网架构实践心得S1E9:架构评审一百问和设计文档五要素 [下载文本PDF进行阅读] 本文我会来说说我认为架构评审中应该看的一些点,以及我写设计文档的一些心得.助你在架构评审中过五关斩六将,助 ...
- 使用 Laravel-Swagger 编写接口文档(php)
使用 Laravel-Swagger 编写接口文档 Table of Contents Swagger 文档管理 官方网站:https://swagger.io/ 快速编写你的 RESTFUL API ...
- Win10环境下,告别MarkdownPad,用Notepad++搭建编写md文档的环境
1. 为什么抛弃MarkdownPad 2 ? MarkdownPad坊间号称 Windows 环境下最好用的markdown编辑器-EXO me??? 博主入MarkdownPad 2 坑就是因为这 ...
- 作为Java开发工程师,如何高效优雅地编写接口文档
作为一名优秀的Java开发工程师,编写接口文档向来是一件很头疼的事情.本来就被bug纠缠的很累了,你还让我干这? 其实,你可以试试ApiPost. ApiPost的定位是Postman+Swagger ...
- 使用 VS Code + Markdown 编写 PDF 文档
背景介绍 作为一个技术人员,基本都需要编写技术相关文档,而且大部分技术人员都应该掌握 markdown 这个技能,使用 markdown 来编写并生成 PDF 文档将会是一个不错的体验,以下就介绍下如 ...
- 向架构师进军--->系统架构设计基础知识
如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 在讲解系统架构设计之前,有必要补充一下架构相关的概念,因此本博文主要讲述架构.架构师 ...
随机推荐
- 《Web全栈工程师的自我修养》读书笔记(转载)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/5 ...
- OS实验报告--FCFS算法
实验二.作业调度模拟实验 专业:商业软件工程 姓名:王泽锴 学号:201406114113 一.实验目的 (1)加深对作业调度算法的理解: (2)进行程序设计的训练. 二.实验内容和要求 (1)实验 ...
- kuangbin_SegTree M (HDU 4553)
put my gezi这句话不得不说我看了好几秒才反应过来什么意思(你咋不上天呢 目测了一下也是区间合并 但是是成段更新的区间合并 但是!我终于!自己!写出来了! 嗯还算是比较顺利的 query的地方 ...
- io.sort.spill.percent调整
引言 MapReduce作出保证:进入每个Reducer的数据行都是有序的(根据数据行的键值进行排序).MapReduce将Mapper的输出进行排序并传递给Reducer作为输入的过程称为Shuff ...
- HTML中的属性、段落、标题、换行等
HTML的属性html标签的属性总是以名称/值(name=“value”)的方式出现:属性总是在html元素的开始标签中规定: 1.html链接由<a>标签定义,url在href中指定:& ...
- js 循环切换图片
function changeLot(){ var minIndex = 1; var maxIndex = 100; var curIndex = 10; var src = $("ul ...
- LeetCode----Tree
Path Sum II 思路:回溯 public List<List<Integer>> pathSum(TreeNode root, int sum) { List<L ...
- 基于Lattice_CPLD/FPGA Diamond 开发流程
本文主要介绍了Lattice CPLD/FPGA集成开发环境的使用方法,并通过点亮开发板(Mach XO2 Breakout Board)上位号为D2的LED这一实例来演示其开发流程. 1. ...
- 支付宝支付参数MD5签名
protected String signMD5(List<String> paramNames, String key, String charset) throws Unsupport ...
- 搭建sonar,推动代码质量管理
最近比较关注devops相关的文章,尝试搭建sonarqube服务,进行代码质量的分析和管理,先记录下本地环境的搭建和分析过程. 一.sonarqube服务搭建 官网地址:http://www.son ...