软件体系结构复习题及答案
- 格式:doc
- 大小:336.50 KB
- 文档页数:9
可编辑修改精选全文完整版一、单选题(共20题,40分)1、使用数据流图,并不断细化的需求获取方法是()。
(2.0)A、简易的应用规格说明B、面向数据流自顶向下逐步求精C、访谈D、快速原型法正确答案: B2、Z语言是以()为基础的形式化规格说明语言。
(2.0)A、微积分B、概率C、图形D、一阶谓词演算正确答案: D3、HIPO是指(2.0)A、层次输入处理输出图或表B、层次功能结构图C、功能结构图D、输入处理输出图或表正确答案: A4、高铁调用系统最适宜采用()方法。
(2.0)A、有穷状态机B、 Petri网C、 Z语言D、一阶线性时态逻辑正确答案: B5、假设学生年龄的成绩输入范围为18-25,则根据等价类划分技术,下列划分正确的是()。
(2.0)A、可划分为2个有效等价类,2个无效等价类B、可划分为1个有效等价类,2个无效等价类C、可划分为2个有效等价类,1个无效等价类D、可划分为1个有效等价类,1个无效等价类正确答案: B6、用于并发系统,解决定时问题的形式化方法是()。
(2.0)A、 VDMB、 Z语言C、 Petri网D、一阶线性时态逻辑正确答案: C7、软件生命周期中所花费费用最多的阶段是(2.0)A、需求分析B、软件总体设计C、软件维护D、软件实现正确答案: C8、软件质量保证措施SQA不包括:(2.0)A、复审或评审B、软件测试C、程序正确性证明D、软件代码编写正确答案: D9、希望确定软件实现的功能是否与需求规格说明书一致,需进行()。
(2.0)A、单元测试B、有效性测试C、确认测试D、集成测试正确答案: C10、总体设计不包括:(2.0)A、体系结构设计B、数据库设计C、模块内算法设计D、逻辑数据结构设计正确答案: C11、关于类和对象的说法,正确的是(2.0)A、一个类只能有一个角色B、类的命名必须用动词C、类的所有对象都具有相同的属性和操作D、类是对象的实例,对象是类的抽象正确答案: C12、数据字典的基本功能是(2.0)A、数据库设计B、数据通信C、数据定义D、数据维护正确答案: C13、软件需求规格说明的内容不应该包括(2.0)A、主要功能B、算法的描述C、用户界面及其运行环境D、软件性能正确答案: B14、增量模型在添加新的模块时,有一个要求是()(2.0)A、需要更多的测试B、有足够的开发人员C、软件体系结构开放D、各个模块都要进行评审正确答案: C15、在软件详细设计过程中不采用的工具是(2.0)A、判定表B、PDLC、程序流程图D、DFD正确答案: D16、软件测试方法中,黑盒测试方法和白盒测试方法是常用的方法,其中黑盒测试方法主要用于测试(2.0)A、结构合理性B、软件外部功能C、程序正确性D、程序内部逻辑正确答案: B17、耦合是模块之间的相对独立性的度量。
软件设计与体系结构复习题软件设计与体系结构复习题软件设计与体系结构是计算机科学与技术领域中的重要课程,它涉及到软件系统的设计、构建和维护。
在这篇文章中,我们将回顾一些与软件设计与体系结构相关的复习题,以帮助读者巩固知识和提高理解。
一、软件设计原则1. 什么是SOLID原则?请简要介绍每个原则的含义。
SOLID原则是面向对象设计中的五个基本原则,分别是单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。
单一职责原则指一个类只应该有一个引起变化的原因;开放封闭原则指软件实体(类、模块、函数等)应该对扩展开放,对修改关闭;里氏替换原则指子类对象应该能够替换父类对象而不影响程序的正确性;接口隔离原则指客户端不应该依赖它不需要的接口;依赖倒置原则指高层模块不应该依赖于低层模块,它们都应该依赖于抽象。
2. 什么是DRY原则?它的目的是什么?DRY原则(Don't Repeat Yourself)指不要重复自己。
它的目的是避免代码的重复,提高代码的可维护性和可复用性。
通过遵循DRY原则,可以减少代码的冗余,降低了修改代码时的风险,同时也提高了代码的可读性。
二、软件体系结构1. 什么是软件体系结构?它有什么作用?软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系和交互。
软件体系结构有助于理解系统的整体架构,提供了对系统进行设计、开发和维护的指导方针。
2. 请简要介绍常见的软件体系结构模式。
常见的软件体系结构模式包括分层结构、客户端-服务器结构、发布-订阅结构、管道-过滤器结构等。
分层结构将系统划分为若干层次,每一层次负责不同的功能;客户端-服务器结构将系统划分为客户端和服务器两部分,客户端发送请求,服务器提供服务;发布-订阅结构中,发布者发布消息,订阅者订阅感兴趣的消息;管道-过滤器结构中,数据通过一系列的过滤器进行处理。
三、设计模式1. 什么是设计模式?为什么使用设计模式?设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
判断题1.软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
对2.开发视图主要支持系统的功能需求,即系统提供给最终用户的服务。
错3.软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。
其中,构件、连接件和配置是最基本的元素。
对4.构件可以由其他复合构建和原子构件通过连接而成。
错5.正交软件体系结构由组织层和线索的构件构成。
对6.软件产品线的建立通常有4种方式,其划分依据有两种对7.体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。
对8.ATAM评估方法主要通过理解体系结构方法来分析体系结构,在这一步,由设计师确定体系结构方法,由分析小组捕获并进行分析。
对9.WSDL是可扩展的,使得在通信时无论使用何种消息格式或网络协议,都可以对端点及其消息进行描述。
对10.ABSD方法是基于体系结构的设计方法,它描述了系统的主要设计元素及其关系。
对11..可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。
对12.超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。
对13.软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。
对14.体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色(对)15.开发视图主要支持系统的功能需求,即系统提供给最终用户的服务。
错16.构件、连接件以及配置是体系结构的核心模型最基本的元素(对)17.HMB风格不支持系统自顶向下的层次化分解,因为它的构件比较简单(对)18.基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。
对19.线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能对20.层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。
参考答案选择题1.D2.C3.D4.C5.B6.D7.C8.B9.D10.A11.B12.A13.B14.D15.A16.B17.A18.D19.C20.A21.D22.B23.B24.D25.D26.B27.B28.A29.A30.C31.A32.B33.A34.B35.B36.A37.B38.A39.A40.C41.A42.C43.C44.D45.A46.B47.D48.C49.D50.C51.C52.A53.D54.B55.A56.A57.D58.A59.D60.A61.B62.D63.C64.A65.A66.C67.C68.A69.D70.A71.D72.A73.C74.A75.D判断改错题1.(√)2.(×)有“泳道”概念的是活动图。
3.(×)题目中描述的是CORBA。
4.(×)水平坐标表示一组对象,垂直坐标表示时间顺序。
5.(√)6.(×)UML是建模语言,不是方法论。
7.(√)8.(√)9.(×)两者没有明显分界,需要反复迭代的进行。
10.(×)OOCASE通过外部接口可以方便的调用其它工具软件。
11.(×)定义不同。
12.(√)13.(√)14.(×)完成使命的对象可以被销毁。
15.(×)由图和文字描述组成。
16.(√)17.(×)描述的是白盒复用。
18.(√)19.(F)它不能直接调用EJB构件,而是通过使用代理来调用。
20.(F)不能有嵌套的动作或递归的动作表达式。
21.(T)22.(F)需求模型也是可复用的软件制品。
23.(F)构件图主要用于建立系统的静态实现模型。
24.(F)OOCASE通过外部接口可以方便的调用其它工具软件。
25.(F)“对象+消息”的程序设计模式。
26.(F)通过频繁使用设计样式来设计更大更复杂的系统。
27.(T)28.(T)29.(T)30.(F)协作图强调对象之间的关系,而时序图强调一组对象之间错作调用的时间顺序。
一、填空题在下划线上填写正确的答案,每题2分,共20分1.等价划分是一种黑盒测试技术,这种技术把程序的输入域划分为若干个数;2.数据流图和数据字典共同构成了系统的逻辑模型;3.盒图也称为 N-S图 ;这种表达方式取消了流程线,它强迫程序员以结构化方式思考和解决问题;4.软件有效性,指软件系统的时间和空间效率;6.数据流图有四种基本成分:源、终点,处理,存储,数据流 ;7其中数据项是组成数据流和数据存储的最小元素;8.软件工程中的结构化分析SA是一种面向数据流的分析方法;9.软件开发是一个自顶向下逐步细化和求精的过程,而软件测试是一个由下而上的过程; 10.耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚、低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础;1.常用的软件开发模型有瀑布模型、原型模型、增量模型、螺旋模型、喷泉模型 ;2.软件生存周期一般可分为问题定义、可行性研究、需求分析、设计、编码、单元测试、运行与维护阶段;3.软件测试的步骤:单元、集成、系统、验收 ;4.数据流图的基本符号包括加工、数据流、数据存储文件、汇点 ;5.IPO图由输入、处理和输出三个框组成;这个图的特点是能够直观的显示三者之间的关系;6.面向对象方法是一种运用类、实例、属性、重载、消息传送、多态性等概念来构造系统的软件开发方法;7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程 ;8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动;9.为了获得较高的模块独立性,尽量设计出具有高内聚和低藕合性能的模块;10.常用的测试方法有黑盒测试和白盒测试 ;1.可行性研究,应从技术可行性、经济可行性、运行可行性和法律和社会效益可行性等方面研究;2.构化程序设计中程序主要的3种基本控制结构是顺序结构、选择结构、循环结构;3.软件生存周期中时间最长、花费精力和费用最多的一个阶段是维护阶段;4.需求分析阶段,分析人员要确定对问题的综合需求,其中最主要的是功能需求 ;7.分析已有的程序,寻求比源代码更高级的抽象表现形式,这就是软件的逆向工程 ;8.程序测试是对编码阶段的语法错、语义错和运行错进行查找的编码执行活动进行查找的编码执行活动;9.为了获得较高的模块独立性,尽量设计出具有低耦合和高内聚性能的模块;1.若年利率为i,n年后可得钱数为F则现在的价值 F/1+Ni ;2.在结构化分析中用来描述加工逻辑的主要工具是结构化语言、判定表、判定树 ;3.软件测试的步骤:制定、设计、实施测试、测试后调试、做4.自顶向下结合的渐增测试法,在组合模块时有两种组合策略:7;1;2;3.HIPO图是由一组IPO图和一张H 图组成;4.在前期需求明确、资料完整的情况下尽量采用瀑布模型;5.用例图中,如果在完成某个功能时,偶而会执行另一个功能,则用扩展关系来表示;6.UML;7.类是类图的主要的主要部件,由类名、属性、操作3部分组成;8.UML中的泛化关系就是通常所说的继承关系;9;10Rose中对应图形的分类;1.软件危机具有下列表现 D ;1、对软件开发成本估计不准确2、软件产品的质量往往靠不住3、软件常常不可维护4、软件成本逐年上升A、 1、2和3B、 1、3 和4C、 2、3和4D、以上都正确2.软件生命周期一般都被划分为若干个独立的阶段,其中占用精力和费用最多的阶段往往是 A ;A 运行和维护阶段 B、设计阶段 C、代码实现阶段 D、测试阶段3.下列属于软件的特点的是 D ;A、软件是一种逻辑实体,具有抽象性B、软件在使用过程中没有磨损、老化C、软件不同于一般程序,它的一个显着特点是规模庞大,复杂程度高D、以上都正确4.软件开发技术不包含 D ;A、软件开发方法学B、软件工程环境C、软件工具D、软件质量度度量5.需求分析阶段最重要的技术文档是 B ;A、设计说明书B、需求规格说明书C、可行性分析报告D、用户手册6.数据字典是软件需求分析阶段的最重要工具之一,其最基本的功能是 CA、数据库设计B、数据通信C、数据定义D、数据维护7.需求分析阶段的研究对象是 C ;A、系统分析员要求B、用户要求C、软硬件要求D、系统要求8.结构化方法的基本原则是B ;A 、模块化B、抽象与分解 C、信息隐藏 D、逐步求精9.耦合度最高的是B 耦合;A、环境耦合B、内容耦合C、控制耦合D、数据耦合10.画软件结构图时应注意调用关系只能是 BA、从下到上B、从上到下C、从左到右D、从右到左11.软件设计中划分模块的一个准则是CA、低内聚低耦合B、低内聚高耦合C、高内聚低耦合 D高内聚高耦合12.Jackson设计方法是由英国的提出的,它是一种面向C的软件设计方法;A、对象B、数据流C、数据结构D、控制结构13.使用白盒测试方法时,确定测试数据应根据A和指定的覆盖标准;A、程序内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能14.软件维护工作的最主要的部分是A;A、校正性维护B、适应性维护C、完善性维护D、预防性维护15.PDL是B语言;A、高级程序设计语言B、伪码式C、中级程序设计语言D、低级程序设计语言16.下列哪个阶段不属于软件生存期的三大阶段 C ;A、定义阶段B、开发阶段C、编码阶段D、维护阶段17.可维护性的特性中相互促进的是 AA、可理解性和可测试性B、效率和可移植性C、效率和可修改性D、效率和结构好18.软件测试的目标是BA、证明软件是正确的B、发现错误、降低错误带来的风险C、排除软件中所有的错误D、与软件调试相同19.软件生命周期中所花费用最多的阶段是 DA、详细设计B、软件编码C、软件测试D、软件维护20.详细设计的基本任务是确定每个模块的D设计;A、功能B、调用关系C、输入输出数据D、算法22.下列哪个图不是N-S图的构件 C ;23.对于下列各图,有关描述中正确的是 A ;A、数据A和B同时输入变成CB、数据A变换成B和CC、数据A或数据B不能同时输入,变换成CD、数据A变换成B和C24.下列哪种方法不是度量效益的方法 B ;A、货币的时间价值B、算法模型估计C、投资回收期D、纯收入25.下列描述错误的是 D ;A、数据流图将各种信息流抽象成数据流的形式B、数据流图不反映控制关系、调用关系C、数据流图不反映处理逻辑的先后顺序D、数据流图不反映数据的流向26.软件是CA、处理对象和处理规则的描述B、程序C、程序及文档D、计算机系统27.软件需求规格说明的不应包括B;A、主要功能B算法的详细描述C、用户界面及运行环境D、软件性能28.程序的三种基本控制结构是B;A、过程、子程序和分程序B、顺序、选择和循环C、递归、迭代和回溯D、调用、返回和转移29.面向对象的分析方法主要是建立三类模型, 即D;A、系统模型、ER模型、应用模型B、对象模型、动态模型、应用模型B、ER模型、对象模型、功能模型D、动态模型、功能模型、对象模型30.ER模型中,包含以下基本成分C;A、数据、对象、实体B、控制、联系、对象C、实体、联系、属性D、实体、属性、操作1.快速原型模型的主要特点之一是 B A.开发完毕才见到产品B.及早提供工作软件C.及早提供全部完整软件 D.开发完毕才见到工作软件2.软件工程学的一个重要目标是 D A.提高程序的执行效率 B.降低程序对存储空间的要求C.定义各种软件开发过程模型D.提高软件的可维护性3.需求分析最终结果是产生 B A.项目开发计划B.需求规格说明书C.设计说明书 D.可行性分析报告4.数据存储和数据流都是处于不同状态的 D A.分析结果 B.事件 C.动作D.数据5.数据字典是对数据定义信息的集合,它所定义的对象都包含于 A A.数据流图 B.程序框图 C.软件结构 D.方框图6、结构化设计是一种面向 A 的设计方法;A.数据流B.数据库C.数据结构 D.程序7.下列可哪个组件不是用例图的基本组件 D A.参与者 B.用例C.系统D.文档8.用例图中用例之间存在各种关系,但不包括 BA.包含B.关联 C.泛化 D.扩展9.常用动词或动词词组来表示 C A.对象B.类 C.关联D.属性10.组件图中通常不包括下列哪个元素 A A.对象 B.组件C.接口 D.依赖11.好的软件结构应该是 B A.高耦合、高内聚B.低耦合、高内聚C.高耦合、低内聚 D.低耦合、低内聚12.静态模型不包括 C A.类图 B.组件图C.状态图 D.部署图13.动态模型不包括 D A.交组图B.活动图C.状态图D.部署图14.Rose模型文件的扩展名为 AA.mdl B.vsd C.pdf D.swf15.逆向工程是什么过程 CA.模型到代码B.设计到实现C.代码到模型 D.类图到包图三、判断题正确的在括号内打上“√”,错误的打上“×”;每小题2分,共20分1软件开发的主要任务是写程序; F2测试只能证明程序有错误,不能证明程序没有错误; T3模块化程序设计中,模块越小,模块化的优点越明显;一般来说,模块的大小都在10行以下; F4在编制程序时,首先应该对程序的结构充分考虑,不要急于开始编码,而要写软件文档那样,很好地琢磨程序具有什么样的功能,这些功能如何安排等等; F5程序设计风格指导原则提出,尽量多使用临时变量; F6用黑盒法测试时,测试用例是根据程序内部逻辑设计的; F7发现错误多的程序模块,残留在模块中的错误也多; T8为了加快软件维护作业的进度,应尽可能增加维护人员的数目; F9软件维护就是改正软件中的错误; F10质量保证是为了保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动; T11螺旋模型是利用笛卡尔坐标的四个象限分别代表四个方面的活动来表示; F12模块越多,开发成本越小; F13内聚是指一个软件结构内各个模块之间互连程序的度量; F14结构化设计属于面向数据流的设计方法; T15详细设计是在概要设计之后进行的;它利用概要设计的结果,对系统中的每个模块给出足够的过程性描述; T16程序运行过程中出现错误叫做容错; F17软件测试的目的是证明程序没有错误; F18白盒测试法是将程序看成一个透明的盒子,不需要了解程序的内部结构和处理过程;F19 PAD图在设置了五种基本的控制结构后,还允许递归调用; T20独立编译是指一个大程序的不同程序单元分别编译,然后重新连接整个程序段;T31开发软件就是编写程序F32 系统测试的主要方法是白盒测试法,主要进行功能、性能测试、安全性测试及可靠性测试等F33编程时应尽可能利用硬件特点以提高程序效率F;34软件需求分析的任务是建立软件模块结构图F;35尽可能使用高级语言编写程序T;36以结构化方法建立的系统模型就是数据流图F;37进行总体设计时加强模块间的联系F;38编码时尽量多用全局变量F;39用CASE环境或程序自动化生成工具来自动生成一部分程序T40软件测试是要发现软件中所有错误FT 41、软件开发、设计几乎都是从头开始,成本和进度很难估计;F 42、VG值越高的程序往往是越不复杂、越不容易出问题的程序;F 43、适应性维护是改进软件未来的可维护性和可靠性;F 44、软件是逻辑产品,软件质量较容易直接度量;T 45、随着软件复杂性的不断提高,软件的维护难度越来越大;F 46、软件也会磨损和老化;F 47、用穷举法测试是较现实的测试方法;T 48、面向数据设计方法一般都包括下列任务:确定数据结构特征;用顺序、选择和循环三种基本形式表示数据等步骤;F 49、测试计划、测试用例,出错统计和有关的分析报告一般不用长期保存;F 50、McCabe建议模块规模应满足:VG≤20;T 61.总体设计阶段要设计软件体系结构;F 62、软件即程序;T 63.采用对象设计系统时,首先建立系统的物理模型;T 64.用例图中,扩展关系表示为虚线箭头加“extend”;T 65.实现关系指定两个实体之间的一个合同;T 66.状态图通常作为对类图的补充;F 67.聚集关系是关联的一种形式,表示两个类之间的一般与特殊关系;T 68.一个完整的模型必然描述系统的静态和动态两个方面;F 69.状态图是对多个对象建模;T 70.在UML中,组件是指系统中可替换的物理部分;四简述题每小题5分,共10分1.测试用例测试用例Test Case是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个路径或核实是否满足某个特定需求;2.模块化模块化是指解决一个复杂问题时自顶向下逐层把系统划分成若干模块的过程,有多种属性,分别反映其内部特性;3.对象指行动或思考时作为目标的事物4.软件生命周期各阶段的任务是什么答:软件生命期分为7个阶段:1、问题定义:要解决的问题是什么2、可行性研究:确定问题是否值得解,技术可行性、经济可行性、操作可行性3、需求分析:系统必须做什么4、总体设计:系统如何实现,包括系统设计和结构设计5、详细设计:具体实现设计的系统6、实现:编码和测试7、运行维护:保证软件正常运行;5.软件重用的效益是什么答:1、软件重用可以显着地改善软件的质量和可靠性;2、软件重用可以极大地提高软件开发的效率;3、节省软件开发的成本,避免不必要的重复劳动和人力、财力的浪费;6.结构化程序设计方法的基本要点;1.采用自顶向下、逐步求精的程序设计方法:在需求分析、概要设计中,都采用了自定向下、逐层细化的方法;2.使用三种基本控制结构构造程序,分别是顺序、选择和循环,这三种基本结构的共同点是、单入口、单出口,为自顶向下、逐步求精的设计方法提供了具体的实施手段;3.采用主程序员的组织形式:指开发程序的人员组织方式应用由一个主程序员、一个后备程序员和一个程序管理员三人为核心,再加上一些专家、其他技术人员组成小组;7.什么是软件生命周期8.简述什么是回归测试回归测试-----在集成测试过程中每当一个新模块结合进来时,程序就发生了变化:建立了新的数据流路径,可能出现新的I/O操作,激活新的控制逻辑;这样变化有可能使原来正常的功能出现了问题;所谓回归测试是指重新执行已经做过的测试的某个子集,以保证上述变化没有带来非预期的错误;9.简述软件危机有哪几种表现软件开发和维护的过程中常遇到的问题1对于软件开发的成本和进度的估计很不准确;2开发的软件产品不能完全满足用户要求;3开发的软件可靠性差,软件产品质量差;4软件通常没有适当的文档资料;5软件的可维护性差;6软件开发生产率提高的速度,远远跟不上计算机应用普及深入的趋势,效率低;7软件价格昂贵;10.什么是软件工程Software Engineering,简称为SE是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科;它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面;11.简述需求分析的任务需求分析的任务就是:确定待开发的软件系统“做什么”;具体任务包括确定软件系统的功能需求、性能需求和运行环境约束,编制软件需求规格说明书、软件系统的验收测试准则和初步的用户手册12.详细设计的主要任务是什么答:详细设计的基本任务包括:1、为每个模块进行详细的算法设计2、为模块内的数据结构进行设计3、对数据库进行物理设计4、其他设计5、编写详细设计说明书6、评审13.自顶而下渐增测试与自底向上渐增测试各有何优缺点答:①自顶而下渐增测试优点:不需要测试驱动程序,能够在测试阶段的早期实现并验证系统的主要功能,而且能够尽早发现上层模块的接口错误;缺点:需要存根程序,底层错误发现较晚;②自底而上渐增测试优点与缺点和自顶而下渐增测试相反;14.软件生存期各阶段的主要任务;15.简述需求分析工作可以分成哪四个方面软件需求分析有三个基本原则需求分析阶段的基本过程包括四个方面:对问题的识别,分析与综合,制定规格说明以及评审;1问题识别,系统分析人员要研究计划阶段产生的可行性分析报告和软件项目实施计划;然后进行功能需求、性能需求、环境需求、可靠性需求安全保密需求、用户界面需求、资源使用需求等方面的工作;2分析与综合,分析员需从数据流和数据结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的限制,分析他们是否满足功能需求,是否合理;3制定规格说明,编写需求分析的文档;4需求分析评审;为保证软件需求定义的质量,评审应以专门指定的人员负责,并按规程严格执行;需求分析的原则1.必须能够传达和理解问题的数据域和功能域2.必须按自顶向下、逐层分解的方式对问顺进行分解和不断细化3.给出系统的逻辑模型和物理模型161、为了发现错误而执行程序的过程2、一个好的用例能够发现至今尚未发现的错误的测试3、一个成功的测试是发现至今尚未发现的错误的测试17.在面向对象的系统开发过程中,每个阶段需要建造的模型各有什么作用1、在面向对象的系统开发过程中,每个阶段要建造不同的模型2、需求分析阶段建造的模型用来捕获系统需求分析3、设计阶段的模型是分析模型的扩充,为实现阶段作指导性和技术性的解决方案4、实现阶段的模型是真正的源代码及编译后的组件5、发布阶段是描述系统物理上的架构18 .软件工程的原则是什么软件工程的原则是指围绕工程设计、工程支持以及工程管理在软件开发过程中必须遵循的原则;五、应用题20分1.某厂对部分职工重新分配工作的政策是:年龄有20岁以下者,初中文化程度脱产学习,高中文化程度当电工;年龄有20岁至40岁之间者,中学文化程度男性当钳工,女性当车工,大学文化程度者当技术员;年龄有40岁以上者,中学文化程度当材料员,大学文化程度当技术员;请用结构化语言,判定树或判定表描述上述问题的加工逻辑;职工重新分配工作的政策可描述为:若年龄在20岁以下则初中文化程度脱产学习高中文化程度当电工若年龄在20-40岁之间则中学文化程度男性当钳工女性当车工大学文化程度都当技术员若年龄在40岁以上者则中学文化当材料员大学文化当技术员初中脱产学习年龄<20 高中电工男钳工中学女车工工作分配规则年龄20-40高中技术员年龄>40 中学村料员高中技术员2.假设某航空公司规定,乘客可以免费托运重量不超过30kg的行李;当行李重量超过30kg时,对头等舱的国内乘客超重部分每公斤收费4元,对其他舱的乘客超重部分每公斤收费6元,对国外乘客超重部分每公斤收费比国内乘客多一倍,对残疾乘客超重部分每公斤收费比正常乘客少一半;用判定表表示每种条件组合相对应的计算行李费的算法;用判定树表示计算行李费的算法用判定树表示计算行李费的算法3.以自己开发软件可以是C、C++、VC++、VF、甚至是汇编、等其他语言的一个自选项目为背景,应用软件工程方法进行策划,要求必须给出项目描述,主要的软件工程过程的描述以及各阶段的主要内容。
《软件体系结构》习题一、单选题第一章概述1、软件开发模型大体上可以分为3种类型。
第1种是以软件需求完全确定为前提的;第2种是在软件开发初期阶段只能提供基本需求时采用的;第3种是以形式化为基础的变换模型。
A.协同模型B.瀑布模型C.变换模型D.迭代式模型2、根据《信息技术软件生存周期过程》标准,企业为实现ERP系统而准备招标书的活动属于生存周期基本过程中的过程,与该活动属于同一过程的活动还有。
A.总体规划B.系统实现C.获取D.供应A.启动B.准备投标C.系统需求分析D.项目管理3、螺旋模型是一种演进式的软件过程模型,结合了原型开发方法的系统性和瀑布模型可控性特点。
它有两个显著特点,一是采用的方式,逐步加深系统定义和实现的深度,降低风险;二是确定一系列,确保项目开发过程中的相关利益者都支持可行的和令人满意的系统解决方案。
A.逐步交付B.顺序C.循环D.增量A.实现方案B.设计方案C.关键点D.里程碑4、极限编程是一种重要的敏捷开发方法,包括策划、设计、编码和测试4个框架活动的规则和实践。
下面关于极限编程的叙述,错误的是。
A.极限编程中使用的重要技术是重构,既包括设计技术的重构,也包括构建技术的重构B.极限编程提倡在基本设计完成后立即进行编码实现,并进行测试C.极限编程活动中的关键概念之一是“结对编程”,推荐两个人面对同一台计算机共同开发代码D.极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即时的回归测试策略5、把整个软件开发流程分成多个阶段,每一个阶段都由目标设定、风险分析、开发和有效性验证以及评审构成。
A.原型模型B.瀑布模型C.螺旋模型D.V模型6、某企业使用了某厂商的软件产品,随后该厂商又推出了这种产品的新版本。
该企业信息中心正在考虑是否需要升级该软件。
信息中心未做出立即更新软件版本的决定,最可能的原因是。
A.需要等待用户部门做出支付软件版本升级费用的预算B.用户部门还没有要求软件版本升级C.虽然新版软件在社会上已普遍使用,但信息中心还是担心存在潜在问题D.新版软件与其他用户部门正在使用的软件不兼容7、某小型软件公司欲开发一个基于Web的考勤管理系统,客户对系统的基本功能、表现形式等要求并不明确。
不定项选择题:1.开发过程中最困难的一个环节是()。
A需求的收集B需求的分析C体系结构的设计D人员之间思想的交流2.用例是从()的观点对系统行为的一个描述。
A分析员B设计员C程序员D用户3.顺序图所表达的是基于()的动态交互。
A时间B空间C人员D对象4.多重性5,10表示()。
A5到10 B5或10 C5与10 D5对105.在找出了类的继承关系后,通常可以用()来表示最上层的基类。
A密封类B抽象类C接口D包6.使用用例的难点在于()。
A发现高层用例B发现用例之间的包含、扩展关系C研究用例中每个场景的步骤D将用例表示成用例图7.产生类图和得到用例这两个步骤,位于前面的是()。
A产生类图B得到用例C同时进行D没有固定的套式8.面向对象理论中,对象之间发送信号,在UML状态图里就是()。
A状态B变迁C事件D动作9.当代软件工程的特点是()。
A强调无缝集成B开发阶段之间可以重叠C开发阶段之间可以反复迭代D尽可能多花时间在分析和设计上10.GRAPPLE中最重要的段是()。
A需求收集B需求分析C设计D开发11.当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。
A命令B抽象工厂C策略D桥接12.当我们想将抽象部分和实现部分分离时,可以使用()模式。
A工厂方法B抽象工厂C策略D桥接13.面向对象系统中功能复用的两种最常用技术是()。
A类继承 B封装 C对象组合 D关联14.对象组合是通过获得()而在运行时刻动态定义的。
A对象 B对其它对象的引用C关联D继承15.在Lexi系统中,我们把所有文档元素都看作是图元,这样,它们就有了相同的()。
A接口B类型C名称D属性16.一个软件产品是否成功,因素有()。
A完整正确的需求分析B好的体系结构C细致全面的测试D合理的管理17.当需要在项目中定制自己的元素时,可使用()。
A注释B构造型C约束D包18.表示一个操作中的参数和返回值的数据类型的称呼是()。
第一章计算机体系结构的基本概念1.1名词解释:2.翻译——(基于层次结构)先把N+1级程序全部变换成N级程序之后,再去执行N级程序,在执行过程中,N+1级程序不再被访问。
3.解释——每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下一条N+1级指令,依此重复执行。
4.体系结构——程序员所看到的计算机的属性,即概念性结构与功能特性。
5.透明性——在计算机技术中,对本来存在的事物或属性,从某一角度来看又好像不存在的概念称为透明性。
6.系列机——在一个厂家生产的具有相同的体系结构,但具有不同的组成和实现的一系列不同型号的机器。
7.软件兼容——同一个软件可以不加修改地运行于体系结构相同的各档机器上,而且它们所获得的结果一样,差别只在于运行的时间不同。
8.兼容机——不同厂家生产的、具有相同体系结构的计算机。
9.计算机组成——计算机体系结构的逻辑实现。
10.计算机实现——计算机组成的物理实现。
11.存储程序计算机(冯·诺依曼结构)——采用存储程序原理,将程序和数据存放在同一存储器中。
指令在存储器中按其执行顺序存储,由指令计数器指明每条指令所在的单元地址。
12.并行性——在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的工作。
13.时间重叠——在并行性中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
14.资源重复——在并行性中引入时间因素,是根据“以数量取胜”的原则,通过重复设置资源,尤其是硬件资源,大幅度提高计算机系统的性能。
15.资源共享——是一种软件方法,它使多个任务按一定的时间顺序轮流使用同一套硬件设备。
16.同构型多处理机——由多个同种类型、至少同等功能的处理机组成、同时处理同一作业中能并行执行的多个任务的机器。
17.异构型多处理机——由多个不同类型、功能不同的处理机组成、串行完成同一作业中不同任务的机器。
软件工程必备期末复习题选择题1.软件设计中划分模块的一个准则是( C )。
A 低内聚低耦合B低内聚高耦合C高内聚低耦合D.高内聚高耦合2.( A )是用户和设计交换最频繁的方法。
A、原型化方法B、瀑布模型法C、螺旋模型方法D、构件组装模型3. 试判断下列叙述中,哪个些是正确的( C )。
a、软件系统中所有的信息流都可以认为是事务流b、软件系统中所有的信息流都可以认为是变换流c、事务分析和变换分析的设计步骤是基本相似的A、aB、bC、cD、b和c4.软件工程方法学的目的是:使软件生产规范化和工程化,而软件工程方法得以实施的主要保证是( C )A、硬件环境B、软件开发的环境C、软件开发工具和软件开发的环境D、开发人员的素质5.20世纪50年代以来,出现了许多不同的程序设计语言,下列语言中哪个语言是低级语言( D )A、PASCALB、VISUAL BASICC、C++D、汇编语言6. 软件测试的目的是?( D )A.软件的正确性B.找出软件系统中存在的所有错误C.证明软件系统中存在错误D.尽可能多的发现软件系统中的错误7.使用白盒测试方法时,确定测试数据应根据( A )和指定的覆盖标准。
A、程序的内部逻辑B、程序的复杂程度C、该软件的编辑人员D、程序的功能8.软件维护工作的最主要部分是( C )。
A、纠正性维护B、适应性维护C、完善性维护D、预防性维护9.PDL是( B )语言。
A.高级程序设计语言B、伪码式C、中级程序设计语言D、低级程序设计语言10.软件的结构化设计(SD)方法中,一般分为概要设计和详细设计两阶段,其中详细设计主要是要建立( C )。
A、软件结构B、软件过程C、软件模型D、软件模块11.在数据流图中,○(椭圆)代表( B )A、数据流B、转换C、数据源D、外部实体12.总体设计目的是确定整个系统的( D )。
A、规模B、测试方案C、费用D、功能及模块结构13. 检查软件产品是否符合需求定义的过程称为( A )。
概述部分1、请分析软件危机的主要表现和原因。
表现:a)软件成本日益增加:开发、部署与应用成本高b)开发进度难以控制:不能按期完成c)软件质量差:错误率高,不能满足用户的需求,没有生命力d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误原因:1.用户需求不明确2.缺乏正确的理论指导3.软件规模越来越大4.软件复杂度越来越高2、请说明软件规模与复杂度对软件过程的影响及解决方法。
软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。
应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。
3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束)软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。
它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
4、请简述软件重用的含义和意义。
可重用元素包括哪些种类?软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
(含义)可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。
(种类)可重用的元素越大,我们就说重用的粒度(Granularity)越大。
软件重用是软件产业工业化、工程化的重要手段。
软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。
(意义)5、请简述常用的构件实现模型及其意义。
实现模型:1.CORBA2.EJB / DCOM / COM+意义:这些模型通常都定义了构件的实现方式、接口定义、访问方法等。
符合这些标准的任何构件都有很高的重用能力。
描述部分6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。
数据视图风格部分7、什么是软件体系结构的风格?它在软件开发过程中具有何种意义?软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。
(风格)利用软件体系结构风格,可以在不同的软件体系结构设计过程中重复使用同一个体系结构。
这样可以将软件复用粒度提高到软件体系结构一级。
通过学习软件体系结构风格,可以在软件体系结构设计过程中,采用成熟的体系结构风格,使得所设计的软件体系结构有良好的组织结构和通用性。
8、常见的软件体系结构风格主要有哪些种类?数据流风格:批处理序列,管道/过滤器调用/返回风格:主程序/子程序,面向对象风格,层次结构独立构件风格:进程通信,事件系统虚拟机风格:解释器,基于规则的系统仓库风格:数据库系统,超文本系统,黑板系统9、什么是虚拟机体系结构风格?这类软件主要由哪几个部分组成?(选择或者填空)通过软件手段建立一个虚拟的机器平台,并在该平台上解释运行所谓的“程序”代码。
(什么事虚拟机体系风格)正在被解释的程序(组成部分)虚拟机引擎构件用来保存被解释程序的状态的构件用来保存虚拟机引擎状态的构件10、请说明C/S结构软件的开放性和可扩展性特点的含义。
开放性:由于客户端和服务器端提供开放的、标准的接口,使得在软件系统中采用不同的客户端开发工具和服务器端DBMS产品。
开放性本身也意味着开发和维护成本的降低。
可扩展性:在客户/服务器结构的系统中,可以方便地增加客户机数量而不影响整个系统。
有的系统甚至可以增加服务器,提高系统的数据处理能力和服务性能。
11、请说明三层C/S结构和B/S结构相对于传统C/S结构的优点。
(从传统C/S结构的缺点入手)a.胖客户机.b.用户界面不统一,不利于推广。
c.软件的维护和升级困难。
d.安全性不高。
相对优点是:结构合理、用户界面统一、维护升级简单、安全性高12.请设计一个具有B/S结构(或三层C/S结构)登录模块的体系结构,并说明每层的作用。
(基本不考、因为编程题已经有了)B/S结构:(1)第一层:客户层(或表现层、界面层),第二层:业务逻辑层(或应用层、功能层、应用服务器层),第三层:数据层(2)第一层只有浏览器,通过访问第二层的网页实现用户界面,即接受用户的名称、密码的输入,并向第二层传送用户名和密码,最后将登录结果显示出来。
(3)第二层接受第一层的用户名和密码,并通过访问第三层判断用户合法性,最后将登陆结果以网页形式返回给第一层。
(4)第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
三层C/S结构:(1)第一层:客户层(或表现层、界面层),第二层:业务逻辑层(或应用层、功能层、应用服务器层),第三层:数据层(2)第一层实现用户界面,并通过网络连接或进程通信形式向第二层提出服务请求,最后将登录结果显示出来。
(3)第二层实现业务逻辑,即接受第一层的服务请求,并执行相应功能(业务)代码,最后将处理结果返回给第一层;业务功能需要访问数据时向第三层提出数据访问请求。
(4)第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
12、MVC风格的含义MVC风格将各个构件划分成各自独立的三个部分:模型、视图和控制器,分别对应商务逻辑、外观呈现和请求处理。
设计部分13、软件体系结构分析与设计的关键环节包括哪几部分?需求分析、领域建模;关键需求的确定、概念性体系结构的设计、体系结构细化、体系结构验证。
14、软件需求的典型分类包括哪些种类?15、运行期质量属性和开发期质量属性的划分:(大概看一下、选择填空)16、什么是体系结构设计相关的领域建模?对需求分析的细化是软件结构设计相关的领域建模。
领域建模是建立领域模型的过程,而领域模型是对实际问题领域的抽象表示。
领域建模专注于分析问题领域本身,发掘重要的业务领域概念并建立它们之间的关系。
一般情况下,领域模型可以用UML类图或状态图表示。
17、鲁邦图包括哪几种对象?它们之间存在哪几种建模规则?还有哪些规则是禁止的?边界对象、控制对象、实体对象18、体系结构细化过程中采用的“5视图法”中包括哪些视图,通常都用什么方式描述?(1)逻辑视图:着重考虑功能需求,主要关注行为或指责的划分,并将不同的职责分配给逻辑层、功能模块或类等不同粒度的逻辑单元。
可以用包图、类图、对象图(静态部分)或序列图、协作图、状态图和活动图(动态内容)来描述。
(2)开发视图:主要考虑开发期质量属性,如可扩展性、可重用性、可移植性、易理解性、易测试性等等,其关注点是软件模块的实际组织方式。
可以用包图、类图、构件图表述。
(3)数据视图:关注点是持久化数据的组织,一般采用数据流图或E-R图表示,或者用带对象流的活动图代替数据流图,用类图代替E-R图。
(4)运行视图:着重考虑运行期质量属性,如性能、可伸缩性、持续可用性等,主要关注进程、线程、对象等运行期概念,以及相应的并发、同步、通信等问题,可以用包图、类图、对象图(静态部分)或序列图、协作图(动态部分)表述。
(5)物理视图:主要考虑安装和部署需求,描述运行环境的计算机、网络、硬件设施等情况。
同时,物理视图还必须关注如何配置硬件环境来配合软件的特殊质量属性。
一般用部署图和构件图描述。
分析与评估部分19、什么是软件的性能质量属性,应由什么指标来衡量?性能:指系统的响应能力,通常用单位时间内所处理的事务数量或完成某个事务处理所需要的时间对系统的性能进行定量表示。
20、什么是软件的可靠性质量属性,应由什么指标来衡量?(MTTF、MTBF)可靠性:软件系统在意外或错误使用的情况下,维持系统功能特性的基本能力,通常用平均失效等待时间和平均失效间隔时间来衡量。
(两个的比值接近1最好)21、什么是软件的可修改性,主要包含哪几个方面的内容?可修改性:是指能够快速地、以较高的性价比对系统进行变更的能力。
通常以某些具体的变更为基准,并通过变更的代价来衡量可修改性。
主要包括以下几个方面:1、可维护性2、可扩展性3、结构重组4、可移植性22、软件体系结构评估方法可以分为几类,每类又可包含哪些具体方法?基于质询(调查问卷、检查表)、基于场景(SAAM、ATAM)、基于度量23、什么是基于场景的评估方法?常用的基于场景的评估方法是什么?(SAAM、ATAM)这种评估方法分析软件体系结构对场景的支持程度,从而判断该体系结构对这一场景所代表的质量属性的满足程度。
例如,用一系列对软件的修改来反映可修改性方面的特性,用一系列攻击性操作来测试安全性方面的要求等等。
24、请用图示法表示SAAM方法的主要步骤及其关系。
典型软件结构部分25、典型的操作系统体系结构有哪几种,各自的典型代表是什么操作系统?a)模块结构:MS-DOS,uc/OSb)分层结构:THE系统、Unix系统/Linuxc)虚拟机结构:VM/370系统d)客户/服务器结构:“微内核”操作系统26、操作系统的典型质量属性:(时间比值越接近1,质量属性越好)安全、可靠、可维护、可移植、性能(a+b/a+b+c)27、请分析X window标准的三个组成部分的作用,并与传统C/S结构进行逻辑功能方面的比较。
X Server:处理输入/输出、维护X Client定义的资源、维护与X Client之间的网络连接。
X Client:指需要用图形界面与用户交互的应用程序。
X Protocol:X Client和X Server之间的通信规约,所有请求和事件都通过X 协议传递。
分布式计算部分28、请说明分布式结构软件的计算资源共享特点。
在分布式结构软件中,各个软件构件在物理上可以分布在不同的计算机中。
各个构件之间通过相互调用,完成统一的软件功能。
各个构件分别使用不同的计算机完成执行过程,从而达到计算资源共享的目的。
对于软件的使用者来说,他们感觉不到多个计算机以及相互之间的调用关系。
29、假设要实现基于RMI的分布式阶乘运算软件,请说明主要的开发、部署和运行步骤。
要求说明各个组成部分提供的主要功能。
开发步骤:(1)应编写远程接口及接口实现类。
远程接口定义供远程客户调用的方法(如long fact(int n)),而远程接口实现类应编写具体的阶乘运算代码。
(2)在远程接口实现类的基础上,生成远程接口实现类的存根类。
(rmic命令)(3)编写服务器类,该类主要完成远程接口实现类的实例化及将实例化对象绑定到某一命名地址上。
(4)编写客户端类,该类通过名称查找远程接口实现类的实例化对象,查找成功后通过具体参数调用阶乘方法,并得到阶乘结果。
部署和运行步骤:(1)将客户端类、存根类和远程接口类部署到客户端机器上。
(2)将服务器端类、远程接口实现类和远程接口类部署到服务器端。
(3)在服务器端启动RMI注册器。
(rmiregistry命令)(4)启动服务器端。
(5)运行客户端,通过访问服务器得到运算结果。