成本预估对于所有的项目来说都是至关重要的。没有成本预估,就不可能在项目前期控制成本与管控风险。为了让项目经理能够尽早组建团队、申请项目资金,并评估可能的风险,一个方式便是参考以往项目经验来估算项目成本。
成本最重要的“开发成本(时间)”部分就是由 程序员 参考生产力来评估所有系统功能完成的。尽管具体功能花费的时间是由程序员来估算,但是比”具体功能”影响更大的,比如,项目有多少功能?范围如何?则是由项目经理向客户确认的,而确认的结果就是用例文档和用例图。
相比用例,同样是描述参与者和系统的交互(也就是系统功能),用例图却有这样的优点:
- 简单。相比几百行的文字和简单的图形,可想而知哪个更容易
- checklist。图形容易放在一张纸上,这样有助于发现检查遗漏的需求;几十页的文字很难做到。
所以,在分析系统时使用用例图更不容易遗漏,更有帮助与沟通,也更能帮助到你。而我们说的成本预估刚好需要从系统的范围入手。
谁使用用例图?
用例图是一个非常有效的工具,各个参与方都可以从中获益:
- 客户–可以更好的理解软件将完成什么,并能判断当前的方案是否满足他们大部分的需求。
- 项目经理–项目经理可以使用用例图来保证各利益方达成共识。在项目预估时,用例图可以作为重要的沟通手段,确保所有人都很好的理解了方案设计的系统范围。
- 程序员–通过用例图理解系统的功能和交互。
如果你有一只笔和一张纸,那么现在就可以开始了
怎样创建用例图?
创建用例图的工具非常多。一开始时建议使用白纸来绘制草图,一般我会快速地画出马上识别出来的用例图。这些用例一般颗粒比较粗,所以随后我会在另外一张白纸上画出比它颗粒更细的用例图。过程中,我通常使用比较粗的黑色水笔来绘制第一份用例图,因为较粗的线条会迫使我专注在重要的元素上,并忽略那些暂时不重要的细节。如果出现了错误,我选择直接放弃它,这完全不会影响其它的草图。但是被放弃的草图纸,你最好想办法再次利用他们,这是为了环保。
当草图完成的时候,我一般会邀请团队的技术主管做个简短的评审。评审时我会先在电脑上使用软件重新绘制草图。较之于在白纸上绘制草图,使用软件绘制有如下的好处:
1 重新组织用例图元素时,使用软件比手绘更快、更简单。
2 软件提供了绘制模板,使用手动拖放就可完成绘制过程。
3 数字用例图更容易和别人分享,并且能够在团队中保证用例图的一致性。
我使用 UMLet 作为绘制用例图绘制工具,你可以在官网 http://www.umlet.com 中下载到它 。 它是开源代码轻量级UML建模工具,使用界面简单,能够让你快速建模,并能导出各种格式SVG, JPG, PDF and LaTeX-friendly EPS。恰恰因为它的简单,让我在众多的软件中选择它。
UMLet还为绘制其它图形提供了模板,比如时序图、泳道图等
我认为UMLet是非常值得推荐的工具,但是,用例图本身是和工具无关的,他的目的是促进交流和探索新需求。这意味着你应该选择自己熟悉的工具。
用例图的4个小技巧
1. 不要试图将用例图变漂亮
虽然我们应该尽量将用例图装饰得好看一点,但是不要把精力放在上面,而应该把精力集中在其要展示的系统上。
2. 及早反馈,经常反馈
不用担心你的用例图还没有展示所有的东西,而应该尽早地向利益相关者展示。用例图应该是协作式的、迭代式的过程,这个过程分为3个步骤:
- 从草图开始,以表达一些概念
- 从所有利益相关方收集反馈
- 逐步完善直到项目结束
3. 站在用户的角度
4. 在必要时使用注释
在你需要说明的地方加上注释,比如关于更细颗粒的用例在另外一页时,可以使用用例说明。
结论
用例图是帮助团队讨论系统、分析系统的绝佳工具,它非常适合在团队讨论、分析、展示、评审时使用。同时,它又非常地简单,一只笔、一张纸即可,当然你也可以使用软件。如果你在预估项目开发时间时使用它,我相信它会帮助到你的。