楼主: kissmoon

[FAQ] 建立序列图之前是不是一定要建立类图?

[复制链接]
论坛徽章:
59
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-10-28 14:15:35管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
11#
发表于 2010-9-26 13:42 | 只看该作者
原帖由 kissmoon 于 2010-9-26 12:52 发表
在rose里,
在用例视图里 建立 三个包 一个包名为“业务用例”,一个包名为“涉众”,一个包名为“系统用例”
并把 业务用例、actor 、系统用例 存放在相应的包下,
在用例下定义出活动图。
在活动图的基础上绘制系统用例图。

对象是在什么视图下? logic view ? 序列图是在什么视图下绘制?
并且 这些 东东,应该怎么组织?


对ROSE不熟,不大理解你说的那几个术语。

系统设计的基本思想有以下几点(个人总结,可能不够权威)
1)程序和系统是对现实世界的事物及其活动的模拟
2)由于用程序构建起来的模拟世界和现实世界很不相同没有可比性,所以要建立一个模型,这个模型既可以抽象出现实世界也可以抽象出模拟世界
3)设计的过程就是先以现实世界为基础,抽象出一个模型(系统设计),再将这个模型还原到模拟世界(程序设计)的过程

UML提供了一个抽象现实世界的方法,这个方法把抽象过程分成了以下几个步骤
1)抽USE CASE,就是对已有的做法进行归纳和总结,新手最容易犯的错误
  就是对将要开发的系统进行归纳和总结反而无视现实世界。要开发的系统并不存在,
  以它为基础去抽象USE CASE会变得很难而且也没有意义,这种情况下最容易
  产生直接写程序把这个东西做出来看看的冲动。如果只是开造现有业务(如,把已有的
  人事管理流程改称电子处理流程)则没有必要把业务UC和系统UC分开来分析。但是,
  当使用信息系统去实现一个前所未有的功能时(如把一家超市改成网店)这就需要先针对
  现有业务作业务UC并作改进,然后再作有了网络和系统时的系统模型(也就是系统UC)。

  另外,USE CASE的名称是进行下一步分析重要依据。
  通常要按照动词+宾语的方式来命名。如 登记人事信息。
  其中,动词部分将成为事件流(或者叫活动图)分析的依据而宾语部分就是处理对象的概括。
  

2)抽出USE CASE之后,就为每个UC作活动图,将上面提到的动词部分拆分到几个更为
  详细的步骤中去。同时,每个步骤地处理对象也要按照上面的宾语进行拆分。
3)然后,把活动图中定义的名词作为序列图中的对象,为每个UC做序列图。在分析序列的过程中追加对象是很普通的事情,不需要回过头去修改活动图。
4)把序列图中的对象抽出来做类图,根据序列为类添加方法和属性
5)对类的方法和属性进行详细定义。(如,人事信息的属性,有效值等等)
6)把序列图中定义边界抽出来,做画面设计
7)把序列的先后次序抽出来,做控制类设计
系统设计完成

运行环境+分析类,为每个UC作序列然后拆物理类--这个就不细说了。

使用道具 举报

回复
论坛徽章:
59
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-10-28 14:15:35管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
12#
发表于 2010-9-26 13:44 | 只看该作者
原帖由 kissmoon 于 2010-9-26 12:00 发表
我看 thinking in uml 中的 示例,序列图 里
操作人员----边界----控制类---实体
发起操作-->显示--->处理-->实体

这些边界类和控制类及实体,得在序列图之前做出来吧?


因为画了序列图才知道有边界类和控制类及实体。
分析类的设计恰恰是根据序列图画出来的。

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
13#
 楼主| 发表于 2010-9-26 13:56 | 只看该作者
你这么一说,清楚了很多:-)

6)把序列图中定义边界抽出来,做画面设计

   这里的这个边界,需要先定义一个边界类吗?

我现在看的 thinking in uml 里,
感觉这里是先对每个UC定义 边界类 控制类 实体 三个类,然后用这三个类及相关的对象绘制序列图。(对书理解可能也不对)
由边界类向控制类发消息,控制类向对象及实体类发消息。

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
14#
 楼主| 发表于 2010-9-26 13:58 | 只看该作者
呵呵,明白了:-)

谢谢 lodge

使用道具 举报

回复
论坛徽章:
62
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
15#
发表于 2010-9-27 10:35 | 只看该作者
原帖由 lodge 于 2010-9-26 12:57 发表

它们是ER图的主要分析对象。


用了 UML,就不再需要用 ER 图了。

使用道具 举报

回复
论坛徽章:
62
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
16#
发表于 2010-9-27 11:12 | 只看该作者
原帖由 lodge 于 2010-9-26 13:44 发表

因为画了序列图才知道有边界类和控制类及实体。
分析类的设计恰恰是根据序列图画出来的。


不对。

软件实体类很多来自业务领域模型中的业务实体类,它们及其关系的存在并不依赖于画不画序列图,而是事先就可以知道。可以重用业务领域分析的结果,这正是 OO 方法的一大优点。

不过,画了序列图,除了实现用例功能的基本目的外,还可以反过来调整和优化分析类的设计。

不能说,分析类的设计只是根据序列图画出来的,影响分析类设计结果的有多个因素和来源。

使用道具 举报

回复
论坛徽章:
62
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:522012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:252012新春纪念徽章
日期:2012-02-13 15:12:25马上有车
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上加薪
日期:2014-02-19 11:55:14
17#
发表于 2010-9-27 11:20 | 只看该作者
lodge 说的 Block 图是这个吧:

http://en.wikipedia.org/wiki/Block_diagram

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
18#
 楼主| 发表于 2010-9-27 15:57 | 只看该作者
原帖由 张恂 于 2010-9-27 11:20 发表
lodge 说的 Block 图是这个吧:

http://en.wikipedia.org/wiki/Block_diagram


这个图的话,怎么做 block 间的序列图?

我感觉只有数据流吧。

使用道具 举报

回复
求职 : 技术总监
论坛徽章:
39
会员2007贡献徽章
日期:2007-09-26 18:42:10ITPUB社区12周年站庆徽章
日期:2013-10-08 17:44:42ITPUB社区千里马徽章
日期:2013-08-22 09:58:03ITPUB社区千里马徽章
日期:2013-06-09 10:15:342013年新春福章
日期:2013-02-25 14:51:24ITPUB 11周年纪念徽章
日期:2012-10-10 13:11:14最佳人气徽章
日期:2012-03-13 17:39:18ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282011新春纪念徽章
日期:2011-01-04 10:24:02ITPUB9周年纪念徽章
日期:2010-10-08 09:28:51
19#
 楼主| 发表于 2010-9-27 16:12 | 只看该作者
我现在的做法是
在系统用例之后 做一步“业务用例”涉及“对象”的分析,并且每个业务用例都增加两个类,一个界面类,一个控制类

这样,序列图就可以做成如下:
操作人员--->界面---->控制类--->对象1---->对象2.......

如此,操作人员只与界面交互,界面与控制类交互,控制类与各个对象交互,
之后,细化界面类、控制类以及对象对应的类。

使用道具 举报

回复
论坛徽章:
59
马上加薪
日期:2014-02-19 11:55:142012新春纪念徽章
日期:2012-02-13 15:11:522012新春纪念徽章
日期:2012-01-04 11:49:54ITPUB十周年纪念徽章
日期:2011-11-01 16:19:41灰彻蛋
日期:2011-10-28 14:15:35管理团队成员
日期:2011-05-07 01:45:082011新春纪念徽章
日期:2011-02-18 11:43:332011新春纪念徽章
日期:2011-01-25 15:42:562011新春纪念徽章
日期:2011-01-25 15:42:332011新春纪念徽章
日期:2011-01-25 15:42:15
20#
发表于 2010-9-27 20:46 | 只看该作者
原帖由 张恂 于 2010-9-27 11:12 发表


不对。

软件实体类很多来自业务领域模型中的业务实体类,它们及其关系的存在并不依赖于画不画序列图,而是事先就可以知道。可以重用业务领域分析的结果,这正是 OO 方法的一大优点。

不过,画了序列图,除了实现用例功能的基本目的外,还可以反过来调整和优化分析类的设计。

不能说,分析类的设计只是根据序列图画出来的,影响分析类设计结果的有多个因素和来源。


不考虑流程直接定义实体的方法比较类似于传统的DO(DATA ORIENTED), 这个方法在做系统分析时, 首先收集现有业务的单据和报表并绘制DFD, 然后做逻辑ER图在做物理ER图.

偶提到的做法综合了DA和PA(PROCESS ORIENTED), 在这样的设计中业务实体,业务流程都被看成是对象, 可以被抽象成类, 因此它并不违背OO的原则.
另外, 这个手法是花了大把的银子从MS的技术咨询那里学来的,应该说这个流程还是相当的权威滴.

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表