摘要:目前大部分的公司开发软件都不规范,开发步骤混乱。究其原因,大致可以分为两方面,一方面是客户的需求简单,公司不需要正常的软件开发步骤就可以实现,另一个方面就是公司开发软件没有规范,凭感觉开发软件,因此便会出现每天有很多的软件公司成立,同时也有许多的软件公司关门大吉的现象。针对后一个问题,笔者再次讨论规范的数据库软件开发的前3个步骤。
       下面简要概述一下数据库软件开发的周期:数据库软件开发的周期主要包括:数据库规划,系统定义,需求的收集和分析,数据库设计(逻辑设计和物理设计)同时伴随着应用程序设计,实现,数据转换和加载,测试,操作性维护。在本篇文章中主要介绍前3个步骤,即数据库规划,系统定义和需求收集与分析。这三个步骤之间是一次进行的,他们之间不会有循环重复出现,因此可以作为一个整体来介绍。
       第一步:数据库规划:尽可能有效的实现数据库应用的各阶段的管理活动。创建数据库工程的起点是数据库系统的任务陈述和任务目标。任务陈述定义了数据库系统的主要目标,每个任务目标标示了数据库必须支持的特定任务。在数据库的规划过程中必然包含对工作量的估计,使用的资源和需要的经费,因此在数据库规划之后一个项目的报价大致也就出来了。规划数据库之前需要使用事实发现技术来获得数据库的整体需求,事实发现技术包括查阅资料,面谈,调查等多种方式。在本例子中,客户请人写了数据库应用程序的需求说明,因此在阅读需求说明的同时便可以获得数据库设计需要的大部分信息。最终得出的任务陈述是:
**公司电子商务数据库系统的目的是收集、存储、发布和控制公司以及会员产生的数据,支持面向用户的网上订单业务,协调电子商务系统和ERP系统的数据整合。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

仔细的阅读需求说明的过程中得到了任务目标:

1. 维护(注册、更新和删除)会员数据

2. 维护(录入、更新和删除)产品数据

3. 维护(录入、更新和删除)客户讯价数据

4. 维护(录入、更新和删除)供应商报价数据

5. 维护(录入、更新和删除)会员对账单数据

6. 维护(录入、更新和删除)合同发货通知单数据

7. 维护(录入、更新和删除)用户投诉数据

8. 维护(录入、更新和删除)电子支付数据

9. 维护(录入、更新和删除)业务员的任务指标数据

10.   

38.    跟踪供应商采购应付账款对帐情况

39.    实现对垃圾数据的查询

任务目标还需要进一步的调整,在和客户的工作人员多次交流和确认之后,第一步工作总算完成了大概。在软件正式进入设计阶段,有可能还会回过头来重新调整任务目标。这个过程不是一次就能成功的,但是根据这个任务目标,一个软件的大致开发费用也就有了计算的依据。
      
第二步:系统定义,系统定义的目的是确定数据库应用的范围和边界以及他的主要用户的视图。一个用户视图代表了数据库应用必须支持的由一个特殊的工作角色或者业务范围所定义的需求。程序边界描述了系统中的实体之间相互关系的粗略向导,他没有详细的描述每一个可能发生的事件。定义程序边界可以参考前面第一步得到的结果,或者查看文档。下面是程序边界的概要描述。
对收集到的数据进行分析,以便于定义主要的用户视图,用户视图的定义主要靠于不同角色的人谈话中得到。比如得到的普通用户的视图:
普通用户视图
1.   实现所有的元件产品和价格的查询

2.   实现所有成套产品的查询

3.   维护个人的注册信息

4.   维护成套产品的讯价单

5.   维护个人订单

6.  维护个人投诉信息

7.   跟踪个人对账单数据

8.  实现发货合同查询

9.  跟踪个人订单

当然还有其他的几个视图,供应商,业务员管理员,在次不一一显示。

 

       第三步是需求的收集和分析:收集和分析数据库所支持的公司信息,并使用这些信息来标示新的数据库系统需求的过程。用户的需求说明详细描述了数据库中应该包含的数据以及数据的使用方式。在收集更多的用户视图相关的数据的同时,也应该收集系统的一般需求,收集信息的目的是产生系统的需求说明。系统需求说明描述了新的数据库应用中所要包含的各种特性,如网络需求,共享访问需求,效率需求以及安全级别需求。首先是管理数据库系统的用户视图:使用集中式方法或者使用视图集成式方法或者两者的综合,合并相同的视图,减少冗余。在这一步骤中需要明确数据需求,比如员工包含的信息:用户名,登陆密码,姓名,性别,出生日期,×××号码,常用电话,手机,E_mail,注册日期

数据库系统的事务需求,可以查看第一步产生的文档,比如分为数据录入,数据更新/删除,数据查询等事务。
最后需要明确的是系统说明,主要包括:初始化数据库大小,数据增长速度等。

结论:数据库开发的前三个步骤会在后面的开发中被重复,数据库规划是系统定义和需求收集和分析的前提条件,因此做好数据库规划可以为以后的开发节省费用,也是系统能否成功开发和实施的关键。