软件需求分析与设计-活动图、状态图和需求细化课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件需求分析与设计-活动图、状态图和需求细化课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 需求 分析 设计 活动 状态图 细化 课件
- 资源描述:
-
1、软件需求分析与设计 活动图、状态图和需求细化2022-12-172软件分析与设计活动图、状态图和需求细化 UML活动图及其建模 UML状态机图和建模 更多的SSD和契约2022-12-173UML活动图及其建模 目标 通过实例和各种建模应用对UML活动图表示法进行介绍2022-12-174如何应用活动图 UML活动图提供了丰富的表示法来表示一系列活动,其中包括并行的活动 业务建模过程 数据流建模 数据流图DFD 并发编程和并行算法建模 统一过程的规程之一是业务建模(business Modeling),其用途是理解和勾通“将要部署系统的组织结构和动态特征”2022-12-175基本的UML活动
2、图表示法Receive Video OrderFill OrderSend InvoiceDeliver OrderReceive PaymentClose OrderFulfillmentCustomer ServiceFinanceOrderInvoicestartAction.It does something.There is an automatic transition on its completion.A transition supports modeling of control flow.Fork.One incoming transition,and multiple
3、outgoing parallel transitions and/or object flows.Partitions.Show different parties involved in the processJoin.Multiple incoming transitions and/or object flows;one outgoing transition.The outgoing continuation does not happen until all the inputs arrive from all flows.Object Node.An object produce
4、d or used by actions.This allows us to model data flows or object flows.end of activity2022-12-176使用Game-Sarson表示法的经典DFD1Check Course AvailabilityCourses2Check Applicant QualificationApplicationsStudentsApplicantapplicationcourse dataapplicationapplicationstudent dataaccept/deny replyexternal actord
5、ata store,such as a DB,DB table,or filedata flowprocessDFD for Automated Course Registration System2022-12-177使用活动图表示法来表示数据流模型StudentRegistration SystemApplicationComplete ApplicationCheck Course AvailabilitydatastoreCoursesdatastoreApplicationsCheck Applicant QualificationdatastoreStudentsAccept/De
6、nyReply2022-12-178在另外一个图中展开活动Fill OrderDeliver Orderthe“rake”symbol(which represents a hierarchy)indicates this activity is expanded in a sub-activity diagram2022-12-179活动的扩展Deliver RegularDeliver Rush rush else Deliver OrderDecision:Any branch happens.Mutual exclusionMerge:Any input leads to contin
7、uation.This is in contrast to a join,in which case all the inputs have to arrive before it continues.2022-12-1710信号Receive Video OrderFill OrderSend InvoiceDeliver OrderReceive PaymentClose OrderAccept a signalResend InvoiceCancel requestCancel Order30 days since sent last invoice,and no payment rec
8、eivedA time signal2022-12-1711活动图建模准则 活动图通常对于涉及众多参与者的非常复杂的业务过程建模具有价值 对于简单的业务过程用例文本就够用了 在进行业务过程建模时,可以利用靶子(rake)符号和子活动图 尽量保持同一张图中所有动作节点的抽象水平2022-12-1712使用活动图对处理销售用例建模 cash payment Enter Cart ItemsCalculate Taxes and DiscountsCustomerCashierNextGen POSReceiptShop and Fill CartCartSubmit Authorization R
9、equest else Create ReceiptHand Over ItemsAuthorization ServiceAuthorize Payment2022-12-1713UML状态机图和建模 目标 通过例子和各种建模应用,介绍UML状态机图表示法2022-12-1714软件分析与设计-UML状态图和建模 UML状态图(state machine diagram)描述了某个对象的状态和感兴趣的事件以及对象响应该事件的行为 状态图显示了对象的生命周期 事件,是指一件值得注意的事情的发生 状态,是指对象在事件发生之间某种时刻所处的情形 转换,是两个状态之间的关系,它表明当某事件发生时,对
10、象从先前的状态转换到后来的状态2022-12-1715电话的状态机图off hookIdleActiveon hook Telephonestatetransitioneventinitial state2022-12-1716状态无关和状态依赖对象 如果一个对象对某事件的响应事件相同,则认为此对象对于该事件状态无关 对于所有事件,对象的相应总是相同的,则该对象是一个状态无关对象 状态依赖对象对事件的响应根据对象的状态或模式而不同 准则 为具有复杂行为的状态依赖对象建立状态图 一般业务系统通常只有少数几个复杂的状态依赖类,因此状态机建模意义不大 在过程控制、设备控制、协议处理和通讯等领域有更多
11、的状态依赖对象2022-12-1717对状态依赖对象建模 建模的两者方式 对复杂的事件交互对象建模 对操作协议和语言规范的合法序列建模 复杂的反应式对象 软件控制的物理设备 事务处理以及相关的业务对象 角色转换器 协议和合法序列 通讯协议 UI页面/窗口流和导航 UI控制器和会话 用例系统操作 单个UI窗口的事件处理2022-12-1718转换动作和监护表示法Idleon hookActivetransition actionguard conditionvalid subscriberoff hook/play dial tone2022-12-1719嵌套状态Idleoff hook/pl
12、ay dial toneon hookActivevalid subscriber PlayingDialToneDialingConnectingdigitdigitcompleteTalkingconnected2022-12-1720使用状态机进行Web页面导航建模2022-12-1721用例操作合法序列的状态机样例WatingForSaleEnteringItemsenterItemWaitingForPaymentmakeNewSalemakeCashPaymentendSaleAuthorizingPaymentmakeCheckPaymentmakeCreditPaymentau
13、thorizedProcess Sale2022-12-1722用例关联 目标 以文本和图形两种形式,使用包含(include)和扩展(extend)关联将用例联系在一起2022-12-1723用例关联 用例关联具有一些价值,但更重要的工作是编写用例文本 用例关联 包含关系 扩展关系 泛化关系2022-12-1724用例类型 具体用例 是由发起者发起,完成了参与者所期望的完整行为,它们通常是基本业务过程用例 抽象用例 永远不能被实例化;它是其他用例的子功能用例 基础用例 包含其他用例的用例,或者是被其他用例扩展或者泛化的用例 附加用例 被其他用例包含的用例、或者扩展、泛化其他用例的用例2022
14、-12-1725包含关系 当在两个或多个独立用例中存在重复,而您想避免这种冗余时,可以使用包含关系 包含关系的另外一个用途是描述异步事件的处理 用户可以在任何时候选择或分之到特定窗口、功能、Web页面或一组步骤 用例非常复杂并冗长,将其分解为子单元便于理解2022-12-1726UC1:处理销售主成功场景:主成功场景:1.顾客到某个POS终端为购买的产品或服务付费7、顾客支付,系统付款扩展:扩展:7b.用信用卡支付:包含“处理信用卡支付”用例7c.用支票支付:包含“处理支票支付”用例2022-12-1727UC2:处理租金扩展:扩展:6b.用信用卡支付:包含“处理信用卡支付”用例2022-12
15、-1728UC12:处理信用卡支付级别:子功能级别:子功能主成功场景:主成功场景:1.客户输入信息卡帐户信息2.系统向外部的支付授权服务系统发送支付授权请求3.系统接收到同意支付的信息,并通知收银员4.扩展:扩展:2a.系统与外部系统交互时检测到错误1.系统通知收银员发生错误2.收银员要求客户选择其他支付手段2022-12-1729UC1:FooBars主成功场景:主成功场景:1.扩展:扩展:a*.任何时候,客户都可以选择编辑个人信息:编辑个人信息b*.任何时候,客户都可以选择打印帮助:展现打印帮助2-11.客户取消:取消交易确认2022-12-1730用例模型中的用例包含关系NextGen
16、POSCashierCustomerHandle CashPaymentProcess RentalProcess SaleHandle CheckPaymentHandle ReturnsincludeincludeincludeincludeincludeincludeactorAccountingSystemactorCreditAuthorizationServiceManage Users.UML notation:the base use case points to the included use caseHandle CreditPayment2022-12-1731扩展关系
17、 扩展 当用例文本不好修改时可以通过扩展用例解决 再创建扩展或附加用例,并且在其中描述 在何处和何种条件下该用例扩展某基础用例的行为2022-12-1732UC1:处理销售扩展点:扩展点:2a.VIP客户,步骤1。支付,步骤7主成功场景:1.顾客到某个POS收费口为购买的产品或服务付费。7.顾客付费,系统处理支付2022-12-1733UC1:处理增券支付触发:触发:客户想使用赠券支付扩展点扩展点:处理销售中的支付级别:级别:子功能主成功场景:主成功场景:1.客户将赠券交给收银员2.收银员输入赠券ID2022-12-1734扩展关系Process SaleExtension Points:Pa
18、ymentVIP CustomerextendPayment,if Customer presents a gift certificateUML notation:1.The extending use case points to the base use case.2.The condition and extension point can be shown on the line.Handle Gift Certificate Payment2022-12-1735领域模型的精化 目标 使用泛化、特化、关联类、时间间隔、组合和包等概念精化领域模型 确定在何时表示子类才具有价值2022
19、-12-1736领域模型的精化新概念分类列表分类示例有形对象CreditCard,Check事务CashPayment,CreditPayment,CheckPayment其他外部的计算机或者机电系统CreditAuthorizationService,CheckAuthorizationService抽象名称概念组织结构CheckAuthorizationService,CheckAuthorizationService金融、工作、合同、法律事务等的记录AccountsReceivable2022-12-1737UC1:处理销售扩展:扩展:7b.7b.信用卡支付:1.客户输入信用卡帐户信息信
20、用卡帐户信息2.系统向外部的支付授权系统支付授权系统发送支付授权请求支付授权请求,请求支付批准支付批准2a.系统侦测到与外部系统协作失败1.系统向收银员发送错误信号2.收银员要求客户使用其他支付手段3.系统接收到支付批准支付批准应答,并通知收银员3a.系统接收到拒绝支付应答拒绝支付应答:1.系统向收银员通知拒绝应答2.收银员要求客户使用其他支付手段4.系统记录此次信用卡支付信用卡支付的信息,其中包括支付批准信息5.系统显示信用卡支付签名输入机制6.收银员要求客户签名。客户签名。7c.支票支付1.客户填写支票支票,并且同驾驶证驾驶证一起交给收银员2.出纳员将驾驶证号码写在支票上,输入这些信息,请
21、求支票支付授权支票支付授权3.产生一个支票支付请求支票支付请求并且将她发送到外部的支票授权服务系统支票授权服务系统4.接收到支票支付批准应答并通知收银员5.系统记录此次支票支付支票支付的信息,包括支付批准信息2022-12-1738泛化特化层次体系CashPaymentCreditPaymentCheckPaymentPaymentsuperclass-more general conceptsubclass-more specialized conceptthese are conceptual classes,not software classes泛化(Generaliza)是在多个概念
22、中识别共性和定义超类(普遍概念)与子类(具体概念)关系的活动2022-12-1739使用独立箭头和共享箭头表示法的类层关系CashPaymentCreditPaymentCheckPaymentPaymentCashPaymentCreditPaymentCheckPaymentPayment2022-12-1740概念超类和子类定义:Payment类的层次结构CashPaymentCreditPaymentCheckPaymentPaymentamount:Money2022-12-1741集合关系的Venn图PaymentCashPaymentCreditPaymentCheckPayme
23、nt2022-12-1742子类的一致性CashPaymentCreditPaymentCheckPaymentPaymentamount:MoneySalePays-for11100原则:概念超类的定义必须100适用于子类。子类必须100与超类一致,包括属性和关联Is-a规则:子类是一种超类2022-12-1743合法的概念类划分,但在我们的领域有用吗MaleCustomerFemaleCustomerCustomerCorrect subclasses.But useful?2022-12-1744划分概念子类的动机 子类有额外的有意义的属性 子类有额外的有意义的关联 子类概念的操作、处理
24、、反映或使用的方式不同于其超类或其他子类,而这些方法是我们所关注的 子类概念表示了一个活动体,其行为与超类或者其他子类不同,而这些行为是我们所关注的2022-12-1745子类划分的实例概念子类划分的动机示例子类有额外的有意义的属性Payments不适用LibraryBook具有新的属性ISBN,是LoanabledResource的子类子类有额外的有意义的关联PaymentsCreditPayments和CreditCard类关联是Payments类的子类LibraryVideo类和Director类关联是LoanabledResource的子类子类概念的操作、处理、反应或使用的方式不同于其
25、超类或其他子类,而这些方法是我们所关注的Payments Payment的子类CreditPayment类的授权处理方式与其他的Payment子类都不相同LibrarySoftware在借出时需要押金,是LoanabledResource的子类子类概念表示了一个活动体,其行为与超类或者其他子类不同,而这些行为是我们所关注的Payments不适用Library不适用MarketResearchMaleHuman与FaleHuman的购物习惯不同是Human的子类2022-12-1746何时定义概念超类 潜在的概念子类表示的是相似概念的不同变体 子类满足100和Is-a规则 所有子类都具有相同的属
展开阅读全文