《软件工程引论教学课件》第6章面向对象设计.ppt
《《软件工程引论教学课件》第6章面向对象设计.ppt》由会员分享,可在线阅读,更多相关《《软件工程引论教学课件》第6章面向对象设计.ppt(76页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、图:活动图图:活动图统一建模语言统一建模语言统一建模语言统一建模语言UMLUML 活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程程,强调对象间的控制流程程,强调对象间的控制流程程,强调对象间的控制流程 活动图的组成活动图的组成活动图的组成活动图的组成活动(活动(活动(活动(ActivityActivity)转移(转移(转移(转移(TransitionTransition)泳道(泳道(泳道(泳道(SwimlaneSwimlane)分支(分支(分支(分支
2、(BranchBranch)分叉和汇合(分叉和汇合(分叉和汇合(分叉和汇合(Fork and JoinFork and Join)对象流(对象流(对象流(对象流(Object StreamObject Stream)图:图:活动图活动图统一建模语言统一建模语言统一建模语言统一建模语言UMLUML 活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流活动图反映系统中从一个活动到另一个活动的流程,强调对象间的控制流程程,强调对象间的控制流程程,强调对象间的控制流程程,强调对象间的控制流程图:组件图图:组件图统一建模语言统一建
3、模语言统一建模语言统一建模语言UMLUML 组件图描述组件以及它们之间的关系,表示系统组件图描述组件以及它们之间的关系,表示系统组件图描述组件以及它们之间的关系,表示系统组件图描述组件以及它们之间的关系,表示系统的静态实现视图的静态实现视图的静态实现视图的静态实现视图图:部署图图:部署图统一建模语言统一建模语言统一建模语言统一建模语言UMLUML 部署图反映了系统中软件和硬件的物理架构,表部署图反映了系统中软件和硬件的物理架构,表部署图反映了系统中软件和硬件的物理架构,表部署图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置示系统运行时的处理节点以及节点中组件的配
4、置示系统运行时的处理节点以及节点中组件的配置示系统运行时的处理节点以及节点中组件的配置图:部署图图:部署图统一建模语言统一建模语言统一建模语言统一建模语言UMLUML面向对象的设计面向对象的设计面向对象设计的过程面向对象设计的过程体系结构体系结构体系结构体系结构设计说明设计说明设计说明设计说明详详详详 细细细细设计说明设计说明设计说明设计说明系统设计系统设计设计系统的体系结构设计系统的体系结构设计系统的体系结构设计系统的体系结构选择合适的体系结构策略,建立系统的总体结构选择合适的体系结构策略,建立系统的总体结构选择合适的体系结构策略,建立系统的总体结构选择合适的体系结构策略,建立系统的总体结构
5、识别设计元素识别设计元素识别设计元素识别设计元素识别类和子系统识别类和子系统识别类和子系统识别类和子系统识别子系统接口识别子系统接口识别子系统接口识别子系统接口定义数据的存储策略定义数据的存储策略定义数据的存储策略定义数据的存储策略部署子系统部署子系统部署子系统部署子系统选择硬件配置和系统平台,将子系统分配到相应选择硬件配置和系统平台,将子系统分配到相应选择硬件配置和系统平台,将子系统分配到相应选择硬件配置和系统平台,将子系统分配到相应的物理节点的物理节点的物理节点的物理节点检查系统设计检查系统设计检查系统设计检查系统设计9什么是面向对象设计什么是面向对象设计面向对象的设计(面向对象的设计(O
6、ODOOD)概述)概述OOD按实现条件对按实现条件对OOA模型进行调整,并补充几个新的模型进行调整,并补充几个新的组成部分(也是由对象构成)组成部分(也是由对象构成)与实现有关的因素:与实现有关的因素:图形用户界面系统图形用户界面系统硬件、操作系统及网络硬件、操作系统及网络数据管理系统数据管理系统其他其他编程语言、可复用的类库编程语言、可复用的类库OOA模型模型补补充充补补充充补充补充补充补充调整调整10OOAOOA与与OODOOD的关系:的关系:1、从、从OOA到到OOD不是转换;不是转换;是是调整和增补调整和增补问题域问题域部分部分OOA模型模型将将OOA模型搬到模型搬到OOD;进行必要的
7、调整,进行必要的调整,作为作为OOD模型的问题域模型的问题域部分;部分;人人机机交交互互部部分分数数据据管管理理部部分分构件部署构件部署部分部分增补其它部分,成为完增补其它部分,成为完整的整的OOD模型。模型。控制驱动部分控制驱动部分112、采用一致的概念和表示法、采用一致的概念和表示法不存在分析与设计之间的鸿沟不存在分析与设计之间的鸿沟分析分析 设计设计数据流图(DFD)模块结构图(MSD)实体-关系图(ERD)传统方法分析与设计之间的鸿沟3、有不同的侧重点和不同的策略、有不同的侧重点和不同的策略 OOA主要针对问题域,识别有关的对象以及它们之间的主要针对问题域,识别有关的对象以及它们之间的
8、关系,产生一个关系,产生一个满足用户需求满足用户需求,独立于实现独立于实现的的OOA模型。模型。OOD主要解决与实现有关的问题主要解决与实现有关的问题,基于,基于OOA模型,针模型,针对具体的软、硬件条件(如机器、网络、对具体的软、硬件条件(如机器、网络、OS、GUI、DBMS等)产生一个等)产生一个可实现可实现的的OOD模型。模型。OOA OOD一致的一致的概念概念一致的一致的表示法表示法OO模型面向对象的分析与设计之间不存在鸿沟OO模型OOD模型模型从两个侧面来描述从两个侧面来描述OOD模型和过程模型和过程从另一侧面观察从另一侧面观察OOD模型每个部分如何用OO概念表达采用采用OOA的概念
9、的概念及及模型组织方式模型组织方式从一个侧面观察从一个侧面观察OOD模型包括几个主要部分一个核心部分加一个核心部分加几个外围部分几个外围部分在辅助模型中要增加分别用在辅助模型中要增加分别用于描述构件模型和部署模型于描述构件模型和部署模型的构件图和部署图的构件图和部署图 13OOD过程模型过程模型问题域部分的设计人机交互部分的设计控制流管理部分的设计数据管理部分的设计构件部署部分的设计前前4项不强调次序项不强调次序 每个部分均采用与OOA一致的概念概念、表示法表示法及活动活动,但具有自己独特的策略。进行构件部署设计要在其前面四个部分完成后进行。进行构件部署设计要在其前面四个部分完成后进行。Min
10、iLibrary:软件体系结构:软件体系结构MiniLibrary:软件体系结构:软件体系结构MiniLibrary:软件体系结构:软件体系结构识别设计元素识别设计元素识别设计元素识别设计元素确定设计元素的基本原则确定设计元素的基本原则确定设计元素的基本原则确定设计元素的基本原则如果一个如果一个如果一个如果一个“分析类分析类分析类分析类”比较简单,代表着单一的逻辑抽比较简单,代表着单一的逻辑抽比较简单,代表着单一的逻辑抽比较简单,代表着单一的逻辑抽象,那么可以将其映射为象,那么可以将其映射为象,那么可以将其映射为象,那么可以将其映射为“设计类设计类设计类设计类”如果一个如果一个如果一个如果一个
11、“分析类分析类分析类分析类”的职责比较复杂,很难由单个的职责比较复杂,很难由单个的职责比较复杂,很难由单个的职责比较复杂,很难由单个“设计类设计类设计类设计类”承担,则应该将其映射成承担,则应该将其映射成承担,则应该将其映射成承担,则应该将其映射成“子系统接口子系统接口子系统接口子系统接口”子系统的划分应该符合高内聚低耦合的原则子系统的划分应该符合高内聚低耦合的原则子系统的划分应该符合高内聚低耦合的原则子系统的划分应该符合高内聚低耦合的原则MiniLibrary:识别设计元素:识别设计元素MiniLibrary:识别设计元素:识别设计元素识别子系统接口识别子系统接口识别子系统接口识别子系统接口
12、在确定了设计元素之后,需要描述子系统的行为,也在确定了设计元素之后,需要描述子系统的行为,也在确定了设计元素之后,需要描述子系统的行为,也在确定了设计元素之后,需要描述子系统的行为,也就是准确定义接口操作的集合。同时,还要确定就是准确定义接口操作的集合。同时,还要确定就是准确定义接口操作的集合。同时,还要确定就是准确定义接口操作的集合。同时,还要确定“子子子子系统接口系统接口系统接口系统接口”与其他设计元素之间的依赖关系与其他设计元素之间的依赖关系与其他设计元素之间的依赖关系与其他设计元素之间的依赖关系数据文件数据文件数据文件数据文件 数据文件是由操作系统提供的存储形式,应用系统将数据数据文件
13、是由操作系统提供的存储形式,应用系统将数据数据文件是由操作系统提供的存储形式,应用系统将数据数据文件是由操作系统提供的存储形式,应用系统将数据按字节顺序存储,并定义如何以及何时检索数据按字节顺序存储,并定义如何以及何时检索数据按字节顺序存储,并定义如何以及何时检索数据按字节顺序存储,并定义如何以及何时检索数据数据存储策略数据存储策略关系数据库关系数据库关系数据库关系数据库 在关系数据库中,数据是以表的形式存储在预先定义好的在关系数据库中,数据是以表的形式存储在预先定义好的在关系数据库中,数据是以表的形式存储在预先定义好的在关系数据库中,数据是以表的形式存储在预先定义好的称为称为称为称为Sche
14、maSchema的类型中的类型中的类型中的类型中面向对象数据库面向对象数据库面向对象数据库面向对象数据库 与关系数据库不同的是,面向对象数据库将对象和关系做与关系数据库不同的是,面向对象数据库将对象和关系做与关系数据库不同的是,面向对象数据库将对象和关系做与关系数据库不同的是,面向对象数据库将对象和关系做为数据一起存储为数据一起存储为数据一起存储为数据一起存储何时选择文件何时选择文件何时选择文件何时选择文件 存储大容量数据、临时数据、低信息密度数据存储大容量数据、临时数据、低信息密度数据存储大容量数据、临时数据、低信息密度数据存储大容量数据、临时数据、低信息密度数据数据存储策略数据存储策略何时
15、选择数据库何时选择数据库何时选择数据库何时选择数据库 并发访问要求高、系统跨平台、多个应用程序使用相同数并发访问要求高、系统跨平台、多个应用程序使用相同数并发访问要求高、系统跨平台、多个应用程序使用相同数并发访问要求高、系统跨平台、多个应用程序使用相同数据据据据何时选择关系数据库何时选择关系数据库何时选择关系数据库何时选择关系数据库 复杂的数据查询复杂的数据查询复杂的数据查询复杂的数据查询 数据集规模大数据集规模大数据集规模大数据集规模大何时选择面向对象数据库何时选择面向对象数据库何时选择面向对象数据库何时选择面向对象数据库 数据集处于中等规模数据集处于中等规模数据集处于中等规模数据集处于中等
16、规模 对象间没有规则联系对象间没有规则联系对象间没有规则联系对象间没有规则联系部署图反映了系统中软件和硬件的物理架构,表示系统运部署图反映了系统中软件和硬件的物理架构,表示系统运部署图反映了系统中软件和硬件的物理架构,表示系统运部署图反映了系统中软件和硬件的物理架构,表示系统运行时的处理节点以及节点中组件的配置行时的处理节点以及节点中组件的配置行时的处理节点以及节点中组件的配置行时的处理节点以及节点中组件的配置部署子系统部署子系统MiniLibraryMiniLibrary系统的部署图系统的部署图系统的部署图系统的部署图详细设计需要细化分析和系统设计产生的模型,确定新的详细设计需要细化分析和系
17、统设计产生的模型,确定新的详细设计需要细化分析和系统设计产生的模型,确定新的详细设计需要细化分析和系统设计产生的模型,确定新的设计对象,消除问题域与实现域之间的差距设计对象,消除问题域与实现域之间的差距设计对象,消除问题域与实现域之间的差距设计对象,消除问题域与实现域之间的差距详细设计详细设计详细设计的主要任务详细设计的主要任务详细设计的主要任务详细设计的主要任务 精化类的属性和操作精化类的属性和操作精化类的属性和操作精化类的属性和操作 明确定义操作的参数和基本的实现逻辑明确定义操作的参数和基本的实现逻辑明确定义操作的参数和基本的实现逻辑明确定义操作的参数和基本的实现逻辑 明确定义属性的类型和
18、可见性明确定义属性的类型和可见性明确定义属性的类型和可见性明确定义属性的类型和可见性 明确类之间的关系明确类之间的关系明确类之间的关系明确类之间的关系 整理和优化设计模型整理和优化设计模型整理和优化设计模型整理和优化设计模型详细设计模型可以分割成类的集合,通常由单个开发人员详细设计模型可以分割成类的集合,通常由单个开发人员详细设计模型可以分割成类的集合,通常由单个开发人员详细设计模型可以分割成类的集合,通常由单个开发人员实现实现实现实现详细设计详细设计边界类的设计策略边界类的设计策略边界类的设计策略边界类的设计策略 用户界面设计因素用户界面设计因素用户界面设计因素用户界面设计因素 用户界面的开
19、发工具用户界面的开发工具用户界面的开发工具用户界面的开发工具 所创建的界面数量所创建的界面数量所创建的界面数量所创建的界面数量 外部系统接口类外部系统接口类外部系统接口类外部系统接口类实体类的设计策略实体类的设计策略实体类的设计策略实体类的设计策略 考虑性能需求对实体对象的影响考虑性能需求对实体对象的影响考虑性能需求对实体对象的影响考虑性能需求对实体对象的影响控制类的设计策略控制类的设计策略控制类的设计策略控制类的设计策略 是否真正需要?是否应该继续细化?是否真正需要?是否应该继续细化?是否真正需要?是否应该继续细化?是否真正需要?是否应该继续细化?考虑复杂性、变化适应性、分布性和性能、事务处
20、考虑复杂性、变化适应性、分布性和性能、事务处考虑复杂性、变化适应性、分布性和性能、事务处考虑复杂性、变化适应性、分布性和性能、事务处理等要求理等要求理等要求理等要求定义操作定义操作定义操作的过程定义操作的过程定义操作的过程定义操作的过程 找出满足基本逻辑要求的操作找出满足基本逻辑要求的操作找出满足基本逻辑要求的操作找出满足基本逻辑要求的操作 补充必要的辅助操作补充必要的辅助操作补充必要的辅助操作补充必要的辅助操作 初始化类的实例初始化类的实例初始化类的实例初始化类的实例 验证两个实例是否等同验证两个实例是否等同验证两个实例是否等同验证两个实例是否等同 完整地描述操作完整地描述操作完整地描述操作
21、完整地描述操作 确定操作的名称、参数、返回值、可见性等确定操作的名称、参数、返回值、可见性等确定操作的名称、参数、返回值、可见性等确定操作的名称、参数、返回值、可见性等 应该遵从程序设计语言的命名规则应该遵从程序设计语言的命名规则应该遵从程序设计语言的命名规则应该遵从程序设计语言的命名规则 简要说明操作的内部实现逻辑简要说明操作的内部实现逻辑简要说明操作的内部实现逻辑简要说明操作的内部实现逻辑定义操作定义操作举例:举例:举例:举例:BorrowerInfoBorrowerInfo类类类类 构造函数构造函数构造函数构造函数 +new()new()属性赋值属性赋值属性赋值属性赋值 +setName
22、(name:String)setName(name:String)+setAddress(address:String)setAddress(address:String)其他其他其他其他 +addLoan(theLoan:Loan)addLoan(theLoan:Loan)+removeLoan(theLoan:Loan)removeLoan(theLoan:Loan)+isAllowed():BooleanisAllowed():Boolean 定义属性定义属性定义属性定义属性 具体说明属性的名称、类型、缺省值、可见性等具体说明属性的名称、类型、缺省值、可见性等具体说明属性的名称、类型、缺
23、省值、可见性等具体说明属性的名称、类型、缺省值、可见性等定义属性定义属性基本原则基本原则基本原则基本原则 将所有属性的可见性设置为将所有属性的可见性设置为将所有属性的可见性设置为将所有属性的可见性设置为privateprivate;仅通过仅通过仅通过仅通过setset方法更新属性;方法更新属性;方法更新属性;方法更新属性;仅通过仅通过仅通过仅通过getget方法访问属性;方法访问属性;方法访问属性;方法访问属性;在属性的在属性的在属性的在属性的setset方法中,实现简单的有效性验证,而在独立方法中,实现简单的有效性验证,而在独立方法中,实现简单的有效性验证,而在独立方法中,实现简单的有效性验
24、证,而在独立的验证方法中实现复杂的逻辑验证。的验证方法中实现复杂的逻辑验证。的验证方法中实现复杂的逻辑验证。的验证方法中实现复杂的逻辑验证。定义属性定义属性在详细设计阶段,状态建模一般只发生在依赖状在详细设计阶段,状态建模一般只发生在依赖状在详细设计阶段,状态建模一般只发生在依赖状在详细设计阶段,状态建模一般只发生在依赖状态展示不同行为的类上态展示不同行为的类上态展示不同行为的类上态展示不同行为的类上定义状态定义状态在详细设计阶段,需要进一步确定详细的关联关在详细设计阶段,需要进一步确定详细的关联关在详细设计阶段,需要进一步确定详细的关联关在详细设计阶段,需要进一步确定详细的关联关系、依赖关系
25、和聚合关系等系、依赖关系和聚合关系等系、依赖关系和聚合关系等系、依赖关系和聚合关系等定义关系定义关系不同对象之间的可能连接不同对象之间的可能连接不同对象之间的可能连接不同对象之间的可能连接在有些情况下,关联关系本身也可能具有属性,在有些情况下,关联关系本身也可能具有属性,在有些情况下,关联关系本身也可能具有属性,在有些情况下,关联关系本身也可能具有属性,可以使用可以使用可以使用可以使用“关联类关联类关联类关联类”将这种关系建模将这种关系建模将这种关系建模将这种关系建模定义关联类定义关联类举例:选课表举例:选课表举例:选课表举例:选课表ScheduleSchedule与开始课程与开始课程与开始课
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程引论教学课件 软件工程 引论 教学 课件 面向 对象 设计
限制150内