特定领域软件架构(DSSA)—基本活动
特定领域软件架构(DSSA)—领域分析机制
特定领域软件架构(DSSA)—领域分析机制
- 1、领域专家:有经验的用户、从事该领域中系统的需求分析、设计、实现 以及项目管理的有经验的软件工程师的等。 领域专家的主要任务包括提供关于领域中系统的需求规约和实现的知识。
- 2、领域分析人员:领域分析人员应由具有知识工程背景的有经验的系统分 析员来担任。
- 3、领域设计人员:领域设计人员应由有经验的软件设计人员来担任。
- 4、领域实现人员:领域实现人员应由有经验的程序设计人员来担任。
特定领域软件架构(DSSA)—建立过程
特定领域软件架构(DSSA)—建立过程
基于架构的软件开发方法—基于架构的软件设计(ABSD)
- ABSD方法是架构驱动,即强调由业务、质量和功能需求的组合驱动架构设计
- 使用ABSD方法,设计活动可以从项目总体功能框架明确就开始,这意味着需求 获取和分析还没有完成(甚至远远没有完成),就开始了软件设计
- ABSD方法有三个基础,第一个基础是功能的分解,在功能分解中,ABSD方法使 用已有的基于模块的内聚和藕合技术;第二个基础是通过选择架构风格来实现 质量和业务需求:第三个基础是软件模板的使用,软件模板利用了一些软件系 统的结构
- ABSD方法是递归的,且迭代的每一个步骤都是清晰地定义的。因此,不管设计 是否完成,架构总是清晰地,这有助于降低架构设计的随意性
基于架构的软件开发方法—开发过程
基于架构的软件开发方法—开发过程
软件架构评估
- 1、为什么要进行架构评估
- 2、架构评估到底评什么
- 3、架构评估怎么评
软件架构评估—质量属性
- 1、性能(performance)是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者 在某段时间内系统所能处理的事件的个数。 代表参数:响应时间、吞吐量 设计策略:优先级队列、资源调度
- 2、可靠性(reliability)是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持系统的 功能特性的基本能力 代表参数:MTTF、MTBF 设计策略:冗余、心跳线
- 3、可用性(availability)是系统能够正常运行的时间比例。经常用两次故障直接的时间长度或在出 现故障时系统能够恢复正常的速度来表示。 代表参数:故障间隔时间 设计策略:冗余、心跳线
- 4、安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒 绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。 设计策略:追踪审计、信息隐藏
- 5、可修改性 可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以 某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
- 6、功能性(functionality)是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多 或大多数构件的相互协作。
- 7、可变性(changeability)是指系统结构经扩充或变更而成为新体系结构的能力。这种新体系结构 应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为 一系列产品(例如,软件产品线)的基础时,可变性是很重要的。
- 8、互操作性 作为系统组成部分的软件不是独立存在的,经常与其他系统的自身环境相互作用。为了支持互 操作性(interoperation),软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的 软件入口。程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,这种互操 作性也影响应用的软件体系结构。
软件架构评估—质量属性
- (1)用户提交搜索请求后,系统必须在1秒内显示结果;(性能)
- (2)用户信息数据库授权必须保证99.9%可用
- (3)系统由MySQL数据库升级为Oracle数据库,必须在1人月内完成;(可修改性)
- (4)主服务器出现严重问题无法提供服务时,备用系统10分钟内能接替其工作;(可用性)
- (5)需要在3人周内为系统添加一种新的支付方式—支付宝;(可修改性)
- (6)视频点播时,超清模式必须保证画面具有1280*720的分辨率;(性能)
- (7)主站点断电后,需要在3秒内将访问请求重定向到备用站点;(可用性)
软件架构评估
风险点:系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的的隐患 敏感点是指为了实现某种特定的质量属性,一个或多个构件所具有的特性 权衡点是影响多个质量属性的特性,是多个质量属性的敏感点
软件架构评估—基于场景的方式
- 确定应用领域的功能和软件架构的结构之间的映射
- 设计用于体现待评估质量属性的场景
- 分析软件架构对场景的支持程度
- 架构权衡分析法(ATAM)
- 软件架构分析法(SAAM)
- 成本效益分析法(CBAM)