




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第面向对象设计2知识回顾 软件设计概述 概念、任务 、模块化设计 面向对象设计建模 模型、任务、模式的应用 系统架构设计 系统高层结构设计 确定设计元素 任务管理策略、分布式实现机制(可略) 数据存储设计 人机交互设计前馈及作业总结 前馈 作业大同小异。问题解答 分包原则除了按照边界类和功能相关的类打包,还可以按分包原则除了按照边界类和功能相关的类打包,还可以按照什么原则分包呢?崔健炜照什么原则分包呢?崔健炜 分包的目的是使设计元素更有秩序,那怎么来衡量这个包分包的目的是使设计元素更有秩序,那怎么来衡量这个包是否分的恰到好处。使设计呈现出更明显的高内聚、低耦是否分的恰到好处。使设计呈现出更明显
2、的高内聚、低耦合的特征。杨莹合的特征。杨莹 通常在一个高层次的视图上显示包依赖关系使开发人员在通常在一个高层次的视图上显示包依赖关系使开发人员在高层次的视图上度量系统的复杂度,但是又要杜绝包之间高层次的视图上度量系统的复杂度,但是又要杜绝包之间相互依赖的关系以免其中一部分进行修改而导致很难对其相互依赖的关系以免其中一部分进行修改而导致很难对其他部分所受的影响做出正确估计,这是不是互相矛盾?刘他部分所受的影响做出正确估计,这是不是互相矛盾?刘磊磊前馈检查 分包的原则? 类设计的步骤?讲授内容 系统元素设计 子系统设计 分包设计 类对象设计 面向对象设计示例 关联关系的具体化 网上购物系统的架构设
3、计 网上购物系统的类对象设计4.系统元素设计系统元素设计 系统元素设计的重点在于如何实现相关的系统元素设计的重点在于如何实现相关的类、关联、属性与操作,定义实现时所需类、关联、属性与操作,定义实现时所需的对象的算法与数据结构。的对象的算法与数据结构。子系统设计子系统设计 分包设计分包设计 类类/ /对象设计对象设计4.系统元素设计系统元素设计-子系统设计子系统设计 将子系统行为分配给子系统元素将子系统行为分配给子系统元素 子系统的外部行为是通过它所实现的接口来定义的。子系统的设计元素,其协作关系可用说明子系统行为的时序图来描述。 描述子系统元素描述子系统元素 可以创建一个或多个类图来表示子系统
4、包含的元素以及它们的关系。 说明子系统的依赖关系说明子系统的依赖关系当子系统包含的某个元素使用了另一个子系统中某个元素行为时,子系统间创建了依赖关系。课程目录子系统时序图 课程目录子系统内部类图 子系统间依赖关系 4.系统元素设计系统元素设计-分包设计分包设计 分包的分包的原则原则将边界类打包。2种策略。将功能相关的类打包。如果一个类的行为和结构的变化使得另一个类也必须相应地变化。从某个类开始,检查从系统中将该类删除所带来的影响。如果两个对象进行大量的消息交互。如果某个边界类的功能是显示一个特定的实体类。如果两个类与同一个参与者进行交互。如果两个类之间存在某些关系。一个类与创建其实例的类在功能
5、上相关。4.系统元素设计系统元素设计-分包设计分包设计 描述描述包之间的依赖包之间的依赖关系关系 通常在一个高层次的视图上显示包依赖关系。要杜绝包之间相互依赖对方。 包之间的耦合包之间的耦合关系关系消除包之间相互依赖。复用价值较高的包不要依赖复用价值较低的包。依赖关系不应跨层。不要让包直接依赖包含实现子系统接口的系统元素的包。依赖接口。University Artifacts包内元素的类图 4.系统元素设计系统元素设计-类/对象设计 类/对象设计主要考虑以下3个问题:如何实现分析模型中的边界类、实体类和控制类?在解决类设计中实现问题时如何应用设计模式?系统架构中的全局性决定如何在类设计中体现?
6、1.设计初始类 设计边界类。一般情况下,代表到其它系统接口的边界类被建模为子系统。 设计实体类。出于性能的考虑,强制重组某些实体类。 设计控制类。只有当控制类封装了重要的控制流程行为,才真正需要将控制类转变为设计类。设计控制类时至少需要考虑以下问题:复杂性变更的可能性分布和性能事务管理类的重新设计 4.系统元素设计系统元素设计-类/对象设计2.定义操作 研究每个类的职责,为职责确定操作。 增加一些典型的操作。命名和说明操作。操作名、返回类型、简短说明、参数、参数的简短说明。定义操作可见性。公有、保护、私有。定义操作的作用域。3.定义方法 方法是对操作的实现。4.定义状态。要确定一个类是否具有重
7、要的动态行为,可以通过以下两种方法:检查类和属性。对象的行为表现不同,则其状态也不同。检查类和关联。重数中带0的关联,这个是可选的。关联存在和不存在时类的实例是不表现相同,如果不同,则可能有多种状态。定义操作的类图 开设课程类的状态图 4.系统元素设计系统元素设计-类/对象设计5.定义属性 属性名、类型、初始值、可见性。6.定义依赖关系 对象a可以通过4种方式引用对象b。全局。 b是可以在全局范围内直接引用的对象。参数。 b作为a的某一项操作的参数或返回值。局部。 b在a的某一操作中充当临时变量。域。 b在a的数据成员。 前3种具有暂时性,类A对B的依赖关系。后一种是关联关系及其强化形式。标明
8、属性的类图 定义依赖关系的类图 4.系统元素设计系统元素设计-类/对象设计7.定义关联关系聚集还是组合属性还是组合关联的方向关联类。复杂的关联可以用类来表示。确定重数8.定义泛化关系在父类和子类之间定义泛化关系。9.处理非功能需求课堂互动 子系统和包的关系或区别。5.面向对象设计示例面向对象设计示例 关联关系具体化聚集关系组合关系、依赖关系网上购物系统的架构设计网上购物系统的架构设计 可采用3层架构来实现。数据访问层业务逻辑层表现层 架构模式在表现层主要用的设计模式是MVC。网上购物系统的类网上购物系统的类/对象设计对象设计注册网上购物系统的类网上购物系统的类/对象设计对象设计维护个人信息网上
9、购物系统的类网上购物系统的类/对象设计对象设计维护购物车网上购物系统的类网上购物系统的类/对象设计对象设计生成订单网上购物系统的类网上购物系统的类/对象设计对象设计管理订单课堂互动 P164:9题,系统选定图书馆管理系统进行面向对象设计。小结 软件设计的任务,是将分析阶段建立的分析模型转变为软件设计模型,确保最终能平滑地过渡到程序代码。 OOD的软件设计也分为两个层次:系统架构设计和系统元素设计。 系统架构设计是指确定系统主要组成元素的组织或结构,组成元素之间通过接口进行交互,以及其它全局性决策;系统元素设计是对每一个设计元素进行详细的设计,系统元素包括组成系统的类、子系统与接口、分包等。课外任务 作业P164:9题,系统选定图书馆管理系统,完成面向对象设计。(完善)从教学群下载“软件工程课程学案.doc”文件完成第第1111次课次课学案内容并填写“软件工程课程前馈表”于本周二17:00前由各组组长收集(每组集成到一个文件中)通过QQ群及时反馈。 1951年出生于上海 ,45岁只身一人独闯中关村办公
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 有机化学 有机上期末试卷(含答案)学习资料
- 2025风力发电项目合同
- 山东省东营市利津县2024-2025学年下学期期中考试七年级道德与法治试题及答案 山东省东营市利津县2024-2025学年下学期期中考试七年级道德与法治试题
- 2025粮食收购销售合同协议书范本
- 2025办公室改造工程(承包)合同承包电路改造合同
- 2025综合装修合同范本
- 2025劳动合同集锦范文
- 2025烘焙技术合作协议合同
- 2025BT项目合同范本
- 2025年企业合同模板集锦
- (正式版)JTT 421-2024 港口固定式起重机安全要求
- 【中国信科-中信科移动】2023星地融合通信白皮书
- 脑电图判读异常脑电图
- 人体所需的七大营养素(卓越)
- 《小学生预防溺水安全教育班会》课件
- 传统园林技艺智慧树知到期末考试答案2024年
- 直播中的礼仪与形象塑造
- 2024年八年级数学下册期中检测卷【含答案】
- 老年人中医健康知识讲座总结
- 海南声茂羊和禽类半自动屠宰场项目环评报告
- 《民法典》合同编通则及司法解释培训课件
评论
0/150
提交评论