1.软件体系结构的概念和研究内容?
软件体系结构的概念
·软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。·软件体系结构不仅指定了系统的组织(organ i zation)结构和拓扑(topology)结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策。
软件体系结构的研究内容:
·软件体系结构理论模型的研究:如何表示体系结构的问题
软件体系结构描述的研究:规范化的体系结构描述语言(ADL)
体系结构设计研究:体系结构设计方法、体系结构风格以及计算机辅助实现等方面的研究体系结构分析与验证基于体系结构的软件开发过程的研究研究特定领域的体系结构框架.
2.软件体系结构的发展历程?
基础研究阶段:1985-1994年,一些重要的基本思想和基础概念开始浮出水面
概念确立阶段:1992-1996年,软件体系结构基本概念和模型确立,架构视图
探索发展阶段:1995-2000年,ACME体系结构交互语言,为不同体系结构描述语言之间的交互提供一个统一平台,体系结构评估方法SAAM->ATAM
普及应用阶段:2000年至今,出现新架构风格,web service,进入本科教育
3.组成派和决策派各自的思路?
组成派角度
体系结构=构件(组件)+连接件+约束
强调软件架构是“组件及组件之间的交互”。
“组件”体现在:
1)“业务层”和“展现层”就是组件,粒度很粗,完全是黑盒:
2)设计中PrgMgtModel,GanttChart和GanttChartImpl等关键类。“业务层”和“展现层”两个组件在某种程度上从黑盒变成了灰盒,提供更具体的开发指导。
“交互”体现在:
1)“业务层”和“展现层”两个粗粒度的组件之间的交互:展现层从业务层“读取数据”
2)“读取数据”这一交互已经“具体落实”成了“CanttChartImpl从PrgMgtModel读取数据”。
理解架构:决策派角度
体系结构=重要决策集合
强调架构不仅包括关于软件系统的组织,元素、子系统、架构风格等几类决策还包括关于众多非功能需求的决策。
体现在:
1)“业务层”和“展现层”分离,体现了软件架构概念中的“软件系统的组织”决策:
2)为了防止 PMSuite“绑死”在特定甘特图绘制包上,设计中引入自主定义GanntChart接口,让实现该接口的GanntChartImpl转而调用第三方SDK,使架构具有弹性(如果有更强大的甘特图程序包时,可以方便仅更改GanttChartImpl,而其他组件不用更改)。
4.构件、连接件、约束的概念?
构件是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存 储.
连接件表示了构件之间的交互,
约束是指按照什么标准或要求将构件连接起来。
5.设计模型与软件架构的关系?
软件架构与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题及解决该问题的方案的描述,它比软件架构更抽象;软件架构可以用代码表示,也能直接执行或复用,而对设计模式而言,只有实例才能用代码表示。设计模式是比软件架构更小的元素,一个软件架构中往往含有一个或多个设计模式,软件架构总是针对某一特定应用领域,但同一设计模式却可适用于各种应用。可以说,软件架构是应用程序,而设计模式是开发应用程序的具体方法
6.软件架构与软件框架的区别与联系?
呈现形式不同。架构的呈现形式是一个设计规约,而框架则是程序代码。
目的不同。架构的目的是指导一个软件系统的实施与开发;而框架的目的是设计复用。因此,一个框架可有其架构,用于指导该框架的开发,反之不然。
有种特殊的架构,DSSA(领域特定体系结构)其目的也是为了复用。
架构风格在其用程序代码实现后就成了Corba、COM架构框架,也叫中间件集成框架,或对象中间件。
7.软件体系结构研究意义?
1.软件体系结构是风险承担者进行交流的手段
2.软件体系结构是早期设计决策的体现
3.软件体系结构是可传递和可重用的模型
8.软件系统质量属性中,高可用、高性能、高扩展性的思路?
软件的高可用性是指软件的不间断运行能力,它一方面要求软件所依赖的设备本身具有高可靠性,另一方面必须从软件的设计入手,实现一个高可用性的软件产品。
软件的可扩展性表现为基础设置不需要经常变更,应用之间较少依赖或耦合,可以对需求变更快速响应。
软件的高性能是指软件响应及时度满足用户要求的程度很高。