系统分析员考试下午试题I的应试方法
田俊国2002年08月20日
[url=http://www.51cmm.com/prelogin.asp?page=/bbs/index.asp?Type=G][/url]
最近有不少读者来邮件向笔者请教下午试题I的应试方法,说下午I部分的试题题量大,综合性强,时间短,而相应的辅导材料又是凤毛麟角,实在很难应付。的确,系统分析员考试最大的拦路虎是下午试题I,笔者当年也曾对此做过不少的准备,回想一下,还是有一些东西--至少有一些个人见解与众不同。为此,笔者再次翻阅了最近7年的考试试题,归纳出一些精华,结集成文,与大家分享吧。
下午试题主要考察应试者计算机应用综合知识、计算机应用系统的分析与设计能力以及分析处理问题的能力,是对应试者经验、知识和能力的综合考察。笔者认为,从出题的角度和题目考察的目的来看,系分下午试题I可分为以下七种类型。
一、 综合知识类
大家知道,系统分析员必须有广泛的知识积累和工作经验。下午试题I中有不少题目就是直接考察某方面的知识或经验的。这种题目,全在于平时积累和见多识广,基本上无技巧可言,知道就很简单,不知道急也急不来。应试者唯一能做的是,回避那些自己没有涉猎过的知识领域的题目。
例1.1998年试题二之[问题1]和[问题2]
[问题1]
请用150字以内文字,以提纲方式列出采用三层C/S软件设计方式可能带来的主要优点。
对于三层C/S软件设计方式的优点,即使没有题干部分的背景描述,应试者也应该知道。那就是:①表示层简单(瘦客户机),版本发布容易,维护方便;②中间逻辑集中在功能层,升级时只需改动中间逻辑即可;③数据层和表示层隔离,更安全易管。如果应试者没有这方面的知识积累,只好从提干中分析提炼了。
[问题2]
请你列出某一种能支持三层C/S软件开发的工具,并以150字以内文字简要说明其功能实现的方式。
现在看来,这个问题很简单,支持三层次C/S软件开发的工具很多,但四年前,肯定有不少人列举不出来。
例2.2000年试题一之[问题2]
请你用100字以内文字简要说明,采用这类构件方式进行企业应用集成的好处是什么?
问用COM方式进行企业应用集成的好处,平时善于积累的朋友肯定早就注意到了:①实现整个企业的业务逻辑和应用服务的构件级共享;②消除重复逻辑,优化处理过程;③适应环境变化灵活方便,开发集成的成本低周期短;④应用服务易于管理。
实际上构件化是软件开发人员一直的梦想,希望软件开发像堆积木一样方便、快速,重复利用以前的劳动成果,应试者知道这一点,自然不难回答构件化的好处。
例3.1999年试题三之[问题3]
根据你开发OA或MIS系统工作的经验,请你为本题的网络列举出一类比较适合于开发基于工作流的OA系统的流行平台及其相关的软件或工具,包括对关系数据库的存取要求。
这是一道典型的知识经验问答题目,用过LOTUS NOTES/DOMINO的朋友不难回答此问题。
二、 辨别分析类
正确辨别是非是系统分析员的必备素质,这是因为系统分析员往往会被人认为是计算机应用技术的专家,作为专家,当然应该清楚哪些说法立不住足,哪些意见应当积极采纳。辨别分析题就是考察应试者这种能力。
辨别分析类题目几乎每年都有,典型的出法就是给出十多个关于某一领域或某一技术的不同论述,请你找出其中几条不恰当的描述,并说明理由。从近几年的题型发展情况看,这类题目已经演变成为必答题,应试者想回避也不行。
回答这类题目,首先需要应试者以扎实的理论基础和丰富的实践经验为依据,能够对某一领域或某一技术进行多角度的理解。其次,需要一定的语言理解能力和分析能力。第三,简明扼要指出某条描述的不恰当之处,还需要较深的语言表达努力。临场时,如果一时找不到不合适的描述时,可以采用逐条排除的办法,先将你认为绝对正确的描述找出来,然后对有疑点的描述逐一进行原因分析,列举出你怀疑它不对的原因,自己说服自己,找出其中疑点更大的或可以认定就是错误的描述来。
例4.1999年试题一之[问题1]
题干部分对某集团近年来软件项目成本超过预算和工期严重拖延的现象进行分析,集团老总主持了软件工程管理问题的讨论,归纳出十一条意见。
要求找出三条是不正确的或不恰当的,请你指出其序号,并各用50字以内文字简要说明理由。
这是一道软件项目管理的问题。用逐条排除法很快会找到一些疑点。比如:
(5)尽可能采用更加先进的操作系统、工作平台和开发工具,可以极大地提高软件开发效率,从根本上防止和解决李总在总结中所发现的软件开发问题。
"从根本上防止和解决"这一提法,肯定是偏激的,过分强调工具的作用,而忽略了人的素质和项目管理的重要性,显然是荒诞不经的。就好比鼓吹电脑可以替代人脑一样。我们坐飞机可以缩短旅行时间,可是没有很好的航班调度与控制,您恐怕连性命都很难保。
同样的道理:
(6)面向对象(OO)技术的使用,可以保证在跨平台的复杂环境下团队开发的需要,从而可从根本上免除软件工程管理上的烦恼,也能从根本上缓解李总所发现的软件开发问题。
说"面向对象技术的应用,可从根本上免除软件工程管理的烦恼"自然不对。所以,描述中带有绝对化的表述,一般都应格外关注,往往是不对的。
(7)软件开发项目未能完成而被迫取消,究其根本原因无非是两大类:一是用户需求变更过于频繁或要求过高,另一是软件开发人员的素质不能适应项目要求。
又用到"无非"这一字眼,只强调了需求变更和人员素质的重要,把软件工程管理的重要性忽略了。
实际上,有权威调查表明软件项目的失败可归结为四个原因:项目组织管理原因、缺乏需求管理、缺乏计划与控制和估算错误。
例5.2000年试题一之[问题1]
近年来,基于面向对象的"构件"(Component,也称组件)技术得到了迅速的发展,特别是在分布式网络应用环境下企业应用系统的开发和应用程序的集成已开始广泛的运用构件技术。某企业的信息部门提出以下一些看法:… …(共11条)
[问题1]
在上述11条叙述中有三条是不正确的或不恰当的,请你指出其序号,并各用50字以内文字简要说明理由。
这道题有一定的难度,原因是题目对各个厂商、不同标准的COM技术进行了一次大盘点,要求应试者对COM技术有全面了解和一定的使用经验。但仔细推敲,也不可怕,凭一些基本经验和知识,还是不难找出错误叙述的。
(4)微软公司推出的COM/DCOM/COM+在当前有着数量最多的用户,这是由于其开发工具容易使用,可以用多种语言开发,并且广泛适用于多种不同的平台。
经验告诉我们,微软的产品一般不容易兼容UNIX平台,而别的厂商的产品,一般会见容微软的平台,有NT版或Windows版。
(5)Sun公司推出的EJB(Enterprise JavaBeans)基本上建立在Java语言基础之上,使用相对简便,能支持多种平台,并且已经有了最为丰富的第三方开发工具和产品的支持。
EJB很好,为什么我们用的并不多呢?还是因为缺乏第三方开发工具和产品支持。
(10)构件库或者构件系统作为产品,具有通用性和可复用性。通用性指的是其中的每一个构件都应当有广泛的适用性,即不需要任何客户化的工作就可以立即使用于各类应用软件中。
如果你在的Delphi下用过微软的一些ActiveX,你不会认同上述观点。组件在不同的环境下应用是需进行专门化和客户化的。
三、 比较分析类
有比较才有鉴别,不同的解决方案经过比较才能分出优劣来,一个好的解决方案往往是多种解决方案的折中。比较分析法是系统分析中不可或缺的方法。系统分析员考试下午I试题中这类试题所占的比例非常大。
例6.1995年试题1之[问题1]和[问题2]
对某C/S结构的信息系统中"批处理作业"的实现方案有两种:集中式处理方案和分散式处理方案。
[问题1]
请各用80字分别简要说明集中式处理方案和分散式处理方案的缺点。
回答这类问题的最好办法是仔细阅读题目的背景以及题目中对两种不同方案的叙述。找出两种方案各自鲜明的特征和彼此之间最明显的不同,最好是列举出来,考虑两种方案的极端情形。经比较可以简明列出:
集中式处理是各客户端将作业请求集中到信息管理员处,由信息管理员统一处理;分散式处理是由各个客户端随时自行提交处理作业。不难看出,集中式的缺点在于信息管理员处理时任务太多,形成瓶颈,网络负荷重;分散式的缺点是所有用户都对数据库直接操作,任一用户的失误将会影响整个系统的性能。
[问题2]
夏高工提出了一种分散-集中式处理的组合方案,可达到取长补短的效果,请简要说明该方案的思路。
很显然是两种方案的折中,部分集中(如按部门),由多个管理员分时段提交是个较好的方案。集中到域控制器,由域控制器定时触发也是一个好办法。
例7.1999年试题二之[问题1]
要求简要说明基于瘦客户机的三层C/S与原来的二层C/S系统相比,处理流程功能划分上存在的显著区别。
不考虑题目背景,我们知道二者之间的区别是:三层比原来的二层多抽象出来一个中间层,再和题目中给出的图结合起来,正确答案是不难的出的。
例8.1998年试题一
题干部分叙述了传统的分布式控制系统(DCS)和代表国际上发展方向的现场总线控制系统(FCS)的特点。
[问题1]
看上去新颖的FCS比传统的DCS有着远为吸引人的许多特点与长处。可是,在讨论中绝大多数专家都认为DCS仍是目前电厂工程中应用选型的主流。请你简单说明理由。
很显然,题目要求指出在电厂这一特定的环境下,FCS比DCS的不足是什么。仔细阅读提干,列出FCS和DCS的突出特点,你会注意到:"DCS系统中把计算机、通信、自动控制和显示等技术集成在一起",而"FCS是采用网络通信技术,把分布在现场各处的仪表仪器、测量控制设备有机地连接在一起"。那么,在电厂这种温度高、震动大、电磁干扰严重的环境下采用FCS,各类仪表、设备能否正常工作就成了问题。
[问题2]
问远程智能I /O方案与与传统的DCS相比,哪些主要优点?
自然,又是FCS和DCS方案的折中,既有FCS的优点,又解决了电厂环境对各类仪表、设备的干扰问题。
四、 学习应用类
温故而知新,人们在学习新知识时总是以已经掌握的知识为基础,由彼推此,了解差异是我们自然而然就会运用的学习方法。我们学会了MS SQL,再学ORACLE时就不自觉地比较二者的异同。各大巨头争霸的今天,由于竞争的需要,软件开发工具和应用平台层出不穷,各大厂商都有和竞争对手相类似的同类产品,让我们迎接不暇,要IT行业站稳脚跟,更需要学习应用能力过人。跟上形势的最好办法是比较异同,快速学习、跟进并投入应用。
这一类题目和前面的比较分析类非常相似,不同的是,问题的焦点集中在对学习效果的考察上,要求应试者对通过学习,基本掌握新的理论或方法。
例9.1996年试题五
提干部分介绍了Rational软件公司倡导的一种软件开发过程--"瑞理模式"。
[问题1]
在传统讨论的软件开发过程中,把软件项目开发过程描述为研究与开发时期(R&D)、生产时期和维持时期,这与瑞理模式的管理观点中的各个阶段有什么大体上的对应关系?
"瑞理模式"是一个全新的软件开发过程,但我们可以将她与我们熟知的传统软件开发过程相比较。得出结论:开始阶段加上规划阶段相当于研究开发时期;构建阶段加上移交阶段相当于生产时期;进化阶段相当于维护时期。
该问题的第二问就属于"学习应用"类型:
[问题2]
根据你的开发经验,在一个中等规模软件项目中,在管理观点的最初开发期中的哪一阶段所花的精力和时间最多,用什么主要措施可以减少该阶段所占的比重?
通过比较学习,我们知道构建阶段相当于传统软件开发过程中的设计开发过程,传统软件开发过程中设计和开发是工作量较大,所以瑞理模式中构建阶段所占比重也应该较大。
例10.1995年试题三
题干部分先用需求语言处理机(RLP)描述了一次本地电话通话事件的外部行为。然后介绍CCITT开发的SDL语言(规范与描述语言),并给出了同一本地电话通话事件相应的SDL语言描述图。
问题一和问题二都是学习应用类型的。问题一要求推测SDL记号的含义,问题二要求补充SDL语言描述中空缺的内容。应试者根据RLP的完整描述,比较学习SDL语言,找出二者的共性(或者说结合点),回答问题就很容易。
五、 情景推断类
这类题目要求应试者将题目描述的情景和自己的实际开发经验结合起来,来推测题目描述的情景下某一功能模块或某一部分的详细功能。
应付这类题目,既要细心归纳题目所描述的情景本身的特点以及题目中透露出的各种信息,又要根据自己以前类似的项目开发经验来补充一些题目中并没透露,但常理中不可缺少的部分功能。实际上,我们在需求调研中经常使用这种方法,这类题目同时考察了应试者软件分析设计经验、考虑问题的全面性以及从归纳字面需求的能力。
例11.2000年试题三之[问题3]
题干部分描述了某企业筹划本企业的Intranet时的一些规划和设想。
[问题3]
在上述服务器软件中所列举的"Proxy服务器"软件有什么基本功能,请你用100字以内文字简要说明。
应试者就需要经验和题目要求来回答:应具备内部用户访问因特网网的关口、使外部用户和内部用户隔离、安全防范、流量记账等功能。
例12.1995年试题2之[问题1]
要求应试者对磁盘空间和用户文件管理流程中管理措施1和管理措施2的内容进行推断。而题干可得到的信息是:"磁盘空间和用户文件管理:包括保证有足够的磁盘空间,能保护用户文件等。"这些信息告诉我们,管理措施1和管理措施2是为了保证磁盘空间和保护文件,但这还是太不具体,仍然离需要应试者的平常积累的经验做支撑。
例13.1999年试题4之[问题2]
题干部分描述了一个中型的化工原料产品的生产企业在全企业范围内以这种方式实现DCS(分布式控制系统)的相关背景。
[问题2]
王科长为自己的化工企业初步规划了以下的应用方案:(应用方案模块图略)
请你用100字以内文字,以提纲方式简要列出"系统初始化"模块的主要功能。
通过对题目情景的分析,可知初始化部分的功能大致有以下几点:
①对采集前端的地址、通道、信号进行组态与初化。
②设置测量通道的工作模式。
③主机网络、地址、通讯接口中断方式与工作方式设定。
④网络时钟校正或报表初化等。
需要注意的是,1994年试题2之[问题1]也要求简述"初始化模块" 的基本内容,可见"初始化"的重要地位。
例14.2000年试题五之[问题2]
你认为在这个成本结算与管理系统?quot;查询成本数据"可以提供哪些需要的查询功能?请用100字以内文字简要列出。
实际上是问可能的数据检索手段,应当包括:按产品、按年度、按月、按车间、按工序、按零件(材料)查询。
六、 因果分析类
系统分析员还会经常遇到的问题是对一个系统出现的复杂问题(或疑难症状)进行分析,找出问题的真正原因,或对某一解决方案存在的潜在风险进行分析。前者是针对某一症状分析问题出现的原因,后者是根据现有状况分析可能会出现问题。
解决问题或风险分析的能力是突击不来的,一定来源于见多识广。丰富的经历在关键时候自然可以派上用场,经历不够的多看看别人的体会也会大有裨益。
例15.1995年试题5
题干叙述了某单位人事部门开发人事管理信息系统时关于信息安全性设计的一些对策(包括6条)。在讨论设计原则时提了两个例子。
问例1和例2分别属于什么性质的问题,如何避免。
这就是一道典型的设计方法潜在风险分析题,读者查阅当年的考题仔细分析一下。
例16.1995年试题2之[问题2]
谈到设计用户的锁定和释放功能时,提到一种方法:不论用户已否设置口令,都可以在相应的口令字段中有意识地再增加若干为LOCK标志码,便可以使相应的口令无法匹配。对锁定后的用户的释放则可通过删除这些附加上去的LOCK标志码进行。
王高工在仔细审阅这一方案时,发现有一个潜伏的危险性,请用100字以内文字说明。
有UNIX使用经验的读者会发现:这种一刀切的方法很可能导致超级用户的密码也可能被锁定。
例17.1997年试题1之[问题2]
对于一个有着超过1000台以上客户端工作站点的民航联机事务处理系统来说,除了服务器有可能成为瓶颈口、配置管理与版本控制相对十分困难以外,还会存在着其它一些困难。请用80字以内文字以提纲形式简要列举基于C/S平台的民航联机事务大型系统的这些可能的困难。
这道题要求分析基于C/S平台的民航联机事务大型系统的这些可能的困难,实际还是在问传统C/S结构的缺点。对超过1000台以上客户端工作站点软件安装、升级、维护和版本分发自然是C/S结构存在的困难。
七、 归纳抽象类
把现实的、自然语言描述的用户需求抽象为一种数学模型需要很深的功底;把纷纭复杂的需求进行合理的归纳和分类也是一种功夫。系统分析员考试题目中也不乏这样的考题。这种题目需要较高的抽象思维能力和理解能力。
笔者回答这类问题的一点体会是:将抽象的理论实例化,和你做过的一些项目结合起来,举例子能将抽象的东西具体化。
例18.1999年试题3之[问题1]
廖处长及其工作小组为了比较原来的OA系统与将来可能实现的基于工作流的系统,把原来基于功能模块的OA系统简要的表示为:
SF={FM1,FM2,…,FMk};
FMi={Ti1,Ti2,…,Tis};
TFM={ Tij}。
其中:SF为基于功能模块的系统,FMi为功能模块,Tij为功能模块FMi中的子任务。TFM为原系统中全体子任务的集合。
如果在分解子任务时,尽可能地做到两个子系统中的相应子任务的基本功能大体相同,最终发现子任务的集合TWF相同于TFM。这时,廖处长认为基于工作流的系统SW的功能包含了基于功能模块的系统SF,并且SW还包含有SF中所没有能提供的许多信息。
请你用100字以内的文字,简要列出在SW系统中可能会增加有哪些方面的信息。
题目中廖处长就是对原来的OA(基于功能的)系统进行了模型抽象,要求应试者将基于工作流的OA和基于功能的OA模型进行分析比较。这道题目并不复杂,但有不少人觉得把具体的问题抽象化后就找不到北了。
例19.1997年试题六之[问题2]
请回答上述规律成立的基本条件是什么(以100字以内文字简要说明)。
这道题给出了软件故障率的统计模型,将软件缺陷抽象化了。但对软件测试理论清楚、理解力强的人还是不难看出正确答案。λ(t)呈现为一条阶梯式下降折线。规律成立的基本条件是假设软件的缺陷数一定且排除缺陷的过程中不引入新的缺陷。
后记
笔者发现近七年的考试题中,决大多数试题总能归结为以上七种类型之一。文中对问题的分析仅代表作者个人看法,其中难免有不足和错误,仅供参考。从内容上看: 工业控制、办公自动化、MIS和数据库、软件工程管理、软件测试等几个方面出题的概率较高,应试者应当高度重视。