软件架构的两大流派:组成派、决策派
2016-06-16 12:56
507 查看
Mary Shaw在《软件体系结构:一门初露端倪学科的展望》中,为“软件架构”给出了精致利索的定义:
软件系统的架构将系统描述为计算组件及组件之间的交互(The architecture of a software system defines that system in terms of computational components and interactions among those components.)。
必须说明,上述定义中的“组件”是广泛意义上的元素之意,并不是指和CORBA、DCOM、EJB等相关的专有的组件概念;“计算组件”也是泛指,其实计算组件可以进一步细分为处理组件、数据组件、连接组件等。总之,“组件”可以指子系统、框架、模块、类等不同粒度的软件单元,它们可以担负不同 的计算职责。
软件架构包含了关于以下问题的重要决策:
l 软件系统的组织;
l 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;
l 如何组合这些元素,使它们逐渐合成为更大的子系统;
l 用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合。
l 软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制及权衡、以及美学等。
软件系统的架构将系统描述为计算组件及组件之间的交互(The architecture of a software system defines that system in terms of computational components and interactions among those components.)。
必须说明,上述定义中的“组件”是广泛意义上的元素之意,并不是指和CORBA、DCOM、EJB等相关的专有的组件概念;“计算组件”也是泛指,其实计算组件可以进一步细分为处理组件、数据组件、连接组件等。总之,“组件”可以指子系统、框架、模块、类等不同粒度的软件单元,它们可以担负不同 的计算职责。
软件架构包含了关于以下问题的重要决策:
l 软件系统的组织;
l 选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;
l 如何组合这些元素,使它们逐渐合成为更大的子系统;
l 用于指导这个系统组织的架构风格:这些元素以及它们的接口、协作和组合。
l 软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:使用、功能性、性能、弹性、重用、可理解性、经济和技术的限制及权衡、以及美学等。
相关文章推荐
- [置顶] MVP:有呼吸的Android架构
- 架构师修炼之道
- 学习c#不容错过的网站
- 如何做好网站seo
- 有哪些优秀的科学网站和科研软件推荐给研究生?
- 使用HTML5的链接预取功能(link prefetching)给网站提速
- gearman性能与应用架构设计
- [转]实战解析Android架构设计原则
- Java分布式应用技术架构介绍
- Android 振动器系统架构
- iOS 制作自己的FrameWork遇到的一些问题 以及FrameWork通过包合并支持arm64 armv7 i386 架构
- mysql高可用方案MHA介绍
- 分享一个学习php的网站
- Linux的架构(硬件与应用的曲折...)
- Goodle Clean设计架构
- 理解RESTFul架构
- 高可用集群HA架构搭建
- 万事开头难,网站运营怎么寻找“种子用户”?
- Service Oriented 的 iOS 应用架构
- 基于SWOOLE的分布式SOCKET消息服务器架构