博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
架构之美第八章-软件架构的含义
阅读量:6965 次
发布时间:2019-06-27

本文共 854 字,大约阅读时间需要 2 分钟。

       
如果认为“架构”是一个简单的实体,能够用一份文档或一张图纸来描述,那就错了。架构师必须做出许多设计决定。要想有用,这些决定必须用文档记录下来,这样就能够
进行复审、讨论、修改和批准,然后作为后续决定和构建时的约束。对于软件系统,这些设计决定包括行为上的和结构上的。
        外部行为描述展示了产品如何与它的用户、其他系统和外部设备进行交互,这应该表现为需求。结构描述展示了产品如何划分为多个部分,以及这些部分之间的关系。我们还
需要内部行为描述,用于描述组件之间的交互接口。结构上的描述常常展示相同部分的一些不同视图,因为不可能把所有信息以有意义的方式组织到一张图纸或一份文档中。

一个视图中的组件,可能是另一个视图中一个组件的一个部分。

         软件架构常常表现为分层的层次结构,这种层次结构将几种不同的结构放在一张图中。20世纪70年代,Parnas指出“层次结构”这个术语已经被滥用,然后精确地定义了它,

并给出了几个不同结构的例子,它们在设计不同系统时实现了不同的目的(Parnas 1974)。将架构的结构描述为一组视图(view),每个视图关注不同的部分,现在已成为了广泛接受的标准架构实践(Clements等2003; IEEE 2000)。我们将使用“架构”这个词来代指一组有标注的图纸和功能描述,它说明了设计和构建一个系统时所使用的结构。在软
件开发社区中,针对这样的图纸和描述,人们使用并建议了许多不同的形式。在Hoffman和Weiss(2000,第14章和第16章)的著作中可以看到一些例子。

         一个程序或计算系统的软件架构是系统的一种结构或一组结构,它包含软件元素、这些元素的外部可见的属性,以及元素之间的关系。“外部可见”的属性是其他元素对该元素可以做出的假定,诸如它提供的服务、执行时的特征、错误处理、共享资源的使用等。

—Len Bass、Paul Clements和Rick Kazman
《Software Architecture in Practice, Second Edition》

转载地址:http://fcwsl.baihongyu.com/

你可能感兴趣的文章
深入理解乐观锁与悲观锁
查看>>
CocoaPods的使用
查看>>
find命令详解
查看>>
变频电源内部IGBT模块的作用是什么样的
查看>>
手机PDF文件怎么压缩得更小,PDF文件如何压缩?
查看>>
超声波清洗机对人体有辐射,有伤害吗?
查看>>
区块链成多地政府工作报告新热词
查看>>
论职场沟通的重要性
查看>>
velocity模板中后台返回html,前端无法跳转页面
查看>>
AJPFX:如何保证对象唯一性呢?
查看>>
天禹智控--现场标准气体如何使用?
查看>>
CSS3:border-radius隐藏的威力
查看>>
springMVC 返回类型选择 以及 SpringMVC中model,modelMap
查看>>
存储型XSS进阶 [猜测规则,利用Flash addCallback构造XSS]
查看>>
[Openshift Origin 3]OpenShift 3 : 基于Docker的私有PaaS平台
查看>>
php的执行时间啊
查看>>
jetty/eclipse:A full JDK (not just JRE) is require
查看>>
linux awk命令详解
查看>>
angular中将$sce服务封装成过滤器
查看>>
html 可拖动宽度的div方法
查看>>