NoteDeep
软件体系结构
/
3 软件体系结构的研究与发展
课程简介
1 IT往事
2 概述
3 软件体系结构的研究与发展
4 软件体系结构的层次性
5 软件体系结构的设计原理
6 部件与连接器
7 软件体系结构的一般描述
8 设计模式
软件工程设计和软件体系结构
软件设计的目标
在
时间个各类环境资源
的限制下,最大限度的满足用户的需求。
便于维护和升级,因而应该是
模块化
的
设计应该是便于
移植
的(移植比重新设计花费要小多)
设计应该具有
适应性
设计过程应该受到
理性的控制
设计应该表现出
概念的完整性
内在结构
外在表现
针对问题提出的软件设计思想
强调
信息隐藏
的单元概念:把系统的行为看作是具有关联关系的部件间的行为作用
应用基于
操作和数据封装
构成的单元设计技术实现系统可组装性
应用专门的机制可靠地处理
并发控制和分布系统
问题:降低这类系统设计实施的复杂度
提出基于
模型
的系统结构和设计方法:模式、框架、体系结构风格等
明确提出
软件体系结构
的设计思想:关乎复杂系统设计成败和代价的关键设计步骤
什么是软件体系结构
需求<企业
ABC
(构架商业周期,Architecture Business Cycle):系统<-架构<-需求<-目标
软件体系结构的定义
现代定义
一个程序或计算系统的软件体系结构是一种结构,或者一种系统结构,它由
软件元素
、这些元素的
外在可见性质
以及
元素之间的关系
组成。
软件体系结构被定义为系统的基本组织结构,包括
构件、构件之间的关系
、
环境以及管理系统设计
和
演化的原则
。
传统的定义
软件体系结构是
设计过程的一个层次
,它处理那些超越算法和数据结构的设计,研究整体结构的设计和描述的方法。
软件体系结构由具有特定形式的体系结构元素或设计元素构成,包括
处理元素
、
数据元素
和
连接元素
三类。
一个软件或计算机系统的软件体系结构即组成该系统的一个或多个结构,他们构成软件的各个部分,形成这些构件的外部可见属性及相互间的联系。
体系结构 = 组件 + 连接件 + 约束
当前对软件体系结构的认识
体系结构是由
软部件
和部件之间的
联系
组成,软部件又有自身的体系结构。
部件描述有3个方面:
计算功能、结构特性、其他特性
。
关于软件体系结构的不同认识表现在两个方面:
关于范畴
关于描述形式
各种术语和相关概念
1
Architecure Styles
体系结构风格
:根据
结构组织模式
构成的
软件系统族
,表达了部件和他们之间的关系。偏重于计算机概念
分类:
数据流风格
:批处理序列、管道/过滤器等;
调用/返回风格
:主程序/子程序、面向对象风格、层次结等。
独立构件风格
:进程通讯、事件系统等;
虚拟机风格
:解释器、基于规则的系统等;
仓库风格
:数据库系统、超文本系统、黑板系统等。
新的体系结构风格:客户/服务器(Client /Server)结构、浏览器/服务器(Browser/Server)结构、正交(Orthogonal)结构、专用领域(Domain Specific Styles)、MVC、微核(Microkernel)、反射( Reflection )、代理( Proxy )等。
2
Design Pattern
它提供一个用于
细化软件系统
的
子系统或构件
,或他们之间关系的图示。它描述通信构件的公共再现结构,通信构件可以解决特定语境中的一个一般设计问题。
建立在结构化程序设计基础之上,针对OOP设计的实践和经验而提出的,是处理特定问题的高效和成熟的设计模板
设计模式偏重于
具体
问题
设计模式分为三个类型
构造型模式
:孤子模式 etc.
结构型模式
:代理 etc.
行为型模式
:解释器 etc.
SA 受其启发,提出了面向模式的软件体系结构
3
Framework
框架又称为
应用框架
,整体应用性结构的“固定”
冷点
Frozen Spots
热点
Hot Spots
Framework偏重于
具体
问题,所以常称为:应用框架
从设计模式角度来看,框架为
大粒度的可复用的部件
从体系结构角度来看,框架是一个
领域体系结构
软件体系结构的意义和目标
软件体系结构在软件开发中的意义
软件体系结构是软件开发过程
初期的产品
,对于开发进度和软件质量的,一切资金和劳务投入,可以获得最好的回报。
体系结构设计是形成的
投资高汇报
的重要因素。
正确有效的体系结构设计会
给软件开发带来极大的便利
。
软件体系结构的目标
外向目标
:建立满足
终端用户要求的系统需求
。
内向目标
:建立
满足后期设计者需要
以及
易于系统实现、维护和扩展
的系统部件构成。
软件体系结构在风险承担和早期设计中的作用
软件体系结构对
风险承担者交流
起的作用。
软件体系结构是
早期设计决策
的产品。
软件体系结构对应用系统的影响:
SA制约着质量
,工业化的必由之路。
软件体系结构的研究范畴
1
体系结构描述语言与工具
ADL
(Architeture Description Language):为体系结构提供概念性框架,也提供描述的具体语法,也提供解析、显示、编译、分析或者仿真体系结构描述使用的工具
工具建模
:设计符号为体系结构建模
2
产品线与标准
软件产品线
是一个工程问题,它由一组软件密集型家族系统共享公共的、可管理的特征。
软件产品线体系结构。
3
软件体系结构风格及风格应用
软件体系结构风格
是指一组
设计
词典、有关词典如何运用的
限制条件
、及
词典语义的假设
。
每个风格的应用仅适合于
一定的目标
,而不适用于其他目标。
4
体系结构文档化
体系结构文档化
的过程就是用一个或者多个视图来描述一个系统结构的过程。
4个视图:
Context-based Views
Code-based Views
Run-time Views
Hardware-based Views
评论列表
评论...
发表
软件工程设计和软件体系结构
软件设计的目标
针对问题提出的软件设计思想
什么是软件体系结构
软件体系结构的定义
当前对软件体系结构的认识
各种术语和相关概念
软件体系结构的意义和目标
软件体系结构在软件开发中的意义
软件体系结构的目标
软件体系结构在风险承担和早期设计中的作用
软件体系结构的研究范畴