热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

经验总结UML用例建模技巧

本节向大家介绍一下UML用例建模技巧,在学习UML建模语言过程中经常会遇到UML用例建模方面的问题,所以这里很有必要向大家介绍一下,相信通过本节的介

本节向大家介绍一下UML用例建模技巧,在学习UML建模语言过程中经常会遇到UML用例建模方面的问题,所以这里很有必要向大家介绍一下,相信通过本节的介绍你对UML用例建模技巧一定会有深刻的认识。

UML用例建模技巧

从参与者的角度并以主动语态编写用例。

应该以主动语态:“学生表明参加研习班意向”,而不是被动语态“研习班意向被学生表明”来编写用例。而且,应该从参与者的角度来编写用例。毕竟,用例的目的是理解用户如何对系统进行操作。

编写方案文本,而非功能需求。

用例描述的是对参与者来说有价值的一系列行动,而不是特性集。例如,“招收研习班的学生”用例描述的是学生如何与系统交互来参加研习班。它没有描述用户界面看上去是什么样子,或者它是如何工作的。有一些其它的模型来描述这些重要的信息,例如用户界面模型和增补规范。面向对象分析非常复杂,因此需要对它使用几种模型,并且应该适当地应用每一种模型。

用例只记载行为需求。

用例既不是类规范,也不是数据规范。这是应该由概念性模型捕捉的一种信息,在对象世界中,它是通过UML类模型建模的。您往往会引用概念性模型中描述的类,例如,“参加研习班”用例包括了“研习班”和“学生”等概念,它们都将由概念性模型描述。

不要忘记用户界面。

UML用例建模技巧中,系统用例经常引用主用户界面(UI)元素,这些元素常常称为“边界”或“用户界面”项,例如HTML页面和报表。用例有时也引用一些次要的UI元素,例如按钮或数据输入字段,但这种级别的细节并不太常见。

创建用例模板。

用例包含了相当数量的信息,这些信息可以轻易地以常见格式记载。您应该考虑开发自己的模板(请参阅技巧“记载用例”)。

始终如一地组织用例图。

一般的做法是垂直地绘制继承(inheritance)和扩展(extend)关联,在父/基本用例下面绘制继承/扩展用例。同样,通常水平绘制包含(include)关联。请注意,这些是简单的经验法则--只要始终遵循这些法则,产生的图将很容易理解。

不要忘记系统对参与者行动的响应。

UML用例建模技巧中,用例既应该描述参与者是如何与系统交互的,也应该描述系统如何响应这些交互。例如,在“参加研习班”用例中,如果系统在学生表明他们希望参加研习班时没有做出响应,学生就会很沮丧地离开。

备选行动过程非常重要。

如果一切顺利,使用的将是基本行动过程--但也不要忘记备选过程。引入备选过程是为了描述潜在的使用错误以及商业逻辑错误和异常。这些重要的信息对于驱动系统的设计来说很有必要,因此不要忘记在用例中对它们建模。

不要被<>和<>关联所困扰。

我不是很确定到底发生了什么事,但我总是在想包含(include)和扩展(extend)关联,以及旧版本UML中使用(uses)和扩展(extends)关联的正确使用从来没有得到很好的描述。结果,用例建模小组往往在这些关联的正确应用上争论不休,在整个建模技术中一些有趣但次要的部分上浪费了惊人的时间。我曾在一个组织中工作,这家组织居然取缔了<>和<>原型的使用,几个星期后,当意识到公司仍然需要这些概念时不得不撤消了这种极端的解决方案,而这时该组织对它们的正确使用还没有达成共识。

让用例带动用户文档。

用户文档的目的是描述如何使用系统。每个用例都描述了参与者通过使用系统所采取的一系列动作。简而言之,用例包含从中开始编写问党用户稳当的信息。例如,可以使用“参加研习班”用例作为基础来编写系统用户文档的“如何参加研习班”一节。

让用例带动演示。

UML用例建模技巧中,软件开发过程中的一部分是向项目资金管理者通报工作成果,因此有时需要提供演示。因为用例是从用户的角度编写的,它们包含了演示中对资金管理者可能希望听到的事物的有价值的深刻见解。换句话说,用例通常包含制定演示稿所需的逻辑。


推荐阅读
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 本文详细介绍了如何解决DNS服务器配置转发无法解析的问题,包括编辑主配置文件和重启域名服务的具体步骤。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本章介绍了TCP/IP协议族中的链路层,其主要功能是为IP模块发送和接收IP数据报。链路层还支持一些辅助性协议,如ARP。此外,本文详细探讨了不同类型的链路层技术及其应用。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 本文介绍了一种在ANSI C中动态分配二维数组的方法。通过创建指针数组并为每个指针分配连续空间,可以灵活地管理内存。文章还讨论了一些常见的错误和注意事项。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • XAMPP 遇到 404 错误:无法找到请求的对象
    在使用 XAMPP 时遇到 404 错误,表示请求的对象未找到。通过详细分析发现,该问题可能由以下原因引起:1. `httpd-vhosts.conf` 文件中的配置路径错误;2. `public` 目录下缺少 `.htaccess` 文件。建议检查并修正这些配置,以确保服务器能够正确识别和访问所需的文件路径。 ... [详细]
  • 题目《BZOJ2654: Tree》的时间限制为30秒,内存限制为512MB。该问题通过结合二分查找和Kruskal算法,提供了一种高效的优化解决方案。具体而言,利用二分查找缩小解的范围,再通过Kruskal算法构建最小生成树,从而在复杂度上实现了显著的优化。此方法不仅提高了算法的效率,还确保了在大规模数据集上的稳定性能。 ... [详细]
  • 装饰者模式(Decorator):一种灵活的对象结构设计模式
    装饰者模式(Decorator)是一种灵活的对象结构设计模式,旨在为单个对象动态地添加功能,而无需修改原有类的结构。通过封装对象并提供额外的行为,装饰者模式比传统的继承方式更加灵活和可扩展。例如,可以在运行时为特定对象添加边框或滚动条等特性,而不会影响其他对象。这种模式特别适用于需要在不同情况下动态组合功能的场景。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
author-avatar
菜蔸蔸
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有