软件体系结构习题复习

软件体系结构习题复习
软件体系结构习题复习

第一章

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、在需求过程中,架构师与需求分析师的角色,有什么不同?请举例说明。

需求谈判的一个难点,是对需求实现的优先次序,进行排序,甚至要进行“割舍”,讨价还价。如何对用户进行“价值引导”,并最终“搞定”用户,非常重要。能够引导用户的前提,是需求分析师比用户更熟悉业务、同时,还熟悉用户并不太懂的“系统”,因此,才有资格“引导”用户的需求,这是一名资深“需求分析师”的价值所在。例如:用户往往是“强势”的,但这种情况下,不单需要用户能够明确确认他们提出的需求(用户有时希望“模糊”,这对他们更有利),另一方面,对于在现有资源(时间、成本、技术条件等)情况下,只能安排实现有限的功能,而不能满足所有的功能要求

在需求评审阶段,架构师与被评审者——需求分析师的角度显然是不同的。前者是审查者(站在接收者的角度),后者是被审查者(交付者)。但由于架构师也部分参与了需求过程,因此,架构师不可能与需求分析师完全站在对立的“战壕”里。从这个意义上说,需求评审不仅仅是需求分析师与架构师之间的“交接”,还有很多“第三者”参与和监督。

3、以数据流为核心的面向过程的需求转换为什么不能适应需求的变化?

通过教科书里两个案例的分析可以看到,在基于数据流的架构设计案例中,变换流分析和系统架构设计是基于数据流图(DFD)进行转换,因此,转换的结果将必然导致系统的架构与DFD数据流的走向,保持完全对应和一致。在基于U/C矩阵的案例中,系统子系统的

划分是根据系统的功能模块和模块的输入/输出数据关系,实际上,本质上依据的还是数据流,只不过不是基于数据流的架构设计案例的一条数据流主线,而可能是(功能模块)点对点(输出对应输入)的数据流。上述二种架构设计方法,导致设计出来的系统架构,完全受制于原系统的数据流。不论是DFD的数据流,还是U/C的功能模块之间的数据流。当数据流的流向发生变化的时候,系统架构也要发生相应变化。

如果系统是按数据流设计的,则因为流程变量,带来数据流的变化,这一变化可能是“巨大”和“颠覆”性的,那么,系统架构就要大变,甚至完全不能适应新的需求。不但如中国电信这样的“巨变”,就是平时经常发生的“小的”需求变更,对于一个用户系统而言,也是不可避免的,有时甚至新系统还没有上线,需求就变了,这就是面向过程方法的致命弱点。

基于数据流的系统架构,当数据流变化的时候,已有的架构不能适应变化,经常需要修改,甚至“架构重组”,这对项目团队带来了巨大的开发成本和时间压力。相比而言,面向对象的方法,不是从需求模型的数据流“导出”来的,而是根据“对象”和对象关系分析得到的,因此,与业务系统的数据流,保持了相对的独立性。

4、针对需求变化,面向对象的需求转换为什么具有很强的适应性?

在一个用户组织中,由于组织的目标随时间、外部环境、内部需要等因素,时常发生变化。为了适应组织目标的变化,必然会导致组织结构发生变化、组织结构的变化,导致组织的业务流程发生变化。例如:中国电信因改革开放和市场竞争的需要,将其过去一个主要基于计划经济方式运作的企业,向市场化转化,甚至邀请国外著名咨询公司,来做“流程重组”。这就导致其内部组织结构、工作岗位设置和业务流程,发生很大变化,大量“后台”业务和管理向支持“一线”工作这个大目标转变。这一变化,体现到内部业务和管理系统上,就是大量的需求变更。

5、ATM扩展项目中,另加的故障处理方案和“反冲”方案的最主要不同是什么,各有什么利弊?

银行针对ATM故障进行的处理,在“有效性”方面,是不存在问题的,问题仅仅存在于“实时性”上。不能满足“实时性”的根本原因,是这类故障,必须等到当日系统“清算”的时候,才进行处理。而故障当时,只做“封帐”处理。

第六章

1、尽量详细地画出电梯控制系统的架构图;

2、描述各子系统的主要责任和功能、子系统相互之间的协同与联系;

根据需求分析的结果,将电梯控制系统划分为三个子系统,每一个也是满足构成子系统的要素定义:(1)问题域;(2)交互(内外);(3)数据。

电梯子系统包括:

?问题域:升降、门开关;交互:楼层的位置显示;数据:无。

按扭子系统包括:

?问题域:电梯/楼层按扭;交互:按下/显示;数据:无。

控制子系统包括:

问题域:接收/处理请求;交互:电梯/按扭;数据:状态、请求队列等

子系统的各个设计元素(类与对象、关系、行为和功能)具有一些共同的特征:

具有某些对象的一致特性;

用来协同完成同一个或一组功能;

位于同一个硬件中;

用于管理相同的资源等。

?方法:实现一个具体的处理操作;

?类:实现一类对象的处理;

?模块(组件):由一个或多个类协同完成一组对象操作和功能;

?子系统(包):完成相对独立特性和功能的多个模块构成;

?系统:多个子系统相互配合才能满足一个完整应用的需求,从而构成了软件“系统”;

集成系统:一个大型企业往往使用多套系统,多套系统通过互操作形成“集成系统”

?当进行高一抽象层次(需求、系统级)分析和架构设计时,子系统是具有特定属性、

完成特定功能一个原子单元、一个黑盒;

?当进行子系统本身的设计时(本章讨论的内容),子系统是一个结构复杂的白盒;

?当子系统作为第三方组件被运用时,只需要关心其对外的接口,此时,将子系统看

成提供服务的外部不可见组件。

?当使用第三方的成熟框架作为某一系统或子系统的架构基础时,则应当仔细研究其

框架架构,并选择其何时的位置,进行继承和扩展。这是因为此时是使用它的结构

而不仅仅是服务。

3、在已有的三个子系统之间,当发生竞争的时候,是如何进行“仲裁”的,依据什么进行

仲裁;

4、是否还可以提出另外一种与上述划分方法不同的子系统划分方法,说明不同的理由、优劣是什么;

虑电梯控制的分布、实时和并发特性,以请求、状态、运行控制为主要对象,兼顾系统设计的可扩展性,以满足新的需求,将子系统划分如下:

(1)请求子系统:

问题域:接受来自楼层和电梯轿厢内的请求,可以是单独电梯的,也可以是集

中式的,甚至是来自控制室人为的临时指令;支持并发、实时的请求。将所有

请求按预定规则排序,支持多种排序策略和优先级。接受请求后点亮相应的指

示灯,完成请求后熄灭相应的指示灯;

交互:与运行控制交互,提出请求;支持多种请求提交优先等级策略,以提高

特殊情况的响应实时性;获得运行状态,熄灭相应的指示等;

数据:记录请求并按请求到达时间等规则排序,请求已被执行则删去队列中的

请求;

扩展:支持楼层安全性扩展,输入选择楼层按钮时,可与客人的房卡号码进行

比对验证;支持智能选题提示扩展,在客人选择要去的楼层后,提示可最快达

到提供服务的电梯号和预计等待时间等;

(2)状态子系统:

问题域:接受来自电梯的运行状态传感器的信息并显示运行方向和到达楼层;

交互:与运行控制交互,接受运行方向和到达楼层指令;接受实际运行状态传

感器信息并显示;通知请求队列删除已满足请求;

数据:电梯运行状态;

扩展:暂无。

(3)运行控制子系统:

问题域:接受来自请求队列的请求并根据运行状态、调度策略和参考其他因素,

决定当前电梯运行方向和到达楼层,向电梯下达运行指令;接受控制室的调度

计划、策略和直接扩展指令;允许控制室可视化地编辑、修改和调整当前的调

度计划和调度策略;

交互:接收请求和运行状态,根据调度结果,发出运行指令;

数据:记录请求和状态、调度策略、其他信息等;

扩展:有紧急、安全、消防、VIP、运行效率优先、等待优先、省电低耗等多套

临时计划和对策;调度策略和计划可预定和临时取消;支持当前运行状态评价

并提示更换调度策略(例如:上班时间段改为正常时间段);可设置电梯运行参

数,模拟演示预定的计划并根据效果修改;开放一定的权限,支持远程访问和

控制;支持远程报警和预警;支持神经网络、多目标规划等高级排队策略;

在电梯控制系统实际运行架构中,上述三个子系统实际上对应三个(组)并发的进程,各自独立并相互联系。

在这样的划分之下,确定了各子系统之间的任务责任、连接方式和协同关系。而按钮、显示灯、门、马达模块等,都分别归属各自对象,成为其内部数据(逻辑)或外部执行模块(物理)。

在电梯控制职能化和未来可灵活扩展的考虑下,这样的划分把握了系统的关注点和分离点,职责界限明晰,修改和扩展方便。

第七章

1、在采用WMP组件实现的播放器项目中,哪些功能属于业务逻辑层、哪些属于业务

实体层?

业务逻辑层:媒体文件名的组织和选择

业务实体层:媒体文件的解码、播放、快进快退、解码、输出流控制等与媒体有关的基本操作

2、COM组件与一般的动态链接库DLL的区别是什么?在播放器的例子中体现在什么

地方?

基于COM组件的开发和使用,最主要的特点,就是由于组件接口的标准和规范化,使得开发和使用都变得非常简单。COM的重要性质之一是位置透明性。相对而言,以往在调用普通动态链接库中的输出函数时,必须要将此动态链接库放到应用程序的同级目录下,或将动态库的位置信息硬编码到程序中的做法,其实都说明了普通动态库的位

置不透明性。当客户程序调用COM对象时,会更轻松一些,因为调用方不需要考虑COM 组件所处的位置,不论它在哪个目录下,或是否在当前工作站上,一切都由系统提供的机制来保障对COM对象的定位,这就是位置无关性。COM也可以有两种类型的载体,一种是动态链接库(DLL),另一种是标准可执行文件(EXE)。前者由于可以在被本地客户程序加载时,与客户程序共存一个地址空间,而被称为进程内服务器(in-process server);后者由于在运行时与客户程序处于不同的地址空间中,因此也被称为进程外服务器(out-process server)。使用COM组件比使用普通的DLL,要简单得多。你只要知道组件的对象是什么,该对象的属性和方法是什么?,组织好自己的“业务流程”,也就是什么时候放什么曲子,放第几首,是顺序播放还是随机播放,然后直接用这个对象就可以了。用架构师的眼光看,就是:表现层需要自己设计,业务逻辑层要自己组织,到业务实体层,就可以直接调用COM组件了。

3、如果希望播放器要能够支持外挂,需要做什么?

第八章

1、在医药管理系统中,MVC的控制器层的作用体现在什么地方?有何改进的空间?

控制(Controller):处理用户的输入(如:鼠标、键盘等),转化成用户对模型或视图的服务请求,并把信息的变化,传递给视图。用户仅通过控制器与系统交互。

控制可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 Struts 的作用就是一个典型的控制器,在SSH架构中,这一点看得更明显。

2、在医药管理系统中,Spring层的作用体现在什么地方?如何能更好地发挥Spring层的作用?

在医药管理系统中,Spring分为二层。UserAccountManager接口封装了所有的、与用户权限管理有关的模块,包括授权。角色、部门管理、验权都可以通过这个接口,访问相应的方法。UserRoleService接口封装具体的验权操作,可以提供如授权模块使用(授权前检查是否已授权)。

Spring也可以运用于接口,提高接口实现的灵活性。

Spring 能有效地组织J2EE应用各层的对象。不管是Struts层的Action对象,还是Spring 层的Service对象,还是Hibernate层的DAO对象,都可在Spring的管理下有机地协调、运行。如果说接口提供的是多方向、多通道的立交跨接,而Spring则提供了可根据需要“开启/改变连接”的通道,而非固定不变的立交。

Spring将各层的对象以松耦合的方式组织在一起,Action对象无须关心Service对象的具体实现,Service对象无须关心持久层对象的具体实现,各层对象的调用完全面向接口。当系统需要重构时,代码的改写量将大大减少。这是Spring层的最大特色。

Spring是依赖控制反转IoC(Inversion of Control)技术,来实现上述松耦合的。

3、当数据库改为SQL2008时,Hibernate层的好处体现在哪里?

Hibernate是基于Java的对象/关系数据库映射(ORM)工具,它是对象模型(JavaBean实体类)与关系模型(关系数据库表)之间交互的桥梁。Hibernate对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate 并不是唯一为SSH架构准备的,它可以应用在任何使用JDBC的场合,它既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

软件体系结构期末考试

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

软件体系结构考试参考试题

壹 . 名词解释(参考斯佳分享的名词解释文档) 1.ADL(Architecture Description Language) 体系结构描述语言 2. SOA(Service-Oriented Architecture) 面向服务架构 3. DSSA (Domain Specific Software Architecture) 特定领域软件体系结构 4.CORBA(Common Object Request Broker Architecture) 公共对象请求代理体系结构 5. UML(Unified Modeling Language) 统一建模语言 6.XML(Extensible Markup Language ) 可扩展标记语言 7.B/S(Browser/Server) 浏览器/服务器C/S(Client/Server) 客户端/服务器 8.HMB(Hierarchical [?ha??'rɑ:k?kl] message bus) 层次消息总线 9.SA (Software Architecture) 软件体系结构 10.OMG(Object Management Group) 对象管理组织 11.SOAP(Simple Object Access Protocol) 简单对象访问协议 12.WSDL(Web Services Description Language) web服务描述语言 13.SOAD(Service Oriented Analysis And Design) 面向服务的分析与设计 14.DCOM(Distributed Component Object Model) 分布式对象组件模型 https://www.360docs.net/doc/118531602.html, (Module Interconnection Language) 模块内连接语言 贰 . 判断题 1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构件、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√ 根据页码:P37

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过 KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验容 多种软件风格设计与实现之 KWIC 实例: 1.采用主/子程序体系结构风格实现 KWIC 关键词索引系统 2.采用面向对象体系架构风格实现 KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现 KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现 KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的 KWIC 关键词索引系统,在此基础上, 完成基于面向对象体系架构风格的 KWIC 关键词索引系统设计与实现。选做基于 管道过滤体系架构风格的 KWIC 关键词索引系统;选做基于事件过程调用体系架 构风格的 KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验容、实验操作过程等 容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等容;每 人一台 PC 机,所需软件 Win2003/XP 、 UML 工具( EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现 KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结 构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程

序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表: 主程序 main(), 子程序 shift(), sort() 方法,方法的调用,返回构件和连接件类 型: 构件:各类子程序,如 shift(),sort() 连接件:方法的调用基本的计算模型: 子程序有 shift(), sort()方法,shift() 对单词进行移位,sort()方法对单词进行 排序 风格的基本不变性: 主程序有顺序地调用子程序,单线程控制。 KWIC 的主/子程序体系结构风格示意图如下所示: 主程序/子程序风格的重要设计决策与约束有:

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

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.软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高 软件系统的开发质量与效率,降低开发成本的目的。 2.开发视图主要支持系统的功能需求,即系统提供给最终用户的服务。 3.软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其 中,构件、连接件和配置是最基本的元素。 4.构件可以由其他复合构建和原子构件通过连接而成。 5.正交软件体系结构由组织层和线索的构件构成。 6.软件产品线的建立通常有4种方式,其划分依据有两种。 7.体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软 件设计之前进行。 8.ATAM评估方法主要通过理解体系结构方法来分析体系结构,在这一步,由 设计师确定体系结构方法,由分析小组捕获并进行分析。 9.WSDL是可扩展的,使得在通信时无论使用何种消息格式或网络协议,都可 以对端点及其消息进行描述。 10.10.ABSD方法是基于体系结构的设计方法,它描述了系统的主要设计元素及 其关系。 11.11.可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构 件的查找。 12.12.超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检 索技术。 13.软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始 终跨越时间和实现的属性。 14.体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色() 15.开发视图主要支持系统的功能需求,即系统提供给最终用户的服务 16.构件、连接件以及配置是体系结构的核心模型最基本的元素() 17.HMB风格不支持系统自顶向下的层次化分解,因为它的构件比较简单() 18.基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广 播一个或多个事件。。 19.线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成 整个系统中相对独立的一部分功能。 20.层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照 递增的步骤进行分解,同时支持功能增强,但是不支持重用。 21.在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。 22.Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对 分布式同步系统建模。 23.体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软 件设计之前进行。 24.基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语 言。 25.需求语言与ADL的区别在于后者描述的是问题空间,而前者则扎根于解空间 中。 26.基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结 构层。

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

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

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

《软件体系结构》期末复习题 简答题: 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、请分析软件危机的主要表现和原因。 表现: a)软件成本日益增加:开发、部署与应用成本高 b)开发进度难以控制:不能按期完成 c)软件质量差:错误率高,不能满足用户的需求,没有生命力 d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误 原因: 1.用户需求不明确 2.缺乏正确的理论指导 3.软件规模越来越大 4.软件复杂度越来越高 2、请说明软件规模与复杂度对软件过程的影响及解决方法。 软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。 3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束) 软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。 4、请简述软件重用的含义和意义。可重用元素包括哪些种类? 软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过 程。(含义) 可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。 (种类) 可重用的元素越大,我们就说重用的粒度(Granularity)越大。 软件重用是软件产业工业化、工程化的重要手段。软件重用对提高生产率,降低 开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。 (意义) 5、请简述常用的构件实现模型及其意义。

实现模型: 1.CORBA 2.EJB https://www.360docs.net/doc/118531602.html, / DCOM / COM+ 意义: 这些模型通常都定义了构件的实现方式、接口定义、访问方法等。符合这些标准的任何构件都有很高的重用能力。 描述部分 6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。 数据视图

中南大学软件体系结构设计模式实验二

中南大学软件体系结构设计模式实验二 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】

实验3 设计模式实验二 实验学时: 4 每组人数: 1 实验类型: 3 (1:基础性 2:综合性 3:设计性 4:研究性) 实验要求: 1 (1:必修 2:选修 3:其它) 实验类别: 3 (1:基础 2:专业基础 3:专业 4:其它) 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括职责链模式、命令模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。 二、实验内容 1. 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。该企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开董事会讨论决定。如下图所示: 试使用职责链模式设计并模拟实现该系统。 2. 房间中的开关是命令模式的一个实例,现用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并编程模拟实现。 3. 某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程实现。 4. 某实时在线股票软件需要提供如下功能:当股票购买者所购买的某支股票价格变化幅度达到5%时,系统将自动发送通知(包括新价格)给购买该股票的所有股民。试使用观察者模式设计并实现该系统,要求绘制相应的类图并编程模拟实现。 5. 某公司欲开发一套机房监控系统,如果机房达到某一指定温度,温度传感器(Thermosensor)将自动传递信号给各种响应设备,例如警示灯(CautionLight)将闪烁(flicker())、报警器(Annunciator)将发出警报(alarm())、安全逃生门(SecurityDoor)将自动开启(open())、隔热门(InsulatedDoor)将自动关闭(close())

计算机体系结构 习题与答案

第二章习题(P69-70) 一、复习题 1.简述冯?诺依曼原理,冯?诺依曼结构计算机包含哪几部分部件,其结构以何部件为中心? 答:冯?诺依曼理论的要点包括:指令像数据那样存放在存储器中,并可以像数据那样进行处理;指令格式使用二进制机器码表示;用程序存储控制方式工作。这3条合称冯?诺依曼原理 冯?诺依曼计算机由五大部分组成:运算器、控制器、存储器、输入设备、输出设备,整个结构一般以运算器为中心,也可以以控制器为中心。 (P51-P54) 2.简述计算机体系结构与组成、实现之间的关系。 答:计算机体系结构通常是指程序设计人员所见到的计算机系统的属性,是硬件子系统的结构概念及其功能特性。计算机组成(computer organization)是依据计算机体系结构确定并且分配了硬件系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,实现机器指令级的各种功能和特性。同时,为实现指令的控制功能,还需要设计相应的软件系统来构成一个完整的运算系统。计算机实现,是计算机组成的物理实现, 就是把完成逻辑设计的计算机组成方案转换为真实的计算机。计算机体系结构、计算机组成和计算机实现是三个不同的概念,各自有不同的含义,但是又有着密切的联系,而且随着时间和技术的进步,这些含意也会有所改变。在某些情况下,有时也无须特意地去区分计算机体系结构和计算机组成的不同含义。 (P47-P48) 3.根据指令系统结构划分,现代计算机包含哪两种主要的体系结构? 答:根据指令系统结构划分,现代计算机主要包含:CISC和RISC两种结构。 (P55) 4.简述RISC技术的特点? 答:从指令系统结构上看,RISC 体系结构一般具有如下特点: (1) 精简指令系统。可以通过对过去大量的机器语言程序进行指令使用频度的统计,来选取其中常用的基本指令,并根据对操作系统、高级语言和应用环境等的支持增设一些最常用的指令; (2) 减少指令系统可采用的寻址方式种类,一般限制在2或3种; (3) 在指令的功能、格式和编码设计上尽可能地简化和规整,让所有指令尽可能等长; (4) 单机器周期指令,即大多数的指令都可以在一个机器周期内完成,并且允许处理器在同一时间内执行一系列的指令。 (P57-58) 5.有人认为,RISC技术将全面替代CISC,这种观点是否正确,说明理由? 答:不正确。与CISC 架构相比较,RISC计算机具备结构简单、易于设计和程序执行效率高的特点,但并不能认为RISC 架构就可以取代CISC 架构。事实上,RISC 和CISC 各有优势,CISC计算机功能丰富,指令执行更加灵活,这些时RISC计算机无法比拟的,当今时代,两者正在逐步融合,成为CPU设计的新趋势。 (P55-59) 6.什么是流水线技术? 答:流水线技术,指的是允许一个机器周期内的计算机各处理步骤重叠进行。特别是,当执行一条指令时,可以读取下一条指令,也就意味着,在任何一个时刻可以有不止一条指令在“流水线”上,每条指令处在不同的执行阶段。这样,即便读取和执行每条指令的时间保持不变,而计算机的总的吞吐量提高了。 (P60-62) 7.多处理器结构包含哪几种主要的体系结构,分别有什么特点? 答:多处理器系统:主要通过资源共享,让共享输入/输出子系统、数据库资源及共享或不共享存储的一组处理机在统一的操作系统全盘控制下,实现软件和硬件各级上相互作用,达到时间和空间上的异步并行。 SIMD计算机有多个处理单元,由单一的指令部件控制,按照同一指令流的要求为他们

软件体系结构实验二

南京邮电大学 《软件体系结构》实验报告 实验题目软件体系结构风格之应用 姓名xxx 学号xxx 院系计算机、软件学院 指导老师周国强 2013年12月18日

一、实验目的和要求 实验目的: 通过KWIC实例分析,理解和掌握软件体系结构风格设计与实现。 实验要求: 熟练掌握基于主/子程序体系结构风格的KWIC关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC关键词索引系统;选做基于事件过程调用体系架构风格的KWIC关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC机,所需软件Win2003/XP、UML工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0等。实验课后完成实验报告的心得体会内容,并及时提交实验报告。 二、实验课时:2 三、实验内容及操作步骤 多种软件风格设计与实现之KWIC实例: 1.采用主/子程序体系结构风格实现KWIC关键词索引系统 public static void input(String inputFile){ fr=null; try { fr=new (inputFile);

} catch ( e) { // TODO Auto-generated catch block e.printStackTrace(); } BufferedReader br=new BufferedReader(fr); textLines=new ArrayList(); try { while(br.ready()){ textLines.add(br.readLine()); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void circularShift(){ shiftedLineIndexes=new ArrayList(); for(int i=0;i1){ if(j==sarray.length-1){ for(int k=0;k<(sarray.length-1);k++){ newLine=newLine+" "+sarray[k]; } } else{ for(int k=j+1;k

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

软件体系结构-设计模式练习题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. 装饰模式

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

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.什么是软件工程?构成软件工程的要素是什么? 软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。软件工程的要素由方法、工具和过程组成。方法支撑过程和工具,而过程和工具促进方法学的研究。 2.什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关 系? 软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为

中南大学软件体系结构设计模式实验二全解

实验3 设计模式实验二 实验学时: 4 每组人数: 1 实验类型: 3 (1:基础性2:综合性3:设计性4:研究性) 实验要求: 1 (1:必修2:选修3:其它) 实验类别: 3 (1:基础2:专业基础3:专业4:其它) 一、实验目的 熟练使用PowerDesigner和任意一种面向对象编程语言实现几种常见的行为型设计模式,包括职责链模式、命令模式、观察者模式和策略模式,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些模式。 二、实验内容 1. 某企业的SCM(Supply Chain Management,供应链管理)系统中包含一个采购审批子系统。该企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开董事会讨论决定。如下图所示: 采购人员 主任副董事长董事长董事会 金额<5万元5万元≤金额<10万元10万元≤金额<50万元金额≥50万元 试使用职责链模式设计并模拟实现该系统。 2. 房间中的开关是命令模式的一个实例,现用命令模式来模拟开关的功能,可控制对象包括电灯和电风扇,绘制相应的类图并编程模拟实现。 3. 某软件公司欲开发一个基于Windows平台的公告板系统。系统提供一个主菜单(Menu),在主菜单中包含了一些菜单项(MenuItem),可以通过Menu类的addMenuItem()方法增加菜单项。菜单项的主要方法是click(),每一个菜单项包含一个抽象命令类,具体命令类包括OpenCommand(打开命令),CreateCommand(新建命令),EditCommand(编辑命令)等,命令类具有一个execute()方法,用于调用公告板系统界面类(BoardScreen)的open()、create()、edit()等方法。现使用命令模式设计该系统,使得MenuItem类与BoardScreen类的耦合度降低,绘制类图并编程实现。

软件体系结构-复习纲要整理

《软件体系结构复习纲要》 知识要点: 、体系结构基础概念、定义、属性. ()软件体系结构是系统地一个或多个结构,它包括:软件地组成元素(构件),这些(构件)元素地外部可见特性,以及这些元素(构件)之间地相互关系.文档收集自网络,仅用于个人学习 () 构件是软件系统地结构块单元,是软件功能设计和实现地承载体,因此,每个构件都承担着一定地功能并发挥着一定地作用.构件可以看做是模块、类、对象等一个相关功能地集合.文档收集自网络,仅用于个人学习 () 连接器:当构件间联系关系复杂时,需要建立专门地连接构件以调度和协调构件间地关联关系,实现构件间联系地特殊构件称为连接器文档收集自网络,仅用于个人学习 () 连接是构件间建立和维护行为关联及信息传递地途径. 连接需要两方面地支持:一是连接发生和维持地机制,这是实现连接地物质基础;二是连接能够正确地、无二义、无冲突地进行信息交换地保证(规则,协议).文档收集自网络,仅用于个人学习 连接地本质是实现连接机制和信息交换协议,简称机制和协议. ()模型:现实地简化抽象 ()建模技术:形式化、半形式化、非形式化 ()元素:软件和环境元素(环境元素如:处理器、特大容量磁盘、配置条目或开发团队)、模块化技术、抽象化技术、软件工程地基本概念 、体系结构与描述 ()体系结构:一个系统地基础组织,体现在系统地构件、构件之间地关系、构件与环境地关系和指导系统设计和演化地准则.文档收集自网络,仅用于个人学习 ()体系结构描述:一组对系统结构进行编档地产品.体系结构不可见. 要求:标记、理解、应用 题型分布:选择、填空 知识要点 构件、连接件、约束地定义 ()连接件:过程调用或直接存储器访问 ()构件基本要素(接口、类型、语义、约束、演化、非功能属性) 构件连接器视图及其作用 构件连接器视图,最重要地视图,反映运行时模型.(课本页) 体系结构活动 使用体系结构称为体系结构活动. 模式与风格 模式是某一相关问题地设计结论,是一个解决方案,是过程和实体. 风格是解决问题地一些方法特征,是解决方案地框架. 各种模式风格地定义及其应用领域 ()风格与模式通常从两个方面分类: 数据和控制 ()风格与模式划分地具体为: 数据流系统、调用返回系统、独立构件系统、虚拟机系统、中央存储系统. () 体系结构风格比较 管道过滤器风格:过滤器独立,便于重用易于维护评估,但缺乏交互性,一般用于通信和编译器.

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 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体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

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

福建农林大学计算机与信息学院 实验报告 课程名称:软件设计与体系结构 姓名:陈宇翔 系:软件工程系 专业:软件工程 年级: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] 产生的图形如下图:

相关文档
最新文档