第4章餐馆订餐系统的业务模型

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四章餐馆系统的业务模型陈立岩业务模型(BusinessModelling)•软件开发的早期阶段•输入:–非形式化的规格说明•活动:–创建用例模型(usecasemodel)–创建领域模型(domainmodel)–创建词汇表(glossary)本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表4.1.1非正式需求原有功能采用手工预约单:•预约的信息–姓名和电话号码–就餐者人数•调换餐桌•取消预约作注释•未预约顾客(‘Walk-in’)–就餐人数本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表4.1.2用例建模•第一次迭代应该只交付足够使系统提供某些确实有商业价值的核心功能。•定义基本功能—建立初始用例图•系统应取代手工预约单用例建模的步骤1.识别用例的步骤找出系统边界和范围识别参与者确定每个参与者所期望的系统行为找出用例2.定义初始用例图识别用例——第一步:系统边界考虑构造系统时,你所需要做的第一件事情是确定系统的边界在哪里,需要定义什么是系统的组成部分(系统的边界内)和什么是系统的外部(系统边界外)。系统边界是定义由谁或什么(参与者)使用系统,系统能够为哪些参与者提供什么特定利益(用例)。系统边界绘制为方框,标有系统名称,参与者绘制在边界外部,用例绘制在边界内部。识别用例—第二步:识别参与者谁或什么使用该系统?谁对某个特定功能感兴趣?谁负责支持和维护系统?系统有哪些外部资源?其它还有哪些系统将需要与该系统进行交互?参与者-Actors•人与系统进行交互时能够担任的不同角色eg:–接待员Receptionist(makesbookings)–领班Headwaiter(assignstablesetc)•一个用户在不同的时间可以扮演一个或多个角色•顾客不是参与者识别用例—第三步:描述用例•建立一组用例,使系统的用户能够使用系统完成的不同的任务。•餐馆预约系统需完成的主要任务:1记录一个新的预约信息2取消一个预约信息3记录一位顾客的到来4将一位顾客的餐桌从一张餐桌移到另一张餐桌(“调换餐桌”)建立初始用例图(UseCaseDiagrams)•以图解的形式概括系统中的不同参与者和用例,并显示哪些参与者能够参与哪些用例。本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表用例描述模板,见上章用例描述没有统一的标准模板,可采用与项目一致的格式。从实用上,应更重视编写完整的和可理解的事件路径,而不是按指定的模板填写每个部分。基本事件路径•正常交互的情况下的路径—不中断。•记录预约1接待员输入要预约的日期2系统显示该日的预约3有一张合适的餐桌可以使用:接待员输入顾客的姓名、电话、预约的时间、用餐人数和餐桌号4系统记录并显示新预约。可选事件路径•记录预约—没有可用的餐桌:1接待员输入要求的预约日期;2系统显示该日的预约;3没有合适的餐桌可以使用,用例终止例外事件路径•记录预约—餐桌过小1接待员输入要求的预约日期;2系统显示该日的预约;3接待员输入顾客的姓名电话预约时间,用餐人数和餐桌号4用餐人数多于餐桌容纳的人数,系统询问是否继续预约5如果回答“否”,用例将不进行预约而终止6如果回答“是”,预约将被输入,并附有一个警告标志。用户界面原型(可选)•Whenwritingusecases,itisusefultohavearoughideaoftheplanneduserinterface本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表组织用例模型记录到达:基本事件路径(1)领班输入当前日期(2)系统显示当天的预约(3)领班确认一个选定的预约已经到达(4)系统对此进行记录并更新显示器,将顾客标记为已经到达。记录到达—没有提前预订:可选事件路径(1)领班输入当前日期(2)系统显示当天的预约(3)系统中没有记录该顾客的预约,领班输入预约时间、人数和餐桌号,创建一个未预约登记;(4)系统记录并显示新预约。以上两个用例存在共享功能UseCase包含•把共享部分分离出来组成一个新用例—显示预约(DisplayBookings):1用户输入一个日期2系统显示当日的预约•更改“记录预约”用例,可以这样写:1接待员执行‘显示预约’用例2接待员输入……3系统记录和显示新预约UseCase包含•一个用例和它所包含的其他用例之间的关系,在用例图中用一个连接两个用例的虚线箭头表示,称为依赖。参与者泛化一般参与者和特殊参与者之间的泛化关系。参与者泛化把两个或多个参与者的公共行为分离出来成为父参与者。•接待员和领班都可以执行“显示预约”的用例;•描述一个新参与者—员工(staff)表达泛化;•接待员和领班被看作“员工”的特殊情况。The‘extend’Dependency•Usecaseextensionisshownwithadependency何时使用高级特征仅在简化模型并使模型易于理解时才使用高级特征。用例最好是简单的。必须对于利益相关人和建模者都是可访问的。通常利益相关人仅需要一点培训和指导就能够容易地理解参与者和用例。利益相关人发现掌握参与者泛化更加困难。太多〈include〉使得理解用例模型更加困难。利益相关人对〈entend〉的理解相当困难。很多建模者令人吃惊地错误理解〈extend〉的语义。应该避免使用用例泛化,除非使用抽象父用例。本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表CompleteUseCaseDiagram本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表4.2领域建模在第四章中,UML表示法建立对象模型(学习建立类图的画法和问题表达)本节的核心思想:定义领域模型,提供建模的方法或建模观点。领域模型是OO分析中最重要的和经典的模型领域模型(DomainModel),也称为概念模型、领域对象模型,我们在对项目进行分析的时候,往往会创建相应的领域模型。寻找业务领域中的名词,建立类图和对象图。领域模型包括:概念、关联、属性4.2.1领域模型的相关概念1.概念:概念类:表示在现实世界环境中具有意义的实体或概念。领域模型:是对业务术语进行描述,产生现实世界概念类的一种表示。通常,采用类图表示,以显示最重要的业务概念和他们之间的关系。2.领域模型组成:概念类概念类之间的关系概念类的属性(暂不包含操作,在以后考虑)为什么需要领域模型?理解关键概念和词汇为进入设计阶段得到一些启示现实世界与软件实现之间的过渡4.2.2建立领域模型包括以下四步:概念类的识别在领域模型中描述这些概念类建立类关联关系添加必要的属性4.2.2建立领域模型包括以下四步:概念类的识别在领域模型中描述这些概念类建立类关联关系添加必要的属性1.概念类的识别识别策略:①使用概念类分类列表②识别名词短语策略1:概念类的分类列表(部分)物理或具体对象事物的实际、描述和规范位置交易交易项目人的角色组织事件策略2:根据名词短语识别找出概念类即:识别有关用例文本描述中的名词和名词短语,将它们作为候选的概念类或属性。•记录预约1接待员输入要预约的日期2系统显示该日的预约3有一张合适的餐桌可以使用:接待员输入顾客的姓名、电话、预约的时间、用餐人数和餐桌号4系统记录并显示新预约。4.2.2建立领域模型包括以下四步:概念类的识别在领域模型中描述这些概念类建立类关联关系添加必要的属性建立候选概念类:顾客、预定顾客和预定建模:CustomerReservationnamephoneNumber1*Make建立候选概念类:顾客、预定CustomerReservationnamephoneNumber1*MakecoversdateTimeplacesCustomerReservationnamephoneNumber1*Makecoversdatetimetableplaces*1{ReservationforthesameTablemustnotoverlap}WalkIncoversdatetime1*BookingcoversdatetimetableplacesWalkInReservationCustomernamephoneNumber*1Make{ReservationforthesameTablemustnotoverlap}*1本章内容4.1建立用例模型4.1.1非正式的需求4.1.2用例建模4.1.3描述用例(系统的用例编写,基本的事件路径)4.1.4组织用例模型(调整优化用例图)4.1.5完成用例模型(用例图的第二次迭代)4.2建立领域模型4.3建立词汇表4.3术语表预约(Booking):分配一张餐桌给用餐者进餐.用餐人数(Covers):预约将来用餐的人数。顾客(Customer):进行预定的人用餐者(Diner):在餐馆用餐的人位子(Places):在一张特定餐桌能够就座的用餐人数。预定(Reservation):提前预约一个特定时间的餐桌。未预约(Walk-in):没有提前进行的预约。ThankYou!

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功