第3章 需求分析与用例建模教学课件.pptx
《第3章 需求分析与用例建模教学课件.pptx》由会员分享,可在线阅读,更多相关《第3章 需求分析与用例建模教学课件.pptx(138页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第3章需求分析与用例建模在线开放课程SDUFE面向对象的系统分析与设计在线开放课程第3章需求分析与用例建模引引导导案例案例3.1需求分析需求分析3.2用例建模用例建模3.3活活动图动图建模建模3.4需求分析与用例建模需求分析与用例建模实实例例在线开放课程引导案例l自动取款机(自动取款机(ATMATM)的需求)的需求l有的人说,ATM的功能是取款、存款、查询余额,所以针对ATM的需求应该是:取款、存款、查询余额。l有的人说,ATM的功能有很多,如识别卡、密码认证、点钞、验钞、查询余额、跨行取款等,所以针对ATM的需求应该是:识别卡、密码认证、点钞、验钞、查询余额、跨行取款。在线开放课程引导案例l
2、问题:问题:l如果你是ATM购买商,你认为哪种才是你的需求?l如果你是ATM制造者,你认为哪种才是你的需求?l如果你是ATM使用者,你认为哪种才是你的需求?l需求和功能的差别:需求和功能的差别:l需求:对客户来说是有价值的事情。需求:对客户来说是有价值的事情。l功能:系统为了实现客户价值而提供的能力。功能:系统为了实现客户价值而提供的能力。l因此,区别是需求还是功能的方法很简单:因此,区别是需求还是功能的方法很简单:只需要判断是否只需要判断是否对客户有价值。对客户有价值。在线开放课程3.1需求分析lRUPRUP中将需求分析定义为一个核心工作流,其目标中将需求分析定义为一个核心工作流,其目标是描
3、述系统应该做什么。是描述系统应该做什么。l需求分析的任务就是理解系统所解决问题的定义和需求分析的任务就是理解系统所解决问题的定义和范围,使系统开发人员能够清楚地了解系统需求,范围,使系统开发人员能够清楚地了解系统需求,与客户和其他参与者在系统的工作内容方面达成共与客户和其他参与者在系统的工作内容方面达成共识并保持一致,包括:定义系统边界、为计划迭代识并保持一致,包括:定义系统边界、为计划迭代的技术内容提供基础、为估算开发系统所需成本和的技术内容提供基础、为估算开发系统所需成本和时间提供依据以及对需要的功能和约束进行提取、时间提供依据以及对需要的功能和约束进行提取、组织和文档化。组织和文档化。在
4、线开放课程3.1需求分析l需求分析的重要性需求分析的重要性l在系统开发过程中,定义需求是非常具有挑战性的工作,涉及不同背景的项目团队的协作。客户是领域专家,对系统的功能有总体的考虑,但软件技术及开发的经验可能会不足。系统开发团队的技术经验丰富,但对用户个性化的日常业务流程的细节缺乏深入的了解。这将导致需求的表达和定义出现偏差。l需求的定义:(1)用户解决问题或达到目标所需的条件或权能(Capability);(2)系统或系统部件要满足合同、标准、规范或其他正式文档所需具有的条件或权能;(3)一种能反应上面两条所描述的条件或权能的文档说明。l需求是客户可接受的、系统必须提供的功能和必须满足的特性
5、。在线开放课程3.1需求分析l在统一过程(在统一过程(RUPRUP)中,需求按照)中,需求按照“FURPS+”“FURPS+”模模型可进行以下型可进行以下5 5种分类种分类:l功能性(Functional):详细描述系统的特性、应具备的功能和安全性;l可用性(Usability):详细描述系统的人性化因素(准确的错误提示、美观性、易用性)、细致的帮助、操作文档和培训资料;l可靠性(Reliability):详细规定系统的故障频率、可恢复性、可预测性;l性能(Performance):详细规定系统在功能性需求上施加的条件,比如:响应时间、吞吐量、准确性、有效性、资源利用率;l可支持性(Suppo
6、rtability):详细规定系统的适应性、可维护性、国际化、可配置性。在线开放课程3.1需求分析l“FURPS+”“FURPS+”中的中的“+”“+”是指一些辅助性的和次要的因素:是指一些辅助性的和次要的因素:l实现(Implementation):资源限制、语言和工具、硬件等;l接口(Interface):强加于外部系统接口之上的约束;l操作(Operation):对其操作设置的系统管理;l包装(Packaging)例如物理的包装盒;l授权(Legal):许可证或其他方式。l用户的需求可以划分为功能性(行为的)和非功能性(其它所有的行为)需求。l(1)功能性需求系统要具体完成业务方面的需求
7、。例如:客户登录、管理商品、浏览商品及购买商品等。l(2)非功能性需求是指软件产品为满足用户业务需求而必须具有的特性,包括系统的并发性、可靠性、可维护性、可扩充性等。在线开放课程3.1需求分析l需求分析的需求分析的过程过程l需求分析是发现、精炼、建模和规格说明的过程。包括:明晰系统开发计划中规定的系统边界。创建所需的数据模型、功能模型和控制模型。分析可选择的解决方案,并将它们分配到各个软件成分中去。l需求分析的过程可以分成4个阶段:问题识别问题识别:进行系统开发的可行性分析和并确定实施计划分析与综合:分析与综合:从系统的角度对各种功能及性能的各项要求进行一致性检查。需求描述:需求描述:编制需求
8、分析阶段的文档需求评审:需求评审:对功能的正确性,文档的一致性、完备性、准确性和清晰性,及其他需求给予评价在线开放课程3.2用例建模从从现实世界到世界到业务模型模型在线开放课程3.2用例建模l用例建模是用于描述一个用例建模是用于描述一个系统的功能系统的功能的建模技术,即回答的建模技术,即回答系统应该系统应该“做什么做什么”的问题,是由系统需求分析到最终实的问题,是由系统需求分析到最终实现的第一步。现的第一步。l在需求阶段,用例模型是表达系统外部事物(参与者)与在需求阶段,用例模型是表达系统外部事物(参与者)与系统之间交互的可视化工具。系统之间交互的可视化工具。l一个系统的用例模型由若干用例图组
9、成,用简单的图符准一个系统的用例模型由若干用例图组成,用简单的图符准确地描述了参与者与系统的交互情况以及系统的功能。在确地描述了参与者与系统的交互情况以及系统的功能。在用例模型中,功能以用例来表示,每个用例指明了一个完用例模型中,功能以用例来表示,每个用例指明了一个完整的功能。整的功能。l在需求阶段,用例模型是将系统考虑成黑盒,参与者向系在需求阶段,用例模型是将系统考虑成黑盒,参与者向系统提供输入,系统响应参与者的输入,而不是系统如何做统提供输入,系统响应参与者的输入,而不是系统如何做的内部细节。的内部细节。在线开放课程3.2用例建模在线开放课程3.2用例建模l用例建模的用例建模的过程包括:程
10、包括:找出找出系统边界系统边界;识别与识别与系统进行交互的系统进行交互的参与者参与者;分析参与者使用每一项系统功能时的执行过程,通过分析参与者使用每一项系统功能时的执行过程,通过用例用例来描述每一项功能来描述每一项功能;形成由参与者、用例以及它们之间的形成由参与者、用例以及它们之间的关系关系所构成的所构成的用用例图例图;进行用例描述,形成进行用例描述,形成用例规约用例规约。在线开放课程3.2.1用例图l用例用例图是系是系统需求分析到最需求分析到最终实现的第一步,将的第一步,将系系统的功能划分的功能划分为对参与者(系参与者(系统的用的用户)有用)有用的需求,并以每个系的需求,并以每个系统开开发参
11、与者容易理解的方参与者容易理解的方式来表达系式来表达系统。l用例用例图是从参与者使用系是从参与者使用系统的角度来描述系的角度来描述系统功功能,也就是描述系能,也就是描述系统的参与者、用例以及它的参与者、用例以及它们之之间的关系,但不描述的关系,但不描述这些功能在系些功能在系统内部的内部的实现过程。程。在线开放课程3.2.1用例用例图图在线开放课程l用例用例图包括:包括:系系统边界界参与者、用例、关系(注解与参与者、用例、关系(注解与约束)束)参与者之参与者之间关系:泛化关系:泛化参与者与用例之参与者与用例之间:通信:通信用例之用例之间的关系:泛化、的关系:泛化、扩展与包含展与包含3.2.1用例
12、用例图图在线开放课程3.2.1用例图用例图元素参与者参与者用例用例直接直接关联关联关联关联扩展扩展包含包含泛化泛化建模元素建模元素在线开放课程l系统边界:一个系统所包含的所有系统成分与系系统边界:一个系统所包含的所有系统成分与系统以外各种事物的分界线。统以外各种事物的分界线。边界内:系统本身所包含的全部对象。边界内:系统本身所包含的全部对象。边界外:与系统进行信息交换的各种事物,即人员、设边界外:与系统进行信息交换的各种事物,即人员、设备和外系统等各种参与者备和外系统等各种参与者3.2.2系统边界在线开放课程l系统的边界与开发的目标、任务和规模大小有关。系统的边界与开发的目标、任务和规模大小有
13、关。可以通过辨析问题域中的事物与系统的关系,来确可以通过辨析问题域中的事物与系统的关系,来确定系统的边界。现实世界中事物与系统的关系包括定系统的边界。现实世界中事物与系统的关系包括如下几种情况:如下几种情况:某些事物位于系统边界内,成为系统的元素。某些事物直接与系统进行交互,系统内部没有相应的成分作为它们的抽象表示,这些事物就是系统边界外的参与者。某些事物既在系统边界以外与系统进行直接交互,又作为一个系统对象对其进行抽象性描述。某些事物是当前问题域需要使用的一个已经存在的系统(这样的系统此时不需要再开发),那么这样的系统被看作一个外部系统,作为系统的参与者存在。3.2.2系统边界在线开放课程3
14、.2.3参与者(actor)l参与者的定参与者的定义:在系统之外与系统进行交互的人、其人、其他系统、硬件设备、时间他系统、硬件设备、时间人:当系人:当系统需要与某人交互需要与某人交互时如:如:ATM系系统中的客中的客户硬件硬件设备:当系:当系统需要与硬件需要与硬件设备交互交互时如:门禁系统中的磁卡读写器如:门禁系统中的磁卡读写器其他系其他系统:当系:当系统需要与其他系需要与其他系统交互交互时如:如:ATMATM系统中,银行后台系统就是参与者系统中,银行后台系统就是参与者计时器(器(时间):当系):当系统需要周期性的定需要周期性的定时触触发时如:周期性的向系统发起定时事件如:周期性的向系统发起定
15、时事件在线开放课程l参与者的表示形式:3.2.3参与者(actor)在线开放课程l如何如何发现参与者参与者人人员l首先从接受系统服务的人员中发现参与者。(直接使用)l从为系统直接提供服务的各类人员中发现参与者。(直接对话)3.2.3参与者(actor)在线开放课程例例1:1:客户给销售员发来传真订货,客户给销售员发来传真订货,销售员下班前将当日订货销售员下班前将当日订货单汇总输入系统。单汇总输入系统。谁是系统的谁是系统的ActorActor?例例2:2:商品销售系统。顾客通过网络下单之后,系统计算出总计商品销售系统。顾客通过网络下单之后,系统计算出总计金额,税金,运费,并将数目传递给一个外挂的
16、会计系统,金额,税金,运费,并将数目传递给一个外挂的会计系统,该系统是另外购买的。该系统是另外购买的。有几个有几个ActorActor?系系统直接使用者直接使用者系系统的服的服务对象象与系与系统交互的信息系交互的信息系统3.2.3参与者(actor)?在线开放课程l设备对内与系统相联,对外不必经过与人员的交互而直接发挥某种作用的设备。监控传感器为“生成警报”用例提供传感器输入,监控操作员查看警报信息3.2.3参与者(actor)在线开放课程l外系外系统与本系统相联,并进行信息交互;可以是其他子系统、上级系统或任何与它进行协作的系统;它的开发不是自己这个分析员小组的当前责任。远程系统启动用例,监
17、控操作员接收监控数据,并从该用例中获得价值3.2.3参与者(actor)在线开放课程l计时器当系统需要定期输出某些信息时,定时器参与者可以周期性的向系统发送定时事件。报告计时器参与者启动“显示周报”用例,该用例周期性准备一份每周报告供给用户查看3.2.3参与者(actor)在线开放课程l如何如何识别参与者参与者谁将使用该系统的主要功能?谁需要系统的支持以完成日常工作任务?谁负责维护、管理系统,保持系统正常工作状态?谁改变了系统的数据信息?谁从系统获取数据信息?该系统需要与哪些外部系统交互?系统需要处理哪些硬件设备?谁(或者哪些外部系统)对该系统产生的结果感兴趣?在预设的时间点,有自动发生的事件
18、吗?3.2.3参与者(actor)在线开放课程l在在识别系系统参与者的参与者的过程中,要注意以下几点:程中,要注意以下几点:参与者参与者对于系于系统而言而言总是外部的。是外部的。参与者直接与系参与者直接与系统进行交互,行交互,这将有助于确定系将有助于确定系统边界。界。参与者表示的是与系参与者表示的是与系统进行交互行交互时扮演的角色,不是特定的扮演的角色,不是特定的人或者特定的事物。人或者特定的事物。一个人或事物在与系一个人或事物在与系统发生交互生交互时,可以扮演多个角色。,可以扮演多个角色。每一个参与者需要有一个能更好表达其角色的名字,如:系每一个参与者需要有一个能更好表达其角色的名字,如:系
19、统管理管理员、会、会员、游客等,不推荐使用、游客等,不推荐使用诸如如“新参与者新参与者”这样的名字。的名字。每个参与者必每个参与者必须有有简短的描述,从短的描述,从业务角度描述参与者是什角度描述参与者是什么。像么。像类一一样,表示参与者属性和它可接受的事件。,表示参与者属性和它可接受的事件。识别参与者参与者时要注意,参与者一定是直接并且主要注意,参与者一定是直接并且主动地向系地向系统发出出动作并作并获得反得反馈的,否的,否则就不是参与者。就不是参与者。3.2.3参与者(actor)在线开放课程l参与者与参与者与业务工人工人l在实际的工作中,建模者常常会面临一个问题,谁是参与者?例如这样一个场景
20、:小王到银行去开户,向大厅经理询问了办理手续,填写了表单,交给柜台职员,拿到了银行存折。在这个场景中,谁是参与者?l注意两个问题:谁对系统有着明确的目标和要求并且主动发出动作?系统是为谁服务的?l问题:参与者与业务工人(businesswork)3.2.3参与者(actor)在线开放课程l如何区分参与者与业务工人(businesswork)他是主动向系统发出动作的吗?他有完整的业务目标吗?系统是为他服务的吗?l这三个问题的答案如果是否定的,那一定是业务工人。以人工座席这个例子来说,人工座席只有在购票人打电话的情况下才会去购票,因此他是被动的;定票的最终目的是拿到机票,但人工座席只负责定,最终票
21、并不到他的手里,因此他没有完整的业务目标;系统是为购票者服务的。非常明显,人工座席只可能是一个业务工人。3.2.3参与者(actor)在线开放课程l参与者之间的关系参与者之间的关系由于参与者实质上也是类,用例图中的参与者之间有时会出现泛化的关系,这种泛化关系和类图中类之间的泛化关系是相似的。泛化关系的含义是把某些参与者的共同行为提取出来表示成通用行为,并描述成超类。参与者之间的泛化(Generalization)关系表示一个一般性的参与者(称为父参与者)与另一个更为特殊的参与者(称为子参与者)之间的联系。子参与者继承了父参与者的行为和含义,还可以增加自己特有的行为和含义,子参与者可以出现在父参
22、与者能出现的任何位置上。在UML规范中,泛化关系用带空心三角形箭头的实线表示,箭头指向父参与者。3.2.3参与者(actor)在线开放课程l参与者之间的泛化关系3.2.3参与者(actor)在线开放课程l参与者之间的泛化关系3.2.3参与者(actor)在线开放课程l参与者和用例之间的关系参与者和用例之间的关系参与者和用例之间存在着一定的关系,这种关系属于关联关系(Association),又称为通信关联(CommunicationAssociation)。这种关系表明了哪个参与者与用例通信。在UML规范中,用例图中的参与者和用例之间的关联关系用带箭头或不带箭头的实线表示,箭头表示在这关系中哪
23、一方是对话的主动发起者,箭头所指方是对话的被动接受者。在上节图中,“普通用户”参与者主动调用“浏览商品”用例,浏览网站上陈列的商品。所以,箭头指向“浏览商品”用例。如果不想强调对话中的主动者与被动者,或者参与者和用例互为主动者与被动者,则可以使用不带箭头的实线来表示它们之间的关联关系。3.2.3参与者(actor)在线开放课程3.2.4用例(usecase)l用例的定用例的定义:用例是与参与者交互的,并且给参与者提供可观测的有意义的结果的一系列活动的集合。l用例的表示形式:用例的表示形式:在线开放课程l如何如何识别用例?用例?参与者要向系统请求什么功能?每个参与者的特定任务是什么?参与者需要读
24、取、创建、撤销、修改或存储系统的某些信息吗?是否任何一个参与者都要向系统通知有关突发性的、外部的改变?或者必须通知参与者关于系统中发生的事件?这些事件代表了哪些功能?系统需要哪些输入输出?是否所有的功能需求都被用例使用了?3.2.4用例(usecase)在线开放课程l识别用例注意的用例注意的问题:每个用例至少应该涉及一个参与者。如果存在不与参与者进行交互的用例,则应该检查是否遗漏了该用例的参与者。如果确实没有与参与者进行交互,则可考虑将其并入其他用例中。用例的粒度可大可小,一般一个系统控制在20个左右,但没有严格规定。用例是系统级的、抽象的描述、不是细化的(考虑“做什么(what)”,而不是“
25、怎么做(how)”)。对复杂的系统划分为若干个子系统处理。3.2.4用例(usecase)在线开放课程l判断用例的判断用例的标准准用例可以解释为某个参与者(用例可以解释为某个参与者(actoractor)通过系统要做的)通过系统要做的事情,这件事通常具有以下特征:事情,这件事通常具有以下特征:这件事(用例)是相对独立的。这件事(用例)是相对独立的。l意味着它不需要与其他用例交互而独自完成参与者意味着它不需要与其他用例交互而独自完成参与者的目的。也就是说用例从的目的。也就是说用例从“功能功能”上说是完备的。上说是完备的。用例本质体现了系统参与者的愿望,不能完整达到用例本质体现了系统参与者的愿望,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第3章 需求分析与用例建模教学课件 需求 分析 建模 教学 课件
限制150内