信息系统工程是用系统工程的原理、方法来指导信息系统建设与管理的一门工程技术学科,是信息科学、管理科学、系统科学、计算机科学与通信技术相结合的综合性、交叉性、具有独 特风格的应用学科。信息系统工程的主要任务是研究信息处理过程内在的规律,以及基于计算机、互联网和云计算等现代化手段的形式化表达和处理规律等。信息系统工程的基本概念、原理和方法对实际规划、分析、设计、实现、运行评价和服务一个信息系统,从理论、手段、方法、技术等多方面提供了一套完整、科学、实用的研究与工程体系,具有十分重要的应用价值,对信息系统建设有着重要的理论指导意义。
2.1 信息系统广义的信息系统包含组织内和组织所处环境中的重要人员、地点和事情的信息,通过输入、处理和输出三个基本活动将原始数据转变为有用的信息,具有决策支持、协调、控制、协助管 理者与员工分析问题、可视化复杂对象和创造新产品等功能。信息系统具有三个维度:组织、 管理、信息技术。
狭义的信息系统指由计算机硬件、网络和通信设备、软件、信息资源、信息用户和规章制度组成的以处理信息流为目的的人机一体化系统。从技术上可以定义为一系列支持决策和控制 的相关要素,这些要素主要包括信息的收集、检索、加工处理和信息服务。除了支持决策和控 制外,信息系统还帮助管理人员和生产人员分析问题,使复杂问题可视化,提供新的产品和服 务。它的任务是对原始数据进行收集、加工、存储并处理产生各种所需的有价值的信息,以不同的方式提供给各类用户使用。
2.1.1 信息系统的定义信息系统 (Information System,IS)是 一组相互关联的元素或组件它们收集(输入)、操作(处理)、存储和传播(输出) 数据与信息,并提供满足目标的反馈机制。信息系统的组成部分如图2-1所示。反馈机制可以帮助组织实现其目标(如增加利润或改善客户服务)。
●输入。在信息系统中,输入是收集和捕获原始数据的活动。
●处理。在信息系统中,处理是将数据转换成有用的输出。处理过程包括计算、比较、替代等措施,以及存储数据以备将来使用。处理可以手动完成,也可以在计算机辅助下完成。
●输出。在信息系统中,输出涉及有用信息的产生,通常采用文档和报告的形式。很多时 候, 一个系统的输出可以成为另一个系统的输入。
●反馈。在信息系统中,反馈是系统中用于更改输入或处理活动的信息。例如,错误或问 题可能导致需要更正输入数据或改进过程。除了反馈,计算机系统还可以预测未来事件 以避免问题的出现。
信息系统的五个基本功能包括:输入、存储、处理、输出和控制。
●输入功能。输入功能决定于系统所要达到的目的及系统的能力和信息环境的许可。
●存储功能。存储功能指的是系统存储各种信息资料和数据的能力。
●处理功能。处理功能指的是对数据进行加工、处理和计算,以产生有用的信息。
●输出功能。信息系统的目的就是保证实现最佳的输出。
●控制功能。控制功能对构成信息系统的各种信息处理设备进行控制和管理,对整个信息 加工、处理、传输、输出等环节通过各种程序进行控制。
2.1.2 信息系统的发展现代信息系统与计算机技术和网络技术的发展保持同步。随着社会的进步和技术的发展, 信息系统的内容和形式也在不断发生着变化。1979年,美国管理信息系统专家诺兰通过对200多个公司、部门的发展信息系统的实践和经验总结,提出了著名的信息系统进化的阶段模型,即诺兰模型。诺兰认为,任何组织由手工信息系统向以计算机为基础的信息系统发展时,都存 在一条客观的发展路径和规律。数据处理的发展涉及技术的进步、应用的拓展、计划和控制策 略的变化以及用户的状况四个方面。诺兰将计算机信息系统的发展道路划分为六个阶段:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段和成熟阶段。
1.初始阶段
计算机刚开始只作为办公设备使用,应用相对比较少,通常用来完成一些报表统计工作, 甚至大多数被当作打字机使用。在这一阶段,IT 的需求只被作为简单的办公设施改善的需求来 对待,采购量少,只有少数人使用,在组织内没有普及。这一阶段的主要特点是:
(1)组织中只有个别人具有使用计算机的能力;
(2)该阶段一般发生在一个组织的财务部门。
2.传播阶段
人们对计算机有了一定了解,想利用计算机解决工作中的问题,例如进行更多的数据处理, 给管理工作和业务带来便利。于是,应用需求开始增加,组织对IT 应用开始产生兴趣,并对开发软件热情高涨,投入开始大幅增加。这一阶段的主要特点是:
(1)数据处理能力得到迅速发展;
(2)出现许多新问题(例如数据冗余、数据不一致、难以共享等);
(3)计算机使用效率偏低等。
3.控制阶段
在前一阶段盲目购机、盲目定制开发软件之后,组织管理者意识到计算机的使用超出控制、 IT投资增长快、效率不理想等问题,于是开始从整体上控制计算机信息系统的投入与发展,组 织需要协调、解决数据共享问题。此时,组织的IT 建设更加务实,对IT 的利用有了更明确的 认识和目标。在这一阶段, 一些职能部门在部门内部实现了网络化,例如财务系统、人事系统、库存系统等,但各软件系统之间还存在“部门壁垒”与“信息孤岛”。信息系统呈现单点、分散 的特点,系统和资源利用率不高。这一阶段的主要特点是:
(1)具备了专门的领导小组;
(2)采用数据库 (Data Base,DB) 技术;
(3)这一阶段是计算机管理向数据管理发展的关键。
4.集成阶段
在控制的基础上,组织开始进行规划设计,建立基础数据库,并建成统一的信息管理系统。 组织的IT 建设开始由分散和单点发展为成体系。组织IT 主管开始把内部不同的IT机构和系统 统一到一个整体系统中进行管理,使人、财、物等资源信息能够在组织中集成共享,更有效地 利用现有的IT 系统和资源。这一阶段的主要特点是:
(1)建立集中式的数据库和相应的信息系统;
(2)增加大量硬件,预算费用迅速增长。
5.数据管理阶段
组织高层意识到信息战略的重要性,信息作为组织的重要资源,组织的信息化建设也真正 进入到数据处理阶段。在这一阶段,组织开始选定统一的数据库平台、数据管理体系和信息管 理平台,统一数据的管理和使用,各部门、各系统基本实现资源整合和信息共享。IT系统的规划及资源利用更加有效。
6.成熟阶段
信息系统已经可以满足组织各个层次的需求,从简单的事务处理到支持高效管理的决策。 组织真正把 IT 与管理过程结合起来,将组织内部、外部的资源充分整合和利用,从而提升了组 织的竞争力和发展潜力。
诺兰的六阶段模型反映了计算机应用发展的规律性,前三个阶段具有计算机时代的特征, 后三个阶段具有信息时代的特征。诺兰模型的预见性,其后被国际上许多组织的计算机应用发 展情况所证实。
2.1.3 信息系统的结构信息系统的结构分为物理结构与逻辑结构两种。物理结构是指不考虑系统各部分的实际工 作与功能结构,只抽象地考察其硬件系统的空间分布情况。逻辑结构是指信息系统各功能子系统的综合体。
1.信息系统的物理结构
按照信息系统硬件在空间上的拓扑结构,其物理结构一般可分为集中式与分布式两大类。
(1)集中式结构,指物理资源在空间上集中配置,如图2-2所示。早期的单机系统是最典 型的集中式结构,它将软件、数据与主要外部设备集中在一套计算机系统中。由分布在不同地 点的多个用户通过终端共享资源的多用户系统,也属于集中式结构。
集中式结构的优点是资源集中、便于管理、资源利用率较高。但是随着系统规模的扩大, 以及系统的日趋复杂,集中式结构的维护与管理越来越困难,也不利于用户发挥在信息系统建 设过程中的积极性与主动性。此外,资源过于集中会造成系统的脆弱性,一旦主机出现故障,会使整个系统瘫痪。
由于历史原因,集中式结构多用于传统银行、电信等行业。主机资源集中在大型主机或小型机上。集中式结构下,包括操作系统、中间件、数据库等基础软件,均为专用商用系统。
分布式信息系统可以根据应用需求来配置资源,提高信息系统对用户需求与外部环境变化 的应变能力,系统扩展方便,安全性好,某个结点出现的故障不会导致整个系统停止运作。然 而由于资源分散,且又分属于各个子系统,系统管理的标准不易统一,协调困难,不利于对整 个资源的规划与管理。
一个标准的分布式系统在没有任何特定业务逻辑约束的情况下,具有分布性、对等性、并 发性、缺乏全局时钟、故障多样等特性。
●分布性。分布式系统中的多台计算机都会在空间上随意分布,同时,计算机的分布情况也会随时变动。
●对等性。分布式系统中计算机没有主/从之分,组成分布式系统的所有计算机节点都是对 等的。副本是分布式系统对数据和服务提供的一种冗余方式。在常见的分布式系统中,为 了对外提供高可用的服务,往往会对数据和服务进行副本处理,即数据副本和服务副本。 数据副本指在不同节点上持久化同一份数据,当某一节点上存储的数据丢失时,可以从副 本上读取到该数据。这是解决分布式系统数据丢失问题最为有效的手段。服务副本指多个节点提供同样的服务,每个节点都有能力接收来自外部的请求并进行相应处理。
●并发性。在一个计算机网络中,程序运行过程中的并发性操作非常常见。例如,同一个 分布式系统的多个节点,可能并发地操作一些共享资源,诸如数据库或分布式存储等。 如何准确并高效地协调分布式并发操作是分布式结构中最大的挑战之一。
●缺乏全局时钟。典型的分布式系统由一系列在空间上随意分布的多个进程组成,进程之 间通过交换消息来相互通信。在分布式系统中,很难定义两个事件的先后顺序,原因是分布式系统缺乏一个全局的时钟序列控制。
●故障多样。组成分布式系统的所有计算机都可能发生任何形式的故障。
近年来,分布式结构在互联网公司被广泛应用,也越来越多地被金融行业关注和应用。
2.信息系统的逻辑结构
信息系统的逻辑结构是其功能综合体和概念性框架。由于信息系统种类繁多,规模不一, 功能上存在较大差异,其逻辑结构也不尽相同。
一个完整的信息系统支持组织的各种功能子系统,使得每个子系统可以完成事务处理、操 作管理、管理控制与战略规划等各层次功能。在每个子系统中可以有自己的专用文件,同时可 以共用系统数据库中的数据,通过接口文件实现子系统之间的联系。与之相类似,每个子系统有各自的专用程序,也可以调用服务于各种功能的公共程序,以及系统模型库中的模型。
目前,随着信息技术的不断发展,分布式的应用表现层物理结构已经成为信息系统的主流,结合逻辑结构,信息系统的通用结构自底向上可分为基础设施层、资源管理层、中间件层、业务逻辑层、应用表现层五个层次,如图2-4所示。
(1)基础设施层。基础设施层是系统整体架构的底层技术基础,基于多种软件、硬件、网络和信息安全技术之间的相互作用支撑整个管控系统的正常应用,包括信息感知设备、网络传输设备、存储设备、计算设备等。
(2)资源管理层。主要包括操作系统、数据库等,负责各类资源的管理与调度。
(3)中间件层。主要负责保障信息(数据)的传输、共享,提供某一类特定基础数据服务, 例如传输中间件、交易中间件、GIS 中间件、J2EE 架构等。
(4)业务逻辑层。主要是通过软件研发,创建统一的业务流程驱动引擎,例如工作流引擎、报表引擎、交易处理引擎等。
(5)应用表现层。主要负责用户的交互界面,通过UI 设计将信息交互在客户端进行展示。
2.1.4 信息系统的分类与建设原则1.信息系统的分类
按照信息系统的通用架构,信息系统工程建设项目交付的内容主要包括机房基础设施、物 理资源、虚拟资源、平台资源、应用和数据等。
(1)机房基础设施。主要指机房基础环境、安防系统、电气系统、精密空调系统、环境检 测系统、消防系统。
(2)物理资源。主要指网络、服务器、存储、终端、外设等硬件。
(3)虚拟资源。主要指网络资源、计算资源、存储资源等。
(4)平台资源。主要指支撑应用系统运行的基础软件,如操作系统、数据库、中间件等。
(5)应用。主要指面向各类应用的软件系统。如财务软件、人力资源管理软件、办公自动 化软件、监控软件、流程管理软件、安全分析软件等。
(6)数据。主要是指业务数据、运维数据、安全数据等。
从工程建设的角度,可以将信息系统分为:信息网络系统、信息资源系统和信息应用系统。
(1)信息网络系统,是指以信息技术为主要手段建立的信息处理、传输、交换和分发的计算机网络系统。信息网络系统为信息资源系统和信息应用系统提供基础的网络平台,其工程建设的核心是网络。
(2)信息资源系统,是指以信息技术为主要手段建立的信息资源采集、存储、处理的资源系统。信息资源系统是承载并管理基础设施、物理资源、虚拟资源、平台资源、应用和数据等资源的系统,在当前云计算、大数据的发展角度,其工程建设的核心是数据资源平台和云资源系统(包括云服务、云数据中心)。
(3)信息应用系统,是指以信息技术为主要手段建立的各类业务管理的应用系统,以满足业务处理、信息管理需要,其工程建设的核心是软件。
2.信息系统的建设原则
为了能够适应需要,在信息系统规划以及建设开发的过程中,必须遵守一系列原则,这是 信息系统建设成功的必要条件。
1)高层管理人员介入原则
一个信息系统的建设目标总是为组织的整体目标服务,否则,这个系统就不应该建设。而真正能够理解组织总体目标的人必然是组织的高层管理人员,只有他们才知道组织究竟需要什么样的信息系统,也只有他们才知道组织投入多少资源到IT 建设中是值得的,超过这个界限就 是浪费。这是身处某一部门的管理人员和技术人员无法做到的。因此,信息系统从概念到运行 都必须有组织高层管理人员介入。当然,这里的“介入”有着特定的含义,可以是直接参加, 也可以是决策或指导,还可以是在政治、经济、人事方面给予支持。
需要说明的是,随着首席信息官 (Chief Information Officer,CIO)的出现,高层管理人员 介入原则在现阶段已经逐步具体化。CIO 是组织设置的相当于副总裁的高级职位,负责组织信息化的工作,主持制定组织信息规划、政策和标准,并对组织的信息资源进行管理控制。在大多数组织中,CIO是组织最高管理层中的核心成员之一。毫无疑问,深度介入信息系统建设及 运行是 CIO的职责所在。
2)用户参与建设原则
一个成功的信息系统,必须把用户放在第一位,用户参与建设包含如下含义:
●“用户”有确定的范围。用户或核心用户是信息系统的使用者。
●用户,特别是核心用户应当参与信息系统全过程建设。即用户应当参与到从信息系统规 划和设计阶段,直到系统运行的全过程中。
●用户应当深度参与系统建设。 一般来说,参与建设的用户人员,既要以甲方代表的身份 出现,又应作为真正的系统建设与开发人员,与其他开发人员融为一体。
3)自顶向下规划原则
在信息系统建设开发过程中,经常出现信息不一致的问题,这种问题对于信息系统往往是 致命的,有时可能会造成信息系统的报废。研究表明,信息的不一致是由计算机应用的历史性 演变造成的,它通常发生在没有一个总体规划的指导就开始后续的设计实现的情况下。因此, 坚持自顶向下规划原则对于信息系统的建设和开发至关重要。自顶向下规划的主要目标是达到 信息的一致性,但是自顶向下规划不能取代信息系统的详细设计,应鼓励信息系统各子系统的 设计者在总体规划的指导下进行设计。
4)工程化原则
20世纪70年代,出现了世界范围的软件危机,即一个软件编制完成后,无法保证它能够 正确地运行,也就是软件的可靠性存在问题。软件危机一度引起人们,特别是工业界的恐慌。 经过探索,人们认识到软件危机是因为软件产品是一种个体劳动产品。因此,没有工程化是软 件危机发生的根本原因,此后,软件工程学科得以发展,在一定程度上解决了软件危机。
信息系统也经历了与软件开发大致相同的历程。在信息系统发展的初期,人们也像软件开 发初期一样,只要做出来就行,根本不在乎具体的实现过程。这时的信息系统,大多是少数开 发者的“专利”,系统可维护性、可扩展性都比较差。后来,信息工程、系统工程等工程化方法 被引入到信息系统建设过程中,才使问题得到一定程度的解决。因此,工程化不仅是一种有效 的方法,也是信息系统建设开发的一项重要原则。
5)其他原则
对于信息系统建设,人们还从不同角度提出了一系列原则,主要包括:创新性原则,用于 体现信息系统的先进性;整体性原则,用于体现信息系统的完整性;发展性原则,用于体现信 息系统的前瞻性;经济性原则,用于体现信息系统的实用性等。
2.2 系统工程系统工程是一种组织管理技术。所谓系统,首先是把要研究的对象或工程管理问题看作一个由很多相互联系、相互制约的组成部分构成的总体,然后运用运筹学的理论和方法及计算机技术,对构成系统的各组成部分进行分析、预测和评价,最后进行综合,从而使该系统达到最优。
2.2.1 系统工程方法系统工程方法针对将要解决的问题及相关情况进行分门别类地处理并确定边界,强调各门类之间和各门类内部因素之间内在联系的完整性和整体性。系统工程方法主要包括以下几种。
1)霍尔三维结构
霍尔三维结构又称霍尔的系统工程,是美国系统工程专家霍尔 (A.D.Hall) 等人在大量工 程实践的基础上,于1969年提出的一种系统工程方法论。其内容可以直观展示在系统工程各 项工作内容的三维结构图中,如图2-5所示。霍尔三维结构集中体现了系统工程方法的系统化、综合化、最优化、程序化和标准化等特点,是系统工程方法论的重要基础。
霍尔三维结构将系统工程的整个活动过程分为前后紧密衔接的七个阶段和七个步骤,同时还考虑了为完成这些阶段和步骤所需要的各种专业知识和技能。这样,就形成了由时间维、逻 辑维和知识维组成的三维空间结构。其中,时间维表示系统工程活动从开始到结束按时间顺序 排列的全过程,分为规划、制定方案、研制、生产、安装、运行、更新七个时间阶段。逻辑维 是指时间维的每个阶段内所要进行的工作内容和应该遵循的思维程序,包括问题确定、目标确 定、系统综合、系统分析、方案选择、评价、决策、实施计划七个逻辑步骤。知识维需要运用 包括工程、医学、建筑、商业、法律、管理、社会科学、艺术在内的各种知识和技能。霍尔三维结构形象地描述了系统工程研究的框架,对其中任意一个阶段和步骤又可以进一步展开,形成分层次的树状体系。
霍尔三维结构的出现,为解决大型复杂系统的规划、组织、管理提供了一种统一的思想和方法,因而在世界各国得到了广泛应用。
2)切克兰德方法
20世纪40—60年代,系统工程主要用来寻求各种“战术”问题的最优策略,或用来组织和管理大型工程建设项目,最适合应用霍尔方法论。
20世纪70年代以来,系统工程越来越多地用于研究社会经济发展战略和组织管理问题, 涉及的人、信息和社会等因素相当复杂,使得系统工程的对象系统偏向软化,并导致其中的许多因素难以量化。许多学者在霍尔方法论的基础上,进一步提出了各种软系统工程方法论。20世纪80年代,由英国的P.切克兰德 (P.Checkland)提出的方法比较系统且具有一定的代表性。
切克兰德认为完全按照解决工程问题的思路来解决社会问题或“软科学”问题,会碰到许 多困难,尤其是在设计价值系统、模型化和最优化等步骤方面,有许多因素很难进行定量分析。切克兰德把霍尔方法论称为“硬科学”方法论,他提出了自己的方法论,并称之为“软科学”方法论。
社会经济系统中的问题往往很难和工程技术系统中的问题一样能够事先将需求确定清楚,难以按价值系统的评价准则设计出符合这种需求的最优系统方案。切克兰德方法论的核心不是“最优化”,而是“比较”与“探寻”。从模型和现状的比较中来学习改善现状的途径。“比较”这一步骤,含有组织讨论、听取各方面有关人员意见的意思,不拘泥于非要进行定量分析的要求,能更好地反映人的因素和社会经济系统的特点。
切克兰德方法将工作过程分为以下七个步骤:
●认识问题。收集与问题有关的信息,表达问题现状,寻找构成和影响因素及其关系,以 便明确系统问题结构、现存过程及其相互之间的不适应之处,确定有关的行为主体和利 益主体。
●初步定义。初步弄清、改善与现状有关的各种因素及其相互关系。为系统发展及其研究 确立各种基本的看法,并尽可能选择出最合适的基本观点。
●建立概念模型。在不能建立精确数学模型的情况下,用结构模型或语言模型来描述系统 的现状。概念模型基于初步定义,是通过系统化语言对问题抽象描述的结果,其结构及 要素必须符合初步定义的思想,并能实现其要求。
●比较及探寻。将现实问题和概念模型进行对比,找出符合决策者意图且可行的方案或途径。有时通过比较,需要对根底定义的结果进行适当修正。
●选择。针对比较的结果,考虑有关人员的态度及其他社会、行为等因素,选出现实可行 的改善方案。
●设计与实施。通过详尽和有针对性的设计,形成具有可操作性的方案,并使得有关人员乐于接受和愿意为方案的实现竭尽全力。
●评估与反馈。根据在实施过程中获得的新认识,修正问题描述、根底定义及概念模 型等。
3)并行工程方法
并行工程 (Concurrent Engineering) 是对产品及其相关过程(包括制造过程和支持过程)进行并行、集成化处理的系统方法和综合技术。它要求产品开发人员从设计开始就考虑产品生命 周期的全过程,不仅考虑产品的各项性能,例如质量、成本和用户要求,还应考虑与产品有关 的各工艺过程的质量及服务的质量。它通过提高设计质量来缩短设计周期,通过优化生产过程 来提高生产效率,通过降低产品整个生命周期的消耗,如产品生产过程中的原材料消耗、工时消耗等,来降低生产成本。
并行工程的目标是提高质量、降低成本、缩短产品开发周期和产品上市时间。
并行工程的具体做法是:在产品开发初期,组织多种职能协同工作的项目组,使有关人员从一开始就获得对新产品需求的要求和信息,积极研究涉及本部门的工作业务,并将相应的要 求提供给设计人员,使许多问题在开发早期就得到解决,从而保证了设计的质量,避免了大量的返工浪费。
并行工程强调以下三点:
●在产品的设计开发期间,将概念设计、结构设计、工艺设计、最终需求等结合起来,保证以最快的速度按要求的质量完成。
●各项工作由与此相关的项目小组完成。进程中小组成员各自安排自身的工作,但可以随时或定期反馈信息,并对出现的问题协调解决。
●依据适当的信息系统工具,反馈与协调整个项目的进行。利用现代信息技术,在产品的研制与开发期间,辅助项目进程的并行化。
4)综合集成法
1990年初,我国科学家钱学森等提出从系统的本质出发对系统进行分类的新方法,首次公 布了“开放的复杂巨系统”这一新的科学领域及其基本观点,并首次把处理开放的复杂巨系统的方法命名为从定性到定量的综合集成法。综合集成是从整体上考虑并解决问题的方法论。从系统的本质出发,根据组成子系统及子系统种类的多少和它们之间关联关系的复杂程度,可以把系统分为简单系统和巨系统两大类。
●如果组成系统的子系统数量比较少,子系统之间的关系比较单纯,这样的系统称为简单系统,如一台测量仪器。
●如果子系统数量巨大(例如成千上万),则称作巨系统。
●如果巨系统中子系统种类不太多(几种、几十种),且它们之间的关联关系又比较简单,
就称作简单巨系统,如激光系统。
●如果巨系统中子系统种类很多并有层次结构,它们之间的关联关系又很复杂,这就是复杂巨系统,如果这个系统又是开放的,就称作开放的复杂巨系统 (Open Complex Giant Systems)。
开放的复杂巨系统的一般基本原则与一般系统论的原则相一致: 一是整体论原则;二是相互联系原则;三是有序性原则;四是动态原则。
开放的复杂巨系统的主要性质可以概括为:
●开放性。系统对象及其子系统与环境之间有物质、能量、信息的交换。
●复杂性。系统中子系统的种类繁多,子系统之间存在多种形式、多种层次的交互作用。
●进化与涌现性。系统中子系统或基本单元之间的交互作用,从整体上演化、进化出一些独特的新性质,如通过自组织方式形成某种模式。
●层次性。系统部件与功能上具有层次关系。
●巨量性。数目极其巨大。
钱学森教授提出的综合集成法,就其实质而言,是将专家群体(各方面的专家)、数据和 各种信息与计算机、网络等信息技术有机结合起来,把各种学科的科学理论和人的认识结合起来构成的系统,这个系统是基于网络的。应用综合集成法对开放的复杂巨系统进行探索研究,成为系统科学发展的里程碑,开辟了系统科学新的发展方向和研究领域。综合集成法的主要特点有:
●定性研究与定量研究有机结合,贯穿全过程;
●科学理论与经验知识结合,把人们对客观事物的知识综合集成起来解决问题;
●应用系统思想把多种学科结合起来进行综合研究;
●根据复杂巨系统的层次结构,把宏观研究与微观研究统一起来;
●必须有大型计算机信息系统支持,不仅要有管理信息系统、决策支持系统等功能,而且还要包括综合集成的功能。
5)WSR系统方法
WSR是将物理 (Wuli) 、事 理 (Shili) 、人 理 (Renli)三者合理配置、有效利用以解决问题的一种系统方法论,由中国著名系统科学专家顾基发教授和朱志昌博士于1994年在英国 HULL大学提出。它既是一种方法论,又是一种解决复杂问题的工具。在观察和分析问题时,尤其是观察分析具备复杂特性的系统时,WSR 体现了其独特性,并具有中国传统哲学的思辨思想,是多种方法的综合统一。WSR 将多种方法条理化、层次化,化繁为简,属于定性与定量分析综合集成的东方系统思想。
WSR系统方法论的内容易于理解,而具体实践方法与过程按照实践领域与考察对象可灵活 调整。WSR方法论的一般工作过程包含理解意图、制定目标、调查分析、构造策略、选择方案、 协调关系和实现构想七个步骤。这些步骤不一定严格依照顺序执行,其中,协调关系始终贯穿 于整个过程,具体表现为:
●协调关系不仅仅是协调人与人的关系,实际上协调关系可以是协调每一步实践中物理、 事理和人理的关系;
●协调意图、目标、现实、策略、方案、构想间的关系;
●协调系统实践的投入、产出与成效的关系;
●协调都需要由人完成,着眼点与手段应根据协调对象的不同而有所不同。
WSR系统方法论中,物理主要应用自然科学中的各种科学方法;事理主要使用各种运筹 学、系统工程、管理科学、控制论和一些数学方法,特别是近年来的软计算方法(进化计算、 模糊计算和网络计算等),以及各种模型和仿真技术等,还有一些定性方法及定性和定量结合的 方法,例如德尔菲法、层次分析法等;人理可以细分为关系、感情、习惯、知识、利益等。
●关系。人之间都有相互关系,需要去深入了解,并将它们适当表示出来。
●感情。人之间是有感情的,可以用各种方法直接或间接地找出来。
●习惯。人们在待人、处世、办事和做决策时都有一定的习惯,就像物体运动时会有惯 性。人们可以从一个人过去的习惯去判断这个人会怎样做事,也可以改造一些不好的习 惯,建立一些好的习惯。
●知识。人能拥有知识和创造知识的能力,因此要找到知识的表达,特别是把隐性知识如何变成更多人可以掌握的显性知识。
●利益。不同人有不同的利益,如何去协调,争取利益。
在管物、管事的同时需要对人进行管理。例如,在计划协调技术和统筹法中,要安排好项 目中的时间、设备,同时还要考虑人的资源。
2.2.2 系统工程生命周期系统工程生命周期一般包括如下七个阶段。
1)探索性研究阶段
探索性研究阶段的目的是识别利益相关者的需求,探索创意和技术。许多行业通过探索性研究阶段来研究诸多新的创意或创新型技术和能力,然后使其发展进入到一个新项目的启动阶段。大量的创造性系统工程在该阶段完成。
2)概念阶段
概念阶段的目的是细化利益相关者的需求,探索可行概念,提出有望实现的解决方案。概 念阶段是对探索性研究阶段所开展的研究、实验和工程模型的细化与拓展。需要对利益相关者 的需求进行识别、明确并将其文档化。
3)开发阶段
开发阶段的目的是细化系统需求,创建解决方案的描述,构建系统,验证并确认系统。开发阶段包括详细计划、开发,以及验证与确认活动。该阶段可以完全自主地选择开发模型,并不局限于瀑布或其他计划驱动的方法。开发阶段与所有阶段一样,组织可以选择最适合项目需 求的流程和活动。
4)生产阶段
生产阶段的目的是生产系统并进行检验和验证。生产阶段是系统被生产或制造的阶段。该阶段可能需要产品变更以解决生产问题,降低生产成本,或提高产品或系统的能力。上述任何一点均可能影响系统需求,且需要系统重新验证或重新确认。
5)使用阶段
使用阶段的目的是运行系统以满足用户需求。使用阶段是系统在预期环境中运行以交付预期服务的阶段。该阶段通常在系统运行期间有计划地引入产品变更,这样的升级能提高系统的能力。
6)保障阶段
保障阶段的目的是提供持续的系统能力。保障阶段为系统提供服务,使之能持续运行。该阶段可建议进行变更以解决保障性问题,降低运行成本或延长系统寿命。
7)退役阶段
退役阶段的目的是存储、归档或退出系统。退役阶段是系统及其相关服务从运行中移除的阶段。这一阶段的活动主要集中于确保退出需求被满足。实际上,退出计划是在概念阶段系统定义的一部分。在21世纪早期,许多国家已经更改了它们的法律,强制系统的创建者负责系统生命终止时恰当地退出。
2.2.3 生命周期方法生命周期方法具体包括以下几种。
1)计划驱动方法
需求、设计、构建、测试、部署范式被认为是构建系统的传统方式。在一些需要协调多家组织人员参与的大型团队项目中,计划驱动方法提供了一种基础的框架,为生命周期流程提供规程。计划驱动方法的特征在于整个过程始终遵守规定流程的系统化方法,特别关注文档的完 整性、需求的可追溯性,以及每种表示的事后验证。
2)渐进迭代式开发
20世纪60年代人们就已经开始使用渐进迭代式开发 (Iterative and Incremental Development, IID) 方法。该方法允许为项目提供一个初始能力,随之提供连续交付以达到期望的系统。目标 在于快速产生价值并提供快速响应能力。
当需求不清晰、不确定或者客户希望在系统中引入新技术时,适合使用IID 方法。基于一系列最初的假设,开发候选的系统,然后对其进行评估以确定是否满足用户需求。若不满足,则启动另一轮演进,并重复该流程,直到交付的系统满足利益相关者的要求或直到组织决定终 止这项工作。
一般而言,IID 方法适用于较小的、不太复杂的系统。这种方法的重点在于灵活性,通过剪裁突出了产品开发的核心活动。
3)精益开发
精益思想中的精益开发和更广泛的方法均起源于丰田的“准时化”哲学思想,其目标是 “通过彻底消除生产线上的浪费、不一致性及不合理需求,高效率地生产出优质产品”。精益系统工程是将精益思想应用到系统工程中,以及组织和项目管理的相关方面。精益思想是一种整 体性的范式,聚焦于向客户交付最大价值并使浪费活动最小化。精益思想已成功地应用于制造、 飞机库管、行政管理、供应链管理、健康医疗、产品开发和工程等领域。
精益开发是一个动态的、知识驱动的、以客户为中心的过程,通过这一过程使特定企业的所有人员以创造价值为目标不断地消除浪费。精益系统工程是将精益原则、实践和工具应用到系统工程中,以提升对系统利益攸关者的价值交付。
4)敏捷开发
敏捷的关键目标在于灵活性,当风险可接受时允许从序列中排除选定的事件。 适用于系统工程的敏捷原则如下:
●最高的优先级是通过尽早地和持续地交付有价值的软件来满足客户。
●欢迎需求变更,即使是在项目开发后期。敏捷流程利用需求变更帮助客户获得竞争 优势。
●不断交付可用的成果,周期从几周到几个月不等,且越短越好。
●项目中业务人员与研发人员每天在一起工作,业务人员始终参与到研发工作中。
●在研发团队内部和团队之间,传递信息最有效的方法是面对面交谈。
●可以工作的成果是进展的主要度量。
●对技术的精益求精及对设计的不断完善将提升敏捷性。
●简单性(尽最大可能减少不必要工作的艺术)是精髓。
●最佳的架构、需求和设计出自于自组织的团队。
●团队要定期反省如何能够做到更加高效,并相应地调整团队的行为。
2.2.4 信息系统生命周期信息系统与其他事物一样,也要经历发生、发展、成熟和消亡的过程。信息系统从产生到 消亡的整个过程称为信息系统的生命周期。 一般来说,信息系统的生命周期可分为五个阶段,分别是系统规划、系统分析、系统设计、系统实现、系统运行与评价。
(1)系统规划。信息系统规划是系统建设的起始阶段,作用是指明信息系统在组织经营战略中的作用和地位,指导信息系统后续的实现与开发。一个完整的系统规划,应当包括信息系 统的目标、总体框架、组织结构和管理流程、实施计划和技术规范等。
(2)系统分析。系统分析阶段的目标是为系统设计阶段提供系统的逻辑模型,主要任务是 在可行性分析和总体规划的基础上,对现有系统进行进一步的详细调查,并整理成规范的文档 资料;对使用信息系统的组织的结构、业务流程和经营管理,以及信息需求与处理的现状和问题进行分析,为系统设计提供依据。
(3)系统设计。系统设计是信息系统建设过程中的另一个重要阶段。在这一阶段,要根据系统分析的结果,设计出信息系统的实施方案,从而为程序员提供清晰而完整的物理设计说明。
(4)系统实现。系统实现阶段的任务是将设计文档变成能在计算机上运行的信息系统。
(5)系统运行与评价。系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益。
2.3 软件工程计算机软件系统是指在计算机硬件系统上运行的程序、相关的文档资料和数据的集合。计算机软件可以扩充计算机系统的功能,提高计算机系统的效率。按照软件所起的作用和所需运行环境的不同,通常将计算机软件分为系统软件和应用软件两大类。
系统软件是为整个计算机系统配置的不依赖特定应用领域的通用软件。这些软件对计算机系统的硬件和软件资源进行控制和管理,并为用户使用和其他应用软件的运行提供服务。只有在系统软件的作用下,计算机硬件才能协调工作,应用软件才能运行。根据系统软件功能的不同,可将其划分为操作系统、程序设计语言翻译系统、数据库管理系统和网络软件等。
应用系统的核心即应用软件。应用软件是为某类应用需要或解决某个特定问题而设计的软件,例如图形图像处理软件、财务软件、游戏软件和各种软件包等。在各种组织中,应用软件发挥着巨大的作用,承担了诸多计算和管理任务,例如人事管理、财务管理和图书管理等。
软件工程将系统的、规范的、可度量的工程化方法应用于软件开发、运行和维护的全过程。
2.3.1 架构设计软件架构虽然脱胎于软件工程,但其形成同时借鉴了计算机架构和网络架构中很多宝贵的思想和方法。近年来,软件架构已完全独立于软件工程,成为计算机科学的一个最新的研究方向和独立学科分支。解决好软件的复用、质量和维护问题,是研究软件架构的根本目的。
1.软件架构风格
软件架构设计的一个核心问题是能否达到架构级的软件复用,也就是说,能否在不同的系 统中,使用同一个软件架构。软件架构风格是描述某一特定应用领域中系统组织方式的惯用模 式 (Idiomatic Paradigm)。架构风格定义了一个系统“家族”,即一个架构定义、 一个词汇表和 一组约束。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件 有效地组织成一个完整的系统。公众号:项目管理课堂
Garlan和Shaw 对通用软件架构风格进行了分类,他们将软件架构分为以下几种:
(1)数据流风格。包括批处理序列和管道/过滤器两种。
(2)调用/返回风格。包括主程序/子程序、数据抽象和面向对象,以及层次结构。
(3)独立构件风格。包括进程通信和事件驱动的系统。
(4)虚拟机风格。包括解释器和基于规则的系统。
(5)仓库风格。包括数据库系统、黑板系统和超文本系统。
2.软件架构评估
不同类型的系统需要不同的架构,甚至一个系统的不同子系统也需要不同的架构。架构的 选择往往会成为一个系统设计成败的关键。软件架构评估可以只针对一个架构,也可以针对一 组架构。在架构评估过程中,评估人员所关注的是系统的质量属性。
从目前已有的软件架构评估技术来看,评估方式主要可以归纳为以下三类:基于调查问卷 (或检查表)的方式、基于场景的方式和基于度量的方式。这三种评估方式中,基于场景的评估 方式最为常用。
基于场景的方式主要包括:架构权衡分析法 (Architecture Trade-off Analysis Method,ATAM)、 软件架构分析法 (Software Architecture Analysis Method,SAAM) 和成本效益分析法 (Cost Benefit Analysis Method,CBAM)。在架构评估中, 一般从刺激、环境和响应三个方面来对场景 进行描述。刺激是场景中解释或描述项目干系人怎样引发与系统的交互部分,环境描述的是刺 激发生时的情况,响应是指系统是如何通过架构对刺激做出反应的基于场景的方式分析软件架构对场景的支持程度,从而判断该架构对这一场景所代表的质量需求的满足程度。例如,用一系列对软件的修改来反映易修改性方面的需求,用一系列攻击 性操作来代表安全性方面的需求等。这一评估方式考虑到了所有与系统相关的人员对质量的要 求,涉及的基本活动包括确定应用领域的功能和软件架构之间的映射,设计用于体现待评估质 量属性的场景,以及分析软件架构对场景的支持程度。
不同系统对同一质量属性的理解可能不同。例如,对操作系统来说,可移植性被理解为系 统可以在不同的硬件平台上运行;而对于普通的应用系统而言,可移植性往往是指该系统可以 在不同的操作系统上运行。由于存在这种不一致性,对一个领域适合的场景设计在另一个领域 内未必合适,因此,基于场景的评估方式适用于某一特定领域。这一评估方式的实施者一方面 需要有丰富的领域知识,以对某一质量需求设计出合理的场景;另一方面,必须对待评估的软 件架构有一定的了解,以准确判断它是否支持场景描述的一系列活动。
2.3.2 需求分析根据IEEE的软件工程标准词汇表,软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
1.需求的层次
简单地说,软件需求就是系统必须完成的事,以及必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。
质量功能部署 (Quality Function Deployment,QFD) 是一种将用户要求转化为软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标, QFD将软件需求分为三类:常规需求、期望需求和意外需求。
(1)常规需求。用户认为系统应该做到的功能或性能,实现越多用户会越满意。
(2)期望需求。用户想当然认为系统应具备的功能或性能,但并不能正确描述自己想要得到的这些功能或性能需求。如果期望需求没有得到实现,会让用户感到不满意。
(3)意外需求。意外需求也称为兴奋需求,是用户要求范围外的功能或性能(但通常是软 件开发人员很乐意赋予系统的技术特性),实现这些需求用户会更高兴,但不实现也不影响其 购买的决策。意外需求是控制在开发人员手中的,开发人员可以选择实现更多的意外需求,以便得到高满意、高忠诚度的用户,也可以(出于成本或项目周期的考虑)选择不实现任何意外需求。
2.需求过程
需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等内容。
1)需求获取
需求获取是一个确定和理解不同项目干系人的需求和约束的过程。需求获取是一件看上去很简单、做起来却很难的事情。需求获取是否科学、准备充分,对获取出来的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统的全貌。因此,需求获取只有与用户有效合作才能成功。常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。
2)需求分析
在需求获取阶段获得的需求是杂乱的,是用户对新系统的期望和要求,这些要求有重复的地方,也有矛盾的地方,这样的要求是不能作为软件设计的基础的。一个好的需求应该具有无 二义性、完整性、 一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。
需求分析对已经获取到的需求进行提炼、分析和审查,以确保所有的项目干系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。需求分析的关键在于对问题域的研究与理解。为了便于理解问题域,现代软件工程方法所推荐的做法是对问题域进行抽象,将其分解为若干 个基本元素,然后对元素之间的关系进行建模。
3)需求规格说明书编制
软件需求规格说明书 (Software Requirement Specification,SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为 整个开发工作的基础。SRS 是软件开发过程中最重要的文档之一,对于任何规模和性质的软件 项目都不应该缺少。
在国家标准 GB/T 8567《计算机软件文档编制规范》中,提供了一个 SRS的文档模板和编写指南,其中规定SRS 应该包括范围、引用文件、需求、合格性规定、需求可追踪性、尚未解决的问题、注解和附录。
4)需求验证与确认
当以 SRS 为基础进行后续开发工作时,如果在开发后期或在交付系统之后才发现需求存在问题,这时修补需求错误需要做大量的工作。相对而言,在系统分析阶段,检测 SRS 中的错误 所采取的任何措施都将节省相当多的时间和资金。因此,有必要对于SRS 的正确性进行验证,以确保需求符合良好特征。需求验证与确认活动的内容包括:
● SRS 正确地描述了预期的、满足项目干系人需求的系统行为和特征;
● SRS 中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的;
●需求是完整的和高质量的;
●需求的表示在所有地方都是一致的;
●需求为继续进行系统设计、实现和测试提供了足够的基础。
在实际工作中, 一般通过需求评审和需求测试工作来对需求进行验证。
3.结构化分析
使用结构化分析 (Structured Analysis,SA) 方法进行需求分析,其建立的模型的核心是数 据字典。围绕这个核心,有三个层次的模型:数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用实体关系图 (E-R图)表示数据模型,用数据流图 (Data Flow Diagram,DFD) 表示功能模型,用状态转换图 (State Transform Diagram,STD)表示行为模型。 E-R图主要描述实体、属性,以及实体之间的关系;DFD从数据传递和加工的角度,利用图形 符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完 成的功能;STD 通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作 为特定事件的结果将执行哪些动作(例如处理数据等)。
4.面向对象分析
面向对象分析的基本任务是运用面向对象 (Object-Oriented,OO)方法,对问题域进行分 析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的OOA 模型及其详细说明。OOA 模型包括用例模型和分析模 型。用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模; 分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保 持通信,实现系统行为(动态模型)。
面向对象分析阶段的核心工作是建立系统的用例模型与分析模型。
1)用例模型
SA 方法采用功能分解的方式来描述系统功能,在这种表达方式中,系统功能被分解到各个 功能模块中,通过描述细分的系统模块的功能来达到描述整个系统功能的目的。采用SA 方法描述系统需求,很容易混淆需求和设计的界限,这样的描述实际上已经包含了部分的设计在内。从用户的角度看,他们并不想了解系统的内部结构和设计,他们所关心的是系统所能提供的服务,这就是用例方法的基本思想。用例方法是一种需求合成技术,先获取需求,记录下来,然后从这些零散的要求和期望中进行整理与提炼,从而建立用例模型。在OOA 方法中,构建用例 模型一般需要经历四个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用 例模型,其中前三个阶段是必需的。
2)分析模型
用例模型是从用户的观点对系统进行用例建模,但捕获了用例并不意味着分析的结束,还要对需求进行深入分析,获取关于问题域本质内容的分析模型。分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实现系统行为(动态模型)。
建立分析模型的过程大致包括定义概念类、确定类之间的关系、为类添加职责、建立交互图等,前三个步骤统称为CRC(Class-Responsibility-Collaborator,类一责任一协作者)建模。
2.3.3软件设计
软件设计是需求分析的延伸与拓展。需求分析阶段解决“做什么”的问题,而软件设计阶 段解决“怎么做”的问题。同时,它也是系统实施的基础,为系统实施工作做好铺垫。合理的软件设计方案既可以保证系统的质量,也可以提高开发效率,确保系统实施工作的顺利进行。从方法上来说,软件设计分为结构化设计与面向对象设计。
1.结构化设计
结构化设计 (Structured Design,SD) 是一种面向数据流的方法,它以SRS 和 SA 阶段所产 生的 DFD 和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。SD 方法的 基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细 设计两个阶段。其中,概要设计又称为总体结构设计,它是开发过程中很关键的一步,其主要 任务是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块 结构图,即系统结构图。在概要设计中,将系统开发的总任务分解成许多个基本的、具体的任务,而为每个具体任务选择适当的技术手段和处理方法的过程称为详细设计。根据任务的不同,详细设计又可分为多种,例如输入/输出设计、处理流程设计、数据存储设计、用户界面设计、安全性和可靠性设计等。
在SD中,需要遵循一个基本的原则:高内聚,低耦合。内聚表示模块内部各成分之间的联系程度,是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做目标单一的一件 事情;耦合表示模块之间联系的程度,紧密耦合表示模块之间联系非常强,松散耦合表示模块 之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。
2.面向对象设计
面向对象设计(OOD)是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其 中可扩展性主要通过继承和多态来实现。在OOD中,数据结构和在数据结构上定义的操作算法 封装在一个对象之中。由于现实世界中的事物都可以抽象出对象的集合,所以OOD 方法是一种 更接近现实世界、更自然的软件设计方法。
OOD的主要任务是对类和对象进行设计,包括类的属性、方法,以及类与类之间的关系。OOD的结果就是设计模型。对于OOD 而言,在支持可维护性的同时,提高软件的可重用性是一个至关重要的问题,如何同时提高软件的可维护性和可重用性,是 OOD 需要解决的核心问题之一。
3.设计模式
设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。设计模式包含模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式等基本要素。
根据处理范围不同,设计模式可分为类模式和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,属于静态关系;对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性。根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式三种。
(1)创建型模式主要用于创建对象,包括工厂方法模式、抽象工厂模式、原型模式、单例 模式和建造者模式等;
(2)结构型模式主要用于处理类或对象的组合,包括适配器模式、桥接模式、组合模式、 装饰模式、外观模式、享元模式和代理模式等;
(3)行为型模式主要用于描述类或对象的交互及职责的分配,包括职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。
2.3.4 软件实现1.软件编码
编码就是把软件设计的结果翻译成计算机可以“理解和识别”的形式,即用某种程序设计 语言书写的程序。作为软件工程的一个步骤,编码是设计的自然结果,因此,程序的质量主要 取决于软件设计的质量。但是,程序设计语言的特性和编码途径也会对程序的可靠性、可读性、 可测试性和可维护性产生深远的影响。
1)程序设计风格
在软件生存期中,开发人员经常要阅读程序。特别是在软件测试阶段和维护阶段,编写程 序的人员与参与测试、维护的人员要阅读程序。因此,阅读程序是软件开发和维护过程中的一 个重要组成部分,而且读程序的时间比写程序的时间还要多。20世纪70年代初,有人提出在编 写程序时,应使程序具有良好的风格。程序设计风格包括四个方面:源程序文档化、数据说明、 语句结构和输入/输出方法。应尽量从编码原则的角度提高程序的可读性,改善程序的质量。
2)程序复杂性度量
经过详细设计后每个模块的内容都已经非常具体,因此可以使用软件设计的基本原理和概 念仔细衡量其质量。但是,这种衡量毕竟只能是定性的,人们希望能进一步定量度量软件的性 质。定量度量程序复杂程度的方法很有价值,把程序的复杂度乘以适当的常数即可估算出软件 中故障的数量以及软件开发时的工作量。定量度量的结构可以用于比较两个不同设计或两种不 同算法的优劣;程序定量的复杂程度可以作为模块规模的精确限度。
3)编码效率
编码效率主要包括程序效率、算法效率、存储效率和 I/O 效率。
(1)程序效率:程序的效率是指程序的执行速度及程序所需占用的内存空间。 一般来说, 任何对效率无重要改善,且对程序的简单性、可读性和正确性不利的程序设计方法都是不可 取的。
(2)算法效率:源程序的效率与详细设计阶段确定的算法的效率直接相关。在详细设计翻 译转换成源程序代码后,算法效率反映为程序的执行速度和存储容量的要求。
(3)存储效率:存储容量对软件设计和编码的制约很大。因此要选择可生成较短目标代码 且存储压缩性能优良的编译程序,有时需要采用汇编程序,通过程序员富有创造性的努力,提 高软件的时间与空间效率。提高存储效率的关键是程序的简单化。
(4)I/O效率:I/O (输入/输出)可以分为两种类型, 一种是面向人(操作人员)的输入/ 输出;另一种是面向设备的输入/输出。如果操作人员能够十分方便、简单地输入数据,或者 能够十分直观、 一目了然地了解输出信息,则可以说面向人的输入/输出是高效的。至于面向 设备的输入/输出,主要考虑设备本身的性能特性。
2.软件测试
软件测试是在将软件交付给客户之前所必须完成的重要步骤。目前,软件的正确性证明问题尚未得到根本的解决,软件测试仍是发现软件错误(缺陷)的主要手段。根据国家标准GB/T15532《计算机软件测试规范》,软件测试的目的是验证软件是否满足软件开发合同或项目开发 计划、系统/子系统设计文档、SRS 、软件设计说明和软件产品说明等规定的软件质量要求。通 过测试发现软件缺陷,为软件产品的质量测量和评价提供依据。
软件测试方法可分为静态测试和动态测试。
1)静态测试
静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测,用于在不运行代码的情况下检查和评估程序、文档或源代码。静态测试通过分析和评审来发现潜在的缺陷、错误或不符合要求的地方,从而提前修复这些问题,降低后期 修改成本。相较于动态测试,静态测试可以更早地发现问题,并且具有成本更低、效率更高的 特点。经验表明,静态测试能够有效地发现30%~70%的逻辑设计和编码错误。
静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行文档审查,对代码的静态测试一般采用桌前检查、代码走查、代码审查和静态分析工具等方法。
静态测试主要包括以下几种方法:
(1)桌前检查:又称为纸上审查,是一种通过人工模拟程序执行来检查算法正确性和逻辑流程的方法。在桌前检查中,开发人员或测试人员会逐步模拟程序的执行,检查每个步骤的输入、处理和输出是否符合预期。桌前检查有助于发现潜在问题,验证设计方案的有效性,并确 保软件满足需求规格。
(2)代码走查:是一种结构化的代码审查过程,通常在开发人员之间进行,目的是找出代码中的逻辑错误、语法错误、编码风格问题等。在代码走查过程中,参与者会逐行检查代码,分析其执行流程,并确保代码符合项目的设计要求和编码规范。
(3)代码审查:开发人员或专家对源代码进行审查,以发现编程错误、命名规范不一致、 代码风格等问题。
(4)静态分析工具:使用自动化工具对源代码进行扫描和检查,可以发现潜在的缺陷、安全漏洞、性能问题等。
(5)文档审查:对需求文档、设计文档等相关软件文档进行审查,确保其准确、完整和符合标准。
总之,静态测试是软件开发过程中的重要环节,有助于提高软件质量、降低风险以及减少后期维护成本。
2)动态测试
动态测试是指在计算机上实际运行程序进行软件测试, 一般采用白盒测试和黑盒测试。
白盒测试也称为结构测试、透明盒测试或代码覆盖测试。在这种测试中,测试人员对软件内部结构和实现细节有详细的了解,可以根据代码逻辑和程序设计来创建测试用例,以确保程 序能够按预期处理各种输入和边界条件。白盒测试的目标是验证软件内部的逻辑流程和结构,从而发现程序中可能存在的错误或不足之处。白盒测试的主要优点是可以检查程序内部的逻辑和结构,并且可以更容易地找到潜在问题。然而,它的缺点是时间消耗较大,因为需要深入分析源代码,并可能因过于关注细节而忽略用户体验和功能需求。
黑盒测试又称为功能测试、数据驱动测试或规格测试。在这种测试中,测试人员不关心软 件内部的实现细节,而是只关注程序的输入和输出结果。他们将软件看作一个黑盒子,通过提供各种输入并观察输出结果,来确定程序是否按照预期工作。黑盒测试主要关注程序是否满足功能需求和用户体验,而不关心其内部结构。黑盒测试的主要优点是可以从用户角度发现问题,并且相对于白盒测试更容易实施。然而,它的缺点是无法检查程序内部的逻辑和结构,可能会漏掉一些潜在的错误。
总之,白盒测试和黑盒测试各有优势和局限性,通常为了达到较好的测试效果,两种方法需要结合使用。
2.3.5 部署交付软件开发完成后,必须部署在最终用户的正式运行环境中,交付给最终用户使用,才能为用户创造价值。传统的软件工程不包括软件部署与交付,但不断增长的软件复杂度和部署所面临的风险,迫使人们开始关注软件部署。软件部署是一个复杂过程,包括从开发商发放产品,到应用者在他们的计算机上实际安装并维护应用的所有活动。需求和市场的不断变化导致软件的部署和交付不再是一个一劳永逸的过程,而是一个持续不断的过程,伴随在整个软件的开发过程中。
1.软件部署与交付
软件部署与交付是软件生命周期中的一个重要环节,属于软件开发的后期活动,即通过配置、安装和激活等活动来保障软件制品的后续运行。部署技术影响着整个软件过程的运行效率和投入成本,软件系统部署的管理代价占到整个软件管理开销的大部分。其中,软件配置过程极大地影响着软件部署结果的正确性,应用系统的配置是整个部署过程中的主要错误来源。
目前,部署与交付经常存在如下问题:
(1)分支冗余导致合并困难;
(2)缺陷过多导致阻塞测试;
(3)开发环境、测试环境、部署环境不统一导致的未知错误;
(4)代码提交版本混乱无法回溯;
(5)等待上线周期过长;
(6)项目部署操作复杂经常失败;
(7)上线之后出现问题需要紧急回滚;
(8)架构设计不合理导致发生错误之后无法准确定位等。
2.持续交付
为解决以上部署与交付经常存在的问题,持续交付应运而生,持续交付是一系列开发实践方法,用来确保让代码能够快速、安全地部署到生产环境中。持续交付是一个完全自动化的过程,当业务开发完成后,可以做到一键部署。持续交付提供了一套更为完善的解决传统软件开 发流程的方案,主要体现在:
●在需求阶段,抛弃了传统需求文档的方式,使用开发人员易于理解的用户故事;
●在开发测试阶段,做到持续集成,让测试人员尽早进入项目开始测试;
●在运维阶段,打通开发和运维之间的通路,保持开发环境和运维环境的统一。
目前,国内外主流互联网组织的部署周期以分钟为单位,互联网巨头组织单日的部署频率都在8000次以上,部分组织达到20000次以上。高频率的部署代表着能够更快、更好地响应客户的需求。
3.持续部署
对于持续交付整体来说,持续部署非常重要。容器技术目前是部署中最流行的技术,常用的持续部署方案有 Kubernetes Docker和Matrix系统两种。部署层次的设置对于部署管理来说也非常重要。首先要明确部署的目的并不是部署一个可工作的软件,而是部署一套可正常运行的环境。完整的镜像部署包括三个环节:Build-Ship-Run。
● Build: 与传统的编译类似,将软件编译形成 RPM包或者 Jar 包;
● Ship:将所需的第三方依赖和第三方插件安装到环境中;
● Run:在不同的地方启动整套环境。
1)不可变服务器
不可变服务器是一种部署模式,是指除了更新和安装补丁程序以外不对服务器进行任何更改。不可变服务器是技术逐步演化的结果。在早期阶段,软件的部署是在物理机上进行的,每一台服务器的网络、存储、软件环境都是不同的,物理机的不稳定让环境重构变得异常困难。后来逐渐发展为虚拟机部署,在虚拟机上借助流程化的部署能较好地构建软件环境,但是第三 方依赖库的重构不稳定为整体部署带来了困难。现阶段使用容器部署不但继承和优化了虚拟机 部署的优点,而且很好地解决了第三方依赖库的重构问题,容器部署就像一个集装箱,直接把所有需要的内容打包进行复制和部署。
2)蓝绿部署和金丝雀部署
常见的两大持续部署方式是蓝绿部署和金丝雀部署。
●蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中,当出现问题的时候,可以快速地将用户环境切回旧版本,并对 新版本进行修复和调整。
●金丝雀部署是指当有新版本发布的时候,先让少量的用户使用新版本,并且观察新版本是否存在问题,如果出现问题,就及时处理并重新发布,如果一切正常,就稳步地将新 版本适配给所有的用户。
4.部署与交付的新趋势
持续集成、持续交付和持续部署的出现及流行反映了新的软件开发模式发展趋势,主要表现为:
●工作职责和人员分工的转变。软件开发人员运用自动化开发工具进行持续集成,进一步将交付和部署扩展,而原来的手工运维工作也逐渐被分派到了开发人员的手里。运维人员的工作也从重复枯燥的手工作业转化为开发自动化的部署脚本,并逐步并入开发人员
的行列之中。
●大数据和云计算基础设施的普及进一步给部署带来新的飞跃。云计算的出现使得计算机本身也可以自动化地创建和回收,部署和运维工作也会脱离具体的机器和机房,可以在 远端进行,部署能力和灵活性出现质的飞跃。
●研发、运维的融合。减轻运维的压力,将运维和研发融合在一起。
2.4 数据工程数据工程是信息系统的基础工程,围绕数据的生命周期,规范数据从产生到应用的全过程。数据工程的目标是为信息系统的运行提供可靠的数据保障和服务,为信息系统之间的数据共享提供安全、高效的支撑环境,为信息系统实现互连、互通、互操作提供有力的数据支撑。数据工程的主要研究内容包括数据建模、数据标准化、数据运维、数据开发利用和数据库安全等理论和技术。
2.4.1 数据建模数据建模是对现实世界中具体的人、物、活动、概念进行抽象、表示和处理,变成计算机 可处理的数据,也就是把现实世界中的数据从现实世界抽象到信息世界和计算机世界。
1.数据模型
根据模型应用的目的不同,可以将数据模型划分为三类:概念模型、逻辑模型和物理模型。
1)概念模型
概念模型也称信息模型,它是按用户的观点对数据和信息建模,也就是说,把现实世界中的客观对象抽象为某一种信息结构,这种信息结构不依赖于具体的计算机系统,也不对应某个具体的数据库管理系统 (Database Management System,DBMS), 它是概念级别的模型。
2)逻辑模型
逻辑模型是在概念模型的基础上确定模型的数据结构,目前主要的数据结构有层次模型、 网状模型、关系模型、面向对象模型和对象关系模型。其中,关系模型是目前最重要的一种逻辑数据模型。
关系模型的基本元素包括关系、关系的属性、视图等。关系模型是在概念模型的基础上构建的。关系数据模型的数据操作主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件。关系的完整性约束包括:实体完整性、参照完整性和用户定义的完整性。 其中,实体完整性、参照完整性是关系模型必须满足的完整性约束条件,用户定义的完整性是 应用领域需要遵照的约束条件,体现了具体领域中的语义约束。
3)物理模型
物理模型是在逻辑模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。物理模型的内容包括确定所有的表和列,定义外键用于 确定表之间的关系,基于性能的需求可能进行反规范化处理等。物理模型的目标是如何用数据 库模式来实现数据的逻辑模型,以及真正地保存数据。物理模型的基本元素包括表、字段、视 图、索引、存储过程、触发器等,其中表、字段和视图等元素与逻辑模型中的基本元素有一定 的对应关系。
2.数据建模过程
通常来说,数据建模过程包括数据需求分析、概念模型设计、逻辑模型设计和物理模型设计等过程。
(1)数据需求分析。简单地说,数据需求分析就是分析用户对数据的需要和要求。数据需求分析是数据建模的起点,数据需求掌握的准确程度将直接影响后续阶段数据模型的质量。数据需求分析通常不是单独进行的,而是融合在整个系统需求分析的过程之中。数据需求分析采 用数据流图作为工具,描述系统中数据的流动和数据变化,强调数据流和处理过程。
(2)概念模型设计。经过需求分析阶段的充分调查,得到了用户数据开发利用需求,但是这些应用需求还是现实世界的具体需求,需要首先把它们抽象为信息世界的结构,才能进一步 更好地、更准确地用某个 DBMS 来实现用户的这些需求。将需求分析得到的结果抽象为概念模 型的过程即概念模型设计,其任务是确定实体和数据及其关联。
(3)逻辑模型设计。概念模型独立于机器,更抽象,从而更加稳定,但是为了能够在具体的DBMS上实现用户的需求,还必须在概念模型的基础上进行逻辑模型的设计。由于现在的DBMS普遍都采用关系模型结构,因此逻辑模型设计主要指关系模型结构的设计。关系模型由一组关系模式组成,一个关系模式就是一张二维表,逻辑模型设计的任务就是将概念模型中的实体、属性和关联转换为关系模型结构中的关系模式。
(4)物理模型设计。经过概念模型设计和逻辑模型设计,数据模型设计的核心工作基本完成,如果要将数据模型转换为真正的数据库结构,还需要针对具体的DBMS 进行物理模型设计,使数据模型走向数据存储应用环节。物理模型考虑的主要问题包括命名、确定字段类型和 编写必要的存储过程与触发器等。
2.4.2 数据标准化数据标准化是实现数据共享的基础。数据标准化主要为复杂的信息表达、分类和定位建立 相应的原则和规范,使其简单化、结构化和标准化,从而实现信息的可理解、可比较和可共享, 为信息在异构系统之间实现语义互操作提供基础支撑。数据标准化的主要内容包括元数据标准化、数据模式标准化和数据分类与编码标准化等。
1.元数据标准化
元数据最简单的定义是:元数据是关于数据的数据 (Data About Data)。在信息界,元数据被定义为提供关于信息资源或数据的一种结构化的数据,是对信息资源的结构化描述。其实质 是用于描述信息资源或数据的内容、覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等有关信息。
根据信息对象从产生到服务的生命周期、元数据描述和管理内容的不同,以及元数据作用的不同,元数据可以分为多种类型,从最基本的资源内容描述元数据开始,到指导描述元数据 的元元数据,形成了一个层次分明、结构开放的元数据体系,如图2-6所示。
2.数据模式标准化
数据模式是数据的概念、组成、结构、相互关系的总称。本质上,数据模式反映的是人类客观世界的主观认知,而不同的人群对相同的客观世界的主观认知会有所不同,这就造成了在相同领域有不同的数据模式存在。在数据共享过程中,这种差异对人们进行信息的共享与交换形成了 障碍。为了保证能够顺畅进行信息的共享,对特定领域而言,需要一个统一的数据模式作为数据 共享与交换的基础,同时也保证该领域的相关人员对统一的数据模型有准确的、无歧义的理解。
但在物理和技术层面,各类数据资源的数据格式、存储方式等各不相同,因此需要采用跨越物理和技术层面的方法来进行描述,也就是从数据的逻辑层面对数据集的内容、组成及其结构信息,进行合理的、规范的、本质上的说明和描述。通过数据集模式的标准化, 一方面对数据的内容、组成、结构以及各部分的相互关系进行统一规范,相关领域、部门或者数据集制作者都可以根据数据模式制作出标准化的数据;另一方面,数据集按照数据库理论对数据进行了规范化处理,有利于减少数据冗余。
在建立各数据集的数据模式的过程中,需要对客观世界的实体进行分析和抽象,利用图形、文字等方法定义各种实体和相互关系。为了对数据模式形成一致的理解,必须有规范的方法来客观、无歧义地描述数据集的内容、组成及其结构。数据模式的描述方式主要有图描述方法和 数据字典方法。图描述方法常用的有IDEF1X 方法和UML 图,主要用来描述数据集中的实体和实体之间的相互关系;数据字典用来描述模型中的数据集、单个实体、属性的摘要信息。
3.数据分类与编码标准化
数据分类是根据内容的属性或特征,将数据按一定的原则和方法进行区分和归类,并建立起一定的分类体系和排列顺序。数据分类有分类对象和分类依据两个要素。分类对象由若干个被分类的实体组成,分类依据取决于该分类对象的属性或特征。任何一种信息都有多种多样的 属性特征,这些属性特征有本质属性特征和非本质属性特征之别。分类应以相对最稳定的本质 属性为依据,但是对具有交叉、双重或多重本质属性特征的信息进行分类,除了需要符合科学 性、系统性等原则外,还应符合交叉性、双重或多重性的原则。
数据编码是将事物或概念(编码对象)赋予具有一定规律、易于计算机和人识别处理的符 号,形成代码元素集合。代码元素集合中的代码元素就是赋予编码对象的符号,即编码对象的代码值。所有类型的数据都能够进行编码,例如关于产品、人、国家、货币、程序、文件、部件等的各种各样的信息。
所谓数据分类与编码标准化就是把数据分类与编码工作纳入标准化工作的领域,按标准化的要求和工作程序,将各种数据按照科学的原则进行分类与编码,经有关方面协商一致,由主管机构批准、注册,以标准的形式发布,作为共同遵守的准则和依据,并在其相应的级别范围内宣贯和推行。
数据分类与编码标准化是简化信息交换、实现信息处理和信息资源共享的重要前提,是建立各种信息管理系统的重要技术基础和信息保障依据。通过分类与编码标准化,可以最大限度地消除对信息命名、描述、分类和编码的不一致造成的混乱、误解等现象,可以减少信息的重 复采集、加工、存储等操作,使事物的名称和代码的含义统一化、规范化,确立代码与事物或 概念之间的一一对应关系,以保证数据的准确性和相容性,为信息集成与资源共享提供良好的 基础。数据分类与编码标准化的作用主要包括用于信息系统的共享和互操作、统一数据的表示 法、提高信息处理效率。
4.数据标准化管理
在数据标准化活动中,首先要依据信息需求,参照现行数据标准、信息系统的运行环境, 以及法规、政策和指导原则,在数据管理机构、专家组和开发者共同参与下,运用数据管理工具,得到注册的数据元素、物理模式和扩充的数据模型。数据标准化的具体过程包括确定数据需求、制定数据标准、批准数据标准和实施数据标准四个阶段。
(1)确定数据需求。本阶段将产生数据需求及相关的元数据、域值等文件。在确定数据需求时应考虑现行法规、政策,以及现行的数据标准。
(2)制定数据标准。本阶段要处理“确定数据需求”阶段提出的数据需求。如果现有的数据标准不能满足该数据需求,可以建议制定新的数据标准,也可建议修改或者封存已有数据标准。推荐的、新的或修改的数据标准记录于数据字典中。这个阶段将产生供审查和批准的成套建议。
(3)批准数据标准。本阶段的数据管理机构对提交的数据标准建议、现行数据标准的修改或封存建议进行审查。一经批准,该数据标准将扩充或修改数据模型。
(4)实施数据标准。本阶段涉及在各信息系统中实施和改进已批准的数据标准。
2.4.3 数据运维1.数据存储
所谓数据存储,就是根据不同的应用环境,通过采取合理、安全、有效的方式将数据保存到物理介质上,并能保证对数据实施有效的访问。其含义包含两个方面: 一是数据临时或长期驻留的物理媒介;二是保证数据完整、安全存放和访问而采取的方式或行为。数据存储就是把 这两个方面结合起来,提供完整的解决方案。
(1)数据存储介质。数据存储首先要解决的是存储介质的问题。存储介质并不是越贵越好、越先进越好,要根据不同的应用环境,合理选择存储介质。存储介质的类型主要有磁带、光盘和磁盘三种。
(2)存储管理。存储管理在存储系统中的地位越来越重要,例如,如何提高存储系统的访问性能,如何满足数据量不断增长的需要,如何有效地保护数据、提高数据的可用性,如何满足存储空间的共享等。存储管理的具体内容包括资源调度管理、存储资源管理、负载均衡管理 和安全管理。
2.数据备份
数据备份是为了防止由于用户操作失误、系统故障等意外原因导致的数据丢失,将整个应用系统的数据或一部分关键数据复制到其他存储介质上的过程。这样做的目的是保证当应用系 统的数据不可用时,可以利用备份的数据进行恢复,尽量减少损失。
当前最常见的数据备份结构可以分为四种:DAS 备份结构、基于LAN 的备份结构、LAN- FREE备份结构和SERVER-FREE备份结构。常见的备份策略主要有三种:完全备份、差分备 份和增量备份。
在数据备份系统中,备份服务器、独立冗余磁盘阵列 (Redundant Arrays of Independent Disks,RAID)和磁带机等设备提供了硬件基础,具体备份策略的制定、备份介质的管理,以及 一些扩展功能的实现都需要软件来完成。备份软件主要分为两大类:一是操作系统自带的软件,例如麒麟操作系统的“备份”工具,这类软件实现的功能比较简单;二是专业备份软件,能够 实现比较全面的功能。
3.数据容灾
一切引起系统非正常停机的事件都可以称为灾难,包括不可预料、不可抗拒的自然灾害, 系统软硬件故障,人为误操作和恶意攻击等。根据其保护对象不同,容灾系统分为应用容灾和数据容灾两类。应用容灾用于克服灾难对系统的影响,保证应用服务的完整、可靠和安全等一系列要求,使得用户在任何情况下都能得到正常的服务;数据容灾则重点关注保证用户数据的高可用性,在灾难发生时能够保证应用系统中的数据尽量少丢失或不丢失,使得应用系统能不间断地运行或尽快地恢复正常运行。
在一般情况下,数据容灾是应用容灾的一个子集,也是应用容灾最根本的基础,因为“得 数据者得天下”,数据是应用系统的基础。容灾是一个工程,而不仅仅是技术,容灾有其完整的流程、规范及其具体措施。
数据备份是数据容灾的基础。数据备份是数据高可用的最后一道防线,其目的是系统数据 崩溃时能够快速恢复数据。容灾不是简单备份。真正的数据容灾就是要避免传统冷备份所具有 的先天不足,它在灾难发生时能全面、及时地恢复整个系统。容灾按其灾难恢复能力的高低可以分为多个等级,例如,国际标准 SHARE78定义的容灾系统有七个等级,从最简单的仅在本地进行磁带备份,到将备份的磁带存储在异地,再到建立应用系统实时切换的异地备份系统。恢复时间也可以从几天到小时级,再到分钟级、秒级或零数据丢失等。从技术上看,衡量容灾系统有两个主要指标,即RPO(Recovery Point Object) 和 RTO(Recovery Time Object),其中RPO代表当灾难发生时允许丢失的数据量,而RTO则代表系统恢复的时间。
4.数据质量评价与控制
在不同时期,数据质量有不同的概念和标准。目前普遍认为,数据质量高低必须从用户使用的角度来看,即使准确性相当高的数据,如果时效性差,或者不为用户所关心,仍达不到数据质量管理标准。
1)数据质量描述
数据质量可以通过数据质量元素来描述,数据质量元素分为数据质量定量元素和数据质量非定量元素。
2)数据质量评价过程
数据质量评价过程是产生和报告数据质量结果的一系列步骤,图2-7描述了数据质量评价过程。
3)数据质量评价方法
数据质量评价过程是通过应用一个或多个数据质量评价方法来完成的。数据质量评价方法分为直接评价法和间接评价法。
4)数据质量控制
数据产品的质量控制分为前期控制和后期控制两部分。前期控制包括数据录入前的质量控制、数据录入过程中的实时质量控制;后期控制是数据录入完成后的后处理质量控制与评价。从监控流程角度可分为前期控制、过程控制、系统监测和进度评价。
5)数据清理
数据清理也称数据清洗。从广义上讲,数据清理是将数据库精简以除去重复记录,并使剩余部分转换成符合标准的过程。而狭义上的数据清理特指在构建数据仓库和实现数据挖掘前对数据源进行处理,使数据实现准确性、完整性、一致性、唯一性、适时性、有效性,以适应后续操作的过程。从提高数据质量的角度出发,凡是有助于提高数据质量的处理过程,都可以认为是数据清理。 一般来说,数据清理主要包括数据分析、数据检测和数据修正三个步骤。
2.4.4 数据开发利用数据只有得到充分的开发利用才能发挥出它的作用。通过数据集成、数据挖掘、数据服务、数据可视化等技术手段,可以帮助数据用户从数据资源中找到所需要的数据,并将数据以一定 的方式展现出来,实现对数据的开发利用。
1.数据集成
数据集成就是将驻留在不同数据源中的数据进行整合,向用户提供统一的数据视图(一般称为全局模式),使得用户能以透明的方式访问数据。其中,数据源主要是指数据库,广义上也包括各类XML 文 档 、HTML 文档、电子邮件、普通文件等结构化、半结构化和非结构化数据。这些数据源存储位置分散,数据类型异构,数据库产品多样。
数据集成的目标就是充分利用已有数据,在尽量保持其自治性的前提下,维护数据源整体上的一 致性,提高数据共享利用效率。实现数据集成的系统称为数据集成系统,它为用户提供了统一的数据 源访问接口,用于执行用户对数据源的访问请求。典型的数据集成系统模型如图2-8所示。
2.数据挖掘
数据挖掘是指从大量数据中提取或挖掘知识,即从大量的、不完全的、有噪声的、模糊的、随机的实际数据中,提取隐含在其中的,人们不知道的却潜在有用的知识。数据挖掘把人们从对数据低层次的简单查询,提升到从数据库挖掘知识,提供决策支持。数据挖掘是一门交叉学科,其过程涉及数据库、人工智能、数理统计、可视化、并行计算等多种技术。
数据挖掘的主要任务包括数据总结、关联分析、分类和预测、聚类分析和孤立点分析。数据挖掘流程一般包括确定分析对象、数据准备、数据挖掘、结果评估与结果应用五个阶段,这些阶段在具体实施中可能需要重复多次。为完成这些阶段的任务,需要不同专业人员参与其中,主要包括业务分析人员、数据挖掘人员和数据管理人员。数据挖掘的结果经过决策人员的许可,才能实际运用并指导实践。将通过数据挖掘得出的预测模式和各个领域的专家知识结合在一起,构成一个可供不同类型的人使用的应用程序。
3.数据服务
数据服务主要包括数据目录服务、数据查询与浏览及下载服务、数据分发服务。
(1)数据目录服务。由于专业、领域、主管部门、分布地域和采用技术的不同,数据资源呈现出海量、多源、异构和分布的特点。对于需要共享数据的用户来说,往往面临不知道有哪些数据、不知道想要的数据在哪里、不知道如何获取想要的数据等困难。数据目录服务就是要解决这些问题,它是用来快捷地发现和定位所需数据资源的一种检索服务,是实现数据共享的重要基础功能服务之一。
(2)数据查询与浏览及下载服务。数据查询、浏览和下载是网络数据共享服务的重要方式,用户使用数据的方式有查询数据和下载数据两种。
(3)数据分发服务。数据分发是指数据的生产者通过各种方式将数据传送到用户的过程。 通过分发,能够使数据从采集、存储、加工、传播向使用流动,实现数据的价值。分发服务的 核心内容包括数据发布、数据发现、数据评价和数据获取。
4.数据可视化
可视化技术是指将抽象的事物或过程变成图形图像的表示方法。数据可视化 (Data Visualization) 概念来自科学计算可视化。数据可视化主要运用计算机图形学和图像处理技术, 将数据转换为图形或图像在屏幕上显示出来,并能进行交互处理。它涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域,是一门综合性的学科。
由于所要展现数据的内容和角度不同,可视化的表现方式也多种多样,主要可分为七类: 一维数据可视化、二维数据可视化、三维数据可视化、多维数据可视化、时态数据可视化、层 次数据可视化和网络数据可视化。
2.4.5 数据库安全
数据是脆弱的,它可能被无意识或有意识地破坏、修改,需要采用一定的数据安全措施, 确保合法的用户采用正确的方式在正确的时间对相应的数据进行正确的操作,确保数据的机密性、完整性、可用性和合法使用。数据库安全是指保护数据库,防止不合法的使用所造成的数 据泄露、更改或破坏。
1.数据库安全威胁
在数据库环境中,不同的用户通过数据库管理系统访问同一组数据集合,这样减少了数据的冗余,消除了不一致的问题,同时也免去程序对数据结构的依赖。然而,这也导致数据库面临更严重的安全威胁。数据库安全威胁的主要类型如表2-1 所示。
表2-1 数据库安全威胁的主要类型
维度 | 表现方式 | 说明 | |
威胁后果 | 非授权的信息泄露 | 未获授权的用户有意或无意得到信息。通过对授权访问的数据进行推 导分析获取非授权的信息也属于这一类 | |
非授权的数据修改 | 包括所有通过数据处理和修改而违反信息完整性的行为。非授权修改 不一定会涉及非授权信息泄露,因为即使不读取数据也可以进行破坏 | ||
拒绝服务 | 包括会影响用户访问数据或使用资源的行为 | ||
威胁方式 | 无意 | 自然或意外灾害 | 例如地震、水灾、火灾等。这些事故可能会破坏系统的软硬件,导致 完整性破坏和拒绝服务 |
系统软硬件中的 错误 | 导致应用实施错误的策略,从而导致非授权的信息泄露、数据修改或 拒绝服务 | ||
人为错误 | 导致无意地违反安全策略,导致的后果与软硬件错误类似 | ||
有意 | 授权用户 | 授权用户滥用自己的特权造成威胁 | |
恶意代理 | 病毒、特洛伊木马和后门是这类威胁中的典型代表 |
2.数据库安全对策
根据数据库安全威胁的特点,常用的数据库安全对策如表2-2所示。
表2-2常用的数据库安全对策
安全对策 | 说明 |
防止非法的 数据访问 | 这是数据库安全关键的需求之一。数据库管理系统必须根据用户或应用的授权来检查访 问请求,以保证仅允许授权的用户访问数据库 |
防止推导 | 推导指的是用户通过授权访问的数据,经过推导得出机密信息,而按照安全策略,该用 户是无权访问此机密信息的。在统计数据库中需要防止用户从统计聚合信息中推导得到 原始个体信息,特别是统计数据库容易受到推导问题的影响 |
保证数据库的 完整性 | 该需求指的是保护数据库不受非授权的修改,以及不会因为病毒、系统中的错误等导致 存储数据破坏。这种保护通过访问控制、备份/恢复及一些专用的安全机制共同实现 |
保证数据的 操作完整性 | 定位于在并发事务中保证数据库中数据的逻辑一致性。 一般而言,数据库管理系统中的 并发管理子系统负责实现这部分需求 |
保证数据的 语义完整性 | 在修改数据时,保证新值在一定范围内符合逻辑上的完整性。对数据值的约束通过完整 性约束来描述。可以针对数据库定义完整性约束(定义数据库处于正确状态的条件)也可以针对变换定义完整性约束(修改数据库时需要验证的条件) |
审计和日志 | 为了保证数据库中数据的安全, 一般要求数据库管理系统能够将所有的数据操作记录下 来。这一功能要求系统保留日志文件,安全相关事件可以根据系统设置记录在日志文件 中,以便事后调查和分析,追查入侵者或发现系统的安全弱点。审计和日志是有效的威 慑和事后追查、分析工具 |
安全对策 | 说明 |
标识和认证 | 同计算机系统的用户管理类似,使用的方法也非常类似。与其他系统一样,标识和认证 也是数据库的第一道安全防线。标识和认证是授权、审计等的前提条件 |
机密数据管理 | 数据库中的数据可能有部分是机密数据,也有可能全部是机密数据(如军队的数据库),而有些数据库中的数据则全部是公开的。同时保存机密数据和公开数据的情况比较复杂。对于同时保存机密数据和公开数据的数据库而言,访问控制主要保证机密数据的保密性,仅允许授权用户的访问。这些用户被赋予对机密数据进行一系列操作的权限,并且禁止传播这些权限。此外,这些被授权访问机密数据的用户应该与普通用户一 样可以访问公开数据,但是不能相互干扰。另一种情况是用户可以访问一组特定的机密数据,但是不能交叉访问。此外,还有一种情况是用户可以单独访问特定的机密数据集 合,但是不能同时访问全部机密数据 |
多级保护 | 多级保护表示一个安全需求的集合。现实世界中很多应用要求将数据划分不同的保密级 别。在多级保护体系中,进一步的要求是研究如何赋予多数据项组成的集合一个恰当的 密级。数据的完整性和保密性是通过给予用户权限来实现的,用户只能访问拥有的权限 所对应级别的数据 |
限界 | 限界的意义在于防止程序之间出现非授权的信息传递。信息传递出现在“授权通道” “存储通道”“隐通道”中。授权通道通过授权的操作提供输出信息,例如编辑或编译一 个文件。存储通道是存储区, 一个程序向其中存储数据,而其他程序可以读取。隐通道 指的是使用系统中并非设计用来进行通信的资源在主体间通信的信道 |
3.数据库安全机制
数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。数据库安全机制包括用户的身份认证、存取控制、数据库加密、数据审计、推理控制等内容。
2.5 系统集成工程随着信息技术的发展,系统集成逐步成为信息系统实施中一项重要的工作。本书的系统集成概念专指计算机信息系统的集成,包括计算机硬件平台、网络系统、系统软件、工具软件、应用软件的集成,以及围绕这些系统的相应咨询、服务和技术支持。信息系统集成是以计算机有关技术储备为基础,以可靠的产品为工具,用以实现某一特定的计算机系统功能组合的工程行为。
2.5.1 集成基础计算机信息系统的系统集成就是运用先进的计算机与通信技术,将支持各个信息孤岛的小运行环境集成统一在一个大运行环境之中。
系统集成的工作在信息系统项目建设中非常重要,它通过硬件平台、网络通信平台、数据库平台、工具平台、应用软件平台将各类资源有机、高效地集成到一起,形成一个完整的工作台面。系统集成工作的好坏对系统开发、维护有极大的影响。因此,系统集成在技术上需要遵 循的基本原则包括:开放性、结构化、先进性和主流化。
(1)开放性。系统软硬件平台、通信接口、软件开发工具、网络结构的选择要遵循工业开放标准,这是关系到系统生命周期长短的重要问题。对于稍具规模的信息系统,其系统软硬件平台很难由单一厂商提供。由不同厂商提供的系统平台要集成在一个系统中,就存在着接口的 标准化和开放问题,它们的连接都依赖于开放标准。所以,开放标准已成为建设信息系统必须 考虑的问题。 一个集成的信息系统必然是一个开放的信息系统。只有开放的系统才能满足可互 操作性、可移植性及可伸缩性的要求,才可能与另一个标准兼容的系统实现“无缝”的互操作, 应用程序才可能由一种系统移植到另一种系统,不断地为系统的扩展、升级创造条件。
(2)结构化。复杂系统设计的最基本方法依然是结构化系统分析设计方法。把一个复杂系统分解成相对独立和简单的子系统,每一个子系统又分解成更简单的模块,这样自顶向下逐层 模块化分解,直到底层每一个模块都是可具体说明和可执行的为止。这一思想至今仍是复杂系 统设计的精髓。
(3)先进性。先进性有两层意义:目前先进性和未来先进性。系统的先进性是建立在技术先进性之上的,只有先进的技术才有较强的发展生命力,系统采用先进的技术才能确保系统的 优势和较长的生存周期。系统的先进性还表现在系统设计的先进性,包括先进技术有机集成、 问题划分合理、应用软件符合人们的认知特点等。系统设计的先进性贯穿系统开发的整个生存 周期, 一定要认真对待。
(4)主流化。构成系统的每一个产品应属于该产品发展的主流,有可靠的技术支持,有成熟的使用环境,并具有良好的升级发展势头。
2.5.2 网络集成计算机网络系统集成不仅涉及技术问题,还涉及组织的管理问题,因而比较复杂,大型网络系统更是如此。从技术角度讲,网络集成不仅涉及不同厂家的网络设备和管理软件,还涉及异构和异质网络系统的互连问题。从管理角度讲,每个组织的管理方式和管理思想千差万别,实现向网络化管理的转变会面临许多人为因素的影响。因此,组织需要结合实际情况,建立网络系统集成的体系框架,指导网络系统建设,实现真正的网络化管理。如图2-9所示为计算机网络集成的一般体系框架。
下面对网络集成体系框架中的部分重要子系统进行说明。
(1)传输子系统。传输是网络的核心,是网络信息的“公路”和“血管”。传输线路带宽的高低不仅体现了网络的通信能力,也体现了网络的现代化水平,并且传输介质在很大程度上也决定了通信的质量,从而直接影响网络协议。
(2)交换子系统。网络按所覆盖的区域可分为局域网、城域网和广域网,由此,网络交换也可以分为局域网交换技术、城域网交换技术和广域网交换技术。
(3)安全子系统。由于网络的发展,安全问题一直是网络研究和应用的热点。网络安全主要关注的内容包括:使用防火墙技术,防止外部的侵犯;使用数据加密技术,防止任何人从通信信道窃取信息;访问控制,主要是通过设置口令、密码和访问权限保护网络资源。
(4)网管子系统。网络是一种动态结构。随着组织规模的扩大和改变,网络也会跟着扩大和改变。配置好网络以后,必须对其进行有效的管理,确保网络能连续不断地满足组织的需要。 对于任何网管子系统来说,关键的任务便是保证网络良好运行。由于网络规模的扩大,通常会 出现网络“瓶颈”问题,使系统的速度放慢。网管的职责便是找出瓶颈并解决它。
(5)服务器子系统。服务器是网络中的关键设备。服务器的作用就是提供处理器内存、 磁盘、打印机、软件数据等资源和服务,并负责协调管理这些资源。由于网络服务器要同时为网络上所有的用户服务,因此要求网络服务器具有较高的性能,包括较快的处理速度、较大的内存、较大的磁盘容量和高可靠性。根据网络的应用情况和规模,网络服务器可以选用高配置微机、工作站、小型机、超级小型机和大型机等。选择网络服务器时需要考虑以下因素:
●CPU的速度和数量;
●内存容量和性能;
●总线结构和类型;
●磁盘容量和性能;
●容错性能;
●网络接口性能;
●服务器软件等。
(6)网络操作子系统。网络操作子系统的主要任务是调度和管理网络资源,并为网络用户提供统一、透明使用网络资源的手段。网络资源主要包括网络服务器、工作站、打印机、网桥、路由器、交换机、网关、共享软件和应用软件等。
(7)服务子系统。网络服务是网络应用的核心。带宽再高的网络,如果没有好的网络服务,就不能发挥网络的效益。网络服务主要包括互联网服务、多媒体信息检索、信息点播、信息广播、远程计算和事务处理以及其他信息服务等。
2.5.3 数据集成数据集成的目的是运用一定的技术手段将系统中的数据按一定的规则组织成为一个整体,使得用户能有效地对数据进行操作。数据集成处理的主要对象是系统中各种异构数据库中的数据。数据仓库技术是数据集成的关键。
1.数据集成层次
数据集成是将参与数据库的有关信息在逻辑上集成为一个属于异构分布式数据库的全局概念模式,以达到信息共享的目的。数据集成可以分为基本数据集成、多级视图集成、模式集成和多粒度数据集成四个层次。
(1)基本数据集成。基本数据集成面临的问题很多。通用标识符问题是数据集成时遇到的最难的问题之一。由于同一业务实体存在于多个系统源中,并且没有明确的办法确认这些实体是同一实体时,就会产生这类问题。处理该问题的办法包括:
●隔离。保证实体的每次出现都指派一个唯一标识符。
●调和。确认哪些实体是相同的,并且将该实体的各次出现合并起来。
当目标元素有多个来源时,指定某一系统在冲突时占主导地位。数据丢失问题是最常见的问题之一,通常解决的办法是为丢失的数据产生一个非常接近实际的估计值来进行处理。
(2)多级视图集成。多级视图机制有助于对数据源之间的关系进行集成:底层数据表示方式为局部模型的局部格式,如关系和文件;中间数据表示为公共模式格式,如扩展关系模型或对象模型;高级数据表示为综合模型格式。视图集成化过程为两级映射:
●数据从局部数据库中经过数据翻译、转换,并集成为符合公共模型格式的中间视图;
●进行语义冲突消除、数据集成和数据导出处理,将中间视图集成为综合视图。
(3)模式集成。模型合并属于数据库设计问题,其设计的好坏常视设计者的经验而定,在实际应用中可参考的成熟理论较少。在实际应用中,数据源的模式集成和数据库设计仍有相当的差距,例如模式集成时出现的命名、单位、结构和抽象层次等的冲突问题,就无法照搬模式 设计的经验。
(4)多粒度数据集成。多粒度数据集成是异构数据集成中最难处理的问题,理想的多粒度数据集成模式是自动逐步抽象。数据综合(或数据抽象)指由高精度数据经过抽象形成精度较低,但是粒度较大的数据,其作用过程为,从多个较高精度的局部数据中获得较低精度的全局数据。在这个过程中,要对各局域中的数据进行综合,提取其主要特征。数据综合集成的过程实际上是特征提取和归并的过程。数据集成是最终实现数据共享和辅助决策的基础。
2.异构数据集成
数据集成的目的是为应用提供统一的访问支持,因此集成后的数据必须保证一定的完整性,包括数据完整性和约束完整性。数据集成还必须考虑语义冲突问题,信息资源之间存在的语义区别可能引起各种矛盾。从简单的名字语义冲突到复杂的结构语义冲突,都会干扰数据处理、发布和交换。此外,数据访问权限、异构数据源数据的逻辑关系、数据集成范围等问题都需要加以考虑。
1)异构数据集成的方法
异构数据集成方法归纳起来主要有两种:过程式方法和声明式方法。采用过程式方法, 一般是根据一组信息需求,采用一种点对点 (Ad-hoc) 的设计方法来集成数据。在这种情况下,关键就是设计一套合适的软件模块来存取数据源。软件模块不需要一个关于完整数据模式的清晰概念,主要是依赖于包装器 (Wrapper) 来封装数据源,利用中介器 (Mediator) 来合并和一致化从多个 Wrapper 和其他Mediator 传过来的数据。声明式方法的主要特点就是通过一套合适的语言来对多个数据源的数据进行建模,构建一个统一的数据表示,并且基于这一数据表示来对整体系统数据进行查询,通过一套有效的推理机制来对数据源进行存取,获得所需的信息。对于声明式数据集成方法,在设计过程中要重点考虑的两个关键问题是:相关领域的概念化建模和基于这一概念化表示的推理的可行性。
另一类方法是利用中间件集成异构数据库,该方法不需要改变原始数据的存储和管理方式。中间件位于异构数据库系统(数据层)和应用程序(应用层)之间,向下协调各数据库系统, 向上为访问集成数据的应用提供统一的数据模式和数据访问通用接口。各数据库仍完成各自任务,中间件主要为异构数据源提供一个高层次的检索服务。
2)开放数据库互连标准 (ODBC)
实现异构数据源的数据集成首先要解决的问题是原始数据的提取。从异构数据库中提取 数据大多采用开放式数据库互连 (Open Database Connectivity,ODBC) 。ODBC 是一种用来在 数据库系统之间存取数据的标准应用程序接口,目前流行的数据库管理系统都提供了相应的 ODBC驱动程序,它使数据库系统具有很好的开放性,数据格式转换也很方便。另一种提取数 据的方法是针对不同的数据源编写专用的嵌C 接口程序,这样可提高数据的提取速度。
3)基于XML的数据交换标准
使用中间件作为组织异构数据源集成的解决方案时,需要为中间件选择一种全局数据模式,统一异构数据源的数据模式。异构数据集成的全局模式需要满足的条件如下:
●能够描述各种数据格式,无论其是结构化的还是半结构化的。
● 易于发布和进行数据交换,集成后的数据可以方便地以多种格式发布,并便于在应用之间交换数据。
●可以采用关系或对象数据模式为全局模式,但并不能很好地满足上述要求。
4)基于JSON 的数据交换格式
在开发客户端与服务端的应用当中,数据交换接口通常都是通过XML 格式来进行数据交换的。近年来,随着AJAX 技术的兴起,JSON 作为一种轻量级的数据交换格式,以其易于阅读和编写的优点,被越来越多地应用于各个项目中。
2.5.4 软件集成随着对象技术和网络技术的发展,信息系统开发环境也逐步体现出从结构化到面向对象、 从集中到分布、从同构到异构、从独立到集成、从辅助到智能、从异步到协同的发展趋势。应 用系统的开发已从以单机为中心逐步过渡到以网络环境为中心,成千上万台个人计算机与工作站已变成全球共享的庞大的计算机信息资源。开放系统可以让用户透明地应用由不同厂商制造的不同硬件平台、由不同操作系统组成的异构型计算资源,在千差万别的信息资源(异构的、网络的、物理性能差别很大的、不同厂商和不同语言的信息资源)的基础上构造起信息共享的分布式系统。面对这样的趋势,必须对面向对象技术进行改进和扩展,使之符合异构网络应用的要求。在这一背景下出现了有代表性的软件构件标准:公共对象请求代理结构 (Common Object Request Broker Architecture,CORBA)、COM、DCOM与 COM 、.NET、J2EE应用架构等标准。
1)CORBA
对象管理组织 (Object Management Group,OMG)是 CORBA 规范的制定者,是由信息系 统供应商、软件开发者和用户共同构成的国际组织,建立于1989年。OMG 在理论上和实践上促进了面向对象软件的发展。OMG 的目的则是将对象和分布式系统技术集成为一个可相互操作的统一结构,此结构既支持现有的平台,也将支持未来的平台集成。以CORBA 为基础,利用JINI技术,可以结合各类电子产品成为网络上的服务资源,使应用集成走向更广阔的应用领域,同时Object Web把 CORBA 技术带入了互联网世界。CORBA 是 OMG 进行标准化分布式对象计算的基础。CORBA 自动匹配许多公共网络任务,例如对象登记、定位、激活、多路请求、组帧 和错误控制、参数编排和反编排、操作分配等。
2)COM
COM 中的对象是一种二进制代码对象,其代码形式是DLL 或 EXE 执行代码。COM 中的 对象都被直接注册在 Windows 的系统库中,所以, COM 中的对象都不再是由特定的编程语言 及其程序设计环境所支持的对象,而是由系统平台直接支持的对象。COM 对象可能由各种编程 语言实现,并为各种编程语言所引用。COM 对象作为某个应用程序的构成单元,不但可以作为 该应用程序中的其他部分,而且还可以单独为其他应用程序或系统提供服务。
COM 技术要达到的基本目标是:即使对象是由不同的开发人员用不同的编程语言实现的, 在开发软件系统时,仍能够有效地利用已经存在于其他已有软件系统中的对象;同时,也要使 当前所开发的对象便于今后开发其他软件系统时进行重用。
为实现与编程语言的无关性,将COM 对象制作成二进制可执行代码,然后在二进制代码 层使用这种标准接口的统一方式,为对象提供标准的互操作接口,并且由系统平台直接对COM 对象的管理与使用提供支持。COM 具备了软件集成所需的许多特征,包括面向对象、客户机/ 服务器架构 (B/S) 、 语言无关性、进程透明性和可重复性。
3)DCOM 与 COM
DCOM 作为COM 的扩展,不仅继承了COM 的优点,而且针对分布式环境还提供了一些 新的特性,例如位置透明性、网络安全性、跨平台调用等。DCOM 实际上是对用户调用进程外 服务的一种改进,通过RPC 协议,使用户可以通过网络以透明的方式调用远程机器上的远程服 务。在调用的过程中,用户并不是直接调用远程机器上的远程服务,而是首先在本地机器上建 立一个远程服务代理,通过 RPC 协议,调用远程服务机器上的桩,由桩来解析用户的调用以映 射到远程服务的方法或属性上。
COM 是 COM 的新发展或COM 更高层次上的应用,其底层结构仍然以COM 为基础,几 乎包容了COM 的所有内容。COM 倡导了一种新的概念,它把COM 组件软件提升到应用层而 不再是底层的软件结构,通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有 组件的底层细节留给操作系统。因此, COM 与操作系统的结合更加紧密。
COM 标志着组件技术达到了一个新的高度,它不再局限于一台机器上的桌面系统,而是把目标指向了更为广阔的组织内部网,甚至互联网。COM 与多层结构模型,以及Windows 操作系统为组织应用或 Web 应用提供了一套完整的解决方案。
4).NET
.NET是基于一组开放的互联网协议推出的一系列的产品、技术和服务。.NET开发框架在通用语言运行环境基础上,向开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。.NET开发框架 如图2-10所示。
5)J2EE
J2EE 架构是使用Java 技术开发组织级应用的一种事实上的工业标准,它是 Java技术不断适应和促进组织级应用过程中的产物。J2EE 为搭建具有可伸缩性、灵活性、易维护性的组织系统提供了良好的机制。J2EE的体系结构可以分为客户端层、服务器端组件层、EJB 层和信息系统层。
在J2EE规范中 ,J2EE 平台包括一整套的服务、应用编程接口和协议,可用于开发一般的多层应用和基于Web的多层应用,是J2EE的核心和基础。它还提供了EJB、Java Servlets API、JSP和XML技术的全面支持等。
2.5.5 应用集成集成关心的是个体和系统的所有硬件与软件之间各种人 机界面的一致性。从应用集合的一致表示、行为与功能的角 度来看,应用(包括软件、构件或部分)的集成化集合提供 一种一致的无缝用户界面。从信息系统集成技术的角度看,在集成的堆栈上,应用集成在最上层,主要解决应用的互操 作性问题,如图2-11所示。
拿语言作比喻,语法、语义、语用三者对应到系统集成技术上,网络集成解决语法的问题,数据集成解决语义的问题,应用集成解决语用的问题。
应用集成或组织应用集成 (Enterprise Application Integration,EAI) 是指将独立的软件应用 连接起来,实现协同工作。借助应用集成,组织可以提高运营效率,实现工作流自动化,并增 强不同部门和团队之间的协作。对应用集成的技术要求包括:
●具有应用间的互操作性。应用的互操作性提供不同系统间信息的有意义交换,即信息的语用交换,而不仅限于语法交换和语义交换。此外,它还提供系统间功能服务的使用功 能,特别是资源的动态发现和动态类型检查。
●具有分布式环境中应用的可移植性。提供应用程序在系统中迁移的潜力,并且不破坏应用所提供的或正在使用的服务。这种迁移包括静态的系统重构或重新安装,以及动态的 系统重构。
●具有系统中应用分布的透明性。分布的透明性屏蔽了由系统的分布所带来的复杂性。它使应用编程者不必关心系统是分布的还是集中的,从而可以集中精力设计具体的应用系 统,这就大大减少了应用集成编程的复杂性。
实现上述目标的关键在于,在独立应用之间实现实时双向通信和业务数据流,这些应用包括本地应用和云应用,其中云应用正变得越来越多。借助互联互通的流程和数据交换,组织通 常可以基于统一用户界面或服务,协调所有基础设施和应用的各种功能。
当事件或数据发生变化时,应用集成会确保不同应用之间保持同步。应用集成不同于数据集成:数据集成是共享数据,并不存储数据;而应用集成是在功能层面将多个应用直接连接起 来,帮助打造动态且具有高度适应性的应用和服务。
由于应用集成重点关注的是工作流层面的应用连接,因此需要的数据存储空间和计算时间并不多。应用集成既可以部署在云端,集成 SaaS 、CRM 等云应用,也可以部署在受防火墙保护的本地,集成传统 ERP 系统等,还可以部署在混合环境中,集成本地应用和托管在专用服务器上的云应用。可以帮助协调连接各种应用的组件有应用编程接口(API) 、 事件驱动型操作和数据映射。
如今,各行各业不同规模的组织都在利用应用集成实现流程互连和数据交换,提高业务 效率。
2.6 安全工程信息系统安全是一门新兴的工程实践课题。加大对信息安全系统工程的研究,可以规范信息安全系统工程建设的过程,提高建设信息安全系统工程的成熟能力。
2.6.1 工程概述信息安全系统工程就是要建造一个信息安全系统,它是整个信息系统工程的一部分,最好与业务应用信息系统工程同步建设,主要围绕“信息安全”的内容,例如信息安全风险评估、信息安全策略制定、信息安全需求确定、信息安全系统总体设计、信息安全系统详细设计、 信息安全系统设备选型、信息安全系统工程招投标、密钥密码机制确定、资源界定 和授权,以及信息安全系统实施中需要注意的防泄密问题和实施中后期的信息安全 系统测试、运营、维护的安全管理等问题。
为进一步论述信息安全系统工程,需 要区分几个术语,并了解它们之间的关系, 如图2-12所示。
信息安全保障系统(简称“信息安全系统”)是信息系统的一个部分,用于保证业务应用信 息系统正常运营。要建立一个信息系统,就必须建立一个或多个业务应用信息系统和一个信息安全系统。
业务应用信息系统是支撑业务运营的计算机应用信息系统,例如银行柜台业务信息系统、 国税征收信息系统等。业务应用信息系统工程就是为了建设好业务应用信息系统所组织实施的工程,一般称为信息系统集成工程,是信息系统工程的一部分。
信息安全系统工程是指为了建设好信息安全系统所组织实施的工程,也是信息系统工程的一部分。
2.6.2 安全系统如图2- 13所示的“宏观”三维空间图(信息安全空间),可以反映信息安全系统的体系架
构及其组成。
X轴是“安全机制”。安全机制可以理解为提供某些安全服务,利用各种安全技术和技巧所形成的一个较为完善的结构体系。例如“平台安全”机制,实际上就是指安全操作系统、安全数据库、应用开发运营的安全平台,以及网络安全管理监控系统等。
Y轴 是 “OSI 网络参考模型”。信息安全系统的许多技术、技巧都是在网络的各个层面上实施的,离开网络,信息系统的安全也将失去意义。
Z轴是“安全服务”。安全服务就是从网络中的各个层次提供信息应用系统所需要的安全服务支持。例如对等实体认证服务、访问控制服务、数据保密服务等。
由 X 、Y 、Z 三个轴形成的信息安全系统三维空间就是信息系统的安全空间。随着网络逐层扩展,这个空间不仅范围逐步加大,安全的内涵也更加丰富,具有认证、权限、完整、加密和不可否认五大要素,也称作安全空间的五大属性。
1.安全机制
安全机制包括基础设施安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全、授权和审计安全、安全防范体系等。
(1)基础设施安全。主要包括机房安全、场地安全、设施安全、动力系统安全、灾难预防与恢复等。
(2)平台安全。主要包括操作系统漏洞检测与修复、网络基础设施漏洞检测与修复、通用基础应用程序漏洞检测与修复、网络安全产品部署等。
(3)数据安全。主要包括介质与载体安全保护、数据访问控制、数据完整性、数据可用性、数据监控和审计、数据存储与备份安全等。
(4)通信安全。主要包括通信线路和网络基础设施安全性测试与优化、安装网络加密设 施、设置通信加密软件、设置身份鉴别机制、设置并测试安全通道、测试各项网络协议运行 漏洞等。
(5)应用安全。主要包括业务软件的程序安全性测试 (Bug 分析)、业务交往的防抵赖测 试、业务资源的访问控制验证测试、业务实体的身份鉴别检测、业务现场的备份与恢复机制检查,以及业务数据的唯一性与一致性及防冲突检测、业务数据的保密性测试、业务系统的可靠性测试、业务系统的可用性测试等。
(6)运行安全。主要包括应急处置机制和配套服务、网络系统安全性监测、网络安全产品运行监测、定期检查和评估、系统升级和补丁提供、跟踪最新安全漏洞及通报、灾难恢复机制与预防、系统改造管理、网络安全专业技术咨询服务等。
(7)管理安全。主要包括人员管理、培训管理、应用系统管理、软件管理、设备管理、文档管理、数据管理、操作管理、运行管理、机房管理等。
(8)授权和审计安全。授权安全是指以向用户和应用程序提供权限管理和授权服务为目标,主要负责向业务应用系统提供授权服务管理,提供用户身份到应用授权的映射功能,实现与实际应用处理模式相对应的、与具体应用系统开发和管理无关的访问控制机制。
(9)安全防范体系。组织安全防范体系的建立,就是使得组织具有较强的应急事件处理能力,其核心是实现组织信息安全资源管理 (Enterprise Information Security Resource Management, EISRM)。组织安全防范体系的建立可以更好地发挥以下六项能力:预警 (Warn) 、保护 (Protect)、检测 (Detect)、反 应 (Response)、 恢 复 (Recover) 和反击 (Counter-attack),即综 合的 WPDRRC 信息安全保障体系。
组织可以结合 WPDRRC 能力模型,从人员、技术、政策(包括法律、法规、制度、管理) 三大要素来构成宏观的信息网络安全保障体系结构的框架。主要包括组织机构的建立、人员的配备、管理制度的制定、安全流程的明确等,并切实做好物理安全管理、中心机房管理、主机安全管理、数据库安全管理、网络安全管理、网络终端管理、软件安全管理、授权和访问控制管理、审计和追踪管理,确保日常和异常情况下的信息安全工作持续、有序地开展。
2.安全服务
安全服务包括对等实体认证服务、访问控制服务、数据保密服务、数据完整性服务、数据源点认证服务、禁止否认服务和犯罪证据提供服务等。
(1)对等实体认证服务。用于两个开放系统同等层中的实体建立连接或数据传输时,对对方实体的合法性、真实性进行确认,以防假冒。
(2)访问控制服务。访问控制服务提供一套方法,将系统中的所有功能进行标识、组织、 托管,通过网络隐身、动态自适应认证、终端动态环境检测、全周期业务准入、智能权限基线、动态访问控制、多源信任评估等核心技术能力,满足多场景的各类组织的应用安全访问需求。
(3)数据保密服务。包括多种保密服务,为了防止网络中各系统之间的数据被截获或被非法存取而泄密,提供密码加密保护。数据保密服务可提供连接方式和无连接方式的数据保密,同时也可以对用户可选字段的数据进行保护。
(4)数据完整性服务。用于防止非法实体对交换数据的修改、插入、删除及在数据交换过程中的数据丢失。
(5)数据源点认证服务。用于确保数据来自真正源点,防止假冒。
(6)禁止否认服务。用于防止发送方在发送数据后否认自己发送过此数据,接收方在收到数据后否认自己收到过此数据或伪造接收数据,由两种服务组成,即不得否认发送和不得否认接收。
(7)犯罪证据提供服务。指为打击违反国内外法律法规的行为或活动提供各类数字证据、 信息线索等。
3.安全技术
安全技术主要涉及加密、数字签名技术、访问控制、数据完整性、认证、数据挖掘等内容。
2.6.3 工程体系架构信息安全系统工程 (Information Security System Engineering,ISSE) 是一门系统工程学,它的主要内容是确定系统和过程的安全风险,并且使安全风险降到最低或使其得到有效控制。
1.ISSE-CMM基础
信息安全系统工程能力成熟度模型 (ISSE Capability Maturity Model,ISSE-CMM) 是一种衡量信息安全系统工程实施能力的方法,是使用面向工程过程的一种方法。ISSE-CMM 是建立在统计过程控制理论基础上的。ISSE-CMM 模型抽取了这样一组“好的”工程实践并定义了过 程的“能力”,主要用于指导信息安全系统工程的完善和改进,使信息安全系统工程成为一个清 晰定义的、成熟的、可管理的、可控制的、有效的和可度量的学科。
ISSE-CMM模型是信息安全系统工程实施的度量标准,它覆盖了:
●整个工程生命期,包括工程开发、运行、维护和终止;
●管理、组织工程活动的组织;
●与其他规范(例如系统、软件、硬件、人的因素、测试工程、系统管理、运行和维护等 规范)并行的相互作用;
●与其他组织(包括获取、系统管理、认证、认可和评估组织)的相互作用。
2.ISSE-CMM过程
ISSE 过程的目标是提供一个框架,每个工程项目都可以对这个框架进行裁剪以符合自己 特定的需求。ISSE 表现为直接与系统工程功能和事件相对应的一系列信息安全系统工程行为。ISSE 将信息安全系统工程实施过程分解为工程过程 (Engineering Process)、风险过程 (Risk Process)和保证过程 (Assurance Process) 三个基本部分,如图2-14所示。它们相互独立,但又有着有机的联系。粗略地说,在风险过程中,人们识别出所开发的产品或系统风险,并对这些风险进行优先级排序。针对风险所面临的安全问题,工程过程与其他工程一起来确定安全策略和实施解决方案。最后,由保证过程建立起解决方案的可信性,并向用户传达这种安全可信性。
1)工程过程
信息安全系统工程与其他工程活动一样,是一个包括概念、设计、实现、测试、部署、运行、维护、退出的完整过程,如图2-15所示。在这个过程中,信息安全系统工程的实施必须紧密地与其他系统工程组进行合作。ISSE-CMM强调信息安全系统工程是一个大项目队伍中的组成部分,需要与其他科目工程的活动相互协调。这将有助于保证安全成为一个大项目过程中的 一部分,而不是分离的独立部分。
使用上面所描述的风险管理过程的信息和关于系统需求、相关法律、政策的其他信息,信息安全系统工程就可以与用户一起来识别安全需求。 一旦需求被识别,信息安全系统工程就可以识别和跟踪特定的安全需求。
对于信息安全问题,创建信息安全解决方案一般包括识别可能选择的方案,然后评估决定哪一种更可能被接受。将这个活动与工程过程的其他活动相结合,不但要解决方案的安全问题,还需要考虑成本、性能、技术风险、使用的简易性等因素。
2)风险过程
信息安全系统工程的一个主要目标是降低信息系统运行的风险。在信息安全中,风险就是有害事件发生的可能性及其危害后果。
一个有害事件由威胁、脆弱性和影响三部分组成。脆弱性包括可被威胁利用的资产性质。 如果不存在脆弱性和威胁,则不存在有害事件,也就不存在风险。风险管理是调查和量化风 险的过程,并建立组织对风险的承受级别。它是安全管理的一个重要部分。风险管理过程如 图2-16所示。
安全措施的实施可以减轻风险,但无论如何,不可能消除所有威胁或根除某个具体威胁。 这主要是因为消除风险所需的代价,以及与风险相关的各种不确定性。因此,必须接受残留的风险。在存在很大不确定性的情况下,由于风险度量不精确的本质特征,在怎样的程度上接受 它才是恰当的,往往会成为很大的问题。ISSE-CMM过程域包括实施组织对威胁、脆弱性、影 响和相关风险进行分析的活动保证。
3)保证过程
保证过程是指安全需求得到满足的可信程度,它是信息安全系统工程非常重要的产品,保证过程如图2-17所示。保证的形式多种多样。ISSE-CMM的可信程度来自信息安全系统工程实施过程可重复性的结果质量,成熟的组织比不成熟的组织更可能产生出重复的结果。
安全保证并不能增加任何额外的对安全相关风险的抵抗能力,但它能为减少预期安全风险提供信心。安全保证也可看作安全措施按照需求运行的信心。这种信心来自措施及其部署的正 确性和有效性。正确性保证了安全措施按设计实现了需求,有效性则保证了提供的安全措施可 充分地满足用户的安全需求。安全机制的强度也会发挥作用,但其作用却受到保护级别和安全 保证程度的制约。
3.ISSE-CMM体系结构
ISSE-CMM的体系结构模型采用两维设计,其中一维是“域”(Domain), 另一维是“能
力”(Capability).
1)域维/安全过程域
域维汇集了定义信息安全工程的所有实践活动,这些实践活动称为过程域 (Process Area, PA)。ISSE包括6个基本实践,这些基本实践被组织成11个信息安全工程过程域,这些过程域覆盖了信息安全工程的所有主要领域。每一个过程域包括一组表示组织成功执行过程域的目标,每一个过程域也包括一组集成的基本实施,基本实施定义了获得过程域目标的必要步骤。
基本实施的特性包括:
●应用于整个组织生命期;
●和其他基本实践互相不覆盖;
●代表安全业界“最好的实施”;
●不是简单地反映当前技术;
●可在业务环境下以多种方法使用;
●不指定特定的方法或工具。
由基本实施组成的11个安全工程过程域包括:PA01 实施安全控制、PA02 评估影响、PA03评估安全风险、PA04 评估威胁、PA05 评估脆弱性、PA06 建立保证论据、PA07 协调安全、PA08监控安全态、PA09 提供安全输入、PA10 确定安全需求、PA11验证和证实安全。
ISSE-CMM还包括11个与项目和组织实施有关的过程域:PA12 保证质量、PA13 管理配置、PA14管理项目风险、PA15 监测和控制技术工程项目、PA16 规划技术工程项目、PA17 定义组织的系统工程过程、PA18 改进组织的系统工程过程、PA19 管理产品线的演变、PA20 管理系统工程支持环境、PA21 提供不断更新的技能和知识、PA22 与供应商的协调。
2)能力维/公共特性
通用实施 (Generic Practices,GP) 由被称为公共特性的逻辑域组成。公共特性分为5个级别,依次表示增强的组织能力。能力维的通用实施按其成熟性排序,因此高级别的通用实施位于能力维的高端。
公共特性的成熟度等级定义如表2-3所示。
表2-3 公共特性的成熟度等级定义
级别 | 公共特性 | 通用实施 |
Level1:非正规实施级 | 1.1执行基本实施 | 1.1.1:执行过程 |
Level 2:规划和跟踪级 | 2.1规划执行 | 2.1.1:为执行过程域分配足够资源 2.1.2:为开发工作产品和/或提供过程域服务指定责任人 2.1.3:将过程域执行的方法形成标准化和/或程序化文档 2.1.4:提供支持执行过程域的有关工具 2.1.5:保证过程域执行人员获得适当的过程执行方面的培训 2.1.6:对过程域的实施进行规划 |
2.2规范化执行 | 2.2.1:在执行过程域中,使用文档化的规划、标准和/或 程序 2.2.2:在需要的地方将过程域的工作产品置于版本控制和配 置管理之下 | |
2.3验证执行 | 2.3.1:验证过程与可用标准和/或程序的一致性 2.3.2:审计工作产品(验证工作产品遵从可适用标准和/或 需求的情况) | |
2.4跟踪执行 | 2.4.1:用测量跟踪过程域相对于规划的态势 2.4.2:当进程严重偏离规划时采取必要的修正措施 | |
Level 3:充分定义级 | 3.1定义标准化 过程 | 3.1.1:对过程进行标准化 3.1.2:对组织的标准化过程族进行裁剪 |
3.2执行已定义的 过程 | 3.2.1:在过程域的实施中使用充分定义的过程 3.2.2:对过程域的适当工作产品进行缺陷评审 3.2.3:通过使用已定义过程的数据管理该过程 | |
3.3协调安全实施 | 3.3.1:协调工程科目内部的沟通 3.3.2:协调组织内不同组间的沟通 3.3.3:协调与外部组间的沟通 | |
Level 4:量化控制级 | 4.1建立可测度的 质量目标 | 4.1.1:为组织标准过程族的工作产品建立可测度的质量目标 |
4.2对执行情况实 施客观管理 | 4.2.1:量化地确定已定义过程的过程能力 4.2.2:当过程未按过程能力执行时,适当地采取修正行动 | |
Level 5:持续改进级 | 5.1改进组织能力 | 5.1.1:为改进过程效能,根据组织的业务目标和当前过程能 力建立量化目标 5.1.2:通过改变组织的标准化过程,从而提高过程效能 |
5.2改进过程的 效能 | 5.2.1:执行缺陷的因果分析 5.2.2:有选择地消除已定义过程中缺陷产生的原因 5.2.3:通过改变已定义过程来连续地改进实施 |
3)能力级别
将通用实施划分为公共特性,将公共特性划分为能力级别有多种方法。
公共特性和能力级别无论在评估一个组织过程能力时还是改进组织过程能力时都是重要的。当评估一个组织过程能力时,如果这个组织只执行了一个特定级别的一个特定过程的部分公共特性,则这个组织对这个过程而言,处于这个级别的最底层。例如,在2级能力上,如果缺乏跟踪执行公共特性的经验和能力,那么跟踪项目的执行将会很困难。如果高级别的公共特性在一个组织中实施,但其低级别的公共特性未能实施,则这个组织不能获得该级别的所有能力带来的好处。评估组织在评估一个组织个别过程能力时,应对这种情况加以考虑。
当一个组织希望改进某个特定过程能力时,能力级别的实施活动可为实施改进的组织提供
一个“能力改进路线图”。能力级别代表工程组织的成熟度级别,如图2-18所示。
5级能力级别的重点及能力特点如表2-4所示。
表2-4能力级别的重点与能力特点
级别 | 重点 | 能力特点 |
1级:非正规实施级 | 着重于一个组织或项目只是执行了包含基本实施 的过程 | 必须首先做它,然后才能管理它 |
2级:规划和跟踪级 | 着重于项目层面的定义、规划和执行问题 | 在定义组织层面的过程之前,先 要弄清楚与项目相关的事项 |
3级:充分定义级 | 着重于规范化地裁剪组织层面的过程定义 | 这个级别的能力特点可描述为: 用项目中学到的最好的东西来定 义组织层面的过程 |
4级:量化控制级 | 着重于测量。测量是与组织业务目标紧密联系在 一起的。尽管在以前的级别上,也把数据收集和 采用项目测量作为基本活动,但只有达到高级别 时,数据才能在组织层面上被应用 | 只有知道它是什么,才能测量 它;当被测量的对象正确时,基 于测量的管理才有意义 |
5级:持续改进级 | 从前面各级的所有管理活动中获得发展的力量, 并通过加强组织的文明保持这种力量。这一方法 强调文明的转变,这种转变又将使方法更有效 | 持续性改进的文明需要以完备的 管理实施、已定义的过程和可测 量的目标作为基础 |
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved