UML软件的设计全过程解析

开发 架构
在学习UML的过程中,你可能会遇到UML软件的问题,不知道你是否熟悉,这里就向大家介绍一下基于UML软件的设计全过程,希望通过本文的介绍,你对UML相关内容有一定的了解。

本节向大家介绍一下基于UML软件的设计全过程,主要介绍一下手机模拟界面的设计过程,相信通过本节的介绍你对UML软件设计有一定的认识。

基于UML软件的设计全过程

前段时间把一个界面框架完成了,今天基于这个框架开发一个小模块,在这里把这个模块设计的全过程记录下来,希望大家讨论并指正。

  起因

  公司交给我一个任务,为测试员写一个手机模拟界面,以方便她们的手机短信测试。过去她们都是用MC4J直接调用公司服务器的MBean服务来模拟进行测试,以验证我们整个系统平台。这种测试主要是检查收发短信是否正常,而我的要做的工作就是,让她们在测试的时候更方便更直观。

  需求

  我和测试员陈MM(也就是软件的使用者)约定了一个时间,大家一起来讨论这个UML软件的需求。

  1.首先,我大概了解了一下她们的测试工作,知道我要做个什么东东。

  2.然后我回去思考了一下,再次找她详细了解其测试的具体步骤,并在一张白纸上以UML用例图的方式,记录下需求的功能。用例是什么?用例就是需求,就是你的软件应该具有的功能,当然用例图只是概括性的对功能进行了描述。

  3.最后,我坐在我的电脑前开始用MagicDrawUML来画用例图(我不喜欢用Rose,那玩意太笨重了,界面友好性也不好)。在画用例图的时候,我发现了一些隐含的功能,这些是陈MM在和我做需求时没有考虑到的(注:开发者应该为用户挖掘隐含需求)。我和陈MM一一确定了这些我新发现的需求,最后得到如下的用例图。

  a.手机前台测试操作的用例图

 

 

 

  b.后台管理

 

  界面设计

  接下来是UML软件界面设计。既然是手机模拟,我很自然就拿我的motorola手机的操作界面来做参考。不过这里应该注意到,手机操作环境和电脑操作环境不尽相同(比如说电脑有鼠标,还有键盘可以输入文字),所以没有必要唯妙唯肖的完全模枋,还是以使用者操作方便为主。

  界面设计是很重要的一步,不要一上来就写程序,一定要先做到心中有个大概,否则返工的可能性就很大。而且,把界面拿出来给客户看,客户也就能做到心中有数,还能尽早提出一些新需求和意见来。千万不要等到软件做完了再拿给客户看,到时客户看了如果要修改,那就做太多白费工了。
  由于软件界面相对简单,陈MM基本没有提修改意见,但这不是个好兆头。不过极限编程就是要拥抱变化不是^_^。咱不怕她改,只要大致的界面她能定下来就行了。
  界面我喜欢用Visio来画,当然也听说有人喜欢用VB来快速构建界面原型的,看个人喜好了。整个界面如下:

  这个是后台管理界面

  类图

  类图反映了软件的数据模型。在设计数据模型,我参考了界面设计图和用例图,找出一个个的类。然后参照用例图的一个个功能,设计出了各类的属性和方法。设计初始的类图当然不可能很详细,但至少应该看到个大概。有错误不要紧,后期可以慢慢修正,但大体关系就算定下来了。  Neil(公司CTO,一个40岁左右的真正的资深程序员)说:看一个UML软件的设计主要看两个类:类图和时序图。类图确定了软件数据模型的静态关型,时序图则是数据模型的动态关系。  类图如下,看英文大致可以知道类/属性/方法的含义和作用了,就不一一介绍了。

  时序图

  时序图是本文最后一个图,时序图表明了用例图中各功能的实现方案,同时也反应了类图中各类的交互关系。以后程序的逻辑和时序图基本一致。不过,有些人会去画得很详细的时序图,详细到都快赶上伪代码级别了,我觉得这没必要。我把时序图看做反映自己思路的大概过程,所以也就画个大概。

  我认为时序图要简洁易懂,这样以后你的后继维护者,拿到这个UML软件的时序图(当然也包括用例图、类图),就能明白你的大概设计思路。另外,画时序图也能整理自己的思路,同时还可以对类图的设计进行验证。在画这个时序图的过程中,我就纠正了在类图中的几处考虑不周的地方。

  总结:时序图可以(1)整理思路(2)验证类的设计(3)是很好的软件文档,对维护者理解代码很有帮助。
  这里仅给出其中几个时序图(实际上我也没有把用例都画完,有些类似的简单的,就忽略了)
  a.新增一个手机号码
  b.关机
  c.开机
  d.发送短信
  到这里设计阶段就完成了,用时一天。下一步是编码,将应用TDD先写测试代码的方式来写代码,下次再介绍了。

【编辑推荐】

  1. UML建模语言的基本概念专家讲解
  2. 教你绘制整洁的UML图
  3. 如何绘制UML用例图
  4. UML状态图及其组成元素简介
  5. UML用例图用法实例剖析

 

责任编辑:佚名 来源: tech.ddvip.com
相关推荐

2009-02-20 10:25:54

UML软件设计例程

2010-07-07 09:11:31

Eclipse UML

2011-04-18 15:56:10

软件测试

2009-06-10 16:55:42

cygwin netb安装

2010-02-22 13:38:50

Python解析器

2011-06-24 13:08:34

Qt Qt 4.5.3 移植

2009-12-15 16:51:32

2011-02-22 10:46:02

Samba配置

2009-04-13 12:37:18

2011-09-06 15:38:20

QT安装

2011-01-21 17:51:52

2009-12-08 17:56:16

WCF配置

2017-04-25 18:03:11

Caffe深度学习框架

2010-06-12 10:03:20

Ubuntu Grub

2019-05-14 15:27:31

MongoDB自动备份数据库

2010-07-21 14:51:19

telnet-serv

2011-03-11 10:39:02

YUM安装LAMP

2010-03-01 17:01:03

Python编程技巧

2012-11-06 10:19:18

Java自定义加载Java类

2010-03-10 13:24:45

Zend Debugg
点赞
收藏

51CTO技术栈公众号