软件=程序(运行时能提供所希望的功能和性能的指令集)+数据结构(使程序能够正确运行的数据结构)+文档(描述程序研制过程、方法及使用的文档)
"软件” ≠ 编程,它有自己的生命周期(life cycle)
2.1管道和过滤器
2.2数据抽象和面向对象组织
2.3基于事件的隐式调用
2.4分层系统
2.5仓库系统及知识库
2.6客户/服务器风格
C/S构架有三个主要组成部分:数据库服务器、客户应用程序和网络。
2.7三层客户/服务器风格
2.8浏览器/服务器风格(B/S)
B/S构架主要是利用不断成熟的WWW浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。其具体结构为:浏览器/Web服务器/数据库服务器。
2.9基于层次消息总线(HMB)的构架
消息总线是系统的连接件,负责消息的分派、传递和过滤及处理结果的返回。
①消息登记:构件向消息总线登记当前该响应的消息集合,只对消息类型感兴趣,并不关心谁发出的消息
②消息分派和传递:消息总线负责消息在构件之间的传递,根据构件-消息响应登记表把消息分派到对此感兴趣的构件,并负责处理返回结果
③消息过滤:消息过滤通过阻塞构件对某些消息的响应,提供了动态改变构件对消息进行响应的方式,解决了构件集成的不匹配问题。
2.10基于层次消息总线的多ZIS(区域集成服务器)集成
2.11代理(Agent)结构
2.12异构结构风格
DSSA和构架风格的比较:DSSA以问题域为出发点,构架风格以解决域为出发点。
抽象——认识事物本质的惯用法
4.1体系结构描述方式——非标准的图形符号、UML、模块接口语言、ADL
①UML(软件:Rational Rose)
类图(Class Diagram)
用例图(Use Case Diagram)
序列图(Sequence Diagram)
协作图(Collaboration Diagram)
构件图(Component Diagram)
②基于OO的软件体系结构描述方法
③模块接口语言MIL
④体系结构描述语言ADL (Architecture Description Language)
定义和描述结构概念(Capture) 描述一个系统是如何被构件建立起来的(Construction) 描述如何通过现有的构件生成新的系统(Composition) 指导从多个不同的设计和实现中挑选最优方案(Selection) 检验一个设计是否能够满足需求(Verification) 检测一个需求对系统的隐含影响(Analysis) 根据需求自动化构建系统(Automation)
OOADL 采用Z语言形式化描述软件体系结构。其中Z语言是基于一阶逻辑(∧,∨, )和集合论(∩,∪,∈等)的一种数学语言。OOADL 以OO范例作为核心,增加了a_kind_of” , “a_part_of”和“an_instance_of”等关键字来表示OO范例中的概括、聚集和实例化关系。
⑤⑥⑦⑧⑨⑩
4.2软件体系结构形式化基础
一阶谓词逻辑(First Order Predicate Logic)
集合论
属性文法(Attribute Grammar) :传统的属性文法是在一上下文无关文法(Context Free Grammar,CFG)-G=(VN,VT,P,Z)上附加上下文有关的属性和规则。其中, VN是非终结符号集;VT是终结符号集;P是产生式集;Z是开始符号。假设G是规范CFG。P中的产生式为 p: Xp,,0→Xp,1…Xp,np,np≥1,表示的右部所含符号的长度;Xp,0∈VN,Xp,i∈V;V= VN∪VT; 1≤i≤np。 DSADL针对分布式软件的特征引入了并行描述机制 、特殊的终结符号、条件产生式 。
进程代数 (Process Algebra)
通讯顺序进程(CSP,Communicating Sequential Processes) :CSP是基于字母表、迹和拒绝集的概念。从形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示字母表(Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。
π-演算(π-Calculus) :CSP是基于字母表、迹和拒绝集的概念。从形式上,CSP进程可以用一个3元组(A,F,D)表示,A表示字母表(Alphabet),F表示失效(Failures),D表示偏差(Divergences)。进程的字母表是进程所参与的事件的集合。进程的迹是进程所允许的事件序列。
Petri网
状态机(State Machine)
……