导图社区 第5章 信息系统工程 高项 第4版
信息系统工程是用系统工程的原理、方法来指导信息系统建设与管理的一门工程技术学科,它是信息科学、管理科学、系统科学、计算机科学与通信技术相结合的综合性、交叉性、具有独特风格的应用学科。当前信息系统工程的主要任务是研究信息处理过程内在的规律,以及基于计算机、互联网和云计算等信息技术手段的形式化表达和处理规律。其基本概念、原理和方法对实际分析、设计、开发、运行和服务一个信息系统,从理论、手段、方法、技术等多方面提供了一套完整、科学、实用的研究与工程体系,具有十分重要的应用价值,对信息系统建设有着重要的理论指导意义。
编辑于2023-05-07 16:07:24 云南第5章 信息系统工程 高项 第4版
信息系统工程是用系统工程的原理、方法来指导信息系统建设与管理的一门工程技术学科,它是信息科学、管理科学、系统科学、计算机科学与通信技术相结合的综合性、交叉性、具有独特风格的应用学科。当前信息系统工程的主要任务是研究信息处理过程内在的规律,以及基于计算机、互联网和云计算等信息技术手段的形式化表达和处理规律。其基本概念、原理和方法对实际分析、设计、开发、运行和服务一个信息系统,从理论、手段、方法、技术等多方面提供了一套完整、科学、实用的研究与工程体系,具有十分重要的应用价值,对信息系统建设有着重要的理论指导意义。
5.1 软件工程
软件工程由方法、工具和过程三个部分组成: ①软件工程方法是完成软件工程项目的技术手段,它支持整个软件生命周期: ②软件工程使用的工具是人们在开发软件的活动中智力和体力的扩展与延伸,它自动或半自动地支持软件的开发和管理,支持各种软件文档的生成; ③软件工程中的过程贯穿于软件开发的各个环节,管理人员在软件工程过程中,要对软件开发的质量、进度和成本进行评估、管理和控制,包括人员组织、计划跟踪与控制、成本估算、质量保证和配置管理等。
5.1.1 架构设计
软件工程由方法、工具和过程三个部分组成。
软件架构为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。 软件架构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构件之间的对应关系,提供了一些设计决策的基本原理。
1.软件架构风格
软件架构设计的一个核心问题是能否达到架构级的软件复用
①数据流风格 ,数据流风格包括批处理序列和管道/过滤器两种风格。
子主题
②调用/返回风格 ,调用/返回风格包括主程序/子程序、数据抽象和面向对象,以及层次结构。
子主题
③独立构件风格 ,独立构件风格包括进程通信和事件驱动的系统。
基于事件驱动的系统,有点类似设计模式的观察者模式,由构件公布 或者广播一些事件,其他构件对此事件进行注册。当这个事件被触发 时,立即通知在这个事件上注册的过程。
④虚拟机风格 ,虚拟机风格包括解释器和基于规则的系统。
具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程 和一些关键应用,解释器通常被用来建立一种虚拟机以弥补语义上的 差异。 虚拟机风格最典型的应用就是专家系统,通过计算机程序实现一个完 成解释工作的解释引擎。
⑤仓库风格 ,仓库风格包括数据库系统、黑板系统和超文本系统。
子主题
2.软件架构评估
两个概念分别是敏感点(Sensitivity Point) 和权衡点(Trade-offPoint)。敏感点是一个或多个构件(或之间的关系)的特性,权衡点是影响多个质量属性的特性,是多个质量属性的敏感点。
从目前已有的软件架构评估技术来看,可以归纳为三类主要的评估方式,分别是基于调查问卷(或检查表)的方式、基于场景的方式和基于度量的方式。这三种评估方式中,基于场景的评估方式最为常用。
5.1.2 需求分析
软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。
1.需求的层次
简单地说,软件需求就是系统必须完成的事以及必须具备的品质。 需求是多层次的,包括业务需求、用户需求和系统需求,这三个不同层次从目标到具体,从整体到局部,从概念到细节。 质量功能部署(Quality Function Deployment,,QFD)是一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度。为了达到这个目标,QFD将软件需求分为三类,分别是常规需求、期望需求和意外需求。
2. 需求过程
需求过程主要包括需求获取、需求分析、需求规格说明书编制、需求验证与确认等。
1) 需求获取 用户访谈 问卷调查 采样 情节串联板 联合需求计划
2) 需求分析 需求分析工作是将在需求获取阶段获得的需求(杂乱无章、重复、矛盾)进行分析整理,转化为用户需求。 一个好的需求应该是无二义性,具有完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性。
使用结构化分析( Structured Analysis, SA) 方法进行需求分析,其建立的模型的核心是数据字典。 围绕这个核心,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。 在实际工作中,一般使用实体关系图(E-R图)表示数据模型,用数据流图(Data Flow Diagram, DFD) 表示功能模型,用状态转换图(State Transform Diagram, STD) 表示行为模型。 E-R图主要描述实体、属性,以及实体之间的关系;DFD从数据传递和加工的角度, 利用图形符号通过逐层细分描述系统内各个部件的功能和数据在它们之间传递的情况,来说明系统所完成的功能;STD通过描述系统的状态和引起系统状态转换的事件,来表示系统的行为,指出作为特定事件的结果将执行哪些动作(例如,处理数据等)。
结构化分析方法 SA 数据模型 (实体联系图、E-R图) 功能模型 (数据流图、DFD) 行为模型 (状态转换图、STD)
面向对象的分析( Object-Oriented Analysis, 00A)的基本任务是运用面向对象的(Object-Oriented, 00)方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找出描述问题域和系统功能所需的类和对象,定义它们的属性和职责,以及它们之间所形成的各种联系。 最终产生一个符合用户需求,并能直接反映问题域和系统功能的00A模型及其详细说明。 00A模型包括用例模型和分析模型;用例是一种描述系统需求的方法,使用用例的方法来描述系统需求的过程就是用例建模;分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实现系统行为(动态模型)。
面向对象分析方法 OOA 使用用例模型方法来描述系统需求。 使用分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及他们如何保持通信,实现系统行为(动态模型)。
3) 软件需求规格说明书
SRS是软件开发过程中最重要的文档之一,是需求开发活动的产物,一般对任何规模和性质的软件项目都不应该缺少。
SRS文档的目的是使项目关系人与开发团队对系统的初始规定有一个共同的理解。
软件需求规格说明书 (Software Requirement Specification,SRS) ① 范围 ② 引用文件 ③ 需求 (SRS 的主体部分) ④ 合格性规定 ⑤ 需求可追踪性 ⑥ 尚未解决的问题 ⑦ 注解 ⑧ 附录
4) 需求验证与确认 需求验证也称为需求确认,是为了确定以下几个方面的内容: ① SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征 ② SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的 ③ 需求是完整的和高质量的 ④ 需求的表示在所有地方都是一致的 ⑤ 需求为继续进行系统设计、实现和测试提供了足够的基础 在实际工作中通过需求评审和需求测试工作来对需求进行验证。
3.UML
统一建模语言(Unified Modeling Language, UML)是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它的作用域不限于支持OOA和OOD ( Object-Oriented Design,面向对象设计),还支持从需求分析开始的软件开发的全过程。从总体上来看,UML的结构包括构造块、规则和公共机制三个部分。
表5-1 UML的结构
1)UML 中的事物 结构事物(structural things) 是静态部分,类、接口、协作、用例、活动类、构件和节点。 行为事物 (behavioral things) 是动态部分,代表时间和空间上的动作,一种是交互,另一种是状态机。 分组事物 (grouping things) 是组织部分,UML只有一种分组事物,称为包。 注释事物(Annotation things) UML模型的解释部分。
2) UML 中的关系
依赖(dependency) 依赖是两个事物之间的语义关系,其中一个事物发生变化会影响另外一个事物的语义。
【依赖关系】是一种使用的关系,即一个类的实现需要另一个类协助 【箭头及指向】:带箭头的虚线,指向被使用者
关联(association) 关联描述一组对象之间连接的结构关系。
【关联关系】是拥有的关系,使一个类知道另一个类的属性和方法 【箭头及指向】带普通箭头的实心线,指向被拥有者
泛化(generalization) 泛化是一般化和特殊化的关系,描述特殊元素的对象可替换一般元素的对象。
【泛化关系】是一种继承关系,表示一般与特殊的关系 【箭头及指向】带三角箭头的实线,箭头指向父类
实现(realization) 实现是类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。
【实现关系】类与接口的关系,表示类是接口所有特征和行为的实现 【箭头及指向】带三角箭头的虚线,箭头指向接口
3) UML中的主要8种图 在官方教程中介绍了很多的图,我们这里说比较有用的这8种图,也是相对来说考到机会比较大的。
类图(class diagram)
类图展示实体类的静态关系,是软件的蓝图,详细描述了系统内各个对象的相关的类,以及这些类之间的静态关系。
对象图(object diagram)
๏ 表示在某一时刻类的对象静态结构和行为。 ๏ 以下对象图展示当前借书情况。
构件图(component diagram)
๏ 构件图描述类的实现环境
用例图(use case diagram)
用户能观察到系统功能的模型图,列出了系统中的用例和参与者。显示哪个参与者参与了哪个用例的执行。 ๏ 用于业务建模、需求获取、定义。
顺序图(sequence diagram)
用于显示对象间的交互活动,关注对象之间消息传送的时间顺序。
状态图(state diagram)
๏ 利用状态和事件描述对象本身的行为。 ๏“图书”类的状态机图
活动图(activity diagram)
通过动作来组织,主要用于描述某一方法、机制或用例的内部行为
部署图(deployment diagram)
描述系统所需的硬件构件的物理部署
表5-3 UML2.0中的图
4)UML视图
用例视图 最基本的需求分析模型,如用例图;
逻辑视图 也称为设计视图,如类图、对象图以及包图等;
进程视图 可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步结构。如状态图、活动图、时序图等;
实现视图 实现视图对组成基于系统的物理代码的文件和构件进行建模,如构件图;
部署视图 部署视图把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构,如部署图;
4.面向对象的分析
OOA的基本任务是运用OO方法,对问题域进行分析和理解,正确认识其中的事物及它们之间的关系,找岀描述问题域和系统功能所需的类和对象,定义它们的属性和职责以及它们之间所形成的各种联系。 最终产生一个符合用户需求,并能直接反映问题域和系统功能的OOA模型及其详细说明。 OOA模型独立于具体实现,即不考虑与系统具体实现有关的因素,这也是OOA和OOD的区别之所在。OOA的任务是“做什么”,OOD的任务是''怎么做”。 面向对象分析阶段的核心工作是建立系统的用例模型与分析模型。
1) 用例模型
结构化分析( Structured Analysis, SA)方法采用功能分解的方式来描述系统功能,在这种表达方式中,系统功能被分解到各个功能模块中,通过描述细分的系统模块的功能来达到描述整个系统功能的目的。 SA方法的缺点是分割了各项系统功能的应用环境,从各项功能项入手,很难了解到这些功能项如何相互关联来实现-个完整的系统服务。从用户的角度来看,他们并不想了解系统的内部结构和设计,他们所关心的是系统所能提供的服务,这就是用例方法的基本思想。
在OOA方法中,构建用例模型经历四个阶段:识别参与者、合并需求获得用例、细化用例描述和调整用例模型。其中前三个阶段是必须的。
表5-4构建用例模型的阶段
2) 分析模型
建立分析模型的过程大致包括定义概念类,确定类之间的关系,为类添加职责,建立交互图等,其中有学者将前三个步骤统称为类-责任-协作者(Class-Responsibility-Collaborator, CRC)建模。 类之间的主要关系有关联、依赖、泛化、聚合、组合和实现等,它们在UML中的表示方式。
表5-5类之间的关系
5.1.3 软件设计
软件设计是需求分析的延伸与拓展。 需求分析解决「做什么」的问题,软件设计解决「怎么做」的问题。
结构化设计(SD) • 面向数据流 • 自顶向下、逐步求精 • 模块化、相对独立 • 高内聚、低耦合
面向对象设计(OOD) • 抽象、封装和可扩展 • 遵循OOD设计原则
设计模式 • 设计模式是前人经验的总结 • 包含模式名称、问题、目的、解决方案、效果、实例代码等。
5.1.4 软件实现
1.软件配置管理
软件配置管理通过标识产品的组成元素、 管理和控制变更、验证、记录和报告配置信息,来控制产品的演进和完整性。 软件配置管理与软件质量保证活动密切相关,可以帮助达成软件质量保证目标。 软件配置管理活动包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动。
2.软件编码
(1) 程序设计语言、(2) 程序设计风格、(3) 程序复杂性度量、( 4) 编码效率 其中编码效率包括:程序效率、算法效率、存储效率、I/O效率
3.软件测试
软件测试方法可分为静态测试和动态测试。 ①静态测试是指被测试程序不在机器上运行,而采用人工检测和计算机辅助静态分析的手段对程序进行检。 ②动态测试是指在计算机上实际运行程序进行软件测试,一般采用白盒测试和黑盒测试方法。白盒测试也称为结构测试,主要用于软件单元测试中。它的主要思想是,将程序看作是一个透明的白盒,测试人员完全清楚程序的结构和处理算法,按照程序内部逻辑结构设计测试用例,检测程序中的主要执行通路是否都能按预定要求正确工作。
子主题
5.1.5 部署交付
1. 软件部署与交付
软件部署与交付是软件生命周期中的一个重要环节,属于软件开发的后期活动,即通过配置、安装和激活等活动来保障软件制品的后续运行。
2. 持续交付
为解决部署与交付常存在的问题,持续交付应运而生,持续交付是一系列开发实践方法,用来确保让代码能够快速、安全地部署到生产环境中。 持续交付是一个完全自动化的过程,当业务开发完成的时候,可以做到一键部署。
3.持续部署
1)持续部署方案 2)部署原则 3)部署层次 4)不可变服务器 5)蓝绿部署和金丝雀部署
4.部署与交付的新趋势
持续集成、持续交付和持续部署的岀现及流行反映了新的软件开发模式与发展趋势
工作职责和人员分工的转变 大数据和云计算基础设施的普及进一步给部署带来新的飞跃 研发运维的融合
5.1.6 过程管理
软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。
常见的软件过程管理方法和实践: 能力成熟度模型集成(Capability Maturity Model Integration, CMMI) 软件过程能力成熟度模型( Software Process Capability Maturity Model,CSMM)
1.成熟度模型
CSMM模型由4个能力域、20个能力子域、161个能力要求组成。
图5-1软件过程能力成熟度层次结构
2.成熟度等级
CSMM定义了 5个等级。 高等级是在低等级充分实施的基础之上进行。
表5-6成熟度等级的总体特征
能力域的等级要求:
表5-7能力域与成熟度等级的对应关系
5.2 数据工程
数据建模、数据标准化、数据运维、数据开发利用和数据安全 数据工程是信息系统的基础工程。围绕数据的生命周期,规范数据从产生到应用的全过程,目标是为信息系统的运行提供可靠的数据保障和服务,为信息系统之间的数据共享提供安全、高效的支撑环境,为信息系统实现互连、互通、互操作提供有力的数据支撑。它是实现这些目标的一系列技术、方法和工程建设活动的总称。数据工程的主要研究内容包括数据建模、数据标准化、数据运维、数据开发利用和数据安全等理论和技术。
5.2.1 数据建模
1.数据模型
根据模型应用目的不同,可以将数据模型划分为三类:概念模型、逻辑模型和物理模型。
1) 概念模型-按用户的观点来对数据和信息建模
表5-8 概念模型基本元素说明
2) 逻辑模型
逻辑模型是在概念模型的基础上确定模型的数据结构,其中,关系模型成为目前最重要的一种逻辑数据模型。
表5-9关系模型与概念模型的对应关系
3) 物理模型
物理数据模型是在逻辑数据模型的基础上,考虑各种具体的技术实现因素,进行数据库体系结构设计,真正实现数据在数据库中的存放。物理数据模型的内容包括确定所有的表和列,定义外键用于确定表之间的关系,基于性能的需求可能进行反规范化处理等内容。
2.数据建模过程
数据建模过程包括数据需求分析、概念模型设计、逻辑模型设计和物理模型设计等过程。
① 数据需求分析,数据需求分析是分析用户对数据的需要和要求。
② 概念模型设计,经过需求分析阶段的充分调查,得到了用户数据开发利用需求。
③ 逻辑模型设计,概念模型独立于机器,更抽象,从而更加稳定,但是为了能够在具体的DBMS上实现用户的需求,还必须在概念模型的基础上进行逻辑模型的设计。
④ 物理模型设计,经过概念模型设计和逻辑模型设计,数据模型设计的核心工作基本完成,如果要将数据模型转换为真正的数据库结构,还需要针对具体的DBMS进行物理模型设计,使数据模型走向数据存储应用环节。
5.2.2 数据标准化
数据标准化是实现数据共享的基础。数据标准化主要为复杂的信息表达、分类和定位建立相应的原则和规范,使其简单化、结构化和标准化,从而实现信息的可理解、可比较和可共享,为信息在异构系统之间实现语义互操作提供基础支撑。数据标准化的主要内容包括元数据标准化、数据元标准化、数据模式标准化、数据分类与编码标准化和数据标准化管理。
1. 元数据标准化
元数据是关于数据的数据(Data About Data)。其实质是用于描述信息资源或数据的内容、覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等有关的信息。
1) 信息对象 元数据描述的对象可以是单一的全文、目录、图像、数值型数据以及多媒体(声音、动态图像)等,也可以是多个单一资源组成的资源集合,或是这些资源的生产、加工、使用、管理、技术处理、保存等过程及其过程中产生的参数的描述。
2) 元数据体系 根据信息对象从产生到服务的生命周期、元数据描述和管理内容的不同以及元数据作用的不同,元数据可以分为多种类型。从最基本的资源内容描述元数据开始,指导描述元数据的元数据,形成了一个层次分明、结构开放的元数据体系。
2.数据元标准化
为了使数据在各种不同的应用环境中易于交换和共享,国际标准化组织( International Organization for Standardization,ISO)提出了数据元标准的概念,要求按共同约定的规则进行统一组织、分类和标识数据,规范统一数据的含义、表示方法和取值范围等,保证数据从产生的源头就具备一致性。
1) 数据元、2) 数据元提取、3) 数据元标准
3. 数据模式标准化(标准化的作用是什么)
通过数据集模式的标准化,一方面对数据的内容、组成、结构以及各部分的相互关系进行统一规范,相关领域、部门或者数据集制作者都可以根据数据模式制作出标准化的数据;另一方面,数据集按照数据库理论对数据进行了规范化处理,有利于减少数据冗余。
4. 数据分类与编码标准化
所谓数据分类与编码标准化就是把数据分类与编码工作纳入标准化工作的领域,按标准化的要求和工作程序,将各种数据按照科学的原则进行分类以编码,经有关方面协商一致,由主管机构批准、注册,以标准的形式发布,作为共同遵守的准则和依据,并在其相应的级别范围内宣贯和推行。
5. 数据标准化管理
数据标准化阶段的具体过程包括确定数据需求、制定数据标准、批准数据标准和实施数据标准四个阶段。
5.2.3 数据运维
数据质量管理是在数据产品的生产过程中,确定质量方针、目标和职责,并通过质量策划、质量控制、质量保证和质量改进,来实现所有管理职能的全部活动。
1.数据存储
(1)数据存储介质,存储介质的类型主要有磁带、光盘和磁盘三种,现在还有U盘、固态硬盘等。
(2)存储管理:
表5-11存储管理的主要内容
2. 数据备份
常见的数据备份结构可以分为四种: DAS备份结构 基于LAN的备份结构 LAN-FREE 备份结构 SERVER-FREE备份结构。
优缺点: 其中LAN备份数据量最小,对服务器资源占用最多,成本最低; LAN-Free备份数据量大一些,但对服务器资源占用小一些,成本适中一些; SAN Server-Free备份能够在短时间备份大量数据,对服务器资源占用最少,但成本高昂。
常见的备份策略主要有三种: 完全备份、差分备份、增量备份
子主题
3.数据容灾
容灾系统分为:应用容灾和数据容灾两类。 数据容灾是应用容灾的一个子集,也是应用容灾最根本的基础。 数据备份是数据容灾的基础。数据备份是数据高可用的最后一道防线,其目的是为了在系统数据崩溃时能够快速恢复数据。
4.数据质量评价与控制
1)数据质量描述:定量元素、非定量元素 2)数据质量评价过程:如图5-3数据质量评价过程 3)数据质量评价方法:直接评价法、间接评价法 4)数据质量控制 数据质量控制分:前期控制和后期控制。 前期控制:数据录入前的质量控制、数据录入过程中的实时质量控制。 后期控制:数据录入完成后的后处理质量控制评价。 依据建库流程分为: 前期控制、过程控制、系统检测、精度评价 5)数据清理 是将数据库精简以除去重复记录,并使剩余部分转换成符合标准的过程。 从提高数据质量的角度出发,凡是有助于提高数据质量的处理过程,都可以认为是数据清理。 一般说来,数据清理主要包括数据分析、数据检测和数据修正三个步骤。
图5-3数据质量评价过程
图5-4数据清理的流程
5.2.4 数据开发利用
通过数据集成、数据挖掘和数据服务(目录服务、查询服务、浏览和下载服务、数据分发服务)、数据可视化、信息检索等技术手段,帮助数据用户从数据资源中找到所需要的数据,并将数据以一定的方式展现出来,实现对数据的开发利用。
1.数据集成
顾名思义,数据集成是将不同数据源中的数据进行整合。
图5-5 数据集成系统模型
2.数据挖掘
数据挖掘的目标是发现隐藏于数据之后的规律或数据间的关系,从而服务于决策。 数据挖掘主要任务:数据总结、关联分析、分类和预测、聚类分析和孤立点分析。 数据挖掘流程:确定分析对象、数据准备、数据挖掘、结果评估与结果应用五个阶段。
图5-6 数据挖掘流程图
3.数据服务
数据服务主要包括数据目录服务、数据查询与浏览及下载服务、数据分发服务。
4.数据可视化
将大规模数据转换为图形、图像,以直观的形式表示出来。
图5-7数据可视化
表5-12常见数据可视化表现方式
5.信息检索
信息检索的主要方法: 1. 全文检索 2. 字段检索 3. 基于内容的多媒体检索 4. 数据挖掘 信息检索的常用技术: 1. 布尔逻辑检索技术 2. 截词检索技术 3. 临近检索技术 4. 限定字段检索技术 5. 限制检索技术
 
5.2.5 数据库安全
数据库安全是指保护数据库,防止不合法的使用所造成的数据泄露、更改或破坏
1.数据库安全威胁
表5-13数据库安全分类及说明
2.数据库安全对策
表5-14常用的数据库安全对策
3.数据库安全机制
数据库安全机制是用于实现数据库的各种安全策略的功能集合,正是由这些安全机制来实现安全模型,进而实现保护数据库系统安全的目标。 数据库安全机制包括用户的身份认证、存取控制、数据库加密、数据审计、推理控制等内容。
5.3 数据集成
5.3.1 集成基础
系统集成的内容包括技术环境的集成、数据环境的集成和应用程序的集成。
系统集成概念专指计算机系统的集成,包括计算机硬件平台、网络系统、系统软件、工具软件、应用软件的集成,围绕这些系统的相应咨询、服务和技术支持。 系统集成在技术上需要遵循的基本原则包括:开放性、结构化、先进性和主流化。
5.3.2 网络集成
图5-8网络集成的体系框架
5.3.3 数据集成
数据集成处理的主要对象是系统中各种异构数据库中的数据。数据仓库技术是数据集成的关键。
1.数据集成的四个层次:基本数据集成、多级视图集成、模式集成和多粒度数据集成四个层次。
2.异构数据集成 ① 异构数据集成的方法:过程式和声明式。 ② 开放数据库互联标准:开放式数据库互联(Open Database Connectivity, ODBC) ③ 基于XML的数据交换标准 ④ 基于JSON的数据交换格式
5.3.4 软件集成
具有代表性的软件构件标准: 公共对象请求代理结构(Common Object Request Broker Architecture,CORBA)、COM、DCOM 与COM+、.NET、J2EE应用架构等。
5-9 .NET开发框架
5.3.5 应用集成
应用集成(EAI)是指将独立的软件应用连接起来,实现协同工作。借助应用集成,组织可以提高运营效率,实现工作流自动化,并增强不同部门和团队之间的协作。 图5-10 系统集成栈
应用集成的技术要求大致有: 具有应用间的互操作性 具有分布式环境中应用的可移植性 具有系统中应用分布的透明性
应用集成重点关注的是工作流层面的应用连接,集成既可以部署在云端,集成SaaSCRM等云应用,也可以部署在受防火墙保护的本地,可以帮助协调连接各种应用的组件: 应用编程接口(API) 事件驱动型操作 数据映射
5.4 安全工程
5.4.1 工程概述
需要区分的几个术语,以及它们之间的关系:信息系统、业务应用信息系统、信息安全系统、信息系统工程、业务应用信息系统工程和信息安全系统工程。
图5-11术语之间的关系
信息安全系统服务于业务应用信息系统并与之密不可分,但又不能混为一谈。信息安全系统不能脫离业务应用信息系统而存在。
信息安全系统工程是信息系统工程的一部分。信息安全系统工程作为信息系统工程的一个子集,其安全体系和策略必须遵从系统工程的一般性原则和规律。
5.4.2 安全系统
信息安全保障系统简称为信息安全系统,它是“信息系统”的一个部分,用于保证“业务应用信息系统”正常运营。
图5-12信息安全空间
5.4.3 工程基础
信息安全系统的建设是在OSI网络参考模型的各个层面进行的,因此信息安全系统工程活动离不开其他相关工程,主要包括:硬件工程、软件工程、通信及网络工程、数据存储与灾备工程、系统工程、测试工程、密码工程和组织信息化工程等。
信息安全系统建设是遵从组织所制定的安全策略进行的。而安全策略由组织和组织的客户和服务对象、集成商、安全产品开发者、密码研制单位、独立评估者和其他相关组织共同协商建立。因此信息安全系统工程活动必须要与其他外部实体进行协调。也正是因为信息安全系统工程存在着这些与其他工程的关系接口,而这些接口又遍布各种组织且具有相互影响,所以信息安全系统工程与其他工程相比就更加复杂。
5.4.4 工程体系架构
信息系统安全工程( Information Security System Engineering, ISSE)
1.ISSE-CMM基础
信息安全系统工程能力成熟度模型(ISSE Capability Maturity Model, ISSE-CMM) 是一种衡量信息安全系统工程实施能力的方法,是使用面向工程过程的一种方法。 ISSE-CMM主要用于指导信息安全系统工程的完善和改进,使信息安全系统工程成为一个清晰定义的、成熟的、可管理的、可控制的、有效的和可度量的学科。
ISSE-CMM模型是信息安全系统工程实施的度量标准,它覆盖了: 整个生命周期,包括工程开发、运行、维护和终止; 管理、组织和工程活动等的组织; 与其他规范如系统、软件、硬件、人的因素、测试工程、系统管理、运行和维护等规范并行的相互作用; 与其他组织(包括获取、系统管理、认证、认可和评估组织)的相互作用。
2.ISSE过程
信息安全系统工程能力成熟度模型(ISSE Capability Maturity Model, ISSE-CMM) 是一种衡量信息安全系统工程实施能力的方法,是使用面向工程过程的一种方法。
ISSE-CMM主要用于指导信息安全系统工程的完善和改进,使信息安全系统工程成为一个清晰定义的、成熟的、可管理的、可控制的、有效的和可度量的学科。
ISSE过程的目标是提供一个框架,每个工程项目都可以对这个框架进行裁剪以符合自己特定的需求。 将信息安全系统工程实施过程分解为: 工程过程(Engineering Process), 风险过程(Risk Process), 保证过程(Assurance Process)三个基本的部分。
图5-13信息安全系统工程过程的组成部分
1)工程过程 信息安全系统工程与其他工程活动一样,是一个包括概念、设计、实现、测试、部署、运行、维护、退出的完整过程。
图5-14信息安全系统工程实施过程
2)风险过程
图5-15风险管理过程
3)保证过程 保证过程是指安全需求得到满足的可信程度
图5-16保证过程
3.ISSE-CMM 体系结构
该体系结构模型采用两维设计,其中一维是“域”(Domain),另一维是“能力"(Capability) 。
表5-15公共特性的成熟度等级定义
图5-17能力级别代表工程组织的成熟度级别的五级模型
5.5 本章练习
真题
图中的软件架构设计属于( )风格。 A. 虚拟机风格 B. 调用、返回风格 C. 独立构件风格 D. 数据流风格 参考答案 D 软件架构五大风格: (1)数据流风格:包括批处理序列架构风格和管理/过滤器架构风格 (2)调用/返回风格:包括主程序/子程序架构风格、数据抽象和面向对象架构风格及层次结构架构风格 (3)独立构件风格:包括进程通信架构风格和事件驱动架构风格 (4)虚拟机风格:包括解释器架构风格和基于规则的系统架构风格 (5)仓库风格:包括数据库架构风格和黑板架构风格
๏ 使用结构化分析(SA)方法进行需求分析,围绕数据字典建立的三个层次的模型不包括( )。 A. 实体关系图 B. 业务流程图 C. 数据流图 D. 状态转换图 参考答案 B 高级教程第四版P132 结构化开发方法(SA)方法进行需求分析,其建立的模型的核心是数据字典,有三个层次的模型,分别是数据模型、功能模型和行为模型(也称为状态模型)。
在软件需求分析中,( )分别用来表示功能模型和行为模型。 A. 数据流图、状态转换图 B. 状态转换图、E-R 图 C. 状态转换图、数据流图 D. E-R图、状态转换图 参考答案 A 高级教程第四版P132。 需求分析在实际工作中,一般使用实体联系图(E-R 图)表示数据模型,用数据流图表示功能模型,用状态转换图表示行为模型。
软件工程需求分析阶段,使用实体联系图表示( )模型。 A. 行为 B. 数据 C. 功能 D. 状态 参考答案 B 用实体联系图或叫实体关系图(E-R图)表示数据模型,主要描述实体、属性,以及实体之间的关系。
1.选择题
(1) 使系统的描述及信息模型的表示与客观实体相对应,符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通。 A.原型化方法 B.面向对象方法 C.结构化方法 D.面向服务的方法 参考答案:B
(2)关于UML(统一建模语言)描述中,不正确的是: 。 A.UML适用于各种软件开发方法 B.UML适用于软件生命周期的各个阶段 C.行为事物是UML模型中的静态部分 D.UML不是编程语言 参考答案:C
(3)面向对象软件开发方法的主要优点包括 。 ①符合人类思维习惯 ②普适于各类信息系统的开发 ③构造的系统复用性好 ④适用于任何信息系统开发的全生命周期 A.①③④ B.①②③ C.②③④ D.①②④ 参考答案:B
(4)关于面向对象方法的描述,不正确的是: 。 A,相比于面向过程设计方法,面向对象方法更符合人类思维习惯 B,封装性、继承性、模块性是面向对象的三大特征 C,面向对象设计中,应把握高内聚、低耦合的原则 D,使用面向对象方法构造的系统具有更好的复用性 参考答案:B
(6)软件测试是发现软件错误(缺陷)的主要手段,软件测试方法可分为静态测试和动态测试,其中 属于静态测试。 A.代码走査 B.功能测试 C.黑盒测试 D.白盒测试 参考答案:A
(5)某行业协会计划开发一个信息管理系统,现阶段用户无法明确该系统的全部功能要求,希望在试用后再逐渐改进并最终实现用户需求。则该信息系统应釆用的开发方法 。 A.结构化方法 B.面向对象方法 C.原型化方法 D.面向服务方法 参考答案:C
2.案例题
某跨国公司70%的收入来源于出售他们国际新闻以及金融信息等基本信息产品。这些产品是通过它的市场显示系统向用户展示的。为改进市场显示系统的可用性,使其能更容易、更方便地满足顾客的要求,公司让小张负责一个最高优先权的项目,任务是改进显示系统的用户界面。为此,小张组建了“可用性小组”。这实际上是一个“虚拟小组”,除包括小张及三名公司成员之外,还包括一些有关的技术公司,如交互图形公司、微软公司的代表。该小组还与500多名专家保持联系,其中一位是"符号学专家",专门负责把计算机的动作翻译成像Windows的图标那样的一些符号。该小组并不通过市场调査,去问顾客想要一些什么,而是在他们建立的“可用性实验室”中观察客户们怎样利用公司的显示系统査找他们想要的信息产品。 可用性实验室有两个房间,一间给用户们用,用户在公司助理人员的伴随下完成一系列就应用系统的实验。另一冋房间被玻璃隔成一些小间,各放有一台显示器,显示内容与用户屏幕上的内容相同,并用可视信号或者是内部通信系统与用户保持联系实验时,要求客户完成一系列的操作。例如,可以要求用户去査询某只股票的价格,画出它在一定期间内走势图,找出一些相关的消息和公司的财务数据。随着用户的操作,可用性小组的人员就在监视器上观察用户在什么地方发生问题,测试出完成每项操作的时间,留意引起用户工作中断的过程。用户操作过程还被录像,从录像带上能够更精确地测量所用的时间。该实验室每个月能完成100个用户的三项至四项主要测试。实验室还要去了解公司服务机构接听的用户求助电话,将用户求助问题分为四类,录入数据库并进行统计分析,找出用户遇到的主要问题并设法改进。例如,1994年4月有34%的电话是有关RT工作站反映出的可用性问题的,进一步分析表明28%的电话是关于报价单问题的,于是公司就将报价单在工作站上的显示形式进行了改进。 可用性小组最后制定了一系列规范,要求所有公词开发小组开发的软件产品都要经过可用性小组的审査,相同的功能要用相同的图标,图标也必须在可用性小组开发的一系列标准图标集中选用。这些图标,开发小组可以在网络上得到。
问题1:可用性实验室为公司解决了什么问题?
用户需求问题。
问题2:上述系统采用了什么开发方法?简述该方法的基本思想和基本步骤?
原型化方法,通过已有的产品或原型挖掘和完善客户需求。
问题3:这种开发方法适合于解决哪一类问题?
需求不明确。
问题4:常用的信息系统开发方法有哪些?这些方法分别具有哪些优缺点?分别适用于哪些场合?
常用的开发方法包括结构化方法、面向对象方法、原型化方法、面向服务的方法等。
1、结构化方法 结构化开发方法也称为生命周期法,是一种传统的信息系统开发方法。生命周期可分为:规划、分析、设计、实施、维护等阶段,其精髓是自顶向下、逐步求精和模块化设计。 优点: (1)开发目标清晰化、(2)开发工作阶段化、(3)开发文档规范化、(4)设计方法结构化。 缺点: (1)开发周期长、(2)难以适应需求变化、(3)很少考虑数据结构。 结构化方法是一种面向数据流的开发方法,比较注重功能的分解与抽象,适合于数据处理领域的问题,但不适应于规模较大、比较复杂的系统开发。
2、面向对象方法 客观世界是由对象组成的,对象由属性和操作组成,对象可按其属性进行分类,对象之间的联系通过传递消息来实现,对象具有封装性、继承性和多态性。 面向对象开发方法是以用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程,主要包括需求分析、系统分析、系统设计和系统实现四个阶段,但是各个阶段的划分不像结构化开发方法那样清晰,而是在各个阶段之间迭代进行的。 复杂的对象可由使用面向对象方法构造的系统具有更好的复用性,关键在于建立一个全面、合理、统一的模型。 当前一些大型系统开发,通常是将结构化方法和面向对象方法结合起来。 首先,使用结构化方法进行自顶向下的整体划分;然后自底向上地采用面向对象方法开发。结构化方法与面向对象方法在系统开发中互相依存,不可替代。
3、原型化方法 对于信息系统开发而言,首先必须明确要解决的问题是什么,才能明确系统功能,确定系统边界。然而,明确问题本身不是一件轻松的事,因此对于需求不明确的系统开发,原型化方法相对于上面两种方法而言对用户更友好,用户更能知道开发的系统是否满足他们的需求。 原型化方法也称为快速原型法,或者简称为原型法。是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发方法。 从原型是否实现功能来分,原型化方法可分为水平原型和垂直原型两种。 (1)水平原型:水平原型也称为行为模型,用来探索预期系统的一些特定功能,主要用在界面上。 (2)垂直原型:垂直原型也称为结构化原型,实现了一部分功能,主要用在复杂的算法实现上。 从原型最终结果来划分,原型化方法可分为抛弃式原型和演化式模型。 (1)抛弃式原型:指到达预期目的后,原型本身被抛弃,主要解决需求不确定等问题。 (2)演化式模型:逐步将原型演化成最终系统,特别时候WEB项目。 优点: (1)缩短开发周期,成本风险降低,获得较高的综合开发效益,(2)用户参与程度高,符合用户需求,增加了用户满意度,(3)由于用户参与了系统开发,熟悉系统功能和结构,利用系统运行和维护。 缺点: (1)开发环境要求高。开发工具能否跟上模型构建的速度有要求,(2)管理水平要求高。系统开发缺乏统一标准,过程难以控制,修改次数多了可能会超成本。
4、面向服务的方法 面向服务方法是在面向对象方法的基础上扩展的构建系统的思想和方法。面向服务方法关注的是企业业务,它直接映射到业务,强调IT与业务的对齐,以服务为核心元素来 封装企业的业务流程和企业已有应用系统。服务的粒度更大,更加匹配企业级应用中的业务,可以实现更高级别的重用。但目前存在相关标准未统一、应用案例较少等一些问题。 面向服务的方法优点: 提高系统可复用性、信息资源共享、系统之间互操作性。