试题一是必答题
试题一
阅读以下关于软件可靠性需求分析方面的叙述,回答问题1、问题2和问题3。
某企业信息部门的李工程师正在为其下属单位开发一个应用软件,在编写软件需求规格说明书时,涉及到如何定量地描述软件可靠性的问题。
李工认为软件可靠性指的是在将要使用的指定环境下,软件能以用户可接受的方式正确运行任务所表现出来的能力。从定量角度看,似乎应当是该软件在约定的环境条件下和在给定的时间区间内,按照软件规格说明的要求,成功地运行程序所规定功能的概率。但是,他感到要具体地作定量描述有些困难。
为此,李工查阅到了本部门某个软件需求规格说明书中有关的一段内容:
“(1)在集成与系统测试期间,由非开发组人员参与测试,每 1OK 行可执行代码可能检测到的错误(BUG)不能大于6个;
(2)在提交使用的系统中,每 10K 行可执行代码可能保留着的错误数不能大于 8 个;
(3)在第一年工作期间,系统在 99.9 %的工作日期间内,应能保持 100% 的正常工作状态。”
在上述说明后,还有一条注解是:错误 (BUG) 可采用蒙特卡罗 (MonteCarlo) 随机植入技术进行测试。
[问题1]
李工程师首先想到了曾经学到过采用蒙特卡罗随机统计技术确定不规则形状封闭图形面积的方法,即是采用一个大的矩形把待测的封闭图形完全包围在该大矩形的内部,由计算机大量生成在此矩形内均匀分布的“点”,然后,计数清点一下在大矩形内总的“点”的个数和在封闭图形内的“点”的个数,应当近似地有:
在封闭图形内的点的个数 × 已知的大矩形的面积
封闭图形的面积 =
——————————————————————————
大矩形内总的点的个数
如果把这个思想应用于系统测试过程,先在某个程序中随机地人为植入 10 个错误 (BUG),然后,由一个测试组进行测试,结果一共发现有 120 个错误,其中有 6 个是人为植入的错误。
请你估算一下这时该程序中将会遗留下多少个未被发现的隐藏错误。同时也请你用 100 字以内的文字,简要地以提纲方式列举出采用这种错误随机植入方式来估算系统中遗留错误所固有的局限性。
[问题2]
在进行上述分析后,李工程师感到有些困惑,于是与本企业维护系统的一位系统管理员进行了讨论,系统管理员告诉他可以借用硬件的 MTTF (失效的平均等待时间,MeanTime To Failure) 或者MTBF (失效的平均间隔时间) 作为软件可靠性的主要指标。
这时,李工程师查到了本企业中的一个典型例子:某软件在提交使用后,在第 1 周内有 5 次软件故障(查出了有关的 bug ),在第 2 周至第 4 周内共有 2-3 次出错 (也排除了错误根源),在 2 个月以后该软件一直能正常使用运行 (大家反映不错),一直到 6 年半后的一天突然停工,即工作不正常。
请你用100字以内文字分析该软件最后一次工作不正常的可能原因,并说明 MTBF 是在什么意义下反映了软件的可靠性。
[问题3]
信息部门的吴总工程师向李工程师建议了另一类测试方案作为“错误随机植入”测试方法的补充。即由甲和乙两组测试人员同时相互独立地测试同一份程序的两个拷贝,测试了两周后,甲组发现的错误总数为 330 个,乙组发现的错误总数为 320 个,其中两个组发现的相同错误数目为 300 个。请你大体上估算一下在测试前此程序原有多少个错误?并也请你以 100 字以内文字,简要说明使用这类估算方法的必要前提。
从下列的 4 道试题(试题二至试题五)中任选 2 道解答。如果解答的试题数超过2道,则题号小的 2 道解答有效。
试题二
阅读以下关子应用服务器分析方面的叙述,回答问题 1、问题 2 和问题 3。
某软件公司已从事过不少基于 Web 的数据库应用系统的开发工作,在这些系统中都采用了三层Client/Server结构。在各类应用中曾选用过的 Web 服务器有:WindowsNT 或 Windows2000 相应的IIS,Linux 系统相应的 Apache,iPlanet 的 iWS (即原 Netscape 的 WebServer) 等。
公司的总工程师室对几年来有关的开发项目进行了一次总结,王总工程师认为在本公司开发项目中曾存在过不少问题,比如:
(1)最早是基于 Web 服务器所提供的扩展接口(如 CGI 与 API 等),使用 C 语言或 Perl 语言等编写具体应用。这类开发方式对编写应用程序的程序员要求很高,开发周期较长,调试较为困难。
(2)近两年来,公司业务很忙,大多又采用了基于服务器端的脚本语言进行开发,比如相应地使用了ASP,PHP 或 JSP 等,虽然开发的速度显著提高,但是从严格要求来看,所开发的应用系统有如下潜在的缺陷:
①可扩性尚不理想;
②安全性与高可用性考虑较少;
③系统集成不够方便;
④在性能上有待提高等。
因此,总工程师室最近已要求各开发组尽可能采用当前国际上主流的“应用服务器”体系结构,在条件许可的企业应用项目中选用合适的基于 Web 工作方式的应用服务器的优秀产品,可能时还应努力尝试采用规范化的 J2EE(Java2 企业版) 平台。
为了帮助各个开发组更好地理解与选用 Web 应用服务器,总工程师室组织了多次讨论,根据本公司的实践,大家普遍认为所选用的 Web 应用服务器必须强调以下四个方面的特征:
(1)必须很好地支持对象组件 (component) ,提供清晰的组件工作与管理模型;
(2)有良好的基于分布计算方式的管理能力,如支持多个应用服务器运行,提供负载均衡功能,实施服务器故障转移等;
(3)充分重视应用服务器部署的速度和易用程度;
(4)高效地支持对后端数据库服务器的访问,比如采用数据库连接池等。
然而,在讨论到具体技术问题时,不少软件工程师也出现了一些不同的看法。
[问题1]
在应用服务器的具体实现中,处理负载大体上可分为基于进程工作方式与基于线程工作方式两大类型。比如:基于进程方式可以预先生成好所有的应用服务器进程,应用服务器在收到请求时,由对应的某个进程完成此请求的有关处理。
请你用100字以内文字,简要地列举出与基于线程工作方式相比,基于进程方式处理的主要弱点是什么?
[问题2]
在讨论中普遍认为,各个 Web 应用服务器在嵌入对象的方式上可能会有相当大的差异,这主要反映在对象放置的位置和对象采用的接口标准上。比如:对象可以放置在应用服务器上,也可以放置在应用服务器的后端。
请你用 50 字以内文字简要列举出当前已经成为标准的对象访问接口的名称。
[问题3]
对于在分布系统中会话管理的方式,也引起了热烈的讨论。通常每个 HTTP 请求需要进行一次 TCP 连接,一般可采用 Cookie、IP 地址识别技术等方式实施会话管理,从而方便系统的使用 (比如允许用户登录后,系统能记住用户的基本信息等)。
但是,在多个应用服务器场合,会话信息存放的地点可以采用多种方式。比如在每一个应用服务器上保存该服务器所对应的会话信息是一种方式;设立专用的一个会话服务器来保存所有的会话信息则是另一种方式。
请你用 100 字以内文字简要列举设立专用的会话服务器的方式有什么优点与缺点。
试题三
阅读以下关于企业信息集成和应用集成方面的叙述,回答问题 1、问题 2 和问题 3。
某个专门从事于 IT 产品的信息报道与网上交易业务的垂直型电子商务市场,经过约一年多的运营已初步积累起了一定的经验,在同行业中开始有了一定的知名度。
该市场的信息系统原来由“产品信息发布”、“产品动态报价”、“网上交易”和“网上财务资金结算”等子系统所组成,各个子系统的工作相对已比较稳定。但是也已经发现了信息来源过于分散,数据有时不大一致,不少信息利用效率相当低等一些问题。
市场的信息技术主管赵总在分析了该市场的运作情况后,认为应当根据国外先进的电子商务市场的经验与技术,进一步开发一个“信息集成系统”。
(1)信息集成系统的主要目标
对本市场目前已涉及到的有关 IT 产品各种来源的基本数据、信息与有关资料进行集成化管理,并且能提供相应的网上服务,其目标是逐步建立起有关 IT 产品的信息交流、服务、辅助监控管理以及决策分析的一个相对完整的体系。
提高市场的服务质量和管理水平,吸引更多的供应商与采购者进入并使用本市场。
(2)新的信息集成系统的基本总体构架。
①充分利用该市场原有的开放式的异构平台,采用的是各类 UNIX 或 Linux 操作系统,在充分发挥其作用的基础上加以扩充与升级。
②基于 Internet/Intranet 的网络体系结构,有保证系统可扩性、可靠性与安全性等方面的相应措施。
③实现强有力的 OA 办公自动化系统和邮件系统,能分别规范好市场管理层、市场内部使用层和市场外部用户进行信息共享的级别与权限。
④基于某个名牌的 DBMS(如 DB2,Oracle,Sybase等)构建集成化的 MIS 系统,并且进一步采用基于 SAS 的数据统计、分析与决策系统。
根据总体构架要求,系统将由“ OA 系统”、“集成化的 MIS 系统”、“数据处理与分析系统”和“网络管理系统”四大部分所组成。
[问题1]
赵总指出在原来的系统中,某些 IT 产品的价格行情报表以及统计分析数据与图形的实时性太差,应当充分利用强大的数据库的能力,真正实现“动态”显示的功能。
你认为应当采用哪些主要技术?
请你用 50 字以内的文字,简要列举相应技术的名称。
[问题2]
通过市场内管理人员、技术人员和协作的软硬件公司的共同努力,经过三个月的艰苦奋斗,初步建立了一个“信息集成系统”的原型,在此原型中已采用了 SAS 软件作为统计分析数据处理的主要平台。但是,赵总认为目前在 SAS 平台上的应用程序能力远没有得到充分的发挥。
请你用 100 字以内的文字简要指出,原型系统未能发挥 SAS 应用能力的根本原因是什么?
[问题3]
信息对于电子商务垂直市场是至关重要的,信息的集中与有效管理对于信息的再利用更是十分关键的基础工作,赵总认为在搞好信息集成的同时应该重视应用的集成,他指出有可能采用多种方式进行本市场内各类应用的集成。比如:
(1)采用多种“数据连接器”(Connectors),在原有的常规构架基础上使用传统方式进行数据集成,即由数据源提取出数据,经过变换与处理,然后用于更新目标数据。
(2)在应用接口级上链接业务处理的过程与数据。即由开发人员通过定制或套装,经由应用程序所提供的应用接口实施应用集成。
(3)在组件 (component) 级共享整个市场内的业务逻辑。事实上是使各类“应用服务”尽可能地被共享。
(4)利用“用户界面”作为集成的基础。这时,开发人员可通过对用户界面的程序化的访问,使各个相应的业务处理过程连接在一起,充分利用现有的处理逻辑。
如果该市场已选用了一个优秀的基于“组件”(构件)的开发环境,为了使该市场中不同的应用可以透明地进行通信和访问共享信息,请你用 100 字以内文字,简要地以提纲方式列举出该市场实现“应用集成”的基本步骤。
试题四
阅读以下关于实时控制软件可视化设计方面的叙述,回答问题 1、问题 2 和问题 3 。
某化工生产企业的信息部门原来已习惯于使用汇编语言与 C 语言来编制生产过程的实时控制软件。近年来,该企业采用了各类 PC 与服务器组成了 Intranet,在办公自动化应用与企业信息管理中广泛应用Windows 界面和浏览器工作方式。
夏工程师感到在开发实时控制软件的原型时,有必要试用可视化界面,使得人机交互更加友善,在保证实时高效的前提下,向各类最终用户提供由可视化所带来的易用与直观的优点。
夏工希望通过 VB (visualBasic) 和 C++ 的相互结合来达到这个目标。他先从一类生产过程实时控制软件着手,为自己界定了以下三方面的要求:
(1)作为实时控制软件的一个原型,有相当友好的界面,通过积累经验能使开发周期日益缩短;
(2)能完成高效的实时过程控制,控制的对象包括温度、湿度、流量与液位等生产过程中的对象,其特征是时间要求相对不是非常紧迫;
(3)允许该软件有较好的功能可扩充性,即可以较方便地为其增加一些新的功能模块或组件。
因为 VB 作为一类可视化设计工具,可以较简捷地获得所见即所得的界面,夏工着重用VB完成了以下三方面的设计:
(1)实时控制软件原型的界面设计——指的是 VB 窗体设计。
在 VB 的集成开发环境中新建起一个标准的 EXE 项目,通过在新开设的空白窗体中添加 ActiveX 控件,仔细调整它们的外貌与位置,指定相应的属性等,从而迅速地完成所需要的“静止”方式界面的设计。
(2)利用 VB 面向对象和事件驱动的机制进行代码设计。
即根据各类事件的发生,编制出计算机相应执行的反应动作,以满足实时控制对象的需要。这里的事件可以很广泛,如定时执行 (time-out)、条件满足、键盘输入或点击鼠标等。
比如:该化工企业中控制回路的组态,需要根据化工生产中各类任务控制的需求,把相应的各个控制算法模块连接起来形成回路,同时依照需求分别确定各个模块中的参数信息等。在用 VB 进行设计时可以相当方便地实现这类组态功能:
第一步,从窗体的工具栏内选择合适的组态单元(图形部件,比如对应于某种控制算法),把该组态单元拖动至设计区域的指定空闲位置上;
第二步,根据需求所规定的顺序连接好这些组态单元;
重复上述两步,便能形成实时控制系统回路流程框图。
在 VB 的代码设计过程中,可以根据软件用户的意图,向用户发出相应的提示信息,实现相当友善的交互性;也可以采用设计“类模块”的方式抽象出一般的组态单元模块,然后通过实例化“类模块”获得所需要的具体组态单元,并且使得组态信息转换成树结构的组织形式,便于在代码设计中实现信息处理或者相应的计算。
(3)充分利用 VB 控件的代码可重用和可移植的特点,设计用户的 ActiveX 控件。
除了利用 VB 集成开发环境自带的标准控件箱和VB能提供的控件库外,实时控制软件还可以利用由用户自己设计的用户控件。比如:“参数配置”用户控件,可用于输入各类组态单元模块的具体参数值;“历史记录”用户控件,可用于模拟历史数据的记录装置,并且以图形方式表示计算出的历史数据趋势等。
[问题1]
VB 提供的用户控件设计功能;可用于实现对已有控件的继承,在已有控件基础上适当添加用户所需要的“特定功能”,从而获得用户自己的控件。
请你用 100 字以内的文字,以提纲方式简要列出夏工采用 VB 用户控件设计功能的主要原因。
[问题2]
用 C++ 编制的程序具有访问硬件的能力,并且代码精简、执行高效。比如可以用于采集数据、控制定时、判定实时对象条件约束等。但是 C++ 并不能与 VB 混合地编程。
请你用 100 字以内的文字,简要地提出一种使 VB 代码与 C++ 代码有效地实现集成的方案。
[问题3]
为了要允许实时控制软件有较好的功能可扩充性,夏工程师指出所编制的功能模块程序应当实现为动态链接库 (DLL)。
请你用 100 字以内文字,简要列出这时用户在开发供调用的功能模块程序时将会受到什么限制?
试题五
阅读以下关于使用 0A与 电子邮件的群件方面的例子,回答问题 1、问题 2 和问题 3。
某市的经贸局机关从 1997 年 6 月开始建立起了以办公室自动化和电子邮件收发为核心内容的计算机局域网应用系统,采用 LotusDomino/Notes 群件作为全系统邮件与 OA 的基本平台,同时要求其下属的各个县或地区也都统一地采用同样的平台,从而可以通过 ISP (因特网服务供应商) 实现本系统的邮件与 OA 通信。
在建成的初期,由于缺乏使用经验,也缺少相应的技术人员,经贸局领导采取了如下的一些做法:
(1)请某个大学的计算机教师协助进行了初步的使用辅导与简单培训。
(2)尽量采用 Domino 系统的缺省设置,不准作改动。
(3)严格遵循机关工作的作息制度,所有服务器每天上午 9:00 开机,下午 17:30 关机,保证有共同一致的工作时间段。
(4)尽可能把管理权限都集中交给机关本部和各地区(或县)的每个系统管理员分别管辖·,避免其他人员插手参与。
(5)适度地简化使用公文流转的功能。
该 OA 与邮件系统主要包括三类基本功能:
(1)电子邮件功能。这是本 OA 平台最基本的功能之一,为机关内外提供了迅捷的通信与交换信息的手段。
(2)办公信息服务功能。包括一系列信息服务模块,如:内部公告与内部信息,法规政策与制度,动态信息与关注热点等。
(3)文档文件收发功能。提供日常公文的安全快速传递,可以由机关内部人员根据授权查询或批阅各自范围内的公文。
[问题1]
该系统运行两年后,经贸局信息主管发现在近期系统运行的稳定性出现了不少问题,并且似乎越来越严重。比如:
(1)部份地区(或县)相互之间有时会无法发送邮件;
(2)有一些地区(或县)的内部偶尔也会发生邮件传递不顾畅;
(3)机关本部与各地区(或县)之间的公共通信数据不一致,引起了一部份系统功能处于不稳定或不确定的运行状态。
请你用 100 字以内文字简要列出从管理角度来看,可能引起上述问题的两条主要原因。
[问题2]
经贸局请来了专业软件公司的资深专家廖总工程师与各位系统管理员一起进行分析,廖总认为主要问题出在系统的“公共通信录”中,该公共通信录正是 Domino/Notes 之类群件运行中共享的一类核心部件,必须尽快解决这一问题,建议立即启动一项对 Domino/Notes 公共通信录的调整更新工程。
根据你的实践经验,请你用 100 字以内的文字简要列举该调整更新工程的主要工作内容(提纲)。
[问题3]
廖总进一步向经贸局的主管与信息管理人员指出,近年来群件技术发展较快,可以努力建设好经贸局系统的 Intranet,并不断丰富内联网上的各类应用。建议保留电子邮件与公文收发功能,继续采用 Notes客户端软件,充分利用群件中原有的长处 (如广义的数据库、自动数据同步与自动维护数据等),并且可以升级群件的版本。从而提出了改进系统的建议。
你认为在这些前提下,针对经贸局的应用实践,应当着重优先考虑哪三方面的改进系统的建议,请用100字 以内文字简要列举。