什么是软件

软件架构的出现

如同前面描述的架构的定义,软件架构的出现也是同样的。一开始是懵懵懂懂的去写软件,后来慢慢的就有意识的去切分,演变成了不同的架构。这个背后的动力也是一样的,就是提升参与的人的利益,降低成本。导火索也是软件工程师的任务太重,我们需要把很多工作拆分出来。拆分的原则也是一样的,如何让权责一致。同样,这个拆分也是需要组织架构的调整,来保证架构的落地。具体如何分拆,如何调整,我们将在另外一篇中着重讨论。

以上通过简单的描述计算机和软件的发展历史,阐明软件的本质,其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。软件工程师的职责在这个浪潮中,不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。这一切的背后,仍然是为了提升人类自己的利益,解决人类自己的问题。

主要是软件是什么?冯诺依曼结构,图灵机,以模拟人为目标.成本为王.软件扮演的角色.软件开发的架构演变,软件架构的出现等不同解释软件的本质.。其实说了这么多也总结出来软件其实就是通过把人类的日常工作生活虚拟化,减少成本,提升单个人员的生产力,提升人类自己的利益。软件工程师的职责在这个浪潮中,不堪重负,自然而然就分拆为不同的角色,形成了一个独特的架构体系。这一切的背后,仍然是为了提升人类自己的利益,解决人类自己的问题。

计算机科学和程序设计的飞速发展,使得软件设计应用到从航空航天到日常生活的方方面面。单个人开发一段小程序的做法早就过时,大范围协作的工程化时代随即到来。

随着大范围协作的效率问题和软件复杂度的爆炸式增长,管理和技术方面的各种不确定性也爆发性增加,导致软件开发的质量无法得到有效保证,周期和成本无法得到有效控制。

人们一直在寻求找到这些问题的解决办法。然而 Fred Brooks 在 1975 年出版的软件工程圣经《人月神话》中说,没有(能解决所有问题的)银弹(There is no silver bullet)。

自此,人们发展了项目研发过程管理来控制管理活动的不确定性,同时也发展了软件架构设计方法来控制技术方面的不确定性。

进而在实践中不断的总结和改进,用于有效指导和最大程度的保障软件开发的质量、周期和成本。

最后,总结一下。软件架构是一个用于指导系统实现的草图,这个草图越详细对于系统实现的指导意义越重大,贯穿于软件的整个生命周期。

在建筑领域,大楼尚未建造前,就已经存在于建筑师的脑海里;同样地,系统开始编写第一行代码之前,就已经存在于软件架构师的心里。

转载于:https://www.cnblogs.com/cj-125/p/11058352.html

《架构漫谈》读书笔记五相关推荐

  1. Mysql是怎么运行的读书笔记

    前言 第1章 装作自己是个小白–初识Mysql Mysql分为客户端和服务端,客户端有很多种比如:手机 App.桌面端的软件或者网页版的微信.客户端发送请求,服务端处理请求,服务端将处理结果发送客户端 ...

  2. 《MYSQL是怎样运行的》笔记|配置文件|系统变量|字符集|InnoDB存储结构|数据页结构|索引结构与使用|数据目录|表空间|连表原理|查询优化|BufferPool|事务|redo与undo|锁

    <MYSQL是怎样运行的>笔记 前记: 历时15天,笔记+看书.完成于2022.2.5. 本书是讲具体的数据库实现,而数据库系统概念见:https://blog.csdn.net/qq_4 ...

  3. 《Mysql是怎样运行的》读书笔记五

    记录在页中的存储 一个InnoDB数据页的存储空间大致被划分为7个部分,如下面表格所示. 名称 中文名 占用空间大小 简单描述 File Header 文件头部 38字节 页的一些通用信息 Page ...

  4. 高性能MySQL读书笔记 (五)

    1. 优化服务器设置 MySQL有大量的可以修改的参数,但不应该随便修改.应该将更多时间花在schema的优化,索引,查询设计上 配置文件路径: 通常在/etc/my.cnf 不建议动态修改变量,因为 ...

  5. mysql索引与事务笔记_《MySQL技术内幕:InnoDB存储引擎》读书笔记五-锁、索引及事务...

    1.锁mysql 1)锁是数据库系统区别于文件系统的一个关键特性,数据库使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性.算法 2)每一种数据库实现锁的方式都不一样.sql 共享锁:容 ...

  6. MySQL必知必会读书笔记

    第一章 了解SQL 1.1 数据库基础 数据库:保存有组织的数据的容器(通常是一个文件或一组文件).注意要与数据库软件DBMS(数据库管理系统)区别,数据库是通过DBMS创建和操纵的容器.数据库可以是 ...

  7. 读书笔记——五妹妹的女儿房

    最近重读了小说月报2005年第2期原创版上的<五妹妹的女儿房>,作为小说强烈推荐. 当时读完小说时有最初在小说月报上看到<贫嘴张大民的幸福生活>和<天下无贼>的感觉 ...

  8. 计算机网络读书笔记(五)

    链路层 我们将看到两种截然不同的链路层信道,第一种类型是广播信道,这种信道用于连接有线局域网.卫星网和混合光纤同轴电缆接入网中的多台主机.第二种类型的链路层信道是点对点通信链路,这一般应用在长距离链路 ...

  9. MDX Step by Step 读书笔记(五) - Working with Expressions (MDX 表达式)

    1. 大多数表达式会返回数值类型的值,但是也能返回例如字符串,时间,布尔或者其它类型的值. 2. 一般表达式的结果都是几个值通过操作符运算后得到的,下列表格中显示了对比,逻辑的,数值的,字符串以及集合 ...

  10. Effective Java读书笔记五:异常

    第57条:只针对异常的情况才使用异常 异常是为了在异常情况下使用而设计的,不要将它们用于普通的控制流,也不要编写迫使它们这么做的API. 下面部分来自:异常 如果finally块中出现了异常没有捕获或 ...

最新文章

  1. python 除法取模_Python的运算符和表达式(上)
  2. VTK修炼之道35:边缘检测_Laplace算子
  3. opencv学习笔记19:图像金字塔和图像拉普拉斯金字塔 (用于图像放大和缩小)
  4. oracle数据库并行数限制,Oracle数据库并行处理技术详解(上)
  5. 英国大学diploma(证书)期末考试挂科
  6. Upgrade to Spring Boot 1.4
  7. 【语音识别】基于matlab矢量量化(VQ)说话人识别【含Matlab源码 575期】
  8. mysql确定数据表中是否存在某字段_MySQL判断表是否存在某个列
  9. Eclipse中SVN分支与合并
  10. 论文计算机制图,计算机制图教学设计运用论文
  11. 自学啊哈C的推箱子的编程代码
  12. apply update from ADB
  13. 常用电压电流转换原理图
  14. 我深爱的Java,对不起,我出轨了!!!呸!渣男!
  15. 2021阿里云服务器购买攻略-618年中大促专场
  16. AI大神Hinton再次“逃离”美国,成就了虎视眈眈的加拿大
  17. adb发送什么命令能在手机屏幕弹窗显示_Android 手机投屏在 Ubuntu 上的方法
  18. 《Cisco防火墙》一6.5 虚拟防火墙的管理访问
  19. java中utf-8怎么设置_eclipse中UTF-8设置
  20. HotSpot 是啥?

热门文章

  1. 避免表格table被撑开变形的CSS代码实例
  2. 搭建kafaka_kafka单机环境搭建及其基本使用
  3. python语言入门m-Python学习基础篇 -1
  4. python自学教材-最好的Python入门教材是哪本?
  5. 电脑如何下载python3-python3可以在哪里下载
  6. 2018python好找工作吗-2018年IT行业薪资大揭秘:你拖后腿了吗?
  7. python request-Python之request模块-基础用法
  8. python类装饰器详解-Python类中的装饰器在当前类中的声明与调用详解
  9. python代码怎么运行-python代码如何运行
  10. python类型转换-马哥教育官网-专业Linux培训班,Python培训机构