5.1软件工程
5.1.1架构设计
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件).指导构件集成的模式以及这些模式的约束组成。软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。
1、软件架构风格
软件架构设计的一个核心问题是能否达到架构级的软件复用,也就是说,能否在不同的系统中使用同个软件架构。
软件架构分为:
1数据流风格。数据流风格包括批处理序列和管道/过滤器两种风格
2调用/返回风格。调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构.
3)独立构件风格。独立构件风格包括进程通信和事件驱动的系统
4虚拟机风格。虚拟机风格包括解释器和基于规则的系统。
5仓库风格。仓库风格包括数据库系统、黑板系统和超文本系统
2、软件架构评估
1、在架构评估过程中,评估人员所关注的是系统的质量属性
2、敏感点是一个或多个构件(或之间的关系)的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
3、从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式分别是基于调查问卷(或检查表的方式、基于场景的方式和基于度量的方式。这三种评估方式中,基于场景的评估方式最为常用。
4、基于场景的方式主要包括:架构权衡分析法(ATAM)、软件架构分析法(SAAM)和成本效益分析法(CBAM)中。在架构评估中,一般采用刺激(Stimulus)、环境(Environment)和响应(Response)三方面来对场景进行描述。
5.1.2需求分析
软件需求是指用户解决问题或达到目标所需的条件或能力,是系统或系统部件要满足合同、标准、规范或其他正式规定文档所需具有的条件或能力,以及反映这些条件或能力的文档说明。
1、需求的层次
1、简单地说,软件需求就是系统必须完成的事以及必须具备的品质。需求是多层次的,包括业务需求、用户需求和系统需求。
2、质量功能部署(QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求、期望需求和意外需求,
2、需求过程
需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等.
1)需求获取
需求获取只有与用户的有效合作才能成功。常见的需求获取方法包括用户访谈、问卷调查、采样、情节串联板、联合需求计划等。
2)需求分析
1、一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性,因此,需要分析人员把杂乱无章的用户要求和期望转化为用户需求,这就是需求分析的工作。
2、需求分析对已经获取到的需求进行提炼、分析和审查,以确保所有的项目干系人都明白其含义并找出其中的错误、遗漏或其他不足的地方。
3、使用结构化分析(SA)方法进行需求分析,其建立的模型的核心是数据字典。围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。在实际工作中,一般使用实体关系图(ER图)表示数据模型,用数据流图(DFD)表示功能模型,用状态转换图(STD)表示行为模型。E-R图主要描述实体、属性,以及实体之间的关系,DFD从数据传递和加工的角度,利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能,STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作(例如,处理数据等)。
4、面向对象的分析(0OA)的基本任务是运用面向对象的(00)方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。最终产生一个符合用户需求,并能直接反映问题域和系统功能的OOA模型及其详细说明。OOA模型包括用例模型和分析模型。
3)需求规格说明书
编制软件需求规格说明书(SRS)是需求开发活动的产物,编制该文档的目的是使项目干系人与开发团队对系统的初始规定有一个共同的理解,使之成为整个开发工作的基础。SRS是软件开发过程中最重要的文档之一,对于任何规模和性质的软件项目都不应该缺少。
4)需求验证与确认
在实际工作中,一般通过需求评审和需求测试工作来对需求进行验证。需求评审就是对SRS进行技术评审SRS的评审是一项精益求精的技术,它可以发现那些二义性的或不确定性的需求,为项目干系人提供在需求问题上达成共识的方法。有在业务需求基本明确,用户需求部分确定时,同步进行需求测试,才可能及早发现问题,从而在需求开发阶段以较低的代价解决这些问题。
3、UML
统一建模语言(UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。从总体上来看,UML的结构包括构造块、规则和公共机制三个部分
1)UML中的事物
UML中的事物也称为建模元素,包括结构事物、行为事物(,也称动作事物)、分组事物和注释事物(也称注解事物)。这些事物是UML模型中最基本的OO构造块
2)UML中的关系
UML用关系把事物结合在一起,主要有四种关系,分别为:
依赖:依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。
关联:关联描述一组对象之间连接的结构关系。
泛化:泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象
实现:实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
3)UML2.0中的图:UML2.0包括14种图
4)UML视图
包括5个系统视图:
4、面向对象分析
1、OOA的任务是“做什么”OOD的任务是“怎么做”
2、面向对象分析阶段的核心工作是建立系统的用例模型与分析模型
1)用例模型在OOA方法中,构建用例模型一般需要经历四个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型。
2)分析模型
5.1.3软件设计
1、结构化设计
1、结构化设计(SD)是一种面向数据流的方法,它以SRS和SA阶段所产生的DFD和数据字典等文档为基础是一个自顶向下、逐步求精和模块化的过程。SD方法的基本思想是将软件设计成由相对独立且具有单一功能的模块组成的结构,分为概要设计和详细设计两个阶段,其中概要设计又称为总体结构设计。
2、在SD中,需要遵循一个基本的原则: 高内聚,低耦合。内聚表示模块内部各成分之间的联系程度,是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做目标单一的一件事情;合表示模块之间联系的程度。紧密耦合表示模块之间联系非常强,松散耦合表示模块之间联系比较弱,非耦合则表示模块之间无任何联系,是完全独立的。
2、面向对象设计面向对象设计(OOD)是OOA方法的延续,其基本思想包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。常用的OOD原则包括:
(1)单职原则: 设计功能单一的类。本原则与结构化方法的高内聚原则是一致的.
(2) 开闭原则: 对扩展开放,对修改封闭。
(3) 李氏替换原则: 子类可以替换父类。
(4) 依赖倒置原则: 要依赖于抽象,而不是具体实现;要针对接口编程,
(5) 接口,不要针对实现编程。隔离原则: 使用多个专门的接口比使用单一的总接口要好。
(6) 组合重用原则: 要尽量使用组合,而不是继承关系达到重用目的.
(7)迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。本原则与结构化方法的低耦合原则是一致的。
3、设计模式
1、设计模式是前人经验的总结,它使人们可以方便地复用成功的软件设计。设计模式包含模式名称、问题目的、解决方案、效果、实例代码和相关设计模式等基本要素。
2、根据处理范围不同,设计模式可分为类模式和对象模式。类模式处理类和子类之间的关系,这些关系通过继承建立,在编译时刻就被确定下来,属于静态关系,对象模式处理对象之间的关系,这些关系在运行时刻变化,更具动态性。根据目的和用途不同,设计模式可分为创建型模式、结构型模式和行为型模式三种。
1创建型模式主要用于创建对象;
2结构型模式主要用于处理类或对象的组合;
3行为型模式主要用于描述类或对象的交互以及职责的分配
5.1.4软件实现
1、软件配置管理
软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
2、软件编码
编码就是把软件设计的结果翻译成计算机可以“理解和识别”的形式---用某种程序设计语言书写的程序
3、软件测试
1、软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等规定的软件质量要求。通过测试发现软件缺陷,为软件产品的质量测量和评价提供依据。
2、软件测试方法可分为静态测试和动态测试。
1静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检测静态测试包括对文档的静态测试和对代码的静态测试。对文档的静态测试主要以检查单的形式进行,而对代码的静态测试一般采用桌前检查、代码走查和代码审查
2动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。
白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。白盒测试方法主要有控制流测试、数据流测试和程序变异测试等。另外,使用静态测试的方法也可以实现白盒测试。例如,使用人工检查代码的方法来检查代码的逻辑问题,也属于白盒测试的范畴。白盒测试方法中,最常用的技术是逻辑覆盖,即使用测试数据运行被测程序,考查对程序逻辑的覆盖程度。主要的覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件/判定覆盖、条件组合覆盖、修正的条件/判定覆盖和路径覆盖等。
黑盒测试也称为功能测试,主要用于集成测试、确认测试和系统测试中。黑盒测试将程序看作是一个不透明的黑盒,完全不考虑(或不了解)程序的内部结构和处理算法,而只检查程序功能是否能按照SRS的要求正常使用,程序是否能适当地接收输入数据并产生正确的输出信息,程序运行过程中能否保持外部信息(例如,文件和数据库等)的完整性等。黑盒测试根据SRS所规定的功能来设计测试用例,一般包括等价类划分、边界值分析、判定表、因果图、状态图、随机测试、猜错法和正交试验法等。
5.1.5部署交付
软件开发完成后,必须部署在最终用户的正式运行环境,交付给最终用户使用,才能为用户创造价值。这些活动包括软件打包、安装、配置、测试、集成和更新等。随在整个软件的开发过程中。
1、软件部署与交付
软件部署与交付是软件生命周期中的一个重要环节,属于软件开发的后期活动,即通过配置、安装和激活等活动来保障软件制品的后续运行。
2、持续交付
为解决部署与交付常存在的问题,持续交付应运而生,持续交付是一系列开发实践方法,用来确保让代
码能够快速、安全地部署到生产环境中。主要体现在:
(1)在需求阶段,抛弃了传统的需求文档的方式,使用便于开发人员理解的用户故事
(2)在开发测试阶段,做到持续集成,让测试人员尽早进入项目开始测试;
(3)在运维阶段,打通开发和运维之间的通路,保持开发环境和运维环境的统一
2、持续交付具备的优势主要包括:
(1)持续交付能够有效缩短提交代码到正式部署上线的时间,降低部署风险
(2)持续交付能够自动、快速地提供反馈,及时发现和修复缺陷;
(3) 持续交付让软件在整个生命周期内都处于可部署的状态;
(4)持续交付能够简化部署步骤,使软件版本更加清晰
(5) 持续交付能够让本付过程成为一种可靠的,可期的,可视化的过程
3、持续部署
1)持续部署方案
容器技术目前是部署中最流行的技术。常用的持续部署方案有Kubernetes+Docker和Matrix系统两种
2)部署原则
在持续部署管理的时候,需要遵循一定的原则,主要包括!
部署包全部来自统一的存储库;
所有的环境使用相同的部署方式
所有的环境使用相同的部署脚本;
部署流程编排阶梯式晋级,即在部署过程中需要设置多个检查点,一旦发生问题可以有序地进行回滚操作:
整体部署由运维人员执行:
仅通过流水线改变生产环境,防止配置漂移
不可变服务器;
部署方式采用蓝绿部署或金丝雀部署
3)部署层次
首先要明确部署的目的并不是部署一个可工作的软件,而是部署一套可正常运行的环境。:完整的镜像部署包括三个环节: Build - Ship-Run。
Build:跟传统的编译类似,将软件编译形成RPM包或者Jar包:
Ship:则是将所需的第三方依赖和第三方插件安装到环境中;
Run:就是在不同的地方启动整套环境。
制作完成部署包之后,每次需要变更软件或者第三方依赖以及插件升级的时候,不需要重新打包,直接更新
部署包即可。
4)不可变服务器
不可变服务器是一种部署模式,是指除了更新和安装补丁程序以外,不对服务器进行任何更改
5)蓝绿部署和金丝雀部署
在部署原则中提到两大部署方式为蓝绿部署和金丝雀部署
蓝绿部署是指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中,当出现问题的时候,可以快速地将用户环境切回旧版本,并对新版本进行修复和调整。
金丝雀部署是指当有新版本发布的时候,先让少量用户使用新版本,并且观察新版本是否存在问题。如果出现问题,就及时处理并重新发布;如果一切正常,就稳步地将新版本适配给所有的用户
补充:
蓝绿部署不停止老版本,额外搞一套新版本,等测试发现新版本OK后,删除老版本。
金丝雀部署:不停止老版本,额外搞一套新版本,按照用户设置路由权重,如90%的用户维持使用老版本10%的用户尝鲜新版本
4、部署与交付的新趋势
持续集成、持续交付和持续部署的出现及流行反映了新的软件开发模式与发展趋势,主要表现为:。
工作职责和人员分工的转变:软件开发人员运用自动化开发工具进行持续集成,进一步将交付和部署扩展而原来的手工运维工作也逐渐被分派到了开发人员的手里。运维人员的工作也从重复枯燥的手工作业转化为开发自动化的部署脚本,并逐步并入开发人员的行列之中。。
大数据和云计算基础设施的普及进一步给部署带来新的飞跃:云计算的出现使得计算机本身也可以进行自动化创建和回收,这种环境管理的范畴将得到进一步扩充。部署和运维工作也会脱离具体的机器和机房,可以在远端进行,部署能力和灵活性出现了质的飞跃。
研发运维的融合: 减轻运维的压力,把运维和研发融合在一起
5.1.6过程管理
软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面.
1、成熟度模型
CSMM模型由4个能力域、20个能力子域、161个能力要求组成:
(1)治理:包括战略与治理、目标管理能力子域,用于确定组织的战略、产品的方向、组织的业务目标并确保目标的实现。
(2)开发与交付:包括需求、设计、开发、测试、部署、服务、开源应用能力子域,这些能力子域确保通过软件工程过程交付满足需求的软件,为顾客与利益干系人增加价值。
(3管理与支持:包括项目策划、项目监控、项目结项、质量保证、风险管理、配置管理、供应商管理能力子域"这些能力子域覆盖了软件开发项目的全过程,以确保软件项目能够按照既定的成本、进度和质量交付,能够满足顾客与利益干系人的要求。
(4)组织管理:包括过程管理、人员能力管理、组织资源管理、过程能力管理能力子域,对软件组织能力进行综合管理
2、成熟度等级
5.2数据工程
5.2.1数据建模
数据建模是对现实世界中具体的人、物、活动和概念进行抽象、表示和处理,变成计算机可处理的数据,也就是把现实世界中的数据从现实世界抽象到信息世界和计算机世界。
1、数据模型
根据模型应用目的不同,可以将数据模型划分为三类:概念模型、逻辑模型和物理模型
1)概念模型
概念模型也称信息模型,它是按用户的观点来对数据和信息建模,也就是说,把现实世界中的客观对象抽象为某一种信息结构,这种信息结构不依赖于具体的计算机系统,也不对应某个具体的DBMS,它是概念级别的模型
2)逻辑模型
1、逻辑模型是在概念模型的基础上确定模型的数据结构,目前主要的数据结构有层次模型、网状模型、关系模型、面向对象模型和对象关系模型。其中,关系模型成为目前最重要的一种逻辑数据模型。
2、关系模型的基本元素包括关系、关系的属性、视图等。
3、关系数据模型的数据操作主要包括查询、插入、删除和更新数据,这些操作必须满足关系的完整性约束条件。关系的完整性约束包括三大类型:实体完整性、参照完整性和用户定义的完整性
3)物理模型
物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。物理数据模型的内容包括确定所有的表和列,定义外键用于确定表之间的关系基于性能的需求可能进行反规范化处理等内容。在物理实现上的考虑,可能会导致物理数据模型和逻辑数据模型有较大的不同。物理数据模型的目标是如何用数据库模式来实现逻辑数据模型,以及真正地保存数据物理模型的基本元素包括表、字段、视图、索引、存储过程、触发器等,其中表、字段和视图等元素与逻辑模型中基本元素有一定的对应关系
2、数据建模过程通常来说,数据建模过程包括数据需求分析、概念模型设计、逻辑模型设计和物理模型设计等过程
(1)数据需求分析。简单地说,数据需求分析就是分析用户对数据的需要和要求。
(2)概念模型设计。将需求分析得到结果抽象为概念模型的过程就是概念模型设计,其任务是确定实体和数据及其关联。
(3)逻模模型设计。逻辑模型设计的任务就是将概念模型中实体、属性和关联转换为关系模型结构中的关系模式。
(4)物理模型设计。将数据模型转换为真正的数据库结构,还需要针对具体的DBMS进行物理模型设计使数据模型走向数据存储应用环节。
5.2.2数据标准化
数据标准化是实现数据共享的基础。数据标准化主要为复杂的信息表达、分类和定位建立相应的原则和规范使其简单化、结构化和标准化,从而实现信息的可理解、可比较和可共享,为信息在异构系统之间实现语义互操作提供基础支撑。数据标准化的主要内容包括元数据标准化、数据元标准化、数据模式标准化、数据分类与编码标准化和数据标准化管理。
1、元数据标准化
元数据最简单的定义是:元数据是关于数据的数据。元数据被定义为提供关于信息资源或数据的一种结构化数据,是对信息资源的结构化描述。其实质是用于描述信息资源或数据的内容、覆盖范围、质量、管理方式数据的所有者、数据的提供方式等有关的信息
2、数据元标准化
数据元标准的概念,要求按共同约定的规则进行统一组织、分类和标识数据,规范统一数据的含义、表示方法和取值范围等,保证数据从产生的源头就具备一致性。
1数据元
是数据库、文件和数据交换的基本数据单元。数据元一般来说由三部分组成:1对象2特性3表示
2)数据元提取
数据元提取是数据元标准化的一项重要内容,为了确保数据元具有科学性和互操作性需要采用合理的数据元提取方法。目前常用的数据元提取方法有两种:自上而下提取法和自下而上提取法
3)数据元标准
一般来说,制定一个数据元标准,应遵循若干个基本过程
3、数据模式标准化
1、数据模式是数据的概念、组成、结构和相互关系的总称。在数据共享过程中,这种差异对人们进行信息的共享与交换形成了障碍。为了保证能够顺畅进行信息的共享,对特定领域而言,需要一个统一的数据模式作为数据共享与交换的基础。同时也保证该领域的相关人员对统一的数据模型有准确的、无歧义的理解。
2、数据模式的描述方式主要有图描述方法和数据字典方法。图描述方法常用的有IDEFIX方法和UML图,主要用来描述数据集中的实体和实体之间的相互关系,数据字典形式用来描述模型中的数据集、单个实体、属性的摘要信息。
4、数据分类与编码标准化
所谓数据分类与编码标准化就是把数据分类与编码工作纳入标准化工作的领域,按标准化的要求和工作程序将各种数据按照科学的原则进行分类以编码,经有关方面协商一致,由主管机构批准、注册,以标准的形式发布,作为共同遵守的准则和依据,并在其相应的级别范围内宣贯和推行。
数据分类与编码标准化是简化信息交换、实现信息处理和信息资源共享的重要前提,是建立各种信息管理系统的重要技术基础和信息保障依据。通过分类与编码标准化,可以最大限度地消除对信息命名、描述、分类和编码的不一致造成的混乱、误解等现象,可以减少信息的重复采集、加工、存储等操作,使事物的名称和代码的含义统一化、规范化,确立代码与事物或概念之间的一一对应关系,以保证数据的准确性和相容性为信息集成与资源共享提供良好的基础。数据分类与编码的作用主要包括用于信息系统的共享和互操作,统数据的表示法和提高信息处理效率。
5、数据标准化管理
数据标准化阶段的具体过程包括确定数据需求、制定数据标准、批准数据标准和实施数据标准四个阶段
(1)确定数据需求。本阶段将产生数据需求及相关的元数据、域值等文件。
(2)制定数据标准。本阶段要处理“确定数据需求”阶段提出的数据需求。如果现有的数据标准不能满足该数据需求,可以建议制定新的数据标准,也可建议修改或者封存已有数据标准。
(3)批准数据标准。本阶段的数据管理机构对提交的数据标准建议、现行数据标准的修改或封存建议进行审查。一经批准,该数据标准将扩充或修改数据模型。
(4)实施数据标准。本阶段涉及在各信息系统中实施和改进已批准的数据标准
5.2.3 数据运维
1、数据存储
数据存储就是根据不同的应用环境,通过采取合理、安全、有效的方式将数据保存到物理介质上,并能保证
对数据实施有效的访问。
(1)数据存储介质。数据存储首先要解决的是存储介质的问题。存储介质是数据存储的载体,是数据存储的基础。存储介质并不是越贵越好、越先进越好,要根据不同的应用环境,合理选择存储介质。存储介质的类型主要有磁带、光盘和磁盘三种。
(2) 存储管理
2、数据备份
1、数据备份是为了防止由于用户操作失误、系统故障等意外原因导致的数据丢失,而将整个应用系统的数据或一部分关键数据复制到其他存储介质上的过程。这样做的目的是保证当应用系统的数据不可用时,可以利用备份的数据进行恢复,尽量减少损失。
2、当前最常见的数据备份结构可以分为四种: DAS备份结构、基于LAN的备份结构、LANFREE备份结构和SERVER-FREE备份结构。常见的备份策略主要有三种:完全备份、差分备份和增量备份
补充:
完全备份就是指对某一个时间点上的所有数据或应用进行的一个完全拷贝
差分备份:备份自上一次完全备份之后有变化的数据。增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加和者被修改的文件。
差异备份与增量备份的区别在于它们备份的参考点不同: 前者的参考点是上一次完全备份、差异备份或增量备份,后者的参考点是上一次完全备份。
3、数据容灾
1、根据容灾系统保护对象的不同,容灾系统分为应用容灾和数据容灾两类。应用容灾用于克服灾难对系统的影响,保证应用服务的完整、可靠和安全等一系列要求,使得用户在任何情况下都能得到正常的服务,数据容灾则关注于保证用户数据的高可用性,在灾难发生时能够保证应用系统中的数据尽量少丢失或不丢失使得应用系统能不间断地运行或尽快地恢复正常运行。
2、数据备份是数据容灾的基础。数据备份是数据高可用的最后一道防线,其目的是为了在系统数据崩溃时能够快速恢复数据
3、衡量容灾系统有两个主要指标:RPO和RTO,其中RPO代表了当灾难发生时允许丢失的数据量,而RTO则代表了系统恢复的时间。
4、数据质量评价与控制
1)数据质量描述
数据质量可以通过数据质量元素来描述,数据质量元素分为数据质量定量元素和数据质量非定量元素
3)数据质量评价方法
数据质量评价方法分为直接评价法和间接评价法:
(1)直接评价法:通过将数据与内部或外部的参照信息,如理论值等进行对比。确定数据质量。
(2)间接评价法:利用数据相关信息,如数据只对数据源、采集方法等的描述推断或评估数据质量
4)数据质量控制数据产品的质量控制分成前期控制和后期控制两个大部分。前期控制包括数据录入前的质量控制、数据录入过程中的实时质量控制,后期控制为数据录入完成后的后处理质量控制与评价。依据建库流程可分为:
前期控制:”是在提交成果(即数据入库)之前对所获得的原始数据与完成的工作进行检查,进一步发现和改正错误。
过程控制:实施减少和消除误差和错误的实用技术和步骤,主要应用在建库过程中,用来对获得的数据在录入过程中进行属性的数据质量控制。
系统检测:在数据入库后进行系统检测,设计检测模板,利用检测程序进行系统自检。
精度评价:对入库属性数据用各种精度评价方法进行精度分析,为用户提供可靠的属性数据
5)数据清理
数据清理的三个步骤:
(1)数据分析:是指从数据中发现控制数据的一般规则,比如字段域、业务规则等,通过对数据的分析定义出数据清理的规则,并选择合适的清理算法
(2)数据检测:是指根据预定义的清理规则及相关数据清理算法,检测数据是否正确,比如是否满足字段域、业务规则等,或检测记录是否重复。
(3) 数据修正:是指手工或自动地修正检测到的错误数据或重复的记录
5.2.4数据开发利用
数据只有得到充分的开发利用才能发挥出它的作用。通过数据集成、数据挖掘和数据服务(目录服务、查询服务、浏览和下载服务、数据分发服务)、数据可视化、信息检索等技术手段,帮助数据用户从数据资源中找到所需要的数据,并将数据以一定的方式展现出来,实现对数据的开发利用。
1、数据集成
1、数据集成就是将驻留在不同数据源中的数据进行整合,向用户提供统一的数据视图,使得用户能以透明的方式访问数据。
2、数据集成的目标就是充分利用已有数据,在尽量保持其自治性的前提下,维护数据源整体上的一致性提高数据共享利用效率。实现数据集成的系统称为数据集成系统,它为用户提供了统一的数据源访问接口用于执行用户对数据源的访问请求。
2、数据挖掘
数据挖掘是指从大量数据中提取或“挖掘”知识,即从大量的、不完全的、有噪声的、模糊的、随机的实际数据中,提取隐含在其中的、人们不知道的、却是潜在有用的知识。
数据挖掘的目标是发现隐藏于数据之后的规律或数据间的关系,从而服务于决策。数据挖掘常见的主要任务包括数据总结、关联分析、分类和预测、聚类分析和孤立点分析。数据挖掘流程一般包括确定分析对象、数据准备、数据挖掘、结果评估与结果应用五个阶段,这些阶段在具体实施中可能需要重复多次。为完成这些阶段的任务,需要不同专业人员参与其中,专业人员主要包括业务分析人员、数据挖掘人员和数据管理人员。
3、数据服务
数据服务主要包括数据目录服务、数据查询与浏览及下载服务、数据分发服务。
(1)数据目录服务。对于需要共享数据的用户来说,往往存在不知道有哪些数据、不知道想要的数据在哪里、不知道如何获取想要的数据等困难。数据目录服务就是要解决这些问题,是用来快捷地发现和定位所需
数据资源的一种检索服务,是实现数据共享的重要基础功能服务之一
(2)数据查询与浏览及下载服务。数据查询、浏览和下载是网上数据共享服务的重要方式
(3)数据分发服务。数据分发是指数据的生产者通过各种方式将数据传送到用户的过程。
4、数据可视化
1、数据可视化主要运用计算机图形学和图像处理技术,将数据转换成为图形或图像在屏幕上显示出来,并能进行交互处理,它涉及计算机图形学、图像处理、计算机辅助设计、计算机视觉及人机交互技术等多个领域,是一门综合性的学科。
2、由于所要展现数据的内容和角度不同,可视化的表现方式也多种多样,主要可分为七类:一维数据可视化、二维数据可视化、三维数据可视化、多维数据可视化、时态数据可视化、层次数据可视化和网络数据可视化
5、信息检索
1、广义的信息检索是指将信息按一定的方式组织和存储起来,然后根据用户需求查找出特定信息的技术所以全称是信息存储与检索。狭义的信息检索仅指用户查找特定信息这部分,即按照用户的检索需求,利用已有的检索工具或数据库,从中找出特定信息的过程
2、信息检索的主要方法如下:
(1)全文检索。以文本数据为主要处理对象,根据数据资料的内容而不是外在特征来实现的信息检索手段
2)字段检索。把检索对象按一定标准在不同字段中进行著录,并把不同字段作为检索依据
(3)基于内容的多媒体检索。按检索内容可分为图像检索、视频检索和声音检索等。
(4)数据挖掘。从大量的、不完全的、模糊的、随机的数据中,提取隐含在其中且人们事先不知道的潜在有用的信息和知识的过程。
补充:检索字段,实际上就是不同的检索点。不同的文献,检索字段是不一样的。在数据库中通过对字段的限制检索,可以控制检索结果的相关性,提高检索效能。字段检索是计算机检索时,限定检索词在数据库内常用字段检索/特定字段检索查找区域的检索技巧。使用字段检索可以缩小检索范围。
3、信息检索的常用技术包括布尔逻辑检索技术、截词检索技术、临近检索技术、限定字段检索技术、限制检索技术等。
(1)布尔逻辑检索技术。严格意义上的布尔检索法是指利用布尔逻辑运算符连接各个检索词,然后由计算机进行相应的逻辑运算,以找出所需信息的方法。
(2)截词检索技术。截词检索技术是指用截断的词的一个局部进行检索,并认为凡是满足这个词局部的所有字符的信息,都为命中的信息。截词符用“?”或“*”表示(不同系统、不同数据库,其代表的含义有所不同
(3)临近检索技术。临近检索又称位置检索,主要是通过检索式中的专门符号来规定检索词在结果中的相对位置。在某些情况下,若不限制检索词之间的位置关系则会造成误检,影响查准率。
(4)限定字段检索技术。限定字段检索即指定检索词在记录中出现的字段。检索时,计算机只对限定字段进行匹配运算,以提高检索效率和查准率。
5)限制检索技术。限制检索是通过限制检索范围,达到优化检索的方法。限制检索的方式有很多种,例如进行字段检索,使用限制符,采用限制检索命令等。
5.2.5数据库安全
1、数据库安全威胁
2、数据库安全对策
3、数据库安全机制
数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。数据库安全机制包括用户的身份认证、存取控制、数据库加密、数据审计推理控制等内容。
5.3系统集成
5.3.1集成基础
系统集成的工作在信息系统项目建设中非常重要,它通过硬件平台、网络通信平台、数据库平台、工具平台应用软件平台将各类资源有机、高效地集成到一起,形成一个完整的工作台面。系统集成工作的好坏对系统开发、维护有极大的影响。因此,在技术上需要遵循的基本原则包括: 开放性、结构化、先进性和主流化。
(1)开放性。系统硬软件平台、通信接口、软件开发工具、网络结构的选择要遵循工业开放标准
(2)结构化。复杂系统设计的最基本方法依然是结构化系统分析设计方法。把一个复杂系统分解成相对独立和简单的子系统,每一个子系统又分解成更简单的模块,这样自顶向下逐层模块化分解,直到底层每一个模块都是可具体说明和可执行的为止。
(3)先进性。先进性有两层意义:目前先进性和未来先进性
(4)主流化。系统构成的每一个产品应属于该产品发展的主流,有可靠的技术支持,有成熟的使用环境并具有良好的升级发展势头。
5.3.2网络集成
1、传输子系统。目前主要的传输介质分为无线传输介质和有线传输介质两大类。常用的无线传输介质主要包括无线电波、微波、红外线等,常用的有线传输介质主要包括双绞线、同轴电缆、光纤等。
2、交换子系统。网络按所覆盖的区域可分为局域网、城域网和广域网,由此网络交换也可以分为局域网交换技术、城域网交换技术和广域网交换技术
3、安全子系统。网络安全主要关注的内容包括:使用防火墙技术,防止外部的侵犯,使用数据加密技术防止任何人从通信信道窃取信息,访问控制,主要是通过设置口令、密码和访问权限保护网络资源。
4、网管子系统。配置好网络以后,必须对其进行有效的管理,确保网络能连续不断地满足组织的需要。由于网络规模的扩大,通常会出现网络“瓶颈”问题,使系统的速度变慢。网管的职责便是找出瓶颈并解决它
5、服务器子系统。服务器是网络中的关键设备。服务器的作用就是向工作站提供处理器内存、磁盘、打印机、软件数据等资源和服务,并负责协调管理这些资源。由于网络服务器要同时为网络上所有的用户服务因此要求网络服务器具有较高的性能,包括快的处理速度、较大的内存、较大的磁盘容量和高可靠性。
6、网络操作系统。网络操作系统的主要任务是调度和管理网络资源,并为网络用户提供统一、透明使用网络资源的手段。网络资源主要包括网络服务器、工作站,打印机。网桥,路由器、交换机、网关、共享软件和应用软件等。
7、服务子系统。网络服务是网络应用最核心的问题。带宽再高的网络,如果没有好的网络服务,就不能发挥网络的效益。网络服务主要包括互联网服务、多媒体信息检索、信息点播、信息广播、远程计算和事务处理以及其他信息服务等。
5.3.3数据集成
数据集成的目的是运用一定的技术手段将系统中的数据按一定的规则组织成为一个整体,使得用户能有效地对数据进行操作。数据集成处理的主要对象是系统中各种异构数据库中的数据。数据仓库技术是数据集成的关键。
1、数据集成层次
数据集成是将参与数据库的有关信息在逻辑上集成为一个属于异构分布式数据库的全局概念模式,以达到信息共享的目的。数据集成可以分为基本数据集成、多级视图集成、模式集成和多粒度数据集成四个层次。
2、异构数据集成
数据集成的目的是为应用提供统一的访问支持,因此集成后的数据必须保证一定的完整性,包括数据完整性和约束完整性。
1)异构数据集成的方法
1、异构数据集成方法归纳起来主要有两种,分别是过程式方法和声明式方法
2、另一类方法是利用中间件集成异构数据库,该方法不需要改变原始数据的存储和管理方式
2)开放数据库互联标准
实现异构数据源的数据集成,首先要解决的问题是原始数据的提取。从异构数据库中提取数据大多采用开放式数据库互联(ODBC),ODBC是一种用来在数据库系统之间存取数据的标准应用程序接口
3)基于XML的数据交换标准
使用中间件作为组织异构数据源集成的解决方案时,需要为中间件选择一种全局数据模式,来统一异构数据源的数据模式。
4)基于JSON的数据交换格式
JSON作为一种轻量级的数据交换格式,以其易于阅读和编写的优点,被越来越多地应用到各个项目中。
5.3.4软件集成
有代表性的软件构件标准:公共对象请求代理结构(CORBA)、COM、DCOM与COM+、NET、J2EE应用架构等标准
1、CORBA
OMG的目的则是为了将对象和分布式系统技术集成为个可相互操作的统一结构,此结构既支持现有的平台也将支持未来的平台集成
2、COM
COM技术要达到的基本目标是:即使对象是由不同的开发人员用不同的编程语言实现的,在开发软件系统时,仍能够有效地利用已经存在于其他已有软件系统中的对象,同时,也要使当前所开发的对象便于今后开发其他软件系统时进行重用。
3、DCOM与COM+
DCOM作为COM的扩展,不仅继承了COM优点,而且针对分布环境还提供了一些新的特性,如位置透明性
网络安全性、跨平台调用等。COM+为COM的新发展或COM更高层次上的应用,其底层结构仍然以COM为基础,几乎包容了COM的所有内容。COM+倡导了一种新的概念,它把COM组件软件提升到应用层而不再是底层的软件结构,通过操作系统的各种支持,使组件对象模型建立在应用层上,把所有组件的底层细节留给操作系统。因此,COM+与操作系统的结合更加紧密
4、NET
NET开发框架在通用语言运行环境基础上,给开发人员提供了完善的基础类库、数据库访问技术及网络开发技术,开发者可以使用多种语言快速构建网络应用。
5、J2EE
2EE为搭建具有可伸缩性、灵活性、易维护性的组织系统提供了良好的机制。J2EE的体系结构可以分为客户端层、服务器端组件层、EJB层和信息系统层。
5.3.5应用集成
1、从信息系统集成技术的角度看,在集成的堆栈上,应用集成在最上层,主要解决应用的互操作性的问题
2、应用集成或组织应用集成(EA)是指将独立的软件应用连接起来,实现协同工作。借助应用集成,组织可以提高运营效率,实现工作流自动化,并增强不同部门和团队之间的协作。对应用集成的技术要求大致有:
(1)具有应用间的互操作性:应用的互操作性提供不同系统间信息的有意义交换,即信息的语用交换,而不仅限于语法交换和语义交换。此外,它还提供系统间功能服务的使用功能,特别是资源的动态发现和动态类型检查。
(2)具有分布式环境中应用的可移植性:提供应用程序在系统中迁移的潜力并且不破坏应用所提供的或正在使用的服务。这种迁移包括静态的系统重构或重新安装以及动态的系统重构。
(3)具有系统中应用分布的透明性:分布的透明性屏蔽了由系统的分布所带来的复杂性。它使应用编程者不必关心系统是分布的还是集中的,从而可以集中精力设计具体的应用系统,这就大大减少了应用集成编程的复杂性。
3、可以帮助协调连接各种应用的组件有:
(1)应用编程接口(AP):API是定义不同软件交互方式的程序和规则,可以支持应用之间相互通信。API利用特定的数据结构,帮助开发人员快速访问其他应用的功能。
(2)事件驱动型操作:当触发器(即事件)启动一个程序或一组操作时,系统就会执行事件驱动型操作。例如:在订单提交后,进行计费并向客户开具发票,管理从ERP系统到CRM系统的“业务机会到订单”工作流
(3)数据映射:将数据从一个系统映射到另一个系统,可以定义数据的交换方式,从而简化后续的数据导出、分组或分析工作。例如,用户在一个应用中填写联系信息表,那么这些信息将被映射到相邻应用的相应字段。
5.4安全工程
5.4.1工程概述
信息安全系统工程就是要建造一个信息安全系统,它是整个信息系统工程的一部分,而且最好是与业务应用信息系统工程同步进行,主要围绕“信息安全”内容。
5.4.2安全系统
1、X轴是“安全机制”。安全机制可以理解为提供某些安全服务,利用各种安全技术和技巧,所形成的一个较为完善的结构体系。
2、Y轴是“OSI网络参考模型”。信息安全系统的许多技术、技巧都是在网络的各个层面上实施的,离开网
络信息系统的安全也就失去意义。
3、Z轴是“安全服务”。安全服务就是从网络中的各个层次提供给信息应用系统所需要的安全服务支持如对等实体认证服务、访问控制服务、数据保密服务等。
4、由X、Y、Z三个轴形成的信息安全系统三维空间就是信息系统的“安全空间”。随着网络的逐层扩展这个空间不仅范围逐步加大,安全的内涵也就更丰富,达到具有认证、权限、完整、加密和不可否认五大要也叫作“安全空间”的五大属性素,
1、安全机制
安全机制包含基础设施实体安全、平台安全、数据安全、通信安全、应用安全、运行安全、管理安全、授权和审计安全、安全防范体系等
2、安全服务
安全服务包括对等实体认证服务、数据保密服务、数据完整性服务、数据源点认证服务、禁止否认服务和犯罪证据提供服务等。
(1)对等实体认证服务。对等实体认证服务用于两个开放系统同等层中的实体建立链接或数据传输时,对对方实体的合法性、真实性进行确认,以防假冒。
(2)数据保密服务。数据保密服务包括多种保密服务,为了防止网络中各系统之间的数据被截获或被非法存取而泄密,提供密码加密保护。数据保密服务可提供链接方式和无链接方式两种数据保密,同时也可对用户可选字段的数据进行保护。
(3)数据完整性服务。数据完整性服务用以防止非法实体对交换数据的修改、插入、删除以及在数据交换
过程中的数据丢失。
(4)数据源点认证服务。数据源点认证服务用于确保数据发自真正的源点,防止假冒
(5)禁止否认服务。禁止否认服务用以防止发送方在发送数据后否认自己发送过此数据,接收方在收到数据后否认自己收到过此数据或伪造接收数据,由两种服务组成:不得否认发送和不得否认接收
(6)犯罪证据提供服务。指为违反国内外法律法规的行为或活动,提供各类数字证据、信息线索等
3、安全技术
安全技术主要涉及加密、数字签名技术、防控控制、数据完整性、认证、数据挖掘等
5.4.3工程基础
1、信息安全系统的建设是在OSI网络参考模型的各个层面进行的,因此信息安全系统工程活动离不开其他相关工程,主要包括:硬件工程、软件工程、通信及网络工程、数据存储与灾备工程、系统工程、测试工程密码工程和组织信息化工程等。
2、信息安全系统建设是遵从组织所制定的安全策略进行的。而安全策略由组织和组织的客户和服务对象集成商、安全产品开发者、密码研制单位、独立评估者和其他相关组织共同协商建立。
5.4.4工程体系架构
ISSE-CMM基础
1、信息安全系统工程能力成熟度模型(SSE-CMM)是一种衡量信息安全系统工程实施能力的方法,是使用
面向工程过程的一种方法。
2、ISSE-CMM主要适用于工程组织、获取组织和评估组织。信息安全工程组织包含系统集成商、应用开发商、产品提供商和服务提供商等,这些组织可以使用ISSE-CMM对工程能力进行自我评估。
2、ISSE过程
ISSE将信息安全系统工程实施过程分解为: 工程过程、风险过程和保证过程三个基本的部分。
3、ISSE-CMM体系结构
历年真题举例
1、在常用的OOD原则中( )原则是一个对象应当对其他对象有尽可能少的了解,该原则与结构化方法的 ( ) 原则是一致的。
A单职 高内聚 B组合重用 低耦合 C迪米特 低耦合 D开闭 高内聚
2、( )是( )的基础,二者的目的都是为了在系统崩溃或灾难发生时能够恢复数据或系统
A、数据容灾数据备份 B. 数据存储 数据安全 C.数据安全数据存储 D、数据备份 数据容灾
3、从信息系统集成技术角度来看, ( ) 在最上层。主要解决 ( )问题
A、数据集成 互通 B、网络集成 互连 C、软件集成 互适应 D、应用集成 互操作性
4、( )是防止非法实体对交换数据的修改、插入、删除以及在数据交换过程中的数据丢失。
A、对等实体认证服务 B、数据保密服务 C、数据完整性服务 D、数据源点认证服务
5、老于是某银行的系统架构师,他为银行投资管理系统设计的软件架构包括进行通信和事件驱动的系统该软件架构风格属于( )。
A数据流风格B.独立构件风格C.仓库风格D.虚拟机风格
6、信息安全( )包含系统集成商、应用开发商、产品提供商和服务提供商等,这些组织可以使用ISSE-CMM对工程能力进行自我评估。
A、工程组织B、获取组织 C、评估组织D、实施组织
7、 ( )是指从大量的、不完全的、模糊的、随机的数据中,提取隐含在其中且人们事先不知道的潜在、有用的信息和知识的过程。
A、全文检索B、字段检索C、基于内容的多媒体检索 D、数据挖掘
8、以下关于数据质量的说法中,错误的是 ( )
A、数据质量可以通过数据质量元素来描述,数据质量元素分为数据质量定量元素和数据质量非定量元素.
B、数据质量评价方法分为直接评价法和间接评价法
C、数据产品的质量控制分成前期控制和后期控制两个大部分
D、数据清理主要包括数据分析、数据检测和数据修正、数据导入四个步骤
参考答案:CDDCBADD