功能数据,行为状态
2.UML
UML 是可视化的建模语言,UML 适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,支持从需求分析开始的软件开发全过程。
(1)UML 结构
部分 | 说明 |
构造块 | 事物:UML 的重要组成部分 |
规则 | 构造块如何放在一起的规定: |
公共机制 | 达到特定目标的公共 UML 方法: |
(2)UML 事物
事物 | 说明 |
结构事物 | 最静态的部分,代表概念上或物理上的元素。类、构件、接口、协作、用例、活动类、节点 |
行为事物 | 动态部分,代表时间和空间上的动作。 交互:一组对象为达到特定目的而进行的一系列消息交换而组成的动作 状态机:一系列对象的状态组成 |
分组事物 | |
注释事物 |
(3)UML 中的关系
依赖:两个事物之间的语义关系,其中一个事物发生变化会影响另一个事物的语义。<动物-水> 关联:描述一组对象之间连接的结构关系。 <水-气候>
泛化:描述特殊元素的对象可替换一般元素的对象。<交通工具-汽车/飞机>
实现:类之间的语义关系,其中的一个类指定了由另一个类保证执行的契约。 <飞-鸟>(4)UML 图
类图:一组类、接口、协作和它们之间的关系
对象图:一组对象及它们之间的关系
构件图:一个封装的类和它的接口
组合结构图:结构化类的内部结构
用例图:一组用例、参与者及它们之间的关系
部署图:运行时的处理节点及在其中生存的构件的配置 制品图:系统的物理结构
包图:模型本身分解而成的组织单元,及其依赖关系 状态图:状态之间的移动
活动图:对象间的控制流程
交互图:
顺序图:强调消息的时间次序
通信图:收发消息的对象或参与者的结构组织
定时图:强调实际时间
交互概览图:活动图和顺序图的混合物
(顺通定互是交互) |
(5)UML 系统视图
逻辑视图(设计视图):它表示了设计模型中在架构方面具有重要意义的部分,即类、子系统、包 和用例实现的子集
进程视图:可执行线程和进程作为活动类的建模,它是逻辑视图的一次执行实例,描述了并发与同步 结构
实现视图:组成基于系统的物理代码的文件和构件进行建模
部署视图:把构件部署到一组物理节点上,表示软件到硬件的映射和分布结构
用例视图:最基本的需求分析模型
3.面向对象分析
面向对象分析阶段的核心工作是建立系统的用例模型与分析模型。 OOA:Object-Oriented Analysis(面向对象分析),做什么 OOD:Object-Oriented Design(面向对象设计),怎么做(1)用例模型
结构化分析 SA(Structured Analysis)采用功能分解的方式来描述系统功能,在这种表达方式中,系统功
能被分解到各个功能模块中,通过描述细分的系统模块的功能来达到描述整个系统功能的目的。
构建用例模型四个阶段:识别参与者、合并需求获得用例、细化用例描述、调整用例模型。
(2)分析模型
分析模型描述系统的基本逻辑结构,展示对象和类如何组成系统(静态模型),以及它们如何保持通信,实
现系统行为(动态模型)。
三、软件设计
软件设计是需求分析的延伸与拓展。需求分析阶段解决“做什么”的问题,而软件设计阶段解决“怎么做”的问题。
1.结构化设计(Structured Design,SD)
SD 是一种面向数据流的方法,它以 SRS 和 SA 阶段所产生的 DFD 和数据字典等文档为基础,是一个自顶向下、逐步求精和模块化的过程。
SD 原则:高内聚,低耦合
2.面向对象设计(OOD)
OOD 包括抽象、封装和可扩展性,其中可扩展性主要通过继承和多态来实现。
常用的 OOD 原则:
单职原则:设计功能单一的类
开闭原则:对扩展开放,对修改封闭
李氏替换原则:子类可以替换父类
依赖倒置原则:要依赖于抽象,而不是具体实现;要针对接口编程,不要针对实现编程
接口隔离原则:使用多个专门的接口比使用单一的总接口要好
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的
迪米特原则(最少知识法则):一个对象应当对其他对象有尽可能少的了解。本原则与结构化方法的 低耦合原则是一致的
四、软件实现
1.软件配置
软件配置管理活动:
软件配置管理计划
软件配置标识
软件配置控制
软件配置状态记录
软件配置审计
软件发布管理与交付
2.软件编码
程序设计语言的特性和编码途径也会对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。
编码效率:
程序效率:程序的执行速度及程序所需占用的内存空间
算法效率:反映为程序的执行速度和存储容量的要求
存储效率:提高存储效率的关键是程序的简单化
I/O 效率:面向人的输入/输出;面向设备的输入/输出
3.软件测试
软件测试的目的是验证软件是否满足软件开发合同或项目开发计划、系统/子系统设计文档、SRS、软件设计说明和软件产品说明等规定的软件质量要求。
静态和动态测试
静态测试 |
| ||||
动态测试 | 在计算机上实际运行程序进行软件测试 |
| 黑盒测试、白盒测试 |
黑盒测试 | 主要用于集成测试、确认测试和系统测试中 |
白盒测试 | 主要用于软件的单元测试中 |
五、部署交付
软件部署是一个复杂过程,包括从开发商发放产品,到应用者在他们的计算机上实际安装并维护应用的所有活动。这些活动包括软件打包、安装、配置、测试、集成和更新等,是一个持续不断的过程。
持续交付
持续部署
蓝绿部署
指在部署的时候准备新旧两个部署版本,通过域名解析切换的方式将用户使用环境切换到新版本中,当出现问题的时候,可以快速地将用户环境切回旧版本,并对新版本进行修复和调整。
金丝雀部署
当有新版本发布的时候,先让少量用户使用新版本,并且观察新版本是否存在问题。如果出现问题,就及时处理并重新发布;如果一切正常,就稳步地将新版本适配给所有的用户。
六、过程管理
软件过程能力是组织基于软件过程、技术、资源和人员能力达成业务目标的综合能力。包括治理能力、开发与交付能力、管理与支持能力、组织管理能力等方面。
软件过程能力成熟度模型(CSMM)团体标准
1.CSMM 模型
CSMM 模型由 4 个能力域、20 个能力子域、161 个能力要求组成
能力域 | 结果特征 |
治理 | 战略与治理、目标管理 |
开发与交付 | 需求、设计、开发、测试、部署、服务、开源应用 |
管理与支持 | 项目策划、项目监控、项目结项、质量保证、风险管理、配置管理、供应商管理 |
组织管理 | 过程管理、人员能力管理、组织资源管理、过程能力管理 |
2.CSMM5 个等级
级别 | 等级 | 结果特征 |
第 1 级 | 初始级 | 结果具有不确定性 |
第 2 级 | 项目规范级 | 基本可按计划实现预期的结果 |
第 3 级 | 组织改进级 | 稳定地实现预期的项目目标 |
第 4 级 | 量化提升级 | 量化地管理和实现预期的组织和项目目标 建立绩效基线,采用数据分析技术 |
第 5 级 | 创新引领级 | 通过技术和管理的创新,实现组织业务目标的持续提升,引领行业发展作为行业最佳案例进行推广 |
| 软件:规范、改进 | |||
| 数据:管理、稳健 |
级别 | 软件过程能力 CSMM | 数据管理能力成熟度模型 DCMM |
第 1 级 | 初始级 | 初始级 |
第 2 级 | 项目规范级 | 受管理级 |
第 3 级 | 组织改进级 | 稳健级 |
第 4 级 | 量化提升级 | 量化管理级 |
第 5 级 | 创新引领级 | 优化级 |
3.能力域与成熟度等级的对应关系
战 | 目 | 需 | 设 | 开 | 测 | 部 | 服 | 开 | 项 | 项 | 项 | 风 | 质 | 配 | 供 | 过 | 人 | 组 | 过 | ||
成 | 5 | 5 | 5 | 5 | |||||||||||||||||
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | |||||||||||
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | |
分类 | 治理 | 开发与交付 | 管理与支持 | 组织管理 |
第 4 级:量化提升级
目标管理、服务、开源应用、项目策划 、项目监控、供应商管理、过程管理
第 5 级:创新引领级
战略与治理、人员能力管理、过程能力管理
【数据工程】
一、数据建模
1.数据模型
根据模型应用目的不同,可以将数据模型划分为三类:
(1)概念模型(信息模型)
概念模型是概念级别的模型,按用户的观点来对数据和信息建模;
(2)逻辑模型(关系模型)
在概念模型的基础上确定模型的数据结构,包括:层次模型、网状模型、关系模型、面向对象模型和对象关系模型;
(3)物理模型
如何用数据库模式来实现逻辑数据模型,以及真正地保存数据。
2.建模流程
(1)数据需求分析
(2)概念模型设计
(3)逻辑模型设计
(4)物理模型设计
二、数据标准化
1.元数据标准化
元数据是关于数据的数据(Data About Data)。其实质是用于描述信息资源或数据的内容、覆盖范围、质量、管理方式、数据的所有者、数据的提供方式等有关的信息。
2.数据元标准化
数据元是数据库、文件和数据交换的基本数据单元。数据元一般来说由三部分组成:对象、特性、表示。
合理的数据元提取方法:
自上而下
自下而上
3.数据模式标准化
数据模式的描述方式主要有图描述方法和数据字典方法。
4.数据分类与编码标准化
数据分类与编码的作用主要包括用于信息系统的共享和互操作。
5.数据标准化管理
确定数据需求
制订数据标准
批准数据标准
实施数据标准
三、数据运维
1.数据存储
数据存储首先要解决的是存储介质的问题,存储介质的类型主要有磁带、光盘和磁盘三种。
存储管理包括:资源调度管理、存储资源管理、负载均衡管理、安全管理2.数据备份
数据备份是数据容灾的基础,数据备份是数据高可用性的最后一道防线。
数据备份策略:
完全备份、差分备份、增量备份
3.数据容灾
容灾不是简单备份,真正的数据容灾是要避免传统冷备份所具有先天不足,它在灾难发生时能全面、及时地恢复整个系统。
容灾系统:应用容灾、数据容灾
衡量容灾系统有两个主要指标:
RPO:当灾难发生时允许丢失的数据量
RTO:代表了系统恢复的时间
4.数据质量评价与控制
(1)数据质量评价方法
直接评价法
通过将数据与内部或外部的参照信息,如理论值等进行对比。确定数据质量; 间接评价法
利用数据相关信息,如数据只对数据源、采集方法等的描述推断或评估数据质量。
(2)数据清理
数据分析
从数据中发现控制数据的一般规则,比如字段域、业务规则等,通过对数据的分析,定义出数据清理的规则,并选择合适的清理算法。
数据检测
根据预定义的清理规则及相关数据清理算法,检测数据是否正确,比如是否满足字段域、业务规则等,或检测记录是否重复。
数据修正
手工或自动地修正检测到的错误数据或重复的记录。
四、数据开发利用
1.数据集成
2.数据挖掘
3.数据服务
数据目录服务、数据查询与浏览及下载服务、数据分发服务
4.数据可视化
一维数据可视化、二维数据可视化、三维数据可视化、多维数据可视化 时态数据可视化、层次数据可视化(树形数据)和网络数据可视化5.信息检索
全文检索、字段检索、基于内容的多媒体检索、数据挖掘
数据挖掘与传统数据分析不同:
内容 | 数据挖掘 | 传统数据分析 |
数据量 | 数据量越大,效果越好 | 数据量小 |
分析方法 | 数据统计、人工智能、可视化 | 统计学 |
分析侧重 | 预测型和发现型 | 回顾型和验证型 |
成熟度 | 发展阶段 | 成熟 |
五、数据库安全
1.数据库安全分类
(1)安全后果:非授权的信息泄漏、非授权的数据修改、拒绝服务(2)威胁方式:
无意:自然或意外灾害、系统软硬件中的错误、人为错误 有意:授权用户、恶意代理
2.数据库安全对策
安全对策 | 要点 |
防止非法的数据访问 | 仅允许授权的用户访问数据库 |
防止推导 | 用户通过授权访问的数据,经过推导得出机密信息 |
保证数据库的完整性 | 保护数据库不受非授权的修改 |
保证数据的操作完整性 | 保证数据库中数据的逻辑一致性,由并发管理器子系统负责 |
保证数据的语义完整性 | 保证新值在一定范围内符合逻辑上的完整性 |
审计和日志 | 审计和日志是有效的威慑和事后追查、分析工具 |
标识和认证 | 标识和认证是授权、审计等的前提条件是第一道安全防线 |
机密数据管理 | 访问控制主要保证机密数据的保密性,仅允许授权用户的访问,并禁止传播这些权限 |
多级保护 | 将数据划分不同保密级别,用户只能访问拥有的权限所对应级别的数据 |
限界 | 限界的意义在于防止程序之间出现非授权的信息传递 |
3.数据库安全机制
数据库安全机制包括用户的身份认证、存取控制、数据库加密、数据审计、推理控制等内容。
【系统集成】