- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * POS系统用例图 购买商品 登录 退货 收款员 POS 顾客 启动/关闭 管理用户 其他 管理员 系统管理员 * 现金结算 登录 收款员 参与者与它们所发起执行的过程(简要描述) 退货 购买商品 顾客 关闭系统 启动系统 管理员 增加新用户 系统管理员 * 用例描述实例 用例: 购买商品 参与者:顾客(发起者)、收款员 类型: 主要的 描述: 顾客带着所要购买商品到付款处,收款员 记录商品信息并收款。 用例: 启动/关闭系统 参与者:管理员 类型: 主要的 描述: 管理员接通一台POS机电源,检查时间、 日期正确性,检查完成后,系统处于就绪 状态,以备收款员使用。 * 基于三个模型的分析过程 功能模型着重于系统内部数据的传送和处理。 功能模型定义“做什么” 动态模型定义“何时做” 对象模型定义“对谁做”。 * 对象模型、动态模型和功能模型之间的关系: 1.针对每个类建立的动态模型,描述了类实例的生命周期或运行周期。 2.状态转换驱使行为发生,这些行为在数据流图中被映射成处理,它们同时与对象模型中的服务相对应。 3.功能模型中的处理,对应于对象模型中立类所提供的服务。在顶层数据流图中的处理,对应于复杂对象提供的服务;在低层数据流图中的处理,对应于更基本的对象(基本对象是复杂对象的组成部分)的服务。有时一个处理对应多个服务,沮有—个服务对应多个处理的时候 * 4.功能模型中的数据存储,以及数据的源点/终点(在功能模型中称为动作对象),通常是对象模型中的对象。 5.功能模型中的数据流,住往是对象模型中的属性值,也可能是整个对象。 6.功能模型中的处理可能产生动态模型中的事件7.对象模型描述了功能模型中的动作对象、数据存储以及数据流的结构。 * GIS对象模型 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 多重继承 在建模中直观、准确地反映现实世界 在实现中有可能带来困难 名字冲突: 两个或更多的子类定义了同样的属性 和操作 重复继承: 两个或更多的同级父类有同一个子类 每一个编程语言/环境都有解决的方法 并不是所有面向对象编程语言都直接支持多重继承 仅仅当必需时使用多重继承 * 继承的益处 增加软件重用的机会 降低开发和维护费用 开发一个更贴近现实的模型 系统更加灵活 所有的子类自动继承父类的改变 可以通过增加一个子类来处理需求的改变 保证类之间的一致性 父类可以为所有子类定制规则; (许多OOP语言必须指定这类规则) 继承界面和实现过程 支持多态 * 多态 多态:利用一个单一的界面隐藏大量不同的实现过程 客户端可以调用一个对象的操作,不必了解其类型 如果增加了支持相同操作的对象, 不需要重新修改客户端 允许客户端操作其共有的父类的对象 * 继承和多态 多态是一种更高级别的继承 分析时,尽可能多地使用继承,发挥重用和多态的优势 在设计时需要修正分析时定义的继承结构,以便更好地运用多态 分析时, 应针对问题的本质定义继承 * 继承 vs. 聚合 容易混淆 继承是 “is-a” 或 “kind-of” 的关系 聚合是 “has-a” 的关系 替代法则:测试继承关系 替代法则 如果子类 D 的一个对象被替换为父类 B 的一个对象, 在类 B 中定义的所有程序的行为应保持不变。 * 大型系统,包 大的系统模型需要定义很多类 包:类图中紧密关联的部分的组合, 有助于更好地理解系统 包是系统中的逻辑“功能块” 包的名字在整个系统中必须是唯一的 每个包完成系统的一个主要功能 PackageName * 模型的组织 一个类图, 可以只包含包,
文档评论(0)