1.软件体系结构建模的种类。
结构模型◎框架模型◎动态模型◎过程模型◎功能模型2.4+1模型。
4+1视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。
逻辑视图:逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。
这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图。
要保持单一内聚的对象模型。
开发视图。开发视图也称模块视图,主要侧重于软件模块的组织和管理。
开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。
开发视图通过系统输入输出关系的模型图和子系统图来描述。
在开发视图中,最好采用4-6层子系统,而且每个子系统仅仅能与同层或更低层的子系统通讯,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系。
设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生改变时,所做的改动最小。开发视图所用的风格通常是层次结构风格。
进程视图。进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。
进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。
它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。
物理视图。物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。
当软件运行于不同的节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。
场景。场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。
同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。
场景可以用文本表示,也可以用图形表示。
4+1模型 – 小结。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
对于不同的软件系统来说,侧重的角度也有所不同。例如,对于管理信息系统来说,比较侧重于从逻辑视图和开发视图来描述系统,而对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。
1.经典的软件体系结构风格:
数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。
独立构件风格:进程通讯;事件系统。
虚拟机风格:解释器;基于规则的系统。
仓库风格:数据库系统;超文本系统;黑板系统。
2.管道与过滤器:
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。
这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。
1.从软件危机谈起 – 软件危机。
软件危机:在计算机软件开发和维护工程中遇到的一系列严重问题。
软件危机表现:
1. 软件成本日益增长。
2. 开发进度难以控制。
3. 软件质量差。
4. 软件维护困难。
软件危机原因:
1. 用户需求不明确。
2. 缺乏正确的理论指导。
3. 软件规模越来越大。
4. 软件复杂度越来越高。
2.构件与软件重用。
构件:指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现**的复合体。(面向对象技术达到类级重用,重用级别小,构件将重用级别提升)
软件重用:在2次或多次不同的软件开发过程中使用相同或相近软构件的工程。(**,测试用例,设计文档,设计过程,需求文档,领域知识等)
3.软件体系结构的定义。
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
任务分配:服务器:
客户应用程序:
风格:c/s软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,c/s体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
c/s体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
c/s风格 – 优点:
1. c/s 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
2. 系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
3. 在c/s体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个dbms进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
c/s风格 – 缺点:
1. 开发成本较高。
2. 客户端程序设计复杂。
3. 信息内容和形式单一。
4. 用户界面风格不一,使用繁杂,不利于推广使用。
5. 软件移植困难。
6. 软件维护和升级困难。
7. 新技术不能轻易应用。
三层b/s风格。
4. 浏览器/服务器(b/s)风格就是三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。
b/s体系结构主要是利用不断成熟的www浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。从某种程度上来说,b/s结构是一种全新的软件体系结构。
b/s优点:
1. 基于b/s体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
2. b/s体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
b/s缺点:
1. b/s体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
2. b/s体系结构的系统扩展能力差,安全性难以控制。
3. 采用b/s体系结构的应用系统,在数据查询等响应速度上,要远远地低于c/s体系结构。
4. b/s体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于**事务处理。
uml结构:
1. 用例图:静态视图、用于需求分析。
2. 交互图:
顺序图:表示前后顺序。
通信图:消息流经的数据结构。
3. 状态图:状态转移关系。
4. 构件图:构件之间的相互关系。
5. 部署图:构件的拓扑结构。
1.什么是设计模式:
设计模式(pattern)是从许多优秀的软件系统中总结出的成功的可复用的设计方案。
每一个设计模式描述一个在我们周围不断重**生的问题,以及该问题的解决方案的核心。这样,你就能一次一次地使用该方案而不必做重复劳动。
记录一个设计模式需有四个基本要素:名称、问题、方案、效果。
模式分类:1.行为型模式。
行为模式涉及怎样合理地设计对象之间的交互通信,以及怎样合理为对象分配职责,让设计富有弹性,易维护,易复用。下列模式属于行为型模式。
策略模式。◆状态模式。
命令模式。◆中介者模式。
责任链模式。◆模板方法模式。
观察者模式。◆访问者模式。
2.结构型模式。
结构型模式涉及如何组合类和对象以形成更大的结构,和类有关的结构型模式涉及如何合理地使用继承机制,和对象有关的结构型模式涉及如何合理地使用对象组合机制。下列模式属于行结构型模式。
装饰模式。◆组合模式。
适配器模式。◆外观模式。
**模式。◆享元模式。
桥接模式。3.创建型模式。
创建型模式涉及对象的实例化,这类模式的特点是,不让用户**依赖于对象的创建或排列方式,避免用户直接使用new运算符创建对象。下列模式属于创建型模式。
◆工厂方法模式。◆抽象工厂模式。
生成器模式。◆原型模式。
单件模式。2.策略模式:
策略模式(别名: 政策)定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法可独立于使用它的客户而变化。
策略模式属于行为型模式,结构中包含以下三种角色:
策略:策略是一个接口,该接口定义若干个算法标识,即定义了若干个抽象方法(如图7.1中的algorithm()方法)。
上下文:上下文是依赖于策略接口的类即上下文包含有用策略声明的变量(上下文中提供一个方法该方法委托策略变量调用具体策略所实现的策略接口中的方法。
具体策略具体策略是实现策略接口的类具体策略实现策略接口所定义的抽象方法,即给出算法标识的具体算法。
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...
软件体系结构
一 软件体系结构和框架的定义。软件体系结构的英文单词是 architecture architecture的基本词义是建筑 建筑学 建筑风格。软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。设计模式 中对框架的定义是框架就是一组相互协作的类,对于特定...