《软件工程》第10课-面向对象设计2_第1页
《软件工程》第10课-面向对象设计2_第2页
《软件工程》第10课-面向对象设计2_第3页
《软件工程》第10课-面向对象设计2_第4页
《软件工程》第10课-面向对象设计2_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第10课面向对象设计2,知识回顾,软件设计概述概念、任务、模块化设计面向对象设计建模模型、任务、模式的应用系统架构设计系统高层结构设计确定设计元素任务管理策略、分布式实现机制(可略)数据存储设计人机交互设计,前馈及作业总结,前馈作业大同小异。,问题解答,分包原则除了按照边界类和功能相关的类打包,还可以按照什么原则分包呢?崔健炜分包的目的是使设计元素更有秩序,那怎么来衡量这个包是否分的恰到好处。使设计呈现出更明显的高内聚、低耦合的特征。杨莹通常在一个高层次的视图上显示包依赖关系使开发人员在高层次的视图上度量系统的复杂度,但是又要杜绝包之间相互依赖的关系以免其中一部分进行修改而导致很难对其他部分所受的影响做出正确估计,这是不是互相矛盾?刘磊,前馈检查,分包的原则?类设计的步骤?,讲授内容,系统元素设计子系统设计分包设计类对象设计面向对象设计示例关联关系的具体化网上购物系统的架构设计网上购物系统的类对象设计,4.系统元素设计,系统元素设计的重点在于如何实现相关的类、关联、属性与操作,定义实现时所需的对象的算法与数据结构。子系统设计分包设计类/对象设计,4.系统元素设计-子系统设计,将子系统行为分配给子系统元素子系统的外部行为是通过它所实现的接口来定义的。子系统的设计元素,其协作关系可用说明子系统行为的时序图来描述。描述子系统元素可以创建一个或多个类图来表示子系统包含的元素以及它们的关系。说明子系统的依赖关系当子系统包含的某个元素使用了另一个子系统中某个元素行为时,子系统间创建了依赖关系。,课程目录子系统时序图,课程目录子系统内部类图,子系统间依赖关系,4.系统元素设计-分包设计,分包的原则将边界类打包。2种策略。将功能相关的类打包。如果一个类的行为和结构的变化使得另一个类也必须相应地变化。从某个类开始,检查从系统中将该类删除所带来的影响。如果两个对象进行大量的消息交互。如果某个边界类的功能是显示一个特定的实体类。如果两个类与同一个参与者进行交互。如果两个类之间存在某些关系。一个类与创建其实例的类在功能上相关。,4.系统元素设计-分包设计,描述包之间的依赖关系通常在一个高层次的视图上显示包依赖关系。要杜绝包之间相互依赖对方。包之间的耦合关系消除包之间相互依赖。复用价值较高的包不要依赖复用价值较低的包。依赖关系不应跨层。不要让包直接依赖包含实现子系统接口的系统元素的包。依赖接口。,UniversityArtifacts包内元素的类图,4.系统元素设计-类/对象设计,类/对象设计主要考虑以下3个问题:如何实现分析模型中的边界类、实体类和控制类?在解决类设计中实现问题时如何应用设计模式?系统架构中的全局性决定如何在类设计中体现?1.设计初始类设计边界类。一般情况下,代表到其它系统接口的边界类被建模为子系统。设计实体类。出于性能的考虑,强制重组某些实体类。设计控制类。只有当控制类封装了重要的控制流程行为,才真正需要将控制类转变为设计类。设计控制类时至少需要考虑以下问题:复杂性变更的可能性分布和性能事务管理,类的重新设计,4.系统元素设计-类/对象设计,2.定义操作研究每个类的职责,为职责确定操作。增加一些典型的操作。命名和说明操作。操作名、返回类型、简短说明、参数、参数的简短说明。定义操作可见性。公有、保护、私有。定义操作的作用域。3.定义方法方法是对操作的实现。4.定义状态。要确定一个类是否具有重要的动态行为,可以通过以下两种方法:检查类和属性。对象的行为表现不同,则其状态也不同。检查类和关联。重数中带0的关联,这个是可选的。关联存在和不存在时类的实例是不表现相同,如果不同,则可能有多种状态。,定义操作的类图,开设课程类的状态图,4.系统元素设计-类/对象设计,5.定义属性属性名、类型、初始值、可见性。6.定义依赖关系对象a可以通过4种方式引用对象b。全局。b是可以在全局范围内直接引用的对象。参数。b作为a的某一项操作的参数或返回值。局部。b在a的某一操作中充当临时变量。域。b在a的数据成员。前3种具有暂时性,类A对B的依赖关系。后一种是关联关系及其强化形式。,标明属性的类图,定义依赖关系的类图,4.系统元素设计-类/对象设计,7.定义关联关系聚集还是组合属性还是组合关联的方向关联类。复杂的关联可以用类来表示。确定重数8.定义泛化关系在父类和子类之间定义泛化关系。9.处理非功能需求,课堂互动,子系统和包的关系或区别。,5.面向对象设计示例,关联关系具体化,聚集关系,组合关系、依赖关系,网上购物系统的架构设计,可采用3层架构来实现。数据访问层业务逻辑层表现层架构模式在表现层主要用的设计模式是MVC。,网上购物系统的类/对象设计注册,网上购物系统的类/对象设计维护个人信息,网上购物系统的类/对象设计维护购物车,网上购物系统的类/对象设计生成订单,网上购物系统的类/对象设计管理订单,课堂互动,P164:9题,系统选定图书馆管理系统进行面向对象设计。,小结,软件设计的任务,是将分析阶段建立的分析模型转变为软件设计模型,确保最终能平滑地过渡到程序代码。OOD的软件设计也分为两个层次:系统架构设计和系统元素设计。系统架构设计是指确定系统主要组成元素的组织或结构,组成元素之间通过接口进行交互,以及其它全局性决策;系统元素设计是对每一个设计元素进行详细的设计,系统元素包括组成系统的类、子系统与接口、分包等。,课外任务,作业P164:9题,系统选定图书馆管理系统,完成面向对象设计。(完善)从教学群下载“软件工程课程学案.doc”文件完成第11次课学案内容并填写“软件工程课程前馈表”于本周二17:00前由各组组长收集(每组集成到一个文件中)通过QQ群及时反馈。,1951年出生于上海,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论