走出用例图误区

三层UML图错误总结 第一遍画三层的UML图,总避免不了一些错误,就我这次的图做如下总结:         1.用例图:图中的角色与用混乱,容易造成用的重复。原因主要是对业务的理解不足,对角色的权限没有搞清关系,不同级别的权限是包含的关系。         2.包图:为了使B层清晰而多分出一个 阅读详情

来自:http://blog.csdn.net/mochi_lq/article/details/6318752

    uml初学者,大部分都是从认识用例图开始。记得我刚学uml的时候,导师就再三跟我强调,uml只是一门工具,不是为了画图而画图。这句话听来并不难理解,但真要在实际项目中领悟参透还是需要一段时日的。它反应在各种需求建模的细节中。
    uml用例图也并未很难画,各种用例的间的关系也不是很难理解。对于初学者来说,很容易把重点放到uml用例图上,而忽视了用例文本(用例规格说明)的编写。高手提取几个用例会很轻松,但要编写严格、干净、逻辑性强的用例文本却非易事。所以,用例文本的编写很容易看出一个分析/设计人员的水准。
    用例图可以直观地展现需求中的所有用例、参与者、系统边界,以及它们之间的关系,但这还不足以表达需求分析所要求表达的内容。用例图必须辅之以用例说明,才能完整清楚地表达。用例模型是需求分析阶段的主要成果,因此它担负的职责繁重。用例模型必须做到以下要求:  
1、语言的互通。用例模型采用的语言必须达到,既能让业务人员看懂,以便给予业务确认,又能让技术人员看懂,以便进行日后的设计开发。因此,用例模型的描述必须是对业务需求最平实的表述,站在业务人员的角度说事儿,不能参杂过多的技术语言。同时,又要站在技术的角度进行分析,详细清楚地表述各个功能的操作流程,并不能使用过于专业的业务术语,或者对必要的业务术语进行解释,让技术人员看懂。
2、清晰准确。用例模型必须清晰准确地表达每一个业务需求,因此我们在建立用例模型的时候,必须明确每一个术语,每一段表述,不能存在二义性。
3、最全面和详尽的业务需求。用例模型必须从各个角度,全面地反映客户对系统的期望。用例模型对业务需求把握得越全面和详尽,项目出现偏差和风险的几率就越小。这要求我们进行分析时,各个角度都要分析到。
要做到以上几点其实并不容易,所幸的是,用例说明为我们提供了一个良好的范例。用例说明在用例模型中的作用,甚至超过了用例图。寥寥几页的用例图,需要数十页甚至上百页的用例说明来描述。用例说明需要按照一定的格式,对所有用例图中的所有用例进行描述,如果有必要,还要对参与者、系统边界和部分术语进行描述。下面我们来看看用例说明是怎样编写的。
按照用例分析的特点,用例说明也应当从粗到细依次进行编写。首先是对整个系统进行概述,编写总用例图的说明,然后依次编写各个支用例图的说明。在编写每个用例图时,首先贴上该用例图,然后为每个用例编写说明。
下面就是从主用例图开始,依次对所有用例图进行说明。在对每个用例图进行说明时,先贴出用例图,然后为每个用例编写说明。在这部分,每个用例的说明可以按照如下格式编写:
用例标识:用例的编号。
用例名称:根据用例表达的功能而取的简短明了的名称。用例命名其实是有讲究的,即必须是一个动词短语或句子,而不是一个名词短语,通常建议为一个动宾短语(如:提取存款),一个被动句(如:发票填报),或者一个主谓句(如:用户提款)。用例的命名表现了用例的特点,即它代表的是参与者的操作,是一个动作。尽量不要取 “××管理”或“维护××”,因为这个动作应当是一个非常明确的动作,而“××管理”代表的是插入、修改、删除等一系列动作,操作就变得不明确了。
应用范围:就是要设计的系统。
用例类型:“用户目标”还是“子功能”,即是用户需要操作的目标功能,还是从“用户目标”中提取出来的“子功能”。“用户目标”应当至少有一个参与者,来驱动它完成相关操作,而“子功能”通常没有,因为它往往是被系统所驱动。
用例描述:对该用例的功能定义、要实现的业务需求,以及谁(参与者)如何进行使用进行描述。同时,这部分还可以整体概述实现业务需求的主要流程,以及与其它用例、其它外部系统的关系。
参与者:列出与该用例相关的参与者,包括进行操作的人(角色)和相关的外部系统。
涉众利益:关注该用例的人对该用例的要求,它往往是非功能需求,或者是功能需求中的一些常常为我们所忽视的细节。如客户要求在填写一些表单的时候能够快速进行查找,而另一些系统管理员希望提高可维护性(虽然他们可能不是该用例的参与者)。编写涉众利益应当按照如下格式:使用数字编写序号,而每个涉众利益应当书写为“谁期望怎么样”。
前置条件:在触发该用例相关操作前必须达到的条件。
事件流:是用例说明中最重要的部分,它详细描述了该用例可能出现的所有流程。
基本流程:又称为“主流程”或“主成功场景”,它描述的是该用例以最正常的方式流转,并且最终获得成功的流程。基本流程在编写时,应当通过数字,对流程中的每一步进行编号
扩展流程:又称为“替代流程”、“分支流程”或“交替场景”,它描述的是基本流程在流转过程中可能出现的所有分支。扩展流程在编写时,通常使用“数字+小写字母”对扩展流程进行编号。数字代表该扩展流程是在基本流程的哪一步发生分支的。如果是任意位置满足某条件就会发生分支,则使用“*”代替。小写字母代表该扩展流程是本用例中的第几个扩展流程。扩展流程编号的后面应当描述进入该扩展流程的条件。最后,和基本流程一样,通过数字编号,详细描述该扩展流程的整个流程。如果在扩展流程中还会出现分支,则如上递归地描述该扩展流程的扩展流程
异常流程:故名思意,它是对该用例的所有基本流程和扩展流程可能出现的所有异常情况及其处理流程的描述。与扩展流程一样,异常流程首先通过“数字+小写字母”进行编号,描述出现异常的条件。如果是任意位置都可能满足异常条件,则使用“*”代替数字。随后,编写出处理该异常的整个流程。按照以上步骤,罗列出所有可能出现的异常情况。
后置条件:又称为“成功保证”,就是执行基本流程获得成功以后所达到的状态(条件)。后置条件往往体现的是执行该用例的最终目的。
非功能需求:我们可以把它们简称为“URPS+”,即可用性(Usability)、可靠性(Reliability)、性能(Performance)、可支持性(Supportability)以及其它(+)。
补充规格说明书:该用例对应的补充规格说明书。
除此之外,用例说明还可以包括其它内容。比如,该用例是用于查询数据或展现一个表格,则应当画出数据的格式或表格的样式,并详细标注数据间的运算关系;如果客户对该用例有其它硬件或技术要求,可增加“技术与数据变元”项。
在编写这部分说明的时候,还有一个非常关键的地方值得注意。当我们在编写事件流时,如果发现多个用例都出现相同或相似的流程,并且功能相对独立时,应当考虑将它提取出来单独形成一个用例。如果是这样,在原用例的这个地方只需说明在执行某个步骤时进入哪个用例就可以了,不用再描述这部分流程。如果原用例在基本流程中调用这个用例,则原用例包含这个用例;如果原用例在扩展流程中调用这个用例,则这个用例是对原用例的扩展。
另外,异常流程也是一个非常重要的内容。过去我们在分析阶段没有考虑异常处理的情况,以致在开发阶段不知道怎样处理才能让客户满意。但值得提醒的是,这里的异常是站在业务层面的异常,如:“用户不能提供单据号”,或“用户未领取通知单”。而那些技术层面的异常不应当出现在这里,如“数据库连接失败”等。
编写用例说明的建议
按照过去RUP的设计思路,填写用例说明的时候,所有的项目都必须填写清楚完整,这是一个繁琐而令人沮丧的工作。然后,敏捷开发的思想出来了,我们都解脱了。敏捷开发的一个重要思想就是:我们只做我们需要做的事情,千万不要去做不需要做的事情(这也就是它称之为的“过度设计”)。用例说明只有几个项目是必填的:用例名称、用例描述、参与者(有的用例可能没有参与者,但必须写“无”而不能不写)、基本流程,其它都是可选项。另一个重要的思想就是迭代,需求分析是一个逐渐推进的过程,因此千万不要想到把用例说明写得一步到位。在这个问题上,大师给我们了建议。Craig Larman在他的《UML和模式应用》中这样描述,他说用例的编写有三种常用形式:摘要、非正式和详述。
摘要,简洁的一段式概要,通常用于主成功场景,在早期需求分析中为快速了解主题和范围而使用,范例:
处理销售:顾客携带所购商品到达收银台。收银员使用POS系统记录每件商品。系统连续显示累计金额,并逐行显示明细。顾客输入支付信息,系统对支付信息进行验证和记录。系统最终显示交易成功。
非正式的,就是以一种非正式的段落格式,描述各个场景。它用于在需求分析逐渐深入的过程中使用。范例:
处理退货
主成功场景:
顾客携带商品到收银台退货。收银员使用POS系统记录每件商品……
交替场景:
如果客户之前使用信用卡付款,而其信用卡账户退还交易被拒,则告知顾客并使用现金退货
如果在系统中未查找到该商品的标识码,则提示收银员并建议手工输入标识码。
……
详述,就是前面详述的完整格式,它主要用于需求分析后期以及最终需求确认的时候。即使采用详述的方式,也没有必要每个用例都写出每个项目。需要写的时候才写,不需要就不要写。即使需要写的内容,也是在需求分析逐渐深入过程中逐渐完成的。
用例说明将过去需求规格书面向过程进行需求分析的方式,转变成面向对象的分析方式,即需求中的所有过程都被封装在了一个个用例中。同时,用例说明又给我我们一个模板,让我们照着这个模板进行需求分析,避免了我们在分析过程中可能遗漏用于信息的问题。另外,用例说明从一开始就进入了OOD/A分析,将可复用的、相对独立的功能进行提取、封装,避免了过去程序设计才开始OOD/A分析所造成的许多设计规划先天不足的问题。总之,用例说明已经不单纯是对原需求的简单描述,而是带着面向对象的设计思想在进行需求描述。

电源芯片TPS54560典型应用电路及设计详解 TPS54560 是一款配有集成型高侧 MOSFET 的 60V、5A DC-DC转换器,输入电压范围7-60V,输出电压可通过外部反馈电阻设置成略低于输入电压的任意值。**所以,**R5=31.25KΩ、R6:10KΩ(常用值)时,即可设置输出电压为 3.3V。**所以,**R5=140KΩ、R6:10KΩ(常用值)时,即可设置输出电压为12V。设计 TPS54560 的输出电压时,主要通过外部反馈电阻网络来设置输出电压。因此,输出 3.3V ,输入电压24V时推荐的电感值为 8µH 至 10µH。 阅读详情

相关推荐

微信小程序如何转云

小程序转云

zhangxiaobai___的博客 3882

第6章 用

本文为《UML和模式应用(原书第3版)》读书笔记用是文本形式的情节描述,广泛应用于需求的发现和记录工作中。 示顾客携带商品到收银台,收银员使用POS系统记录每件商品,系统连续显示累计总额,并逐行显示细目。顾客输入支付信息,系统对支付信息进行验证和记录。系统更新库存信息,顾客从系统得到购物小票,然后携带商品。 参与者、场景和用 参与者是某些具有行为的事物,可以是人、计算系统或组织,如收银

linran200的专栏 6365

POS关于怎样实现POSUML

POS系统是电子收款系统,通过计算化用于处理销售和支付,记录销售信息。该系统包括计算、条码扫描仪、现金抽屉等硬件、以及使系统运转的软件和为不同服务的应用程序提供接口。

技术人员看得懂的流程(上)

面向对象设计全流程概述        谈到流程,大家都会想到熟悉的瀑布模型、螺旋模型、迭代发、敏捷、RUP等一堆软件工程相关的软件发流程,但是请不要误会,本文的流程和这些管理流程完全不同,为了以示区分,我把瀑布模型、敏捷、RUP等流程成为项目流程,也就是说这是给项目管理用的;而本文的流程是技术流程,是给技术人员(主要是设计人员)看的流程。在始讲解之前,看看如下问题你是否能

hn2002的专栏 1500

UML用例图常见问题

用例图是用来描述系统功能的技术,在网上看了许多同学画的用例图,有几个共性的问题,和大家探讨一下。

higher911的博客 2122

Sql Server查询性能优化之走出索引的误区

据了解绝大多数发人员对于索引的理解都是一知半解,局限于大多数日常工作没有会、也什么没有必要去关心、了解索引,实在哪天某个查询太慢了找到查询条件建个索引就ok,哪天又有个查询慢了,再建立个索引就是,或者干脆把整个查询SQL直接发给DBA,让DBA直接帮忙优化了,所以造成的状况就是发人员对于索引的理解、认识很局限,以下就把我个人对于索引的理解及浅薄认识和大家分享下,希望能解除一些大家的疑惑,一起

hao5168的专栏 521

走出选购音箱五大误区

 走出选购音箱五大误区 误区一:价格是选购音箱的唯一标准走进音响城,我们常常为一些高贵豪华的音箱所震撼。不过,那些极品并不一定适合你,即使你很有钱的话,也不一定非选价格贵的,重要的是音箱的音质如何。一些音箱外表虽不奢华,但音质一样可达到动人的效果。 误区二:一定要选原木做外壳的音箱常常,我们走进音响城或是电器城里时,总会有热心的售货员向您介绍,某某音箱是原木做的,值得一买。他们也许认为

大笨熊的专栏 1302

[收藏] 走出备份的误区

HP始终认为,备份只是一种手段,备份的目的是为了防止数据灾难,缩短停时间,保证数据安全,服务器硬件升级;而备份的最终目的:恢复!其中,磁带提供了经济有效的备份,它能够以10%~20%的投资,实现100%的可靠。   很多系统管理人员以及CIO对备份的认识有着一定的误区误区之一是:用拷贝来代替备份。实际上,备份等于拷贝加管理,备份能实现可 计划性以及自动化,以及历史记录的保存和日志记录。在海量

白日放歌须纵酒,青春作伴好还乡。 1824

走出自律误区】—这一刻的松懈,能否决定我的一生?

来源:铁木君 ID:tetemu 走出这个自律误区,能让你的人生明朗很多很多 这篇文章是在36氪上面音频听到的,听着就转载了,因为自己也经常陷入自律的误区,误以为早起就是自律,可能只是醒得早而已,误以为偶尔松懈就是堕落,意志力不够坚定,这篇文章将带来解答。 这一刻的松懈,能否决定我的一生? 目录01 避免堕落第一步:停止超水平努力02 找到你最舒服的节奏03 为了更好的继续,中断一下自己04 分析具体问题,别总是审判自己05.正视「间歇性堕落」杀死恶龙 身边很多人,都有这种思维:人一旦想放松 = 不自律.

天阑之蓝的博客 1194

跳出思维圈子,走出思维误区

大家好 我是 追梦蜗牛。 12年的时候我有过一段时间始做app发,主要做android,当时还有一个做ios的同事,我们一起做app发,当时出现这种情况 ,android的发速度是ios的两倍,就是说 我做一天的活ios需要发两天完成,也许做过app发的同学会说,ios发比较难,其实有这方面的原因,但是也不能出现差距这么大。 在我的特意了解下,发现了他的几点思维误区1. ...

1098

创业前如何走出误区

创业前如何走出误区 [日期:2006-5-16] 来源:新浪财经  作者: [字体:大 中 小] ADFHOST119="http://afp21ic.allyes.com";ADFCID119=109;ADFBID1

欢迎光临zhtek的博客 890

牙齿矫正的五大误区走出误区,科学矫治

在进行牙齿矫正之前,建议您咨询专业正畸医生,充分了解相关信息,以便做出明智的选择。因此,在制定矫正计划时,医生会根据患者的具体情况进行评估,选择最适合的方法。许多人认为牙齿矫正只是为了追求美观,实际上,牙齿矫正不仅是为了外表的美丽,更是为了口腔健康。因此,牙齿矫正的最终目标是实现口腔健康与美观的双重效果。牙齿矫正是一项常见的口腔美容技术,通过矫正能使牙齿排列整齐,恢复正常的咬合功能。在矫正过程中,牙齿会有一定的松动,这是正常现象。虽然青少年时期是牙齿矫正的最佳时,但牙齿矫正并不限于未成年人。

weixin_60056279的博客 414

[原]走出抗锯齿的误区

  无可否认,刊载在《个人电脑》杂志第十卷第十期上的作者方子的文章《走出速度的误区》是一篇优秀的技术文章,它从比较专业的角度阐述了3D画面中锯齿的产生的原因、反锯齿技术的原理,并介绍了各大显示芯片厂商的解决方案,具有很高的可阅读性。作者在文章一始表述了这样一个观点:使用抗锯齿技术是提高分辨率以提升画面品质的一个替代解决方案。也就是说,如果显卡的性能能够绘制足够高分辨率的3D图像,并且显示器能够以

.:Hillin, faraway:. 2339

走出养生误区,拥抱健康生活

对于初学者,每周进行 3 - 5 次,每次 30 分钟左右的有氧运动,如慢跑、骑自行车,再搭配适当的力量训练,就能达到很好的锻炼效果。如,吃富含维生素 C 的橙子、草莓,比单纯服用维生素 C 片更有益,因为食物中的营养成分相互协同,能更好地被身体吸收。保证每天 7 - 8 小时的充足睡眠很重要,但更关键的是遵循规律的作息时间,早睡早起。健康养生需要我们摒弃这些错误观念,从科学的饮食、适度的运动和规律的作息入手,养成良好的生活习惯。只有这样,我们才能真正拥有健康的身体,享受生活的美好。

yy0821yy的博客 785

牙齿美白:走出误区的关键

很多人认为使用各种美白牙膏就能达到美白效果,但实际上,正确的刷牙方式更为重要。因此,在选择美白方法时,应了解自己的牙齿着色原因,并选择针对相应问题的专业美白产品。牙齿美白已成为当今社会的一种流行趋势,许多人希望通过美白牙齿来提升自己的形象和自信。然而,在追求美白的过程中,我们有时会陷入一些误区,导致效果不佳或对牙齿造成不必要的损害。同时,保持睡前晨起刷牙的习惯,以及饭后漱口的习惯也有助于维护口腔卫生和美白效果。同时,养成良好的口腔卫生习惯和定期口腔检查也是保持口腔健康和美白效果的关键。

weixin_60056279的博客 409

牙齿矫正:走出四大误区,拥抱自信笑容

在矫正过程中,被移动牙齿的一侧骨组织会发生吸收,而另一侧则会有新的骨组织生成和重建,最终使牙齿移动至正常位置。从对患者的检查、诊断,到制定合理的矫正计划,再到整个矫正过程的实施,每一步都需要专业知识和技能。因此,在选择牙齿矫正医生和构时,我们必须谨慎选择,确保选择具有专业资质和丰富经验的医生和构。因此,在进行牙齿矫正时,我们必须遵循科学规律,耐心等待牙齿逐渐移动到正确的位置。除了让牙齿排列整齐外,矫正还需要恢复牙齿的正常咬合功能,确保牙齿与面部的协调,以及保持矫正效果的稳定。

weixin_60056279的博客 152

常见的时间管理误区,你中了几个?

时间管理的第一步是盘点自己的时间,看看自己的时间是如何利用的,有没有出现浪费时间的现象?单位时间内效率高不高?不清楚自己时间的利用状况,就谈不上对自己时间的管理,只有对自己时间的利用比较清楚,时间管理才可能有效到位。 但是,一些人好走极端,总以为珍惜时间就是把每一分、每一秒都用于工作上,因为害怕浪费时间,总是来也匆匆,去也匆匆,心急火燎,结果却往往适得其反。这些都是时间管理的误区,提醒你一...

yttuu18的博客 1958

catmap:催化剂微动力学分析软件包,用于自动创建用于催化剂筛选的微动力学模型

猫地图安装点/setup.py CatMap可以通过pip直接安装: pip install --upgrade https://github.com/SUNCAT-Center/catmap/zipball/master或下载/克隆存储库并运行 python setup.py install从存储库根文件夹始。通过附加路径要使用该软件包,请将该目录添加到PYTHONPATH中,如在bash shell中: export PYTHONPATH=$HOME/THIS_FOLDER_PATH:$PYTHONPATH或在cshell中: setenv PYTHONPATH $HOME/THIS_FOLDER_PATH:$PYTHONPATH您将需要确保您正在运行python 2.5或更高版本,并且已安装了mpmath,numpy,scipy,ase和matpl

上一篇: 超级实用且不花哨的js代码大全
下一篇: MSSQL优化之————探索MSSQL执行计划
caobin518
博客等级 码龄22年 22粉丝 75原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值