目录
一、软件架构风格(其它分类)
1、闭环控制结构(过程控制)
2、C2风格
3、MDA(模型驱动架构 Model Driven Architecture)
4、特定领域软件架构(DSSA)
4.1 DSSA基本活动及产出物:
4.2 DSSA类型:
4.3 参与DSSA的人员:
4.4 建立过程:
4.5 三层次模型:
二、软件架构评估
1、质量属性
1.1 性能
1.2 可用性
1.3 安全性
1.4 可修改性
1.5 易用性
1.6 可测试性
一、软件架构风格(其它分类)
1、闭环控制结构(过程控制)
适合嵌入式系统,用于解决简单闭环控制问题。
经典应用:空调温控,定速巡航。
2、C2风格
C2架构的基本规则:
(1)构件和连接件都有一个顶部和底部。
(2)构件的顶部要连接到连接件的底部,构件的底部要连接到连接件的顶部,构件之间不允许直连。
(3)一个连接件可以和任意数目的其他构件和连接件连接。
(4)当两个连接件进行直接连接时,必须由其中一个底部连接到另一个底部。
3、MDA(模型驱动架构 Model Driven Architecture)
形式化开发方法,数学模型为基础,层层映射机制。
- Model ? 客观事物的抽象表示
- Model-Driven ? 使用模型完成软件的分析、设计、构建、部署、维护等各开发活动
- Architecture ? 构成系统的部件、连接件及其约束的规约
- MDA 起源于分离系统规约和平台实现的思想
- MDA的主要目标:
(1)Portability(可移植性)(2)interoperability(互通性)
(3)Reusability(可重用性)
- MDA核心模型
(1)计算无关模型(CIM):对某具体行业内的一个项目的业务需求及其系统功能需求进行分析。(行业共性需求)
(2)平台独立模型(PIM):具有高抽象层次、独立于任何实现技术的模型。(需求层级)
(3)平台相关模型(PSM):为某种特定实现技术量身定做,让你用这种技术中可用的实现构造来描述系统的模型。PIM会变换成一个或多个PSM。
(4)代码Code:用源代码对系统的描述(规约)。每个PSM都将变换成代码。
4、特定领域软件架构(DSSA)
定义:特定领域软件架构以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,支持一个特定领域中多个应用的生成。
4.1 DSSA基本活动及产出物:
(1)领域【分析】 获得 领域模型
(2)领域【设计】 获得 特定领域软件架构(DSSA)
(3)领域【实现】 获得 开发和组织可复用信息
4.2 DSSA类型:
(1)垂直域:相同领域,深入。
(2)水平域:不同领域,平移。
4.3 参与DSSA的人员:
(1)领域专家:有经验的用户、从事该领域中系统的需求分析、设计、实现以及项目管理的有经验的软件工程师等。领域专家的主要任务包括提供关于领域中系统需求规约和实现的知识。
(2)领域分析人员:领域分析人员应由具有知识工程背景的有经验的系统分析员来担任。
(3)领域设计人员:领域设计人员应由有经验的软件设计人员来担任。
(4)领域实现人员:领域实现人员应由有经验的程序设计人员来担任。
4.4 建立过程:
4.5 三层次模型:
领域开发环境就是开发行业领域中的共性的东西,领域特定的应用开发环境就是在原产品上完成对客户的个性化开发,也就是二次开发。应用执行环境就是运行环境,跟开发无关。
二、软件架构评估
1、质量属性
四个主要质量属性:性能、可用性、安全性、可修改性。
1.1 性能
性能(performance)是指系统的响应能力,既要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件个数。
例如:
(1)同时支持1000并发;
(2)响应时间小于1s;
(3)显示分辨率达4K;
1.2 可用性
可用性(availability)是系统能够正常运行的时间比例。经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。
例如:
(1)主服务器故障,1分钟内切换至备用服务器;
(2)系统故障,一小时内修复;
(3)系统支持7 * 24小时工作;
1.3 安全性
安全性(security)是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性有又可划分为机密性【信息不泄漏给未授权的用户】、完整性【防止信息被篡改】、不可否认性【不可抵赖】及可控性【对信息的传播及内容具有控制能力】等特性。
例如:
(1)可抵御SQL注入攻击;
(2)对计算机的操作都有完整记录;
(3)用户信息数据库授权必须保证99.9%可用;
1.4 可修改性
可修改性(modifiability)是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。
例如:
(1)更改系统报表模块,必须在2人周内完成;
(2)对Web界面风格进行修改,修改必须在4人月内完成;
1.5 易用性
易用性关注的是对用户来说完成某个期望任务的容易程度和系统所提供的用户支持的种类。
例如:
(1)界面友好
(2)新用户学习使用系统时间不超过2小时
1.6 可测试性
软件可测试性是指通过测试揭示软件缺陷的容易程度。
例如:
(1)提供远程调试接口,支持远程调试。