用例是编码时的直接参考物吗?
用例可以捕获需求、记录需求,但一般用例都只是在一个较高的层次上表达使用者使用系统达到他所要达到目标的一系统步骤,并不说明软件的功能到低是什么样子的,比如界面是什么样子的。也许需求规格就应该是这个样子,但是这样的需求规格就是编码的直接参照物吗?感觉应该还有个功能设计规范之类的东西,把界面等元素是什么样子都详细的说明,也就是说,可以达到这样的效果:几个不同的人参照这个功能设计规范开发出来的东西是一样的。
不知道对于这个问题是怎么做的,是不是在用例之后,都还要有一个功能详细设计规格
用例当然是编码时的直接参考物。
编码时要参考逻辑模型,它规定了编码的算法;同时要参考用例,它规定了编码的目的。否则怎么可以叫做用例驱动编程呢?
当然这里说的用例,是指用例模型(use case view),而不仅仅是用例图(use case diagram)或用例描述(use case description),在这几上概念应区别开来,不要混淆。
用例图及用例描述是描绘用例模型的主要工具,但同时,用例模型中也可以并应该包括静态结构图,即类图。用例模型在表现手段上与逻辑模型是一样的,只是表现内容上不一样,用例模型只描绘系统边界。因此,用例模型中的类图描绘的只是系统边界上出现的类。换句话说,在用例图及用例描述中所出现的名词,均应在类图中进一步详细说明,且,用例模型的类图中所出现的类,应仅限于系统边界上可见的类,如:操作窗口及其内容、接口协议及其内容等。
关于人机界面,当然是一种系统边界上可见的类,可以也应该在用例模型的类图中进行描述,又由于人机界面本身所具有的直观性,采用界面原型图(非UML图)描述更为有效,所以通常用界面原型图来描述,但在语义上将其视同为类图,窗口与其中内容的承载关系映射为类图中窗口类和控件类的包含关系。
例如:
用例描述中有:
1. 系统显示登录窗口
2. 用户输入用户名
3. 用户点击确认按钮
4. ……
其中出现的名词(登录窗口,用户名,确认按钮等)均应在静态结构图中进一步描述,但由于是人机界面,则可以用界面原型图代替类图来描述:
+----------------------------+
|登录窗口 |
| |
| 用户名:______________ |
| |
| +---------------+ |
| | 确 定 | |
| +---------------+ |
| |
+----------------------------+
但在语义上,应该理解为有一个类名为“登录窗口”的类和一个类名为“确定按钮”的类,其间的关系为“登录窗口包含确定按钮”。
在理解了上述概念后,你就会觉得用例(模型)的描述手段是丰富的,当然可以做为编码的直接参考物。
总之,UML是工具,而不是束缚,在应用过程中即要遵守既定的规则,也要灵活而不能教条。如果你用UML过程中如果感到很拘束,那一定是对UML理解得不透,或有误用。