架构之美第八章-软件架构的含义
如果认为“架构”是一个简单的实体,能够用一份文档或一张图纸来描述,那就错了。架构师必须做出许多设计决定。要想有用,这些决定必须用文档记录下来,这样就能够
进行复审、讨论、修改和批准,然后作为后续决定和构建时的约束。对于软件系统,这些设计决定包括行为上的和结构上的。
外部行为描述展示了产品如何与它的用户、其他系统和外部设备进行交互,这应该表现为需求。结构描述展示了产品如何划分为多个部分,以及这些部分之间的关系。我们还
需要内部行为描述,用于描述组件之间的交互接口。结构上的描述常常展示相同部分的一些不同视图,因为不可能把所有信息以有意义的方式组织到一张图纸或一份文档中。
一个视图中的组件,可能是另一个视图中一个组件的一个部分。
软件架构常常表现为分层的层次结构,这种层次结构将几种不同的结构放在一张图中。20世纪70年代,Parnas指出“层次结构”这个术语已经被滥用,然后精确地定义了它,
并给出了几个不同结构的例子,它们在设计不同系统时实现了不同的目的(Parnas 1974)。将架构的结构描述为一组视图(view),每个视图关注不同的部分,现在已成为了广泛接受的标准架构实践(Clements等2003; IEEE 2000)。我们将使用“架构”这个词来代指一组有标注的图纸和功能描述,它说明了设计和构建一个系统时所使用的结构。在软
件开发社区中,针对这样的图纸和描述,人们使用并建议了许多不同的形式。在Hoffman和Weiss(2000,第14章和第16章)的著作中可以看到一些例子。
一个程序或计算系统的软件架构是系统的一种结构或一组结构,它包含软件元素、这些元素的外部可见的属性,以及元素之间的关系。“外部可见”的属性是其他元素对该元素可以做出的假定,诸如它提供的服务、执行时的特征、错误处理、共享资源的使用等。
架构之美第八章-软件架构的含义相关推荐
- 架构之美第二章-美丽架构的含义
古人形容美女之美:"⋯⋯增之一分则太长,减之一分则太短⋯⋯",深刻地揭示了"恰到好处"的美丽含义.当我拿到<架构之美>书稿时,我发现美丽的含义如此 ...
- 架构之美(china-pub全国独家首发)
架构之美(china-pub全国独家首发) [作 者]Till Adam [同作者作品] [作译者介绍] [译 者] 王海鹏;蔡黄辉;徐锋[同译者作品] [出 版 社] 机械工业出版社 [ ...
- 《架构之美》阅读笔记01
首先,<架构之美>是机械工业出版社2009年11月出版的图书,作者是Till Adam.本书围绕5个主题领域来组织本书的内容:概述,系统.最终用户应用和编程语言.本书让最优秀的设计师和架构 ...
- 《架构之美》阅读笔记四
书中提到了ruby on rails,所以百度了下,介绍如下: 题外话:Ruby on rails 它是一种可以使你开发,部署和维护的WEB应用程序变得简单的框架,以简化web开发为目标,它简洁,易懂 ...
- 架构之美阅读笔记之一
寒假生活开始了,关于软件架构这部分的学习,我选择的是<架构之美>这本书.这本出版于2009年的书,由浅入深地讲述了从架构的概述,到企业级应用架构,系统架构,最终用户应用架构,再到语言与架构 ...
- 《架构之美》阅读笔记06
<架构之美>本书围绕5个主题领域来组织本书的内容:概述.企业应用.系统.最终用户应用和编程语言.本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到 ...
- 软考高级系统架构设计师:特定领域软件架构
软考高级系统架构设计师:特定领域软件架构 一.4+1视图 二.软件系统在特定领域重用DSSA 三.特定领域软件架构创建步骤 1.定义领域范围 2.定义领域特定元素 3.定义领域特定的设计和实现需求约束 ...
- 【软考系统架构设计师】第八章 Web架构(知识点必知必会)
[软考系统架构设计师]第八章 Web架构(知识点必知必会) 第八章 Web架构(知识点必知必会) [软考系统架构设计师]第八章 Web架构(知识点必知必会) 一. 负载均衡与集群技术 1)什么是负载均 ...
- C++架构之美:设计卓越应用
C++架构之美:设计卓越应用The Beauty of C++ Architecture: Designing Excellent Applications 一.引言(Introduction) C+ ...
- 架构之美—软件架构6大步骤(开篇)
1> 需求分析 2> 领域建模 3> 确定关键需求 4> 概念架构设计 5> 细化架构设计 6 架构验证 转载于:https://www.cnblogs.com/koo ...
最新文章
- GAUSSIAN MIXTURE VAE: LESSONS IN VARIATIONAL INFERENCE, GENERATIVE MODELS, AND DEEP NETS
- Ubuntu Server 13.04安装图形界面
- C++中比较两个浮点数是否相等
- 工作203:实现预览效果
- 解决Cacti监控图像断断续续问题
- python脚本式编程_Python编程入门(一)
- 开始新的blog之旅--flash3,0涂鸦板保存,撤销功能
- ERROR: Could not install packages due to an OSError: [Errno 28] 设备上没有空间
- 数据分析与挖掘建模实战003:单因子探索分析与可视化001数据案例介绍
- iPhone 12包装盒设计曝光,没充电器没耳机实锤?
- 转:Android应用开发性能优化完全分析
- java代码删除本地文件_java程序实现删除本地文件
- 第二次作业:硬币游戏——代码分析与改进
- Quartus安装破解失败试了一些方法汇总
- matlab中的sprintf函数,Matlab中disp和sprintf函数使用方法和区别介绍
- 根据身份证获取性别、生日、后六位
- 最强大脑记忆曲线(3)——设计页面
- STC8A8K64D4(51系列单片机)printf打印数据异常的问题
- 经纬度换算数值_经纬度转换-----度分秒以及经纬度和米
- 研华运动控制卡接线图_ADVANTECH研华PCI-1245S运动控制卡4轴DSP架构脉冲型 步进/伺服电机SCARA控制通用PCI卡...
热门文章
- Python社区发现—Louvain—networkx和community
- 过水滑环的结构和工作原理
- 60.Linux:虚拟机安装及基本操作
- 常用和不常用端口一览表
- WPF框架下,窗体的嵌套显示
- 面试题汇总-分布式(一)
- 三星note10 android q,【极光ROM】-【三星NOTE10/NOTE10+/5G N97XX-9825】-【V4.0 Android-Q-TD1】...
- 自动阅读行业又出新招?离线阅读脚本套路满满
- 从零开始入门芯片行业
- NSIS中文用户手册下载(免费下载)