《国家开放大学软件设计与体系结构期末考试复习资料汇编.docx》由会员分享,可在线阅读,更多相关《国家开放大学软件设计与体系结构期末考试复习资料汇编.docx(22页珍藏版)》请在三一办公上搜索。
1、软件设计与体系结构复习指导超越高度温馨提醒:可以使用WMd查找功能快速查找对应题目和答案。查找快捷键:Ctrl+F一、考核说明通过考核使学生在软件工程思想的基础上,,对现有软件体系结构有比较深入的理解,,能够::软件设计方法解决实际软件工程问题,并能利用所学到的软件系统结构知识高效地设计,为本课程考核采用形成性考核与终结性考核相结合的方式。形成性考核占课程综合成绩的30%,终结性考核占课程综合成绩的70%。课程考核成绩统一采用百分制,即形成性考核、终结性考核、课程综合成绩均采用百分制。课程综合成绩达到60分及以上(及格),可获得本课程相应学分。考核方式相关信息以国家开放大学当学期发布的考试安排
2、文件为准。二、考核方式与要求(一)形成性考核1 .考核目的加强对学生平时自主学习过程的指导和检测,引导学生按照考核要求和学习计划完成学习任务,达到掌握知识、提高能力的目标,提高学生的综合素质。2 .考核手段习题。其相关内容发布在网络课程上,要求学生独立完成,成绩由所在班级的任课教师给定。3 .形考任务本课程包含4个形考任务(习题),学生需要全部完成,详情请参照下表。形成性考核任务列表序次所属章教学内容形考任务权重1第1章软件工程与软件设计形成性考核25%第2章统一建模语言UML2第3章软件设计基础形成性考核25%第4章面向对象的软件设计方法3第5章面向数据流的软件设计方法形成性考核25%第6章
3、用户界面设计4第7章软件体系结构风格与设计模式形成性考核四25%(二)终结性考核1 .考核目的终结性考核是在形成性考核的基础上,对学生学习情况和学习效果进行的一次全面检测。2 .命题原则第一,本课程的考试命题严格控制在教学大纲规定的教学内容和考核要求的范围之内。第二,按掌握、理解、了解三个层次命题。第三,每份试卷所考的内容,覆盖本课程教材所学内容的70%以上章节。第四,试题难度适中。一般来讲,可分为容易、适中、较难三个程度,所占比例大致为:容易占40%,适中占40胎较难占20%。3 .考核手段纸笔考试4 .考核方式闭卷5 .考核时限90分钟三、课程考核的内容和要求第1章软件工程与软件设计【考核
4、内容】1 .软件工程简介(1) 软件概述(2) 软件危机(3) 软件工程概述(4) 软件生命周期2 .软件工程方法学(1) 结构化方法(2) 面向对象方法3 .软件设计(1) 软件设计的重要性(2) 软件设计的特征(3) 软件设计的要素【考核要求】掌握:软件工程相关概念;理解:结构化和面向对象软件工程方法学,软件设计的概念和要素。第2章【考核内容】1 .定义2 .3 .软件体系结构的发展历程4 .软件体系结构内容(1) 核心模型(2) 描述方法(3) 描述语言(ADL)5 .设计原贝(J6 .软件体系结构设计(1) 软件体系结构设计方法概述(2) 软件体系结构设计的步骤7 .软件体系结构风格【
5、考核要求】掌握:定义、意义和发展历程;理解:软件体系结构内容,包括核心模型、描述方法和描述语言,以及软件体系结构设计方法;了解:设计原则和软件体系结构风格。第3章【考核内容】1 .设计基本概念(1) 抽象和逐步求精(2) 模块化与信息隐藏(3) 内聚与耦合2 .设计过程(1) 软件设计一般过程(2) 软件设计主要活动3 .软件设计质量4 .用户界面设计(1) 界面设计基本原则(2) 用户界面分析与设计过程(3) 用户界面原型设计(4) 界面设计评估【考核要求】掌握:软件设计基本概念;理解:设计一般过程和主要活动,软件设计质量,以及用户界面设计原则和方法。第4章UML【考核内容】1. UML语言
6、概述(1) UML发展历程(2) IJML的特点和用途(3) UML2.O建模机制2. 面向对象开发方法(1) 面向对象基本概念(2) 面向对象方法的优势3. UML2.O结构建模(1) 类图(2) 对象图(3) 包图(4) 构件图(5) 组合结构图(6) 部署图4. UML2.O行为建模(1) 用例图(2) 活动图(3) 顺序图(4) 通信图(5) 交互概览图(6) 定时图(7) 时态图【考核要求】掌握:UML2.0的建模机制、UML2.O结构建模和行为建模方法;理解:UML发展历程,UML的特点和用途以及面向对象开发方法。第5章口口口口口口【考核内容】1 .面向对象的软件设计方法(1) 面
7、向对象软件的设计方法概述(2) 基于UML的分析与设计过程(3) 用例分析与设计(4) 概念模型与顶层架构设计(5) 数据模型设计(6) 类设计(7) 部署模型设计(1) 面向数据流的设计方法概述(2) 数据流图和数据字典(3) 实体关系图(4) 面向数据流的分析过程(5) 面向数据流的设计过程(6) 启发式设计策略【考核要求】掌握:面向对象的软件设计方法;理解:面向数据流的软件设计方法。第6章【考核内容】1 .模式思维方法(1) 模式的概念(2) 模式的重要性(3) 软件设计模式分类(4) 模式描述模版(5) 模式思维的步骤2 .设计模式概述(1) 创建型模式(2) 结构型模式(3) 行为型
8、模式【考核要求】掌握:模式的概念,模式思维的步骤和方法;理解:创建型模式和结构型模式;了解:行为型模式。第7章【考核内容】1 .遗留系统2 .软件的进化策略(1) 进化策略分类(2) 进化策略选择3 .软件再工程(1) 业务过程重构(2) 软件再工程的过程模型(3) 软件再工程中的经济因素4 .软件体系结构的进化(1) 软件体系结构的进化过程(2) 软件体系结构的恢复(3) 软件体系结构的改善5 .代码重构和数据重构6.口口口口口发展与趋势【考核要求】掌握:软件的进化策略分类和选择;理解:软件再工程思想和软件体系结构的进化过程;了解:代码重构、数据重构的概念和应用场景,以及口口口口I发展与趋势
9、。四、模拟题(一)单项选择题1 .关于软件体系结构的描述,下面不正确的是(D)A软件体系结构是一种对复杂系统的抽象表示B软件体系结构是软件系统的结构,包括软件元素、软件元素外部可见的属性以及这些软件元素之间的关系。C软件体系结构是软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则。D软件体系结构在软件开发中为不同的人员提供了不同的交流语言,实现框架和构件的共享与复用。2 .关于软件工程三要素的说法,下面正确的是(D)组成A过程支撑方法和工具,而方法和工具促进过程学的研究。B工具支撑过程和方法,而方法和过程促进工具学的研究。C方法有效支持过程的改进,但与工具无
10、关。D方法支撑过程和工具,而过程和工具促进方法学的研究。3 .对软件工程目标中可修改性的描述是正确的(C)A可靠性是指允许对系统进行修改,而不增加原系统的复杂性,它支持软件的调试与维护,但肚量起来比较困难,B可靠性是指软件系统能最有效地利用计算机的时间,资源和空间资源,一般将系统的时空开销作为衡量软件质量的一项重要技术指标。C可靠性是指软件在给定时间和还和环境下不发生故障的概率。D可靠性是指系统具有清晰的结构,能直接反映问题的诉求。4 .对软件工程目标中可维护性的描述是正确的(A)A可维护性是指软件产品交付用户使用后能够方便地对它进行修改,以改正潜在的错误以及改进性能和其他属性,使软件产品适应
11、环境的变化。B可维护性是指软件在不同的系统约束条件下,使用户需求得到满足的难易程度.C可维护性是指软件从一个计算机系统或环境移植到另一个计算机系统或环境的难易程度,D可维护性指软件根据需求对软件设计程序进行正向追踪,或根据程序软件设计对软件需求进行逆向追踪的能力。5 .关于瀑布模型论述错误的是(D)A根据软件生存周期各个阶段的任务,从可行性研究开始逐步进行阶段性变换,直至通过测试并得到用户确认的软件产品为止B上一阶段变换结果是下一阶段变换的输入,相邻两个阶段具有因果关系、紧密相连;C一个阶段工作的失误将蔓延到以后的各个阶段,为保证软件开发的正确性,每个阶段任务完成后,都必须对他的阶段性产品进行
12、评审,确认之后再转入下一阶段的工作。D根据用户提出的软件定义,快速的开发一个原型,向用户展示待开发软件系统全部或部分功能性,在征求用户对原型软件的意见过程中,进一步修改、完善、确认软件系统需求,并达到一致的理解。6 .关于软件生存周期的定义,下列论述正确的是(B)A软件生存周期主要包括软件定义和软件开发2个部分。B软件产品从形成概念开始,经过开发使用和维护直到退役的全过程,称为软件生存周期。C软件生存周期主要对软件开发中的活动进行规具体规划,因为软件开发前和投入使用后,所面临的活动都非常更杂。D软件生存周期都是按照线性顺序的执行的,不存在迭代、反馈、周期性重复等情况。7 .在UML2.O建模机
13、制中,下面(B)属于结构建模.A活动图B类图C顺序图D通信图8 .在UML2.O建模机制中,下面(B)属于行为建模.A类图B用例图C包图D对象图9 .在UML2.O建模机制中,下面(C)属于行为建模又可以归属为交互图A活动图B用例图C顺序图D状态图10 .在UML2.0类图中,关于“关联关系”描述错误的是(B)A关联关系是可以具有方向性B当关联是双向的,必须要用“无相连线”表示C在关联关系上可以写明关联关系,每个类在关联中的角色以及两个类的实例在实际关联中的数量对应关系;D用星号“*”表示多个,用n表示n个实例,n.m表示数量的范围。11 .在UML2.0类图中,下面哪个符号表示泛化(继承)关
14、系(B)12 .在UML2.0活动图中,关于“关联关系”描述错误的是(B)A关联关系是可以具有方向性B当关联是双向的,必须要用“无相连线”表示C在关联关系上可以写明关联关系,每个类在关联中的角色以及两个类的实例在实际关联中的数量对应关系;D用星号“*”表示多个,用n表示n个实例,n.m表示数量的范围。13 .关于内聚与耦合,描述错误的是(C)A内聚是对一个模块内部各成分之间关联程度的度量。B耦合是对模块之间依赖程度的度量。C软件的模块化设计应追求高耦合,低内聚。D软件的模块化设计应追求高内聚,低耦合。14 .在体系结构“4+1”多视图建模中,如下图所示,XI,X2,X3,X4位置上,应依次填入
15、(最终用户功能特性开发人员软件管理A开发视图、逻辑视图、进程视图、物理视图B开发视图、逻辑视图、物理视图、进程视图C逻辑视图、开发视图、进程视图、物理视图D逻辑视图、开发视图、物理视图、进程视图15 .软件体系结构设计的一般步骤是(D)A设计技术支撑方案T搜索并选取可用设计资产今开发软件顶层架构1确定设计元素今开发软件部署模型3设计并发机制B开发软件顶层架构今确定设计元素-设计技术支撑方案T设计并发机制3搜索并选取可用设计资产3开发软件部署模型C搜索并选取可用设计资产今开发软件顶层架构分设计技术支撑方案1确定设计元素今开发软件部署模型3设计并发机制D开发软件顶层架构与搜索并选取可用设计资产-设
16、计技术支撑方案今确定设计元素今开发软件部署模型分设计并发机制16 .在概念模型中,边界类主要负责目标软件系统与参与者之间的交互,他的职责不包括(C)A界面控制B外部接口C存放持久信息项D环境隔离17 .数据流图就是用来刻画数据流和转换的信息系统建模技术,它用简单的图形记号分别表示数据流、转换、数据源以及外部实体,下面(A)是外部实体的图形记号。AOBOCD18 .数据流图就是用来刻画数据流和转换的信息系统建模技术,它用简单的图形记号分别表示数据流、转换、数据源以及外部实体,下面(B)是转换的图形记号。AOBOCD19 .数据流图就是用来刻画数据流和转换的信息系统建模技术,它用简单的图形记号分别
17、表示数据流、转换、数据源以及外部实体,下面(C)是数据流的图形记号。20 .数据流图就是用来刻画数据流和转换的信息系统建模技术,它用简单的图形记号分别表示数据流、转换、数据源以及外部实体,下面(D)是数据源的图形记号。21 .数据对象由其属性描述,其中(A)对数据对象的实例命名,其中必含有一个或一组关键属性,以便唯一地标识数据对象的实例。A命名性属性B描述性属性C引用性属性D真实性属性22 .数据对象由其属性描述,其中(B)对数据对象实例的性质进行描述。A命名性属性B描述性属性C引用性属性D真实性属性23 .数据对象由其属性描述,其中(C)将自身与其他数据对象的实例关联起来。A命名性属性B描述
18、性属性C引用性属性D真实性属性24 .在用户界面设计过程,经常三个核心活动:A用户分析B系统原型构建C界面评估D交互设计25 .在设计模式,(A)的核心思想是,在父类中,将创建对象的操作包装为一个虚函数,在描述公共行为的过程中调用该函数。在子类中重定义该虚函数来定制创建的对象,从而间接定制公共行为。A工厂方法B单件C组合D代理26 .在设计模式,(B)的核心思想是,通过将一个类的构造函数设置为protected或private可有效阻止从外部直接创建该类的实例。同时设置一个静态成员函数,以负责创建唯一的实例,并向外提供访问接口。在SmantaIk等语言中,还需要重定义new操作,阻止从外部创建
19、实例,在C+语言中则不需要。A工厂方法B单件C组合D代理27 .在设计模式,(C)的核心思想是,为基本对象和组合对象提供一个公共的抽象父类,以表示所有对象,并建立起从该抽象父类到组合对象类的聚集关联,从而间接建立起“递归组合”特性。A工厂方法B单件C组合D代理28 .在设计模式,(D)的核心思想是,构造一个具有相同接口的代理对象,然后将操作请求转发给真实对象,其目的是向客户隐藏“转发过程”的细节(如远程网络交互、智能决策、选择性转发等),提供对真实对象的透明访问。A工厂方法B单件C组合D代理29 .在设计模式,(B)的核心思想是,通过将与遍历有关的部分从聚合对象的描述中分离出来,单独成类,能够
20、将遍历的状态信息用一个独立对象记录,从而可有效处理多种遍历和并发遍历。A工厂方法B迭代器C组合D代理30 .在设计模式,(C)的核心思想是,对象是对数据和函数的封装,当一个类包含了太多的函数(或称操作)时,倾向于将其拆分为多个相互协作的类,每个协作类描述一部分行为,包含原来的一部分数据和函数,但这种拆分有一个副作用,因为各协作对象很可能会共享部分数据,所以需要维护相关对象在数据上的一致性。通过使用Observer模式,能够为相关对象制定一个交互协议,专门用作数据的一致性维护。A工厂方法B迭代器C观察者D代理(二)多项选择题1 .在软件开发过程中必须遵循的软件工程原则包括(ABCD)A抽象B信息
21、隐藏C模块化D一致性2 .关于计算机软件,下面描述正确的(BC)A计算机软件由两部分组成,一是机器可执行的程序,二是程序所使用的数据。B计算机软件由两部分组成,一是机器可执行的程序及有关数据,二是机器不可执行的与软件开发运行维护使用培训有关的文档。C计算机软件是与计算机系统操作有关的程序、规程、规则及任何与之有关的文档及数据。D计算机软件等于程序数据和文档,计算机软件就是程序。3 .作为一个完整的软件设计方案,应该包含的组成要素主要有(ABCD)A目标描述B设计约束C产品描述D设计原理4 .螺旋模型由(ABCD)组成A需求定义B风险分析C工程实现D评审5 .UML2.0规范由(ABCD)组成。
22、A底层结构B上层结构C对象约束语言D图形交换6 .面向对象方法的优势包括(BCD)A用户界面友好B简化软件开发过程C支持软件复用D改善软件结构7 .在考虑模块化时,采用以下(ABCD)标准可以用来评价所采用设计方法的效果,并能最终体现系统中的模块划分的有效性及系统能力A可分解性B可组装性C可理解性D可连续性8 .软件设计的主要活动中软件设计计划活动的主要步骤包括(ABCD)A明确设计的目标和验收准则B明确目标软件系统应遵循的技术标准或规范C重新审视项目风险管理计划,并研究在设计过程中应实施哪些行为以降低或消除风险D制定本次设计过程的工作计划9 .体系结构设计时,需要考虑(ABCD)A适用性B结
23、构稳定性C可扩展性D可更用性10 .为建立以UML类图表示的领域概念,模型必须标识关键概念,关键概念的来源主要包括(ABC)A业务需求描述、用例说明,B业务领域中的相关规范、标准、术语定义C反映业务领域知识的既往经验。D业务领域中具体实现技术手段11 .数据模型设计中,持久数据模型设计主要包括以下几个步骤(ABCD)A确定设计模型中需要持久保存的类的对象及其属性,其中实体类是主要关注对象。B确定持久存储的数据之间的组织方式。C确定数据模型中的操作行为,例如数据完整性验证、数据读取、存储与更新、数据求和、求数据平均值。D进一步优化持久数据操作的性能,例如使用数据索引、存储过程、触发器等方式。12
24、 .在进行部署模型设计时,一般需要考虑(ABC)A最终开发完成的软件包括哪些制品形式?B软件运行环境存在哪些类型的物理节点?C不同的节点之间的连接和通信形式是什么?D物理节点应采用本地部署,还是考虑采用云计算环境上进行部署?13 .通常,数据字典中的每一条数据条目包含(ABCD)A在数据流图中标识数据流、数据源或外部实体的名称与别名。B数据类型C所有以它作为输入流或输出流的转换列表。D如何使用该数据条目的简要说明。14 .为确保模型的一致性并消除数据冗余,分析人员要掌握(ABC)A数据对象的任何实例对每个属性必须有且仅有一个属性值,B属性是原子数据项,不能包含内部数据结构。C如果数据对象的关键
25、属性多于一个,那么其他的非关键属性必须表示整个数据对象而不是部分关键属性的特征。D所有的非关键属性既可以表示整个对象,也可以表示部分属性的特征。15.用户界面设计过程核心活动包括(ABD)A用户分析B系统原型构建C交互设计D界面评估()简答题L请阐述软件开发过程中抽象原则和信息隐藏原则。(1)抽象是指抽取事物最基本的特征和行为,忽略非基本的细节,采用分层次抽象的办法,可以控制软件开发过程的复杂性,有利于软件的可理解性和开发过程的管理。(5分)(2)信息隐藏是将模块中的软件设计决策封装起来的技术,系统中的模块应设计成黑箱,模块接口应尽量简洁,模块外部只能使用模块接口说明中给出的信息,如操作、数据
26、类型等,由于实现了细节隐藏,软件开发人员便能够将注意力集中于更高层次的抽象上。(5分)2.请阐述软件开发过程中模块化设计原则的要点。(1)模块是程序中逻辑上相对独立的成分,它是一个独立的编程单位,应有良好的接口定义,模块化有助于信息隐藏和抽象,有助于表示复杂软件系统。(4分)(2)模块的大小要适中,模块过大会导致模块内部第杂的增加,不利于模块的调试和重用,也不利于对模块的理解和修改;(3分)(3)模块太小会导致整个系统的表示过于复杂,不利于控制匏杂性。(3分)3、简要描述一下基于UML的分析与设计过程。答:(1)用例分析与设计(2分)(2)概念模型与顶层架构设计(2分)(3)用户界面设计(2分
27、)(4)数据模型设计(1分)(5)设计精化(1分)(6)类设计(1分)(7)部署模型设计(1分)4、在创建用户需求的数据流模型的过程中,简要描述分析人员应遵循的原则。(1)首先建立顶级数据流图,其中只含有一个代表目标软件系统整体处理功能的转换。(2分)(2)对用户需求的文字描述进行语法分析,其中的名词和名词短语构成潜在的外部实体、数据源或数据流、动词构成潜在的处理功能。(2分)(3)采用通常的功能分解方法,按照“强内聚,松耦合”原则,逐个对处理功能进行精化,与此同时逐步完成对数据流的精化,并针对被精化的处理功能生成下一级数据流图。(2分)(4)在精化过程中,必须维持各级数据流图的平衡。(2分)
28、(5)精化过程应适可而止,避免涉及软件设计细节。(2分)(四)应用题1 .背景:最近上演了许多公司的合并大戏,比如滴滴和快的等的兼并战争。从媒体的报道来看,这些公司的创始团队肯定打了个难舍难分,然后经过无比痛苦纠结的考虑,最后做出合并的决定,划定各自的权益。如下,我们可以简单的理解为,某一方是业务员,某一方是客户,业务员提出要跟客户合并,然后开始商谈合并事宜。场景:D公司业务员打电话给客户,确定一个约定2)如果约定的地点是在公司内部,那么行政部的同事需要为会面安排一间会议室3)如果约定的地点时在公司外部,那么业务员需要用笔记本准备一份陈述报告4)业务员与客户在约定的时间和地点见面5)业务员准备好会议用纸6)如果会议产生一个陈述,业务员需要记录下来备案。要求:针对上述场景,给出活动图。答:评分要求(1) 有开始图形标记,给2分(2) 有结束图形标记,给2分(3) 2个判断动作,共计5分。有1个判断动作分支,给3分,有2个判断动作,得5分钟(4) 1个动作1分,最多6分,准备会议空或者确定会议时间地点、是否电司内部?/外部司内部x准备篦记本X/开会商讨具体内容是否形成决议_蝴决议a准备纸张,签署备忘汉有达成业务员打电话