高级软件工程(第3章 面向对象建模).ppt

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
高级软件工程(第3章 面向对象建模)

第3章 面向对象建模 §3.1 面向对象的基本概念 §3.2 OO需求建模之功能模型—用例图(Use-Case Diagram) 一、 参与者(Actor) 二、 用例(Use case) 三、 用例间的关系 四、 用例与事件流 五、 用例图的构造与应用 §3.3 OO分析建模之对象模型—类图(Class Diagram) 三、 对象与类 2. 识别对象和建立类 五、建立关系 关联的修饰: (1)名称:用来描述关联的性质。 说明:关联名称应使用动词短语,因为它表明源对象正 在目标对象上执行动作。 例如: (3)多重性 多重性语法示意表: 4. 聚合关系(Aggregation)---特殊的关联关系 聚合关系表示类间的关系是整体与部分的关系。简言 之,聚合关系中一个类表述了一个较大的事物,它由较小 的事物组成,这种关系就是聚合。它描述了“有一个”的关 系。即整体对象拥有部分对象。 聚合关系用空心的菱形头的实线表示: 聚合关系的C++实现 六、建立(构造)类图 §3.4 OO分析与设计建模之动态模型--状态图 (Statechart Diagram) 状态图:描述了一个特定对象在其生存期内因响应“事件” 所经历的状态序列以及对这些“事件”所做出的反 应。 其中: 1. 事件是引起状态跃迁(转移)的内部消息 2. 状态图主要用于描述一个对象在其生存期间的动态行 为,表现一个对象所经历的状态序列,引起状态转移 的事件(event),以及因状态转移而伴随的动作(action); 3. 所谓对象可以是类的实例、用例的实例或整个系统的 实例,大多数面向对象技术用状态图描述单个对象 (类的实例)在其生命周期中的行为; 4. 状态图是对某个类对象的补充; 5. 状态图在检查、调试和描述类的动态行为时非常有用. 1. 类的图形表示 类名 属性 方法 [可见性] 属性名 [:类型] [=初始值] [可见性] 方法名 [(参数列表)] [:返回类型] 其中: “+”:公有(public) 可见性 “–”:私有(private) “#”:保护(protected) 例: + name : string –age : integer # max : integer=100 + op1() : boolean – op2() # op3() UML中的类在ROSE中的表示: ⑴ 考虑问题域,基于(数据)实体建立类 “实体”是指可以用数据形式描述的事物。如: 问题域中的人员、组织机构、设备、物品、报表、日志、报告等 例:学生成绩网络管理信息系统。 其数据实体有: “任课的教师”、“任课表” 、“学生”、 “选课表”、 “课程(包括必修课和选修课)”、 “成绩单” 等 其类的UML表示如下: 来源本系统 来源于选课系统 ⑵ 考虑系统边界,基于“用例图---参与者”建立类 基于用例图,考虑系统边界,分析员可发现一些与系统边界以外的“参与者” (人员、设备和外系统)进行交互,并处理系统对外接口的对象。 基于“参与者”,分析员可以从不同的角度去分析: ① 可以把“人员和设备”看做是问题域范畴以内的事物,在系统中用对象对它们进行抽象描述。 ② 也可以从另一个角度去看,人员和设备是在系统边界之外与系统进行交互的参与者,系统中需要设立相应的对象处理系统与这些实际的人和设备的交互。 两种观点都有道理,但产生的结果会有一定的差异: 前一种观点侧重于以系统中的对象模拟现实中的人和设备; 后一种观点侧重于以系统中的对象处理现实中的人和设备与系统的交互。哪种效果更好,要看系统的实际需要。 ③ 对于外系统,把它解释为问题域中的一个对象是很不自然的,只能在系统中设立对象处理与外系统的交互,而不能说用对象去映射外系统。 边界 边界 例, 考虑用例图: 窗口边界类:任课教师窗口、学生窗口、管理人员窗口 接口边界类: 或 ⑶ 考虑系统责任,基于“用例图---用例”建立类 考虑系统责任,侧重于系统责任范围内的每一项职责都应落实到某个(些)对象来完成,即对照系统责任所要求的每一项功能,查看是否可以由现有的对象完成这些功能。如果发现某个功能在现有的任何对象中都不能提供,则可启

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档