目录
一、信息系统建设
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)原型化方法
原型法认为在很难一下子准确的提出客户需求的情况下,首先不要求一定要对系统做全面、详细的调查、分析,而是本着开发人员对用户需求的初步理解,先快速开发一个原型系统,然后通过反复修复来实现用户的最终需求。【先开发原型系统】
原型法适用于那些需求不明确的系统开发,对于分析层面难度大、技术层面难度不大的系统,适合原型化开发,对于技术层面难度远大于分析层面的系统则不适合。
根据原型是否可以实现功能分为水平原型(只有页面,没有功能)和垂直原型(实现了一些功能),从原型的最终结果分为抛弃式原型和演化式原型。原型化方法执行流程如下:
(3)面向对象方法
一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称 OO(Object - Oriented)方法,是建立在【对象】的概念基础上的方法学。
从信息系统的总体目标出发,根据系统逻辑功能的要求,并结合经济、技术条件、运行环境和进度等要求,确定系统的总体架构和系统各组成部分的技术方案,合理的选择计算机、通信及存储的软硬件设备,制定系统的实施方案。
通过对系统的一系列分解,最终形成系统的整体架构,系统的选型主要取决于系统架构。
综合考虑功能要求、内外部环境和主客观条件。
DBMS(DataBase Manage System)数据库管理系统。
软件需求是针对解决问题的特征的描述。所定义的需求必须可以被验证,在资源有限时,可以通过优先级对需求进行权衡。通过需求分析,可以:
需求分为不同的层次:业务需求(对系统层次的目标要求,来自项目项目投资人、客户、市销人员或产品策划部门)、用户需求(最终用户的具体目标,需要系统必须可以完成的任务)、系统需求(从系统的角度来说明软件的需求,包括功能、非功能需求和设计约束)。
(1)软件设计
根据软件需求,产生一个软件内部结构的描述,并作为软件构造的基础。通过软件设计,描述出软件架构及相关组件之间的接口,然后进一步详细的描述组件,以便能构造这些组件。软件设计分为软件架构设计和详细设计两个阶段。
(2)软件测试
测试是为评价和改进产品质量、识别产品的缺陷和问题而进行的活动,测试贯穿整个开发和维护过程中,它本身是产品构造的一个重要部分。
根据软件的开发过程可以把软件测试分为多个阶段:
(3)软件维护
可以将软件维护定义为需要提供软件支持的全部活动,这些活动包括在交付前完成的活动,以及交付后完成的活动,维护的类型有更正性维护、适应性维护、完善性维护(主要部分)、预防性维护。
软件质量 | 内部质量 | 功能性、可用性、易用性、效率、维护性、可移植 |
外部质量 | ||
使用质量 | 有效性、生产率、安全性和满意度 | |
软件质量管理过程 |
软件质量保证 | 指定计划、实施和完成 |
验证与确认 | 验证过程、确认过程 | |
评审与审计 | 管理评审、技术评审、检查、走查、审计 |
软件配置管理贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理包括三方面内容:
关键活动包括:配置项、工作空间管理、版本控制、变更控制、状态报告、配置审计等。
软件过程管理涉及技术过程和管理过程,有以下几个方面:
软件复用是指利用已有的软件的各种组件构成新的软件,以缩减软件开发和维护的费用。是一种提高软件生产力和质量的重要技术。
面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
对象:由数据及其操作构成的封装体,系统中用来描述客观事物的一个模块,是构成系统的基本单位。包含对象标识、对象状态、对象行为三个基本要素。
类:类是现实中实体的形式化描述,将实体的属性和操作封装在一起。对象是类的实例、类是对象的模板。
抽象:通过特定的实例抽取共同特征以后形成概念的过程。对象是现实世界中某个实体的抽象,类是一组对象的抽象。
封装:将相关的概念组成一个单元模块,并通过一个名称来引用它(Java 与其他语言最大的区别在于 Java 是完全面向对象的,变量和方法都是封装的)。
继承:类之间的层次关系(父类与子类)。
多态:父类引用指向子类对象,调用方法时会调用子类的实现,而不是父类的实现,这就是多态。
接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。
消息:体现对象间的交互,通过它向目标对象发送操作请求。
组件:标识软件系统可替换的、物理的组成部分。
复用:将已有的软件及其有效成分用于构成新的软件或系统。
模式:描述了一个不断重复发生的问题,以及该问题的解决方案。
统一建模语言 UML(Unified Modeling Language),适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并吸收当今优秀成果的标准建模方法。
统一建模语言 RUP(Rational Unified Process),是使用面向对象技术进行软件开发的最佳实践之一,是软件工程的过程,对所有关键开发活动提供了准则、模板、工具等。
UML 图有以下几种:
运用面向对象的方法分析问题,建立基于对象、消息的业务模型,由用例模型、类-对象模型、对象-关系模型、对象-行为模型组成。
基于系统分析得出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能,包括用例设计、类设计、子系统设计。
软件架构将软件系统划分为多个模块,明确各模块之间的相互作用,组合起来实现系统的全部功能。软件架构设计的核心问题是能否使用结构模式,达到架构级的软件复用。
各种架构不是不是互斥的,可以综合使用。
软件架构设计需要考虑的问题有:
定义1:在一个分布式环境中处于操作系统和应用程序之间的软件;
定义2:是一种独立的系统软件或服务,分布式应用软件借助这种软件在不同的技术之间共享资源,位于客户机服务器的操作系统之上,管理计算机资源和网络通信。
中间件包括数据库访问中间件、远程过程调用中间件、面向消息中间件、分布式对象中间件、事物中间件。
传统的数据库以单一的数据源即数据库为中心,进行事务处理、批处理、决策分析等数据处理工作,主要有操作型处理和分析型处理两类。
数据仓库(DataWarehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。可从两个层面理解数据仓库:
数据仓库系统结构包含四个层次:
web 服务定义了一种松散的、粗粒度的分布式计算模式,使用标准的 HTTP(S) 协议传送 XML 表示和封装的内容;
web services 技术使得运行在不同机器上的不同应用无需借助附加的、专门的第三方软件或硬件,可相互交换数据或集成。根据 web services 服务规范来实施的应用与应用之间无论它们使用什么语言、平台或者内部协议,都可以互相交换数据。
XML,可拓展性标记语言,类似 HTMl,设计宗旨是传输数据,而非显示数据;XML 标签没有被预定义,需要自行定义,是 W3C 的推荐标准。
JavaEE(Java Platform Enterprise Edition)即 Java 的平台企业版,是 Sun 公司为企业级应用推出的标准平台,用来开发 B/S 架构软件,JavaEE 是一个框架,也可以说是一种规范。
.NET 是微软新一代技术平台,为敏捷商务构建互联互通的应用系统。它的执行机制与很多编程语言都不同,先将高级语言(C#、VB)编译成为中间语言(IL),然后在编译为机器语言。
软件引擎通常是系统的核心组件,目的是封装某些过程方法,使得在开发的时候不需要过多关注具体实现,从而可以将关注点聚焦在与业务的结合上。
组件是实现了某些功能的、有输入输出接口的黑盒子,它将一些人们所关心的,但不便让最终用户去直接操作的细节进行封装,同时实现各种业务逻辑规则,用于处理用户的内部操作细节。
常用的组件标准有:微软的 COM/DCOM/COM+、OMG 的 CORBA、Java 的 RMI/EJB。
云计算是基于互联网的超级计算模式,通过互联网来提供大型计算能力和动态易拓展的虚拟化资源;它还是一种大集中的服务模式,服务端可以通过网格计算将大量低端计算机和存储资源整合在一起,提供高性能的计算能力、存储服务、应用和安全管理等。
客户端可以根据需要,动态申请计算、存储和应用服务,在降低硬件、开发和运维成本的同时大大拓展了客户端的处理能力。除此之外,云计算通过网络提供的可动态伸缩的廉价计算能力。
云计算具有以下特点:
云计算服务类型分为:
从云计算的核心及大型数据中心的内部结构来看,云计算结构包括:
从应用范围来看,云计算又可分为:
物联网是通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。
物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络。其用户延伸和拓展到了任何物品和物品之间,进行信息交换和通信,即物物相联。
物联网从架构上分为:
物联网应用如下:
移动互联网一般是用手机等无线终端,通过 3G、4G、5G、WLAN 等速率较高的移动网络接入互联网,可以在移动的情况下使用互联网的网络资源。
关键技术包括架构技术 SOA、页面展示技术、web2.0、HTML5 以及主流的开发平台 Android 和 ios、鸿蒙。
移动互联网 = 移动网络通讯 + 互联网内容和应用,它是互联网的延伸,也是发展方向。
移动互联网具有以下特征:
大数据(big data)是指无法在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合。针对大数据的分析处理,不能使用随机分析法,而是应该对所有数据进行分析处理。
大数据的特点如下(5V):