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