免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2022年下半年 信息系统项目管理师 下午试卷 案例
  第3题      
  知识点:   组建项目团队   版本控制   编码   工业   开发过程   可行性分析   配置管理   配置管理工具   配置管理员   数据采集   文本   项目建议   制造业

 
A公司为提升市场竞争力,计划针对制造业数字化转型的需求,新开发一套数字化软件,实现在工业产品生产和制造过程中数据采集,分析和决策功能。公司让产品部前期对市场需求进行调研。产品部对软件预期能产生的经济效益和社会效益,进行了详细的分析,并针对这两部分,编制了《可行性分析报告》。公司高层领导看了报告后,认为该软件未来会为公司带来巨大的收益,当场拍板决定启动项目,要求产品部补充编制《项目建议书》,并组建项目团队。 小王作为某名校计算机专业刚毕业的研究生,被公司委以重任,担任该项目的项目经理。研发负责人向小王建议为配置管理设置一名专职配置管理员,但小王认为有配置管理工具对代码进行控制,大家只要对程序代码做好版本控制就可以了,考虑到项目组人员紧张,没必要再安排专人负责配置管理工作。 开发过程中,为避免多人同时修改代码导致冲突,研发人员要先将服务器上的代码下载,待编码完成后,使用文本对比工具将代码中修改的部分进行上传整合。 软件研发完成测试通过后,研发人员将最终版本软件和软件使用说明书提供给产品部,产品部人员发现说明书描述的内容与软件不完全一致,于是将问题反馈给小王,小王经检查发现提交的说明书并不是最新的说明书。
 
问题:3.1   (12分)
请结合案例,分析项目在可行性研究和配置管理中存在哪些问题。
 
问题:3.2   (7分)
请写出项目建议书的内容;说明项目建议书的作用。
 
问题:3.3   (6分)
请结合案例说明,项目组在软件研发工作完成后并移交给产品部之前,应完成那些项目结项相关工作。
 
 
 

   知识点讲解    
   · 组建项目团队    · 版本控制    · 编码    · 工业    · 开发过程    · 可行性分析    · 配置管理    · 配置管理工具    · 配置管理员    · 数据采集    · 文本    · 项目建议    · 制造业
 
       组建项目团队
        组建项目团队是确认可用人力资源并组建项目所需团队的过程。由于集体劳动协议、分包商人员使用、矩阵型项目环境、内外部报告关系及其他各种原因,项目管理团队对选择团队成员不一定具有直接控制权。
        输入
        1.角色和职责
        角色和职责确定项目所需要的岗位、技能和能力。
        2.项目组织图
        说明项目所需要的人员数量。
        3.人员配备管理计划
        人员配备管理计划和项目进度共同确定了每个项目团队成员需要工作的时间和其他用以组建项目团队的重要信息。
        4.企业环境因素
        可能影响组建项目团队过程的企业环境因素包括:
        .现有人力资源情况,包括可用的人员及其能力水平、以往经验、对本项目工作的兴趣以及成本费率等。
        .人事管理政策,如影响外包的政策。
        .组织结构。
        .一个或多个工作地点。
        5.组织过程资产
        组织的标准、政策、流程和程序可能对组建项目团队有影响。
        工具与技术
        1.预分派
        如果项目团队成员是事先选定的,那么他们就是被预分派的。预分派可在下列情况下发生:在竞标过程中承诺分派特定人员进行项目工作。
        2.谈判
        在许多项目中,人员指派必须通过谈判。如项目管理团队需要与下列各方进行谈判:
        .职能经理。以确保所需的员工可以在需要的时间到岗,并且一直工作到他们的任务完成。
        .执行组织中的其他项目管理团队,以获得某些稀缺或者特定的资源。
        .外部组织、卖方、供应商、承包商等。
        项目管理团队影响他人的能力在人员分派谈判中起着重要的作用。
        3.招募
        在执行组织缺乏完成项目的足够的内部人才时,就必须从外部获取必要的服务。这可能包括聘用或外包。
        4.虚拟团队
        虚拟团队可以定义为一群拥有共同目标、履行各自职责,但是很少有时间或者没有时间能面对面开会的人员。电子通信使虚拟团队成为可能,虚拟团队使人们有可能:
        .在不同区域的员工之间建立团队。
        .为项目团队增加专家,即使专家不在本地。
        .把在家工作的员工纳入团队。
        .在工作班次或工作时间不同的员工之间组建团队。
        .将行动不便的人纳入团队。
        .可以推动那些因为差旅费用而被忽视的项目。
        在虚拟团队的环境中,沟通规划变得更为重要。可能需要多花时间来确定明确的期望、促进沟通、制订冲突解决方法、召集人员参与决策以及共享成功的喜悦。
        输出
        1.项目人员分配
        当合适的人员被分配到某项目时,该项目的人员配备就完成了。与此相关的文档包括项目成员备忘录、通讯录,还需要把人员姓名插入到项目管理计划的其他部分中,如项目组织结构图和进度计划。
        2.资源日历
        资源日历记录每个项目团队成员可以在项目上工作的时间。必须很好地了解每个人的时间冲突,才能准确地记录团队成员的可用性,才能编制可靠的进度计划。
        3.人员配备管理计划(更新)
        如承担项目角色和职责的具体人员可能并不完全符合人员配备管理计划中的相关要求,因此需要做相应的改变。
        4.资源可用性
        资源可用性记录了用于项目人力资源的技能、培训和专业知识的数量及类型。
 
       版本控制
        版本是表示一个配置项具有一组定义的功能的一种标识。随着功能的增加,修改或删除,配置项的版本随之演变。应当记录每个软件配置项的所有历史记录,并记录该软件配置项由何人创建,何人在何时因何原因进行了修改等信息,以及对这些软件配置项版本的进行检索和信息查询等活动。
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       工业
        立体显示技术可以应用于过程控制、数值模拟、CAD/CAM(计算机辅助设计/制造)设计、工业检测、远程监视、危险产品生产安装以及远程机器人视觉显示等各个方面,可以带来前所未有的逼真视觉效果。
        目前,3D技术在专业行业的应用已经十分成熟,包括汽车设计制造、船舶设计制造、航天航空、能源动力、机械电子、建筑房产、城市规划等行业,3D技术为设计方式和用户界面带来了新的革命。3D技术常用的设计软件包括ProE、AutoCAD、3Dmax、MAYA等,这些工具已经成为行业必备的设计软件。在工业设计领域,ProE和AutoCAD已经具备了丰富的3D设计功能,并被广大工程设计人员所采用;在图形图像领域,3Dmax、MAYA已经被广大艺术和IT工作者熟练使用。
 
       开发过程
        嵌入式系统软件的开发过程可以分为项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行等几个阶段。
        项目计划、可行性分析、需求分析、概要设计及详细设计等几个阶段,与通用软件的开发过程基本一致,都可按照软件工程方法进行,如采用原型化方法、结构化方法等。
        :由于嵌入式软件的运行和开发环境不同,开发工作是交叉进行的,所以每一步都要考虑到这一点。
        程序建立阶段的工作是根据详细设计阶段产生的文档进行的,主要是源代码编写、编译链接等子过程,这些工作都在宿主机上进行,不需要用到目标机。产生应用程序的可执行文件后,就要用到交叉开发环境进行调试,根据实际情况可以选用3.6.3节中提到的调试方法或其有效组合来进行。由于嵌入式系统对安全性和可靠性的要求比通用计算机系统要高,所以,在对嵌入式系统进行白盒测试时,要求有更高的代码覆盖率。
        最后,要将经调试后正确无误的可执行程序固化到目标机上。根据嵌入式系统硬件配置的不同,可以固化在EPROM(Erasable Programmable ROM,可擦除可编程ROM)和Flash等存储器中,也可固化在DOC(DiskOnChip)等电子盘中,通常还要借助一些专用编程器进行。
 
       可行性分析
        可行性研究的任务就是研究系统开发的必要性和可能性,用最少的代价在尽可能短的时间内确定问题是否值得解决和是否能够解决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。
               可行性分析的内容
               一般来说,系统可行性研究可从技术可行性、经济可行性和操作可行性三个方面进行考虑。
               (1)技术可行性。要确定使用现有的技术能否实现系统,就要对开发系统的功能、性能、限制条件进行分析,确定在现有的资源条件下,技术风险有多大,系统能否实现。技术可行性一般要考虑的情况包括:在给出的限制范围内,能否设计出系统并实现必须的功能和性能;可用于开发的人员是否存在问题。可用于建立系统的其他资源是否具备;相关技术的发展是否支持这个系统。
               (2)经济可行性。进行开发成本的估算以及了解取得效益的评估,确定要开发的系统是否值得投资开发。对于大多数系统,一般衡量经济上是否合算,应考虑一个最小利润值。经济可行性研究范围较广,包括成本效益分析、公司经营长期策略、开发所需的成本和资源、潜在的市场前景等。
               (3)操作可行性。也称为运行环境可行性,包括法律可行性和操作使用可行性(执行可行性)等方面。法律方面主要是指在系统开发过程中可能涉及的各种合同、侵权、责任以及各种与法律相抵触的问题。操作使用方面主要指系统使用单位在行政管理、工作制度和人员素质等因素上能否满足系统操作方式的要求。
               可行性分析的步骤
               可行性分析工作的步骤如下:
               (1)核实问题定义与目标。系统分析师开始正式进行可行性分析工作之前,首先要做的一个工作,就是对该项工作的基础(问题定义)再次核实。这一步骤的关键目标是:使得问题定义更加清晰、明确、没有歧义,并且对于系统的目标、规模以及相关约束与限制条件做出更加细致的定义,确保可行性分析小组的所有成员达成共识。
               (2)研究分析现有系统。对现有系统的仔细分析与研究是十分重要的一项工作,因为它是新系统开发的最好参照物,对其充分分解有助于新系统的开发。
               (3)为新系统建模。在问题定义、现有系统研究的基础上,就可以开始对新的系统进行建模,建模的目的是为了获得一个对新系统的框架认识和概念性认识。通常可以采用以下几种技术:
               .系统上下文关系范围图:其实也就是数据流图的0层图,将系统与外界实体(可能是人、可能是外部系统)的关系(主要是数据流和控制流)体现出来,从而清晰地界定出系统的范围,实现共识。
               .实体关系图:这是系统的数据模型,这个阶段并不需要生成完整的E-R图,而是找到主要的实体以及实体之间的关系即可。
               .用例模型:这是系统的一个动态模型,有关知识将在第9章中详细介绍。
               .域模型:这是采用面向对象的思想,对于系统中主要的实体类找到,并说明实体类的主要特征和它们之间的关系。
               .IPO(Input/Process/Output,输入/处理/输出)表:这是采用传统的结构化思想,从输入、处理、输出的角度进行描述系统。
               (4)用户复核。系统模型建立之后,一项十分重要的工作就是与客户一起进行复核。在这个过程中,如果发现模型与用户的目标有不一致的地方,就应该再次通过访谈、现场观摩、对现有系统分析等手段进行了解,然后在此基础上修改模型。因此也可以说,(1)~(4)的步骤是一个循环,周而复始,直至客户确认了新的系统模型为止。
               (5)提出并评价解决方案。应该尽量列举出各种可行的解决方案,并且对这些解决方案的优点、缺点做一个综合性的评价,以便于下一步决策。在这个步骤中,可以使用候选系统矩阵和可行性分析矩阵,前者是用来记录候选方案之间的相同和不同的工具,后者是用来评定候选方案的工具。
               对于那些明显不可行的,如技术上还没有相应的办法、经济角度明显不可行的、违背企业或行业实际情况的解决方案应该直接过滤掉。
               (6)确定最终推荐的解决方案。明确地指出该项目是否可行?如果可行,什么方面是最合理的?对于这两个问题的回答,是可行性分析研究工作的核心目标。因此在各种解决方案提出之后,紧接下来就应该从中选出一个最合理、最可行的解决方案,并且更加详细地说明理由,而且还要对其进行更加完善的成本效益分析。
               (7)草拟开发计划。制订一个最粗略的开发计划,说明开发所需的资源、人员和时间进度安排。这也将作为可行性分析的一个重要依据,和立项开发后制订项目计划的基础。
               (8)提交可行性分析报告。将研究的结果整理成文,提交用户和管理层,进行审查通过。在国家标准GB/T 8567——88中,规定了可行性分析报告的详细格式和内容,大致包括引言、可行性研究的前提、对现有系统的分析、所建议的系统、可选择的其他系统方案、投资及效益分析、社会因素方面的可行性、结论。
 
       配置管理
        随着信息系统软件版本不断变化,开发时间的紧迫以及多平台开发环境的采用,使得软件开发、维护面临越来越多的问题,其中包括对当前多种软件的开发和维护、保证产品版本的精确、重建先前发布的产品、加强开发政策的统一和对特殊版本需求的处理等等。
        信息系统软件配置管理是一种应用于整个软件工程过程的标识、组织和控制修改的围绕软件资产的管理技术。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯。其关键活动包括:配置管理计划、配置项管理、版本控制、变更控制、配置审计、状态报告等。
               配置管理计划
               根据信息系统软件运维制度和规范、标准,制定配置管理计划,主要包括以下内容。
               (1)该项目对配置管理的要求。
               (2)实施配置管理的责任人、组织及其职责。
               (3)需要开展的配置管理活动及其进度安排。
               (4)采用的方法和工具等。
               配置与配置项
               “配置”是在技术文档中明确说明并最终组成软件产品的功能或物理属性。因此“配置”包括了即将受控的所有产品特性,及其内容及相关文档,软件版本,变更文档,软件运行的支持数据,以及其他一切保证软件一致性的组成要素。
               为了方便对“配置”进行管理,“配置”经常被划分为各类配置项,这类划分是进行软件配置管理的基础和前提。配置项是一组软件功能或者物理属性的组合,在配置管理过程中,配置项被作为一个单一的实体对待。配置项包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等。同时,应该建立配置库来管理所有的配置项。
               版本控制
               版本是表示一个配置项具有一组定义的功能的一种标识。随着功能的增加,修改或删除,配置项的版本随之演变。应当记录每个软件配置项的所有历史记录,并记录该软件配置项由何人创建,何人在何时因何原因进行了修改等信息,以及对这些软件配置项版本的进行检索和信息查询等活动。
               变更控制
               变更在信息系统软件运维过程中是不可避免的。变更控制是配置管理的一个重要组成部分,包含评估、协调、批准/拒绝、实施对配置项的变更。
               配置审计
               配置审计是对配置管理的独立的查检过程,确认受控软件配置项满足需求并就绪。其内容如下。
               (1)功能审计:配置项的变更控制是否和配置管理计划中的描述相一致。
               (2)物理审计:配置项的完整性、正确性、一致性和可跟踪性。
               状态报告
               状态报告用来记录和报告有效管理配置所需要的必要信息。这些信息包括一个已批准的配置标识清单,变更请求当前的处理状态,以及批准的变更的实现情况。配置状态报告可以跟踪对软件的更改的过程,它保证对正在进行和已完成的变更进行记录、监视并通报给相关人员。
 
       配置管理工具
        随着虚拟化和云计算的发展,导致了企业内外需要加以管理的服务器数量大幅增长。配置管理工具主要用于配置和维护数十台、数百台、乃至数千台服务器。目前,主要的服务器配置管理工具包括Ansible、Chef、Puppet、SaltStack等。
 
       配置管理员
        配置管理员(Configuration Management Officer, CMO)负责在项目的整个生命周期中进行配置管理活动,包括:
        .编写配置管理计划。
        .建立和维护配置管理系统。
        .建立和维护配置库。
        .配置项识别。
        .建立和管理基线。
        .版本管理和配置控制。
        .配置状态报告。
        .配置审计。
        .发布管理和交付。
        .对项目成员进行配置管理培训。
 
       数据采集
        数据采集阶段的主要任务就是获取各个不同数据源的各类数据,按照统一的标准进行数据的转换、清洗等工作,以形成后续数据处理的符合标准要求的数据集。
        原始数据往往形式多样,包括:结构化数据,例如业务系统中的交易明细、操作日志等;非结构化数据,例如企业中的各种文档数据,视频、音频等数据;半结构化数据,例如Web页面的HTML文档等。而且其来源和种类也存在很大差距。
        当前的大数据处理中,数据的种类一般包括:
        .传感数据:传感数据是由感知设备或传感设备感受、测量及传输的数据。这些感知设备或传感设备实时和动态地收集大量的时序传感数据资源。传感数据种类有很多,如人身体的传感数据,网络信号的传感数据和气象的传感数据等。近年来随着物联网、工业互联网的日益发展,传感数据越来越丰富,人们也逐渐发现了其数据价值。
        .业务数据:企业业务系统在执行日常业务活动时产生的大量数据,包括设备工况、操作记录、交易流水,以及用户在使用系统时遗留下来的大量行为数据。这些数据反映了人或者物的属性、偏好,在推荐或预测系统中有很大的利用价值。
        .人工输入数据:用户通过软件人机交互等主动输入的数据,典型代表是微博、微信、抖音等系统的用户输入数据。随着互联网的不断深入,手机APP应用的不断发展,这种用户产生的数据也越来越多,越来越丰富。
        .科学数据:通过科学研究和科学实验不断搜集和汇聚的数据,一般是以电子记录或文本的形式存在。
        从大数据的来源进行划分,其种类包括:
        .企业数据:企业自建的各种业务系统,如ERP、在线交易系统、招聘系统等,也会产生各种数据集。
        .政府数据:政府信息化已发展多年,构建了很多业务数据。近年来政府也在不断地建设大数据中心,发布各种数据,包括人社、医疗、税务、工商、财务等。
        .互联网数据:互联网数据是当前大数据应用的一个重要的数据来源。互联网上存在各种应用沉淀下来的大量数据,包括门户网站、社交信息、电商网站等等。
        其中,企业数据一般属于内部数据,而政府数据、互联网数据往往属于外部数据。
        从上面大数据的分类可以看出,数据来源渠道众多,差异非常大。因此,数据采集的主要任务就是进行数据的汇聚,为后续的数据处理做好准备。这个阶段工作中主要涉及的技术包括针对内部数据的数据集成和ETL技术,针对外部数据,尤其是互联网数据的爬虫技术。
        数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有很多成熟的框架可以利用。目前通常采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统,这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。
        ETL(Extract Transform Load)用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据。
        基本的ETL体系结构示意图如下图所示。
        
        ETL体系结构示意图
        ETL过程中的主要环节是数据抽取、数据转换和加工、数据加载。一般ETL工具中,围绕上述三个核心环节进行了功能上的扩充,例如工作流、调度引擎、规则引擎、脚本支持和统计信息等,尽量降低ETL阶段的工作强度,减少工作量。
        数据转换和加工是三个环节的重点,因为抽取的数据中往往存在各种问题,例如数据格式不一致、数据输入错误、字段不匹配、字段类型不符、数据不完整等。ETL一般以组件化的方式实现数据转换和加工。常用的数据转换组件有字段映射、数据过滤、数据清洗、数据替换、数据计算、数据验证、数据加解密、数据合并、数据拆分等,并以工作流的形式进行各种方式的组合,以满足数据转换的需求。有的ETL工具也提供脚本支持,满足用户定制化的数据转换需求。
        常用的ETL工具有三种:DataStage、Informatica PowerCenter和Kettle。
        .DataStage:IBM公司的DataStage是一种数据集成软件平台,专门针对多种数据源的ETL过程进行了简化和自动化,同时提供图形框架,用户可以使用该框架来设计和运行用于变换和清理、加载数据的作业。它能够处理的数据源有主机系统的大型数据库、开发系统上的关系数据库和普通的文件系统。
        .Informatica PowerCenter:Informatica公司开发的为满足企业级需求而设计的企业数据集成平台。可以支持各类数据源,包括结构化、半结构化和非结构化数据。提供丰富的数据转换组件和工作流支持。
        .Kettle:Kettle是一款国外开源的ETL工具,纯Java编写,可以在Windows、Linux、UNIX上运行,数据抽取高效稳定。管理来自不同数据库的数据,提供图形化的操作界面,提供工作流支持。Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。Kettle包括4个产品:Spoon、Pan、Chef、Kitchen。Spoon通过图形界面来设计ETL转换过程(Transformation)。Pan批量运行由Spoon设计的ETL转换(例如使用一个时间调度器),是一个后台执行的程序,没有图形界面。Chef创建任务(Job),任务通过允许每个转换、任务、脚本等等,更有利于自动化更新数据仓库的复杂工作。Kitchen批量使用由Chef设计的任务(例如使用一个时间调度器)。
        由于很多大数据应用都需要来自互联网的外部数据,因此,爬虫技术也称为数据采集阶段的一个主要基础性的技术。
        网络爬虫(又称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取互联网信息的程序或者脚本。网络爬虫基本的体系结构如下图所示。
        
        爬虫框架示意图
        爬虫调度器主要负责统筹其他四个模块的协调工作。URL管理器负责管理URL链接,维护已经爬取的URL集合和未爬取的URL集合,提供获取新URL链接的接口。HTML下载器用于从URL管理器中获取未爬取的URL链接并下载HTML网页。HTML解析器用于从HTML下载器中获取已经下载的HTML网页,并从中解析出新的URL链接交给URL管理器,解析出有效数据交给数据存储器。
        网络爬虫大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、深层网络(Deep Web)爬虫。实际的大数据应用由于往往聚焦于某个特定的应用目标,其采用的网络爬虫系统通常是聚焦网络爬虫、深层网络爬虫技术相结合实现的。
        通用网络爬虫,爬行对象从一些种子URL扩充到整个Web,主要为门户站点搜索引擎和大型Web服务提供商采集数据。通用网络爬虫的结构大致可以分为页面爬行模块、页面分析模块、链接过滤模块、页面数据库、URL队列、初始URL集合几个部分。为提高工作效率,通用网络爬虫会采取一定的爬行策略。常用的爬行策略有:深度优先策略、广度优先策略。
        聚焦网络爬虫,是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,可以很好地满足一些特定人群对特定领域信息的需求。聚焦网络爬虫和通用网络爬虫相比,增加了链接评价模块以及内容评价模块。聚焦爬虫爬行策略实现的关键是评价页面内容和链接的重要性,常见的爬行策略有基于内容评价的爬行策略、基于链接结构评价的爬行策略、基于增强学习的爬行策略、基于语境图的爬行策略等。
        深层网络爬虫用于专门爬取那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的Web页面。Deep Web爬虫爬行过程中最重要的部分就是表单填写,包含两种类型:基于领域知识的表单填写,此方法一般会维持一个本体库,通过语义分析来选取合适的关键词填写表单;基于网页结构分析的表单填写,此方法一般无领域知识或仅有有限的领域知识,将网页表单表示成DOM树,从中提取表单各字段值。常见的爬虫工具有如下三种:
        .Nutch:一个开源Java实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。Nutch有Hadoop支持,可以进行分布式抓取、存储和索引。Nutch采用插件结构设计,高度模块化,容易扩展。
        .Scrapy:是Python开发的一个快速、高层次的屏幕抓取和Web抓取框架,用于抓取Web站点并从页面中提取结构化的数据。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便地修改。它提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫、Web2.0爬虫等。
        .Larbin:Larbin是一种开源的网络爬虫/网络蜘蛛,用C++语言实现。Larbin目的是能够跟踪页面的URL进行扩展的抓取,最后为搜索引擎提供广泛的数据来源。
        当数据采集到以后,需要对采集并清洗后的数据进行存储。具体的存储技术在13.1.3云关键技术中的分布式数据存储中介绍,此处不再详述。
 
       文本
        文本指各种字符,包括数字、字母和文字等。文本可以先在Word文字处理软件中编辑制作,然后导入集成到多媒体系统中,也可以直接在图形/图像设计软件中编辑制作。
 
       项目建议
        项目建议阶段的主要工作是项目建议书的编写、申报和审批。
               项目建议书的概念
               项目建议书,又称立项申请,是项目建设单位向上级主管部门提交项目申请时所必须的文件,是该项目建设筹建单位或项目法人,根据国民经济的发展、国家和地方中长期规划、产业政策、生产力布局、国内外市场、所在地的内外部条件、本单位的发展战略等,提出的某一具体项目的建议文件,是对拟建项目提出的框架性总体设想。
               项目建议书是国家或上级主管部门选择项目的依据,也是可行性研究的依据。
               项目建议书的主要内容
               系统集成类项目建议书一般包含如下内容,使用时可以根据需要进行扩充或裁剪:
               .项目简介:项目名称、概况、项目建设单位和负责人、编制依据、主要结论。
               .项目建设单位概况:项目建设单位与职能、实施机构与职责。
               .项目建设的必要性:项目背景和依据、现有应用状况、目前存在的主要问题和差距、项目建设的意义和必要性。
               .业务分析:业务功能和流程分析、信息量分析与预测、系统功能和性能需求分析。
               .总体建设方案:建设原则和策略、总体目标和分期目标、总体建设任务和分期建设内容、总体设计方案。
               .本期项目建设方案:本期建设目标和内容、信息资源规划和数据库建设、应用支撑平台和应用系统建设、网络系统建设、安全系统建设、主要软硬件选型和配置清单、机房及配套工程建设。
               .环保、消防、职业安全:环境影响和环保措施、消防措施、职业安全。
               .项目实施进度。
               .投资估算及资金筹措:项目投资估算、资金来源与落实情况。
               .效益与风险分析:项目的经济和社会效益、项目风险与应对。
               项目建议书的编写、申报和审批
               项目建设单位组织编制项目建议书,在编制项目建议书阶段应专门组织需求分析,形成需求分析报告送项目审批部门组织专家提出咨询意见,作为编制项目建议书的参考。建设单位完成项目建议书的编写之后,报送项目审批部门,项目审批部门在征求相关部门意见,并委托有资格的咨询机构评估后审核批复,或报国务院审批后下达批复。
               项目建设单位可以规定对于规模较小的系统集成项目省略项目建议环节,而将其与项目可行性分析阶段进行合并。
 
       制造业
        制造业信息系统是利用信息技术帮助企业在设计、生产和管理等方面实现信息化的各类业务应用系统,如设计信息化中的计算机辅助设计(Computer Aided Design,CAD)、计算机辅助制造(Computer Aided Manufacturing,CAM)、计算机辅助工艺过程设计(Computer Aided Process Planning,CAPP)、产品数据管理(Product Data Management,PDM)等,生产信息化中的制造执行系统(Manufacturing Execution System,MES)、工作流系统(Workflow System)等,管理信息化中的企业资源规划(Enterprise Resource Planning,ERP)、客户关系管理(CustomerRelationship Management,CRM)、供应链管理(Supply Chain Management,SCM)等,以共同提升企业运营效率。
        (1)集成运维需求强烈。制造业信息化涉及技术设计、生产制造与管理三个方面,但并非同步进行,造成了信息孤岛这一离散式的IT结构,加之业务的多元化、企业组织的集团化发展,以内部信息系统的集成、上下游供应链之间的协同为主的IT运维变得最为迫切。
        (2)运维管理亟待重视。相对于金融和电信行业而言,该行业的信息化水平一般,加之制造业中的IT部门相对生产、营销、财务等部门似乎略显非主流,因此,制造企业大多对运维不够重视,对运维部门的建设和运维人员的培养做不到优先重视,运维工作及运维的管理工作长期处于较低的水平,相关部门和人仍缺乏进取和学习精神,只求维持现状,当有新技术应用后,出现了各种各样的技术的和非技术的问题,致使整个企业难以招架,应用效果差强人意。
        (3)安全运维不可忽视。制造业网络呈现分散、多级、多节点的部署特点,应用人员素质水平参差不齐,内网畅通、技术资料保密和知识产权保护为主的安全运维尤为重要。
        综上可以看出,这些行业都迫切需要流程化、规范化的运维体系来提升IT的管理效率,确保组织内信息系统安全、稳定、可靠地运行,进而提升组织的效率和效益。但由于行业自身和主营业务的不同,甚至同一行业中应用间的差异,都会对信息系统运维提出不同的精度要求,如可用级别、可靠程度、业务中断的容忍时间、负载强度、响应时间等,选择相应的运维方式、运维策略和运维流程等。
   题号导航      2022年下半年 信息系统项目管理师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
 
第3题    在手机中做本题