《软件构架实践》(一) —— 认识

在学习软件构架之前,先弄懂什么是架构。

先提软件系统的构架有两个要素:

·它是一个软件系统从整体到部分的最高层次的划分。

·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

对于软件系统构架的解释,书面语言实在生涩难懂,且难以说清其中具体缘由。

举个样例解释:

想象一下,在最早期,每个人都完全独立生活,衣食住行全部由自己来搞定,整个人类都是独立的个体,不相往来。(状态:单人——解决自己的衣食住行)

一旦多人配合作为生存的整体,力量就显得强大多了,自然也形成了族群:有些人种田厉害,有些人制作工具厉害,有些地方适合产出粮食,有些地方适合产出棉花,自然就形成了人的分群,地域的分群。当分工发生后,实际上每个人的生产力都得到了提高,因为做的都是每个人擅长的事情。

整个人群的生产力和抵抗环境的能力都得到了增强。为什么呢?因为每个人的能力和时间都是有限的,并且因为人的结构的限制,人同时只能专心做好一件事件,这样就导致了分工的产生。

既然分工发生了,原来由一个人干生存所必须的所有事情,就变成了很多不同分工的角色合作完成这些事情,这些人必须要通过某些机制合在一起,让每个人完成生存所必须的事情,这实际上页导致了交易的发生。

关于人的样例总结:

在每个人都必须完成自己所有必需品的生产的时候,是没有架构的。

一旦产生的分工,就把所有的事情,切分成由不同角色的人来完成,最后再通过交易,使得每个个体都拥有生活必须品,而不需要每个个体做所有的事情,只需要每个个体做好自己擅长的事情,并具备一定的交易能力即可。这就形成了社会的架构。

把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同的角色来完成这些分工,并通过建立不同部分相互沟通的机制,使得这些部分能够有机的结合为一个整体,并完成这个整体所需要的所有活动,这就是架构。

我们从中也可以归纳出这个架构产生的动力,或者说对这个人群社会形势做出的最高层次的决定

(为什么产生这个架构,这个架构有什么好处和优势,对这个架构的限制等等)

1.必须由人执行的工作(限制)

2.每个人的能力有限(限制)

3.每个人的时间有限(限制)

4.人对生活状况有更高的要求(需求)

5.提高社会效率(好处)

回顾:

回过头来看前面的两句话(软件系统的架构有两个要素):

先提软件系统的架构有两个要素:

·它是一个软件系统从整体到部分的最高层次的划分。

·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。

是否对其的理解要清晰一些了。

软件构架就是对软件系统各个元素的集合。

软件构架也涉及了软件系统的现实活动(商业用途、技术需求、硬件要求、涉众利益)

总结:什么是架构,就是:

1.根据要解决的问题,对目标系统的边界进行界定。

2.并对目标系统按某个原则的进行切分。切分的原则,要便于不同的角色,对切分出来的部分,并行或串行开展工作,一般并行才能减少时间。并对这些切分出来的部分,设立沟通机制。

3.这些部分之间能够进行有机的联系,合并组装成为一个整体,完成目标系统的所有工作。

架构实际上就是指人们根据自己对世界的认识,为解决某个问题,主动地、有目的地去识别问题,并进行分解、合并,解决这个问题的实践活动。架构的产出物,自然就是对问题的分析,以及解决问题的方案。

软件构架——是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。

时间: 2024-10-12 10:07:11

《软件构架实践》(一) —— 认识的相关文章

01读《软件构架实践》后感

寒假生活 读<软件构架实践>1-3章后感 看到书名,心里便对"软件构架"产生了一个模糊的轮廓,根据现有的经验,我的理解是:既然被称作是一个构架,那应该是一个系统的骨干之处,是撑起整个系统的复杂结构.可能是有的人早时设计一个系统的构架,后来被人们广泛使用,最终演变成为适用于多个系统的多样式构架,像我们学过的设计模式,被人熟练运用丰富后成为开发的经验. 在阅读之后,我找到了构架的确切定义:某个软件或计算机系统的软件构架是该系统的一个或多个结构,他们由软件元素(特征损失模型MOD

01软件构架实践阅读笔记之一

软件构架实践是我们下学期要学习的一本书,所以我想将这本书作为我阅读笔记的一本书. 在这本念书的第一章是总序,在其中提到: 1.所谓"正确的"就是在指功能.性能和成本几个方面都能满足用户要求且无缺陷: 2.所谓"无缺陷"就是在指编码后对软件系统进行彻底的穷举测试修复了所有的缺陷,保证所编写的代码本身不存在缺陷: 但是我们知道编写一个软件,并不可能很好的达到这种的效果,所以应该做到作者提到的"创造.应用.和推广"战略.但是我存在这样的问题: 1.创造

软件构架实践——阅读笔记05

寒假生活 读<软件构架实践>13-15章后感 万维网(world wide web简称web)之所以是成功的,源于在其构架结构中实现所期望的质量属性的方式,以及在面临动态的新需求时,重新确立这些结构的方式.web的成功意味着仅仅几年内,构架商业周期已进行了多次反复循环,每一次循环都产生了新的商机.新的需求和新的技术挑战.从1990年最早提出万维网以来,其目标.商业模型和构架都发生了很大的变化.没有人--包括客户.用户和设计师能够预见到万维网所经历的爆炸性的发展和演变. 本书第四部分内容介绍了用

《软件构架实践》阅读笔记2

今天开始阅读<软件构架实践>的第2章,其中第2章主要为我们讲述了什么是软件构架.其实我的印象中一直认为软件构架就是画几张图,然后描述软件各部分之间的关系,今天阅读了第2章,让我对软件构架的定义有了更深一步的认知. 首先通过一个例子引出了"软件构架"的确切定义:某个软件或计算机系统的软件构架是该系统的一个或多个结构,它们有软件元素.这些元素的外部可见属性以及这些元素之间的关系组成.那么怎么具体理解这一定义呢?1.构架定义了软件元素,构架中包含了关于各种元素应该如何彼此相关的信

《软件构架实践》阅读笔记1

<软件构架实践>阅读笔记01 今天我开始阅读<软件构架实践>这本书,这也是我们下学期的一门学位课,所以我不敢懈怠,从头开始读这本书.在我的原来的思想中,软件构架应该就是在编写软件之前,先要以画图或者文档的方式,对要编写的软件进行一个大体构架的描述,然后根据这个构架去编写软件,今天读这本书,让我对软件的构架有了新的认识. 记得老师曾经说过,我们这一个专业不缺人,缺的是人才.而只有对编程技术熟练到一定程度,才能去写构架,而且还不一定能做好,所以还是要好好学习这本书. 首先通过前面的导读

《软件构架实践》读后感02

<软件构架实践>读后感02 在我们了解了构架是什么以后,我们就要学会如何创建构架,又因为质量属性的实现对系统的成功至关重要,所以我又学习了质量属性的意义和如何实现质量属性. 我们的系统开发出来是给人使用的,一般都会用作商业用途.商业目的决定了系统的一些质量属性,但是质量属性又高于系统的一些基本要求.质量属性并不是孤立的个体,每一个质量属性都会对系统中的其他的质量属性产生影响.质量属性分为3类:1.系统的质量属性:2.受构架影响的商业属性:3.与构架本身相关的一些质量属性. 系统的质量属性需要应

《软件构架实践》阅读笔记3

<软件构架实践>阅读笔记03 今天开始阅读<软件构架实践>的第3章,这一章主要是通过3个相互关联但又不相同的结构对航空电子系统 A-7E系统进行了描述,使我们明白了 模块分解结构.使用结构和进程结构是如何相互补充.共同描绘系统的蓝图的. 首先简要了解一下A-7E这个软件系统,这个系统主要是读取各传感器的数据,更新座舱中的显示内容,通过这个系统,要与飞机上的近24中航空电子设备进行通信,以达到辅助飞行员正确投弹的目的. 首先通过分解结构来描述这个系统,这里所说的"分解&qu

《软件构架实践》16-19章读后感

今天,我阅读了<软件构架实践>16-19章,也就是全书的最后4章. 第16章主要介绍了Sun Microsystems的Java 2Enterprise Edition(J2EE)的架构规范,同时介绍了该规范的重要组成部分-Enterprise JavaBeans(EJB).对以Java语言编写的分布式面向对象程序,以及各种Java组件可以如何进行通信和交互,J2EE提供了一个标准的描述.EJB描述了服务器端基于组件的编程模型.作为一个整体,J2EE还描述了各种企业范围的服务.最后,它描述了厂

《软件构架实践》阅读笔记5

<软件构架实践>阅读笔记5 今天开始学习<软件构架实践>的第5章,第5章主要讲的是实现质量属性.这一章主要是针对第4章所说明的质量属性,来提供相应的实践战术. 首先我们要了解一下什么是战术.他可以使一个设计具有可移植性,一个设计具有高性能,而另一个设计具有集成性.实现这些质量属性依赖于基本的设计决策.战术就是影响质量属性响应控制的设计决策. 第一个是可用性的战术,可用性的战术主要是用于阻止错误发展成为故障,至少能把错误的影响限制在一定范围内,从而使修复变为可能.它的战术主要包括 1

《软件构架实践》13-15章读后感

今天,我阅读了<软件构架实践>13-15章. 第13章介绍了万维网,它或许是能够说明构架商业周期的最生动的实例.自从1990年最早提出万维网以来,其目标.商业模型和构架都发生了很大的变化.没有人-包括客户.用户和设计师-能够预见到万维网所经历的爆炸性的发展和演变.在本章中,我们将从构架商业周期的角度对万维网做出诠释,并研究万维网构架的变化是如何适应不断变化的目标和各种商业需求的.我们首先从对万维网的最初需求和构架商业周期各要素的角度来考察一下万维网的起源,然后看一下作为ABC的结果,服务器端的