【系统分析师之路】2013年上系统分析师下午论文真题
2013年上系统分析师下午论文真题
试题一:论面向对象建模方法的应用
论面向对象建模方法的应用
随着软件技术的发展,面向对象方法日益成为信息系统软件开发的主流技术,而面向对象建模技术是其中的关键。模型是软件开发的根本,大型、复杂的软件系统的开发是一项工程,而建模是系统化认识所开发软件的一个初步途径。
面向对象建模技术流派众多,包括OMT方法、OOSE方法、OOA/OOD方法等。统一建模语言的出现极大地促进了面向对象建模方法的普及与应用,已经成为当前面向对象建模方法的标准。
请围绕“论面向对象建模方法的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的信息系统项目以及你在其中所承担的主要工作。
2.论述常见的面向对象建模方法的主要内容,包括每种模型的核心思想。
3.具体阐述你参与管理和开发的项目中使用的是哪种面向对象建模方法以及选择该方法的原因,给出具体的实施过程和实施效果。
【解答】
常见的面向对象建模方法的基本情况如下:
Coad/Yourdon方法
它特别强调OOA和OOD采用完全一致的概念和表示法,使分析和设计之间不需要表示法的转换。该方法的特点是表示简练易学,对于对象,结构,服务的认定较系统,完整可操作性强。
在Coad/Yourdon方法中,OOA的任务主要是建立问题域的分析模型。分析过程和构造OOA概念模型的顺序由五个层次组成,分别是
1)类与对象层
2)属性层
3)操作层
4)结构层
5)主题层
它们分别表示分析的不同侧面。OOA需要经过五个步骤来完成整个分析工作,
1)标识对象类
2)标识结构与关联(包括继承,聚合,组合,实例化)
3)划分主题
4)定义属性
5)定义操作
OOD中将继续贯穿OOA中的五个层次和五个活动,它由四个部分组成,分别是
1)人机交互组件
2)问题域组件
3)任务管理组件
4)数据管理组件
其主要的活动就是这四个组件的设计工作。
Booch方法
它最先描述OO方法的基础问题,指出OO方法是一种根本不同于传统的功能分解的设计方法。OO的系统分解更接近人对客观事物的理解,而功能分解只通过问题空间的转换来获得。
Booch认为系统开发是一个螺旋上升的过程,每个周期包括四个步骤,分别是
1)标识类和对象
2)确定类和对象的含义
3)标识关系
4)说明每个类的接口和实现
Booch方法的开发模型包括静态模型和动态模型,
1)静态模型分为逻辑模型(类图,对象图)和物理模型(模块图,进程图),用来描述系统的构成和结构;
2)动态模型包含了状态图和顺序图,用来描述对象的状态变化和交互过程。
OMT方法
它使用了建模的思想,讨论如何建立一个实际的应用模型。包括了对象模型,动态模型和功能模型。
1)对象模型
描述系统中对象的静态结构,对象之间的关系,属性和操作,主要用对象图来实现;
2)动态模型
描述与时间和操作顺序有关的系统特征,例如:激发事件,事件系列,确定事件先后关系的状态等,主要用状态图来实现动态模型;
3)功能模型
描述一个计算如何从输入值得到输出值,它不考虑计算的次序,主要用DFD来实现功能模型。
4)区别联系
简单地说,功能模型指出发生了什么,动态模型确定什么时候发生,而对象模型确定发生的客体。
OMT方法通常包括四个活动,分别是系统分析、系统设计、对象设计和实现。其中,分析就是实现OOA的任务,系统设计确定整个系统的架构,对象设计建立基于分析模型的设计模型并考虑实现细节,实现是将所设计的对象类及其关系转换为程序设计语言、数据库或硬件的实现。
OOSE方法
OOSE在OMT的基础上,对功能模型进行了补充,提出了用例(UseCase)的概念,最终取代了DFD来进行需求分析和建立功能模型。OOSE方法采用五类模型来建立目标系统,分别是需求模型,分析模型,设计模型,实现模型和测试模型。
OOSE的开发活动主要分为三类,分别是分析、构造和测试。其中分析过程分为需求分析和健壮性分析两个子过程,分析活动分别产生需求模型和分析模型;构造活动包括设计和实现两个子过程,分别产生设计模型和实现模型;测试过程包括单元测试、集成测试和系统测试三个过程,共同产生测试模型。
用例是OOSE中的重要概念,在开发各种模型时,它是贯穿OOSE活动的核心,描述了系统的需求及功能。
用例实际上是描述系统参与者(既可以是用户,也可以是与系统交互的其他系统)对于系统的使用情况,是从参与者的角度来确定系统的功能。因此,首先必须分析、确定系统的参与者,然后进一步考虑参与者的主要任务和使用方式,再识别出所使用的事件,即用例
UML方法
UML是一种定义良好,易于表达,功能强大普遍使用的建模语言。它融入了软件工程领域的新思想、新方法和新技术,它的作用域不限于支持OOA和OOD,还支持从需求分析开始的软件开发的全过程。
从总体上看,UML有三种基本的构造块,规则和公共机制三个部分。
(1)构造块
UML有三种基本的构造块:事物(thing)、关系(relationship)和图(diagram)。
- 事物是UML的重要组成部分;
- 关系把事物紧密的联系在一起;
- 图是多个相互关联的事物的集合。
(2)公共机制
是指达到特定目标的公共UML方法,主要包括规格说明(详细说明),修饰,公共分类(通用划分)和扩展机制四种。
规格说明
是事物语义的细节描述,它是模型真正的核心;
修饰
UML为每个事物设置了一个简单的记号,还可以通过修饰来表达更多的信息;
公共分类
UML包括两组公共分类,分别是类与对象(类表示概念,而对象表示具体的实体)、接口与实现(接口用来定义契约,而实现就是具体的内容)
扩展机制
包括了约束,构造型,标记值三类;
约束扩展了UML构造块的语义允许增加新的规则或修改现有的规则。
构造型扩展了UML的词汇,用于定义新的构造块;
标记值扩展了UML构造块的特征,允许创建新的特殊信息来扩展事物的规格说明。
(3)规则
规则是构造块如何放在一起的规定,包括为构造块命名;给一个名字以特定含义的语境,即范围;怎样使用或看见名字,即可见性;事物如何正确、一致地相互联系,即完整性;运行或模拟动态模型的含义是什么,即执行。
试题二:论软件企业的软件过程改进
【试题二】论软件企业的软件过程改进
软件过程是人们用来开发和维护软件以及相关产品的一组活动、方法和实践,是软件企业中最复杂、最重要的业务流程。软件过程改进(Software Process Improvement,SPI)帮助软件企业规划、实施软件过程的改进,为企业的业务服务,必须受企业发展战略的指导。软件过程改进通过在软件开发实践中发现软件过程中的问题,并在实践中找到解决问题的方法,不断推动软件过程的持续改进,提高产品或服务的质量,提高软件开发的效率。软件企业想要高效率、高质量和低成本地开发软件,必须以软件过程改进为中心,全面开展软件工程和质量管理。
请围绕“论软件企业的软件过程改进”论题,依次从以下三个方面进行论述。
1.概要叙述你参与的软件过程改进项目以及你所担任的主要工作。
2.详细论述软件企业实施软件过程改进的主要步骤及每个步骤的工作内容。
3.结合你参与的软件过程改进项目,具体阐述软件企业主要是对软件过程的哪些环节实施软件过程改进,并详细说明实施效果
【解答】
软件过程改进的主要步骤及每个步骤的工作内容:
找出目标差距
需要对当前的状态进行分析,并明确要达到状态(目标状态),然后分析其中的差距;如果一个机构决定采用CMMI来作参考蓝本,就可以基于它的关键过程域(KPA),制定出符合自己机构及产品特点的目标状态。
选定改进范围
找出所有差距之后,需要做的就是确定改进的范围,对范围的定义不够明确,做不到可量化、可验证程度。很多时候都是一些定性的要求、而不是定量的。
例如界面友好,可操作性强,提高用户满意度等,类似这些模糊的需求,就是导致后续扯皮的根源。项目范围的明确定义,有经验的项目经理或者系统分析员,将起到至关重要的作用。
可以从如下几个方面来对项目的范围进行改进:
① 确定计划的责任权;
② 陈述主要的目标和问题;
③ 将问题分组关联到相应的目标;
④ 确认目标和问题足够明确和引人注目;
⑤ 设定目标的优先权;
⑥ 导出针对目标的度量标准。
制定改进计划
为一个过程改进活动选定范围和制定计划是一件很难的工作,会遇到很多障碍。如果想要全盘采用过程改进框架,任务会变得令人畏缩;可以从比较关键的如下几个方面进行改进计划的制定。
① 成立过程改进小组,派专人去负责整个过程的改进;
② 根据背景及业务分析,项目分析,内部因素,产品特点进行现有软件过程的评估;
③ 根据评估给出详细的软件过程改进建议;
④根据软件过程改进建议转化为行动。整个行动由过程改进小组SEPG负责监督和监控;
⑤实施软件过程改进,并同时密切监控改进过程。有问题立刻解决;
⑥ 对实施的过程改进进行评估;
⑦ 对成功实施的软件过程制度化。
制定计划至关重要,计划制定是否合理,工作量难度是否适中,都直接会影响我们过程改进的成败。
实施改进计划
计划制订好了以后,就需要将其付诸实践了。要实施计划,在感觉上会有些不堪重负。包括建立和部署解决方案,坚定想法并且克服阻力。实施改进的过程中可以考虑从如下几个方面进行:
① 优先处理期望的和必需的工作;
② 持续强调目标和问题;
③ 协调管理人员和实践者的行为
在执行过程中一旦发现需要对执行过程进行调整,以期达到最佳的效果,实际情况也允许在中途进行调整的话,可以进行经过计划的、严加控制的调整。所有的改变必须预先取得所有有关人员的同意。
检查改进进展
在实施了改进计划之后,需要做的就是检查改进计划的进展,跟踪进展使你能够了解到改进活动的进行状况,提供对改进活动的可见度从而及早检测出问题,并且给出数据使得未来计划更有效。矫正行动包括一系列中途的变更,其根据来自于“目标规划和实施”阶段的结果教训。
纠正活动包括:修订行动计划从而达到未实现的目标,修订曾在规划阶段使用的规划方法,该换在实施阶段培养和部署新技能的办法,根据新的优先级重新排列改进活动的内容,或修订用来监测进展状况的度量标准。
从以下几个方面可以对进展进行检查:
① 是否针对目标取得进展;
② 是否针对改进计划取得进展;
③ 是否针对改进框架取得进展;
④ 迄今得到那些经验教训。
检查进展是一项很重要的活动,在过程改进活动执行进程中为机构提供反馈。基于业务目标制定的度量标准是有助于获得考察进展和指导改进活动的基本信息。
总结本轮改进经验
当一轮改进结束之后,再进行下一轮的改进,是一个持续改进的过程。
试题三:论企业业务流程优化
试题三 论企业业务流程优化
业务流程优化是通过不断发展、完善、优化业务流程,保持企业竞争优势的重要方法。在流程的设计和实施过程中,要对流程进行不断改进,以期取得最佳效果。业务流程优化不仅仅指做正确的事,还包括如何正确的做这些事。为了解决企业面对新的环境在传统的以职能为中心的管理模式下产生的问题,必须对业务流程进行调整,从本质上反思业务流程,优化或重新设计业务流程,以便在衡量绩效的关键指标(如质量、成本、速度、服务)上取得突破性的改善。
请围绕“论企业业务流程优化”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的业务流程优化项目以及在其中所担任的主要工作。
2.详细论述业务流程优化的过程及业务流程方法。
3.结合你具体参与管理和开发的实际项目,举例说明所选取的需要优化的业务流程以及优化的具体实施过程,并详细分析流程优化的效果
【解答】
业务流程的优化的过程包括:流程问题汇总细化,设计优化方案,优化方案细化及调整等步骤。
流程优化的第一步:流程问题汇总细化。
识别关键流程
根据相关原则方法确定关键流程,即需要进行优化的流程。确定关键流程时,可以考虑具有以下特点的流程:
效率低下,影响其他流程的正常运行;
对企业至关重要的流程;
改进容易,效益大的流程;
耗时的流程;
被多个流程引用,共享的流程;
出现重大失误和事故的流程;
冗余和重复的流程;
返工和重复的流程;
过多审批和监控的流程;
重要性高绩效低的流程;
绘制高阶流程
根据已有的低阶流程绘制,对于绘制中发现的不完整或缺失的流程进行补充,使流程完整。
问题汇总
收集资料,了解流程现状,分析现有流程,挖掘流程中存在的问题。可以采用流程访谈,问卷调查,流程调研,FMEA实效模式分析(Potential Failure Mode & Effects Analysis)等方法。
量化描述
它包括了周期时间,流程的绩效指标等,需要严格根据目前的情况详细列出,以发现真实的关键点。
流程优化第二步:设计优化方案。
确定优化目标
确定流程的主要优化方向对流程的愿景和目标达成一致。
优化目标主要从以下四方面考虑:
(1)质量:用适当的业务控制满足并超越客户现在和将来的服务期望(如增加一次性成功率,与客户合作或参与产品设计)。
(2)成本:降低资源消耗,争取竞争机遇。良好的流程设计可以使流程成本大幅度下降,其幅度会远远超出传统削减成本的做法。
(3)时间:缩短业务处理时间,增加业务机会,降低成本,提高服务质量。
(4)风险:通过设立适当的关键控制点来降低营运风险。
优化方案设计
目标业务流程设计的基本方法:ESIA(Elimination清除,简化Simply,整合Integrate,自动化Automate)
(1) Elimination (清除)
删除无附加值的步骤。无效活动首先要予以清除。
等待时间。由于上一个环节总是不到位,出现虚耗,这就是一种浪费,必须清除。故障/缺陷和失误。由于失误,在工作中产生了残次品,而每生产一个残次品就是对成本的调高,就是对资源的浪费,必须清除。
重复性劳动。单位中有时会存在因人设事或重复性劳动,这些都是要坚决清除的。
(2) Simply (简化)
简化所有过于复杂的环节,包括过于复杂的表格、过于复杂的技术系统、过于专业分工的程序、复杂的沟通形式。
(3) Integrate (整合)
集成功能,理顺流程过程。包括职责、部门、客户和供应商各方面。
(4) Automate (自动化)
运用先进的信息技术加速流程运转,提高流程运行质量。
流程优化的常用方法:时间标记法、鱼骨图法、消除流程中的非增值性因素、任务整合、简化活动、流程任务自动化、增加环节、重排环节等。
To-be 流程
获得改进后的流程,绘制新流程、流程描述。
可行性分析、收益性分析
对新流程进行可行性分析,以预测实施的难度,包括实施风险分析,对新流程的收益性进行分析,获得收益性指标。
流程优化第三步:优化方案细化及调整
流程的改善往往涉及很多部门和人员的配合,所以改善的内容应多探讨,考虑各方面的意见。
制订周密的行动计划,对实施的时机,实施前后的交接,实施的注意事项做出明确的说明,尽量避免管理工作的混乱。
保障体系调整
设计实施方案需要考虑调整保障体系以支持优化,包括流程与制度、组织与人员、信息技术、材料与设备、方法等方面的配套体系。
试运行
通过试运行,发现存在的问题,对发现的问题收集整理。
试题四:论信息系统的可靠性分析与设计
试题四:论信息系统的可靠性分析与设计
随着企业信息化程度不断提高,企业的正常动作高度依赖于信息系统为其持续不断地提供有效服务,这对信息系统的可靠性提出了更高的要求。为了提高系统的可靠性,需要对系统进行可靠性分析与设计,对信息系统生命周期故障的发生、发展规律进行研究实现预防故障、消灭故障的目标。信息系统的可靠性分析与设计的重要内容是根据业务可靠性需求,建立可靠性模型,反复进行可靠性指标的预计与分配,选择合适方案,逐步将可靠性指标分配到系统各个层次或部件中。
请围绕“信息系统的可靠性分析与设计”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的信息系统以及你在其中所担任的主要工作。
2.容错技术是提高系统可靠性的常用技术,请列举两种常见的系统容错技术,并对每种技术进行解释。
3.结合你具体参与管理和开发的信息系统,说明在系统分析与设计过程中针对何种具体的可靠性要求,使用了哪些
【解答】
容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍然能够保持正常工作而不影响正确结果的一种措施,容错技术主要采用冗余方法来消除系统的故障。常见的容错技术包括四种:冗余方法,软件容错技术,双机容错技术,集群技术。
冗余方法
冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息,时间,硬件和软件。冗余是容错技术的基础,通过冗余资源的加入,可以使系统的可靠性得到大大的提高。主要的冗余技术有结构冗余(硬件冗余和软件冗余),信息冗余,时间冗余和冗余附加4种。
1)结构冗余
它是最常使用的冗余技术。按照其工作方式可以分为静态冗余,动态冗余和混合冗余三种。
静态冗余又叫做屏蔽冗余或者被动冗余,通过表决和比较来屏蔽系统中出现的错误。
动态冗余又称为主动冗余,通过故障检测,故障定位及故障恢复等手段来达到容错的目的。
混合冗余将静态冗余和动态冗余结合起来,以提高系统的可靠性。
2)信息冗余
在实现正常功能所需要的信息外,再添加一些信息,以保证运行结果正确性的方法,通常采用编码和译码技术来提高信息冗余的效率。
3)时间冗余
以时间(即降低系统运行速度)为代价以减少硬件冗余和信息冗余的开销来达到提供系统可靠性的目的。实现时间冗余的方法有很多,其主要思想是对相同的计算任务重复执行多次,然后通过比较计算结果来确定是否存在故障。
4)冗余附加
是指为实现上述冗余技术所需的资源和技术,包括程序,指令和数据,以及存放调用他们的空间等。
软件容错技术
软件容错技术的基本思想是从硬件容错中引申而来,利用软件设计的冗余和多样化来达到屏蔽信息错误的影响,提高系统可用性的目的。
软件容错的主要方法是提供足够的冗余信息和算法程序,使系统在实际运行时能够及时发现程序设计的错误,采取补救措施,
以提高系统的可靠性,保证整个系统的正常运行。
常见的软件容错技术有:N版本程序设计,恢复块方法,防御式程序设计等。
1)N版本程序设计
它是一种静态的故障屏蔽技术。主要思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人或小组独立设计,使用不同的方法,不同的设计语言,不同的开发环境来实现,目的是减少N个版本的程序在表决点上相关错误的概率。
2)恢复块方法
恢复块方法是一种动态的故障屏蔽技术,提供具有相同功能的主块和几个后备块,一个块就是一个执行完成的程序段,主块首先投入运行,结束后进行验证测试,如果没有通过验证测试,系统经现场恢复后由后备块1运行,后备块1运行结束后也进行验证测试,如果没有通过验证测试,则由后备块2运行,重复这一过程, 直到耗尽所有的后备块,或者某个程序故障行为超出预料,从而导致不可恢复的结果
3)防卫式程序设计
不采用任何传统的容错技术,基本思想是通过在程序中包含错误检查代码和错误恢复代码,使得一旦发生错误,程序就能撤销错误状态,恢复到一个已知的正确状态中。其实现策略包括错误检测,破坏估计和错误恢复三个方面。
双机容错技术
它是一种软硬件集合的容错应用方案,通常由两台服务器和一个外接共享磁盘阵列及相应的双机软件组成,其中共享磁盘阵列是一个可选的部件,可以在两台服务器中分别采取RAID卡来取代。
在双机容错系统中,两台服务器一般区分主系统和从系统;两台服务器互为主从关系。每台服务器都有自己的系统盘,安装操作系统和应用程序。每台服务器至少安装两块网卡,一块连接到网络上,对外提供服务,另一块与另一台服务器相连,用以侦测对方的工作状况,并通过“心跳”方法保证主系统与备用系统的联系。
同时,每台服务器都连接在共享磁盘阵列上,用户数据存放在共享磁盘阵列中,当一台服务器出现故障时,另一台服务器主动替代工作,保证网络服务不间断。双机容错系统有双机热备、双机互备和双机双工三种工作模式。
集群技术
集群技术就是将多台计算机组织起来进行协同工作,是提高系统可用性和可靠性的一种技术。
在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔离出去,通过各计算机之间的负载转嫁机制完成新的负载分担,同时向系统管理人员发出警报。集群系统通过功能整合和故障过渡,实现了系统的高可用性和可靠性。按照解决问题的不同,一般将集群系统分为高性能计算集群,负载均衡集群和高可用集群。