软件体系结构复习资料

软件体系结构复习资料
软件体系结构复习资料

15、DSSA的定义

答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构

16、构件:

答案:构件是一个计算单元或数据存储。也就是说,构件是计算与状态存在的场所。17、连接件:

答案:连接件是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块。18、体系结构配置:

答案:体系结构配置或拓扑是描述体系结构的构件与连接件的连接图。体系结构配置提供信息来确定构件是否正确连接、接口是否分配、连接件构成的通信是否正确,并说明实现要求行为的组合含义。

31、模式

答案:模式是指从某个具体的形式中得到的一种抽象,在特殊的非任意性的环境中,该形式不断地重复出现。

42、核心资源

答案:是领域工程所有结果的集合,是产品线中产品构造的基础。

33、设计模式

答案:一些设计面向对象的软件开发的经验总结,就是系统的命名、解释、和评价某一个重要的面向对象的可重现的面向对象的设计方案。

43、软件产品线

答案:软件产品线就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合

45、产品线体系结构

答案:产品线体系结构是一个软件体系结构和一组在一族产品中可重用的构件,为增加软件重要、为企业降低软件开发和维护的成本提供了一个重要的途径。

3、简要概产生软件危机的原因

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

4、软件体系结构的定义众多,你是如何理解软件体系结构的?软件体系结构在软件系统中有何作用?

答案:(1)软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素继承的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。

(2)体系结构是风险承担者进行交流的手段。它明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性,可以预测软件的质量,是推理和控制更改更简单,有助于循序渐进的原型设计。同时,软件体系结构是可传递和可重用的模型。

6、体系结构的生命周期模型分为哪几个阶段?

答案:1、需求分析阶段 2、建立软件体系结构阶段 3、设计阶段 4、实现阶段

10、DSSA与体系结构之间有何关联?

答案:

1、DSSA是以问题域为出发点,而软件体系结构是以解决域为出发点的;

2、DSSA只对某一个领域进行设计专家知识的提取、存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构专家知识的组织时可以扩展到多个应

3、DSSA的特定领域参考体系结构通常选一个或多个体系结构风格,并设计一个专用的体系结构分析设计工具;

4、体系结构风格的定义和应用领域是直交的,提取的设计知识比用DSSA提取的设计专家知识的应用要广泛

18、在C2中,连接件和构件是如何工作的?

答案:连接件负责构建之间消息的传递,而构件维持状态,执行操作并通过两个名字分别为top和buttom的端口和其他的构件交换信息。每个接口包含一种可发送的消息和一组可接受的消息,构件之间的消息要么是请求其他构件执行某个操作的请求消息,要么是通知其他构件自身执行某个操作或状态发生改变的通知消息。构件之间的消息交换不能之间进行,而只能通过连接件来完成

22、动态体系结构特征有哪些?

答案: 1、可构造性动态特征 2、适应性动态特征 3、智能型动态特征

23、请简述基于构件的动态体系结构模型是如何支持运行系统更新的?

答案:1、检测更新的范围 2、更新准备工作 3、执行更新 4、存储更新

33、设计模式可以分为几类?

答案:创建型、结构型、行为型。

39、所有评估方法关注的质量属性有哪几个?

答:1、性能 2可靠性(容错,健壮性) 3可用性 4安全性 5可修改性 6功能性 7可变性 8集成性 9互操作性

40、ATAM评估方法的基本步骤是什么?

(1)描述ATAM方法(2)描述业务动机(3)描述体系结构(4)确定体系结构方法(5)生成质量属性效用树(6)分析体系结构方法(7)讨论和分级场景(8)分析体系结构方法(9)描述评估结果

41、软件体系结构评估对主要方式有哪些?

1.基于调查问卷或检查表的评估方式

调查问卷是一系列可以应用到各种体系结构评估对相关问题,这些问题可能涉及体系结构对设计决策,文档,描述本身对细节问题等质量属性。这一评估方法比较灵活自由,可评估多种质量属性,也可以在软件体系结构设计的多个阶段进行。尽管此方式相对比较主观,但他仍然是进行软件体系结构评估对重要途径之一。

2.基于场景的评估方式

场景是一系列有序使用或修改系统的步骤。这种软件体系评估方式分析软件体系结构对场景也就是对系统对使用或修改活动的支持程度,从而判断该体系结构对这一场景所代表对质量需求对满足程度。

3.基于度量的评估方式

度量是指为软件产品对某一属性所赋予对数值。此评估技术涉及3个基本活动:首先需要建立属性和质量之间的映射关系,然后从软件体系结构文档中获取度量信息,最后根据映射原则分析推导出系统对某些质量属性。

4.比较

从通用性,评估者对体系结构对了解程度,评估实施阶段,评估方式的客观程度等方面对三类方式进行简单的比较

CMU/SEI把构件定义为:一个不透明的功能实现;能够被第三方组装;还符合一个构件模型。

由不同的定义,可将构件理解为:构件是预先创建的;构件是黑盒的;构件是可分离的;构件能用于组装和部署;构件需要称为构件容器技术的支持。

2、软件复用:

指在两次或多次不同的软件开发过程中重复使用相同或相近的软件元素的过程。广义的理解,软件复用就是开发粒度合适的构件,然后重复使用这些构件。

3、软件构件模型

构件模型是对构件本质特性的抽象描述。具体来说,构件模型定义了什么是构件、构件的依据、如何使用其它构件提供的服务等。将构件的规格说明和具体实现相分离,依靠构件实现的具体模式来推导出构件所提供的服务,可以构造一个构件模型。

4、领域工程:

领域工程:是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动。其中,“领域”是指一组具有相似或相近需求的软件应用系统所覆盖的功能区域。

5、软件体系结构

[1] Garlan & Shaw:软件体系结构(SA)是一个三元组:

SA={components, connectors, constrains}

构件(component):可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器)

连接件(connector):是关系的抽象,用以表示构件之间的相互作用。

限制(constrain):用于对构件和连接件的语义说明。

[2] IEEE 610.12-1990软件工程标准词汇中的定义:

SA={component,connector,environment,principle};

即软件体系结构是一个四元组,是以:构件,构件之间的关系,构件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。

根据各种软件体系结构的定义,可将软件体系结构理解为:在软件密集的大规模系统中,在具有类似需求和结构的软件产品线的开发中,必须从一个较高的层次来考虑组成系统的构件、构件之间的交互,以及由构件与构件的交互形成的拓扑结构,这些要素应该满足一定的限制,遵循一定的设计原则,并且能够在一定的环境下进行演化。

6、软件产品线

SEI认为,产品线是一个产品集合,这些产品共享一组相同的、可管理的特性集,这个特征集能满足一类特定的市场需求。这些系统遵循一个预描述的方式,在公共的核心资源基础上开发。

根据SEI的定义,软件产品线主要由两部分组成:核心资源和产品集合。

核心资源是领域工程中所有结果的集合,是产品线中产品构造的基础。通常包括:体系结构、可复用软件构件、领域模型、需求描述等。

属于同一领域的一系列应用系统构成了软件产品族。

7、SA的评估

软件体系结构的评估是指对系统的某些值得关心的属性进行评价和判断。评估的结构可用于确认潜在风险,并检查设计阶段所得到的系统的质量需求。软件体系结构评估可以只针对一个体系结构,也可以针对一组体系结构。

8、ATMA中的敏感点与权衡点

敏感点:是一个或多个构件(构件之间关系)的特性,这种特性对获得某一特定的质量属性响应有着重要意义。如,机密性的高低可能对加密的位数是敏感的。敏感点的某些特定值在SA实现时可能成为风险点(有无风险);如果构件或特性不存在时,就不能将它们称为敏感点。权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。它是SA中所做出的最重要的决策。如:提高加密级别可能会提高安全性,但会消耗更多的时间而降低性能。

9、ADL

软件体系结构描述语言黑没有完整而明确的定义,一般认为,ADL是这样一种形式化语言,他在底层语义模型的支持下,为软件系统的概念结构建模提供了具体语法和概念模型。10、软件的属性

包括了软件功能属性和软件质量属性,没有功能属性就没有质量属性。

领域工程和应用工程的区别和联系

应用工程:针对一组特定的需求,产生一个特定的解决方案

领域工程:针对一个领域中的所有系统,而不局限于某个特定的系统,与应用工程相比,领域工程处于一个较高的抽象级别上

联系:

领域工程与应用工程的资源相互使用。

通过应用工程得到的现有系统是领域工程的主要的信息来源;

应用工程利用领域工程的软件进行开发时,领域工程提供的产品空间、构件/体系结构、生产计划等也是应用工程重要的资源。

领域工程的产品对本领域中新系统的应用工程提供了支持;

领域工程和应用工程需要解决一些相似的问题;

领域工程的步骤、行为、产品等很多方面都可以和应用工程进行类比。

区别:

领域工程的主要目标是“建立基本能力和必备基础”,最终结果得到面向领域的可复用构件和体系结构。为了满足自己的生产特性,领域工程还要建立现存构件/体系结构。而应用工程的主要目标是使用软件资产生成新系统。

软件体系结构模式与软件体系结构风格的比较

软件体系结构模式描述了在特定设计语境中重复再现的设计问题,并为之提供一个经过充分验证了的通用解决方案。该方案提供了构件、构件的责任、构件之间的关系、以及它们之间的协作方式。体系结构风格主要描述应用系统的总体结构框架,体系结构风格相对独立。而模式往往依赖于它所包含的较小的模式或者与它相互作用的模式。模式比风格更加面向问题,模式通常有问题出现的语境、解决方案和适用的场景;风格更侧重于从应用系统中抽取它们的总体结构,较少从实际设计环境来考虑设计技术

软件体系结构评估的原因和益处

原因:(1)质量问题是当今软件系统开发的一个主要问题;(2)问题发现的越早,解决问题的代价越小;(3)软件开发人员对软件体系结构实际上无法测试。

益处:(1)特别是在预测质量属性方面,相当于提前对软件进行了“测试”;(2)可以增加交流,提高涉众对SA的认识,起到重要的交际效益;(3)督促SA设计师更能详细编写SA文档,

迫使提高SA文档的质量,对SA作出更为清晰的解释;(4)为相互冲突的目标划分优先级; (5)发现项目之间交叉复用的可能性;(6)提高SA实践的水平;(7)有益于该组织未来所从事的项目开发。

模式之间的约束有哪些

青鸟软件产品线方法的特点

青鸟软件产品线方法的特点包括:在开发过程中使用公共的的软件资产,包括产品线体系结构、构件和过程模型等;产品线的产品是根据特定的用户需求对标准的产品体系结构进行定制,并将可复用构件与系统特有的部分集成得到的;产品线方法集中体现了一种系统优化的、大规模的、大粒度的软件复用。

领域分析与软件软件体系结构之间的联系

模块与构件的区别与联系

模块倾向于指向设计时的实体;构件倾向于指运行时的实体;

模块不太强调交付媒介在运行时发生的情况;构件意指独立部署的软件单元。已交付的二进制构件将在整个执行过程中维持其独立性;

模块被复用的可能性远远小于构件;

模块视图类型包含主要反应设计时因素的风格:向设计和实现单元指派问题各个部分的分解过程

文献参考:

管道/过滤器风格体系结构的优缺点

优点缺点

系统行为易于理解由于该模式数据交换占用大量的空间,且数据传输占用系

统的执行时间。所以,它不适应大量共享数据的应用设计

支持并发计算过滤器是在输入/出有相应限制情况下,才能对输入进行批

量转换处理。所以,不适用于交互式的应用程序

较强的可维护性和可扩展性按照此模式,经常导致成为批处理的结构

由于构件不能共享全局状态。所以错误处理困难

相对独立的过滤器为性能(吞

吐量、死锁)分析提供了方便

简述UML的组成

风险承担者往往采用包含6部分格式描述场景

软件体系结构的研究内容

1)软件体系结构描述语言ADL

2)体系结构构造

3)软件体系结构分析、设计、验证

4)软件体系结构发现、演化与复用

5)基于体系结构的软件开发方法研究

6)特定领域的体系结构DSSA

7)软件体系结构支持工具

软件体系结构的构成要素及其之间的联系

基本构成要素:构件、连接件、体系结构配置

构件:构件是一个计算单元或数据存储。

连接件:是用来建立构件间的交互,以及支配这些交互规则的体系结构的构造模块。构件间的交互包括消息或信号量的传递、功能或方法的调用、依赖关系等。连接件作为建模软件体系结构的主要实体,同样也有接口,其接口是一组与它所连接构件之间的交互点。为保证构件之间的连接和它们之间的通信正确,在体系结构配置中,要求构建端口与连接件角色之间显示连接。

体系结构配置:是描述体系结构的构件与连接件的连接图。体系结构配置提供信息来确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现行为的组合语义。

软件体系结构的发展趋势

在SA研究领域取得了若干成果,但在应用方面,SA仍然很不成熟。目前,对SA理解限于直观;语义丰富但不严紧。由此可见,为软件开发提供一个好的结构及其设计结构的指导原则,有效地指导软件工程实践,SA研究还有若干问题需要解决。如,统一软件体系结构概念、统一ADL框架、SA理论模型、SA的描述、SA性质、SA复用等。P.Clements预测未来5-10年内SA研究将围绕五个方向:体系结构创建与选择;体系结构表示;体系结构分析;基于体系结构开发;体系结构演化。

第一章软件体系结构概论

三.名词解释

1. 用例

2. 软件体系结构

3. 软件复用

4. 体系结构复用

5. 软件质量属性场景

解答:

四.简答题

1. 经过这一段的软件体系结构的学习,给出一个你认为最合适的软件体系结构的定义

2. 什么是遗留系统?遗留系统的应用有哪些?

3. 形式化描述体系结构的意义是什么?

4. 非形式化描述体系结构的方法有哪些?作用是什么?

5. 直接场景与间接场景的区别是什么?

解答:

五.应用题

1. 详细说明软件体系结构相关的研究问题有哪些?

2. 简述北大青鸟的构件模型、青鸟的构件库组织方式以及青鸟的软件产品线结构。

解答:

1.

2.

第二章构件与软件重用

三.名词解释

1. 构件

2. 构件的粒度

3. 复合构件

4. 构件库

5. 连接件

解答:

四.简答题

1. 简述软件体系结构和构件在软件复用中的地位和作用。

2. 常见的构件分类组织方法有哪些,对于每种分类方法是如何检索并提取构件的?

3. 在构件库的管理中强调收集在实际应用中用户对构件的评价意义何在?

4. 什么是原子构件?什么是复合构件?它们之间是什么关系?

5. 软件体系结构对软件复用的影响是什么?

解答:

五.应用题

1. 说明基于C++语言制作原子构件的过程步骤。

2. 分析任意两个不同的体系结构风格,各自风格的不变性是什么?优缺点是什么?,是如何提高构件的可重用性和系统的可演化性的?

解答:

1.

2.

第三章领域工程

三.名词解释

1. 领域专家

2. 领域知识

3. 领域的核心资产

4. 变化性绑定

5. 应用工程

四.简答题

1. 结合领域工程和应用工程之间的关系阐述领域变化性的绑定时间对软件开发的影响。

2. 为什么说领域具有稳定性?

3. 什么是领域,领域工程包含的主要活动有哪些?

4. 基于迭代的思想,阐述领域工程和应用工程之间的关系。

5. 主要的变化性绑定时间有哪些?

第四章软件体系结构建模

三.名词解释

1. 体系结构演化

2. 体系结构配置

3. 物理视图

4. 逻辑视图

5. 场景

四.简答题

1. 软件开发过程的各个阶段,体系结构方面要进行哪些主要的工作?

2. 什么情况下要进行体系结构的演化?演化的主要步骤有哪些?

3. 为什么要对体系结构进行评价和度量?

4. 建立软件体系结构要做哪些主要工作?

5. 简述软件体系结构的核心模型。

第五章软件体系结构风格

三.名词解释

1. DSSA

2. 体系结构风格

3. 设计模式

4. 体系结构发现

5. HMB风格

6. CORBA

7. C2风格

8. SIS

9. 消息响应登记表

10. 解释器

四.简答题

1. 什么是基于消息的层次总线系统结构?

2. 层次系统结构和基于消息的层次系统结构有什么区别?

3. 软件的可演化能力主要体现在哪些方面?

4. 基于消息的层次总线风格中消息总线的主要功能是什么?

5. 为什么要采用C/S和B/S混合的体系结构?

6. 什么是DSSA?比较DSSA和体系结构风格。

7. 什么是正交软件体系结构?

8. 软件的可演化能力主要体现在哪些方面?

9. 比较C/S和B/S体系结构风格,说明它们的优缺点。

10. 使用软件体系结构风格的好处有哪些?

11. 经典的体系结构风格有哪些?

12. 管道顾虑器风格的优点是什么?主要缺点是什么?

13. 基于事件的隐式调用系统中如何实现数据交换?有无优势?

14. 分层系统如何支持软件复用?

15. 为什么要在一个软件中采用异构的体系结构风格?

16. 互联系统中,系统分解的原则是什么?

17. ORB的主要功能是什么?

18. IDL的主要功能是什么?

19. 体系结构处理环境的不确定性的策略有哪些?

20. 体系结构处理数据结构变更的策略有哪些?

第六章体系结构描述

三.名词解释

1. 表述映射

2. 模块内连接语言

3. ADL

4. IDL

5. ORB

四.简答题

1. 采用图形表达工具来描述软件体系结构有什么优缺点?

2. 形式化的描述方法对软件体系结构的自动生成和验证有何作用?

3. 风险承担者对体系结构评估工作的影响有哪些?

4. 简述青鸟软件产品线的构成。

5. 简述ADL与程序设计语言的区别。

第七章基于体系结构的软件开发

三.名词解释

1. 安全性场景

2. ABSD

3. 软件模板

4. 设计元素

5. ABSDM

四.简答题

1. 简述基于体系结构的软件设计方法的主要步骤

2. 阐述用例驱动的软件体系结构的设计方法。

3. 阐述模式驱动的软件体系结构的设计方法。

4. 阐述领域模型驱动的软件体系结构的设计方法。

5. 设计软件体系结构的主要困难有哪些?

第八章软件体系结构评估

解答:

三.名词解释

1. 敏感点

是一个或多个构件(构件之间关系)的特性,这种特性对获得某一特定的质量属性响应有着重要意义。如,机密性的高低可能对加密的位数是敏感的。敏感点的某些特定值在SA实现时可能成为风险点(有无风险);如果构件或特性不存在时,就不能将它们称为敏感点。

2. 性能场景

3. 直接场景

无须对SA进行修改即可支持的场景。它能增进对SA的理解。

4. 间接场景

需要对SA做某些修改才能支持的场景,如要实现场景中的功能,需要对一个或多个枸杞按进行修改,更改某一接口等。通过它对SA的影响,可以确定SA在其生命周期中对演化的适应情况。

5. 权衡点

权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。它是SA中所做出的最重要的决策。如:提高加密级别可能会提高安全性,但会消耗更多的时间而降低性能。

解答:

四.简答题

1. 简述软件体系结构基于场景的评估方式,有什么优缺点?

2. 简述软件体系结构基于度量的评估方式,有什么优缺点?

3. 简述软件体系结构基于调查问卷或检查表的评估方式,有什么优缺点

4. 简述SAAM软件评估方法

SAAM是一种非功能质量属性的体系结构分析方法,它是最早形成文档并得到广泛应用的SA 分析方法。这种方法用场景替代人们对质量属性的空洞描述,使测试成为可能。SAAM通过构造一组领域驱动的场景来反映最终软件产品的质量,为评估系统的体系结构提供了一个基于应用环境并使用场景的评估方法。SAAM方法最初用来分析系统的可修改性,但实践证明,也可用于其他质量属性的评估,如可移植性、可扩充性等。

5. 常见的软件体系结构评估的质量属性有哪些?

性能:系统的响应能力

可靠性:系统能够长时间运行的能力

可用性:系统能正常运行的时间比

安全性:系统向合法用户提供服务的同时,能阻止非法授权使用的企图或拒绝服务的能力

可修改性:能快速的以较高的性价比对系统运行更改的能力

可移植性:系统能在不同计算机环境下运行的能力

功能性:系统完成所期望工作的能力

可变性:SA经过扩充或更改而成为新SA的能力

可子集性:支持子系统生成的能力

概念完整性:能在各个层次上将系统设计统一起来的根本思想

软件体系结构常见评估方法的分类

主要有两类基本的评估技术:质询(定性)和度量(定量)。

质询技术:生成一个体系结构将要问到的质量问题,可适用于任何质量属性。主要包括基于场景的、基于调查表的、基于检查列表的。

度量技术:采用某种工具对体系结构进行度量,用于解答具体质量属性的具体问题。

常见的评估方法可以分为以下四类:(1)基于内聚和耦合的概念的方法;(2)使用更为抽象的评估方法;(3)基于属性模型的方法;(4)基于场景的方法(SAAM,ATAM,ARID)。

进行软件体系结构评估的原因及益处

原因:(1)质量问题是当今软件系统开发的一个主要问题;(2)问题发现的越早,解决问题

的代价越小;(3)软件开发人员对软件体系结构实际上无法测试。

益处:(1)特别是在预测质量属性方面,相当于提前对软件进行了“测试”;(2)可以增加交流,提高涉众对SA的认识,起到重要的交际效益;(3)督促SA设计师更能详细编写SA文档,迫使提高SA文档的质量,对SA作出更为清晰的解释;(4)为相互冲突的目标划分优先级; (5)发现项目之间交叉复用的可能性;(6)提高SA实践的水平;(7)有益于该组织未来所从事的项目开发。

解释软件体系结构评估描述模板的含义

方法目标:该方法的特定目标是什么

质量属性:对哪些质量属性进行评估

SA描述:评估关系到哪些SA视图

评估技术:方法中包含哪些技术

参与者:评估过程涉及系统的哪些参与者

评估中的活动:以何种顺序、何种方式、使用评估技术,完成该方法的特定目标;该方法描述了什么结果

方法验证:是否在实际中得到了验证

ATMA对软件体系结构进行评估的过程和基本步骤

ATMA方法不仅可以可以揭示出体系结构对特定质量目标的满足情况,而且能够使我们更清楚地认识到质量目标之间的联系。

ATMA方法主要分为4大部分:

(1)表述:主要包括通过它进行的信息交流

ATMA方法的表述、商业动机的表述、体系结构的表述

(2)调查与分析:包括对照体系结构方法评估关键质量属性需求

确定软件体系结构方法、生成质量属性效用树、分析软件体系结构方法

(3)测试:包括对照所有相关涉众的需求检验最新结果

集体讨论并确定场景优先级、分析软件体系结构方法

(4)形成报告:包括对ATMA评估结果的表述

最重要的时如下ATMA结果:已编写了文档的SA方法;若干场景及其优先级;基于质量属性的若干问题;效用树;所发现的有风险决策;已编写文档的无风险决策;所发现的而敏感点和权衡点。

描述SAAM、ATMA、ARID方法之间的关系

第九章软件产品线体系结构

三.名词解释

1. 软件生产线

2. 软件工厂

3. 软件产品线

SEI认为,产品线是一个产品集合,这些产品共享一组相同的、可管理的特性集,这个特征集能满足一类特定的市场需求。这些系统遵循一个预描述的方式,在公共的核心资源基础上开发。

4. 软件产品族

产品族是一组相关的软件系统,它们是基于公共的核心资产开发出来的。

5. 核心资产

核心资产库是产品线的基础,是管理支持产品开发的可复用资源的机制。核心资产库中的资产通常包括:体系结构、可复用软件构件、领域模型、需求描述等。

四.简答题

1. 简述软件生产线和领域工程的关系。

2. 简述软件产品线的基本活动。

3. 什么样的软件生产企业适合采用产品线方法?为什么?

4. 在原有产品的基础上建立产品线有哪些方式?

5. 产品线核心资产应如何演化?

软件产品线的概念及构成

SEI认为,产品线是一个产品集合,这些产品共享一组相同的、可管理的特性集,这个特征集能满足一类特定的市场需求。这些系统遵循一个预描述的方式,在公共的核心资源基础上开发。

根据SEI的定义,软件产品线主要由两部分组成:核心资源和产品集合。

核心资源是领域工程中所有结果的集合,是产品线中产品构造的基础。通常包括:体系结构、可复用软件构件、领域模型、需求描述等。

属于同一领域的一系列应用系统构成了软件产品族。

研究软件产品线的重要性

软件复用、软件构件、SA与软件产品线的联系

软件体系结构期末考试

北京工业大学2014 - 2015学年 第二学期模拟试题 考试课程:软件体系结构I 考试日期:2015年5 月20日 学院:软件学院专业:软件工程 学号:姓名:成绩: 一填空题(共30 空,每空 1 分) 1. 软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,________ 的逻辑层次组织。 2. 软件体系结构(Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是 对软件产品_______的规划和_______的设置;是定义软件系统组件(Components)或构建块(Building Blocks)的重要工具;用于 -- 实现对一个软件系统的构成进行_________的划分 -- 所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。 3.软件开发中的面临若干问题:1)软件固有的复杂性;2)软件开发的随意性;3)周期 长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的__________到系统实现(代码)的有效和平坦过渡。 4.软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按_____、标准 化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件___,通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品。 5.体系结构设计方法的发展中,软件程序开发经历了如下的阶段 -- 功能分解法 (计算任务) -- 结构化程序设计 (以数据为中心) -- _________________ -- _________________ -- 基于 SOA 的程序设计 (以服务为中心)。 6. 一个现代软件产品生产过程如下图表示,请在带___________的方框中,填上相应的组 件名称

软件体系结构期末复习题概述

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。 6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可

以定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。 2)B/S体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。 10、B/S体系结构的缺点有什么? 答:1)B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。 2)B/S体系结构的系统扩展能力差,安全性难以控制。 3)采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远地低于C/S体系结构。 4)B/S体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。 11、DSSA 答案:DSSA就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构 11、软件体系结构的动态性主要分为: 交互式动态性、结构化动态性、体系结构动态性等三类。 12、请画出基于构件的动态系统结构模型画。 13、软件产品线 产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源(core assets)基础上开发的 14、SOA 即service-oriented architecture,面向服务架构。它是一个组件模型,它 将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接 口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于 实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的 系统中的服务可以以一种统一和通用的方式进行交互。 14、RIA

软件设计与体系结构

1.面向对象编程中是如何体现封装性的? 2.面向对象编程的重载和重写的含义是什么? 3.什么是接口回调?其过程细节是怎样的? 4.是举例说明什么是组合关系和依赖关系? 5.距离说明什么是抽象类和接口,有什么区别,如何应用它 们? 6.面向对象方法有哪些基本原则? ①抽象类与接口②面向抽象原则③开-闭原则④“多用组 合,少用继承”原则⑤“高内聚-低耦合“原则 7.什么是设计模式?它的基本要素有哪些? 8.什么是框架?框架与模式的区别有哪些? 框架是针对某个领域,提供用于开发应用系统的类的集合。 区别:①层次不同②范围不同③相互关系 9.举例说明面向对象的多态性? 10.软件体系结构有哪几种形式? 1.概念结构:从主要设计元素(构件)及其相互关联、设 计原则和性能角度考虑的结构。 2.模块结构:根据功能分解建立模块的层次结构包括模块 接口、模块管理、模块控制和一致性等问题。

3.代码结构:描述源程序,二进制程序,库文件。在开发 环境下的组织包括系统资源配置管理,系统构造和对象嵌 入机制 OEM 等。 4.执行结构:描述系统的动态结构包括性能、调度、动态 配置和不同系统间的接口等。 11.构件之间的连接方式有哪些? 1)过程调用: 在某一特定执行路径中传递执行指针。如普通 过程调用、远程过程调用。 2)数据流: 相互独立的处理通过数据流进行交互,在得到数 据的同时被赋予控制权限。如 UNIX 系统中的管道。 3)间接激活: 处理因事件的发生而激活,在处理间没有直接 交互。例如,事件驱动系统、自动垃圾回收等。 4)消息传递: 相互独立的处理间有明确交互,通过显式数据 传递。传递可以是同步的,也可以是异步的。如TCP/IP 。 5)共享数据: 构件通过同一数据空间进行并发操作。如多用 户数据库, 数据黑板。 12.C/S体系结构的主要组成部分有哪些?其作用是什么? 1)服务器:负责给其他子系统提供服务。如,数据库服 务器提供数据存储和管理服务,文件服务器提供文件 管理服务,打印服务器提供打印服务等。 2)客户机:向服务器请求服务。客户机通常都是独立的 子系统,在某段时间内,可能有多个客户机程序在并 发运行。

软件设计与体系结构期末复习整理解读

1面向对象编程中是如何体现封装性的? 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。 2重载和重写的含义 重载是发生在一个类中,方法名相同,参数不同 重写(覆盖)是子类继承父类,子类可以通过重写的方法隐藏继承的方法 3 什么是接口回调,过程细节是什么? 概念:把可以实现某一接口的类创建的对象的引用赋给该接口声明接口变量,那么该接口变量可以调用被类实现(重写)的接口方法。 4试举例说明什么是组合关系和依赖关系 组合(关联)关系:A类中成员变量是用B类声明的对象。公司--职员 依赖关系:A类中某个方法的参数是用B类声明的对象,或某个方法返回的数据类型是B类的对象 5抽象类和接口,区别是什么?如何应用 抽象类:抽象类中有抽象方法;抽象类中不能用new运算符创建对象;抽象类的对象做商转型对象 接口:(1)接口中只可以有public权限的抽象方法,不能有非抽象方法; (2)接口由类去实现,即一个类如果实现一个接口,那么他必须重写接口中的抽象方法 (3)接口回调 区别:接口中只有常量,不能有变量;抽象类中既可以有常量也可以有变量; 抽象类中也可以有非抽象方法,接口不可以。 应用:定义抽象方法:public abstract void 方法名(); 在子类实现抽象方法:public void 方法名(){} 接口:public interface 接口名{}接口只负责定义规则,不负责任何实现;实现交给实现接口的类 (6)面向对象的六条基本原则包括: 开闭原则,里式代换原则,单一职责,依赖倒转、迪米特法则(接口隔离)。 (7)什么是设计模式? 设计模式是从许多优秀的软件系统中总结出的成功的可复用的设计方案。是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性 (8)什么是框架?框架与模式的区别有哪些? 框架是针对某个领域,提供用于开发应用系统的类的集合。 区别:层次不同、范围不同、相互关系

计算机体系结构复习

1. 计算机系统的多级层次结构: 第6级 第5级 第4级 第3级 第2级 第1级 2. 系统结构的概念: 计算机系统结构指的是计算机系统的软、 硬件的界面, 即机器语言程 序员或编译程序设计者所能看到的传统机器级所具有的属性。 3. 在计算机技术中, 对本来存在的事物或属性, 但从某种角度看又好象不存在的概念称为 透明性。 4. 对于通用寄存器型机器,这些属性主要是指: (选择题) 1) 指令系统(包括机器指令的操作类型和格式、指令间的排序和控制机构等) 2) 数据表示 (硬件能直接辩认和处理的数据类型) 3) 寻址规则 (包括最小寻址单元、寻址方式及其表示) 4) 寄存器定义 (包括各种寄存器的定义、数量和使用方式) 5) 中断系统 (中断的类型和中断响应硬件的功能等) 6) 机器工作状态的定义和切换 (如管态和目态等) 7) 存储系统 (主存容量、程序员可用的最大存储容量等) 8) 信息保护 (包括信息保护方式和硬件对信息保护的支持) 9) I/O 结构(包括 I/O 连接方式、处理机 /存储器与 I/O 设备间数据传送的方式和 格式 以及 I/O 操作的状态等) 5. 计算机组成指的是计算机系统结构的逻辑实现, 包含物理机器级中的数据流和控制流的 组成以及逻辑设计。 6. 计算机实现指的是计算机组成的物理实现。 7. 数据表示是指计算机硬件能够直接识别、指令集可以直接调用的数据类型。 8. 数据类型、数据结构、数据表示之间的关系 名词解释 填空 选择 简答 计算 L1:微程序机器

9.系列机指由同一厂商生产的具有相同体系结构、但具有不同组成和实现的一系列不同型 号的机器。 10.常见的计算机系统结构分类法有两种:Flynn 分类法和冯氏分类法。冯氏分类法是用系 统的最大并行度对计算机进行分类;Flynn 分类法是指按照指令流和数据流的多倍性进行分类。 11.定量分析技术(简答题): 1)以经常性事件为重点:在计算机系统设计中,经常需要在多种不同的方法之间进行折中,这时应按照对经常发生的情况采用优化方法的原则进行选择。 2)Amdahl 定律:加速某部件执行速度所能获得的系统性能加速比,受限于该部件的执行时间占系统中总执行时间的百分比。 3)CPU性能公式:执行一个程序所需的CPU 时间=执行程序所需的时钟周期数*时钟周期时间 4)程序的局部性原理:指程序执行时所访问的存储器地址分布不是随机的,而是相对簇聚的。分为时间局部性和空间局部性。 12.冯诺依曼结构的特点:以运算器为中心;在存储器中,指令和数据同等对待;存储器是 按地址访问、按顺序线性编址的一维结构,每个存储单元的位数是固定的;指令是按顺序执行的;指令由操作码和地址码组成;指令和数据均以二进制编码表示,采用二进制运算。 13.实现可移植性的常用方法有三种:采用系列机、模拟与仿真、统一高级语言。 14.系列机在兼容方面,向后兼容一定要保证,尽量保证向上兼容 15.模拟是指用软件的方法在一台现有的计算机上实现另一台计算机的指令集。(软件方法) 16.仿真是指用一台现有计算机上的微程序去解释实现另一台计算机的指令集。(硬件方法) 17.并行性包括同时性和并发性。 18.从执行程序的角度来看,并行性等级从低到高可分为:(简答) 1)指令内部并行:单条指令中各微操作之间的并行 2)指令级并行:并行执行两条或两条以上的指令 3)线程级并行:并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位。 4)任务级或过程级并行:并行执行两个或两个以上的过程或任务,以子程序或进程为调度单位。 5)作业或程序级并行:并行执行两个或两个以上的作业或程序。 19.提高并行性的技术路径(12 字):时间重叠、资源重复、资源共享 20.能够对紧密耦合系统和松散耦合系统进行区分:紧密耦合系统共享主存,松散耦合系统共 享外设 21.CISC 指令集结构存在的问题: 1)各种指令的使用频度相差悬殊

计算机体系结构期末考试知识点与答案

体系结构复习重点.doc 1..诺依蔓计算机的特点 答:·若依曼计算机的主要特点如下: 存储程序方式。指令和数据都是以字的方式存放在同一个存储器中,没有区别,由机器状态来确定从存储器读出的字是指令或数据。 指令串行执行,并由控制器集中加以控制、 单元定长的一维线性空间的存储器 使用低级机器语言,数据以二进制形式表示。 单处理机结构,以运算器作为中心。 其实,他最大的特点就是简单易操作。 2. T(C)=所描述的三个层次(8页) 答:3个层次为控制器、算术逻辑部件、基本逻辑部件 3. 计算机系统结构的分类(5页) 4. 计算机系统中的数据表示(38页) 5. 指令系统设计的原则 答:指令系统的设计原则是,应特别注意如何支持编译系统能高效、简易地将源程序翻译成目标代码。 首先是正交性:又称分离原则或互不相干原则。即指令中各个有不同含义的字段之间,在编码时应互相独立、互不相关。 规整性:对相似的操作数做出相同的规定。 可扩充性:要保留一定余量的操作码空间,为以后的扩展所用。 对称性:为了使编译能更加方便,通常希望操作具有对称性。 6. 流水操作中的相关 答:流水操作过程中会出现一下的3个相关:资源或结构相关、数据相关、和控制相关。 资源相关是指当有多条指令进入流水线后在同一机器周期内争用同一功能部件所发生的冲突。 数据相关:这是由于流水线中的各条指令的重叠操作使得原来对操作数的访问顺序发生了变化,从而导致了数据相关的冲突。 控制相关主要是转移指令引起的,比起数据相关来,他会使流水线丧失更多的性能。 7. 向量机中对向量的各种运算可以采用的加工方式(149页) 答:向量机中对向量的各种运算可以采用不同的加工方式,但比较有效的加工方式

软件设计模式与体系结构复习资料

设计准则I:正确性和健壮性 1.正确性:每个项目都要满足指定的需求,然后一起满足所有应用程序的需求,设计的正确性一般是指充分性,实现正确性的正式方法是依靠数学逻辑,非正式方法是判断设计是否满足所需的功能,当进入详细设计阶段时,经常采用正式方法来判断正确性。 2.模块可是类或者类的包,包的接口和类的接口不同,包不能被实例化,通过包来使用接口的一种方法是利用包中指定对象来提供相应的接口。 3.为了模块化特定的应用程序,在高层需要创建包,在底层需要创建类 4.设计中用到两种类:领域类和非领域类,一般是从领域类开始类的选择,然后扩展到非领域类,非领域类通常用于概括领域类。 5.健壮性:防止错误输入,防止开发错误;提高健壮性的办法:检查输入、初始化、参数传递技术、检查参数是否违反约束的方法、在类中捕获参数、包装参数、强化意图。 设计准则II 灵活性、可重用性、高效性 1.灵活性:在设计时通常要考虑到将来的变化;增加新功能要依据其上下文和应用范围 2.可重用性:一个方法相对于上下文环境越独立,其可重用性就越高;完全指定、避免不必要的封装类耦合、让名字更具表达性、解释算法。 3.高效性:应用程序必须在指定时间内完成特定的功能,同样,对内存容量也有一定的要求 设计模式引言: 1.设计目标是:灵活性、健壮性、可重用性 2.设计原则:面向接口编程的原则(面向接口编程而不是面向实现编程)、可变性封装、开—闭原则(对扩展开放,对修改关闭)、里氏替换原则(适用于父类,但不一定适用子类)、组合/聚合原则(尽量使用组合聚合/聚合,尽量不使用继承);接口隔离原则(避免接口污

染)、依赖倒转原则(高层低层依赖于抽象、细节依赖于抽象)、迪米特原则(不和陌生人说话)、单一原则 3.模式的四个基本要素:问题(描述了应该在何时使用模式)、解决方案(描述了设计的组成成分)、效果(描述了模式应用的效果及使用模式应该权衡的问题)、模式名称 4.设计模式分类:按照目的可以分为:创建型、结构型、行为型按照范围可以分为:类模式、对象模式 5.模式和框架的区别: 1)设计模式比框架更抽象 2)设计模式是比框架更小的体系结构元素 3)框架比设计模式更加特例化 创建型模式: 1.创建型模式包括抽象工厂模式、生成器模式、工厂模式、原型模式、单件模式 2.创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象 3.一个类创建型模式使用继承改变被实例化的类,而一个对象创建型模式将实例化委托给另一个对象。 4.随着系统演化地越来越依赖于对象复合而不是类继承,创建型模式变得更为重要 5.创建型模式在什么被创建、谁创建它、它是怎样被创建的以及何时创建这些方面给予很大的灵活性 6. 抽象工厂模式: 意图:提供一个创建一系列相关或相互依赖对象的接口而不需要指定他们具体的类

最新计算机体系结构复习资料(汇总版)

第一章计算机系统结构的基础知识 1、计算机体系结构:计算机体系结构是程序员所看到的计算机属性,即概念性结构与功能特性。 2、透明性:对本来是存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。在一个计算机系统中,低层机器的属性对高层机器的程序员往往是透明的,如传统机器级的概念性结构和功能特性,对高级语言程序员来说是透明的。 3、计算机系统结构、计算机组成、计算机实现之间的关系: 计算机系统结构指的是计算机系统的软、硬件的界面,即机器语言程序员所看到的传统机器级所具有的属性。 计算机组成:指的是计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。它着眼于物理机器级内各事件的排序方式与控制方式、各部件的功能以及各部件之间的关系。 计算机的实现:指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。它着眼于器件技术和微组装技术,其中器件技术在实现技术中起主导作用。 4、计算机系统的分类:1)Flynn(单/多指令流单/多数据流四种) 2)冯氏分类法:最大并行速度。 5、程序的局部性:时间局部性(程序即将用到的信息很可能就是目前正在使用的信息) 空间局部性(程序即将用到的信息很可能与目前正在使用的信息在空间上相邻或者邻近)。 6、计算机系统设计原理:由上往下设计、由下往上设计、从中间开始设计。 从中间设计的优点:“中间”指层次结构中的软硬件的交界面,目前一般是在传统机器语言机器级与操作系统机器级之间。好处:采用这种方法时,首先要进行软硬件功能分配,确定好这个界面。然后从这个界面开始,软件设计者往上设计操作系统、汇编、编译系统等,硬件设计者往下设计传统机器级、微程序机器级等。软件和硬件并行设计可以缩短设计周期,设计过程中可以交流协调,是一种交互式的、很好的设计方法。 7、存储程序计算机(冯·诺依曼结构):采用存储程序原理,将程序和数据存放在同一存储器中。指令在存储器中按其执行顺序存储,由指令计数器指明每条指令所在的单元地址。存储程序原理的基本点是指令驱动。 主要特点: ·计算机以运算器为中心。输入/输出设备与存储器之间的数据传送都经过运算器;存储器、输入/输出设备的操作以及它们之间的联系都由控制器集中控制。 ·在存储器中,指令和数据同等对待。指令和数据一样可以进行运算,即由指令组成饿程序是可以修改的。 ·存储器是按地址访问、按顺序线性编址的一维结构,每个单元的位数是固定的。 ·指令的执行是顺序的,即一般是按照指令在存储器中存放的顺序执行。程序的分支由转移指令实现。由程序计数器PC指明当前正在执行的指令在存储器中的地址。 ·指令由操作码和地址码组成。操作码指明本指令的操作类型,地址码指明操作数地址和存放运算结果的地址。操作数的类型由操作码决定,操作数本身不能判定是何种数据类型。·指令和数据均以二进制编码表示,采用二进制运算。 8、计算机五大部件:控制器、运算器、存储器、输入输出设备。 9、一条指令由那两部分组成:操作码、地址码。

体系结构复习题

名词解释: 1.计算机系统结构:传统机器程序员所看到的计算机属性,即概论性机构与 功能特性。 2.CISC:复杂指令集计算机。 3.定向技术:流水线中将计算结果从其产生的地方直接送到真正需要它的地 方,而不是从寄存器文件读出使用,他是一种解决数据相关,避免流水线暂停的技术。 4.指令级并行:并行执行两条或两条以上的指令。 5.多级存储层次:采用不同技术实现的存储器,处在离CPU不同距离的层次 上,各存储器之间一般满足包容关系,即任何一层存储器中的内容都是其下一层(离CPU更远的一层)存储器中内容的子集。 6.系统加速比 7.RISC 8.动态流水线 9.指令的动态调度 10.全相联映象 11.Amdahl定律 12.寻址方式 13.静态流水线 14.前瞻执行 15.替换算法 16.紧密耦合系统 17.通用寄存器型机器 18.数据相关 19.写后读冲突 20.分支目标缓冲 21.存储程序计算机 22.松散耦合系统 23.处理机间流水线 24.分段开采 25.全相联映象 判断题 26.(√)执行时间不是唯一的性能指标,但它是最普遍的性能表示形式。 27.()MIPS和MFLOPS是计算机性能衡量的两个可靠指标。 28.()程序的空间局部性指程序即将用到的信息很可能就是目前正在使用 的信息。 29.(√)响应时间必须通过运行“真实程序”获得。 30.()基准程序能够完全预测一个程序在计算机上的运行性能。 31.()DLX流水线中,所有数据相关都可以通过定向技术解决。 32.()强制性失效和容量失效也受相联度的影响。 33.(√)伪相联cache具有快速命中与慢速命中两种命中时间。 34.(√)Cache命中时间往往会直接影响到处理器的时钟频率。 35.(√)Cache失效中必定包含强制性失效。

软件设计与体系结构题目与答案

1.各种性能指标及如何到达各种性能指标的方法 (1)防止变异模式:是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。 解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定借口。 (2)依赖反转原理:把你的类从局的现实中隔离开,使他们依赖于抽象类或接口。它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。 2.常用的中间件有那几种类型 (1)常见的对象请求代理架构 (2)面向消息的中间件 (3)J2EE (4)消息代理 (5)业务过程代理 3.有那些常见架构风格 (1)管道和过滤器架构风格 (2)面向对象风格 (3)隐式调用风格 (4)客户-服务器风格 (5)分层风格 (6)仓库风格 (7)解释程序风格 (8)过程控制风格 4.架构师需要的核心技能是什么 (1)涉众之间的交流 (2)技术知识 (3)软件工程学 (4)风险管理

5.什么是软件架构 软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致的描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口(计算机科学)实现。 6.什么是架构风格 一组原则。你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。 7.什么是架构视图 一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,从而省略了此方面无关的实体。 8.各种架构风格的组件和连接器是什么 1.管道和过滤器架构风格: 适用于需要定义一系列的执行规则数据的独立运算,组件在输入时读数据流,在输出时产生数据流 组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了 连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。 2.面向对象风格: 适用于主要问题识别和保护信息的相关主体 数据代理和他们相关的操作封装在一个抽象数据类型里面 组件:对象 连接器:功能和过程调用 3.客户-服务器风格: 适用于涉及到分布式的数据和跨越一系列的组件的处理 组件:服务器、客户端 连接器:网络 4.分层风格: 适用于设计到分布式的能够分层的组织的类的服务,每层给它的上一层提供服务,同时作为下一层的客户端。只有仔细的从内层选择选择过程,才能用于他们接近的外层。 组件:典型的过程的集合

软件设计与体系结构实验报告

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级:2007 学号:070481024 指导教师:王李进 职称:讲师 2009年12月16日

实验项目列表

福建农林大学计算机与信息学院实验报告 学院:计算机与信息学院专业:软件工程系年级:2007 姓名:陈宇翔 学号:070481024 课程名称:软件设计与体系结构实验时间:2009-10-28 实验室田实验室312、313计算机号024 指导教师签字:成绩: 实验1:ACME软件体系结构描述语言应用 一、实验目的 1)掌握软件体系结构描述的概念 2)掌握应用ACMESTUDIO工具描述软件体系结构的基本操作 二、实验学时 2学时。 三、实验方法 由老师提供软件体系结构图形样板供学生参考,学生在样板的指导下修改图形,在老师的指导下进行软件体系结构描述。 四、实验环境 计算机及ACMESTUDIO。 五、实验内容 利用ACME语言定义软件体系结构风格,修改ACME代码,并进行风格测试。 六、实验操作步骤 一、导入Zip文档 建立的一个Acme Project,并且命名为AcmeLab2。如下图:

接着导入ZIP文档,导入完ZIP文档后显示的如下图: 二、修改风格 在AcmeLab2项目中,打开families下的TieredFam.acme.如下图: 修改组件外观 1. 在组件类型中,双击DataNodeT; 在其右边的编辑器中,将产生预览;选择Modify 按钮,将打开外观编辑器对话框。 2. 首先改变图形:找到Basic shape section,在Stock image dropdown menu中选 择Repository类型. 3. 在Color/Line Properties section修改填充颜色为深蓝色。 4. 在颜色对话框中选择深蓝色,并单击 [OK]. 5. 修改图形的边框颜色为绿色 7. 单击Label tab,在Font Settings section, 设置字体颜色为白色,单击[OK] 产生的图形如下图:

软件体系结构期末考试试题

软件体系结构-设计模式练习题1 1.面向对象分析与设计中的(1)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(2)是指子类应当可以替换父类并出现在父类能够出现的任何地方。 (1) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 (2) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则 2.(3)限制了创建类的实例数量,而(4)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 (3) A.命令模式(Command)B.适配器模式(Adapter)C.策略模式(Strategy) D.单例模式(Singleton) (4) A.命令模式(Command) B.适配器模式(Adapter) C.策略模式(Strategy) D.单例模式(Singleton) 3. (5)设计模式允许一个对象在其内部状态改变时改变它的行为。下图为这种设计模式的类图,已知类State 为抽象类,则类(6)的实例代表了Context 对象的状态。 (5) A.单件(Singleton) B.桥接(Bridge) C.组合(Composite) D.状态(State) (6) A. Context B. ConcreteStateA C. Handle D. State

4.某公司欲开发一门户网站,将公司的各个分公司及办事处信息进行整合。现决定采用Composite设计模式来实现公司的组织结构关系,并设计了如下图所示的UML类图。图中与Composite模式中的“Component”角色相对应的类是(7) ,与“Composite”角色相对应的类是(8) 。 (7) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany (8) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany 5.某软件公司正在设计一个通用的嵌入式数据处理平台,需要支持多种数据处理芯片之间的数据传递与交换。该平台的核心功能之一要求能够屏蔽芯片之间的数据交互,使其耦合松散,并且可以独立改变芯片之间的交互过程。针对上述需求,采用(9)最为合适。 (9) A. 抽象工厂模式 B. 策略模式 C. 中介者模式D. 状态模式 6.某软件公司正在设计一个图像处理软件,该软件需要支持用户在图像处理中的撤销和重做等动作,为了实现该功能,采用(10)最为合适。 (10) A. 单例模式B. 命令模式 C. 访问者模式 D. 适配器模式 7.某互联网公司正在设计一套网络聊天系统,为了限制用户在使用该系统时发表不恰当言论,需要对聊天内容进行特定敏感词的过滤。针对上述功能需求,采用(11)能够灵活配置敏感 词的过滤过程。 (11) A. 责任链模式 B. 工厂模式 C. 组合模式 D. 装饰模式

系统结构复习资料

考试题型 一、单项选择题(每题2分,共26分) 二、填空题(每空0.5分,共7分) 三、大题(共67分) 共5个,有概念题、分析题、计算题、设计题、综合题 复习提纲 大题的复习范围: 1.会利用CPU性能公式比较多种设计方案的优劣 公式一: CPU时间= 一个程序的CPU时钟周期数*时钟周期长度 或:CPU时间= 一个程序的CPU时钟周期数/时钟频率 公式二: CPU时间= IC*CPI*时钟周期长度 公式三: 2.会利用Amdahl定律比较多种设计方案的优劣 Amdahl定律:计算机系统中某一部件由于采用某种更快的执行方式后整个系统性能的提高与这种执行方式的使用频率或占总执行时间的比例有关。

3. Cache 的性能分析,会针对具体情况分析Cache 的性能 CPU 执行时间: 时钟周期时间存储器停顿周期数时钟周期数执行时间?+=)(CPU CPU 缺失代价缺失率指令存储器访问次数指令数缺失代价指令 缺失次数指令数缺失代价 缺失次数存储器停顿周期数???=?? =?= 平均存储器访问时间(AMAT ): 缺失代价缺失率命中时间主存 ?+=?-+?=T H T H AMAT Cache )1( 提高Cache 性能: 可见主要途径有: 降低缺失代价 降低缺失率 通过并行性降低缺失代价/缺失率 降低Cache 命中时间 4. 导致Cache 失效的原因,需进一步掌握如何降低这三类失效的方法 原因: (1)强制(Compulsory )缺失:对一个块的第一次访问一定不在Cache 中,所以该块必须被调入到Cache 中(这也称为:冷启动缺失、首次访问缺失等)。 (2)容量(Capacity )缺失:如果Cache 容纳不了一个程序持续执行所需要的所有块,将会发生容量缺失,某些块将被放弃,随后再被调入。 (3)冲突(Conflict )缺失:如果采用组相联/直接相联,则可能有多个块映射到同一块中,发生冲突缺失。 降低缺失率的技术: (1)增加Cache 块大小 (2)增加Cache 容量 (3)增加相联度

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

软件体系结构课后作业及答案

一次 就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件()可以是一组代码,如程序的模块;也可以是一个独

立的程序(如数据库的服务器); 连接件()是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制():用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)繁多,缺乏同意的的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 二次

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。

6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者能够把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现能够交换使用。这样,就能够定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都能够很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

计算机体系结构复习资料

第一章计算机体系机构的基本概念 1.计算机系统结构包括数据表示、机器工作状态、信息保护,不包括主存速度。计算机系统结构应该考虑的内容包括主存容量和编址方式,而主存采用MOS还是TTL器件、主存是采用多体交叉还是单体、主存频宽的确定等都不是计算机系统结构应该考虑的内容。存储器采用单体单字,还是多体交叉并行存取,对系统结构设计是透明的。又如在系列机内推出新机器,不能更改的是原有指令的寻址方式和操作码,而存储芯片的集成度、系统总线的组成、数据通路宽度是可以更改的。系列机是指在一个厂家内生产的具有相同的体系结构,但具有不同的组成和实现的一系列不同型号的机器。 2. 计算机系统中提高并行性的技术途径有时间重叠、资源重复和资源共享三种。在高性能单处理机的发展中,它的实现基础是流水线。 3. 软件和硬件在逻辑功能上是等效的,软件的功能可用硬件或固件完成,但性能、实现的难易程度不同。 4. Amdahl 定律:加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。 5. 计算机组成是计算机系统结构的逻辑实现,计算机实现是计算机组成的物理实现。 6. 计算机系统多级层次结构由高到低,依次是应用语言机器级、高级语言机器级、汇编语言机器级、操作系统机器级、传统机器语言级和微程序机器级。 7. 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行某一程序的整体性能提高到原来的5倍,试计算该程序中浮点操作所占的比例。 系统加速比=1 / (1-可改进比例+可改进比例/部件加速比) 5 = 1 / (1-可改进比例+可改进比例/ 20) 可得可改进比例=84.2% 8. 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据、如下所示。 (1)改进后,各类操作的加速比分别是多少? (2)各类操作单独改进后,程序获得的加速比分别是多少? (3)4类操作均改进后,整个程序的加速比是多少? 多部件改进后的系统加速比

软件设计与体系结构知识点

软件设计与体系结构知识点 1.软件设计的特征 (1)软件设计的开端是出现某些新的问题需要软件来解决,这些需要促使设计工作的开始,并成为整个设计工作最初的基础 (2)软件设计的结果是给出一个方案,它能够用来实现所需的、可以解决问题的软件,方案的描述可能是文字、图表,甚至数学符号、公式等组成的文档或模型 (3)软件设计包含一系列的转换过程,即把一种描述或模型转换为另一种描述或模型,转换后的形态可能更加具体,或更接近于实现 (4)产生新的想法或思路对软件设计非常重要,因为设计也是一个创造性的过程,不同的问题或需求总会存在各自的特点,即使同样的问题在不同时期和环境下也会存在区别,因此设计不会是一成不变的 (5)软件设计的过程是不断解决问题和实施决策的过程,因为整个设计是解决一个大的问题,在设计过程中将会分解成众多小问题,涉及真需要一次解决这些小的问题,并在出现多种方案或策略时进行决策,选择其中最合适的 (6)软件设计也是一个满足各种约束的过程,因为软件可能在性能、运行环境、开发时间、成本、人员技术水平等各个方面存在约束,设计必须在满足这些约束的情况下给出最佳的设计方案 (7)大多数的软件实际是一个不断演化的过程,因为需求在一开始很可能是不完整或不精确的,在设计过程中还会不断发生变化并逐步稳定下来,因此设计需要根据需求的变化而不断演化。 2.软件设计的要素 (1)目标描述(2)设计约束(3)产品描述(4)设计原理(5)开发规划(6)使用描述3.软件设计体系的定义 (1)软件设计体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系 (2)软件体系结构是软件系统的基本组织,包含构建、构件之间、构件与环境之间的关系,以及相关的设计与演化原则 4.软件设计的主要活动 (1)软件设计计划(2)体系结构设计(3)界面设计(4)模块/子系统设计(5)过程/算法设计(6)数据模型设计 5.体系结构“4+1”多视图建模 (1)逻辑视图:该视图关注功能需求,即系统应该为最终用户提供什么服务,它与应用领域精密相关 (2)进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性。 (3)开发视图:该试图主要描述软件在开发环境中的静态结构,开发人员和项目经理对比都会感兴趣。 (4)物理视图:该视图描述软件到硬件的映射关系,反映了软件的分布特征。 (5)场景:可以使用一组重要场景也就是用例的实例,把上述四种视图紧密的联系起来6.什么是软件产品线方法 软件产品线是软件复用发展的一个更高阶段,它并不仅仅局限于以前人们在软件复用中考虑的对函数、模块、类、体系结构甚至子系统的重用。 软件产品线指一组具有公共的、可管理特征(系统需求)的软件系统,这些系统满足特定的

相关文档
最新文档