软件工程项目中数据库的作用以及敏捷开发

在设计软件的时候,必须明确把握数据库在软件中的作用,这样才能做到有的放矢。本人认为数据库的作用除了做数据的存储持久化作用之外便没有其他的作用。之所以需要数据库就是因为软件中的前端表示层、服务层以及业务逻辑层都必须是无状态的,这就要求软件中有一个组件来保存应用程序的状态。那么这个职责就由数据库来承担。

 

在以前的软件开发过程中,往往没有把握数据库的核心作用,而且以前的开发范式(先是设计数据库,然后加上简单的业务逻辑,最后再设计程序的界面层等),这样的范式往往会导致把所有的精力和重点都放在了数据库的设计上,最终导致会把一些业务逻辑放在数据库里面,大家知道数据库是一个物理设计,从大型软件的Schema来看,设计好了之后往往是不能更改了而且也便于修改(虽然有这种改变Schema的方法,但是修改Schema对于不同用户不同版本的维护难度太大,所以基本上是不修改的)。

 

在采用面向对象的设计方法以后的开发范式就不能先设计数据库,而是首先分析业务逻辑,建立业务逻辑模型,然后再设计业务层。最后再考虑数据存储方案。这样的开发范式就不断应对需求的变化,你想业务逻辑在采用了设计模式的方法之后,是灵活的,可以应对需求的不断变化。而数据库不能有效应对需求的变化。

 

前面提到的范式就是我们的思维方式,拿我们中文和英文来作为例子吧。英文的思维方式和中文有明显的不同。

中文的语句是主语+修饰+谓语+宾语等,而英文的语句是主语+谓语+修饰+宾语。当然这里的语句范式不是绝对的。也许是这种思维范式的不同导致我们在学习英语的过程中障碍重重。所以大家会发现在阅读了大量的英文书籍以后,大家在看中文会感觉中文语句会怪怪的,甚者以后都写不好中文。至少我现在就有这样的感觉。所以范式实际上是一个思维方式。

 

 在以前采用数据库优先的开发范式中,我们在后期需要向面向对象的范式转换。而现在所提倡的敏捷开发只是一种软件项目管理方法。目标是以最快的速度,最少的成本来实现满足用户需求的软件。而在具体的软件设计开发阶段就必须采用面向对象的分析、设计、开发等的方式进行具体的软件开发。也就是敏捷开发方式主要用户为项目管理人员,然后项目管理人员希望我们采用敏捷实践来指导我们的开发工作任务。而面向对象是我们程序员的必须要掌握的一项武功心法。

 

posted @ 2010-05-31 09:59  richardzeng  阅读(1732)  评论(0编辑  收藏  举报