免费智能真题库 > 历年试卷 > 信息系统管理工程师 > 2013年上半年 信息系统管理工程师 上午试卷 综合知识
  第20题      
  知识点:   系统分析的任务   开发过程   面向对象分析   面向对象软件开发
  关键词:   分析阶段   面向对象分析   软件开发过程   对象   开发   开发过程   面向对象   软件开发        章/节:   系统分析设计基础知识       

 
在面向对象软件开发过程中,(20)不属于面向对象分析阶段的活动。
 
 
  A.  评估分析模型
 
  B.  确定接口规格
 
  C.  构建分析模型
 
  D.  识别分析类
 
 
 

 
  第59题    2014年上半年  
   28%
在决定管理信息系统应用项目之前,首先要做好系统开发的( )。
  第45题    2020年下半年  
   53%
以下关于系统分析叙述中,不正确的是(45)。
  第46题    2017年上半年  
   31%
系统分析过程的先后顺序应该为( )。
①现行系统的详细调查
②提出新系统的逻辑模型
③需求分析
④编写系统..
   知识点讲解    
   · 系统分析的任务    · 开发过程    · 面向对象分析    · 面向对象软件开发
 
       系统分析的任务
        系统分析是应用系统的思想和方法,把复杂的对象分解成简单的组成部分,并找出这些部分的基本属性和彼此间的关系。
        系统分析的主要任务是理解和表达用户对系统的应用需求。通过深入调查,和用户一起充分了解现行系统是怎样工作的,理解用户对现行系统的改进要求和对新系统的要求。在此基础上,把和用户共同理解的新系统用恰当的工具表达出来。其主要任务是:
        .了解用户需求。通过对现行系统中数据和信息的流程以及系统的功能给出逻辑的描述,得出现行系统的逻辑模型。
        .确定系统逻辑模型,形成系统分析报告。在调查和分析中得出新系统的功能需求,并给出明确地描述。根据需要与实现可能性,确定新系统的功能,用一系列图表和文字给出新系统功能的逻辑描述,进而形成系统的逻辑模型。完成系统分析报告,为系统设计提供依据。
        系统分析阶段的基本任务是:系统分析员和用户在一起,充分理解用户的要求,并把双方的理解用书面文档(系统规格说明书)表达出来。系统分析阶段的工作成果就体现在系统规格说明书中,这是信息系统建设的必备文件。它既是给用户看的,也是下一阶段的工作依据。因此,系统规格说明书既要通俗易懂,又要准确。用户通过系统规格说明书可以了解未来系统的功能,判断它是不是其所要求的系统。系统规格说明书审核通过之后,将成为系统设计的依据和将来验收系统的依据。系统规格说明书在第13.4节有详细介绍。
        在信息系统建设中,拟建的信息系统一般不会是一个全新的系统,而是基于一定的原系统(也就是企业的现行系统)开发的。所以,新系统既要源自原系统,又要高于原系统。也就是说,新系统的功能要更强、效率要更高、使用要更方便。因此,系统分析员要与用户紧密配合,用系统的思想和方法,对企业的业务活动进行全面的调查分析,详细掌握有关的工作流程,分析现行系统的业务流程,指出现行系统的局限性和不足之处,找出制约现行系统的“瓶颈”,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。所以系统分析阶段又被称为逻辑设计阶段。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。
        系统分析要回答新系统“做什么”这个关键性的问题。只有明确了问题,才有可能回答“怎么做”,才有可能解决问题;否则,方向不明确,等于无的放矢、吃力不讨好。实际工作中常常有这种情形,即业务人员认为信息系统的开发知识技术人员的事,开发人员根据对用户要求的肤浅理解就匆匆忙忙进行系统设计、编写程序。结果交给用户使用时,用户说“这不是我要的系统”。对系统分析缺乏足够的重视,是导致工期一再延长甚至以失败告终的重要原因,也是系统分析难以进行的主观原因。
        系统分析是信息系统开发最重要的阶段,也是最困难的阶段。系统分析的困难主要来自三个方面:问题空间的理解、人与人之间的沟通和环境的不断变化。
        由于系统分析员缺乏足够的对象系统的专业知识,在系统调查中往往觉得无从下手,不知道问用户一些什么问题,或者被各种具体数字、大量的资料、庞杂的业务流程搞得眼花缭乱。一个规模较大的系统,反映各种业务情况的数据、报表、账单及业务人员手中各种正规的、非正规的手册、技术资料等,数量相当大。各种业务之间的联系繁杂,不熟悉业务情况的系统分析员往往感到好像处在不见天日的大森林中,各种信息流程像一堆乱麻,不知如何理出头绪,更谈不上分析制约现行系统的“瓶颈”。
        另一方面,用户往往缺乏计算机方面的足够知识,不了解计算机能做什么和不能做什么。许多用户虽然精通自己的业务,但往往不善于把业务过程明确地表达出来,不知道该给系统分析员介绍些什么。对一些具体的业务,他认为理所当然就该这样或那样做。尤其是对于某些决策问题,根据他的经验,凭直觉就应该这样或那样做。在这种情况下,系统分析员很难从业务人员那里获得充分有用的信息。如果系统分析员和用户沟通不畅,有时候用户甚至会产生排斥心理,使得系统分析工作尤其困难。
        俗话说:“隔行如隔山”。系统分析员与用户的知识构成不同、经历不同,使得双方交流十分困难,因而系统调查容易出现遗漏和误解,这些误解和遗漏是系统开发的隐患,会使系统开发偏离正确的方向。
        最使系统分析员困惑的是环境的变化。系统分析阶段要通过调查分析,抽象出新系统的概念模型,锁定系统边界、功能、处理过程和信息结构,为系统设计奠定基础。但是,信息系统生存在不断变化的环境中,环境对它不断提出新的要求。只有适应这些要求,信息系统才能生存下去。在系统分析阶段,要完全确定系统模式是困难的,有时甚至是办不到的。
        为了克服这些困难,做好系统分析工作,需要系统分析员和用户精诚合作,系统分析员应牢固树立“用户第一”的思想,同时,还要借助一定的技术和工具。这里说的工具是指一些合理的图表,直观的图表可以帮助系统分析员理顺思路,也便于与用户交流。
        我们可以看到,在系统开发中系统分析员起着十分重要的作用。系统分析这一重要而艰巨的任务主要由系统分析员承担。他要与各类人员打交道,是用户和技术人员之间的桥梁和“翻译”,并为管理者提供控制开发的手段。而系统分析员的知识水平和工作能力是最为重要的。一个称职的系统分析员不但应具备坚实的信息系统知识,了解计算机技术的发展,而且还必须具备管理科学的知识。缺乏必要的管理科学知识,就没有与各级管理人员打交道的“共同语言”。很难设想,缺乏财务基础知识的人能设计出实用的财务系统。系统分析员应有较强的系统观点和较好的逻辑分析能力,能够从复杂的事物中抽象出系统模型。系统分析员还应具备较好的口头和书面表达能力、较强的组织能力、善于与人共事。总之,系统分析员应是具有现代科学知识的、具有改革思想和改革能力的专家。
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       面向对象分析
        同其他分析方法一样,面向对象分析(Object-Oriented Analysis,OOA)的目的是获得对应用问题的理解。理解的目的是确定系统的功能、性能要求。面向对象分析法与功能/数据分析法之间的差别是前期的表述含义不同。功能/数据分析法分开考虑系统的功能要求和数据及其结构,面向对象分析方法是将数据和功能结合在一起作为一个综合对象来考虑。面向对象分析技术可以将系统的行为和信息间的关系表示为迭代构造特征。
        面向对象分析包含5个活动:认定对象、组织对象、描述对象间的相互作用、定义对象的操作、定义对象的内部信息。
               认定对象
               在应用领域中,按自然存在的实体确立对象。在定义域中,首先将自然存在的“名词”作为一个对象,这通常是研究问题、定义域实体的良好开始。通过实体间的关系寻找对象常常没有问题,而困难在于寻找(选择)系统关心的实质性对象,实质性对象是系统稳定性的基础。例如在银行应用系统中,实质性对象应包含客户账务、清算等,而门卫值班表不是实质性对象,甚至可不包含在该系统中。
               组织对象
               分析对象间的关系,将相关对象抽象成类,其目的是简化关联对象,利用类的继承性建立具有继承性层次的类结构。抽象类时可从对象间的操作或一个对象是另一个对象的一部分来考虑,如房子由门和窗构成,门和窗是房子类的子类。由对象抽象类,通过相关类的继承构造类层次,所以说系统的行为和信息间的分析过程是一种迭代表征过程。
               对象间的相互作用
               描述出各对象在应用系统中的关系。如一个对象是另一个对象的一部分,一个对象与其他对象间的通信关系等。这样可以完整地描述每个对象的环境,由一个对象解释另一个对象,以及一个对象如何生成另一个对象,最后得到对象的界面描述。
               基于对象的操作
               当考虑对象的界面时,自然要考虑对象的操作。其操作有从对象直接标识的简单操作,如创建、增加、删除等;也有更复杂的操作,如将几个对象的信息连接起来。一般而言,避免对象太复杂比较好,当连接的对象太复杂时,可将其标识为新对象。当确定了对象的操作后,再定义对象的内部,对象内部定义包括其内部数据信息、信息存储方法,继承关系以及可能生成的实例数等属性。
               分析阶段最重要的是理解问题域的概念,其结果将影响整个工作。经验表明,从应用定义域概念标识对象是非常合理的,完成上述工作后写出规范文档,文档确定每个对象的范围。
               早期面向对象的目标之一是简化模型与问题域之间的语义差距。事实上,面向对象分析的基础是软件系统结构,这依赖于人类看待现实世界的方法。当人们理解求解问题的环境时,常采用对象、分类法和层次性这类术语。面向对象分析与功能/数据分析方法相比,面向对象的结果比较容易理解和管理。面向对象分析方法的另一个优点是便于修改,早期阶段的修改容易提高软件的可靠性。
 
       面向对象软件开发
        面向对象的方法从问题模型开始,然后进行识别对象、不断细化的过程。它从本质上就是迭代和渐增的。开发过程是一次次的迭代反复过程,随着迭代的进行,系统功能不断完善。典型的面向对象开发方法有RUP(Rational Unified Process)和XP(eXtreme Programming),两者各有侧重,适用于不同的场景。
        1.RUP
        RUP是Rational公司开发和维护的过程产品。RUP以适合于大范围项目和机构的方式捕捉了许多现代软件开发过程的最佳实践。RUP的三个关键特征为迭代(Iterative)、以架构为中心(Architecture-Centric)和用例驱动(Use-Case Driven)。
        RUP的6个基本最佳实践如下:
        .迭代式开发。RUP支持专注于处理生命周期中每个阶段中最高风险的迭代开发方法,极大地减少了项目的风险性。
        .需求管理。RUP描述了如何提取、组织和文档化需要的功能和限制。
        .使用基于构件的体系结构。RUP提供了使用新的及现有构件定义体系结构的系统化方法。
        .可视化软件建模。RUP开发过程显示了对软件如何可视化建模,捕获体系结构及构件的构架和行为。
        .验证软件质量。RUP帮助计划、设计、实现、执行和评估软件质量,并且不是事后型的。
        .控制软件变更。RUP开发过程描述了如何控制、跟踪和监控修改以确保成功的迭代开发。
        RUP的二维开发模型
        RUP可以用二维坐标来描述。横轴表示时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期(Cycle)、阶段(Phase)、迭代(Iteration)和里程碑(Milestone);纵轴按内容组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动(Activity)、产物(Artifact)、工作者(Worker)和工作流(Workflow),如下图所示。
        RUP开发过程的各个阶段和里程碑
        RUP中的软件生命周期在时间上被分解为4个顺序的阶段,分别是初始阶段(Inception)、细化阶段(Elaboration)、构造阶段(Construction)和交付阶段(Transition)。每个阶段结束于一个主要的里程碑(Major Milestones);每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。
        
        RUP的二维开发模型
        (1)初始阶段。
        初始阶段有时也称为先启阶段,该阶段的主要目标是为系统建立商业模型并确定项目的边界。任务包括识别和规避项目的主要风险,建立用例模型框架,并制订里程碑日期的阶段计划。
        初始阶段结束时是第一个重要的里程碑:生命周期目标(Lifecycle Objective)里程碑。该里程碑评估项目的基本可行性。
        (2)细化阶段。
        细化阶段的目标是分析问题领域,建立健全的体系结构基础,编制项目计划,淘汰项目中最高风险的元素。为了达到该目标,必须在理解整个系统的基础上,对体系结构做出决策,包括其范围、主要功能和诸如性能等非功能需求。同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
        细化阶段结束时是第二个重要的里程碑:生命周期结构(Lifecycle Architecture)里程碑。该里程碑为系统的架构建立了管理基准,并使项目小组能够在构建阶段中进行衡量。
        (3)构造阶段。
        在构造阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构造阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
        构造阶段结束时是第三个重要的里程碑:初始操作(Initial Operational)里程碑。该里程碑确定产品是否已经可以部署到Beta测试环境。
        (4)交付阶段。
        交付阶段的重点是确保软件对最终用户是可用的。交付阶段可以跨越几次迭代,包括为发布做准备的产品测试,基于用户反馈的少量调整。在生命周期的这一点上,用户反馈应主要集中在产品调整、设置、安装和可用性问题上,所有主要的结构问题应该已经在项目生命周期的早期阶段解决了。
        在交付阶段的终点是第四个里程碑:产品发布(Product Release)里程碑。此时,要确定目标是否实现,是否应该开始另一个开发周期。在一些情况下,这个里程碑可能与下一个周期的初始阶段的结束重合。
        RUP的核心工作流
        RUP中有9个核心工作流,分为6个核心过程工作流(Core Process Workflows)和3个核心支持工作流(Core Supporting Workflows)。尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被使用。9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复。
        (1)商业建模(Business Modeling)。
        商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程,角色和责任。
        (2)需求(Requirements)。
        需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化,最重要的是理解系统所解决问题的定义和范围。
        (3)分析和设计(Analysis&Design)。
        分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。设计模型是源代码的抽象,由设计类和一些描述组成。设计类被组织成具有良好接口的设计包(Package)和设计子系统(Subsystem),而描述则体现了类的对象如何协同工作实现用例的功能。
        (4)实现(Implementation)。
        实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。
        (5)测试(Test)。
        测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确地实现,识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。
        (6)部署(Deployment)。
        部署工作流的目的是成功地生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。
        (7)配置和变更管理(Configuration&Change Management)。
        配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。
        (8)项目管理(Project Management)。
        软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。
        (9)环境(Environment)。
        环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册,并介绍了如何在组织中实现过程。
        2.XP
        极限编程(eXtreme Propgramming,XP)由Kent Beck在1996年开创,是一种演进式的原型化方法,以最大化发挥人的能量为核心目标,具有沟通高效、设计简单、反馈迅速等特点,是一种轻量级、敏捷的过程方法。
        XP是一种高度动态的过程,它通过非常短的迭代周期来应对需求的变化。XP一般适用于需求不确定、变化快、项目历时不超过半年、人数不超过10个、在同一地点工作的中小型团队。
        XP的生命周期包括4个基本活动:编码(coding)、测试(testing)、聆听(listening)、设计(designing)。
        XP的4个价值目标:
        .沟通:让开发人员集体负责所有代码并结队工作,鼓励与客户及团队内部保持沟通。
        .简化:鼓励只开发当前的功能,避免过多的文档,专注于最小化解决方案,做好为新特性改变设计,在系统隐喻和代码规范下不断重构的准备。
        .反馈:通过单元测试和功能测试获得快速反馈。
        .勇气:提倡积极面对现实和处理问题的勇气,拥抱变化。
        XP的12个最佳实践:
        .有计划的开发。通过结合使用标有优先级的“故事”卡和技术估算,确定下一版本的功能。
        .小型发布。以小的增量版本经常向客户发布软件。
        .系统隐喻。隐喻是一个高层次的系统构想,需要不断地细化架构来指导全部开发。
        .简单设计。通过保持代码简单从而保证设计简单。不断地在代码中寻找复杂点并且立刻进行移除。
        .测试驱动。“先测试,后编码”。用户编写测试内容以对“故事”进行测试。程序员编写测试内容来发现代码中的任何问题。在编写代码前先编写测试内容。
        .重构。这是一项简化技术,用来移除代码中的重复内容和复杂之处。
        .结对编程。团队中的两个成员使用同一台计算机开发所有的代码。一个人编写代码或者驱动,另一个人同时审查代码的正确性和可理解性。
        .集体代码所有权。任何人都拥有所有的代码。提高代码透明度,增强团队合作精神。
        .持续集成。每天按任务多次创建和集成系统,随着需求变化,进行不断的回归测试。
        .每周40小时工作制。程序员在疲劳时无法保证最高效率。连续两周加班是绝对不允许的,否则会影响工作效率。
        .现场客户。至少有一名真实的客户全天候工作于开发环境中,帮助定义系统、编写测试内容并回答问题。
        .编码规范。程序员采用统一的编码规范。
   题号导航      2013年上半年 信息系统管理工程师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第20题    在手机中做本题