1-软件危机的原因?表现?原因:1、用户需求不明确2、缺乏正确的理论指导3、软件规模越来越大4、软件复杂度越来越高表现:1、软件成本日益增加2、开发进度难以控制3、软件质量差4、软件维护困难构件?构件库的组织方式?构件重用的四个阶段?(过程)构件:具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。构件库的组织方式:关键字分类法、刻面分类法、超文本组织方法构件重用的四个阶段:1、检索与提取构件2、理解与评价构件3、修改构件4、构件组装软件重用是什么?一般包括哪些重用?软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。包括:程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。1-4+1试图模型?“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。如图:逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统。开发视图:也称模块视图,主要侧重于软件模块的组织和管理。开发视图通过系统输入输出关系的模型图和子系统图来描述。在开发视图中,最好采用4~6层子系统,而且每个子系统仅能与同层或更低的子系统通信,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系,设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生变化时,所做的改动最小。进程视图:也称并发视图,侧重于系统的运行特性,主要关注一些非功能性的需求,进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适应进程结构。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。当软件运行于不同的节点上时,各视图中的构逻辑视图进程视图开发视图物理视图场景视图最终用户:功能需求编程人员:软件管理系统集成人员:性能可扩充性、吞吐量等系统工程人员:系统拓扑、安装、通信等件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小场景:可以看作那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示2-软件体系结构核心模型?软件体系结构的核心模型由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基本的元素。构件:具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。构件分为两种:复合构件和原子构件,软件体系结构配置连接件构件端口角色1:N1:N1:N3-软件体系结构生命周期模型?软件过程包括:需求分析阶段、建立软件体系结构阶段、设计阶段、实现阶段。1-软件体系结构经典风格:管道/过滤器风格,黑板系统,分层系统,面向对象的体系结构风格和基于事件隐式调用风格,各自组成及优缺点?管道/过滤器风格:组成:每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。优点:1、使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;2、允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;3、支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;4、系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;5、允许对一些如吞吐量、死锁等属性的分析;6、支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。缺点:1.通常导致进程成为批处理的结构2.不适合处理交互的应用3.因为在数据的传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。黑板系统:在仓库风格中,有两种不同的构件:中央数据结构说明当前状态,独立构件在中央数据存储上执行,仓库与外构件间的相互作用在系统中会有大的变化。控制原则的选取产生两个主要的子类。若输入流中某类时间出发进程执行的选择,则仓库是一传统型数据库;另外,若中央数据结构的当前状态出发进程执行的选择,则仓库是一黑板系统。组成:由三部分组成,包括:知识源、黑板数据结构、控制。优点:缺点:分层系统:组成:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。优点:1、支持基于抽象程度递增的系统设计,使设计师可以把一个复杂系统按递增的步骤进行分解2、支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层。3、支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各自不同的实现方法。缺点:1、并不是每个系统都可以很容易的划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来2、很难找到一个合适的、正确的层次抽象方法。面向对象的体系结构风格:组成:这种风格建立在数据抽象和面向对象的基础上,数据的表示方法和它们的相应操作封装在一个抽象数据类型或对象中优点:1、因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象;2、设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。缺点:1、为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象;2、必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。基于事件隐式调用风格:组成:构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。优点:1、为软件重用提供了强大的支持。当需要将一个构件加入现存系统中时,只需将它注册到系统的事件中2、为改进系统带来了方便。当用一个构件代替另一个构件时,不会影响到其它构件的接口。缺点:1、构件放弃了对系统计算的控制。一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。2、数据交换的问题。有时数据可被一个事件传递,但另一些情况下,基于事件的系统必须依靠一个共享的仓库进行交互。在这些情况下,全局性能和资源管理便成了问题。3、既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。2-二层C/S系统的组成,各自功能,优缺点?三层CS结构的组成,优点?BS风格?二层C/S系统组成:主要有三部分组成,数据库服务器、客户应用程序和网络。服务器功能:1、数据库安全性的要求。2.数据库访问并发的控制。3.数据库前端的客户应用程序的全局数据完整性规则。4.数据库路的备份与恢复。客户应用程序的功能:1、提供用户与数据路交互的界面。2.向数据库服务器提交用户请求并接收来自数据库服务器的信息。3.利用客户应用程序对存在于客户端的数据执行应用逻辑要求。优点:1、C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。2、系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。3、在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。缺点:1、开发成本高。2.客户端程序设计复杂。3.信息内容和形式单一。4.用户界面风格不一,使用繁杂,不利于推广使用。5.软件移植困难。6.软件维护和升级困难。7.新技术不能轻易应用。三层C/S结构的组成:数据库服务器、应用服务器、客户应用程序和网络优点:1、允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性和可扩展性。2、允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。3、应用的各层可以并行开发,可以选择各自最适合的开发语言4、利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。BS风格:浏览器/服务器(B/S)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。3-4-C2体系结构风格?通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下:1、系统中的构件和连接件都有一个顶部和一个底部;2、构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部,而构件与构件之间的直接连接是不允许的;3、一个连接件可以和任意数目的其它构件和连接件连接;4、当两个连接件进行直接连接时,必须由其中一个的底部到另一个的顶部。C2风格的特点:1、系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;2、所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;3、构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。层次消息总线体系结构风格?构件2构件1服务:消息登记消息分派消息传递消息过滤消息总线属性:构件实例表构件-消息响应登记表消息过滤表消息传递5-CS与BS混合模型?各自的含义?特点?1、”内外有别”模型含义:企业内部用户通过局域网直接访问数据库服务器,软件系统采用C/S体系结构;企业外部用户通过Internet访问Web服务器,通过Web服务器再访问数据库服务器,软件系统采用B/S体系结构。特点:优点:外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。企业内部用户的交互性较强,数据查询和秀给的响应速度较快。缺点:企业外部用户修改和维护数据时,速度慢,较烦琐,数据的动态交互性不强。2、“查改有别”模型含义:不管用户是通过什么方式连接到系统,凡是需执行维护和修改数据操作的,就使用C/S体系结构;如果只是执行一般的查询和浏览操作,则使用B/S体系结构。特点:该模型体现了B/S体系结构和C/S体系结构的共同优点。但因为外部用户能直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。6-DSSA的基本活动?DSSA建立过程?DSSA的基本活动:1、领域分析2、领域设计3、领域实现建立过程:1、定义领域范围2、定义领域特定的元素3、定义领域特定的设计和实现需求约束4、定义领域模型