第5章 数据库系统的开发方法_第1页
第5章 数据库系统的开发方法_第2页
第5章 数据库系统的开发方法_第3页
第5章 数据库系统的开发方法_第4页
第5章 数据库系统的开发方法_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第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面向

2、对象技术的特点小结,5.1方法、模型、工具和技术,数据库系统也属于系统设计的范畴,数据库系统同其它软件系统一样有多种开发方法,开发过程也较为复杂,在开发数据库系统时,一方面需要了解和掌握各种各样的辅助工具,并可依靠它们来完成开发过程的每一个步骤;另一方面,还需要了解系统开发过程的大致框架和掌握许多概念,如方法、模型、工具和技术等。,5.1.1方法,开发方法为系统开发的每一步骤提供指导,包括具体的模型、工具和技术。开发方法既可以是通过自己的开发经验总结出来,也可以通过其它途径学习得来。,某些方法需要包含大量的文档,而且文档的格式和内容都遵循相应的规范,即文档应该如何书写,应该包含哪些内容都有相应

3、的要求,这种方法使得软件项目在开发中的任何时候所需要做的工作都是确定的。而另一些方法就没有这样严格,它常常在一份文档中涵盖了各个工作阶段系统的大致描述。采用何种方法进行数据库系统的开发,应根据项目的特点、规模及开发单位和用户的具体要求确定。在开发方法中,常常包含了模型、工具和技术的使用。,5.1.2模型,模型是对现实世界的描述。在系统的开发中,常常需对输入、输出、过程、数据、对象之间的相互作用、位置、网络和设备等进行模型的建立。模型可助于理解和明确要解决的问题,并确定问题的解决方案,选择什么样的模型和选择什么样的技术来表达模型,对于考虑问题和解决问题有着重大的影响。如图5-1所示,便是系统设计

4、阶段常用的模型。,模型的类型与作用,1.模型的类型数学模型:描述系统技术的一系列公式。描述模型:描述性的备忘录、报表或列表。图形模型:用符号或图表进行描述。2.模型的作用在建模过程中了解信息。通过抽象降低复杂性。有助于回忆所有的细节。有助于和其它开发小组成员进行交流。有助于和各种用户及系统相关者进行交流。为以后的维护和升级提供了文档。,常用的模型,1.分析阶段常用的模型(逻辑模型)2.设计阶段常用的模型(物理模型)3.管理系统开发过程的常用的模型,一般而言,虽然不同的开发方法采用不同的模型,同一开发方法的不同开发阶段采用的模型也不同。但是,有时在同一开发方法的不同开发阶段也可采用相同的模型进行

5、描述,只不过描述的详细程度不同。,5.1.3工具,软件系统(包括数据库系统)的开发离不开各种各样软件工具的使用,在系统开发的各个阶段,如分析、设计、代码生成、测试、版本控制、配置管理、项目管理等,都具有相应的自动或半自动的工具支持,这些工具的应用,可帮助开发人员控制开发中的复杂性,有利于提高系统开发的效率和质量。,1.开发工具的类型(1)软件开发工具(2)软件维护工具(3)软件管理和支持工具,2.计算机辅助软件工程(CASE,ComputerAidedSoftwareEngineering)在软件工程活动中,软件工程师和管理人员按照软件工程的方法和原则,借助计算机及其软件工具,开发、维护、管理

6、软件产品的过程,称为计算机辅助软件工程。与信息系统相关的CASE工具库,如图5-2所示。,图5-2包括系统所有信息的CASE工具库,计算机辅助软件工程的主要目标是将软件工具集成在一起,使得一个工具产生的信息能够被其他工具所用,使各类软件开发方法能在分析、设计、实现及运行维护各阶段得以全面实施,以简化系统的开发工作,加快系统开发过程,提高并充分利用软件的可重用性,通过自动检查来提高软件的质量,使得系统开发人员能集中精力进行创造性的工作。CASE的集成机制主要有:数据集成一工具间可以交换数据;界面集成工具有相同的界面风格和交互方式;控制集成工具激活后能控制其他工具的操作;过程集成系统嵌入了有关软件

7、过程的知识,根据软件过程模型辅助用户启动各种软件开发活动;平台集成工具运行在相同的硬件操作系统下。,5.1.4工具,系统中开发使用的技术是一组方法,可以帮助开发人员完成系统的开发活动或任务。有些技术可以使用于整个软件生命周期的各个阶段。,在方法中,技术、模型和工具将有效的进行结合,如图5-3所示,方法包括系统开发过程中每一阶段活动的技术,这些活动包括完成各种模型及相应的文档和资料,而系统开发人员使用软件工具来帮助完成这些活动。,图5-3方法中各个技术、模型和工具之间的关系,5.2软件生存期模型,软件产品的开发同其它一般工业产品的开发一样,需经历若干开发阶段,软件产品的生产过程也要经过分析、设计

8、、制造、检测和运行使用等几个阶段。一个软件从计划开发到废弃不用的整个过程被称为软件的生存期,一般包括计划、开发和运行等时期。,目前,已提出多种软件生存期模型,软件生存期在很大程度上反映了信息系统的生存周期,不同的软件生存期模型是针对不同性质和规模的系统分别规定了不同的工程化活动,如瀑布模型、快速原型模型、操作模型和软件演进模型、迭代模型等。,5.2.1瀑布模型,瀑布模型是最早的软件开发模型,该模型由于酷似瀑布而得名。在该模型中,包括三个阶段,即计划阶段、开发阶段和维护阶段,每一阶段又再细化为若干个阶段。瀑布模型和各阶段对应的需提交的文档,如图5-4所示。,图5-4瀑布模型,5.2.2快速原型模

9、型,由于在项目初始阶段人们对软件的需求认识常常不够清晰,因此需要试验性开发,其目标是在于探索可行性,弄清楚软件需求:并在此基础上获得较满意的软件产品,再进行原型设计等。通常把试验性产品称为原型。典型的快速原型模型是需求和设计之间进行迭代设计的。从模糊的需求到初始的原型,经过对原型的更改,得到清晰的需求,最后逐步演化为最终的产品。典型的快速原型模型如图5-5所示。,图5-5快速原型模型,5.2.3螺旋模型,螺旋模型将瀑布模型与演化模型结合起来,并且增加风险分析这一环节,如图5-6所示。在直角坐标上分别表达了四个象限上的活动,即:制定计划、风险分析、工程实施、客户评价。沿螺旋线自内向外每旋转一圈便

10、开发出更为完善的一个新的软件版本。,图5-6将瀑布模型与演化模型结合起来的螺旋模型,5.2.4喷泉模型,喷泉模型是一类支持面向对象的、自底向上的开发模型,在实施中体现了迭代和无间隙的特征,其过程如图5-7所示。它在实施中,对系统的某个部分常常重复迭代,相关的功能在迭代中逐步地演化到系统中,并且能体现无间隙特征,即与瀑布模型相比,其分析、设计和编码之间没有明显的界限。喷泉模型是以用户需求为动力,以对象为驱动模型,适合于面向对象开发方法。,图5-7喷泉模型,5.2.5开发模型的比较,5.3结构化方法,结构化编程、结构化设计和结构化分析是组成系统结构化开发方法的三种技术,我们可把这三种技术统称为结构

11、化分析与设计技术。,5.3.1结构化分析,结构化分析技术使帮助开发人员定义系统需要做什么、系统需要存储和使用哪些数据、需要什么样的输入和输出以及如何将系统的各种功能结合在一起完成既定的任务。在结构化分析中,常常通过多种图形工具来表示系统的需求,主要有:,1数据流图(DFD,DataFlowDiagram),2.实体-关系图(D-R,EntityRelationshipDiagram),5.3.2结构化设计,结构化设计是用于描述程序集中各个程序应实现的功能和这些程序间的层次关系。在结构化设计中常常通过结构图这种图形模型来显示程序模块的层次关系。,1.结构化设计的基本原则结构化设计的基本原则是程序

12、模块应该设计成松耦合与高内聚。,2.数据库设计、用户界面设计与结构化设计由于目前大多软件项目中,一方面都涉及到使用数据库管理系统,程序模块需和数据库进行交互;另一方面越来越多的非技术人员参与系统的设计和应用中,用户界面的设计也逐渐重要起来,因此,数据库设计、用户界面设计与结构化设计常常是一起完成的。,5.3.3结构化编程,也称结构化程序设计,是采用自顶向下、逐步求精的思想并利用顺序、选择和循环三种基本结构来构筑程序,使得设计的程序只有一个入口一个出口。顺序、选择和循环三种基本结构,采用结构化编程技术,可把复杂的程序分解为简单的程序模块层次图,使程序结构呈现出清晰的层次和控制方式,易于阅读和理解

13、,提高了程序的可维护性。模块层次图如图5-12所示,上层程序模块通过“调用”底层程序模块来控制程序的执行。其中,这里的程序模块也可称为程序段或过程。,图5-12自顶向下的模块化程序设计,5.3.4结构化分析、结构化设计和结构化编程的联系,图5-13从结构化分析、结构化涉及到结构化编程,5.4面向对象方法,面向对象的方法由面向对象分析(Object-OrientedAnalysis)、面向对象设计(Object-OrientedDesign)、面向对象程序设计(Object-OrientedProgramming)等组成,其开发过程如图5-14所示。在面向对象方法中的概念和表示符号,可以适用于软

14、件开发的整个过程。在面向对象方法中,软件开发阶段的划分是比较模糊的,通常要在分析、设计与实现等阶段间进行多次迭代。,图5-14面向对象方法的开发过程,5.3.1面向对象分析,OOA(Object-OrientedAnalysis,面向对象分析)是软件开发过程中分析并综合用户需求,建立问题域精确模型的过程。Rumbaugh等人提出对象模型技术,它把分析时收集的信息构造在3类模型中,即对象模型、功能模型和动态模型。图5-15给出了这3个模型的建立次序。,图5-15在分析阶段的3个模型之间的关系,5.4.2面向对象设计,定义系统中所有类型的对象(包括在面向对象分析中没有定义的用于通信所必需的其它对象

15、类型),并对每一种类型的对象进行细化,以便可以使用一种具体语言或环境来实现这些对象。OOD的活动如下:,1设计问题域组件,2.设计人机交互组件,3设计任务管理组件,4设计数据管理组件,5.4.3面向对象编程,在面向对象编程中,程序被看作是相互协作的对象集合,每个对象都是某个类的实例,所有的类构成一个通过继承关系相联系的层次结构。面向对象的语言常常具有以下特征:对象生成功能、消息传递机制、类和遗传机制。在面向对象语言中,它们以一种独特方式互相协作、互相补充。,1类、对象和消息把具有相同结构和相同行为的对象进行组合、再次抽象成一种类型,称此类型为类。而任何单个对象都是某个类的实例,这些实例具有由它

16、们的类定义的共同特征。消息是对象之间进行联系的一种方式,对象的存取和使用都是通过消息的发送来实现的,而向某个对象发送消息,就是要求其执行它的一个操作。消息与对象间的关系如图5-16所示。,图5-16消息是对象之间的唯一联系方式,2封装、继承与多态性封装是面向对象的一个的基本特点。封装是指将对象的属性和方法进行所谓的包装,使该对象具有信息的隐蔽能力,即外界不能直接修改对象的状态,只能通过向它发送消息对它产生影响。对象隐蔽了其数据及操作的具体实现,对外可见的只是对象提供的消息接口。继承是从一个己存在的类(基类)派生出一个新生类(派生类)的功能,派生类继承了基类的所有变量和函数(私有型变量和函数除外

17、),用户通过在派生类中添加一些新的数据成员和函数,可得到一个功能更为强大的类。图5-17反映了类的层次结构,最顶端的类是基类,是所有类的始祖。一个类可以有多个子类,也可以没有子类,但它必须有一个父类(基类除外)。,图5-17类的层次结构,3多态性多态性是指当不同的对象收到相同的消息时,产生不同的动作。这里的消息可为函数名或事件名,也就是说多态性允许使用相同的名称来定义不同的函数,这些函数执行类似的但又不相同的操作。我们可通过相同的接口来访问功能不同的函数,从而实现“一个接口,多种方法”。例如,函数重载(同一函数名有着不同的参数和返回值)可使程序设计人员在只知道一般含义而不知道操作的具体细节的情

18、况下,仍能够正确的完成有关操作。,5.4.4面向对象技术的特点,采用面向对象方法来分析和解决问题,既是将客观世界的具体事物、事件、抽象的概念及规则等称为对象,并以此作为我们研究的基本元素和分析问题、解决问题的核心。面向对象的技术有以下主要优点:(1)模块性(2)封装功能(3)代码共享(4)灵活性(5)易维护性,小结,本章主要对数据库应用系统开发中涉及的有关概念、方法和工具进行简单的介绍。开发方法为系统开发的每一步骤提供指导,包括具体的模型、工具和技术;模型是对现实世界的描述,模型有助于我们理解和明确要解决的问题,并确定问题的解决方案;在软件系统开发的各个阶段中都存在各种各样的软件工具,工具的应用可帮助开发人员控制开发中的复杂性,有利于提高系统开发的效率和质量。软件从计划开发到废弃不用的整个过程被称为软件的生存期,软件生存期模型也称为软件开发模型。目前,已提出多种软件生存期模型,如瀑布模型、快速原型模型、螺旋模型、操作模型和喷泉模型等。在实际项目的开发上,可根据项目的特点选取相

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论