1.基于构件的软件开发方法(CBSD)
利用模块化方法,将整个系统模块化,并在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段,高效率、高质量地构造应用软件系统的过程。开发过程是构件的组装,维护过程是构件升级、替换和扩充。
分为5个阶段:需求分析和定义、架构设计、构件库建立、应用软件构建、测试和发布。
构件是语义完整、语法正确和有可复用价值的单位软件,它是语义描述、通信接口和实现代码的复合体。
2.软件架构设计的作用
软件架构设计是降低成本、改进质量、按时和按需交付产品的关键因素,具体体现在以下8个方面:
架构设计能够满足系统的品质;如性能、安全性、可维护性、可用性、可靠性、可测试性等;
架构设计使得利益相关人达成一致的目标;
架构设计能够支持计划编制过程;
架构设计对系统开发的指导性
架构设计能够有效地管理复杂性;
架构设计为复用奠定了基础;
架构设计能够降低维护费用;
架构设计能够支持冲突分析。
3.软件架构风格
分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格
数据流风格:批处理序列,管道/过滤器
调用/返回风格:主程序/子程序,数据抽象和面向对象,层次结构
独立构件风格:进程通信、事件驱动的系统
虚拟机风格:解释器、基于规则的系统
仓库风格:数据库系统、黑板系统、超文本系统
4.设计模式
桥接模式将抽象部分与它的实现部分分离,使他们可以独立地变化,它是一种对象结构型模式;
命令模式是一种对象的行为型模式,类似于传统程序设计方法中的回调机制,它将一个请求封装为一个对象,从而使得可用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。
组合模式又称为整体--部分模式,属于对象的结构模式。
装饰模式是一种对象结构型模式,可动态地给一个对象增加一些额外的职责。它可以在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责。
适配器模式将一个接口转换成客户希望的另一个接口,从而使接口不兼容的那类可以一起工作。
迭代器模式是一种对象的行为型模式,提供了一种方法来访问聚合对象,而不用暴露这个对象的内部标识。
访问者模式是一种对象的行为型模式,用于表示一个作用于某对象结构中的各元素的操作,它使得用户可以在不改变各元素的类的前提下作用于这些元素的新操作。
观察者模式又称为发布---订阅模式、模型--视图模式、源--监听器模式,是一种对象的行为型模式,它定义了对象间的一种一对多的依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象都得到通知并被自动更新。
责任链模式是一种对象的行为型模式,避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链。
备忘录模式在确保不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。
中介者模式用一个中介对象封装一系列的对象交互。
代理模式为某个对象提供一个代理,并由代理对象控制对原对象的引用。
外观模式要求与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面。
抽象工厂模式提供了一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。
策略模式定义了一系列算法,将每一个算法封装起来,并让它们可以相互替换。
状态模式允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。
5.ATAM
ATAM是基于架构的评估方法,评估活动包括9个步骤:描述ATAM方法、描述业务动机、描述架构、确定架构方法、生成质量属性效用树、分析架构方法、讨论场景和对场景分级、分析架构方法、描述评估结果。
识别风险点、非风险点、敏感点和权衡点是ATAM方法中的重要步骤。
风险点是指潜在的、存在问题的架构决策所带来的隐患;
敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性;
权衡点是指影响多个质量属性的特性,是多个质量属性的敏感点。
6.特定领域软件架构(DSSA)
DSSA是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构,目前对DSSA的统一定义还不一致。
DSSA的基本活动:
........领域分析:这个阶段的主要目标是获得领域模型,领域模型描述领域中系统之间共同的需求。
........领域设计:这个阶段的主要目标是获得DSSA,DSSA描述了领域模型中的需求的解决方案;
........领域实现:基于领域模型和DSSA开发和组织可重用的信息。这是一个反复、逐渐求精的过程。
参与DSSA的人员:领域专家、领域分析人员、领域设计人员、领域实现人员。
DSSA的建立过程:
........定义领域范围、定义领域特定的元素、定义领域特定的设计和实现需求约束、定义领域模型和架构、产生。
7.质量属性
性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的数量。
可靠性:指软件系统在应用或者系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。
可用性:指系统能够正常运行的时间比例。
安全性:指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。
可修改性:指能够快速地以较高的性能价格比对系统进行变更的能力。
功能性:指系统能够完成所期望的工作的能力。
可变性:指体系结构经过扩充或者变更而成为新体系结构的能力。
互操作性:指系统模块、子程序、或者外界的相互作用。