【系统分析师之路】2014年系统分析师下午案例分析真题

【系统分析师之路】2014年系统分析师下午案例分析真题

2014年系统分析师下午案例分析第一题(需求工程)

【试题一】(共25分)
阅读以下关于需求建模的叙述,在答题纸上回答问题1至问题3。
某企业委托软件公司开发一套运动器材综合销售平台,以改进已有的销售管理系统,拓展现有的实体店销售模式,综合管理线上线下的器材销售业务。该软件公司组建项目组开发该系统,现正处于需求获取阶段。经过项目组讨论,由于目标系统业务功能比较复杂,所以在需求获取中针对不同类型的业务需求,采用不同的需求获取方法。项目组列出可选的需求获取方法包括:用户访谈、联合需求计划(JRP)、问卷调查、文档分析和实地观察等。
需求获取的要求如下:
(1)获取已有销售管理系统中所实现的实体店销售模式和过程;
(2)获取系统的改进需求和期望增加的业务功能;
(3)获取当前业务过程中的详细数据并深入了解这些数据产生的原因;
(4)从企业管理人员、销售人员、各种文档资源等尽可能多的来源获取需求;
(5)消除需求中出现的冲突,尽可能获取全面、一致的需求;
(6)尽可能多地让用户参与需求获取过程。
【问题1】
联合需求计划(JRP)是一种流行的需求获取方法。请说明什么是JRP,JRP与其它需求获取方法相比有什么优势?
【问题2】
针对题目中所描述的需求获取要求(1)(6),选择最适合的需求获取方法填入表1-1中的(a)(f)处。
在这里插入图片描述
【问题3】
由于该企业销售规模较大,所积累的企业业务文档数量庞大,所以只能通过抽样实现不同类型的文档分析。如果对于每种类型的文档要求90%的可信度(可信度因子为1.645),那么不同类型的文档分别需要抽样多少份就能达到该要求?

我的答案
  • 【问题1我的解答】
    JRP联合需求计划是跨部门跨领域邀请与系统建设相关的干系人进行业务需求讨论的会议。与其他的需求收集方法相比,它的成本最高,但可以跨部门地收集到各种需求,收集需求的效率也是最高的。它可以在会议中采用群体决策技术,解决收集需求过程中的冲突,并获得大多数干系人一致认可的方案。
  • 【问题2我的解答】
    1.遗留系统的分析
    2.用户访谈
    3.文档分析
    4.实地观察
    5.联合需求计划
    6.问卷调查
  • 【问题3我的解答】
    不会作答。
标准答案
  • 【问题1标准答案】
    联合需求计划是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是由企业主管部门经理、会议主持人、用户、协调人员、IT人员、秘书等共同组成的专题讨论组来分析、讨论问题并定义系统需求。
    JRP和其他需求获取方法相比的优势:
    (1)发挥用户和管理人员参与系统开发过程的积极性,提高系统开发效率
    (2) 降低了系统需求获取的时间成本,加速系统开发周期
    (3)采用原型确认系统需求并获取设计审批,具有原型化开发方法的优点。
  • 【问题1解析】
    本题考查考生对于软件需求获取方法的掌握情况。
    需求获取是一个确定和理解不同类用户的需求和约束的过程。需求获取通过系统分析师与用户的有效合作才能成功,系统分析师建立一个对问题进行彻底讨论的环境,这些问题与将要开发的系统有关。需求获取是否科学、准备充分,对获取出来的需求质量影响很大,大部分用户无法完整地描述需求,而且也不可能看到系统的全部过程。所以,准确、完整和一致的系统需求需要采用合适的方法才能获得。
    掌握各种不同的需求获取技术,并且熟练地在实践中运用它,是系统分析师的必备技能。目前流行的需求获取技术主要包括用户访谈、联合需求计划(Joint Requirement Planning, JRP),问卷凋查、文档分析和实地观察等。
    为了提高需求获取的效率,越来越多的企业倾向于使用小组工作会议来代替大景独立的访谈。眹合需求计划(JRP)是一个通过高度组织的群体会议来分析企业内的问题并获取需求的过程,它是由企业主管部门经理、会议主持人、用户、协调人员、IT人员、秘书等共同组成的专题讨论组来分析、讨论问题并定义系统需求。联合需求计划是联合应用开发(Joint Application Development,JAD)的一部分。
    联合需求汁划是一种相对来说成本较高的需求获取方法,但也是一种有效的方法。联合需求计划将会起到群策群力的效果,对于一些问题最有歧义的时候或对需求域不清晰的领域都是十分有用的一种方法。这种方式由于鼓励用户参与,能够发挥用户和管理人员参与系统开发过程的积极性,提高系统开发效率。联合需求计划会议的参与人数为 6〜18人,时间为1〜5小时,能够明显降低系统需求获取的时间成本,加速系统开发周期。在联合需求计划中可以通过系统原型对系统需求进行确认,便于系统获取设计审批。
  • 【问题2标准答案】
    (a)文档分析或实地观察
    (b)用户访谈或联合需求计划
    (c)用户访谈或联合需求计划
    (d)问卷调査或文档分析
    (e)联合需求计划
    (f)联合需求计划
  • 【问题2解析答案】
    各种需求获取方法都有其优点和弊端,实际使用过程中,应根据不同类型的需求选择合适的需求获取方法。
    (1)对于当前已有系统的理解采用文档分析和实地观察方法是最有帮助的;
    (2)和(3)用户汸谈和联合需求汁划能够提供一些丰富而详细的信息,并且能让分析员了解信息背后的原因,便于获取更深入的需求;
    (4)问卷凋查和文档分析能方便地从一大堆信息资源中获取人最的有用信息,便于获取更大范围的需求:
    (5)和(6)联合需求计划能够鼓励用户参与到系统开发中,解决不同用户所提供信息之间的矛盾,便于获取全面、一致的需求。
  • 【问题3标准答案】
    每种类型的文档需要分别抽取68份。
  • 【问题3解析】
    文档分析中通常采用抽样技术来实现大量不同类型文档的分析,确定样本数量大小是实施抽样的重要工作。样本数量大小计算公式:
    样本数量=0.25x(可信度因子/错误率)2
    所以,对于每种类型的文档,所需要抽取的样本数量=0.25X(1.645/0.1)2≈68份
心得体会

联合需求会议既费时间也是一种非常省时间的方式,费时间是相对于其他的需求获取的工具来说的,省时间是指联合需求会议之上既可以群体决策,群体创新,在需求上如果发生争议和冲突,也可以协商解决。联合需求会议参与人员一般控制在6-18人,但是10人左右是最为高效的会议人数。从可以缩短开发周期,可以缩短需求收集的时间上来说,它是省时间的。
还可以在联合需求计划的会议上,使用原型方法对需求进行确认以方便,便于之后的需求验证工作。
在第二题中,除了第一条和第四条之外,其他都可以使用联合需求会议,第一条是从遗留系统中获取需求,第四条强调尽可能多以及文档,所以不适合使用联合需求计划,第三空需要深入了解原因,怎么了解,光看文档肯定不知道还是要访谈一下比较好。
可信度因子除以错误率的平方,然后再除以4,就有了。这个公式记住就好。

2014年系统分析师下午案例分析第二题(系统规划)

【案例二】(共25分)
阅读以下关于某ERP系统规划的说明,在答题纸上回答问题1至问题3。
某电子商务公司为了扩大业务规模,提高企业的信息化程度与工作效率,决定由公司的IT部门开发一套ERP系统。在系统建设之初,该公司召开了项目论证会,对于项目的可行性进行了分析。
在论证会上,公司主管领导王总首先介绍了公司目前的运营情况,分析了竞争对手的优势和劣势,认为该项目的成功实施将大大提高公司的竞争力,因此对该项目大力支持,并要求项目必须按期、高质量地完成。公司的中高层管理人员一致认为现有业务大量依靠人工记录,效率低下,急切希望能够依靠该系统的部署提高工作效率,也表示将大力支持项目的开发工作。
公司IT部门的负责人李总对项目开发中的技术问题进行了分析,他认为IT部门多年来一直从事J2EE平台上的应用开发,开发经验丰富。由于近两年来基于B/S结构的Web应用逐渐流行,加之该项目是公司的内部项目,系统功能清楚明确,因此建议可以首先基于B/S架构,采用Web技术进行项目开发,让员工边学边练,即使项目进展不顺利,也可以迅速切换到J2EE平台之上。李总还透露,IT部门最近通过内部关系得到了某竞争对手公司的部分核心业务组件,只要稍加修改就可以立即加入到新系统中,这样就会大大加快项目的进度。
公司业务部门的代表小张表示,ERP系统上线后需要大量的数据采集工作,现有业务人员没有足够的IT技能,短期内难以保证数据录入质量。另外,新系统可能会导致一些现有业务流程的改变,业务人员一开始将难以适应新的业务处理方式,可能会抵制使用该系统。
最后,公司销售部门和财务部门的代表在会上对ERP系统的建设成本和收益进行了详细的分析和比较,给出了相应的结论。
【问题1】
在信息系统建设项目中,通常从经济可行性、技术可行性、法律可行性和用户使用可行性四个方面来进行可行性分析。请用300字以内的文字简要说明项目可行性分析这四个方面各自的主要内容。
【问题2】
请根据题干描述的项目开发总体思路,用600字以内的文字对技术可行性、法律可行性和用户使用可行性进行初步分析,并给出分析结论。
【问题3】
假设本项目有甲、乙、丙三个解决方案,投资总额均为1000万元,建设期均为2年,运营期均为4年,运营期各年末净现金流入量总和为2000万,年利率为10%,三种方案的现金流量表如表2-1所示。
在这里插入图片描述
请根据表2-1中的数据,计算甲、乙、丙三种方案的净现值,给出具体计算过程,并说明那种方案最优。

我的解答
  • 【问题1我的解答】
    经济可行性主要是从盈亏平衡,成本效益分析等方面对信息系统解析分析,以得出建设信息系统是否能够赢利的过程。
    技术可行性主要是指在项目建设中是否具备实施技术的条件,包括是否有掌握技术的人才,使用某项技术后对项目的风险是否可控。
    法律可行性是指开发的信息系统是否有涉及违反法律的研发内容,在项目中是否存在侵权等现象
    用户使用可行性是站在用户的角度,是否满足便于操作,便于使用控制等特征的可行性研究。
  • 【问题2我的解答】
    现有业务大量依靠人工记录,效率低下,使用信息系统之后,能够依靠该系统的部署提高工作效率,可以解决效率低下的问题。这说明用户使用可行性是没有问题的。
    在技术可行性方面,首先基于B/S架构,采用Web技术进行项目开发,让员工边学边练,即使项目进展不顺利,也可以迅速切换到J2EE平台之上,因为J2EE平台上开发经验丰富。这里充分考虑了使用新技术,并可能产生的风险以及如何应对新技术的风险。同时IT部门最近通过内部关系得到了某竞争对手公司的部分核心业务组件,通过组件的复用提高开发周期,这些都说明技术上具备可行性。
    在项目开发背景中没有涉及到违反法律条款,和不正当竞争法的内容,所以认为具备法律可行性。
  • 【问题3我的解答】
    甲的投资额=700+3000.91=973
    甲的净现金流量=300
    0.83+4000.75+5000.68+0.62800=249+300+340+496=1385
    甲的净现值=1385-973=412。
    乙的投资额=600+400
    0.91=964
    乙的净现金流量=2000.83+4000.75+6000.68+8000.62=166+300+408+496=1370
    乙的净现值=1370-964=406万元
    丙的投资额=800+2000.91=982
    丙的净现金流量=400
    0.83+5000.75+5000.68+600*0.62=332+375+340+372=1419
    丙的净现值=1419-982=437万元。
    丙方案为最优,因为丙方案资金回流最快。
标准答案
  • 【问题1标准答案】
    经济可行性:经济可行性也称为投资收益分析或成本收益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益;
    技术可行性:技术可行性也称为技术风险分析,主要评估信息系统需要实现的功能和性能,以及技术能力约束;
    法律可行性:法律可行性也成为社会可行性,需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性;
    用户使用可行性:用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等。
  • 【问题1解析】
    本问题主要考查考生对系统可行性分析的理解与掌握。
    具体来说,经济可行性也称为投资收益分析或成本收益分析,主要评估项目的建设成本、运行成本和项目建成后可能的经济收益;
    技术可行性也称为技术风险分析,主要评估信息系统需要实现的功能和性能,以及技术能力约束;
    法律可行性也成为社会可行性,需要从政策、法律、道德、制度等社会因素来论证信息系统建设的现实性;
    用户使用可行性也称为执行可行性,是从信息系统用户的角度来评估系统的可行性,包括企业的行政管理和工作制度、使用人员的素质和培训要求等
  • 【问题2标准答案】
    技术可行性分析,通过题干描述可知该项目得到领导层的高度重视,对项目的工期和质量要求非常严格,IT部门对J2EE平台的应用开发较为熟悉。但是,该公司IT部门的负责人李总在明知本公司技术人员在Web技术方面不熟悉的情况下仍然建议采用该技术进行系统开发,忽视企业当前的资源和条件,得出过于乐观的结果,将会对后期的项目实施导致灾难性的后果。因此,李总的方案从技术上是不可行的。
    法律可行性分析,李总在明知采用不正当手段获得竞争对手公司的核心业务组件的前提下,仍然建议在系统中使用其他企业受到保护的技术成果,这种方案在法律上是不可行的。
    用户使用可行性分析,从管理可行性和运行可行性两方面进行分析,(1)管理可行性:根据题干描述,公司的主管领导王总对该项目将大力支持,公司的中高层管理人员也同样表示支持该项目的实施,因此该项目从管理上是可行的。(2)运行可行性:根据题干描述,公司的业务代表小张提出两个方面的问题,一个是企业业务人员没有足够的IT技能,可能对系统的数据采集与质量带来影响;二是系统上线后会改变一些业务流程,可能会为用户带来不便。针对上述问题,需要进一步进行讨论并与业务人员进行沟通,需要对业务人员和用户进行培训,并提供运维服务支持。
  • 【问题2解析】
    本问题主要考查考生对于四种可行性分析的掌握与实际应用。
    在技术可行性分析方面,通过题干描述可知该项目得到领导层的高度重视,对项目的工期和质量要求非常严格,IT部门对J2EE平台的应用开发较为熟悉。但是,该公司IT部门的负责人李总在明知本公司技术人员在Web技术方面不熟悉的情况下,仍然建议釆用该技术进行系统开发,忽视企业当前的资源和条件,得出过于乐观的结果,将会对后期的项目实施导致灾难性的后果。因此,李总的方案从技术上是不可行的。
    在法律可行性分析方面,根据题干描述,李总在明知采用不正当手段获得竞争对手公司的核心业务组件的前提下,仍然建议在系统中使用其他企业受到保护的技术成果,这种方案在法律上是不可行的。
    在用户使用可行性分析方面,又可以从管理可行性和运行可行性两方面进行分析。根据题干描述,公司的主管领导王总对该项目将大力支持,公司的中高层管理人员也同样表示支持该项目的实施,因此该项目从管理上是可行的。另一方面,公司的业务代表小张提出两个方面的问题,一个是企业业务人员没有足够的IT技能,可能对系统的数据采集与质量带来影响;二是系统上线后会改变一些业务流程,可能会为用户带来不便。针对上述问题,需要进一步进行讨论并与业务人员进行沟通,需要对业务人员和用户进行培训,并提供运维服务支持。
  • 【问题3标准答案】
    在计算三种方案的净现值时,必须首先给出折现系数,计算每种方案年初投资额和年末净现金流最的折现值,然后将每种方案的净现金流量折现值与投资额祈现值分别求和,最后用净现值流量之和减去投资额之和即为该方案的净现值,具体计算过程可以下表方式给出。
    方案甲:
    (1)NPV=3000.83+4000.75+5000.68+8000.62-(700+3000.91)=412
    (2)NPVR=412/(700+300
    0.91)=0.423
    方案乙:
    (1)NPV=2000.83+4000.75+6000.68+8000.62-(600+4000.91)=406
    (2)NPVR=406/600+400
    0.91=0.421
    方案丙:
    (1)NPV=4000.83+5000.75+5000.68+6000.62-(800+2000.91)=437
    (2)NPVR=437/(800+200
    0.91)=0.445
    因为方案丙的净现值和净现值率均最大,因此,方案丙最优。
  • 【问题3解析】
    本问题主要考査考生对于净现值分析法的实际应用能力。
    净现值是指一个项目预期实现的现金流入的现值与实施该项计划的现金支出的差额。在计算三种方案的净现值时,必须首先给出折现系数,计算每种方案年初投资额和年末净现金流量的折现值,然后将每种方案的净现金流量折现值与投资额折现值分别求和,最后用净现值流量之和减去投资额之和即为该方案的净现值。
心得体会
  • 求净现值没有问题,但这里第一次看到了净现值率;净现值率其实就是净现值然后再除以折现后的投入总成本。
  • 法律可行性是指需要从政策,法律制度等社会因素来论证项目可行性,通过内部关系得到了某竞争对手公司的部分核心业务组件,使用其他企业受到保护的技术成果,这种方案在法律上是不可行的。
  • 技术可行性也称为技术风险分析,主要评估信息系统需要实现的功能和性能,以及技术能力约束,比如领导层对项目的重视,团队熟练掌握某某技术都可以挂钩上。在案例中,明知道技术不熟悉却偏偏要使用新技术,这个技术风险存在所以技术是不可行的。
  • 用户使用可行性是指是从用户的角度看待和评判信息系统的可行性,一般包括行政管理,工作制度、人员素质和培训要求也归属于用户使用可行性。领导层对项目的支持和重视,所以在管理上是可行的。系统上线后会改变业务流程,需要对人员进行使用培训。
  • 用户使用可行性可以分为管理可行性和运行可行性两个部分。
  • 其实可行性分析非常类似于项目前期风险识别与分析的过程。而在高项里面,它对可行性分析的分类分为七个子项目。 可行性研究报告包括的七项内容有:投鸡才组经色风。

2014年系统分析师下午案例分析第三题(嵌入式系统分区

【案例三】(共25分)
请详细阅读有关嵌入式实时操作系统方面的描述,回答问题1至问题2。
【说明】
近年来,分区化(Partitioning)技术已被广泛应用于大型嵌入式系统,此项技术重在解决嵌入式系统中多类应用软件共享计算机资源的安全性问题,同时,也可降低软件开发成本,提高软件的可重用能力。某公司承担了一项宇航计算机系统研制任务,要求将以前采用的多处理机系统精简为由单个处理器系统完成,而整体功能应在原有功能不变的基础上,可灵活扩展,并要求原应用软件可被快速移植到新系统。公司将任务交给王工程师组织并承担总体设计工作。在采用何种嵌入式实时操作系统的选型问题上,王工认为宇航系统强调安全性,原系统应用软件功能分布在各自的处理机上,在保持功能不变的情况下,应适当地维持各个软件的相对独立性,因此采用具有分区能力的操作系统(如:VxWorks653)比较合适。
在这里插入图片描述
【问题1】
图3-1给出了具有分区能力的操作系统架构,该架构支持分区和进程两类调度,并提供了分区的时间、空间隔离保障,保证了应用软件可安全共享计算机资源。请用300字以内文字说明该类操作系统中分区化技术的主要特点。

【问题2】
完成该项目总体设计后,王工将软件设计工作交给李工,要求李工在原有软件基础上,完成新环境下的软件设计。经分析,李工统计出了原系统的任务基本情况(见表3-1)。原系统包含三个子系统,为了保证各子系统软件间的相对独立性,将三个子系统移植到新系统的三个分区工作,假设将“显示子系统”、“雷达子系统”和“任务子系统”分别用P1、P2和P3表示,系统的最小时间计时(tick)设为1ms,调度表的主时间框架将是40ms。
根据表3-1给出的原系统各任务周期和最坏执行时间数据,新系统中的所有任务可被调度,请对此进行分析说明,完善表3-2所示的分区调度表的设计,在空(1)~(10)填写正确内容并将解答填入答题纸的对应栏内。
(注:WCET,Worst-CaseExecutionTime)。
在这里插入图片描述

我的解答
  • 【问题1我的解答】
    不太会
  • 【问题2我的解答】
    1)1
    2)1
    3)2
    4)P2
    5)P3
    6)4
    7)16
    8)3
    9)p1
    10)4
标准答案
  • 【问题1标准答案】
  1. 应用软件代码和操作系统代码工作在处理器的不同特权级别上,应用软件的失效不会影响操作系统的运行:
  2. 每一个分区有自己私有存储资源,分区所占空间是相互隔离的,分区内某进程的失效仅仅只影响到进程所在的分区;
  3. 操作系统可为分区内应用软件提供多种类型的API服务,使原有应用软件可方便地移植到分区内运行;
  4. 分区的调度是按预先配置好的时间表进行调度,任何一个分区只能在系统分配给它的时间窗口内运行,任何分区不能、也无法占用其他分区的窗口时间;
  5. 具有分区能力的操作系统提供健康监控管理能力,它通过操作系统内的故障监测机制,将发现的应用、分区和系统的错误通过注入机制报告健康监控系统,由它进行统一的故障处理;
  6. 分区化操作系统允许不同安全等级(A-E)的应用软件共享计算机资源,可实现软件验证的最小化、局部化。
  • 【问题1解析】
  • 目前,分区(Partition)技术已被广泛应用于电子系统的数据融合领域,分区技术重在解决处理器速度极大提升后,嵌入式系统无法充分发挥处理器性能的问题。分区化的核心思想就是采用MMU (存储器管理部件)机制将单个处理器划分成多个虚拟机,使每一虚拟机内的应用程序视为在独享处理器资源。本题重点是考查考生对当前基于虚拟机的操作系统的知识掌握程度,同时,考查考生对目前国内广泛使用满足ARINC653标准的操作系统的了解程度。
  • 图3-1给出的具有分区技术的操作系统架构已明确说明了此类操作系统的能力,通过本图考生就可以正确地回答该问题。首先,从图3-1可以看出此类操作系统不同于平板类操作系统,它支持处理器的两种工作状态(核心态和用户态)实现了应用软件与操作系统软件间的空间和访问权限隔离,保护了系统;其次,图3-1给出的分区和进程的概念,考生完全可以分析出此概念类似于一般操作系统的进程和线程的概念,这里的分区类似于进程、进程类似于线程,从而可推断出分区一定会具备通常进程的属性,进程一定会具备通常进程的属性,即分区具有自己私用空间。分区间空间是隔离的:同样,题干给出的“要求原应用软件可被快速移植到新系统”需求就可以说明最好的移植方法是操作系统提供与原始的API相兼容,因此分区内提供可提供多种API接口是此类操作系统的特性之一;考生如果了解满足ARINC653标准的操作系统,那么它应有的独特性也会知晓,如:分区调度是采用预先配置的时间表调度,实现了分区时间上的确定性和时间隔离,与其他操作系统的最大区别是将健康监控能力植入操作系统内核,实现了系统故障监视和统一的故障处理机制,从应用角度看,分区技术的时空隔离特征,保障了不同安全等级(宇航分为5级A-E)的应用软件可安全共享计算机资源也是主要特征之一。
  • 【问题2标准答案】
    所有任务可被调度的分析如下:
    保证所用任务的可调度性必须满足在主时间框架内,系统中所用任务的最坏执行时间(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
  • 【问题2解析】
    本问题主要考査考生对嵌入式实时系统方面的知识掌握程度。这里涉及两方面知识,其一是实时系统的周期任务的可调度分析方法:其二是针对【问题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)是指本时间段操作系统不做任何分区凋度,系统运行一种称之为空分区的任务。
心得体会
  • 分区技术主要解决了嵌入式系统中CPU不断的升级,但是CPU却不能得到充分的利用的问题。和其他操作系统一样,它也分为用户态和核心态,这样可以更好的实现访问权限的隔离,提升操作系统的安全性。这里的分区类似于进程、在分区中,会对分区内的Task进行有效的控制,而传统的进程又类似于线程。分区是根据时间表对其进行有计划的调度,单位时间内只有一个分区会被调用,这和操作系统中的抢占CPU有类似的地方。
  • 在核心态中,除了时间管理,存储管理,分区管理,分区通信管理以外,还加入了健康控制这个核心态模块。这个在操作系统这门课的学习中是没有遇到过的,它的加入实现了系统故障监视和统一的故障处理机制。提高了嵌入式系统的安全能力。
  • 各个分区之间都有单独使用的存储系统,相互不干扰,分区之间的通信也是由专门的核心态模块来完成的,提高了分区之间的独立性。
    分区内提供可提供多种API接口是此类操作系统的特性之一,所以也提高了代码的移植性。
  • 第二题首先要明确的是同一时刻只有一个分区在运行;周期代表了进程T1,T2,T3多少周期会被运行,最坏执行时间就是当某个进程被运行到的时候,执行所需要的时间。
    P3的启动时间0,5,6,10,15,20,25,30,且每次的持续时间都是1ms;
    P2的启动时间是2,7,12,22,27,32。且只有7这个时刻它的运行持续时间为3
    T1在分区P1,P2中,它们的周期是10ms,所以每间隔10ms会被执行到一次;在分区P3中周期是5ms,所以需要每隔5ms执行到一次;执行的时间都为1ms;
    再来看看T2,在分区P1中,它的周期10ms,最坏执行2ms;在分区P2中,它的周期40ms,最坏执行3ms;在分区P3中周期20ms,最坏执行1ms;
    最后是T3进程,在分区P1中,它的周期40ms,最坏执行4ms,这里说明分区P1运行时T3进程运行一次,也只可以运行一次4ms;

2014年系统分析师下午案例分析第四题(软件维护)

【案例四】(共25分)
阅读以下关于系统运行与维护的叙述,在答题纸上回答问题1至问题3。
【说明】
某企业经过多年的信息化建设,存在大量的应用软件系统,为了保证这些系统的运行与维护,专门组建应用系统维护部门。该部门的主要工作是保证系统的正常运行、处理问题以及扩展这些应该系统的功能,以满足企业业务功能的变化与扩展。
目前该部门存在人员流失、变更频繁,文档丢失或长期失于维护,维护成本愈来愈高等问题,具体表现为:
问题(1):随着时间和人员的变动,程序被多人修改,往往导致程序难以理解,注释混乱,流程复杂;
问题(2):随着不断修改程序和增加新的功能,模块之间的耦合关系日益复杂,维护成本不断增加。
这些问题导致新来的维护人员需要直接面对大量流程、结构复杂的源程序,维护困难,往往一次改动需要设计大量的软件模块。
为解决应用系统维护部门面对的问题,企业信息部门组织了专门的专家讨论会。各位专家一致认为,逆向工程与重构工程是目前预防性维护采用的主要技术,应该采用逆向工程的技术方法,重构相关应用系统文档,同时采用软件重构来降低软件代码的复杂性,最终降低维护成本。
【问题1】
软件的逆向工程是分析已有程序,寻求比源代码更高级的抽象表现形式。与之相关的概念包括软件重构、设计恢复、重构工程等。请说明设计恢复中常见的恢复信息的4种级别。
【问题2】
重构是对软件内部结构的一种调整,目的是不改变软件功能的前提下,提高其可理解性,降低其修改成本。请说明软件重构的三个类别,并简要说明常见的重构方法。针对题干中的问题(1)和问题(2),宜采用何种重构方法?
【问题3】
软件重构做出的修改可能导致程序运行变慢,但也更容易进行软件的性能优化和调整,请分析原因。

我的解答
  • 【问题1我的解答】
    不是很清楚
  • 【问题2我的解答】
    针对问题1,在重构时着重考虑的是文档的整备和代码注释的维护更新,在代码层面的修改也是让代码便于阅读,让信息系统的修改不依赖于开发者或者个别人。
    针对问题2,在重构时应该重点考虑架构的改善和模块之间的紧耦合问题的改进,比如把紧耦合的模块改成松散耦合的一个个服务,并统一调用,这样改某一处的代码对其他模块对全局的影响就非常的小,维护成本将可以有效的降低。
  • 【问题3我的解答】
    软件重构时有时候为了便于理解,便于阅读,会将一些执行高效率但不太容易理解的语句重构为便于阅读和理解的语句,这样或许程序运行变慢了,但重构之后一般代码语句简短,也更加方便进行维护。
标准答案
  • 【问题1标准答案】
    恢复信息的级别:
    (1)实现级:包括程序的抽象语法树、符号表等信息;
    (2)结构级:包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;
    (3)功能级:包括反映程序功能与程序之间关系的信息;
    (4)领域级:包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。
  • 【问题2标准答案】
    软件重构一般分为三类:
    (1)代码重构;(2)模块重构;(3)架构重构。
    常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数调用和处理概括关系。
    针对问题(1),采用代码重构,重新梳理代码流程,使代码容易理解和维护;
    针对问题(2),采用模块重构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度
  • 【问题3标准答案】
    一个模块化程度好的程序可从两方面帮助性能优化。
    (1)分解良好的程序,使得性能分析的粒度更细,性能调整更加容易;
    (2)分解良好的程序,由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。
  • 【问题1解析】
    软件的逆向工程是分析程序,力图在比源代码更高抽象层次上建立程序表示的过程。逆向工程是一个恢复设计的过程,从现有的程序中抽取数据、体系结构和过程的设计信息。恢复信息的级别分为:实现级、结构级、功能级和领域级。
    其中,实现级主要包括程序的抽象语法树、符号表等信息;结构级主要包括反映程序分量之间相互依赖的关系的信息,调用图、结构图等;功能级主要包括反映程序功能与程序之间关系的信息;领域级主要包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息。
  • 【问题2解析】
    软件重构的目的主要有四个方面:一是改进软件设计,帮助重新设计代码、重新体现设计结构和进一步改进设计;二是提高代码质量,更易被理解,这样很容易维护和进一步开发;三是可以帮助尽早发现错误,因为重构是一个代码的反馈过程,是在另一个时段重新审视自己或别人的代码,更容易发现问题和加深对代码的理解;四是提高开发速度,因为对设计和代码改进,都有利于提高开发速度。
    软件重构-般分为三类:代码重构、模块重构和架构重构。基于代码重构的重构通常是按照闭队的规范整理代码,使其结构吏规范;基于模块重构是将代码封装,以便多次复用;基于架构重构的重构通常是实现软件的解耦,提髙软件的可扩展性和灵活性。
    常见的重构方法有:重新组织函数、重新组织对象、重新组织数据、简化条件表达式、简化函数调用和处理概括关系。
    根据以上所述,针对问题(1)显然应采用代码重构,重新梳理代码流程,使代码容易理解和维护;针对问题(2)显然应采用模块重构和架构重构,梳理模块之间的关系,使其更容易扩展和维护,降低模块之间的耦合度。
  • 【问题3解析】
    模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块具有以下几种基本属性:接口、功能、逻辑、状态,功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。在软件的体系结构中,模块是可组合、分解和更换的单元。
    事实上,将软件分解成若干模块,则工作量会减少。但分解的模块越多,工作不一定越少,因为分解到一定程度,模块之间的接口工作量就上升,从而使总代价上升。一个软件系统划分模块数的最佳值是M。从心理学角度研究表明,一个模块的大小最好在30〜50个语句之间,即能全部写在一页打印纸上为限。一个模块化程度好的程序可从两方面帮助性能优化:一是使得性能分析的粒度更细,性能调整更加容易;二是由于代码更加淸晰,更容易与性能优化工具结合,分析系统性能瓶颈的具体位置。
心得体会

重构逆向工程是我为数不多可以算是有项目经验的知识点,但一拿到题目,还是一脸懵逼。
首先问的是恢复信息的四种级别,这四个级别分别是实现级,结构级,功能级和领域级。
软件的重构一般也分为三种类型:代码重构,模块重构和架构重构。不同的问题应用不同的重构级别去应对。
软件重构的方法有:函数内部重构,重组对象,重组结构,简化表达式,简化函数调用关系。
重构的目的:改善设计,提高质量属性(可维护性,可理解性),尽量发现错误,提高开发速度。
以上概念看过一遍后,我大概都可以记住了,可以用在重构的论文中。
回到第一问的恢复级别上来,
功能级别告诉我们哪些代码对应哪些功能,而领域级则表示哪些模块与应用领域功能对应;
结构级表示函数之间相互调用依赖的关系,而最低的实现级则与语法树有关。
至于第二问,自认为回答的还算不错,都都在点子上。
第三空考查了模块化和重构之间的关系。模块化分的细,那么模块划分了越细,需要的调用层次关系也就越多,这样就可以解释为啥性能会变慢,这就好比在架构中,层次越多的架构,速度反而不会很快这是一个道理。
模块化的程度好,那么使用故障树分析的方法来分析各个模块的可靠性就变得更加方便,更容易找出系统的瓶颈,更加容易去改善系统的瓶颈;同时模块化分的好,也更加有利于与性能工具的配合使用来衡量系统的性能。

2014年系统分析师下午案例分析第四题(Web应用)

【案例五】(共25分)
阅读以下关于Web应用的叙述,在答题纸上回答问题1至问题2。
【说明】
某软件公司拟为其客户开发一套基于Web的电子商务系统,该系统向终端用户提供在线购物功能。近期,项目组召开会议对以下两项需求进行了重点讨论:
(1)系统终端用户的界面呈现应提供丰富的多媒体信息,包括文本、图片、动画、视频及语音消息。
(2)系统上线后需应对大量客户端并发请求处理,商家促销活动时,并发用户数可能会达到20万的规模;系统预期用户呈明显地地域集中分布特征。
【问题1】
项目组在讨论实现需求(1)的技术方案时,首先确定了以下技术原则:
(a)应在开发阶段容易获得良好的协作开发环境支持;
(b)应考虑客户端浏览器的兼容性;
(c)应尽可能使系统具有良好的可维护性;
(d)应考虑公司开发人员的技术学习成本。
项目组就Flex与HTML5两种技术方案进行了论证,综合考虑上述技术原则要求,最终采用了基于Flex的技术方案,请结合需求(1)及上述技术原则,对比Flex与HTML5两种技术方案的优劣,说明采用基于Flex的技术方案的原因。
【问题2】
项目组在讨论实现需求(2)的技术方案时,首先确定了以下技术原则:
(a)系统中商品信息及用户信息按类别划分不同数据库或表存放;
(b)系统应提供热备份机制以防止服务器意外失效;
(c)为满足大规模并发处理要求,系统软硬件投入可根据需要追加。
项目组经过集思广益,抽取了HTML静态化、缓存、库表散列、集群与镜像、负载均衡等候选技术手段。请结合需求(2)及相应技术原则,分析上述技术手段在本项目中的可行性,将结果填入表格5-1中。
在这里插入图片描述

我的解答
  • 【问题1我的解答】
    Flex可以很好的支持多媒体信息的呈现,HTML5则在这方面比较欠缺;
    Flex可以很好的用在BS架构中,BS架构倡导轻客户端,往往客户端只需要一个浏览器就好了,所以兼容性比HTML5要好。
    在学习成本方面,两种技术都需要消耗一定的学习成本;
    在协作开发支持方面,两者也是不分伯仲。

  • 【问题2我的解答】
    HTML静态化:可行,客户端浏览器的兼容性的要求,那么使用静态化的HTML可以有效支持不同浏览器之间的兼容性。
    缓存:可行,因为系统终端用户的界面呈现应提供丰富的多媒体信息,保存多媒体信息在浏览器端将大大提高并发控制的性能。
    库表序列:可行,因为商品信息及用户信息按类别划分不同数据库或表存放,有了序列之后可以大大增加查找的速度。
    集群与映像:可行,因为系统应提供热备份机制以防止服务器意外失效,使用集群技术后服务端程序可以跑在多台PC上,自然而然达到了备份的效果,同时映像技术也是可以很好的应用到系统热备份中。系统有根据需要追加的要求,而有了集群还可以支持向外升级。
    负载均衡:可行,因为系统需要支持大量的并发,而负载均衡可以实现有效的分流,支持并发。

标准答案
  • 【问题1标准答案】
    从需求1看,该系统域于典型的富互联网应用,而基于Flex与HTML5的技术方案均可实现系统客户端多媒体呈现的基本要求,但HTML5往往需要同时配合CCS与JavaScript来实现完整的页面展现,对照项目组确定的技术原则,这两种方案存在以下主要区别:
    (1)协作开发环境支持:Flex具备更好的协作开发环境,包括IDE、编泽器、调试工具及分析工具等,而目前HTML5开发过程中没有很好的协作环境,调试过程比Flex 开发相对困难
    (2)浏览器兼容性:Flex通过插件来实现浏览器的兼容性,一次开发可以适应目前主流的浏览器,而HTML5目前的浏览器兼容性较差,调试时需要针对不同浏览器调整可靠性、屏幕大小等具体参数,来确定界面呈现的具体效果,因此其兼容性目前相对Flex而言要更差一些。
    (3)可维护性:基于Flex的开发方法目前已比较成熟,如Flex Spark开发框架对MVC模式有良好的支持,可以实现表现层与逻辑层的分离,而在HTML5中,由于目前JavaScript对面向对象支持并不完善等原因,使得基于HTML5的开发没有形成规范的开发流程,因此系统的维护成本要比Flex高
    (4)技术学习成本:由于HTML5往往需要同时配合CCS与JavaScript来实现完整的页面展现,因此对不熟悉的技术人员来讲,需要学习的技术较多,与Flex相比,学习成本,尤其是初学的成本要更大一些。

  • 【问题2标准答案】
    在这里插入图片描述
    本问题考查大规模用户并发请求处理技术。
    在题干中给出的5种相应技术手段中,HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息、商品信息、订单信息及评论信息动态显示,且内容更新频繁,因此不适合采用。
    对于缓存技术手段,根据在线购物业务的特征,系统应用需要频繁访问数据库,因此可以对经常访问的数据建立缓存,以提高并发访问效率。
    根据技术原则(a),系统中商品信息及用户信息按类别划分不同数据库或表存放,因此可以采用库表散列的手段提高数据库并发访问效率。
    根据需求(2),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,
    技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,
    根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。
    负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。综上不难看出,除HTML静态化手段外,其他四种技术手段均可应用于本系统,以提高大规模用户并发访问的处理效率。

心得体会

对于HTML静态化技术,我的理解有偏差,经常访问的页面如果可以静态化不需要动态生成,那么必然能够提高系统的访问效率,相对来说动态网页多的信息系统HTML静态化技术就不需要了;
对于缓存技术我也理解错了,不是浏览器端的缓存而是访问数据库中的缓存,把常用到的数据检索等放入缓存,肯定比访问外存来的快参照局部性原理,使用缓存是可以有的;
对于库表散列的理解没有很大偏差;
集群与镜像技术,应用在大量并发,用户集中分布的场合是再好不过了。使用镜像机可以提高系统的可靠性并实现热备份;
负载均衡的理解也没有什么偏差;
而对于Flex和HTML5这两个技术,我倒是真的接触不多,首先Flex和Html5都可以实现客户端的多媒体呈现,但是Html5还需要JavaScript和CSS的支持,而Flex是富互联网的应用,通过插件的方式兼容客户端浏览器,目前主流的浏览器都支持Flex技术,而Html5对于浏览器的支持不如Flex技术;
在Flex中,目前已经完全融入了面向对象的技术,实现了逻辑与表示层之间的分离,还支持MVC等主流的架构模式,而HTML5需要用到JavaScript,JavaScript对于面向对象的支持力度不够;
Flex目前已经具备了良好的开发环境开发IDE,开发调试工具,而Html5没有很好的协作环境。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值