文档库 最新最全的文档下载
当前位置:文档库 › 软件体系结构课后作业及答案

软件体系结构课后作业及答案

软件体系结构课后作业及答案
软件体系结构课后作业及答案

一次

就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。

答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。

2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。

3、为什么要研究软件体系结构?

答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。

2.软件体系结构代表了早期的设计决策成果。

3.软件体系结构可以作为一种可变换的模型。

4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?

答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器);

连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等;

限制(constrain):用于对构件和连接件的语义说明。

5、在软件体系结构的研究和应用中,你认为还有哪些不足之处?

答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。

(2)ADL繁多,缺乏同意的ADL的支持。

(3)软件体系结构研究缺乏统一的理论模型支持。

(4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。(5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。

(6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。

(7)缺乏有效的体系结构复用方案。

(8)体系结构发现方法研究相对欠缺。

二次

1、选择一个规模合适的系统,为其建立“4+1”模型。

逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。

过程视图(Process View),捕捉设计的并发和同步特征。

物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。

开发视图(Development View),描述了在开发环境中软件的静态组织结构。

架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。

2、引入了软件体系结构以后,传统软件过程发生了哪些变化?这种变化有什么好处?答:软件体系结构的引入使软件设计开发更加具体和形象,它的模型更使得软件过程更加方便和多样化。其好处在于:包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础,软件体系机构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用,在很多方面使得软件开发更加人性化。

3、软件体系结构的生命周期模型与软件生命周期模型有什么关系?

答:软件体系结构是贯穿于软件研发的整个生命周期的系统开发、运行、维护所实施的全部工作和任务的结构框架,给出了软件开发活动各阶段之间的关系,软件体系结构的生命周期模型为软件生命周期模型提供了很好的结构依据和参考,也为其构建了很好的开发方式。

1、层次系统结构和基于消息的层次系统结构有什么区别?

答:层次结构将系统进行分级组织,其组织思想是:在层次结构中,每一层向上层提供服务,并作为客户向下层请求服务。分层系统的优点:支持基于抽象程度递增的系统设计;支持功能增强;支持重用。分层系统的缺点:并不是每个系统都可以很容易的划分为分层的模式,甚至即使是层次化的,出于性能的考虑,也不得不吧一些低及或高级的功能综合起来;很难找到一个合适的、正确的层次抽象方法。

消息总线是系统的连接件、负责消息的分派、传递和过滤以及处理结果的返回。消息是构件之间通信的唯一方式。由于构件通过总线进行连接,并不要求各个构件具有相同的地址空间或局限在一台机器上,因此该风格可以很好的刻画分布式开发系统,以及CORBA.DCOM和EJB规范的系统。

2、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。

答:二层C/S体系结构将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。优点(1)C/S体系结构具有强大的数据操作的事务处理能力,模型思想简单,易于人们理解和接受。(2)对软硬件的变化有极大的适应性和灵活性,易于对系统进行扩充和缩小。(3)系统中的功能构建充分隔离,节约大量费用。缺点:(1)开发成本较高。(2)客户端程序设计复杂(3)信息内容和形式单一(4)用户界面风格不一,使用繁杂不易推广。(5)软件移植困难(6)软件维护和升级困难(7)新技术不能轻易应用。

三层CS在上面的基础上进行了改造,并增加了一个服务器,其优点:(1)允许合理的划分三层结构的功能,能提高系统和软件的可维护性和可扩展性。(2)具有良好的可升级性和开放性。(3)应用的各层可以并行开发,可以选择各自最适合的开发语言。(4)为严格的安全管理奠定了坚实的基础。

B/S风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。优点(1)基于B/S体系结构的软件,系统安装,修改和维护全在服务器端解决。(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。(2)在数据查询等响应速度上,要远远低于C/S体系结构。(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。

3、SIS和DSSA分别用在哪些场合?

答:1.DSSA只对某一个领域进行设计专家知识的提取,存储和组织,但可以同时使用多种体系结构风格;而在某个体系结构风格中进行体系结构设计专家知识的组织时,可以将提取的公共结构和设计方法扩展到多个领域。

2.DSSA的特定领域参考体系结构通常选用一个或多个适合所研究领域的体系结构风格,并设计一个该领域专用的体系结构分析设计工具。

3.体系结构风格的定义和该风格应用的领域是直交的,提取的设计知识比用DSSA 提取的设计专家知识的应用范围要广。

4.DSSA和体系结构风格是互为互补的两项技术。

4、在软件开发中,采用异构结构有什么好处,其负面影响有哪些?

答:1.结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题。

2.软件包,框架,通信以及其他一些体系机构上的问题,目前存在者多中标准。即使再某一段时间内某一标准占据着统治地位,但变动最终是绝对的。

3.工作中,我们总会遇到一些遗留下的代码,它们仍有效用,但是却与新系统有某种程度上的不协调。然而在很多场合,将技术与经济综合进行考虑时,总是决定不重写它们。

4.在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯上的不同。

负面影响:大多数应用程序只使用10%的代码实现系统的公开功能,剩下90%的代码完成系统管理功能:输入和输出,用户界面,文本编辑,基本图表,标准对话框,通信,数据确认和旁听追踪,特定领域的基本定义等。

四次

1什么是动态软件体系结构?动态软件体系结构与静态软件体系结构有什么区别?

答:动态软件体系结构的动态性包括:交互性动态性,结构化动态性,体系结构动态性。

由于系统需求,技术,环境,分布等因素的变化而最终造成软件体系结构的变动,称之为软件体系结构演化。软件系统在运行时刻的体系结构变化称之为软件体系结构的动态性,动态软件体系结构的动态性包括:交互性动态性,结构化动态性,体系结构动态性。

2基于构件的动态软件体系结构模型的层次结构是什么?

答:基于构件的动态系统结构模型支持运行系统的动态更新,该模型分为三类,分别是应用层,中间层和体系结构层。

(1)应用层:处于最底层,包括构件链接,构件接口和执行

(2)中间层:包括连接件配置,构件配置,构件描述及执行

(3)体系结构层:位于最上层,控制和管理整个体系结构,包括体系结构配置,体系结构描述和执行。

五次

1、请把基于体系结构的软件开发模型与其他软件开发模型进行比较。

答:软件开发模型有演化模型、螺旋模型、喷泉模型、智能模型等。传统软件开发模型存在开发效率不高,不能很好地支持软件重用等缺点。在多个大中型软件项目的实践基础上,提出了基于体系结构的软件开发模(ABSD)。ABSD模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现、演化等6个子过程,讨论了各个子过程所要完成的工作,给出了ABSD模型在劳动和社会保险领域的一个应用实例。实践表明,采用ABSD模型进行软件项目开发,具有结构清晰、易于理解、可移植性强、重用粒度大等优点。

2、如何才能提高软件系统的可演化性。

答:构造性和演化性是软件的两个基本特性。软件进行渐变并达到所希望的形态就是软件演化,软件演化是由一系列复杂的变化活动组成。对软件变化的控制是软件开发者历来追求的目标。引起软件变化的原因是多方面的,如基本设施的改变,功能需求的增加,高性能算法的发现,技术环境因素的变化等。所以对软件变化甚至演化进行理解和控制显得比较复杂和困难。

六次

1 为什么要评估软件体系结构?

答:所谓软件体系结构的分析评估,就是事先通过代价低廉的评估活动来识别软件结构中存在的潜在风险,找出软件体系结构中影响系统质量的主要因素及改进措施,并在此基础上检验软件的质量需求是否在具体设计中得到实现,并预见未来软件质量。

软件体系结构在软件开发和管理中扮演者越来越重要的角色,软件体系结构设计对软件质量有着至关重要的影响,对此最终确保系统的质量有重要的意义。软件体系结构评估,是对系统的某些值的关心的属性进行评估和判断。评估的结果可用于确认潜在的风险,并检查设计阶段系统需求的质量,在系统被实际构造之前,预测其属性质量。

2、从哪些方面评估软件体系结构?

答:(1)性能是指系统的影响能力,即要经过多长时间才能对某个事件作出响应,或者在某段事件内系统所能处理的事件的个数。(2)可靠性是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功能特性的基本能力。(3)可用性是系统能够正常运行的时间比例。经常用两次故障间的时间长度或在出现故障时系统能够恢复正常的速度来表示。(4)安全性是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。安全性又可划分为机密性、完整性、不可否认性及可控性等特性。(5)可修改性是指能够快速的以较高的性能代价比对系统进行变更的能力。(6)功能性是系统所能完成所期望的工作的能力。(7)可变性是指体系结构经扩充或变更而成为新体系结构的能力。(8)可集成性是指系统能与其他系统协作的程度(9)互操作性是指与其他环境或者系统本身相互作用的能力。

七次

A公司是一家相对较大的软件和硬件企业,专业从事网络设备的开发。从单一的产品开始

现在,已经延伸到包括摄相服务器、扫描服务器、光盘服务器以及其他的存储服务器在内的产品。公司原来的产品都是一个一个地开发,每个软件组织一个项目组。为了适应快速变化的市场,降低开发成本,公司想引入产品线方法。然而,软件产品线开发涉及了一个软件开发组织的多个产品,选择了软件产品线意味着要承担由此带来的许多风险。所以,公司的CTO王总决定在弄清三个问题之后再做决定,首先就是本公司的业务范围是否适合使用产品线方法,其次是如何在原有产品的基础上建立产品线,最后是成功实施产品线的主要因素是什么?

[问题1]

请用100字以内文字说明A公司是否适合采用产品线方法?为什么?

答:A公司是适合采用产品线方法的。软件产品线体系结构是指一个软件开发组织为相关应用或产品建立的公共体系结构,此外同领域模型一样,软件产品线体系结构中可以分为共性部分和个性部分;产品线体系结构是产品线核心资源早期和主要部分,在产品线的生命周期里,产品线体系结构应该保持相对小和缓慢的变化以便在生命周期中尽量保持一致。

[问题2]

请用200字以内文字说明如何在原有产品的基础上建立产品线?

答:

[问题3]

请用150字以内文字说明成功实施产品线的主要因素是什么?

答:首先每个产品都由来自公共资产库中的组件组成,然后按照预先定义的变化机制,如参数化或继承,对这些组件进行必要的裁剪,添加任何必须的新组件,根据一个产品线范围内的公共架构来组装这些组件。于是,构建一个产品(系统)主要工作是组装和繁衍,而不是创造;主要的活动是集成而不是编程。每条软件产品线都有一个预先定义的指南或计划,用来定义确切的产品构建方法。

《数据结构》课后习题答案

第1章绪论 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 答案: 数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。 数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。在有些情况下,数据元素也称为元素、结点、记录等。数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。 数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。例如,学生基本信息表中的学号、姓名、性别等都是数据项。 数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…},字母字符数据对象是集合C={‘A’,‘B’,…,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。 逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。 存储结构:数据对象在计算机中的存储表示,也称为物理结构。 抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 答案: 例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。对于整个表来说,只有一个开始结点(它的前面无记录)和一个终端结点(它的后面无记录),其他的结点则各有一个也只有一个直接前趋和直接后继。学生记录之间的这种关系就确定了学生表的逻辑结构,即线性结构。 这些学生记录在计算机中的存储表示就是存储结构。如果用连续的存储单元(如用数组表示)来存放这些记录,则称为顺序存储结构;如果存储单元不连续,而是随机存放各个记录,然后用指针进行链接,则称为链式存储结构。 即相同的逻辑结构,可以对应不同的存储结构。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 答案: (1)集合结构 数据元素之间除了“属于同一集合”的关系外,别无其他关系。例如,确定一名学生是否为班级成员,只需将班级看做一个集合结构。 (2)线性结构 数据元素之间存在一对一的关系。例如,将学生信息数据按照其入学报到的时间先后顺序进行排列,将组成一个线性结构。 (3)树结构

体系结构 习题解答范文

第一章计算机体系结构的基本概念 1.层次结构——计算机系统可以按语言的功能划分为多级层次结构,每一层以不同的语言为 2.计算机体系结构:程序员看到的计算机的属性,即概念性结构和功能特性。 3.实质是计算机系统中软硬件界面的确定。 4.翻译——(基于层次结构)先把N+1级程序全部变换成N级程序之后,再去执行N级程序, 在执行过程中,N+1级程序不再被访问。 5.解释——每当一条N+1级指令被译码后,就直接去执行一串等效的N级指令,然后再去取下 一条N+1级指令,依此重复执行。 6.体系结构——程序员所看到的计算机的属性,即概念性结构与功能特性。主要研究计算机 系统软件和硬件的功能分配以及如何最佳、最合理地实现分配给硬件的功能。 8.透明性——在计算机技术中,对本来存在的事物或属性,从某一角度来看又好像不存在的 概念称为透明性。 9.系列机——在一个厂家生产的具有相同的体系结构,但具有不同的组成和实现的一系列不 同型号的机器。 10.软件兼容——同一个软件可以不加修改地运行于体系结构相同的各档机器上,而且它们所 获得的结果一样,差别只在于运行的时间不同。 11.兼容机——不同厂家生产的、具有相同体系结构的计算机。 12.计算机组成——计算机体系结构的逻辑实现。 13.计算机实现——计算机组成的物理实现。 14.存储程序计算机(冯·诺依曼结构)——采用存储程序原理,将程序和数据存放在同一存 储器中。指令在存储器中按其执行顺序存储,由指令计数器指明每条指令所在的单元地址。 15.并行性——在同一时刻或同一时间间隔内完成两种或两种以上性质相同或不同的工作。 16.时间重叠——在并行性中引入时间因素,即多个处理过程在时间上相互错开,轮流重叠地 使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。 17.资源重复——在并行性中引入时间因素,是根据“以数量取胜”的原则,通过重复设置资源, 尤其是硬件资源,大幅度提高计算机系统的性能。

体系结构大作业

软件体系结构课程大作业 1. 常规作业 Course Project: Tool Warehouse System 1.1 项目背景 FastRepair?是一家大型的跨国机械电子修理公司,建立于1980年。公司总部位于美国印第安纳州,印第安纳波利斯。目前公司总部有超过10000人的全职雇员。该公司拥有8家较小的子公司,位于整个美国境内,每个子公司的全职员工人数在3000到9000之间。 FastRepair 的业务主要涉及四个领域:大型建筑设备修理(Construction Device Repair)、汽车修理(Automobile Repair)、家电修理(Appliance Repair)和计算机修理(Computer Repair),相应的划分为四个大的部门(Department)。每个公司的员工(Employee)都根据自己的专业特长隶属于一个部门。然而,一些具有跨行业技能的高级员工(Specialist)独立于任何部门,他们平时会做一些与自己专业相关的工作,在遇到紧急情况或特殊项目时,需要立即被分配到这些项目上去。 公司的每一个员工都有两类工具(Tool),每类工具有50-100件左右。第一类工具放入员工工具箱中的一组常用廉价工具(Inexpensive Tool),另外一类是

一些贵重的工具(Expensive Tool )。对于工具箱中的廉价工具,员工在领取时需要进行登记(Register ),自行保管,但在损坏时需要进行注销(Cancellation )。而对于贵重工具(>200$的工具),必须通过工具仓库管理系统进行统一管理。在使用时需要办理租借(Lend )手续。需要注意的是,对于一般员工,只能借与自己专长相关的工具(也就是本部门内的工具),而对于专家,则可以借所有类型的工具。 由于工具种类庞杂,数量巨大;某些工具重量也很大;且分布在不同的地理位置。FastRepair 决定开发一套工具仓库管理系统(Tool Warehouse System TWS )。 TWS 主要分为两个部分,第一部分是员工与工具信息管理系统(Employ and Tool Management System ETMS ),详细记录工具的借、还与工具状态,公司内部员工可以通过本地企业局域网(Intranet )查询自己工具的借还情况,并发出对贵重工具的请求。对于本地没有的特殊工具,员工可以使用ETMS 通过互联网(Internet )在总公司或各个子公司的仓库中查找特定工具,并发出借用该工具的请求。 第二部分是一个仓库的实时管理系统(Warehouse Management System WMS ),位于总公司和每个子公司的工具仓库,在提取具体工具时,用户需要到具体的工具仓库进行工具的提取(也可以在工具仓库现场借工具),某个仓库的工具借用过程的示意图如下所示: 12. 验有效传送带 工具货柜 工具货柜工具货柜admin 抓将工具放置到传送带上 FastRepair 对WMS 的具体要求如下所示: 仓库的实时管理系统中存在多个工具抓取机器人,每个机器人都可从货柜上获取工具并将其放在工具传送带上,工具传送带装置根据重量传感器得知是否有工具在传送带上,并将工具传送到出口处。 用户在仓库的出口处向仓库管理员提交工具租借请求,由管理员将该请求输入仓库控制电脑,电脑将控制仓库中的机器人抓取相应的工具并将其放到工具传

软件体系结构KWIC实验

《软件体系结构》 实验:软件体系结构风格之应用

一、实验目的 通过KWIC 实例分析,理解和掌握软件体系结构风格设计与实现。 二、实验内容 多种软件风格设计与实现之KWIC 实例: 1.采用主/子程序体系结构风格实现KWIC 关键词索引系统 2.采用面向对象体系架构风格实现KWIC 关键词索引系统 3.采用管道过滤 体系架构风格实现KWIC 关键词索引系统 4.采用事件过程调用体系架构风格实现KWIC 关键词索引系统 三、实验要求与实验环境 熟练掌握基于主/子程序体系结构风格的KWIC 关键词索引系统,在此基础上,完成基于面向对象体系架构风格的KWIC 关键词索引系统设计与实现。选做基于管道过滤体系架构风格的KWIC 关键词索引系统;选做基于事件过程调用体系架构 风格的KWIC 关键词索引系统。 实验课前完成实验报告的实验目的、实验环境、实验内容、实验操作过程等 内容;实验课中独立/团队操作完成实验报告的实验操作、实验结果及结论等内容;每人一台PC 机,所需软件Win2003/XP 、UML 工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0 等。 四、实验操作 1、采用主/子程序体系结构风格实现KWIC 关键词索引系统 主程序/子程序风格(Main Program/Subroutine Style)将系统组织成层次结构,包括一个主程序和一系列子程序。主程序是系统的控制器,负责调度各子程 序的执行。各子程序又是一个局部的控制器,调度其子程序的执行。设计词汇表:主程序main(), 子程序shift(), sort() 方法,方法的调用,返回构件和连接件类型:

完整版计算机体系结构课后习题原版答案_张晨曦著

第1章计算机系统结构的基本概念 (1) 第2章指令集结构的分类 (10) 第3章流水线技术 (15) 第4章指令级并行 (37) 第5章存储层次 (55) 第6章输入输出系统 (70) 第7章互连网络 (41) 第8章多处理机 (45) 第9章机群 (45) 第1章计算机系统结构的基本概念 1.1 解释下列术语 层次机构:按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现的机器。 翻译:先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。

解释:对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。 计算机组成:计算机系统结构的逻辑实现,包含物理机器级中的数据流和控制流的组成以及逻辑设计等。 计算机实现:计算机组成的物理实现,包括处理机、主存等部件的物理结构,器件的集成度和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。 Amdahl定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。 程序的局部性原理:程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。

《软件工程导论》课程大作业-题目及要求

《软件工程专业导论与职业生涯规划》具体要求 一、大作业题目(注:每个小组完成一个题目) 1、计算机系统软件是什么?具体的系统软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的系统软件进行较为详细的阐述。 2、计算机应用软件是什么?具体的应用软件有哪些?它们的特点、作用、地位是什么?就其中的2~3个具体的应用软件进行较为详细的阐述。 3、阐述计算机软件的发展历程,对比分析各阶段的特征、理论体系、优势与不足。 4、软件危机是什么?列举2~3个具体的软件危机案例。导致软件危机爆发的原因有哪些?简单阐述现阶段软件危机的具体表现。 5、陈述“软件工程”概念提出的历史背景,包括发生的时间、地点、人物、事件等。“软件工程”的定义自提出以来,有多种说法。请尽可能罗列各种说法,并对其中的2~3个说法进行评述。软件工程的七条基本原理是哪些?分别对每条原理进行较为详细的阐述。 6、软件工程的目标是什么?十个性能是哪些?分别对每个性能进行较为详细的阐述。 7、软件工程研究的主要内容包括哪两个方面?分别对每个方面进行较为详细的阐述。 8、软件开发过程必须遵循的软件工程原则有哪些?分别对每个原则进行较为详细的阐述。 9、软件工程的过程包括哪些?分别对每个过程进行较为详细的阐述。 10、软件生命周期的概念是什么?软件生命周期的划分有哪些阶段?分别对每个阶段进行较为详细的阐述。 11、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的瀑布模型和原型模型进行较为详细的阐述及对比分析,并各举例说明。 12、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的演化模型和喷泉进行较为详细的阐述及对比分析,并各举例说明。 13、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的基于知识的模型和基于构件的模型进行较为详细的阐述及对比分析,并各举例说明。 14、软件生命周期模型的概念是什么?有哪些比较流行的模型?对其中的变换模型和双赢螺旋模型进行较为详细的阐述及对比分析,并各举例说明。 15、软件工程的四要素是哪些?分别对每个要素进行较为详细的阐述。中国制定

软件体系结构风格研究分析

软件体系结构风格研究分析 软件体系结构风格研究,分析了各种风格的特点、优缺点,最后重点介绍了三层C/S软件体系结构。 20世纪60年代中期的软件危机使得人们开始重视软件工程的研究。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大、越来越复杂,整个系统的结构显得越来越重要。 软件体系结构风格分析 最初的软件体系结构是Mainframe结构——客户、数据和程序都被集中在主机上,通常只有少量的GUI界面,对远程数据库的访问比较困难。随着PC的广泛应用,该结构逐渐被淘汰。在20世纪80年代中期出现了Client/Server分布式计算结构,应用程序的处理在客户机和服务器之间分担。随着大型软件系统的开发,这种结构在系统的部署和扩展性方面暴漏出不足。随着Inter的发展,一个更灵活的体系结构“三层/多层计算”体系结构应运而生。 Garlan和Shaw将通用软件体系结构风格总结为以下几类:

1.数据流风格:批处理序列;管道/过滤器。 2.调用/返回风格:主程序/子程序;面向对象风格;层次结构。 3.独立构件风格:进程通讯;事件系统。 4.虚拟机风格:解释器;基于规则的系统。 5.仓库风格:数据库系统;超文本系统;黑板系统。C2风格是最常用的一种软件体系结构风格。从C2风格的组织规则和结构图中,我们可以得出,C2风格具有以下特点: (1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消 息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。 2.数据抽象和面向对象风格。目前软件界已普遍转向使用面向对象系统,抽象数据类型概念对软件系统有着重要作用。这种风格的构件是对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。图2是数据抽象和面向对象风格的示意图。面向对象的系统有许多的优点: (1)因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其他的对象。(2)设计者可将一些数据存取操作的

完整版计算机体系结构课后习题原版答案张晨曦著

第1章计算机系统结构得基本概念 (1) 第2章指令集结构得分类 (4) 第3章流水线技术 (6) 第4章指令级并行 (16) 第5章存储层次 (25) 第6章输入输出系统 (31) 第7章互连网络 (41) 第8章多处理机 (45) 第9章机群 (45) 第1章计算机系统结构得基本概念 1、1 解释下列术语 层次机构:按照计算机语言从低级到高级得次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同得语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,汇编语言机器级,高级语言机器级,应用语言机器级等。 虚拟机:用软件实现得机器。 翻译:先用转换程序把高一级机器上得程序转换为低一级机器上等效得程序,然后再在这低一级机器上运行,实现程序得功能。 解释:对于高一级机器上得程序中得每一条语句或指令,都就是转去执行低一级机器上得一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。 计算机系统结构:传统机器程序员所瞧到得计算机属性,即概念性结构与功能特性。 在计算机技术中,把这种本来存在得事物或属性,但从某种角度瞧又好像不存在得概念称为透明性。 计算机组成:计算机系统结构得逻辑实现,包含物理机器级中得数据流与控制流得组成以及逻辑设计等。 计算机实现:计算机组成得物理实现,包括处理机、主存等部件得物理结构,器件得集成度与速度,模块、插件、底板得划分与连接,信号传输,电源、冷却及整机装配技术等。 系统加速比:对系统中某部分进行改进时,改进后系统性能提高得倍数。 Amdahl定律:当对一个系统中得某个部件进行改进后,所能获得得整个系统性能得提高,受限于该部件得执行时间占总执行时间得百分比。 程序得局部性原理:程序执行时所访问得存储器地址不就是随机分布得,而就是相对地簇聚。包括时间局部性与空间局部性。 CPI:每条指令执行得平均时钟周期数。 测试程序套件:由各种不同得真实应用程序构成得一组测试程序,用来测试计算机在各个方面得处理性能。 存储程序计算机:冯·诺依曼结构计算机。其基本点就是指令驱动。程序预先存放在计算机存储器中,机器一旦启动,就能按照程序指定得逻辑顺序执行这些程序,自动完成由程序所描述得处理工作。 系列机:由同一厂家生产得具有相同系统结构、但具有不同组成与实现得一系列不同型号得计算机。 软件兼容:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算

软件设计模式与软件体系结构实验报告

《软件体系结构》大作业(1) 学院:软件学院 课程名称:软件体系结构 专业班级: 学生姓名:学号: 学生姓名:学号: 指导教师: 完成时间:年月日 评分表 1、叙述各小组成员完成本题目的分工协作情况。 小组中的每个成员都先理解题目要求及涉及的设计模式,并一起完成代码编写。另外,组长负责文档制作。 2、评分表 序号姓名评分是否组长 1 2 作业正文需要包括以下内容: 1、作业题目内容的详细描述。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的 软件体系结构名称及画出相应的体系结构图。

3、画出完成本题目所设计程序的设计类图;如还有其他图,也一并画出。 4、完成本题目所设计的程序代码。 5、程序运行的典型界面截图

1、作业题目内容的详细描述。 【作业2.1-1】例2.3为使用工厂方法模式设计的汽车保险管理应用程序实例。现在需要 扩展例2.3的设计图,添加一个名为LuxuryCarInsurance的类,并且需要编写此类和其他需要添加的类的代码,详细要求参见光盘的相应作业部分。 【作业2.1-1】在例2.4中,设计并且实现了豪华(Super)和中等(Medium)别墅(House)与公寓(Condo)的查询。要求在该设计的基础上,增加一个新的类SemiDetacher(半独立式楼宇),并且编写代码,实现相应的查询功能,详细要求参见光盘的相应作业部分。 2、完成本题目所采用的软件设计模式名称及画出相应的类图,或者是所采用的软件体系结构名称及画出相应的体系结构图。 【作业2.1-1】采用的是工厂方法模式 【作业2.1-2】采用的是抽象方法模式

数据结构课后习题答案

数据结构习题集答案 第1章绪论 1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。 解:数据是对客观事物的符号表示。在计算机科学中是指所有能输入到计算机中并被计算机程序处理的符号的总称。 数据元素是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。 数据对象是性质相同的数据元素的集合,是数据的一个子集。 数据结构是相互之间存在一种或多种特定关系的数据元素的集合。存储结构是数据结构在计算机中的表示。 数据类型是一个值的集合和定义在这个值集上的一组操作的总称。抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。是对一般数据类型的扩展。 1.2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。 解:抽象数据类型包含一般数据类型的概念,但含义比一般数据类型更广、更抽象。一般数据类型由具体语言系统内部定义,直接提供给编程者定义用户数据,因此称它们为预定义数据类型。抽象数据

类型通常由编程者定义,包括定义它所使用的数据和在这些数据上所进行的操作。在定义抽象数据类型中的数据部分和操作部分时,要求只定义到数据的逻辑结构和操作说明,不考虑数据的存储结构和操作的具体实现,这样抽象层次更高,更能为其他用户提供良好的使用接口。 1.3 设有数据结构(D,R),其中 {}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r = 试按图论中图的画法惯例画出其逻辑结构图。 解: 1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。 解:ADT Complex{ 数据对象:D={r,i|r,i 为实数} 数据关系:R={} 基本操作: InitComplex(&C,re,im) 操作结果:构造一个复数C ,其实部和虚部分别为re 和im DestroyCmoplex(&C) 操作结果:销毁复数C Get(C,k,&e) 操作结果:用e 返回复数C 的第k 元的值

软件体系结构总结

第一章:1、软件体系结构的定义 国内普遍看法: 体系结构=构件+连接件+约束 2、软件体系结构涉及哪几种结构: 1、模块结构(Module) 系统如何被构造为一组代码或数据单元的决策 2、构件和连接件结构(Component-And-Connector,C&C) 系统如何被设计为一组具有运行时行为(构件)和交互(连接件)的元素 3、分配结构(Allocation) 展示如何将来自于模块结构或C&C结构的单元映射到非软件结构(硬件、开发组和文件系统) 3、视图视点模型 视点(View point) ISO/IEC 42010:2007 (IEEE-Std-1471-2000)中规定:视点是一个有关单个视图的规格说明。 视图是基于某一视点对整个系统的一种表达。一个视图可由一个或多个架构模型组成 架构模型 架构意义上的图及其文字描述(如软件架构结构图) 视图模型 一个视图是关于整个系统某一方面的表达,一个视图模型则是指一组用来构建 4、软件体系结构核心原模型 1、构件是具有某种功能的可复用的软件结构单元,表示了系统中主要的计算元素和数据存储。 2.连接件(Connector):表示构件之间的交互并实现构件 之间的连接

特性:1)方向性2)角色3)激发性4)响应特征 第二章 1、软件功能需求、质量属性需求、约束分别对软件架构产生的影响 功能性需求:系统必须实现的功能,以及系统在运行时接收外部激励时所做出的行为或响应。 质量属性需求:这些需求对功能或整个产品的质量描述。 约束:一种零度自由的设计决策,如使用特定的编程语言。 质量原意是指好的程度,与目标吻合的程度,在软件工程领域,目标自然就是需求。 对任何系统而言,能按照功能需求正确执行应是对其最基本的要求。 正确性是指软件按照需求正确执行任务的能力,这无疑是第一重要的软件质量属性。质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量。 系统或软件架构的相关视图的集合,这样一组从不同视角表达系统的视图组合在一起构成对系统比较完整的表达

计算机体系结构课后答案

计算机体系结构课后答案

计算机体系结构课后答案 【篇一:计算机体系结构习题(含答案)】 1、尾数用补码、小数表示,阶码用移码、整数表示,尾数字长p=6(不包括符号位),阶码字长q=6(不包括符号位),为数基值rm=16,阶码基值re=2。对于规格化浮点数,用十进制表达式写出如下数据(对于前11项,还要写出16进值编码)。 (1)最大尾数(8)最小正数 (2)最小正尾数(9)最大负数 (3)最小尾数(10)最小负数 (4)最大负尾数(11)浮点零 (5)最大阶码(12)表数精度 (6)最小阶码(13)表数效率 (7)最大正数(14)能表示的规格化浮点数个数 2.一台计算机系统要求浮点数的精度不低于10-7.2,表数范围正数不小于1038,且正、负数对称。尾数用原码、纯小数表示,阶码用移码、整数表示。 (1) 设计这种浮点数的格式 (2) 计算(1)所设计浮点数格式实际上能够表示的最大正数、最大负数、表数精度和表数效率。 3.某处理机要求浮点数在正数区的积累误差不大于2-p-1 ,其中,p是浮点数的尾数长度。 (1) 选择合适的舍入方法。

(2) 确定警戒位位数。 (3) 计算在正数区的误差范围。 4.假设有a和b两种不同类型的处理机,a处理机中的数据不带标志符,其指令字长和数据字长均为32位。b处理机的数据带有标志符,每个数据的字长增加至36位,其中有4位是标志符,它的指令数由最多256条减少到不到64条。如果每执行一条指令平均要访问两个操作数,每个存放在存储器中的操作数平均要被访问8次。对于一个由1000条指令组成的程序,分别计算这个程序在a处理机和b处理机中所占用的存储空间大小(包括指令和数据),从中得到什么启发? 5.一台模型机共有7条指令,各指令的使用频率分别为35%,25%,20%,10%,5%,3%和2%,有8个通用数据寄存器,2个变址寄存器。 (1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码的平均长度。 6.某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令3类,并假设每个地址字 段的长度均为6位。 (1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 (2) 如果要求3类指令的比例大致为1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这3类指令分配操作码。 7.别用变址寻址方式和间接寻址方式编写一个程序,求c=a+b,其中,a与b都是由n个元素组成的一维数组。比较两个程序,并回答下列问题: (1) 从程序的复杂程度看,哪一种寻址方式更好?

数据结构课后作业答案

1. 画出下图所示的无向图的邻接表。列出深度优先和广度优先搜索 遍历该图所的顶点序列和边的序列。 邻接表: 深度优先搜索:顶点序列:1 -2 -3- 4- 5 -6 边的序列:(1,2) (2,3) (3,4) (4,5) (5,6) 广度优先搜索:顶点序列:1 -2 -3 -6 -5-4 边的序列:(1,2) (1,3) (1,6) (1,5) (5,4) 2 已知以二维数组表示的图的邻接矩阵如下图所示。试分别画出自顶点1出发进 行遍历所得的深度优先生成树和广度优先生成树。 1 2 3 4 5 6 7 8 9 10 1 0 0 0 0 0 0 1 0 1 0 2 0 0 1 0 0 0 1 0 0 0 3 0 0 0 1 0 0 0 1 0 0 4 0 0 0 0 1 0 0 0 1 0 5 0 0 0 0 0 1 0 0 0 1 6 1 1 0 0 0 0 0 0 0 0 7 0 0 1 0 0 0 0 0 0 1 1 5 2 4 6 3

8 1 0 0 1 0 0 0 0 1 0 9 0 0 0 0 1 0 1 0 0 1 10 1 0 0 0 0 1 0 0 0 0 解:邻接矩阵所表示的图如下: 自顶点1出发进行遍历所得的深度优先生成树: 自顶点1出发进行遍历所得的广度优先生成树:

3 请对下图的无向带权图 (1)写出它的邻接矩阵,并按普里母算法求其最小生成树。 (2)写出它的邻接表,并按克鲁斯卡尔算法求其最小生成树。 解:(1) 邻接矩阵: ∞ 4 3 ∞ ∞ ∞ ∞ ∞ 4 ∞ 5 5 9 ∞ ∞ ∞ 3 5 ∞ 5 ∞ ∞ ∞ 5 ∞ 5 5 ∞ 7 6 5 4 ∞ 9 ∞ 7 ∞ 3 ∞ ∞ ∞ ∞ ∞ 6 3 ∞ 2 ∞ ∞ ∞ ∞ 5 ∞ 2 ∞ 6 ∞ ∞ 5 4 ∞ ∞ 6 ∞ 普里母算法求得的最小生成树: 7 5 9 6 4 5 6 3 5 5 3 4 e d 2 5 c b h f g a

软件体系结构课后作业及答案

1、就项目管理方面而言,软件重用项目与非重用项目有哪些不同之处。 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量,大量使用构建,软件的灵活性和标准化程度可得到提高。 2、实际参与/组织一个软件重用项目的开发,然后总结你是如何组织该项目的开发的 答:参加了一个网页管理系统的开发,该项目重复使用已有的软件产品用于开发新的软件系统,以达到提高软件系统的开发质量与效率,降低开发成本的目的。在过程中使用了代码的复用、设计结果的复用、分析结果的复用、测试信息的复用等。 3、为什么要研究软件体系结构? 答:1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。 2.软件体系结构代表了早期的设计决策成果。 3.软件体系结构可以作为一种可变换的模型。 4、根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成? 答:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器); 连接件(connector)是关系的抽象,用以表示构件之间的相互作用。如过程调用、管道、远程过程调用等; 限制(constrain):用于对构件和连接件的语义说明。 5、在软件体系结构的研究和应用中,你认为还有哪些不足之处? 答:(1)缺乏同意的软件体系结构的概念,导致体系结构的研究范畴模糊。 (2)ADL繁多,缺乏同意的ADL的支持。 (3)软件体系结构研究缺乏统一的理论模型支持。 (4)在体系结构描述方便,尽管出现了多种标准规范或建议标准,但仍很难操作。 (5)有关软件体系结构性质的研究尚不充分,不能明确给出一个良体系结构的属性或判定标准,没有给出良体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用。 (6)缺乏有效的支持环境软件体系结构理论研究与环境支持不同步,缺乏有效的体系结构分析、设计、方针和验证工具支持,导致体系结构应用上的困难。 (7)缺乏有效的体系结构复用方案。 (8)体系结构发现方法研究相对欠缺。 1、选择一个规模合适的系统,为其建立“4+1”模型。 逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。 过程视图(Process View),捕捉设计的并发和同步特征。 物理视图(Physical View),描述了软件到硬件的映射,反映了分布式特性。 开发视图(Development View),描述了在开发环境中软件的静态组织结构。 架构的描述,即所做的各种决定,可以围绕着这四个视图来组织,然后由一些用例(use cases)或场景(scenarios)来说明,从而形成了第五个视图。

体系结构课后习题答案

3.某模型机有10条指令I1~I10,它们的使用频度分别为0.3,0.24,0.16,0.12,0.07,0.04,0.03,0.02, 0.01,0.01。 (1)计算采用等长操作码表示时的信息冗余量。 (2)要求操作码的平均长度最短,试设计操作码的编码,并计算所设计操作码的平均长度。 (3)只有二种码长,试设计平均码长最短的扩展操作码编码并计算平均码长。 (4)只有二种码长,试设计平均码长最短的等长扩展码编码并计算平均码长。 3.(1)采用等长操作码表示时的信息冗余量为33.5%。 (2)操作码的Huffman编码法如表2.2所示,此种编码的平均码长为2.7位。 表2.2 操作码的Huffman编码法、2-5扩展码和2-4等长扩展码编码法 指令指令使用 频度p i Huffman编码 操作码 长度l i 2-5扩展码 操作码 长度l i 2-4等长扩 展码 操作码 长度l i I1 0.3 0 0 2 0 0 2 0 0 2 I2 0.24 1 0 2 0 1 2 0 1 2 I3 0.16 0 1 0 3 1 0 2 1 0 0 0 4 I4 0.12 0 1 1 3 1 1 0 0 0 5 1 0 0 1 4 I5 0.07 1 1 0 3 1 1 0 0 1 5 1 0 1 0 4 I6 0.04 1 1 1 0 0 5 1 1 0 1 0 5 1 0 1 1 4 I7 0.03 1 1 1 0 1 5 1 1 0 1 1 5 1 1 0 0 4 I8 0.02 1 1 1 1 0 5 1 1 1 0 0 5 1 1 0 1 4 I9 0.01 1 1 1 1 1 0 6 1 1 1 0 1 5 1 1 1 0 4 I10 0.01 1 1 1 1 1 1 6 1 1 1 1 0 5 1 1 1 1 4 (3)操作码的2-5扩展码编码法如表2.2所示,此种编码的平均码长为2.9位。 (4)操作码的2-4等长扩展码编码法如表2.2所示,此种编码的平均码长为2.92位。 5.若某机设计有如下格式的指令: 三地址指令12种,一地址指令254种,设指令字的长度为16位,每个地址码字段的位数均为4位。若操作码的编码采用扩展操作码,问二地址指令最多可以设计多少种? 5.二地址指令最多可以设计48种。 6.一台模型机共有9条指令I1~I9,各指令的使用频度分别为30%,20%,20%,10%,8%,6%,3%,2%,1%。该模型机有8位和16位两种指令字长。8位字长指令为寄存器-寄存器(R-R)二地址类型,16位字长指令为寄存器-存储器(R-M)二地址变址寻址类型。 (1)试设计有二种码长的扩展操作码,使其平均码长最短,并计算此种编码的平均码长。 (2)在(1)的基础上,该机允许使用多少个可编址的通用寄存器? (3)若采用通用寄存器作为变址寄存器,试设计该机的两种指令格式,并标出各字段的位数。 (4)计算变址寻址的偏移地址范围。 6.(1)操作码的2-5扩展码编码法如表2.3所示,此种编码的平均码长为2.9位。 表2.3 操作码的Huffman编码法和2-4等长扩展码编码法 指令指令使用频度p i 2-5扩展码操作码长度l i I1 0.3 0 0 2 I2 0.2 0 1 2 I3 0.2 1 0 2 I4 0.1 1 1 0 0 0 5 I5 0.08 1 1 0 0 1 5

数据结构课后习题答案清华大学出版社殷人昆

1-1什么是数据? 它与信息是什么关系? 【解答】 什么是信息?广义地讲,信息就是消息。宇宙三要素(物质、能量、信息)之一。它是现实世界各种事物在人们头脑中的反映。此外,人们通过科学仪器能够认识到的也是信息。信息的特征为:可识别、可存储、可变换、可处理、可传递、可再生、可压缩、可利用、可共享。 什么是数据?因为信息的表现形式十分广泛,许多信息在计算机中不方便存储和处理,例如,一个大楼中4部电梯在软件控制下调度和运行的状态、一个商店中商品的在库明细表等,必须将它们转换成数据才能很方便地在计算机中存储、处理、变换。因此,数据(data)是信息的载体,是描述客观事物的数、字符、以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。在计算机中,信息必须以数据的形式出现。 1-2什么是数据结构? 有关数据结构的讨论涉及哪三个方面? 【解答】 数据结构是指数据以及相互之间的关系。记为:数据结构= { D, R }。其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。 有关数据结构的讨论一般涉及以下三方面的内容: ①数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ②数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构; ③施加于该数据结构上的操作。 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。 1-3数据的逻辑结构分为线性结构和非线性结构两大类。线性结构包括数组、链表、栈、 队列、优先级队列等; 非线性结构包括树、图等、这两类结构各自的特点是什么? 【解答】 线性结构的特点是:在结构中所有数据成员都处于一个序列中,有且仅有一个开始成员和一个终端成员,并且所有数据成员都最多有一个直接前驱和一个直接后继。例如,一维数组、线性表等就是典型的线性结构 非线性结构的特点是:一个数据成员可能有零个、一个或多个直接前驱和直接后继。例如,树、图或网络等都是典型的非线性结构。 1-4.什么是抽象数据类型?试用C++的类声明定义“复数”的抽象数据类型。要求 (1) 在复数内部用浮点数定义它的实部和虚部。 (2) 实现3个构造函数:缺省的构造函数没有参数;第二个构造函数将双精度浮点数赋给复数的实部,虚部置为0;第三个构造函数将两个双精度浮点数分别赋给复数的实部和虚部。 (3) 定义获取和修改复数的实部和虚部,以及+、-、*、/等运算的成员函数。

软件体系结构期末复习题

软件体系结构期末 复习题

《软件体系结构》期末复习题 简答题: 1、软件体系结构建模的种类有: 结构模型、框架模型、动态模型、过程模型、功能模型。 2、“4+1”视图模型从5个不同的视角包括: 逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。 3、构件:是具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储。 连接件:表示构件之间的交互。 配置:表示构件和连接件的拓扑逻辑和约束。 端口:表示构件和外部环境的交互点。 角色:定义了该连接交互的参与者。 4、画出“4+1”视图模型图,分析各部分的原理和功能。 5、软件体系结构风格: 是描述某一特定应用领域中系统组织方式的惯用模式。

6、软件体系结构 (Software Architecture) 软件体系结构以组件和组件交互的方式定义系统,说明需求与成品系统之间的对应关系,描述系统级别的可伸缩性、能力、吞吐量、一致性和兼容性等属性。软件体系结构由组件、连接件和属性组成。 7、分层系统的优点有: 1)支持基于抽象程度递增的系统设计,使设计者能够把一个复杂系统按递增的步骤进行分解; 2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层; 3)支持重用。只要提供的服务接口定义不变,同一层的不同实现能够交换使用。这样,就能够定义一组标准的接口,而允许各种不同的实现方法。 8、分层系统的缺点有: 1)并不是每个系统都能够很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来; 2)很难找到一个合适的、正确的层次抽象方法。 9、 B/S体系结构的优点有什么? 答:1)基于B/S体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。

数据结构课后习题及答案

填空题(10 * 1’ = 10’) 一、概念题 .当对一个线性表经常进行的是插入和删除操作时,采用链式存储结构为宜。 .当对一个线性表经常进行的是存取操作,而很少进行插入和删除操作时,最好采用顺序存储结构。 .带头结点的单链表L中只有一个元素结点的条件是L->Next->Next==Null。 .循环队列的引入,目的是为了克服假溢出。 .长度为0的字符串称为空串。 .组成串的数据元素只能是字符。 .设T和P是两个给定的串,在T中寻找等于P的子串的过程称为模式匹配,又称P为模式。 .为了实现图的广度优先搜索,除一个标志数组标志已访问的图的结点外,还需要队列存放被访问的结点实现遍历。 .广义表的深度是广义表中括号的重数 .有向图G可拓扑排序的判别条件是有无回路。 .若要求一个稠密图的最小生成树,最好用Prim算法求解。 . 直接定址法法构造的哈希函数肯定不会发生冲突。 .排序算法所花费的时间,通常用在数据的比较和交换两大操作。 .通常从正确性﹑可读性﹑健壮性﹑时空效率等几个方面评价算法的(包括程序)的质量。 .对于给定的n元素,可以构造出的逻辑结构有集合关系﹑线性关系树形关系﹑图状关系四种。 .存储结构主要有顺序存储﹑链式存储﹑索引存储﹑散列存储四种。 .抽象数据类型的定义仅取决于它的一组逻辑特性,而与存储结构无关,即不论其内部结构如何变化,只要它的数学特性不变,都不影响其外部使用。 .一个算法具有五大特性:有穷性﹑确定性﹑可行性,有零个或多个输入﹑有一个或多个输入。 .在双向链表结构中,若要求在p指针所指的结点之前插入指针为s所指的结点,则需执行下列语句:s->prior= p->prior; s->next= p; p->prior- next= s; p->prior= s;。 .在单链表中设置头结点的作用是不管单链表是否为空表,头结点的指针均不空,并使得对单链表的操作(如插入和删除)在各种情况下统一。 .队列是限制在表的一端进行插入和在另一端进行删除的线性表,其运算遵循先进先出原则。 .栈是限定尽在表位进行插入或删除操作的线性表。 .在链式队列中,判定只有一个结点的条件是(Q->rear==Q->front)&&(Q->rear!=NULL)。 .已知链队列的头尾指针分别是f和r,则将x入队的操作序列是node *p=(node *)malloc(node); p->next=x; p->next=NULL; if(r) {r->next=p; r=p;} else {r=p; f=p;}。 .循环队列的满与空的条件是(rear+1)%MAXSIZE==fornt和(front=-1&&rear+1==MAXSIZE)。 .串是一种特殊的线性表,其特殊性表现在数据元素都是由字符组成。 .字符串存储密度是串值所占存储位和实际分配位的比值,在字符串的链式存储结构中其结点大小是可变的。 .所谓稀疏矩阵指的是矩阵中非零元素远远小于元素总数,则称该矩阵为矩阵中非零元素远远小于元素总数,则称该矩阵为稀疏矩阵。 .一维数组的逻辑结构是线性结构,存储结构是顺序存储结构;对二维或多维数组,分别按行优先和列优先两种不同的存储方式。 .在有向图的邻接矩阵表示中,计算第i个顶点入度的方法是求邻接矩阵中第i列非0元素的个数。 网中,结点表示活动,边表示活动之间的优先关系,AOE网中,结点表示事件,边表示活动。 .按排序过程中依据不同原则对内部排序方法进行分类,主要有选择排序﹑交换排序﹑插入排序归并排序等4类。 .在堆排序、快速排序和归并排序中若只从排序结果的稳定性考虑,则应选择归并排序方法;若只从平均情况下排序最快考虑,则应选择快速排序方法;若只从最坏情况下排序最快且要节省类存考虑,则应选择堆排序方法。 .直接插入排序用监视哨的作用是存当前要的插入记录,可又省去查找插入位置时对是否出界的判断。 .设表中元素的初始状态是按键值递增的,则直接插入排序最省时间,快速排序最费时间。 .下列程序判断字符串s是否对称,对称则返回1,否则返回0;如?(“abba”)返回1,?(”abab”)返回0. Int f (char*s) { Int i=0,j=0; 求串长*/

相关文档
相关文档 最新文档