您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 第5章 数据库系统的开发方法
第5章数据库系统的开发方法教材:数据库技术及应用2006年4月宁可、吴菁、胡海编著本章要点•方法、模型、工具和技术•软件生存期模型•结构化方法•面向对象方法目录5.1方法、模型、工具和技术5.1.1方法5.1.2模型5.1.3工具5.1.4技术5.2软件生存期模型5.2.1瀑布模型5.2.2快速原型模型5.2.3螺旋模型5.2.4喷泉模型5.2.5开发模型的比较5.3结构化方法5.3.1结构化分析5.3.2结构化设计5.3.3结构化编程5.3.4结构化分析、结构化设计和结构化编程的联系目录5.4面向对象方法5.4.1面向对象分析5.4.2面向对象设计5.4.3面向对象编程5.4.4面向对象技术的特点小结5.1方法、模型、工具和技术数据库系统也属于系统设计的范畴,数据库系统同其它软件系统一样有多种开发方法,开发过程也较为复杂,在开发数据库系统时,一方面需要了解和掌握各种各样的辅助工具,并可依靠它们来完成开发过程的每一个步骤;另一方面,还需要了解系统开发过程的大致框架和掌握许多概念,如方法、模型、工具和技术等。5.1.1方法开发方法为系统开发的每一步骤提供指导,包括具体的模型、工具和技术。开发方法既可以是通过自己的开发经验总结出来,也可以通过其它途径学习得来。某些方法需要包含大量的文档,而且文档的格式和内容都遵循相应的规范,即文档应该如何书写,应该包含哪些内容都有相应的要求,这种方法使得软件项目在开发中的任何时候所需要做的工作都是确定的。而另一些方法就没有这样严格,它常常在一份文档中涵盖了各个工作阶段系统的大致描述。采用何种方法进行数据库系统的开发,应根据项目的特点、规模及开发单位和用户的具体要求确定。在开发方法中,常常包含了模型、工具和技术的使用。5.1.2模型模型是对现实世界的描述。在系统的开发中,常常需对输入、输出、过程、数据、对象之间的相互作用、位置、网络和设备等进行模型的建立。模型可助于理解和明确要解决的问题,并确定问题的解决方案,选择什么样的模型和选择什么样的技术来表达模型,对于考虑问题和解决问题有着重大的影响。如图5-1所示,便是系统设计阶段常用的模型。界面布局报表布局系统流程图结构图数据库模式网络图分布图图5-1:设计阶段常用的模型模型的类型与作用1.模型的类型数学模型:描述系统技术的一系列公式。描述模型:描述性的备忘录、报表或列表。图形模型:用符号或图表进行描述。2.模型的作用在建模过程中了解信息。通过抽象降低复杂性。有助于回忆所有的细节。有助于和其它开发小组成员进行交流。有助于和各种用户及系统相关者进行交流。为以后的维护和升级提供了文档。常用的模型1.分析阶段常用的模型(逻辑模型)2.设计阶段常用的模型(物理模型)3.管理系统开发过程的常用的模型一般而言,虽然不同的开发方法采用不同的模型,同一开发方法的不同开发阶段采用的模型也不同。但是,有时在同一开发方法的不同开发阶段也可采用相同的模型进行描述,只不过描述的详细程度不同。5.1.3工具软件系统(包括数据库系统)的开发离不开各种各样软件工具的使用,在系统开发的各个阶段,如分析、设计、代码生成、测试、版本控制、配置管理、项目管理等,都具有相应的自动或半自动的工具支持,这些工具的应用,可帮助开发人员控制开发中的复杂性,有利于提高系统开发的效率和质量。1.开发工具的类型(1)软件开发工具(2)软件维护工具(3)软件管理和支持工具2.计算机辅助软件工程(CASE,ComputerAidedSoftwareEngineering)在软件工程活动中,软件工程师和管理人员按照软件工程的方法和原则,借助计算机及其软件工具,开发、维护、管理软件产品的过程,称为计算机辅助软件工程。与信息系统相关的CASE工具库,如图5-2所示。图形生成器数据库生成器反向工程工具设计生成器代码生成器制图工具检错工具查询工具报表生成器原型建立工具CASE工具库图5-2包括系统所有信息的CASE工具库计算机辅助软件工程的主要目标是将软件工具集成在一起,使得一个工具产生的信息能够被其他工具所用,使各类软件开发方法能在分析、设计、实现及运行维护各阶段得以全面实施,以简化系统的开发工作,加快系统开发过程,提高并充分利用软件的可重用性,通过自动检查来提高软件的质量,使得系统开发人员能集中精力进行创造性的工作。CASE的集成机制主要有:数据集成一工具间可以交换数据;界面集成—工具有相同的界面风格和交互方式;控制集成—工具激活后能控制其他工具的操作;过程集成—系统嵌入了有关软件过程的知识,根据软件过程模型辅助用户启动各种软件开发活动;平台集成—工具运行在相同的硬件/操作系统下。5.1.4工具系统中开发使用的技术是一组方法,可以帮助开发人员完成系统的开发活动或任务。有些技术可以使用于整个软件生命周期的各个阶段。在方法中,技术、模型和工具将有效的进行结合,如图5-3所示,方法包括系统开发过程中每一阶段活动的技术,这些活动包括完成各种模型及相应的文档和资料,而系统开发人员使用软件工具来帮助完成这些活动。技术模型工具方法图5-3方法中各个技术、模型和工具之间的关系5.2软件生存期模型软件产品的开发同其它一般工业产品的开发一样,需经历若干开发阶段,软件产品的生产过程也要经过分析、设计、制造、检测和运行使用等几个阶段。一个软件从计划开发到废弃不用的整个过程被称为软件的生存期,一般包括计划、开发和运行等时期。目前,已提出多种软件生存期模型,软件生存期在很大程度上反映了信息系统的生存周期,不同的软件生存期模型是针对不同性质和规模的系统分别规定了不同的工程化活动,如瀑布模型、快速原型模型、操作模型和软件演进模型、迭代模型等。5.2.1瀑布模型瀑布模型是最早的软件开发模型,该模型由于酷似瀑布而得名。在该模型中,包括三个阶段,即计划阶段、开发阶段和维护阶段,每一阶段又再细化为若干个阶段。瀑布模型和各阶段对应的需提交的文档,如图5-4所示。计划阶段开发阶段维护阶段可行性研究问题定义概要设计编码测试运行维护需求分析详细设计可行性分析报告需求说明书概要设计说明书详细设计说明书程序代码测试报告图5-4瀑布模型5.2.2快速原型模型由于在项目初始阶段人们对软件的需求认识常常不够清晰,因此需要试验性开发,其目标是在于探索可行性,弄清楚软件需求:并在此基础上获得较满意的软件产品,再进行原型设计等。通常把试验性产品称为原型。典型的快速原型模型是需求和设计之间进行迭代设计的。从模糊的需求到初始的原型,经过对原型的更改,得到清晰的需求,最后逐步演化为最终的产品。典型的快速原型模型如图5-5所示。图5-5快速原型模型原型完否否需求分析计划设计编码测试运行维护定义基本需求开发工作模型演示、求精修改/增加是5.2.3螺旋模型螺旋模型将瀑布模型与演化模型结合起来,并且增加风险分析这一环节,如图5-6所示。在直角坐标上分别表达了四个象限上的活动,即:制定计划、风险分析、工程实施、客户评价。沿螺旋线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。图5-6将瀑布模型与演化模型结合起来的螺旋模型需求计划风险分析风险分析风险分析原型1原型2原型3可运行原型风险分析:评价方案识别风险消除风险累计成本指定计划:决定目标方案限制提交线评审生存期计划开发计划组装测试客户评价软件需求需求确认设计确认验证软件产品设计实现验收测试编码组装测试单元测试实施工程:开发、验证形成产品5.2.4喷泉模型喷泉模型是一类支持面向对象的、自底向上的开发模型,在实施中体现了迭代和无间隙的特征,其过程如图5-7所示。它在实施中,对系统的某个部分常常重复迭代,相关的功能在迭代中逐步地演化到系统中,并且能体现无间隙特征,即与瀑布模型相比,其分析、设计和编码之间没有明显的界限。喷泉模型是以用户需求为动力,以对象为驱动模型,适合于面向对象开发方法。图5-7喷泉模型分析设计实现确认维护演化5.2.5开发模型的比较模型名称特点驱动类型适用范围瀑布模型各个阶段的固定顺序上—个阶段完成后才能进入下个阶段。文档驱动普遍的方法快速原型模型从初始的原型逐步演化为最终的产品。数据字典驱动对软件需求缺乏准确认识的情况螺旋模型软件开发沿螺线自内向外旋转,每旋转一周都对风险进行识别和分析,采取对策以减少风险,从而开发更为完善的新版本。风险驱动适合大型软件的开发喷泉模型体现面向对象开发过程的迭代和无间隙特征。对象驱动适合中小型规模的软件5.3结构化方法结构化编程、结构化设计和结构化分析是组成系统结构化开发方法的三种技术,我们可把这三种技术统称为结构化分析与设计技术。5.3.1结构化分析结构化分析技术使帮助开发人员定义系统需要做什么、系统需要存储和使用哪些数据、需要什么样的输入和输出以及如何将系统的各种功能结合在一起完成既定的任务。在结构化分析中,常常通过多种图形工具来表示系统的需求,主要有:1.数据流图(DFD,DataFlowDiagram)2.实体-关系图(D-R,EntityRelationshipDiagram)5.3.2结构化设计结构化设计是用于描述程序集中各个程序应实现的功能和这些程序间的层次关系。在结构化设计中常常通过结构图这种图形模型来显示程序模块的层次关系。1.结构化设计的基本原则结构化设计的基本原则是程序模块应该设计成松耦合与高内聚。2.数据库设计、用户界面设计与结构化设计由于目前大多软件项目中,一方面都涉及到使用数据库管理系统,程序模块需和数据库进行交互;另一方面越来越多的非技术人员参与系统的设计和应用中,用户界面的设计也逐渐重要起来,因此,数据库设计、用户界面设计与结构化设计常常是一起完成的。5.3.3结构化编程也称结构化程序设计,是采用自顶向下、逐步求精的思想并利用顺序、选择和循环三种基本结构来构筑程序,使得设计的程序只有一个入口一个出口。顺序、选择和循环三种基本结构采用结构化编程技术,可把复杂的程序分解为简单的程序模块层次图,使程序结构呈现出清晰的层次和控制方式,易于阅读和理解,提高了程序的可维护性。模块层次图如图5-12所示,上层程序模块通过“调用”底层程序模块来控制程序的执行。其中,这里的程序模块也可称为程序段或过程。控制模块调用程序模块A调用程序模块B调用程序模块C程序模块A调用程序模块1调用程序模块2程序模块B调用程序模块x程序模块C调用程序模块y图5-12自顶向下的模块化程序设计5.3.4结构化分析、结构化设计和结构化编程的联系结构化分析事件数据流图实体联系图结构化设计根据数据流图定义程序模块结构图结构化编程使用结构化编程为每一个程序模块编写代码图5-13从结构化分析、结构化涉及到结构化编程5.4面向对象方法面向对象的方法由面向对象分析(Object-OrientedAnalysis)、面向对象设计(Object-OrientedDesign)、面向对象程序设计(Object-OrientedProgramming)等组成,其开发过程如图5-14所示。在面向对象方法中的概念和表示符号,可以适用于软件开发的整个过程。在面向对象方法中,软件开发阶段的划分是比较模糊的,通常要在分析、设计与实现等阶段间进行多次迭代。真实世界真实世界的面向对象模型面向对象的设计面向对象的编码该模型是用户易于理解的方式反映真实世界。设计应该与模型具有相同的基本结构。编码应该从设计中尽可能自动生成。图5-14面向对象方法的开发过程5.3.1面向对象分析OOA(Object-OrientedAnalysis,面向对象分析)是软件开发过程中分析并综合用户需求,建立问题域精确模型的过程。Rumbaugh等人提出对象模型技术,它把分析时收集的信息构造在3类模型中,即对象模型、功能模型和动态模型。图5-15给出了这3个模型的建立次序。对象模型动态模型功能模型图5-15在分析阶段的3个模型之间的关系5.4.2面向对象设计定义系统中所有类型的对象(包括在面向对象分析中没有定义的用于通信所必需的其它对象类型),并对每一种类型的对象进行细化,以便可以使用一种具体语言或环境来实现这些对象。OOD的
本文标题:第5章 数据库系统的开发方法
链接地址:https://www.777doc.com/doc-3787691 .html