信息系统集成专业技术知识

信息系统的生命周期可以分为立项、开发、运维及消亡四个阶段。
(1)立项阶段:即概念阶段或需求阶段,这一阶段根据用户业务发展和经营管理的需要,提出建设信息系统的初步构想;然后对企业信息系统的需求进行深入调研和分析,形成《需求规格说明书》并确定立项。
(2)开发阶段:以立项阶段所做的需求分析为基础,进行总体规划。之后,通过系统分析、系统设计、系统实施、系统验收等工作实现并交付系统。
(3)运维阶段:信息系统通过验收,正式移交给用户以后,进入运维阶段。要保障系统正常运行,系统维护是一项必要的工作。系统的运行维护可分为更正性维护、适应性维护、完善性维护、预防性维护等类型。
(4)消亡阶段:信息系统不可避免地会遇到系统更新改造、功能扩展,甚至废弃重建等情况。对此,在信息系统建设的初期就应该注意系统消亡条件和时机,以及由此而花费的成本。

信息系统的开发方法有结构化方法、快速原型法、企业系统规划方法、战略数据规划方法、信息工程方法、面向对象方法。
结构化方法的开发过程一般是先把系统的功能看成是一个大的模块,再根据系统分析与设计的要求对其进行进一步的模块分解或组合。
快速原型法是一种根据用户需求,利用系统开发工具,快速地建立一个系统模型并展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。

BSP (Business System Planning,企业系统规划方法)是企业战略数据规划方法和信息工程方法的基础,也就是说,后两种方法是在 BSP方法的基础上发展起来的。BSP方法的目标是提供一个信息系统规划,用以支持企业短期和长期的信息需求。
战略数据规划方法是由世界级的信息系统大师詹姆斯·马丁提出的一种信息系统开发方法。这个方法认为,一个企业要建设信息系统,首要任务应该是在企业战略目标的指导下做好企业战略数据规划。

在信息系统发展的历程中共有四类数据环境,即数据文件、应用数据库、主题数据库和信息检索系统。
信息工程方法与企业系统规划方法和战略数据规划方法是一种交叉关系,即信息工程方法是其他两种方法的总结和提升,而其他两种方法则是信息工程方法的基础和核心。

面向对象方法专用于面向对象的软件开发。

软件开发的模型有很多种,如瀑布模型、演化模型、增量模型、螺旋模型、喷泉模型、构件组装模型、v模型、RUP、敏捷开发模型等。

瀑布模型
瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈。
因此,如果有信息未被覆盖或者发现了问题,那么最好“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。
瀑布模型适用于需求比较稳定、很少需要变更的项目。
瀑布模型的核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作。即瀑布模型采用结构化的分析与设计方法将逻辑实现与物理实现分开。
将软件生命周期划分为制定计划、需求分析、软件设计、程序编码、软件测试和运行维护六个基本活动,

螺旋模型
螺旋模型将瀑布模型和快速原型模型结合起来,强调了其他模型所忽视的风险分析,特别适合于大型复杂的系统。
螺旋模型采用一种周期性的方法来进行系统开发。该模型是快速原型法,以进化的开发方式为中心,蝶旋模型沿着螺线旋转,在四个象限上分别表达了四个方面的活动:
制定计划——确定软件目标,选定实施方案,弄清项目开发的限制条件。
风险分析——分析所选方案,考虑如何识别和消除风险。
实施工程——实施软件开发。
客户评估——评价开发工作,提出修正建议。

V模型
V模型是瀑布模型的变型,说明测试活动是如何与分析和设计相联系的。

敏捷开发模型
敏捷软件开发是从20世纪90年代开始使用的新型软件开发方法。敏捷软件开发的特点如下:
(1)快速迭代:软件通过短周期的迭代交付、完善产品。
(2)快速尝试:避免过长时间的需求分析及调研,快速尝试。
(3)快速改进:在迭代周期过后,根据客户反馈快速改进。
(4)充分交流:团队成员无缝的交流,如每天短时间的站立会议。
(5)简化流程:拒绝一切形式化的东西,使用简单、易用的工具。

w模型

W模型,由Evolutif公司提出,相对于V模型,W模型增加了软件开发各阶段中同步进行的验证和确认活动。

软件需求
软件需求包括三个层次:业务需求、用户需求和功能需求、非功能需求。

1.业务需求反映了组织机构或客户对系统、产品高层次的目标要求,在项目视图与范围文档中予以说明。
2.用户需求描述了用户使用产品必须要完成的任务。
3.功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求。
4.非功能需求包括产品必须遵从的标准、规范和合约,外部界面的具体细节,性能要求,设计或实现的约束条件及质量属性。

软件设计的基本原则是信息隐蔽与模块独立性。

软件测试
软件测试是指使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
软件测试从是否关心软件内部结构和具体实现的角度划分为白盒测试、黑盒测试、灰盒测试;从是否执行程序的角度划分为静态测试、动态测试;从软件开发的过程按阶段的角度划分为单元测试、集成测试、确认测试、系统测试、验收测试。
动态测试指通过运行程序发现错误;静态测试指被测试程序不在机器上运行,而是采用人工检测和计算机辅助静态分析的手段对程序进行检测。
面向对象测试是与采用面向对象开发相对应的测试技术,它通常包括4个测试层次,从低到高排列分别是算法层、类层、模板层和系统层。
性能测试是通过自动化的测试工具模拟多种正常峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行,统称为负载压力测试。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。
压力测试是通过确定一个系统的瓶颈或者不能接收的性能点,来获得系统能提供的最大服务级别的测试。
第三方测试指独立于软件开发方和用户方的测试,组织的测试也称为“独立测试”。

软件维护
所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。
依据软件本身的特点,软件的可维护性主要由可理解性、可测试性、可修改性三个因素决定。
软件的维护从性质上分为纠错性维护、适应性维护、预防性维护和完善性维护。
纠错性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护是指使用软件适应信息技术变化和管理需求变化而进行的修改。
完善性维护是为扩充功能和改善性能而进行的修改,主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征,这方面的维护占整个维护工作的50%~60%。预防性维护是为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。

软件开发工具具体包括以下一些类型。
(1)软件需求工具,包括需求建模工具和需求追踪工具。
(2)软件设计工具,用于创建和检查软件设计,因为软件设计方法的多样性,这类工具的种类很多。
(3)软件构造工具,包括程序编辑器、编译器和代码生成器、解释器、调试器等。
(4)软件测试工具,包括测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
(5)软件维护工具,包括理解工具(如可视化工具)和再造工具(如重构工具)。
(6)软件配置管理工具,包括追踪工具、版本管理工具和发布工具。
(7)软件工程管理工具,包括项目管理计划与追踪工具、风险管理工具和度量工具等。
(8)软件工程过程工具,包括建模工具、管理工具、软件开发环境。
(9)软件质量工具,包括检查工具和分析工具。

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

CMM ( Capability Maturity Model for Software,全称为SW-CMM,软件能力成熟度模型)就是结合了质量管理和软件工程的双重经验而制定的一套针对软件生产过程的规范。
(1)初始级:软件过程的特点是无秩序的,有时甚至是混乱的。软件过程定义几乎处于无章法和无步骤可循的状态,软件产品所取得的成功往往依赖极个别人的努力和机遇。
(2)可重复级:已经建立了基本的项目管理过程,可用于对成本、进度和功能特性进行跟踪。对类似的应用项目有章可循并能重复以往所取得的成功。焦点集中在软件管理过程上。一个可管理的过程则是一个可重复的过程,一个可重复的过程则能逐渐演化和成熟。
(3)已定义级:用于管理和工程的软件过程均已文档化、标准化,并形成整个软件组织的标准软件过程。
(4)已管理级:软件过程和产品质量有详细的度量标准。
(5)优化级:通过对来自过程、新概念和新技术等方面的各种有用信息的定量分析,能够不断地、持续地进行过程改进。
CMMI(Capability Maturity Model Integration,能力成熟度模型集成)是CMM模型的最新版本。

CMMI也划分为5个成熟度级别:
(1)完成级。企业在完成级上的项目实施对实施人员有很大的依赖性。
(2)管理级。在管理级水平上,保证了企业的所有项目实施都会得到成功。
(3)定义级。企业能够根据自身的特殊情况以及自己的标准流程.
(4)量化管理级。实现数字化的管理。对管理流程要做到量化与数字化。
(5)优化级。在优化级水平上,企业的项目管理达到了最高的境界。企业不仅能够通过信息手段与数字化手段来实现对项目的管理,而且能够充分利用信息资料,对企业在项目实施的过程中可能出现的次品予以预防。能够主动改善流程,运用新技术,实现流程的优化。

软件复用,又称软件重用,是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。

面向对象基础

类是对象的抽象,对象是类的具体实例。

(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。
(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。

(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程。抽象是一种单一化的描述,强调给出与应用相关的特性,抛弃不相关的特性。对象是现实世界中某个实体的抽象,类是—组对象的抽象。

(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。
(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。

(6)多态:使得在多个类中可以定义同一个操作或属性名,并在每个类中可以有不同的实现。多态使得某个属性或操作在不同的时期可以表示不同类的对象特性。

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

(8)消息:体现对象间的交互,通过它向目标对象发送操作请求。
(9)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。组件应当是内聚的,并具有相对稳定的公开接口。
(10)复用:指将已有的软件及其有效成分用于构造新的软件或系统。组件技术是软件复用实现的关键。
(11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案。其包括特定环境、问题和解决方案三个组成部分。应用设计模式可以更加简单和方便地去复用成功的软件设计和架构,从而帮助设计者更快更好地完成系统设计。

统一建模语言(Unified Modeling Languagc,UML)是一个通用的可视化建模语言。

(1)是可视化的建模语言,不是可视化的程序设计语言。

(2)不是过程、方法,但允许过程和方法调用。

(3)简单、可扩展,不因扩展而修改核心。
(4)属于建模语言的规范说明,是面向对象分析与设计的一种标准表示。

(5)支持高级概念(如框架、模式、组件等),并可重用。
(6)可集成最好的软件工程实践经验。

软件架构

1.管道/过滤器模式

2.面向对象模式

3.事件驱动模式

4.分层模式

5.客户/服务器模式(C/S,client/server),分支浏览器/服务器模式(B/S,browser/server),三层C/S结构为中间多一层应用服务器

3软件架构分析与评估
针对目前广泛使用的分布式应用,其软件架构设计需要考虑如下问题。

(1)数据库的选择问题:目前主流的数据库系统是关系数据库。
(2)用户界面选择问题:HTML/HTTP(S)协议是实现 Internet应用的重要技术。

(3)灵活性和性能问题:权衡独立于厂商的抽象定义(标准)所提供的灵活性和特定厂商产品带来的性能。
(4)技术选择的问题:选择成熟的技术可以规避项目风险。不仅需要了解技术的优势,还需要了解技术的适用范围和局限性。
(5)人员的问题:聘请经验丰富的架构设计师,可以有效地保证项目的成功。

软件中间件

(1)数据库访问中间件:通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型技术如Windows平台的ODBC和Java平台的JDBC等。
(2)远程过程调用中间件(Remote Procedure Call,RPC):是一种分布式应用程序的处理方法。一个应用程序可以使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。

(3)面向消息中间件(Message-Oriented Middleware,MOM):利用高效可靠的消息传递机制进行平台无关的数据传递,并可基于数据通信进行分布系统的集成。通过提供消息传递和消息队列模型,可在分布环境下扩展进程间的通信,并支持多种通讯协议、语言、应用程序、硬件和软件平台。
(4)分布式对象中间件:是建立对象之间客户/服务器关系的中间件,结合了对象技术与分布式计算技术。该技术提供了一个通信框架,可以在异构分布计算环境中透明地传递对象请求。

(5)事务中间件:也称事务处理监控器(Transaction Processing Monitor,TPM),提供支持大规模事务处理的可靠运行环境。TPM位于客户和服务器之间,完成事务管理与协调、负载平衡、失效恢复等任务,以提高系统的整体性能。

数据仓库技术

A.ETL(Extract/Transform/Load,抽取/转换/加载):用户从数据源抽取出所需的数据,经过数据清洗、转换,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
B.元数据:关于数据的数据,指在数据仓库建设过程中所产生的有关数据源定义、目标定义、转换规则等相关的关键数据。
C.粒度:数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。
D.分割:结构相同的数据被分成多个数据物理单元。任何给定的数据单元属于且仅属于一个分割。
E.数据集市:小型的,面向部门或工作组级的数据仓库。
F.ODS (Operation Data Store,操作数据存储):能支持企业日常的全局应用的数据集合,是不同于DB的一种新的数据环境,是DW扩展后得到的一个混合形式。四个基本特点:面向主题的、集成的、可变的、当前或接近当前的。
数据源是数据仓库系统的基础,数据源可以有多种,比如关系型数据库、数据文件/(Excel、XML)等。
数据仓库的关键是数据的存储和管理。
OLAP服务器对分析需要的数据进行有效集成,按多维模型予以组织,以便进行多角度、多层次的分析,并发现趋势。前端工具主要包括各种报表工具、查询工具、数据分析工具、数据挖掘工具以及各种基于数据仓库或数据集市的应用开发工具。其中数据分析工具主要针对OLAP服务器,报表工具、数据挖掘工具主要针对数据仓库。

计算机网络基础
OSIRM (Open System Interconnection/Reference Model,开放系统互连参考模型)是1983年ISO颁布的网络体系结构标准。从低到高分七层:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。各层之间相对独立,第N层向第N+1层提供服务。
OSI/RM的七层体系结构参考记忆口诀:“物数网传会表应”。

TCP/IP各层协议以及OSI/RM七层对应关系

网络规划与设计首先要进行需求分析。需求主要考虑网络的功能要求、性能要求、运行环境要求、可扩充性和可维护性要求。
网络规划要遵循实用性、开放性和先进性的原则。网络的设计与实施要遵循可靠性、安全性、高效性和可扩展性原则。层次化的网络设计主要包括核心层、汇聚层和接入层3个层次。

计算机网络分类:局域网、城域网、广域网;拓扑结构分类:总线型、星型、环形。

综合布线主要考虑六大子系统,即工作区子系统、水平干线子系统、管理间子系统、垂直干线子系统、设备间子系统、建筑群子系统。

信息安全:从外部给系统造成的损害,称为威胁;从内部给系统造成的损害,称为脆弱性。系统风险则是威胁利用脆弱性造成损坏的可能。信息系统安全属性有不可抵赖性、完整性、保密性、可用性。

应用系统运行中涉及的安全和保密层次包括四层,这四个层次按粒度从粗到细的排列顺序是系统级安全、资源访问安全、功能性安全、数据域安全。

网络安全的主要特性
(1)保密性。信息不泄露给非授权用户、实体或过程,或供其利用的特性。
(2)完整性。数据未经授权不能进行改变的特性,即信息在存储或传输过程中保持不被修改、不被破坏和丢失的特性。
(3)可用性。可被授权实体访问并按需求使用的特性,即当需要时可以存取所需的信息。
(4)可控性。对信息的传播及内容具有控制能力。(5)可审查性。出现安全问题时提供依据与手段。

云计算概念

云计算是一种大集中的服务模式:服务器端可以通过网格计算,将大量低端计算机和存储资源整合在一起,提供高性能的计算能力、存储服务、应用和安全管理等
其通常具有下列特点:
(1)超大规模
(2)虚拟化
(3)高可靠性
(4)通用性
(5)高可扩展性
(6)按需服务
(7)极其廉价
(8)潜在的危险性

云计算的架构可以分为3个层次:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)
(1)基础设施即服务(IaaS)
英文为Infrastructure as a Service,指消费者通过Internet可以从云计算中心获得完善的计算机基础设施服务,例如虚拟主机、存储服务等。
(2)平台即服务(PaaS)
英文为Platform as a Service,指为云计算上各种应用软件提供服务的平台应用,其作用类似于个人计算机的操作系统。
(3)软件即服务( SaaS)
英文为Software as a Service,是一种通过Internet 提供软件的模式,用户无需购买软件,而是向提供商租用基于Web的软件,来管理企业经营活动。

物联网(IoT:The Internet of Things)即“物物相联之网”,指通过射频识别(RFID)、红外感应器、全球定位系统、激光扫描器等信息传感设备,按约定的协议,把物与物、人与物进行智能化连接,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种新兴网络。
物联网概念的3个方面如下。
物:客观世界的物品,主要包括人、商品、地理环境等。
联:通过互联网、通信网、电视网以及传感网等实现网络互联。
网:首先,应和通讯介质无关,有线无线都可。其次,应和通信拓扑结构无关,总线、星型均可。最后,只要能达到数据传输的目的即可。

物联网架构:感知层(关键技术)、网络层、应用层

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

大数据关键技术:大数据所涉及的技术很多,主要包括数据采集、数据存储、数据管理、数据分析与挖掘四个环节。在数据采集阶段主要使用的技术是数据抽取工具ETL。在数据存储环节主要有结构化数据、非结构化数据和半结构化数据的存储与访问。结构化数据一般存放在关系数据库。