`
龙晓舟
  • 浏览: 160751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Abd288eb-a9b2-3549-ba16-f04b1b34dec3
创业,不能兼职
浏览量:24619
文章分类
社区版块
存档分类
最新评论

创业,不能兼职(34)--- 用例图原来是和我的word结构图很接近的东西

阅读更多
有些朋友,我真的感谢,他们会不嫌你白痴地耐心地指教你. 和这样的人交流,遇到问题时,他不会是以"你反正不懂,你不要管"这样的态度对待你.而是尽量用深入浅出的一些词语讲解给你听.或者指点你自己去了解一些概念. 比如,今天让我看用例图的人. 他是真的有些耐心.

虽然,我绝对不会真正去按技术人员的标准去学习,也绝对不会以外行的身份,真正对技术人员去指手画脚,但对一些基本技术概念的了解,还是非常需要的.

因为,我是在做自己想要做的东西,我并不是一个外包公司的客户,也不是一个所谓大公司的领导.不能简单地以外行的身份和人家讲完需求就了事. 你自己是创业者,是要把自己想要的东西和懂技术的人一起实现出来. 以我现在对互联网行业的了解,在具体这个项目实现的过程里,我的角色应该是产品经理. 我感受是,一个好的创业者,一定得是一个好的产品经理. 而一个好的产品经理,一定不能完全对技术毫无所知,否则,你没有办法和程序员很好地合作.你会经常在和他们的交流里,出现"神马"问题.你会完全不知道,技术对你项目的支撑度.你在产品设计时,也会受到很多因为自己不懂技术,而对产品设计思路带来的禁锢.

我现在,就是一个初入道还不太合格的产品经理.我需要一步步提高自己.

总有人和我说,人过30不学艺. 那是胡说,任何时候,学任何东西都不晚.只要,你心里有梦.

说起用例图,我百度后看到的一个帖子,和iteye里nkshan的跟贴,真的是很深入浅出地做了描述.我很吃惊地发现,原来,有些问题也不难啊,我大多都能看懂嘛. http://www.cnblogs.com/chenqingwei/archive/2010/07/01/1769361.html


比如,第一段,描述什么是用例图的.

用例图是用来描述什么角色通过某某系统能做什么事情的图,用例图关系的是系统的外在表现,系统与人的交互,系统与其它系统的交互。

下面逐一说明用例图中各种符号的意义:

一\小人:
对使用某系统的用户进行分类后,可以总结出使用本系统有哪些角色,不同的角色的工作责任不太一样,他们需要用到的系统的功能也会不太一样。
小人就是角色,它给了我们一个启示,我们思考某系统的需求时,可从不同角色的角度来思考。
例如:我们要做一个考勤系统,你会怎样思考呢?会一下子列出很多功能?比较好的方式,应该是先思考什么人会用这个系统,我们大概可以估计一般员工、高层领导、前台、财务等都会用这个系统,对于一般员工来说除了打卡,他还关注什么?对于前台,她是不是要做一些考勤的统计?而财务是不是要根据考勤情况来调整员工的薪金?这样的思考方式,会让我们更容易全面发掘系统的需求。
还需要特别说明的是:角色可能是人,也可能不是人,而是另外的一个系统,本系统与另外一个系统交互的话,可以将另外一个系统画成某某角色。


关于这段,我的感受和疑问是:
1.微博里用户关注的人,用户的粉丝这些,算不算不同角色呢?没有注册的用户,就是仅仅浏览的用户,算不算一种角色呢?注册了没有登录的用户算不算一种角色呢?

我好像设计的时候,一直都是直接以自己是一个用户,进入网站后,如何操作这样的流程在写需求文档,同时设计界面.好像,没有想象过很多角色的问题.

2.角色可能不算人,是另外的一个系统,这个,没例子,我还不太能理解.

3.呃,那个小人咋画出来的?


二\圈圈:
圈圈里面会有一段动宾结构的文字,也就是“动词+名词”这样的方式,这个圈圈+圈圈里面的文字,就是用例,这些用例表明了系统能做什么事情。
以考勤系统为例:有两个用例叫“打卡”、“查看自己的考勤情况”,这个两个圈圈分别用一条线连到了“一般员工”这个角色,我们可以按这样的顺序来读这个图:先读出角色的名字,然后读出用例中的文字。按着这样的读法,我们可以得到两句完整的句子:
“一般员工打卡”
“一般员工查看自己的考勤情况”
大家可以用这样的方式来检查自己用例图是否画得合适。
某用例不一定是只属于某个角色的,有不少用例是多个角色“共享”的。

这段我理解起来,没问题.

三\大框框:
在所有用例的外面,有一个方框,这个方框只框住了用例,没有框住角色,这个东西就叫做系统边界,框框的上部会注明本系统的名字。
我们所做的系统,是不可能包括角色的,系统要发挥各种作用,要靠各角色“穿越”系统边界来使用本系统的用例。
系统边界能清晰表达出系统的范围,并不是所有的用例图都需要画出系统边界的,一般只需要在全局用例图中画出系统边界,当对用例进行细化时,不需要画出系统边界。

这段我理解起来好像也没问题.

四\线条:
线条是指角色与用例之间的线条,线条有三种:无箭头的,指向用例的箭头,指向角色的箭头。无论是否有箭头,这些线条是用来联系角色(小人)和用例(圈圈)的,表示某某角色能“做”什么用例。
有箭头的线条,表示角色与系统交互的过程中,数据的流向,如果箭头指向用例,就说明角色需要往系统输入数据,如果箭头指向角色,说明系统往角色输出数据。
而没有箭头的线条,则没有明确表示数据的流向,一般情况下不需要明确表示数据的流向,只需要画无箭头的线条就可以了。

这段里面,我的感受和疑问是:

"数据的流向,如果箭头指向用例,就说明角色需要往系统输入数据,如果箭头指向角色,说明系统往角色输出数据。"我觉得解释的很好,可是,我一下没想出 系统往角色输出数据是什么意思.是不是,比如 ,在我这里,一个用户,输入了一个旅行的数据, 这个数据,就和这个用户建立了某种关联,这个数据就属于这个用户的? 就是系统往角色输出数据?

第二段,是讲解用例图中的Extend、Include、继承

一\“打印报表”这个用例有一条指向“查看一般报表”用例的虚线,虚线上有“<<extend>>”的字样,这表示“打印报表”扩展了“查看一般报表”,用户可以在“打印报表”的基础上做“打印报表”的工作,这就是Extend的意思。如果“打印报表”这个用例不存在,是不会影响“查看一般报表”这个用例的,而“查看一般报表”这个用例如果不存在,则用户无法在“查看一般报表”的基础上做“打印报表”的工作了。

我的感受和疑问:
我发现,程序员和外行的思维看来真的不一样, 要是这个“打印报表”扩展了“查看一般报表",在我,就会是把箭头反过来画,是从"查看一般报表"指向"打印报表",因为,我会认为是 先"查看"了,再继续"打印". 箭头指向的,肯定是从箭头这边延伸出去的嘛.
哎呀,来自火星的程序员们.唉,他们先制定的规则,你就只有记住的份,不能改变那些约定俗成.

二\“管理数据”有三根虚线,箭头分别指向“查看数据”、“新增数据”、“修改数据”,虚线上有“<<include>>”字眼,这表示“管理数据”包含“查看数据”、“新增数据”、“修改数据”三个子用例,这就是Include的意思。在以下情况下,会用到Include:
1)某些用例的其中一些步骤可以单独抽离出来,成为一个子用例。
2)以“树”的方式条理化各种用例,用Include来组织好父子用例,子用例可以再次Include自己的子用例。
上图中将“管理数据”进一步分解为子用例,其实是没有必要的,实际项目中数据的查看、增加、修改、删除操作是很常见的,我们在描述用例的时候一般只需要将这4种操作说成“管理XX”就可以了。

我的感受和疑问:

啊,我明白了一个,刚刚我前面的疑问,那个虚线箭头虽然是方向和我想的相反,但人家是标了extend这词的.

唉,这个,分解子用例的例子,谁说没必要? 我之前,写需求时就没写这个.我也觉得这是理所当然地,根本就只顾写一步步主要的业务流程去了,就忘记写这个具体添加一个数据后,还需要编辑,删除,和继续添加了.等兼职的程序员做了后,我发现,.他没给我地方去编辑,也没删除.

还有感受,就是,这些类似的东西,我都用word文档写过的.我不会画表,采取的方式就是,用级别不同的标题来区分. 我自己要是在word里点文档结构图,觉得很明白. 可是,程序员们好像就是看不明白.看来,对他们来说,还是图表比word的文字容易明白.

三\细心的朋友可能会发现,角色与角色之间怎么会有一个类图中的“继承”符号呢?从上图看来,就是录入员继承一般用户,领导继承录入员,什么意思呢?
无论是录入员还是领导,都需要先登录系统,才能使用各种功能,我们是否需要分别在“登录用户”与“录入员”、“领导”之间各拉一条线?
一般用户可以查看一般报表、打印报表,那么录入员、领导是否也可以呢?
录入员这个角色继承了一般用户,其实就是表示一般用户能做的事情,录入员也能做,同意道理,录入员能做的事情,领导也能做,这个“继承”符号就是这个意思。在实际工作中,我们往往需要用好这个“继承”符号,将角色进行适当的抽象。

我的感受和疑问:

啊,刚刚看了半天,没看出这个"继承"和之前用例图里,描述角色和系统关系中的一种,有箭头的线条有什么区别,现在仔细看,这个"继承"的箭头,是一个空心的三角形的箭头.那个是一般的箭头.

这个东西好像用处不错,现在想起来,我之前学习使用mindmanager时,就遇到过,不同的角色和某个用例都有相同的关系时,就是很老土地每个角色都去和那个用例连起来.

不过,程序员们,是不是真的也懂这个符号啊? 不然,我懂,他们不懂,不也是白搭?

我的总结是,其实,画这图也好,我那样的word结构图也好,对于单方,比如我自己也好,程序员也好,如果自己思维清楚的话,其实都是一样能表达明白自己的需求和自己理解的需求的,本质区别其实不大. 在自己,也都只是起理清思路的作用,不是真正最后实现的效果.

如果,双方对对方word文档结构的表达方式的理解一致,用word,也一样能得到一样的交流和表达效果.

如果,对用例图的表达不熟悉,表示错误,可能双方一样沟通不好.

目前,在我自己,用这个用例图的意义,是,它从形式上看,可能会更抽象一些,更清楚一些,照我目前的理解是,也许程序员更习惯这样的方式一些. 我也许真要试着这样画画.

但最关键的是看,和自己准备合作的技术人员是不是真的也熟悉这个. 技术人员,也应该看自己团队的产品经理和其他产品经理是不是熟悉这个.

以前,我不熟悉这个,我其实应该也是看到过人给我画的类似的图的,我就是处于那种状态:看起来好像觉得人家表示的是对的,实际不知道人家是不是真的清楚和完全地表达了我要表达的东西.

所以,用双方都能懂的东西在图表和文字上交流. 然后,当面语言沟通说明.及时修改可能是最重要的.实在不行,就是各自用自己的表达方式表达,然后交流,然后接着用自己熟悉的方式记录. 交流明白,最重要.这个东西本身的表达方式,在你自己的记录那里,其实可能还没那种重要的意义.

四\用例图何时需要分解、何时不需要分解?
也就是分解的粒度通常情况下是多大呢?

用例的表达粒度是由自己控制的,以下几点建议供参考:
1.在客户能准确全面理解的基础上,用例约精简越好。
2.重点难点用例,应详细去描述。
3.用例需要开发人员去实现,要让开发人员能看懂。
4.用例图不是万能的,也不是表达需求的唯一方式,我往往会以用例图为主同时附加其它的表达方式来表达,某些特殊项目,我甚至不用用例图来描述需求。

我基本赞同理解这段. 不过,我在描述需求时,有时真不知道哪些该精简,哪些不提示程序员,他就会忘记,所以,写的杂而碎.

总之,在我, 自己理清思路时,这个图,意义还不算太大,但和程序员交流时,如果他们不能很好明白自己写的东西,或者因为,不太理解,而不能把我的需求自己比较清楚地转化成他们习惯的这种用例图,那么,我就应该尽量迁就他们, 由我自己尝试去画.毕竟,这可能是和行业内人士打交道通用的方式.

所以,我要试着学习画一下.

不过,希望,我不要因为不会画图,而弄错了一些真正自己想表达的东西,反给程序员带来误导.
所以,沟通,还是很重要.在沟通里,让他们修改图也行的.

下周,再表述一些片段时,我可以试着画这样的图.









2
5
分享到:
评论
10 楼 jackra 2011-08-18  
用例图,用于描述功能原型,确认系统边界,和系统用户。
比如流程:A提出问题,交给B,B和C口头讨论,得出结果,告诉A。
那么画图的时候,就要考虑,系统对于这个流程能支持到什么程度。A提交问题给B,系统可以帮助完成,那么可以画成A提交给用例,用例反应给B,B和C的讨论,系统无法支撑,那么就只能画成角色之间的连接,同理为回馈。
通过画图,得出结论,C与系统没有直接联系,不作为系统用户。系统对于口头讨论不做业务支撑,就不作为系统内设计的功能。
9 楼 yfyh87 2011-08-12  
龙晓舟 写道

是啊,我其实基本就是90%的时间在找人.因为,我自己要设计的部分,后面的,还早,前面的很多,基本架子和很多细节也都很清楚了.剩下的,我学再多,也不能真正做.所以,要做的事情,就是找人.

在iteye发博客的主要原因之一,也是找人:)

很多公司在51job上找人有用,我这个, 没用.因为,找完全不了解,不熟悉你的,哪怕是刚毕业,没毕业的,最差的,...100%会问的问题是,公司在哪里啊,公司规模多大啊,公司成立多少年了啊... 每次,我都是既不得不回答,又懒得回答.因为,一回答,就基本没有再谈下去的必要, 再谈都很浪费时间. 解释起来很麻烦. 99.999%也不会有用.

有iteye上的朋友,教我,撒点小谎,在公司规模,形象上自我夸大一下,我在心理上很排斥这样的做法,但有一次,也试着对人说过, 我这是**公司(我好朋友公司,规模不错)的,现在有个单独项目拿出来做,劳资关系还是从那个公司走,云云. 后来,觉得很别扭. 因为,我又不想找在意这些表面和形式的人,想找的就是承认所有的现状,真正内心有热情的人.所以,不如坦荡.

就在这样的实际流水账里,尽可能多地坦诚真实地表露自己的缺点,缺陷,个性,价值观.目前的状态.

这样,有任何人,在任何时候,想加入时,不用我像祥林嫂一样,一遍遍重复,至少,在一些最基本的层面, 对我和我的项目有一个了解.

看楼主的帖子,总觉得凄凉
你需要的不是干活的人
你需要的是合伙的人

给你推荐个网站吧,里面都是技术型的创业者:

http://gurudigger.com/  (全球的创意和创业者都在这里~包括FACEBOOK和豆瓣的:)

不过楼主最好也要精通一门技术
产品经理不算,技术和销售都算


8 楼 龙晓舟 2011-08-12  
yfyh87 写道
时常看楼主的帖子,觉得挺悲情的,一个人战斗是不行的呀,假使你所有东西都会,包括编程,你一个人也搞不定的呀

我建议楼主现在不要再花时间看啥书,学啥用例图,学啥术语了

用80%的时间去找团队

20%的时间找灵感吧

马云也不会画用例图的

想想当年刘备,会个啥,但是出去转一圈,等关羽,张飞,诸葛亮都凑着了,不用打,三分天下已得呀~~


是啊,我其实基本就是90%的时间在找人.因为,我自己要设计的部分,后面的,还早,前面的很多,基本架子和很多细节也都很清楚了.剩下的,我学再多,也不能真正做.所以,要做的事情,就是找人.

在iteye发博客的主要原因之一,也是找人:)

很多公司在51job上找人有用,我这个, 没用.因为,找完全不了解,不熟悉你的,哪怕是刚毕业,没毕业的,最差的,...100%会问的问题是,公司在哪里啊,公司规模多大啊,公司成立多少年了啊... 每次,我都是既不得不回答,又懒得回答.因为,一回答,就基本没有再谈下去的必要, 再谈都很浪费时间. 解释起来很麻烦. 99.999%也不会有用.

有iteye上的朋友,教我,撒点小谎,在公司规模,形象上自我夸大一下,我在心理上很排斥这样的做法,但有一次,也试着对人说过, 我这是**公司(我好朋友公司,规模不错)的,现在有个单独项目拿出来做,劳资关系还是从那个公司走,云云. 后来,觉得很别扭. 因为,我又不想找在意这些表面和形式的人,想找的就是承认所有的现状,真正内心有热情的人.所以,不如坦荡.

就在这样的实际流水账里,尽可能多地坦诚真实地表露自己的缺点,缺陷,个性,价值观.目前的状态.

这样,有任何人,在任何时候,想加入时,不用我像祥林嫂一样,一遍遍重复,至少,在一些最基本的层面, 对我和我的项目有一个了解.







7 楼 yfyh87 2011-08-12  
时常看楼主的帖子,觉得挺悲情的,一个人战斗是不行的呀,假使你所有东西都会,包括编程,你一个人也搞不定的呀

我建议楼主现在不要再花时间看啥书,学啥用例图,学啥术语了

用80%的时间去找团队

20%的时间找灵感吧

马云也不会画用例图的

想想当年刘备,会个啥,但是出去转一圈,等关羽,张飞,诸葛亮都凑着了,不用打,三分天下已得呀~~
6 楼 pan_61 2011-08-12  
一般我比较喜欢用Word+UML用例图来描述需求文档,综合利用用例图的图形表现能力和Word的文字描述、排版能力。只画UML图的话一般都需要特定的软件才能查看,不太方便,Word就比较常用了。许多UML画图工具也有将UML用例图或是其他图形导出为图片的功能,方便插入到Word中。
不过你提到的角色与用例带箭头的那两种方式我也没用过,我也学习了下。。。。呵呵
5 楼 龙晓舟 2011-08-12  
pan_61 写道
大概看了一下。。真长。。。我有时候也用用UML画用例图,说下我的理解吧,呵呵。。。

"1.微博里用户关注的人,用户的粉丝这些,算不算不同角色呢?没有注册的用户,就是仅仅浏览的用户,算不算一种角色呢?注册了没有登录的用户算不算一种角色呢? "

微博里用户关注的人,用户的粉丝中对应的人,他们对于这个系统可以有的行为都是相同的。这些用户都可以发微博、关注别人、收藏微博、浏览微博等。所以他们都可以算是同一种角色。
不管是未注册的用户还是注册了未登录的用户,他们对于这个系统来说可以有的行为也都是相同的,只能进行登录操作或是注册或是浏览大概信息,所以也可以看作是一个角色,就不用分那么详细了。也就是说把他们总体归为一个角色:未登录用户。因为没有登录的用户,系统也不知道他到底有没有注册的。

"2.角色可能不算人,是另外的一个系统,这个,没例子,我还不太能理解"

不知道你有没有在其他网站用过微博的账号登录,并操作其他网站中的功能。如现在很多的团购网站就有这种功能。
还有一些与微博链接的有趣的网站,如:http://t.cn/aoopfZ(简简单单网)。你在这些网站上操作时通过与微博链接,可以将你在这些网站上的一些活动情况通过微博的特定接口自动地为你发布微博信息。这些网站就可以被看作微博的一种角色。它们的行为是操作微博提供出来的这些接口。

"3.呃,那个小人咋画出来的? "

有专门画UML用例图的工具


握手!谢谢,谢谢:)真的很受教.

看,发帖真好,有时会遇到热心的人解惑.

最后一条,这么一说,我就明白了, 用微博登录,或者是在某个网站,用msn登录,.还有,我自己也想做的分享自己网站上的操作到微博,原来就属于这个.

第三条,哈,我刚刚有人教我,我在visio里看到了.
4 楼 pan_61 2011-08-11  
大概看了一下。。真长。。。我有时候也用用UML画用例图,说下我的理解吧,呵呵。。。

"1.微博里用户关注的人,用户的粉丝这些,算不算不同角色呢?没有注册的用户,就是仅仅浏览的用户,算不算一种角色呢?注册了没有登录的用户算不算一种角色呢? "

微博里用户关注的人,用户的粉丝中对应的人,他们对于这个系统可以有的行为都是相同的。这些用户都可以发微博、关注别人、收藏微博、浏览微博等。所以他们都可以算是同一种角色。
不管是未注册的用户还是注册了未登录的用户,他们对于这个系统来说可以有的行为也都是相同的,只能进行登录操作或是注册或是浏览大概信息,所以也可以看作是一个角色,就不用分那么详细了。也就是说把他们总体归为一个角色:未登录用户。因为没有登录的用户,系统也不知道他到底有没有注册的。

"2.角色可能不算人,是另外的一个系统,这个,没例子,我还不太能理解"

不知道你有没有在其他网站用过微博的账号登录,并操作其他网站中的功能。如现在很多的团购网站就有这种功能。
还有一些与微博链接的有趣的网站,如:http://t.cn/aoopfZ(简简单单网)。你在这些网站上操作时通过与微博链接,可以将你在这些网站上的一些活动情况通过微博的特定接口自动地为你发布微博信息。这些网站就可以被看作微博的一种角色。它们的行为是操作微博提供出来的这些接口。

"3.呃,那个小人咋画出来的? "

有专门画UML用例图的工具
3 楼 peter.e.king 2011-08-11  
用例图可不是程序员制定的规则噢,也适用于很多行业。
2 楼 龙晓舟 2011-08-11  
jackra 写道
我看了下你的文章,不过没有看全。。。
zwchen的blog你可以看看。其实我是没怎么看,但是从几个blog来看,这个人确实是实干型的。
另外感觉你现在的创业有点不靠谱。。。。。


谢谢:)

我在iteye,好像第一个看的博客就是他的. 很看了几篇,记得当时确实有些是有收获的.我也和他聊过的. 他也是旅行行业的,因为,我做的东西和他的那种做团队,做线路的不一样,所以,在实际过程里,也不知道如何讨教了.

嘿,创业哪里有什么靠谱不靠谱的. 自己努力就是.

我好像就很少做从开始时,看起来很靠谱的事情. 不会修车,还驾轿车走川藏,新藏时,就是被鄙视被嘲笑.不是文人 名人,还把旅行日记整理成书,开始时也一样被出版社拒绝的.

没事没事, 自己慢慢做,就好.



1 楼 jackra 2011-08-11  
我看了下你的文章,不过没有看全。。。
zwchen的blog你可以看看。其实我是没怎么看,但是从几个blog来看,这个人确实是实干型的。
另外感觉你现在的创业有点不靠谱。。。。。

相关推荐

Global site tag (gtag.js) - Google Analytics