构建App范式,用例驱动开发

    这篇文章是在2014年写得,现在来看有诸多漏洞,但是本着发展的眼光,决定一字不改。

前段时间,确切说是整个11月全程参与了公司在北京的封闭开发,期间有点收获在这里贴出来,相互努力。

Android两年多了,对java的认识也是与日俱增,这次封闭开发,技术上没有什么难度,重点是对软件工程的一个系统学习过程。这次去北京,我们团队一分为二,一半留下来维护手上的项目,另一半由我带领配合北京产品经理重头来做一个新的项目。

总体来说,用例图如下,这里只是简单举例

        小鸡

这次项目希望采用用例驱动来开发,对于用例驱动开发,之前接触过但是没有付诸实践。所谓用例驱动开发,细节大家可以去看“java编程思想第三版”,就是面向对象编程的一种方法论。自从java推广以来,如何去构建一个项目,据此产生了许多方法论,用例驱动开发正是其中一种。其实我们在日常项目开发中都有自己的一套方法而已,有些简单有些复杂,但目的只有一个那就是完成项目。而用例驱动开发简单来说分为以下几个步骤:


1 找用例
2 用例分析
3 程序实现

4 迭代维护


计划入口?

面对一个新的项目,我想任何一个参与者都会有一个初步的计划,如何开展这个项目,这个计划有些可能颇为复杂,有些人认为自己根本不需要什么计划直接实现代码就可以了,其实直接实现代码也是一种计划,这个计划就是这个项目的切入口。

用例分析

有了计划以后,就要对即将开展的项目有个认识,比如这个项目的核心任务是什么,之前做项目,都是拿到产品原型后,部门开会根据产品原型讨论需求,之后就开始写代码了。这样做不是不好,事实上大多数产品就是这么做出来的。但是这样做可能存在几个问题,开发对项目缺少整体的认知,后期不便于版本迭代。用例驱动开发可以有效弥补这些问题,用例开发的第一步找用例,就是针对项目核心任务的思考提问,可以通过UML中的用例图来展开,主要角色有参与者,系统,以及影响者。通过这个过程,大家可以对项目的核心任务有个全局的认识,并且这个过程大家都可以参与其中。找用例不需要前期就找到所有的,事实上这也很难做到,这需要我们把握一个度,找到合适的用例而后就可以进入到下个阶段了。

程序依赖用例

这个阶段我们就可以对每个用例进行分析了,这个分析“java编程思想”作者主张通过CRC(类名-类作用-外围类)卡片使得整个团队参与其中,明确那个类做什么,与其他类如何通信,最终完成用例分析。水到渠成的结果是程序员已经有其详细的类信息了,剩下的只是去实现它。我们这次在北京封闭的方式与其类似,但是没有用到CRC卡,用的还是UML工具,团队分析展开这个实例,通过分析就会产生好几个场景。总的来说用例就是场景的集合而已。这个过程走完以后,我对项目的脉络有了大概的了解,虽然没有去讨论类信息,但是骨架已经定下来了。

类设计,这个阶段实现是在编写代码前实现的,没有用CRC技术,也许这个还不是很系统化,用的方式还是之前的方式,这个需要在后面的学习中补足。实现代码,这个其实没有什么讲的。在这里主要说下这个实现代码,完全是按照用例图去做,条理性很强,而且每个用例是解耦的,便于后期的版本迭代。总之好处是不言自明的。

全程的迭代?

后面的白盒测试以及黑盒测试,基本上都是围绕用例图展开的。从分析设计到开发实现以及后期维护,用例图都贯穿其中。比之前我们所有的构建项目的方法,用例驱动开发有着特有的优势,它可以让参与者深刻的理解项目核心,并在整个过程中指导他们,全程测试不为过!


这次封闭开发,我们的新项目不是很大,也许还没有真正的应用到用例驱动开发的精髓,也许没有发现用例驱动开发的边界所在。但不管怎样,认识它,学习它,我想对我们的日常工作还是非常有帮助的。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
某城市已经在各条道路上安装了空气温度、空气湿度、pm2.5、CO2 、光照、道路状态等传感器。部分小车安装了ETC和速度传感器,能够获得这些小车的数度和对其ETC金额进行管理。各传感数据已经汇总在服务器系统。 假设各传感器和ETC账户最小、最大阈值已由管理员设置如下: 环境指标 最小值 最大值 备注 空气温度: 10 40 空气湿度: 50 150 pm2.5 500 5000 CO2 100 600 光照 0 100 道路状态: 1 5 ETC账户余额 100 5000 现要求开发一套移动APP实现如下功能: 1、用户登录注册模块的功能 对用户账号的合法性进行判断,合法的用户允许使用智能交通系统,不合法的用户则禁止使用该系统。用户登陆注册模块能够完成用户注册、自动登录和找回密码等功能。 2、实现系统的实时环境指标动态显示功能 图1 界面原型 1)、利用给定的资源,实现该界面原型的布局,参阅环境指标界面原型图。 2)、实现空气温度、空气湿度、pm2.5、CO2 、光照、道路状态(默认1号编号道路)实时数据显示功能。 注:数据实时刷新周期为 5秒。 3)、实现报警状态警示功能,正常状态背景为绿色,警告状态为红色。 4)、点击传感器的显示区域,可以进入对应的传感器“实时曲线显示”界面。 3 实现系统车辆账户充值、查询功能和限速功能 1)、在点击充值按钮时,先检测账户余额是否超过设置的阈值,如果超过阈值就不允许充值。 2)、如果用户充值的金额加上账户余额超过了账户余额的最大阈值就提示用户充值失败,并提示出本次可以充值的最大额度。 3)、设置小车速度阈值并且显示到页面。 4)、实时监测小车的速度一旦小车速度低于小车最低速度阈值,提示用户速度过慢。一旦小车速度超过最大速度阈值强制停止小车。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值