青润大师,你好,一直在关注你。现有关于用例和需求表示的问题请教,此问题一直困扰我,请赐教。
按照《软件需求》一书,软件需求包括三个不同的层次-业务需求、用户需求和功能需求-也包括非功能需求:业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明;用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明;功能需求定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。
按照RUP,业务用例的定义为" 业务用例从一个外部的,增加值的角度来描述一个业务过程。为了给这个业务的涉众创造价值,业务用例是超越组织边界的业务过程,很可能包括合作伙伴和供应商。"
系统用例定义了执行者(在系统外部和系统交互的人)和被考虑的系统之间的交互来实现的一个业务目标。系统用例几乎总是以黑盒形式编写的。它们描述了软件系统之外的参与者如何与将被设计的系统进行交互。系统用例详细阐明了系统需求。系统用例模型的目的是从涉众的角度说明需求,而不是设计如何满足需求。
1、 以上是有关需求层次、业务用例、系统用例比较流行的解释和说明。根据“用户需求文档描述了用户使用产品必须要完成的任务,这在使用实例文档或方案脚本说明中予以说明”,此处用户使用产品必须要完成的任务具体指什么,是指业务功能或业务目标么??或者说用户需求是用户需要在应用系统中实现什么东西,即要实现业务需求。为实现这个目标,需要用户提供的全部的详细的业务说明,业务流程,表格样式等,这样理解对么?
2、 “这在使用实例文档或方案脚本说明中予以说明”中的使用实例是业务用例还是系统用例??如果是系统用例,系统用例似乎详细阐明了系统功能需求,可说明用户需求么?如果是业务用例,根据业务用例的定义,业务用例定义描述业务过程,是超越组织边界的业务过程,有业务角色和业务参入者的元素,但“用户需求描述了用户使用产品必须要完成的任务”,似乎暗示了系统用户作为参入者为实现某一业务目标直接与系统交互意味,因此有系统用例的意思。
3、 Cockburn 的 Writing Effective Use Cases想通过目标层次对用例进行分类系统用例的最佳点是用户目标,通过海平面图标来表明。由此看来,系统用例可以看成是实现用户特定业务目标,用户与系统交互的动作系列。这和上面的用户需求似乎说的是一回事,因此,应该是系统用例既描述用户需求,又描述系统需求,它定义了用户和开发人员共同认可的使用场景,换句话,用户需求是从用户的角度以业务领域术语描述的系统需求,而功能需求应该是开发人员角度以技术设计术语描述的系统需求,可这么理解??
4、 你认为业务用例和系统用例如何与需求的三个层次对应??网上有人认为用户需求可由业务用例描述,对么??
5、 用户需求到底描述的是业务需求还是系统需求??
6、 有这么一句:系统用例的设计范围就是这个计算机系统设计的范围。它是一个系统参与者,与计算机系统一起实现一个目标。系统用例就是参与者如何与计算机技术相联系,而不是业务过程。(http://www.ibm.com/developerworks/cn/rational/rationaledge/content/may07/english/ )。请问,与计算机系统一起实现一个目标,这个目标不是业务目标么?系统用例的实现也是由过程来完成的,当系统建设完成后,系统用例所包含的过程应该也可以说是业务过程的一部分,因为信息化本来是利用计算机系统来完成或自动化业务过程,所以系统用例中的过程应该是将来业务过程的一部分,对么??
7、 我们发现用例有纵向(层次)和横向(范围)之分,这些是非常有价值的概念,它们是对亚各申基础用例方法的丰富和完善,两者是不冲突的,完全可以在 RUP 相关的实践中加以运用。见http://www.zhangxun.com/_templates/tmpl_doc.aspx?sname=uucm&pg=10 这里说到纵向(层次)和横向(范围)之分,是指系统用例和业务用例。按照该文,系统用例和业务用例均有层次之分,亦即系统用例和业务用例均有概要层级和用户目标层次,只不过业务用例描述业务操作和业务过程。但在(http://www.ibm.com/developerworks/cn/rational/rationaledge/content/may07/english/ )中,似乎用例纵向(层次)已说明了系统用例和业务用例之分。如概要或者蛤用例应该是业务用例。云或者高层概要也可能是业务用例。这如何理解??
8、 关于业务需求、用户需求和功能需求的表示。业务需说明了提供给客户和产品开发商的新系统的最初利益,反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。业务用例通常出现在项目视图与范围文档中?还是作为需求工作的先期活动执行完后,出现在用户需求文档前半部分,该用户需求文档后半部分写系统用例还是写别的什么??表达软件功能需求,目前比较流行的只有两种方法:特性方法和用例方法。特性方法就是类似“系统应该……”,系统必须……..“”的描述??。功能需求为用户完成这些任务系统需要提供的功能,分析模型可以说是从开发人员角度对功能需求的描述么??系统用例似乎也从开发人员角度对功能需求进行了描述??如果一定要明确区分用户需求和系统需求的表达,系统需求可用特性方法和系统用例方法,那用户需求用什么用例,比海平面层次高的业务用例??
9、 关于需求开发工件的产出过程。是否可以为:a.文字性的业务描述、业务模型(包括业务用例模型、业务分析模型、业务活动图)。B,系统用例模型、特性方法描述的功能需求。C,系统分析模型??
-
青润 回复于:2008-07-25
-
首先要说明,我不是什么大师,我也只是一个技术人员。
您的这个问题写的太多了,一下子无法做出回答。我觉得,关于需求的问题,你可以看一下我那本书《软件工程之全程建模实现》中需求工程一章的内容,我那里面对需求有一套完整的定义描述分析方法,这套方法在多个项目中都应用过了,所以,你去看看那些内容,可能会更有用一些。
这里的排列方式太差了,如果要回答,我必须把你的内容贴出来一个一个看,今天太晚了。我觉得,你还可以把问题拆出来,在软工板块一个一个贴出来进行讯问,你会得到更多人的帮助的。