数据仓库的软件开发生命周期

技术标签: 数据仓库  项目管理  


传统上,数据仓库项目遵循软件开发生命周期模型的一个变体,称为瀑布模型。虽然文献中有多个版本,各阶段的数量和名称不同,但它们都遵循分阶段的方法。此外,这些模型具有广泛的共同规划,然后是全面的设计、实现和测试。在流程开始时给出用户输入,然后在实施和测试过程中转入技术系统。其中一些分阶段模型允许在过程中回退步骤,例如,如果系统测试发现了需要额外用户输入的问题。
图3.15显示了原始瀑布方法的代表性版本。

图3.15 瀑布模型
图3.15 瀑布模型

该图显示,这一特定模型由五个阶段组成:
1.需求工程
2.设计
3.实施和单元测试
4.集成和系统测试
5.操作和维护

项目团队从需求工程阶段开始,并通过预定义的阶段前进。为了推进到下一阶段,团队必须完全完成当前阶段,因为没有办法回到上一阶段。在瀑布方法中,如果需要修改前一个阶段的结果,项目通常会失败。无法应对项目生命周期中的变化是数据仓库项目中瀑布模型的主要缺点(类似于交付在线事务处理系统的项目)。
尽管它有缺点(如项目周期长),但瀑布模型是数据仓库中许多现代方法的前身。因此,下一节将更详细地涵盖瀑布模型的各个阶段。

需求工程

在这一阶段,项目组收集和汇集组织的所有业务和技术要求。
该阶段的主要输出是“数据仓库定义”文档,它相当于操作软件工程中的“软件需求规范(SRS)”文档。
文档充分描述了要构建的数据仓库的所有所需特性和限制。其中包括以下要求:

  • 业务区域数据需求
  • 架构要求
  • 审计要求
  • 存档要求

这一阶段的主要挑战是固定用户需求的明确集合,这往往是困难的,因为不同的用户类通常有矛盾的需求。因此,这一阶段往往是瀑布模型中最困难和最耗时的阶段。
为了收集系统需求,分析人员使用各种传统和现代方法。

传统方法包括以下:

  • 咨询对当前和未来系统的操作和业务流程有深入了解的个人。
  • 在选定的时间对业务人员进行观察,以了解如何处理数据并收集这些业务人员的信息需求。
  • 分析业务文件,以确定报告的问题、政策、规则和方向。此外,还需确定组织内数据和数据使用的具体例子。

现代方法包括以下:

  • 联合应用程序设计,将关键用户、管理人员和系统分析人员聚集在一起,同时从关键人员那里收集系统需求。
  • 原型以增强需求确定过程。

这些方法的共同之处在于从业务用户中识别和收集需求,以便将它们提供给下一个流程步骤,这些步骤将在下面的章节中描述。

设计

在设计阶段,数据仓库设计人员设计了数据仓库的架构,如系统的层和各个模块。
该定义基于“数据仓库定义”文档,包括每个层的数据库定义,例如:集结区表的结构、数据仓库层中的表和数据集市中的星型模式。
对于每个数据库,定义每个表的名称和列。通常,数据库定义使用实体关系(ER)工具执行,这些工具用于定义和记录数据库。SQLServer2012包括SQL Server Management Studio,它可以使用Visual DatabaseToolDesigner快速创建和填充每个层。
另一个感兴趣的领域是根据整个系统的性能、安全性和存储要求选择所需的硬件和软件。 在一些项目中,现有的数据仓库基础设施是可用的。在这种情况下,必须为新项目创建新的数据库,基础设施提供者将检查现有基础设施是否有足够的能力为新项目服务。在向组织引入数据仓库的其他项目中,必须创建新的基础设施。这项任务不应被低估,往往成为一个独立的项目,采购硬件和支持服务,如维护未来的数据仓库(想想备份和恢复服务,部署新功能,错误跟踪,最终用户支持,网络维护等)。

实施和单元测试

一旦数据仓库被描述(在需求工程阶段)和设计(在设计阶段),系统的各个模块就由数据仓库开发人员实现。在开发模块的同时,他们还对模块进行测试,并删除在此过程中发现的错误。
SQLServer2012中包含了各种工具来构建数据仓库。 这些工具大多可以在Microsoft Business Intelligence Development Studio中找到。本开发环境包括以下工具:

  • 用于数据集成的SQLServer集成服务
  • 用于开发多维数据仓库(OLAP立方体)和执行数据挖掘任务的SQLServer分析服务
  • 用于开发基于关系和多维数据源的报告的SQLServer Reporting Services。

此外,大多数团队使用来自微软或第三方应用程序供应商的额外工具。
经常使用的工具包括:

  • OLAP前端可以轻松浏览OLAP立方体或提供高级报告功能
  • 数据挖掘环境,为最终用户提供先进的分析选项
  • 用于定义和记录数据库的ER工具
  • 自动化数据仓库整体的工具,如数据定义语言(DDL)生成器
  • 数据分析工具,以更好地理解原始数据
  • 数据清理和评估的数据质量工具。

集成和系统测试

虽然数据仓库开发人员已经在单个单元中实现和测试了数据仓库的模块,但每个单元的集成必须参与这一阶段。各个单元相互连接,集成。这个集成过程从架构底部的一些模块开始,这些模块是已完全集成和已测试的(图3.16)。
图3.16 自下而上的检测
图3.16 自下而上的检测

一旦测试通过,模块将通过集成添加到系统中。在这些单元的集成完成后,对整个系统进行了再次测试。当底部的所有可以相互集成的单元都被集成时,集成团队将移动到下一个级别并集成更大的部分。新的更大的单元再次进行测试,以检查所有子单元是否无缝地一起工作。
由于这种测试方法需要一次又一次地运行许多测试,因此在这个阶段经常使用测试自动化工具。

操作和维护

在瀑布模型的最后阶段,数据仓库被移交给业务操作部门,在那里系统被安装在最终用户的场所以供正常使用。如果最终用户在数据仓库中发现错误,业务操作团队负责纠正这些错误并处理数据仓库的其他修改。执行此连续过程,直到数据仓库下线或被新的数据仓库所取代。
为了支持业务操作和维护团队,开发解决方案的数据仓库团队必须提供最终用户和管理文档,包括维护数据仓库的具体说明(例如加载新的数据交付或定制现有报告)。

来源:网络


智能推荐

敏捷软件开发生命周期是什么_2019年完整敏捷软件生命周期指南

敏捷软件开发生命周期是什么 经营成功的软件开发业务可能会极具挑战性。 这个行业充满了竞争,这就是为什么您的主要重点应该是保持软件开发过程快速高效的原因。 如果您能够在比竞争对手更快的时间内为客户提供高质量的软件,那么随着时间的推移,您的公司发展将毫无问题。 避免管理不善的最佳方法之一是采用敏捷方法 源- Pexels 您是否意识到几乎所有项目管理失败中的54%是由于管理不善引起的? 避免此问题的最...

软件工程:软件开发生命周期 (SDLC)

软件构建的基本概念之一 - 软件开发生命周期模型。或者只是SDLC模型。SDLC - 是一个连续的过程,从决定启动项目的那一刻开始,并在它完全从开发中移除的那一刻结束。没有一个单一的SDLC模型。它们分为主要组,每组都有其特点和弱点。 阶段1.计划和需求分析 (Planning and Requirement Analysis) 每个软件开发生命周期模型都从分析开始,过程的利益相关者 讨论对最终产...

科创项目日记(1)—对软件开发生命周期的一些小总结

最近在做一个科创项目,该项目中,我们的第一个任务就是总结一下软件生命周期各个阶段的任务以及自行网上收集各种软件生命周期文档的编写模版。经过这几天的资料收集,技术顾问的指导,加上自己过滤整理,终于有了现在这篇小日记。 接下来我将用文字以及导图的方式对软件开发生命周期的各个阶段进行一个简单的总结。 导图 各阶段任务梳理 3.软件生命周期各个阶段 1.问题定义 关键任务:“要解决的问题是什么...

场效应管放大电路

金属-氧化物-半导体(MOS)场效应管 N沟道增强型MOSFET 栅源加电压,在电场作用下产生沟道。产生沟道的门限开启电压VT。 漏源加电压,产生电压梯度,导致沟道夹断。预夹断的临界条件 输出特性 特性方程 可变电阻区                         &...

【响应式】foundation栅格布局的“尝鲜”与“填坑”

  提到响应式,就不得不提两个响应式框架——bootstrap和foundation。在标题上我已经说明白啦,今天给大家介绍的是foundation框架。 何为“尝鲜”?就是带大伙初步一下foundation的灵活和强大 何为“踩坑”?就是我把我使用的时候踩过的坑给标个记号,这样大伙用的时候就可以“绕道而...

猜你喜欢

word2vec笔记

word2vec 词向量 one hot Distributed representation CBOW&Skip-Gram CBOW Skip-Gram sigmoid函数 Huffman树 基于Hierarchical Softmax的模型 基于Negative Sampling的模型 本文基于word2vec原理CBOW与Skip-Gram模型基础 CBOW与Skip-Gram的模型...

2021-03-14

官网:https://router.vuejs.org/zh/guide/essentials/navigation.html 一、安装路由 npm install vue-router --save-dev 在src目录下创建router目录 使用 vuecli3创建项目选择路由会自动创建route目录 在main.js引入router 二、配置路由 1、 hash: 使用 URL hash 值...

文献阅读-ICRA2020-精确的实时数据驱动的对RAVEN-II手术机器人末端执行器位置估计器

文章序号、所属单元及链接:1646-Surgical Robotics Laparascopy 一作所属单位:University of Washington 读后体会:以我浅薄的学术认知原本认为这篇论文挺牛逼的,实验细节给的很多,关键是结果提升很大。跟老师交流之后才知道这论文只能骗骗外行人,关键的问题是他是空载进行实验的,绳驱动机器人负载和空载的差距很大,还需要考虑绳经过一段时间使用之后动态特性...

RoarCTF 2019Easy Calc表达式注入

[RoarCTF 2019]Easy Calc表达式注入 - 幕布 接着发现了api的接口地点calc.php和get的参数 直接url后面加上calc.php显示了一部分源码 可以发现过滤了很多的东西,并且计算器的页面上是只允许输入数字的,所以可以用带空格的数字绕过(用? num代替?num) scandir("/")扫一下根目录,"/"被waf过滤了,单...

一文弄懂ARQ协议与Nagle算法

本文参考文献: 1、ARQ-维基百科 https://zh.wikipedia.org/wiki/ARQ 2、TCP/IP(三) —— 可靠传输工作原理 http://pmghong.blog.51cto.com/3221425/1242470 3、TCP可靠传输&流量控制&拥塞控制  http://my.oschina.net...

问答精选

SQL, update command not ending properly

It keeps saying : ORA-00933: SQL command not properly ended Pls help me or give me a link to a solution You can use a correlated subquery instead:...

How can I escape $.each loop with my data?

I'm doing an Json call to retrieve an a list of locations with information details for each location. longitude and latitude are included in this info. I am using Google's distance matrix api to get t...

How to display all the columns (and their type) in all tables of all schemas in a database?

Suppose you have a database which has an 'n' number of schemas with an 'n' number of tables each. Each of these contain an 'n' number of columns. How would I print all this data along with the data ty...

How to set the java.library.path in intelliJ Idea

Could anyone please help how do I solve this error: I am using IDEA IDE as a first time, and have been using Resin_4.0.37 as a server to test my work. As soon as I start my lcoal server in debug mode ...

How to calculate mouse coordinate based on resolution c#

i am trying to develop a remote desktop apps with c#. so i have couple of question regarding mouse coordinate calculation based on picture box suppose i have picture box and i want to capture mouse co...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答