电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象分析与设计01

86页
  • 卖家[上传人]:206****923
  • 文档编号:88914720
  • 上传时间:2019-05-13
  • 文档格式:PPT
  • 文档大小:1.62MB
  • / 86 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、面向对象分析设计,主讲人:冯新扬,第1章 上升到面向对象,An Approach to the Object Orientation,-3-,内容安排,课程介绍 第一个案例 对象技术 对象和类 对象技术相关原则 上升到面向对象,-4-,课程目标,三大目标: OO:建立对象的思维方式,对面向对象思想和理论有进一步的理解 UML:能够熟练地使用UML表达面向对象的设计思想 Model:运用对象技术的一般原则和模式进行应用系统的分析和设计建模,-5-,课程目标(续),三大目标之间的关系 Model:建模是最终目的 OO:面向对象技术是一种建模理论 UML:统一建模语言是一种体现OO的建模语言,是将OO理论转化为实践的工具,-6-,关于本课程,本课程是软件工程类专业课程,侧重于工程实践能力的培养,强调分析和设计技能,不关注文档、过程、规范等,重点在建模方法的应用 过程驱动:围绕分析和设计过程,关注各阶段建模技术的应用 案例驱动:围绕具体案例,讲解面向对象分析和设计的思维方式和解决问题的方法 课程重点不是理论或知识,而是通过实践建立对象思维方式,并培养运用UML来表达这种思维方式的技能,从而完成

      2、面向对象分析和设计 通过课外阅读、作业和实践来弥补课堂不足 不考概念,不需死记硬背,在实践中掌握相关理论和方法,-7-,为什么选择本课程?,需要理由吗? 我们从事软件行业 面向对象是最主流的软件开发思想 UML是最主流的建模方法,UML,OOAD,软件工程师的“饭碗”,对于今天的软件开发者来说,UML是他们的面包和黄油,-8-,本课程适合我?,基础 知识储备:软件工程、面向对象程序设计 实践储备:了解工程项目的特点,最好有实际工程项目开发背景 定位 从事软件相关行业工作:分析、设计、编码、测试或管理、维护工作,-9-,课程安排,1 基础(3): 上升到面向对象 2 基础(3) : 可视化建模技术 3 起源(2) : 业务建模 4 需求(4) : 用例建模 5 分析(3) : 用例分析,6 设计基础(3) : 面向对象设计原则 7 设计基础(3) : 面向对象设计模式 8 设计(3) : 构架设计 9 设计(3) : 构件设计 10 实现&展望(3) : 从模型到代码 模型技术的发展,-10-,学习路线图,参考资料,UML2面向对象的分析与设计,清华大学出版社,2013.4 Applyi

      3、ng UML and Patterns - An Introduction to Object-Oriented Analysis and Design UML和模式应用-面向对象分析与设计导论 Object-Oriented Analysis and Design with Applications (3rd) 面向对象分析与设计(第3版),UML创始人Grady Booch的代表作 The Unified Modeling Language User Guide(UML用户指南,第二版) Grady Booch, James Rumbaugh, Ivar Jacobson,-11-,-12-,内容安排,课程介绍 第一个案例 对象技术 对象和类 对象技术相关原则 上升到面向对象,-13-,素数问题,素数的定义: 除了1与本身之外,不能被其他正整数整除的数,叫作素数,也叫质数,按照习惯规定,1 不算素数,最小的素数是 2,其余的是 3、5、7、11、13、17、19等等,由定义判断素数 对于数 n ,从i=2,3,4,5到 n-1 判断 n 能否被 i 整除,如果全部不能整除,则 n

      4、是素数,只要有一个能除尽,则 n 不是素数,为了压缩循环次数,可将判断范围从 2 n-1 改为 2 sqrt(n),-14-,筛选法求素数序列,筛选法:生成 2 i n 的素数序列,设n=50,筛掉2的倍数:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ,筛掉3的倍数:2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 ,筛掉5的倍数:2 3 5 7 11 13 17 19 23 25 29 31 35 37 41 ,筛掉7的倍数:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 49,留下素数序列:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47,-15-,思考?,用结构化思维解决上述问题 用对象思维解决上述问题 将解决思路用合适的方式记录下来 思考: 结构化思维与对象化思维有什么本质的不同?体现了怎样的思维差异?对象思想有何优势? 如何表达设计思想:代码?图形?,-16-,结构化实现,/PrimerNumber.c main() int *sieve,n;

      5、int iCounter=2, iMax, i; printf(“Please input max number:“); scanf(“%d“, ,-17-,结构化设计,-18-,结构化小结,通过流程图(结构化建模)可以更清楚表达设计思想 针对过程的抽象 过程(函数)是系统的核心,通过过程实现系统功能 数据是静态的,由过程来控制对数据的访问 面向对象的方法如何解决呢?,-19-,Java实现-是对象思维吗?,import java.lang.Math; public class PrimerNumber public static void main(String args) int n=50; int sieve=new intn-1; int iCounter=2, iMax, i; for(i=0;in-1;i+) sievei=i+2; iMax=(int)Math.sqrt(n); while(iCounter=iMax) for (i=2*iCounter-2; in-1; i+=iCounter) sievei=0; iCounter+; for(i=0; in-1; i

      6、+) if (sievei!=0) System.out.println(sievei); ,-20-,用对象思维解决问题?,筛选法:生成 2 i n 的整数序列,设n=50,筛掉2的倍数:2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ,筛掉3的倍数:2 3 5 7 9 11 13 15 17 19 21 23 25 27 29 ,筛掉5的倍数:2 3 5 7 11 13 17 19 23 25 29 31 35 37 41 ,筛掉7的倍数:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 49,留下素数序列:2 3 5 7 11 13 17 19 23 29 31 37 41 43 47,筛子:存储源数据,过滤器:表明当前过滤因子,计数器:记录当前正在筛选的数据,什么是对象?对象在哪?,-21-,这才是对象思维!,抽象基类,为程序提供多态,-22-,面向对象的编程C+语法,class Item public: Item* source; Item (Item* src) source=src; virtual int

      7、out() return 0; ;,class Counter: public Item int value; public: int out() return value+; Counter(int v):Item(0)value=v; ;,-23-,面向对象的编程-过滤器,class Filter:public Item int factor; public: int out() while(1) int n=source-out(); if (n%factor) return n; Filter(Item *src, int f):Item(src) factor=f; ;,-24-,面向对象的编程-筛子,class Sieve: public Item public: int out() int n=source-out(); source= new Filter(source, n); return n; Sieve(Item *src):Item(src) ;,-25-,验证设计方案,void main() Counter c(2); Sieve s( ,关键代码只有一行,

      8、 筛子自己知道如何找出素数,-26-,对象方法小结,通过UML类图(面向对象建模)可以更清楚表达设计思想,并为代码实现提供框架 针对数据的抽象:类 类拥有自己的数据和行为,能够完成自身的工作职责 过程是类的组成部分,为类提供行为 通过类的对象之间的协作完成系统功能,-27-,对象技术的思考,对象思维具有更大的灵活性,更好的模块化,可以进行更大规模的设计 面向对象设计和开发的难度更大,面临着对象识别、职责分配、多态抽象等一系列问题 学习更多知识和技术,并掌握一系列面向对象的设计原则和模式 图形化工具(UML)有助于表达和交流设计思想,并简化实现的过程,-28-,总结:结构化VS面向对象,结构化思维用过程刻画数据间关系 对象思维直接用类表达数据间关系 结构化中,数据是死的,全部依赖算法操作 对象思维中,数据是活的,“她”知道自己的信息(属性),并能完成自己的工作(操作) 结构化思维更像是一个人在解决所有问题 对象思维更像是一个团队的分工协作,-29-,面向对象 VS 结构化-1,扬弃,不是否定,-30-,面向对象 VS 结构化-2,(程序)实现角度,-31-,面向对象 VS 结构化-3,-

      9、32-,内容安排,从结构化到面向对象 课程介绍 对象技术 对象和类 对象技术相关原则 上升到面向对象,-33-,对象技术,是一种看待计算机软件系统的观点 是一种系统分析和设计的思想 是一种编程方法 是一组设计原则和模式 是实践者的日常工作 是吹鼓手、骗子和市场人员口中的“万灵丹”,-34-,对象技术,对象技术 是一系列指导软件构造的原则(如抽象、封装、多态等) 并通过语言、数据库和其它工具来支持这些原则,-35-,对象技术的发展历史,Simula基本思想,1967,1972,Smalltalk实用化,C+ 商业化,1980s,1995,Java 编程方法的成熟,UML 统一方法学,1997,2011+,构件、 服务、 云计算?,-36-,对象技术优势-1,沟通 顺应人类思维习惯,让软件开发人员在解空间中直接模拟问题空间中的对象及其行为,PUSH EBX MOV EBX,EDX MOV EDX,EAX SHR EDX,16 DIV BX,AHare.Run; ALion.Catch(AHare); ALion.Kill(AHare); AHare.Dead; ALion.Eat; ALion.Happy;,在计算机中模拟现实世界的事和物,-37-,对象技术利益-2,稳定 较小的需求变化不会导致系统结构大的改变 当需求变化时,功能:最易变 数据:较易变 对象:较稳定,稳定性增加,用较稳定把不稳定的包起来,-38-,对象技术利益-3,复用 代码重用:类库、框架等重用机制 能提高质量,减少由于编制新的系统代码而产生的成本 通过继承、关联、封装等手段,软件开发组越大,组中每个成员的生产率就越低 -Philippe Kahn, Borland公司创始人,构造大型软件不能靠堆人,-39-,内容安排,从结构化到面向对象 课程介绍 对象技术 对象和类 对象技术相关原则 上升到面向对象,-40-,对象(Object),对象(Object)是一个实体、一件事、一个名词,可以获得的某种东西,可以想象有自己标识的任何事物 可以是物理存在的 也可能是概念中的 或软件中的实体,-4

      《面向对象分析与设计01》由会员206****923分享,可在线阅读,更多相关《面向对象分析与设计01》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.