BlogJava 联系 聚合 管理  

Blog Stats

随笔档案

文章档案


年度最佳UML/MDA工具

trufun Plato/Kant

2012年2月14日 #

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 阅读(215) | 评论 (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 阅读(287) | 评论 (0)编辑 收藏

2012年2月9日 #

即 日起,凡是购买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 阅读(177) | 评论 (0)编辑 收藏

2011年12月27日 #

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 阅读(258) | 评论 (0)编辑 收藏

2011年12月20日 #

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 阅读(370) | 评论 (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 阅读(285) | 评论 (0)编辑 收藏

2011年12月13日 #

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 阅读(363) | 评论 (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 阅读(686) | 评论 (0)编辑 收藏

2011年11月21日 #

一.基于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 阅读(1003) | 评论 (0)编辑 收藏

2011年11月9日 #

讨论中所用到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 阅读(217) | 评论 (0)编辑 收藏

仅列出标题  下一页