软件设计与体系结构期末重点
作者:互联网
第一章
1、软件危机的表现
软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难
2、软件危机的原因
用户需求不明确、缺乏正确理论指导、软件规模越来越大、软件复杂度越来越高
3、如何克服软件危机
软件工程在软件开发方法、软件工具、软件工程过程等方面的应用缓解了软件危机造成的被动局面。软件工程三要素:方法、工具、过程。
4、软件重用:两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件重用是为了解决软件危机. 软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域(domain)知识。通常,把这种可重用的元素称作软构件(softwarecomponent),简称为构件。可重用的软件元素越大,就说重用的粒度(ranlarity)越大。
5、构件:语义完整,语法正确和有可重用价值的单位软件,是软件重用过程中可以明辨识别的系统。结构上,它是语义描述、通信接口和实现代码的复合体。
6、构件获取:可重用信息具有领域特定性,领域具有内聚性和稳定性。领域是一组具有相似软件需求的应用系统所覆盖的功能区域。获取途径:从现有构件中获得符合要求的构件、通过遗留工程提取构件,从商场上购买现成的构件,开发符合要求的构件
7、构件模型由外部接口和内部结构两部分组成。外部接口:指构件向其重用者提供的基本信息,包括构件名称、功能描述、对外功能接口、所需的构件、参数化属性等。内部结构包括内部成员以及内部成员之间的关系。
8、构件管理、构件的分类方法:关键字分类法、刻面分类法、超文本组织方法
- 构件重用:检索与提取构件、理解与评价构件、修改构件、构件组装
10、构件库系统用户:注册用户、公共用户、构件提交者、一般系统管理员、超级系统管理员。
11、构件的组装技术大致分为:基于功能的组装技术、基于数据的组装技术和面向对象的组装技术(构造法、子类法)。
- 层次式软件体系结构的系统构件模型分为:系统构件层、通用类构件层、业务构件层、表现层。
- 软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
- 软件体系结构的意义:1.体系结构式风险承担者进行交流的手段2.体系结构是早期设计决策的体现3.软件体系结构是可传递可重用的模型
- 软件体系结构的4个阶段:(1)无体系结构设计阶段。以汇编语言进行小规模应用程序开发为特征。(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征。(3)初期阶段。出现了从不同侧面描述系统的结构模型,以UML为典型代表。(4)高级阶段。以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该阶段以Kruchten提出的“4+1"模型为标志。
第二章
1、软件体系结构模型的分类(5种):
(1)结构模型:这是一个最直观、最普遍的建模方法。这种方法以体系结构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统配置、约束、隐含的假设条件、风格、性质研究结构模型的核心是体系结构描述语言。
(2)框架模型:软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式 (3)动态模型:动态模型是对结构或框架模型的补充,研究系统的“大颗粒”的行为。例如,描述系统的重新配置或演化。动态可以指系统总体结构的配置、建立或拆除通信通道或计算的过程。
(4)过程模型:过程模型研究构造系统的步骤和过程。结构是遵循某些过程脚本的结果。
(5)功能模型:功能模型认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。功能模型可以看作是一种特殊的框架模型。
2、 Kruchten“4+1视图模型”
逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
开发视图:也称模块视图,主要侧重于软件模块的组织和管理。开发视图要考虑软件内部的需求,如软件开发的容易性、软件的重用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统输入输出关系的模型图和子系统图来描述。
进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求。进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。
场景视图可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。
3、软件体系结构的核心模型
核心模型由五种元素组成:构件、连接件、配置、端口和角色。其中构件、连接件、配置是最基本的元素。
构件有两种复合构件和原子构件。复合构件由其他复合构件和原子构件组成。原子构件是不可分的构件,底层由实现该构件的类组成。
连接件表示了构件之间的交互,简单的连接件如管道、过程调用、事件广播等,更复杂的交互如客户机-服务器、数据库和应用之间的SQL连接。
配置表示了构件和连接件之间的拓扑逻辑和约束
每个端口表示构件和外部环境交互的特点
连接件的每个角色定义了该连接件表示的交互的参与者
第三章
1、体系结构风格的四要素:(1)提供一个词汇表(2)定义一套配套规则(3)定义一套语义解释原则(4)定义对基于这种风格的系统进行分析
2、通用体系结构的分类:
(1)数据流风格:批处理序列;管道和过滤器。(2)调用/返回风格:主程序/子程序;面向对象风格;层次结构。(3)独立构件风格:进程通讯;事件系统(4)虚拟机风格:解释器;基于规则的系统。(5)仓库风格:数据库系统;超文本系统;黑板系统
3、管道和过滤器模式
构件:是过滤器,接收数据输入,进行转化后输出。过滤器是独立的实体,相互之间没有状态的依赖对一个过滤器而言,它上游和下游的过滤器是透明的。
连接件:是管道负责连接一个过滤器的输出和另一个过滤器的输入
优点:
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点。(2)允许设计师将整个系统的输人/输出行为看成是多个过滤器的行为的简单合成。(3)支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来。(4)系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉。(5)允许对一些如吞吐量、死锁等属性的分析。(6)支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其他任务并行执行。
缺点:(1)通常导致进程成为批处理的结构。(2)不适合处理交互的应用。(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
4、数据抽象和面向对象组织模式:
构件:对象,或者说是抽象数据类型的实例。1)对象是一种被称作管理者的构件,负责保持资源的完整性。2)对象通过函数和过程的调用来交互的。面向对象模型(1)封装(2)继承(3)多态性 这种模式的两个重要方面:(1)对象维护自身表示的完整性;(2)这种表示对其他对象是隐藏的。
优点:(1)隐藏内部实现,容易修改;(2)问题分解;(3)重用;
缺点:(1)对一个对象身份的依赖性(显示调用,即调用一个方法必须以:对象名. 方法名的方式进行调用)(2)继承往往使得设计变得复杂,引入的多层对象结构使得维护困难。
5、基于事件的系统
构件:模块,模块既可以是过程,又可以是事件的集合。过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。
特点:事件的触发者并不知道哪些构件会被这些事件影响。
优点:(1)问题分解;将计算和交互相互分离,使得对象更加独立
(2)系统演化和重用;通过事件注册,新的构件可以轻易的被引入系统
缺点:(1)构件不能控制系统进行的计算;当一个组件发布事件的时候,它无法假设其他组件会对该事件作出响应(2)对事件触发的方法调用的次序无法控制(3)数据交换大数据量的数据交互往往没法由事件携带,从而带来性能问题(4)可能会对正确性的保证带来困难
6、分层模式
优点:(1)支持逐层抽象的方式进行设计,从而可以将一个复杂系统的设计划分为多个相对简单的层次;(2)容易修改,每层的改变至多影响上下两层;(3)支持重用,只要保持接口不变,每层的具体实现的替换式透明的。(4)支持可移植性。
缺点:(1)性能上的额外支出(2)并非每个系统都可以进行分层设计(3)跨层使用可能会损坏整个模型
7、仓库系统及知识库模式
构件:(1)中央数据结构构件:代表系统当前状态;(2)一些相对独立的构件的集合:这些构件对中央数据存储进行操作.
1当要交换或共享大量的数据时,仓库模式是最常用的解决方案。
若中央数据结构的当前状态触发系统相应的进程执行,则仓库是黑板系统。
2黑板系统由三部分组成:知识源、黑板数据结构、控制
3黑板模式特点:没有直接的算法可解、具有不确定性、黑板是一种特别的仓库,主要用于需要对凌乱的信息进行处理的领域,其控制策略必须是机会主义的。
8、C2模式:
C2体系结构风格:通过连接件绑定在一起的按照一组规则运作的并行构件网络。
C2模式中的系统组织规则如下:(1)系统中的构件和连接件都有一个顶部和一个底部;
(2)构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;(3)一个连接件可以和任意数目的其它构件和连接件连接;(4)当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。
C2模式的特点:
(1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;
(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;
(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。
9、 C/S风格:
基本概念:C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
主要组成部分:数据库服务器、客户应用程序和网络。
服务器的以下任务A 数据库安全性要求B 数据库访问并发性控制C 数据库前端的客户应用程序的全局数据完整性规则D 数据库的备份与恢复
C/S风格—优点: (1)具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。(2)系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。(3) 将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
C/S风格—缺点: 开发成本较高、客户端程序设计复杂、信息内容和形式单一、用户界面风格不一,使用繁杂,不利于推广使用、软件移植困难、软件维护和升级困难、新技术不能轻易应用
8、三层C/S风格
三层C/S体系结构是将应用功能层分为:表示层、功能层、数据层
优点:(1)提高系统和软件的可维护性和可扩展性(2)具有良好的可升级性和开放性
(3)并行开发(4)有效地隔离开表示层与数据层(5)为严格的安全管理奠定了坚实的基础
注意点:1.各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。
9、 B/S结构,浏览器/Web服务器/数据库服务器
即Browser/Server(浏览器/服务器)结构,Web应用程序,即在浏览器下运行的程序为Web应用程序。在浏览器中运行的程序为BS结构的程序。BS应用程序无需在本地有它的文件。只需通过浏览器输入Ulr地址就可以了。
Client/Server或客户/服务器模式
(Client/Server或客户/服务器模式):Windows应用程序,即除了在浏览器中运行的程序为Windows应用程序。而不在浏览器中运行的程序为CS结构的程序。CS应用程序需要在本地下有它的文件(无论是拷贝还是安装上的)
10、 异构结构风格:一种用多个不同类型或不同功能的处理机组成的多处理机系统结构。
因为语言的接触也会产生同构,这就必然会引出本来同源的诸语言因为其中一支和别的语言相接触而出现异构,因此结构和语源关系之间存在着四种情况:
- 同源同构(2)异源同构(3)同源异构(4)异源异构
13、DSSA(特定领域软件体系结构)就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构
定义:DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的为成功构造应用系统限定了标准的组合结构的软件构件的集合
基本活动:领域分析、领域设计、领域实现。
DSSA与软件风格的比较:
(1)DSSA以问题域为出发点,体系结构风格以解决域为出发点。
(2)DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个应用领域。
- Hayes-Roth对DSSA的定义: DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造应用系统限定了标准的组合结构的软件构件的集合
Tracz的定义为:DSSA就是一个特定的问题领域中支持一组应用的领域模型、参考需求,参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。 - DSSA的必备特征为:(1)一个严格定义的问题域和/或解决域。(2)具有普遍性,使其可以用于领域中某个特定应用的开发。(3)对整个领域的合适程度的抽象。(4)具备该领域固定的、典型的在开发过程中可重用元素。
- 从功能覆盖的范围角度理解DSSA中领域的含义的方式:(1)垂直域:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构。(2)水平域:定义了在多个系统和多个系统族中功能区域的共有部分,在子系统上覆盖多个系统族的特定部分功能,无法为系统提供完整的通用体系结构。
第四章
- 软件体系结构描述方法分为文字表达工具、数字表达工具、图形表达工具
1图形表达工具在软件设计中占据主导地位
2模块内连接语言 (MIL) 由于程序设计语言和模块内连接语言具有严格的语义基础,因此它们能支持对较大的软件单元进行描述。
3基于软件的系统描述语言 一种以构件为单位的软件系统描述方法
4ADL 是参照传统程序设计语言的设计开发经验,重新设计、开发和使用针对软件体系结构的整体性和抽象性特点,定义和确定适合于软件体系结构表达和描述的有关抽象元素。
2、需求语言描述的是问题空间,而ADL则扎根于解空间
3、ADL(软件体系结构描述语言)的基本元素:(1)构件:计算或数据存储单元。(2)连接件:用于构件之间交互建模的体系结构构造块及其支配这些交互的规则。(3)体系结构配置:描述体系结构的构件与连接件的连接图。
4、软件体系结构描述语言(ADL)包括如下:
UniCon主要目的在于支持体系结构的描述,对构件交互模式进行定位和编码并且对需要不同交互模式的构件的打包加以区分
Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式并发系统建模
C2和其提供的设计环境支持基于时间的风格来描述用户界面系统,并支持使用可替换、可重用的构件开发GUI的体系结构。
Wright支持构件之间交互的形式化和分析
第五章
1、UML的主要内容
用例图;类图;对象图;顺序图;通信图;状态图;活动图;构件图;部署图
1UML结构的组成元素:构造块、公共机制、规则
2UML中的关系:依赖,关联,泛化,实现。
3用例之间的关系:包含关系、扩展关系、泛化关系
4.类之间的关系:关联,依赖,泛化,聚合,组合,实现,流关系。
5聚合关系与组合关系的区别:聚合是一种特殊形式的关联,它是传递和反对称的。聚合表示类之间)的关系是整体与部分的关系。组合关系:如果聚合关系中的表示“部分”的类的存在与否,与表示“整体”的类有着紧密的关系,那么就应该使用组合关系来表示这种关系。(组合一定是聚合,组合比聚合严格。)
第六章
1XML概念: XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,用于定义其他与特定领域有关的,语义的,结构化的标记语言的句法语言。
2XML概述目标:直接应用在initernet,被各式应用软件应用,可发展XML相关软件,与SGML兼容,简化SGML,XML可读性高,XML规范能尽快完成,XML规范简洁,XML文件易建立,语法不可模糊不清
3Xml特点:简洁有效、易学易用、开放的国际化标准、高效且可扩充
4Xml作用:搜索更加有意义,开发灵活的web软件,实现不同数据的集成,用于多种语言环境,客户端数据处理与计算,数据显示多样化,局部数据更新,与现有web发布机制相兼容,可升级性,压缩性能高,
5Xml应用:客户需要与不同环境的数据源进行交互时,将大量运算负荷分布在客户端,将统一数据以不同面貌展示给不同用户,网络代理对所取得的信息进行编辑。增减以适应个人用户需求
6XML文档规则:文档以XML定义<? Xml version=”1.0” ?>开始,有一个包含所有其他内容的根元素,所有元素必须合理嵌套不能交叉嵌套。
7XML模式优势:使用XML语法,支持数据类型,可扩展,更强的表达能力
第八章
从概念上讲,SOA有3个主要的抽象级别,分别是操作、服务和业务流程。
1.W3C定义:SOA是一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,能够定义好的顺序调用这些服务来形成业务流程
Service-architecture.com定义:服务是精确定义,封装完整,独立于其他服务所处环境和状态的函数,SOA本质上是服务的集合,服务之间彼此通信,可以是简单的数据传送,也可以是服务协调进行活动,服务之间需要某些方法进行连接。
Gartner:SOA是一种C/S体系结构的软件设计方法,应用由服务和服务使用者组,SOA不同之处在于,着重强调构建的松散耦合,使用独立的标准接口
2.SOA特征:松散耦合,粗粒度服务,标准化接口
3.SOA设计原则:明确定义的接口,自包含的模块化,粗粒度,互操作性、兼容和策略声明
4.OOAD/EA/BPM分别从基础设计层。应用结构层和业务组织层为SOAD提供理论支撑
5.SOA关键技术:服务栈:发现服务层(技术:UDDI,DISCO),描述服务层(WSDL,XML,Schema),消息格式层(SOAP,REST),编码格式层(XML),传输协议层(HTTP,TCO/IP,SMTP)
6.SOA实现方法:Web Service(角色:服务注册中心,服务请求者,服务提供者。操作:发布,查找,绑定 6个层次:底层传输层,服务通信协议层,服务描述层,服务层,业务流程层,服务注册表),服务注册表(功能:服务注册,服务位置,服务绑定),企业服务总线
7.UDDI是一种用于描述,发现,集成web服务的技术
8.UDDI内容:UDDI数据模型,UDDI API,UDDI注册服务
9.RIA富的含义:丰富的数据模型,丰富的用户界面
10.RIA客户端开发技术:Flash,AJAX,Laszlo,Avalon,Java SWT,XUL,Bindow,Oracle Fprms
11.模式是上下文中普遍问题的普遍解决方案,有三种模式:体系结构模式,设计模式,惯用法
12.模式组成:模式名称,问题,解决方案,效果
标签:软件设计,系统,软件体系结构,连接件,期末,构件,软件,体系结构 来源: https://blog.csdn.net/weixin_49553058/article/details/122280271