系统架构设计师:软件架构

1.基于构件的软件开发方法(CBSD)

        利用模块化方法,将整个系统模块化,并在必定构件模型的支持下,复用构件库中的一个或多个软件构件,经过组合手段,高效率、高质量地构造应用软件系统的过程。开发过程是构件的组装,维护过程是构件升级、替换和扩充。css

        分为5个阶段:需求分析和定义、架构设计、构件库创建、应用软件构建、测试和发布。算法

        构件是语义完整、语法正确和有可复用价值的单位软件,它是语义描述、通讯接口和实现代码的复合体。数据库

2.软件架构设计的做用

        软件架构设计是下降成本、改进质量、按时和按需交付产品的关键因素,具体体如今如下8个方面:设计模式

        架构设计可以知足系统的品质;如性能、安全性、可维护性、可用性、可靠性、可测试性等;安全

        架构设计使得利益相关人达成一致的目标;架构

        架构设计可以支持计划编制过程;模块化

        架构设计对系统开发的指导性性能

        架构设计可以有效地管理复杂性;测试

        架构设计为复用奠基了基础;spa

        架构设计可以下降维护费用;

        架构设计可以支持冲突分析。

3.软件架构风格

        分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格       

数据流风格:批处理序列,管道/过滤器

        调用/返回风格:主程序/子程序,数据抽象和面向对象,层次结构

        独立构件风格:进程通讯、事件驱动的系统

        虚拟机风格:解释器、基于规则的系统

        仓库风格:数据库系统、黑板系统、超文本系统

4.设计模式

        桥接模式将抽象部分与它的实现部分分离,使他们能够独立地变化,它是一种对象结构型模式;

        命令模式是一种对象的行为型模式,相似于传统程序设计方法中的回调机制,它将一个请求封装为一个对象,从而使得可用不一样的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操做。

        组合模式又称为总体--部分模式,属于对象的结构模式。

        装饰模式是一种对象结构型模式,可动态地给一个对象增长一些额外的职责。它能够在不影响其余对象的状况下,以动态、透明的方式给单个对象添加职责。

        适配器模式将一个接口转换成客户但愿的另外一个接口,从而使接口不兼容的那类能够一块儿工做。

        迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部标识。

        访问者模式是一种对象的行为型模式,用于表示一个做用于某对象结构中的各元素的操做,它使得用户能够在不改变各元素的类的前提下做用于这些元素的新操做。

        观察者模式又称为发布---订阅模式、模型--视图模式、源--监听器模式,是一种对象的行为型模式,它定义了对象间的一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都获得通知并被自动更新。

        责任链模式是一种对象的行为型模式,避免请求发送者与接收者耦合在一块儿,让多个对象都有可能接收请求,将这些对象链接成一条链。

        备忘录模式在确保不破坏封装的前提下,捕获一个对象的内部状态,并在该对象以外保存这个状态,这样能够在之后将对象恢复到原先保存的状态。

        中介者模式用一个中介对象封装一系列的对象交互。

        代理模式为某个对象提供一个代理,并由代理对象控制对原对象的引用。

        外观模式要求与一个子系统的通讯必须经过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面。

        抽象工厂模式提供了一个建立一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。

        策略模式定义了一系列算法,将每个算法封装起来,并让它们能够相互替换。

        状态模式容许一个对象在其内部状态改变时改变它的行为,对象看起来彷佛修改了它的类。

5.ATAM

        ATAM是基于架构的评估方法,评估活动包括9个步骤:描述ATAM方法、描述业务动机、描述架构、肯定架构方法、生成质量属性效用树、分析架构方法、讨论场景和对场景分级、分析架构方法、描述评估结果

        识别风险点、非风险点、敏感点和权衡点是ATAM方法中的重要步骤。

        风险点是指潜在的、存在问题的架构决策所带来的隐患;

        敏感点是指为了实现某种特定的质量属性,一个或多个构件所具备的特性;

        权衡点是指影响多个质量属性的特性,是多个质量属性的敏感点。

6.特定领域软件架构(DSSA)

        DSSA是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构,目前对DSSA的统必定义还不一致。

        DSSA的基本活动

........领域分析:这个阶段的主要目标是得到领域模型,领域模型描述领域中系统之间共同的需求。

........领域设计:这个阶段的主要目标是得到DSSA,DSSA描述了领域模型中的需求的解决方案;

........领域实现:基于领域模型和DSSA开发和组织可重用的信息。这是一个反复、逐渐求精的过程。

        参与DSSA的人员:领域专家、领域分析人员、领域设计人员、领域实现人员。

        DSSA的创建过程

........定义领域范围、定义领域特定的元素、定义领域特定的设计和实现需求约束、定义领域模型和架构、产生。

7.质量属性

        性能:指系统的响应能力,即要通过多长时间才能对某个事件作出响应,或者在某段时间内系统所能处理的事件的数量。

        可靠性:指软件系统在应用或者系统错误面前,在乎外或错误使用的状况下维持软件系统的功能特性的基本能力。

        可用性:指系统可以正常运行的时间比例。

        安全性:指系统在向合法用户提供服务的同时可以阻止非受权用户使用的企图或拒绝服务的能力。

        可修改性:指可以快速地以较高的性能价格比对系统进行变动的能力。

        功能性:指系统可以完成所指望的工做的能力。

        可变性:指体系结构通过扩充或者变动而成为新体系结构的能力。

        互操做性:指系统模块、子程序、或者外界的相互做用。