已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库为收集到的数据提供结构化机制 任何类型的数据库应包含以下特点 它不是将数据保存在网络中的几台不同的 服务器上 从而进行集中化管理 它的备份过程更加方便 它提供事务持续性 由于在一个中心位置保存和维护所有数据 它可以实现更大的一致性 它提供 恢复和容错能力 它允许多个用户共享数据 它提供安全控制 执行完整性检 查 访问控制和必要的机密性 数据库模型 关系数据库模型 层次数据库模型 网络数据库模型 面向对象 的数据库模型 对象 关系数据库模型 关系数据库模型 Relational Database Model 使用属性 行 和元组 列 包含 和组织信息 关系数据库模型是今天应用最广泛的数据库组织形式 它以表 Table 的形式表示信息 一个关系数据库由一些二维表构成 每个表包含行 列和存储单元 行与列的交叉位置 每个存储单元仅包含一个数据值 表示一 个特定元组的特殊属性值主键 Primary Key 是将记录中的所有数据与一个唯一 值联系起来的字段 层次数据库模型 Hierarchical Database Model 是另一种通用的数据库模型 数 据元素之间的结构和关系与关系数据库中不同 层次数据模型由记录 Record 和字段 Field 构成 它们之间是逻辑的树形关系 在层次数据库中 父节点可 以有一个子节点或者多个子节点 也可以没有子节点 树形结构包含许多分支 Branch 分支又会有一定数量的叶子 Leaf 或者数据字段 这些数据有定 义明确 预先指定的访问路径 但在建立关系方面不如关系数据库灵活 层次 数据库通常用于映射一对多的数据关系 层次数据库是人们最开始创建的数据 库模型 但它并不如关系数据库应用普遍 最常用的层次模型为轻量级目录访 问协议 Lightweight Directory Access Protocol LDAP 模型 这种模型也用在 Windows 注册表结构和不同的文件系统中 但最新的数据库产品通常并不采用 这种模型 网络数据库模型建立在层次数据库模型之上 与层次数据库模型不同 在网络 数据库模型中 要找到一个数据元素 你不必知道如何从一个分支进入另一个 分支 然后从一个父节点进入一个子节点 网络数据库模型允许每个数据元素 拥有多个父节点和子记录 形成了一种类似网络的冗余结构 而非严格的树结 构 网络数据库这个名称并不表示数据在网络上或在分布在整个网络中 它只 是描述数据元素的关系 网络模型为了实现冗余而建立一种类似于网状网络 拓扑的结构 另外 与层次模型相比 网络模型检索数据的速度更快 这种模 型使用一种记录 Record 和集合 Set 的结构 一个记录包含字段 它可以通 过一个层次化的结构列出 集合是定义不同记录之间的一对多的关系 一个记 录可以是任何数量的集合的 所有者 同一个 所有者 又可能是许多不同的集 合 这种结构可以为确立不同数据元素之间的关系提供相当大的灵活性 面向对象的数据库 Object Oriented Database 可以管理多种不同类型的数据 如图像 语音 文档和视频等 在关系数据库中 应用程序必须使用它自己 的过程从数据库中获得数据 然后根据自己的需求处理这些数据 而传统的关 系数据库并不像面向对象的数据库那样能提供访问数据的过程 面向对象的数 据库用类 Class 来定义数据属性和数据访问过程 建立这种模型的目的在于突 破关系数据库在保存和处理大量数据时遇到的限制 另外 面向对象的数据库 并不依赖 SQL 进行交互 因此 并非 SQL 客户端的应用程序也可以使用这种 类型的数据库 ODBMS 并不如关系数据库那样用途广泛 但它主要用于工程 和生物学等领域 并满足金融领域的某些需求 对象 关系数据库或对象 关系数据库管理系统 ORDBM 是一种含有一个以面 向对象编程语言编写的软件前端的关系数据库 主要用于对保存的数据执行不 同的商业逻辑 开放数据库连接 ODBC 是一个应用程序编程接口 API 允许应用程序与本 地或者远程的数据库通信 应用程序向 ODBC 发出请求 ODBC 把它翻译成数 据库的命令 应用程序可以不用关心数据库的驱动 Driver 这些都由 ODBC 完 成 是一种针对基本的数据访问技术 如 OLEDB 的高级数据访问编程接口 是一 组用于访问数据来源 而不只是数据库访问的 COM 对象 它允许开发者编写 程序来访问数据 而不用知道数据库如何运行 在使用 ADO 时 SQL 命令不 需要访问数据库 对象链接和嵌入数据库 OLEDB 是运行在客户端或者服务器上的中间件 把 数据分成多个部分 它提供底层接口 允许访问不同数据库的数据以及不同格 式的数据 以下是 OLE DB 的一些特点 替代 ODBC 扩展它的功能以支持更广泛的非关系数据库 如对象数据库 和不一定执行 SQL 的电子数据表 一组基于 COM 的接口 允许应用程序以统一的方式访问保存在不同数据源 中的数据 由于 OLE DB 以 COM 为基础 因此它仅限于基于微软 Windows 的客户端 工具使用 与 OLE 无关 开发者通过 ActiveX 数据对象 ADO 访问 OLEDB 服务 它允许不同的应用程序访问不同类型和来源的数据 ActiveX 数据对象 ADO 是一个 API 允许应用程序访问后台数据库系统 它 是一组 ODBC 接口的集合 用可访问 Accessible 的对象来展示数据库的功能 进而操作数据库 ADO 通过 OLE DB 接口与数据库连接 可以用多种不同的脚 本语言开发 下面是他的特点 是一种针对基本的数据访问技术 如 OLEDB 的高级数据访问编程接口 是一组用于访问数据来源 而不只是数据库访问的 COM 对象 它允许开发者编写程序来访问数据 而不用知道数据库如何运行 在使用 ADO 时 SQL 命令不需要访问数据库 Java 数据库连接性 JDBC 是一个 API 允许 Java 应用程序与数据库通信 应用 程序可以直接或者通过 ODBC 逹接到数据库 以下是 JDBC 的一些特点 是一个提供和 ODBC 相同功能的 API 但专门为 Java 数据库应用程序设计 在 Java 平台与一系列数据库之间 使用独立于数据库的连接 JDBC 是一种使 Java 程序执行 SQL 语句的 Java API 可扩展标记语言 XML 个数据结构化的标准 用于基于 Web 技术的程序的 数据交换 XML 是一种自定义的标记语言 可以灵活地表现数据库中的数据 Web 浏览器可以解析 XML 的标签 向用户说明开发者如何表示数据 数据定义语言 DDL 定义数据库的结构 Structure 和数据架 构 Schema 结构说明表的大小 键位置 视图和数据元素关系 数据架构描述数据库存储 和操作的数据类型以及它们的属性 DDL 定义了数据库的结构 访问操作和完 整性过程 数据操作语言 DML 包含了使用户能查看 操纵和使用数据库的所有命令 view add modify sort 和 delete 命令 査询语言 QL 使用户可以对数据库提出査询请求 报表生成器 Report Generator 提供用户定义的数据过程输出 数据字典是数据元素定义 架构对象 Schema Object 和引用键 Reference Key 的 集合 架构对象可以包含表 视图 索引 过程 函数和触发器 数据字典可 以包含列的默认值 数据完整性信息 用户姓名 用户的权限和角色 以及审 计信息 它是一种通过控制数据库中有关数据的数据集中管理数据库各个部分 的工具 提供成组数据元素和数据库之间的交叉引用关系 数据库管理软件创建并读取数据字典 确认架构对象存在 并检查特定用户的 进程访问权限 当检索数据库时 用户对数据的访问被特定的视图所限制 在 数据字典中 定义了对每个用户的视图权限设置 当需要增加新的记录 表 视图或者架构时 应该更新数据字典以反映这些变化 主键是一个行的唯一标识符 它用于在关系数据库中编写索引 每个行必须拥 有一个主键 当用户请求查询一条数据记录时 数据库通过这个唯一的主键跟 踪这条记录 数据库软件执行 3 种类型的完整性服务 语义完整性 Semantic Integrity 参考 完整性 Referential Integrity 和实体完整性 Entity Integrity 语义完整性机制 保证结构化规则和语义规则得到遵守 这些规则与以下因素有关 数据类型 逻辑值 唯一性约束以及可能负面影响到数据库结构的操作 如果所有外键参 考现有的主键 则说明一个数据库具有参考完整性 应通过某种机制确保没有 外键引用不存在的记录的主键 或者空值 实体完整性保证了元组由主键值唯 一确定 为了保持实体完整性 每一个元组必须包含 个主键 如果不包含主 键 数据库就不能引用此元组 一些可配置的操作被用来帮助保护数据库中数据的完整性 这些操作包括回滚 提交 保存点和检查点 Checkpoint 回滚 Rollback 指的是结束当前事务并取消对数据库做的更改 这些更改可能 是数据本身发生的更改或者是架构 Schema 修改 执行回滚后 所做的变更被 取消 数据库恢复到先前的状态 回滚发生在数据库出现意想不到的故障或者 外部接口处理程序出现错误时 数据库恢复到原始状态 而不是仅仅重传或者 更正部分数据 同时 数据库会记录错误和操作日志 以便日后审査 提交 Commit 是指结束事务操作 执行用户做出的数据变更 顾名思义 一 旦提交命令执行 用户变更就得到确认 并反映到数据库中 这些变更可以是 数据或者数据架构 通过提交操作 其他用户或者应用程序就能访问到更新的数据 如果用户数据 变更的提交命令没有正确执行 那么数据库会执行回滚命令 这保证了不会由 于发生部分变更而引起数据混乱 保存点 Savepoint 用来保证系统发生故障或者探测到错误时 数据库可以回到 系统故障之前的状态 两阶段提交 TwoPhase Commit 机制是数据库用来确保数据完整性的另一种控 制 数据库通常会执行事务处理 表示用户与数据库同时进行交互 与事务处 理相反的是批处理 Batch Processing 即数据库变更的请求被放入一个队列中并 一次性激活 而不是在用户提交请求时立即激活 聚合是指这种情形 如果用户没有访问特定信息的权限 但是他有访问这些信 息的组成部分的权限 这样 他就可以将每个组成部分组合起来 得到受限访 问的信息 用户可以通过不同的途径得到信息 再综合得到本不具备明确访问 权限的信息 为了防止聚合 需要防止主体和任何主体的应用程序和进程获得 整个数据集合的权限 包括数据集合的各个独立组成部分 客体可以进行分类并 赋予较高的级别 存储在容器中 防止低级别权限的主体访问 对主体的查询 可以进行跟踪 并实施基于上下文的分类 这将记录主体对客体的访问历史 并在聚合攻击发生时限制访问企图 另一个安全问题是推理 Inference 和聚合很相似 推理指的是主体通过他可以 访问的信息推理出受限访问的信息 当安全级别较低的数据可以描述出较髙级 别的数据时 就会发生推理攻击 例如 假设一个职员不应该知道军队在某个国家的行动计划 但是由于他可以 访问到食品需求表格和帐篷位置的文档 那么他就可以根据食品和帐篷运送的 目的地推算出军队正在向特定地区移动 一个办法是防止主体或者与主体有关 的应用程序和进程间接得到能推论的信息 在数据库开发过程中 可以实施基 于内容或者基于情形的访问控制来解决这个问题 基于内容的访问控制 Content Dependent Access Control 是根据数据的敏感程度实施访问控制 数据 越敏感 能够访问数据的个体就越少 基于上下文的访问控制是指软件根据请 求的状态和次序 了解 应允许哪些行为 这表示 用户必须追踪用户以前 的访问尝试 并知道什么顺序的访问步骤得到许可 基于内容的访问控制就像 是这样 Julio 有权访问文件 A 吗 系统在 ACL 上检查文件 A 并返回一个 响应 Julio 能够文件这个文件 但只能读取它 基于上下文的访问控制则 更像是这样 Julio 有权访问文件 A 吗 系统然后检查几个数据 Julio 做 了哪些其他访问尝试 这个请求是否没有按照安全请求的顺序 这个请求是否 在系统允许的访问时间内 上午 8 时至下午 5 时 提出 如果所有这些问题的 答案都与一组事先设置的参数相符 则 Julio 能够访问文件 A 否则 他就不能 访问文件 A 防止推理攻击的常见措施有单元抑制 Cell Suppression 采用数 据库分隔 或者噪声和扰动 单元抑制是一种用来隐藏或者不显示特定存储单 元内容的技术 防止这些信息被用来进行推理攻击 分隔数据库 Partitioning a Database 包括将数据库分成不同的部分 使未授权用户很难访问到可以用于推 理攻击的相关数据 噪声和扰动 Noise and Perturbation 是一种在数据库中插入 伪造信息的技术 目的是误导和迷惑攻击者 使得真实的推理攻击不能成功 多数情况下 数据库在规划和开发过程中并没有将安全集成进来 安全需要事 后考虑 作为替代 往往需要开发一个数据库可信前端 Front End 这种方法 限制了安全粒度及可以发挥作用的安全功能 数据库可以允许一个组或者一个特定用户访问特定信息 而限制另一个组访问 这种功能通过数据库视图 Database View 实现 多实例 Polyinstantiation 建立了相同主键的多元组和由安全级别定义的实例之 间的关系 当一条信息插入到数据库中时 需要限制低级别用户访问这条信息 通过建立另一组数据迷惑低级别用户 使用户认为他得到的信息是真实的 而 不是仅仅限制信息的访问 联机事务处理 Online Transaction Processing OLTP 用于多数据库集群提供容错 和高性能的情况 OLTP 提供一种监测问题的机制 并在问题发生时立即进行 适当处理 OLTP 的主要作用是确保事务正确发生或根本不发生 通常 事务处理表示一 些不可分割的操作独立发生 如果其中一个操作失败 则剩下的操作需要回滚 以确保只向数据库中输入准确的数据 处理事务的一组系统由一个软件 OLTP 产品管理和监控 以确保一切顺利平稳 地进行 OLTP 可以对入站请求做负载均衡 OLTP 要实时记录所出现的事务 Transaction 在一个分布式环境下 这个过程同时修改多个数据库 这个复 杂的举动会引起许多关于完整性的威胁 所以数据库软件应该具有一种叫做 ACID 测试的特性 原子性 Atomicity 把事务分成多个工作单元 确保所有的修改都生效或者没 有一个修改生效 数据库接受所有修改或者不接受任何修改 致性 Consistency 事务必须遵守每个数据库的完整性策略 保证在不同数据 库中的数据的一致性 隔离性 Isolation 事务完全分开进行 事务之间互不影响 在事务完成之前 所 有的修改都没有生效 持久性 Durability 旦事务在所有的系统上都被认为是正确的 它就要提交 数据库不能拒绝它 为了信息检索和数据分析 将多个数据库或数据源联合成一个大的数据库 从 各个不同的数据库中提取数据传输到一个中央数据存储区 这个存储区就叫做 数据仓库 Data Warehousing 这些数据被标准化 也就是说删除冗余的信息 并以数据仓库期望的方式对其进行格式化 这使得用户只需查询一个实体 而 不用访问和查询不同的数据库 数据仓库提取数据的数据源是用于操作 建立 数据仓库是为了进行分析 从而做出商业预测决策 确定营销效率 商业趋势 甚至是欺诈行为 相关数据会先进行总结和相互关联 然后再呈现给用户 用户得到的并不是最 初的每一项数据 而是最能适合他的需求的更加精简的数据 尽管数据仓库提供更方便的访问控制 但是由于它的集中性 数据仓库需要更 严格的安全 如果入侵者进入数据仓库 那么他就可以立即访问整个组织的数 据信息了 数据挖掘 Data Mining 是对数据仓库中的数据进行进一步处理以得到更有用信 息的过程 数据挖掘工具被用来发现数据的联系和相关性来生成元数据 Metadata 元数据可以揭示单个信息子集中隐含的相关性 可以用来发现不 明显的异常模式 数据挖掘可以检查复杂的数据 通过模糊逻辑 Fuzzy Logic 集合理论 SetTheory 专家系统 Expert System 技术来简化查询 执行数学函数 查找 到数据中的隐含模式 元数据比它的原始数据来源更有价值 数据仓库和数据 挖掘的目标是提取信息 以了解与组织活动和趋势有关的知识 数据挖掘是一 个分析数据仓库的过程 它在不知道数据所包含意义的情况下 用一些工具去 分析数据的趋势 相关性 关联和异常 元数据 Metadata 就是把数据放在数 据库中 然后用工具挖掘出来的结果 数据进入数据库 而元数据从数据库中 出来 数据挖掘也称作数据库知识发现 Knowledge Discovery In Database KDD 它组 合了发现有效及有用模式的各种技巧 下面是 KDD 系统用于发现这些模式的 3 种方法 分类根据共同的相似性来组合数据 可能性确定数据之间的相互依赖关系 并将可能性应用到它们的关系中 统计确定数据元素之间的关系 并使用规则发现 系统或者产品通常会遵循如下生命周期阶段 项目启动 Project Initiation 功能设计分析和规划 Functional Design and Planning 系统详细设计 System Design Specifications 软件开发 Software Development 安装 实施 Installation Implementation 运行 维护 Operational Maintenance 处理 Disposal 安全计划 Security Plan 应该在项目开发之初就制定 并且集成到功能计划中 以保证安全不被忽视 第一个安全计划应该是广泛的 涉及各个方面 并且引 用其他参考文档以得到更详细的信息 这些参考文档包括计算机标准 如 RFC 文档 IEEE 标准和一些最佳实践 先前项目文档 安全策略 认证声明 事 件处理计划以及国家或国际安全指南 如橘皮书 红皮书 通用准则等 这些 文档将使安全计划更易读易用 安全计划应该有自己的生命周期 安全计划和 项目管理活动需要进行审计 以保证安全相关的决定可被理解 项目启动项目启动 项目组的每一个人都应当充分理解项目需求和项目使用的范围 这个阶段包括 对市场上已有产品的评估 明确现有厂商没有满足的用户需求 需求也可能是 来自现有客户和潜在客户的对特定产品的直接要求 这个建议书将被提交到高 级管理层 来决定是否启动项目 或者还需要向他们提供进一步的信息 在这 个阶段中将明确用户需求 确认产品的基本安全目标 本阶段必须明确产品是 否进行敏感信息的处理 定义这些信息的敏感度级别 Level of Sensitive 在风 险管理过程建立之后 应该设计一个基本安全框架 风险管理将在整个项目的 生命期内持续进行 风险管理风险管理 风险管理阶段最重要的一个方面就是明确要提问的正确问题 风险分析风险分析 进行风险分析的目的是鉴别相关风险和潜在的危险后果 项目组需要分析与项 目失败相关的风险 这与安全风险分析有很大的不同 安全风险包括其他不同 的威胁和问题 功能设计分析和规划功能设计分析和规划 在这个阶段 需要制定项目计划来定义安全行为 制定安全检查点 Security Checkpoint 来保证安全控制措施 Security Control 的质量控制 以及识别 配置过程和变更控制过程 在这个阶段 进行资源确定 形成测试计划和评估 准则来保证安全控制措施的正确测试 正式的功能基线的形成意味着以一种正 式的方式 通常是文档化 勾勒出产品的期望轮廓 测试计划在每个阶段需要 被更新 以保证所有问题都被正确测试 在生命周期中可能需要不止一次风险 分析 因此在编码开始之前 需要有明确的目标和方向 系统详细设计系统详细设计 信息模型 Informational Model 规定被处理信息的类型以及如何进行处理 功能模型 Functional Model 概括应用程序需要执行的任务和功能 行为模型 Behavioral Model 说明应用程序在特定事务发生过程中和发生之后的 状态 这个阶段需要确认任务分解结构 Work Breakdown Structure WBS 包括开发阶 段和实施阶段 WBS 包含测试 开发 分段实施 集成测试和产品发布等各个 阶段的时限和详细活动 系统设计是用来描述用户需求和系统内部行为的工具 它通过映射这两个方面来描绘系统是如何通过内部行为完成用户需求的 在本阶段的开始 需要考虑产品的更多细节以及产品的工作环境 功能性需求 在最后确定 本阶段解决了提供这种功能所需的工作机制 决定如何进行编码 测试和实施 产品的模块化和重用 Modularity and Reusability 问题 或者说产品组件问题 需要在这个阶段解决 提供关键安全功能的代码设计应该尽量简洁 以便能够 以尽可能明确的方式发现错误 在早期阶段 需要考虑产品和组件的可测试性 而不是在后期考虑 在这个阶 段 需要进一步仔细考虑在项目启动阶段提出的问题 保证详细设计中解决了 每一个问题 在设计阶段所作的决定 对开发阶段而言是关键的 设计是用户 需求转化为软件的唯 途径 这样 软件设计就是整个产品开发的基础 软件开发软件开发 在这个阶段 程序员和开发者都需要深度参与 在这个阶段 程序员应当持一 种不允许产生软件缺陷的态度进行工作 正式或者非正式的测试应该尽快开始 单元测试 Unit Testing 可以在开发早期开始 不同的环境类型 开发 测试和 生产 应当敢正确分离 功能和操作不应该重叠 安全测试应当针对项目早期 识别出的风险 在这个阶段通常需要进行安全攻击和渗透测试来发现任何遗漏 的软件缺陷 功能 性能和抗渗透性被进一步评价 产品应该在不同的环境中 测试不同的应用 不同的配置和不同的硬件平台 安装安装 实施实施 实施阶段着重于如何使用和操作开发好的系统或者应用程序 在这个阶段 用 户已经购买了开发好的产品 并安装到工作环境中 产品需要配置到一个正确 的保护等级 通过执行功能和性能测试并进行结果分析 验证产品是否满足用 户的安全需求 系统配置应当被记录到文档中 要开发出用户指南和运行维护 手册 以使用户知道如何正确使用系统 使技术人员知道在需要时如何正确配 置产品 需要监视安全活动 以确 保系统或应用以服务水平协议 Service Level Agreement SLA 保证的方式运行 认可 Accreditation 应当在开发之后 系统应用开始运行之前进行 这个过程 需要遵循认证过程 正式或者非正式地测试所有的安全特征 以确认产品是否 完成所需的安全功能 认证 Certmcation 是一个检查和评估安全控制的过程 通常由外部独立的机构执行 认可是管理层对系统的正式接受 也是明确对风 险的接受 旦确认新系统提供的安全功能并且理解和接受残余风险 管理层应当发布一 个正式的认可声明 应当打开审计功能并监视事故恢复计划 Contingency Recovery Planning 开发响应程序并进行测试 以保证系统和产品在系统故障和 紧急情况下能够正确响应 运行运行 维护维护 运行保证 Operational Assurance 通过以下活动执行 进行弱点测试 系统行为 监控 事件审计 测试类型测试类型 单元测试 Unit esting 体组件位于一个受控的环境中 程序员在这里确认数据 结构 逻辑和边界条件 集成测试 Integration Testing 验组件是否按设计规范中规定的那样协同工作 验收测试 Acceptance Testing 保代码满足客户的需求 回归测试 Regression Testing 进行系统变更后重新进行测试 以确保功能性 性能和保护级别 垃圾收集 Garbage Collection 是操作系统自动执行内存管理任务的一种方式 事后回顾事后回顾 事后回顾应该是有组织的活动 有人主持会议和进行记录 但对每一个成员应 该有宽松和谐的气氛 以使他们更好地表达观点和想法 重要的一点是 会议 不应该成为指责和抱怨的场所 项目是一个不断学习的过程 其职责是以最短 的时间和最低的成本制造出最好的产品 理解这两点的益处 使事后回顾成为 每个项目的一部分 这对管理层来说是有益的 最成功的情况是能够简化项目 过程和项目管理 使之成为一个能够达到期望质量等级的可重复过程 然后继 续考虑如何改善项目和进一步积累 瀑布 waterfall 使用分离的开发阶段的经典方法 在进入项目的下一个阶段之前 要求正式的评审和文档记录 螺旋模型 spiral model 建立于瀑布方法之上的一种方法 着重强调在开发周期不 同阶段的风险分析 原型化和模拟 这种方法定期重访前面的阶段 以更新和 验证设计需求 结构化编程开发 structured programming development 这种编程方法涉及使用逻 辑块以实现应用过程化编程的系统设计 结构化程序布局最小化转移控制语句 如 GOTO 的随 意使用 并强调单个进出点 这种层次化方式使得稍后能够更容易地理解和更 改程序 结构化编程鼓励模块重用 从而优化内存利用 迭代开发 iterative development 这种方法通过循环方式进行软件开发 与传统模 型不同的是 迭代开发关注通过持续评估项目的当前状态来筹划项目里程碑 而评估借助基于资源 时段和执行计划的初始目标 迭代开发提供了一种评估 项目整体状态的动态方法 并且允许通过修正来改善项目的效率 改进原型模型 Modified Prototype Model MPM 作为在 Web 应用程序开发中所面 对的挑战而专门开发的一种方法 改进原型模型允许开发人员即时将客户需求 转换为可显示的产品或原型 改进原型通常用于开发人员和客户对产品的最终 特性没有把握的情况 使用可改进的原型使得最终产品能够成为更清晰的系统 规范 探索模型 exploratory model 这种方法用于项目目标未被清楚定义的场合 探索 模型关注的不是显式任务 而是依赖于一组可能融入最终产品工作的隐式规范 测试是探索开发的一个重要部分 以便确定项目的当前阶段是否遵从可能的实 现场景 联合分析开发 Joint Analysis Development JAD 这种方法在一个面向工作间的环 境中釆用工作组的方式开发应用程序 快速应用开发 Rapid Application Development RAD 一种判断用户需求并快速开 发系统以满足即时需要的方法 重用模型 reuse model 这种模型通过使用日益增多的模型来进行软件开发 通过 逐渐更改原有的原型以满足客户的需求 可重用程序不断演变 因为重用模型 不需要从头构建程序 所以显著减少了开发成本和时间 净室 cleanroom 通过遵循结构化且规范的开发和测试方法来力图防止错误和问 题的解决途径 这种模型用于高质量和严要求的应用程序 通过严格的认证过程 组件型开发 component based development 这种模型将独立 标准的模块装配在 可服务程序内 每个标准模块都由一个功能算法或指令集组成 并且被提供一 个与其他模块通信的接口 经常用在面向对象的编程中的 对象 是这些模块 的一个常见示例 组件型开发在程序中添加了可重用性和可插入的功能性 它 广泛用在现代编程中 以扩大程序的连贯性 并大大降低了软件维护成本 极限编程 extreme programming 这种方法通常在要求快速适应以改变客户需求的 场景中实现 极限编程强调客户的反馈 从而评估项目结果和分析可能需要进 行一步注意的项目作用域 极限编程的编码原则舍弃了传统的 为代码重用所 执行的长期规划 并致力于创建为同期工作而优化的简单代码 极限编程承认 客户需求在整个项目生命周期中可能显著变化的事实 并且使用开发进程来调 整这些变化 CASE 工具的目标就是在软件开发过程中支持一个或多个软件工程任务和活动 它们使用特定的工具在开发和详细分析中应用工程原理 很多情况下 有必要根据己搜集的软件产品需求开发一个模型供用户和开发人 员使用 这个模型叫做原型 Prototype 它可以向用户说明开发小组的前进方向 以及对用户需求的解释 原型使用户可以了解开发方向 得到开发完成后产品 的外观概念 向用户进一步解释需求方面的问题和疑惑 在开发过程中 原型 还可以使测试工作更早地进行 以及早发现和解决问题或错误 有的项目庞大 可能需要划分产品 以便每一部分都可以检查或建立其原型 如果没有正确处理 开发和生产过程中的变更可能造成大量混乱 发生变更有 几种原因 在开发阶段 用户可能会改变需求 增加 删除或者修改某些特定 的功能 在生产阶段 变更可能会由环境改变造成 如对产品或系统的新的需 求 新发布的补丁程序或者升级程序 这些变化应当被严格控制 以保证每个 变更都被批准 正确合并以及不会对原来的功能造成负面影响 配置管理 Configuration Management 是控制产品生命周期和记录时必要的变更控制活动 的过程 通常开发经理必须通报项目经理 如果引入变更会需要多少额外的工 作量 应该采取哪些步骤保证变更不会影响产品中的其他组件 此外 安全不 能遭到破坏 变更必须由管理层批准 当一个程序员改变源代码时 这种改变 应该在代码的测试版本上进行 对源代码的变更绝对不能在代码的生产版本上 进行 发生变更的代码 经过测试才能进入代码库中 生产代码只能从代码库 中得到 而不能从程序员或者测试环境中得来 能力成熟度模型 Capability Maturity Model CMM 描述软件开发流程的基本规 程 原则和实践 该模型帮助软件公司改善软件开发过程 将一些 突发奇想 的行为变成一个有规律 可重复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电脑包销售合同范本
- 空气能采暖合同范本
- 科技园物业合同范本
- 看护病人的合同协议
- 监控维护移交协议书
- 租赁女朋友合同范本
- 硅藻泥订购合同范本
- 皇家婚约保密协议书
- 硬盘维修保密协议书
- 社保自动缴费协议书
- 外科内镜手术技术应用及优势分析
- 第3课+中古时期的欧洲+说课课件-2024-2025学年高一下学期统编版(2019)必修中外历史纲要下
- 热电外委工程管理制度
- GB/T 17934.6-2025印刷技术网目调分色版、样张和生产印刷品的加工过程控制第6部分:柔性版印刷
- 好慷家政公司管理制度
- 火灾风险评估相关试题及答案
- 广州水务笔试题目及答案
- 2025南宁市武鸣区辅警考试试卷真题
- GB 14930.2-2025食品安全国家标准消毒剂
- 2025北京外国语大学辅导员考试题库
- 湖北省技能高考(护理)专业知识考试题(附答案)
评论
0/150
提交评论