软件设计与体系结构复习整理题目及答案.doc

上传人:h**** 文档编号:1134961 上传时间:2018-12-11 格式:DOC 页数:37 大小:4.80MB
下载 相关 举报
软件设计与体系结构复习整理题目及答案.doc_第1页
第1页 / 共37页
软件设计与体系结构复习整理题目及答案.doc_第2页
第2页 / 共37页
软件设计与体系结构复习整理题目及答案.doc_第3页
第3页 / 共37页
软件设计与体系结构复习整理题目及答案.doc_第4页
第4页 / 共37页
软件设计与体系结构复习整理题目及答案.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、1、各种性能指标的定义及如何到达各种性能指标的方法 ppt1-8 119 页-124 页性能:吞吐量 Throughput、响 应时间 Response Time、Deadlines 实现 吞吐量: Peak 设计和指定的总体系统结构作为一种新的问题出现。结构性问题包括组织和全球生产总值(gdp)控制结构;协议进行通信,同步和数据访问;分配的功能设计元素;物流;设计元素构成;扩展和性能,设计方案中选择它是关于软件设计:所有的架构是软件设计,但不是所有的设计都是软件架构。 设计过程的一个部分;简单地说,架构关注 “一旦系统建立后就很难或是不可能改变的问题”:质量属性,例如安全性,性能;非功能性需

2、求,像开销,硬件配置。【百度答案】 软件架构(software architecture)是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之 间的连接则明确和相对细致地描述 组件之间的通讯。在 实现阶段,这些抽象组件被细化为实际 的组件,比如具体某个 类或者 对象。在面向对象领域中,组件之间的连接通常用接口_(计 算机科学) 来实现系统的软件体系结构是建立一个对系统来说所需要的结构,包括软件元素,它 们之间的关系,以及两者的性质。4、什么是架构风格 PPT1-8 36 页 An Architectura

3、l Style defines a family of systems in terms of a pattern of structural organization. It determines: the vocabulary of components and connectors that can be used in instances of that style, a set of constraints on how they can be combined. For example, one might constrain: the topology of the descri

4、ptions (e.g., no cycles). execution semantics (e.g., processes execute in parallel).描述软件的基本结构组织或纲要,提供事先定 义好的子系 统,制定好 责任并将它们组织在一起的法则和指南。| 答案 2: 也叫架构模式,一个架构 风格描述软件系统里的基本的结构组织或纲要。架构风格提供一些事先定 义好的子系统,指定他们的责任并给出把他们组织在一起的法则和指南。一个架构模式常常可以分解成很多个设计 模式的联合使用。 MVC 模式就属于架构模式。软件系统有哪几类结构?模块、组件和连接器、配置。模块分配具体的职责,是工作的

5、基 础;我们调用运行时结构组件和连接器结构,在我 们的使用中,组件始终是运行时实体;分配结构描述从软件结构映射到系统的环境, 组织、 发展、安装、执行;元素是一类模块(类、层或功能的划分等),模块与其他模块 相关联通过概括化或专业化的关系;元素运行组件如服务、同行、客户、服务器、 过滤器等, 连接器是组件间的通信工具;5、有那些常见架构风格(1)管道和过滤器架构风格 PPT 40 页适用于需要定义一系列的执行规则数据的独立运算。 组件在输入时读数据流,在 输出时产生数据流。 优点:易于理解、支持重用、容易保持或增强、允许某些专业分析、支持并发执行缺点:转换特性导致其不擅长处理交互系统、书写自己

6、的过滤器时,过度地解析或不解析导致性能损失和更加复杂举例:unix 的 shell 脚本、传统编译器组件:称为过滤器,应用于对局部的 输入流的转换, 经常增 长的计算,因此,在 输入结束前输出就开始了。 . 连接器:称为管道,给流提供管道,把一个过滤器的输出 传输到另一个输入。 (2)面向对象风格 PPT49 页适用于主要问题是识别和保护信息的相关主体。 数据代理和它 们相关的操作封装在一个抽象数据类型里面。 优点:可以改变实施而不影响客户,可以设计作为独立的交互代理的集合的系统缺点:一个对象与另一个对象进行交互时第一个对象必须知道第二个对象的身份。对象引起的副作用。举例:java,c# 开发

7、的系统组件:对象 连接器:功能和过程调用(方法)(3)隐式调用风格 应用于涉及到组件的松耦合集,其中的每一个都执行一些操作,还可能允许其他的操作。尤其对必须很快重新配置的应用很有用 改变服务的供应商 可能的或是不可能的能力 不是直接的引用过程 一个组件能发表一个或多个事件 在系统中的其他组件能够在事件中注册一个兴趣通过与事件和过程结合 当一个事件被声明后, 广播系统(连接器)自己引用已 经注册的事件的所有过程 所有声明的事件“隐式” 造成了过程在其他模块的调用 优点:为重用提供强大支持、简化系统演化缺点:当一个系统广播一个事件时,不知道其他哪些组件会响应,不知道依赖于响应被调用的顺序,不知道响

8、应什么时候结束举例:数据库管理系统中执行完整性约束(触发器)(4)客户-服务器风格 PPT64 页适用于涉及到分布式的数据和跨越一系列的组件的处理 优点:数据分布简单明确、位置透明、混合和匹配异构平台、易于添加新服务器或升级现有服务器。缺点:没有名称和服务的中央寄存器很难找到什么服务是没用的举例:文件服务器、数据库服务器、对象服务器组件: 服务器:标准独立的组件提供特别的服务,如打印,数据管理等。 客户端:组件调用服务器提供的服务。 连接器:网络,允许客户端访问远 程服务器。 (5)分层风格 PPT72 页适用于涉及到分布式的能够分层的组织的类的服务,每 层给 它的上一层提供服务,同时作为下一

9、层的客户端,只有仔 细地从内层选择选择过程,才能用于他们临近的外层。优点:设计(基于提高抽象层次) 、改善(一个层的功能改变最多影响两个层) 、重用(相同层的不同实现可以交替使用)缺点:并不是所有的系统都可以很容易的实现分层,性能需求可能迫使底层实现高级功能的耦合。举例:分层通信协议、操作系统组件:典型的过程的集合。 连接器:典型的在有限的可见性下的过程调用 (6) 仓库风格 PPT80 页适用于主要问题是建立、增加和 维护复杂信息的主体部分,信息一定要能够用很多种方式操作。经常需要长期的存在。 优点:有效存储大量数据、共享式模式模型、集中式管理缺点:必须先达成一个数据模型、很难分配数据、数据

10、升级很昂贵举例:信息系统、编程环境、图形编辑器、人工智能知识基础、逆向工程系统组件: 主要的数据结构能够表示出系统的正确状态 操作主要数据结构的独立组件的集合 连接器:典型地过程调用或是直接内存访问 (7)解释程序风格 PPT87 页适用于执行解决方案的最合适的语言或是机器不是直接可用的。 优点:模拟无实现的硬件、促进跨多种平台的应用程序或语言可移植性缺点: 举例:编程语言编译器、基于规则的系统、脚本语言组件:包括一个状态机,有一个 执行引擎和三个记忆状态: 当前的执行引擎的状态 程序被翻译 当前的被翻译的程序的状态 连接器: 过程调用 直接内存访问 (8)过程控制风格 PPT94 页适用于目

11、的是维护特殊过程的输出属性在给定参考值的情形下 优点:缺点:举例:实时系统软件用来控制(核电站、汽车巡航控制)组件: 过程定义 包括操作一些过程变量的机制 控制算法 决定如何去操作过程变量 连接器:数据流关系 过程变量: 被控制的变量的值是系统能控制的 输入变量能够检测过程的输入 操纵变量的值能够被控制器改变 设置断点 是一个控制变量所需要的值 传感器 获得过程变量与控制有关的值6、架构师需要的核心技能是什么(1) 涉众之间的交流 (2) 技术 知识(3) 软件工程学 (4) 风险管理7、什么是架构视图 PPT 15 页一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖

12、了系统的某一特定方面,而省略了此方面无关的实体。8、软件架构过程(三个迭代步骤)PPT1-8 202 页Detrmin AchitualRqirs ArchiteurDsignValidtion1、确定架构需求:架构上重要的需求(结构用例)-基本的质量和系统的非功能性需求2、架构设计:迭代的设计步骤-风险识别是一个重要的输出设计3、结构验证:验证阶段-验证阶段的目的是增加信心的设计团队的架构是适合的目的;验证必须实现在项目时间和预算的约束,关键是要尽可能严格的和有效的;验证一个架构设计提出了严峻的挑战,因为这是一个设计不能执行或测试,包括新和 COTS 组件集成;两种主要的方法:手工测试使用的

13、测试场景的体系结构,建设一个原型创建所需的应用程序的一个简单的原型;目的是识别潜在缺陷在设计实现生效前,这样他们就可以得到改善,在建造之前修复成本更便宜9、软件质量属性主要包括哪些(五种)ppt1-8 116 页Reliability 可靠性、Availability 可用性、Portability 可移植性、Scalability 可伸缩性、Performance (!) 性能10、软件可用性取决于(三种时间)PPT146 页 Time to detect failure 故障 检测时间 Time to correct failure 纠正失败时间 Time to restart appli

14、cation 重新启动应用程序时间11、伸缩性涉及那些方面(四种)ppt1-8 116 页 Request load 请求负载 Connections 连接 Data size 数据大小 Deployments 部署12、吞吐率指标 PPT120 页 Transactions per second 每秒事务数 Messages per minute 每分 钟的消息 Messages per second (msp) Maximum sustainable throughput (MST) 最大可持续吞吐量13、架构元素的通信包括哪些 PPT 10 页数据传递机制,例如:函数调用、远程方法调用、

15、异步消息控制流:组件之间的消息流来实现需要的功能、顺序、并发/并行、同步14、各种架构风格的组件和连接器是什么见 515、软件性能指标主要有哪几种(三种)吞吐量、响应时间、Deadlines 生死线16、响应时间的度量(两种) PPT 122 页 Usually measured in (milli)seconds Guaranteed 可保证的、Average17、安全性质量指标主要有哪几种(五种)PPT142 页 Authentication: Applications can verify the identity of their users and other application

16、s with which they communicate. 身份验证:应用程序可以验证他们的用户的身份和他们通信的其他应用程序。 Authorization: Authenticated users and applications have defined access rights to the resources of the system. 授权:身份验证的用户和应用程序定义了系统资源的访问权限。 Encryption: The messages sent to/from the application are encrypted. 加密:从应用程序发送到/从应 用程序的消息是加密的

17、。 Integrity: This ensures the contents of a message are not altered in transit.完整性:确保在传输过程中不会改变消息的内容。 Non-repudiation: The sender of a message has proof of delivery and the receiver is assured of the senders identity. This means neither can subsequently refute their participation in the message exch

18、ange. 不可否认性:一个消息的发送者有传递的证明,接收者保 证 了发送者的身份。 这意味着既不能反驳他们的信息交换的参与。18、实现高可用性的策略(三种)PPT146 页Strategies for high availability:Eliminate single points of failure 消除单点故障Replication and failover 复制和故障转移Automatic detection and restart 自动检测和重新启动19、信息隐藏原理PPTlecture9 88 页信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息(过程或数据) ,对于不

19、需要这些信息的其他模块来说,是不可访问的。信息隐藏(封装)主要是为了提高软件的可重用性和可维护性。信息隐藏造成了系统各个部分耦合性低。系统是由各个部分构成的,如果这些部分耦合性低的话,那么这个系统开发、维护等就较容易 Often one hides, e.g. Data representation. Choice of algorithm. Interface details / access mechanism of external entity (e.g. database, hardware) Goal: particular design choice “invisible” to

20、 clients.Why would we want to do this? Information Hiding may or may not be supported at the programming language level.20、GRASP 模式的具体内容( 9 个) ,各种模式的定义,解决的什么问题创造者 Creator1分配给类 B 职责来创造类 A 的一个实例如果: (1) B 聚合 A 的对象 (2) B 包含 A 的对象 (3) B 记录 A 的对象的实例 (4) B 紧密地使用 A 的对象 (5) B 被创建时有初始化的数据 传递给 解决方案:将创建一个类 A 的实

21、例的职责指派给类 B 的实例,如果下列条件满足的话:a) B 聚合了 A 对象b) B 包含了 A 对象c) B 纪录了 A 对象的实例d) B 要经常使用 A 对象e) 当 A 的实例被创建时,B 具有要传递给 A 的初始化数据(也就是说 B 是创建 A的实例这项任务的信息专家)f) B 是 A 对象的创建者如果以上条件中不止一条成立的话,那么最好让 B 聚集或包含 A通俗点就是:我要用你所以我来创建你,请不要让别人创建你这个模式是支持低耦合度原则的一个体现专家 Creator2在设计对象(类)时,如果某个 类能够在某方面具有完整信息,足以实现某责任,就将这个责任分配给这个类, 解决方案:将

22、职责分配给具有履行职责所需要的信息的类通俗点就是:该干嘛干嘛去,别管别人的闲事或者我的职责就是搞这个,别的事不管。举个简单的例子,如果有一个类是专门处理字符串相关的类,那么这个类只能有字符串处理相关的方法,而不要将日期处理的方法加进来。也就是提高软件高内聚一种原则。控制器 Controller3控制器是在用户接口层上的第一个对象, 负责接收和处 理系统的操作信息。 解决方案:将处理系统事件消息的职责分派给代表下列事物的类:a) 代表整个“系统”的类(虚包控制者)b) 代表整个企业或组织的类(虚包控制者)c) 代表真实世界中参与职责(角色控制者)的主动对象类(例,一个人的角色)d) 代表一个用况

23、中所有事件的人工处理者类,通常用“处理者”的方式命名(用例控制者)这是一个控制者角色职责分配的原则,就是哪些控制应该分派给哪个角色。低耦合 Low Coupling4测量存在于模块之间的依赖程度 解决方案:在分配一个职责时要使保持低耦合度。耦合度(coupling)是一个类与其它类关联、知道其他类的信息或者依赖其他类的强弱程度的度量。一个具有低(弱)耦合度的类不依赖于太多的其他类。高内聚 High Cohesion5测量一个共享的模块内元素的相关性 ;一个单独模块执行任务的程度是功能相关的 解决方案:分配一个职责的时候要保持类的高聚合度聚合度或内聚度(cohesion)是一个类中的各个职责之间相关程度和集中程度的度量。一个具有高度相关职责的类并且这个类所能完成的工作量不是特别巨大,那么他就是具有高聚合度。多态 Polymorphism6当相关的供选方案或行为随着类型的变化而变化时,给 行为分配职责使用多态操作来适合行为变化的类型。 也就是说尽量对抽象层编程,用多态的方法来判断具体应该使用那个类,而不是用 if instanceof 来判断该类是什么接来执行什么。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 参考答案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。