用UML进行面向对象的分析设计的软件开发步骤

UML(Unified Modeling Language的缩写)统一建模语言,曾经红极一时,备受软件开发人员的推崇,不少工具宣称从设计到代码映射的强力支持,不少软件公司、组织用它进行软件分析、设计、开发,到目前为止还是软件领域很重要的一部分。但在实际的软件开发过程中使用UML进行全程的开发会受到各个方面的制约,不是那么理想的。但他作为软件人员之间交流的语言的作用还是其他方式无法替代的。用它进行软件项目的前期分析、设计还是很用价值的。

本文以UML建模工具Together 6.2为例

1、  根据用户需求定义系统角色、系统边界,并定义用例模型图:

2、  基于业务规则创建活动图

3、  由用例模型图进行软件系统对象的抽象、提取,形成静态类的模型图,这一步是整个UML分析、设计的关键步骤,直接影响整个软件系统的对象模型及整体架构,是软件开发人员各方面综合能力的体现:

类对应的代码:

4、  使用类模式进行代码重构:

使用Together 建模工具在进行类图设计时将会自动生成类的代码框架,类中的属性、方法都将自动生成,只不过方法体内是空的。这一步骤即需要我们对这些空的方法体进行初步填充,如果要应用设计模式,也在此步骤中进行,如单利模式、工厂模式、观察者、适配器、。。。

下面是我们的 Reservation 构造方法代码.

public Reservation(String name, int tKind) {

this.name = name;

// We will refactor this next piece of code

lnkTicket = null;

if (tKind == 1)

lnkTicket = new Coach() ;

else if (tKind == 2)

lnkTicket = new FirstClass();

}

使用工厂模式对代码进行重构后的类图(部分):

下面是我们的新代码, 改造后的 Reservation 构造方法.

public Reservation(String name, int tKind) {

this.name = name;

TicketMaster tm = new TicketMaster();

lnkTicket = tm.createTicket(tKind);

}

5、  构建时序图

类图给出了模型的整体结构. 但类图是静态图, 与模型的行为无关. 在这步中, 你将创建一些时序图来描述行为是如何发生的.

在创建时序图时常经过一下步骤:

1、 创建一个时序图草图

2、 将一般对象关联到类, 将一般消息关联到操作

3、 在模型图中放置控制代码

在Together工具中,既可以“从模型图实现代码”也可以“从代码生成模型图”

一个时序图如下:

协作图:协作图与活动图在逻辑上是等价的,只是将同样的信息表现为不同的形式。Together 支持对这两个模型图的相互转换,且只保持一个文件

一个协作图如下:

6、  运行和调试 Java 工程

Together支持对java工程的运行、调试。但不建议在Together中进行这一步,毕竟Together不能跟专业的IDE开发工具相比。

7、  文档生成

Together支持java文档的自动生成。并支持HTML、PDF、RTF、TXT等格式的文档生成。

小结:对于本文中的第六步(运行和调试java工程),一个好的方式是将UML建模工具生成的代码框架,拷贝一份,并导入到专业的IDE开发工具中,如Eclipse,然后进行运行调试。

Together提到给我们的是UML的建模环境,将生成的模型结果进行项目成员的交流是很有用处的。

教程下载:

http://d.download.csdn.net/down/1067102/chishan911

实例代码下载:

http://download.csdn.net/source/2466650

用UML进行面向对象的分析设计的软件开发步骤相关推荐

  1. DIY家居设计展示软件开发/地板/墙纸/门窗/家居/设计/涂装/3D效果图(8P)

    C# 图形图像开发,图形图像算法开发,图形控件开发. DIY家居设计展示软件开发是一套视觉真实.展示便捷的装饰材料演示软件.本系列软件包括壁纸(墙纸.墙艺)软件.瓷砖软件.窗帘软件.地板软件.地毯软件 ...

  2. 歼击机设计与软件开发

    歼击机设计与软件开发 跟北航的朋友借了本北航出版社2001年版的<飞机总体设计>.我对飞行器设计一窍不通,也不想学习,主要是看到这本书的主编是大名鼎鼎的顾诵芬(歼8,歼8-II),才拿来翻 ...

  3. 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径

    软件开发的复杂性每天都在增加.几乎每年都会发布一个新的框架(例如AngularJS,ReactJS)和一个新的构建工具(例如Webpack,Rollup).甚至每年都会发布新的JavaScript版本 ...

  4. 面向对象方法的优势简化软件开发的过程_Java面试题说一说你的对面向过程和面向对象的理解...

    点击上方"千锋Java学院",选择"置顶公众号" 每天一道面试模拟真题及解析 课前导读 ●回复"每日一练"获取以前的题目,持续更新! ●我希 ...

  5. GD32官方资料学习体系(主要包括MCU选型、原理图PCB设计、软件开发入门及用户手册等)

    GD32快速上手指南 硬件开发 1.<选型手册> 2.<GD32xxx 系列硬件开发指南> 3.<GD32xxx Datasheet> 软件开发 1.<GD3 ...

  6. 面向对象与面向过程在软件开发中的应用

    今天设计一个功能模块,深入进去后突然对面向对象和面向过程有了些认识.赶紧记下来以免忘了. 在设计和开发一个软件或是功能的时候,眼光或是站的位置决定了你对软件的理解程度.如果你 以软件的设计者的角度你会 ...

  7. EUI——专为Lua程序员设计的软件开发平台,制作漂亮的界面从此轻松

    EUI是一款基于DirectUI技术的界面开发工具,目前仅开放了Lua编程接口.使用简单的Lua语言,就可以开发软件了.同时EUI自有所见即所得编辑器,界面拖拖放放摆出来,无须写代码. 在上周发布了第 ...

  8. IT项目的面向对象分析设计、开发及管理

    前 言 21世纪,信息化建设在各个领域蓬勃发展,包括企业资源计划(Enterprise Resources Planning,简称ERP)系统.面向对象的项目分析设计.开发及管理,是指企业围绕软件项目 ...

  9. 例解基于UML的面向对象分析与设计

    摘要 本文以实例的方式,展示了如何使用UML进行面向对象的分析与设计.本文将假设读者对UML.面向对象等领域的基本内容已了然于胸,所以将不会过多阐述,而将重点放在应用过程上.本文的目的是通过一个完整的 ...

最新文章

  1. PowerDesigner 常用设置
  2. 【Matlab 图像】HSV 空间图片分离器
  3. ffmpeg libx264_编程小短文:FFmpeg视频画面尺寸调整,必知必会
  4. java list 转 scala_Java与Scala集合互转
  5. vue-typescript
  6. C++分析使用拷贝控制成员和调用构造函数的时机
  7. spring 事务持久性_项目学生:Spring数据的持久性
  8. 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记
  9. springmvc图片文件上传接口
  10. oracle中定义表类型数据,oracle 定义表字段域的数据类型
  11. 最近公共祖先_LeetCode 236. 二叉树的最近公共祖先
  12. 误码率matlab怎么计算,Matlab 仿真(7,4)汉明码 传输误码率
  13. 机器人挠人脚心_挠同学脚心
  14. WES7 定制界面完整过程
  15. FSR402电阻式薄膜压力传感器
  16. 绝对简单易学的PHP入门教程
  17. 深度学习与python运用论文心得
  18. Halcon之图像采集II
  19. app违规收集个人信息被通报了怎么办?教你如何整改
  20. js获取ISO8601规范时间,使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ

热门文章

  1. 【恶搞向】教你如何做一个关机程序
  2. 邮件push服务器,Coremail Push
  3. php中sql语句字符串截取字符串,sql语句的截取字符串下标是从1开始
  4. Java实现简单的扫雷小程序
  5. java简单版扫雷实现
  6. 基于hls格式的光条检测纯c++代码——重心法
  7. 【Unity Shader】 Fog
  8. 运放的NC端时啥意思
  9. Tbase 源码 (四)
  10. python自动化办公是什么_Python自动化办公知识点整理汇总