软件体系结构习题复习

合集下载

软件体系结构知识点复习

软件体系结构知识点复习

一、什么是软件系统结构软件体系结构也称为软件构架(有时简称构架),是系统的一个或多个结构,它包括:软件的组成元素(组件),这些元素(组件)的外部可见特性,以及这些元素(组件)之间的相互关系。

含义:(1)系统由一个或多个结构组成,其中任何一个结构并不能与构架等同。

(2)每个系统都有一个体系结构。

(3)软件体系结构是系统的抽象。

(4) 构架定义了软件元素以及各元素间的交互关系。

(5) 以往作为体系结构传递的线框图,事实上并等同于体系结构。

二、构架商业周期(ABC)1.构架由什么决定?构架是否由系统需求决定?×软件构架是技术、商业和社会因素共同作用的结果。

2. 构架从哪里来?(影响构架的因素)影响构架的因素主要包括:❑系统涉众(stakeholder)、主要有:管理者:成本要低,人人都得干活营销人员:特性突出、投放市场快、成本低、可与同类产品相匹敌。终端用户:行为、性能、安全性、可靠性、易用性。维护人员:可修改性强。客户:成本低、及时交付、不要频繁修改。❑开发组织・组织内对现存构架的重用・对某个基础设施进行长期的商业投资以实现某些战略目标・开发组织本身的机构也会影响构架的形成❑构架师的素质和经验构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。

❑技术环境当前技术发展水平代表了某个时代的构架师的普遍素质和经验,对架构有很大的影响力。

❑其它因素其它如社会、法律、人文环境等都会对构架产生影响。

3.构架的反影响力・构架会影响开发组织的结构・构架会影响开发组织的目标・构架会影响客户对下一个系统的要求・构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计・一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境。

4.构架的商业周期软件构架是技术、商业和社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业和社会环境,从而影响未来的软件构架。

软件体系结构课后习题第三章作业

软件体系结构课后习题第三章作业

题1.层次系统结构和基于消息的层次系统结构有什么区别?答:层次系统组织成一个层次结构,每一层为上层服务,并作为下层客户。

在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。

这样的系统中构件在一些层实现了虚拟机(在另一些层次系统中层是部分不透明的)。

连接件通过决定层间如何交互的协议来定义,拓扑约束包括对相邻层间交互的约束。

这种风格支持基于可增加抽象层的设计。

允许将一个复杂问题分解成一个增量步骤序列的实现。

由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。

而在基于消息的层次系统结构中构件不直接调用一个过程,而是触发或广播一个或多个事件。

系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。

这种风格的构件是一些模块,模块既可以是一些过程,又可以是一些事件的集合。

过程可以用通用的方式调用,也可以在系统事件中注册一些过程,当发生这些事件时,过程被调用。

这种风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。

这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。

题2.分析比较B/S、二层C/S和三层C/S,指出各自的优点和缺点。

二层C/S结构的优点:◆C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。

◆系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。

◆在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。

软件系统分析与设计复习资料参考答案

软件系统分析与设计复习资料参考答案

参考答案选择题1.D2.C3.D4.C5.B6.D7.C8.B9.D10.A11.B12.A13.B14.D15.A16.B17.A18.D19.C20.A21.D22.B23.B24.D25.D26.B27.B28.A29.A30.C31.A32.B33.A34.B35.B36.A37.B38.A39.A40.C41.A42.C43.C44.D45.A46.B47.D48.C49.D50.C51.C52.A53.D54.B55.A56.A57.D58.A59.D60.A61.B62.D63.C64.A65.A66.C67.C68.A69.D70.A71.D72.A73.C74.A75.D判断改错题1.(√)2.(×)有“泳道”概念的是活动图。

3.(×)题目中描述的是CORBA。

4.(×)水平坐标表示一组对象,垂直坐标表示时间顺序。

5.(√)6.(×)UML是建模语言,不是方法论。

7.(√)8.(√)9.(×)两者没有明显分界,需要反复迭代的进行。

10.(×)OOCASE通过外部接口可以方便的调用其它工具软件。

11.(×)定义不同。

12.(√)13.(√)14.(×)完成使命的对象可以被销毁。

15.(×)由图和文字描述组成。

16.(√)17.(×)描述的是白盒复用。

18.(√)19.(F)它不能直接调用EJB构件,而是通过使用代理来调用。

20.(F)不能有嵌套的动作或递归的动作表达式。

21.(T)22.(F)需求模型也是可复用的软件制品。

23.(F)构件图主要用于建立系统的静态实现模型。

24.(F)OOCASE通过外部接口可以方便的调用其它工具软件。

25.(F)“对象+消息”的程序设计模式。

26.(F)通过频繁使用设计样式来设计更大更复杂的系统。

27.(T)28.(T)29.(T)30.(F)协作图强调对象之间的关系,而时序图强调一组对象之间错作调用的时间顺序。

软件体系结构 习题答案

软件体系结构 习题答案

软件体系结构习题答案软件体系结构习题答案1. 什么是软件体系结构?软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系以及它们的功能和行为。

软件体系结构通常包括多个层次,从整体到细节逐渐展开,以便更好地理解和设计软件系统。

2. 为什么软件体系结构很重要?软件体系结构对于软件系统的开发和维护具有重要意义。

它可以提供一个框架,指导软件开发者进行系统设计和实现。

良好的软件体系结构可以提高软件系统的可维护性、可扩展性和可重用性,同时降低开发和维护的成本。

3. 软件体系结构有哪些常见的模式?常见的软件体系结构模式包括分层模式、客户端-服务器模式、发布-订阅模式、模型-视图-控制器模式等。

每种模式都有其特定的应用场景和优缺点,开发者可以根据具体需求选择合适的模式。

4. 什么是分层模式?分层模式是一种常见的软件体系结构模式,将软件系统划分为多个层次,每个层次负责不同的功能。

通常包括表示层、业务逻辑层和数据访问层。

这种模式可以提高系统的可维护性和可扩展性,同时降低各个层次之间的耦合度。

5. 客户端-服务器模式是什么?客户端-服务器模式是一种常见的软件体系结构模式,将软件系统划分为客户端和服务器两部分。

客户端负责用户界面和用户交互,而服务器负责处理客户端的请求并提供相应的服务。

这种模式可以实现分布式计算和资源共享,提高系统的可伸缩性和可靠性。

6. 发布-订阅模式是什么?发布-订阅模式是一种常见的软件体系结构模式,用于实现消息传递和事件通知。

发布者将消息发布到一个或多个主题,而订阅者可以选择订阅感兴趣的主题并接收相关的消息。

这种模式可以实现解耦和灵活的通信方式,适用于分布式系统和异步通信。

7. 模型-视图-控制器模式是什么?模型-视图-控制器(MVC)模式是一种常见的软件体系结构模式,用于实现用户界面和业务逻辑的分离。

模型负责处理数据和业务逻辑,视图负责显示用户界面,而控制器负责协调模型和视图之间的交互。

软件体系结构习题答案

软件体系结构习题答案
答:层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。分层系统的优点:
支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。
(1)
(2)
(3)应用层:处于最底层,包括构件链接,构件接口和执行中间层:包括连接件配置,构件配置,构件描述及执行体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。
1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在
b/s风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。优点(1)基于b/s体系结构的软件,
系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于c/s体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、sis和dssa分别用在哪些场合?
答:1.dssa只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结
构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。
2.dssa的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

【软件体系结构】 复习

【软件体系结构】 复习

第一章1. 体系结构发现、演化、重用体系结构发现解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。

由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称之为软件体系结构演化。

体系结构重用属于设计重用,比代码重用更抽象。

由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。

2.基于软件体系结构的软件开发方法:问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现3.评价软件体系结构的方法权衡分析方法(ATAM方法),软件体系结构分析方法(SAAM方法),中间设计的积极评审(ARID方法)第二章1. 建模结构模型:研究结构模型的核心是体系结构描述语言。

以体系结构的构件,连接件和其他概念来刻画结构。

并力图通过结构来反映系统的重要语义内容。

框架模型:与结构模型类似,但不太侧重细节,而侧重于整体结构。

动态模型:是对结构和框架模型的补充,研究系统大颗粒的行为性质。

过程模型:研究构造系统的步骤和过程,结构是遵循某些过程脚本的结果。

功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。

功能模型可以看作是一种特殊的框架模型。

4+1视图模型:逻辑视图、进程视图、物理视图、开发视图和场景视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。

在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。

这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。

在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图开发视图通过系统输入输出关系的模型图和子系统图来描述。

进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。

物理视图主要考虑如何把软件映射到硬件上。

逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。

软件体系结构-复习题

软件体系结构-复习题

《软件体系结构》习题一、单选题第一章概述1、软件开发模型大体上可以分为3种类型。

第1种是以软件需求完全确定为前提的;第2种是在软件开发初期阶段只能提供基本需求时采用的;第3种是以形式化为基础的变换模型。

A.协同模型B.瀑布模型C.变换模型D.迭代式模型2、根据《信息技术软件生存周期过程》标准,企业为实现ERP系统而准备招标书的活动属于生存周期基本过程中的过程,与该活动属于同一过程的活动还有。

A.总体规划B.系统实现C.获取D.供应A.启动B.准备投标C.系统需求分析D.项目管理3、螺旋模型是一种演进式的软件过程模型,结合了原型开发方法的系统性和瀑布模型可控性特点。

它有两个显著特点,一是采用的方式,逐步加深系统定义和实现的深度,降低风险;二是确定一系列,确保项目开发过程中的相关利益者都支持可行的和令人满意的系统解决方案。

A.逐步交付B.顺序C.循环D.增量A.实现方案B.设计方案C.关键点D.里程碑4、极限编程是一种重要的敏捷开发方法,包括策划、设计、编码和测试4个框架活动的规则和实践。

下面关于极限编程的叙述,错误的是。

A.极限编程中使用的重要技术是重构,既包括设计技术的重构,也包括构建技术的重构B.极限编程提倡在基本设计完成后立即进行编码实现,并进行测试C.极限编程活动中的关键概念之一是“结对编程”,推荐两个人面对同一台计算机共同开发代码D.极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即时的回归测试策略5、把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。

A.原型模型B.瀑布模型C.螺旋模型D.V模型6、某企业使用了某厂商的软件产品,随后该厂商又推出了这种产品的新版本。

该企业信息中心正在考虑是否需要升级该软件。

信息中心未做出立即更新软件版本的决定,最可能的原因是。

A.需要等待用户部门做出支付软件版本升级费用的预算B.用户部门还没有要求软件版本升级C.虽然新版软件在社会上已普遍使用,但信息中心还是担心存在潜在问题D.新版软件与其他用户部门正在使用的软件不兼容7、某小型软件公司欲开发一个基于Web的考勤管理系统,客户对系统的基本功能、表现形式等要求并不明确。

软件架构复习题及答案

软件架构复习题及答案

不定项选择题:1.开发过程中最困难的一个环节是()。

A需求的收集B需求的分析C体系结构的设计D人员之间思想的交流2.用例是从()的观点对系统行为的一个描述。

A分析员B设计员C程序员D用户3.顺序图所表达的是基于()的动态交互。

A时间B空间C人员D对象4.多重性5,10表示()。

A5到10 B5或10 C5与10 D5对105.在找出了类的继承关系后,通常可以用()来表示最上层的基类。

A密封类B抽象类C接口D包6.使用用例的难点在于()。

A发现高层用例B发现用例之间的包含、扩展关系C研究用例中每个场景的步骤D将用例表示成用例图7.产生类图和得到用例这两个步骤,位于前面的是()。

A产生类图B得到用例C同时进行D没有固定的套式8.面向对象理论中,对象之间发送信号,在UML状态图里就是()。

A状态B变迁C事件D动作9.当代软件工程的特点是()。

A强调无缝集成B开发阶段之间可以重叠C开发阶段之间可以反复迭代D尽可能多花时间在分析和设计上10.GRAPPLE中最重要的段是()。

A需求收集B需求分析C设计D开发11.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。

A命令B抽象工厂C策略D桥接12.当我们想将抽象部分和实现部分分离时,可以使用()模式。

A工厂方法B抽象工厂C策略D桥接13.面向对象系统中功能复用的两种最常用技术是()。

A类继承 B封装 C对象组合 D关联14.对象组合是通过获得()而在运行时刻动态定义的。

A对象 B对其它对象的引用C关联D继承15.在Lexi系统中,我们把所有文档元素都看作是图元,这样,它们就有了相同的()。

A接口B类型C名称D属性16.一个软件产品是否成功,因素有()。

A完整正确的需求分析B好的体系结构C细致全面的测试D合理的管理17.当需要在项目中定制自己的元素时,可使用()。

A注释B构造型C约束D包18.表示一个操作中的参数和返回值的数据类型的称呼是()。

软件体系结构课后习题第二章作业

软件体系结构课后习题第二章作业

习题1:选择一个规模合适的系统为其建立“4+1”模型。

解:一个ATM系统的“4+1”模型:
1.首先是场景:
2.然后是逻辑视图:
3.开发视图如下:
4.进程视图如下:
5.物理视图如下:
习题2:引入了软件体系结构以后,传统软件过程发生了哪些变化?这些变化有什么好处?
答:软件体系结构的引入使传统软件设计开发更加具体和形象,使得软件过程变得更加方便和多样化。

其好处在于:包括程序员在内的绝大多数系统的利益相关人员都可借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通;软件体系结构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用;在很多方面使得软件开发更加易于维护和理解。

习题3:软件体系结构的生命周期模型与软件生命周期模型有什么关系?
答:软件体系结构在系统开发的全过程中起着基础的作用,是设计的起点和依据,同时也是装配和维护的指南。

软件体系结构是贯穿于软件研发的整个软件生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。

软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。

课后练习及答案7

课后练习及答案7

软件体系结构设计(习题与参考答案)[选择题]1. ()系统体系结构的最佳表示形式是一个可执行的软件原型。

(B)A. 真B. 假2. ()软件体系结构描述是不同项目相关人员之间进行沟通的使能器。

(A)A. 真B. 假3. ()良好的分层体系结构有利于系统的扩展与维护。

(A)A. 真B. 假4. ()消除两个包之间出现的循环依赖在技术上是不可行的。

(B)A. 真B. 假5. ()设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。

(A)A. 真B. 假6. 程序编译器的体系结构适合使用()。

(A)A. 仓库体系结构B. 模型-视图-控制器结构C. 客户机/服务器结构D. 以上选项都不是7. 网站系统是一个典型的()。

(C)A. 仓库体系结构B. 胖客户机/服务器结构C. 瘦客户机/服务器结构D. 以上选项都不是8. 在分层体系结构中,()实现与实体对象相关的业务逻辑。

(D)A. 表示层B. 持久层C. 实体层D. 控制层9. ()可以帮助人们简单方便地复用已经成功的设计或体系结构。

(B)A. 商业组件B. 设计模式C. 遗留系统D. 需求规格说明10. ()用于封装具体的平台,从而使应用程序可以在不同的平台上运行。

(A)A. 抽象工厂模式B. 外观模式C. 观察者模式D. 以上选项都不是[练习题]1. 良好的软件体系结构设计有什么好处?答案要点:软件体系结构设计过程的核心在于建立系统的一个基本框架,即识别出系统的主要组件以及这些组件之间的通信。

良好的体系结构设计具有以下主要好处:y项目相关人员之间的沟通:软件体系结构是系统的一种高层表示,它可以成为不同项目相关人员之间沟通的使能器;y系统分析:在系统分析过程中确定系统的初步体系结构,将对系统是否满足关键性需求(如性能、可靠性和可维护性等)产生很大的影响;y大规模复用:体系结构可以在具有相似需求的系统之间互用,从而支持大规模的复用。

2. 消除包之间的循环依赖性有哪两种主要方法?参考答案:将PackageA中的循环依赖元素提取到PackageC中(1)PackageC 中的循环依赖PackageD 中(2)3. 给下面的系统设计一个适当的体系结构:参考火车站自动售票系统客户机模型,其中自动售票机作为客户机负责处理应用逻辑并实现(2) MVC 结构,其中模型是三维几何形体的边界表示,视图将模型中的几(3) 三层体系结构,其中一个数据服务器管理客户的帐户数据库,一个Web 服务4. 什么是三层体系结构?它的优缺点是什么?结构将系统划分成表示层、应用逻辑层和数据存储层,其中表示层由客户机上的浏览器处y 之间是松耦合关系,二者通过标准的HTML 语言进行交互,客户端的维y 务器之间是松耦合关系,应用服务器可以通过标准的数据访问接口(如(1) 火车站自动售票系统(2) 三维几何造型系统(3) 网上银行系统答案:(1) 这是一个典型的胖与系统的交互,服务器是一个大型主机,运行火车票的数据库。

软件体系结构与设计模式期末复习

软件体系结构与设计模式期末复习

体系结构期末复习一、选择题(一)1. 设计模式的基本原理是( C )A.面向实现编程B.面向对象编程C.面向接口编程D.面向组合编程2. 设计模式的两大主题是( D )A.系统的维护与开发B.对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展3. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。

A.组合聚合B.继承C.创建D. .以上都不对4. 关于继承表述错误的是( D )A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。

B.泛化类(超类)可以显式地捕获那些公共的属性和方法。

特殊类(子类)则通过附加属性和方法来进行实现的扩展。

C.破坏了封装性,因为这会将父类的实现细节暴露给子类。

D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。

5. 常用的设计模式可分为( A )A.创建型、结构型和行为型B.对象型、结构型和行为型C.过程型、创建型和结构型D.抽象型、接口型和实现型6. “不要和陌生人说话”是对( D )设计原则的通俗表述。

A.接口隔离B.里氏代换C.依赖倒转D. .迪米特法则7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用A.合成聚合B.里氏代换C.依赖倒转D. .迪米特法则8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述A.策略模式B.桥接模式C.适配器模式D.单例模式9. 以下设计模式中属于结构模式的是( D )A. 观察者模式B.单例模式C.策略模式D.外观模式10. 以下不属于对象行为型模式是( D )A. 命令模式B.策略模式C.访问者模式D.桥接模式11. 下面的类图表示的是哪个设计模式( D )A. 抽象工厂模式B.观察者模式C.策略模式D.桥接模式12. Open-Close开闭原则的含义是一个软件实体( A )A.应当对扩展开放,对修改关闭。

B.应当对修改开放,对扩展关闭。

(完整word版)电子科技大学2017年-林迪-软件体系结构-复习整理

(完整word版)电子科技大学2017年-林迪-软件体系结构-复习整理

目录1、构件和连接件 (3)2、软件体系结构生命周期模型 (4)3、软件重用技术在软件开发中的作用? (4)4、软件体系结构的生命周期模型和软件生命周期模型有什么关系? (补充) . 55、CORBA 架构的技术规范 (5)6、C2 概述 (6)7、云服务三个层次 (7)6、现有IT 系统的主要问题 (9)7、采用云计算技术后新系统的架构初探 (12)8、大数据4V 特征和什么是大数据? (12)9、离线批处理模型、内存计算模型、交互计算模型的区别 (13)10、大数据总结 (13)11、Hadoop 原理: HDFS 及MapReduce (13)12、设计SOA架构图 (14)13、HDFS 处理过程 (15)14、MapReduce 处理过程 (16)15、MapReduce分布式处理技术-实现机制 (18)16、MapReduce分布式处理技术—实例-单词统计WordCount (19)17、MapReduce分布式处理技术-实例—文档倒排索引算法 (21)18、区域系统架构扩展方案 (22)19、中间件的优点 (22)20、架构设计的基本准则 (23)1、构件和连接件软件体系结构的核心模型由五种元素组成:构件、连接件、配置、端口、角色。

其中,构件、连接件和配置是最基本的元素.构件:具有某种功能的可重用软件单元,表示系统中主要的计算和数据存储。

构件只能通过接口与外部交互,接口由一组端口组成,每个端口表示了构件与外部环境的交互点.通过不同的端口类型,一个构件可以提供多重接口。

(每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。

这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。

)构件的定义:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。

(完整版)软件体系结构复习题及答案

(完整版)软件体系结构复习题及答案

概述部分1、请分析软件危机的主要表现和原因。

表现:a)软件成本日益增加:开发、部署与应用成本高b)开发进度难以控制:不能按期完成c)软件质量差:错误率高,不能满足用户的需求,没有生命力d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误原因:1.用户需求不明确2.缺乏正确的理论指导3.软件规模越来越大4.软件复杂度越来越高2、请说明软件规模与复杂度对软件过程的影响及解决方法。

软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。

应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。

3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束)软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。

它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。

4、请简述软件重用的含义和意义。

可重用元素包括哪些种类?软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。

(含义)可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。

(种类)可重用的元素越大,我们就说重用的粒度(Granularity)越大。

软件重用是软件产业工业化、工程化的重要手段。

软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。

(意义)5、请简述常用的构件实现模型及其意义。

实现模型:1.CORBA2.EJB / DCOM / COM+意义:这些模型通常都定义了构件的实现方式、接口定义、访问方法等。

符合这些标准的任何构件都有很高的重用能力。

描述部分6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。

数据视图风格部分7、什么是软件体系结构的风格?它在软件开发过程中具有何种意义?软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。

软件体系结构(考试习题集含答案)

软件体系结构(考试习题集含答案)

1.面向对象的方法优势表达在〔ABD 〕A.简化软件开发过程B.支持软件复用C.提高软件运行效率D.改善软件结构2.用户界面设计中的三条“黄金规那么〞是〔ABC 〕A.使系统处于用户控制之中B.减少用户的记忆负担C.保持界面的一致性D.保证用户的易学性3.用户界面的分析和设计过程是迭代的,其中包括的活动是〔ABCD 〕A.用户、任务以及环境的分析和建模B.界面设计C.界面实现D.界面确认4.界面确认需要注意三个方面〔ABC 〕A.界面正确完成了用户的任务,适应用户的任务变化B.易学性和易用程度C.用户的接受程度D.用户的习惯5.用户界面分析时通常采用的信息获取方式包括〔ABCD 〕A.用户会谈B.销售人员信息采集C.市场分析D.用户支持人员信息收集6.〔C 〕把完成一个特定功能的动作序列抽象为一个过程名和参数表A.数据抽象B.动作抽象C.过程抽象D.类型抽象7.〔A〕把一个数据对象的定义抽象为一个数据类型名A.数据抽象B.动作抽象C.过程抽象D.类型抽象8.软件体系结构设计需要考虑以下〔ABCD 〕A.适用性B.结构稳定性C.可扩展性D.可复用性9.模块设计时应该考虑〔AB 〕A.模块功能独立B.模块信息的隐藏C.模块接口的简单D.模块实现简单10.一个完整的软件设计的主要活动包括有〔ABCD 〕A.体系结构设计B.界面设计C.模块/子系统设计、D.数据模型、过程/算法设计等11.模块化是指把一个复杂的问题分割成假设干个可管理的小问题后,更易于理解,模块化正是以此为依据的,在划分模块的过程中应该考虑到〔ABC 〕A.模块的可分解性、可组装型B.模块的可理解性、连续性、C.模块保护D.尽可能低分割模块,使得问题的难度降到最1.什么是软件工程?构成软件工程的要素是什么?软件工程是将系统化的、标准的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。

软件工程的要素由方法、工具和过程组成。

计算机体系结构复习题(有答案)

计算机体系结构复习题(有答案)
《体系结构复习题》 一、选择题(15 分) 1. 计算机系统多级层次中,从下层到上层,各级相对顺序正确的应当是( ) A.汇编语言机器级---操作系统机器级---高级语言机器级 B.微程序机器级---传统机器语言机器级---汇编语言机器级 C.传统机器语言机器级---高级语言机器级---汇编语言机器级 D. 汇编语言机器级---应用语言机器级---高级语言机器级 2. 对系统程序员不透明的是( ) A.Cache 存储器 B.系列几各档不同的数据通路宽度 C.指令缓冲寄存器 D.虚拟存储器 3. 在计算机系统设计中,比较好的方法是( ) A.从上向下设计 B.从下向上设计 C.从两头向中间设计 D.从中间开始向上、向下设计 4. 不同系列的机器之间,实现软件移植的途径不包括( ) A.用统一的高级语言 B.用统一的汇编语言 C.模拟 D.仿真 5. 堆栈型机器比通用寄存器型机器优越的是( ) A.支持先进先出类接替算法的求解 B.能更好地支持向量的运算 C. 支 持 由 逆 波 兰 表 达 式 将 高 级 语 言 多 元 赋 值 语 句 直 接 编 译 生 成 堆 栈 指 令 程 序 D.能优化存储器的空间利用率 6. 浮点数尾数基值 rm=8,尾数数值部分长 6 位,可表示的规格化最小正尾数为( ) A.0.5 B.0.25 C.0.125 D.1/64 7. 在尾数下溢处理方法中,平均误差最大的是( ) A.截断法 B.舍入法 C.恒置“1”法 D.ROM 查表法 8. ILLIAC Ⅳ是一种( ) A.流水线处理机 B.指令重叠处理机 C.阵列处理机 D.多处理机 9. 能实现作业、任务级并行的异构型多处理机属( ) A.MISD B.SIMD C.MIMD D.SISD 10.非线性流水线是指( ) A.一次运算中使用流水线中多个功能段 B.一次运算中要多次使用流水线中的某些功能段 C. 流水线中的某些功能段在各次运算中的作用不同 D. 流水线中的各个功能段在各种运算中有不同的组合 11.流水机器对全局性的相关处理不包括( ) A.猜测法 B.提前形成条件码 C.加快短循环程序的执行 D.设置相关专用通路 12.外部设备打印机适合于连接( ) A.数组多路通道或选择通道 B.字节多路通道或选择通道 C.选择通道 D.任意一种通道 13.虚拟存储器常用的地址映像方式是( ) A.全相联 B.段相联 C.组相联 D.直接

软件体系结构(考试习题集含答案)

软件体系结构(考试习题集含答案)

1、面向对象得方法优势体现在( ABD )A.简化软件开发过程B.支持软件复用C.提高软件运行效率D.改善软件结构2.用户界面设计中得三条“黄金规则”就是( ABC )A.使系统处于用户控制之中B.减少用户得记忆负担C.保持界面得一致性D.保证用户得易学性3.用户界面得分析与设计过程就是迭代得,其中包括得活动就是( ABCD )A.用户、任务以及环境得分析与建模B.界面设计C.界面实现D.界面确认4.界面确认需要注意三个方面( ABC )A.界面正确完成了用户得任务,适应用户得任务变化B.易学性与易用程度C.用户得接受程度D.用户得习惯5.用户界面分析时通常采用得信息获取方式包括( ABCD )A.用户会谈B.销售人员信息采集C.市场分析D.用户支持人员信息收集6.( C )把完成一个特定功能得动作序列抽象为一个过程名与参数表A.数据抽象B.动作抽象C.过程抽象D.类型抽象7.( A)把一个数据对象得定义抽象为一个数据类型名A.数据抽象B.动作抽象C.过程抽象D.类型抽象8.软件体系结构设计需要考虑以下( ABCD )A.适用性B.结构稳定性C.可扩展性D.可复用性9.模块设计时应该考虑(AB )A.模块功能独立B.模块信息得隐藏C.模块接口得简单D.模块实现简单10.一个完整得软件设计得主要活动包括有( ABCD )A.体系结构设计B.界面设计C.模块/子系统设计、D.数据模型、过程/算法设计等11.模块化就是指把一个复杂得问题分割成若干个可管理得小问题后,更易于理解,模块化正就是以此为依据得,在划分模块得过程中应该考虑到( ABC )A.模块得可分解性、可组装型B.模块得可理解性、连续性、C.模块保护D.尽可能低分割模块,使得问题得难度降到最1.什么就是软件工程?构成软件工程得要素就是什么?软件工程就是将系统化得、规范得、可度量得方法应用于软件得开发、运行与维护过程,即将工程化应用于软件开发与管理之中,对所选方法得研究。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章1、根据上述实践体会,用自己的话给软件架构下一个定义;软件架构是:由结构和功能各异、相互作用的构件集合,按照一定的结构方式构成的系统。

它包含了系统的基础构成单元、它们之间的作用关系、在构成系统时,它们的集成方法以及对集成约束的描述等。

2、在网上搜索一下有关软件架构的定义,比较一下它们之间的差别;软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。

软件架构是一个系统的草图。

软件架构描述的对象是直接构成系统的抽象组件。

各个组件之间的连接则明确和相对细致地描述组件之间的通讯。

在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。

在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。

3、在“欢迎”程序架构中,构件、连接、连接关系分别完成了那些功能,起到了什么作用?创建新按钮是创建新的构件;建立消息映射是建立构件之间的连接;处理函数则根据对按钮、消息、处理三者之间的“协议”,编写相应代码。

创建架构的过程,即使这么简单的程序,也包括了架构构成三要素的“构件”、“连接”、“连接关系”的全部内容。

4、从架构三要素的角度,说明“欢迎”程序的架构与“计算器”程序的架构,有什么相同和不同?从“编程”实现者的角度看,二者其实差别不是很大。

“计算器”多做的工作,不是在接收到按钮消息后,简单地显示一条“欢迎”信息,而是实现“根据用户按下的按钮和四则运算规则计算并显示结果”。

看一下代码就可以知道,从程序实现的角度看,后者与前者相比,不但逻辑复杂度和编程量差别并不大,更重要的,其架构基本相同。

5、在实践题2中,老师希望同学们在“欢迎”程序的基础上,再实现一个“时间”按钮,并把“欢迎”与“时间”按钮的实际效果“对调”一下,有同学就把二个相应的处理函数中的代码对调了一下,更有同学把按钮的名子对调了一下,这是非常错误的。

请从架构师的角度仔细想想为什么错,应该怎么实现“对调”?第二章1、通过使用VSTS,你体会架构描述与需求描述(例如:需求树)有什么相同和不同的地方?架构描述表达了系统必须实现的需求,架构描述表达了软件系统的实现结构架构描述的第一个目的,就是在架构设计层次上,而不是需求层次上,表达系统的功能需求。

架构描述的最主要的任务是,记录了系统的设计想法,具体表现为,将这些想法,按实现模块(而不是按功能),分解为具体的构件,并将这些构件的连接方式、连接关系,描述出来,让使用者知道未来系统的架构。

2、为满足关键质量属性而添加的内容,在VSTS中是如何表现的?关键质量需求因素很多,视不同的应用系统而不同。

如果按开发期和运行维护期划分,可以归纳如下:(1)开发期质量要素:易理解性;可扩展性;可重用性;可修改性;可移植性;可集成性;可测试性。

(2)运行期质量要素:功能;性能;安全性;易用性;持续可用性;可伸缩性;互操作性;可靠性;健壮性。

3、基于架构的迭代,在VSTS中是如何表现的?为了更好地理解架构在软件迭代中的作用,首先需要理解软件开发的产品特性。

1)软件产品和产品线的基本概念:当今市场,任何一款符合市场周期长、专业技术知识要求高、用户群庞大、产品功能复杂、安全和可靠性高、需要长期维护等特征的产品,一般都采取产品线管理的方式,进行管理。

所谓产品线的一般定义是:满足特定市场或用户需求的、有一组公共的、可管理的产品特性的、符合上述2个条件的产品的组合。

2)软件产品管理的基本概念:软件产品线管理的三大基本活动是:核心资源开发、利用核心资源的产品开发、核心资源和产品开发的技术和管理。

3)软件产品线核心资源的转化;4)基于核心资源的软件产品开发4、基于架构的关键构件,在VSTS中如何被定义为基线?一般地,以软件架构作为阶段成果和迭代基础,过程管理不但需要架构描述作为软件过程文档,来记录和跟踪软件演化过程,而且,作为生命周期的重要环节,并贯穿始终,需要关注:架构与需求的对应(架构对需求的满足程度);架构实现的验证(遵守架构约束);架构与迭代开发维护(增量开发);架构与项目管理的对应(如检查点、里程碑、关键交付成果等);架构本身的变更历程等。

以上述目标为出发点,将系统合适的构件,作为工作项(工作项还包括其他内容),将架构的关键构件的状态变化,定义为基线,是比较合适的。

因为,这些工作项的状态变化(设计、实现、测试、交付)将成为项目阶段目标设定、交付成果检验、计划进度考察和控制的“直接对象”和“标的物”。

5、在VSTS上,架构的四个作用达到了较好的统一,体现在什么地方?架构“为什么”架构描述对需求实现的作用和意义第三章1、通过架构分析,再进行二次开发(实现联网对弈),是否使二次开发的目标更明确?从五子棋二次开发需求和任务划分(新增“局域网”模块以及如何添加到系统中去)的角度,分析了已有的系统架构。

2、原有的Five1-Five3的五子棋系统架构有什么问题?从功能上看,Five1只能画棋盘,Five2只能人与人对弈,Five3可以人机对弈。

这三套系统在功能上,每一个都比前一个、一步步地增加了很大一块“新功能”。

但是,新增加的部分,居然在开发架构上没有变化。

因为“新功能”在逻辑上,与以前的系统,有很大的不同,具有一定的独立性,如果具有理想的开发架构设计的话,“新功能”最好放在一个单独的代码文件中,这样便于开发、调试和维护。

很显然,原系统开发架构不能很好地帮助架构师分析三套系统之间的差异3、如果重新设计五子棋的架构,你需要如何重新规划?为什么?分析五子棋逻辑架构的时候,总结到:Five1的功能是画棋子、Five2的功能是人人下棋、Five3的功能是人机下棋。

并且找到Five2为人人下棋新增的方法是Judge和Ring两个方法,Five3 为人机下棋新增的方法是UrgentPoint。

那么,局域网五子棋的二次开发在“理论上”只要写一个新的“局域网”模块,加在“走下一步”的Case选择中,就可以了。

而这个Case选择,一定就在OnLButtonDown代码中。

4、VS2010所提供的架构分析工具为架构分析带来什么好处?VS2010在软件应用生命周期管理中,在架构方面,是通过新的(相比VS2005 )架构浏览器和架构层图,以图形化的方式描述系统架构,从而使得项目中的技术人员或非技术人员,都能以模型、透过图形化的方式进行协作,以及定义企业与系统功能。

另外,VS2010也同时支持统一建模语言UML及特定领域语言(DSL),架构设计人员在VS2010中可以更有效率的进行.Net架构设计工作。

VS2010架构工具可以让架构师了解应用程序的功能设计,并帮助验证设计与执行过程中是否偏离开发目的。

它除了支持一般系统分析设计流程(即需求向实体转化)外,也支持另一类的流程——逆向工程。

5、你现在对“架构设计文档规范”是否有了新的理解?作为架构设计的阶段交付成果,编写构架设计文档的目的是让不同的风险承担者都能快速找到和理解他们所需要的信息,知道系统的目标和约束、关键质量需求是否可以满足,以及为了满足这些需求所做出的架构设计决策。

包括:系统是否被有效地分离、分离的各个部分是如何连接、协调配合的等等。

这是下一步进行详细设计和实现的基础。

因此,只有这些工作很好地完成,架构设计才能够成为下一阶段工作的基础和出发点。

而架构文档则是这些工作成果的具体表现形式,而不是目的。

编写架构文档的根本原则是:一定要从使用者的角度出发,而不是为架构而架构、为文档而文档。

在这个方面,学校学生的毛病特别明显,而造成这个问题的原因,可能是教这门课的老师,自己也没有什么架构设计的实际体验,只能教给学生一大堆架构概念和模型,不知道这些架构模型到底能解决什么问题,更不知道针对特定需求,可以采用哪些架构设计策略和方法更好。

架构发展过程:在软件发展过程中,对架构的认识,经历了三个层次的过程:●执行级以针对存储器的映射、数据地址的安排、堆栈和寄存器的分配等为中心。

在这个阶段,架构的构件是硬件,集成和行为规则是这些硬件单元的非常具体明确的组合集成方法。

●代码级以针对算法和数据结构的选择等为中心。

在这个阶段,架构的构件是程序设计语言的字符、指针、进程控制等,集成的是记录、数组和过程等。

集成和行为规则是以程序设计方法、数据结构方法为核心。

●架构级以针对与构件相关联的系统总体性能为中心。

在这个阶段,构件是模块、模块的相互关系等,它重点研究从模块到子系统、到系统的集成规则。

软件架构的作用体现为4个方面:在系统设计层面上(1)表达系统的功能需求是如何被实现的;(2)表达关键需求和设计约束的实现方案;(3)作为迭代开发的基础;(4)成为过程管理的依据。

前3点反映的是对软件系统本身的作用,最后一点,反映的是对软件开发过程的作用。

第四章1、架构师为什么要参与需求过程,架构师在参与需求过程中,主要关注什么?站在架构师的角度,“反观”需求过程,了解需求分析师是如何完成需求的获取、描述,处理、记录和评审过程的,他们(包括用户)关心什么,不太关心什么。

架构师应该如何解读需求阶段结束后,项目团队所提交的阶段交付物成果——“需求文档”等。

通过对这些过程的回顾,可以帮助架构师更进一步地从需求文档、需求分析师的行为和心理等层面,更深入地了解和理解“需求”,这样,才能够更好地理解架构设计的“起点”,以实现架构设计的目标。

在需求的开发过程中,需求的获取、分析、处理和验证是需求开发过程的四个核心过程域和四个关键阶段。

前一个阶段是后一个阶段的前提和基础,每个阶段的目标、活动、交付物成果、利益相关者各不相同,因此,架构师的关注也会有所不同。

关注点:(1) 需求分析阶段架构师的关注点:当前的用户需求与产品线的关系(用户的具体需求与产品的总体发展路线的关系)、用户需求与开发平台的关系(在哪个平台上继续进行迭代和二次开发)等等。

(2)需求处理阶段架构师的关注点:a该阶段所产生的最后需求文档中所记录和确定的需求边界、范围等内容。

b业务领域模型反映了现在、以致未来一段时间(产品生命周期内)软件系统的需求。

因此,架构师在关注需求的时候,针对做什么和不做什么,应该有基于更广泛的业务模型的考虑。

c开发平台的限制、重用限制、接口限制等。

d架构师也应关注需求基线。

(3)需求评审阶段架构师的关注点:从需求评审以上活动看,架构师的角色要“简单”一些,他就是项目经理的“技术助手”和具体执行者,他关注构成项目关键点的那些“要素”是什么、在那里、是否合适等。

2、在需求过程中,架构师与需求分析师的角色,有什么不同?请举例说明。

需求谈判的一个难点,是对需求实现的优先次序,进行排序,甚至要进行“割舍”,讨价还价。

如何对用户进行“价值引导”,并最终“搞定”用户,非常重要。

能够引导用户的前提,是需求分析师比用户更熟悉业务、同时,还熟悉用户并不太懂的“系统”,因此,才有资格“引导”用户的需求,这是一名资深“需求分析师”的价值所在。

相关文档
最新文档