文/陈刚 at 2006年4月12日 from
www.ChenGang.com.cn前段时间把一个界面框架完成了,今天基于这个框架开发一个小模块,在这里把这个模块设计的全过程记录下来,希望大家讨论并指正。
一、起因
公司交给我一个任务,为测试员写一个手机模拟界面,以方便她们的手机短信测试。过去她们都是用MC4J直接调用公司服务器的MBean服务来模拟进行测试,以验证我们整个系统平台。这种测试主要是检查收发短信是否正常,而我的要做的工作就是,让她们在测试的时候更方便更直观。
二、需求
我和测试员陈MM(也就是软件的使用者)约定了一个时间,大家一起来讨论这个软件的需求。
1、首先,我大概了解了一下她们的测试工作,知道我要做个什么东东。
2、然后我回去思考了一下,再次找她详细了解其测试的具体步骤,并在一张
白纸上以UML用例图的方式,记录下需求的功能。
用例是什么?用例就是需求,就是你的软件应该具有的功能,当然用例图只是概括性的对功能进行了描述。
3、最后,我坐在我的电脑前开始用MagicDraw UML来画用例图(我不喜欢用Rose,那玩意太笨重了,界面友好性也不好)。在画用例图的时候,我发现了一些隐含的功能,这些是陈MM在和我做需求时没有考虑到的
(注:开发者应该为用户挖掘隐含需求)。我和陈MM一一确定了这些我新发现的需求,最后得到如下的用例图。
(1)手机前台测试操作的用例图(说明:include是指某用例
包含(include)子用例)
(2)后台管理
三、界面设计
接下来是界面设计。既然是手机模拟,我很自然就拿我的motorola手机的操作界面来做参考。不过这里应该注意到,手机操作环境和电脑操作环境不尽相同(比如说电脑有鼠标,还有键盘可以输入文字),所以没有必要唯妙唯肖的完全模枋,还是以使用者操作方便为主。
界面设计是很重要的一步,不要一上来就写程序,一定要先做到心中有个大概,否则返工的可能性就很大。而且,把界面拿出来给客户看,客户也就能做到心中有数,还能尽早提出一些新需求和意见来。千万不要等到软件做完了再拿给客户看,到时客户看了如果要修改,那就做太多白费工了。
由于软件界面相对简单,陈MM基本没有提修改意见,但这不是个好兆头。不过极限编程就是要拥抱变化不是^_^。咱不怕她改,只要大致的界面她能定下来就行了。
界面我喜欢用Visio来画,当然也听说有人喜欢用VB来快速构建界面原型的,看个人喜好了。整个界面如下:
这个是后台管理界面
四、类图
类图反映了软件的数据模型。在设计数据模型,我参考了界面设计图和用例图,找出一个个的类。然后参照用例图的一个个功能,设计出了各类的属性和方法。设计初始的类图当然不可能很详细,但至少应该看到个大概。有错误不要紧,后期可以慢慢修正,但大体关系就算定下来了。
Neil(公司CTO,一个40岁左右的真正的资深程序员)说:看一个软件的设计主要看两个类:类图和时序图。类图确定了软件数据模型的静态关型,时序图则是数据模型的动态关系。类图如下,看英文大致可以知道类/属性/方法的含义和作用了,就不一一介绍了。
五、时序图
时序图是本文最后一个图,时序图表明了
用例图中各功能的实现方案,同时也反应了
类图中各类的交互关系。以后程序的逻辑和时序图基本一致。不过,有些人会去画得很详细的时序图,详细到都快赶上伪代码级别了,我觉得这没必要。我把时序图看做反映自己思路的大概过程,所以也就画个大概。
我认为时序图要简洁易懂,这样以后你的后继维护者,拿到这个软件的时序图(当然也包括用例图、类图),就能明白你的大概设计思路。另外,画时序图也能整理自己的思路,同时还可以对类图的设计进行验证。在画这个时序图的过程中,我就纠正了在类图中的几处考虑不周的地方。
总结:时序图可以(1)整理思路(2)验证类的设计(3)是很好的软件文档,对维护者理解代码很有帮助。
这里仅给出其中几个时序图(实际上我也没有把用例都画完,有些类似的简单的,就忽略了)
(1)新增一个手机号码
(2)关机
(3)开机
(4)发送短信
到这里设计阶段就完成了,用时一天。下一步是编码,将应用TDD先写测试代码的方式来写代码,下次再介绍了。
作者简介
陈刚,广西桂林人,著作有《Eclipse从入门到精通》
您可以通过其博客了解更多信息和文章:http://www.ChenGang.com.cn
版权声明:本博客所有文章仅适用于非商业性转载,并请在转载时注明出处及作者的署名。
相关推荐
本教程将引导你全面了解一个基于UML的软件设计全过程,从需求分析到系统实现,涵盖各个关键阶段。 1. 需求收集与分析:软件设计的第一步是明确需求。UML中的用例图(Use Case Diagram)可以帮助我们捕捉系统的功能...
《基于UML的软件设计全过程》是一篇详细阐述如何运用统一建模语言(UML)进行软件设计的文章。UML是一种标准的建模语言,用于可视化地表达软件密集型系统的结构和行为,尤其适用于面向对象的系统开发。文章通过一个...
本文通过详细阐述基于UML的图书管理系统的设计与实现过程,不仅展示了UML在面向对象软件开发中的重要作用,也为其他类似项目的开发提供了有益的参考。未来的研究可以进一步探索如何利用最新的软件开发技术和工具来...
【基于UML的鲜花店网上订花系统分析与设计毕业设计】是一个综合性的项目,它涵盖了软件工程中的多个重要知识点,主要围绕B/S(浏览器/服务器)架构,使用STRUTS框架进行开发,并且借助统一建模语言(UML)进行系统...
在**基于UML的毕业设计管理系统分析与设计**中,UML被用来构建一个毕业设计管理系统的模型。这个系统可能包括对学生毕业设计的全过程管理,如项目分配、进度跟踪、文档管理、评审评价等功能。以下是一些关键的知识点...
总的来说,《基于UML的书籍租赁管理系统设计》是一个全面的软件开发实践,涵盖了从需求分析、系统设计、编码实现到测试和维护的全过程,它强调了UML在软件工程中的应用,以及VB作为实现工具的使用。通过这样的项目,...
综上所述,基于UML的学生住宿管理系统设计是一个涵盖了需求分析、系统建模、编码实现和测试验证全过程的实践项目,对于提升学生的软件工程能力和团队协作能力具有极大的价值。通过这样的课程设计,学生不仅能掌握UML...
综上所述,基于UML的短信计费系统设计不仅涵盖了从数据采集到计费划价的全过程,还考虑了系统功能的灵活性和扩展性,旨在为用户提供高效、精准的计费服务。随着技术的不断进步和业务模式的创新,该系统的设计还需...
本书主要介绍基于UML2.5标准系统建模的基本理论、软件分析与设计方法,书中加强了软件案例的UML示例说明,以提高学生的软件分析与设计水平,进一步托展学生分析问题、解决问题的能力,达到培养“厚基础、宽口径、会...
UML支持从需求分析到系统设计的全过程建模,通过图形方式表达任何类型系统的结构和行为,同时提供了语法正确、语义完整的图形模型工具。 2. **UML图** - **用例图(Use Case Diagram)**:展示系统提供的功能以及...
《基于UML的人力资源管理系统...通过细致的需求分析、合理的系统设计和有效的建模工具,我们可以构建出一个集组织管理、职位管理、绩效考核、人事变动、合同管理、招聘、培训、薪资等多功能于一体的人力资源管理系统。
### 基于UML的GRAPPLE在数字化医院信息系统设计中的应用 #### 一、引言 随着科技的迅速发展,医院信息系统(HIS)作为医疗信息化的核心组成部分,其复杂性和重要性日益凸显。UML(统一建模语言)作为一种标准化、...
软件工程课程设计中,基于UML的医院患者监护系统分析与设计是一项重要的实践任务,旨在帮助学生深入理解和运用面向对象的软件设计方法。在这个项目中,学生需要掌握统一建模语言(UML),并通过Rational Rose工具...
通过以上分析与设计,我们可以看到一个完整的超市销售管理系统是如何从概念到实现的全过程。从需求分析到系统设计,再到具体的实现细节,每一个步骤都是为了达到提高超市运作效率的目标。通过这样的系统,不仅可以...
基于UML的电子商务系统建模,通过一套系统化的方法,不仅能够准确捕捉和表达系统的需求,还能详细规划系统的结构与行为,从而指导系统设计与开发的全过程。网上书店案例的实践证明,UML在电子商务领域的应用具有显著...