《实用软件架构:从系统环境到软件部署 》——第2章 软件架构是什么?为什么需要做软件架构2.1 背景知识
本节书摘来自华章出版社《实用软件架构:从系统环境到软件部署》一书中的第2章,第2.1节,作者:[印]蒂拉克·米特拉(Tilak Mitra)著,爱飞翔 译,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
第2章 软件架构是什么?为什么需要做软件架构
除非我信它,否则不可能全身心地投入其中。
如果你已经读到了这里,那么你应该是真心想要成为一名“务实的软件架构师”。我们不能仅仅把这个名号挂在嘴边,而是要在实际的软件与系统开发工作中运用这套理念做出优秀的产品。
软件架构师的做事风格多种多样,而且通常都很有意思。有的架构师喜欢做宏观的思考,喜欢随便拿一张纸画上几笔,或是在白板上画一些方框和线条,而且那些方框看上去好像长得都不太一样。有的架构师不先把宏观的架构情况了解清楚,就急着去研究细节问题。还有一些架构师则在这两种风格之间徘徊不定。因此,我们有必要澄清与软件架构相关的一些问题,以便形成一个大家都容易接受的理解方式,并且使大家对成功的软件架构师所担负的职责,有一个清晰的了解。
本章将会给出软件架构的一些背景知识,以及一些能够促使我们去做好架构工作的成熟价值理念。到本章结束时,我想大家应该能对软件架构中的一些关键元素具有清晰的认识。我们都是务实的软件架构师,我们要把实用的软件架构理念加以阐发,并在实践中将其推广开来。
咱们做一件写着The PSA(发音是“thepsa”)的T恤穿上,怎么样?
2.1 背景知识
软件架构作为一门学科,已经有四十多年历史了,早期的软件架构,可以追溯到20世纪70年代。后来,由于系统开发工作变得更加复杂、更加关键,而且更加强调实时性,因此软件架构也得到了更为广泛的运用,并且成为主流的系统工程和软件开发工作中的基本内容。
与其他那些持续发展的学科一样,软件架构在诞生之初也面临着一些挑战,而且直到今天,也没有能够把所有的疑难全都解决掉。早期的软件架构师会用一些图表和文字来描述系统的结构及行为,但是他们在描述时所采用的这些办法,其清晰程度、一致程度和精确程度都不够高,而且也缺乏条理。软件架构的内容和工件,有各种各样的表示方法和记录方法,当年的架构师,想要寻找一种协调而易懂的伪语言(pseudo-language)或元语言(metalanguage),以便将这些表述方法统合起来。在学术研究的促进下,系统工程和计算机科学界的工作者取得了巨大的进步,他们提出了一些行之有效的做法和指导原则,使得架构师可以对软件架构的内容做出适当的表述,以便与利益相关者就架构的成果进行有效的沟通。
采用开源软件搭建WebGIS系统(1)系统架构 [本文版权由xiaotie@vip.sina.com所有,转载需得到作者同意。] 采用开源软件搭建WebGIS系统的好处: (1)费用低,扩展性强,搭建的过程同时也是一个学习研究的过程 (2)开源GIS软件基本都遵守OpenGIS规范 经过近1个月的调研,我采用如下架构: (1)数据,采用国家基础地理信息中心的国家基础地理信息系统1:400万数据,可从下面获取: http://nfgis.nsdi.gov.cn/nfgis/chinese/c_xz.htm 我下载的是shp文件。
《软件需求工程(第2版)》一1.6 其他一些基本概念 本节书摘来自华章出版社《软件需求工程(第2版)》一书中的第1章,第1.6节,作者 毋国庆 梁正平 袁梦霆 李勇华,更多章节内容可以访问云栖社区“华章计算机”公众号查看
《企业软件交付:敏捷与高效管理精要》——3.1 引言 本节书摘来自华章计算机《企业软件交付:敏捷与高效管理精要》一书中的第3章,第3.1节,作者:(美)布朗(Brown, A. W.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《企业软件交付:敏捷与高效管理精要》——2.1 引言 本节书摘来自华章计算机《企业软件交付:敏捷与高效管理精要》一书中的第2章,第2.1节,作者:(美)布朗(Brown, A. W.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《企业软件交付:敏捷与高效管理精要》——1.1 引言 本节书摘来自华章计算机《企业软件交付:敏捷与高效管理精要》一书中的第1章,第1.1节,作者:(美)布朗(Brown, A. W.)著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。
相关文章
- 软件事务内存导论(九) 集合与事务
- Flask开发天气查询软件,带你掌握pipenv的使用与手机Termux下的部署
- 【华为大咖分享】11.五星级软件工程师的高效秘诀(后附PPT下载地址)
- php文件用什么软件编写
- atitit 软件框架类库设计的艺术.docx 目录 1. index1 2. 第2章 设计api的动力之源 142 2.1. .1 分布式开发 142 2.2. 2.2 模块化应用程序 16
- MATLAB软件图形细节处理操作
- 【华为OD机试 2023最新 】 获取最大软件版本号(C++ 100%)
- 一个好用的,个人记事本应用,软件joplin
- win10 卸载软件 清除注册表 Revo Uninstaller Pro
- 一份软件项目需求书的模板
- 质量小议1 -- 软件质量是什么?
- 你仅仅是个码农,还是软件工程师?你还“安于现状”,年龄一大你就遭企业淘汰了
- puppet开源的软件自动化配置和部署工具——本质就是CS,服务端统一管理配置
- 简述软件质量的概念及质量保障体系,简述SQA的基本目标,简述CMM的分级结构及其主要特征,简述软件质量标准等级及适用范围
- CentOS6安装大数据软件(六):Hive安装和配置
- 新版OpenCV5 (C++)版本部署目标检测:YOLOv4打包成可用AI软件
- Docker 如何部署开源远程桌面软件RustDesk中转服务器(一)
- WinServer 2012 域控组策略 用户发布软件部署