EA软件工程实例–简单留言本的构造过程
 

2009-12-07 来源:enterprisearchitect.cn

 

一、简单留言本

关于简单留言本的制作方法,请看:《[转]使用FleaPHP框架构建简单留言本应用》

本文也是结合该程序来讲述的,所以非常建议读者在看此文前先动手做一遍《[转]使用FleaPHP框架构建简单留言本应用》的例子

二、使用Enterprise.Architect.v6(以下简称EA)

EA是比较适合与PHPer的一个UML建模工具,至少,它可以生成PHP代码。而且在下面,大家可以看到用EA来开发FleaPHP框架的PHP应用是件愉快的事情。

三、开发简单留言本的过程

首先,我们来看看最终的项目结构图

可以看到我们有三个根模型:用例模型、数据模型、架构模型。我们主要的开发工作,其实就是完善三个根模型里面的东东。

第一步,我们做需求获取工作–用例图,完善用例模型。

我们需要想想,该程序使用的人是谁,

然后我们得出我们的程序的使用者–用Actor来显示

在本程序中,我们只有一个使用者,也就是我们的访问者。

先在用例图中方上一个小人符号(Actor)表示我们的主角(访问者)。

然后我们就想想,我们的主角打算怎么使用我们的程序呢?

然后我们就可以想到:主角(访问者)只有【访问留言页】和【增加留言】两个事情可以做。

那么,我们就放上【访问留言页】和【增加留言】两个用例,用>>use<<的箭头从主角指向两个用例,表示这是主角做的事情。

(这图中use箭头不明显,忘记了怎么把箭头调出来。呵呵。。。)

另外:大家可以发现,这也对应了我们FleaPHP的Controller里面的操作。

第二步,我们来建数据表,也就是完善数据模型。

用EA建数据表也是很方便的,也就是构造名为table的特殊类。

相当于,这个特殊类的属性,就是我们数据表的列名,它的方法,就是我们的表管理,或者primaryKey的表示。

我们完全可以把它当做phpMyAdmin里面的建表一样用。我们会发现其实它跟建一个普通类没有分别。

但是,我们的EA建表是很好处的哦:它可以直接生成建表的SQL语句。

第三步,我们导入FleaPHP本身的文件。

在根模型–构造模型上点右键,然后按照图中选择。再选择到我们的FLEA文件夹所在。导入就是了。我们就可以看到有一个FLEA的文件夹(包)在构造模型下了。里面有FLEA的所有类。

(题外话:EAv6在导入FLEAPHP1.07的带例子那个版本好像导入不完整,有提示出错。导入runtime的那版本,可以导入完整,但是也提示有错。)

第四步,我们根据用例图,写Controller_Default类的内容

其实就是填写好Controller_Default类的所有方法和属性。

而且Controller_Default类都是继承FLEA_Contrller_Action的,

我们把FLEA_Contrller_Action类从已经导入的FLEA文件夹中直接拉到Contrller包的类图里。

让我们的Controller_Default可以继承它。

另外,上图中,在Controller_Default的一些方法里,我们可以先初始化一些代码进去–老实说,这样做,我们都不用再写其他代码了。。

如果是其他的项目,我们需要继续完成其他的Controller类的方法和属性。本例就只有一个。

第五步,我们根据数据表图,写Model_GB的内容,也就是填写好Model_GB的属性和方法

FleaPHP的方便在这里就可以看到了:每一张数据表对应一个Model类(好好体会哦!)。

我们可以非常简单按照这个思路来设计。

而且同样,我们也在tableName和primaryKey两个属性里,写上我们的初始化代码,那么最后生成的Model类PHP文件,根本就不用再写代码了。

第六步,我们可以开始做系统了。

先由数据模型生成SQL建表语句,然后再导入到phpMyAdmin就行。

效果是:

第七步,我们生成Controller_Default代码,

请注意路径和文件名(那个文件名是Default.php,里面的类名是Controller_Default)

效果是:

我们很高兴发现,基本上在Controller_Default里面要写的都写好了。

我们只要改require_once成Flea的LoadClass就可以。

也就是按照FleaPHP就一些方式去改一点点就OK了。

第八步,我们生成Model_GB代码

也要注意路径和文件名(文件名是GB.php,里面的类名是Model_GB)

效果是:

同Controller_Default,我们的Model_GB也要小改一下,然后我们的Model_GB也可以了。

到这里,整个留言本应用,基本上已经差不多了。

另外看看,我们生成的代码,也可以直接到EA里面去编辑。那会更方便。

编辑Controller_Default代码

编辑Model_GB代码

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。

资源网站: UML软件工程组织