当前位置:
文档之家› 第二次体系结构概述与调用返回体系结构
第二次体系结构概述与调用返回体系结构
相比于非结构化编程,主程序-子程序软 件体系结构能够较好地支持系统的可改 变性和可伸缩性等性能,其采用分而治 之的策略
2.3.1 自顶向下的设计方法
主程序-子程序软件体系结构通常采用自顶向 下的设计方法,即从系统的功能角度出发,从 高层开始,将整个功能逐步细化为子功能
Sub1
Sub11
Sub12
质量属性包括:性能,可伸缩性,可用 性,可维护性,安全性,易用性,可重 复性,可测试性以及可移植性等
1.5 软件体系结构的风格
软件体系结构风格是对软件体系结构的 分类,每一种软件体系结构风格都代表 一类软件的结构组织模式
软件体系结构风格是在实践中被重复使 用的构件设计的总结
1.5.1 软件体系结构的风格(续)
Main
1
10
38
2
9
A
B
E
4 5
7 6
C
D
程序运行的控制流示意
2.2.2 调用-返回风格体系的概念
每个软件都设计为有一个唯一的程序执 行入口和一个唯一的程序执行出口;
程序执行结束后,则控制被返回给程序 的调用构件;这些程序的构件被称为子 程序(Subroutine)
从一个构件到另一个构件的控制传递被 称为程序调用(call)
2 调用-返回风格提纲
非结构化的编程简介 调用-返回风格软件体系结构的概念 主程序-子程序软件体系结构 面向对象软件体系结构 主程序-子程序与面向对象体系结构举
例
2.1非结构化的编程简介
非结构化的编程技术是历史上最早的编 程范型
非结构化语言(比如汇编语言)编写的 程序通常包内含一系列有序的命令,每 行有一个行号标记,便于程序跳转
2.2.3 调用-返回风格体系的组织
拥有整个软件入口的构件叫做主程序(Main Program),它控制子程序的执行顺序
可以被所有构件访问的共享数据被称为全局变 量(Global varible)
Main
Sub3
Sub1
Sub2
Global Data
Sub4 Sub5
2.2.4 调用-返回风格体系的层次组织
2.2 调用-返回风格软件体系结构
调用-返回风格体系结构(Call and Return Architecture)采用分而治之的策 略,其主要思想是将一个复杂的大系统 分解为一些子系统,以便降低复杂度, 并且增加可修改性
这种系统的程序执行顺序通常只由一个 单线程控制
2.2.1 调用-返回风格体系结构示意
2.1.1 非结构化编程的特点
非结构化编程已经引入了循环,分支及 子程序的概念
非结构化编程中的子程序允许有多个入 口和多个出口
程序的执行顺序可以被任意变换
2.1.2 非结构化编程的举例
01 main 02 mov AX, 045; 03 mov BX, 012; 04 add AX, BX; 05 jnz 17; 06 … 07 jump 012; 08 …
第二次 调用返回体系结构 Call back Software Architecture style
任课老师:黄武
提纲
软件体系结构概述 调用返回体系结构
软件体系结构概述提纲
背景 软件体系结构的概念 软件体系结构的意义 软件体系结构和软件质量属性 软件体系结构风格
1.1 背景
Edsger.Dijstra指出“软件的规模越大, 其整体构架就越重要”
Len Bass的定义:软件体系结构是指程 序或者系统的组成关系,这种组成关系 包括软件、软件的外部可见属性以及这 些软件之间的关系
பைடு நூலகம்
1.2.1 软件体系结构的概念(续)
IEEE 1471-2000中的定义:软件体系结 构是系统的基本组织结构,包括系统构 成要素,这些要素相互之间以及与运行 环境之间的关系,还包括系统设计及演 化时应遵循的原则
软件体系结构包括三个基本要素:构件、 连接件和约束
1.3 软件体系结构的意义
软件体系结构是软件相关人员之间进行 交流的手段
软件体系结构是一种高层次的设计复用 手段
软件体系结构是早期设计决策的体现, 决定了最终软件的质量
1.4 软件体系结构与软件质量属性
软件体系结构的优劣依赖于各种因素, 这些因素通常被称为软件质量属性 (qualities)
软件体系结构风格包括:数据流风格, 顺序批处理风格,管道-过滤器风格,调 用-返回风格,主程序-子程序风格,面向 对象风格,分层的风格,独立构件风格, 进程通讯,事件系统,虚拟机风格,解 释器,基于规则的系统,以数据为中心 的风格,数据库,超文本以及黑板风格 等。另外还有分布式的风格,比如云计 算,P2P风格等
Medicine Name
Medicine Cost Computation
Medicine Cost
系统的第一层数据流图(DFD)
2.3.2.1 系统层次化数据流图
结构化设计从数据流图开始,然后将数 据流图转换为程序结构图
调用-返回风格体系结构可以被组织成任何形 式。但层次结构的组织形式更清晰
层次结构的设计被称为共享数据的主程序-子 程序软件体系结构
Main
Sub1
Sub2
Sub3
Sub4
Sub5
Sub6
Sub7
Sub8
Sub9
Data
Sub10
Data
Sub11
2.3 主程序-子程序软件体系结构
主程序-子程序软件体系结构在设计上使 用层次化的划分方法,该体系结构中使 用由编程语言直接支持的单一控制线程
Sub111 Sub121
Main
Sub2
Sub21
Sub22
Sub211
Sub3 Sub31
2.3.2 自顶向下的设计举例
一个药品成本计算系统(Medicine Cost Computation)
要计算一种药品的单位成本,要求输入 药品的名称(Medicine Name),然后系 统输出该药品的单位成本(Medicine Cost per Unit)
20世纪90年代,软件体系结构逐渐被工 业界和学术界广泛接受,并且业内普遍 认为:对于大规模复杂软件系统而言, 构架的设计比数据结构以及算法的设计 更为重要
1.2 软件体系结构的概念
Mary Shaw和David Garlan的定义:软 件体系结构用于描述系统的构成要素、 构成要素之间的交互和组合模式以及在 进行组合时的约束条件