BlogJava 联系 聚合 管理  

Blog Stats

随笔档案

文章档案


年度最佳UML/MDA工具

trufun Plato/Kant

2007年6月18日 #

trufun1  9:35:38
UML开课啦
trufun1  9:37:40
上堂课征求意见结果如下:
trufun1  9:38:48
1.有人提的语音等方式不适合上班的大部分网友
trufun1  9:39:20
2.以实战项目为主
trufun1  9:42:58
结论:1.还是采用目前的方式教学,2.开展实战项目征集
trufun1  9:46:45
下面是需求征集表,希望大家下载后传给我
trufun1  9:48:08
             UML建模推广课程讨论题目
网友称呼        工作单位    
题目    
需求片段    要求:1.有一定深度,2.替换掉单位等不宜公开信息
需求描述:

分析要求:    

trufun1  9:52:11

今天的课程是讲解楚凡科技的软件过程模型TUP

=============欢迎访问www.trufun.net下载免费UML2工具试用=================


============欢迎加入Trufun家园交流群讨论UML2应用问题================


trufun1  9:57:12
在UML建模出现之后,这些模型都声称支持建模过程
trufun1  10:01:45
但是国际omg组织并没有指定该何种过程模型
trufun1  10:06:44
西安楚凡科技在总结其他模型的基础上,提出了一种适合中小软件企业的过程模型TUP
trufun1  10:11:48

trufun1  10:14:30
如图所示:整个建模过程从水平方向分为三个阶段,13个活动
trufun1  10:16:10
垂直方向分为两个过程
trufun1  10:18:51
TUP的每个阶段都包括一系列目标、若干重要的焦点活动、若干建模成果以及一个组织活动的方法和一个阶段结束的里程碑。
trufun1  10:21:21
比如:草图阶段的主要目标是获取和定义用户需求,主要包括以下几个方面:
n    确定客户高层需求;
n    确定主要的用户业务需求;
n    确定软件的范围;
n    确定软件系统的实现目标;
n    确定架构雏形。trufun1  10:24:00
焦点:草图阶段的重点是交流活动和建模活动,在建模活动中除了UML建模以外,可能还有原型建模。
trufun1  10:26:58
草图阶段的主要成果

n    生成了系统映像;
n    生成了架构雏形;
n    建立了主要分析类模型;
n    建立了主要流程的活动图模型;
n    建立了系统用例图模型。
trufun1  10:28:18
草图阶段的里程碑:确定了软件的范围和目标,并取得客户的认可
trufun1  10:31:12
下面对TUP过程模型有什么问题可以提问
trufun1  10:31:26
下面对TUP过程模型有什么问题可以提问
trufun1  10:34:16
过程模型说简单一点,就是告诉你应该先做什么,后作什么
trufun1  10:36:54
就象往墙上钉一幅画一样,OMG只告诉你有画,钉子,榔头,浆糊,刷子
trufun1  10:41:02
是用钉子还是用浆糊,omg并没有告诉你,就象是用活动图表示,还是用序列图表示,并没有国际标准
trufun1  10:47:58
TUP就是告诉大家怎样从头到尾进行软件建模
trufun1  10:51:26
怎样由粗到精,由表及里寻找需求背后的业务模型
trufun1  10:56:01
TUP有很多特点:比如简化了RUP中的许多概念,大家知道概念多了交流起来容易混淆
trufun1  11:00:05
比如RUP中与系统交互的有干系人,代理人,用户,角色,系统参与者,而TUP只有一个关键的概念角色,明确的表示了交互和边界的含义
trufun1  11:07:53

所以TUP实用、简单,学起来,使用起来容易


=========欢迎访问www.trufun.net下载免费UML2工具试用=============


==========欢迎加入Trufun家园交流群讨论UML2应用问题=============


trufun1  11:10:19
今天的内容理论性比较强,不是很多网友的关注点,这一点我在以往教学中是清楚的
trufun1  11:18:11
提不出问题没关系,当你看不懂RUP的书,不知道怎样在开发中建模,想想还有TUP就可以啦
trufun1  11:26:23
另外,如果大家希望实战分析的内容有针对性,不妨把那个需求征集表填一下,可以是自己不明白的需求,也可以是自己希望学习的内容
trufun1  11:31:33
上学期的案例都是我准备的,上节课征集意见时,大家还是希望讲实战的项目,要学习,需要大家配合
IS印象(20474992)  11:33:22
这样子讲没什么感觉
trufun1  11:34:18
你希望这样
trufun1  11:34:33
你希望怎样
乐百氏(3)  11:34:49
老师完整地操作一遍,大家围观,随时提出问题。
trufun1  11:35:23
大家可以提出自己的实际案例,我们来实时操作分析
trufun1  11:40:57
今天的课程就到这里,888
QQ熊(2) 2012/2/7 11:45:09
能否提供一个安例呢?(从需求收集--》需求分析--》需求设计)
有整个方案的详细分档么?
trufun1 2012/2/7 11:46:25

trufun1 2012/2/7 11:46:56
你设想一个发给我
QQ熊(2) 2012/2/7 11:49:13
好的。

=========欢迎访问www.trufun.net下载免费UML2工具试用==============


===========欢迎加入Trufun家园交流群讨论UML2应用问题============
posted @ 2012-02-14 15:26 trufun 阅读(226) | 评论 (0)编辑 收藏

中国人最常用的UML工具介绍(摘自论坛投票结果和网友)


第一名:Rational Rose。大名鼎鼎,史上最有名、最无可替代的UML产品,以至于,大多数将之等同于UML工具,正如将可乐等同于可口可乐。需要指出的是,自从 Rational被IBM收购之后,Rational Rose已经成为历史,作为UML1.4标准的产物,现在已经不升级。其替代品是IBM的其他产品,如IBM RSA, RSD等。


第二名:IBM Rational RSA。无可置疑,IBM的旗舰产品,通过和IBM其他产品的协调,支持软件开发的全生命周期开发。唯一的缺陷,是出奇的笨重,和出奇的庞杂昂贵(不唯一了?)。


第三名:Trufun Kant Studio。作为国产唯一的UML工具,据说是最易用的UML工具,目前在国内大多数高校取得了广泛的应用。对企业和高校而言,其最独特的杀伤性武器是 支持广泛实用性强,而且帮助企业引入TUP实训和咨询,一步到位解决产品和具体应用问题。


第四名:EA。EA的特点就是没特点,除了便宜和好像要啥有啥外,没有让人印象深刻的地方,可能这就是低价产品之道。说起来,倒像我曾经呆过的系统集成企业,招标时,没有我不会做的,没有比我更便宜的,呵呵。


第五名:StarUML。用Delphi能做到这种程度,StarUML作者绝对是个Delphi牛人,只可惜此开源项目不知为何中止,可惜啊。如果能够继续的话,估计其他UML工具都没有活路了。

其他还有一些不太常用的,以后有时间再说,如ArgoUML, PowerDesigner, Visual UML等。

以上评价仅代表个人观点,如有异议,欢迎来信来函讨论。
posted @ 2012-02-14 15:25 trufun 阅读(298) | 评论 (0)编辑 收藏

即 日起,凡是购买Trufun最新版本Trufun Kant Studio一站式开发平台4套(39600元)的企业或者团队,均可获赠Trufun Plato企业版最新版本6套和3天定制企业内训课程(价值63000元),所获赠企业内训课程内容可以根据Trufun所提供培训课程并结合企业项目特 点进行定制,更有机会加入Trufun高级TUP过程培训内容,本次活动名额有限,仅限10名,以签订合同顺序为准,机不可失,时不再来!!

访问官网了解更多www.trufun.net
来电来信咨询  029-88346234   trufun*a*trufun.net 
posted @ 2012-02-09 13:10 trufun 阅读(188) | 评论 (0)编辑 收藏

trufun1  9:28:06
UML开课啦,今天讨论组件图
--(3)  9:28:23
好呀好呀
trufun1  9:31:49
简单讲,组件是一个可独立运行的、代表一个业务的二进制代码
--(3)  9:32:21
组件必须是可独立运行的吗?
--(3)  9:32:31
如果不可以独立运行,是不是就不叫组件?
守护者(4)  9:32:32
trufun1  9:33:42
这是标准的解释
--(3)  9:34:23
有意外情况?
守护者(4)  9:34:27
组件也可以是一个 可执行 可调用的 模块吧
--(3)  9:34:33
非独立运行的组件出现?
守护者(4)  9:34:41
不一定都是可执行的吧
承懿<5>  9:35:36
那把非标准的讲一下,通俗点吧

========欢迎访问www.trufun.net网站查看更多交流群讨论内容===============
=========欢迎访问www.trufun.net网站免费下载UML2建模工具使用============
=========欢迎加入trufun qq交流群讨论UML应用问题=======================

trufun1  9:35:52
面向过程,面向对象之后就是面向组件
守护者(4)  9:36:08
我有自己工作积累的独立模块  这不是可以独立运行的   也应该算做是组件吧
--(3)  9:36:50
等下啊,问句题外话,你们在黑龙江,有专门的培训机构吗?想去系统的学习一下
守护者(4)  9:36:54
我以前做过一点 面向 字符串  也是一种 呵呵
--(3)  9:37:00
吉林也成,辽宁也行,东三省都行
trufun
系统学习参加trufun公开课或者企业内训都可以
trufun1  9:40:28
组件有一个很重要的特征是有接口
trufun1  9:42:28
一个生产产品的企业从外部看就是组件
守护者(4)  9:42:52
怎么讲 是说将其完全封装吗
trufun1  9:43:54
这里不是封装,而是抽象
trufun1  9:44:54
如计算机,cpu,内存条都是组件
守护者(4)  9:44:59
面向接口 我觉得 不就是 将行为抽象 将实现封装吗
守护者(4)  9:45:11
恩  
一米阳光(6)  9:45:49
面向接口  我发现通过继承也可以实现接口的功能 这又是什么呢
承懿<5>  9:46:04
守护者(4)  9:44:59
面向接口 我觉得 不就是 将行为抽象 将实现封装吗
我觉得也是这个的
trufun1  9:46:08
组件是物理实现抽象表达
守护者(4)  9:46:34

trufun1  9:47:19
如cpu实际上是对cpu板子的抽象
trufun1  9:48:03
当然,物理软件也可抽象成组件

--(3)  9:48:07
若干个可独立工作的组件,通过接口组装在一起,就变成了一个整体的系统,可以这么理解吧?
一米阳光(6)  9:48:21
意思 一个组件就是一段独立的代码?
trufun1  9:49:29
一般讲,组件是具体的制品构成
一米阳光(6)  9:49:53
不依托其他 条件存在的?
trufun1  9:49:55
组件是抽象的
trufun1  9:50:15
制品是实例化的
trufun1  9:50:36
独立
trufun1  9:51:27
代码(exe,dll) 是制品的一种
一米阳光(6)  9:51:36
那么这么理解 行不行  组件 就是一个类  制品就是一个实例对象? 比如 new object?
承懿<5>  9:51:40
晓得了
========欢迎访问www.trufun.net网站查看更多交流群讨论内容===============
=========欢迎访问www.trufun.net网站免费下载UML2建模工具使用============
=========欢迎加入trufun qq交流群讨论UML应用问题=======================
守护者(4)  9:52:06
组件  比类的粒度要大得多 层面也不一样 小米
trufun1  9:52:09
有点类似
承懿<5>  9:52:26
我原来在另外一家公司 的时候他们的部件加载就是加载dll直接运行的
守护者(4)  9:53:45
我自己以前工作的内容 也集成过一个DLL  自己写程序时  也会  当组件来用 但是单位的程序就不行了
trufun1  9:55:24
组件又被分为执行组件、部署组件、产品组件
trufun1  9:57:27
希望大家多提问题
--(3)  10:02:06
组件只能是单独存在的吧?不会出现组件下面还有小组件存在的这种情况吧?
--(3)  10:02:14
是不是要把组件给细分到最小化?
trufun1  10:02:18
我问大家一个问题,什么是组件架构,由那些组件组成?
trufun1  10:02:34
组件可以包含组件
守护者(4)  10:07:08
SOA算吗  将组件封装成服务
--(3)  10:07:09
那为什么直接细分成最小化呢?
trufun1  10:07:24
一般讲,由容器组件、粘结组件和产品组件构成
守护者(4)  10:08:32
容器 最简单的理解就是 namespace  或者 说是 package
trufun1  10:09:41
举例:网页中,容器组件是什么?粘结组件是什么,产品组件是什么?
守护者(4)  10:09:57
粘结组件?
trufun1  10:10:38
粘接
守护者(4)  10:11:04
网页中,容器组件就是网页所在的链接
产品组件 就是所用到的外部DLL 或者是 页面控件组件
trufun1  10:11:19
不大对
守护者(4)  10:11:49
粘结组件不知道 但是从字面上看是不是就是 链接自己程序和 外部程序的适配器呢
一米阳光(6)  10:12:28
我觉得怎么个html 就是容器组件
trufun1  10:12:34
字打别了为粘接
trufun1  10:13:18
html为粘接组件
守护者(4)  10:13:44
 tru 能给个链接吗  我也学习一下
trufun1  10:14:11
其他呢?
trufun1  10:14:27
你正在学
承懿<5>  10:14:36
网页中的容器组件最大的是body
承懿<5>  10:14:52
小的div table这些都是窗口组件
trufun1  10:15:08
那不是组件,是tag

承懿<5>  10:16:12
不明白,这些也称为标签,但是里面能放东西啊
trufun1  10:16:32
页面中的广告,图片是产品组件
守护者(4)  10:17:05
广告,图片?
守护者(4)  10:17:17
那就是说成型的东西 哦
trufun1  10:17:24
可独立执行
守护者(4)  10:17:37
那如果我应用了第三方 控件的话 也算是  产品组件吧
trufun1  10:17:43

守护者(4)  10:18:03
哦 
守护者(4)  10:18:11
那 粘结组件 呢
trufun1  10:18:16
页面本身是容器组件
守护者(4)  10:18:20
不是 适配器吗
守护者(4)  10:18:42
 是说 调用产品组件的 组件就是粘结组件吗
trufun1  10:18:46
粘接组件为html

守护者(4)  10:19:00
那js呢
一米阳光(6)  10:19:00
那asp.net 里面的控件算不算组件?
trufun1  10:19:18
产品组件
守护者(4)  10:19:35
ajax 都算是产品组件 对吧
trufun1  10:19:42

一米阳光(6)  10:19:47
trufunwu 老师 你回答的是 我的还是 守护者的?
trufun1  10:23:57
谁能举java中组件架构的例子?
--(3)  10:24:49
老师,提问一下:组件,是不是要用在开发上?在需求设计,是不是用不到?
守护者(4)  10:25:10
 
trufun1  10:25:27
经常用
trufun1  10:25:51
在实现阶段,不是分析阶段
--(3)  10:26:30
哦,那就对了。我理解的没错误
trufun1  10:26:33
组件,是实现阶段的工作
trufun1  10:26:52
组件,是实现阶段的工作
--(3)  10:26:54
实现阶段不归我这负责,怪不得听不懂和理解不了
守护者(4)  10:27:07
那--  你负责什么?
--(3)  10:27:17
还是举这个例子
守护者(4)  10:27:25
那--  你负责什么?
--(3)  10:27:44
我只管网页中有什么内容,内容如何排布,网页之间的调整,数据是怎么来的,怎么没的
--(3)  10:28:04
至少这个网页是怎么作的,不归我管
--(3)  10:28:10
至于
守护者(4)  10:28:44
美工?
--(3)  10:28:50
就是说,我只管一盘菜的用料,但是先放油还是先放蛋,不归我管
--(3)  10:28:54
不是美工
--(3)  10:29:18
需求设计及概要设计
--(3)  10:29:24
需求分析
--(3)  10:30:15
给程序员定量的盐、油、蛋、菜,然后告诉他们最终的味道是什么样的
守护者(4)  10:30:18
需求分析 需求设计及概要设计 你管这些吗
--(3)  10:30:25
用这些原理怎么炒,是他们的事情
守护者(4)  10:30:41
怎么炒是详细设计
守护者(4)  10:30:52
只有 代码产出才是程序员的事情
trufun1  10:31:23
下面讨论一下什么是端口?
--(3)  10:31:26
我们没有详细设计人员。。。程序员兼着,小公司,没办法,而且黑龙江这破地方,想找个合适的详细设计人员,基本上不大可能
一米阳光(6)  10:31:42
我一直弄不明白 详细设计要写多么细  概要设计需要多么细
--(3)  10:32:05
楼上的,我的想法是这样
--(3)  10:32:43
比如一个系统,概要设计负责把系统的业务流程、数据流程、界面流程给设计好,就可以了
--(3)  10:32:54
详细设计管的是实现流程
trufun1  10:33:09
return
--(3)  10:33:09
程序管的是按实现流程去干活
--(3)  10:33:33
听老师的
trufun1  10:34:16
下面讨论一下什么是端口?
守护者(4)  10:34:26
端口?   接口吧
trufun1  10:34:54
不同吧
--(3)  10:35:20
感觉不同
守护者(4)  10:35:57
端口是 电脑上的硬件端口吗
trufun1  10:36:39
软件的定义
X易X平X(7)  10:36:41
端口的内涵包含接口,是接口内涵的衍生,也是负责程序间互相访问通信的
X易X平X(7)  10:37:00
能这样理解吧!
守护者(4)  10:37:27
端口是硬件 接口是软件  挨不上吧
--(3)  10:38:07
端口也是软件,不是硬件
trufun1  10:38:15
提供接口和需求接口组合就叫端口
X易X平X(7)  10:39:06
还是老师的话精炼
承懿<5>  10:39:07
那就是成对的才叫端口对吧
trufun1  10:39:53
是的,如收、发
--(3)  10:40:16
接口是只发,或只收?
承懿<5>  10:40:19
哦,晓得了
守护者(4)  10:42:29
:9001、:9003  这种在http协议后的不就是端口吗
一米阳光(6)  10:43:08
这个不同吧
承懿<5>  10:43:10
软件设计应该跟这个不属于同一个范畴
trufun1  10:43:21
糊搞(8)  10:41:38
特定的几组组件选择性提供的业务接口?
trufun1  10:42:15
叫服务
trufun1  10:46:55

 trufun1  10:49:12
从上图找出前面的概念
trufun1  10:53:09
今天的案例:找组件和接口
  子系统信息流
其他系统都要查看库存情况,历史异动情况,未来异动情况,采购子系统收货,销售子系统发货都要影响库存,生产子系统向库存存货,库存子系统向生产子系统供 货,销售子系统向生产子系统提供订单和销售预测,采购子系统向财务子系统产生应付账款,销售子系统向财务子系统产生应收帐款。
trufun1  10:54:38
不难,请踊跃发言
webmaster(344593239)  10:57:35
快下课了~~~~~~~~~~~~~~
感恩的心(157323704)  10:57:42
不知道从哪里说起,呵呵
webmaster(344593239)  10:57:45
大家有问题快点讨论哦~~
--(3)  10:58:59
太有深度了,目前还在消化与不理解中
trufun1  10:59:11
其他系统都要查看库存情况,中的其他系统是带有需求接口的产品组件,
trufun1  10:59:46
需求接口为查看库存
trufun1  11:00:36
那只是提高大家识图的例子
承懿<5>  11:00:48

trufun1  11:01:03
从网上找的
trufun1  11:02:28
历史异动情况,未来异动情况都是需求接口
trufun1  11:05:33
产品组件为采购组件,销售组件,生产组件,财务组件
trufun1  11:10:40
采购子系统收货,销售子系统发货都要影响库存,组件有3,1采购组件,2.销售组件,3,库存组件
接口有4个,采购组件的收货提供接口,销售组件的发货提供接口,库存组件收货需求接口,库存组件的发货需求接口
trufun1  11:13:32
看来大家对组件的应用这里还不熟悉
守护者(4)  11:13:49
是呀
--(3)  11:14:09
相当不熟悉!
--(3)  11:14:34
太有深度了
========欢迎访问www.trufun.net网站查看更多交流群讨论内容===============
=========欢迎访问www.trufun.net网站免费下载UML2建模工具使用============
=========欢迎加入trufun qq交流群讨论UML应用问题=======================

守护者(4)  11:14:51
上层结构的图  中小型的项目 一般用不到呀
守护者(4)  11:15:02
大公司的话 程序员也用不到 只有设计人员能看到
--(3)  11:15:14

trufun1  11:15:16
组件是架构层面的东西
--(3)  11:15:40
在实际工作中,用不上呀。起码小公司用不上
守护者(4)  11:16:37

trufun1  11:17:01
其实开发语言周围到处有这些应用,只是大家不做组件开发
守护者(4)  11:18:42
? 是吗  能细说下吗
trufun1  11:19:08
比如控件
trufun1  11:19:37
开发人员没有不用的
trufun1  11:19:49
第三方组件等
感恩的心(157323704)  11:20:22
类似于com组件?
trufun1  11:20:43

trufun1  11:23:06
这是我给的结果,仅供参考
trufun1  11:23:31

trufun1  11:25:16
仅供参考
守护者(4)  11:24:53

守护者(4)  11:25:03
这说明了 五个组件的关系
守护者(4)  11:25:06
以及功能
trufun1  11:25:32
接口
守护者(4)  11:26:15
恩  对象编程吧 接口是必须的
trufun1  11:26:45
子系统接口
--(3)  11:26:51
这看明白了许多
trufun1  11:29:01
还有问题吗?
--(3)  11:29:39
组件与子系统的区别,能给说一下吗?
trufun1  11:30:39
,子系统是组件的一种类型,往往比组件更
大的组合。子系统本身不会被实例化(抽象的),但其内容组件可以被实例化
--(3)  11:30:57
明白了
--(3)  11:31:59
在设计中,不能把需求抽象成子系统,但可以把需求抽象成组件,是这样吧?子系统是由组件构成的
trufun1  11:33:12
子系统是分解出来的,组件是实现出来的
--(3)  11:33:48
思考。。。
trufun1  11:34:49
下次讨论部署图,记住带着问题来
trufun1  11:37:48
888
--(3)  11:38:01
感谢
========欢迎访问www.trufun.net网站查看更多交流群讨论内容===============
=========欢迎访问www.trufun.net网站免费下载UML2建模工具使用============
=========欢迎加入trufun qq交流群讨论UML应用问题=======================
posted @ 2011-12-27 15:36 trufun 阅读(269) | 评论 (0)编辑 收藏

trufun0  9:31:11
状态图是序列图分析的延伸
trufun0  9:36:30
为啥要要研究对象的状态呢,因为对象只有在某种状态下,才能对某种外部事件发出响应
talenter(1)  9:38:57

talenter(1)  9:39:10
讲完这个 发题目 :)
trufun0  9:39:48
比如学生处在上课状态,只有产生听课的行为,而不能产生睡觉的行为
清水(1)  9:41:31

=============欢迎访问www.trufun.net免费下载UML2建模工具Trufun Plato=======================

trufun0  9:43:05
听到下课铃这个外部事件,处在上课状态的学生可以发生状态改变,处在下课状态的学生,则不会发生状态改变
talenter(1)  9:43:16
恩 状态转换
清水(1)  9:44:38

清水(1)  9:45:05
在实际中问题往往是 该设置多少个状态才算合适
talenter(1)  9:45:35
状态转换都有事件参与吧
trufun0  9:46:03
是的
trufun0  9:48:46
事件是什么?
talenter(1)  9:48:57
消息
talenter(1)  9:48:59

talenter(1)  9:49:05
动作?
trufun0  9:49:26
对,消息,也就是方法
talenter(1)  9:49:46

trufun0  9:51:22
一个对象有多少状态呢
清水(1)  9:52:30
 
trufun0  9:57:26
答案:一个对象有无数个状态
talenter(1)  9:58:08
无数个?  可预知的有限吧
trufun0  9:58:26
状态用对象的属性来表示
清水(1)  10:09:28
对象状态的划分 很重要吧
清水(1)  10:09:39
一个问题是  一些中间状态要不要记录
trufun0  10:09:42
我们只关心那些对我们感兴趣的某个事件发出某种行为的状态
trufun0  10:14:02
今天的案例:                靓号状态   
“靓号”能被锁定,被锁定的“靓号”不能被其它用户再锁定。被锁定的靓号如果在15分钟内没被用户租用,则还回到初始状态,可以再被(其他)用户锁定。被 锁定的“靓号”可以被租用,租用到期后能被系统预留(即为先前的用户保护起来),预留一个月后如用户未续租,则此“靓号”可以被其他人锁定或租用。在租用 状态下的“靓号”,如果被同一用户累积租用超过半年,则可以买断。被买断后,此“靓号”变成普通号。
trufun0  10:14:39
分析出状态,事件,监护条件,效果
talenter(1)  10:16:06
初始状态   租用状态  锁定状态  预留状态  买断状态 结束状态(普通号)
talenter(1)  10:17:11
画个图比较好。
trufun0  10:17:23
还有?
trufun0  10:17:41
先分析,后画图
talenter(1)  10:18:50
状态找不出来了。
trufun0  10:19:48
状态分析先找到分析对象
talenter(1)  10:23:06
靓号  就是分析对象吧?
trufun0  10:23:37

=============欢迎访问www.trufun.net免费下载UML2建模工具=======================

talenter(1)  10:24:26
买断状态 就作为结束状态   
talenter(1)  10:24:37
初始状态   租用状态  锁定状态  预留状态  买断(结束)状态
trufun0  10:25:22
普通号为最终状态,结束状态是单独的
talenter(1)  10:26:05
哦 买断是个动作
trufun0  10:26:15
找到对象后找属性
talenter(1)  10:27:14
累积租用超过半年
trufun0  10:28:05
累计租期是一个属性
trufun0  10:32:07
九头鸟的奋斗(705543728)  10:30:10
靓号的属性只有两种 :预留和非预留

trufun0  10:31:01
是否已预留是一个属性
talenter(1)  10:33:42
是否锁定是个属性
trufun0  10:33:56
是否买断是一个属性
talenter(1)  10:34:01

talenter(1)  10:34:18
是否租用也是个
trufun0  10:34:33

trufun0  10:39:47
下面大家找事件
talenter(1)  10:40:31
锁定  租用   预留  买断
trufun0  10:40:44
锁定是一个外部事件
talenter(1)  10:40:54
解锁  
talenter(1)  10:41:02

talenter(1)  10:41:25
应该找什么事件?
trufun0  10:41:50
锁定是一个外部事件
trufun0  10:42:08
你找的对
talenter(1)  10:42:25
哦 哈
talenter(1)  10:43:27
锁定 解锁  租用  解除租用  预留 解除预留 买断
trufun0  10:46:05
其他人发出的锁定是外部事件,号码接收到这个事件后,变为已锁定状态,内部的是否锁定属性变为是

trufun0  10:54:43
第一个状态是什么?
talenter(1)  10:55:14
初始
trufun0  10:56:51

trufun0  11:00:50
靓号”能被锁定,被锁定的“靓号”不能被其它用户再锁定,这句话中状态,事件,效果,及属性值?
talenter(1)  11:04:56
状态就是锁定   属性 是否锁定
talenter(1)  11:05:04
事件:还是锁定动作。
talenter(1)  11:05:12
效果? 提示?
trufun0  11:05:34
事件为其他人锁定
trufun0  11:06:43
效果就是对象接收事件后的动作
talenter(1)  11:08:39
没效果
talenter(1)  11:08:59
其他人锁定   和  自己锁定 当成一个事件就好吧?

trufun0  11:09:00
效果为拒绝锁定
talenter(1)  11:09:07

trufun0  11:13:34
被锁定的“靓号”是监护条件,意思是不是所有对象对此事件都响应
talenter(1)  11:14:45
 哦 好
trufun0  11:20:00
被锁定的靓号如果在15分钟内没被用户租用,则还回到初始状态,可以再被(其他)用户锁定,这句话的状态,事件,效果
trufun0  11:24:11
状态有两个,已锁定状态和初始状态
trufun0  11:26:28
事件为未租用
trufun0  11:29:22
效果是回到初始状态的回到行为
trufun0  11:32:04
可以再被(其他)用户锁定,是迁移后状态的内部行为
trufun0  11:33:34
剩下的网友自己分析
talenter(1)  11:34:24
   看来大家都很忙啊
talenter(1)  11:34:34
偶今天也比较忙 哈哈  不过学到了不少
trufun0  11:35:17
这是我的观点,仅供参考
trufun0  11:35:37
 
talenter(1)  11:36:28
很清晰啊
talenter(1)  11:37:26
老师辛苦 。
trufun0  11:40:54
下次讨论组件图,记住带着问题来
posted @ 2011-12-20 17:08 trufun 阅读(383) | 评论 (0)编辑 收藏

trufun4  9:24:30
UML开课啦,今天讲状态图
啃铁鼠<4>  9:29:47
好啊
trufun4  9:30:05
上堂的序列图是反映多个对象之间的交互,而状态图是反映单个对象内部的交互
=============欢迎访问www.trufun.net免费下载UML2建模工具=======================
trufun4  9:30:41
状态图是序列图分析的延伸
啃铁鼠<4>  9:32:03
注意哪些地方了?又怎么来应用了?为什么要使用状态图来分析了?
trufun4  9:33:16
很好,看来你思考了
webmaster(1)  9:34:21
大家要多多配合老师的话题积极发言,老师会讲的更深入些,
trufun4  9:35:35
为啥要要研究对象的状态呢,因为对象只有在某种状态下,才能对某种外部事件发出响应
啃铁鼠<4>  9:36:36
是不是说,处在该状态下只能处理该状态的事件,其他状态的事件就不能处理了?
trufun4  9:37:13
是的
啃铁鼠<4>  9:38:13
可如果这样,某个对象会不会出现很多很多的状态,岂不是状态处理很繁琐和麻烦了
=============欢迎访问www.trufun.net免费下载UML2建模工具=======================
trufun4  9:43:56
听到下课铃这个外部事件,处在上课状态的学生可以发生状态改变,处在下课状态的学生,则不会发生状态改变
啃铁鼠<4>  9:44:52
该怎么来划分状态了?
trufun4  9:45:38
一个对象有多少状态呢
承懿<2>  9:45:42
下课-->上课(上课铃响)
承懿<2>  9:45:49
反过来下课铃响
承懿<2>  9:46:17
事件驱动状态改变
trufun4  9:46:42
事件是什么?
承懿<2>  9:47:26
上课铃和下课铃
承懿<2>  9:47:34
响就是事件
trufun4  9:48:08
用面向对象说实质
trufun4  9:50:39
talenter(3)  9:48:57
消息
talenter(3)  9:49:05
动作?
trufun4  9:49:26
对,消息,也就是方法
啃铁鼠<4>  9:51:25
消息怎么会是方法了?
啃铁鼠<4>  9:51:52
应该与运行的系统驱动方式有关吧?
承懿<2>  9:51:55
在objective c中消息就是方法
承懿<2>  9:52:10
这两个好像可以互称
啃铁鼠<4>  9:52:17
windows系统消息和方法是两个概念
trufun4  9:52:33
你可能没学前面的课,可以查查以往的记录
承懿<2>  9:52:33
windows中消息是message
承懿<2>  9:52:40
方法是对象调用的方法对吧
啃铁鼠<4>  9:52:58
是的
trufun4  9:53:00
是的
啃铁鼠<4>  9:53:15
通过消息映射实现的消息与方法的绑定
啃铁鼠<4>  9:54:11
在windows下,消息==事件
W-inds(5)  9:54:20
trufunwu老师,可不可以整理下以往的教学啊...整理成一个文件。
trufun4  9:54:24
调用事件,消息,方法是从不同角度看问题的同一个函数
啃铁鼠<4>  9:54:36
是的
啃铁鼠<4>  9:56:10
所处的层次不同叫法不同,都是为实现驱动机制叫法不同
trufun4  9:56:45
答案:一个对象有无数个状态
一米阳光(6)  9:58:26
我想问个db的问题 有谁对这块熟吗
trufun4  9:58:33
状态用对象的属性来表示
一米阳光(6)  10:00:55
trufunwu 老师 会数据库吗
webmaster(1)  10:01:12
每期的讨论记录都在网站论坛里面整理发布了
trufun4  10:01:13
什么问题
webmaster(1)  10:01:26
在论坛中的qq交流群记录中,大家可以查阅
一米阳光(6)  10:02:09
  有父子关系的表这么设计 有没有问题?
一米阳光(6)  10:02:35
我以前一直这么设计的 刚才查资料 有人说这种不符合数据库范式
trufun4  10:04:10
不规范
承懿<2>  10:04:37
第二个里面怎么两个pk?
trufun4  10:05:02
就这个问题
一米阳光(6)  10:05:09
一个Pk吧 截得别人的图
一米阳光(6)  10:05:42
等下 我重新截个图
trufun4  10:06:42
违反主键和外键是整体关联,而不是部分关联
一米阳光(6)  10:08:20
这样子吗?
trufun4  10:09:24
return
一米阳光(6)  10:10:02
好像在子集合中把父表主键作为主键 就会出现2个pk
trufun4  10:10:45
课后交流此问题
一米阳光(6)  10:10:58
哦 好的
trufun4  10:11:20
我们只关心那些对我们感兴趣的某个事件发出某种行为的状态
trufun4  10:13:01
今天的案例:                靓号状态   
“靓号”能被锁定,被锁定的“靓号”不能被其它用户再锁定。被锁定的靓号如果在15分钟内没被用户租用,则还回到初始状态,可以再被(其他)用户锁定。被 锁定的“靓号”可以被租用,租用到期后能被系统预留(即为先前的用户保护起来),预留一个月后如用户未续租,则此“靓号”可以被其他人锁定或租用。在租用 状态下的“靓号”,如果被同一用户累积租用超过半年,则可以买断。被买断后,此“靓号”变成普通号。
trufun4  10:16:07
分析出状态,事件,监护条件,效果
一米阳光(6)  10:17:38
作业交到那里啊
trufun4  10:17:54
讨论
啃铁鼠<4>  10:20:36
看起来好复杂啊
trufun4  10:21:36
跟我学分析,最后画成图,简单
承懿<2>  10:21:55
可惜我用的mac系统
承懿<2>  10:21:59
没uml工具
一米阳光(6)  10:22:25
trufunwu  状态图里面有没有回到起点的流程?
trufun4  10:23:08
用楚凡的,不但教用工具,而且教分析,多好
一米阳光(6)  10:23:41
呵呵   
webmaster(1)  10:23:52
trufun产品支持跨平台,mac操作系统没问题
一米阳光(6)  10:24:23
个人用户怎么收费啊....
trufun4  10:28:45
联系网管
承懿<2>  10:29:44
我就做一个系统用了UML之后就没用过了
trufun4  10:29:46
talenter(3)  10:27:14
累积租用超过半年
trufun4  10:28:05
累计租期是一个属性
一米阳光(6)  10:29:52
又没vs 环境下的免费版 我上网站看了下 只看到eclipse免费版
trufun4  10:30:26
先试用
trufun4  10:31:43
九头鸟的奋斗(705543728)  10:30:10
靓号的属性只有两种 :预留和非预留
trufun4  10:31:01
是否已预留是一个属性

守护者(7)  11:02:50
属性 是靓号
一米阳光(6)  11:03:05
靓号 是对象吧?
守护者(7)  11:03:07
锁定状态也可以成为锁定
trufun4  11:03:15
属性是是否锁定
守护者(7)  11:03:23
靓号可以是号的子类 也可以是号的属性
守护者(7)  11:03:27
都是可以的
守护者(7)  11:03:38
靓号也可以分成靓号和普通号
trufun4  11:03:38
号码为属性
守护者(7)  11:04:18
属性和子类多代表着不同 可以根据当前的需要变化
trufun4  11:05:18
事件为其他人锁定
守护者(7)  11:05:51
恩  这里的事件在实现上可以定义成 方法或者委托都OK
一米阳光(6)  11:06:26
@守护者  定义成方法我理解 定义成委托 我不大理解 能解释下吗
守护者(7)  11:06:51
 什么地方不理解
守护者(7)  11:07:12
是不理解委托本身 还是不理解 为什么可以定义成委托?
trufun4  11:07:19
效果就是对象接收事件后的动作
trufun4  11:08:31
效果为拒绝锁定
守护者(7)  11:08:44
定义成delegate后 可以 创建event来自的触发委托  不知道怎么解释行不行
一米阳光(6)  11:09:35
属性:  号码  是否锁定 是否靓号 锁定人,锁定开始时间
事件: 发起锁定
效果: 1.已经锁定 拒绝锁定
      2.没有锁定 改变锁定状态
这样?
守护者(7)  11:10:04
而且很多情况下  如果 暴露类和方法是紧耦合的  定义成delegate后  可以有效减除耦合   一米阳光这么说了解了吧
守护者(7)  11:11:22
状态在很多时候 都是在异步的时候用的   同步就不说了  太多了
trufun4  11:12:35
被锁定的“靓号”是监护条件,意思是不是所有对象对此事件都响应
守护者(7)  11:13:35
不是 从低耦合的角度来说  应需要特定的触发吧
一米阳光(6)  11:13:50
@守护者
我不大理解 为什么 要 有效减除耦合

我以往的经验中 定义了委托后,就可以在程序的执行流程中插入另外的执行代码
守护者(7)  11:14:05
要是我的话  就是用  delegate在域上面做控制 或者
trufun4  11:14:14
耦合是设计的概念
守护者(7)  11:14:24
使用代理模式来操作
守护者(7)  11:14:50
耦合和内聚是 设计理念
啃铁鼠<4>  11:15:08
低耦合就是为了设计的简单
守护者(7)  11:15:08
委托的使用 谁都会 小米
守护者(7)  11:15:17
告诉我你为什么会使用委托
一米阳光(6)  11:15:26
恩 是用过 但是不知道为什么要用
守护者(7)  11:15:29
使用的动机什么
守护者(7)  11:15:50
 如果 不知道动机为什么要用  
守护者(7)  11:16:10
那你让后面维护你代码的后来人怎么维护呢
一米阳光(6)  11:16:31
我使用委托的情况 都是因为要操作本身以外的对象
守护者(7)  11:16:43
我在程序的每一行代码都是用动机的 没动机的代码我宁愿不写
守护者(7)  11:17:00
操作本身以外的对象
有很多方式 为什么就是用委托呢
承懿<2>  11:17:13
讲一下委托的具体实例
承懿<2>  11:17:16
举一个听听
守护者(7)  11:17:24
也可以调用  代理  观察者  继承  很多方式呀
承懿<2>  11:17:29
有可能我用过,但是我不知道
承懿<2>  11:17:35
代理晓得
守护者(7)  11:17:39
为什么单单使用委托
承懿<2>  11:17:39
观察者也晓得
承懿<2>  11:17:48
delegate
承懿<2>  11:17:53
讲一下嘛
一米阳光(6)  11:17:59
可以不用关心 外部对象 的操作 过程 结果
守护者(7)  11:18:11
承  去网上看看得多是
trufun4  11:18:27
被锁定的靓号如果在15分钟内没被用户租用,则还回到初始状态,可以再被(其他)用户锁定,这句话的状态,事件,效果
守护者(7)  11:18:36
 定义成接口也可以看不到 操作过程
承懿<2>  11:18:39
你说的那个不用关心操作过程的那个不是建造者模式吗
守护者(7)  11:18:47
咋不用Interface呢
一米阳光(6)  11:19:28
rufun4  11:12:35
被锁定的“靓号”是监护条件,意思是不是所有对象对此事件都响应

我的理解是 所有的对象都响应,然后根据属性返回不同结果
守护者(7)  11:20:58
呵呵  观察者也可以呀  通过观察状态进行双向依赖   
一米阳光(6)  11:21:03
@守护者

我可能表达的有误
这么说吧
我使用委托 主要是引发event
告诉外部对象  你可以执行某某操作了
至于怎么操作,要不要操作 本身不去管

一米阳光(6)  11:21:33
建造者模式 我以前还真没有了解过
守护者(7)  11:21:49
 这才是我要问的  有时候为了接触双向依赖 才需要委托
守护者(7)  11:22:29
而且定义event后 委托能后自动触发   在一定的场合下能带来便利
一米阳光(6)  11:22:31
@守护者 我被绕糊涂了
trufun4  11:22:41
状态有两个,已锁定状态和初始状态
守护者(7)  11:22:49
 其实我就是在问你委托的使用动机
守护者(7)  11:23:03
因为 很多方式都能表达消息的传递
承懿<2>  11:23:11
像android的AlertDialog就是典型的建造者模式
trufun4  11:23:21
状态有两个,已锁定状态和初始状态
守护者(7)  11:23:21
不同情况下  最佳方案不一样 这就是我要问的
承懿<2>  11:23:22
 
守护者(7)  11:23:52
trufunwu  我把状态 用继承放在子类也表达 也OK吧
承懿<2>  11:24:06
你不需要知道里面是怎么实现的,传入不同的参数得到不同的界面
承懿<2>  11:24:16
里面的建造过程很复杂
一米阳光(6)  11:25:31
    刚才说的这些 我没有得到一个结论 我做的对不对  我该怎么做  为什么要这么做
trufun4  11:25:56
事件为未租用
一米阳光(6)  11:27:36
我真晕了  有没有基础书 我去啃啃
trufun4  11:28:43
效果是回到初始状态的回到行为
一米阳光(6)  11:29:53
复位行为 我更容易理解  回到行为 有点绕 呵呵
trufun4  11:31:01
可以再被(其他)用户锁定,是迁移后状态的内部行为
trufun4  11:33:11
剩下的网友自己分析
守护者(7)  11:33:38
呵呵
守护者(7)  11:34:04
tru 通过状态 给大家引了很多模式上的话题呀  呵呵
trufun4  11:34:16
谢谢
trufun4  11:36:09
这是我的观点,仅供参考
trufun4  11:36:55
 
守护者(7)  11:37:15
build模式    一个系统 没几个  除非是超级类  但是我设计的软件  多没有大型类 有也本大而化小了
守护者(7)  11:37:37
我写过一个有关代码的写过规则 当然 是以前项目制定的  可以去看看
守护者(7)  11:37:51
150行 以内的类能大到什么地方去呢  呵呵
trufun4  11:41:08
下次讨论组件图,记住带着问题来
守护者(7)  11:42:49
这图 是系统级的了  话题有点大
一米阳光(6)  11:43:09
trufunwu  已租用 和 已续租 为什么是2个状态?
守护者(7)  11:43:29
不做上层设计的话 一般不会用到组件图
守护者(7)  11:44:14
这样子能区分租用是 第一次租 续租  是第N次租
trufun4  11:44:41
对事件的响应(行为)不同
一米阳光(6)  11:46:12
是不是一个要记录开始时间 一个不用记录?
守护者(7)  11:46:20
很有可能第二以后在租用 就会打折 打折的话 和全款 就是不同的行为  所以状态会不一样的
trufun4  11:46:52
属性讨论已谈过,有租期
一米阳光(6)  11:47:40
根据 租期  来决定是否买断 是吧
trufun4  11:48:26
是的
posted @ 2011-12-20 17:07 trufun 阅读(296) | 评论 (0)编辑 收藏

trufun1 9:38:26
UML开课啦,今天讨论序列图
talenter(2) 9:39:22
即使不会 每次都踊跃参加
trufun1 9:44:24
用例是反映用户和系统之间的交互,那系统是如何响应用户动作呢?
talenter(2) 9:44:58
清水 你回答吧
talenter(2) 9:47:58
用例是反映用户和系统之间的交互,那系统是如何响应用户动作呢?
trufun1 9:48:02
系统通过内部对象通信,来完成系统响应,用序列图来反映这个过程
trufun1 9:59:29
我给大家一个借书实际例子,这是网友上次要求的
trufun1 10:00:36
用例“借书”描述如下:
1.图书管理登录图书管理系统,进入借阅界面。
2.输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮。
3.如果借阅者没有预定:
h 确定标题
h 确定该标题下有效的书目
h 确定借书者
h 图书馆将书借出
h 登记一个新的借阅
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
5.系统显示一个成功借阅记录。

trufun1 10:02:47
大家讨论一下怎样用序列图表示这个过程?
咖啡刀(232778741) 10:02:54
呵呵  这个例子用了很久了吧
talenter(2) 10:03:28
经典的例子  犹如 hello world
trufun1 10:03:38
众口难调
trufun1 10:04:27
也欢迎大家出题
trufun1 10:06:29
先找角色
trufun1 10:09:30
hawk(4)  10:04:51
需要借阅者和图书管理系统
trufun1  10:06:36
先找角色

==================欢迎登录www.trufun.net下载免费UML2建模工具===============

trufun1  10:08:16
借阅者不是角色
trufun1  10:09:19
图书管理员是角色
talenter(2) 10:10:51
操作员是 图书管理员
trufun1 10:12:18
再找界面类
talenter(2) 10:13:02
登录界面
talenter(2) 10:13:09
借阅界面。
talenter(2) 10:13:33
预定界面
trufun1 10:13:40
好,还有?
talenter(2) 10:13:48
图书显示界面
trufun1 10:14:01
很好
talenter(2) 10:14:03
借阅记录界面
talenter(2) 10:14:39
还有吗?
talenter(2) 10:14:59
借书人(读者)
talenter(2) 10:15:06
借书人(读者)信息界面?
trufun1 10:15:43
good
隐身<4> 10:17:51
画用例图为什么要找“界面”?
talenter(2) 10:18:17
时序图吧
隐身<4> 10:18:57
哦,没看清楚,
trufun1 10:19:19
接着找控制类
talenter(2) 10:19:32
隐身 你找控制累啊
talenter(2) 10:19:50
登录验证类型。
trufun1 10:20:22
新手可看以前的记录
trufun1 10:21:43
还有?
talenter(2) 10:21:49

talenter(2) 10:21:50
继续找
talenter(2) 10:22:21
忘记控制类是个啥概念来
坚持(4) 10:22:40
规则
talenter(2) 10:22:41
信息显示控制类(借阅成功否)
trufun1 10:23:04
对流程,验证
talenter(2) 10:23:05
预定否控制类
坚持(4) 10:23:22
控制类就是规则  人 事 物 规则中的规则
talenter(2) 10:23:28
你们找啊
talenter(2) 10:23:29
坚持
坚持(4) 10:23:39
啊?
talenter(2) 10:23:48
坚持 你找啊 你也是老师?
trufun1 10:23:50
借阅类
隐身<4> 10:24:16
时序图是在类图之前画还是之后画?
trufun1 10:24:47
一般在后面,可看楚凡TUP
隐身<4> 10:25:39
控制类我觉得应该是是一些对象吧,而抽象出来的对象可能每个人的都不一样,所以时序图也不尽相同。
trufun1 10:26:13
所以 登录验证和借阅规则是两个控制类
trufun1 10:26:41
先找类,后面说对象
trufun1 10:28:48
再找实体类
trufun1 10:31:10
书是不是
trufun1 10:31:40
标题是不是
trufun1 10:31:54
还有?
talenter(2) 10:32:11
标题不是
talenter(2) 10:32:14
书是
talenter(2) 10:32:18
借阅者 应该也是吧
talenter(2) 10:33:15
管理员也是个
trufun1 10:33:39
是的
坚持(4) 10:33:41
哦,原来是在上课呀
坚持(4) 10:33:42
呵呵
talenter(2) 10:34:10
书  借阅者  管理员    借阅记录(?)
talenter(2) 10:34:38
对啊 坚持 每周二授课啊  你积极点啊。。 学习还不积极。
坚持(4) 10:35:03
哈哈,不好意思,刚刚上来没搞清状况
trufun1 10:35:06
还有预定实体
talenter(2) 10:35:56
:)
talenter(2) 10:36:32
找完了吗?
隐身<4> 10:36:40
图书馆算不算一个?
talenter(2) 10:37:13
图书馆就一个对象
坚持(4) 10:37:15
不算
talenter(2) 10:37:29
我感觉  都行吧。。 太广泛了。。
trufun1 10:37:39
在该序列图被抽象掉
trufun1 10:38:34
无需和此对象通信
trufun1 10:39:22
下面我找消息流
talenter(2) 10:40:11
消息流找的思路是?
talenter(2) 10:40:14
流转?
talenter(2) 10:40:52
登录   查找,确认   借出  还有半个取消预订? 这些算吧?
坚持(4) 10:41:34
迟到的同学小声问一下,题目在哪里呢  
talenter(2) 10:42:00
我给大家再发一遍
talenter(2) 10:42:20
trufun1 10:00:36
用例“借书”描述如下:
1.图书管理登录图书管理系统,进入借阅界面。
2.输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮。
3.如果借阅者没有预定:
h 确定标题
h 确定该标题下有效的书目
h 确定借书者
h 图书馆将书借出
h 登记一个新的借阅
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
5.系统显示一个成功借阅记录。
trufun1 10:42:26
注意现在开始前面的类都实例化成对象了
talenter(2) 10:42:48
都是具体的东东了?
talenter(2) 10:42:53
老师 指点12
trufun1 10:46:15
.“图书管理登录图书管理系统,进入借阅界面”,可以单独成为一个登陆序列图,在这里只要引用就可以了
trufun1 10:48:54
.“输入是否预定的信息、需要借阅的书或杂志的标题、借阅者, 最后点击“借阅”按钮”是角色和界面在通信
talenter(2) 10:49:37
学习ing
trufun1 10:52:46
”3.如果借阅者没有预定,4.如果借阅者有预定“,是那个对象和那个对象在通信?
talenter(2) 10:53:35
角色和控制类?
talenter(2) 10:53:47
不做借阅者不是角色
talenter(2) 10:54:10
借阅者和 预订实体通信
trufun1 10:55:33
是借阅控制对象和预定实体类在通信
talenter(2) 10:56:05
哦  控制对象和 预订实体  说成借阅者不对了  哈哈
trufun1 10:59:48
“确定标题”是那个对象和那个对象在通信?
talenter(2) 11:01:05
书和?
talenter(2) 11:01:30
管理者?
trufun1 11:01:35
不对
talenter(2) 11:01:42
有书对吧?
trufun1 11:01:50
没有
talenter(2) 11:03:09
不懂了
trufun1 11:03:32
是借阅控制对象和标题对象在通信
talenter(2) 11:04:36
标题 抽象了个实体?
talenter(2) 11:04:58
标题 不是书的一部分? 组成部分?
坚持(4) 11:05:10
看抽象的粒度了
坚持(4) 11:05:36
你可以认为标题仅仅是书的一个属性
talenter(2) 11:06:07
标题抽象 怎么抽象?
坚持(4) 11:06:07
也可以认为它是一个独立的对象,可以拥有自己的信息和行为
trufun1 11:06:30
不是,图书馆不但有书,还有杂志等,是对这些的总称
talenter(2) 11:07:05
这个标题不是书的标题?
talenter(2) 11:07:18
确定标题  是确定是书还是杂志?
talenter(2) 11:07:21
还是小说?
坚持(4) 11:07:46
4.如果借阅者有预定:
h 确定借书人
h 确定标题
h 确定该标题下有效的书目
h 图书馆将相应的书目借出
h 登记一个新的借阅
h 取消预定
这个链路下,标题并不是书的一部分
trufun1 11:07:50

talenter(2) 11:08:23
ok
trufun1 11:09:26
 “确定该标题下有效的书目”是那个对象和那个对象在通信?
talenter(2) 11:09:54
标题和书?
trufun1 11:10:29
很好
talenter(2) 11:11:20
这种在实现上怎么弄呢?
talenter(2) 11:11:25
标题是个对象
talenter(2) 11:11:28
书是个对象
talenter(2) 11:11:41
对象之间有关联  哪个负责去确定呢?
trufun1 11:11:42
最后我说
trufun1 11:12:22
不是关联是消息链
talenter(2) 11:13:01
哦  怎么通过消息链去实现?
talenter(2) 11:13:12
我们在实现的时候怎么去组织代码?
trufun1 11:13:52
甲调乙的方法实现消息通信
talenter(2) 11:14:58
传递的参数呢
trufun1 11:15:08
这是个例子
talenter(2) 11:15:22
从标题确定书目  应该是标题调用书目的方法吧。
trufun1 11:15:51
消息中的参数,就是方法中的参数
trufun1 11:16:00

talenter(2) 11:16:07
好比 书目有个方法是 根据标题查书  这样子的话就要把标题当做参数传递吧?
trufun1 11:16:37
是的
talenter(2) 11:16:58
从类的关系上来说是关联吧  
talenter(2) 11:17:37
为啥说不是关联是消息链那  是不是角度不一样 或者再不通的图例中不一样。  
trufun1 11:18:23
在动态和静态中叫法不同
坚持(4) 11:19:10
关联是静态关系
trufun1 11:19:18

talenter(2) 11:19:19
哦 好的
talenter(2) 11:19:39
谢谢。
talenter(2) 11:19:49
坚持 你能主动回答问题吧
talenter(2) 11:21:08

talenter(2) 11:21:13
我想学习
talenter(2) 11:21:21
我感觉学习下还是不错的  机会难得。
trufun1 11:22:26
“确定借书者”是那个对象和那个对象在通信?
talenter(2) 11:23:57
借阅控制对象和借阅者实体类在通信
talenter(2) 11:25:37
  学着学着就有点会 但是还不太会。
trufun1 11:26:04
不错啦
talenter(2) 11:26:19
谢谢
trufun1  11:48:46
下次讲状态图,记住带着问题来

==================欢迎登录www.trufun.net下载免费UML2建模工具===============
posted @ 2011-12-13 16:01 trufun 阅读(375) | 评论 (0)编辑 收藏

初学UML者,应该避免这样一种误解――认为就是由参与者和用例构成的用例图就是用例模型,用例图只是在总体上大致描述了系统所能提供的各种服务, 让我们对于系统的功能有一个总体的认识。但用例图并非如此,在用例图中我们还需要针对每一个用例描述它的详细信息,这些信息包含在用例规约中,因此用例模 型应该是由用例图和每一个用例的详细描述――用例规约所组成的。每一个用例的用例规约都应该包含以下内容:

l       简要说明 (Simple):简要介绍该用例的作用和目的。

l       基本流 (Basic Path):表示用例正常的场景。在基本流中系统执行一系列活动步骤来响应参与者提出的服务请求。

l       异常流 (Exception) 描述与该用例相关的非功能性需求(包括性能、可靠性、可用性和可扩展性等)和设计约束(所使用的操作系统、开发工具等)。

l       前置条件 (PreCondition) 执行用例之前系统必须所处的状态。

l       后置条件 (PostCondition) 用例执行完毕后系统可能处于的一组状态。

l       备选流(Alternate)描述用例发生过程中偶尔或者异常发生的场景。

在UML2建模工具中都有提供针对用例的相关描述内容,下面我们以Trufun Plato UML2建模工具为例进行具体案例的用例描述(可到www.trufun.net上免费下载)。

用例规约基本上是用文本方式来表述的,为了更加清晰地描述用例的事件流,也可以选择使用状态图、活动图或时序图来辅助说明(具体可参考Trufun 其他框图操作)。如活动图有助于描述复杂的决策流程,状态转移图有助于描述与状态相关的系统行为,序列图适合于描述基于时间顺序的消息传递。

比如用户pose机上取款用例,可以对该用例进行相关的场景描述。


Trufun Plato UML2建模工具还可以根据以上的用例场景描述,生成的标准的需求用例规约文档,下图是TrufunPlato UML2建模工具生成的用例规约文档的word文档结构图。操作步骤:菜单项“UML建模”—》“导出”—》“导出为文档”,在弹出对话框中选择模板为 “需求/用例实现规约”,其他根据自己需要进行设置,系统将自动生成我们所需要的word文档。

posted @ 2011-12-13 16:01 trufun 阅读(700) | 评论 (0)编辑 收藏

一.基于UML2标准的活动图模型

活动图可以通过一系列操作将业务流程或者软件进程以工作流的形式表示出来,使用活动图可以描述多种类型的流程:

可以表示用户和系统之间的业务流程或者工作流;

可以表示某一个用例执行的顺序步骤;

可以表示软件组件之间的交互流程。

这里我们通过举例,应用Trufun Plato建模工具针对一个用例的活动过程来进行描述,具体操作步骤:选择Trufun模型浏览器中已经创建好的用例,右键菜单选择“新建框图”—“创建 活动图”,或者选择当前绘图区需要进行详细活动图描述的用例,右键菜单选择“新建框图”—“创建活动图”。如下两图


Trufun Plato UML2建模工具进行绘制(可到www.trufun.net上免费下载)。

二  活动图

创建活动图之后,Trufun Plato工具会自动展开活动图的绘图区和工具框如下图Trufun Plato提供的活动图工具框:每一个活动元素的具体含义和详细操作步骤可以参考http://www.trufun.net/helponline/x/


基本活动图元素:一般一个活动图基本要包含活动、控制流、判断、合并、分支这些元素,活动用来表示流程中的某个活动或者步骤,控制流表示活动之间的 控制顺序,判断用于不同条件产生不同结果的转移,合并和分支用于多个并行活动之间。Trufun Plato按照UML2标准提供了具有明确含义的30多种活动,可根据实际情况选择应用。

活动图的创建也并非事无巨细,不需要面面俱到,对于活动图中共用的部分,也可以作为一个独立的活动图,然后在其他活动图中嵌套利用,比如下面的流程 图就可以把银行卡的校验部分,就可以作为一个单独的活动图,其在用户的转账、取款、查询、存款过程中都需要用到。对于特别复杂的流程,或者那些希望在一副 活动图中展示所有流程细节的,那么选择在活动图中引入子活动图,就是一种非常方便的方法,否则我们所展示的活动图流程将使人非常难以看全和理解。


不同的活动图用在项目的需求、分析、设计过程中,所关注和创建的内容也是不同的。本过程也可以在需求开始时候简单处理,帮助参与者理清相关的流程即可,如下图:


使用分区(泳道):Trufun Plato建模工具中,提供分区作为活动图划分的泳道,每条泳道代表整个工作流程的某个部分的职责,该职责由组织的某个部门来执行,泳道之间的排序不会影 响其语义,每个活动状态都会属于一条泳道范围,而数据流和控制流则可以在不同泳道之间流转。

posted @ 2011-11-21 15:19 trufun 阅读(1013) | 评论 (0)编辑 收藏

讨论中所用到UML2建模建模工具为trufun plato,可到www.trufun.net官方网站免费下载!欢迎大家加入trufun家园2qq:15851850交流群,有trufun支持现场解答相关UML应用问题


海东青(1)  10:37:13

 海东青(1)  10:37:28
其它的动作是否可以呢
CK(2)  10:38:14
这么去想:你是销售员,让你平白无故去录入销售单,你愿意吗
CK(2)  10:38:25
没事在那输单子
 海东青(1)  10:38:45
可是这是工作啊,谁让他赚这份钱了呢
CK(2)  10:38:57
至少不能够作为第一层业务用例
CK(2)  10:39:05
第一层应该是销售商品
 海东青(1)  10:39:04

trufun3  10:39:10
入库管理,库存盘点
 海东青(1)  10:39:58

 海东青(1)  10:40:23
对,销售商品的概念要大多了
trufun3  10:40:36
我觉得是
 海东青(1)  10:40:49
比如去库房取货等动作
trufun3  10:41:00
可以再分低级用例
 海东青(1)  10:41:21
那么,就是这么说,这些用例图是不能体现各种表单字样的呗
trufun3  10:41:40
如销售订单管理,销售退货,销售统计
 海东青(1)  10:42:19
trufun3  10:41:40
如销售订单管理,销售退货,销售统计
你说的这些应该是现低级用例呗
trufun3  10:43:06

trufun3  10:43:36
销售管理是高级用例,相当于子系统
 海东青(1)  10:44:54

trufun3  10:45:48

trufun3  10:46:07
但图画错了
 海东青(1)  10:46:34
差什么呢
trufun3  10:46:53
高级和低级用例之间不是单向关联
trufun3  10:47:19
而是包含扩展关系
Edoox(4)  10:47:55
包含和扩展是两个关系吧?
 海东青(1)  10:48:07

Edoox(4)  10:48:15
高级和低级用例应该使用包含关系
 海东青(1)  10:48:23
这是包含,包含和扩展是什么区分概念呢
trufun3  10:49:07
包含是必须做,扩展是可选做
 海东青(1)  10:49:19
哦,明白
Edoox(4)  10:49:39
包含,比如使用入库管理功能必须要登录系统,
 海东青(1)  10:50:13
那每个动作都有这个登录系统的动作,不能集中到一个用例中去吗?
trufun3  10:50:29
是的
 海东青(1)  10:50:32
有些系统的查询是不需要登录系统的
trufun3  10:50:47
作为其他用例的包含用例
 海东青(1)  10:51:08
如医院住院费用查询,只需要输入住院号,查询就可以了,还有网站,只有管理员才登录
trufun3  10:52:10

 海东青(1)  10:52:35
这个图,默认都需要登录,不可以吗?
trufun3  10:53:18
不行
 海东青(1)  10:53:32
比如,销售商品部分,包含登录系统
那入库管理,也包含登录系统,那我岂不是要action后面都要包含一个登录系统的动作
trufun3  10:54:34
一般是单点登录,做一个就可以了
Edoox(4)  10:55:11
建议按角色划分下,一个角色所执行的用例都应该包含系统登录用例
trufun3  10:55:28
如果是各个子系统都有自己登陆入口,当然要画了
trufun3  10:56:09
画业务用例图
 海东青(1)  10:57:47

 海东青(1)  10:58:04
Edoox(4)  10:55:11
建议按角色划分下,一个角色所执行的用例都应该包含系统登录用例

是这样的画法吗?:
trufun3  10:58:22
很好
Edoox(4)  11:01:58
good
trufun3  11:02:35
Edoox,你有问题吗?
 海东青(1)  11:03:15
,以我的示例,能帮助大家理解一下这个用例图,是最好的啦,不行,直接画到底,有时间大家就讨论一下,直到类图,呵呵,不知道大家能否帮忙到底啊
trufun3  11:03:42
下次讨论类图
Edoox(4)  11:03:45
一般,人员应该抽象为系统用户,其他的人员都可以继承这个系统用户,凡是系统用户都执行系统登录用例。
trufun3  11:05:00
当然可以,设计没有标准答案
trufun3  11:05:31
只要有道理就可以
trufun3  11:06:57
系统用户不是抽象出来的
trufun3  11:07:32
而是一个实实在在的对象
trufun3  11:08:00
可以在实现系统外,也可以在实现系统内
Edoox(4)  11:09:26
恩,有道理
 海东青(1)  11:10:32
有道理
trufun3  11:10:47

trufun3  11:12:27
用例图是谁发明的?
 海东青(1)  11:13:38
我又改了一下,感觉库存盘点跟入库单管理是一个层次的,大家再评评
 海东青(1)  11:13:40

trufun3  11:14:22
进步很大
 海东青(1)  11:14:30

 海东青(1)  11:14:53
下午再细化一下,准备考虑详细内容
trufun3  11:14:58

trufun3  11:15:19

 海东青(1)  11:15:23
先工作一会儿啊,哈哈,受益匪浅啊
trufun3  11:15:44

trufun3  11:19:05
记住下次带问题来
 海东青(1)  11:19:42
好的
 海东青(1)  11:19:52
肯定很多的问题
trufun3  11:20:09
888
 海东青(1)  11:20:14
这个用例图画完了,下一个应该是什么图呢,肯定不是直接到类图了吧
trufun3  11:20:53
是的
 海东青(1)  11:21:02
我想是不是序列图呢
 海东青(1)  11:21:14
部署图是什么时候画的呢
trufun3  11:21:40
按理论应该是活动图
 海东青(1)  11:22:08
好,谢谢了
CK(2)  11:27:15
个人感觉,订货单管理不属于库存管理,属于采购管理。
另外你这个订货单是指你的用户向你订货,还是你向供应商订货,有歧义
 海东青(1)  11:28:01
是根据缺货生成的订货单
 海东青(1)  11:28:10
应该放店主那儿,对吧
CK(2)  11:40:29
根据缺货生成的订货单,那属于采购的业务
CK(2)  11:40:38
应该属于采购员的职责
CK(2)  11:40:51
你少一个角色
trufun3  11:41:38
这里的角色是库管
trufun3  11:42:13
也可以是销售员
trufun3  11:42:55
销售订单可以转化为采购订单
trufun3  11:43:40
库存要货单也可转化为采购订单
trufun3  11:43:54
角色不是采购员
CK(2)  11:45:04
你的“订货单管理”,管理的是订货单,不是缺货单
CK(2)  11:45:12
这2个是可以转化,但是不是一个业务实体
CK(2)  11:45:30
你如果在这里没分清,到后面抽出业务实体,定义系统对象的时候,就会模糊
CK(2)  11:46:13
库管可以产生“原料需求清单”,也可以叫做“缺货单”。这个单子可以作为产生“采购清单”的数据来源,但是不代表他们是一个东西
CK(2)  11:47:08
我认为还是分清楚点好。特别是做一些大的项目,看的更明显。

比如货物可能有替代性,你缺少A,不一定采购A,可能采购B,C代替之
trufun3  11:47:16
订货单里没讲清楚,是采购订货单,还是销售订货单
Edoox(4)  14:43:04
CK的业务经验很丰富,概念很清晰。
深蓝医生(45383850)  14:44:40
不错,受教 

 

==================欢迎加入UML交流群讨论相关问题===================
posted @ 2011-11-09 11:48 trufun 阅读(229) | 评论 (0)编辑 收藏

备受关注的新一代需求管理工具Trufun Bacon X正式发布!
它集现有需求管理工具Telelogic 和Requisite Pro之大成,为用户的需求管理提供了一个新的、更加强大的选择!

Trufun Bacon是一个跨平台、企业级应用的需求管理工具,它提供了所有你需要捕获、连接、跟踪、分析与管理各类用户信息的功能特点,贯穿于我们项目开发的全过 程中,以保障项目符合所描述的需求和标准。为满足业务需要的沟通,Trufun Bacon支持不同功能小组之间的协同开发,使用户可以检验所构建系统是否正确以及所构建的方式是否合适。Trufun Bacon提供类似word的富编辑界面,实现管理用户需求和需求变更,帮助项目团队改进项目目标的沟通,增强协作开发,降低项目风险,以及在部署前提高 应用程序的质量。

在线帮助:http://www.trufun.net/helponline/bacon/

演示网址: http://euml.trufun.net/bacon/bacon。其中登录页面中“Bacon服务器”为"http://localhost:8083/com.trufun.bacon.service/",用户名和密码都为"admin"。

Trufun Bacon客户端支持Web,RCP和Eclipse插件。后者为富客户端,即独立应用。如需富客户端、服务器下载或者咨询购买事宜,请联系我们(QQ: 344593239,570147781;或通过网站的在线客服系统咨询)。

Trufun Bacon WEB版和客户端(RCP或eclipse插件)的区别:
1、 WEB版仅提供了一个纯文本编辑器和HTML浏览器。而客户端是HTML编辑器,可以支持富文本编辑,并且支持图像的上传。
2、 WEB版不支持基线的导入、导出、比较和浏览功能。
3、 WEB版不支持登录页面的保存密码功能。
4、 WEB版不支持视图的编辑和配置,为只读视图。
5、 WEB版不支持WORD导入,HTML导出和UML导入和导出。
posted @ 2010-09-25 16:36 trufun 阅读(825) | 评论 (1)编辑 收藏

Trufun五周年庆典,UML产品买一送二活动

 为庆祝西安楚凡科技有限公司成立5周年,特举行Trufun系列UML产品买一送二活动,即日起购买一套Trufun Kant Studio产品可获赠2套Plato企业版产品,多买多送,同时还有赠送企业内训的活动,欢迎通过网站在线客户、qq:344593239、email:webmaster@trufun.net、029-88346234等方式咨询具体解决方案内容。

 Trufun产品是基于开放的、模块化的、久经考验的一站式软件开发平台,提供了一个有针对性的产品、服务和最佳实践组合。我们可以帮助您优化软件和系统交付流程,最大化项目预算资金的使用,提高质量,并加强项目利益相关人之间的协作。


posted @ 2010-08-11 16:03 trufun 阅读(97) | 评论 (0)编辑 收藏

Trufun 4+3 OOAD&TUP全过程实战课程


◆ 培训目的:为解决国内软件开发企业/团队普遍存在的诸如“采用面向过程的思维方式进行面向对象的 开发;建模是累赘,基本不进行建模;UML概念和过程基本都了解,但是在实际项目中却无从下手,不知道何时该建何种模型……”等问题,楚凡科技结合多年产 品开发经验、企业内训和客户反馈情况,特在暑期启动此培训活动。我们希望可以通过基于TUP的规则和规范来指导、剖析真实的软件项目,来帮助学员建立完整 的面向对象的软件过程,真正掌握和应用软件过程、UML规范和建模工具到实际的软件开发活动中,并由此大幅提高开发效率和软件开发质量。
◆ 培训内容:OOAD&TUP全程实战,项目来源于学员提供项目
◆ 培训时间:2010年7月25日--2009年7月31日(七天)
◆ 培训对象:项目经理,高级工程师、系统分析师、架构师、软件工程教师。要求有一定面向对象开发基础,了解UML基础知识。
◆ 培训安排:第一天:UML基础;第二天到第四天:OOAD&TUP过程;后三天内容可选:需求管理、软件测试、架构设计、软件复用、设计模式(学 员可根据民主决策过程,挑选其中2种进行专题详解)
◆ 培训费用:可根据自己情况参加前4天课程或者全程7天课程讲解,前四天费用4500元,后三天可结合需要选择参加,每加一天课程加1200元费用。(培训 费用含培训期间食宿费,差旅费自理)
◆ 培训优惠:参加全部7天课程赠送价值4000元的Trufun Plato X企业版新一代uml2建模工具。
◆ 培训地点:西安高新区
◆ 培训证书:Trufun UML高级分析设计师证书(7天)和Trufun TUP高级工程师认证证书(4天)。
◆ 培训专家:Trufun 高级培训师,资深UML专家,TUP标准制定者之一。丰富的软件开发、项目管理经验和培训、咨询经验。曾在北京、上海、深圳等多地为多家大中型企业、军 队、高校实施TUP全过程实战内训、OOAD培训、UML2培训等。
◆ 培训内容:
TUP,即Trufun统一过程,是中国唯一的 UML工具厂商—楚凡科技基于多年CASE工具研发,及软件工程研究和咨询而提出的全新软件开发过程。TUP整合面向对象的分析设计过程,是一种以模型为 中心的全新软件开发过程模型。它的核心思想认为软件的开发过程是构建从需求到最终实现代码的一个个中间演化模型,该模型分为三个阶段:草图、蓝图、精图, 它的过程方法是一种组合方法,不同的阶段采用不同的过程方法,草图阶段采用迭代法,蓝图阶段采用增量法,精图阶段采用组件开发法。整个过程共有13个活 动,若干目标和成果,3个里程碑。
       TUP软件开发过程主要希望达到以下目标:
1. 简化建模过程,是建模过程的工作量减少,无需建立多套模型。
2. 无需多个角色相互完成一个模型,建模过程只有两个角色,系统建模人员和子系统建模人员,系统建模人员主要完成与系统架构有关的建模和子系统之间的关系建 模。子系统建模人员每人负责一个子系统,完成从蓝图到精图的全部建模,避免了由于频繁交流而引起不必要的成本增加。
3. 整个建模过程概念统一,避免对同一个概念为了适应过程模型而作不同修改,比如出现象“业务用例、分析用例、实现用例、测试用例”等大量的新概念。
4. 与以前的面向对象概念接轨,如OOA,OOD,OOT等概念在TUP可以找到相应的位置。并且和以前的定义不矛盾。
5. 从软件开发过程来看,覆盖了从需求定义到软件实施以后的升级开发所有活动,从技术上看,覆盖了从对象、类、组件、模式、架构的所有元素。
6. 与楚凡科技的建模工具结合,最大程度地实现需求、分析、设计、代码空间统一和相互转换。
7. TUP根据企业的实际情况进行定制和裁剪。

培 训咨询:029-88346234    webmaster@trufun.net

posted @ 2010-06-10 15:55 trufun 阅读(1249) | 评论 (0)编辑 收藏

UML对很多人来说应该不是一个陌生的概念,这一两年来,UML被大家越来越多的讨论着。本来UML跟 我这个主题似乎并不能扯上多大的关系(它是语言无关的,甚至可以说其本身就是一种语言——用于交流的)。我在此谈到它有两个目的:
1. UML是针对面向对象软件开发的,而C++正是这样的一种语言
2. UML在设计中被越来越多的使用着,而下一篇杂谈准备讨论设计模式,如果不了解UML,那么无法进行下去
UML,全称:Unified Modeling Language,其目的是为了对软件密集型的制品进行可视化、详述、构造和文档化的图形语言。UML是依据许多前人的思想总结出的成果,1997年被 OMG通过并成为标准(所以在《设计模式》书中如果你看到与标准不一样的地方,不要奇怪,那本书是95年的)。关于UML的历史和更详细的描述,可以参考 《UML 参考手册》。UML主要由一系列视图组成,其中包括静态视图(Static view),用例视图(Use case view)活动视图(Activity view)等,不同的图用处自然也不一样,而对开发人员来讲(或者说为我的下一篇来说),更重要的应该是静态视图中的类图(class diagram)和交互视图(Interaction view)中的顺序图(Sequence diagram),请注意view和diagram的区别。
类图
静态视图说明了对象的结构,其中最常用的就是类图,类图可以帮助我们更直观的了解一个系统的体系结构,有时侯,描述系统快照的对象图(Object diagram)也是很有用的。在这里,我们主要介绍类图,下面的图就是一个简单的类图:
在类图中,类由矩形框来表示,如上图中,定义了4个类,分别为Base、A、B、C,类之间的关系通过各种线条和其他符号来表示,在上图中,空心的三角表 示继承关系,在UML的术语中,这种关系被称为泛化(Generalization),所以上面的类用等价代码表示为:
class Base{…};
class A:public Base{…};
class B:public Base{…};
class C:public Base{…};
我们再看下一幅图:

这幅图与上幅几乎没有什么区别,唯一的不同就是Base类中增加了成员,一个私有的integer _x(UML术语为property)和一个公有的fun()的函数(method),是否需要这些类的内部细节UML本身并没有限制,完全取决于你自己 如何使用,UML的用处在于帮助你了解系统,所以只要你自己觉得足够清楚,那么够了,不要再复杂了。
接着看第三幅图:

上面图中的箭头表示一种关系,箭头另一边有一个菱形(空心)表示聚合(aggregation),聚合的意义表示has-a关系,其等价代码如下:
class A{…};
class B{ A* theA;…};
聚合是一种相对松散的关系,聚合类B不需要对被聚合的类A负责。
下面的图:
这幅图与上面的唯一区别是菱形为实心的,它代表了一种更为坚固的关系——组合(composition)。组合表示的关系也是has-a,不过在这里,A 的生命期受B控制,通常情况,等价代码如下:
class A{…};
class B{A theA;…};
即A会随着B的创建而创建,随B的消亡而消亡。
下图:
这里B与A的关系只是一种依赖关系,这种关系表明,如果类A被修改,那么类B会受到影响,一个简单的例子就是:
class A{…};
class B{fun(A params);…};
常用的关系就是我们上面用的这些,通过这些关系和类表示的类图,我们可以用图形化的方式描述一个系统的设计部分,当你习惯使用UML后,你会发现,这往往 比你告诉同伴某某类从某某类派生,派生类又和某某类具有什么关系容易的多。
顺序图:
UML中另外一个常用的图形就是交互视图中的顺序图,在以往的过程化语言中,我们通常使用流程图来描述一个函数(系统)是如何工作的,而在面向对象的系统 中,这显然是不可行的,而顺序图正是来解决这个问题的。
假设有如下的伪代码:

class circle
{
public:
void fillcolor()
{
//  ...
};
void draw()
{
  fillcolor();
};
};
class window
{
public:
void drawcircle()
{
  _circle.draw();
};
private:
circle _circle;
};
对于下面的调用:
window wnd;
wnd.drawcircle();
对应的顺序图如下:

图中上方的方块表示参与的对象,垂直的虚线表示对象的生命线,方框表示激活,其中箭头表示了一个调用消息(也可以有回送return),如果是异步的消 息,则用半箭头表示,其中draw表示了一个自调用(self call)
至此,UML中最常用的(从开发人员的角度),当然UML的内容远远不只这些,这里的介绍只是一些简单的概括,并且UML本身也在不断的发展之中,无论怎 样,我觉得UML会越来越多的深入我们的开发过程中,特别是对下一篇我们要介绍的设计模式而言,类图是主要的描述工具(到那个时候你会体会到UML描述的 优越)。
如果你看过《设计模式》着本书,你会发现与我上面所描述的有一些细微的不同,不要紧张,《设计模式》是GOF95年的作品,那时候UML还没有形成,而 且,其中也明确那是OMT方法(Jim Rumbaugh在通用电气发表的建模技术——Object Modeling Technique)和Booch方法。如果你觉得UML有些让你无所适从,也不必紧张,UML本身只是一个辅助工具,它的目的是帮助你描述系统,不是复 杂你的工作,如果你的系统很简单,一句话可以说的很清楚,那么不要用UML,如果你只想说明类之间的关系,而不是类的接口描述,那么像第一副图那样简单的 描述就很好,总之不要去追求细节,只要能说明问题,那么你的目的就达到了(甚至你没有必要完全遵守规范)。

参考书目:
《设计模式——可复用面向对象软件的基础》
作者: Erich Gamma 等 译者:李英军 马晓星 蔡敏 刘建中 机械工业出版社2000
《UML参考手册》作者: James Rumbaugh Ivar Jacobson Grady Booch
译者: 姚淑珍 唐发根 机械工业出版社2001
《UML精粹——标准对象建模语言简明指南(第2版)》
作者: Martin Fowler&Kendall Scott 译者: 徐家福 清华大学出版社 2002
《Design Patterns Explained》Alan Shalloway, James R. Trott
Addison-Wesley Pub 2001
转自http://bbs.chinabyte.com/thread-358355-1-1.html
posted @ 2010-06-10 10:22 trufun 阅读(134) | 评论 (0)编辑 收藏

关键字:Java开发 UML 知道UML造成了怎样的局面大混乱吗?知道什么样的功能是UML拥有但JAVA不具备的吗?知道我们为什么需要除JAVA外的另一种电脑语言吗?UML并 不仅仅只是JAVA或者其它什么语言的替代品。UML并不仅仅只是JAVA或者其它什么语言的替代品。UML是面向对象的分析及设计的注释。UML是独立 于那些传统设计语言之外的一种语言。因为UML并不依附于某种语言,而且它被用作是联系沟通Java、 C++ 、Smalltalk等语言的基础工具。通过使用UML,可以在开始编码之前规划好整个系统,并且开发人员清楚自己所负责的模块在整个系统中所起的作用。  

更为重要的是,UML可以帮你记录下从设计就开始出现的错误,要知道糟糕的设计会带来一系列的麻烦。设想一下,在源代码编制到 一半的时候,你突然发现你所需要的信息已经枯竭了,但你却没有办法重新取得信息,因为你没有引用OBject,甚至于你引用了object,然而信息确是 非public的。显然的,你将花费数天时间来找出代码的变化。  

UML可以帮您摆脱如下一些困境:代码随着细节的增多而累积, 因此,查找哪些是系统的基本要素,了解objects之间的关系如何以及它们之间怎么联系都会变得困难起来。当大量的代码产生出来的时候,做一些改变也变 得困难。因此决定一个对象的功能被分配到协作中的设置是一项主要的工作。甚至有时只是改变一个方法的名称那样简单事情,也很可能导致一个很长的编辑 ----编译---错误循环。  

在编码之前高水平的设计是进行正确的需求分析和精确的定义,UML的自动化工具固然重要,但 UML在设计讨论中就显得更为有用。  

OOA, OOD, and OOP  

什么是OO分析和设计?它 们与OO编程相比又有什么不同之处?要了解这些,请注意观察一个程序的循环过程  

第一步,需求收集:首先要规划好系统,计划好系 统的实施步骤。通常人们都会通过讨论来萃取出需求,并做详细记录,然后与关键用户或是消费者一起探讨并使他们同意你们已掌握系统正在解决的问题。  

OOA (Object oriented analysis)即是描述系统实施与系统规划相结合一个的进程。解析放大了处于问题中心区域的目标,分析它们的重要作用是什么,分析何种目标与何种目标 相联系。另外,解析还决定何种目标从属于公用类别。  

OOA (Object oriented analysis)即是描述系统实施与系统规划相吻合的一个过程。分析放大了处于问题中心区域的目标,分析它们的重要作用是什么,分析何种目标与何种目标 相联系。另外,解析还决定何种目标从属于公用类别。  

特别地是,解析应与现实生活中的问题类似,不需要产生什么新的复杂的问题。 你甚至可以与一个不懂技术但懂得这些问题的人员来分享这些解析,他们可以指出你在解析中遗漏了什么,忽略了什么或者哪些地方出错了。  

OOD 在设计阶段,你得准备将具体问题放大化以便分析。然后你得决定方法的自变量有哪些,以及它们的return类型。你也许可以发现新类将会帮您完成设计 。你可以抽象出公用的功能到接口或基类中。一个单一的分析类可以分解成为几个合作类。总而言之,你仍停留在规划阶段,而不是实施阶段。。  

OOP在您搭建好一个框架后,下一步就是实施代码了。在合适的设计后,你可以按以下步骤来实施细节:  

1、是使用哈西表或者 是二叉树  

2、是使用RMI还是CORBA来完成客户/服务器的通信?  

3、用何种语言?  

为了更真实的体验到UML是怎样在解析及设计阶段起铺助作用,则需要通过解决一个问题来了解。  

一旦你将一切都代码化并且处于 施行中,你就可以将周而复始的循环运用。随着系统交付日期的临近,更会发现什么地方不足,以及下一步需要完善哪一部份。通过使用交互式的解析、设计,完善 及运行,你可以很迅速、稳定地重复运行及完善系统,而不需要担心遗失代码。  



文章来源于领测软件测试网 http://www.ltesting.net/
posted @ 2010-06-02 10:08 trufun 阅读(121) | 评论 (0)编辑 收藏

随着微软Visual Studio 2010的正式发布,Kant for Visual Studio 2010双向同步插件也正式发布!成为全球第一款集成vs.net2010开发平台的UML建模工具

用户可以通过此插件实 现C#, VB.net, C++和UML的双向同步。
      Visual Studio 2010插件更新步骤:
      1)下载更新包:最新更新包 (2010.4.27)下载地址
      2)关闭vs.net。
      3)按照解压后的“vs.net2005插件安装指南.txt”,“vs.net2008插件安装指南.txt”,“vs.net2010插件安装指 南.txt”中的说明,根据vs.net的版本进行相应的插件安装。

插件下载地址http://www.trufun.net/update/x/vs_addon20100427.zip
posted @ 2010-04-27 17:02 trufun 阅读(370) | 评论 (0)编辑 收藏

UML建模与软件开发过程模型

现在谈到软件开发过程,大家可能也不会陌生,学过软件工程的人都能随口说上几个软件过程模型,现在要把这两种不同的模型拿到一起来讨论,一方面是软件开发的实际需要,另一方面也是UML建模工具要和其他面向对象开发模型结合的一种必然要求。
  但是,OMG为了防止UML建模和某种开发过程模型结合过紧,导致其适应性降低,使统一性大打折扣,从而影响UML建模工具的普及和推广,只制定了语义规 则和表示符号,对于一个实际问题怎样进行建模,并未制定象数据库设计范式那样的规范和原则,对于一个项目,应该先建什么模型,后建什么模型,也没有做什么 限制。也就是说,没有规定UML建模的工作过程和方法,UML建模可以适应任何开发过程模型。
    软件开发过程模型的理论定义比较简单,而把这一过程模型在实践中应用成功,却有许多制约因素,首先是软件的范围,一个大型分布式软件系统和一个单机版的个 人软件系统在开发管理上肯定不同;其次软件的开发目的,一个为了提高浏览量而开发的网站和一个为密集计算而开发的的一个处理系统在开发过程管理上肯定不 同。最后一点是团队,不同的团队在磨合度、个人能力、团队协作等方面各不相同,开发相同的项目使用相同的开发过程模型,开发结果完全不同的实例多得数不胜 数。另外,软件复用是面向对象的一大特点,它不但与所选择的开发过程模型有关系,而且与企业文化和企业的做事方式有关。
上面这一些都说明,选择或 设计一个好的,能够反映软件开发过程在什么时候做什么、如何作的过程模型并不是件容易的事。UML建模工具和统一过程(RUP)结合,是很多人熟知的理 论,这很大程度上得益于UML三位主要创始人的功劳,因为它们曾共同出过一本关于UML与统一过程的书,另一方面是UML建模工具和统一过程的发源地都是 rational公司,也使人们误认为使用UML建模工具就得使用统一过程,事实上,UML自1.0版本以后,就归OMG所有,而RUP不是OMG发布 的,只有OMG发布的信息,才能作为我们的行业标准。
一切先进的思想,往往是融合了先前其他人的先进思想,在介绍trufun的TUP建模过程之前,我们有必要回顾一下和UML建模结合的几种软件开发过程模型。
统 一过程(UP)模型:统一过程模型在和UML建模结合时,采用以用例为驱动的方式,用用例连接所有活动,每个活动都建一组模型,如业务领域模型、责任领域 模型、实现模型、测试模型,每组模型中又由多个不同的角色共同协作完成,比如具有专门进行用例建模的角色和组件建模的角色等等,采用增量迭代方式建立和完 善用例,并对每一次建模进行评估,在项目的计划、监控等方面并非以建模为中心,而是把建模作为统一过程的一个小部分。该模型的主要缺点是周期长、人员要求 多、建模工作量大。
迭代模型:它是采用较多的小迭代来实现最终的模型,也就是说,模型图是通过一系列步骤一步一步地建起来,每一次迭代都有新信息 添加到模型中来,每一次迭代都要经过评估,都是下一次迭代的输入,迭代会使系统开发的活动(需求、分析、设计和测试)执行多次,并且每次都有新的内容增加 进来。这个方法有一个缺点是在迭代的后期,仍然有新的需求增加进来。
增量模型:增量模型开发每次迭代都能产生一个可执行的结果,这个结果是一个可 “交付的”系统版本,每一次迭代要经过评估,并且增加了一些新的功能,增量模型主要包括分析、设计、实现、测试四个活动。该方法有一个很大缺点是到了项目 迭代后期还要进行设计,会给系统带来很大的风险。
XP模型:又叫极限编程,它是一个轻量级的、灵巧的软件开发方法;同时它也是一个非常严谨和周密 的方法。它的基础和价值观是交流、朴素、反馈和勇气;即,任何一个软件项目都可以从四个方面入手进行改善:加强交流;从简单做起;寻求反馈;勇于实事求 是,整个开发是以测试为驱动的,它属于小型方法,对于初级软件开发企业有效,无法站在软件过程的行列谈和UML建模结合的问题。
posted @ 2010-04-15 15:32 trufun 阅读(156) | 评论 (0)编辑 收藏

详细介绍新建UML2项目的操作步骤,产品下载地址:www.trufun.net

   

File(文件)菜单

New/Project... 新建/项目  新建UML2.x项目

   1、直接点击Trufun X系列主界面上提供的快捷工具(如下图)或者通过主菜单:【文件】/【新建】/【项目】(如下图),进行新建UML2.x项目。

  
快捷工具栏新建项目 file/文件菜单新建项目

  
  进入弹出的新建项目对话框,如下图所示。  
  
展开"Trufun UML 建模"分类,选择"新建UML2.x项目",然后单击"下一步" 按钮,如下图所示:

进入选择项目类型对话框,如下图所示。选择UML类型,其他类型会在后面的文章中介绍。

下一步进入创建UML项目名称对话框,如下图 。所定义项目名称不能和已有项目重名,否则不能通过,这里项目保存空间已经在启动时候选择好,当然也可以重新选择新的保存空间。

输入正确的项目名(如"20100309")后,单击"Finish/完成"按钮,系统创建项目,创建项目完毕进入Trufun工作主界面,如下图。


Save 保存

保存当前项目。
注:这里Trufun X系列产品暂不开放项目另存功能,想另存项目可通过下面的方式解决
1、切换模型浏览器到导航,如下图所示,选择该项目,右键菜单复制,如下图。



继续右键菜单选择粘贴,对新项目进行重命名,就实现了将原项目另存的目的。
Save All 保存所有

保存当前所有项目。
Import... 导入已有UML2.x项目


  直接点击Trufun X系列主界面上提供的快捷工具(如下图)或者通过主菜单:【文件】/【导入】(如下图),导入已有的Trufun UML2.x项目:
  
  导入快捷工具栏  
    
  
  选择导入菜单,弹出如下图对话框,展开常规选项,选择“现有项目到工作空间中”,点击下一步
    
  进入导入项目对话框,如下图:选择自己要导入的项目文件。
    
通过选择"选择根目录"来选择要导入的uml项目,单击"浏览",弹出如下对话框,只选择到项目目录(.project文件所在目录)一级,系统会自动显示该目录下可以导入的UML项目以供选择。
    
  可以导入一个UML项目,也可以导入多个列举的UML项目,如下图。选中要导入UML项目,单击"完成"。系统自动导入选择的UML项目,但是项目导入进来后,不会自动打开模型。需要双击模型浏览器上的项目名才可以打开项目。
  
posted @ 2010-04-01 15:56 trufun 阅读(147) | 评论 (0)编辑 收藏

◆ 培训时间:2009年7月18日--2009年7月21日(四天)
◆ 培训对象:设计师、架构师、系统分析师、项目经理、程序员
◆ 培训费用:2600元
◆ 培训优惠:报名前10名可获赠价值999元Trufun Plato专业版一套,团体3人以上报名9折
◆ 培训地点:西安软件园
◆ 培训证书:Trufun UML设计师认证证书
◆ 培训专家:吴老师,楚凡UML高级培训师,资深顾问。20多年软件开发、工程管理经验,并有多年的外企工作经历。 个人能力:


  • 擅长软件系统体系架构的分析与设计,对软件系统的总体结构和行为有深刻理解;
  • OOP/OOAD功底深厚,精通UML语言,并在多个项目中成功实施面向对象的开发,全程参与分析设计,编码实现,测试等过程;
  • 熟悉软件工程知识体系的主体框架(如SW-CMM 1.1/CMMI 1.02),掌握CASE工具——Trufun系列产品的全过程应用,并有在项目中实际运用的丰富经验;
  • 精通现代软件工程思想和实践(如:CMM,组件技术等等),先后领导和参与公司的软件过程管理和改进,成果卓佳;
  • 精通主流开发平台/标准和语言/数据库(如:.NET,J2EE / C,C++,C# ,ASP.NET/ SQLServer等);
  • 熟悉多种企业应用架构模式和设计模式,精通多层架构,精通B/S,C/S结构,Web企业应用等;
  • 多年的培训授课经验,从实际案例出发,从浅入深贯穿整个授课内容

◆ 培训目的
1) 详细讲述UML9类框图和UML概念,帮助学习者精通UML语言和UML工具;
2) 能独立地进行系统分析与设计,并利用UML设计自己的业务模块;
3) 如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计乃至整个软件过程中,其中包括使用UML建立业务模型、需求模型、分析模型、设计模型、实现模型、测试模型、部署模型。

课程简介

本 课程主要向系统开发人员讲授如何使用UML(统一建模语言)建立系统模型,描述系统架构。包括了静态建模、动态建模、物理架构以及UML的扩展。学员可以 有效地通过用例表述的系统需求来开发稳定的分析模型、设计模型、实现模型、测试模型、部署模型。学员将了解如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计概念中,其中包括构架、对象、类、构件、构造型、关系和各个类型的图。
在本课程中,学员可以通过学习使用建模工具来提高系统分析和设计能力。从理解团队开发基础到创建图并运行报表,再到观看正向和逆向工程演示,学员将练习UML建模工具的所有基本内容,从而理解UML建模工具的功能和可视化建模的价值。

培训大纲http://www.trufun.net/www1/Ch/ProductView.asp?ID=102&SortID=146
培训对象
该课程适用于希望在实际项目应用中系统性的应用UML的技术人员,以及那些希望获得在用例驱动、以构架为中心和迭代化开发过程中,应用该技术的高级项目开发人员。包括需求调研人员、构架设计师、分析人员、设计人员和软件开发人员、产品市场技术人员。
本培训课程适宜于想从事软件系统分析与设计的系统程序员,最好应精通一种OOP的语言(如:C++、C#或者Java等)和开发工具(PB、Delphi、VC++等)。

必备条件
参加此课程之前,学员应当具有面向对象语言程序设计经验。为确保授课效果,学员应当具备基本的软件工程背景知识和能够阅读简单的计算机英文的能力。

认证证书


报名流程:
   1) 学员填写培训报名表发送到我公司,并将培训费用转账或汇款到我公司对公帐号(开户行:中国银行西安通济坊支行  开户帐号:4294 5008 091001 开户名:西安楚凡科技有限公司);
   2) 我公司确认培训费用到帐后,通过email或者传真发送培训证(加盖我公司公章和学员编号)。
   3) 学员持培训证参加培训。



主办单位:西安楚凡科技有限公司(www.trufun.net)
联系人: 029-88346234 段女士 email:webmaster # trufun.net/ trufun # trufun.net
在线咨询:344593239570147781


报名表


姓名

单位

电话 email
       
posted @ 2009-06-08 13:07 trufun 阅读(227) | 评论 (0)编辑 收藏

模型驱动架构(Model Driven Architecture,MDA)是由OMG定义的一个软件开发框架。它是一种基于UML以及其他工业标准的框架,支持软件设计和模型的可视化、存储和 交换。和UML相比,MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。MDA把建模语言用作一种编程语言而不仅 仅是设计语言,MDA的关键之处是模型在软件开发中扮演了非常重要的角色。Trufun Kant系列产品就是一款非常便捷的MDA工具,它是基于Trufun Plato UML2.x建模工具基础上开发出来的,因此它的可以实现整个项目的分析、设计、开发过程。可以实现与平台无关的模型,并可将此模型转换为平台相关模型。 (:Trufun Kant系列产品有Trufun Kant for Java ,Trufun Kant for vs.net, Trufun Kant for C++以及涵盖了以上三个产品功能和数据库建模的Trufun kant Studio大集成产品)
      MDA源自于众所周知的把系统操作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA工具提供了一种途径(通过相关的工具)来规范化一个平 台独立的系统、规范化平台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。Trufun Kant系列产品则是完全遵照这些规范的MDA工具,为系统提供了一个统一的实现平台。MDA的三个主要目标是:通过架构性的分离来实现轻便性、互操作性 和可重用性。
     模型驱动架构(MDA)是OMG组织近年来一直热炒的一个新的技术体系,也是众多搞软件模型研究人员的一个新热点,其核心的思路是希望通过对商业模型(比 如企业信息化或建筑领域的解决方案)的领域研究。进而提炼出一个相对核心的领域模型,同时抽象出一个PIM(平台无关模型)。之后根据不同的开发平台(例 如.net或Jave),应用平台(windows或unix)形成相应的 PSM(平台相关模型)。Trufun Kant 系列MDA工具已经可以完整地生成相应的代码框架,保障了项目从需求开始到后面的实现框架的统一和稳定。
      模型驱动架构(MDA)的发展阶段理论还处在一个探索期,很多工具的也是跟着MDA的思想在一步步完善,从目前的趋势而言,要完全实现OMG提出的MDA 思想,MDA工具至少还需要数年的努力才能完全成熟。目前MDA工具的实现还局限于类图与代码的对应,代码框架的生成,但是大多数工具还无法实现两者之间 的反复正反向同步,而Trufun Kant产品则已经很好的解决了这一问题,使无论修改模型还是修改已经生成的代码都能够保障实时同步到另一边,保障项目过程中模型和开发的始终统一。
       MDA目前在以下领域得到了应用:
      *银行业
      *保险业
      *公共企业(特别在金融管理领域)
      *嵌入式系统
      *后勤保障系统
目前Trufun Kant系列产品的应用已经基本覆盖以上领域。
      您也会看到,MDA的确在其中起到了作用。MDA的实现主要集中在以下3个步骤:
      1 首先,您用UML对您的应用领域进行高度抽象的建模,这个模型和实现它的技术(或者底层技术)完全没有关系。这个模型我们称之为平台无关模型(PIM)。 Trufun Kant 系列产品是基于UML2.1最新标准的UML建模工具——Trufun Plato实现的,因此对于这一点的支持是毋庸置疑的。
      2 然后,PIM将被转换为一个或多个平台相关模型(PSM)。这个转换过程一般是自动实现的。PSM将用一个特定的实现技术来描述您的系统。Trufun Kant系列产品实现这一过程的自动转换,并且可以将PIM模型转化为10多种面向对象的语言相关的PSM。这一步是MDA流程中最难的,它要求您对您要 应用的基础技术具有丰富且巩固的知识,另一方面,源模型(PIM)必须具备自动生成PSM所要求的足够信息量。
      3 最后,PSM将被转换成源代码。Trufun Kant 系列产品利用了桥接器技术和代码框架技术来实现这块功能,其中代码框架可以正向完成模型到代码的转换,而桥接器则保障了模型和代码的实时同步。
      使用MDA的前提
      * 业界(甚至是整个世界)一个被广泛接受的事实是:只有变化是永恒的。技术永远在革新。这在中间件领域尤其明显,当然还有数据库技术,操作系统,甚至是编程语言都经常变化。这些技术明显比应用领域的基本概念要变化的快。
      * 如果您在某一特定的应用领域工作,在这个领域中的项目都具有一定的相似性。整个应用程序族或者不同的项目都属于同一个应用领域,那么,MDA或者生成流程将特别适合于您。
      MDA的优点
      * 您对建模的投资将更加持久的有效--远长于您目前实现它所应用的技术。这将更有利于保护您的投资。
      * 您具有了技术上的灵活性。
      * 您将不再受技术或应用所具有的不同变化周期的影响--在MDA的帮助下,您可以中立的保持两方面的多样性。
      MDA的缺点
      * MDA意味着更多的"组装"而不是"开发"--在为一个应用建立PIM的时候,您基本上没有技术上的周旋空间。这对于今天的很多开发人员来说,还是难以想象的。
      * 软件开发的创造性在一定程度上减弱了。开发人员常常觉得,就一种新技术展开争论,在技术的前沿工作,是十分吸引人的。可是在MDA流程下,大量的工作是建立模型,这和具体的技术相距甚远,但符合OMG的建议。
      * 潜在的不成熟性。UML2.x初长成,基于此的MDA工具出现的时间也相对较短,后期的发展还会不断。
MDA的软件开发周期
     在MDA中软件开发过程是由软件系统的建模行为驱动的。下面是MDA的软件开发周期:

      MDA生命周期和传统生命周期没有大的不同,主要的区别在于开发过程创建的工件,包括PIM(Platform Independent Model,平台无关模型)、PSM(Platform specific Model,平台相关模型)和代码。PIM是具有高抽象层次、独立任何实现技术的模型。PIM被转换为一个或多个PSM。PSM是为某种特定实现技术量身 定做。开发的最后一步是把每个PSM变化为代码,PSM同应用技术密切相关。传统的开发过程从模型到模型的变换,或者从模型到代码的变换是手工完成的。但 是在Trufun Kant系列MDA工具中,这些变换都是工具自动完成的。从PIM到 PSM,再从PSM到代码都可以由工具自动实现。PIM, PSM,和Code 模型被作为软件开发生命周期中的设计工件,在传统的开发方式中是文档和图表。重要的是,它们代表了对系统不同层次的抽象,从不同的视角来看待我们的系统, 将高层次的PIM 转换到PSM 的能力提升了抽象的层次。能够使得开发人员更加清晰地了解系统的整个架构,而不会被具体的实现技术所“污染”,同时对于复杂系统,也减少了开发人员的工作 量。
      MDA的出现,为提高软件开发效率,增强软件的可移植性、协同工作能力和可维护性,以及文档编制的便利性指明了解决之道。MDA被面向对象技术界预言为未 来两年里最重要的方法学。当今建模的主要问题在于,对于很多企业来说它只是纸面上的练习。这就造成了模型和代码不同步的问题,代码会被不断修改,而模型不 会被更新,或者,需求变动了,模型也修改了,但是代码修改不是从模型过来的,这样模型和代码就无法保障从始至终的统一,模型不能反映系统,不是代码最终的 实现,模型也就失去了意义,这方面的问题一方面是开发过程管理问题,一方面是有些MDA工具还无法保障这两者的统一,而Trufun Kant系列工具则已经很好了解决后者这个问题,为我们实现这一操作提供平台。弥补建模和开发之间的鸿沟的关键就在于将建模变为开发的一个必不可少的部 分,并且使其成为我们可以重新利用和参考的有价值的部分,是我们的开发不因为代码因为开发人员的变动而增加额外成本。MDA 是模型驱动开发的框架,MDA 的愿景是定义一种描述和创建系统的新的途径。MDA 使得UML 的用途走得更远,而不仅仅是美丽的图画。很多专家预言MDA 有可能会带领我们进入软件开发的另一个黄金时代。 
MDA最大的好处就是业务模型的持久价值,但是付出的代价是增加了抽象层,Trufun产品在建模技术方面,提供了OCL最新版本的精确建模支持,可扩展更多的机制来支持精确建模和分析模型。也可以根据用户的实际需要进行业务模型的定制。
MDA的相关标准
      为了实现MDA这一宏大构想,OMG制定了一系列的标准:
      UML:UML被MDA用来描述各种模型。它并不是为MDA而生,但是作为目前最为风行的建模语言,UML已经占据了全球建模语言领域90%的市场份额, 成为了建模语言事实上的标准,因此OMG将它作为MDA技术的基础是自然而然的明智选择。它是MDA的基础,也是MDA最有力的武器。
      MOF:MOF(Meta Object Facility 元对象机制)是比UML更高层次的抽象,它的目的是为了描述UML的扩展或者其它未来可能出现的类UML的建模语言。虽然MOF也不是为MDA而生的,但 是我们可以体味到OMG的工程师们良苦的用心和长远的目光。
      XMI:XMI(XML-based metadata Interchange)是基于XML的元数据交换。它通过标准化的XML文档格式和DTDs(Document Type Definitions)为各种模型定义了一种基于XML的数据交换格式。这使得作为最终产品的模型可以在各种不同的工具中传递,这一点是非常重要的,它 保证了MDA不会在打破了一种束缚之后再被加上一层新的束缚。Trufun Kant系列产品支持生成标准的XMI文档,并且可以导入标准的XMI文档,也可以通过它的转换来导入其他uml模型。
      CWM:CWM(Common Warehouse Metamodel 公共仓库元模型)提供了一种数据格式变换的手段,在任意级别的模型上都可以使用CWM来描述两种数据模型之间的映射规则,比如将数据实体从关系数据库变换 为XML格式。在MOF的框架下,CWM使得通用的数据模型变换引擎成为可能。
      在OMG的蓝图中,UML、MOF、XMI、CWM等一系列标准分别解决了MDA的模型建立、模型扩展、模型交换、模型变换这几个方面的问题。OMG试图 通过标准化的定义,扩大MDA的应用范围。同时通过这样一个可扩展的建模语言环境,IT厂商可以自由实现自己的建模语言,以及语言到可执行代码的映射,然 而不管怎么样,都必须处于OMG的标准化框架之下。
posted @ 2009-03-03 13:01 trufun 阅读(318) | 评论 (0)编辑 收藏

西安楚凡科技获得国家科技部2008-2009年度火炬计划立项

按照《国家科技计划管理暂行规定》和《国家科技计划项目管理暂行办法》的有关规定,我部国家星火计划、火炬计划、重点新产品计划、软科学研究计划立项已经完成,现将项目清单印发给你们。请按照有关计划的管理办法,认真做好项目的组织实施工作。

科学技术部 二00八年十一月六日
posted @ 2008-11-19 14:54 trufun 阅读(206) | 评论 (0)编辑 收藏

Trufun UML实战系列—UML与面向对象的分析和设计!

课程体系安排参考:http://www.trufun.net/new/news/081129yugao.html

◆ 培训时间:2008年11月29日--2008年11月30日(两天)
◆ 培训对象:设计师、架构师、系统分析师、项目经理、程序员
◆ 培训专家:楚凡UML高级培训师
◆ 培训证书:Trufun UML设计师认证证书
◆ 培训目的
1) 能独立地进行系统分析与设计,并利用UML设计自己的业务模块。
2) 如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计乃至整个软件过程中,其中包括使用UML建立业务模型、需求模型、分析模型、设计模型、实现模型、测试模型、部署模型。

课程简介
本课程主要向系统开发人员讲授如何使用UML(统一建模语言)建立系统模型,描述系统架构。包括了静态建模、动态建模、物理架构以及UML的扩展。学员 可以有效地通过用例表述的系统需求来开发稳定的分析模型、设计模型、实现模型、测试模型、部署模型。学员将了解如何把“统一建模语言 (UML)”应用到基本的面向对象分析和设计概念中,其中包括构架、对象、类、构件、构造型、关系和各个类型的图。
在本课程中,学员可以通过学习使用建模工具来提高系统分析和设计能力。从理解团队开发基础到创建图并运行报表,再到观看正向和逆向工程演示,学员将练习UML建模工具的所有基本内容,从而理解UML建模工具的功能和可视化建模的价值。
培训对象
该课程适用于希望在实际项目应用中系统性的应用UML的技术人员,以及那些希望获得在用例驱动、以构架为中心和迭代化开发过程中,应用该技术的高级 项目开发人员。包括需求调研人员、构架设计师、分析人员、设计人员和软件开发人员、产品市场技术人员。
本培训课程适宜于想从事软件系统分析与设计的系统程序员,最好应精通一种OOP的语言(如:C++、C#或者Java等)和开发工具(PB、Delphi、VC++等)。
必备条件
参加此课程之前,学员应当具有面向对象语言程序设计经验。为确保授课效果,学员应当具备基本的软件工程背景知识和能够阅读简单的计算机英文的能力。

培训地点:西安市高新一路25号创新大厦2层会议室
主办单位:西安楚凡科技有限公司(www.trufun.net)
联系人: 029-88346234 段女士 email:webmaster # trufun.net/ trufun # trufun.net

posted @ 2008-10-23 15:30 trufun 阅读(196) | 评论 (0)编辑 收藏

培训时间:2008年10月21日上午9:00—下午17:00
培训对象:程序员、设计师、架构师、系统分析师、项目经理(每企业限2人)
培训专家: 青润(CSDN特约专家、全程建模专家);楚凡科技UML高级培训师
培训费用:免费
培训赠品:每人一套价值990元的正版UML建模工具+300元培训代金券
培训目的:1) 使学员了解UML的历史现状和未来,以及UML在软件工程和开发过程中的重要性,掌握UML的基本内容和使用方法,包括九种基本的UML模型图,能够熟练地使用UML图来表达系统分析与设计思想;
2) 了解UML工具在系统分析和设计过程的应用,以及UML工具的其他高级能力,如数据库建模能力,设计模式支持,模型和代码的同步能力以及团队协作开发能力等;
3) 结合中国UML和UML工具的应用现状,提出适合中国软件开发团队的UML和UML工具解决方案——全程建模。
时间安排
      上午9:00—12:00: UML软件建模技术及全程建模

  1. UML的历史和现状
  2. UML软件建模技术(UML语言的语法、语义;UML的九种模型图,了解如何对系统进行结构建模和行为建模;了解各种模型图的使用技巧,掌握他们的使用时机和场所;使用UML来建立需求模型、分析模型、设计模型、部署模型和测试模型)
  3. 全程建模及UML未来

      下午13:00—15:00:UML建模工具应用

  1. UML建模案例(UML2.1新特性,图书管理系统,网络教学系统)
  2. 数据库建模(E-R设计,正反向工程,设计文档生成,和UML模型的双向转换)
  3. IDE集成及模型和代码的双向同步(Java, C++, C#)
  4. 高端应用(设计模式,OCL,UML Profile)
  5. 团队开发(版本控制,基于CVS的团队协作开发模式)
  6. 高级定制(基于文档模版的文档定制和导出,通用代码生成框架)
  7. 未来的UML工具(MDA/可执行UML,基于Web的UML,ALM)

      下午15:00—17:00:UML在企业中的应用研讨

  1. UML在企业中的应用现状
  2. UML和企业的软件开发过程有效结合
  3. UML是否是企业软件开发中的有效利器
  4. UML和企业项目开发进度和成本的平衡艺术

培训地点:西安市高新一路25号创新大厦2层会议室
主办单位:西安高新企业大学 西安楚凡科技有限公司(www.trufun.net)
联系人: 029-88346234 段女士
培训回执下载
报名方式:请填写培训回执发email至trufun # trufun.net

posted @ 2008-10-10 13:55 trufun 阅读(149) | 评论 (0)编辑 收藏

模型驱动开发能帮我们解决什么?

 

长久以来,在软件开发过程中,我们总是会发现一下问题的存在:需求工程师、系统分析师、软件工程师、测试人员之间缺少一个共同的交流平台,使得一个项目从需求分析开始无法完整统一的交付后面的流转,结果是我们发现软件工程师根据自己所获得的信息编写出来的代码,不是用户需求真正表达和需要的。

模型驱动开发(MDD)的应用,很好的解决了以上问题,将整个软件开发过程用模型来统一表示,消除开发过程中各种参与者之间的隔阂,UML的出现,很好的对模型进行了标准化定义,使模型的表示毫无二意可言,这样,我们的项目相关人员参与进来,都通过这个共同的模型进行交互,使大家都对参与的系统有一个共同统一的认识,这其中不仅仅是上面列举的人员,还可以包括客户、项目经理、主管老总、第三监理方、评估者等等参与项目的人。

模型驱动开发(MDD)的重要性已经越来越被很多公司重视,由模型驱动开发方法的提出,也产生了模型驱动架构(MDA)工具的诞生,各个厂商也纷纷推出各 种不同方便实用的解决方案,Trufun公司的Trufun Kant Studio就是其中一款大集成的模型驱动开发平台。虽然对客户来说,如何建立模型是首先要解决的,其次才是工具的选择,但是选择一款方便简捷的工具,才 能够实现我们的建模,并且使其过程变得高效快捷。

一般来说建模的程度很难把握,很容易就会过度,因此我们不能单纯的因为需要建模而去建模,甚至把整个项目所有的细节都考虑到来建模,这样的模型是可怕的。建模的目的只是为了让我们把具体的功能确定下来,那么细节实现问题可以不需要在建模中考虑到,否则我们的模型变得非常庞大和复杂,就会使得过程流转变得复杂和缓慢甚至出现不必要的重复劳动。

对建模者来说,不仅仅要能够把系统抽象出来建模,解决自己阶段的问题,而且必须要进行规范建模,要会进行分解建模,不要在一个模型中包含太多东西,东拉西扯所有有关的内容都想展示出来,这是建模的最大忌。建模的出现本身就是为了简化统一过程交互,因此一个好的模型就是很简洁准确的表达了该部分的内容。

正确的掌握了建模的方法,并且选择对了一款好的实现工具,就能够让你事半功倍,使整个项目顺利高效的完成,这就是模型驱动开发想要带给我们的。

Trufun Kant Studio是目前为止国内唯一推出的基于UML2.1标准的集成javavs.netc++、数据库建模为一体的大集成模型驱动开发平台,能够带给大家很好的体验,并且提供免费技术支持,在线快速解决问题,相信这是一款实践模型驱动开发不可或缺的好工具。

 

相关官方网站:http://www.trufun.net

posted @ 2008-09-11 16:46 trufun 阅读(502) | 评论 (0)编辑 收藏

Trufun Kant Studio 2008面向VS.NET的开发应用

 

目的

使用Trufun Kant Studio 2008新一代软件集成开发平台进行VS.NET 开发与应用生命周期管理

 

产品介绍

Trufun Kant Studio 2008是新一代软件集成开发平台,提供企业级建模与分析设计,提供与eclipseVS.NET开发环境的无缝集成,提供UML模型与javaC++C#开发代码之间的双向转换,它能帮助企业快速高效地统一软件开发过程中的各个环节,并且提供已有项目的改进过程。 从事软件开发的各个人员可以利用它来进行有效的各种开发,从定义需求到分析和设计,以至集成JavaVS.NETC++等开发语言和目前各类流行的数据库的开发等,保证整个项目过程从需求、分析设计到开发的一致性,给予软件开发人员在需求捕获、系统分析、设计、编码、测试、部署等所有软件开发环节强有力的支持

 

 

主要内容

1、  前言

2、  Trufun Kant Studio 2008面向VS.NET的开发工具

 

 

前言

当今,面对越来越庞大复杂的开发系统,很多企业软件在开发过程中,都会同时出现基于JavaVS.NETC++等多种开发语言和开发平台一起进行的解决方案。那么,如何将这些多种语言、不同平台的实现系统进行统一也是企业所重点关注和需要解决的问题。

 

Trufun Kant Studio 2008新一代软件集成开发平台在实现UML2.x最新标准的基础上,为 VS.NET 开发提供了软件开发全生命周期管理的解决方案与集成开发环境,使企业可以更加便捷地实现基于VS.NET的开发和其他开发平台的跨平台集成。而且更是为企业在整个软件开发生命周期内提供了集成的管理支持。Trufun Kant Studio 2008紧跟产品发展升级服务,目前已经实现对VS.NET 2003VS.NET 2005VS.NET 2008的无缝集成支持。

 

楚凡科技为不同目标的企业客户提供产品、技术和培训咨询的服务,可以更加积极地帮助客户一步到位提高开发效率和获取最大的投资回报。

 

Trufun Kant Studio 2008面向VS.NET的开发工具

 

    Trufun Kant Studio 2008新一代软件集成开发平台为 VS.NET 开发提供了软件开发全生命周期管理的解决方案与集成开发环境,该产品提供了强大的UML2.x标准建模支持和18类常用GOF设计模式,用户可以自由选择,以加快软件架构设计,在此基础上该产品能与包括VS.NET 2003VS.NET 2005VS.NET 2008在内的开发平台提供需求捕获、系统分析、设计、编码、测试、部署等,并帮助开发团队应付实际开发过程中不断变化的业务需求,并提供统一的跨地域分布的团队开发、增量开发。

 

Vs.net设计师和程序员经常遇到的问题:

 

1、  对于增量式的UML建模而言,如何保证UML模型与对应的代码保持同步,是一个非常头痛的问题。大多数的建模工具提供的模型生成代码功能,有的不考虑已存在的源码,直接重新生成覆盖源代码;有的使用保护区技术,但是保护区带来的问题,一个是生成大量的注释,另一个是假如已存在的源码没有保护区,则保护区毫无用处...。因此使用者常常会找不到合适的工具,可以让模型和代码永远同步,而且可以和现有代码完美合并。所以很多用户在UML建模工具只使用前面分析设计建模部分,而到了编码阶段基本被完全抛弃,这也是UML模型和源码无法完全对应所造成的。

2、  相应的,对于增量式的编码而言,如何让编码阶段的结构改变反馈到原来的UML设计模型,也是考量UML工具实际应用价值的重要方面

3、  在比较复杂的项目中,如何很好地实现团队开发,支持多人建模的合并与分解,就尤为重要,如何实现一个完整项目的分组开发和最终的完美合成,也是一款企业级UML工具的考虑因素。

 

Trufun Kant Studio 2008新一代软件集成开发平台就很好地解决了上面的问题,Trufun在多年的UML产品开发和应用推广中,深深感觉到,MDA产品的一个重要衡量标准就是——是否支持双向的转换和增量式开发。如果仅仅支持单向的,或者有限制的双向转换,都会导致UML模型和实际源码的脱节。

 

Trufun Kant Studio 2008新一代软件集成开发平台,支持VS.NET设计师和程序员进行UML模型 .net CLR编程语言的双向同步功能,目标都是让UML模型和源码永远同步,让设计和编码永远不再脱节,让设计准确无误的体现到编码上,让编码准确无误的实现设计。使用Trufun Kant Studio 2008将开发人员随时可以将架构师实现的UML设计的软件架构转换为 .NET 框架代码,并在此基础之上进行详细的功能实现和代码开发,同时分析设计人员也可以随时将开发人员的 .NET 代码,实时转换为 UML 模型,进行版本的迭代和分析。Trufun Kant Studio 2008在实现UML模型和VS.NET开发代码的双向同步方面,不使用任何标记,完美智能的在模型和源代码之间进行同步,使全球目前唯一一款实现此功能的产品。因此,Trufun Kant Studio 2008新一代软件集成开发平台为 VS.NET 开发提供了一个通用的开发过程和一个高可靠性和支持跨地域分布式团队协作的基础架构。

 

Trufun Kant Studio 2008新一代软件集成开发平台解决VS.NETUML模型的双向同步包括以下功能:

  • 同步设置:对需要同步的Vs.net项目和UML项目进行设置,使两者关联。
  • 源码-->模型同步:进行了同步设置之后,同步子菜单会显示在不同的选中元素上下文中
  • 模型-->源码同步:进行了同步设置之后,同步子菜单会显示在不同的选中元素上下文中
  • 中断同步操作:当项目庞大,同步时间过长,或需要取消同步操作
  • UML模型和CLR语言映射:C#VB.NET J# VC++.NET

以上功能使得开发人员在开发的任何过程中都可以将分析人员的分析设计模型轻松的转换为开发代码,

Trufun Kant Studio 2008新一代软件集成开发平台支持企业级开发,所谓企业级体现在以下方面:

  • 超大模型:对于超大模型而言,我们通常需要将其分解为相对小的模型。而分解的方式Trufun Kant Studio 2008提供两种:
    • 分解模型为多个模型单元。模型单元是模型的子包,所谓分解是将子包单独进行存储,加载。譬如在一个办公软件项目中,我们会分解一个模型为用户管理、档案管理、公文管理...等多个子单元,分配给各个开发人员进行单独建模。
    • 引用类库:对于只读类库,如JDK类库、.net framework类库,MFC/ATL类库等,我们可以采用引用类库的方式加载到模型中。引用类库在模型中只读。
  • 多人同时建模:Trufun Kant Studio 2008集成CVS,实现对小组开发的支持。基于模型单元分解,通过集成CVS,我们可以实现小组建模。通过共享项目、check in, check out等操作,实现和其他小组成员共享模型单元。CVS集成包括以下常用操作:

此外,Trufun Kant Studio 2008还集成了其他不同的开发环境(如 Eclipse),支持更多其他语言的关联和C/C++Java开发语言的正反向工程,是一个真正意义上的大集成开发平台。

 

当软件架构师、分析设计人员、及编码开发人员使用这一集成的 Trufun Kant Studio 2008软件集成开发平台针对整个开发全周期在不同领域所提供的工具进行协同开发时,彼此之间可以更好地沟通关于软件架构和实际开发的信息。他们可以更加高效和更加规范,从而大大降低整个团队的资源开销,并为企业带来更高品质的 .NET开发产品,为企业赢得市场赢得利润。

 

posted @ 2008-08-12 18:22 trufun 阅读(386) | 评论 (0)编辑 收藏

Trufun Kant Studio 2008是新一代软件集成开发平台,提供企业级建模与分析设计,并提供与javaC++C#等开发语言开发环境的无缝集成,提供UML模型与开发代码之间的双向转换,它能帮助企业快速高效地统一软件开发过程中的各个环节,并且提供已由项目的改进过程。 从事软件开发的各个人员可以利用它来进行有效的各种开发,从定义需求到分析和设计,以至集成JavaVS.NETC++等开发语言和目前各类流行的数据库的开发等,保证整个项目过程从需求、分析设计到开发的一致性。

 

Trufun Kant Studio 2008是集成了UML规则和以下几种独特的Trufun方案而成的新一代软件集成开发平台。

Trufun Kant Studio 2008
UML特性

支持最新的UML规则Trufun Kant Studio 2008基于Trufun Plato UML建模工具,从2004产品到2008产品,一直紧跟UML的发展趋势,领先保持对UML规则的最新支持;

文档生成:Trufun Kant Studio 2008提供了标准的分析设计文档模板,支持将模型转换为RTFHTML格式的文档报表,并可为特殊用户提供自定义文档模板,满足企业特殊文档格式需要。并满足项目客户等非开发参与人员更好地了解项目情况,增强对项目的理解和沟通。

多平台集成:Trufun Kant Studio 2008支持当前所有主流的开发平台:JDTEDTVS.NET2003/2005/2008;支持当前流行的各种关系数据库建模;并可以进行开发语言和模型的双向实时同步,可以进行数据库建模的双向同步。

数据库模型和UML模型的转换:Trufun Kant Studio 2008只是分析设计UML模型与数据库模型的相互转换,保障整个项目的统一性,节省软件开发环节,提高软件开发效率。

跨平台多语言支持:Trufun Kant Studio 2008支持Microsoft Windows Linux MAC操作系统,支持中英双语软件界面,并可定制其他语种软件界面。

精准建模:Trufun Kant Studio 2008允许用户采用OCL 2.x对软件系统精确建模,确保遵守约定和最佳实践。

团队开发:Trufun Kant Studio 2008基于CVS,提供了团队建模支持以及版本管理和配置管理功能,实现多人协作的、角色分离的、实时异地同步建模。

多样服务:中文界面中文帮助,免费远程技术支持问题解答。同时推出购买Trufun Kant Studio 2008赠送UML培训的集成解决方案,协助企业一步到位实现高效的软件工程开发过程。

更多信息咨询:www.trufun.net  029-88243238

posted @ 2008-07-28 10:21 trufun 阅读(358) | 评论 (0)编辑 收藏

Trufun Kant产品——提高个人开发和团队开发的能力

 
使用Trufun Kant工具您能够:

  • 选择开发环境和适合您的团队的 IDE 工具
  • 实现多人协作的、角色分离的、实时的异地同步建模
  • 实时同步,无论是代码还是模型改变,都可以同时同步到模型或者代码。
  • 定制您的项目环境以满足您的特定需求

 

Trufun Kant系列产品有五类:

  • Kant 2007 for Java——专业针对Java开发的MDA产品
  • Kant 2007 for C++——专业针对C++开发的MDA产品
  • Kant 2007 for Vs.net——专业针对Vs.net开发的MDA产品
  • Kant 2007 for Database——专业针对数据库建模的产品
  • Kant 2007 Studio——以上四类产品的集成产品

 

需求分析
Trufun Kant
系列产品在需求分析方面都是基于Trufun Plato 2007 uml建模产品,它们有助于您的团队依靠统一建模语言(uml)符号实现可视化模型系统和应用程序,使你的项目需求毫无二异保持统一,并且能根据模型生成项目文档。保持团队间建模用户的良好交互性,以及合并整个项目生命周期内的反馈。

分析设计和构建
Trufun Kant
系列产品对多种开发语言(VS.NETJavaC++)和平台(WindowsLinuxMac)提供支持。构架设计师和设计人员能够依靠统一建模语言 (UML) 进行模型驱动开发,基于行业标准的 uml 支持和强大的模式引擎可以创建语义丰富的应用程序构架,该构架可满足业务需求,容易被开发团队理解。使用者可以利用Trufun Kant系列产品建立软件构架、业务需求、可重用资源、管理级通信的平台独立模型;也可以直接建立嵌入开发语言的类图,使代码和类图的完全对应、自动同步、实时改变,也让原来只重视编码的程序员对系统的静态结构有了更清晰的认识,从而大大提高自己的设计能力!

数据库建模
Trufun Kant for Database
Trufun Kant Studio都提供专业的数据库建模性能,并提供uml模型和数据库模型的转换。

实现部署
Trufun Kant
系列产品提供了模型与代码之间的双向实时同步功能,无论你在开发过程中修改了代码或者模型,都可以立刻同步到另一方模型或者代码,保障整个开发过程中的模型统一性,让设计和编码永远不再脱节,让设计永远体现编码,让编码永远实现设计Trufun Kant系列产品提供用户一个分析、设计、编码、编译、调试、运行等完整的集成开发环境,为用户开发提供极大方便。

 

软件配置管理
Trufun Kant
系列产品提供基于CVS版本控制、版本和发布管理、缺陷和变更跟踪,利用这些功能可以进行团队合作、提高生产率、改善运营效率、降低成本,使企业应用程序开发和技术计划适应业务需求。

定制产品功能

项目经理和规划管理经理将发现,开发过程中需要访问最新的项目状态信息、精确地估计所需的资源并作出综合而灵活的项目计划,以助于团队更加高效地协作。Trufun Kant系列软件的核心是一个灵活的、可配置的开发平台,可以根据项目的开发需要定制辅助功能。
posted @ 2007-12-14 12:03 trufun 阅读(393) | 评论 (0)编辑 收藏

Trufun Plato是一种基于 UML 的可视化建模和设计工具,用于为系统的不同视图建立文档和进行沟通。

Trufun Plato 2007系列(免费版、专业版、企业版)是基于 UML™ 2.1 的可视化建模和设计工具。

  • 它满足架构师、系统分析人员、设计人员和其他人员指定并交流开发项目信息,从几个透视图到各种涉众。扩展 Eclipse 3.2 /3.3的开放软件开发环境。
  • 它是绿色软件,下载解压无需安装就可使用,具有灵活的针对 Microsoft Windows Linux MAC 的单个产品的安装选项。
  • 为使用 UML 2.1 进行建模提供足够支持。
  • 允许灵活管理建模资源,以促进并行开发和架构重构。重用新模型中的部分模型、拆分和组合模型,单独检入/检出部分模型,并以图形方式比较和合并模型及部分模型。
  • 有助于利用模型到模型和模型到代码转换简化架构与代码之间的转换。
  • 允许用户采用OCL 2.x对软件系统精确建模,确保遵守约定和最佳实践。
  • 基于CVS,提供了团队建模支持以及版本管理和配置管理功能
  • 中文界面中文帮助,免费远程技术支持问题解答。

为帮助您快速认识和使用Trufun Plato UML产品,最大限度地提高开发生产力,我们提供了多种服务方式,包括免费远程技术支持、专业售后服务以及有教师指导的软件工程UML方面的咨询培训。

目前Trufun还在举行Trufun Plato 2008 专业版 UML建模工具免费赠送活动,凡是中国软件企业、软件研发机构、高等院校均可申请赠送正版产品。

如果有意了解Trufun Plato产品更多细节、解决方案、市场活动和价格情况,可访问http://www.trufun.net,我们会根据您的实际情况,提供最节约高效的解决方案。

 

posted @ 2007-12-14 12:02 trufun 阅读(1655) | 评论 (0)编辑 收藏

8Kant Studio产品 + 2"UML与面向对象系统分析和设计"企业内训课程

该方案提供您:

  • 新一代软件集成开发平台:(荣获CSDN &《程序员》2007年度软件中国设计和建模类金牛奖

1.         支持UML2.1标准

2.         支持java,c#,c++模型和代码双向转换和同步

3.         支持数据库ER建模和DDL代码生成

4.         集成eclipse/visual studio.net

5.         支持小组/团队协同建模

6.         通用MDA代码生成框架

  • 全中文操作和帮助,两年免费升级服务,免费远程技术支持,节省企业额外支出
  • 提供您如何利用UML工具进行分析设计,并且根据企业实际项目进行实战讲解,迅速提高企业开发能力
  • 0.1%的成本可以赢得更多利润空间和竞争资本
更多解决方案尽在楚凡科技官方网站:www.trufun.net
posted @ 2007-06-18 12:21 trufun 阅读(168) | 评论 (0)编辑 收藏