1、 架构设计概念(1-2 大概率)
软件工程的一部分(非必要),需求分析和概要设计之间,主要关注软件构件的结构,属性和交互作用,并通过多种视图全面描述特定系统的架构
2、 架构设计阶段(1-2 大概率)
以下各阶段是架构设计阶段内容,非软件工程阶段
需求分析:根据需求模型构建软件构架模型、模型转换的可追踪性
设计阶段:组成元素(构件,连接件)、体系结构描述语言ADL、4 1视图
实现阶段:项目组织结构、配置管理、中间件、程序设计语言、逐渐细化
架构组装阶段、部署阶段、后开发阶段
架构描述语言(ADL)是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言,主要包括组件、组件接口、连接件和架构配置。
4 1视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。其中逻辑视图用于描述对象模型,并说明系统应该为用户提供哪些服务。当采用面向对象的设计方法描述对象模型时,通常使用类图表达类的内部属性和行为,以及类集合之间的交互关系;采用状态图定义对象的内部行为。
3、 基于架构的软件设计方法ABSD(2-4 必考)
ABSD方法是体系结构驱动,即指构成体系结构的商业、质量和功能需求的组合驱动。在基于体系架构软件设计方法中,采用视角与视图来描述软件架构,采用用例来描述功能需求,采用质量场景来描述质量需求
ABSD方法的三个基础
第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术
第二个基础是通过选择体系结构风格来实现质量和商业需求
第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构
ABSD方法的四个过程
体系结构需求:需求获取->标识构件(生成类图->对类进行分组->把类打包成构件)->需求评审
体系结构设计:提出体系结构模型->映射构件->分析构件相互作用->产生体系结构->设计评审
体系结构的文档化:主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书
体系结构复审:一个迭代的过程,目的是标识出潜在的风险尽早发现体系结构设计中的缺陷和错误。在一个主版本的软件体系结构分析之后,要安排一次有外部人员(用户代表和领域专家)参加的复审。
4、 软件架构风格(3-6 必考)
软件架构风格描述某一特定领域中的系统组织方式和惯用模式,一个体系结构定义一个词汇表和一组约束,反应了领域中的众多系统所共有的结构和语义特征,强调对架构的设计的重用
1、 特定领域软件体系结构DSSA(2-3 必考)
特定领域软件架构是在一个特定应用领域中,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,为一组应用提供组织结构参考的标准软件体系结构。通常具有三个层次的系统模型,包括领域开发环境(领域架构师)、领域特定应用开发环境(应用工程师)和应用执行环境(操作员)
参与角色:领域专家、领域分析人员、领域设计人员、领域实现人员。
基本过程:领域分析、领域设计、领域实现
领域分析:获得领域模型。领域模型描述需求,即领域需求。
领域设计:获得特定领域软件架构。领域模型中需求模型的解决方案
领域实现:依据领域模型和DSSA(特定领域架构)开发和组织可重用信息,并对基础软件架构进行实现。
2、 软件质量属性(6 必考)
质量属性设计策略
可用性:心跳、ping/echo、冗余、进程监视器
可修改性:抽象、信息隐藏、限制通信路径、运动时注册
性能:优先级队列、增加计算资源、减少计算开销、并发机制、资源调度
安全性:用户认证、用户授权、追踪审计、限制访问
3、 架构评估(2-3 必考)
敏感点:为了实现某种特定的质量属性,一个或多个具有的特性。
平衡点:影响多个质量属性的特征,是多个质量属性的平衡点。
风险点:某些做法有一些隐患可能导致一些问题
非风险点:某些做法是可行的,可接受的
架构评估方法:基于调查问卷或检查表方式,基于场景的方式,基于度量的方式
基于场景的方式:架构权衡分析法ATAM,软件架构分析方法SAAM
场景设计:刺激(事件),环境(事件发生环境),响应(架构响应刺激过程)
ATAM:系统架构评估方法,在系统开发之前,针对性能、可用性、安全性、和可修改性等质量属性进行评价和折中。ATAM可以分为4个主要的活动阶段,包括场景和需求收集、体系结构视图和场景实现、属性模型构造和分析。架构决策与折中,整个评估强调以属性作为架构评估核心概念
SAAM:主要输入是问题描述、需求说明和架构描述,其分析过程主要包括场景开发、架构描述、单个场景评估、场景交互和总体评估