软考高级系统架构师笔记

软件架构设计

概念

4+1视图

UML的4+1视图

架构风格

优缺点:

层次架构

两层C/S --> 三层C/S --> 三层B/S --> 混合

MVC

J2EE中的例子:

MVP

P: Presenter, 实现了M和V的完全解耦

MVVM

VM: View Model, 双向绑定, js View: html, css M: Java

RIA

**RIA(Rich Internet Applications,富互联网应用)**是一种结合了传统桌面应用程序的响应性和Web应用程序的可访问性与易更新性的架构风格。它通过在客户端(通常是Web浏览器)运行富客户端应用程序,显著提升用户体验和应用性能。 一个典型的RIA应用是Google Docs,它允许用户在浏览器中像使用桌面应用一样编辑文档和表格,并支持实时协作,而无需刷新页面。

常用的RIA技术包括:

AJAX:通过XMLHttpRequest实现异步数据交互,提升界面响应性。

Flex:基于MXML和ActionScript开发企业级应用。

JavaFX:支持跨设备运行的Java技术。

Silverlight:微软推出的跨平台插件,支持多种编程语言。

SOA

服务,构件,对象

实现方式:Web Service, ESB

MDA

Model Driven Architeture

Model: 客观事物的抽象表示

3种核心模型

ADL

架构描述语言,Architecture Description Language 三个基本元素:构件,连接件,架构配置

DSSA

特定领域软件架构

基本活动:领域分析,领域设计,领域实现 参考的4种角色:领域专家,领域分析师,领域设计师,领域实现人员

ABSD

基于架构的软件开发方法,Architecture based software development

强调业务,质量和功能需求,有3个基础:

用例用来描述功能需求,特定场景用来描述质量需求

6个子过程:

架构评估

质量属性包括

几个点:

评估方法:

质量效用树:

构件与中间件

构件的组装方式:

构件组装失配的情况:

三大构件标准:

生命周期

需求分析 --> 设计 --> 实现 --> 构件组装 --> 部署 --> 后开发

软件工程

软件开发方法

结构化 --> 面向对象 --> 面向服务

开发模型

逆向工程

逆向工程是设计的恢复过程

需求工程

DFD图:data flow diagram STD图: state transform diagram

软件系统建模

系统设计

数据库

三级模式和两级映像

三级模式

两级映像: