首页 百科知识 数据库的生存周期

数据库的生存周期

时间:2022-10-09 百科知识 版权反馈
【摘要】:软件生存周期是软件工程与方法学最基础的概念。软件工程的方法、工具和管理都是以软件生存周期为基础的活动。软件工程强调的是实用软件生存周期方法学和使用成熟的技术和方法来开发软件。通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。在了解了通常软件开发的整个生存周期之后,考虑一个数据库的特定生存周期,相对于一般的软件模型,数据库有它自己特定的活动:设计:概念模型被限定。

9.1 数据库的生存周期

软件生存周期(Software Life Cycle)是软件工程与方法学最基础的概念。软件工程的方法、工具和管理都是以软件生存周期为基础的活动。软件工程强调的是实用软件生存周期方法学和使用成熟的技术和方法来开发软件。

有许多模型提供各种不同的方法来表示(图形化或其他的)软件的生存周期。最典型的软件生存周期模型是瀑布模型。还有其他模型存在,例如螺旋模型。首先,看一个最基本的软件生存周期的描述。它是一个简单的瀑布模型,如图9-1所示。

img154

图9-1 软件生存周期的瀑布模型

这个模型是所有软件开发的基线。现在简要地介绍每个阶段。

9.1.1 分析阶段

分析阶段的主要任务是需求分析,确定软件的具体功能与性能要求,通常也称为需求分析。

这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,主要是确定目标系统必须具备哪些功能。用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样使用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此系统分析员在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。

9.1.2 设计阶段

设计阶段的目标是设计软件的结构、算法和实现方案,为软件编码提供设计依据和算法。

设计阶段主要包括算法设计,也包括输入/输出考虑;如果是交互式的程序,还有格式化和显示考虑;或者如果程序是用于科学方面的,还有精度问题。无设计的编码等同于元计划的长途旅行。任何情况下,在设计阶段所做的许多重要选择不仅影响功能和显示,而且还会影响纯粹的执行。毫无疑问,数据结构和算法的正确选择会导致或打断该程序的后续执行。

9.1.3 实现阶段

这个阶段的关键任务是写出正确的容易理解、容易维护的程序模块。程序员应该根据目标系统的性质和实际环境,选取一种适当的高级程序设计语言(必要时用汇编语言),把说细设计的结果翻译成用选定的语言书写的程序,并且仔细测试编写出的每一个模块。

实现阶段主要是程序或系统的编码。在有了正确选择的数据结构、算法和其他类似的构建块后,就能够用所选择的语言开始编程。在编程本身,也有许多选择要做。例如,哪种控制流能最好地实现一个特定算法?另外,在这个阶段,也能够进行隐含或明确选择,如对存储的速度(反之示然)进行选择。这时,软件开发实际上经常受到理论上的约束。例如,或许必须使用某种类型的程序接口,不是因为它们在某种程度上更好或者更快,而是由于它们被用一种或另一种方法标准化了。当然,实现还应该说包括其他阶段,通常所指的是测试和展开。

1.测试阶段

软件测试(Software Testing)是发现软件中错误和缺陷的主要手段。在一般情况下,测试阶段与整个软件开发阶段基本上是平行进行的。测试计划早在需求分析阶段即应开始制定。其他相关工作,包括测试大纲的制定、测试数据的生成、测试工具的选择和开发等也应在测试阶段之前进行。充分的准备工作可以有效地克服测试的盲目性,缩短测试周期,提高测试效率,并且起到测试文档与开发文档互查的作用。

2.展开阶段

展开阶段发生在系统通过它的所有测试阶段之后,并准备在它的所有终端系统、客户和服务器展开或安装时。安装所有支持的硬件和软件过程,当然也包括应用软件自身的运行形式都有关于展开的问题。根据合约声明,一旦每件事情被展开,它可能要进行简单的再测试,然后经过一些事务阶段,有效地“移交”给负责的用户(如果在合同中该项目是外协的,有可能要提供一些现场的应用软件支持)。展开完成后,产品进入维护阶段。

9.1.4 维护阶段

维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。

通常有四类维护活动:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;

适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的要求改进或扩充软件使它更完善;预防性维护,即修改软件为将来的维护活动预先做准备。

虽然没有把维护阶段进一步划分成更小的阶段,但是实际上每一项维护活动都应该经过提出维护要求(或报告问题),分析维护要求,提出维护方案,审批维护方案,确定维护计划,修改软件设计,修改程序,测试程序,复查验收等一系列步骤,因此实质上是经历了一次压缩和简化了的软件定义和开发的全过程。

维护阶段是许多软件的生存周期中最长的部分,估计许多软件在维护阶段的时间占70%或更多。因此,仅就此而言,这可能是最重要的阶段,因为在软件开发中的错误决定能够削减软件某方面的正确功能。

这里的决定包括许多与“开放”系统有关的问题,例如,可移植性和互操作能力,它会可能影响软件长期的生活中的一部分。维护也涉及许多系统集成问题,例如替换过时的现有硬件和软件组件,由于各种因素,随时间删除某些其他组件,并引入一些新的组件。由于各种原因,正如想象的一样,涉及的部分越多,集成可能变得越复杂,因为涉及许多部分之间的相互作用。

在执行阶段,当预测什么是想要的行为时,标准化的接口变得更加重要。关于系统集成,有条原则“移动的部分越多,就越有可能发生问题(和失败)”。集成问题背后的原因之一是异质性,也就是,如果许多或所有不同组件来自于不同厂商,无缝集成(也就是没有任何不兼容性)的概率是很小的。

在了解了通常软件开发的整个生存周期之后,考虑一个数据库的特定生存周期,相对于一般的软件模型,数据库有它自己特定的活动:

(1)分析:概念模型(或业务模型)开始成形。

(2)设计:概念模型被限定。逻辑设计包括将概念模型初步映射为关系模型和实体关系图(ERD)。执行规范化。然后规划物理设计。同样地,只要逻辑设计一完成,数据库的前端和后端程序设计便能够开始。

(3)实现:对一个数据库系统,这个阶段是通常所说的建立,就是用数据库语言(DDL)建立数据库结构;如果初始装载是适当的(与超时装载相对),装载就是用数据库操纵语言(DML)或厂商的应用工具最初将数据装载到数据库中。同时,对一个数据库系统,程序的编码能够从设计阶段开始或连续。

(4)测试:在数据库创建和装载之后,程序被写入,全部进行测试,进行单元和整体测试。

(5)展开:在许多现代系统中,展开意思是在PC(客户)和服务器(Web服务器和数据库服务器)上安装软件。

(6)维护:这与其他软件系统没有任何不同,除了它是更多地属于以数据为中心的软件而不是以进程为中心的软件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈