软件体系结构复习题
- 格式:doc
- 大小:72.50 KB
- 文档页数:8
一、单选题1.软件结构图的形态特征能反映程序重用率的是()a)A、深度 B、宽度C、扇入 D、扇出2.在大型数据处理系统的功能分析和设计中,数据库的概念设计对应于系统开发的()a)A、需求分析 B、概要设计C、详细设计 D、程序设计3.为了提高模块的独立性,模块内部最好是()a)A、逻辑内聚 B、时间内聚C、功能内聚 D、通信内聚4.需求分析最终结果是产生()a)A、项目开发计划 B、需求规格说明书C、设计说明书D、可行行分析报告5.软件是一种()a)A、程序 B、数据C、逻辑产品 D、物理产品6.信息隐蔽概念与()概念有直接的关系a)A、模块的独立性 B、模块类型的划分C、软件结构定义 D、软件生命周期7.不属于序言性注释的有()a)A、模块设计者B、修改日期C、程序的整体说明D、语句功能8.单元测试阶段主要涉及()的文档。
a)A、需求设计 B、编码和详细设计C、详细设计D、概要设计9.在软件测试中,白盒测试方法是通过分析程序的()来设计测试用例的方法。
()a)A、应用范围B、内部逻辑C、功能 D、输入数据10.需求分析是系统分析师经了解用户的需求,认真仔细的调研、分析,最终建立目标系统的逻辑模型并写出()a)A、模块说明书B、软件规格说明书C、项目开发计划 D、合同文档11.系统因错误而发生错误时,仍然能在一定程度上完成预期的功能,则把该软件称为()a)A、系统软件B、容错软件C、测试软件 D、操作系统12.产品管理包括版本管理和()a)A、质量管理 B、性能管理C、开发过程管理 D、配置管理13.ISO9001质量管理体系认证等同于能力成熟度模型中的第几级()a)A、CMM1 B、CMM2 C、CMM3 D、CMM4 E、CMM514.ISO9001质量管理体系认证只做到()a)A、历史记录可查询B、错误原因可查询15.为了克服软件危机,人们提出了用()的原理来设计软件,这就是软件工程诞生的基础。
软件工程习题课一.名词解释01.软件危机02.需求分析03.软件工程:04.黑盒测试法05.软件维护06.软件生存周期07.瀑布模型08.可行性研究09.数据流图10.数据字典11.软件体系结构12.冗余程序设计13.软件测试14.项目计划二.问答题1.计算机软件定义及特点?2.软件危机的表现?3.软件生存周期一般可分几个阶段,每个阶段的工作内容是什么?4.瀑布模型的特点是什么?5.可行性研究的内容?6.可行性研究应从那些方面进行研究,每一方面包含的内容是什么?7.需求获取的主要内容有哪几个方面?8. 需求获取的方法有哪些?9. 需求分析的目标是什么?10.需求分析做完以后得到的主要文档是什么?11. 需求分析存在的困难?12. 需求分析的原则?13. 需求分析的方法?14. 数据流图的特性?15. 数据流图基本符号及含义?16. 数据流图的用途?17. 数据流图画法(参考课堂实例)?18. 数据字典的作用?19. 数据字典中”= + [ ] {}()”的含义?20.概念性数据模型的含义及特点,最常用的表示概念性数据模型的方法?21. ER模型的基本成分及描述元素是什么22概要设计任务?23. 系统设计的原则?24. 软件体系结构的常见形式及特点?25. 评价模块设计优劣的三个特征因素及其含义?26. 界面的风格的含义?27. 系统结构图是SD(结构化设计)方法在概要设计中使用的主要表达工具,SD方法约定系统结构模块的表示符号是什么,各个模块之间调用的方法有哪些?28. DFD图如何映射到功能模块图?29. 需求分析的目标是什么?30.需求分析做完以后得到的主要文档是什么?31. 详细设计的工具及使用方法?32. 详细设计的原则?33. Jackson程序设计方法的特点?34. Jackson图表达基本结构和改进结构的用法?35. Jackson伪代码的含义与用法?36. 设计,编码和程序语言对程序的质量的影响?37. 程序设计语言分类及特点?38. 编码风格主要包含哪些内容?39. 结构化程序设计的目的是什么?40. 软件测试的基本方法?41. 软件测试的步骤?42. 软件维护的分类及含义?43维护的费用和代价计算方法?44. 项目计划的含义?45软件质量的影响因素?三.分析题分析一家公司的营销系统。
软件工程复习题(总19页) --本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--软件工程期末考试复习题时间:2019年7月5日考练习题—、填空题1.软件工程是一门综合性的交叉学科,它涉及计算机学科、工程学科、管理学科和数学学科。
2.软件工程研究的主要内容是方法、过程和工具三个货面。
3.由于软件生产的复杂性和高成本,使大型软件生产出现了很多问题,即出现软件危机,软件工程正是为了克服它而提出的一种概念及相关方法和技术。
V3中,软件工程知识体系分为软件工程教育需求和软件工程实践两大类。
5.增量式模型假设需求可以分段,成为一系列增量产品,每一增量可以分别开发。
6. 喷泉模型比较适用于面向对象的开发方法。
7.软件工程是用工程科学的知识和技术原理来定义、开发和维护软件的一门学科。
二、判断题V3分两大类,共有15个知识域。
(✓)2.软件工程的提出起源于软件危机,其目的是最终解决软件的生产工程化。
(✓)3.软件工程学一般包含软件开发技术和软件工程管理两方面的内容,软件开发方法学和软件工程环境属于软件开发技术的内容,软件工程经济学属于软件工程管理。
(✓)4. 软件开发中的最大的问题不是管理问题,而是技术问题。
(×)5. XP (eXtreme Programming,极限编程)是由Kent Beck提出的一套针对业务需求和软件开发实践的规则,包括13个核心实践。
(✓)三、选择题1.下列所述不是敏捷生存期模型的是(C)。
A. ScrumB. XPC. V 模型 UP2.软件工程的出现主要是由于(C)。
A.程序设计方法学的影响B.其他工程学科的影响C.软件危机的出现D.计算机的发展3. 以下(C)不是软件危机的表现形式。
A.开发的软件不满足用户的需要B.开发的软件可维护性差C.开发的软件价格便宜D.开发的软件可靠性差4.以下不是SWEBOK V3的软件工程实践中的知识域的是(B)。
(一)一、选择题1、软件开发过程中,最困难的一个环节是()A、程序语言的学习B、详细设计C、需求分析D、编码设2、若将活动状态比作方法,那么动作状态即()A、方法名B、方法返回值C、方法体中的每一条语句D、方法的可见性3、UML提供了一系列的图支持面向对象的分析与设计,其中()给出系统的静态设计视图;()对系统的行为进行组织和建模是非常重要的;()和()都是描述系统动态视图的交互图,其中()描述了以时间顺序组织的对象之间的交互活动,()强调收发消息的对象的组织结构。
A、状态图B、用例图C、顺序图D、部署图E、通信图F、类图G、时序图4、在一个订单输入子系统中,创建新订单和更新订单都需要检查用户帐号是否正确。
那么,用例“创建新订单”、“更新订单”与用例“检查用户帐号”之间是()关系A.包含(include)B.扩展(extend)C.分类(classification)D.聚集(aggregation)5、Innovation公司正在为Rose开发插入件,使得Rose可以把OOA、OOD模型以各种图形格式导出,如JPEG 格式、BMP格式、GIF格式等。
在导出时,会根据不同的算法来生成相应的图形文件,这些算法很复杂。
为了描述这些算法,如下图中,那个最适合()A. 活动图B. 状态图C. 类图D. 用例图二、简答题1、找出并说明下面类图中的错误。
Class C1{C2 c2 = new C2();public void f1(){ c2.f2(); }}Class C2{public void f2(){ f2(); }}4、请找出下面类图中存在的错误并画出正确的类图。
5、对于如下类图,请写出OCL约束:(1)、对于一个班级而言,只有注册人数大于25人方可开课并且由于教室大小的约束,人数又不能超过80人。
(2)每个学生必须经注册后方能听课6、请解释下面两个活动图(图1和图2)的执行流程,并讨论它们的区别。
.1.软件危机的概念,内容,原因及消除的途径;概念:软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。
内容:软件危机包含下述两方面的问题:如何开发软件,以满足对软件日益增长的需求;如何维护不断膨胀的已有软件。
具体地说,软件危机主要有以下一些典型表现:(1)对软件开发成本和进度的估计常常很不准确;(2)用户对“已完成的”软件系统不满意的现象经常发生;(3)软件产品的质量往往靠不住;(4)软件常常是不可维护的;(5)软件通常没有适当的文档资料;(6)软件成本在计算机系统总成本中所占的比例逐年上升;(7)软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势;原因:在软件开发和维护的过程中存在这么多严重问题:一方面与软件本身的特点有关;另一方面也和软件开发与维护的方法不正确有关。
(1)软件不同于硬件,它是计算机系统中的逻辑部件而不是物理部件。
(2)软件不同于一般程序,它的一个显著特点是规模庞大,而且程序复杂性将随着程序的规模的增加而呈指数上升。
(3)目前相当多的软件专业人员对软件开发和维护还有不少糊涂概念,在实践过程中或多或少地采用了错误的方法和技术,这可能是使软件问题发展成软件危机的主要原因。
(4)对用户要求没有完整准确的认识就匆忙着手编写程序是许多软件开发工程失败的主要原因之一。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软降工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3个要素:方法、工具和过程。
软件工程课程复习资料一、单项选择题:1.下面哪些UML图描述系统行为A.用例图B.类图C.对象图2.属于概要设计活动的是A.软件结构设计B.数据结构设计C.算法设计3.属行为型设计模式的是A.组合模式B.工厂方法模式C.观察者模式4.下列说法正确的是A.UML 是软件开发方法B.UML是系统描述语言C.UML是软件开发过程5.根据程序流程图划分的模块通常是A.信息内聚的模块B.过程内聚的模块C.逻辑内聚的模块6.如果某程序中的比较个数是m,则其 McCabe环形复杂度为A.m-1B.mC.m+17.按ISO9000-3的说明,下列属软件配置项的是A.软件开发方法B.软件开发组织管理制度C.软件开发合同8.软件测试的目的是A.证明软件无错B.发现软件中的所有错误C.尽可能发现软件系统中的错误9.软件重构关注的是A.软件体系结构B.模块细节C.软件性能10.软件项目开发计划的内容有A.数据分析B.风险分析C.功能分析11.在UML的类图中,描述整体与部分关系的是A.泛化关系B.聚合关系C.依赖关系12.软件过程能力成熟度模型CMM用以评价A.软件过程能力B.组织能力C.学习能力13.因计算机硬件和软件环境的变化而作出的修改软件的过程称为A.完善性维护B.改正性维护C.适应性维护14.对项目软件而言,软件功能需求信息主要由谁提供A.软件用户B.软件开发人员C.软件项目管理人员15.IDEF0 图反映不出A.系统做什么B.系统功能由谁做C.系统如何做16.原型模型是一种什么开发过程模型A.自顶向上B.由外至内C.增量式17.系统流程图描述A.物理系统B.逻辑系统C.软件体系结构18.需求规格说明书的内容不应该包括A.软件确认准则B.软件的性能描述C.算法过程的详细描述19.适合需求模糊或需求不确定系统开发的软件开发模型是A.瀑布模型B.RAD 模型C.原型模型20.UML 图中描述系统结构的是A.组件图B.顺序图C.状态图21.面向对象方法是一种什么软件开发方法A.层次化B.迭代增量式C.逐步求精22.不可以用来衡量软件可维护性的是A.可靠性B.可用性C.可行性23.系统分析员在需求分析最后负责编写A.用户手册B.概要设计说明书C.可行性研究报告24.为了提高软件的可靠性、可维护性等而对软件的修改称为A.改正性维护B.适应性维护C.预防性维护25.在结构化方法中,为使需求改变对软件影响较小,应该使软件结构A.与问题结构对应B.与问题结构独立C.与用户界面对应26.单元测试的计划应该在什么阶段完成A.需求分析B.概要设计C.详细设计27.下列属面向对象软件开发方法的是A.LCP 方法B.OMT 方法C.IDEF0 方法28.强调信息隐藏的软件工程设计方法是A.Jackson 方法B.Parnas 方法C.SA/SD 方法29.描述系统动态行为的模型是A.包图B.软件结构图C.状态图30.考虑输入条件组合的测试用例设计方法是A.等价分类法B.语句覆盖法C.因果图法31.下列能减少支援性维护活动的是A.利用软件包B.进行配置管理C.对用户进行适当培训32.只支持单重继承的程序设计语言是A.C++B.DelphiC.C33.IDEF0 图的顶层图是A.A0 图B.A-0 图C.A-1图34.在UML的用例图中,扩展关系是一种A.泛化关系B.依赖关系C.关联关系35.独立测试小组开始介入测试是在A.模块测试阶段B.集成测试阶段C.确认测试阶段36.在成本估计中容易低估局部问题的方法是A.基于经验模型的估计B.自底向上估计C.自顶向下估计37.在IDEF1X图中,如果子实体与父实体存在联系,则子实体将继承父实体的A.全部属性B.主关键字属性C.非主关键字属性38.结构化分析方法使用的工具是A.数据流图B.类图C.软件结构图39.白盒测试设计用例的方法是A.等价分类法B.基本路径覆盖法C.因果图法40.在衡量软件质量时,最重要的标准是A.可维护性好B.可用性好C.满足用户功能需求41.瀑布模型是一种A.演化模型B.顺序模型C.增量模型42.模块的独立程度可以由什么定性标准度量A.耦合度B.复杂度C.可靠性43.以下选项中,不属于对象的特点有A.继承B.多态C.封闭44.面向数据结构的设计方法有A.Parnas 方法B.Jackson 方法C.IDEF0 方法45.与UML配合最好的软件开发方法是A.RUP 方法B.Coad/Yourdon方法C.IDEF4方法二、填空题:1.统一建模语言UML提供了两种描述整体/部分关系的方法,分别是和 ;2.软件是计算机程序、及的完整集合,将其统称为软件配置,这些项称为软件配置项;通过正式复审的软件配置项称为 ,只有通过正式的变化控制过程才能改变它;3.纯收入是指在整个生存周期之内的与投资之差;4.瀑布模型是以驱动的软件生存周期模型,适合需求明确的软件系统开发;5.在单元测试期间,应该为被测模块编写相应的测试软件,一般地模块接收测试数据,并把数据传给被测模块,而模块则模拟实际模块完成少量数据处理;6.IDEF0方法用严格的自顶向下、逐层分解的方式进行系统的功能描述,其顶层图将图在建模范围内分解成个主要部分得到;7.如果一个模块完成多个逻辑上相近或相关的功能,并且每次调用只选择该模块中的一个功能执行,则称此模块为内聚的模块;8.程序静态分析的对象是 ;常生成各种引用表,如列出各模块中出现的全部标号;9.在数据流图中,每个加工至少有一个和一个 ;10.两个小组独立地测试同一个程序,第一组发现25个错误,第二组发现30个错误,在两个小组发现的错误中有15个是共同的,那么可以估计程序中的错误总数是 ;11.设E为程序图G中边的总数; N 为程序图中结点的总数,则该程序图的环形复杂度为 ;12.汽车有一个发动机;若用UML描述汽车和发动机之间的关系,则它们之间是_____关系;13.自顶向下结合的渐增式测试法,在组合模块时有两种组合策略,即策略和策略;14.在基本路径测试中,以详细设计为基础,导出控制流程图的拓扑结构: 程序图,在计算了程序图的之后,确定只包含独立路径的基本路径图,其中独立路径是包括一组的一条路径;从程序图来看,一条独立路径是至少包含有一条在其他独立路径中未有过的边的路径;15.在多层次的结构图中,其模块结构的层次数称为结构图的 ;结构图中同一层模块的最大模块数称为结构图的 ;16.耦合性是指两个模块之间的关系,模块之间的联系越复杂,每个模块的独立性就 ;17.可行性研究实质上是进行了一次过程;18.需求分析的任务是 ;19.NS图的主要优点是它强制设计人员使用技术,从而可保证软件设计的质量;20.结构型模式涉及如何组合类和对象,从而构成更大的对象,一是采用来组合接口或实现形成更大的结构;另一种方式通过方式来形成;21.为了便于对照检查,测试用例应由和预期的两部分组成;22.软件开发时,一个错误发现得越晚,为改正它所付出的代价就 ;23.在UML的用例图中,根据参与者与用例关系的不同,参与者可分为和次要参与者,参与者之间的关系只有关系;24.评价软件质量可以从三个方面进行,即产品或中间产品、和项目;25.软件配置管理是一组用于在计算机软件的整个生存周期内管理的活动;26.通过抽象,可以确定组成软件的 ;通过信息隐蔽,可以定义和实施对模块的过程细节和局部数据结构的 ;27.UML表示法的基础是 ,它描述建模元素的语义;28.条件覆盖是指设计足够的测试用例,使得至少出现一次;29.面向数据流图的结构化分析方法是根据的原则,按照系统中数据处理的流程,用数据图来建立系统的模型;30.评估软件企业的质量管理有两种方法,一种是按照认证,另外一种是按照CMM认证;31.风险估计从两个方面来度量,一是估计 ,二是估计与风险相关的问题出现后将会带来的损失;三、名词解释:1.集成测试2.设计模式3.信息隐藏4.用例5.结构化方法6.MVC四、判断题:1.测试计划、测试用例和出错统计等一般不用长期保存;2.在面向对象方法中,需求分析和设计没有差别;3.应用设计模式使得软件灵活,可重用性提高,应该尽量多使用;4.UML 是一种建模语言,可以被任何面向对象方法使用;5.任何系统都需要对数据进行处理,因而数据流图可描述任何系统;6.软件开发就是编写程序代码;7.面向对象软件开发最适合采用迭代、增量式的开发模型;8.设计模式是一种可以重用的面向对象软件设计方案;9.软件测试就是检查程序是否正确;10.软件项目计划在可行性研究阶段就已定稿;11.软件工程认为软件设计的最终目标是要取得最佳方案;12.只要对软件进行严格的测试,就能发现软件中的所有错误;13.初级技术人员在编码阶段参与软件项目的程度在各类人员中最高;14.单元测试常常在编码阶段进行;15.CMM 描述和分析了软件过程能力的发展与改进的程度;16.为了加快开发速度,可以一边写程序,一边设计文档;17.没有发现任何错误的测试是无效的测试;18.软件结构图中不能有控制信息流动;19.单元测试常常由独立的测试小组进行;20.用例建模只能用于面向对象软件系统的开发;21.数据流建模方法是一种自顶向下的需求分析方法;22.为了减少程序的长度,最好不要在程序中增加注释;五、简答题:1.在需求分析和设计阶段建立原型的好处有哪些2.什么是模块的扇入和扇出3.UML的特点是什么4.层次图和层次方框图有何区别5.软件测试对象应包括哪些内容6.试简要叙述文档在软件工程中的作用;7.为何螺旋模型主要适合开发人员和用户为同一个组织机构成员的软件项目的开发8.软件测试为何需要尽早和不断地进行9.简要说明如何实现MVC;10.试给出一种开源软件框架,并简要说明开源软件存在的问题;11.IDEF0方法有什么特点12.快速原型模型有几种各有何特点六、综合题:1.某网络学院决定开发一个管理所有学生和教师信息的交互式网络系统,该系统提供如下服务:1浏览学生信息:网络学院的任何人员,包括学生和老师,均可以浏览学院任何学生的信息,包括姓名、学号和专业名称;2浏览教师信息:网络学院的任何人,包括学生和老师,均可以浏览学院任何教师的信息,包括姓名、工号和职称;3登录:网络学院给学院每个人一个账号;拥有授权帐号的学生和老师,可以使用系统提供的页面设置个人密码,并使用该账号和密码向系统注册;4修改个人信息:学生或老师向系统注册后,可以发送电子邮件或使用系统提供的页面,对个人信息进行修改;5删除个人信息:只有网络学院的管理人员才能删除不再是学院学生或老师的人员的有关信息;试问哪些是参与者哪些是用例并用UML的用例图描述系统行为;2.试据下述伪代码描述的模块,改用NS图描述;BeginabDo Until x6If xl thenfIf x4 thenDo Until x5iEnd UntilElseghEnd ifElseSelect Case x2Case 1:Do While x3cEnd WhileCase 2:dCase 3:eEnd SelectEnd ifEnd UntilEnd3.某五星级宾馆共有H间客房;每间客房的房间号、房间等级、床位数以及占用状态分别存放在数组ROOM、RANK、NBED和STATUS中;房间等级用整数表示;房间状态有:空闲0表示和占用1表示;客房以房间为单位出租;试设计一个算法,依据散客的要求预定房间,要求输入为:人数M,房间等级要求RR为0表示任意等级均可;输出为:可供选择的房间号;要求用程序流程图描述算法;4.某医院打算开发一个以计算机为中心的患者监护系统,以解决医院人手不够和对危重病人的及时监护;该系统应能做到以下几点:随时接受每个病人的生理信号;定时记录病人情况形成患者日志;当病人生理信号超出医生规定的安全范围时向值班护士发告警信息;此外,护士在需要时,还可要求系统印出指定病人的病情报告;试椐此叙述绘出对应的DFD图;5.试采用设计模式描述算术表达式不含圆括号的设计方案;算术表达式是由加、减、乘、除和操作数构成的表达式,操作数假定为实数;6.请根据如下程序流程图设计该程序段的判定覆盖测试用例,其中输入为A,B,X,输出为X;参考答案一、单项选择题:1.A2.A3.C4.B5.B6.C7.C8.C9.B 10.B 11.B 12.A 13.C 14.A 15.C 16.B 17.A 18.C 19.C 20.A 21.B 22.C 23.A 24.C 25.A 26.C 27.B 28.B 29.C 30.C31.C 32.B 33.A 34.B 35.C 36.C 37.B 38.A 39.B 40.C 41.B 42.A 43.C 44.B 45.A二、填空题:1.聚集组合2.描述计算机程序的文档数据基线3.累计经济效益折合成现在值4.文档5.驱动模块桩模块6.A-0 3-67.逻辑 8.源程序标号交叉引用表9.输入流输出流 10.5011.E – N + 2 12.聚合13.深度优先广度优先 14.环形复杂性以前没有处理的语句或条件15.深度宽度 16.依赖越低17.大大压缩简化了的系统分析和设计过程 18.确定系统必须完成哪些工作19.结构化 20.继承对象组合21.输入数据预期输出结果 22.越大23.主要参与者泛化 24.过程25.变化 26.过程实体存取限制27.UML 元模型 28.判定表达式中每个条件的各种可能的值29.分解与抽象功能 30.ISO900131.风险发生的可能性三、名词解释:1.集成测试也称组装测试或联调;是指在单元测试的基础上,将所有模块按照概要设计要求组装成一个完整的系统而进行的测试;模块组装的方式有两种:渐增式和非渐增式;2.设计模式是普通面向对象设计问题的解决方案,这类问题以一组交互类的形式出现,用户根据需要定制这些交互类以形成专门的设计;所有设计模式均可以从四个方面加以描述:模式名称、问题描述、解决方案和效果;3.信息隐藏是指在模块设计时,使得一个模块内包含的信息过程或数据,对于不需要这些信息的其他模块来说是不能访问的;这样,改变模块的内部过程和数据的设计不会影响到其它模块;4.用例是参与者为达到某个目的而与系统进行的一系列交互,执行结果将为参与者提供可度量的价值;从参与者的角度来看,用例应该是一个完整的任务,在一个相对较短的时间内完成;5.结构化方法是一种传统的软件开发方法,其总的指导思想是自顶向下、初步求精、单入口、单出口,其基本原则是抽象和功能分解;6.MVC即模型、视图、控制器;其中,模型是应用对象,其包含一些数据值,维护数据并提供数据的访问方法;视图显示模型的部分或说有数据,多个视图可以以不同的方式来显示模型中数据;控制器处理用户输入事件;四、判断题:1.×2.×3.×4.√5.√6.×7.√8.√9.× 10.× 11.× 12.× 13.√ 14.√ 15.√16.× 17.√ 18.× 19.× 20.× 21.√ 22.×五、简答题:1.在需求分析和设计阶段建立原型的好处有:1增进开发人员和用户对系统需求的一致理解,明确软件需求,尤其是功能含糊的需求;2原型提供了一种有力的学习手段,能够使用户尽早接触系统;3原型可以用来识别或化解风险;4原型有的可以原封不动地成为产品,有的略加修改就可以成为最终系统的一个组成部分,这样有利于建成最终系统;2.扇入则定义为一个模块被调用或控制的模块个数;扇出表示一个模块直接调用或控制的其他模块数目;3.UML的特点是:1统一了面向对象方法的有关概念和描述方法;2表达能力强,能对各种并发分布式系统进行建模,且UML还提供了扩展机制;3UML专注于一种标准的建模语言,而不是一个开发过程;4.层次图主要用来描绘软件的层次结构,矩形框代表一个模块,矩形框之间的连线表示模块之间的调用关系,常与IPO图一起形成HIPO图;层次方框图主要描述系统的组成关系,一般自用域需求分析;5.软件测试并不等于程序代码测试,其应该贯穿于软件定义与开发的整个期间;因此,需求分析、概要设计以及程序编码等各阶段所得的文档,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序代码都应成为软件测试的对象;6.在软件工程中,文档的作用是:1提高软件开发过程的能见度;2记录开发过程的有关信息便于使用与维护;3作为开发人员阶段工作成果和结束标志;4提高开发效率;5提供软件运行、维护和培训有关资料;6便于用户了解软件功能、性能;7.因为如果开发人员和用户属于不同的组织机构,则一般在正式的软件开发之前均需要签订合同,所有的风险分析均必须在签订合同之前完成;但螺旋模型需要在软件开发的每一个阶段都进行风险分析,当重要风险不能解决时,项目应该终止;由此螺旋模型可能因为风险使得合同在完成之前就终止,从而导致法律诉讼;故螺旋模型不适合开发人员和用户属于不同组织机构的情况;8.软件测试不应仅仅作为一个独立的软件开发阶段,而应贯穿到软件开发的各个阶段中;通过各阶段的评审,在早期把错误解决,以减少错误放大效应,这样不仅可以提高软件质量,而且也是降低软件成本的一个重要措施;由此,软件测试应该尽早和不断地进行;9.MVC是Model-View-Controller的简写;"Model" 代表的是应用的业务逻辑通过JavaBean,EJB组件实现, "View" 是应用的表示层由JSP页面产生,"Controller" 是提供应用的处理过程控制一般是一个Servlet,通过MVC把应用逻辑,处理过程和显示逻辑分成不同的组件实现;10.Struts是采用Java Servlet/JavaServer Pages技术,开发Web应用程序的开源应用框架; Struts框架主要有如下功能:1包含一个controller servlet,能将用户的请求发送到相应的Action对象; 2JSP 自由tag库,并且在controller servlet中提供关联支持,帮助开发人员创建交互式表单应用;3提供了一系列实用对象,如XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息等;开源软件存在的主要问题有:1技术服务支持较少;2版本控制困难;3性能不够稳定;4文档不全,等等;11.IDEF0方法的特点是:1采用方框和箭头等简单的图形符号描述系统的活动和数据流,描述活动所受到的约束条件及实现机制,清楚地反映了系统的功能;2采用严格的自顶向下、逐层分解的方式建立系统功能模型;顶层确定系统范围,采用抽象原则,然后有控制的逐步展开有关活动的细节,符合SA方法的分析策略;同时,IDEF0规定每张图至少有3个、最多有6个方框,上界6保证采用层次性描述复杂问题的可理解性,下界3保证分解有意义;12.根据原型的不同作用,有三类原型模型:⑴探索型原型;这种类型的原型模型是把原型用于开发的需求分析阶段,目的是要弄清用户的需求,确定所期望的特性,并探索各种方案的可行性;它主要针对开发目标模糊,用户与开发着对项目都缺乏经验的情况,通过对原型的开发来明确用户的需求;⑵实验型原型;这种原型主要用于设计阶段,考核实现方案是否合适,能否实现,对于一个大型系统,若对设计方案心中没有把握时,可通过这种原型来证实设计方案的正确性;⑶演化型原型;这种原型主要用于及早向用户提交一个原型系统,该原型系统或者包含系统的框或者包含系统的主要功能;在得到用户的认可后,将原型系统不断扩充演变为最终的软件系统,它将原型的思路扩展到软件开发的全过程;六、综合题:1. System 网络学院人员管理人员教师学生登录修改个人信息浏览学生信息浏览教师信息删除个人信息2.3.4.5.6.1选择测试路径:Ⅰ:a→ b → d 判定A>1∨B=0为假;判定A=2∧X>1为假Ⅱ:a→ c → e 判定A>1∨B=0为真;判定A=2∧X>1为真2选择测试用例Ⅰ:输入A=1 B=1 X=1 预期输出 X=1Ⅱ:输入A=2 B=0 X=4 预期输出 X=4。
《软件工程》课程复习资料一、填空题:1.基于计算机系统总体可靠性与以下三个方面紧密关联:硬件可靠性、软件可靠性和。
2.面向对象的软件过程是以为基础,利用特定的软件工具直接完成从对象客体的描述到软件结构之间的转换。
3.需求分析的任务主要有两个:通过对问题及环境的理解、分析和综合,建立分析模型;在完全弄清用户对软件系统的确切要求的基础上,用把用户的需求表达出来。
4.需求开发又分为可行性研究、需求导出和分析、和需求验证。
5.对象包含两个基本的因素,和方法。
6.数据流图包括以下两种类型:变换型数据流图和。
7.系统设计阶段的输出结果是适应应用软件要求的、类间关系以及子系统的规格说明。
8.软件测试是为了发现而执行程序的过程。
9.软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批,并利用它们去运行程序,以发现程序错误的过程。
10.软件变更可以是修改代码错误的简单变更、更正设计错误的较大范围的变更、对描述错误进行修正或者增加新需求的重大改进。
软件变更可以考虑以下几个策略:、体系结构转换、软件再工程等策略。
11.软件维护性是软件的内在固有属性,它是的重要组成部分。
12.质量评审和自动化的软件评估是质量控制的两种方式。
评审活动主要包括、进展评审和质量评审等几种不同类型。
二、单项选择题:1.关于软件的形式化定义,下列哪种说法不正确? [ ]A.能够完成预定功能和性能的可执行指令B.使得程序能够适当地操作信息的数据结构C.软件成本相当昂贵D.描述程序的操作和使用的文档2.下列哪种说法不是软件危机的表现? [ ]A.对软件开发成本和进度的估算很不准确B.需要有大量的文档C.用户对完成的软件很不满意D.软件开发生产效率低下3.下列哪项不属于软件系统需求? [ ]A.功能需求B.非功能需求C.非领域需求D.领域需求4.面向对象方法的主要优点不包括 [ ]A.稳定性好B.系统可长期使用C.可重用性好D.符合人类习惯的思维方法5.软件重用是提高软件生产率的重要手段,重用性越高,则软件生产率越高,重用性不包括下列哪种类型[ ]A.需求分析重用B.代码重用C.设计结果重用D.分析结果重用6.面向对象中,模块又称构件,下列哪个不是其基本属性? [ ]A.功能B.结构C.状态D.逻辑7.对象的实现描述中不包括以下哪个信息? [ ]A.由一组消息和注释组成的协议描述B.对象名及所属对象类C.私有数据结构的每一数据项及其类型D.每个操作的过程性描述或指向这样一个过程性描述的指针8.Grenford J.Myers就软件测试目的提出的观点不包括以下哪项? [ ]A.测试是程序的执行过程,目的在于发现错误B.证明软件的功能和性能与需求说明相符合C.一个好的测试用例在于能发现至今未发现的错误D.一个成功的测试是发现了至今未发现的错误的测试9.黑盒测试又称为 [ ]A.结构测试B.代码测试C.功能测试D.路径测试10.纠错技术主要是指定位程序错误采用的工具和手段,常用的定位错误方法不包括 [ ]A.插入打印语句B.设置断点C.根据结果推理D.掩蔽部分程序11.为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程,就叫做 [ ]A.完善性维护B.适应性维护C.改正性维护D.预防性维护12.( )和自动化的软件评估是质量控制的两种方式,其中前者是由一组人员对软件、文档编制和软件制作过程进行评审。
作业1:1. 软件是计算机系统中与硬件相互依存的另一部分,它是包括( A )、( B )及( C )的完整集合。
其中,( A )是按事先设计的功能和性能要求执行的指令序列。
( B )是使程序能够正确操纵信息的数据结构。
( C )是与程序开发、维护和使用有关的图文材料。
供选择的答案:A~C. ①软件②程序③代码④硬件⑤文档⑥外设⑦数据⑧图表2. 开发软件时对提高软件开发人员工作效率至关重要的是( A )。
软件工程中描述生存周期的瀑布模型一般包括计划、( B )、设计、编码、测试、维护等几个阶段,其中设计阶段在管理上又可以依次分成( C )和( D )两步。
供选择的答案:A.①程序开发环境②操作系统的资源管理功能③程序人员数量④计算机的并行处理能力B.①需求分析②需求调查③可行性分析④问题定义C、D.①方案设计②代码设计③概要设计④数据设计⑤运行设计⑥详细设计⑦故障处理设计⑧软件体系结构设计3. 从供选择的答案中选出适当字句填入下列关于软件发展过程的叙述中的( )内。
有人将软件的发展过程划分为4个阶段:第一阶段(1950~1950年代末)称为“程序设计的原始时期”,这时既没有( A ),也没有( B ),程序员只能用机器指令编写程序。
第二阶段(1950年代末~1960年代末)称为“基本软件期”。
出现了( A ),并逐渐普及。
随着( B )的发展,编译技术也有较大的发展。
第三阶段(1960年代末~1970年代中期)称为“程序设计方法时代”。
这一时期,与硬件费用下降相反,软件开发费急剧上升。
人们提出了( C )和( D )等程序设计方法,设法降低软件的开发费用。
第四阶段(1970年代中期~现在)称为“软件工程时期”。
软件开发技术不再仅仅是程序设计技术,而是包括了与软件开发的各个阶段,如( E )、( F )、编码、单元测试、综合测试、(G )及其整体有关的各种管理技术。
供选择的答案:A ~ D:①汇编语言②操作系统③虚拟存储器概念④高级语言⑤结构式程序设计⑥数据库概念⑦固件⑧模块化程序设计E ~ G:①使用和维护②兼容性的确认③完整性的确认④设计⑤需求定义⑥图象处理4. 软件工程过程有哪几个基本过程活动?试说明之。
1【简答题】传统的存储程序计算机的主要特征是什么?存在的主要问题是什么?目前计算机系统是如何改进的?正确答案:解:主要特征:(1)机器以运算器为中心;(2)采用存储程序原理;(3)存储器是按地址访问的、线性编址的空间;(4)控制流由指令流产生;(5)指令由操作码和地址码组成;(6)数据以二进制编码表示,采用二进制运算。
主要问题和改进:(1)问题:以运算器为中心,所有部件的操作都由控制器集中控制,导致慢速输入输出操作占用快速运算器矛盾,影响运算器效率发挥。
改进:各种分布式的I/O处理或输入输出方式如程序控制、DMA(直接存储器访问)方式、 I/O 处理机等。
(2)问题:数据和指令存放在同一存储器中,自我修改程序是难以编制、调试和使用的,不利于指令执行的重叠和流水。
改进:通过存储管理硬件的支持,由操作系统控制在程序执行过程中不准修改程序.(3)问题:访问存储器次数较多影响计算机系统性能。
改进:按内容访问的相联存储器CAM,大量使用通用寄存器,在CPU和主存之间设置高速缓冲存储器cache。
(4)问题:受程序计数器控制,程序执行只能串行、顺序执行.改进:改进CPU的组成,如采用重叠方式、先行控制、多操作部件甚至流水方式把若干条指令的操作重叠起来;采用向量处理技术、多机并行处理,总之通过并行处理技术进一步提升计算机系统速度。
(5)问题:需要指令功能更加丰富,但实现困难;计算机存储器容量大增,采用直接寻址方式指令中地址码位数不够.改进:出现了CISC和RISC指令系统,CISC用硬件实现大量丰富功能,RISC只包含使用频率高的少量指令;采用多种灵活的寻址方式,如间接寻址、相对寻址、变址寻址、基址寻址、页式寻址等。
2【简答题】通用寄存器型指令系统结构在灵活性和提高性能方面的优势主要体现在哪几个方面?正确答案:(1)寄存器的访问速度比存储器快很多;(2)对编译器而言,能更加容易、有效地分配和使用寄存器。
在表达式求值方面,通用寄存器型结构具有更大的灵活性和更高的效率。
1.软件危机的概念,内容,原因及消除的途径;2.软件工程的定义,基本原理;3.软件工程方法学的基本概念、内容;4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个阶段。
5.理解几个典型软件过程的内容及其优点与缺点:瀑布模型、增量模型、快速原型模型、螺旋模型、喷泉模型等;6.了解可行性研究中的任务和过程;7.掌握系统流程图的概念和方法,会从具体的案例中抽象出系统流程图;8.掌握数据流图的概念和方法,会从具体的案例中画出0层数据流图和功能级数据流图;9.掌握数据字典的内容、方法、用途和实现;10.了解成本/效益分析方法;11.了解需求分析过程中任务是什么.12.理解面向数据流自顶向下逐步求精的方法和意义;13.理解分析及建模的意义,需求分析中应该建立哪三种逻辑模型?有哪些工具来帮助建立这些模型?14.掌握实体关系(E-R)图的概念,内容和实现方法,能结合具体实例建立实体关系图;15.掌握状态图的概念,内容,实现方法和作用;16.掌握层次方框图、warnier图、IPO图的概念,内容和作用;17.有穷状态机的概念和内容;18.总体设计是做什么?总体设计的过程是怎样的?总体结构设计的目的是什么?19.掌握几个设计原理,理解他们的内容和意义;20.掌握耦合和内聚的概念和内容,理解这些原理对设计有哪些指导意义;21.耦合包含了哪些类型?每个类型的具体内容是什么?要求能通过程序代码识别出耦合类型。
内聚类型有哪些?具体内容?能识别应用。
22.启发性规则的内容及部分概念。
深度,宽度,扇入,扇出,模块的作用域,模块的控制域。
23.层次图、HIPO图和结构图的内容;24.掌握面向数据流的设计方法,了解其中涉及到的概念(变换流,事务流),结合例子理解变换分析的具体过程。
25.详细设计是做什么?26.什么是结构程序设计?27.人机界面设计问题包含哪些?28.掌握设计过程中用到的工具:程序流程图的概念,内容和方法;N-S盒图的概念、内容和方法;会结合实例使用这些工具;掌握PAD 图的概念和内容;掌握判定表的概念和内容。
《软件工程概论》期末复习题及参考答案一、选择题1. 软件工程的三要素不包括以下哪项?A. 软件开发B. 软件维护C. 软件管理D. 软件设计答案:D2. 下列哪项不是软件工程的基本目标?A. 提高软件的生产率B. 提高软件的可维护性C. 提高软件的质量D. 减少软件开发成本答案:D3. 下列哪种方法不属于软件工程的建模方法?A. UMLB. 数据流图C. 实体关系图D. 快速原型法答案:D4. 软件需求分析的主要目的是什么?A. 确定软件的功能和性能B. 设计软件的体系结构C. 编写软件的测试计划D. 评估软件的可行性答案:A5. 在软件开发过程中,以下哪个阶段是最容易发现错误的?A. 需求分析B. 设计C. 编码D. 测试答案:A二、填空题6. 软件工程的目的是______、______和______。
答案:提高软件的生产率、提高软件的可维护性、提高软件的质量7. 软件开发过程包括______、______、______、______和______。
答案:需求分析、设计、编码、测试、维护8. 软件需求分析的工具有______、______和______。
答案:数据流图、实体关系图、状态转换图9. 软件设计包括______设计和______设计。
答案:体系结构、详细10. 软件测试的目的是______、______和______。
答案:发现错误、评估软件质量、验证软件功能三、判断题11. 软件工程的方法和技术适用于所有类型的软件项目。
()答案:正确12. 软件开发过程中,需求分析是最重要的阶段。
()答案:错误(设计阶段同样重要)13. 软件测试是软件开发过程中的最后一个阶段。
()答案:错误(软件维护是最后一个阶段)14. 软件维护是为了提高软件的性能和可维护性。
()答案:正确15. 软件项目管理主要包括进度管理、成本管理和风险管理。
()答案:正确四、简答题16. 简述软件工程的基本原则。
答案:软件工程的基本原则包括以下几点:(1)分阶段进行软件开发;(2)采用模块化设计;(3)使用适当的开发工具;(4)进行有效的项目管理;(5)注重软件质量保证。
一、选择题(20小题,每题1分)软件定义:软件是程序、数据和相关文档的完整结合,计算机系统中的程序及其文档。
瀑布模型:从可行性与计划入手,依次进行需求分析、设计、编码、测试,直到经用户确认得到最终的软件产品,并由此进入运行维护过程。
(17)可行性分析:包括技术可行性、操作可行性、经济可行性和法律可行性。
(14)逻辑覆盖:是指对程序设计中的逻辑判断条件所进行的测试。
(141)软件维护:指软件系统交付使用后,为了纠正系统错误或者满足用户需求变更而修改软件的过程。
(254)DFD(数据流图):结构建模中最流行的功能建模工具,描述了数据输入,数据转换到数据输出的全过程。
分层的DFD更进一步刻画了系统的功能分解。
(44)ER图:包括数据对象(实体)、属性、关系和基数。
(42)面向对象特征:1.抽象 2.封装 3.继承 4.多态性结构化设计:可分为面向数据流的设计方法和面向数据的设计方法,用于确定软件的结构(90)白盒测试:又称为结构测试、逻辑驱动测试或者程序的测试,是指用于测试代码是否按照设计正确运行的验证技术,它需要详细设计文档作为测试配置。
(140)黑盒测试:又称为功能测试或者行为测试,主要根据设计说明中的功能设计来测试程序是否按预期实现。
(目的:尽量发现系统功能中的错误。
)(148)软件测试的目的:发现错误,错误的定位和处理需要通过调试过程完成。
(167)面向数据流的设计方法:基于数据流图自顶向下、逐层分解的过程,他将各级数据流图映射为软件结构图中对应的各层次模块,体现了结构化设计与结构化分析的相互衔接,也体现了自顶向下的模块化设计思想。
(91)需求分析:准确回答“系统必须做什么”的问题,给出对目标系统完整、准确、一致的描述。
(32)数据字典:建模中定义的概念,术语,属性和逻辑过程进行了详细定义和解释。
(49)软件过程:是有组织或项目使用的,用以计划、管理、执行、监控和改进其软件相关活动的过程或过程的集合. (15)总体设计(概要设计):要完成体系结构设计(确定各子系统模块间的数据传递,调用关系)、界面设计(包括与系统交互的人机界面设计、以及模块间、系统与外部系统的接口关系)和数据设计(包括数据库、数据文件和全局数据结构的定义)。
第二章习题(P69-70)一、复习题1.简述冯∙诺依曼原理,冯∙诺依曼结构计算机包含哪几部分部件,其结构以何部件为中心?答:冯∙诺依曼理论的要点包括:指令像数据那样存放在存储器中,并可以像数据那样进行处理;指令格式使用二进制机器码表示;用程序存储控制方式工作。
这3条合称冯∙诺依曼原理OgtiojD。
冯∙诺依曼计算机由五大部分组成:运算器、控制器、存储器、输入设备、输出设备,整个结构一般以运算器为中心,也可以以控制器为中心。
(P51-P54)r1fI4bu。
2.简述计算机体系结构与组成、实现之间的关系。
答:计算机体系结构通常是指程序设计人员所见到的计算机系统的属性,是硬件子系统的结构概念及其功能特性。
计算机组成(computer organization)是依据计算机体系结构确定并且分配了硬件系统的概念结构和功能特性的基础上,设计计算机各部件的具体组成,它们之间的连接关系,实现机器指令级的各种功能和特性。
同时,为实现指令的控制功能,还需要设计相应的软件系统来构成一个完整的运算系统。
计算机实现,是计算机组成的物理实现,就是把完成逻辑设计的计算机组成方案转换为真实的计算机。
计算机体系结构、计算机组成和计算机实现是三个不同的概念,各自有不同的含义,但是又有着密切的联系,而且随着时间和技术的进步,这些含意也会有所改变。
在某些情况下,有时也无须特意地去区分计算机体系结构和计算机组成的不同含义。
(P47-P48)28BoSAn。
3.根据指令系统结构划分,现代计算机包含哪两种主要的体系结构?答:根据指令系统结构划分,现代计算机主要包含:CISC和RISC两种结构。
(P55)4.简述RISC技术的特点?答:从指令系统结构上看,RISC体系结构一般具有如下特点:(1)精简指令系统。
可以通过对过去大量的机器语言程序进行指令使用频度的统计,来选取其中常用的基本指令,并根据对操作系统、高级语言和应用环境等的支持增设一些最常用的指令;hJslBtf。
一.名词解释计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。
系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。
同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。
累加器型机器:CPU 中存储操作数的单元是累加器的机器。
通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。
数据相关:考虑两条指令i 和j,i 在j 的前面,如果下述条件之一成立,则称指令j 与指令 i 数据相关:(1)指令j 使用指令i 产生的结果;(2)指令j 与指令k 数据相关,而指令k 又与指令i 数据相关。
定向:用来解决写后读冲突的。
在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。
如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
向量处理机:指令级并行:简称ILP。
是指指令之间存在的一种并行性,利用它,计算机可以并行执行两条或两条以上的指令。
指令的动态调度:是指在保持数据流和异常行为的情况下,通过硬件对指令执行顺序进行重新安排,以提高流水线的利用率且减少停顿现象。
是由硬件在程序实际运行时实施的。
指令的静态调度:是指依靠编译器对代码进行静态调度,以减少相关和冲突。
它不是在程序执行的过程中、而是在编译期间进行代码调度和优化的。
失效率:CPU 访存时,在一级存储器中找不到所需信息的概率。
失效开销:CPU 向二级存储器发出访问请求到把这个数据调入一级存储器所需的时间。
强制性失效:当第一次访问一个块时,该块不在Cache 中,需要从下一级存储器中调入Cache,这就是强制性失效。
容量失效:如果程序在执行时,所需要的块不能全部调入Cache 中,则当某些块被替换后又重新被访问,就会产生失效,这种失效就称作容量失效。
计算机体系结构复习题计算机体系结构复习要点计算机体系结构:计算机体系结构是程序员所看到的计算机属性,即概念性结构与功能特性。
(Amdahl提出的系统结构实际上指传统机器语⾔级程序员所能看到的计算机属性。
)系列机——在⼀个⼚家⽣产的具有相同的体系结构,但具有不同的组成和实现的⼀系列不同型号的机器。
Amdahl定律:系统中某⼀部件由于采⽤某种更快的执⾏⽅式后整个系统性能的提⾼与这种执⾏⽅式的使⽤频率或占总执⾏时间的⽐例关系。
计算机组成:指的是计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。
它着眼于物理机器级内各事件的排序⽅式与控制⽅式、各部件的功能以及各部件之间的关系。
计算机的实现:指的是计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
它着眼于器件技术和微组装技术,其中器件技术在实现技术中起主导作⽤。
透明性:在计算机技术中,对本来存在的事物或属性,从某⼀⾓度来看⼜好像不存在的概念称为透明性。
软件兼容:同⼀个软件可以不加修改第运⾏于体系结构相同的各档及其,⽽且它们所获得的结果⼀样,差别只在于运⾏时间不同。
系列机的软件兼容⽅式4种:向上兼容、向下兼容、向前兼容、向后兼容。
向上(下)兼容指的是按某档计算机编制的程序,不加修改就能运⾏于⽐他⾼(低)档的计算机。
向后(前)兼容指的按某个时期投⼊市场的某种型号计算机编制的程序,不加修改就能运⾏于在它之后(前)投⼊市场的计算机。
向后兼容⼀定要保证,他是系列机的根本特征。
兼容机:它是指由不同制造商⽣产的具有相同系统结构的计算机。
兼容机:不同⼚家⽣产的、具有相同体系结构的计算机。
系统加速⽐——系统改进前与改进后总执⾏时间之⽐。
CPI:指令时钟数响应时间——从事件开始到结束之间的时间,也称执⾏时间课本重点习题:(郑纬民《计算机系统结构》)3.5硬件和软件在什么意义上是等效的?在什么意义上是不等效的?计算机系统结构的设计是在功能这⼀层次上考虑问题,当然也不排斥硬件这⼀层次,但不只包括硬件设计。
不定项选择题:1.一个软件产品是否成功,因素有(需求收集是否正确,体系结构的构建是否合理,测试是否完全,软件的管理)。
2.开发过程中最困难的一个环节是(人与人之间的交流)。
3.用例是从(用户)的观点对系统行为的一个描述。
4.顺序图所表达的是基于(时间顺序)的动态交互。
5.当需要在项目中定制自己的元素时,可使用(构造型来定制)。
6.表示一个操作中的参数和返回值的数据类型的称呼是(形构)7.多重性5,10表示(5或10)。
8.在找出了类的继承关系后,通常可以用(抽象类|接口)来表示最上层的基类。
9.UML中的实现是一种特殊类型的继承,因为它是指从一个(抽象类/接口)继承。
10.使用用例的难点在于(用例中各个场景的具体步骤)。
11.收集用例的方法是(与用户交谈)。
12.产生类图和得到用例这两个步骤,位于前面的是(没有固定顺序)。
13.面向对象理论中,对象之间发送信号,在UML状态图里就是(事件)。
14.顺序图中,动态创建对象表示法的特点是(是在时间线上的某一点创建,结束时尾部打X)。
15.当代软件工程的特点是(允许各个阶段进行迭代;各个阶段没有明显的分界线;允许后期得到的信息返回,使得早期的能够被修改)。
16.GRAPPLE中最重要的段是(需求收集)。
17.设计模式的基本要素有(名称,问题|目的,解决方案,实施后的效果|后果)。
18.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用(Abstract Factory|抽象工厂)模式。
19.当我们想将抽象部分和实现部分分离时,可以使用(Bridge|桥接)模式。
20.当我们想用不同的请求对客户进行参数化时,可以使用(Command|命令)模式。
21.当我们想封装不同算法并使它们可相互替换时,可以使用(Strategy|策略)模式。
22.面向对象系统中功能复用的两种最常用技术是(类继承和接口继承)。
对象组合,类继承-〉产生类爆炸23.面向对象系统中的“黑盒复用”是指(接口继承|对象组合)。
判断题 1. 软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。 2. 开发视图主要支持系统的功能需求,即系统提供给最终用户的服务。 3. 软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。其中,构件、连接件和配置是最基本的元素。 4. 构件可以由其他复合构建和原子构件通过连接而成。 5. 正交软件体系结构由组织层和线索的构件构成。 6. 软件产品线的建立通常有4种方式,其划分依据有两种。 7. 体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。 8. ATAM评估方法主要通过理解体系结构方法来分析体系结构,在这一步,由设计师确定体系结构方法,由分析小组捕获并进行分析。 9. WSDL是可扩展的,使得在通信时无论使用何种消息格式或网络协议,都可以对端点及其消息进行描述。 10.10.ABSD方法是基于体系结构的设计方法,它描述了系统的主要设计元素及其关系。 11.11.可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。 12.12.超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。 13.软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。 14.体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色() 15.开发视图主要支持系统的功能需求,即系统提供给最终用户的服务 16.构件、连接件以及配置是体系结构的核心模型最基本的元素() 17.HMB风格不支持系统自顶向下的层次化分解,因为它的构件比较简单() 18.基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。。 19.线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。 20.层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。 21.在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。 22.Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。 23.体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。 24.基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语言。 25.需求语言与ADL的区别在于后者描述的是问题空间,而前者则扎根于解空间中。 26.基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结构层。 27.ADL提供了一种形式化机制来描述软件体系结构,大多数ADL不进描述系统的静态结构,也支持对体系结构动态性的描述 28.基于构件的动态系统结构模型分为应用层,中间层和体系结构层。 29.2000年世界计算机大会提出,软件体系结构中最为重要的三个研究方向是:体系结构风格,静态体系结构和动态体系结构。 30.XML是W3C制定的作为Internet上数据交换和表示的标准语言,是一种允许用户定义的标记语言。 31.SOA模型具有松散耦合、粗粒度服务、标准化接口等特征。 32.从概念上讲,SOA有3个主要的抽象级别,分别是操作、服务和业务流程。 33.一般的说,一个模式有一下4个基本成分,1.模式名称,2.问题,3.解决方案,4.效果,这句话是对的 34.设计模式的概念最早是由美国的一位计算机专家提出的。 35.利用设计模式可以方便地重用成功的设计和结构。 36.软件系统的可靠性依赖于状态的执行顺序和每一个状态的可靠性 37.基于体系结构描述的软件测试包括黑盒测试和根据路径测试。 38.在体系结构级进行风险评估是更有利于开发阶段的前期评估。 39.容错体系结构风格的目的是通过一系列的容错构件修正初始系统的错误来改善系统的稳定性。 40.评估方法质量属性中安全性不包括完整性。 41.软件体系结构的评估方法主要有调查问卷、检查表、场景、度量、比较5种 42.软件体系结构评估只针对一个体系结构,不可以针对一组体系结构。 43.正式的对软件产品线的理论研究到20世纪80年代中期才出现。 44.软件重用长期以来一直是软件工程界不断追求的目标。 45.产品开发活动取决于产品线范围,核心资源库、产品计划和需求的输出。 46.软件产品线的建立通常有4种方式,其划分依据有两种。 填空题 1. 软件体系结构的模型分为5种:_______、框架模型、_______、过程模型和功能模型。 2. 根据SEI放热定义软件产品线主要由_______和_______组成。 3. 经典软件体系结构风格有管道和_______、数据抽象和面向对象组织、基于事件的_______、分层系统、仓库系统及知识库、_______风格。 4. 软件体系结构的描述方法有图形表达工具、模块内接语言、和基于_______和_______。 5. 动态软件体系结构特征有_______、_______和智能性动态特征。 6. Web服务开发生命周期可分为_______、_______、____和____阶段。 7. ABSD的全称是:_________。 8. 最初的和最简单的软件产品线开发过程的双生命周期模型来自STARS,分成两个重叠的生命周期: _______和_______。 9. SAAM评估方法可以对许多_______以及_______进行快速评估。 10.黑板系统主要由 __________ 、____________ 和 _________ 组成 。 11.三层C/S结构风格是由 _________ 、_________ 和 __________ 构成的。 12.消息总线对消息过滤提供了________和___________两种方式。 13.正交软件体系结构由____和_____构成。 14.C/S体系结构服务器主要负责有效的管理系统的资源主要负责_________、_________、_________和_________。 15.层次系统最广泛的应用是 ____________. 16.软件体系结构的描述方法主要有 、 、基于软构件的系统描述语言和 。 17.ADL是一种在底层语义模拟支持下的形式化语言。基于底层语义的工具为体系结构的 、分析、 、 、设计过程等提供支持。 18.可重用的体系结构描述框架可以从 、 、 和 四个视点出发描述体系结构。 19. 支持对构件之间交互的形式化和分析。 20.典型的ADL在充分继承和吸收传统程序设计语言的 和 特点的同时,还应该具有构造、抽象、重用、组合、异构和分析推理等多种能力和特性。 能力指的是ADL使得其描述的每一个系统元素都有其自己的局部结构。 21.体系结构的动态性分为“_________ ”“_________”“_________”三类。 22.ADL是一种在底层语义模拟支持下的形式化语言。基于底层语义的工具为体系结构的_________分析、_________ 、 _________ 设计过程等提供支持。 23.体系结构的动态性分为_________、_________和_________。 24.一个完整的Web服务包括3种逻辑构件:_________ 、_________、_______。 25.设计模式的基本成分包括_________、_________、_________、_________。 26.________方法是最早形成文档并得到广泛使用的软件体系结构分析方法,最初用来分析体系结构的可修改性的。 27.软件重用是为了解决_________。 28._________的开发是大型软件系统开发的关键环节 29.实现完整测试的典型方法是利用测试准则定义_________,进而生成,测试用例。 30.实现完整测试的典型方法是利用测试准则定义测试需求,进而生成测试用例.参照相关研究工作,可定义 、 等测试路径。
三、选择题 1、软件危机的原因不包括(): 用户需求不明确 B、缺乏正确的理论指导C、软件规模越来越大D、软件复杂度越来越低 2、下列选项中,哪个不是重用组织框构中的主要组成成员: 协调组 构件应用组 构件需求组 构件开发组 3.常用的软件体系结构评估的方法不包括: A体系结构权衡分析法 B.软件体系结构分析法 C系统体系结构分析法 D中间设计的积极评审 4、下列选项中,不是软件危机的原因的是:() 用户需求不明确 缺乏正确的理论指导 软件规模越来越小 软件的复杂度越来越高P2 5、不属于软件体系结构的核心模型的最基本的元素是 () A 构件 B 连接件 C 配置 D 角色 6、选项中不属于“4+1”试图模型的是:() A 逻辑视图 B 物理视图 C 连接视图 D 开发视图 7、下列说法错误的一项的是() A:逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务 B:开发视图也称模块视图,主要侧重于软件模块的组织和管理 C:进程视图侧重与系统的运行特性,主要关注一些功能性需求,例如系统的性能和可用性。 D:物理视图主要考虑如何吧软件映射到硬件上,它不需要要考虑到系统性能、规模、可靠性等。 8、Kruchten在1995提出了“4+1”模型,从5个不同的视角来描述软件体系结构,其中“4”不包括的视图是() A逻辑视图 B开发视图 C物理视图 D场景视图 9、下列哪个选项是描述系统的静态结构() A.逻辑视图和开发视图 B.进程视图和物理视图 C.开发视图和物理视图 D.开发视图和进程视图 10、在三层C/S体系结构中,_________是最重要的构件。 A 中间件 B 末尾件 C 功能层 D 数据层 11、正交软件体系结构的有点有() A 结构清晰,易于理解 B 易修改,可维护性强 C 可移植性强,重用程度大 D 以上都是 12、C/S系统中,服务器的以下任务中哪一个是错的?() A 数据库一致性要求 B 数据库访问并发性控制 C 数据库前端的客户应用程序的全局数据完整性规则 D 数据库的备份与恢复 13、下列哪个不是黑板系统的组成部分?() A.知识源 B.黑板数据结构 C.控制 D.内存