发布新日志

  • 软件评测师考试复习之软件工程

    2008-05-12 19:48:20

       软件工程定义:软件工程学就是研究如何有效地组织和管理软件开发的工程的工程学科。IEEE   1983年将软件工程定义为:软件工程是开发、运行、维护和修复软件的系统方法。

     

         软件工程方法学包含三个要素:方法、工具和过程。

     

         软件生命周期分为需求分析、概要设计(系统设计)、详细设计(组件设计)、编码、测试、维护几个阶段。

         需求分析不是具体的解决问题,而是要准确的确定目标系统必须做什么。需求分析模型通常使用UML中的用例图和类图等图形工具来表示,软件需求说明书一般可用数据流图、数据字典和自然语言书写。

         概要设计的主要任务是设计程序的体系结构,也就是确定程序有那些模块(组件)组成,以及模块(组件)之间的关系。如果采用面向对象的方法,这里的模块(组件)通常是类。

         详细设计的主要任务是详细的设计每个组件,确定实现组件功能所需要的算法和数据结构。如果采用面向对象的方法,组件设计的任务就是写清每一个类的内部属性(数据结构)以及每一个服务的实现细节(算法)。

         编码就是把软件设计结果翻译成用某种程序设计语言(编程语言)书写的程序。对于一般的系统应尽量选用高级编程语言;对于工控软件、嵌入式软件,以及其他一些与时间、资源、环境密切相关的软件,可选用一些层次稍低但执行效率高的编程语言,必要时也可选用汇编语言。

         软件测试的目的是在软件产品或软件系统交付运行之前,尽可能多的发现软件中的错误和缺陷。

          软件维护就是在软件交付使用之后直至软件被淘汰的整个时期内为了改正错误或满足新的需求而改变软件的活动。

         软件维护通常有4种类型:改正性维护、适应性维护、完善性维护、预防性维护。

       

         结构化开发方法学也称为生命周期方法学,它采用结构化技术(结构化分析、结构化设计和结构化实现)来完成软件开发的各项任务。这种方法学把生命周期的全过程依次划分为若干个阶段,然后顺利的完成每个阶段的任务。

         结构化分析方法是一种面向数据流的需求分析方法。它的基本思想是自顶向下逐层分解,把一个大问题分解成若干个小问题,每个小问题再分解成若干个更小的问题。经过逐层分解,每个最底层的问题都是足够简单、容易解决的,于是复杂问题就迎刃而解了。

         数据流图DFD)、数据字典(DD)、实体-关系图(E-R图),以及描述加工处理的结构化分析的常见工具。

         数据流图(DFD)是一种图形化技术,用来描述数据从输入到输出的变换流程。

          DFD的主要四种成分:数据流、加工、文件、源/宿。

     

          数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。

          数据字典中有4种类型的条目:数据项条目,数据流条目,文件条目,加工条目。

     

    模块是指执行某一特定任务的数据和可执行语句等程序元素的集合,通常是指可通过名字来访问的过程、函数、子程序或宏调用等。

    内聚是指一个模块内各个元素彼此结合的紧密程度。

    耦合是对一个软件结构内不同模块之间互联程度的度量。

    模块的高内聚低耦合原则称为模块独立原则

    深度表示软件结构中控制的层数。

    宽度是软件结构中同一个层次上的模块总数的最大值。

    一个模块的扇出是指该模块直接调用的下级模块的个数。

    一个模块的扇入是指该模块直接调用的上级模块的个数。

    设计良好的软件结构通常顶层扇出比较大。中间扇出较少,底层模块有较大扇入。

    模块的作用域是指受该模块内一个判定影响的所有模块的集合。

    模块的控制域是指该模块直接或间接被调用的所有模块的集合。

     

    统一建模语言(UML)包括以下视图:

    用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图。

     

    瀑布模型:严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入下一阶段。

    快速原型模型:快速建立起来的可以在计算机上运行的程序,它所完成的功能往往是最终软件产品的一个子集。

    螺旋模型:综合了瀑布模型和演化模型的优点,还增加了风险分析。包含了四个方面的活动:制定计划、风险分析、实施工程、客户评估。采用螺旋模型时软开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相关对策。

     

    质量模型由三个层次组成:质量特性、质量子特性、度量。

    软件质量管理是指软件开发机构为保证软件项目满足客户需求所要实施的质量活动。

    质量管理体系由人员和资源、组织结构和岗位职责权限、工作程序组成。

    软件能力成熟度模型(CMM)的五个等级:

    初始级:软件过程是无序的,有时甚至是混乱的,对过程几乎没有定义,成功取决于个人努力。管理是反应式的。

    可重复级:建立了基本的项目管理过程来跟踪费用、进度和功能特性。制定了必要的过程纪律,能重复早先类似应用项目取得的成功。

    已定义级:已将软件管理和工程两方面的过程文档化、标准化,并综合成该组织的标准软件过程。所有项目将军使用经批准、裁剪的标准软件过程来开发和维护软件。

    已管理级:收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解和控制。

    优化级:进程的量化反馈和先进的新思想、新技术促使过程不断改进。

     

    软件配置是指一个软件产品在软件生存周期各个阶段所产生的各种形式和各种版本的文档、程序及其数据的集合。

    软件配置活动主要包括5项任务:对象标识、版本控制、变化控制、配置审计和配置报告。

     

    基线是指已通过正式复审的软件中间产品或软件文档,它可以作为进一步开发的基础,并且只有通过正式的变化控制过程才能改变它。

    常用的基线包括以下三种:功能基线、指派基线、产品基线。

     

    软件风险管理主要包括风险识别、风险分析(风险估算与评价)、风险应对(风险防范)和风险控制等。

  • 介绍数据仓库

    2008-04-15 18:32:25

     Data warehouse

     

            数据仓库中的数据来自于多种业务数据源,这些数据源可能是不同硬件平台上,使用不同的操作系统,数据模型也相差很远,因而数据以不同的方式存在不同的数据库中。如何获取并向数据仓库加载这些数据量大、种类多的数据,已成为建立数据仓库所面临的一个关键问题。针对目前系统的数据来源复杂,而且分析应用尚未成型的现状,强烈推荐使用专业的数据抽取、转换和装载工具DataStage

      DataStage 是一套专门对多种操作数据源的数据抽取、转换和维护过程进行简化和自动化,并将其输入数据集市或数据仓库目标数据库的集成工具。 

      DataStage 能够处理多种数据源的数据,包括主机系统的大型数据库、开放系统上的关系数据库和普通的文件系统等,以下列出它所能处理的主要数据源:

      大型主机系统数据库:IMS,DB2,ADABAS,VSAM

            开放系统的关系数据库:Informix,Oracle,Sybase,DB2,Microsoft SQL Server

      ERP系统:SAP/R3,PeopleSoft系统等

            普通文件和复杂文件系统,FTP文件系统,XML

            IIS, Netscape, Apache Web服务器系统.

        OutlookEmail系统

     

           DataStage可以从多个不同的业务系统中,从多个平台的数据源中抽取数据,完成转换和清洗,装载到各种系统里面。其中每步都可以在图形化工具里完成,同样可以灵活的被外部系统调度,提供专门的设计工具来设计转换规则和清洗规则等,实现了增量抽取、任务调度等多种复杂而实用的功能。其中简单的数据转换可以通过在界面上拖拉操作和调用一些DataStage预定义转换函数来实现,复杂转换可以通过编写脚本或结合其他语言的扩展来实现,并且 DataStage提供调试环境,可以极大提高开发和调试抽取、转换程序的效率。根据以往的项目实施经验,通常数据抽取工作分抽取、清洗、转换、装载几个步骤:

            抽取主要是针对各个业务系统及不同网点的分散数据,充分理解数据定义后,规划需要的数据源及数据定义,制定可操作的数据源,制定增量抽取的定义。

    清洗主要是针对系统的各个环节可能出现的数据二义性、重复、不完整、违反业务规则等问题,允许通过试抽取,将有问题的纪录先剔除出来,根据实际情况调整相应的清洗操作。

            转换主要是针对数据仓库建立的模型,通过一系列的转换来实现将数据从业务模型到分析模型,通过内建的库函数、自定义脚本或其他的扩展方式,实现了各种复杂的转换,并且支持调试环境,清楚的监控数据转换的状态。

           装载主要是将经过转换的数据装载到数据仓库里面,可以通过数据文件直接装载或直连数据库的方式来进行数据装载,可以充分体现高效性。在应用的时候可以随时调整数据抽取工作的运行方式,可以灵活的集成到其他管理系统中。

     

     

             数据仓库(Data Warehouse)是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。

             数据仓库是一个环境,而不是一件产品,提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问,的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。

     

    一、数据仓库拥有的四个特点

     

         1、面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织。主题是一个抽象的概念,是指用户使用数据仓库进行决策时所关心的重点方面,一个主题通常与多个操作型信息系统相关。

         2、集成的。面向事务处理的操作型数据库通常与某些特定的应用相关,数据库之间相互独立,并且往往是异构的。而数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。

         3、相对稳定的。操作型数据库中的数据通常实时更新,数据根据需要及时发生变化。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期的加载、刷新。

          4、反映历史变化。操作型数据库主要关心当前某一个时间段内的数据,而数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。

     

    二、数据仓库的组成

     

         数据仓库数据库是整个数据仓库环境的核心,是数据存放的地方和提供对数据检索的支持。相对于操纵型数据库来说其突出的特点是对海量数据的支持和快速的检索技术。

          数据抽取工具:   把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、和SQL语句等,以访问不同的数据。数据转换都包括,删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋给缺省值;把不同的数据定义方式统一。

        

     

          元数据

    元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类,技术元数据和商业元数据。技术元数据是数据仓库的设计和管理人员用于开发和日常管理数据仓库是用的数据。包括:数据源信息;数据转换的描述;数据仓库内对象和数据结构的定义;数据清理和数据更新时用的规则;源数据到目的数据的映射;用户访问权限,数据备份历史记录,数据导入历史记录,信息发布历史记录等。

     

           商业元数据从商业业务的角度描述了数据仓库中的数据。包括:业务主题的描述,包含的数据、查询、报表;

    元数据为访问数据仓库提供了一个信息目录(information directory),这个目录全面描述了数据仓库中都有什么数据、这些数据怎么得到的、和怎么访问这些数据。是数据仓库运行和维护的中心,数据仓库服务器利用他来存贮和更新数据,用户通过他来了解和访问数据。

           访问工具 为用户访问数据仓库提供手段。有数据查询和报表工具;应用开发工具;管理信息系统(EIS)工具;在线分析(OLAP)工具;数据挖掘工具。

    数据集市(DataMarts)为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(subject area)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意的就是再实施不同的数据集市时,同一含义的字段定义一定要相容,这样再以后实施数据仓库时才不会造成大麻烦。

          数据仓库管理:安全和特权管理;跟踪数据的更新;数据质量检查;管理和更新元数据;审计和报告数据仓库的使用和状态;删除数据;复制、分割和分发数据;备份和恢复;存储管理。

    信息发布系统:把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是对付多用户访问的最有效方法。

     

    三、设计数据仓库的九个步骤

    1)选择合适的主题所要解决问题的领域     

    2)  明确定义fact     

    3)  确定和确认维

    4) Choosing the facts

    5)计算并存储fact表中的衍生数据段

    6) Rounding out the dimension tables

    7) Choosing the duration of the database

    8) The need to tracks lowly changing dimensions

    9)确定查询优先级和查询模式。

     

          技术上     

    硬件平台:数据仓库的硬盘容量通常要是操作数据库硬盘容量的2-3倍。通常大型机具有更可靠的性能和和稳定性,也容易与历史遗留的系统结合在一起;而PC 服务器或UNIX服务器更加灵活,容易操作和提供动态生成查询请求进行查询的能力。选择硬件平台时要考虑的问题:是否提供并行的I/O吞吐?对多CPU的支持能力如何?

    数据仓库DBMS:他的存储大数据量的能力、查询的性能、和对并行处理的支持如何。

    网络结构:数据仓库的实施在那部分网络段上会产生大量的数据通信,需不需要对网络结构进行改进。

           实现上

     

    四、建立数据仓库的步骤

    1 )收集和分析业务需求

    2)建立数据模型和数据仓库的物理设计

    3)定义数据源

    4)选择数据仓库技术和平台

    5)从操作型数据库中抽取、净化、和转换数据到数据仓库

    6)选择访问和报表工具

    7)选择数据库连接软件

    8)选择数据分析和数据展示软件;

    9)更新数据仓库

     

    数据抽取、清理、转换、和移植

    1)数据转换工具要能从各种不同的数据源中读取数据。

    2)支持平面文件、索引文件、和legacyDBMS

    3)能以不同类型数据源为输入整合数据。

    4)具有规范的数据访问接口

    5)最好具有从数据字典中读取数据的能力

    6)工具生成的代码必须是在开发环境中可维护的

    7)能只抽取满足指定条件的数据,和源数据的指定部分

    8)能在抽取中进行数据类型转换和字符集转换

    9)能在抽取的过程中计算生成衍生字段)

    10)能让数据仓库管理系统自动调用以定期进行数据抽取工作,或能将结果生成平面文件

    11)必须对软件供应商的生命力和产品支持能力进行仔细评估    

     

    主要数据抽取工具供应商:Prismsolutions.Carleton'sPASSPORT.InformationBuildersInc.

    EDA/SQL.SASInstituteInc.

     摘自http://www.waiqi8.com/bbs/thread-1664-1-1.html

我的栏目

数据统计

  • 访问量: 1534
  • 日志数: 2
  • 建立时间: 2008-04-10
  • 更新时间: 2008-05-12

RSS订阅

Open Toolbar