1. 信息系统战略三角突出了业务战略、信息系统和组织机制之间的必要一致性 1.1. 【高23上选07】 2. 软件工程 2.1. 软件工程方法是完成软件工程项目的技术手段,它支持整个软件生命周期 2.2. 软件工程使用的工具是人们在开发软件的活动中智力和体力的扩展与延伸 2.3. 软件工程中的过程贯穿于软件开发的各个环节 3. 架构设计 3.1. 软件架构风格 3.1.1. 数据流风格 3.1.1.1. 批处理序列 3.1.1.2. 管道/过滤器 3.1.2. 调用/返回风格 3.1.2.1. 程序/子程序 3.1.2.2. 数据抽象 3.1.2.3. 面向对象 3.1.2.4. 层次结构 3.1.3. 独立构件风格 3.1.3.1. 进程通信 3.1.3.2. 事件驱动 3.1.4. 虚拟机风格 3.1.4.1. 解释器 3.1.4.2. 基于规则的系统 3.1.5. 仓库风格 3.1.5.1. 数据库系统 3.1.5.2. 黑板系统 3.1.5.3. 超文本系统 3.2. 软件架构评估 3.2.1. 敏感点(Sensitivity Point) 3.2.1.1. 一个或多个构件(或之间的关系)的特性 3.2.2. 权衡点(Trade-offPoint) 3.2.2.1. 影响多个质量属性的特性,是多个质量属性的敏感点 3.2.3. 基于调查问卷(或检查表)的方式 3.2.4. 基于度量的方式 3.2.5. 基于场景的方式 3.2.5.1. 最为常用 4. 需求分析 4.1. 软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望 4.2. 层次 4.2.1. 业务需求 4.2.2. 用户需求 4.2.3. 系统需求 4.3. 质量功能部署 4.3.1. 一种将用户要求转化成软件需求的技术,其目的是最大限度地提升软件工程过程中用户的满意度 4.3.2. Quality Function Deployment, QFD 4.3.3. 常规需求 4.3.4. 期望需求 4.3.5. 意外需求 4.4. 过程 4.4.1. 需求获取 4.4.1.1. 一个确定和理解不同的项目干系人的需求和约束的过程 4.4.1.2. 用户访谈、问卷调查、采样、情节串联板、联合需求计划 4.4.2. 需求分析 4.4.2.1. 一个好的需求应该具有无二义性、完整性、一致性、可测试性、确定性、可跟踪性、正确性、必要性等特性 4.4.2.2. 结构化分析(Structured Analysis, SA)方法 4.4.2.2.1. 核心是数据字典 4.4.2.2.2. 数据模型 4.4.2.2.2.1. 实体关系图(E-R图) 4.4.2.2.3. 功能模型 4.4.2.2.3.1. 数据流图(DataFlow Diagram, DFD) 4.4.2.2.4. 行为模型 4.4.2.2.4.1. 状态模型 4.4.2.2.4.2. 状态转换图(State Transform Diagram, STD) 4.4.2.3. 面向对象的分析(Object-Oriented Analysis,OOA) 4.4.2.3.1. 用例模型 4.4.2.3.2. 分析模型 4.4.3. 需求规格说明书编制 4.4.3.1. Software Requirement Specification, SRS 4.4.3.2. 需求开发活动的产物 4.4.4. 需求验证与确认 4.4.4.1. 通过需求评审和需求测试工作来对需求进行验证 4.4.4.2. SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征 4.4.4.3. SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的 4.4.4.4. 需求是完整的和高质量的 4.4.4.5. 需求的表示在所有地方都是一致的 4.4.4.6. 需求为继续进行系统设计、实现和测试提供了足够的基础 4.5. UML 4.5.1. 统一建模语言 4.5.2. Unified Modeling Language,UML 4.5.3. 构造块 4.5.4. 规则 4.5.5. 公共机制 4.5.6. 事物 4.5.6.1. 结构事物 4.5.6.1.1. 类、接口、协作、用例、活动类、构件和节点 4.5.6.2. 行为事物 4.5.6.2.1. 交互(内部活动) 4.5.6.2.1.1. 消息、动作次序(消息产生的动作)、连接(对象之间的连接) 4.5.6.2.2. 状态机 4.5.6.3. 分组事物 4.5.6.3.1. UML只有一种分组事物,称为包 4.5.6.4. 注释事物 4.5.7. 关系 4.5.7.1. 依赖(Dependency) 4.5.7.2. 关联(Association) 4.5.7.3. 泛化(Generalization) 4.5.7.4. 实现(Realization) 4.5.8. 图 4.5.8.1. 类图(Class Diagram) 4.5.8.2. 对象图(Object Diagram) 4.5.8.3. 构件图(Component Diagram ) 4.5.8.4. 组合结构图(Composite Structure Diagram) 4.5.8.5. 用例图(Use Case Diagram) 4.5.8.6. 顺序图(Sequence Diagram,也称序列图) 4.5.8.7. 通信 图(Communication Diagram ) 4.5.8.8. 定时图(Timing Diagram,也称计时图) 4.5.8.9. 状态图(State Diagram) 4.5.8.10. 活动图(Activity Diagram) 4.5.8.11. 部署图(Deployment Diagram) 4.5.8.12. 制品图(Artifact Diagram) 4.5.8.13. 包图(Package Diagram ) 4.5.8.14. 交互概览图(Interaction Overview Diagram) 4.5.9. 视图 4.5.9.1. 逻辑视图 4.5.9.1.1. 设计视图 4.5.9.2. 进程视图 4.5.9.3. 实现视图 4.5.9.4. 部署视图 4.5.9.5. 用例视图 4.6. 面向对象分析 4.6.1. OOA的任务是“做什么” 4.6.2. OOD的任务是“怎么做” 4.6.3. 用例模型 4.6.3.1. 结构化分析(Structured Analysis, SA)方法 4.6.3.2. 阶段 4.6.3.2.1. 识别参与者 4.6.3.2.2. 合并需求获得用例 4.6.3.2.3. 细化用例描述 4.6.3.2.4. 调整用例模型 4.6.4. 分析模型 4.6.4.1. 领域模型 4.6.4.1.1. 概念模型 4.6.4.1.2. 域模型 5. 软件设计 5.1. 结构化设计 5.1.1. Structured Design, SD 5.1.2. 一种面向数据流的方法 5.1.3. 一个自顶向下、逐步求精和模块化的过程 5.1.4. 概要设计 5.1.5. 详细设计 5.1.6. 高内聚,低耦合 5.2. 面向对象设计 5.2.1. 单职原则 5.2.2. 开闭原则 5.2.3. 李氏替换原则 5.2.4. 依赖倒置原则 5.2.5. 接口隔离原则 5.2.6. 组合重用原则 5.2.7. 迪米特原则(最少知识法则) 5.2.7.1. 与结构化方法的低耦合原则是一致的 5.3. 设计模式 5.3.1. 创建型(Creational)模式 5.3.1.1. 工厂方法模式、抽象工厂模式、原型模式、单例模式和建造者模式 5.3.1.2. 用于创建对象 5.3.2. 结构型(Structural)模式 5.3.2.1. 适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式 5.3.2.2. 用于处理类或对象的组合 5.3.3. 行为型(Behavioral)模式 5.3.3.1. 职责链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式 5.3.3.2. 用于描述类或对象的交互以及职责的分配 6. 软件实现 6.1. 软件配置管理 6.1.1. 通过标识产品的组成元素、管理和控制变更、验证、记录和报告配置信息,来控制产品的演进和完整性 6.1.2. 包括软件配置管理计划、软件配置标识、软件配置控制、软件配置状态记录、软件配置审计、软件发布管理与交付等活动 6.2. 软件编码 6.2.1. 编码是设计的自然结果 6.2.1.1. 程序的质量主要取决于软件设计的质量 6.2.2. 程序设计语言 6.2.3. 程序设计风格 6.2.3.1. 源程序文档化 6.2.3.2. 数据说明 6.2.3.3. 语句结构 6.2.3.4. 输入/输出方法 6.2.4. 程序复杂性度量 6.2.5. 编码效率 6.2.5.1. 程序效率 6.2.5.2. 算法效率 6.2.5.3. 存储效率 6.2.5.4. I/O效率 6.2.5.4.1. 面向人(操作员)的输入/输出 6.2.5.4.2. 面向设备的输入/输出 6.3. 软件测试 6.3.1. 静态测试 6.3.1.1. 桌前检查(Desk Checking) 6.3.1.2. 代码走查 6.3.1.3. 代码审查 6.3.2. 动态测试 6.3.2.1. 白盒测试 6.3.2.1.1. 结构测试 6.3.2.2. 黑盒测试 7. 部署交付 7.1. 软件部署与交付 7.2. 持续交付 7.2.1. 持续交付能够有效缩短提交代码到正式部署上线的时间,降低部署风险 7.2.2. 持续交付能够自动、快速地提供反馈,及时发现和修复缺陷 7.2.3. 持续交付让软件在整个生命周期内都处于可部署的状态 7.2.4. 持续交付能够简化部署步骤,使软件版本更加清晰 7.2.5. 持续交付能够让交付过程成为一种可靠的、可预期的、可视化的过程 7.2.6. 两个指标 7.2.6.1. 仅涉及一行代码的改动需要花费多少时间才能部署上线,这也是核心指标 7.2.6.2. 开发团队是否在以一种可重复、可靠的方式执行软件交付 7.3. 持续部署 7.3.1. 持续部署方案 7.3.1.1. 容器技术目前是部署中最流行的技术 7.3.1.1.1. Kubemetes+Docker 7.3.1.1.2. Matrix 7.3.2. 部署原则 7.3.2.1. 部署包全部来自统一的存储库 7.3.2.2. 所有的环境使用相同的部署方式 7.3.2.3. 所有的环境使用相同的部署方式 7.3.2.4. 部署流程编排阶梯式晋级 7.3.2.5. 整体部署由运维人员执行 7.3.2.6. 仅通过流水线改变生产环境,防止配置漂移 7.3.2.7. 不可变服务器 7.3.2.8. 部署方式采用蓝绿部署或金丝雀部署 7.3.3. 部署层次 7.3.3.1. Build 7.3.3.1.1. 跟传统的编译类似,将软件编译形成RPM包或者Jar包 7.3.3.2. Ship 7.3.3.2.1. 将所需的第三方依赖和第三方插件安装到环境中 7.3.3.3. Run 7.3.3.3.1. 在不同的地方启动整套环境 7.3.4. 不可变服务器 7.3.4.1. 一种部署模式,是指除了更新和安装补丁程序以外,不对服务器进行任何更改 7.3.5. 蓝绿部署和金丝雀部署 7.3.5.1. 蓝绿部署是指在部署的时候准备新旧两个部署版本 7.3.5.2. 金丝雀部署是指当有新版本发布的时候,先让少量用户使用新版本,并且观察新版本是否存在问题 7.4. 部署与交付的新趋势 7.4.1. 工作职责和人员分工的转变 7.4.2. 大数据和云计算基础设施的普及进一步给部署带来新的飞跃 7.4.3. 研发运维的融合 8. 过程管理 8.1. 成熟度模型 8.1.1. CSMM 8.1.1.1. 治理 8.1.1.2. 开发与交付 8.1.1.3. 管理与支持 8.1.1.4. 组织管理 8.2. 成熟度等级 8.2.1. 1级:初始级 8.2.2. 2级:项目规范级 8.2.3. 3级:组织改进级 8.2.4. 4级:量化提升级 8.2.5. 5级:创新引领级 9. 数据工程 9.1. 数据建模 9.1.1. 数据模型 9.1.1.1. 概念模型 9.1.1.1.1. 信息模型 9.1.1.2. 逻辑模型 9.1.1.2.1. 在概念模型的基础上确定模型的数据结构 9.1.1.2.2. 主要的数据结构有层次模型、网状模型、关系模型、面向对象模型和对象关系模型 9.1.1.3. 物理模型 9.1.2. 数据建模过程 9.1.2.1. 数据需求分析 9.1.2.2. 概念模型设计 9.1.2.3. 逻辑模型设计 9.1.2.4. 物理模型设计 9.2. 数据标准化 9.2.1. 数据标准化是实现数据共享的基础 9.2.2. 元数据标准化 9.2.2.1. 元数据是关于数据的数据(Data About Data) 9.2.2.2. 信息对象 9.2.2.3. 元数据体系 9.2.3. 数据元标准化 9.2.3.1. 开放系统互连环境(Open Systems Interconnection Environment, OSIE) 9.2.3.2. 数据元 9.2.3.2.1. 数据库、文件和数据交换的基本数据单元 9.2.3.2.2. 对象 9.2.3.2.3. 特性 9.2.3.2.4. 表示 9.2.3.3. 数据元提取 9.2.3.3.1. 自上而下(Top-Down)提取法和自下而上(Down-Top)提取法 9.2.3.4. 数据元标准 9.2.4. 数据模式标准化 9.2.4.1. 数据模式是数据的概念、组成、结构和相互关系的总称 9.2.5. 数据分类与编码标准化 9.2.6. 数据标准化管理 9.2.6.1. 确定数据需求 9.2.6.2. 制定数据标准 9.2.6.3. 批准数据标准 9.2.6.4. 实施数据标准 9.3. 数据运维 9.3.1. 数据存储 9.3.1.1. 数据存储介质 9.3.1.1.1. 存储介质的类型主要有磁带、光盘和磁盘三种 9.3.1.2. 存储管理 9.3.1.2.1. 资源调度管理 9.3.1.2.2. 存储资源管理 9.3.1.2.3. 负载均衡管理 9.3.1.2.4. 安全管理 9.3.2. 数据备份 9.3.2.1. 数据备份结构 9.3.2.1.1. DAS备份结构 9.3.2.1.2. 基于LAN的备份结构 9.3.2.1.3. LAN-FREE备份结构 9.3.2.1.4. SERVER-FREE备份结构 9.3.2.2. 备份策略 9.3.2.2.1. 完全备份 9.3.2.2.2. 差分备份 9.3.2.2.3. 增量备份 9.3.3. 数据容灾 9.3.3.1. 一切引起系统非正常停机的事件都可以称为灾难,包括不可预料、不可抗拒的自然灾害,系统软硬件故障、人为误操作和恶意攻击等 9.3.3.2. 容灾系统分为应用容灾和数据容灾两类 9.3.3.2.1. 数据容灾是应用容灾的一个子集,也是应用容灾最根本的基础 9.3.3.3. 数据备份是数据容灾的基础。数据备份是数据高可用的最后一道防线,其目的是为了在系统数据崩溃时能够快速恢复数据 9.3.3.3.1. 【高23上选10】 9.3.4. 数据质量评价与控制 9.3.4.1. 数据质量描述 9.3.4.2. 数据质量评价过程 9.3.4.3. 数据质量评价方法 9.3.4.3.1. 直接评价法 9.3.4.3.2. 间接评价法 9.3.4.4. 数据质量控制 9.3.4.4.1. 前期控制 9.3.4.4.2. 过程控制 9.3.4.4.3. 系统检测 9.3.4.4.4. 精度评价 9.3.5. 数据清理 9.3.5.1. 数据清洗 9.3.5.2. 数据分析 9.3.5.3. 数据检测 9.3.5.4. 数据修正 9.4. 数据开发利用 9.4.1. 数据集成 9.4.2. 数据挖掘 9.4.2.1. 目标是发现隐藏于数据之后的规律或数据间的关系,从而服务于决策 9.4.2.2. 主要任务包括数据总结、关联分析、分类和预测、聚类分析和孤立点分析 9.4.2.3. 一般包括确定分析对象、数据准备、数据挖掘、结果评估与结果应用五个阶段 9.4.3. 数据服务 9.4.3.1. 数据目录服务 9.4.3.2. 数据查询与浏览及下载服务 9.4.3.3. 数据分发服务 9.4.4. 数据可视化 9.4.4.1. 一维数据可视化 9.4.4.1.1. 文本或数字表格、程序源代码 9.4.4.2. 二维数据可视化 9.4.4.2.1. 平面地图、建筑物的楼层平面图 9.4.4.3. 三维数据可视化 9.4.4.4. 多维数据可视化 9.4.4.5. 时态数据可视化 9.4.4.6. 层次数据可视化 9.4.4.7. 网络数据可视化 9.4.5. 信息检索 9.4.5.1. 全文检索 9.4.5.2. 字段检索 9.4.5.3. 基于内容的多媒体检索 9.4.5.3.1. 分为图像检索、视频检索和声音检索等 9.4.5.4. 数据挖掘 9.4.5.5. 用技术包括布尔逻辑检索技术、截词检索技术、临近检索技术、限定字段检索技术、限制检索技术 9.5. 数据库安全 9.5.1. 数据库安全威胁 9.5.1.1. 安全后果 9.5.1.1.1. 非授权的信息泄漏 9.5.1.1.2. 非授权的数据修改 9.5.1.1.3. 拒绝服务 9.5.1.2. 威胁方式 9.5.1.2.1. 无意 9.5.1.2.1.1. 自然或意外灾害 9.5.1.2.1.2. 系统软硬件中的错误 9.5.1.2.1.3. 人为错误 9.5.1.2.2. 有意 9.5.1.2.2.1. 授权用户 9.5.1.2.2.2. 恶意代理 9.5.2. 数据库安全对策 9.5.2.1. 防止非法的数据访问 9.5.2.2. 防止推导 9.5.2.3. 保证数据库的完整性 9.5.2.4. 保证数据的操作完整性 9.5.2.5. 保证数据的语义完整性 9.5.2.6. 审计和曰志 9.5.2.7. 标识和认证 9.5.2.8. 机密数据管理 9.5.2.9. 多级保护 9.5.2.10. 限界 9.5.3. 数据库安全机制 9.5.3.1. 用户的身份认证、存取控制、数据库加密、数据审计、推理控制 9.5.3.2. 信息安全 9.5.3.2.1. 内容安全是信息安全在政治、法律、道德层次上的要求 9.5.3.2.1.1. 在政治上是健康的 9.5.3.2.1.2. 符合国家的法律法规 9.5.3.2.1.3. 符合中华民族优良的道德规范 9.5.3.2.2. 广义的内容安全还包括信息内容保密、知识产权保护、信息隐藏和隐私保护等诸多方面 9.5.3.2.3. 必须在确保信息系统设备安全和数据安全的基础上,进一步确保信息内容的安全 9.5.3.2.4. 如果数据中充斥着不健康的、违法的、违背道德的内容,即使它是保密的、未被篡改的,也不能说是安全的 9.5.3.2.4.1. 【高22下选09】 9.5.3.3. 信息加密 9.5.3.3.1. 利用 RSA 密码可以同时实现数字签名和数字加密 9.5.3.3.1.1. 【高22下选11】 10. 系统集成 10.1. 原则 10.1.1. 开放性 10.1.1.1. 系统硬软件平台、通信接口、软件开发工具、网络结构的选择要遵循工业开放标准 10.1.2. 结构化 10.1.3. 先进性 10.1.3.1. 目前先进性 10.1.3.1.1. 只有先进的技术才有较强的发展生命力 10.1.3.2. 未来先进性 10.1.4. 主流化 10.2. 网络集成 10.2.1. 传输子系统 10.2.1.1. 传输是网络的核心,是网络信息的“公路”和“血管” 10.2.2. 交换子系统 10.2.2.1. 局域网交换技术、城域网交换技术和广域网交换技术 10.2.3. 安全子系统 10.2.4. 网管子系统 10.2.5. 服务器子系统 10.2.6. 网络操作系统 10.2.7. 服务子系统 10.3. 数据集成 10.3.1. 数据集成层次 10.3.1.1. 基本数据集成 10.3.1.1.1. 隔离:保证实体的每次出现都指派一个唯一标识符 10.3.1.1.2. 调和:确认哪些实体是相同的,并且将该实体的各次出现合并起来 10.3.1.2. 多级视图集成 10.3.1.3. 模式集成 10.3.1.4. 多粒度数据集成 10.3.2. 异构数据集成 10.3.2.1. 异构数据集成的方法 10.3.2.1.1. 过程式方法 10.3.2.1.2. 声明式方法 10.3.2.2. 开放数据库互联标准 10.3.2.2.1. 开放式数据库互联(Open Database Connectivity,ODBC) 10.3.2.3. 基于XML的数据交换标准 10.3.2.4. 基于JSON的数据交换格式 10.4. 软件集成 10.4.1. CORBA 10.4.1.1. 对象管理组织(Object Management Group, OMG)是CORBA规范的制定者 10.4.2. COM 10.4.3. DCOM 与 COM+ 10.4.4. .NET 10.4.5. J2EE 10.5. 应用集成 10.5.1. 应用集成或组织应用集成(EAI)是指将独立的软件应用连接起来,实现协同工作 10.5.2. 系统集成栈 10.5.3. 从信息系统集成技术的角度看,在集成的堆栈上,应用集成在最上层,主要解决应用的互操作性的问题。 10.5.3.1. 【高23上选11】 10.5.4. 具有应用间的互操作性 10.5.5. 具有分布式环境中应用的可移植性 10.5.6. 具有系统中应用分布的透明性 11. 3版 11.1. 信息系统规划(ISP)的第三个阶段的方法在综合考虑企业内外环境的情况下,以集成为核心,围绕企业战略需求进行的信息系统规划,主要的方法包括价值链分析法和战略一致性模型 11.1.1. 【高21上选16】 11.1.2. 为把企业组织结构与企业过程联系起来,说明每个过程与组织的联系,指出过程决策人,可以采用建立过程/组织(Process/Organization, P/0) 矩阵的方法 11.1.2.1. 【高21上选17】 11.2. 信息系统规划原则 11.2.1. 规划要支持企业的战略目标 11.2.1.1. 【高20下选17】 11.2.2. 规划整体上着眼于高层管理,兼顾各管理层、各业务层的要求 11.2.3. 规划中涉及的各信息系统结构要有好的整体性和一致性 11.2.4. 信息系统应该适应企业组织结构和管理体制的改变,弱化信息系统对组织机构的依从性,提高信息系统的应变能力 11.2.5. 便于实施 11.3. 信息系统规划的工具 11.3.1. 【高20下选18】 11.3.1.1. 【高19下选18】 11.3.1.2. 【高18下选25】 11.3.1.3. 【高18上选24】 11.4. 企业在实施信息化规划过程 11.4.1. 【高19下选17】 11.4.1.1. 【高18下选24】 11.4.1.2. 【高18上选23】 11.4.2. 评估信息化现状 11.4.3. 规划信息化战略 11.4.4. 规划基础设施 11.4.5. 规划数据 11.4.6. 规划信息系统 11.4.7. 设计信息化组织 11.5. 软件生存周期 9 个支持过程 11.5.1. 【高19下选20】 11.6. 衡量业务流程实施效果的关键指标主要有 11.6.1. 产品和服务质量、顾客满意度、销售增长率、成本、员工工作效率等 11.6.1.1. 【高19下选58】 11.7. 系统规划阶段的任务是对组织的环境、目标及现行系统的状况进行初步调查,根据组织目标和发展战略,确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性 11.7.1. 【高19上选23】 11.8. 为定义数据类,在调查研究和访谈的基础上,可以采用实体法归纳出数据类。实体法首先列出企业资源,再列出一个资源/数据(R/D)矩阵 11.8.1. 【高19上选24】