软件体系结构复习提纲

发布 2021-05-29 19:51:28 阅读 4607

1- 软件危机的原因?表现?

原因: 1、用户需求不明确2、缺乏正确的理论指导3、软件规模越来越大4、软件复杂度越来越高。

表现: 1、软件成本日益增加2、开发进度难以控制3、软件质量差4、软件维护困难。

构件?构件库的组织方式?构件重用的四个阶段?(过程)

构件: 具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。

构件库的组织方式:关键字分类法、刻面分类法、超文本组织方法。

构件重用的四个阶段:1、检索与提取构件2、理解与评价构件3、修改构件4、构件组装。

软件重用是什么?一般包括哪些重用?

软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。包括:程序**、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。

1-"4+1"试图模型?

“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。

如图:逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统。

开发视图:也称模块视图,主要侧重于软件模块的组织和管理。开发视图通过系统输入输出关系的模型图和子系统图来描述。

在开发视图中,最好采用4~6层子系统,而且每个子系统仅能与同层或更低的子系统通信,这样可以使每个层次的接口既完备又精练,避免了各个模块之间很复杂的依赖关系,设计时要充分考虑,对于各个层次,层次越低,通用性越强,这样,可以保证应用程序的需求发生变化时,所做的改动最小。

进程视图:也称并发视图,侧重于系统的运行特性,主要关注一些非功能性的需求,进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适应进程结构。

进程视图可以描述成多层抽象,每个级别分别关注不同的方面。在最高层抽象中,进程结构可以看作是构成一个执行单元的一组任务。它可看成一系列独立的,通过逻辑网络相互通信的程序。

它们是分布的,通过总线或局域网、广域网等硬件资源连接起来。

物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。解决系统拓扑结构、系统安装、通讯等问题。

当软件运行于不同的节点上时,各视图中的构件都直接或间接地对应于系统的不同节点上。因此,从软件到节点的映射要有较高的灵活性,当环境改变时,对系统其他视图的影响最小。

场景:可以看作那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。

同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。场景可以用文本表示,也可以用图形表示。

2- 软件体系结构核心模型?

软件体系结构的核心模型由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基本的元素。

构件:具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。构件分为两种:复合构件和原子构件,3-软件体系结构生命周期模型?

软件过程包括:需求分析阶段、建立软件体系结构阶段、设计阶段、实现阶段。

1-软件体系结构经典风格:管道/过滤器风格,黑板系统,分层系统,面向对象的体系结构风。

格和基于事件隐式调用风格,各自组成及优缺点?

管道/过滤器风格:

组成:每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。

优点:1、使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;

2、允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;

3、支持软件重用。只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;

4、系统维护和增强系统性能简单。新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;

5、允许对一些如吞吐量、死锁等属性的分析;

6、支持并行执行。每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。

缺点:1.通常导致进程成为批处理的结构2.

不适合处理交互的应用3.因为在数据的传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。

黑板系统:在仓库风格中,有两种不同的构件:**数据结构说明当前状态,独立构件在**数据存储上执行,仓库与外构件间的相互作用在系统中会有大的变化。

控制原则的选取产生两个主要的子类。若输入流中某类时间出发进程执行的选择,则仓库是一传统型数据库;另外,若**数据结构的当前状态出发进程执行的选择,则仓库是一黑板系统。

组成:由三部分组成,包括:知识源、黑板数据结构、控制。

优点:缺点:

分层系统:组成:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。

在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。

优点:1、 支持基于抽象程度递增的系统设计,使设计师可以把一个复杂系统按递增的步骤进行分解。

2、 支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层。

3、支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各自不同的实现方法。

缺点:1、 并不是每个系统都可以很容易的划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来。

软件体系结构复习提纲

体系结构定义 四个角度 概念角度描述系统的主要构件及它们之间的关系。模块角度包含功能分解与层次结构。运行角度描述了一个系统的动态结构。角度描述了各种 和库函数在开发环境中的组织。三大要素 构件 component 计算单元或者数据存储单元。连接件 connector 约束 constrain 软件体...

软件体系结构

课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...

软件体系结构

课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...