现代软件架构期末复习题2 (个人整理版 欢迎补正)

上传人:kms****20 文档编号:37524347 上传时间:2018-04-17 格式:DOC 页数:11 大小:69.50KB
返回 下载 相关 举报
现代软件架构期末复习题2 (个人整理版 欢迎补正)_第1页
第1页 / 共11页
现代软件架构期末复习题2 (个人整理版 欢迎补正)_第2页
第2页 / 共11页
现代软件架构期末复习题2 (个人整理版 欢迎补正)_第3页
第3页 / 共11页
现代软件架构期末复习题2 (个人整理版 欢迎补正)_第4页
第4页 / 共11页
现代软件架构期末复习题2 (个人整理版 欢迎补正)_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《现代软件架构期末复习题2 (个人整理版 欢迎补正)》由会员分享,可在线阅读,更多相关《现代软件架构期末复习题2 (个人整理版 欢迎补正)(11页珍藏版)》请在金锄头文库上搜索。

1、现代软件架构期末复习题一、 什么是软件架构?软件架构(软件架构(software archiecture)是一组有关如下要素的重要决策:)是一组有关如下要素的重要决策: 软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的 选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指 导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。 软件架构是对系统整体结构设计的刻划,包括

2、全局组织与控制结构,构件软件架构是对系统整体结构设计的刻划,包括全局组织与控制结构,构件 间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元间通讯、同步和数据访问的协议,设计元素间的功能分配,物理分布,设计元 素集成,伸缩性和性能,设计选择等。素集成,伸缩性和性能,设计选择等。 一个软件系统的质量,很大程度上是由架构设计的质量决定的一个软件系统的质量,很大程度上是由架构设计的质量决定的L1: P7 P8二、 架构师为实现好的架构设计需要考虑的三个核心思维是什么?作为一个架构师来说,上述的讨论引发了三个核心思维,一个是架构设计作为一个架构师来说,上述的讨论引发了三个核心思维,一

3、个是架构设计 的源泉来自于需求分析,第二个是架构设计重心和特点来自于质量需求(非功的源泉来自于需求分析,第二个是架构设计重心和特点来自于质量需求(非功 能性需求)能性需求) ,第三个观点是,架构的实现依赖于好的项目管理。因此,软件架构,第三个观点是,架构的实现依赖于好的项目管理。因此,软件架构 设计是一个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构设计是一个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构 设计到类设计甚至代码实现一直到项目管理都需要有透彻的理解,这之间的关设计到类设计甚至代码实现一直到项目管理都需要有透彻的理解,这之间的关 系是你中有我我中有你,是不可

4、能截然分开的。系是你中有我我中有你,是不可能截然分开的。L1: P10 三、 什么是软件复用?在一个应用系统的不同版本间重复使用代码的过程是否属于严格意义上的软件复用?现代软件架构设计的原则来自于软件复用,软件复用是指重复使用现代软件架构设计的原则来自于软件复用,软件复用是指重复使用“为了为了 复用目的而设计的软件复用目的而设计的软件”的过程。在过去的开发实践中,我们也可能会重复使的过程。在过去的开发实践中,我们也可能会重复使 用用“并非为了复用目的而设计的软件并非为了复用目的而设计的软件”的过程,或者在一个应用系统的不同版的过程,或者在一个应用系统的不同版 本间重复使用代码的过程,这两类行为

5、都不属于严格意义上的软件复用。本间重复使用代码的过程,这两类行为都不属于严格意义上的软件复用。L1: P11四、 什么是特定领域软件架构?特定领域软件架构(特定领域软件架构(DSSA):): 这是一个领域中的所有应用系统所共有的体系结构,是针对领域模型中的这是一个领域中的所有应用系统所共有的体系结构,是针对领域模型中的 领域需求给出的解决方案,也是识别、开发和组织特定领域可复用构件的基础。领域需求给出的解决方案,也是识别、开发和组织特定领域可复用构件的基础。 在国内外的金融、在国内外的金融、MIS、通讯和军事等领域中都开始注意到开发特定领域的软、通讯和军事等领域中都开始注意到开发特定领域的软

6、件架构和集成框架的重要性。件架构和集成框架的重要性。L1: P15(DSSA)五、 软件架构师有哪些必需的职责?尽管对软件架构师的角色有这样或那样的定义,但大体上下面几个职责是尽管对软件架构师的角色有这样或那样的定义,但大体上下面几个职责是 必需的:必需的: 1、技术负责,解决方案的提供者;、技术负责,解决方案的提供者; 2、与项目经理合作,制定计划,决定成员,组织团队;、与项目经理合作,制定计划,决定成员,组织团队; 3、保证项目按计划和走向完成;、保证项目按计划和走向完成; 由于设计是由需求驱动的,所以,掌握需求分析的技巧,是一个好的架构由于设计是由需求驱动的,所以,掌握需求分析的技巧,是

7、一个好的架构 师必备的能力。师必备的能力。L1: P16(上半部分)六、 什么是 3W 的架构师核心思维?一个软件架构师最重要的问题,就是他所设计的产品必须是满足企业战略一个软件架构师最重要的问题,就是他所设计的产品必须是满足企业战略 规划的需求,规划的需求, 能够帮助企业解决实际问题的,因此一个合理的设计,首先要想的是:能够帮助企业解决实际问题的,因此一个合理的设计,首先要想的是: Who:为谁设计?:为谁设计? What:要解决用户的什么问题?:要解决用户的什么问题? Why:为什么要解决这些用户问题?:为什么要解决这些用户问题? 这是一个被称之为这是一个被称之为 3W 的架构师核心思维,

8、如果这个问题没搞清楚,就很的架构师核心思维,如果这个问题没搞清楚,就很 快的投入程序编写,那这样的软件在市场上是不可能获得成功的。快的投入程序编写,那这样的软件在市场上是不可能获得成功的。L1: P21(第 2 段开始)七、 软件开发生命周期增量模型的优点有哪些?对瀑布模型的一个关键性的改进,是所谓增量模型的出现。增量模型是指对瀑布模型的一个关键性的改进,是所谓增量模型的出现。增量模型是指 首先构建部分系统,再逐渐增加功能或者性能的过程。它降低了取得初始功能首先构建部分系统,再逐渐增加功能或者性能的过程。它降低了取得初始功能 之前的成本,强调采用构建方法来帮助控制更改需求的影响,也提高了创建可

9、之前的成本,强调采用构建方法来帮助控制更改需求的影响,也提高了创建可 操作系统的速度。操作系统的速度。 增量模型是综合了瀑布模型和原型化的产物,提倡以功能渐增方式开发软增量模型是综合了瀑布模型和原型化的产物,提倡以功能渐增方式开发软 件,经验表明,这种增量模型在特大型项目和小型项目中同样适用。增量模型件,经验表明,这种增量模型在特大型项目和小型项目中同样适用。增量模型 描述了为系统需求排定优先级然后分组实现的过程,每个后续版本都为先前版描述了为系统需求排定优先级然后分组实现的过程,每个后续版本都为先前版 本增加了新功能。本增加了新功能。 增量模型的优点:增量模型的优点: 整个项目的资金不会被提

10、前消耗,因为首先开发和交付了主要功能和高整个项目的资金不会被提前消耗,因为首先开发和交付了主要功能和高 风险功能。风险功能。 每个增量交付一个可操作的产品。每个增量交付一个可操作的产品。 每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对每次增量交付过程中获取的经验,有利于后面的改进,客户也有机会对 建立好的模型作出反应。建立好的模型作出反应。 采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新采用连续增量的方式,可把用户经验融入到细化的产品,这比完全重新 开发要便宜得多。开发要便宜得多。 “分而治之分而治之”的策略,使问题分解成可管理的小部分,避免开发团队由的策略,使

11、问题分解成可管理的小部分,避免开发团队由于长时间的需求任务而感到泪丧。于长时间的需求任务而感到泪丧。 通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态,通过同一个团队的工作来交付每个增量,保持所有团队处于工作状态, 减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。减少了员工的工作量,工作分布曲线通过项目中的时间阶段被拉平。 每次增量交付的结为,可以重新修订成本和进度的风险。每次增量交付的结为,可以重新修订成本和进度的风险。 便于根据市场作出反应。便于根据市场作出反应。 降低了失败和更改需求的风险。降低了失败和更改需求的风险。 更易于控制用户需求,因为每次曾两开发的时间很

12、短。更易于控制用户需求,因为每次曾两开发的时间很短。 由于不是一步跳到未来,所以用户能逐步适应新技术。由于不是一步跳到未来,所以用户能逐步适应新技术。 切实的项目进展,有利于进度控制。切实的项目进展,有利于进度控制。 风险分布到几个更小的增量中,而不是集中于一个大型开发中。风险分布到几个更小的增量中,而不是集中于一个大型开发中。 由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需由于用户能够从早期的增量中了解系统,所以更加理解后面增量中的需 求。求。L1: P36(定义 第一段)P39(优点)P40(优点)八、 什么是软件需求,它包含哪三个部分?什么是需求呢?产品为用户在特定的背景

13、中所必须满足的约束就是产品的什么是需求呢?产品为用户在特定的背景中所必须满足的约束就是产品的 需求,需求的表达一般是抽象的而且与技术无关的,这样主要是避免对技术方需求,需求的表达一般是抽象的而且与技术无关的,这样主要是避免对技术方 案产生影响,但架构设计的源泉来自于需求过程,也就是说,合理而且正确的案产生影响,但架构设计的源泉来自于需求过程,也就是说,合理而且正确的 需求分析过程,是架构设计过程的一个有机的组成部分,所以,我们首先必须需求分析过程,是架构设计过程的一个有机的组成部分,所以,我们首先必须 讨论需求分析的领域建模的有关问题,我们必须搞清楚,什么样的需求过程才讨论需求分析的领域建模的

14、有关问题,我们必须搞清楚,什么样的需求过程才 会给架构设计提供足够的信息呢?会给架构设计提供足够的信息呢? 需求工程包括需求抽取、需求分析和需求管理,整个过程必须给用户方、需求工程包括需求抽取、需求分析和需求管理,整个过程必须给用户方、 管理方和设计方提供足够的而且是清晰的信息管理方和设计方提供足够的而且是清晰的信息L2: P2(第 2 段)P3(3 个部分)补充:需求的主要内容包含:功能性需求补充:需求的主要内容包含:功能性需求 非功能性需求非功能性需求 限制条件限制条件九、 请简述创造性研讨会。创造性研讨会是项目驱动力的一种自然的发展,目的是得到前面所讨论的创造性研讨会是项目驱动力的一种自

15、然的发展,目的是得到前面所讨论的 创新产品,如果有大量的风险承担者将参与这个创新过程,可以使用这个方法。创新产品,如果有大量的风险承担者将参与这个创新过程,可以使用这个方法。 如果希望让风险承担者看到开发创新产品,而不只是重新创建一个同样的老系如果希望让风险承担者看到开发创新产品,而不只是重新创建一个同样的老系 统的好处,也可以采用创造性研讨会。统的好处,也可以采用创造性研讨会。 举行创造性研讨会的最佳时间,是在接近项目开始时,在人们开始把他们举行创造性研讨会的最佳时间,是在接近项目开始时,在人们开始把他们 的思维关注于解决方案之前。的思维关注于解决方案之前。 在创造性研讨会中,许多技巧都利用

16、了头脑风暴会议的技巧。在创造性研讨会中,许多技巧都利用了头脑风暴会议的技巧。L2: P59十、 为什么做学徒是获取业务用例的好方法?不太可能许多用户能给你讲清楚他们在做什么,使开发者完全理解业务工不太可能许多用户能给你讲清楚他们在做什么,使开发者完全理解业务工 作,并且捕做到他们所需要的需求。当某人给你解释一个业务的时候,他倾向作,并且捕做到他们所需要的需求。当某人给你解释一个业务的时候,他倾向 于用行业内专用的抽象术语来解释,时间会非常短,也没有办法或者耐心演示于用行业内专用的抽象术语来解释,时间会非常短,也没有办法或者耐心演示 一切。一切。 这就需要分析这参加到对方工作中去,几乎所有人都善于把自己正在做的这就需要分析这参加到对方工作中去,几乎所有人都善于把自己正在做的事情给你解释清楚。当用户描述自己的工作的时候,你不要叫他离开工作,而事情给你解释清楚。当用户描述自己的工作的时候,你不要叫他离开工作,而 是坐在他的旁边,随着工作的进行,每一个步骤都给你解释清楚,你可以问他:是坐在他的旁边,随着工作的进行,每一个步骤都给你

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

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号