- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第 10 章 面向对象分析 软 件 工 程 电子与信息工程学院 计算机系 10.1 面向对象分析的基本过程 10.2 需求陈述 10.3 建立对象模型 10.5 建立功能模型 10.6 定义服务 10.4 建立动态模型 本章重点: 面向对象分析的过程 对象、动态、功能模型的建立 难点: 对象、动态、功能模型的建立 10.1 面向对象分析的基本过程 10.1.1 概述 面向对象分析(OOA Object-Oriented Analysis) 是抽取和整理用户需求并建立问题域精确模型的过程。 面向对象分析(OOA)的关键是识别出问题域内的类与对象,并分析它们相互间的关系,最终建立起问题域的简洁、精确、可理解的正确模型。在用面向对象观点建立起的3种模型中,对象模型是最基本、最重要、最核心的。 10.1.2 3个子模型与5个层次 3个子模型 面向对象建模得到的模型包含系统的3个要素,即静态结构(对象模型)、交互次序(动态模型)和数据变换(功能模型)。 5个层次 主题是指导读者(包括系统分析员、软件设计人员、领域专家、管理人员、用户等,总之,“读者”泛指所有需要读懂系统模型的人)理解大型、复杂模型的一种机制。 面向对象分析过程中建立对象模型的5项主要活动:找出类与对象,识别结构,识别主题,定义属性,定义服务。 面向对象分析大体上按照下列顺序进行:寻找类与对象,识别结构,识别主题,定义属性,建立动态模型,建立功能模型,定义服务。 10.2 需求陈述 10.2.1 书写要点 需求陈述的内容包括:问题范围,功能需求,性能需求,应用环境及假设条件等。 需求陈述应该阐明“做什么”而不是“怎样做”。 应该描述用户的需求而不是提出解决问题的方法。 10.2.2 例子 10.3 建立对象模型 工作步骤: (1)确定对象类和关联(因为它们影响系统整体结构和解决问题的方法),对于大型复杂问题还要进一步划分出若干个主题; (2)给类和关联增添属性,以进一步描述它们; (3)利用适当的继承关系进一步合并和组织类。 10.3.1 确定类与对象 1. 找出候选的类与对象 (1)找出候选的类与对象 方法一 大多数客观事物可分为下述5类: ① 可感知的物理实体 ② 人或组织的角色 ③ 应该记忆的事件 ④ 两个或多个对象的相互作用 ⑤ 需要说明的概念 方法二 这种分析方法以用自然语言书写的需求陈述为依据,把陈述中的名词作为类与对象的候选者,用形容词作为确定属性的线索,把动词作为服务(操作)的候选者。 2. 筛选出正确的类与对象 依据的标准: (1)冗余 (2)无关 (3)笼统 (4)属性 (5)操作 (6)实现 10.3.2 确定关联 1. 初步确定关联 (1)直接提取动词短语得出的关联 (2)需求陈述中隐含的关联 (3)根据问题域知识得出的关联 2. 筛选 删除候选关联的标准: (1)已删去的类之间的关联 (2)与问题无关的或应在实现阶段考虑的关联 (3)瞬时事件 (4)三元关联 (5)派生关联 3. 进一步完善 (1)正名 (2)分解 (3)补充 (4)标明重数 10.3.3 划分主题 10.3.4 确定属性 1. 分析 2. 选择 认真考察经初步分析而确定下来的那些属性,从中删掉不正确的或不必要的属性。通常有以下几种常见情况: (1)误把对象当作属性 (2)误把关联类的属性当作一般对象的属性 (3)把限定误当成属性 (4)误把内部状态当成了属性 (5)过于细化 (6)存在不一致的属性 10.3.5 识别继承关系 建立继承(即泛化)关系的方式: (1)自底向上 抽象出现有类的共同性质泛化出父类,这个过程实质上模拟了人类归纳思维过程。 (2)自顶向下 把现有类细化成更具体的子类,这模拟了人类的演绎思维过程。 10.3.6 反复修改 10.4 建立动态模型 步骤: 第一步,是编写典型交互行为的脚本。 第二步,从脚本中提取出事件,确定触发每个事件的动作对象以及接受事件的目标对象。 第三步,排列事件发生的次序,确定每个对象可能有的状态及状态间的转换关系,并用状态图描绘它们。 第四步,比较各个对象的状态图,检查它们之间的一致性,确保事件之间的匹配。 10.4.1 编写脚本 脚本是指系统在某一执行期间内出现的一系列事件,描述用户(或其他外部设备)与目标系统之间的一个或多个典型的交互过程,以便对目标系统的行为有更具体的认识。 编写脚本的目的:是保证不遗漏重要的交互步骤,它有助于确保整个交互过程的正确性的和清晰性。 10.4.2 设想用户界面 10.4
文档评论(0)