当前位置:文档之家› 软件设计与体系结构练习题

软件设计与体系结构练习题

软件设计与体系结构练习题
软件设计与体系结构练习题

软件设计与体系结构练习题

软件设计与体系结构复习

一、填空题

(一) Chapter 1

1.软件设计模式通常包含4

2.3.经过验证的、成功解决方案的描述。

(二) chapter 5

1.早在1968年,计算机领域的大师Dijstra

2. 3. 关注软件功能的设计,并要遵循架构师给出的设计准则。

4. IEEE 1471-2000成要素相互之间以及运行环境之间的关系,还包括系统设计及演化时应遵循的原则”。

(三) chapter 2

1.创建型软件设计模式是解决_的设计模式。

2.例被创建与结合的细节。

3.简单工厂方法模式的特点是仅仅有一个具体的创建者类,并且在此类中包含一个__方法。

4.允许用户通过制定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节

5.

6. 在单例模式中,为了防止客户程序利用构造方法创建多个对象,要将构造方法声明为

(四) chapter 3

1. 构体。

2. 象和组合对象的使用具有一致性。

3.4. 需要;对象适配器模式使用调用或者聚合的方式选择调用多个类中的方法,形成新的接口。

5. 接口,外观模式是简化接口。

(五) chapter 4

1.

2. 对象的内部表示。

3. 类。

4.

(六) Chapter 6

1. 利用调用-返回风格软件体系结构设计的软件系统使用的是_策略,其主要思想是将一个复杂的大系统分解为一些子系统,以便降低复杂度,并且增加可修改性。

2. 处理,然后产生输出数据流。

3. 程序,并且这些组件按照先后顺序处理,即只有当一个组件运行彻底结束以后,下一个组件才能开始执行。

4. 主程序-能的封装。

二、简答题

(一) Chapter1

1. 软件体系结构为什么重要?

答:软件体系结构: ①是软件相关人员进行交流的手段;(2分) ②是一种高层次的设计复用手段;(2分)③是早期关键设计决策的体现。(1分)

2. 软件体系结构与软件框架的区别?

答:

①呈现形式不同:体系结构的呈现形式是一个设计规约,而框架则是程序代码。(2分)②目的不同:体系结构的首要目的大多是指导一个软件系统的实施与开发;而框架的首要目的是为复用.因此,一个框架可有其体系结构,用于指导该框架的开发,反之不然.(3分)

3. 解释开闭原则、Liskov替换原则、依赖倒置原则

答:①开闭原则:构件应该对扩展具有开放性,对修改具有封闭性。(2分)

②Liskov替换原则:子类可以替换它们的父类。(2分)

③依赖倒置原则:依赖于抽象,而非具体实现。(1分)

(二) chapter2

4. 说明工厂方法、简单工厂模式、抽象工厂模式三个模式的主要区别。

答:①简单工厂模式只有一个工厂类,该工厂类的静态工厂方法负责所有产品的创建。(1分)②工厂方法模式中,一个产品类层次对应一个工厂类层次,每个具体工厂负责创建一个具体的产

品。(2分)③抽象工厂模式中,一个工厂类层次对应多个产品类层次,每个具体工厂负责一个产品簇中产品的创建。(2分)

5. 实现单例模式的三个关键要点是什么?

答:①将构造方法私有化;(1分)②定义一个静态实例;(2分)③提

供一个可以返回静态实例的静态方法。(2分)

6. 简述生成器模式与抽象工厂模式的区别。

答:①前者按照步骤创建一个复杂的对象,而后者强调一类产品对象,创建一个产品族中的某个产品对象(简单或复杂)。(3分)

②前者将所建造的产品(通常建造一个复合体)最后一次性返回,而不是一点一点返回,而抽象工厂所创建的产品对象立即被返回。(2分)

(三) Chapter3

7. 简述外观模式与适配器模式的区别?

答:①外观模式简化接口是为了更好地使用某个类库

②适配器模式转换接口的目的是将一个不适合使用的接口转换为可

以被使用的接口,或者将一些接口不同但功能相同或相近的接口加以转换,以便统一使用。

8. 简述结构型模式的分类。

答:分为两类:

①结构型类模式:关心类的组合,使用继承来组合接口或类,提供了类之间的关联方式。(2分)

②结构型对象模式:关心类和对象的组合,描述了如何对一些对象进行组合,从而实现新功能的一些方法。具体来说,通过关联关系,可以在一个类中定义另一个类的对象,然后通过该对象调用其方法。(3分)

(四) Chapter 4

9. 简述迭代器模式的主要功能?

答:提供对聚合对象的迭代访问:

①以不同的方式遍历聚合对象,如向前、向后

②对同一聚合同时进行多个遍历

③以不同的遍历策略遍历聚合

④多态迭代:为不同的聚合结构提供统一的迭代接口,即,通过一个迭代接口访问不同的聚合结构。

10. 简述访问者模式中形成的回调访问通路?

答:visit()与accept()方法构成一个调用通路。(1分)

①visit(X):访问者类告知具体元素X类,我要访问你,即调用它的方法。(2分)

②accept(Visitor):具体元素X类告知Visitor,我接受你的访问。Visitor 访问具体元素X类的目的是什么,具体元素X类不管。(2分)

11. 策略模式和状态模式的区别。

答:①策略模式用来处理一组具有相同目的但是实现方法不同的算法,这些算法方案之间一般来说没有状态变迁。(2分)

②状态模式则有所不同,它实现的一个概念可以叫做动态继承,也就是继承的子类都可以发生变化。状态的变化可以由一个状态迁移图表示。(2分)

③一般来说,实现状态模式更复杂一点,用户需要仔细考虑由谁来负责状态转换问题,是由Context类负责还是由状态类的超类负责,还是由

状态类的子类负责。(2分)

(五) Chapter 6

12. 简述面向对象体系结构,并画出面向对象体系结构图?

答:面向对象体系结构中,把系统看作是由一些对象的集合组成(而不是由函数或方法组成),消息从一个对象发送到另外一个对象。每个对象都有其相关功能。一个对象是数据以对数据操作的封装体,外界通过接口与其进行交互。(3分)面向对象体系结构图如下:(2分,下面这幅图不需要一模一样,表达清楚意思即可)

13. 简述主程序-子程序软件体系结构与面向对象体系结构的不同之处。

答:①在设计思想上的区别:主程序-子程序关注功能的实现,即系统是由一个个过程构成。面向对象体系结构关注数据与功能的封装(对象)。系统是由一系列对象构成,这些对象按一定规则通信,完成具体功能。(3分)

②在系统分析设计方面的区别。前者采用结构化分析设计方法(如数据流图、面向数据流的设计),后者采用面向对象分析设计,使用用例图、类图、时序图等模型。(2分)

14. 画出MVC体系结构的一般形式的结构类图。

15. 画出应用了观察者机制的MVC体系结构设计类图。

三、设计题

(一) chapter 2创建型设计模式

1. 一个房屋销售查询系统,以便查询不同类型的房屋的介绍、价格和地址等。为简单起见,只

考虑两种类型的房屋:别墅(House)和公寓(Condo),并假设每种房屋类型都包含:豪华(Super)、中等(Medium)两个等级。要求能够查看房屋信息

和房屋价格,请使用创建型设计模式解决该问题,画出设计类图。

答:参考图

1

图1 抽象工厂模式参考图

2. 假设有一个web托管公司,该公司在Windows和UNIX平台上托管服务。该Web托管公司

在这两种平台上提供三种不同类型的托管包:基本(Basic)、高级(Senior)和更高级(Super)。使用“抽象工厂”模式设计一个应用,查询该托管公司提供的不同类型的托管包功能,画出设计类图。

答:参考错误!未找到引用源。

错误!未找到引用源。

图2 抽象工厂模式解决win、Unix服务创建问题

3. 生成器模式可以用于描述肯德基KFC如何创建套餐:套餐是一个复杂对象,它一般包含主食

(如汉堡、牛肉饭等)、配餐(如新奥尔良烤翅、香辣鸡翅、吮指原

味鸡等)和饮料(如果汁、可乐等)等三个组成部分,不同的套餐有不同的组成部分,而KFC的服务员可以根据顾客的要求,一步一步装配这些组成部分,构造一份完整的套餐,然后返回给顾客。套餐假设目前有如下几个套餐:午餐套餐(Lunch Suit)、晚餐套餐(Supper Suit)、豪华套餐(Luxury Suit)。请用生成器模式设计该应用,画出其设计类图。答:参见图 3 图3 生成器模式——KFC套餐构造

4. 下图所示设计类图是关于游戏软件的设计。在该设计中,

SlowGameFactory类负责创建

SlowFighter对象与SlowMonster对象,并且将创建完的对象以其超类类型返回给ClientGUI对象。然后,ClientGUI对象将操纵SlowFighter对象与SlowMonster对象,使得它们互相打斗。

(1) 上述设计使用了什么设计模式?

抽象工厂

(2) 请在以上设计中添加SuperFighter和SuperMonster,SuperFighter 与SuperMonster是对应的,请绘制新的设计类图。

修正一下该答案

5. 某公司要设计一个房屋选购系统,系统内的房屋分为三种类型:经济型(Economic

House)、普通型(Normal House)与豪华型(Luxury House)。不同房型的区别体现在面积大小(Area)以及卧室(Bedroom)、卫生间(Bathroom)、车库(Garage)、花园(Garden)、游泳池(Swimming Pool)的数量上。请用生成器模式设计该选购系统,画出设计类图。

(二) chapter 3 结构型设计模式

6. 使用组合模式设计一款使用不同国家的语言做为问候语的软件,需要一个用于用户输入的用

户图形界面。在该用户图形界面上,有各个主要国家的列表。用户可以选择一个国家,然后,单击产生问候语的按钮,程序将显示该国家见面时所使用的问候语。①使用安全形式设计,画出设计类图。②使用透明形式设计,画出设计类图。

答:①参见图4 ②参见图

5

图4 组合模式设计-安全形式

图5 组合模式设计-透明模式

7. 下图所示为一个整数排序的Java程序设计类图。该设计使用类适配器模式。

问题:

(1)请说明使用该设计有什么问题?

Java是单继承语言,不支持多继承

(2)画出新的设计类图。

答:参见图6

图6 对象适配器解决多继承问题

8. 考察一个电源总开关的例子。为了使用方便,一个电源总开关可以控制四盏灯、一个风

扇、一台空调和一台电视机的启动和关闭。通过该电源总开关可以同时控制上述所有电器设备。请使用外观模式设计该系统,画出设计类图。

答:参见图7

图7 电源开关的例子

9. 美国和加拿大的邮政编码有不同的格式,美国的邮政编码由5位阿拉伯数字组成加破折号,

再加4位阿拉伯数字组成,即美国的邮政编码形状为ddddd-dddd,其中d是介于0与9之间的整数。加拿大的邮政编码是由6位字母与数字混

合组成,格式为:cdc dcd,其中第1,3,5位是英语字母,第2,4,6位是阿拉伯数字,如:M4B 1G5

。假设有一个网上贸易软件,原来的客户是美国公民,但是,随着业务的扩展,将要允许加拿大公民使用该系统。假如已经有两个经过充分测试的类,一个是USZipCode,另外一个是CAPostalCode。这两个类中分别

有一个方法,isValidZipCode(zip:String), 和isValidCaPostalCode(pcode: String),用于确认用户输入的邮政编码是否正确。虽然这两个接口(方法)的参数都是String类型的,但是方法名字是不同的,而且,它们的具体的确认算法是不同的。现在要写一个网上邮政编码确认程序,该程序使用一个统一的接口,允许客户程序使用该接口的时候,既可以使用美国的邮政编码又可以使用加拿大的邮政编码。请使用适配器模式进行设计,画出设计类图。

10. 假如公司需要设计一个特工信息系统。特工的信息被加密并且被存入文本文档或者数据库。

有三种方法加密特工的名字和代码,该加密名字和代码的任务由三个类完成,这三个类是EncryptedInfo1,EncryptedInfo2,EncryptedInfo3。请使用桥接模式设计该特工信息保密系统,画出设计类图。

11. 现需要设计一个可以模拟各种动物行为的机器人。目前,在机器人中已定义了一系列方法:

叫喊方法cry()、移动方法move()。如果希望在不修改已有代码的基础上使得机器人能够像狗一样叫wang(),像狗一样跑run(),使用适配器模式进行设计,绘制设计类图。

12.

设计一个飞行员信息管理系统。假设飞行员分为战斗机飞行员和轰炸机飞行员;在性别上又分为男飞行员和女飞行员。请使用桥接模式进行设计,画出设计类图。

13. 假设有一个设计类图如下所示。

此类图中包含了几个动物类,Tiger、Dog和Cat,它们都包含各自的

功能,三个类相互协作并紧密耦合,以便完成类似于动物世界的游戏功能。请用中介者模式重新设计,保持功能不变,画出设计类图。

可将updateAll()方法修改为doGame(),在doGame()定义游戏规则。

14. 针对如下已经存在的某程序设计图,使用桥接模式重新设计该程序,并画出设计类图

15. 文件系统中的文件有不同类型,不同类型的文件其浏览方式有所区别,如文本文件和图

片文件、视频文件的浏览方式就不相同。对文件夹的浏览实际上就是对其中所包含文件的浏览,而客户端可以一致地对文件和文件夹进行操作,无须关心它们的区别。请使用组合模式来模拟文件的浏览操作(display),画出设计类图。

(三) chapter 4 行为型设计模式

16. 一个计算手机缴费的软件设计如下图所示:

类中的type变量代表不同的客户群体,因此有不同的缴费率。因为对应于不同的客户群体,有不同的优惠收费包,例如FamilyPackage、FriendPackage和FamerPackage。方法computeFare(String num, String type)

需要经常改变,原因是每个包都有不同的打折率,并且对于每个包计算费

用的算法是不同的。这说明在方法computeFare(String num, String type)中,存在许多条件语句。很明显,本设计不符合开闭原则,请利用策略模式对以上的类进行重新设计,画出设计类图。

答:

17. 使用状态模式设计软件。在一个面向儿童的人/机对抗游戏中有两个角色,mood_guy代

表计算机游戏软件,玩家为儿童。玩家可以容易地影响mood_guy。mood_guy有三个状态:愉快、恼怒和疯狂。当它在愉快的状态时,它将唱歌;当它在恼怒的状态时,它将告诉它的朋友,抱怨某事;当它在疯狂的状态时,它将故意损坏一些东西。mood_guy可以自动改变心情状态:如果玩家忽略它超过20秒,无论处于何种状态,mood_guy将自动进入愉快状态。mood_guy的状态也可以由玩家的行为而改变:如果它处于愉快状态,玩家给它一个酸梨,则它进入恼怒状态;如果它处于恼怒状态,玩家给它一个辣椒,它将进入疯狂状态;如果它处于疯狂状态,玩家给它一个香蕉,它将进入愉快状态。要求使用状态模式设计该问题,并且:(1)画出状态图;(2)画出设计类图,该类图中应该包含两个方法:act( )和changeMood( )。

18. 设计一个使用几种排序算法对整数进行排序的程序。该程序可以计算出每种排序算法的执行

时间,以便比较各种排序算法的速度。该程序可以支持插入排序(InsertionSort)、快速排序(QuickSort)、冒泡排序(BubbleSort)、堆排序(HeapSort)。请使用策略模式进行设计,画出设计类图。

19. 利用状态模式设计的Weather State的实例。在本例中,考虑天气状态。天气状态可以分

为:晴天状态(Sunny State),下雨状态(Rainy State),刮风状态(Windy State),下雪(Snowing State)。在晴天状态,阳光普照;在雨天状态乌云密布,下雨不停;在刮风状态,大风刮得天昏地暗;在下雪状态,大雪纷飞。用状态模式封装天气状态。为了表达天有不测风云的思想,假设天气状态是随机改变的,即在四种状态之间的切换是根本没有规律可循的,因此,考虑在抽象类WeatherState中的方法changeState(Context cxt)的实现中,使用能产生随机整数的Random类。因此,具体状态的改变,由抽象类WeatherState负责实现。请采用常规的状态模式进行设计,画出设计类图。

20. 随机生成一个整数矩阵,矩阵可以看做是聚合类型的数据。使用迭代器模式设计,对该

矩阵进行不同的遍历:(1)奇数遍历(OddIterator),访问并统计矩阵中的所有奇数。(2)偶数遍历(EvenIterator),访问并统计矩阵中的所有偶数。(3)斜对角线遍历(DiagonalIterator), 按照斜对角线迭代遍历矩阵。请应用迭代器模式进行设计,画出设计类图。

21. 室内温度控制软件设计。室内温度控制需要具备窗户、风扇、空调的自动开启与关闭功

能。因此,该应用需要设计三个类,分别用于封装窗户、风扇、空调。请利用命令模式设计该应用,画出设计类图。

22. 下图所示是一个调用排序算法的设计图。在实现时,调用者

Invoker通过条件判断语句调用

相应的排序算法,调用者Invoker和接收者Receiver之间是紧耦合的。

请使用命令模式在Invoker与Receiver之间进行解耦,设计相应的类,并绘制设计类图。

(四) 第6章体系结构

23. 设计一个机场信息系统。在该系统中有一个AirPortInfo类负责维持机场信息,例如飞机到达时间、起飞时间、延迟信息、气象信息、航班取消信息等。假设有两个依赖于这些信息的类:VoiceInfo类,负责从AirportInfo类自动获取语音机场信息,然后将这些信息传送给乘客;DisplayInfo类,负责从AirportInfo类自动获取文字机场信息,然后将这些信息显示在屏幕上。请使用观察者模式设计该问题,画出设计类图。

24. 使用管道-过滤器体系结构设计与实现一个处理职员收入信息的软件。程序应该按照如下方式对输入文件employee.txt进行处理:(1)按照职员工资金额对文件内容进行排序;(2)找出年薪在120000元以上的所有员工;(3)计算那些年薪在120000以上的职员的个人所得税,税率为30%。(4)打印出年薪在120000以上的职员的税收信息。要求:(1)画出设计的对象逻辑图;(4分)(2)画出设计类图,包括类中所包含的所有方法。

25. 设计一个控制金鱼缸水质、水温与水位高度的软件系统。基本需求:该程序用于自动控

制金鱼缸中的水质、水温与水位高度。系统硬件包含鱼缸、化学传感器、水温传感器与水位传感器。当化学传感器的读数超过某种范围时,鱼

缸需要排除部分废水,同时补充新鲜的水;当水温传感器读书低于某温度,或者超过某温度值时,需要开启加热设别或者了冷却设备调整水温;当水位读数高于或者低于特定高度时,需要开启排水设备,排除部分水或者添加新鲜的水。要求使用观察者模式设计该软件系统,请画出设计类图。

26. 使用管道-过滤器软件体系结构设计以下问题。要求:在设计的在线销售系统中,新的订

单以消息形式送达企业。该消息被加密,包含数字证书形式的认证信息,并且可能有重复发送消息的情况发生。系统功能包括:(1)输入客户订单信息。(2)对该消息进行加密。(3)检查认证信息。(4)检查是否有重复发送的消息,如果被复制的消息发送了,则取消重复的订单,仅保留一份订单。要求:(1)画出设计的(管道)逻辑图;(2)画出设计类图,包括所有的类的设计与方法。

软件体系结构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.在软件工程中,对客观世界的问题领域进行抽象,并用某描述方法表示的结果称为模型。模型是现实系统的简化,它是抓住现实系统的主要方面而忽略次要方面的一种抽象,是对问题的书面上的、图形或文字的、无歧义的描述。人们常常在正式构造实物之前,首先建立一个简化的模型,以便更透彻地了解它的本质,抓住问题的要害。在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握。 https://www.doczj.com/doc/a06809103.html,e Case(用例):在不展现一个系统或子系统内部结构的情况下,对系统或子系统的某个连贯的功能单元的定义和描述。一个Use Case表达了用户对系统的一项需求,也就是系统的一项责任或功能。 3.架构风格指一组原则。可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。架构风格能改进分块,还能为频繁出现的问题提供解决方案,以此促进设计重用。软件体系架构风格是描述某一特定应用领域中系统组织方式的惯用模式。体系架构风格定义了一个系统家族,即一个体系架构定义一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。体系架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。对软件体系结构风格的研究和实践促进对设计的重用,一些经过实践证实的解决方案也可以可靠地用于解决新的问题。例如,如果某人把系统描述为“客户/服务器”模式,则不必给出设计细节,我们立刻会明白系统是如何组织和工作的。 4.类(Class)是对某种类型的对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。类通过接口与外界发生关系。 5.软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。是建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。软件工程借鉴传统工程的原则、方法,以提高质量、降低成本和改进算法。其中,计算机科学、数学用于构建模型与算法,工程科学用于制定规范、设计范型(paradigm)、评估成本及确定权衡,管理科学用于计划、资源、质量、成本等管理。 二、 1.面向对象建模的大致过程如下: 用UML进行面向对象建模首先要描述总体需求。在这一阶段中主要是建立用例模型和静态模型,以搭建系统体系结构。用例图是系统的高级视图,要求按照面向对象的原则,站在功能划分的角度将系统要实现的行为划分为用例;以用例之间的动态交互及交互时间为依据产生顺序图;接下来就在用例图的基础上抽象出系统的类,明确各模块之间的关系以适当的粒度画出类图,其中也包括了与用例图的相互迭代修改在分析完模块的静态交互关系后继而要绘制出构件图。以上这些过程中均不考虑系统的具体实现,如建立什么样的数据库或采用什么语言编码等,最好是以使用者的眼光去分析系统功能。为建立完整的系统模型,还要对模块交互和构件细节做进一步分析,补充状态图、活动图、协作图和实施图等,从尽可能多的角度对复杂系统进行描述。在模型确定后就可以借助相应的支撑软件将模型导出为

计算机体系结构复习计算题

1. 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少 根据Amdahl 定律可知: 系统加速比 = = = 由题可知: 可改进比例 = 40% = 部件加速比 = 10 系统加速比 = 采用此增强功能方法后,能使整个系统的性能提高倍。 2. 假设一台计算机的I/O 处理占10%,当其CPU 性能改进到原来的10倍时,而I/O 性能仅改进为原来的两倍时,系统总体性能会有什么改进 加速比=1/(10%/2+90%/10)= 本题反映了Amdahl 定律,要改进一个系统的性能要对各方面性能都进行改进,不然系统中最慢的地方就成为新系统的瓶颈。 3. 双输入端的加、乘双功能静态流水线有1、2、3、4四个子部件,延时分别为Δt, Δt, 2Δt, Δt ,“加”由1→2→4组成,“乘”由1 →3→4组成,输出可直接返回输入或锁存。现执行 ∑=*+4 1 ])[(i i i i c b a (1) 画出流水时空图,标出流水线输入端数据变化情况。 (2) 求运算全部完成所需的时间和流水线效率。 (3) 找出瓶颈子过程并将其细分,重新画出时空图并计算流水时间和效率。 (1) (2)由上图可知,全部运算完的时间是23Δt 。 92 37 23437=???= t t η (3) 部件 ① ② ③ ④ ⑤ ⑥ 结果 输入 a 1 a 2 a 3 a 4 a 1+b 1 a 2+b 2 a 3+b 3 a 4+b 4 ① ③ ⑤ b 1 b 2 b 3 b 4 c 1 c 2 c 3 c 4 ② ④ ⑥ Δt 4 3 2 1

软件体系结构试题免费版本

软件体系结构考试试题 1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相 B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换 D都不是 3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用( a )模式。 A.创建型 B.结构型 C行为型 D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d )的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承 C创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式 B观察者 C适配器以上都是

10、“不要和陌生人说话” 是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对象尽可能少的了解 11、构造者的的退化模式是通过合并( c )角色完成退化的。 A.抽象产品 B产品 C创建者 D使用者 12、单子(单例,单态)模式类图结构如下: 下列论述中,关于”0..1”表述的不正确的是( d ) A.1表示,一个单例类中,最多可以有一个实例. B.”0..1”表示单例类中有不多于一个的实例 C.0表示单例类中可以没有任何实例 D.0表示单例类可以提供其他非自身的实例 13、对象适配器模式是( a )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则 14、静态工厂的核心角色是(a) A.抽象产品 B.具体产品 C.静态工厂 D.消费者 15、下列关于静态工厂与工厂方法表述错误的是:( a ) A.两者都满足开闭原则:静态工厂以if else方式创建对象,增加需求的时候会修改源代码 B.静态工厂对具体产品的创建类别和创建时机的判断是混和在一起的,这点在工厂方法中 C.不能形成静态工厂的继承结构 D.在工厂方法模式中,对于存在继承等级结构的产品树,产品的创建是通过相应等级结构的工厂创建的。 16、在观察者模式中,表述错误的是( c ) A.观察者角色的更新是被动的。 B.被观察者可以通知观察者进行更新 C.观察者可以改变被观察者的状态,再由被观察者通知所有观察者依据被观察者的状态进行。 D.以上表述全部错误。 17.对于违反里式代换原则的两个类,可以采用的候选解决方案错误的是:( d ) A.创建一个新的抽象类C,作为两个具体类的超类,将A 和B 共同的行为移动到C 中,从而解决A和B 行为不完全一致的问题。 B.将B到A的继承关系改组成委派关系。 C.区分是“IS-a”还是”Has-a”。如果是“Is-a”,可以使用继承关系,如果是”Has-a”应该改成委派关系

《计算机系统结构》练习题C

《计算机系统结构》练习题C 一、填空题 1.Flynn分类法将计算机系统结构分成四类,即( )、()、()、()。 2.软件兼容有()、()、()、()四种,其中()是系列机的根本特征。 3.相关有三种类型,包括()、()、()。 4.存储层次结构设计技术的基本依据是(),它包括()和()。 5.“主存-辅存”层次的目的是为了弥补主存的()的不足;“Cache-主存”层次的目的是 为了弥补主存()的不足。 二. 简要回答下列各题 1. 计算机系统结构的Flynn分类法是按什么来分类的?共分为哪几类? 2. 指令集结构设计所涉及的内容有哪些? 3. 多级存储层次: 4. 同步总线及其优缺点? 5. 指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?各有何优缺点。 6. 试比较三种通道的优缺点及适用场合。 三、某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下: 求该计算机的有效CPI、MIPS和程序执行时间。 四、有一指令流水线如下所示 出 50ns 50ns 100ns 200ns (1)求连续输入10条指令,该流水线的实际吞吐率和效率; (2)该流水线的“瓶颈”在哪一段? 五、 (1) (2)若通道的最大流量等于实际工作流量,求通道的工作周期Ts+T D。 六、应用题 1.计算机系统有3个部件可以改进,这3个部件的加速比如下: 部件加速比S1 = 30,部件加速比S2=20,部件加速比S3=10 问:(1)简述Amdahl定律。 (2)如果部件1和部件2的可改进比例分别为30%,那么当部件3的可改进比例为多少时,系统的加速比才能超过10?

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

《软件体系结构》期末复习题 简答题: 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分) 1.按照弗林(Flynn)分类法,计算机系统可以分为4类:SISD计算机、(SIMD计算机)、(MISD计算机)和(MIMD计算机)。 2. 改进之后的冯?诺依曼计算机的只要特点是存储器为中心,总线结构,分散控制。 3. 当前计算机系统中的存储系统是一个层次结构,其各层分别为:(通用寄存器,高速缓存,主存,辅存,脱机大容量存储器)。 4.高速缓冲存储器的地址映象方式有三种,它们分别是:(全向量方式,直接相联方式,组相联方式)。 5.虚拟存储器的三种管理方式是(段式管理,页式管理和段页式管理)。 6.目前计算机中常用数据有(用户定义数据,系统数据和指令数据)三种类型。 7.通常可能出现的流水线的相关性有(资源相关,数据相关和控制相关)。 8.解决中断引起的流水线断流的方法有(不精确断点法和精确断点法)。 9.目前向量处理机的系统结构有两种:(存储器-存储器型和寄存器-寄存器型)。 10.通用计算机基本指令分为5类,它们分别是:(数据传送类,运算类,程序控制类,输入输出类,处理机控制和调试类)。 11.执行指令x1=x2+x3;x4=x1-x5会引起(RAW)类型的数据相关,执行指令x5=x4*x3;x4=x0+x6会引起(W AR)类型的数据相关,执行指令x6=x1+x2;x6=x4*x5会引起(WA W)类型的数据相关。 12.多计算机网络中,通常出现的4种通信模式是(单播模式,选播模式,广播模式和会议模式)。 13.传统的冯?诺依曼计算机是以控制驱动方式工作,以数据驱动方式工作的典型计算机是(数据流计算机),以需求驱动方式工作的典型计算机是(归约机),以模式匹配驱动方式工作的典型计算机是(人工智能计算机)。 二、名词解释(每题2分) 1.计算机体系结构: 计算机系统结构就是计算机的机器语言程序员或编译程序编写者所看到的外特性,是硬件子系统的概念结构及其功能特性。 2.系列机: 所谓系列机是指同一厂家生产的具有相同的系统结构,但采取了不同的组成和实现的技术方案,形成了不同型号的多种机型。 3.模拟: 模拟是指用软件的方法在一台计算机上,实现另一台计算机的指令系统,被模拟的机器是不存在的,称为虚拟机,执行模拟程序的机器称宿主机。 4.程序的局部性原理: 程序访问局部性原理说明了计算机在程序执行过程中呈现出的一种规律,即程序往往重

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

中南大学软件体系结构设计模式实验二 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())

软件体系结构试题库试题和答案

1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。答案:√ 依据页码:P4 2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。答案:√依据页码:P7 3、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。 4、答案:√依据页码:p8 5、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 答案:√ 依据页码:P28 5、构件可以由其他复合构建和原子构件通过连接而成。() 答案:√ 依据页码:P37 6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色() 答案:√ 依据页码:P37 7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素() 答案:√ 依据页码:P37 8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务() 答案:X 依据页码:P32、33 9、构件、连接件以及配置是体系结构的核心模型最基本的元素() 答案:√

10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。 答案:× 依据页码:P81 11、正交软件体系结构由组织层和线索的构件构成。 答案:√ 依据页码:P70 12、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。 答案:√ 依据页码:P53 13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。() 答案:√ 依据页码:P70 14、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 答案:× 参考页码:P55 15、相交关系R是一个等价关系。 答案:√ 16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。答案:√ 依据页码:104 17、Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。 答案:×

计算机系统结构练习题及答案

计算机系统结构练习题及答案 第一章计算机系统结构的基本概念 (一)单项选择题(在下列每小题的四个备选答案中,只有一个答案是正确的) 1. 计算机系统多级层次中,从下层到上层,各级相对顺序正确的应当是___。 A. 汇编语言机器级――操作系统机器级――高级语言机器级 B. 微程序机器级――传统机器语言机器级――汇编语言机器级 C. 传统机器语言机器级――高级语言机器级――汇编语言机器级 D. 汇编语言机器级――应用语言机器级――高级语言机器级 答案:B 难度:1 初级、中级适于级别: 2. 汇编语言源程序变换成机器语言目标程序是经___ 来实现的。 .A. 编译程序解释 B. 汇编程序解释 C. 编译程序翻译 D. 汇编程序翻译 答案:D 难度:1 适于级别:初级、中级 3. 直接执行微指令的是___。 A. 汇编程序 B. 编译程序 C. 硬件 D. 微指令程序 答案: C 难度:1 适于级别:初级、中级

4. 对系统程序员不透明的应当是___。 A. Cache存贮器 B. 系列机各档不同的数据通路宽度 C. 指令缓冲寄存器 D. 虚拟存贮器 答案: D 难度:1 适于级别:初级、中级 5. 对应用程序员不透明的是___。 A. 先行进位链 B. 乘法器 C. 指令缓冲器 D. 条件码寄存器 答案:D 难度:1 适于级别:初级、中级 。 6. 对机器语言程序员透明的是___ A. 中断字 B. 主存地址寄存器 C. 通用寄存器 D. 条件码 答案:B 难度:1 适于级别:初级 7. 计算机系统结构不包括___。 A. 主存速度 B. 机器工作状态 C. 信息保护 D. 数据表示 答案: A 难度:1 适于级别:初级、中级

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

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)什么是框架?框架与模式的区别有哪些? 框架是针对某个领域,提供用于开发应用系统的类的集合。 区别:层次不同、范围不同、相互关系

软件体系结构实验二

南京邮电大学 《软件体系结构》实验报告 实验题目软件体系结构风格之应用 姓名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)防止变异模式:是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。 解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定借口。 (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.分层风格: 适用于设计到分布式的能够分层的组织的类的服务,每层给它的上一层提供服务,同时作为下一层的客户端。只有仔细的从内层选择选择过程,才能用于他们接近的外层。 组件:典型的过程的集合

软件体系结构试题试题+答案

1、设计模式一般用来解决什么样的问题( a) A.同一问题的不同表相B不同问题的同一表相 C.不同问题的不同表相 D.以上都不是 2、下列属于面向对象基本原则的是( c ) A.继承 B.封装 C.里氏代换D都不是 3、Open-Close原则的含义是一个软件实体( a ) A.应当对扩展开放,对修改关闭. B.应当对修改开放,对扩展关闭 C.应当对继承开放,对修改关闭 D.以上都不对 4、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(a )模式。 A.创建型 B.结构型C行为型D.以上都可以 5、要依赖于抽象,不要依赖于具体。即针对接口编程,不要针对实现编程,是( d ) 的表述 A.开-闭原则 B.接口隔离原则 C.里氏代换原则 D.依赖倒转原则 6、依据设计模式思想,程序开发中应优先使用的是( a )关系实现复用。 A, 委派 B.继承C创建 D.以上都不对 复用方式:继承和组合聚合(组合委派) 7、设计模式的两大主题是( d ) A.系统的维护与开发 B 对象组合与类的继承 C.系统架构与系统开发 D.系统复用与系统扩展 8、单子模式中,两个基本要点( a b )和单子类自己提供单例 A .构造函数私有 B.唯一实例 C.静态工厂方法 D.以上都不对 9、下列模式中,属于行为模式的是( b ) A.工厂模式B观察者C适配器以上都是 10、“不要和陌生人说话”是( d )原则的通俗表述 A.接口隔离 B.里氏代换 C.依赖倒转 D.迪米特:一个对象应对其他对 象尽可能少的了解 11、构造者的的退化模式是通过合并(c )角色完成退化的。 A.抽象产品B产品C创建者D使用者 12、单子(单例,单态)模式类图结构如下: 下列论述中,关于”0..1”表述的不正确的是( d ) A.1表示,一个单例类中,最多可以有一个实例. B.”0..1”表示单例类中有不多于一个的实例 C.0表示单例类中可以没有任何实例 D.0表示单例类可以提供其他非自身的实例 13、对象适配器模式是(a )原则的典型应用。 A.合成聚合复用原则 B.里式代换原则 C.依赖倒转原则 D.迪米特法则

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

一、复习题 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计算机有多个处理单元,由单一的指令部件控制,按照同一指令流的要求为他们分配各不相同的数据并进行处理。系统结构为由一个控制器、多个处理器、多个存贮模块和

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

《软件体系结构》大作业(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】采用的是抽象方法模式

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

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

相关主题
文本预览
相关文档 最新文档