软件体系结构期末考试试题
- 格式:docx
- 大小:334.31 KB
- 文档页数:8
软件架构设计期末考试
一、题目(论述题):
软件架构设计与软件项目开发
二、题目要求:
(1)简要说明软件设计风格、软件应用框架和软件设计模式的特征和区别?
(2)介绍自己曾经开发过的软件项目;
(3)描述该项目所应用的软件架构、框架以及设计模式;
(4)结合自己在项目中的体会,谈一谈软件架构对软件开发过程的作用及影响。
三、内容要求
作业格式要求:
1、给出标题,自拟
2、报告内容组织结构清晰,语句流畅,无错别字。
3、图、表描述恰当、与内容契合、清晰。
图、表序号标注准确。
4、A4纸,宋体小4号字,标准页边距,行间距固定值18磅,页码右下。
交打印稿。
5、报告不多于20页,可正反面打印。
四、评分细则
1、题目整体结构、语言表达、整体格式(20分)
2、说明软件设计风格、软件应用框架和软件设计模式的特征和区别(20分)
3、介绍自己曾经开发过的软件项目(10分)
4、描述该项目所应用的软件架构、框架以及设计模式(20分)
5、结合自己在项目中的体会,谈一谈软件架构对软件开发过程的作用及影响。
(30分)
五、课程总评成绩
期末成绩*60%+研讨*30%+出勤*10%。
1.基于构件的软件开发的优势是什么?基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用2.尝试用自己的语言介绍Kruchten的“4+1”模型。
Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。
每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。
3.在希赛公司的一个财务管理系统,财务部要客户提供…………4.不同的体系结构风格具有各自的特点、优劣和用途。
试对管道-过滤器风格、事件驱动风格、分层系统、C2风格和基于消息总线的风格进行分析比较。
P52-56(1)管道和过滤器特点:@使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;@允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;@支持软件重用。
只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;@系统维护和增强系统性能简单。
新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;@允许对一些如吞吐量、死锁等属性的分析;@支持并行执行。
每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行缺点:①通常导致进程成为批处理的结构。
②不适合处理交互的应用。
③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
(2)(3)分层系统体系结构有以下优点:第一,支持基于抽象程度递增的系统设计。
这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。
第二,支持功能增强。
因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。
第三,支持重用。
与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。
填空题:1.构件是指语义完整,语法对旳和有可重用价值旳单位软件是软件重用过程中可以明确便是旳系统;构造上它是予以描述,通讯接口和实现代码旳复合体.2.构件获取渠道(1)直接使用作适应性修改(2)通过遗留工程(3)市场上购置(4)开发新旳构件3.构件分类与组织:关键字分类法,刻面分类法,超文本组织措施4.基于数据旳组装技术:这种组装技术也规定库中构件以子程序形式出现5.软件体系构造建模种类:构造模型,框架模型,动态模型,过程模型,功能模型6.体系构造风格定义了一种系统家族即定义了一种词汇表和一组约束7.有两种不一样构件:中央数据构造阐明目前状态,仓库是一黑板系统8.C/S体系构造有三个重要构成部分:数据库服务器,客户应用程序,网络9.ADL旳基本元素:构件,连接件,体系构造配置10.软件体系构造描述措施:图像体现工具,模块内连接语言,基于软构件旳系统描述语言,软件体系构造描述语言11.Web服务:数据层,数据访问层,业务层,业务面,监听者12.简朴对象访问协议:SOAP信封,SOAP编码规则,SOAP RPC表达,SOAP绑定13.Web服务特点:使用原则规范协议;使用协议旳规范性;高度集成能力;完好旳封装;松散耦合选择题:1构件模型旳三个重要流派OMG,Sun旳EJB,Microsoft旳DCOM2.构件管理:构件描述,构件分类与组织,人员及权限管理3.构件重用:检索与提取构件,理解与评价构件,修改构件,构件组装4.软件体系构造旳发展史:无体系构造设计阶段,萌芽阶段,初期阶段,高级阶段5.分层系统长处:支持基于抽象程度递增旳系统设计;支持功能增强;支持重用6.黑板系统旳构成:知识源,黑板数据构造,控制7.面向对象系统长处:变化一种对象旳表达不影响其他对象;分解成某些交互旳代理程序集合8.W3C是万维网联盟9.Web服务作为一种新兴旳Web应用模式,是一种崭新旳分布式计算模型,是Web上数据和信息集成旳有效机制10.Web服务就像Web上旳构件编程,开发人员通过调用Web应用编程接口,将Web服务集成进他们旳应用程序就像调用当地服务同样11.Web服务开发生命周期:构件,布署,运行,管理12.Web服务栈:程序设计语言【程序构件(构成程序旳基本元素及其取值或值域范围);操作符(连接构件旳多种功能符号); 抽象规则(有关构件和操作符旳命名体现规则);限制规则(一组选择并决定详细使用何种抽规则来作用于有关旳基本构件及其操作符旳规则和原理);规范阐明(有关句法旳语义关联阐明); 】软件体系构造【系统构件(模块化级别旳系统构成成分实体,这些实体可以被施以抽象旳特性化处理,并以多种方式得到使用);连接件(对构成系统旳有关抽象实体进行多种连接旳连接机制); 组合模式(系统中旳构件和连接件进行连接组合旳特殊方式也就是软件体系构造风格); 限制规则(决定有关模式可以作为子系统进行大型软件系统构造和开发旳合法子系统旳有关构件); 规范阐明(有关系统组织构造方面旳语义关联阐明)】1.软件体系构造定义: 软件体系构造为软件系统提供了一种构造、行为和属性旳高级抽象, 由构成系统旳元素旳描述、这些元素旳互相作用、指导元素集成旳模式以及这些模式旳约束构成。
1.以下关于系统性能的叙述中,不正确的是(17)。
(17)A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递可定制格式的数据包,并且当有新的数据包到达时,接收系统会自动得到通知。
另外还要求支持数据重传,以确保传输的成功。
针对这些集成需求,应该采用(21)的集成方式。
(21)A. 远程过程调用 B. 共享数据库C. 文件传输 D. 消息传递3 在RUP中采用“4+1”视图模型来描述软件系统的体系结构。
在该模型中,最终用户侧重于(26),系统工程师侧重于(27)。
(26)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图(27)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图4.某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如下所示。
其中与Factory Method中的“Creator”角色相对应的类是(33);与“Product”角色相对应的类是(34)。
(33)A. BankB. AccountC. CheckingD. Savings(34)A. BankB. AccountC. Checking5.是一个独立可交付的功能单元,外界通过接口访问其提供的服务。
(35)A. 面向对象系统中的对象(Object)B. 模块化程序设计中的子程序(Subroutine)C. 基于构件开发中的构件(Component)D. 系统模型中的包(Package)6 软件的横向重用是指重用不同应用领域中的软件元素。
(31)是一种典型的、原始的横向重用机制。
(31)A. 对象 B. 构件 C. 标准函数库 D. 设计模式7.在基于构件的软件开发中,(36)描述系统设计蓝图以保证系统提供适当的功能;(37)用来了解系统的性能、吞吐率等非功能性属性。
1.以下关于系统性能的叙述中,不正确的是(17)。
(17)A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递可定制格式的数据包,并且当有新的数据包到达时,接收系统会自动得到通知。
另外还要求支持数据重传,以确保传输的成功。
针对这些集成需求,应该采用(21)的集成方式。
(21)A. 远程过程调用 B. 共享数据库C. 文件传输 D. 消息传递3 在RUP中采用“4+1”视图模型来描述软件系统的体系结构。
在该模型中,最终用户侧重于(26),系统工程师侧重于(27)。
(26)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图(27)A. 实现视图 B. 进程视图 C. 逻辑视图 D. 部署视图4.某银行系统采用Factory Method方法描述其不同账户之间的关系,设计出的类图如下所示。
其中与Factory Method中的“Creator”角色相对应的类是(33);与“Product”角色相对应的类是(34)。
(33)A. BankB. AccountC. CheckingD. Savings(34)A. BankB. AccountC. Checking5.是一个独立可交付的功能单元,外界通过接口访问其提供的服务。
(35)A. 面向对象系统中的对象(Object)B. 模块化程序设计中的子程序(Subroutine)C. 基于构件开发中的构件(Component)D. 系统模型中的包(Package)6 软件的横向重用是指重用不同应用领域中的软件元素。
(31)是一种典型的、原始的横向重用机制。
(31)A. 对象 B. 构件 C. 标准函数库 D. 设计模式7.在基于构件的软件开发中,(36)描述系统设计蓝图以保证系统提供适当的功能;(37)用来了解系统的性能、吞吐率等非功能性属性。
概述部分1、请分析软件危机的主要表现和原因。
表现:a)软件成本日益增加:开发、部署与应用成本高b)开发进度难以控制:不能按期完成c)软件质量差:错误率高,不能满足用户的需求,没有生命力d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误原因:1.用户需求不明确2.缺乏正确的理论指导3.软件规模越来越大4.软件复杂度越来越高2、请说明软件规模与复杂度对软件过程的影响及解决方法。
软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。
应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。
3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束)软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。
它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
4、请简述软件重用的含义和意义。
可重用元素包括哪些种类?软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
(含义)可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。
(种类)可重用的元素越大,我们就说重用的粒度(Granularity)越大。
软件重用是软件产业工业化、工程化的重要手段。
软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。
(意义)5、请简述常用的构件实现模型及其意义。
实现模型:1.CORBA2.EJB / DCOM / COM+意义:这些模型通常都定义了构件的实现方式、接口定义、访问方法等。
符合这些标准的任何构件都有很高的重用能力。
描述部分6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。
数据视图风格部分7、什么是软件体系结构的风格?它在软件开发过程中具有何种意义?软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。
精品文档服务器性常见的Web17)。
(17)A. 1.以下关于系统性能的叙述中,不正确的是(服务器的主要性能指标有最大WebB. 能评估方法有基准测试、压力测试和可靠性测试评价/对运行系统进行性能评估的主要目的是以更好的性能并发连接数、响应延迟和吞吐量C.D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈价格比更新系统需要实现在系统之间快速传递可定制格式的数2某公司欲对其内部的信息系统进行集成,据包,并且当有新的数据包到达时,接收系统会自动得到通知。
另外还要求支持数据重传,远程过)A. (21)的集成方式。
(21以确保传输的成功。
针对这些集成需求,应该采用消息传递 D. 程调用 B. 共享数据库C. 文件传输”视图模型来描述软件系统的体系结构。
在该模型中,最终用户侧中采用“4+13 在RUP逻C. B.进程视图 27)。
(26)A. 实现视图重于(26),系统工程师侧重于(部署D. C. 逻辑视图)A. 实现视图 B. 进程视图 D. 辑视图部署视图( 27 视图方法描述其不同账户之间的关系,设计出的类图如.某银行系统采用Factory Method4”Product;与“33”角色相对应的类是() Method下所示。
其中与Factory 中的“Creator)33。
((34)角色相对应的类是)(34 Checking D. SavingsB. A. Bank Account C.A. BankB. CheckingC. Account面向对A. 35 是一个独立可交付的功能单元,外界通过接口访问其提供的服务。
()5.基于构件开发C. Subroutine)B. (Object)模块化程序设计中的子程序(象系统中的对象 Package)Component中的构件()D. 系统模型中的包(是一种典型的、原始的31)(6 软件的横向重用是指重用不同应用领域中的软件元素。
设计模式标准函数库构件对象)(横向重用机制。
1.面向对象办法优势体当前(ABD )A.简化软件开发过程B.支持软件复用C.提高软件运营效率D.改进软件构造2.顾客界面设计中三条“黄金规则”是(ABC )A.使系统处在顾客控制之中B.减少顾客记忆承担C.保持界面一致性D.保证顾客易学性E.顾客界面分析和设计过程是迭代, 其中涉及活动是(ABCD )F.顾客、任务以及环境分析和建模G.界面设计H.界面实现I.界面确认3.界面确认需要注意三个方面(ABC )A.界面对的完毕了顾客任务, 适应顾客任务变化B.易学性和易用限度C.顾客接受限度D.顾客习惯4.顾客界面分析时普通采用信息获取方式涉及(ABCD )A.顾客会谈B.销售人员信息采集C.市场分析D.顾客支持人员信息收集5.(C )把完毕一种特定功能动作序列抽象为一种过程名和参数表A.数据抽象B.动作抽象C.过程抽象D.类型抽象6.(A)把一种数据对象定义抽象为一种数据类型名A.数据抽象B.动作抽象C.过程抽象D.类型抽象7.软件体系构造设计需要考虑如下(ABCD )A.合用性B.构造稳定性C.可扩展性D.可复用性8.模块设计时应当考虑(AB )A.模块功能独立B.模块信息隐藏C.模块接口简朴D.模块实现简朴9.一种完整软件设计重要活动涉及有(ABCD )A.体系构造设计B.界面设计C.模块/子系统设计、D.数据模型、过程/算法设计等E.模块化是指把一种复杂问题分割成若干个可管理小问题后, 更易于理解, 模块化正是以此为根据, 在划分模块过程中应当考虑到(ABC )F.模块可分解性、可组装型G.模块可理解性、持续性、H.模块保护1.尽量低分割模块, 使得问题难度降到最2.什么是软件工程?构成软件工程要素是什么?3.软件工程是将系统化、规范、可度量办法应用于软件开发、运营和维护过程, 即将工程化应用于软件开发和管理之中, 对所选办法研究。
软件工程要素由办法、工具和过程构成。
办法支撑过程和工具, 而过程和工具增进办法学研究。
2020-2021《软件体系结构》期末课程考试试卷A专业:考试日期:时间:总分:分闭卷一大题:判断题(共10小题,每小题2分,共20分)1. 构架就是系统的总体结构。
()2. 架构设计中对不同风险承担者提出的要求都要一视同仁,全部予以解决。
()3. 软件架构的风格、软件体系的框架和软件的设计模式,其实就是同一个概念。
()4.在C2风格的系统中每个构件和连接件都有一个顶部一个底部。
构件的顶部与某连接件的底部连接,构件的底部与某连接件的顶部连接,构件与构件之间也可以直接连接。
()5.可修改性战术的主要目的是减少由某个变更直接或者间接影响的模块的数量。
()6. 设计师对系统的质量属性应平等看待,在系统设计中全部予以解决。
()7.应将产生数据的模块和使用数据的模块分离开。
()8. 构架评审中对所有问题都要一视同仁。
()9.通过ATAM评审可以得到明确的量化指标。
()10.根据架构提供的结构图就可以对组件之间的行为进行判断。
()二大题:名词解释题(共2小题,每小题8分,共16分)1. 什么是软件架构2.什么软件架构风格?三大题:论述与应用题(共5小题,1—4小题,每题10分,第5小题24分,共64分)1. 功能,架构,质量属性之间的关系?2.可用性和可靠性有什么区别?3.为什么软件设计中要应用架构样式?4.在用户登录的过程中,需要到后台数据库进行身份验证,试以JSP页面验证技术的发展说明不同战术对质量属性的影响。
5.请根据所学的知识对你的暑期实训作业进行架构设计(应至少包括:➀项目背景、➁需求分析、➂系统架构设计、➃构架的表述、➄质量属性效用树、➅对系统构架的再分析等几个部分)。
院系:专业班级:姓名:学号:装订线2020-2021《软件体系结构》期末课程考试试卷A答案专业:考试日期:时间:总分:分闭卷一大题:判断题(共10小题,每小题2分,共20分)1. 构架就是系统的总体结构。
(错)2. 架构设计中对不同风险承担者提出的要求都要一视同仁,全部予以解决。
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 )原则的典型应用。