软件设计与体系结构期末考试2017-2018学年模拟试题参考答案
软件设计与体系结构题目与答案
软件设计与体系结构题目与答案1.各种性能指标及如何到达各种性能指标的方法(1)防止变异模式:是如何设计对象,子系统和系统,使这些元素内部的变化或不稳定性不会对其他元素产生不良影响。
解决方案:识别预测的变化或不稳定之处,分配职责用以创建稳定借口。
(2)依赖反转原理:把你的类从局的现实中隔离开,使他们依赖于抽象类或接口。
它促进了代码面向接口而不是实现,这通过保证对实现的低耦合来增加系统的灵活性。
2.常用的中间件有那几种类型(1)常见的对象请求代理架构(2)面向消息的中间件(3)J2EE(4)消息代理(5)业务过程代理3.有那些常见架构风格(1)管道和过滤器架构风格(2)面向对象风格(3)隐式调用风格(4)客户-服务器风格(5)分层风格(6)仓库风格(7)解释程序风格(8)过程控制风格4.架构师需要的核心技能是什么(1)涉众之间的交流(2)技术知识(3)软件工程学(4)风险管理5.什么是软件架构软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。
软件架构是一个系统的草图。
软件架构描述的对象是直接构成系统的抽象组件。
各个组件之间的连接则明确和相对细致的描述组件之间的通讯。
在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。
在面向对象领域中,组件之间的连接通常用接口(计算机科学)实现。
6.什么是架构风格一组原则。
你可以把它看成是一组为系统家族提供抽象框架的粗粒度模式。
7.什么是架构视图一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,从而省略了此方面无关的实体。
8.各种架构风格的组件和连接器是什么1.管道和过滤器架构风格:适用于需要定义一系列的执行规则数据的独立运算,组件在输入时读数据流,在输出时产生数据流组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。
软件设计及体系结构课后题答案
【题型】1.选择20道2.填空10道3.简答5或6道4.编程题2道【重点】1.软件危机的表现软件开发进度难以预测软件开发成本难以控制用户对产品功能难以满足软件产品质量无法保证软件产品难以维护2.引发软件危机的原因用户需求不明确缺乏正确的理论指导软件开发规模越来越大软件开发复杂度越来越高3.体系结构概念构件、构件之间的关系、集成构件的模式及约束条件4.构件的概念构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
5.引入体系结构使得开发过程发生什么变化?好处是什么?软件再工程、逆工程的概念?软件设计质量的量度【变化】在引入了体系结构的软件开发之后,应用系统的构造过程变为“问题定义—>软件需求—>软件体系结构—>软件设计—>软件实现”,可以认为软件体系结构架起了软件需求及软件设计之间的一座桥梁。
【好处】克服软件危机【再工程】是指对既存对象系统进行调查,并将其重构为新形式代码的开发过程。
最大限度的复用既存系统的各种资源是再工程的最重点特征之一。
如何开发可复用软件和如何构造采用可复用软件的系统体系结构是两个关键问题。
【逆工程】是指分析软件系统,确定其构成成分及各成分间的关系,提取并生成系统抽象和设计信息的工程。
【量度】面向对象软件质量的度量重点在于对类的分析上。
应从类的以下方面考虑:耦合内聚度继承性复杂度6.5个设计原则概念【单一职责原则】就一个类而言,应该仅有一个引起它变化的原因。
【开闭原则】软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
(也就是老婆常说的对扩展开放,对修改关闭)【依赖倒转】抽象不应该依赖于细节,细节应该依赖于抽象。
要针对接口编程,不要对实现编程。
【里氏代换】在软件里面,把父类都替换成它的子类,程序行为没有变化。
简单地说,子类型必须能够替换掉它们的父类型。
【迪米特】如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
软件体系结构课后习题参考答案
软件体系结构第四章作业题1.请把基于体系结构的软件开发模型与其他软件开发模型进行比较。
答:一、基于体系结构为基础的基于构件组装的软件开发模型,如基于构件的开发模型和基于体系结构的开发模型等。
基于体系结构的开发模型是以软件体系结构为核心,以基于构件的开发方法为基础。
然后采用迭代增量方式进行分析和设计,将功能设计空间映射到结构设计空间,再由结构设计空间映射到系统设计空间的过程。
该开发模型把软件生命周期分为软件定义、需求分析和定义、体系结构设计、软件系统设计和软件实现5个阶段.特点:是利用需求分析结果设计出软件的总体结构,通过基于构件的组装方法来构造软件系统。
优点:基于构件的开发方法使得软件开发不再一切从头开发,开发的过程就是构件组装的过程,维护的过程就是构件升级、替换和扩充的过程。
构件组装模型导致了软件的复用,提高了软件开发的效率。
软件体系结构的出现使得软件的结构框架更清晰,有利于系统的设计、开发和维护。
并且软件复用从代码级的复用提升到构件和体系结构级的复用。
缺点:由于采用自定义的组装结构标准,缺乏通用的组装结构标准,因而引入了较大的风险。
可重用性和软件高效性不易协调,需要精干的有经验的分析和开发人员,一般开发人员插不上手。
客户的满意度低,并且由于过分依赖于构件,所以构件库的质量影响着产品质量。
二、以软件需求完全确定为前提软件开发模型,如瀑布模型等。
特点:软件需求在开发阶段已经被完全确定,将生命周期的各项活动依顺序固定,强调开发的阶段性;优点:开发流程简单。
缺点:是开发后期要改正早期存在的问题需要付出很高的代价,用户需要等待较长时间才能够看到软件产品,增加了风险系数。
并且如果在开发过程存在阻塞问题,则影响开发效率。
三、在开始阶段只能提供基本需求的渐进式开发模型,如螺旋模型和原型实现软件开发模型等。
特点:软件开发开始阶段只有基本的需求,软件开发过程的各个活动是迭代的。
通过迭代过程实现软件的逐步演化,最终得到软件产品。
软件工程期末考试参考题及答案
一、填空题(每空1分, 共20分)1.软件生存周期一般可分为__问题定义__、可行性研究、_需求分析_____、设计编码、__测试________、运行与维护阶段。
2.按软件旳功能进行划分, 软件可以划分为系统软件、支撑软件和应用软件。
3.可行性研究重要集中在如下四个方面经济可行性、技术可行性、法律可行性和抉择。
4.顾客界面旳可使用性是顾客界面设计最重要旳也是最基本旳目旳。
5.常见旳软件概要设计措施有3大类: 以数据流图为基础构造模块构造旳___构造化设计措施_________, 以数据构造为基础构造模块旳__jackson措施__________, 以对象、类、继承和通信为基础旳__面向对象设计措施__________。
6.__数据流图________和__数据字典___共同构成系统旳逻辑模型。
7.软件测试旳措施有__分析措施________和___非分析措施_______(即黑盒法)。
8.单元测试一般以___白盒_____________测试为主, ___黑盒______测试为辅。
9.成本估计措施重要有__自底向上估计________、_自顶向下估计_________和算法模型估计三种类型。
二、单项选择题(每题2分, 共10分)1.下列哪个阶段不属于软件生存周期旳三大阶段( C )。
A.计划阶段B.开发阶段2. C.编码阶段 D.维护阶段3.需求分析是(A )。
A. 软件开发工作旳基础B. 软件生存周期旳开始C. 由系统分析员单独完毕旳D. 由顾客自己单独完毕旳原型化措施是软件开发中一类常用旳措施, 它与构造化措施相比较, 更需要( B )。
A. 明确旳需求定义B.完整旳生命周期C、较长旳开发时间D、纯熟旳开发人员软件维护时, 对测试阶段未发现旳错误进行测试、诊断、定位、纠错, 直至修改旳回归测试过程称为( A )。
A、改正性维护B、适应性维护C、完善性维护D、防止性维护一般说来, 投入运行旳软件系统中有错误(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、什么是软件体系结构的风格?它在软件开发过程中具有何种意义?软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。
软件体系结构期末试题整理 配套答案
1. C.2 D. 消息传递3 C. 逻辑视图 D. 部署视图4.A,B5. C 6. C. 标准函数库 7 A,B8. D9.B10.D11 。
A12. 某游戏公司欲开发一个大型多人即时战略游戏,游戏设计的目标之一是能够支持玩家自行创建战役地图,定义游戏对象的行为和之间的关系。
针对该目标,公司应该采用(48) 架构风格最为合适。
(48)A. 管道-过滤器 B. 隐式调用 C. 主程序-子程序 D. 解释器D13 AD14 D15 A1. 分别描述两个质量属性的场景图。
下面场景表现了网上个人银行查询系统的性能。
下面场景表现了网上个人银行查询系统的修改性。
场景可以用文本表示,也可以用图形表示。
2.请描述构架设计的ADD 方法中对模块求精的5个步骤。
答题要点:a. 从具体的质量场景和功能需求集合中选择构架驱动因素。
b. 选择满足构架驱动因素的构架模式。
c. 实例化模块并根据用例分配功能,使用多个视图进行表示。
d. 定义子模块的接口。
e. 验证用例和质量场景并对其进行求精,使它们成为子模块的限制。
3. 描述A TAM 方法的步骤。
)试图同时登陆系统 网上个人银行查询系统平均响应时间5秒正常运行 请求被处理 希望改变操作界面代码只修改界面代码或配置文件 维护时 用户 修改不产生副作用,在2小时内完成500用户户ATAM方法的表述商业动机的表述构架的表述对构架方法进行分类生成质量属性效用树分析构架方法集体讨论并确定场景优先级再次分析构架方法结果的表述4. 选取两个质量属性以表格形式生成质量属性效用树效用树的表格形式如下表所示。
质量属性属性求精场景场景用文字描述,并要标明场景的优先级和实现的难易。
系统的质量属性有多种,请列举其中六种:可用性、可修改性、性能、安全、可测试性、易用性、可移植、可重用、可集成(任选六个)。
试题三参考答案(共15分)【问题1】(4分)U1:移动元素U2:调整元素大小(U1和U2的答案可以互换)(1) <<extend>> (2) << extend>>【问题2】(8分)C1:创建工具C2:选择工具C3:线条工具C4:矩形工具C5:椭圆工具C6:线条C7:矩形C8:椭圆注:C3~C5的答案可以互换;C6~C8的答案可以互换。
软件设计与体系结构练习题参考答案
一、选择题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、测试驱动开发的概念及其积极作用。
编写所有产品代码的目的都是为了使失败的单元测试能够通过。
软件体系结构试题与解答
模拟试题(一)第一题: 名词解释(每题5分, 共20分)1.软件体系构造(Software Architecture)2.软件体系构造风格(Software Architecture Style)3.软件质量属性4.质量属性驱动旳设计措施(ADD)第二题: 单项选择(每题4分, 共20分)1. 下面哪种方略可以用来满足可测试性(Testability)旳质量属性?A) 心跳(Heartbeat) B) 模块旳抽象化(Generalize the module)C) 记录/重放 D) 授权顾客2. “系统在提供服务给合法顾客旳同步抵制未授权使用旳能力”这是哪种质量属性关怀旳问题?A) 性能 B) 可测试性C) 可移植性 D) 安全性3. 下面哪种视图不属于软件体系构造中定义旳“4+1”视图?A) 物理视图 B) 设计视图C) 场景视图 D) 开发视图4. 下面旳图是什么图?A) 序列图 B) 组件图C) 对象图 D) 用例图5. 下面旳图形描述了何种体系构造风格?A) C/S B) 有序批处理 C) 主程序/子程序 D) 面向对象第三题:简答(每题5分, 共20分)1.请描述管道-过滤器体系构造风格旳特点并给出适合使用这种风格旳一种应用场景。
2.请简要阐明黑板风格旳定义。
3.请简要阐明体系构造权衡分析措施和该措施旳特点。
4. 什么是“4+1视图”, 分别给出每个视图旳名称和重要关注点。
软件体系构造分析: 效用树(20分)某企业要开发一种在线交易系统, 该系统重要关注性能、可更改性、可用性和安全这五个质量属性。
负责开发旳团体分析了各个质量属性, 设计了一种参照旳体系构造。
该团体欲采用效用树技术对体系构造进行评估, 下面是有关旳场景: ☎∙∙站点 断电后 可以在 秒内完毕流量到站点 旳迁移;●信用卡交易需要有99.999% 旳安全性;●顾客旳授权数据库需要在 99.999% 旳状况下保证可用;●视频必须实时传播;●可以在4人-周内完毕对Web顾客界面旳变化网络失效和恢复必须在1.5分钟内完毕;●减少对客户数据库访问旳时间至200毫秒以内;请根据以上描述, 构建对应旳效用树2. 软件体系构造构建(20分)Travelling 是一家新兴旳旅游服务提供商, 可以在线为顾客提供在线旳实时旅游信息服务, 包括路线信息, 景点简介, 公交线路查询等, 其系统旳基本旳功能如下所示:☎∙∙顾客可以在网站上注册帐号和密码 成为该站点旳客户;☎∙∙客户可以使用浏览器访问网上旳站点 搜索并返回感爱好旳景点信息;☎∙∙该企业需要集成来自旅游线路提供商旳数据库 提供旅游线路支持;需要集成来自景点旳信息提供商旳数据库提供景点信息;需要集成公交企业旳应用系统提供公交信息查询能力。
软件体系结构期末考试考题及答案
软件体系结构期末考试考题及答案简答题:软件体系结构定义:1由构成系统的元素的,,行为和属性的高级抽象软件体系结构为软件系统提供了一个结构软体系结构不仅.,指导元素集成的模式以及这些模式的约束组成描述,这些元素的相互作用提还显示了系统需求和构成系统的元素之间的对应关系,指定了系统的组织结构和拓扑结构, 供了一些设计决策的基本原理。
4+1视图模型:2、最终用逻辑视图:,开发视图和场景视图)--个不同角度(逻辑视图,进程视图,物理视图从5;吞吐量等,性能可扩充性,,软件管理;进程视图:系统集成人员,户功能需求;开发视图:编程人员通信等。
安装,:系统工程人员,系统拓扑,物理视图3、体系结构的核心模型,,其中构件连接件和配置是最基本的元素。
,,连接件配置,端口,角色: 由5种元素组成构件表示了系统中主要的计算元素和数据存(1)构件是具有某种功能的可重用性的软件模板单元, ,复合构件和原子构件;,储构件有两种(2)连接件表示了构件之间的交互;配置表示了构件和连接件的拓扑逻辑和约束。
(3))风格优点:客户4、三层C/S(/服务器能提高系统和软件允许合理得划分三层结构的功能(1),使之在逻辑上保持相对独立性,; 的可维护性和可扩展性使之在处理负荷能力上与处理特性上(2) 允许更灵活有效地选用相应的平台和硬件系统, 精品文档.精品文档分别适应于结构清晰的三层,并且这些平台和各个组成部分可以具有良好的可升级性和开放性;(3)应用的各层可以并行开发,可以选择各自最适合的开发语言;(4)利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法访问数据层,为严格的安全管理奠定了坚持的基础。
三层比二层好在:三层C/S体系结构中增加了一个应用服务区可以将整个应用逻辑驻留在应用服务器上,而只有表示层存在客户机上,三层C/S体系结构将应用层序分成表示层,功能层和数据层三部分。
5、同传统分布式体系结构相比Web服务体系结构的主要优势:高度的通用性和易用性;完全的平台,语言独立性;高度的集成性;容易部署和发布6、UML的主要内容用例图;类图;对象图;顺序图;通信图;状态图;活动图;构件图;部署图7、与C/S相比,B/S的优点:基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。
软件设计与体系结构期末考试2017-2018学年模拟试题参考答案
北京工业大学2017 - 2018学年第二学期模拟试题参考答案考试课程:软件设计与体系结构考试日期:2018年06 月12日学院:信息学部(软件学院)专业:软件工程学号:姓名:成绩:一填空题(共30 空,每空 1 分)1. 软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,(计算机指令)的逻辑层次组织。
2. 软件体系结构(Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是对软件产品(组成要素或单元)的规划和(单元职责)的设置;是定义软件系统组件(Components)或构建块(Building Blocks)的重要工具;用于-- 实现对一个软件系统的构成进行(逻辑组织结构)的划分-- 所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。
3.软件开发中的面临若干问题:1)软件固有的复杂性;2)软件开发的随意性;3)周期长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的(需求分析)到系统实现(代码)的有效和平坦过渡。
4.软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按(规范化)、标准化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件(组件),通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品。
5.体系结构设计方法的发展中,软件程序开发经历了如下的阶段-- 功能分解法 (计算任务)-- 结构化程序设计 (以数据为中心)-- (面向对象程序设计)-- (面向组件程序设计)-- 基于 SOA 的程序设计 (以服务为中心)。
6. 一个现代软件产品生产过程如下图表示,请在带___________的方框中,填上相应的组件名称7. 软件体系结构组件间的连接方式如图表示,则图A的连接方式称为 (点对点) 连接体系结构;图B的连接方式称为基于 (中间件) 连接体系结构。
软件工程期末试卷(十套含答案)
软件⼯程期末试卷(⼗套含答案)百度⽂库软件⼯程期末试题(对部分发现的错误进⾏了修正)原链接:软件⼯程知识点简要总结:设计模式 —— OOP七⼤原则 + 23种设计模式:单项选择题1.瀑布模型的存在问题是( B )A.⽤户容易参与开发 B.缺乏灵活性C.⽤户与开发者易沟通 D.适⽤可变需求2.开发软件所需⾼成本和产品的低质量之间有着尖锐的⽭盾,这种现象称做( C )A.软件⼯程B.软件周期C.软件危机D.软件产⽣3.数据耦合、公共耦合、标记耦合、控制耦合的耦合性从低到⾼的顺序是( B )A.数据、公共、标记、控制B.数据、标记、控制、公共C.控制、数据、标记、公共D.控制、数据、公共、标记4.在SD⽅法中全⾯指导模块划分的最重要的原则是( D )A.程序模块化B.模块⾼内聚C.模块低耦合D.模块独⽴性5.软件测试的⽬的是( B )。
A.评价软件的质量 B. 发现软件的错误C.找出软件的所有错误 D. 证明软件是正确的6.在设计测试⽤例时,( A )是⽤得最多的⼀种⿊盒测试⽅法。
A.等价类划分 B. 边界值分析 C. 因果图 D. 判定表7. 需求分析最终结果是产⽣( B )。
A. 项⽬开发计划B. 需求规格说明书C. 设计说明书D. 可⾏性分析报告8. Jackson图中,模块框之间若有直线连接,表⽰它们之间存在(B )。
A. 调⽤关系B. 组成关系C. 链接关系D. 顺序执⾏关系9. 软件详细设计的主要任务是确定每个模块的( C )。
A. 功能B. 外部接⼝C. 算法和使⽤的数据结构D. 编程10.为了提⾼软件的可维护性,在编码阶段应注意( D )A.保存测试⽤例和数据B.提⾼模块的独⽴性C.⽂档的副作⽤D.养成好的程序设计风格11.设年利率为i,现存⼊p元,若计复利,n年后可得钱数为(B)A.p﹡(1+i﹡n) B.p﹡(i+1)nC.p﹡(1+i)﹡n D.p﹡(i+n)12.在考察系统的⼀些涉及时序和改变的状态时,要⽤动态模型来表⽰。
大学_软件体系结构试题及参考答案
软件体系结构试题及参考答案软件体系结构试题及参考答案(一)1. 什么是软件工程?构成软件工程的要素是什么?软件工程是将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,即将工程化应用于软件开发和管理之中,对所选方法的研究。
软件工程的要素由方法、工具和过程组成。
方法支撑过程和工具,而过程和工具促进方法学的研究。
2. 什么是软件生存周期?软件开发过程模型与软件生存周期之间是何关系?软件产品从形成概念开始,经过开发、使用和维护,直到最后退役的全过程叫软件生存周期。
软件开发过程模型表示软件开发中各个活动的安排方式,出来软件开发各个活动之间关系,是软件开发过程的概括,是软件工程的重要内容,其为软件管理提供里程碑和进度表,为软件开发过程提供原则和方法,其包括有以软件需求完全确定为前提的瀑布模型,以渐进式开发模型的原型和螺旋模型,以形式化开发方法为基础的变换模型。
3. 叙述软件设计在软件工程中所处的位置和重要性位置:软件需求分析--------需求规格说明------软件设计------设计文档------------软件编码总要性:(1)、是对软件需求的直接体现。
(2)、为软件实现提供直接依据(3)、将综合考虑软件系统的各种约束条件并给出相应方案(4)、软件设计的质量将决定最终软件系统的质量。
(5)、及早发现软件设计中存在的错误将极大减少软件修复和维护所需的成本。
4. 软件设计应该包含哪些要素?软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
5. 简述UML的特点和用途。
、答:为使用者提供了统一的、表达能力强大的可视化建模语言,以描述应用问题的.需求模型、设计模型和设计模型。
提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
提供于实现语言和支持所有的方法学,覆盖了面向对象分析和设计的相关概念和方法学。
独立于任何开发过程,但支持软件开发全过程。
完整版软件体系结构期末试题+答案文档良心出品
1. 以下关于系统性能的叙述中,不正确的是(17)。
(17)扎常见的Web 服务器性 能评估方法行基准测试、圧力测试和町靠性测试B.评价Web 服务器的主要性能指标有最人 并发连接数、响应延迟和吞吐最C.对运行系统进行性能评估的主要目的是以更好的性能/ 价格比更新系统D.当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈2某公司欲对其内部的信息系统进行集成,需要实现在系统之间快速传递町定制格式的数 据包,并fl 当有新的数据包到达时,接收系统会自动得到通知。
另外还要求支持数据甫传, 以确保传输的成功。
针对这些集成需求,应该采用(21)的集成方式。
(21) A.远程过 程调用 B.共享数据库C.文件传输D.消息传递3在RUP 中釆用“巾+1”视图模型来描述软件系统的体系结构。
在该模型中,最终用户侧 重于(26),系统工程师侧重于(27)。
(26) A.实现视图 B.进程视图 C.逻 辑视图 D.部署视图(27) A.实现视图 B.进程视图 C.逻辑视图 D.部署 视图4.某银行系统采用Factory Method 方法描述其不同账户之间的关系,设计出的类图如 F 所示。
其中与Factory Method 中的**Creator *角色相对应的类是(33);与u Product °角色相对应的类是(34) oA. BankB. Account象系统中的对象(Object ) B.模块化程序设计中的子程序(Subroutine ) C.基于构件开发 中的构件(Component ) D.系统模型中的包(Package ) 6软件的横向重用是指重用不同应用领域中的软件元素。
(31)是一种典型的、原始的 横向垂用机制。
(31) A.对象B.构件C.标准函数库D.设计模式7.在基于构件的软件开发中•(36)描述系统设计蓝图以保证系统提供适当的功能;(37)用来了解系统的性能、吞吐率等非功能性属性c (36) A.逻辑构件模型B.物理构件模型C.组件接II 模型 D.系统交互模型(37) A.逻辑构件模型B.物理构件模型C.组件接口模型D.系统交互模型&对象管理组织(0HG )基于C0RBA®础设施定义了四种构件标准。
软件体系结构试题库试题和答案
1、软件重用是指重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。
答案:√依据页码:P42、可重用技术对构件库组织方法要求不仅要支持精确匹配,还要支持相似构件的查找。
答案:√依据页码:P73、超文本组织方法与基于数据库系统的构件库组织方法不同,它基于全文检索技术。
4、答案:√依据页码:p85、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。
答案:√依据页码:P285、构件可以由其他复合构建和原子构件通过连接而成。
()答案:√依据页码:P376、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色()答案:√依据页码:P377、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。
其中,构件、连接件和配置是最基本的元素()答案:√依据页码:P378、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务()答案:X依据页码:P32、339、构件、连接件以及配置是体系结构的核心模型最基本的元素()答案:√根据页码:P3710、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。
答案:×依据页码:P8111、正交软件体系结构由组织层和线索的构件构成。
答案:√依据页码:P7012、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。
答案:√依据页码:P5313、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。
()答案:√依据页码:P7014、层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。
参考页码:P5515、相交关系R是一个等价关系。
答案:√16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。
答案:√依据页码:10417、Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。
最新软件设计与体系结构复习整理题目及答案
1、各种性能指标的定义及如何到达各种性能指标的方法ppt1-8 119页-124页 ①性能:吞吐量Throughput 、响应时间Response Time 、Deadlines②实现吞吐量:Peak & Average Many system have low average but high peak throughput requirements③实现响应时间: Guaranteed & Average E.g. 95% of responses in sub-4 seconds, and all within 10 seconds④Dealines :Deadlines often associated with batch jobs in IT systems2、常用的中间件有那几种类型(四种)分类:Business Process Orchestrators 业务流程协调器Message Brokers 消息代理Application Servers 应用服务器Transport面向消息的中间件,分布式对象系统(1)CORBA---公用对象请求代理(调度)程序体系结构,它在对象间建立客户-服务器的关系,这样一个客户可以很简单地使用服务器对象的方法而不论服务器是在同一机器上还是Business Process OrchestratorsMessage BrokersApplication ServersTransport Message-Oriented Middleware,Distributed Objects SystemsJ2EE, CCM, .NET BizTalk, WebSphere Message Broker, SonicMQ BizTalk, TIBCO StaffWare, ActiveBPEL通过一个网络访问。
(常见的对象请求代理架构)(2)Basic Message-oriented middleware---- MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
软件设计与体系结构课后练习部分答案(DOC)
软件设计与体系结构课后练习部分答案(DOC)第一章作业6.简要介绍了软件设计在软件工程中的地位和重要性。
答:位置:软件需求分析?需求规格?软件设计?设计文件?软件编码。
重要性:(1)它是软件需求的直接体现;(2)为软件实施提供直接依据;(3)将综合考虑软件系统的各种约束条件并给出相应方案;(4)软件设计的质量将决定最终软件系统的质量;(5)及早发现软件设计中的错误将大大降低软件修复和维护的成本。
7、软件设计应该包含哪些要素?答复:软件设计应该包含:目标描述、设计约束、产品描述、设计原理、开发规划、使用描述。
8.软件架构和软件设计之间的关系是什么?软件架构出现的必然性和意义是什么?答复:软件体系结构与软件设计的关系:软件体系结构设计作为软件设计过程中的活动之一,能在较为抽象的级别上描述整个软件系统的结构,成为大规模、复杂软件系统设计中必不可少的步骤。
软件体系结构的含义:软件体系结构将组件和组件之间的连接作为软件体系结构的基本组件。
软件体系结构使软件重用从代码重用发展到设计重用和过程重用,为不同的人提供了一种通用的语言,反映了系统的早期设计决策,作为系统设计的抽象,为框架和组件的共享和重用,以及基于体系结构的软件开发提供了强有力的支持。
第二章作业1.简要描述UML的特点和用途。
答复:uml的发起者在最初制定uml时,充分考虑了各种需求、方法和语言的特点使uml在表达能力、对新技术的包容能力和扩张性等方面具有显著的优势:(1)它为用户提供了一种统一、强大的可视化建模语言来描述应用问题的需求模型、设计模型和实现模型。
(2)提供对核心概念的扩展机制,用户可加入核心概念中没有的概念和符号,可为特定应用领域提出具体的概念、符号表示和约束。
(3)它独立于实现语言和方法,但支持所有方法,涵盖了面向对象分析和设计的相关概念和方法。
(4)独立于任何开发过程,但支持软件开发全过程。
(5)它为理解建模语言提供了形式化基础,用元素类型描述了基本语义,用OCL描述了定义良好的规则,用自然语言描述了动态语义。
软件体系结构期末考试题
软件体系结构-设计模式练习题11.面向对象分析与设计中的(1)是指一个模块在扩展性方面应该是开放的,而在更改性方面应该是封闭的;而(2)是指子类应当可以替换父类并出现在父类能够出现的任何地方。
(1) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则(2) A.开闭原则 B.替换原则 C.依赖原则 D.单一职责原则2.(3)限制了创建类的实例数量,而(4)将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
(3) A.命令模式(Command)B.适配器模式(Adapter)C.策略模式(Strategy) D.单例模式(Singleton)(4) A.命令模式(Command) B.适配器模式(Adapter) C.策略模式(Strategy) D.单例模式(Singleton)3. (5)设计模式允许一个对象在其内部状态改变时改变它的行为。
下图为这种设计模式的类图,已知类 State 为抽象类,则类(6)的实例代表了Context 对象的状态。
(5) A.单件(Singleton) B.桥接(Bridge) C.组合(Composite) D.状态(State)(6) A. Context B. ConcreteStateA C. Handle D. State4.某公司欲开发一门户网站.将公司的各个分公司及办事处信息进行整合。
现决定采用Composite设计模式来实现公司的组织结构关系.并设计了如下图所示的UML类图。
图中与Composite模式中的“Component”角色相对应的类是 (7) .与“Composite”角色相对应的类是 (8) 。
(7) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany(8) A. Company B. FinanceDepartment C. HRDepartment D. ConcreteCompany5.某软件公司正在设计一个通用的嵌入式数据处理平台.需要支持多种数据处理芯片之间的数据传递与交换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京工业大学2017 - 2018学年第二学期模拟试题参考答案考试课程:软件设计与体系结构考试日期:2018年06 月12日学院:信息学部(软件学院)专业:软件工程学号:姓名:成绩:一填空题(共30 空,每空 1 分)1. 软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,(计算机指令)的逻辑层次组织。
2. 软件体系结构(Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是对软件产品(组成要素或单元)的规划和(单元职责)的设置;是定义软件系统组件(Components)或构建块(Building Blocks)的重要工具;用于-- 实现对一个软件系统的构成进行(逻辑组织结构)的划分-- 所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。
3.软件开发中的面临若干问题:1)软件固有的复杂性;2)软件开发的随意性;3)周期长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的(需求分析)到系统实现(代码)的有效和平坦过渡。
4.软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按(规范化)、标准化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件(组件),通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品。
5.体系结构设计方法的发展中,软件程序开发经历了如下的阶段-- 功能分解法 (计算任务)-- 结构化程序设计 (以数据为中心)-- (面向对象程序设计)-- (面向组件程序设计)-- 基于 SOA 的程序设计 (以服务为中心)。
6. 一个现代软件产品生产过程如下图表示,请在带___________的方框中,填上相应的组件名称7. 软件体系结构组件间的连接方式如图表示,则图A的连接方式称为 (点对点) 连接体系结构;图B的连接方式称为基于 (中间件) 连接体系结构。
8. UML 将软件的体系结构分解为五个不同的侧面, 通过不同侧面的视图提供给不同相关者的软件体系结构描述,这五个侧面分别是:(逻辑)视图, (开发)视图,(用例)视图,进程(Process )视图,部署与配置 (Deployment )视图。
9. MFC 框架定义 Windows 应用程序的轮廓,提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
Microsoft Visual C++ 提供了相应的工具来完成这个工作:这些工具包括(AppWizard 应用生成器) (可以用来生成初步的框架文件(代码和资源等)), 资源编辑器 (Resource Editor) (用于帮助直观地设计用户接口), (ClassWizard )(用来协助添加代码到框架文件)。
10. 软件体系结构设计风格 – 是指对软件组件间组织形式和组织机理风格的描述。
通过考虑在组件组织模式的各种形式变化,形成包括(管道过滤风格), (批处理风格), (黑板风格), (C/S 风格), (B/S 风格)的软件体系结构风格。
11. 软件体系结构的评估与分析 – 是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的(质量属性),增强软件的质量;在真正的错误的设计导致真的灾难前(挑出错误),选择更好的结构或(改进)结构的设计。
12. 软件系统的质量属性有多种,请列举其中至少4种: 可用性、(可靠性)、(可维护性)、(安全性)、(可修改性)、可测试性、易用性、可移植、可重用、可集成。
A CBM e d i a t o rX A C B XM e d i a t o r 图A图B软件构件库 (Component Library ) 软件构架 (Software Framework ) 软件体系结构软件组装线(Assembling Line )软件产品 系统 组件 第三方 组件 开发 组13.图形表达工具是一种简单而且使用广泛的表达工具,其中各种矩形框(带文字、不带文字、实线体、虚线体、…)箭头线(单箭头、双箭头、实体箭头、虚箭头、…)被用来分别表示软件的组件和(组件的连接)结构。
二判断题(共10 题,每题 1 分, 正确在括号划√, 错误在括号划X)( √) 1. Windows 的应用系统-- 是一个具有可视化图像用户界面、可进行多任务进行操作的系统,它为用户提供了风格统一(由窗架、菜单、视窗、工具栏等)界面元素所构成的多任务应用环境。
-- 直观、高效、统一的面向对象的图形用户界面,易学易用-- 丰富的设备无关的图形操作-- 多任务多进程( X ) 2. 软件体系结构不只是一种对软件系统的表示和描述,它也是可运行的软件( √ )3. 层次化的软件体系结构是指按照分层模式安排一个软件系统组件的结构,每一层为上一层提供服务、不相邻的层间不能进行调用( X ) 4. 软件体系结构中不应包含中间件( √ ) 5. 软件体系结构风格和模式可以被应用到其他系统的设计中( √ ) 6. 软件体系结构是软件开发中的中间产品,1)用于控制软件的复杂性;2)提高软件的质量;3)支持软件的开发过程;4)支持软件过程的可控制性;5)软件生产的效率和生产力( X ) 7. 用面向对象方法构造软件系统体系结构时,其最基本单位是函数( X ) 8. 软件体系结构描述表示方法包括形式化和非形式化的描述方法,UML是非形式化描述方法,ADL是形式化描述方法( √ ) 9. 通过分布式软件体系结构的设计,能实现异构环境组件的互连、互通和互操作( √ ) 10. 软件体系结构的评估方法包括 SAAM (Software Architecture Analysis Method),ATAM (Architecture Tradeoff Analysis Method),ARID(ActiveReviews for Intermediate Designs)等方法三简答题(共 4 题,每题 5 分)1.什么是软件体系结构,描述软件体系结构的主要内容及组织?软件体系结构(Software Architecture):是软件产品设计的思想和系统的蓝图;是对软件产品组成的规划和职责的设置;是定义软件系统组件(Components)或构建块(Building Blocks)的重要工具;用于* 实现对一个软件系统的构成进行逻辑上的划分* 所形成和采用的工程化规范,用于指导软件后续开发过程方方面面组成部分的模型软件体系结构描述一个软件产品的定义和组件(parts)* 定义单独的组件系统– Componets:* 描述系统的结构-- Connectors & Interrelated Components* 定义责任的范围-- A Boundary* 描述组件的功能-- A Purpose and Responsibility* 算法– Implementation Algorithm▪* 数据的表示– Data Representation▪* Constrains▪软件体系结构实质上是一系列相关要素的逻辑组织结构(A software system’s architecture should be a composition and interplay of different elements)-构件的逻辑组织方式(Components)-流程的逻辑组织结构( Processing)-数据的逻辑组织结构(Data, also referred as information or state)-构件的连接组织方式(Interaction)2.描述软件体系结构分析和评估的概念和意义软件体系结构的评估与分析–是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的质量属性,增强软件的质量;在真正的错误的设计导致真的灾难前挑出错误,选择更好的结构或改进结构的设计。
▪软件体系结构的评估与分析的作用-- 判断软件体系结构将导致设计所期望的质量属性和功能-- 识别潜在的风险-- 对设计的自我完善3.描述什么是分布式应用程序和体系结构的概念及优点分布式应用系统(程序)-- 指使用分布于多个(一个以上)计算环境的对象(程序、内存、CPU、外设等)共同协作以完成一个应用程序,这些计算环境可相同或相异。
-- 分布式应用系统(程序)将一个应用程序和程序的执行分布于多台计算机、提高程序的性能和可扩展性-- 将在不同环境、操作系统和平台上运行的代码进行集成-- 革新大规模的资源密集型应用程序4 描述一个软件体系结构中组件的角色和任务▪Graphic User Interfaces( 图形用户界面): 是用户与模型(业务)层他之间的一个接口,表示层程序通过图形界面为用户提供便捷的操作基础, 使用户可以和模型或程序进行可视化交互:一般,图形界面包括窗口、菜单、按钮、选择按钮、文本框、工具栏等元素四体系结构设计和程序阅读题: (20分, 共 4 题,每题 5 分)1.使用图形描述语言,描述 VC++ MFC 开发环境下,开发基于 Dialog 模式应用程序的基本架构编码完成 CRC 卡描述的内容class CRocket: CDocument{private:float H, V;float x,y,z;public:Crocket();~Crocket();void InitInsance();void ExitInstance();void Launcher();void Fly();};#include “Crocket.h”#include “CRocket_Display.h”CRocket::CRocket(){InitInstance();}CRocket::~CRocket(){}void CRocket::InitInstance(){CRocket_Display *app;app->display();}void CRocket::ExitInstance(){}void CRocket::Launcher(){}void CRocket::Fly(){}3.已知一个应用系统的软件体系结构如下图表示,类Exam_App为Java的组装线程序,类Exam_Frame为顶层容器,类Display为表示界面,类Model为模型组件,写出以下Java 程序的运行结果class Exam_App {public static void main() {new Exam_Frame();}}class Exam_Frame extends JFrame {Container contentPane;Display display;Model model;Exam_Frame() {contentPane = this.getContentPane();display = new Display();model = new Model(display);setSize(1024,768);setVisible(true);}}class Display {BufferedImage buffer = null;…Display(){buffer = new BufferedImage(1024,768, BufferedImage.TRANSLUCENT);}public void paintComponent(Graphics g){g.drawImage(buffer,0,0, null);}…}class Model{BufferedImage image;Graphics g;Display panel = null;Model( Display pane){this.panel = pane;g = panel.buffer.getGraphics();g.drawString(10, 10, “Welcome to the Test of Software Architecture ”);g.drawString(50, 10, “I will Success!!!”);}…..}运行以上程序, 结果为4.已知一个基于VC++ MFC 环境Dialog 模式应用程序体系结构表示如下,其中,组装线类Exam_App 用于组装图形表示界面类Exam_Dlg,图形表示界面类Exam_Dlg通过函数Model_Display用于调用类Model#include<afxwin.h>class Exam_App : CWinApp{public:virtual BOOL InitInstance();};Exam_App app;class Exam_Dlg: CDialog{Public:Model *model;public:void OnInitDialog();void Model_Display();};class Model{public:Model();String model_data();};请完成从类Exam_Dlg 中Model_Display调用类Model函数String model_data() 的代码void Exam_App::OnInitDialog(){// 完成指向Model 的指针model = new Model();}void Exam_App::Model_Display(){// 完成调用类Model函数String model_data()String str = model->model_data()}五综合设计题(20分,每题10 分)1.(10分) 时髦的家(Smart Home)的应用场景,如图所示一个用户在PC 机终端上,通过Internet 网络,远程控制家中的彩电、冰箱和家用机器人的运行状态。