
【案例一】(共25分)
阅读以下关于需求建模的叙述,在答题纸上回答问题1至问题3。
某企业委托软件公司开发一套运动器材综合销售平台,以改进已有的销售管理系统,拓展现有的实体店销售模式,综合管理线上线下的器材销售业务。该软件公司组建项目组开发该系统,现正处于需求获取阶段。经过项目组讨论,由于目标系统业务功能比较复杂,所以在需求获取中针对不同类型的业务需求,采用不同的需求获取方法。项目组列出可选的需求获取方法包括:用户访谈、联合需求计划(JRP)、问卷调查、文档分析和实地观察等。
需求获取的要求如下:
(1)获取已有销售管理系统中所实现的实体店销售模式和过程;
(2)获取系统的改进需求和期望增加的业务功能;
(3)获取当前业务过程中的详细数据并深入了解这些数据产生的原因;
(4)从企业管理人员、销售人员、各种文档资源等尽可能多的来源获取需求;
(5)消除需求中出现的冲突,尽可能获取全面、一致的需求;
(6)尽可能多地让用户参与需求获取过程。
【问题1】
联合需求计划(JRP)是一种流行的需求获取方法。请说明什么是JRP,JRP与其它需求获取方法相比有什么优势?
联合需求计划是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是由企业主管部门经理、会议主持人、用户、协调人员、IT人员、秘书等共同组成的专题讨论组来分析、讨论问题并定义系统需求。
JRP和其他需求获取方法相比的优势:(1)发挥用户和管理人员参与系统幵发过程的积极性,提高系统开发效率:(2)降低了系统需求获取的时间成本,加速系统开发周期;(3)采用原型确认系统需求并获取设计审批,具有原型化开发方法的优点。
【解析】
本题考查考生对于软件需求获取方法的掌握情况。
需求获取是一个确定和理解不同类用户的需求和约束的过程。需求获取通过系统分析师与用户的有效合作才能成功,系统分析师建立一个对问题进行彻底讨论的环境,这些问题与将要开发的系统有关。需求获取是否科学、准备充分,对获取出来的需求质量影响很大,大部分用户无法完整地描述需求,而且也不可能看到系统的全部过程。所以,准确、完整和一致的系统需求需要采用合适的方法才能获得。
掌握各种不同的需求获取技术,并且熟练地在实践中运用它,是系统分析师的必备技能。目前流行的需求获取技术主要包括用户访谈、联合需求计划(Joint Requirement Planning, JRP),问卷凋查、文档分析和实地观察等。
为了提高需求获取的效率,越来越多的企业倾向于使用小组工作会议来代替大景的i方谈。眹合需求计划(JRP)是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是由企业主管部门经理、会议主持人、用户、协调人员、IT人员、秘书等共同组成的专题讨论组来分析、讨论问题并定义系统需求。联合需求计划是联合应用开发(Joint Application Development,JAD)的一部分。
联合需求汁划是一种相对来说成本较高的需求获取方法,但也是一种有效的方法。联合需求计划将会起到群策群力的效果,对于一些问题最有歧义的时候或对需求域不清晰的领域都是十分有用的一种方法。这种方式由于鼓励用户参与,能够发挥用户和管理人员参与系统幵发过程的积极性,提高系统开发效率。联合需求计划会议的参与人数为 6〜18人,时间为1〜5小时,能够明显降低系统需求获取的时间成本,加速系统开发周期。在联合需求计划中可以通过系统原型对系统需求进行确认,便于系统获取设计审批。
【问题2】
针对题目中所描述的需求获取要求(1)~(6),选择最适合的需求获取方法填入表1-1中的(a)~(f)处。
(a)文档分析或实地观察
(b)用户访谈或联合需求计划
(c)用户访谈或联合需求计划
(d)问卷调査或文档分析
(e)联合需求计划
(f)联合需求计划
【解析】
各种需求获取方法都有其优点和弊端,实际使用过程中,应根据不同类型的需求选择合适的需求获取方法。
(1)对于当前已有系统的理解采用文档分析和实地观察方法是最有帮助的;
(2)和(3)用户汸谈和联合需求汁划能够提供一些丰富而详细的信息,并且能让分析员了解信息背后的原因,便于获取更深入的需求;
(4)问卷凋查和文档分析能方便地从一大堆信息资源中获取人最的有用信息,便于获取更大范围的需求:
(5)和(6)联合需求计划能够鼓励用户参与到系统开发中,解决不同用户所提供信息之间的矛盾,便于获取全面、一致的需求。
【问题3】
由于该企业销售规模较大,所积累的企业业务文档数量庞大,所以只能通过抽样实现不同类型的文档分析。如果对于每种类型的文档要求90%的可信度(可信度因子为1.5),那么不同类型的文档分别需要抽样多少份就能达到该要求?
每种类型的文档需要分别抽取68份。
【解析】
文档分析中通常采用抽样技术来实现大量不同类型文档的分析,确定样本数量大小是实施抽样的重要工作。样本数量大小计算公式:
样本数量-0.25x(可信度因子/错误率)2
所以,对于每种类型的文档,所需要抽取的样本数量;=0.25X(1.5/0.1)2≈68份。
【案例二】(共25分)
阅读以下关于某ERP系统规划的说明,在答题纸上回答问题1至问题3。
某电子商务公司为了扩大业务规模,提高企业的信息化程度与工作效率,决定由公司的IT部门开发一套ERP系统。在系统建设之初,该公司召开了项目论证会,对于项目的可行性进行了分析。
在论证会上,公司主管领导王总首先介绍了公司目前的运营情况,分析了竞争对手的优势和劣势,认为该项目的成功实施将大大提高公司的竞争力,因此对该项目大力支持,并要求项目必须按期、高质量地完成。公司的中高层管理人员一致认为现有业务大量依靠人工记录,效率低下,急切希望能够依靠该系统的部署提高工作效率,也表示将大力支持项目的开发工作。
公司IT部门的负责人李总对项目开发中的技术问题进行了分析,他认为IT部门多年来一直从事J2EE平台上的应用开发,开发经验丰富。由于近两年来基于B/S结构的Web应用逐渐流行,加之该项目是公司的内部项目,系统功能清楚明确,因此建议可以首先基于B/S架构,采用Web技术进行项目开发,让员工边学边练,即使项目进展不顺利,也可以迅速切换到J2EE平台之上。李总还透露,IT部门最近通过内部关系得到了某竞争对手公司的部分核心业务组件,只要稍加修改就可以立即加入到新系统中,这样就会大大加快项目的进度。
公司业务部门的代表小张表示,ERP系统上线后需要大量的数据采集工作,现有业务人员没有足够的IT技能,短期内难以保证数据录入质量。另外,新系统可能会导致一些现有业务流程的改变,业务人员一开始将难以适应新的业务处理方式,可能会抵制使用该系统。
最后,公司销售部门和财务部门的代表在会上对ERP系统的建设成本和收益进行了详细的分析和比较,给出了相应的结论。
【问题1】
在信息系统建设项目中,通常从经济可行性、技术可行性、法律可行性和用户使用可行性四个方面来进行可行性分析。请用300字以内的文字简要说明项目可行性分析这四个方面各自的主要内容。
经济可行性:经济可行性也称为投资收益分析或成本收益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益;
技术可行性:技术可行性也称为技术风险分析,主要评估信息系统需要实现的功能和性能,以及技术能力约束;
法律可行性:法律可行性也成为社会可行性,需要从、法律、道德、制度等社会因素来论证信息系统建设的现实性;
用户使用可行性:用户使用可行性也成为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。
【解析】
本问题主要考查考生对系统可行性分析的理解与掌握。
具体来说,经济可行性也称为投资收益分析或成本收益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益;技术可行性也称为技术风险分析,主要评估信息系统需要实现的功能和性能,以及技术能力约束;法律可行性也成为社会可行性,需要从、法律、道德、制度等社会因素来论证信息系统建设的现实性;用户使用可行性也成为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。
【问题2】
请根据题干描述的项目开发总体思路,用600字以内的文字对技术可行性、法律可行性和用户使用可行性进行初步分析,并给出分析结论。
技术可行性分析,通过题干描述可知该项目得到领导层的高度重视,对项目的工期和质量要求非常严格,IT部门对J2EE平台的应用开发较为熟悉。但是,该公司IT部门的负责人李总在明知本公司技术人员在Web技术方面不熟悉的情况下仍然建议采用该技术进行系统开发,忽视企业当前的资源和条件,得出过于乐观的结果,将会对后期的项目实施导致灾难性的后果。因此,李总的方案从技术上是不可行的。
法律可行性分析,李总在明知采用不正当手段获得竞争对手公司的核心业务组件的前提下,仍然建议在系统中使用其他企业受到保护的技术成果,这种方案在法律上是不可行的。
用户使用可行性分析,从管理可行性和运行可行性两方面进行分析,(1)管理可行性:根据题干描述,公司的主管领导王总对该项目将大力支持,公司的中高层管理人员也同样表示支持该项目的实施,因此该项目从管理上是可行的。(2)运行可行性:根据题干描述,公司的业务代表小张提出两个方面的问题,一个是企业业务人员没有足够的IT技能,可能对系统的数据采集与质量带来影响;二是系统上线后会改变一些业务流程,可能会为用户带来不便。针对上述问题,需要进-步进行讨论并与业务人员进行沟通,需要对业务人员和用户进行培训,并提供运维服务支持。
【解析】
本问题主要考查考生对于四种可行性分析的掌握与实际应用。
在技术可行性分析方面,通过题干描述可知该项目得到领导层的高度重视,对项目的工期和质量要求非常严格,IT部门对J2EE平台的应用开发较为熟悉。但是,该公司IT部门的负责人李总在明知本公司技术人员在Web技术方面不熟悉的情况下,仍然建议釆用该技术进行系统开发,忽视企业当前的资源和条件,得出过于乐观的结果,将会对后期的项目实施导致灾难性的后果。因此,李总的方案从技术上是不可行的。
在法律可行性分析方面,根据题干描述,李总在明知采用不正当手段获得竞争对手公司的核心业务组件的前提下,仍然建议在系统中使用其他企业受到保护的技术成果,这种方案在法律上是不可行的。
在用户使用可行性分析方面,又可以从管理可行性和运行可行性两方面进行分析。根据题干描述,公司的主管领导王总对该项目将大力支持,公司的中高层管理人员也同样表示支持该项目的实施,因此该项目从管理上是可行的。另一方面,公司的业务代表小张提出两个方面的问题,一个是企业业务人员没有足够的IT技能,可能对系统的数据采集与质量带来影响;二是系统上线后会改变一些业务流程,可能会为用户带来不便。针对上述问题,需要进一步进行讨论并与业务人员进行沟通,需要对业务人员和用户进行培训,并提供运维服务支持。
【问题3】
假设本项目有甲、乙、丙三个解决方案,投资总额均为1000万元,建设期均为2年,运营期均为4年,运营期各年末净现金流入量总和为2000万,年利率为10%,三种方案的现金流量表如表2-1所示。
请根据表2-1中的数据,计算甲、乙、丙三种方案的净现值,给出具体计算过程,并说明那种方案最优。
在计算三种方案的净现值时,必须首先给出折现系数,计算每种方案年初投资额和年末净现金流最的折现值,然后将每种方案的净现金流量折现值与投资额祈现值分别求和,最后用净现值流量之和减去投资额之和即为该方案的净现值,具体计算过程可以下表方式给出。
方案甲:
(1)NPV=300*0.83+400*0.75+500*0.68+800*0.62-(700+300*0.91)=412
(2)NPVR=412/(700+300*0.91)=0.423
方案乙:
(1)NPV=200*0.83+400*0.75+600*0.68+800*0.62-(600+400*0.91)=406
(2)NPVR=406/600+400*0.91=0.421
方案丙:
(1)NPV=400*0.83+500*0.75+500*0.68+600*0.62-(800+200*0.91)=437
(2)NPVR=437/(800+200*0.91)=0.445
因为方案丙的净现值和净现值率均最大,因此,方案丙最优。
【解析】
本问题主要考査考生对于净现值分析法的实际应用能力。
净现值是指一个项目预期实现的现金流入的现值与实施该项计划的现金支出的差额。在计算三种方案的净现值时,必须首先给出折现系数,计算每种方案年初投资额和年末净现金流量的折现值,然后将每种方案的净现金流量折现值与投资额折现值分别求和,最后用净现值流量之和减去投资额之和即为该方案的净现值。
【案例三】(共25分)
请详细阅读有关嵌入式实时操作系统方面的描述,回答问题1至问题2。
【说明】
近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。
【问题1】
图3-1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。
(1)应用软件代码和操作系统代码工作在处理器的不同级别上,应用软件的失效不会影响操作系统的运行:
(2)每一个分区有自己私有存储资源,分区所占空间是相互隔离的,分区内某进程的失效仅仅只影响到进程所在的分区;
(3)操作系统可为分区内应用软件提供多种类型的API服务,使原有应用软件可方便地移植到分区内运行;
(4)分区的调度是按预先配置好的时间表进行调度,任何-个分区只能在系统分配给它的时间窗口内运行,任何分区不能、也无法占用其他分区的窗口时间;
(5)具有分区能力的操作系统提供健康监控管理能力,它通过操作系统内的故障监测机制,将发现的应用、分区和系统的错误通过注入机制报告健康监控系统,由它进行统一的故障处理;
(6)分区化操作系统允许不同安全等级(A-E)的应用软件共享计算机资源,可实现软件验证的最小化、局部化。
【解析】
目前,分区(Partition)技术已被广泛应用于电子系统的数据融合领域,分区技术重在解决处理器速度极大提升后,嵌入式系统无法充分发挥处理器性能的问题。分区化的核心思想就是采用MMU (存储器管理部件)机制将单个处理器划分成多个虚拟机,使每一虚拟机内的应用程序视为在独享处理器资源。本题重点是考查考生对当前基于虚拟机的操作系统的知识掌握程度,同时,考查考生对目前国内广泛使用满足ARINC653标准的操作系统的了解程度。
图3-1给出的具有分区技术的操作系统架构已明确说明了此类操作系统的能力,通过本图考生就可以正确地回答该问题。首先,从图3-1可以看出此类操作系统不同于平板类操作系统,它支持处理器的两种工作状态(核心态和用户态)实现了应用软件与操作系统软件间的空间和访问权限隔离,保护了系统;其次,图3-1给出的分K和进程的概念,考生完全可以分析出此概念类似于一般操作系统的进程和线程的概念,这里的分区类似于进程、进程类似于线程,从而可推断出分区一定会具备通常进程的属性,进程一定会具备通常进程的属性,即分区具有自己私用空间。分区间空间是隔离的:同样,题干给出的“要求原应用软件可被快速移植到新系统”需求就可以说明最好的移植方法是操作系统提供与原始的API相兼容,因此分区内提供可提供多种API接口是此类操作系统的特性之一;考生如果了解满足ARINC653标准的操作系统,那么它应有的独特性也会知晓,如:分区凋度是采用预先配置的时间表调度,实现了分区时间上的确定性和时间隔离,与其他操作系统的最大区别是将健康监控能力植入操作系统内核,实现了系统故障监视和统一的故障处理机制,从应用角度看,分区技术的时空隔离特征,保障了不同安全等级(宇航分为5级A-E)的应用软件可安全共享计算机资源也是主要特征之一。
【问题2】
完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3-1)。原系统包含三个子系统,为了保证各子系统软件间的相对性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3-2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注:WCET,Worst-CaseExecutionTime)。
所有任务可被调度的分析如下:
保证所用任务的可调度性必须满足在主时间框架内,系统中所用任务的最坏执行时间(WCET)均被执行至少一次。初步计算如下:
1(P3T1)≤5ms
1(P1T1)+ l(P2T1)≤10m
2(P1T2)+ 1(P3T2)≤20m
1(P3T1)*8+1(P1T1)*4+l(P2T1)*4+2(P1T2)*2+1(P3T2)*2+5(P1T3)*1+3(P2T2)<=40ms
依据上述三个设计条件,新系统的分区调度表可安排如下:
(1)0 (2) 1 (3) 2 (4) P2 (5) P3
(6)4 (7) 20 (8) 1 (9) null (10) 7
【解析】
本问题主要考査考生对嵌入式实时系统方面的知识掌握程度。这里涉及两方面知识,其一是实时系统的周期任务的可调度分析方法:其二是针对【问题1】中提到的分区的时间表调度算法,完成对表3-1的实例进行可调度分配,使操作系统按照设置好的调度序列调度分区,一定会保证表3-1中所有任务在最坏情况下按其周期要求执行完成。 在可调度分析时,表3-1给出实例中,分区凋度的主时间框架应是实例中所用任务周期的最大公约数,即40ms,这样可调度分析首先应分析在40ms时间范围内是否可保证表3-1中的所有任务的最坏执行时间都被至少执行一次。在此前提下,以此类推,完成对20ms周期、10ms周期和5ms周期三种周期内的所用任务的最坏执行时间都被至少执行一次,如果四种分析都可调度,则表3-1给出的实例是可调度的。具体公式如下:
1(P3T1)≤5ms
1(P1T1)+ l(P2T1)≤10m
2(P1T2)+ 1(P3T2)≤20m
1(P3T1)*8+1(P1T1)*4+l(P2T1)*4+2(P1T2)*2+1(P3T2)*2+5(P1T3)*1+3(P2T2)<=40ms
如果上述分析是可调度的,那么,完成表3-2的分区调度表就可很容易实现。调度表是分区操作系统调度分区的依据,调度表将主时间框架分成若干个窗口(windows), 每一窗口可定义分配给哪个分区运行,启动时间是指本窗口针对主时间框架的第一个窗体“0”的偏移铀,持续时间是指分配给此窗口的实际可运行时间。考生在填写时必须淸楚以下4点:
(1)分区时间表调度中某窗口的启动时间不一定必须等于上一窗口的启动时间加持续时间。也就是说,窗口间的启动时间可以不连续;
(2)分区时间表调度中的第一个窗口的启动时间一般都为0;
(3)操作系统调度程序在遇见主时间框架最后一个窗口运行完后,应在主时间框架结束时刻重新加钱主时间框架,新周期开始从第一个窗口运行;
(4) 空窗口(null)是指本时间段操作系统不做任何分区凋度,系统运行一种称之为空分区的任务。
【案例四】(共25分)
阅读以下关于系统运行与维护的叙述,在答题纸上回答问题1至问题3。
【说明】
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;
问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。
这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。
为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。
【问题1】
软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。
恢复信息的级别:
(1)实现级:包括程序的抽象语法树、符号表等信息;
(2)结构级:包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;
(3)功能级:包括反映程序功能与程序之间关系的信息;
(4)领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。
【解析】
软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序表示的过程。逆向工程是一个恢复设计的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。恢复信息的级别分为:实现级、结构级、功能级和领域级。其中,实现级主要包括程序的抽象语法树、符号表等信息;结构级主要包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;功能级主要包括反映程序功能与程序之间关系的信息;领域级主要包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。
【问题2】
重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法?
软件重构一般分为三类:
(1)代码重构;(2)模块重构;(3)架构重构。
常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数调用和处理概括关系。
针对问题(1),采用代码重构,重新梳理代码流程,使代码容易理解和维护;
针对问题(2),采用模块東构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。
【解析】
软件重构的目的主要有四个方面:一是改进软件设计,帮助重新设汁代码、重新体现设计结构和进一步改进设计;二是提高代码质量,更易被理解,这样很容易维护和进一步开发;三是可以帮助尽早发现错误,因为重构是一个代码的反馈过程,是在另一个时段重新审视自己或别人的代码,更容易发现问题和加深对代码的理解;四是提高开发速度,因为对设计和代码改进,都有利于提高开发速度。
软件重构-般分为三类:代码重构、模块重构和架构重构。基于代码重构的重构通常是按照闭队的规范整理代码,使其结构吏规范;基于模块重构是将代码封装,以便多次复用;基于架构重构的重构通常是实现软件的解耦,提髙软件的可扩展性和灵活性。
常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数凋用和处理概括关系。
根据以上所述,针对问题(1)显然应采用代码重构,重新梳理代码流程,使代码容易理解和维护;针对问题(2)显然应采用模块重构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。
【问题3】
软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。
一个模块化程度好的程序可从两方面帮助性能优化。
(1)分解良好的程序,使得性能分析的粒度更细,性能调整更加容易;
(2)分解良好的程序,由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。
【解析】
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块具有以下几种基本属性:接口、功能、逻辑、状态,功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。在软件的体系结构中,模块是可组合、分解和更换的单元。
事实上,将软件分解成若干模块,则工作量会减少。但分解的模块越多,工作最不一定越少,因为分解到一定程度,模块之间的接口工作量就上升,从而使总代价上升。一个软件系统划分模块数的最佳值是M。从心理学角度研究表明,一个模块的大小最好在30〜50个语句之间,即能全部写在一页打印纸上为限。一个模块化程度好的程序可从两方面帮助性能优化:一是使得性能分析的粒度更细,性能调整更加容易;二是由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。
【案例五】(共25分)
阅读以下关于Web应用的叙述,在答题纸上回答问题1至问题2。
【说明】
某软件公司拟为其客户开发一套基于Web的电子商务系统,该系统向终端用户提供在线购物功能。近期,项目组召开会议对以下两项需求进行了重点讨论:
(1)系统终端用户的界面呈现应提供丰富的多媒体信息,包括文本、图片、动画、视频及语音消息。
(2)系统上线后需应对大量客户端并发请求处理,商家促销活动时,并发用户数可能会达到20万的规模;系统预期用户呈明显地地域集中分布特征。
【问题1】
项目组在讨论实现需求(1)的技术方案时,首先确定了以下技术原则:
(a)应在开发阶段容易获得良好的协作开发环境支持;
(b)应考虑客户端浏览器的兼容性;
(c)应尽可能使系统具有良好的可维护性;
(d)应考虑公司开发人员的技术学习成本。
项目组就Flex与HTML5两种技术方案进行了论证,综合考虑上述技术原则要求,最终采用了基于Flex的技术方案,请结合需求(1)及上述技术原则,对比Flex与HTML5两种技术方案的优劣,说明采用基于Flex的技术方案的原因。
从需求(1)看,该系统域于典型的富互联网应用,而基于Flex与HTML5的技术方案均可实现系统客户端多媒体呈现的基本要求,但HTML5往往需要同时配合CCS与JavaScrip t来实现完整的页面展现,对照项目组确定的技术原则,这两种方案存在以下主要区别:
(1)协作开发环境支持:Flex具备更好的协作开发环境,包括IDE、编泽器、调试工具及分析工具等,而目前HTML5开发过程中没有很好的协作环境,调试过程比Flex 开发相对困难。
(2)浏览器兼容性:Flex通过插件来实现浏览器的兼容性,一次开发可以适应目前主流的浏览器,而HTML5目前的浏览器兼容性较差,调试时需要针对不同浏览器调整可靠性、屏幕大小等具体参数,来确定界面呈现的具体效果,因此其兼容性目前相对Flex而言要更差一些。
(3)可维护性:基于Flex的开发方法目前已比较成熟,如Flex Spark幵发框架对MVC模式有良好的支持,可以实现表现层与逻辑层的分离,而在HTML5中,由于目前JavaScript对面向对象支持并不完善等原因,使得基于HTML5的开发没有形成规范的开发流程,因此系统的维护成本要比Flex高。
(4)技术学习成本:由于HTML5往往需要同时配合CCS与JavaScript来实现完整的页面展现,因此对不熟悉的技术人员来讲,需要学习的技术较多,与Flex相比,学习成本,尤其是初学的成本要更大一些。
【问题2】
项目组在讨论实现需求(2)的技术方案时,首先确定了以下技术原则:
(a)系统中商品信息及用户信息按类别划分不同数据库或表存放;
(b)系统应提供热备份机制以防止服务器意外失效;
(c)为满足大规模并发处理要求,系统软硬件投入可根据需要追加。
项目组经过集思广益,抽取了HTML静态化、缓存、库表散列、集群与镜像、负载均衡等候选技术手段。请结合需求(2)及相应技术原则,分析上述技术手段在本项目中的可行性,将结果填入表格5-1中。
【解析】
本问题考查大规模用户并发请求处理技术。
在题干中给出的5种相应技术手段中,HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息、商品信息、订单信息及评论信息动态显示,且内容更新频繁,因此不适合采用。对于缓存技术手段,根据在线购物业务的特征,系统应用需要频繁访问数据库,因此可以对经常访问的数据建立缓存,以提高并发访问效率。根据技术原则(a),系统中商品信息及用户信息按类别划分不同数据库或表存放,因此可以采用库表散列的手段提高数据库并发访问效率。根据需求(2),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,且技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。综上不难看出,除HTML静态化手段外,其他四种技术手段均可应用于本系统,以提高大规模用户并发访问的处理效率。
【论文一】请以“论信息系统开发方法及应用”为题,分别从以下三个方面进行论述。
1.简要叙述所参与管理和开发的软件项目,并明确指出在其中承担的主要任务和开展的主要工作。
2.目前比较主流的信息系统开发方法主要包括:结构化方法、面向对象方法、面向服务的方法、原型化方法、快速应用开发、敏捷开发等。
3.考生需结合自身参与项目的实际状况,指出其参与管理和开发的项目中是如何应用所选择的开发方法指导系统开发的,说明具体的实施过程、使用的方法和工具,并对实际实施效果进行分析。
【答案解析】:
一、简要介绍企业的业务背景、数据分析需求、采用的数据库集群技术等内容,说明自己捎任的实际下作。
二、详细论述所参与的软件项目对数据管理的实际需求,论述如何应用或设计数据库集群技术。
结构化方法是一种传统的信息系统开发方法,由结构化分析、结构化设计和结构化程序设计三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。
结构化方法的基本思想是将系统的生命周期划分为系统规划、系统分析、系统设计、系统实施和系统维护等阶段。这种方法遵循系统工程原理,按照事先设计好的程序和步骤,使用一定的开发工具,完成规定的文档,在緣构化和模块化的基础上进行信息系统的开发工作。结构化方法的开发过程一般是先把系统功能视为一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。
结构化方法的主要特点是:开发目标清晰化;开发工作阶段化;开发文档规范化: 设计方法结构化。
结构化方法是目前最成熟、应用较为广泛的一种工程化方法,它特别适合于数据处理领域的问题,但是不适用于规模较大、比较复杂的系统开发。其局限性体现在:开发周期长,难以适应需求变化,很少考虑数据结构等。
面向对象方法是当前的主流开发方法。面向对象方法认为,客观世界是由各种对象组成的,任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个类,是该类的一个元素。复杂的对象可由相对简单的各种对象以某种方法而构成,不同对象的组合及相互作用就构成系统。
面向对象方法也包括面向对象分析(OOA)、面向对象设计(OOD)和面向对象程序设计(OOP)三个阶段。OOA的任务是了解问题域所涉及的对象、对象间的关系和操作,然后构造问题的对象模型。OOD在分析对象模型的基础上,设计各个对象、对象之间的关系和通信方式,其主要作用是对OOA的结果作进一步的规范化整理。OOP实现在OOD阶段所规定的各个对象所应完成的任务,它包括每个对象的内部功能实现,确定对象哪-些处理能力应在哪些类中进行描述,确定并实现系统的界面、输出的形式等。
面向对象方法使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与幵发人员的交流和沟通,缩短开发周期,提供系统开发的正确性和效率。面向对象方法可以普遍适用于各类信息系统的开发,但是也存在明显的不足。当前一些大型信息系统的开发,通常是把结构化方法和面向对象方法结合起来。
面向服务方法
在面向对象之后发展起来的建模技术将相关对象按照业务功能进行分组,就形成了构件的概念。对于跨构件的功能调用,则采用接口的形式接露出来,进一步将接口的定义与实现进行解耦,则催生了服务和面向服务的开发方法。
面向服务的开发方法也分为面向服务的分析与设计(SOAD)阶段。OOA/OOD、企业架构(Enterprise Architecture, EA)和业务流程建模(BMP)分别从基础设计层、应用结构层和业务组织层三个层次上为SOAD提供理论支撑。
服务建模的过程实际上是进行流程分解、对业务目标和现有系统进行分析,发现候选服务,并对其进行分类,确定哪些服务可以被暴露,最终实现服务和架构设计的过程。按照实施的阶段,服务建模可以分为服务发现、服务规约和服务实现三个阶段。
面向服务的方法加强了系统的灵活性、可复用性和可演化性。因此服务基础架构基于粗粒度、松散耦合和基于标准的服务,使得信息系统的建设能够保持主动,这种方法使信息系统能够通过自身的业务和转换来应对市场挑战。
原型化方法
原型化方法也称为快速原型法,它是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。
原型法的开发过程包括如下步骤:确定用户基本需求;设计系统初始原型;试用和评价原型;修正和完善原型;整理原型和提供文档。
原型法的特点:可以使系统开发的周期缩短、成本和风险降低,速度加快,获得较高的综合开发效益;提高用户参与程度,增加用户满意度,提高系统开发的成功率:由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行和维护。
原型法的优点主要在于能更有效地确认用户需求。从直观上来看,原型法适用于那些需求不甚明确的系统开发。对于分层层面难度大、技术层面难度不大的系统,适合于原型法,而对于技术层面的困难远大于分析层面的系统,则不宜采用原型法。
快速应用开发(RAD)
快速应用开发强调极短的开发周期,通过使用基于构件的开发方法获得快速开发。 如果需求理解得很好,且约束了项目范围,利用这种方法可以很快开发出功能完善的信息系统。
RAD的开发阶段包括:业务建模、数据建模、过程建模、应用生成、测试与交付。
RAD的局限性:RAD对模块化要求比较高,开发者和客户必须在很短时间完成一系列需求分析,任何一方配合不当,都会导致RAD项目失败;RAD只能用于管理信息系统的开发,不适合技术风险很高的情况。
敏捷开发方法
敏捷方法是一种以人为核心、迭代、循序渐进的开发方法。在敏捷方法中,软件项目的构件被切分成多个子项目,各个子项目成果都要经过测试,具备集成和可运行的特征。敏捷方法主要适用于以下场合:
项目团队人数不能太多,适合于规模较小的项目;
项目经常发生变更;
高风险项目的实施;
从组织结构的角度看,组织结构的文化、人员、沟通性决定了敏捷方法是否使用。
(包括实际采用的开发方法在内,至少介绍三种开发方法即可。对于实际采用的开发方法,应结合项目实际情况,说明选择这种/这些方法的原因。)
三、论述采用了具体的数据库集群技术后,取得的应用效果,说明是否满足了企业的数据需求,并说明存在的问题。
【论文二】请以“业务流程建模方法及应用”为题,分别从以下三个方面进行论述。
1.概要叙述你参与实施的项目以及你所担任的主要工作。
2.给出三种业务流程建模方法,并对每种方法进行简要描述。说明你在该项目中采用了哪种业务流程建模方法,结合项目特征说明采用该方法的原因,并详细描述业务流程建模过程。
3.阐迷在进行业务流程建模过程中遇到的主要问题及如何解决的。
【解析】
一、论文中要具体介绍组织的业务背景、组织结构、软件系统的架构、采用的技术等内容和担任的实际工作。
二、常见的业务流程建模方法包括:
(1)标杆睢准(BenchMarking)方法
标杆瞄准是一个连续、系统化地对外部领先企业进行评价的过程,通过分析和评价,确定出最佳的经营过程和工作过程,以便合理地确定本企业的业务流程。由于企业中的许多业务流程在不同的行业都是相似的,因此,运用标杆瞄准法对这些项目实施标准,尤其是在不同的行业对同一项目实施标杆瞄准时,对企业的价值可能更大。
(2)IDEF 方法
IDEF是一系列建模、分析和仿真方法的统称,从IDEF0到IDEF14 (包括IDEF1X) 在内共有16套方法,每套方法都是通过建模程序来获取某个特定类型的信息。分别是IDEF0 (功能建模)、IDEF1 (信息建模)、IDEF1X (数据建模)、IDEF2 (仿真建模设计)、IDEF3 (过程描述获取)、IDEF4 (面向对象设计)、IDEF5 (本体论描述获取)、IDEF6 (设计原理获取)、IDEF7 (信息系统审计)、IDEF8 (用户界面建模)、IDEF9 (场景驱动信息系统设计)、IDEF10C实施架构建模)、IDEF11 (信息制品建模)、IDEF12(组织建模)、IDEF13 (三模式映射设计)和IDEF14 (网络规划)。在IDEF方法中, IDEF0可以用来对业务流程进行建模。IDEF0是对企业所完成的各项活动及活动之间相互关系的一种结构化描述,其基本要素是用“盒子”表示功能活动。IDEF0的特点是其层次分解性,利用一套完整的、严密的规则,将一个复杂的系统逐层往下分解,即较高层次的一个活动可以按需要细化成一组较低层次上的活动。
Perti网方法
Petri网作为一种从流程的角度出发描述和分析复杂系统的模型工具,适用于多种系统的图形化、数学化建模丁具,为描述和研究具有并行、异步、分布式和随机性等特征的信息系统提供了强有力的手段,应用Petri网可以有效地对企业业务流程进行建模和系统仿真,实现业务流程的执行和控制管理。
DEMO 方法
DEMO ( Dynamic Essential Modeling of Organization)方法定义了 信息系统中行为角色之间的通信方式,这种通信方式可以看作是一种对角色行为的支配方式,而这种支配方式是通过在行为角色之间创建指导其行动的约定来实现的,其理论基础是对话行为理论(Speech Action Theory)。DEMO的核心是业务事物,业务流程由一系列的相关业务事物组成,业务事物是一种通信模式和客观行为,通过两个行为角色实现,分别是发起者和执行者。一个业务事物包括三个阶段,分别是要求阶段、执行阶段和结果阶段。
业务流程建模语言
主流的业务流程建模语言标准有业务流程执行语言(Business Pricess Execution Language, BPEL)、业务流程建模语言(Business Process Modeling Language,BPML)、业务流程建模标注(Business Process Modeling Notation, BPMN)和XML流程定义语言 (XML Process Definition Language, XPDL)和UML 五种。BPEL 是一种使用XML 编写,用于自动化业务流程的形式规约语言,流程中的处理通常为Web服务;BPML与BPEL 的设计理念类似,也是用XML对流程和流程执行语义进行描述,它是业务流程建模的元语言。XPDL是工作流管理联盟定义的一套流程建模标准,用来支持BPM的各种工具和引擎间交换流程设计的定义。BPMN是一种图形化流程建模语言,主要用于对流程的直观表示。
(以上5种建模方面,只要给出其中任意3个即可。意思正确即可酌情给分)
2.考生针对问题1中的项0背景描述,提炼所参与项目在业务流程建模方面的特点,针对项目特点从上述建模方法中选择一个较为合适的方法,并明确指出选择这种方法的原因。最后按照该建模方法的步骤,详细描述是如何进行业务流程建模的。
三、在流程建模中可能遇到的问题包括:如何识别企业的基本流程;如何表达流程之间存在的交叉和嵌套等关系;如何定义流程内部的角色及角色之间的通信方式;如何描述具有并行、异步、分布式和随机性等特性的复杂业务流程,等等。
【论文三】请以“数据库集群技术及应用”为题,分别从以下三个方面进行论述。
1.概要叙迷你参与实施白勺落欠件项目以及你在其中所担任的主要工作。
2.请说明你所参与的软件项目对数据管理的契示需求,结合数据库集群技术的特点,论述你是如何应用数据库集群技术或设计数据库集群系统的。
3.简要说明数据库集群产品的应用效果及存在的问题。
【解析】
一、简要介绍企业的业务背景、数据分析需求、采用的数据库集群技术等内容,说明自己担任的实际工作。
二、详细论述所参与的软件项目对数据管理的实际需求,论述如何应用或设计数据库集群技术。
数据库集群系统是利用多台数据库服务器,构成一个虚拟单一的数据库逻辑映像,如同单数据库一样,向客户端提供透明的数据服务。
为保证虚拟单一的数据库逻辑映像,数据库集群系统有多种实现方式:单份数据集,两份或多份相似但非实时同步的数据集,两份或多份实时一致的数据集等。数据库集群的特点包括:数据库集群系统往往是同构系统,集群中各个节点具有相同的操作系统和数据库系统版本;数据库集群往往建立在高速局域网内,一般通过多台服务器提供数据冗余,为客户端提高数据的高可用性和高可靠性;通过多种负载均衡技术为客户端提供高性能。
按照数据库集群的架构可分为共享磁盘型和非共孪磁盘型数据库集群。共享磁盘型的数据库集群只有一个单一的数据集,不存在节点之间的数据同步问题。非共享磁盘型数据库集群系统包含多个物理机器,为保持统一的逻辑数据视图,数据同步是一个核心问题。数据库集群系统中常见的数据同步机制包括:
串行数据复制分为串行异步复制和串行同步复制
串行异步复制:主要采用数据库事务日志传送或者硬盘数据块传送技术来实现。主数据库完成事务处理后,生成事务日志或将数据写入数据块中,通过FIFO队列的形式,将数据传送到备份数据库,得到一致数据。存在的主要问题是:异步会存在时间差,带来主、备数据库的数据的不一致,也可能会丢失数据;同时存在一定的额外开销。
串行同步复制:此类集群往往是由昂贵的专用软硬件构成,采用专用的高速网络和软件技术,将每个数据库的请求,通过同步复制的方式,同步在主备两台数据库服务器执行正确后,才将结果返回给数据库客户。其主要特点是主备服务器同时处理,性能低,而且专用系统造价昂贵。
基于共享存储技术:典型的产品是数据库的双机容错技术,也包括Oracle的RAC 产品。该系统的架构是多个机器共享一个磁盘阵列,服务器通过虚拟IP提供服务,形成单一的逻辑数据库。一旦某个机器异常,则通过心跳检测或其他信息交换协议,完成主备机器的切换。主要特点是单一数据存储,存在数据同步问题,但是单一数据往往成为整个系统的单点错误源;而且只能通过数据库中常用的备份或复制方法获取第二份数据,以保证数据安全,因此,所有复制或备份方法的缺点,此类系统全部存在。另外,主备机器的切换也需要时间开销。
基于实时数据同步技术:此类集群的基本特征是节点有自己的存储设备,数据采用非共享存储。因此该集群一般均提供负载均衡技术,采用的负载均衡技术有基于连接的负载均衡和基于请求的负载均衡两种。在实现节点之间的数据同步上,或者通过专门的卨速数据同步技术,或者通过分布式数据库中的两阶段提交协议来实现。此类集群系统的核心特点是:1)实时冗余一致的数据存储,理论上实现了数据的零丢失,可以做到很高的可用性;2)由于需要额外的数据同步操作,因此性能会受到一定的影响,如采用两阶段提交来实现同步,则慢一些;同时,额外的数据同步也了集群中的节点数目。
问前基于共享存储和基于实时数据同步技术(即非共享存储)是数据库集群中的主流技术,串行数据M制也可以算作是非共享存储中的一种,但由于性能较差,缺陷明显,在市场上采用的较少。在实际选择数据库集群产品时,需要考虑的问题包括:数据的并发/性能需求、数据容量、数据可靠性、数据可用性、实现成本等问题。
三、论述采用了具体的数据库集群技术后,取得的应用效果,说明是否满足了企业的数据需求,并说明存在的问题。
【论文四】请以“企业信息集扫土廿支术及应月”大题,分别从以下三个方面进行论述。
1.概要叙述你参与的企业信息集成项目以及你所担任的主要工作。
2.详细论述企业内部信息集成和企业外部信息集成分别包括哪些方面,其主要集成内容有哪些。
3.具体阐迷你所参与的企业信息集成项目,涵盖了哪些内、外部信息集成内容,实现了哪些信急集成功能,具体实施效吴如何。
【解析】
一、简要描述所参与的企业信息集成项目,并明确指出在其中承担的主要任务开展的主要工作。
二、详细论述企业内部信息集成和企业外部信息集成分别包括哪些方面及其主要集成内容。
企业内部信息集成:
技术平台集成。技术平台技术足系统底层的体系结构、软件、硬件以及异构网络的集成,集成内容不仅包括信息技术硬件所组成的新型操作平台,如各类大型机、小型机、工作站、微机、通信网络等信息技术设备,还包括置入信息技术或者说经过信息技术改造的机床、车床、自动化工具、流水线设备等新型设施和设备。
数据集成。数据集成是对数据进行标识并编成目录,确定元数据模型。只有在建立统一的模型后,数据才能在数据库系统中分布和共享。数据集成采用的主要数据处理技术有数据复制、数据聚合和接口集成等。
应用系统集成。应用系统集成是实现不同系统之间的互操作,使得不同应用系统之间能够实现数据和方法的共享。
业务过程集成。业务过程集成是在各种业务系统中定义、授权和管理各种业务信总的交换,以便改进操作、减少成本、提高响应速度。业务过程集成使得在不同应用系统中的流程能够无缝连接,实现流程的协调运作和流程信息的充分共享。
企业外部信息集成:
(1)通过门户网站和互联M实现公众、社会团体、社会和客户的互动,实现企业内外部信息资源的有效交流和集成。
(2)通过与合作伙伴信息系统的对接,建立动态的企业联盟,发展基于竞争合作机制的虚拟企业,重塑企业的战略模式和竞争优势。
三、阐述你参与的企业信息集成项目,具体说明该项目中涵盖了哪些集成内容,实现了哪些信息集成功能,并详细说明实施效果。
企业信息集成的功能主要包括:
信息共享。信息共享对于企业提高服务质量、降低运营成本有着非常直接的作用。
信息协作平台。通过信息集成,可实现各部门、各应用系统之间的协调运作,实现业务流程的定制、改造和优化,为企业的各种应用和系统提供一个统一的运行协作平台,实现流程协作和信息共享。
信息价值提升。通过信息集成将一些静态的数据加工成流动的信息,并对信息进行高度综合和深入挖掘,可形成企业知识,为企业管理决策提供支持。企业还可以将信息系统进行有机整合,提升企业信息系统的价值,为企业面对日益激烈的竞争和日趋苛刻的客户提供强有力的支持。
