软件设计与体系结构课后练习部分答案(DOC)
软件设计与体系结构题目与答案
![软件设计与体系结构题目与答案](https://img.taocdn.com/s3/m/296b6e7f302b3169a45177232f60ddccda38e68f.png)
软件设计与体系结构题目与答案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.管道和过滤器架构风格:适用于需要定义一系列的执行规则数据的独立运算,组件在输入时读数据流,在输出时产生数据流组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。
软件设计与体系结构智慧树知到答案章节测试2023年山东科技大学
![软件设计与体系结构智慧树知到答案章节测试2023年山东科技大学](https://img.taocdn.com/s3/m/86fab115a4e9856a561252d380eb6294dd8822a9.png)
第一章测试1.1968年,在德国Garmish召开的NATO计算机科学会议上首先提出了“软件工程的概念”。
()A:错B:对答案:B2.软件生存周期是指软件产品从形成概念开始,经过开发、使用,直到维护的全过程。
()A:错B:对答案:A3.软件设计是软件需求向软件实现的转化过程。
()A:错B:对答案:B4.下列属于渐进式开发模型的是():A:螺旋模型B:瀑布模型C:原型模型D:统一软件开发过程答案:AC5.瀑布模型的优点是:()A:只有在项目生命周期的后期才能看到结果B:为项目提供了按阶段划分的检查点C:当前一阶段完成后只需要去关注后续阶段D:在项目各个阶段之间极少有反馈答案:BC第二章测试1.UML用于功能建模的图为()。
A:类图B:顺序图C:用例图D:活动图答案:C2.UML的组成主要有()。
A:图B:视图C:通用机制D:模型元素答案:ABCD3.UML应用领域很广泛,可用于商业建模。
()A:错B:对答案:B4.状态机图是一种交互视图。
()A:错B:对答案:A5.任何建模语言都以静态建模为基础。
()A:错B:对答案:B第三章测试1.以下类型的内聚的内聚性最高的是()A:逻辑内聚B:偶然内聚C:瞬时内聚D:过程内聚答案:D2.为用户使用目标软件系统以实现其所有业务需求而提供友好的人机交互方式是指()A:算法设计B:数据模型设计C:体系结构设计D:界面设计答案:D3.软件设计的最终输出是:()A:软件使用说明书B:软件需求说明书C:软件代码D:软件设计规格说明书答案:D4.软件设计质量将决定最终软件产品的质量。
()A:对B:错答案:A5.基于评估与转换的设计方法中的关键环节是对软件体系结构进行评估。
()A:错B:对答案:A第四章测试1.描述概念模型的手段是()A:数据类B:分析类C:实体类D:边界类答案:B2.用户界面设计在数据模型设计之前进行。
()A:对B:错答案:B3.面向对象软件设计过程,从领域概念到设计概念和代码实现,都以任何对象为核心。
软件设计与体系结构练习题全解
![软件设计与体系结构练习题全解](https://img.taocdn.com/s3/m/30639f12bcd126fff6050b19.png)
软件设计与体系结构复习一、填空题(一)Chapter 11.软件设计模式通常包含4个基本要素:模式名称、问题、解决方案以及效果。
2.软件设计模式可以分为三个层次:架构模式、设计模式、习惯用法。
3.软件设计模式是对软件设计经验的总结,是对软件设计中特定环境下反复出现的设计问题的、经过验证的、成功解决方案的描述。
(二)chapter 51.早在1968年,计算机领域的大师Dijstra指出:项目规模越大,其整体架构就越重要。
2. 软件体系结构的三个基本要素是:构件、连接件、约束3. 对软件质量的关注正是软件架构师与一般的软件设计师的不同之处,一般的软件设计师主要关注软件功能的设计,并要遵循架构师给出的设计准则。
4. IEEE 1471-2000标准定义软件体系结构是“系统的基本组织结构,包括系统构成要素、这些构成要素相互之间以及运行环境之间的关系,还包括系统设计及演化时应遵循的原则”。
(三)chapter 21.创建型软件设计模式是解决_对象创建机制_的设计模式。
2.创建型软件设计模式的两个主导思想:封装了系统使用的具体类的知识,隐藏这些具体类的实例被创建与结合的细节。
3.简单工厂方法模式的特点是仅仅有一个具体的创建者类,并且在此类中包含一个__静态工厂_____方法。
4.生成器模式是一步一步创建一个复杂的对象,允许用户通过制定复杂对象的类型和内容就可以构建它们,用户不知道内部的具体构建细节5. 单例模式是指确保一个仅有一个唯一的实例,并提供一个全局的访问点。
6. 在单例模式中,为了防止客户程序利用构造方法创建多个对象,要将构造方法声明为private(或私有)类型。
(四)chapter 31. 结构型软件设计模式的主要目的是将不同的类和对象组合在一起,形成更大或者更复杂的结构体。
2. 组合模式指将对象组合成树形结构,以表示“部分-整体”的层次结构。
该模式使得对单个对象和组合对象的使用具有一致性。
3.适配器模式可以分为两种:类适配器和对象适配器4. 类适配器模式通过继承的方式改变已经存在的接口而形成新的接口,使之适合客户类调用的需要;对象适配器模式使用调用或者聚合的方式选择调用多个类中的方法,形成新的接口。
软件体系结构课后习题参考答案
![软件体系结构课后习题参考答案](https://img.taocdn.com/s3/m/eeea1f315f0e7cd185253624.png)
软件体系结构第四章作业题1.请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。
基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。
然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。
该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现5个阶段.特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。
优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。
构件组装模型导致了软件的复用,提高了软件开发的效率。
软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。
并且软件复用从代码级的复用提升到构件和体系结构级的复用。
缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。
可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。
客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。
二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;优点:开发流程简单。
缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。
并且如果在开发过程存在阻塞问题,则影响开发效率。
三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。
特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。
通过迭代过程实现软件的逐步演化,最终得到软件产品。
(完整word版)软件体系结构试题库(软件工程)试题和答案(word文档良心出品)
![(完整word版)软件体系结构试题库(软件工程)试题和答案(word文档良心出品)](https://img.taocdn.com/s3/m/6ed1076afad6195f312ba69b.png)
一、判断题1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
答案:√2、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。
答案:√3、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。
答案:√5、构件可以由其他复合构建和原子构件通过连接而成。
()答案:√6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色()答案:√7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。
其中,构件、连接件和配置是最基本的元素()答案:√8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务()答案:X9、构件、连接件以及配置是体系结构的核心模型最基本的元素()答案:√10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。
答案:×11、正交软件体系结构由组织层和线索的构件构成。
答案:√13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。
()答案:√14、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。
答案:×16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。
答案:√18、体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。
答案:√19、基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语言。
答案:√21、基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结构层。
答案:√23、基于构件的动态系统结构模型分为应用层,中间层和体系结构层。
答案:√29、一般的说,一个模式有一下4个基本成分,1.模式名称,2.问题,3.解决方案,4.效果,这句话是对的()答案:√30、设计模式的概念最早是由美国的一位计算机专家提出的。
软件体系结构习题答案
![软件体系结构习题答案](https://img.taocdn.com/s3/m/3388afb5daef5ef7ba0d3ca7.png)
支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。
(1)
(2)
(3)应用层:处于最底层,包括构件链接,构件接口和执行中间层:包括连接件配置,构件配置,构件描述及执行体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。
1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在
b/s风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/web服务器/数据库服务器。优点(1)基于b/s体系结构的软件,
系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于c/s体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。
3、sis和dssa分别用在哪些场合?
答:1.dssa只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结
构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。
2.dssa的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。
软件设计与体系结构智慧树知到课后章节答案2023年下云南大学
![软件设计与体系结构智慧树知到课后章节答案2023年下云南大学](https://img.taocdn.com/s3/m/f79b1311443610661ed9ad51f01dc281e53a56a9.png)
软件设计与体系结构智慧树知到课后章节答案2023年下云南大学云南大学第一章测试1.以下对软件架构师、软件工程师、系统分析师表述正确的是?()答案:软件工程师一般专注于模块级、功能代码级的开发工作,针对功能模块级的代码细节要求较高,但对系统级的架构设计要求较低。
对业务分析、项目管理、运营维护、法律规定则不做过多要求。
;系统分析师的主要职责是在于需求分析、开发管理、运行维护、法律法规等方面。
对代码细节开发不做过多要求,但需要掌握一定的软件架构知识。
;软件架构师的重点工作是架构与设计这两个关键环节上,因此,对设计、架构、代码撰写都有较高的要求。
但是,对需求分析、项目管理、运管管理、法律法规的要求相对较低。
2.《软件工程》主要聚焦于有关软件需求分析,软件过程模型,软件项目管理、软件运营维护、软件迭代升级等软件生命周期的相关理论和方法学。
()答案:对3.《软件设计与体系结构》则聚焦于软件的设计原则和架构模式。
以撰写高质量程序代码为目标,通过四个层次的方法学理论,指导开发者在不同的条件下,撰写较为高质量的程序代码。
()答案:对第二章测试1.GRASP设计原则主要指导开发者进行:()答案:职责设计2.信息专家原则的主要含义是?()答案:一个类能否分配一个职责的基本条件是该类是否拥有执行该职责的全部信息3.以下哪种情况中,创建者的关系强度最高?()答案:A类组合B类(B是A的成员,B实例不能离开A实例单独存在)4.以下耦合关系中,哪种耦合强度最高?()答案:A类引用B类5.以下说法相对正确的是?()答案:类和模块的内部应该尽量的提高内聚,外部应该降低耦合;类和模块的应同时考虑高内聚和低耦合原则6.控制器原则的主要含义是?()答案:应该尽量将功能控制代码分配在一个单独的控制器实现类中,UI默认调用抽象控制器类来执行功能;在各类编程语言的类库中,常见的控制器类有handler, Action, Listener等。
软件体系结构课后作业及参考答案
![软件体系结构课后作业及参考答案](https://img.taocdn.com/s3/m/927a8343a45177232f60a279.png)
1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。
答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。
同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。
2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。
3、为什么要研究软件体系结构?答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。
2.软件体系结构代表了早期的设计决策成果。
3.软件体系结构可以作为一种可变换的模型。
4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器);连接件(connector)是关系的抽象,用以表示构件之间的相互作用。
如过程调用、管道、远程过程调用等;限制(constrain):用于对构件和连接件的语义说明。
5、在软件体系结构的研究和应用中,你认为还有哪些不足之处?答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。
(2)ADL繁多,缺乏同意的ADL的支持。
(3)软件体系结构研究缺乏统一的理论模型支持。
(4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。
(5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。
(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。
软件设计与体系结构练习题参考答案
![软件设计与体系结构练习题参考答案](https://img.taocdn.com/s3/m/b2c93189294ac850ad02de80d4d8d15abe230067.png)
一、选择题CDABC DABCC ACDCC BADCA DDCBC ADBDA二、判断题√√X√√√√X X√X√√√X X X X X√√X√ X X X三、简答题1、简述实体类的概念及其作用。
实体类实现所谓的对象关系映射(Object Relational Mapping,简称ORM),是为了解决面向对象的类与关系数据库的表之间,存在的不匹配的现象,通过使用描述对象和关系之间映射的元数据,在程序中的类对象,与关系数据库的表之间建立持久的关系,用于在程序中描述数据库表。
本质上就是将数据从一种形式转换到另外一种形式。
简单地说,就是描述一个业务实体的类。
实体类对象是现实世界中实体对象在计算机中的表示,在层与层之间以及层内模块间进行数据传输。
2、敏捷开发宣言。
我们正在通过亲身实践以及帮助他人实践,揭示更好的软件开发方法,通过这项工作,我们认为:个体和交互胜过过程和工具可以工作的软件胜过面面俱到的文档客户合作胜过合同谈判响应变化胜过遵循计划虽然右项也有其价值,但我们认为左项更加重要。
3、简述XP的短交付周期的概念。
迭代计划: XP项目每两周交付一次可以工作的软件。
每两周的迭代都实现了利益相关者的一些需求,在每次迭代结束时,会给利益相关者演示迭代生成的系统,以得到他们的反馈。
迭代是一次较小的交付,可能会被加入到产品中,也可能不会。
每个周期(Iteration)开发的需求都是用户最需要的东西。
发布计划:XP团队通常会创建一个计划来规划随后大约6次迭代的内容。
一次发布通常需要2-3个月的工作。
它表示了一次较大的交付,通常此次交付会被加入到产品中。
发布计划不是一成不变的,客户可以随时改变计划的内容,他可以取消用户故事,编写新的用户故事,或者改变用户故事的优先级别。
但是客户应该更改后面迭代的内容,尽量不要更改下一次迭代。
4、测试驱动开发的概念及其积极作用。
编写所有产品代码的目的都是为了使失败的单元测试能够通过。
软件体系结构课后习题第二章作业
![软件体系结构课后习题第二章作业](https://img.taocdn.com/s3/m/b678d79403d276a20029bd64783e0912a2167c31.png)
习题1:选择一个规模合适的系统为其建立“4+1”模型。
解:一个ATM系统的“4+1”模型:
1.首先是场景:
2.然后是逻辑视图:
3.开发视图如下:
4.进程视图如下:
5.物理视图如下:
习题2:引入了软件体系结构以后,传统软件过程发生了哪些变化?这些变化有什么好处?
答:软件体系结构的引入使传统软件设计开发更加具体和形象,使得软件过程变得更加方便和多样化。
其好处在于:包括程序员在内的绝大多数系统的利益相关人员都可借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通;软件体系结构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用;在很多方面使得软件开发更加易于维护和理解。
习题3:软件体系结构的生命周期模型与软件生命周期模型有什么关系?
答:软件体系结构在系统开发的全过程中起着基础的作用,是设计的起点和依据,同时也是装配和维护的指南。
软件体系结构是贯穿于软件研发的整个软件生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系。
软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。
整理软件体系结构课后作业及答案
![整理软件体系结构课后作业及答案](https://img.taocdn.com/s3/m/5edc9d863c1ec5da51e270a2.png)
软件体系结构课后作业及答案整理表姓名:职业工种:申请级别:受理机构:填报日期:A4打印/ 修订/ 内容可编辑文件编号:3B-E4-81-1F-1B本科实验大纲(计算机科学与技术学院2016版-信息安全专业课程)教务处制第II页共97目录03402022课程名称:计算机组成原理203402025课程名称:数据库系统原理703402026课程名称:网络安全1003402027课程名称:网络编程技术1303402509课程名称:算法与数据结构1903402512课程名称:计算机网络(Ⅱ)2103402517课程名称:程序设计基础2403402521课程名称:操作系统2703404001课程名称:微机操作实习3103404010课程名称:程序设计实践3403404016课程名称:计算机网络课程设计37 03406001课程名称:企业实习4303406002课程名称:Linux操作系统实践4503424002课程名称:密码学课程设计4803404020课程名称:网络安全课程设计5203424001课程名称:信息安全综合设计与实践55 03401521课程名称:汇编语言程序设计6003402029课程名称:网络管理6303422001课程名称:计算机病毒6803422005课程名称:计算机系统安全技术71 03402023课程名称:嵌入式系统设计与开发74 03402024课程名称:嵌入式系统体系结构实验大纲77 03406003课程名称:互联网应用服务开发与安全80 03406004课程名称:民航信息系统8403412007课程名称:移动终端程序开发与应用87 03422003课程名称:信息隐藏技术9003422006课程名称:网络攻击与防御93第1页共9703402022课程名称:计算机组成原理英文名称:Principle of Computer Organization课程编号:03402022一、实验(上机)学时/课程总学时: 12学时 /64学时二、先修课程:计算机导论、电子线路分析(I)、数字逻辑三、本实验课程在专业人才培养中的地位作用计算机组成原理课程是我院的学科专业基础必修课之一,也是本学院培养本科生形成专业思想的重要专业课程之一,是本学院得主干必修课之一。
课后练习及答案7
![课后练习及答案7](https://img.taocdn.com/s3/m/94024e6248d7c1c708a1456e.png)
软件体系结构设计(习题与参考答案)[选择题]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) 这是一个典型的胖与系统的交互,服务器是一个大型主机,运行火车票的数据库。
软件设计与体系结构课后题答案
![软件设计与体系结构课后题答案](https://img.taocdn.com/s3/m/9856231e3968011ca3009196.png)
缺点:
子类太多
何时采用:
1.个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为时。
2.某项业务有多个状态,通常都是一些枚举常量,状态的变化都是依靠大量的多分支判断语句来实现,此时应该考虑将每一种状态定义为State的子类。这样这些对象就可以不依赖于其他对象而独立变化,也可以很好的面对需求的改变。
3.在维护一个遗留的大型系统时,可能这个系统已经非常难以维护和扩展了,但新的需求开发必须依赖它。为新系统开发一个外观类,来提供设计粗糙或高度复杂的遗留代码的比较清晰的简单接口,让新系统和Facade对象交互,Facade与遗留代码交互所有复杂的工作。
【建造者】将一个复杂对象的构建与它的表示分离,使得同样的构造过程可以创建不同的表示。
【原型模式】指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节。
结构图:
优点:
1.性能优良:原型模型是在内存二进制流的拷贝,要比直接new一个对象性能好很多,特别是要在一个循环体内产生大量的对象时,原型模型可以更好地体现其优点。
【依赖倒转】抽象不应该依赖于细节,细节应该依赖于抽象。要针对接口编程,不要对实现编程。
【里氏代换】在软件里面,把父类都替换成它的子类,程序行为没有变化。简单地说,子类型必须能够替换掉它们的父类型。
【迪米特】如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
3.一个对象多个修改者的场景:一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用
软件设计与体系结构课后练习部分答案(DOC)
![软件设计与体系结构课后练习部分答案(DOC)](https://img.taocdn.com/s3/m/1c051fc0c5da50e2534d7f34.png)
软件设计与体系结构课后练习部分答案(DOC) 第一章作业6、简要叙述软件设计在软件工程中所处的位置和重要性。
答:所处的位置:软件需求分析?需求规格说明?软件设计?设计文档?软件编码。
重要性:(1)是对软件需求的直接体现;(2)为软件实现提供直接依据;(3)将综合考虑软件系统的各种约束条件并给出相应方案;(4)软件设计的质量将决定最终软件系统的质量;(5)及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
7、软件设计应该包含哪些要素?答:软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?答:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本组成部分。
软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用,基于体系结构的软件开发提供了有力的支持。
第二章作业1、简述UML的特点和用途。
答:UML的发起者在最初制定UML时,充分考虑了各种需求、方法和语言的特点使UML在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:(1)为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
(3)独立于实现语言和方法学,但支持所有的方法学,覆盖了面向对象分析和设计的相关概念和方法学。
(4)独立于任何开发过程,但支持软件开发全过程。
(5)提供对建模语言进行理解的形式化基础,用元素型描述基本语义,OCL描述良定义规则,自然语言描述动态语义。
大学_软件体系结构试题及参考答案
![大学_软件体系结构试题及参考答案](https://img.taocdn.com/s3/m/572164df541810a6f524ccbff121dd36a32dc435.png)
软件体系结构试题及参考答案软件体系结构试题及参考答案(一)1. 什么是软件工程?构成软件工程的要素是什么?软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。
软件工程的要素由方法、工具和过程组成。
方法支撑过程和工具,而过程和工具促进方法学的研究。
2. 什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关系?软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。
软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为软件开发过程提供原则和方法,其包括有以软件需求完全确定为前提的瀑布模型,以渐进式开发模型的原型和螺旋模型,以形式化开发方法为基础的变换模型。
3. 叙述软件设计在软件工程中所处的位置和重要性位置:软件需求分析--------需求规格说明------软件设计------设计文档------------软件编码总要性:(1)、是对软件需求的直接体现。
(2)、为软件实现提供直接依据(3)、将综合考虑软件系统的各种约束条件并给出相应方案(4)、软件设计的质量将决定最终软件系统的质量。
(5)、及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
4. 软件设计应该包含哪些要素?软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
5. 简述UML的特点和用途。
、答:为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的.需求模型、设计模型和设计模型。
提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
提供于实现语言和支持所有的方法学,覆盖了面向对象分析和设计的相关概念和方法学。
独立于任何开发过程,但支持软件开发全过程。
中南大学软件学院软件体系结构实验1UML实验参考答案.doc
![中南大学软件学院软件体系结构实验1UML实验参考答案.doc](https://img.taocdn.com/s3/m/5c844847a1c7aa00b42acb86.png)
《UML实验》参考答案1. 某酒店订房系统描述如下:(1) 顾客可以选择在线预订,也可以直接去酒店通过前台服务员预订;(2) 前台服务员可以利用系统直接在前台预订房间;(3) 不管采用哪种预订方式,都需要在预订时支付相应订金;(4) 前台预订可以通过现金或信用卡的形式进行订金支付,但是网上预订只能通过信用卡进行支付;(5) 利用信用卡进行支付时需要和信用卡系统进行通信;(6) 客房部经理可以随时查看客房预订情况和每日收款情况。
绘制该酒店订房系统的用例图。
参考答案:顾客在线预订房间前台预订房间通过现金支付订金通过信用卡支付订金查看客房预订情况查看每日收款情况2. 根据以下场景绘制用例图:某企业为了方便员工用餐,为企业餐厅开发了一个订餐系统(COS:Cafeteria Ordering System),企业员工可通过企业内联网使用该系统。
该系统功能描述如下:(1) 企业的任何员工都可以查看菜单和今日特价;(2) 系统的顾客是注册到系统的员工,可以在线订餐(以下操作均需先登录)、注册工资支付、修改订餐信息和删除订餐信息,在注册工资支付时需要通过工资系统进行身份验证;(3) 餐厅员工是特殊的顾客,可以进行备餐(系统记录备餐信息)、生成付费请求和请求送餐,其中对于注册使用工资支付的顾客生成付费请求并发送给工资系统;(4) 菜单管理员是餐厅员工的一种,可以管理菜单;(5) 送餐员也是餐厅员工的一种,可以打印送餐说明、记录送餐信息(如送餐时间)以及记录收费(对于没有注册工资支付的顾客,由送餐员收取现金后记录)。
参考答案:<<include>>查看菜单查看今日特价在线订餐注册工资支付修改订餐信息删除订餐信息工资系统备餐生成付费请求请求送餐管理菜单打印送餐说明记录送餐信息记录收费注册登录3. 根据以下场景绘制用例图:某公司需开发一个反馈处理系统作为其CRM的一部分。
系统基本功能描述如下:(1) 客户可通过系统发布反馈信息;(2) 公司客户关系(CR)部门员工也可以在系统中记录反馈信息;(3) 业务部门的主管和员工均能看到本部门的反馈信息,但只有CR部门员工拥有修改与删除反馈的权限;(4) 对于部分需要调查以便验证其真实性并需要做相关处理的反馈信息,业务部门主管有权通过系统安排本部门员工调查及处理该反馈;(5) 反馈调查与处理完毕后,负责调查的员工可通过系统输入反馈的详细情况;(6) 公司高层可查看未决反馈统计报表和各业务部门的反馈统计报表;(7) 所有人员进入本系统需先登录。
软件设计与体系结构智慧树知到答案章节测试2023年云南大学
![软件设计与体系结构智慧树知到答案章节测试2023年云南大学](https://img.taocdn.com/s3/m/e6c5b65db94ae45c3b3567ec102de2bd9705de55.png)
第一章测试1.以下对软件架构师、软件工程师、系统分析师表述正确的是?()A:软件架构师的重点工作是架构与设计这两个关键环节上,因此,对设计、架构、代码撰写都有较高的要求。
但是,对需求分析、项目管理、运管管理、法律法规的要求相对较低。
B:软件工程师一般专注于模块级、功能代码级的开发工作,针对功能模块级的代码细节要求较高,但对系统级的架构设计要求较低。
对业务分析、项目管理、运营维护、法律规定则不做过多要求。
C:系统分析师的主要职责是在于需求分析、开发管理、运行维护、法律法规等方面。
对代码细节开发不做过多要求,但需要掌握一定的软件架构知识。
答案:ABC2.《软件工程》主要聚焦于有关软件需求分析,软件过程模型,软件项目管理、软件运营维护、软件迭代升级等软件生命周期的相关理论和方法学。
()A:错B:对答案:B3.《软件设计与体系结构》则聚焦于软件的设计原则和架构模式。
以撰写高质量程序代码为目标,通过四个层次的方法学理论,指导开发者在不同的条件下,撰写较为高质量的程序代码。
()A:错B:对答案:B第二章测试1.GRASP设计原则主要指导开发者进行:()A:架构设计B:系统设计C:职责设计D:类型设计答案:C2.信息专家原则的主要含义是?()A:一个类能否分配一个职责的基本条件是该类是否能够获得执行该职责的全部信息B:一个类能否分配一个职责的基本条件是该类是否拥有执行该职责的全部信息答案:B3.以下哪种情况中,创建者的关系强度最高?()A:A类组合B类(B是A的成员,B实例不能离开A实例单独存在)B:A类记录B类(B不是A的成员,但是A的某个集合成员的元素)C:A类聚合B类(B是A的成员,B实例可以单独存在)D:A类紧密的使用B类(B不是A的成员,但A的某些方法紧密的使用B)答案:A4.以下耦合关系中,哪种耦合强度最高?()A:A类引用静态的B类B:A类继承B类C:A类引用控制变量flagD:A类引用B类答案:D5.以下说法相对正确的是?()A:类和模块的内部应该尽量的提高内聚,外部应该降低耦合B:类和模块的设计应该尽量的降低耦合C:类和模块的设计应该尽量的提高内聚D:类和模块的应同时考虑高内聚和低耦合原则答案:AD6.控制器原则的主要含义是?()A:应该尽量将功能控制代码分配在一个单独的控制器类中,UI默认调用控制器类来执行功能B:应该尽量将功能控制代码分配在一个单独的控制器实现类中,UI默认调用抽象控制器类来执行功能C:在各类编程语言的类库中,常见的控制器类有handler, Action, Listener等。
软件设计及体系结构课后习题答案(秦航)
![软件设计及体系结构课后习题答案(秦航)](https://img.taocdn.com/s3/m/a28c60ffa58da0116c1749cc.png)
软件设计与体系结构答案目录:第一章 (4)1.什么是软件?软件的特点是什么?软件有那些分类?2.软件设计应该包括哪些要素?软件设计在软件工程中所处的位置和重要性如何?3.请用自己的话说明软件体系结构。
传统的建筑体系结构科学和软件体系结构有何相似之处?有何不同之处?4.软件设计和软件体系结构有何关系?软件体系结构的出现有何必然性和重要意义?5.在软件设计过程中,人们需要重点考虑软件系统结构的哪些方面?第二章 (5)1.什么是软件模型?2.软件模型对软件体系结构的作用是什么?3.常用的软件模型有哪些?4.什么是软件模型的非形式化描述和形式化描述?5.软件体系结构设计方法中的水平型设计和垂直型设计各有什么特点?6.什么是ADL?7.典型的ADL有哪几种?第三章 (6)1.在整个开发过程中,UML主要起到什么作用?2.如何利用模式解决在面向对象系统分析与设计中遇到的问题?3.UML中都包含哪些图?简述这些图的作用。
14.简述用例图之间的关系。
5.简述协作图和序列图的区别。
6.神舟六号描述画出能正确表示它们之间关系的UML图。
7.某个网上银行的用户登录过程用一个时序图描述这个过程。
第四章 (9)1.简述抽象与逐步求精的含义。
2.简述模块化与信息隐藏的关系。
3.为什么软件要追求高内聚、低耦合?4.软件设计过程中包含哪些活动?5.试总结本章列举的软件体系结构设计方法的特点。
第五章 (10)1.选择一个熟悉的大型软件系统,分析其体系结构中用到的风格,以及表现出的特点(为什么要采用这种风格?采用这种风格带来哪些优势?具有哪些不足?)2.选择4种风格,设计简单的体系结构,并实现简单的原型系统3.不同的体系结构风格具有各自的特点、优劣和用途,试对管道-过滤器风格,分层系统、C2风格和基于消息总线(基于事件的隐式调用)的风格进行分析比较。
第六章 (13)1.简述面向对象方法支持的3种基本活动.2.简述面向对象的系统开发生命周期。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一章作业
6、简要叙述软件设计在软件工程中所处的位置和重要性。
答:
所处的位置:软件需求分析→需求规格说明→软件设计→设计文档→软件编码。
重要性:
(1)是对软件需求的直接体现;
(2)为软件实现提供直接依据;
(3)将综合考虑软件系统的各种约束条件并给出相应方案;
(4)软件设计的质量将决定最终软件系统的质量;
(5)及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
7、软件设计应该包含哪些要素?
答:
软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义?
答:
软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本组成部分。
软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享与复用,基于体系结构的软件开发提供了有力的支持。
第二章作业
1、简述UML的特点和用途。
答:
UML的发起者在最初制定UML时,充分考虑了各种需求、方法和语言的特点使UML
在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:
(1)为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的需求
模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定
应用领域提出具体的概念、符号表示和约束。
(3)独立于实现语言和方法学,但支持所有的方法学,覆盖了面向对象分析和设计的相
关概念和方法学。
(4)独立于任何开发过程,但支持软件开发全过程。
(5)提供对建模语言进行理解的形式化基础,用元素型描述基本语义,OCL描述良定义规则,自然语言描述动态语义。
(6)增强面向对象工具之间的互操作性,便于不同系统间的集成。
UML的目标是以面向对
象方式描述任何类型的系统,具有广泛的应用领域。
UML最常用于建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程、处理复杂数据的信息系统、具有实时要求的工业系统或工业过程、甚至数字电路等。
2、在面向对象开发方法中,对象、类、继承、聚集、多态、消息等概念分别指什么?
答:
(1)对象。
对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。
属
性表示对象的性质,属性值规定了对象所有可能的状态。
对象的操作是指该对象可以展现的外部服务。
(2)类。
类是某些对象的共同特征(属性和操作)的表示。
对象是类的实例,类是对象
创建的模板。
(3)继承。
类之间的继承关系是实现现实世界中遗传关系的直接模拟,它表示类之间的内在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。
子类也可以具有自己独有的属性和操作。
(4)聚集。
除遗传关系外,现实世界中还普遍存在着部分整体关系。
这种关系在面向对象方法学中表示为类之间的聚集关系。
在聚集关系下,部分类的对象是整体类对象的一个
组成部分。
(5)多态。
多态指父类及其子类中,对外接口的定义形式相同,却可以对应多种接口的实现形态。
(6)消息。
消息传递是对象与其外部世界相互关联的唯一途径。
4、UML结构建模和行为建模有何区别?
答:
结构建模被称为静态建模,主要用来描述系统中包含的元素以及元素之间的关系;
行为模型被称为动态模型,主要用来刻画系统中的动态行为、过程和步骤。
5、简要叙述类图在UML中的意义和重要性,以及类图和对象图有何联系与区别。
答:
(1)意义:类图用来刻画软件中类等元素的静态结构和关系。
(2)重要性:面向对象软件的最终实现体现为多个类的实现和组织,因此类图与面向对象软件实现之间的映射最为直观,对软件结构的设计至关重要,是软件实现要遵循的主要规格说明。
(3)类图和对象图的联系:对象是类的实例,对象图也可以看做类图的实例,对象之间的连接是类之间的关联关系的实例。
对象图描述在特定时刻和特定环境下,类图中类的具体实例以及这些实例之间的具体连接关系,能帮助人们理解一个比较复杂的类图。
(4)类图和对象图的区别:对象的名字下面要加下划线,对象名称后可以注明所属的类。
在一个对象图中可以同时出现一个类的多个实例。
第三章作业
2、简述模块化与信息隐藏在软件设计中的意义。
答:
软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块,这些模块可以被组装起来满足整个问题的需求。
在软件设计中实现了功能划分把复杂的大的功能划分成简单的小的模块结构,尽量降低每个模块的成本,减少接口,确保软件总成本最低。
模块化使开活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必
看到模块的内部,只需要知道其接口即可,使开发者的复杂性降低,不仅支持模块的并行开发,而且还可以减少测试和后期维护的工作量。
3、内聚度、耦合度分别指什么?为什么软件设计要追求高内聚、低耦合?
答:
内聚度是一个模块内部各成分之间关联程度的度量;耦合度是对模块间关联程度的度量。
软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。
划分摸块的一个准则就是高内聚低耦合。
模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。
模块间联系越多,其耦合性越强,同时表明其独立性越差。
降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,同时每一个类完成特定的独立的功能,实现高内聚,保证系统设计顺利进行。
内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。
5、为什么软件设计过程常常是一个不断迭代的过程?
答:
设计者一般不可能一次就能完成一个完整的设计,软件设计可能是一个反复的过程,在设计过程中需要不断添加设计元素和设计细节,并对先前的设计方案进行修正。
所以,软件设计一般都可以被看做是迭代的过程。
8、是总结本章列举的软件体系结构设计方法各有何特点。
结合自己的开发经验,讨论如何选择合适的软件体系结构设计方法。
答:
特点如下:
(1)软件体系结构的多视图建模
通过逻辑视图,开发视图、进程视图、物理视图、进程来描述的软件体系结构。
(2)基于评估与转换的软件体系结构设计
通过迭代的开发方式,直至满足客户的需求。
(3)模式驱动的软件体系结构设计
通过总结、记录、复用来实现的体系结构设计
(4)领域特定的软件体系结构设计
借鉴领域中已经成熟的软件体系结构来实现解决方案在某个领域内的复用。
(5)软件产品线方法
软件复用发展的一个更高阶段,它并不仅仅局限于以前人们在软件复用中考虑的对函数、模块、类、体系结构甚至子系统的复用。
(6)其于目标推理的软件体系结构设计方法
功能需求和非功能需求皆被表达为要达到的目标。
(7)其于属性的软件体系结构设计方法
基于目标图推理的体系结构设计方法、基于属性的体系结构设计方法。
开发心得:在这些具有系统化过程的软件开发方法中,体系结构设计师一个不可避免
的过程,它们也都有自己的一些设计方式。
但这并不排斥前面讲到的软件体系结构设计
方法,反之,如果能把这些体系结构设计方法与开发方法学结合起来,将能起到更好的
效果。