持续更新。。。。。。。。。。。。。。。

【第三章】信息系统集成专业技术知识-13 分

  • 3.1 信息系统-建设-1分
    • 3.1.1 生命周期(掌握)
    • 3.1.2 开发方法(掌握)
  • 3.2 信息系统-设计 -1分
    • 3.2.1 系统方案设计(掌握)
    • 3.2.2 系统架构(掌握)
    • 3.2.3 设备、DBMS及技术选型(掌握)
  • 3.3 软件工程-1分
    • 3.3.1 软件需求(掌握)
    • 3.3.2 软件设计、测试与维护
      • 3.3.2.2 测试
        • 1、测试的类型
        • 2、测试的阶段
      • 3.3.2.3 软件维护
    • 3.3.3 软件质量保证及质量评价(掌握)
    • 3.3.4 软件配置管理(了解)
    • 3.3.5 软件过程管理(了解)
    • 3.3.5 软件开发工具(了解)
  • 3.4 面向对象系统分析与设计
    • 3.4.1 面向对象的基本概念
    • 3.4.2 统一建模语言与可视化建模
    • 3.4.3 面向对象系统分析
    • 3.4.4 面向对象系统设计
  • 3.5 软件架构
    • 3.5.2 软件架构模式
    • 3.5.3软件架构分析与评估
  • 3.6 典型应用集成技术
    • 3.6.1数据库与数据仓库技术
    • 3.6.2Web Services 技术
    • 3.6.3 JavaEE 架构
    • 3.6.4NET架构
    • 3.6.5软件整技术
    • 3.6.6组件及其在系统集成项目中的重要性
  • 3.7 计算机网络知识
    • 3.7.1网络准与协议
    • 3.7.2 Internet 技术及应用
      • 3.7.6网络储技
      • 3.7.12网络安全
  • 3.8 新兴信息技术
    • 3.8.1 云计算
    • 3.8.2 物联网
    • 3.8.3 移动互联网
    • 3.8.4大数据-Big Data(P171)
  • 历年考题
    • 2022年5月
    • 2021年11月
    • 2021年05月
    • 2014年

3.1 信息系统-建设-1分

3.1.1 生命周期(掌握)

信息系统建设的内容主要包括:设备采购、系统集成、软件开发和运维服务。

信息系统集成:将计算机软件、硬件、网络通信、信息安全等技术和产品集成为能够满足用户特定需求的信息系统。

信息系统的生命周期可分为立项、开发、运维及消亡四个阶段。

➢立项阶段(概念阶段或需求阶段):

根据用户业务发展和经营管理的需求,提出建设信息系统的初步构想;然后对企业信息系统的需求进行深入调研和分析,形成《需求规格说明书》并确定立项。

➢开发阶段:

以立项阶段的需求分析为基础,进行总体规划。之后,通过系统分析系统设计系统实施系统验收等工作实现并交付系统。

➢运维阶段:

信息系统通过验收,正式移交给用户后,进入运维阶段。要保障系统正常运行,系统维护是一项必要的工作。系统的运行维护可分为更正性维护、适应性维护、完善性维护、预防性维护等类型。
➢消亡阶段:

信息系统不可避免会遇到系统更新改造、功能扩展,甚至废弃重建等情况。对此,在信息系统建设的初期就应该注意系统消亡条件和时机,以及由此而花费的成本。

3.1.2 开发方法(掌握)

常用的开发方法:结构化方法原型法面向对象方法等。

① 结构化方法(最广泛)

将整个系统的开发过程分为若干阶段,然后依次进行,前一阶段是后一阶段的工作依据,按顺序完成
每阶段和主要步骤都有明确详尽的文档编制要求,并对其进行有效控制。

特点:注重开发过程的整体性和全局性。
缺点:开发周期长;文档、设计说明繁琐,工作效率低;要求在开发之初全面认识系统的需求,充分预料各种可能发生的情况(不现实)

② 原型法

在无法全面准确地提出用户需求的情况下,并不要求对系统做全面、详细的分析,而是基于对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修改来实现用户的最终系统需求。

特点:动态响应、主句纳入用户需求;
系统分析、设计与实现都是随着原型的不断修改而同时完成的,相互之间并无明显界限,也没有明确分工。

原型法可分为:
抛弃型原型(Throw-It-Away Prototype)和进化型原型(Evolutionary Prototype)

③ 面向对象方法(Object Oriented,OO):

用对象表示客观事物,对象是一个严格模块化的实体,在系统开发中可被共享和重复引用,以达到复用的目的。其关键是能否建立一个全面、合理、统一的模型,既能反映需求对应的问题域,也能被计算机系统对应的求解域所接受。

面向对象方法主要涉及分析设计实现三个阶段且界限明显。

特点:整个开发过程中使用的是同一套工具。
实际工作中,将多种开发方法组合应用。

3.2 信息系统-设计 -1分

信息系统设计(开发阶段重点内容)

主要任务:
从信息系统的总体目标出发,根据系统逻辑功能的要求,并结合经济、技术条件、运行环境和进度等要求,明确系统的总体架构和系统各组成部分的技术方案,合理选择计算机、通信及存储的软、硬设备,制订系统的实施计划。

3.2.1 系统方案设计(掌握)

包括总体设计和各部分的详细设计(物理设计)两方面。

①系统总体设计:包括系统的总体架构方案设计、软件系统的总体架构设计、数据存储的总体设计、计算机和网络系统的方案设计等。

②.系统详细设计:包括代码设计、数据库设计、人机界面设计、处理过程设计等。

3.2.2 系统架构(掌握)

将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务。之后,进一步确定各层的接口,层与层之间的关系。

系统 的选型 取决于 系统架构

3.2.3 设备、DBMS及技术选型(掌握)

不仅要考虑系统的功能要求,也要考虑系统实现的内外环境和主客观条件。

选型时,需权衡各种可供选用的计算机硬件技术、软件技术、数据管理技术、数据通信技术和计算机网络技术及相关产品。

同时,必须考虑用户的使用要求、系统运行欢迎、现行的信息管理和信息技术的标准、规范及有关法律制度等。

3.3 软件工程-1分

3.3.1 软件需求(掌握)

软件需求:
针对待解决问题的特性的描述,所定义的需求必须可以被验证。
当资源有限时,可通过优先级对需求进行权衡

➢通过需求分析():
① 可以检测和解决需求之间的冲突;
② 发现系统的边界;
③ 并详细描述出系统。

➢ 需求的三个层次
①业务 需求:表示组织或客户高层次的目标
②用户 需求:用户的目标
③功能 需求:规定开发人员 必须在 产品中实现的软件需求

3.3.2 软件设计、测试与维护

3.3.2.2 测试

1、测试的类型

软件测试方法一般分为两大类,分别为动态测试静态测试

  • 动态测试

动态测试指通过运行程序发现错误,分为黑盒测试法白盒测试法灰盒测试法

不管是哪一种测试,都不能做到穷尽测试,只能选取少量最有代表性的输入数据,以期用较少的代价暴露出较多的程序错误。这些被选取出来的数据就是测试用例(一个完整的测
试用例应该包括输入数据和期望的输出结果)。

➢ 黑盒法
_______________

把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,依据需求规格说明书,检查程序是否满足功能要求。常用的黑盒测试用例的设计方法有等价类划分、边值分析、错误猜测、因果图和功能图等。等价类划分:将所有可能的输入数据,划分为等价的部分,然后从每个部分中选取少数有代表性的数据作为测试用例。等价类可以分为有效等价类(即合理、有意义的数据集合)、无效等价类(即不合理、无意义的数据集合)两种。而在选取测试用例时,应遵从"设计一个新的测试用例时,应尽可能多地覆盖尚未覆盖的有效等价类;但每次应仅覆盖一个尚未覆盖的无效等价类"的原则。边界值分析:它是对等价类划分法的一个补充,即选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据。错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。因果图:等价类划分、边界值分析都只考虑了输入条件,未考虑输入条件间的联系,而因果图则用来描述多种条件组合的测试用例,其最终生成的结果是判定表。它首先基于规格说明书分析原因(等价类)和结果(输出条件);然后找出原因与结果之间的关系,画出因果图;在因果图上加上约束或限制条件;将其转换为判定表;根据判定表得出测试用例。功能图:它是由状态迁移图和逻辑功能模型构建的,状态迁移图用于表示输入数据序列以及相应的输出数据;逻辑功能模型用于表示在状态中输入条件与输出条件之间的对应关系。测试用例则是由测试中经过的一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成的。

➢白盒法

_______________把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。由于白盒测试是结构测试,所以被测对象基本上是源程序,以程序的内部逻辑为基础设计测试用例。常用的白盒测试用例设计方法有基本路径测试、循环覆盖测试、逻辑覆盖测试。逻辑覆盖:以程序内部逻辑为基础的测试技术,如常用的语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、点覆盖、边覆盖、路径覆盖。语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。
判定覆盖又称分支覆盖,它的含义是不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。
条件覆盖的含义是不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。
同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。
条件组合覆盖的含义是选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述五种覆盖标准中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少经过一次。
路径覆盖的含义是选取足够的测试用例,使得程序的每条可能执行到的路径都至少经过一次(如果程序中有环路,则要求每条环路径至少经过一次)。路径覆盖实际上考虑了程序中各种判定结果的所有可能组合,因此是一种较强的覆盖标准。但路径覆盖并未考虑判定中的条件结果的组合,并不能代替条件覆盖和条件组合覆盖。
循环覆盖:单循环及嵌套循环。
基本路径法:在程序控制流程图的基础上,通过分析控制构造的环路复杂性导出基本路径集合。然后设计测试用例,保证这些路径至少通过一次。

➢灰盒法

灰盒测试是一种介于白盒测试与黑盒测试之间的测试,它关注输出对于输入的正确性。同时也关注内部表现,但这种关注不像白盒测试那样详细且完整,而只是通过一些表征性的现象、事件及标志来判断程序内部的运行状态。灰盒测试结合了白盒测试和黑盒测试的要素,考虑了用户端、特定的系统知识和操作环境,在系统组件的协同性环境中评价应用软件的设计。
  • 静态测试

静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。

静态分析中进行人工测试的主要方法有桌前检查(DeskChecking)、代码审查和代码走查。经验表明:使用这种方法能够有效地发现30%~70%的逻辑设计和编码错误。① 桌前检查由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。这种桌前检查,由于程序员熟悉自己的程序和自身的程序设计风格,可以节省很多的检查时间,但应避免主观片面性。② 代码审查代码审查是由若干程序员和测试员组成一个会审小组,通过阅读、讨论和争议,对程序进行静态分析的过程。代码审查分两步:第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、规范等分发给小组成员,作为评审的依据。小组成员在充分阅读这些材料之后,进入审查的第二步。
第二步,召开程序审查会。
在会上,首先由程序员逐句讲解程序的逻辑。在此过程中,程序员或其他小组成员可以提出问题,展开讨论,审查错误是否存在。实践表明,程序员在讲解过程中能发现许多原来自己没有发现的错误,而讨论和争议则促进了问题的暴露。在会前,应当给会审小组每个成员准备一份常见错误的清单,把以往所有可能发生的常见错误罗列出来,供与会者对照检查,以提高会审的实效。这个常见错误清单也叫做检查表,它把程序中可能发生的各种错误进行分类,对每一类列举出尽可能多的典型错误,然后把它们制成表格,供在会审时使用。这种检查表类似于单元测试中给出的检查表。③ 代码走查代码走查与代码审查基本相同,其过程也分为两步。第一步,把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。
第二步,开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者"充当"计算机。
即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。值得说明的是使用静态测试的方法也可以实现白盒测试。例如:使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试范畴。

2、测试的阶段

为了保证系统的质量和可靠性,应力求在分析、设计等各个开发阶段结束前,对软件进行严格的技术评审。而软件测试是为了发现错误而执行程序的过程。

根据测试的目的、阶段的不同,可以把测试分为
单元测试、集成测试、确认测试、系统测试等种类。

单元测试
单元测试又称为模块测试,是针对软件设计的最小单位(程序模块)进行正确性检验的测试工作。

其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。

单元测试需要从程序的内部结构出发设计测试用例,多个模块可以平行地独立进行单元测试。

单元测试根据详细设计说明书,包括模块接口测试、局部数据结构测试、路径测试、错误处理测试和边界测试,单元测试通常由开发人员自己负责。

而由于通常程序模块不是单独存在的,因此常常要借助驱动模块(相当于用于测试模拟的主程序)和桩模块(子模块)完成。单元测试的计划通常是在软件详细设计阶段完成的。

集成测试
集成测试也称为组装测试、联合测试(对于子系统而言,则称为部件测试)。它主要是将已通过单元测试的模块集成在一起,主要测试模块之间的协作性。集成测试计划通常在软件概要设计阶段完成。

从组装策略而言,可以分为一次性组装和增量式组装,增量式组装又包括自顶向下、自底向上、混合式三种,其中混合式组装又称为三明治测试。自顶向下集成测试是一种构造程序结构的增量实现方法。 模块集成的顺序是首先集成主控模块(主程序),然后按照控制层次结构向下进行集成。隶属于(和间接隶属于)主控模块的模块按照深度优先或者广度优先的方式集成到整个结构中去。
自底向上集成测试是从原子模块(比如在程序结构的最低层的模块)开始来进行构造和测试的,跟自顶向下集成测试相反。
三明治式测试是一种组合的折中测试策略,从"两头"往"中间"测试,其在程序结构的高层使用自顶向下策略,而在下面的较低层中使用自底向上策略,类似于"两片面包间夹馅的三明治"而得名。
软件集成的过程是一个持续的过程,会形成多个临时版本。在不断的集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试也称为版本验证测试或提交测试。

确认测试
确认测试也称为有效性测试,主要验证软件的功能、性能及其他特性是否与用户要求(需求)一致。确认测试计划通常在需求分析阶段完成。根据用户的参与程度,通常包括4种类型:

① 内部确认测试:主要由软件开发组织内部按软件需求说明书进行测试。② a测试(Alpha测试):由用户在开发环境下进行测试。③ b测试(Beta测试):由用户在实际使用环境下进行测试。④ 验收测试:针对软件需求说明书,在交付前由用户为主进行的测试。

系统测试
如果项目不只包含软件,还有硬件和网络等,则要将软件与外部支持的硬件、外设、支持软件、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统的一系列集成与确认测试。

一般地,系统测试的主要内容包括功能测试、健壮性测试、性能测试、用户界面测试、安全性测试、安装与反安装测试等。系统测试计划通常是在系统分析阶段(需求分析阶段)完成的。不管是哪个阶段的测试,一旦测试出问题,就要进行修改。修改之后,为了检查这种修改是否会引起其他错误,还要对这个问题进行测试,这种测试称为回归测试或退化测试。

性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

负载测试和压力测试都属于性能测试,两者可以结合进行,统称为负载压力测试。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
性能测试的目的性能测试的目的是验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,优化软件,最后起到优化系统的目的。具体来说,包括以下几个方面:评估系统的能力,测试中得到的负荷和响应时间数据可以被用于验证所计划的模型的能力,并帮助作出决策。
识别体系中的弱点:受控的负荷可以被增加到一个极端的水平,并突破它,从而修复体系的瓶颈或薄弱的地方。
系统调优:重复运行测试,验证调整系统的活动得到了预期的结果,从而改进性能。
检测软件中的问题:长时间的测试执行可导致程序发生由于内存泄露引起的失败,揭示程序中的隐含的问题或冲突。
验证稳定性和可靠性:在一个生产负荷下执行测试一定的时间是评估系统稳定性和可靠性是否满足要求的唯一方法。
性能测试的类型————————————————————————性能测试类型包括负载测试,强度测试,容量测试等。负载测试:负载测试是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。
强度测试: 强度测试是一种性能测试,表明在系统资源特别低的情况下软件系统运行情况。
容量测试:确定系统可处理同时在线的最大用户数。
负载压力测试————————————————————————系统的负载压力测试(负载测试)是指系统在某种指定软件、硬件及网络环境下承受的流量,例如:并发用户数、持续运行时间、数据量等,其中并发用户数是负载压力的重要体现。系统在应用环境下主要承受并发访问用户数、无故障稳定运行时间、大数据量操作等负载压力。负载压力测试的目的如下:在真实环境下检测系统性能,评估系统性能是否可以满足系统的性能设计要求。
预见系统负载压力承受力,对系统的预期性能进行评估。
进行系统瓶颈分析、优化系统。
在网络应用系统中,负载压力测试应重点关注客户端、网络、服务器(包括应用服务器和数据库服务器)的性能。应获取的关键测试指标如下:客户端:并发用户数、响应时间、交易通过率以及吞吐量等。
网络:带宽利用率、网络负载、延迟以及网络传输和应用错误等。
服务器:操作系统的CPU占用率、内存使用、硬盘I/O等;数据库服务器的会话执行情况、SQL执行情况、资源争用以及死锁等;应用服务器的并发连接数、请求响应时间等。

第三方测试

第三方测试指独立于软件开发方和用户方的测试,组织的测试也称为"独立测试"。软件质量工程强调开展独立验证和确认(IV&V)活动,是由在技术、管理和财务上与开发组织具有规定程序独立的组织执行验证和确认过程。软件第三方测试是相对独立的组织进行的软件测试,一般情况下是在模拟用户真实应用环境下,进行的软件确认测试。第三方测试机构是一个中介的服务机构,它通过自己专业化的测试手段为客户提供有价值的服务。但是这些服务不同于公司内部的测试,因为第三方测试机构的测试除了发现软件问题之外,还有科学公正地评价软件的职能,这就要求该机构要保持公正、廉洁、客观、科学且独立的态度。第三方测试机构存在的价值主要是由软件公司、软件用户,以及国家的公正诉求所决定的。对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观且科学的评价,有助于开发商认清自己产品的定位。
对于行业主管部门以及软件使用者来说,第三方测试机构可帮助选择合适且优秀的软件产品。而对于一些信息工程项目来说,在验收之前,经过第三方机构的严格测试,可以最大程度地避免信息行业的"豆腐渣"工程。
此外,经过国家认可的第三方测试机构,还为国家软件产品的质量监督抽查提供独立公正的测试支持。在选择第三方测试机构时,主要查看其资质、信息系统工程测评经验、测试环境、测试工具及测试工程师队伍的素质等。

面向对象测试基础
面向对象测试是与采用面向对象开发相对应的测试技术,它通常包括4个测试层次,从低到高排列分别是算法层、类层、模板层和系统层。

算法层:测试类中定义的每个方法,基本上相当于传统软件测试中的单元测试。
类层:测试封装在同一个类中的所有方法与属性之间的相互作用。在面向对象软件中类是基本模块,因此可以认为这是面向对象测试中所特有的模块(单元)测试。
模板层:也称为主题层,测试一组协同工作的类或对象之间的相互作用。大体上相当于传统软件测试中的子系统测试,但是也有面向对象软件的特点(例如:对象之间通过发送消息相互作用)。
系统层:把各个子系统组装成完整的面向对象软件系统,在组装过程中同时进行测试。
设计测试方案的传统技术,例如:逻辑覆盖、等价划分、边界值分析和错误推测等方法,仍然可以作为测试类中每个方法的主要技术。面向对象测试的主要目标,也是用尽可能低的测试成本和尽可能少的测试方案,发现尽可能多的错误。但是,面向对象程序中特有的封装、继承和多态等机制,也给面向对象测试带来一些新特点,增加了测试和调试的难度。

3.3.2.3 软件维护

软件维护的类型(掌握)

更正 性维护
适应 性维护
完善 性维护
预防 性维护

3.3.3 软件质量保证及质量评价(掌握)

软件质量:软件特性的总和,是软件满足用户需求的能力,即遵从用户需求,达到用户满意。

软件质量包括 “内部质量” “外部质量” 和 “使用质量” 三部分()。

软件质量管理过程:质量保证过程验证过程确认过程评审过程审计过程

① 软件质量保证:
通过制订计划、实施和完成等活动保证项目生命周期中的软件产品和过程符合其规定的要求。② 验证与确认:验证过程试图确保活动的输出产品已经被正确构造,即活动的输出产品满足活动的规范说明;确定某一活动的产品是否符合活动的需求,最终的软件产品是否达到其意图并满足用户需求。
确认过程则试图确保构造了正确的产品,即产品满足其特定的目的。③ 评审与审计:
包括管理评审、技术评审、检查、走查、审计等。管理评审的目的是: 监控进展,决定计划和进度的状态,或评价用于达到目标所用管理方法的有效性。技术评审的目的是评价软件产品,以确定其对使用意图的适合性。软件审计的目的是: 提供软件产品和过程对于可应用的规则、标准、指南、计划和流程的遵从性的独立评价。审计是:正式组织的活动,识别违例情况,并要生成审计报告,采取更正性行动。

3.3.4 软件配置管理(了解)

3.3.5 软件过程管理(了解)

➢ 启动与范围定义
➢ 规划
➢ 实施
➢ 监控和评审
➢ 收尾与关闭

3.3.5 软件开发工具(了解)

6 软件配置管理工具:追踪、版本管理工具、发布工具(考)

3.4 面向对象系统分析与设计

3.4.1 面向对象的基本概念

面向对象的基本概念有对象、类、抽象、封装、继承、多态、接口、消息、组件、模式和复用等。

3.4.2 统一建模语言与可视化建模

统一建模语言(Unified Modeling Language,UML)用于对软件进行可视化描述、构造和建立软件系统的文档。

UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。

注意:UML是一种可视化的建模语言,而不是编程语言

比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。

RUP(Rational Unified Process)是使用面向对象技术进行软件开发的最佳实践之一。

3.4.3 面向对象系统分析

面向对象系统分析:运用面向对象方法分析问题域,建立基于对象、消息的业务模型,形成对客观世界和业务本身的正确认识。

模型组成:用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。

3.4.4 面向对象系统设计

面向对象系统设计基于系统分析得出的问题域模型,用面向对象方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。

包括:用例设计类设计子系统设计等。

3.5 软件架构

3.5.2 软件架构模式

  • 管道/过滤器模式。

体现各功能模块高内聚、低耦合的”黑盒“特性,支持软件功能模块的重用,便于系统维护;同时,每个过滤器自己完成数据解析和合成工作(如加密和解密),易导致系统性能下降,并增加过滤器具体实现的复杂性。

  • 面向对象模式。

将模块数据的表示方法及其相应操作封装在更高抽象层次的数据类型或对象中。典型应用:基于组件的软件开发(Component-Based Development,CBD)

  • 事件驱动模式。

出发事件会导致另一组件中操作的调用,典型应用:各种图形界面应用。

  • 分层模式。

层次化的组织方式,每一层都为上一层提供服务,并使用下一层提供的功能,且每一层最多只影响相邻两层。典型:分层通信协议(如ISO/OSI的七层网络模型)

  • 客户/服务器模式(Client/Server,C/S)。

服务器(后台)负责数据操作和事务处理,客户(前端)完成与用户的交互任务。为解决C/S模式中客户端的问题 =》浏览器/服务器(Browser/Server,B/S)

3.5.3软件架构分析与评估

分布式应用(广泛使用的)还需考虑:

数据库的选择。主流:关系型数据库

用户界面选择。HTML/HTTP(S)

灵活性和性能问题。

技术选择。成熟度、优势、适用范围、局限性。

人员问题。经验丰富架构设计师。

3.6 典型应用集成技术

3.6.1数据库与数据仓库技术

==数活仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。==数据仓库是对多个异构数据源(包括历史数据的有效成,集成后按题重组,且存放在数据中的数据一般不再修改。

3.6.2Web Services 技术

随着Internet 应用逐渐成为 B2B 应用平台,应用集成所面临的问题也日益突出:各种组件之间的“战争”、各种编程语言之间的“战争”、防火墙的阻挡、互操作协议的不致等。
Web 服务(Web Services)定义了一种松散的、粗粒度的分布计算模式,使用标准的 HTTP(S)协议传送XML示及装的内容。
Web 服务的典型技术包括:用于传递信息的简单对象访问协议(Simple Object AccessProtocal,SOAP)用于描述服务的Web 服务描述语言(Web Services Description LanguageWSDL)用于 Web 服务注册的统一描述发现及集成(Universal Description Discovery andIntegration,UDDI)、用于数据交换的XML。
Web 服务的主要目标是跨平台的互操作性,适合使用 Web Services 的情况包括:跨越防火墙、应用程序集成、B2B 集成、软件重用等。同时,在某些情况下,Web 服务也可能会降低应用程序的性能。不适合使用 Web 服务的情况包括:单机应用程序、局域网上的同构应用程序等。
随着云计算技术的普及,Web Service 逐渐融入到云计算 SaaS 服务中。

3.6.3 JavaEE 架构

JavaEE应用服务器运行环境主要包括
组件(Component)
容器(Container)及
服务(Services)三部分。
组件是表示应用逻辑的代码,容器是组件的运行环境:服务则是应用服务器提供的各种功能接口,可以同系统资源进行交互。

3.6.4NET架构

微软的NET 是基于一组开放的互联网协议而推出的一系列的产品、技术和服务。NET开发框架在通用语言运行环境(Common Language Runtime)基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语
言快速构建网络应用。通用语言运行环境处于,NET 开发框架的最低层,是该框架的基础,它为多种语言提供了统一的运行环境、统一的编程模型,大大简化了应用程序的发布和升级、多种语言之间的交互、内存和资源的自动管理等等。
JavaEE 与NET 都可以用来设计、开发企业级应用。JavaEE 平台是业界标准,有多家厂商实现了这些标准(工具、应用服务器等。NET 是微软的产品系列,而非业界标准。这使二者在实现技术及应用等各方面均有很多不同之处。

3.6.5软件整技术

软件引擎通常是系统的核心组件,目的是封装某些过程方法,使得在开发的时候不需要过多地关注其具体实现,从而可以将关注点聚焦在与业务的结合上。工作流程引擎是工作流管理系统的运行和控制中心。通过工作流程引擎,可以解释流程建模工具中定义的业务流程逻辑,进行过程、活动实例的创建,把任务分派给执行者,并根据任务执行的返回结果决定下一步的任务,控制并协调各种复杂工作流程的执行,实现对完整的业务流程生命周期的运行控制。工作流程引擎的主要功能是流程调度和冲突检测。

3.6.6组件及其在系统集成项目中的重要性

组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。满足此目的的封装体被称作组件。在这一过程中,为了完成对某一规则的封装,可以用任何支持组件编写的工具来完成,而最终完成的组件则与语言本身没有任何关系,甚至可以实现跨平台。对使用者而言,它就是实现了某些功能的、有输入输出接口的黑盒子

3.7 计算机网络知识

3.7.1网络准与协议

    1. OSI七层协议
    1. 网络协议和标准

3.7.2 Internet 技术及应用

1.TCP/IP 技术
TCP/IP 是 Imntermet 的核心,利用 TCP/IP 协议可以方便地实现多个网络的无缝连接。

3.7.6网络储技

网络存储技术(Network Storage Technology)是基于数据存储的一种通用网络术语网络存储结构大致分为3 种:
直连式存储(DAS: Dirct Attached Storage)、
网络存储设备(NAS: Network Attached Storage)
存储网络 (SAN: Storage Area Network)。

3.7.12网络安全

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断。
信息安全的基本要素有:
机密性;确保信息不暴露给未授权的实体或进程
完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改
可用性:得到授权的实体在需要时可访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作。
可控性:可以控制授权范围内的信息流向及行为方式
可审查性:对出现的网络安全问题提供调查的依据和手段

3.8 新兴信息技术

3.8.1 云计算

1、云计算的特点:
(1) 超大规模
(2) 虚化
(3) 高可靠性
(4) 通用性
(5) 高可扩展性
(6) 按需 服务
(7)极其廉价
(8) 潜在的危险性

2、云计算又可以分为公有云、私有云、混合云
云计算架构:从对外提供的服务能力来看,云计算的架构可以分为 3 个层次:
基础设施即服务(l a aS)、
平台即服务(Pa aS)和
软件即服务(SaaS)(详见本书1.6.2节)。
(1)基础设施即服务(laaS)
英文为Infrastructure as a Service, 指消费者通过nternet可以从云计算中心获得完善的计算机基础设施服务,例如虑拟主机、存储服务等,典型厂家有 Amazon、阿里云等。如果把云计算比作一合计算机,laa 就相当于计算机的主机等硬件。
(2)平台即服务(Pa aS)
英文为Platform asaService, 指为云计算上各种应用软件提供服务的平台应用,其作用类似于个人计算机的操作系统也包括一些增强应用开发的开发包" 典型厂家有 Google App Engine、Microsoft Azure、阿里Aliyun CloudEnginee、百度 Baidu App Enginee 等。
(3)软件即服务(SaaS)英文为 Software as a Service, 是一种通过 Internet 提供软件的模式, 用户无需购买软件,而是向提供商租用基于 Web 的软件,来管理企业经营活动。类似于个人计算机中各种各样的应用软件。提供 SaaS 服务的厂家越来越多,典型的如国外的 Salesforce、国内的淘宝等。

3.8.2 物联网

1.物联网概念
指通过射频识别(RFID)、红外感应器、全球定位系统、激物联网(loT: The lnternet of Things) 即“物物相联之网”光扫描器等信息传感设备,按约定的协议,把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。从计算机的协同处理来划分,可分为独立计算、互联网和物联网时代,如图3-14所示。

2、物联网不是一种物理上独立存在的完整网络。物联网概念的3 个方面如下。
(1)物: 客观世界的物品,主要包括人、商品、地理环境等。
(2)联: 通过互联网、通信网、电视网以及传感网等实现网络互联。
(3)网: 首先,应和通讯介质无关,有线无线都可。其次,应和通信拓扑结构无关,总线、星型均可。最后,只要能达到数据传输的目的即可。

3、物联网从架构上面可以分为感知层网络层应用层
(1)感知层:
负责信息采集和物物之间的信息传输,信息采集的技术包括传感器、条码和二维码 RFID 射频技术音视频等多媒体信息,信息传输包括远近距离数据传输技术、自组织组网技术、协同 信息处理技术、信息采集中间件技术等传感器网络。感知层是实现物联网全面感知的核心能力,是物联网中包括关键技术。
(2)网络层:
是利用无线和有线网络对采集的数据进行编码、认证和传输,广泛覆盖的移动通信网络是实现物联网的基础设施,是物联网三层中标准化程度最高、产业能力最强、最成熟的部分,关键在于为物联网应用特征进行优化和改进,形成协同感知的网络。
(3)应用层:
提供丰富的基于物联网的应用,是物联网发展的根本目标。

4、物联网关键技术:
感知层作为物联网架构的基础层面,主要是达到信息采集并将采集到的数据上传 的目的
感知层的技术主要包括:产品和传感器(条码、RFID、传感器等) 自动识别技术,无线传输技术 (WLANBluetooth、ZigBee、UWB),自组织组网技术和中间件技术。

5、物联网的产业链包括传感器和芯片、设备、网络运营及服务、软件与应用开发和系统集成。
作为物联网“金字塔”的塔座,传感器将是整个链条需求总量最大和最基础的环节

3.8.3 移动互联网

1、移动互联网一般是指用户用手机等无线终端,通过3G 或者 WLAN 等速率较高的移动网络接入互联网可以在移动状态下(如在地铁、公交车上等) 使用互联网的网络资源。

2、从技术层面的定义: 以宽带 P 为技术核心,可以同时提供语音、数据、多媒体等业务的开放式基础电信网络.

3、移动互联网=移动通信网络+互联网内容和应用,它不仅是互联网的延伸,而且是互联网的发展方向。

4、移动终端在处理能力、显示效果、开放性等方面无法和 PC 相提并论,但在个性化、永远在线、位置性等方面强于PC。由于移动终端具有小巧轻便、随身携带两个特点,决定了移动互联网应用应具 有下列新特征而不是传统互联网应用的简单复制和移植。
(1)接入移动性:移动终端的便携性使得用户可以在任意场合接入网络,移动互联网的使用场景是动态变化的。
(2)时间碎片性:用户使用移动互联网的时间往往是上下班途中、工作之余、出差等候间隙等碎片时间,数据传输具有不连续性和突发性。
(3)生活相关性:移动终端被用户随身携带,具有唯一号码,与移动位置关联等特性使得移动应用可以进入人们的日常生活,满足衣食住行吃喝玩乐等需求。
(4)终端多样性:目前各手机厂商分足鼎立,有各自不同的操作系统和底层硬件,终类型多样,尚未形成统的标准化接口协议。

5、即面向服务的架构,SOA 是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。
SOA 可以看作是 B/S 模型、XML(标准通用标记语言的集)eb Service 技术之后的自然延伸。
Web Service 是目前实现 SOA 的主要技术。

6、Web 2.0严格来说不是一种技术,而是提倡众人参与的互联网思维模式

7、HTML5 具有高度互动性、丰富用户体验以及功能强大的客户端。

8、Android、IOS、window Phone 等系统。

3.8.4大数据-Big Data(P171)

大数据所涉及的技术很多,主要包括数据采集数据存储数据管理数据分析与挖掘四个环节。在数据采集阶段主要使用的技术是数据抽取工具 ETL
在数据存储环节主要有结构化数据、非结构化 数据和半结构化数据的存储与访问。(P172)
(1) HDFS
Hadoop 分布式文件系统(HDFS)是适合运行在适用硬件上的分布式文系统罗是一个高度容错性的 系统罗适合部署在廉价的机器上。HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应 用。(2) HBase
HBase 是一个分布式的、面向列的开源数据库,HBase 不同于一般的关系数据库,它是一个适合于非 结构化数据存储的数据库。另一个不同的地方是HBase 基于列的而不是基于行的模式。(3) (3)MapReduce
MapReduce是一种编程模型,用于大规模数据集(大于1TE)的并行运算
(4) ChukwaChukwa 是一个开源的用于监控大型分布式系统的数据收集系统。这是构建在Hadoop 的HDFS 和 Map/Reduce 框架之上的,继承了Hadoop 的可伸缩性和鲁棒性。Chukwa 还包含了一个强大而灵活的工 具集,可用于展示、监控和分析己收集的数据。

历年考题


2022年5月

(全国卷)某信息系统在开发过程中先搭建整体框架,实现用户主体需求,后续通过 2-3 个版本升级逐步完善,直至实现用户的全部需求。则该系统采用的开发方法是 (11)
A、结构化方法
B、面向对象方法
C、瀑布法
D、原型法。
参考答案:: D
解析:(重点)
P133-134
结构化是自顶向下,逐步分解,依次完成
面向对象强调把事物由对象 组成,对象是对事物的抽象,关键点在于能否建立一个全面、合理、统一的模型,它既能反映问题域,又能被计算机系统求解域所接受。
瀑布是开发模型而不是开发方法。
原型法是当需求不明确和结构化成都不高的系统开发的项目。先快迷建立一个原型系统,然 后反复修改实现最终需求。特点:实际可行、具有最终系统的基本特征、构造方便和快速且 造价低。题中需要几个版本多次迭代,所以选原型法

(全国卷)软件开发中,由编码人员自己写代码来验证功能模块的测试是(12)
A、单元测试
B、集成测试
C、系统测试
D、黑盒测试
参考答案:A
解析: P136 单元测试:验证软件单元是否按照单元规格说明(详细设计说明)正确执行,即保证每个最小的单元能够正常运行。单元测试一般由开发人员来执行,首先设定最小的测试单元,然后通过 设计相应的测试用例来验证各个单元功能的正确性。

(全国卷)有两个类 Apple 和 Tomato 均继承父类 Fod,这三个类均实现了 getTaste ()方法但Apple、getTaste ()和 Tomato. getTaste ()的实现是完全不同的。这体现了面向对象的设计 (00D)中的(13)。
A.封装
B.抽象
C.多态。
D.接口
参考答案:: C
解析: P139 页,
多态使得多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。Apple 和 Tomato均继承父类Food,均实现了 getTaste ()方法,但Apple、getTaste ()和Tmato.getTaste ()的实现是完全不同的,体现了多态特征。

(全国卷)软件配置管理关注的是 (14)。
A.软件生命周期中的变更。
B.建立基线
C.软件发布管理与交付
D.组织单元之间的联系
参考答案::A
解析:P137,1软件配置控制关注的是管理软件生命周期中的变更

(全国卷)关于中间件的描述,不正确的是(15)-
A.中间件是一种通用服务,解决了分布系统的异构问题
B.中间件具有标准的程序接口和协议,可实现应用与平台的无关
C.中间件可以在多种操作系统上运行
D.面向消息中间件是建立对象之间客户/服务器关系的中间件
参考答案:

【软考-中级】系统集成项目管理工程师-【3信息系统集成专业技术知识】相关推荐

  1. 【系统集成项目管理工程师】信息系统集成专业知识

    信息系统集成专业技术 一 信息系统建设 1 信息系统生命周期 立项阶段:即概念阶段或需求阶段,这一阶段根据用户业务发展和经营管理的需要,提出建设信息系统的初步构想,然后对企业信息系统的需求进行深入调研 ...

  2. 【系统集成项目管理工程师】信息系统集成及服务

  3. 系统集成项目管理工程师和信息系统管理工作师哪个好考一些

    系统集成项目管理工程师和信息系统管理工作师哪个好考一些? 软考中级,个人感觉还是系统集成项目管理工程师比较简单些!

  4. 系统集成项目管理工程师和信息系统管理工程师考试指南

    系统集成项目管理工程师和信息系统管理工程师考试指南   系统集成项目管理工程师考试说明(项目经理) 1.考试目标 通过本考试的合格人员能够掌握系统集成项目管理的知识体系:具备管理系统集成项目的能力:能 ...

  5. 【系统集成项目管理】之信息系统集成(二)

    文章目录 系列文章 前言 信息系统集成(二) 四.面向对象系统分析与设计 1.面向对象的基本概念 2. 统一建模语言与可视化建模 五.软件架构 1. 定义: 2. 模式 3. 分析与评估 4. 软件中 ...

  6. 计算机系统集成双代号网络图讲解,系统集成项目管理工程师双代号时标网络图知识解读...

    系统集成项目管理工程师双代号时标网络图知识解读 一.双代号时标网络计划的概念及特点 1.双代号时标网络计划的概念 双代号时标网络计划(简称时标网络计划)是以时间坐标为尺度绘制的网络计划,它是综合应用横 ...

  7. 软考中级 真题 2018年下半年 系统集成项目管理工程师 基础知识 上午试卷

    全国计算机技术与软件专业技术资格(水平)考试 2018年下半年 系统集成项目管理工程师 上午试卷 (考试时间 9 : 00-11 : 30 共 150 分钟) 1. 在答题卡的指定位置上正确写入你的姓 ...

  8. 软考中级 真题 2016年下半年 系统集成项目管理工程师 基础知识 上午试卷

    全国计算机技术与软件专业技术资格(水平)考试 2016年下半年 系统集成项目管理工程师 上午试卷 (考试时间 9 : 00-11 : 30 共 150 分钟) 1. 在答题卡的指定位置上正确写入你的姓 ...

  9. 软考中级 真题 2016年上半年 系统集成项目管理工程师 应用技术 下午试卷

    全国计算机技术与软件专业技术资格(水平)考试 2016上半年 系统集成项目管理工程师 下午试卷I (考试时间 14:00-16:30 共 150 分钟) 1.在答题纸的指定位置填写你所在的省.自治区. ...

  10. 软考中级 真题 2013年下半年 系统集成项目管理工程师 基础知识 上午试卷

    全国计算机技术与软件专业技术资格(水平)考试 2013年下半年 系统集成项目管理工程师 上午试卷 (考试时间 9 : 00-11 : 30 共 150 分钟) 1. 在答题卡的指定位置上正确写入你的姓 ...

最新文章

  1. js实现UTC时间转为北京时间,时间戳转为时间
  2. Web Developer中文版下载
  3. Spring和CXF整合发布WebService(服务端、客户端)
  4. 一个提高SQL Server操作效率的软件
  5. 股市大涨是不是楼市就要跌了?
  6. 后端在插入数据发现重复如何正确的弹出警告_前百度面试官整理的——Java后端面试题(一)...
  7. 【Rpc】基于开源Dubbo分布式RPC服务框架的部署整合
  8. 南京理工大学计算机专业考研,2020南京理工大学计算机考研初试科目、参考书目、复试详情汇总...
  9. poj 3714 Raid
  10. android有用代码片段 (一)
  11. 10款开源网上教学课程管理系统
  12. InstallShield教程-打包.NET程序
  13. 逍遥魔兽手动打开mysql_逍遥魔兽gm命令使用
  14. 如何向 Windows 7 镜像中添加 USB3.0 驱动
  15. php反序列化漏洞 freebuf,入门Web需要了解的PHP反序列化漏洞
  16. Google Earth Engine(GEE)实例代码学习十一——影像全色波段融合提高分辨率(HSV Pan Sharpening)
  17. 软件是计算机程序和,程序和软件有何区别?
  18. 2021年G1工业锅炉司炉考试试卷及G1工业锅炉司炉模拟考试题
  19. Java实现crc16校验 附上校验工具对照。解决长数据校验不正确的问题
  20. 【在 Nervos CKB 上做开发】Nervos CKB 脚本编程简介[1]:验证模型

热门文章

  1. 内部稽核与内部控制管理体系关系的探讨
  2. 分布式系统之-我的书单
  3. 计算机不小心办公软件,电脑表格不小心删除怎么恢复-互盾数据恢复软件
  4. 见微智著 - 从一个小例子看Python中的单元测试
  5. 智能家居系统中网关与服务器如何连接?
  6. dad my_每个爸爸都应该给孩子读的大师绘本 - 《My Dad》绘本解读
  7. prometheus 配置服务器监控、服务监控、容器中服务监控与告警
  8. java中dom是什么_程序员总说的DOM到底是什么?
  9. java的jsf是什么_什么是 JSF(Java Server Faces)
  10. 远距离激光多脉冲测距TDC2K8S芯片使用