2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)

上传人:住在山****ck 文档编号:98831523 上传时间:2022-05-30 格式:DOCX 页数:16 大小:27.28KB
收藏 版权申诉 举报 下载
2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)_第1页
第1页 / 共16页
2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)_第2页
第2页 / 共16页
2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)_第3页
第3页 / 共16页
资源描述:

《2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)》由会员分享,可在线阅读,更多相关《2022软件水平考试-高级系统分析师考前拔高名师测验卷42(附答案解析)(16页珍藏版)》请在装配图网上搜索。

1、2022软件水平考试-高级系统分析师考前拔高名师测验卷(附答案解析)1. 问答题:应用服务器在基于Web的数据库应用系统中已经得到了广泛的应用。如今,各大主要软件厂商纷纷将应用服务器作为其电子商务平台的基础。由于应用服务器本身是一个正在不断发展的概念,不同的产品之间有很大的差别,但是其核心结构,以及需要解决的主要问题都是相近的,区别仅在于各个产品解决的具体方法不同。下面是应用服务器共同需要解决的部分问题。(1)负载均衡:应用服务器实现负载均衡的方法很多,比如在应用服务器本身的实现上,有基于进程的方式和基于线程的方式。(2)数据库连接池:在应用服务器系统中,一般都会采用数据库连接池的技术。(3)

2、高速缓存机制:为了提高性能,许多应用服务器都采用了高速缓存机制。【问题1】请用150字以内文字,说明什么是数据库连接池技术?在应用服务器中使用这种技术的优点是什么?【问题2】请用200字以内文字,叙述在应用服务器中可有哪些高速缓存?这些高速缓存是如何改进系统性能的?【问题3】某公司希望实现一个电子商务系统,要求该系统必须符合工业标准且支持多种操作平台,请选择一种应用服务器产品,并用200字以内文字简要列举出该类产品能提供的主要的技术支持特征。答案: 本题解析:一、试题分析由于本题中,题面中提供的信息相对较简单,对答案的构思不能够起到很大的帮助作用。因此关键还在于考生对应用服务器基础知识的掌握程

3、度。【问题1】使用应用服务器环境的一个重要原因就是为了最小化数据库连接,并且尽力减少在数据库服务器上的加载次数。在传统的两层环境中,每个用户至少要建立一个到其他各个数据库的连接。这种通过Driver Manager(例如ODBC、JDBC等)和基本实现DataSource进行连接(例如ADO等)的方法,一个数据库连接对象均对应一个物理数据库连接。一方面,会造成连接数的数量猛增,并很快用光数据库服务器的资源;另一方面,数据库连接的建立(通常需要13s,包括服务器通信和认证所花费的时间),以及关闭对系统而言是耗费系统资源的操作,这种耗费资源的动作对系统的性能影响尤为明显。而当引入了应用服务器之后,

4、管理数据库连接的责任就落在应用服务器中。如果应用服务器为每个客户端的数据访问建立一个数据库连接,那么问题仍然不能够得以解决。因此对于具有高数据访问量的应用来说,一个更好的策略就是管理一个连接池。启动时,可以创建一个预定编号的连接,并以矢量或阵列的形式进行存储。在调用表对象的方法之前,得到下一个连接对象的请求;然后,把这个连接连同这个数据请求一起传递给表格。随着每个顺序请求的加入,这个连接不断地循环,并自动平衡连接中的加载。一旦连接对象失败,就会放弃这个循环,并在一定程度上自动恢复。通俗地说,就是将每次创建的数据库连接放在一个“池”里,并且在连接使用完成时并不急于关闭这个连接。当应用程序需要调用

5、一个数据库连接时,数据库相关的接口返回一个通过重用数据库连接(就是那些已使用完,但未关闭的、空闲的数据库连接)而非重新创建一个数据库连接,只在没有可用的数据库连接时,才重新创建一个。通过这种方式,应用程序可以减少对数据库连接操作,尤其在多层环境中多个客户端可以通过共享少量的物理数据库连接来满足系统需求。当使用了数据库连接池技术之后,由于可以有效地减少数据库连接的建立和关闭操作,从而能够节省大量的系统消耗,同时明显地提升系统的性能。另外,由于使用了数据库连接后,应用系统所需的数据库连接在一段时间后就会稳定在一定的数量范围之内,从而也提高了系统的可测量性。【问题2】为了达到最佳的性能,许多应用服务

6、器都采用了高速缓存机制。在应用服务器中使用高速缓存一般包括三个地方,即页面的缓存、数据库的缓存、动态页面的缓存。页面的缓存是指将特定的URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行,只需将缓存读出,然后输出即可。但是,由于大多数URL对应的页面中,往往都有少量需要变动的信息,这些页面不能使用这种方法进行缓存。数据库的缓存是指系统对数据库的访问结果进行缓存,这样,相同的SQL再次去访问数据库时,就不需要进行真正的数据库操作,而只需读取缓存即可。这种缓存能够达到良好效果的前提是系统的主要开销在于数据库访问。

7、由于系统依然需要进行有关页面生成等工作,所以缓存效果不如页面缓存,但是适用面比较广。为了能够进一步减少页面生成工作,现在许多应用服务器针对各种动态网页技术和构件技术提供了相应的高速缓存机制,也就是将页面的生成结果进行缓存,当处理以后的页面请求时,可以直接使用缓存结果,从而进一步减少开销,提高访问性能。但是这种技术也有很多局限性,当用户所访问的信息集不同时,缓存里的信息并不能够被利用,还是需要另外生成。【问题3】应用服务器被誉为“Internet上的操作系统”,其在IT技术中的重要程序不言而喻,因此众多IT公司都纷纷重金投入开发自己的应用服务器产品,甚至开源组织也不例外,各种有竞争力的应用服务器

8、产品层出不穷。另一方面,由于应用服务器在基于Internet的企业应用中,起着十分重要的作用。因此,作为系统分析师来说,了解各种主流的应用服务器产品,并根据实际的需要正确地选择是一个十分重要的知识基础。回到本题,它要求选择一种应用服务器产品,该产品符合工业标准,支持多种操作平台,适合于电子商务应用。要想做出正确的选择必须能够对以下这几个要求有正确的理解。 符合工业标准:主要是指应用服务器中采用的中间件技术符合工业标准,如J2EE、CORBA、XML等。 支持多种操作系统:也就是能够在Windows系列、UNIX系列等多种操作系统环境中使用,基于CORBA和J2EE的都能够满足这个要求。而微软的

9、MTS则只能够运用于Windows系列操作系统平台,显然无法满足这个要求。 适合于电子商务应用:根据电子商务的应用特点,要求应用服务器能够提供诸如事务管理、组建容器等一系列适合分布式应用的技术,另外还应该具有高扩展性、伸缩性的特点,以满足电子商务发展的业务扩展需要。根据上面的分析,结合各种主流应用服务器的特色,我们会发现应用服务器产品中符合这些要求的比较多,考生可以根据自己的熟悉情况来选择。比较适合的选择包括BEA的WebLogic、IBM的Websphere、Sun和Netscape联手的产品iPlanet Application Server等。当然类似于JBoss这样的应用服务器也是正确

10、的选择。二、参考答案【问题1】数据库连接池技术是指在系统初期,或者初次使用时,完成数据库的连接,而后不再释放此连接,在处理后面的请求时,反复使用这些已经建立的连接。这种方式可以大大减少数据库的处理时间,有利于提高系统的整体性能、可测量性和扩展性。【问题2】在应用服务器中有页面的缓存和数据库的缓存。页面的缓存是指将特定的URL对应的页面在缓存中予以记录,以便在未来再次访问同一个URL时,直接使用。这里的缓存可以达到最佳的缓存性能,任何后面的操作都不需要进行,只需将缓存读出,然后输出即可。数据库的缓存是指系统对数据库的访问结果进行缓存,这样,相同的SQL再次访问数据库时,就不需要进行真正的数据库操

11、作,而只需读取缓存即可。【问题3】可以选择J2EE应用服务器(例如,WebLogic,Websphere等),它支持多种操作系统,如Windows,UNIX,Linux等,同时也是工业标准。 数据库操作支持:JDBC数据源,通过缓冲数据库连接,提供高效、可靠的数据库操作。 安全性控制:J2EE提供声明性安全控制,用户在部署描述符中通过声明的方式来控制应用系统的安全性(例如,可以控制如何进行身份认证,控制那些角色可以访问哪些资源或执行哪些操作等)。 事务控制:J2EE应用服务器支持将事务控制交给容器自动管理,或者利用JTA在代码中自己控制事务。 与其他系统交互:基于JCA或者JMS,另外可以直接

12、访问CORBA构件。2. 问答题:某集团公司在各省均设有分公司,现欲建立全国统一的销售管理信息系统,以便总公司及时掌握各分公司的销售情况。公司成立专门的项目组进行该系统的研发工作,其中张工负责其中的数据库设计工作。张工和需求分析小组紧密合作,在设计出数据流图和数据字典的基础上,给出了数据库关系模式和相应的索引设计。同时考虑到未规范化关系模式可能引起的各类数据错误,对关系模式进行了全面的规范化处理,使所有关系模式均达到了3NF或BCNF。在项目实施过程中,应用开发小组认为该设计方案未考虑应用功能的实际需求。如果严格按照设计方案实施,会对应用系统中整体性能产生较大影响。主要的原因在于进行数据查询时

13、,会产生大量的多表连接操作,影响性能。而设计方案中的索引设计,并不能完全满足数据查询的性能要求。应用开发小组还认为,该设计方案未考虑到信息系统中核心销售数据处理的特点:各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其它分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析。应用开发小组要求,在数据库设计方案中,必须针对实际应用功能的实现来考虑关系模式的规范化,必要时需要采用逆规范化或解除规范化的方法来保证性能要求。【问题1】系统需要管理供应商和货物等信息,具体包括供应商姓名、地址以及货物名称、价格等,供应商可以提供0n种货物,其公司地址也可能发生变化。请以供应商

14、关系模式supplier(name,address,product,price)为例,解释不规范的关系模式存在哪些问题。【问题2】应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题,但实际实现功能时会造成系统性能的下降,请解释其原因。【问题3】请解释逆规范化方法,说明其优缺点。【问题4】针对该信息系统中核心销售数据处理的特点,如采用关系表水平分割的逆规范化方法,请给出具体的解决方案,并说明该方案存在的问题。答案: 本题解析:一、试题分析本题是一个数据库设计方面的考题,考查的知识点包括规范化理论和反规范化理论(逆规范化)。规范化的基本思想是逐步消除不合适的函数依赖,使数据库中的

15、各个关系模型达到某种程度的分离。规范化解决的主要是单个实体的质量问题,是对于问题域中原始数据展现的正规化处理。规范化理论给出了判断关系模型优劣的理论标准,帮助预测模式可能出现的问题,是数据库逻辑设计的指南和工具,具体有:(1)用数据依赖的概念分析和表示各数据项之间的关系。(2)消除E-R图中的冗余联系。若不进行规范化处理,可能产生的问题包括:数据冗余、修改异常、插入异常、删除异常。下面举例说明这些问题的具体表现形式。设有一个关系模式R(SNAME,CNAME,TNAME TADDRESS),其属性分别表示学生姓名、选修的课程名、任课教师姓名和任课教师地址。仔细分析一下,就会发现这个模式存在下列

16、存储异常的问题:(1)数据冗余:如果某门课程有100个学生选修,那么在R的关系中就要出现100个元组,这门课程的任课教师姓名和地址也随之重复出现100次。(2)修改异常:由于上述冗余问题,当需要修改这个教师的地址时,就要修改100个元组中的地址值,否则就会出现地址值不一致的现象。(3)插入异常:如果不知道听课学生名单,这个教师的任课情况和家庭地址就无法进入数据库;否则就要在学生姓名处插入空值。(4)删除异常:如果某门课程的任课教师要更改,那么原来任课教师的地址将随之丢失。在本题中,也存在同样的问题:(1)数据冗余:关系模式中多次重复记录了同一供应商的地址。(2)插入异常:如果还未确定一个供应商

17、有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。(3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。(4)删除异常:当删除一个供应商的货物时,其地址信息被一并删除。数据库中的数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度,但是对完全规范的数据库查询,通常需要更多的连接操作,从而影响查询的速度。因此,有时为了提高某些查询或应用的性能而破坏规范规则,即反规范化(非规范化处理)。因此,题目中所说的“应用开发小组认为张工的规范化设计虽然解决了未规范化关系模式带来的问题

18、,但实际实现功能时会造成系统性能的下降”,主要就是查询效率下降。其原因是规范化过程中对数据表进行了不断的拆分,导致一个查询需要进行多表连接,效率自然就下降了。具体来说,常见的反规范化技术包括:(1)增加冗余列增加冗余列是指在多个表中具有相同的列,它常用来在查询时避免连接操作。例如:以规范化设计的理念,学生成绩表中不需要字段“姓名”,因为“姓名”字段可以通过学号查询到,但在反规范化设计中,会将“姓名”字段加入到表中。这样查询一个学生的成绩时,不需要与学生表进行连接操作,便可得到对应的“姓名”。(2)增加派生列增加派生列指增加的列可以通过表中其它数据计算生成。它的作用是在查询时减少计算量,从而加快

19、查询速度。例如:订单表中,有商品号、商品单价、采购数量,我们需要订单总价时,可以通过计算得到总价,所以规范化设计的理念是无须在订单表中设计“订单总价”字段。但反规范化则不这样考虑,由于订单总价在每次查询都需要计算,这样会占用系统大量资源,所以在此表中增加派生列“订单总价”以提高查询效率。(3)重新组表重新组表指如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。(4)分割表有时对表做分割可以提高性能。表分割有两种方式:水平分割:根据一列或多列数据的值把数据行放到两个独立的表中。水平分割通常在下面的情况下使用:情况1:表很大,分割后可以降低在查询时需要读

20、的数据和索引的页数,同时也降低了索引的层数,提高查询速度。情况2:表中的数据本来就有独立性,例如表中分别记录各个地区的数据或不同时期的数据,特别是有些数据常用,而另外一些数据不常用。情况3:需要把数据存放到多个介质上。垂直分割:把主码和一些列放到一个表,然后把主码和另外的列放到另一个表中。如果一个表中某些列常用,而另外一些列不常用,则可以采用垂直分割,另外垂直分割可以使得数据行变小,一个数据页就能存放更多的数据,在查询时就会减少I/O次数。其缺点是需要管理冗余列,查询所有数据需要连接操作。 问题4要求提出水平分割方案,实际上就是把数据表按记录进行拆分,并存储于不同的位置。由于本题中数据的使用存

21、在这样的特性“各分公司在使用该信息系统时只能操作自己分公司的销售数据,无权操作其它分公司的销售数据;只有总公司有权利操作所有销售数据,以便进行统计分析”,所以按省,每个分公司存储自己的数据,这样能达到高效查询的目的,只是这样会让总公司的统计分析变得十分的低效。二、参考答案【问题1】(1)数据冗余:关系模式中多次重复记录了同一供应商的地址。(2)插入异常:如果还未确定一个供应商有哪些货物,只是想添加一个供应商的地址信息,则会产生产品与价格均为空的记录。(3)修改异常:当修改一个供应商的地址时,需要将多条记录同时更新,若未同时更新,则数据产生不一致。(4)删除异常:当删除一个供应商的货物时,其地址

22、信息被一并删除。【问题2】数据库规范化的过程,实际是对数据表的不断拆分,以达到更高的规范程度。这样处理,带来的问题是:系统中大量查询不能通过单表完成,而需要将多表进行连接查询,所以表拆分得越多,查询性能也就越差。【问题3】逆规范化方法优点:提高统计、查询效率。逆规范化方法缺点:增加了数据冗余,浪费存储空间,增、删、改操作的效率降低,可能导致数据不一致,可能产生添加、修改、删除异常。【问题4】解决方案:将各省的数据存放于各省分公司。该方案主要问题在于总公司进行全国数据统计时,需要从各省服务器调取数据,效率较低。3. 问答题:论软件系统测试及其应用软件系统测试是将已经确认的软件与计算机硬件、外设、

23、网络等其他设施结合在一起,进行信息系统的各种组装测试和确认测试,系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,进而完善软件。系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等,其中,最重要的是功能测试和性能测试。功能测试主要采用黑盒测试方法。请围绕“软件系统测试及其应用”论题,依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。2.详细论述软件系统测试中功能测试的主要方法,自动化测试的主要内容和如何选择适合的自动化测试工具。3.结合你具

24、体参与管理和开发的实际项目,说明你是如何采用软件系统测试方法进行系统测试的,说明具体实施过程以及应用效果。答案: 本题解析:本题属于软件工程方向的考题。文章第一部分是标准问题,进行详实的项目简介即可。文章第二部分与第三部分内容可以结合起来论述,需要理论结合实践。在此主要说明需要用到的理论知识。其实题目中所说的“软件系统测试中功能测试”就是平时所说的黑盒测试与白盒测试。白盒测试的方法包括一系列的逻辑覆盖,主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。(1)语句覆盖。语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的

25、每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。(2)判定覆盖。判定覆盖也称为分支覆盖,它是指不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。(3)条件覆盖。条件覆盖是指不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取得各种可能的结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。(4)条件/判定覆盖。同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是,选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出

26、现一次。(5)条件组合覆盖。条件组合覆盖是指选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述5种覆盖标准中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少遍历一次。(6)修正的条件/判定覆盖。修正的条件/判定覆盖需要足够的测试用例来确定各个条件能够影响到包含的判定结果。首先,每个程序模块的入口和出口点都要考虑至少要被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and和or)连接的布尔条件,每个条件对于判定的结果值

27、是独立的。(7)路径覆盖。路径覆盖是指选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路路径至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。常见的黑盒测试包括:(1)等价类划分。在设计测试用例时,等价类划分是用得最多的一种黑盒测试方法。所谓等价类就是某个输入域的集合,对于一个等价类中的输入值来说,它们揭示程序错误的作用是等效的。也就是说,如果等价类中的一个输入数据能检测出一个错误,那么等价类中的其他输入数据也能检测出同一个错

28、误;反之,如果等价类中的一个输入数据不能检测出某个错误,那么等价类中的其他输入数据也不能检测出这一错误(除非这个等价类的某个子集还属于另一个等价类)。(2)边界值分析。经验表明,软件在处理边界情况时最容易出错。设计一些测试用例,使软件恰好运行在边界附近,暴露出软件错误的可能性会更大一些。通常,每一个等价类的边界,都应该着重测试,选取的测试数据应该恰好等于、稍小于或稍大于边界值。例如,对于条件“10x30”的测试,可以选取x的值为9、10、30和31作为测试数据。在实际测试工作中,将等价类划分法和边界值分析法结合使用,能更有效地发现软件中的错误。(3)错误推测。使用等价类划分和边界值分析技术,有

29、助于设计出具有代表性的、容易暴露软件错误的测试方案。但是,不同类型的软件通常有一些特殊的容易出错的地方。错误推测法主要依靠测试人员的经验和直觉,从各种可能的测试用例中选出一些最可能引起程序出错的用例。虽然手工测试可以找到软件的很多缺陷,但这是一个艰苦和耗时的过程,而且可能无法有效地发现某些类型的缺陷。测试自动化是一个通过编程完成测试的过程,一旦测试实现了自动化,大量的测试用例就可以迅速得到执行。自动化测试通常需要构建存放程序软件包和测试软件包的文件服务器、存储测试用例和测试结果的数据库服务器、执行测试的运行环境、控制服务器、Web服务器和客户端程序。自动化测试的主要实现方法包括代码的静态与动态

30、分析、测试过程的捕获与回放、测试脚本技术、虚拟用户技术和测试管理技术等。自动化测试工具的关键特性之一是具有良好的脚本开发环境。测试工具首先应该具有相对应的容错处理系统,可以自动处理一些异常状况;其次要能够提供类似软件集成开发环境中的调试功能,支持脚本的运行、设置断点、得到变量返回结果等,可以更有效地对测试脚本的执行进行跟踪、检查并迅速定位问题;最后,测试脚本的开发通常也需要一个团队的开发环境,即测试工具对脚本代码能很好地进行控制与管理。目前,测试工具主要有单元测试工具、负载和性能测试工具、GUI功能测试工具和基于Web应用的测试工具等。(1)单元测试工具。单元测试工具主要包括C/C+测试工具(

31、例如,Panorama C+和C+ Test等)、Java开源测试框架JUnit、内存资源泄漏检查工具(例如,Numega的BounceChecker和Rational的Purify等)、代码覆盖率检查工具(例如,Numega的TrueCoverage、Rational的PureCoverage和TeleLogic的LogiScope等)、代码性能检查工具(例如,LogiScope的Macabe等)和软件纠错工具(例如,Rational Purl等)。(2)负载和性能测试工具。负载和性能测试工具是软件测试中作用最大的工具,可以完成一些难以用手工实现的测试,常用工具包括Mercury Inter

32、active的LoadRunner和Compuware的QALoad,以及IBM Rational的SQA Load、Performance和Visual Quality。(3)GUI功能测试工具。GUI功能测试工具主要用于回归测试,主要工具包括Mercury Interactive的WinRunner和Compuware的QARun,以及IBM Rational的SQA Robot和Microsoft的Visual Test Suite等。(4)基于Web应用的测试工具。基于Web应用的测试工具主要进行链接检查、HTML检查、Web功能和安全性等方面的测试。主要的测试工具包括MI公司的Ast

33、ra系列和RSW公司的E-TestSuite,以及WorkBench、Web Application Stress(WAS)Tool和Link Sleuth等。其他的测试工具还包括缺陷跟踪工具、综合测试管理工具、嵌入式测试工具、数据库测试工具等。面对如此众多的测试工具,在选择时应进行综合考虑,例如,考察测试工具是否支持脚本语言,是否具有良好的脚本开发环境;脚本语言是否支持外部函数库,以及函数的可复用;测试工具对程序界面中对象的识别能力,对分布式测试的网络支持,以及是否支持数据驱动测试等方面。4. 问答题:某电子商务公司的主要业务是书籍、服装、家电和日用品的在线销售。随着公司业务发展和用户规模的

34、不断扩大,现有的网上交易系统无法正常处理日益增大的请求流量,公司决策层决定升级其网上交易系统。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用基于高性能主机系统的方法进行系统升级,另外一位系统分析师李工则提出采用基于负载均衡集群的方法进行系统升级。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。【问题 1】(9 分)请从系统的可用性、可伸缩性和应用特点三个方面说明公司为何没有采用王工提出的方法。【问题 2】(8 分)负载均衡通常分为传输层负载均衡和应用层负载均衡两类。请基于这种分类方式,说明基于 DNS 的负载均衡方法和基于 HTTP 重定向服务器的负载

35、均衡方法分别属于哪类负载均衡方法,并用200字以内的文字说明这两种方法实现负载均衡的方式。【问题 3】(8 分)在确定使用基于负载均衡集群的系统升级方法后,李工给出了一个基于LVS(Linux Virtual Server)的负载均衡集群实现方案。公司的系统分析师在对现有系统进行深入分析的基础上,认为以下两个实际情况对升级方案影响较大,需要对该方案进行改进。1.系统需要为在线购物提供购物车功能,用来临时存放选中的产品。2.系统需要保证向所有的VIP 用户提供高质量的服务。针对上述描述,首先说明每种情况分别会引入哪些与负载均衡相关的问题,并用 200字以内的文字说明针对不同的问题,应该如何改进李

36、工的解决方案。答案: 本题解析:【问题1】王工提出的方案是采用高性能的主机系统实现系统升级。从可用性角度看,采用高性能的主机系统很难实现系统的冗余机制,当发生故障后会导致整个系统会失去响应能力,从而无法保证系统的高可用性;从可伸缩性角度看,采用高性能的主机系统,升级服务器的成本与获得的相应能力不成比例,整个系统的可扩展性较差;从应用特点来看,Internet中的Web应用绝大多数是简单任务、高强度的并发处理,而主机系统只是对于复杂单一任务和有限的并发处理具有高性能,不能同时处理大量的并发请求。因此,公司没有采用王工的方案。【问题2】基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DN

37、S服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。基于HTTP重定向服务器的负载均衡属于应用层负载均衡技术,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新路由到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。【问题3】第一种情况的描述说明系统需要提供应用会话数据支持。通常采用会话服务器机制在服务器端存放应用会话数据。但需要注意的是,应用会

38、话数据大多数情况下是不可恢复的,因此采用支持应用会话数据容错的解决方案非常重要。第二种情况的描述要求保证特定用户的服务质量。当数据量不断增长时,由于在会话服务器或缓存服务器,业务服务器和会话(或缓存)服务器之间可能会反复移动较大量的数据,从而无法保证服务质量。因此,通常的做法是基于应用层负载均衡器实现客户端联系,将某个客户端的所有请求转发到相同的服务器,使得一个用户会话的所有请求被同一服务器实例处理,从而保证服务质量。5. 问答题:论软件维护及软件可维护性软件维护指软件交付使用后,为了改正错误或满是新的需要而修改软件的过程。软件维护活动花费了整个软件生命期成本的5090%,要降低维护成本,需要

39、提高软件的可维护性。软件可维护性(Software Maintainability)是指软件能够被理解、校正、增强功能及适应变化的容易程度。提高软件的可维护性是软件开发阶段的关键目标之一。请围绕“软件维护及软件可维护性”论题,依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。2.请给出常见的三种软件维护的类型并分别对其特点进行论述。说明影响软件可维护性的主要因素并详细论述提高软件可维护性的主要方法。3.具体阐述你参与管理和开发的项目中所进行的软件维护活动和所采取的提高软件可维护性的方法,说明具体实施的过程以及实际应用的效果。答案: 本题解析:一、简

40、要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。二、常见软件维护类型及特点1.软件维护的类型软件维护分为正确性维护、适应性维护、完善性维护和预防性维护等。(1)正确性维护(改正性维护):在软件投入运行后,可能会暴露一部分在测试阶段没有发现的错误,为改正这些错误而对软件进行的修改就是正确性(改正性)维护。(2)适应性维护:由于软件运行的外部环境(软件,硬件)和数据环境等的变化而修改软件使之适应这些变化,就是适应性维护。(3)完善性维护:用户的需求是经常变化的,在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之功能和附

41、能得到完善。(4)预防性维护:就是采用先进的软件工程方法对需要维护的软件或某部分软件重新进行设计、编码和测试,以提高软件的可维护性和可靠性等,为以后进一步改进软件打下基础。2.影响软件可维护性的因素及提高软件可维护性的主要方法软件的可维护性是软件开发阶段的关键目标。影响软件可维护性的因素较多,设计、编码及测试中的疏忽和低劣的软件配置,缺少文档等都将对软件的可维护性产生不良影响。软件可维护性可用下面七个质量特性来衡量,即可理解性、可测试性、可修改性、可靠性、可移植性、可使用性和效率。对于不同类型的维护,这七种特性的侧重点也不相同。可从下面几个方面来阐述如何提高软件的可维护性。(1)建立明确的软件

42、质量目标。(2)使用先进的软件开发技术和工具。利用先进的软件开发技术能大大提高软件质量和减少软件费用。(3)建立明确的质量保证。质量保证是指为提高软件质量所做的各种检查工作。质量保证检查是非常有效的方法,不仅在软件开发的各阶段中得到了广泛应用,而且在软件维护中也是一个非常主要的工具。为了保证可维护性,以下四类检查是非常有用的:在检查点进行检查、验收检查、周期性的维护检查和对软件包的检查。(4)选择可维护的语言。程序设计语言的选择对维护影响很大。低级语言很难掌握,很难理解,因而很难维护。一般来说,高级语言比低级语言更容易理解,第四代语言更容易理解,容易编程,程序容易修改,改进了可维护性。(5)改

43、进软件的文档。软件文档是对软件功能、软件各组成部分之间的关系、程序设计策略、程序实现过程的历史数据等的说明和补充。软件文档对提高程序的可阅读性有重要作用,从而会提高软件的可维护性。三、需结合自身参与项目的实际状况,指出其参与管理和开发的项目中所进行的软件维护活动和所采取的提高软件可维护性的方法。要给出实施软件维护活动和提高软件可维护性的具体过程、方法以及对实际应用效果的分析。6. 问答题:论软件系统需求获取技术及应用需求获取(Requirement Discovery, RD)是一个确定和理解不同类用户的需要和约束的过程。需求获取是否科学、充分对所获取的结果影响很大,直接决定了系统开发的目标和

44、质量。由于大部分用户无法完整的描述需求,也不可能看到系统的全貌,所以在需求获取中,系统分析师需要与用户进行有效沟通和合作才能成功。系统分析师根据要获取的信息内容和信息来源采用不同的需求获取技术,并且熟练地在实践中运用它,进而获得用于描述系统活动的特定软件需求,构建系统开发目标和质量要求。请围绕“软件系统需求获取技术及应用”论题,依次从以下三个方面进行论述。1.简要叙述你参与的软件开发项目以及你所承担的主要工作。2.详细说明目前主要有哪些需求获取技术,不同需求获取技术各自有哪些特点。3.根据你所参与的项目,具体阐述如何根据需求内容采用不同的需求获取技术获取系统需求。答案: 本题解析:常见的需求获

45、取技术包括:用户访谈:用户访谈是最基本的一种需求获取手段,其形式包括结构化和非结构化两种。用户访谈是通过1对1(或1对2,1对3)的形式与用户面对面进行沟通,以获取用户需求。用户访谈具有良好的灵活性,有较宽广的应用范围。但是,也存在着许多困难,例如,用户经常较忙,难以安排时间;面谈时信息量大,记录较为困难;沟通需要很多技巧,同时需要系统分析师具有足够的领域知识等。另外,在访谈时,还可能会遇到一些对于企业来说比较机密和敏感的话题。因此,这看似简单的技术,也需要系统分析师具有丰富的经验和较强的沟通能力。问卷调查:用户访谈最大的难处在于很多关键人员时间有限,不容易安排过多的时间。而且,如果用户较多,

46、不可能一一访谈。因此,就需要借助问卷调查,通过精心设计调查表,然后下发到相关的人员手中,让他们填写答案。这样,就可以有效地克服用户访谈方法中存在的问题。采样:采样是指从种群中系统地选出有代表性的样本集的过程,通过认真研究所选出的样本集,可以从整体上揭示种群的有用信息。对于信息系统的开发而言,现有系统的文档(文件)就是采样种群。当开始对一个系统做需求分析时,查看现有系统的文档是对系统有初步了解的最好方法。但是,系统分析师应该查看哪些类型的文档,当文档的数据庞大,无法一一研究时,就需要使用采样技术选出有代表性的数据。情节串联板:在需求获取的过程中,虽然系统分析师很大的一部分精力在于理解和分析业务,

47、了解潜在的问题,但仍然不可避免地涉及一些解决方案的探讨,因为只有让用户了解“系统如何做”时才会更容易达成共识。而且,很多用户对信息系统是没有直观认识的,这样就很容易产生盲区,而这种时候,系统分析师就需要通过情节串联板技术来帮助用户消除盲区,达成共识。联合需求计划:为了提高需求获取的效率,越来越多的企业倾向于使用小组工作会议来代替大量独立的访谈。联合需求计划(Joint Requirement Planning, JRP)是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是联合应用开发(Joint Application Development, JAD)的一部分。关于需求获取技

48、术的详细情况,请参看“系统分析师教程11.2 需求获取”章节。7. 问答题:论软件需求管理及其应用软件需求工程关注创建和维护软件需求文档需展开的一切活动。需求工程可分为需求开发和需求管理两项工作,其中需求管理的目标是为软件需求建立一个基线,供软件开发及其管理使用,确保软件计划、产品和活动与软件需求的一致性。从软件需求工程的角度来看,需求管理包括在软件开发过程中维持需求一致性和精确性的所有活动。请围绕“软件需求管理及其应用”论题,依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。2.详细论述软件需求管理的主要活动及其所包含的主要内容。3.结合你具体参

49、与管理和开发的实际项目,说明是如何采用软件需求管理方法进行需求管理的,说明具体实施过程以及应用效果。答案: 本题解析:一、简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。二、需求管理的主要活动有变更控制、版本控制、需求跟踪和需求状态跟踪。1.需求变更管理过程包括:(1)问题分析和变更描述。需要识别和分析需求问题,形成明确的变更协议,以检查它的有效性,从而产生一个更明确的需求变更提议。(2)变更分析和成本计算。使用可追溯性信息和系统需求的一般知识,对需求变更提议进行影响分析和评估。变更成本计算应该包括对需求文档的修改、系统修改的设计和实现的成本。一旦分析完成并

50、且被确认,应该进行是否执行这一变更的决策。(3)变更实现。这要求需求文档和系统设计以及实现都要同时修改。2.版本控制:主要包括确定需求文档版本。3.需求跟踪:包括定义对其他需求的链接;定义对其他系统元素的链接;使用的工具即需求跟踪矩阵。4.需求状态跟踪:定义需求状态;跟踪需求的每一个状态。三、考生需结合自身参与项目的实际状况,指出其参与管理和开发的项目中所进行的需求管理活动,说明该活动的具体实施过程、使用的方法和工具,并对实际应用效果进行分析。8. 问答题:论软件的系统测试及其应用软件测试是软件交付客户前必须要完成的重要步骤之一,目前仍是发现软件错误(缺陷)的主要手段。系统测试是将已经确认的软

51、件、计算机硬件、外设、网络等其他元素结合在一起,针对整个系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不符或与之矛盾的地方,从而提出更加完善的方案。系统测试的主要内容包括功能性测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等。请围绕“软件的系统测试及其应用”论题,依次从以下三个方面进行论述。1.概要叙述你参与管理和开发的软件项目以及你在其中所担任的主要工作。2.详细论述软件的系统测试的主要活动及其所包含的主要内容,并说明功能性测试和性能测试的主要的目的。3.结合你具体参与管理和开发的实际项目,概要叙述如何采用软件的系统测试方法进行系统测试,说明具

52、体实施过程以及应用效果。答案: 本题解析:写作要点:1、用400-600字叙述作者参与开发与管理的软件项目,包括但不仅限于,项目时间,规模,周期,背景,系统的主要功能,所采用的相关技术等。2、系统测试的对象是完整的、集成的计算机系统,系统测试的目的是在真实系统工作环境下,验证完整的软件配置项能否和系统正确连接,并满足系统/子系统设计文档和软件开发合同规定的要求。系统测试的技术依据是用户需求或开发合同,除应满足一般测试的准入条件外,在进行系统测试前,还应确认被测系统的所有配置项已通过测试,对需要固化运行的软件还应提供固件。一般来说,系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测

53、试、安全性测试、安装与反安装测试等,其中,最重要的工作是进行功能测试与性能测试。功能测试主要采用黑盒测试方法;性能测试主要验证软件系统在承担一定负载的情况下所表现出来的特性是否符合客户的需要,主要指标有响应时间、吞吐量、并发用户数和资源利用率等。功能测试的目的很简单,测试系统是否达到了用户明确提出的需求及隐含需求。性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,并优化软件,最后起到优化系统的目的。具体来说,包括以下四个方面:(1)发现缺陷。软件的某些缺陷与软件性能密切相关,针对这些缺陷的测试一般需要伴随着性能测试进行。(2)性能调优。与调试不同,性

54、能调优并不一定针对发现的性能缺陷,也可能是为了更好地发挥系统的潜能。(3)评估系统的能力。软件性能测试不仅需要测试软件在规定条件下是否满足性能需求,往往还需要测试能够满足性能需求的条件极限。(4)验证稳定性和可靠性:在一定负载下测试一定的时间,是评估系统稳定性和可靠性是否满足要求的唯一方法。3、结合项目实践说明作者如何进行系统测试的,并论述效果。在论述效果时,注意不要只报喜不报忧,指出做得不足的地方,并给出以后的改进方案,往往能让文章更具真实感。9. 问答题:论数据流图在系统分析与设计中的应用数据流图 (Data Flow Diagram , DFD) 是进行系统分析和设计的重要工具,是表达系

55、统内部数据的流动并通过数据流描述系统功能的一种方法。DFD从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的 情况,来说明系统所完成的功能。在系统分析中,逻辑DFD作为需求规格说明书的组成部分,用于建模系统的逻辑业务需求;在系统设计中,物理DFD作为系统构造和实现的技术性蓝图,用于建模系统实现的技术设计决策和人为设计决策。请围绕“数据流图在系统分析与设计中的应用”论题,依次从以下三个方面进行论述。1.简要叙述你参与的软件开发项目以及你所承担的主要工作。2.列举出DFD中的几种要素及含义,简要说明在系统分析与设计阶段逻辑DFD和物理 DFD中这些要素之

56、间有何区别。3.根据所参与的项目,具体阐述你是如何通过绘制数据流图来进行系统分析与设计的。答案: 本题解析:本文的内容组织,其关键在于对题目要求的一些知识内容要能准确把握。DFD是SA方法中的重要工具,是表达系统内数据的流动并通过数据流描述系统功能的一种方法。DFD还可被认为是一个系统模型,在信息系统开发中,如果采用结构化方法,则一般将DFD作为需求规格说明书的一个组成部分。在DFD中,通常会出现4种基本符号,分别是数据流、加工、数据存储和外部实体(数据源及数据终点)。数据流是具有名字和流向的数据,在DFD中用标有名字的箭头表示。加工是对数据流的变换,一般用圆圈表示。数据存储是可访问的存储信息

57、,一般用直线段表示。外部实体是位于被建模的系统之外的信息生产者或消费者,是不能由计算机处理的成分,它们分别表明数据处理过程的数据来源及数据去向,用标有名字的方框表示。DFD可以是一个物理系统模型,也可以是逻辑系统模型,也可以是两者的混合。逻辑DFD与物理DFD最大的区别在于,逻辑DFD只描述了相关的组成要素,而物理DFD则会涉及到具体的实现技术。10. 问答题:阅读以下关于数据库技术的叙述,在答题纸上回答问题1至问题3。【说明】随着传统的数据库技术日趋成熟、计算机网络技术的飞速发展和应用范围的扩充,数据库应用已经普遍建立于计算机网络之上。这时集中式数据库系统表现出它的不足:数据按实际需要已在网

58、络上分布存储,再采用集中式处理,势必造成通信开销大;应用程序集中在一台计算机上运行,一旦该计算机发生故障,则整个系统受到影响,可靠性不高;集中式处理引起系统的规模和配置都不够灵活,系统的可扩充性差。在这种形势下,集中式DB的“集中计算”概念向“分布计算”概念发展。分布计算主要体现在客户机/服务器模式和分布式数据库体系结构两个方面。【问题1】 (12分) 请用300字以内的文字简述分布式数据库跟集中式数据库相比的优点。【问题2】 (3分)分布透明性是指用户不必关心数据的逻辑分片,不必关心数据存储的物理位置分配细节,也不必关心局部场地上数据库的数据模型。分布透明性包括哪三种透明性。【问题3】 (1

59、0分)在数据库中,某个业务表中的数据量很大,急速膨胀,在这样的情况下,为了保持高的数据响应速度,根据数据的时间局部性和空间局部性原则,可以对数据表进行分片设计。一般有四种分片方法:(1)、(2)、(3)、(4)。分布式数据库中各局据库应满足集中式数据库的基本需求,除此以外还应保证数据库的全局数据(5 )、并发操作的可串行性和故障的全局可恢复性。请在空(1)、(2)、(3)、(4)、(5)处填写恰当的内容。答案: 本题解析:【问题1】 (12分) 与集中式数据库相比,分布式数据库具有下列优点: (1)坚固性好。由于分布式数据库系统在个别结点或个别通信链路发生故障的情况下,它仍然可以降低级别继续工

60、作,系统的坚固性好,可靠性和可用性好。 (2)可扩充性好。可根据发展的需要增减结点,或对系统重新配置,这比用一个更大的系统代替一个已有的集中式数据库要容易得多。 (3)可改善性能。在分布式数据库中可按就近分布,使大部分数据可以就近访问,避免了集中式数据库中的瓶颈问题,减少了系统的响应时间,提高了系统的效率,而且也降低了通信费用。 (4)自治性好。数据可以分散管理,统一协调,即系统中各结点的数据操纵和相互作用是高度自治的,不存在主从控制。【问题2】 (3分)分布透明性包括分片透明性、位置透明性和局部数据模型透明性。【问题3】 (10分)(1)水平分片(2)垂直分片(3)导出分片(4)混合分片(5)一致性

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!