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

  • 需求工程
  • 设计
  • 实施和单元测试
  • 集成和系统测试
  • 操作和维护

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

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

操作和维护

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

数据仓库的软件开发生命周期相关推荐

  1. 软件开发生命周期模型 瀑布模型、增量模型、原型模型、螺旋模型、喷泉模型总结...

    在校期间学习过这些模型,现在来复习一下. 瀑布模型/改进的瀑布模型 虽然瀑布模型仍然存在很多的问题有待解决,但瀑布模型仍然是最基本的和最效的一种可供选择的软件开发生命周期模型.瀑布模型要求软件开发严格 ...

  2. 软件开发生命周期中的设计阶段_测试基础——软件开发生命周期

    今天和大家分享的是软件开发生命周期,主要介绍软件的生命周期和软件的设计模型. 国标(GB8566-88)中将软件生命周期分为8个阶段:可行性研究与计划.需求分析.概要设计.详细设计.实现(包括单元测试 ...

  3. 孙叫兽进阶之路之软件开发生命周期

    孙叫兽,前端全栈开发工程师,java工程师. 软件开发生命周期:

  4. 软件开发生命周期中的设计阶段_什么是软件生命周期模型?软件测试和软件开发的关系分析!...

    软件生命周期这个词,对于大部分人应该比较陌生,但却不容忽视!正因为它的重要性,才有许多不同的软件开发生命周期模型,但是它们都有一个共同的特点,那就是在生命周期中的某一时刻,软件都会被测试.今天我就和大 ...

  5. 软件开发生命周期及开发模型

    软件开发生命周期 软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了计划.开发.测试和部署过程的集合.如下图所示 : 需求分析 这是生命周期的 ...

  6. SDLC 软件开发生命周期及模型

    SDLC 软件开发生命周期及模型 SDLC Waterfall Model 瀑布模式 V-Shaped Model V型模式 Prototype Model 原型模式 Spiral Model Ite ...

  7. sdlc 瀑布式 生命周期_SDLC指南–软件开发生命周期的阶段和方法

    sdlc 瀑布式 生命周期 When I decided to teach myself how to code almost four years ago I had never heard of, ...

  8. 移动开发的软件开发生命周期介绍(二)

    Stabilization--稳定期 Stabilization is the process of working out the bugs in your app. Not just from a ...

  9. 测试基础---软件开发生命周期

    今天和大家分享的是软件开发生命周期,主要介绍软件的生命周期和软件的设计模型. 国标(GB8566-88)中将软件生命周期分为8个阶段:可行性研究与计划.需求分析.概要设计.详细设计.实现(包括单元测试 ...

最新文章

  1. python爬取慕课视频-Python爬虫抓取技术的门道
  2. 在enable mmu之前可以使用mmu了
  3. 用栈实现括号匹配的检验
  4. kafka集群 kubernetes_为什么 Kubernetes 如此受欢迎?
  5. 坐地铁的好心MM们小心啊,周末刚经历了一个地铁新骗术
  6. 和平精英android怎么写符号,和平精英名字符号大全 可用的名字特殊符号有哪些...
  7. 支付宝回应手机黑产;微软将允许员工永久在家办公;Flutter 1.22 正式发布|极客头条
  8. 汇总10.4版本ArcGIS Server与ArcMap 安装+SDE+注册数据源(非破解)
  9. Python基本图形绘制:turtle库
  10. Arcgis制作行政区划矢量文件(shp格式)
  11. 基于STM32设计的NB-IOT电量采集系统(超级详细)--1.Onenet平台配置及M5311配置
  12. python 邮件分类_python_NLP实战之中文垃圾邮件分类
  13. 简书CEO 林立:简书钻改,让付出有所得
  14. bilibili mac客户端 哔哩哔哩 b站mac客户端
  15. Ubuntu平台下ROS系统查看RGB摄像头和深度摄像头的连接
  16. java里jvm,jer,jdk的区别
  17. python中输出手机话费_用Python生成柱状图、折线图、饼状图来统计自己的手机话费...
  18. VSCode:C++ 无法跳转到函数定义
  19. 如何高效学习UI设计的方法
  20. Android 实现手机号短信验证码

热门文章

  1. 卡存好,还是存折存好?银行小妹给你讲讲
  2. rabbitmq原理及应用--笔记
  3. bzoj1673:天平
  4. python中字符串和json的转换,Python笔记——json和字符串之间的相互转换
  5. 利用InceptionV3实现图像分类
  6. ubuntu 安装vim
  7. 大数据之hive安装
  8. android studio的read timed out或connect timed的问题解决
  9. nodeJs对DICOM医学影像文件解析并保存为图片
  10. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java酒店客房管理系统cpq7c