【软考】系统集成项目管理工程师(三)系统集成专业技术知识

目录

一、信息系统建设

1. 信息系统的生命周期

2. 信息系统开发方法

二、信息系统设计

1. 方案设计

2. 系统架构设计

3. 设备、DBMS 及技术选型设计

三、软件工程

1. 软件需求分析和定义

2. 软件设计、测试和维护

3. 软件质量保证及质量评价

4. 软件配置管理

5. 软件过程管理

6. 软件开发工具

7. 软件复用

四、面向对象系统分析与设计

1. 面向对象的基本概念

2. 统一建模语言与可视化建模

3. 面向对象的系统分析和设计

五、软件架构

1. 软件架构定义

2. 软件架构模式

3. 软件结构分析与评估

4. 软件中间件

六、典型应用集成技术

1. 数据库与数据仓库技术

2. WEB Services 技术

3. JavaEE

4. .NET 架构

5. 软件引擎技术

6. 组件在系统集成项目中的重要性

七、新兴信息技术

1. 云计算

2. 物联网

3. 移动互联网

4. 大数据


一、信息系统建设

信息系统集成是将计算机软件、硬件、网络通信、信息安全等技术和产品集成为能够满足用户特性需求的信息技术,信息系统建设的内容包括采购系统集成软件开发运维服务

1. 信息系统的生命周期

  • 立项阶段;即概念阶段或需求阶段,该阶段会形成《需求规格说明书》并确定立项。
  • 开发阶段;以立项阶段所作的需求分析为基础,进行总体规划,之后通过系统分析、系统设计、系统实施、系统验收等工作实现并交付系统。
  • 运维阶段;信息系统通过验收,正式移交给用户以后,进入运维阶段。运维分为更正性维护、适应性维护、完善性维护、预防性维护。
  • 消亡阶段;

2. 信息系统开发方法

(1)结构化方法

应用结构化系统开发方法,把整个系统的开发过程分为若干阶段(规划、分析、设计、实施等),前一阶段是后一阶段的工作依据,按顺序完成。根据用户至上的原则,自始至终的按照结构化、模块化,自顶向下、逐步分解的对系统进行分析与设计。【数据处理、流程】

结构化方法是目前最成熟、应用较广泛的一种工程化方法,特别是适合用于数据处理领域的问题,但不适用于规模较大、比较复杂的系统开发。

结构化方法的主要特点为开发目标清晰化、开发工作阶段化、开发文档规范化、设计方法结构化;它也有一定的局限,如开发周期长、难以适应需求变化、很少考虑数据结构、用户需求必须清楚等。

(2)原型化方法

原型法认为在很难一下子准确的提出客户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修复来实现用户的最终需求。【先开发原型系统】

原型法适用于那些需求不明确的系统开发,对于分析层面难度大、技术层面难度不大的系统,适合原型化开发,对于技术层面难度远大于分析层面的系统则不适合。

根据原型是否可以实现功能分为水平原型(只有页面,没有功能)和垂直原型(实现了一些功能),从原型的最终结果分为抛弃式原型和演化式原型。原型化方法执行流程如下:

 (3)面向对象方法

一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称 OO(Object - Oriented)方法,是建立在【对象】的概念基础上的方法学。

二、信息系统设计

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

1. 方案设计

  • 系统总体设计:总体架构方案设计、软件系统的总体架构设计、数据存储的总体设计、计算机和网络系统的方案设计等。
  • 系统详细设计:包括代码设计、数据库设计、人/机界面设计、处理过程设计等。

2. 系统架构设计

通过对系统的一系列分解,最终形成系统的整体架构,系统的选型主要取决于系统架构。

3. 设备、DBMS 及技术选型设计

综合考虑功能要求、内外部环境和主客观条件。

DBMS(DataBase Manage System)数据库管理系统。

三、软件工程

1. 软件需求分析和定义

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

  • 检测和解决需求之间的冲突;
  • 发现系统的边界;
  • 详细描述出系统需求。

需求分为不同的层次:业务需求(对系统层次的目标要求,来自项目项目投资人、客户、市销人员或产品策划部门)、用户需求(最终用户的具体目标,需要系统必须可以完成的任务)、系统需求(从系统的角度来说明软件的需求,包括功能、非功能需求和设计约束)。

2. 软件设计、测试和维护

(1)软件设计

根据软件需求,产生一个软件内部结构的描述,并作为软件构造的基础。通过软件设计,描述出软件架构及相关组件之间的接口,然后进一步详细的描述组件,以便能构造这些组件。软件设计分为软件架构设计和详细设计两个阶段。

(2)软件测试

测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动,测试贯穿整个开发和维护过程中,它本身是产品构造的一个重要部分。

根据软件的开发过程可以把软件测试分为多个阶段:

  • 单元测试;对软件中的最小可测试单元进行检查和验证。
  • 集成测试;也叫组装测试或联合测试,在单元测试的基础上,将所有模块按照设计要求组装成子系统或者系统,进行集成测试。
  • 系统测试;将已经确认的软件、硬件、外设、网络等结合在一起,进行系统的各种组装测试和确认测试。
  • 验收测试;部署软件前的最后一个测试操作(单元、集成、系统测试之后,产品发布之前),也成为交付测试,目的是确保软件已经就绪。

(3)软件维护

可以将软件维护定义为需要提供软件支持的全部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动,维护的类型有更正性维护、适应性维护、完善性维护(主要部分)、预防性维护。

3. 软件质量保证及质量评价

软件质量 内部质量 功能性、可用性、易用性、效率、维护性、可移植
外部质量
使用质量 有效性、生产率、安全性和满意度

软件质量管理过程

软件质量保证 指定计划、实施和完成
验证与确认 验证过程、确认过程
评审与审计 管理评审、技术评审、检查、走查、审计

4. 软件配置管理

软件配置管理贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理包括三方面内容:

  • VersionControl - 版本控制;
  • ChangeControl - 变更控制;
  • ProcessSupport - 过程支持;

关键活动包括:配置项、工作空间管理、版本控制、变更控制、状态报告、配置审计等。

5. 软件过程管理

软件过程管理涉及技术过程和管理过程,有以下几个方面:

  • 项目启动与范围定义;
  • 项目规划;
  • 项目实施;
  • 项目监控与评审;
  • 项目收尾与关闭。

6. 软件开发工具

  • 需求工具包括需求建模工具与需求追踪工具;
  • 设计工具包括软件设计创建和检查工具;
  • 构造工具包括程序编辑器、编译器、代码生成器等;
  • 测试工具包括测试生成器、测试执行框架、测试评价工具、性能分析工具;
  • 维护工具包括可视化工具、再造工具;
  • 软件配置管理工具包括追踪工具、版本管理工具、发布工具;
  • 软件工程管理工具包括项目计划与追踪工具、风险管理工具、度量工具;
  • 软件工程过程工具包括建模工具、管理工具、软件开发环境;
  • 软件质量工具包括检查工具和分析工具。

7. 软件复用

软件复用是指利用已有的软件的各种组件构成新的软件,以缩减软件开发和维护的费用。是一种提高软件生产力和质量的重要技术。

四、面向对象系统分析与设计

1. 面向对象的基本概念

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

对象:由数据及其操作构成的封装体,系统中用来描述客观事物的一个模块,是构成系统的基本单位。包含对象标识、对象状态、对象行为三个基本要素。

:类是现实中实体的形式化描述,将实体的属性和操作封装在一起。对象是类的实例、类是对象的模板。

抽象:通过特定的实例抽取共同特征以后形成概念的过程。对象是现实世界中某个实体的抽象,类是一组对象的抽象。

封装:将相关的概念组成一个单元模块,并通过一个名称来引用它(Java 与其他语言最大的区别在于 Java 是完全面向对象的,变量和方法都是封装的)。

继承:类之间的层次关系(父类与子类)。

多态:父类引用指向子类对象,调用方法时会调用子类的实现,而不是父类的实现,这就是多态。

接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。

消息:体现对象间的交互,通过它向目标对象发送操作请求。

组件:标识软件系统可替换的、物理的组成部分。

复用:将已有的软件及其有效成分用于构成新的软件或系统。

模式:描述了一个不断重复发生的问题,以及该问题的解决方案。

2. 统一建模语言与可视化建模

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

统一建模语言 RUP(Rational Unified Process),是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程,对所有关键开发活动提供了准则、模板、工具等。

UML 图有以下几种:

  • 用例图(use case diagram),用户能观察到系统功能的模型图,列出了系统种的用例和参与者。用于业务建模、需求获取、定义。

  • 类图(class diagram),展示实体类的静态关系,是软件的蓝图,详细描述了系统内各个对象的相关的类以及类之间的静态关系;
  • 对象图(object diagram),表示在某一时刻类的对象静态结构和行为;
  • 组件图(component diagram),描述各种软件组件之间的依赖关系;
  • 部署图(deployment diagram),描述系统所需的硬件结构的物理部署;
  • 状态图(state diagram),利用状态和事件描述对象本身的行为;

  • 序列图(sequence diagram),也叫顺序图,按时间顺序描述对象间的交互;
  • 协作图(collaboration diagram),表示对象间的协作关系;
  • 活动图(activity diagram),主要用来表示活动次序。

3. 面向对象的系统分析和设计

  • 面向对象的分析(Object-Oriented Analysis,OOA)做什么】

运用面向对象的方法分析问题,建立基于对象、消息的业务模型,由用例模型、类-对象模型、对象-关系模型、对象-行为模型组成。

  • 面向对象的设计(Object-Oriented Design,OOD)怎么做】

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

五、软件架构

1. 软件架构定义

软件架构将软件系统划分为多个模块,明确各模块之间的相互作用,组合起来实现系统的全部功能。软件架构设计的核心问题是能否使用结构模式,达到架构级的软件复用

2. 软件架构模式

各种架构不是不是互斥的,可以综合使用。

  • 管道/过滤器模式;每个组件都有输入输出,典型应用包括批处理系统。

  • 面向对象模式;在面向对象的基础上将模块数据的表示方法及相应操作封装在更高抽象层次的对象中,典型应用是基于组件的软件开发。

  • 事件驱动模式;组件不直接调用操作,而是触发一个或多个事件。
  • 分层模式;每一层为上一层提供服务,并使用下一层提供的功能,如分层通信协议 OSI。

  • 客户/服务器模式;将应用一分为二,服务器负责数据操作和事务处理,客户端完成与用户的交互任务,有C/S、B/S,还有三层模式(通过中间层解决服务端问题)。

3. 软件结构分析与评估

软件架构设计需要考虑的问题有:

  • 关系数据库与非关系数据库的选择;
  • 用户界面选择 C/S、B/S;
  • 灵活性和技能的考虑;
  • 技术的选择;
  • 人员问题。

4. 软件中间件

定义1:在一个分布式环境中处于操作系统应用程序之间的软件;

定义2:是一种独立的系统软件或服务,分布式应用软件借助这种软件在不同的技术之间共享资源,位于客户机服务器的操作系统之上,管理计算机资源和网络通信。

中间件包括数据库访问中间件、远程过程调用中间件、面向消息中间件、分布式对象中间件、事物中间件。

六、典型应用集成技术

1. 数据库与数据仓库技术

传统的数据库以单一的数据源即数据库为中心,进行事务处理、批处理、决策分析等数据处理工作,主要有操作型处理和分析型处理两类。

  • 操作型处理也称事务处理,指对联机数据库的日常操作,通常是对数据库中记录的查询和修改,主要为企业的特定应用服务,强调处理的响应时间、数据的安全性和完整性等;
  • 分析型处理则用于管理人员的决策分析,经常要访问大量的历史数据。

数据仓库(DataWarehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。可从两个层面理解数据仓库:

  • 首先数据仓库用于决策支持,面向分析型数据处理,不同于企业现有的操作型数据库;
  • 其次数据仓库是对多个异构数据源的有效集成,集成后按主题重组,且放在数据仓库中的数据一般不再修改。

数据仓库系统结构包含四个层次:

  • 数据源,数据仓库系统的基础;
  • 数据的存储与管理,核心;
  • 联机分析处理(OLAP),服务器对分析需要的数据进行有效集成,按多维模型组织,以便进行多角度、多层次的分析并发现趋势。
  • 前端工具

2. WEB Services 技术

web 服务定义了一种松散的、粗粒度的分布式计算模式,使用标准的 HTTP(S) 协议传送 XML 表示和封装的内容

web services 技术使得运行在不同机器上的不同应用无需借助附加的、专门的第三方软件或硬件,可相互交换数据或集成。根据 web services 服务规范来实施的应用与应用之间无论它们使用什么语言、平台或者内部协议,都可以互相交换数据

XML,可拓展性标记语言,类似 HTMl,设计宗旨是传输数据,而非显示数据;XML 标签没有被预定义,需要自行定义,是 W3C 的推荐标准。

3. JavaEE

JavaEE(Java Platform Enterprise Edition)即 Java 的平台企业版,是 Sun 公司为企业级应用推出的标准平台,用来开发 B/S 架构软件,JavaEE 是一个框架,也可以说是一种规范。

4. .NET 架构

.NET 是微软新一代技术平台,为敏捷商务构建互联互通的应用系统。它的执行机制与很多编程语言都不同,先将高级语言(C#、VB)编译成为中间语言(IL),然后在编译为机器语言。

5. 软件引擎技术

软件引擎通常是系统的核心组件,目的是封装某些过程方法,使得在开发的时候不需要过多关注具体实现,从而可以将关注点聚焦在与业务的结合上。

6. 组件在系统集成项目中的重要性

组件是实现了某些功能的、有输入输出接口的黑盒子,它将一些人们所关心的,但不便让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。

常用的组件标准有:微软的 COM/DCOM/COM+、OMG 的 CORBA、Java 的 RMI/EJB。

七、新兴信息技术

1. 云计算

云计算是基于互联网的超级计算模式,通过互联网来提供大型计算能力和动态易拓展的虚拟化资源;它还是一种大集中的服务模式,服务端可以通过网格计算将大量低端计算机和存储资源整合在一起,提供高性能的计算能力、存储服务、应用和安全管理等。

客户端可以根据需要,动态申请计算、存储和应用服务,在降低硬件、开发和运维成本的同时大大拓展了客户端的处理能力。除此之外,云计算通过网络提供的可动态伸缩的廉价计算能力。

云计算具有以下特点:

  • 超大规模;
  • 虚拟化;
  • 高可靠性;
  • 通用性;
  • 高可拓展性;
  • 按需服务;
  • 极具廉价;
  • 潜在的危险性。

云计算服务类型分为:

  • IaaS(基础设施即服务):提供计算能力、存储空间等基础方面的服务;
  • PaaS(平台即服务):提供虚拟的操作系统、数据库管理系统、Web 应用等平台化服务;
  • SaaS(软件即服务):提供应用软件、组件、工作流等虚拟化软件的服务。

从云计算的核心及大型数据中心的内部结构来看,云计算结构包括:

  • 资源池:集群管理的各种硬件资源如 CPU、存储和网络带宽等;
  • 云操作系统:通过虚拟化技术对资源池中的各种资源进行统一调度管理;
  • 云平台接口:用户调用云计算资源的接口。

从应用范围来看,云计算又可分为:

  • 公有云:通常为第三方提供商为用户提供的能使用的云;
  • 私有云:为一个客户单独使用而构建的云;
  • 混合云:将公有、私有两种模式结合,根据需要提供统一服务。

2. 物联网

物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。

物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络。其用户延伸和拓展到了任何物品和物品之间,进行信息交换和通信,即物物相联。

物联网从架构上分为:

  • 应用层:是物联网发展的根本目标,将物联网技术与行业信息化需求相结合,实现广泛智能化应用的解决方案;
  • 网络层:对采集的数据进行编码、认证和传输;
  • 感知层:负责信息采集和物物之间的信息传输,是实现物联网全面感知的核心能力。该层的技术主要包括产品和传感器、自动识别技术、无线传输技术、自组织组网技术、中间件技术。

物联网应用如下:

  • 智能微尘;
  • 智能电网;
  • 智慧物流;
  • 智能家居;
  • 智能交通;
  • 智慧农业;
  • 环境保护;
  • 医疗健康;
  • 城市管理,智慧城市;
  • 金融服务保险业,如手机钱包;
  • 公共安全。

3. 移动互联网

移动互联网一般是用手机等无线终端,通过 3G、4G、5G、WLAN 等速率较高的移动网络接入互联网,可以在移动的情况下使用互联网的网络资源。

关键技术包括架构技术 SOA、页面展示技术、web2.0、HTML5 以及主流的开发平台 Android 和 ios、鸿蒙。

移动互联网 = 移动网络通讯 + 互联网内容和应用,它是互联网的延伸,也是发展方向。

移动互联网具有以下特征:

  • 接入移动性;
  • 时间碎片性;
  • 生活相关性;
  • 终端多样性。

4. 大数据

大数据(big data)是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。针对大数据的分析处理,不能使用随机分析法,而是应该对所有数据进行分析处理

大数据的特点如下(5V):

  • Volume(大量)
  • Variety(多样)
  • Value(价值)
  • Velocity(高速)
  • Veracity(真实性)

猜你喜欢

转载自blog.csdn.net/weixin_53072519/article/details/124772845