- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的设计与技术第三章
6.1分析工作流 分析开始于初始阶段结尾,是细化阶段的焦点。 6.2 分析的目标 分析目标是产生分析模型 该模型关注系统需要做什么,但把系统如何做的细节留给设计工作流。 与需求、设计的关系 分析工作与需求捕获在很大程度上重叠。 实际上,这两种活动常常相辅相成——为了澄清和找出任何遗漏或歪曲的需求,常常需要在需求之上作一些分析。 分析和设计的边界非常模糊,在一定程度上,个体分析师根据一些经验在他们认为恰当的地方分界。 一般认为分析主要负责理清“作什么”,设计负责“如何作”。 6.3分析工作细节流 6.4分析制品-元模型 分析主要制品:分析类和用例实现 6.5 经验法则 中等系统的分析模型中大约有50-100个类。 捕获大的场面。 总是使用业务语言。 仅包含建模问题域词汇的类。 对尽可能多的利益相关人有用。 不作出实现的决定。 讲述有关期望系统的故事。 关注类的关联——最小化耦合。 在存在自然抽象层次的地方使用继承。 保持简单 小结 本讲介绍分析工作流 分析模型捕获期望系统的基本需求和特征,是战略性的。 开始于初始阶段的结尾开始,贯穿整个细化阶段。 分析活动制品是分析类和用例实现 分析工作流包含构架,用例,类和包的分析 注意分析模型的若干经验法则,保持简单 7.1 类 类的特点 7.2 对象 “具有良好定义的,封装了状态和行为的边界的具体实体,类的实例” Rumbaugh《UML参考手册》 一般意义上的对象: 是现实世界中一个实际存在的事物、构成世界的一个独立单位 可以是有形的(如一辆汽车),也可是无形的(比如一项计划)。 具有静态特征:可以用某种数据来描述;动态特征:对象所表现的行为或具有的功能 对象的消息传递 7.3 类和对象 7.4UML类符号 例子 7.5UML对象符号 例子 7.6可视性(UML语义) 7.7范围 类范围和实例范围的操作和属性 7.8对象构造和析构 类范围属性和操作的典型用法 构造函数—新对象初始化的特殊类范围方法。 析构函数—当销毁对象时,起清理作用方法 以C++为例子: 构造操作的名字与类相同,可以有多个 析构操作在类名前加~,只有一个 小结 类定义了一组对象的特征(属性、操作、方法、关系和行为)。对象是一个类的实例,是数据和函数的内聚单元。 类有封装、抽象、多态,继承等特性 对象和类名称具有CamelCase格式。对象名称以小写字母打头,类名称以大写字母打头,对象名称和类名称之间以冒号隔开。 类有名称,属性,操作分栏,可视性和多重性。 实例范围的属性和操作运作在特定对象上,类范围属性和操作运作在对象的整个类上。 类的构造函数在创建新对象时初始化对象,析构函数在销毁对象时,起清理作用 8.1 分析用例 8.2 什么是分析类 分析类是这样的类: 它代表问题域中的简洁抽象,问题域是首先产生软件系统需求的域。 使用清晰的和无歧义的方法映射到某个真实世界业务概念 注意 分析模型中的所有类都是分析类,而不是从设计考虑而产生的类。 当进行详细设计时,可能发现一个分析类被精化为一个或多个设计类。 8.3 分析类剖析 例子 8.4产生良好分析类的方法 8.5分析类经验法则 8.6寻找分析类 8.6.1使用名词/动词分析 文档来源 8.6.2使用CRC分析寻找类 CRC(Class Responsibility Cooperate) 类 职责 协作方 便签 使用最有力的分析工具——便笺: OO分析师、利益相关人和领域专家收集信息 把所有的想法记录下来而不争论 尝试识别可能一起工作的类 OO分析师和领域专家分析信息 特定便笺需要成为类 其他便笺可成为类的属性。 精化类 8.6.3其他方法寻找类 物理客体 文档 外部世界已知的接口 概念实体 8.7创建初步分析模型 将分析结果整合成单一UML模型 做法是: 比较所有的三种信息来源 整合出分析类、属性和职责,并输入CASE工具。 协作方代表类间的关系 按照标准命名约定改进类、属性和职责命名。 输出一组分析类和初步分析模型 小结 在本章描述了什么是分析类 UP活动“分析用例”输出分析类和用例实现。 分析类表示问题域中简洁、良好定义的抽象,问题域是产生软件系统需求的域。 分析类应该以清晰的、无歧义的方式映射到真实世界业务概念。 分析类包括一组高级候选属性和一组高级操作。 怎样产生好的分析类以及如何避免产生坏的分析类 如何使用名词/动词分析、CRC脑力风暴以及检查分析类的其他来源来找出分析类。 如何构建初步分析模型。 9.1关系 9.2链接 对象图及路径 9.3关联 9.3.1关联语法 例子 9.4.2多重性 例子 自反关联 9.4.3层次和网络 例子 9.4.4导航 导航性表明可从源类的任何对象到目标类的一个或多个对象(根据多重性确定的)遍历。 导航性的意义是“消息仅能够
文档评论(0)