用UML进行面向对象的分析设计的软件开发步骤
用UML进行面向对象的分析设计的软件开发步骤
UML(Unified Modeling Language的缩写)统一建模语言,曾经红极一时,备受软件开发人员的推崇,不少工具宣称从设计到代码映射的强力支持,不少软件公司、组织用它进行软件分析、设计、开发,到目前为止还是软件领域很重要的一部分。但在实际的软件开发过程中使用UML进行全程的开发会受到各个方面的制约,不是那么理想的。但他作为软件人员之间交流的语言的作用还是其他方式无法替代的。用它进行软件项目的前期分析、设计还是很用价值的。
本文以UML建模工具Together 6.2为例
1、 根据用户需求定义系统角色、系统边界,并定义用例模型图:
2、 基于业务规则创建活动图
3、 由用例模型图进行软件系统对象的抽象、提取,形成静态类的模型图,这一步是整个UML分析、设计的关键步骤,直接影响整个软件系统的对象模型及整体架构,是软件开发人员各方面综合能力的体现:
类对应的代码:
4、 使用类模式进行代码重构:
使用Together 建模工具在进行类图设计时将会自动生成类的代码框架,类中的属性、方法都将自动生成,只不过方法体内是空的。这一步骤即需要我们对这些空的方法体进行初步填充,如果要应用设计模式,也在此步骤中进行,如单利模式、工厂模式、观察者、适配器、。。。
下面是我们的 Reservation 构造方法代码.
|
使用工厂模式对代码进行重构后的类图(部分):
下面是我们的新代码, 改造后的 Reservation 构造方法.
|
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进行面向对象的分析设计的软件开发步骤相关推荐
- DIY家居设计展示软件开发/地板/墙纸/门窗/家居/设计/涂装/3D效果图(8P)
C# 图形图像开发,图形图像算法开发,图形控件开发. DIY家居设计展示软件开发是一套视觉真实.展示便捷的装饰材料演示软件.本系列软件包括壁纸(墙纸.墙艺)软件.瓷砖软件.窗帘软件.地板软件.地毯软件 ...
- 歼击机设计与软件开发
歼击机设计与软件开发 跟北航的朋友借了本北航出版社2001年版的<飞机总体设计>.我对飞行器设计一窍不通,也不想学习,主要是看到这本书的主编是大名鼎鼎的顾诵芬(歼8,歼8-II),才拿来翻 ...
- 面向对象方法的优势简化软件开发的过程_软件开发技巧的途径
软件开发的复杂性每天都在增加.几乎每年都会发布一个新的框架(例如AngularJS,ReactJS)和一个新的构建工具(例如Webpack,Rollup).甚至每年都会发布新的JavaScript版本 ...
- 面向对象方法的优势简化软件开发的过程_Java面试题说一说你的对面向过程和面向对象的理解...
点击上方"千锋Java学院",选择"置顶公众号" 每天一道面试模拟真题及解析 课前导读 ●回复"每日一练"获取以前的题目,持续更新! ●我希 ...
- GD32官方资料学习体系(主要包括MCU选型、原理图PCB设计、软件开发入门及用户手册等)
GD32快速上手指南 硬件开发 1.<选型手册> 2.<GD32xxx 系列硬件开发指南> 3.<GD32xxx Datasheet> 软件开发 1.<GD3 ...
- 面向对象与面向过程在软件开发中的应用
今天设计一个功能模块,深入进去后突然对面向对象和面向过程有了些认识.赶紧记下来以免忘了. 在设计和开发一个软件或是功能的时候,眼光或是站的位置决定了你对软件的理解程度.如果你 以软件的设计者的角度你会 ...
- EUI——专为Lua程序员设计的软件开发平台,制作漂亮的界面从此轻松
EUI是一款基于DirectUI技术的界面开发工具,目前仅开放了Lua编程接口.使用简单的Lua语言,就可以开发软件了.同时EUI自有所见即所得编辑器,界面拖拖放放摆出来,无须写代码. 在上周发布了第 ...
- IT项目的面向对象分析设计、开发及管理
前 言 21世纪,信息化建设在各个领域蓬勃发展,包括企业资源计划(Enterprise Resources Planning,简称ERP)系统.面向对象的项目分析设计.开发及管理,是指企业围绕软件项目 ...
- 例解基于UML的面向对象分析与设计
摘要 本文以实例的方式,展示了如何使用UML进行面向对象的分析与设计.本文将假设读者对UML.面向对象等领域的基本内容已了然于胸,所以将不会过多阐述,而将重点放在应用过程上.本文的目的是通过一个完整的 ...
最新文章
- PowerDesigner 常用设置
- 【Matlab 图像】HSV 空间图片分离器
- ffmpeg libx264_编程小短文:FFmpeg视频画面尺寸调整,必知必会
- java list 转 scala_Java与Scala集合互转
- vue-typescript
- C++分析使用拷贝控制成员和调用构造函数的时机
- spring 事务持久性_项目学生:Spring数据的持久性
- 阿里云rds for mysql平台介绍_阿里云RDS for MySQL 快速入门——笔记
- springmvc图片文件上传接口
- oracle中定义表类型数据,oracle 定义表字段域的数据类型
- 最近公共祖先_LeetCode 236. 二叉树的最近公共祖先
- 误码率matlab怎么计算,Matlab 仿真(7,4)汉明码 传输误码率
- 机器人挠人脚心_挠同学脚心
- WES7 定制界面完整过程
- FSR402电阻式薄膜压力传感器
- 绝对简单易学的PHP入门教程
- 深度学习与python运用论文心得
- Halcon之图像采集II
- app违规收集个人信息被通报了怎么办?教你如何整改
- js获取ISO8601规范时间,使用UTC时间,格式为:YYYY-MM-DDThh:mm:ssZ