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

下载本文档

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

文档简介

2026年3月8日面向对象分析与设计大数据技术BIGDATA2026年3月8日章节内容1面向对象分析与设计概念3面向对象设计5面向对象设计方法2面向对象分析过程4面向对象设计原理6案例实践2026年3月8日面向对象分析与设计面向对象分析与设计概念2026年3月8日1.面向对象分析与设计概念1.1核心定义提炼用户需求,确定系统“做什么”的过程,核心是从现实场景中提取核心对象与交互逻辑。面向对象分析(OOA)将OOA模型转化为可实现的技术方案,解决“怎么做”的问题,目标是提升软件生产效率、质量与可维护性。面向对象设计(OOD)2026年3月8日面向对象分析与设计面向对象分析过程2026年3月8日2.面向对象分析过程2.1六个阶段分析确定问题域(明确“分析边界”)确定类与对象(筛选“核心实体”)确定关联关系(梳理“对象交互”)确定属性(完善“对象细节”)定义服务(完善“对象细节”)确定附加系统约束问题范围功能需求性能需求应用环境假设条件找出候选的类与对象筛选出正确的类与对象进下一完善初步确定关联筛选进下一完善政策法规组织约束资源约束安全约束确定对象状态画出状态转换图完成服务分类建立对象通信机制分析选择OOA需按“问题域→类与对象→关联→属性/服务→约束”依次推进,核心是“从业务需求中抽象出无技术依赖的对象模型”,为后续OOD奠定基础。2026年3月8日面向对象分析与设计面向对象设计2026年3月8日3.面向对象设计3.1.设计的层次面向对象设计是面向对象方法在软件设计阶段应用与扩展的结果,可以将OOA中所创建的转换为设计模型,即可行的技术方案,解决如何做的问题。其主要目的是提高生产效率、质量和可维护性。系统设计(

拆分“高层结构”)核心任务:确定实现策略,划分子系统子系统划分原则:高内聚、低耦合子系统组织方式:水平层次:按“业务层→数据层”划分垂直块:按“功能模块”划分对象设计(细化“技术方案”)核心任务:确定解空间中的对象结构、外部接口与数据结构对象层次结构:通过继承/组合优化类设计接口设计原则:单一职责:一个接口仅对应一类功接口隔离:避免“胖接口”设计优化(平衡“效率与可维护性”)优化手段:增加冗余数据优化算法用组合替代继承,避免继续层级过深接口设计原则:优先保证“可维护性”,再提升“效率”;优化需基于实际性能测试2026年3月8日面向对象分析与设计面向对象设计原理2026年3月8日4.面向对象设计原理4.1十大核心原理:定义+场景+目的原理核心定义(含标准引用)应用场景示例核心目的抽象提取对象核心特征,忽略无关细节定义Product抽象类,包含id、name、price属性,让Electronics(电子产品)、Clothing(服饰)类继承降低复杂度,聚焦核心逻辑信息隐藏(封装)通过访问控制隐藏内部实现,仅暴露必要接口User类用privateStringpasswordHash隐藏密码哈希,通过getPasswordHash()方法暴露降低耦合,保护数据安全模块化将系统拆分为高内聚、低耦合的独立模块电商系统拆分为“用户管理、商品管理、订单管理”三个模块便于分工开发、测试与维护模块独立模块间依赖最小化,通过接口交互电商“订单模块”调用“支付模块”的createPayment()接口完成支付,而非直接操作支付模块数据减少模块间影响,提升稳定性逐步求精从抽象到具体,分阶段完善设计先定义Order类(包含orderId、userId、items核心属性),再补充calculateTotalPrice()方法(计算订单总价)降低设计难度,避免一步到位风险可重用性类/接口可在多场景复用开发StringUtils工具类,提供字符串拼接、格式化、校验等方法,供用户注册、订单备注等场景复用减少重复开发,提升效率可扩展性新增功能时不修改原有代码(基于“开闭原则”)新增“折扣券”功能时,DiscountCoupon类继承Coupon类,不修改原有Coupon类应对需求变化,降低维护成本单一职责原则一个类仅承担一种职责(SOLID原则之一)拆分“OrderService”为“OrderCreateService(订单创建)”和“OrderPaymentService(订单支付)”降低类复杂度,提升可维护性里氏替换原则子类可完全替代父类且不破坏原有逻辑(SOLID原则之一)Circle类继承Shape类后,calculateArea()方法(计算面积)逻辑与Shape类的设计预期完全兼容保证继承体系的健壮性依赖倒置原则高层与低层模块均依赖抽象(SOLID原则之一)电商业务层依赖“PaymentInterface”接口,而非直接依赖“AlipayPayment”(支付宝支付)具体实现类解耦模块依赖,提升灵活性2026年3月8日4.面向对象设计原理4.2原理间的逻辑关联基础层抽象信息隐藏(封装)里氏替换原则结构层目标层支撑结构设计支撑工程目标模块化单一职责原则模块独立封装基础继承保障模块内聚合模块间解耦依赖倒置原则依赖抽象逐步求精

可重用性

可扩展性

可集成性分阶段完善复用降本扩展提效2026年3月8日面向对象分析与设计面向对象设计方法2026年3月8日5.面向对象设计方法5.1传统方法Booch方法Coda/Yourdon方法对象模型技术法Booch方法将开发模型分为:静态模型和动态模型;静态模型包括逻辑模型和物理模型,描述系统的构成和结构,动态模型包括状态图和时序图。基本模型包括:类图、对象图、状态图、时序图、模块图、进程图。该方法主要由面向对象分析和面向对象设计构成,特别强调OOA和OOD采用完全一致的概念和表示法。OOA有5个层次:类和对象认定,结构认定,主题认定,定义属性,定义服务;OOD有4类活动:设计问题域部件,设计人机交互部件,设计任务管理部件,设计数据管理部件。ObjectModelTechnology(OMT)主要包括三个模型:对象模型、动态模型和功能模型。对象模型动态模型功能模型三类模型的建立次序2026年3月8日5.面向对象设计方法5.2当前主流方法UML统一建模方法基于UML2.5规范,整合Booch、OMT等方法优势,通过多种图形覆盖OOA/OOD全流程:分析阶段:用例图(需求)、类图(对象)、时序图(交互);设计阶段:组件图(模块)、部署图(硬件架构);适用场景:绝大多数软件项目(电商、医疗、管理系统等),工具支撑:StarUML(开源)、Visio(Office集成)。敏捷OO设计核心思想:“迭代式设计,优先核心”,步骤如下:从“用户故事”提取核心对象(例:用户故事“买家下单”→核心对象“Order”“User”“Product”);快速设计最小可行模型,实现核心功能(如“下单生成订单”);在迭代中完善细节(如后续增加“订单”“取消”“退款”相关对象与服务);适用场景:需求快速变化的互联网项目(如社交APP、短视频平台)。2026年3月8日面向对象分析与设计实践案例2026年3月8日6.案例实践6.1图书管理系统-OOA分析(需求→对象)问题域:覆盖“借阅、归还、库存管理、超期处理”;核心类与对象:Reader(读者)、Book(图书)、BorrowRecord(借阅记录)、Librarian(管理员);关联关系:Reader-BorrowRecord(1:N)、Book-BorrowRecord(1:N);属性与服务:BorrowRecord属性:recordId、borrowDate、dueDate、returnDate;BorrowRecord服务:createRecord()(生成记录)、updateReturnDate()(更新归还日期);约束:借阅期限30天,超期按0.5元/天收费。2026年3月8日6.案例实践6.2图书管理系统-OOD设计(对象→方案)系统设计:拆分为3个子系统:用户管理子系统:处理Reader、Librarian的注册、登录;图书管理子系统:处理Book的新增、库存更新;借阅管理子系统:处理BorrowRecord的生成、超期计算;对象设计:抽象类User(含userId、name、login()),Reader、Librarian继承User;接口BorrowOperate:定义borrowBook()、returnBook()方法,由BorrowService实现;设计优化:缓存“热门图书”列表(Book类的getHotBooks()方法),减少数据库查询;超期计算算法:calcOverdueFee(dueDate,ret

温馨提示

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

最新文档

评论

0/150

提交评论