软件设计与体系结构复习参考
软件设计与体系结构复习题
软件设计与体系结构复习题软件设计与体系结构复习题软件设计与体系结构是计算机科学与技术领域中的重要课程,它涉及到软件系统的设计、构建和维护。
在这篇文章中,我们将回顾一些与软件设计与体系结构相关的复习题,以帮助读者巩固知识和提高理解。
一、软件设计原则1. 什么是SOLID原则?请简要介绍每个原则的含义。
SOLID原则是面向对象设计中的五个基本原则,分别是单一职责原则、开放封闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。
单一职责原则指一个类只应该有一个引起变化的原因;开放封闭原则指软件实体(类、模块、函数等)应该对扩展开放,对修改关闭;里氏替换原则指子类对象应该能够替换父类对象而不影响程序的正确性;接口隔离原则指客户端不应该依赖它不需要的接口;依赖倒置原则指高层模块不应该依赖于低层模块,它们都应该依赖于抽象。
2. 什么是DRY原则?它的目的是什么?DRY原则(Don't Repeat Yourself)指不要重复自己。
它的目的是避免代码的重复,提高代码的可维护性和可复用性。
通过遵循DRY原则,可以减少代码的冗余,降低了修改代码时的风险,同时也提高了代码的可读性。
二、软件体系结构1. 什么是软件体系结构?它有什么作用?软件体系结构是指软件系统的整体结构和组织方式,它描述了软件系统中各个组件之间的关系和交互。
软件体系结构有助于理解系统的整体架构,提供了对系统进行设计、开发和维护的指导方针。
2. 请简要介绍常见的软件体系结构模式。
常见的软件体系结构模式包括分层结构、客户端-服务器结构、发布-订阅结构、管道-过滤器结构等。
分层结构将系统划分为若干层次,每一层次负责不同的功能;客户端-服务器结构将系统划分为客户端和服务器两部分,客户端发送请求,服务器提供服务;发布-订阅结构中,发布者发布消息,订阅者订阅感兴趣的消息;管道-过滤器结构中,数据通过一系列的过滤器进行处理。
三、设计模式1. 什么是设计模式?为什么使用设计模式?设计模式是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
软件体系结构知识点复习
一、什么是软件系统结构软件体系结构也称为软件构架(有时简称构架),是系统的一个或多个结构,它包括:软件的组成元素(组件),这些元素(组件)的外部可见特性,以及这些元素(组件)之间的相互关系。
含义:(1)系统由一个或多个结构组成,其中任何一个结构并不能与构架等同。
(2)每个系统都有一个体系结构。
(3)软件体系结构是系统的抽象。
(4) 构架定义了软件元素以及各元素间的交互关系。
(5) 以往作为体系结构传递的线框图,事实上并等同于体系结构。
二、构架商业周期(ABC)1.构架由什么决定?构架是否由系统需求决定?×软件构架是技术、商业和社会因素共同作用的结果。
2. 构架从哪里来?(影响构架的因素)影响构架的因素主要包括:❑系统涉众(stakeholder)、主要有:管理者:成本要低,人人都得干活营销人员:特性突出、投放市场快、成本低、可与同类产品相匹敌。终端用户:行为、性能、安全性、可靠性、易用性。维护人员:可修改性强。客户:成本低、及时交付、不要频繁修改。❑开发组织・组织内对现存构架的重用・对某个基础设施进行长期的商业投资以实现某些战略目标・开发组织本身的机构也会影响构架的形成❑构架师的素质和经验构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。
❑技术环境当前技术发展水平代表了某个时代的构架师的普遍素质和经验,对架构有很大的影响力。
❑其它因素其它如社会、法律、人文环境等都会对构架产生影响。
3.构架的反影响力・构架会影响开发组织的结构・构架会影响开发组织的目标・构架会影响客户对下一个系统的要求・构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计・一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境。
4.构架的商业周期软件构架是技术、商业和社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业和社会环境,从而影响未来的软件构架。
软件体系结构复习题
判断题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)协作图强调对象之间的关系,而时序图强调一组对象之间错作调用的时间顺序。
软件体系结构课件_软件体系结构总复习
第一章 序论
软件体系结构的定义 Software Architecture is the structure or structures of
the system, Which comprise software elements, the externally visible properties of these Elements, and the relations among them
模块结构 组件-连接器结构 分配结构
分解结构 使用结构 分层结构 类或泛化
模块结构
分解结构 使用结构 分层结构 类或泛化
组件-连接器结构
组件 连接 连接的本质 连接器 组件间的联系
分配结构
什么是分配结构
硬件、团队结构、文件系统都会与软件构 架进行交互,所以必须考虑这一类结构。
第八章 构架编档
什么是架构编档,简要表达软件构架编档 要包含的主要内容。
第七章 软件产品线
产品线的概念 一个软件产品线是满足以下性质的
一组软件产品: -共享一组相同的、可管理的特性
的集合 -满足一类特定的市场需求
公共核心资产库(core assets base) COTS〔Commercial Off-the-Shelf〕 核心资产开发活动的输入和目标 产品开发活动中输入/输出关系 使用产品线的好处和代价
元进行操作 连接件:控制 根据控制策略的不同,分为: 数据库〔知识库〕:系统由输入数据流中的事务
信息来驱动,即输入数据流中的事务指令可以触 发系统相应进程的执行, 黑板:如果系统由中央数据结构的当前状态来驱 动,那么黑板模型。
黑板风格
Com它一些事物 元素外部可见的属性是指元素对其它元素来说 提供的效劳 需要的效劳 共享资源的使用等 各元素间的交互关系也可能有多种 例如:细划分,同步,调用,包含…
软件设计师计算机组成与体系结构
[模拟] 软件设计师计算机组成与体系结构选择题第1题:阵列处理机属于______计算机。
A.SISDB.SIMDC.MISDD.MIMD参考答案:B第2题:采用______不能将多个处理机互连构成多处理机系统。
A.STD总线B.交叉开关C.PCI总线D.Centronic总线参考答案:C每一条指令都可以分解为取指、分析和执行3步。
已知取指时间t<sub>取指</sub>=5△t,分析时间t<sub>分析</sub>=2△t,执行时间t<sub>执行</sub>=5△t。
如果按顺序方式从头到尾执行完500条指令需(3) △t;如果按照[执行]k、[分析]k+1、[取指]k+2重叠的流水线方式执行指令,从头到尾执行完500条指令需(4) △t。
第3题:A.5590B.5595C.6000D.6007参考答案:C第4题:A.2492B.2500C.2510D.2515参考答案:C第5题:两个同符号的数相加或异符号的数相减,所得结果的符号位SF和进位标志CF进行______运算为1时,表示运算的结果产生溢出。
A.与B.或C.与非D.异或参考答案:D高速缓存Cache与主存间采用全相联地址映像方式,高速缓存的容量为4MB,分为4块,每块1MB,主存容量为256MB。
若主存读写时间为30ns,高速缓存的读写时间为3ns,平均读写时间为3.27ns,则该高速缓存的命中率为(6) %。
若地址变换表如表8-1所示,则主存地址为8888888H时,高速缓存地址为(7) H。
第6题:A.90B.95C.97D.99参考答案:D第7题:A.488888B.388888C.288888D.188888参考答案:D第8题:某指令流水线由5段组成,各段所需要的时间如图8-1所示。
连续输入10条指令时的吞吐率为______。
A.10/70△tB.10/49△tC.10/35△tD.10/30△t参考答案:C第9题:若内存按字节编址,用存储容量为32k×8比特的存储器芯片构成地址编号为A0000H~DFFFFH的内存空间,则至少需要______片。
软件体系结构试题(试题+答案)
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 )原则的典型应用。
【软件体系结构】 复习
第一章1. 体系结构发现、演化、重用体系结构发现解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。
由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称之为软件体系结构演化。
体系结构重用属于设计重用,比代码重用更抽象。
由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。
2.基于软件体系结构的软件开发方法:问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现3.评价软件体系结构的方法权衡分析方法(ATAM方法),软件体系结构分析方法(SAAM方法),中间设计的积极评审(ARID方法)第二章1. 建模结构模型:研究结构模型的核心是体系结构描述语言。
以体系结构的构件,连接件和其他概念来刻画结构。
并力图通过结构来反映系统的重要语义内容。
框架模型:与结构模型类似,但不太侧重细节,而侧重于整体结构。
动态模型:是对结构和框架模型的补充,研究系统大颗粒的行为性质。
过程模型:研究构造系统的步骤和过程,结构是遵循某些过程脚本的结果。
功能模型:认为体系结构是由一组功能构件按层次组成,下层向上层提供服务。
功能模型可以看作是一种特殊的框架模型。
4+1视图模型:逻辑视图、进程视图、物理视图、开发视图和场景视图逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。
这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图开发视图通过系统输入输出关系的模型图和子系统图来描述。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上。
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
软件体系结构-复习题
《软件体系结构》习题一、单选题第一章概述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.需求分析:分析用户需求,明确软件系统的功能、性能、可靠性等方面的要求。
2.设计原则:包括开放封闭原则、单一职责原则、里氏替换原则、接口分离原则等。
3.设计模式:是一套被反复使用的、经过验证的、用来解决在软件设计过程中常见问题的解决方案。
常见的设计模式有工厂模式、单例模式、观察者模式、策略模式等。
4.UML(统一建模语言):是一种用于软件系统建模的标准化语言。
包括用例图、类图、时序图、状态图等。
5.架构模式:是一种包含一组满足特定需求的技术决策,指导解决软件系统中基本设计问题的模式。
常见的架构模式有分层架构、客户端-服务器架构、发布-订阅架构等。
软件体系结构的主要知识点包括:1.分层架构:将软件系统分为若干层,每一层负责处理特定的功能或任务,层与层之间通过接口进行通信。
2.客户端-服务器架构:将软件系统分为客户端和服务器两部分,客户端向用户提供界面和交互功能,服务器处理客户端发送的请求并返回相应结果。
3.分布式架构:将软件系统的各个组件分布在不同的物理节点上,通过网络进行通信。
4.微服务架构:将软件系统拆分为若干个小型服务,每个服务负责一个特定的功能,通过接口和消息进行通信。
5.事件驱动架构:系统中的各个组件通过发布-订阅模式进行通信,一个组件发生变化时通知其他相关组件。
在实际应用中,软件设计与体系结构的知识点通常会结合起来使用,以满足软件系统的需求。
同时,不同的项目可能有不同的设计与体系结构要求,开发人员需要根据具体项目的需求来选择适合的设计和架构模式。
软件设计与体系结构练习题参考答案
一、选择题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、测试驱动开发的概念及其积极作用。
编写所有产品代码的目的都是为了使失败的单元测试能够通过。
软件架构复习题及答案
不定项选择题: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.表示一个操作中的参数和返回值的数据类型的称呼是()。
软件设计章节练习复习题
2.1.1.软件工程标准编制的层次分为5个,分别为:2.GB/T 25000.51-2010,软件工程软件产品质量要求和评价(SQUARE) 商业现货(COTS)软件产品的质量要求和测试细则属于什么层次的标准A.国际标准B.国家标准C.行业标准D.企业标准3.ISO 9000系列质量管理与质量保证标准属于哪个层次的标准A.国际标准B.国家标准C.行业标准D.企业标准4.IEEE Std 1012-2012,系统和软件验证与确认标准哪个层次的标准?A.国际标准B.国家标准C.行业标准D.企业标准解析:IEEE 美国电气与电子工程师学会,属于行业标准5.GJB与GB,哪一个是行业标准A.GJBB.GB解析:GB为中国国家标准,GJB为中国国家军用标准2.31.计算机软件 =______+_______+_______.2.造成软件危机的原因不包括A.缺乏管理经验B.需求不断变化C.预算不足D.问题复杂3.造成软件危机的原因包括A.缺乏管理经验B.需求不断变化C.预算不足D.问题复杂4.软件工程的要素有哪三个?5.以下属于软件开发过程模型的有A.瀑布模型B.螺旋模型C.喷泉模型D.快速原型模型E.W模型6.软件开发过程模型主要有:_______、_______、_______、_______。
7.软件的生存周期通常包括可行性研究、需求分[简答题]1.软件生命周期“V模型”,简述各测试阶段的关注点正确答案:2.软件生命周期V模型中,各测试阶段的依据是什么?正确答案:3.分析瀑布模型与V模型的优缺点正确答案:1、瀑布模型优点:1)为项目提供了按阶段划分的检查点.2)当前一阶段完成后,您只需要去关注后续阶段.3)可在迭代模型中应用瀑布模型.缺点:1)在项目各个阶段之间极少有反馈.2)只有在项目生命周期的后期才能看到结果.3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段.2、V模型优点:简单、高效缺点:1)容易让人误解为测试是在开发完成之后的一个阶段;2)由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug 可能不容易找到其根源,并且代码修改起来很困难;3)实际中,由于需求变更较大,导致要重复变更需求、设计、编码、测试。
软件体系结构与设计模式期末复习
体系结构期末复习一、选择题(一)1. 设计模式的基本原理是( C )A.面向实现编程B.面向对象编程C.面向接口编程D.面向组合编程2. 设计模式的两大主题是( D )A.系统的维护与开发B.对象组合与类的继承C.系统架构与系统开发D.系统复用与系统扩展3. 依据设计模式思想,程序开发中应优先使用的是( A )关系实现复用。
A.组合聚合B.继承C.创建D. .以上都不对4. 关于继承表述错误的是( D )A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法。
B.泛化类(超类)可以显式地捕获那些公共的属性和方法。
特殊类(子类)则通过附加属性和方法来进行实现的扩展。
C.破坏了封装性,因为这会将父类的实现细节暴露给子类。
D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类。
5. 常用的设计模式可分为( A )A.创建型、结构型和行为型B.对象型、结构型和行为型C.过程型、创建型和结构型D.抽象型、接口型和实现型6. “不要和陌生人说话”是对( D )设计原则的通俗表述。
A.接口隔离B.里氏代换C.依赖倒转D. .迪米特法则7. 在适配器模式中,对象适配器模式是对( A )设计原则的典型应用A.合成聚合B.里氏代换C.依赖倒转D. .迪米特法则8. 将一个类的接口转换成客户希望的另一个接口,这句话是对(C)设计模式的描述A.策略模式B.桥接模式C.适配器模式D.单例模式9. 以下设计模式中属于结构模式的是( D )A. 观察者模式B.单例模式C.策略模式D.外观模式10. 以下不属于对象行为型模式是( D )A. 命令模式B.策略模式C.访问者模式D.桥接模式11. 下面的类图表示的是哪个设计模式( D )A. 抽象工厂模式B.观察者模式C.策略模式D.桥接模式12. Open-Close开闭原则的含义是一个软件实体( A )A.应当对扩展开放,对修改关闭。
B.应当对修改开放,对扩展关闭。
(完整版)软件体系结构复习题及答案
概述部分1、请分析软件危机的主要表现和原因。
表现:a)软件成本日益增加:开发、部署与应用成本高b)开发进度难以控制:不能按期完成c)软件质量差:错误率高,不能满足用户的需求,没有生命力d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误原因:1.用户需求不明确2.缺乏正确的理论指导3.软件规模越来越大4.软件复杂度越来越高2、请说明软件规模与复杂度对软件过程的影响及解决方法。
软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。
应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。
3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束)软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。
它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
4、请简述软件重用的含义和意义。
可重用元素包括哪些种类?软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
(含义)可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。
(种类)可重用的元素越大,我们就说重用的粒度(Granularity)越大。
软件重用是软件产业工业化、工程化的重要手段。
软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。
(意义)5、请简述常用的构件实现模型及其意义。
实现模型:1.CORBA2.EJB / DCOM / COM+意义:这些模型通常都定义了构件的实现方式、接口定义、访问方法等。
符合这些标准的任何构件都有很高的重用能力。
描述部分6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。
数据视图风格部分7、什么是软件体系结构的风格?它在软件开发过程中具有何种意义?软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。
软件设计及体系结构课后习题答案(秦航)
软件设计与体系结构答案目录:第一章 (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.对错题
4.简答题
5.综合题
复习题:
名词解释
软件体系结构
软件重用
连接器
软件体系结构生命周期模型
产品线(Production line)
“4+1”视图模型
连接及连接的种类
体系结构描述语言
简答题
1.简单介绍管道和过滤器风格,并分析其优缺点。
2.通用体系结构风格都有哪些类?各自包含哪些?
3.质量属性主要考虑从哪3个方面描述体系结构属性?它们的关系如何?
4.简述为什么要学习设计模式?
5.体系结构质量评价的主要方式有哪些?
6.选取你所熟悉的三个设计模式,详细谈谈它们的意图、设计动机和适用性。
7.举例说明层次设计结构在软件和各种设计中的重要性。
8.简要说明三层c/s体系结构的优点。
9.简单介绍基于事件的隐式调用风格,并分析其优缺点。
10.采用面向对象方法设计软件系统时,子系统的划分常采用水平划分或垂直划分的方式,请说明这两种划分所得子系统的特点。
11.为什么要设计独立性强的模块以及如何判断模块的独立性?
12.简述框架技术的基本特征。
13.软件体系结构的根本目的是什么?
14. 各种类型设计模式
15 试简述一下软件产品线的双生命周期模型
16.软件体系结构测试的内容与准则是什么?
综合题
1.熟悉上下文关键字KWIC(Key Word in Context)检索系统的4中体系结构设计
2. 掌握组合、桥接、创建型设计模式,能够程序填空
3. 系统的用例图,识别系统的主要类,会画类图(包含主要属性和操作)和UML时序图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
View 是模型在屏幕上的表示,模型在进行操作后,其结果是通过视图显示的。 Controller 用于管理用户与视图发生的交互,定义用户界面对用户输入的响应方式。一旦 用户需要对模型进行处理,不能直接执行模型,而必须通过控制器间接实现的。 三、 1、针对你曾经开发的某个软件系统,总结出哪些质量属性对此系统最重要以及描述这些质 量属性的方法。 2、 工厂方法模式与抽象工厂模式的区别与联系? 3、 针对某个你感兴趣的软件系统,介绍它的商业动机。 四、 1、请简述并画出“4+1”视图模型 答案:“4+1”视图模型即从 5 个不同的视角(逻辑视图,进程视图,物理视图,开发视图 和场景视图)来描述软件体系结构。每个视图之关心系统的一个侧面,5 个视图结合在一起 才能反映系统的软件体系结构的全部内容。
3、 内聚度、耦合度分别指什么?为什么软件设计要追求高内聚、低耦合? 答: 内聚度是一个模块内部各成分之间关联程度的度量;耦合度是对模块间关联程度的度量。 软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就 是高内聚低耦合。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据 传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能 减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,同时每一个 类完成特定的独立的功能,实现高内聚,保证系统设计顺利进行。 内聚和耦合密切相关,同其 它模块存在强耦合关系的模块常意味这弱内聚,强内聚常意味着弱耦合。 4、简要叙述软件设计在软件工程中所处的位置和重要性 答: 所处的位置:软件需求分析(需求规格说明(软件设计(设计文档(软件编码。 重要性: (1)是对软件需求的直接体现; (2)为软件实现提供直接依据; (3)将综合考虑软件系统的各种约束条件并给出相应方案; (4)软件设计的质量将决定最终软件系统的质量; (5)及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
5、软件体系结构与软件设计有何关系?软件体系结构的出现有何必然性和重要意义? 答: 软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能 在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的 步骤。 软件体系结构的意义:软件体系结构将构件以及构件之间的连接作为软件体系结构的基本 组成部分。软件体系结构使软件复用从代码复用发展到设计复用和过程复用,为不同的人提供 了共同的语言,体现了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共 享与复用,基于体系结构的软件开发提供了有力的支持。
二、
1、 在面向对象开发方法中,对象、类、继承、聚集、多态、消息等概念分别指什么? 答: (1)对象。对象是现实世界中个体或事物的抽象表示,是其属性和相关操作的封装。属 性表示对象的性质,属性值规定了对象所有可能的状态。对象的操作是指该对象可以展现 的 外部服务。 (2)类。类是某些对象的共同特征(属性和操作)的表示。对象是类的实例,类是对象 创建的模板。 (3)继承。类之间的继承关系是实现现实世界中遗传关系的直接模拟,它表示类之间的内 在联系以及对属性和操作的共享,即子类可以沿用父类(被继承类)的某些特征。子类也可以 具有自己独有的属性和操作。 (4)聚集。除遗传关系外,现实世界中还普遍存在着部分整体关系。这种关系在面向对象 方法学中表示为类之间的聚集关系。在聚集关系下,部分类的对象是整体类对象的一个 组成部分。 (5)多态。多态指父类及其子类中,对外接口的定义形式相同,却可以对应多种接口的实 现形态。 (6)消息。消息传递是对象与其外部世界相互关联的唯一途径。
2、试简述一下软件产品线的双生命周期模型
第3页 共4页
现有系 统需求
领域工程 领域分析
领域设计
领域实现
领域需求模型
领域体系
领域可重用构 件和生成器
新系统 需求
应用工程 需求分析系ຫໍສະໝຸດ 设计系统实现新系统
第4页 共4页
6、简述 MVC,介绍各自的作用和用途。 MVC 是模型(Model),视图(View)和控制 Controller)是三个单词的缩写。MVC 模式的目的 就是实现 Web 系统的职能分工。 Model 是应用对象,所有的操作都在这里实现,它若需要取得视图中的对象或更新视图, 需通过控制器来进行处理。
一、
1、软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。 2、采用层次式软件体系结构,将产品的系统构件模型定义为 4 个层次,分别为:系统构件 层、通用类构件层、业务构件层、表现层。 4、软件体系结构的生命周期模型主要分为需求分析阶段、建立软件体系结构阶段、设计阶 段和实现阶段。 5、三层 C/S 结构风格是由表示层、功能层和数据层构成的。 6、可重用的体系结构描述框架可以从需求视点、设计视点、实现视点和测试视点四个视点 出发描述体系结构。 7、Web 服务开发生命周期分为:构建、部署、运行、管理四个阶段。 8、MVC 模式的中的 M,V,C 分别对应 Model、View、Controller 三个单词。 9、可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。包括可维护性、 可扩展性、结构重组、可移植性 4 个方面。 10、软件重用是为了解决软件危机。
2、简述模块化与信息隐藏在软件设计中的意义。 答: 软件系统的模块化是指整个软件被划分成若干单独命名和可编址的部分,称之为模块,这
第1页 共4页
些模块可以被组装起来满足整个问题的需求。在软件设计中实现了功能划分把复杂的大的功能 划分成简单的小的模块结构,尽量降低每个模块的成本,减少接口,确保软件总成本最低。 模块化使开活动更加简单的一个重要因素是模块的信息隐藏,即一个模块的开发者不必看到模 块的内部,只需要知道其接口即可,使开发者的复杂性降低,不仅支持模块的并行开发,而且 还可以减少测试和后期维护的工作量。