- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
12.2.4寻找协作者 对象自己能够履行具体的职责,也需要其他对象的帮助。 仅当类A为类B完成某些事情时,类A才显示为类B的协作者。 为了确定协作,可以对每个类的每个职责询问下列问题。 1.类本身能够履行这个职责吗? 2.如果不能,那么它需要什么? 3.从其他什么类中它能够获得所需要的东西? ATM和Transaction的协作 12.2.5通过场景验证CRC模型 12.2.6 CRC建模的优缺点 1.增加了系统开发中用户参与的可能。 2.CRC卡建模简单而且廉价。 3.CRC建模让你对系统有很好的全局观点 4.CRC建模直接引导我们进入类建模。 5.CRC建模促进形成公用项目词汇表。 1.CRC建模让系统分析人员不习惯 2.让一些用户或是领域专家聚到一起开会是一件困难的事 3.CRC卡也存在缺陷。 4.CRC卡不是万能的,只是面向对象开发过程的一个步骤 12.3类模型 类模型展示系统的类以及它们的相互关系(包括继承、聚合与关联)以及类的方法和属性。 类模型建模的最简单方法就是直接把CRC模型转换成UML类图 CRC模型给出了系统最初的类、它们的职责以及这些类之间的相互关系(以协作者列表形式展现)。 类的层次结构 继承是类的层次结构 ATM系统中,转账、查询、取款和修改密码等金融业务 统一为事务类 关联 两个类间存在关系,也就是意味类间存在耦合 关联建模包括关联方向性、末端角色名、多重性和关联名。 聚合 某个对象是由其他对象组成 读卡器、出钞器、屏幕和凭条打印机外部设备接口类,是组成ATM的设备类。 类图 将CRC模型包含的信息转变成最初的类模型后 经过交互图建模的动态分析,加上类图的静态细节描述,使得类图包含更丰富的信息 实践中,这种互补的静态视图和动态视图建模是并行创建,交替开展。 ATM的类图 1.4动态交互建模 CRC模型和类图描述系统中的对象相互的静态协作关系。 顺序图、协作图和活动图对参与者使用系统的场景进行逻辑建模 顺序图 每个用例要绘制一个顺序图 顺序图应和用例规约的叙述流程相一致的 顺序图建模是验证用例执行逻辑及使逻辑清晰的好方法 1.是验证用例逻辑及使逻辑清晰的好方法。 2.根据用例规约描述,推测用例的可能实现过程。 3.发现系统瓶颈的一种很好机制。 4.检验分析模型,确认是否缺少一些类。 5.帮助发现处于系统边界的主动对象。 6.对于设计、编程、测试人员来说,顺序图是一个参考文档,提供了某一项功能可追踪的执行路线。 转账用例 协作图 对象图展示出对象和对象之间的静态关系 协作图则是对象图的扩展,除了展示对象间的关联外,还显示出对象之间的消息传递 协作图与顺序图两者语义等价,可以相互转换 绘制协作图时,首先要绘制一张参与协作的类的对象图,用线描述对象之间的关联,无需注明关联名。然后添加对象协作的消息。 部分转账成功场景的协作图 活动图 活动图可用于在业务单元的级别上对更高级别的业务过程进行建模,或者对低级别的内部类操作进行建模。 顺序图和协作图强调的是从对象到对象的控制流程,关注的是传送消息的对象 活动图强调的是从活动到活动的控制流,观察对象之间传送的操作 验证银行卡密码验证的活动图 带泳道的取款活动图 1.5 基于控制行为建模 状态图用于系统中类的动态行为建模。 活动图强调从活动到活动的控制流,状态图强调对象的潜在状态和这些状态之间的转换 状态是对象处于某一表征的稳定情形,改变往往是由于响应事件或时间流逝引起。 状态图建模,用于说明三个问题: 对象可能处于的稳定状态; 触发从状态到状态的转换的事件; 以及当每个状态改变时发生的动作。 ATM的状态图 软件工程 第12章 面向对象分析 面向对象分析 Object-Oriented Analysis,OOA 强调运用面向对象方法,对问题域和系统责任进行分析和理解,找出描述问题域和系统责任所需要的对象,定义对象的属性、操作以及对象之间的关系,建立一个符合问题域、满足用户功能需求的OOA模型。 当前系统分析面临的困难主要有:对问题域和系统责任的理解、人与人之间的交流、需求的不断变化以及软件复用对分析的要求。 对于面向对象分析主要的活动有: 与客户进行沟通,了解用户需求,建立需求模型。 标识问题域中的对象,分析对象的承担的职责。 分析对象与对象之间的关系。 定义对象之间的交互。 这些活动需要反复迭代,直至模型完成。 12.1收集需求 软件开发的第一步是收集用户的需求 面向对象软件开发使用用例的方法来描述系统需求。 面向对象软件开发并不是一开始就考虑系统有哪些对象,而是从对系统将被如何使用的角度开始捕捉需求。 用例建模主要针对系统的功能性需求。 用例模型奠定了整个系统软件开发的基础。 传统过程软件需求说明片断 软件需求规约(SRS) 子系统1 功能
文档评论(0)