《软件架构实践课件.ppt》由会员分享,可在线阅读,更多相关《软件架构实践课件.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件架构实践软件架构实践SOFTWARE ARCHITECTURE IN PRACTICE软件系统设计与体系结构软件系统设计与体系结构.软件架构实践软件架构实践第第 1 章章认识软件架构认识软件架构.1.1 软件架构与软件工程软件架构与软件工程 1.2 软件架构概述软件架构概述 1.3 感受身边的架构存在感受身边的架构存在 1.4 两个简单程序的架构实现与分析两个简单程序的架构实现与分析 1.5 本章小结本章小结 第第1章章 认识软件架构认识软件架构.1.2 软件架构概述软件架构概述.1.2.1 软件架构的定义软件架构的定义p什么是软件架构,网上有什么是软件架构,网上有60多个定义多个定义p多
2、数人认可的定义:多数人认可的定义:p软件系统的一个或多个结构,包括软件软件系统的一个或多个结构,包括软件组件、这些组件的外部可见特性,以及组件、这些组件的外部可见特性,以及这些组件之间的相互关系。这些组件之间的相互关系。p软件架构包含了软件架构包含了p组件组件p组件的外部可见特性组件的外部可见特性p组件之间的相互关系组件之间的相互关系1.2.1 软件架构定义软件架构定义.1.2.1 软件架构的定义软件架构的定义p进一步理解软件架构定义进一步理解软件架构定义p架构是一个或多个系统的抽象架构是一个或多个系统的抽象p是由抽象的组件来表示的是由抽象的组件来表示的p组件具有外部的可见特性组件具有外部的可
3、见特性p组件相互之间是有联系的组件相互之间是有联系的p系统抽象系统抽象屏蔽了组件内部特有的细节屏蔽了组件内部特有的细节p系统抽象:系统抽象:p组件与联系组件与联系p用视图的方式表示用视图的方式表示.1.2.1 软件架构的定义软件架构的定义p常见的软件架构:常见的软件架构:p由结构和功能各异、相互作用组件的由结构和功能各异、相互作用组件的集合,按照集合,按照层次层次构成。构成。p软件架构包含了软件架构包含了p系统的基础构成单元(组件)系统的基础构成单元(组件)p它们之间的作用关系(连接它们之间的作用关系(连接/连接件)连接件)p在构成系统时,它们的集成方法以及在构成系统时,它们的集成方法以及对集
4、成约束的描述。对集成约束的描述。.什么是软件架构?什么是软件架构?架构架构=组件、连接件、约束组件、连接件、约束 p组组 件:一组程序代码、进程、接口件:一组程序代码、进程、接口p连接件:调用、管道、消息连接件:调用、管道、消息p约约 束:组件之间的连接关系束:组件之间的连接关系.p由于架构是关于软件系统组织的配置定义由于架构是关于软件系统组织的配置定义p因此因此p它定义了它定义了:p组成系统的结构(结构元素组成系统的结构(结构元素/组件)组件)p结构或组件间特定的构成和协作关系结构或组件间特定的构成和协作关系p系统的集成方法和约束系统的集成方法和约束p所以所以,软件架构不但决定了系统的物理构
5、成,软件架构不但决定了系统的物理构成p也支配了开发的组织行为也支配了开发的组织行为p需求分配、范围和任务定义、进度计划、测需求分配、范围和任务定义、进度计划、测试方案、集成方法、配置项与基线管理试方案、集成方法、配置项与基线管理p这是现代软件工程更关注的地方。这是现代软件工程更关注的地方。.1.2.2 软件架构的作用软件架构的作用.1.2.2 软件架构的作用软件架构的作用(1)软件架构定义了软件计算的组件、局部)软件架构定义了软件计算的组件、局部和总体的构成关系、以及这些组件之间的相和总体的构成关系、以及这些组件之间的相互作用互作用计算组件:计算组件:客户、服务器、数据库、中间件、程序包、过程
6、、子程客户、服务器、数据库、中间件、程序包、过程、子程序、进程等序、进程等切碎、再切碎(粒度)切碎、再切碎(粒度)相互作用关系:相互作用关系:过程调用、共享变量访问、信号灯、进程通信、消息传过程调用、共享变量访问、信号灯、进程通信、消息传递、访问递、访问/网络协议网络协议等等 操作系统原理操作系统原理课程其实最主要的意义和价值就课程其实最主要的意义和价值就是介绍一个实际的软件系统构架的案例是介绍一个实际的软件系统构架的案例.1.2.2 软件架构的作用软件架构的作用(2)除了描述系统的构成和结构关系外,)除了描述系统的构成和结构关系外,软件构架还表达了系统关键软件构架还表达了系统关键需求需求与与
7、系统构系统构成成之间的对应关系,这为系统的设计,提之间的对应关系,这为系统的设计,提供了分析和评价的依据供了分析和评价的依据因为因为软件构架比需求更进一步要软件构架比需求更进一步要面对或满足系统非面对或满足系统非功能性功能性的内容,如:容量、数据吞吐量、一致的内容,如:容量、数据吞吐量、一致性、兼容性、安全性、可靠性性、兼容性、安全性、可靠性 .1.2.3 软件架构的表示方法软件架构的表示方法最简单的架构视图:物理视图最简单的架构视图:物理视图(计算机系统构架)(计算机系统构架).图例图例传感器监控传感器输入控制报警器条件控制报警器输出控制产生显示信息规范显示信息产生报警信号选择空线拨号 等待
8、线路空闲显示信息规范化产生报警信号选择空线拨号产生显示信息等待线路空闲传感器监控的功能视图传感器监控的功能视图产生显示信息功能组件功能组件依赖关系依赖关系.基于基于WEB的应用系统架构视图的应用系统架构视图UML架构视图.抽象工厂的类代码视图抽象工厂的类代码视图AbstractFactory:声明创建:声明创建2个抽象产品对象的个抽象产品对象的接口接口ConcreatFactory1/2:实现创建具体产品对象的操作:实现创建具体产品对象的操作AbstractProductA/B:为各产品对象声明一个接口:为各产品对象声明一个接口ProductA1/A2/B1/B2:定义一个将被相应的具体工厂创建的:定义一个将被相应的具体工厂创建的产品对象、实现产品对象、实现AbstractProduct接口接口Client:仅使用声明的接口:仅使用声明的接口.MVC构架的并发视图构架的并发视图.一个由Struts实现的MVC构架.