资源预览内容
第1页 / 共92页
第2页 / 共92页
第3页 / 共92页
第4页 / 共92页
第5页 / 共92页
第6页 / 共92页
第7页 / 共92页
第8页 / 共92页
第9页 / 共92页
第10页 / 共92页
亲,该文档总共92页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2013春季学期信息学院 教育技术 曾玲 ling-zengscau.edu.cn面向对象分析与设计第一章 面向对象方法概论12软件系统 开发方法传统开 发方法面向对 象方法直接写 程序结构化 分析法信息建 模法功能能 分解法数据流 法有限状 态机法 基于规 则系统E-R图人工 智能专家 系统抽象 客户委托信息 隐藏封装数据 抽象过程 抽象消息 通信泛化 继承分类代理动态 行为静态 行为行为 分析复杂性 控制包括包括包括包括 包括包括包括包括包括使用使用用于原则原则原则原则原则原则原则原则包括包括包括包括包括包括包括信息学院 教育技术 曾玲 ling-zengscau.edu.cnContents3内容1.问题提 出2.OO思想 与OO程序3.OO概念 与原则4. OO优点面向对象方法概论 Object Oriented MethodProblem of Software Dvpt信息学院 教育技术 曾玲 ling-zengscau.edu.cn1 11 1 传统开发方法中存在的问题传统开发方法中存在的问题二十世纪六十年代以前 软件系统:较小 ,相对简单 编程语言:十分简单(Fortran, Cobol等 ) 崇尚程序员的个人技能 代码:含GOTO语句,随意跳转 随着软件复杂性的增长 代码维护 无开发方法可言5信息学院 教育技术 曾玲 ling-zengscau.edu.cn1 1、功能分解法(、功能分解法(起于二十世纪七十年代起于二十世纪七十年代)功能分解法(function decomposition) 功能分解 功能+子功能 + 功能接口 以系统需要提供的功能为 中心来组织系统。 定义各种功能 把功能分解为子功能 同时定义功能之间的接口 对较大的子功能进一步分解 ,直到可给出明确的定义。 设计数据结构和算法。功能 功能 功能 系统 子功能子功能子功能子功能分解分解分解6信息学院 教育技术 曾玲 ling-zengscau.edu.cnC语言案例 “程序设计的实质是对确定的问题选择一种 好的结构,加上设计一种好的算法。” 严蔚敏. 数据结构 案例: 1.0 学生成绩信息管理.C 1.1.1 prog1.c 与1.1.2 prog2.c7信息学院 教育技术 曾玲 ling-zengscau.edu.cn8功能 模块功能 模块功能 模块功能 模块功能 模块功能 模块功能 模块功能 模块功能 模块功能 模块得到的系统模型: 由模块及其接口构成信息学院 教育技术 曾玲 ling-zengscau.edu.cn优点计算机应用普及 特定的用户按自己的需要,对软件系统做出了功能 性的要求,有据可寻。 在相当大的程度上,解决了以前存在的问题 特别是与模块化编程结合使用,效率更高 删除GOTO语句,与模块化编程相结合 使得软件能得到有效的维护 适用于功能稳定的应用领域 如某些科学计算 直接地反映用户的需求 工作很容易开始9信息学院 教育技术 曾玲 ling-zengscau.edu.cn缺点结构化分析和设计注重处理功能 对所处理的数据放于次要的位置 对于众多的领域而言,其功能是易变的 如企业管理和商业管理。 对需求变化的适应能力很差。 局部的错误和局部的修改很容易产生全局 性的影响。 开头容易,结束难。 不能直接地映射问题域 很难检验分析结果的正确性。10信息学院 教育技术 曾玲 ling-zengscau.edu.cn2、数据流法(结构化分析法,二十世纪七十年代)数据流法 数据流数据处理(加工)数据存储 端点处理说明数据字典 基本策略 跟踪数据流,问题域被映射为数据流图(DFD) 用处理说明和数据字典进行详细说明。11数据流加工数据存储端点处理说明 数据词典 经过初步的需求分析,得到系统功能要求: 1、监视病员的病症(血压、体温、脉搏等)。 2、定时更新病历。 3、病员出现异常情况时报警。 4、随机地产生某一病员的病情报告。数据流图案例:医院病 房监护系统产生 病情报告监视病情更新病历数据存储数据源点 或终点加 工加工名数据流数据流名文件名实体名箭 头圆或椭圆单或双杠矩形框TAB*C TAB * CTAB+CTAB + CTABC +TABC+* 与+ 或互斥+辅助图例:四种基本图形符号:数据流图的图符系统功能要求:1、监视病员的病症(血压、体温、脉搏等)2、定时更新病历3、病员出现异常情况时报警。4、随机地产生某一病员的病情报告。顶层 :顶层设计:案例:医院病房监护系统计算超过极限值否病员数据超过极限值报警开解信号产生 报警信息病员极限格式化病员数据体温血压、体温、脉搏生理信号 极限值时间脉搏血压日期时钟格式化病员数据3.13.23.33.4第二层:加工“中央监视”分解图 2.15第一层格式化病员数据生理信号 极限值病员护士护士中央监视病员日志病症信号要求报告病症报告报警局部监视生成报告病员极限更新日志病员 数据1324日志数据图 2.16医院病房监护系统分层医院病房监护系统分层DFDDFD图图信息学院 教育技术 曾玲 ling-zengscau.edu.cn数据流法业务模型优缺点优点: 有严格的法则,逐步求精,较强调研究问题域 。 缺点: 在概念上,不能直接地映射到问题域中的事物 对需求变化的适应能力较弱。 大系统数据流和加工的数量太多,引起分析文 档的膨胀。 系统复杂时,难以检验分析的正确性。 分析与设计的概念和表示法不一致,其转换规 则也不严格。16信息学院 教育技术 曾玲 ling-zengscau.edu.cn小结功能分解法和数据流法 适用于功能稳定的应用领域,如某些科学计算 已经开发了很多软件系统。 对于功能易变的众多领域,如企业管理和商业管理领域 容易导致模块的低内聚和模块间的高耦合 使得统缺乏灵活性和可维护性。 由于当时团队的开发与管理方法不足 20世纪70年代,软件危机情况更加严重。 解决软件危机方法 对开发技术进行了一定的改进 对编程语言进行了革新 如产生了用于软件开发的4GL、CASE工具、原型技术和代码生成 器 这些努力取得了一定的成就,但没有从根本上解决问题 。 17信息学院 教育技术 曾玲 ling-zengscau.edu.cn3、基于数据的方法(二十世纪八十年代)实体-联系图 用实体的数据集合作为构造块,以数据结构为中心。 信念 数据是“企业应用”中最稳定的部分 背景关系数据库有一个极好的数学基础 大多数公司使用数据建模方法开发软件。 结构化的方法实际上能够帮助开发者处理数据 但数据建模方法却不能帮助开发者管理功能。18信息学院 教育技术 曾玲 ling-zengscau.edu.cn信息建模法(information modeling)信息建模 实体(对象)属性关系父类型 子类型关联对象由实体-联系法(E-R方法)发展而来。 与数据库设计有很深的渊源。 核心概念是实体和联系: 实体描述问题域的事物,含有属性; 联系描述事物之间在数据方面的关系,也可以带有 属性。 实体称作对象 使用类型和子类型的概念,作为实体(对象)的抽 象描述。19信息学院 教育技术 曾玲 ling-zengscau.edu.cn实体(对象)属性联系父类型/子类型关联对象跟踪数据流,从而发现数据 流和加工。强调对信息实体建模,而不是对象建模。对象只有属性,而无操作。父类与子类之间也只有属性继承。没采用消息通讯。1 1信息学院 教育技术 曾玲 ling-zengscau.edu.cn4、有限状态机方法 基于现实的行为视图 状态系统的构造块 所操作的数据独立于状态 基于系统状态的处理 这一方法没有说到数据管理。21预订归档使用确认等待机票初 始状态信息学院 教育技术 曾玲 ling-zengscau.edu.cn5、基于规则的系统计算机是执行一套规则的推理机(ifthen 语句)。 基于人工智能系统 没有帮助我们处理数据 不支持过程概念 如 prolog, list语言 22信息学院 教育技术 曾玲 ling-zengscau.edu.cn传统开发方法总结传统开发方法总结上述方法都仅基于一个角度看待系统 对系统的其它视图建模方面的能力很弱。 对OO产生都做出了一定的贡献. 23信息学院 教育技术 曾玲 ling-zengscau.edu.cnContents24内容1.问题提 出2.OO思想 与OO程序3.OO概念 与原则4. OOD优 点面向对象方法概论 Object Oriented MethodBasic Idea of OO信息学院 教育技术 曾玲 ling-zengscau.edu.cn12 面向对象的基本思想功能分解法 集中于将功能作为系统的构造块 数据分析方法(实体联系模型) 构造块是实体 忽略了满足系统需求的功能 功能分解法与数据分析方法存在问题: 没有处理对动态行为的捕获 忽略了声明性语义(规则)以及例外处理机制 八十年代中后期:出现较为完善的面向对象分 析和设计方法 从多个视角同时捕获系统功能、行为、实体26信息学院 教育技术 曾玲 ling-zengscau.edu.cn一切都是对象27例题:编写一个开发票程序,需要对发票的名细栏进行计算。编号名称规格单位数量单价金额合计非面向对象思路:定义数据结构定义函数面向对象思路:对象一组属性操作:发票总计信息学院 教育技术 曾玲 ling-zengscau.edu.cn什么是面向对象28从程序设计方法的角度看,面向对象是一种新的程 序设计范型(paradigm),其基本思想是使用对象、 类、继承、封装、聚合、关联、消息、多态性等基 本概念来进行程序设计。从方法学的角度看,面向对象方法是一种运用对象 、类、继承、封装、聚合、关联、消息、多态性等 概念来构造系统的软件开发方法。信息学院 教育技术 曾玲 ling-zengscau.edu.cn面向对象的基本思想直接以问题域(现实世界)中的事物为中 心来思考问题、认识问题 根据这些事物的本质特征,把它们抽象地表示 为系统中的对象,作为系统的基本构成单位。 使系统直接映射问题域,保持问题域中事物及 其相互关系的本来面貌(对象) 用对象的属性表示事物的性质; (属性) 用对象的操作表示事物的行为。(操作) 对象的属性与操作结合为一体 对外屏蔽其内部细节。(对象的封装)29信息学院 教育技术 曾玲 ling-zengscau.edu.cn面向对象的基本思想(Cont.)对事物进行分类。 把具有相同属性和相同操作的对象归为一类,类是这些对象 的抽象描述,每个对象是它的类的一个实例。 (分类) 复杂的对象可以用简单的对象作为其构成部分。(聚合 ) 通过在不同程度上运用抽象的原则,可以得到较一般的类 和较特殊的类。 特殊类继承一般类的属性与操作,从而简化系统的构造过程 及其文档。(继承) 类具有封闭性,把内部的属性和操作隐藏起来 只有公共的操作对外是可见的。 (类的封闭性) 对象之间通过消息进行通讯 实现对象之间的动态联系。 (消息) 通过关联表达类(一组对象)之间的静态关系。(关联)30信息学院 教育技术 曾玲 ling-zengscau.edu.cn客观世界对象对象对象对象对象对象对象对象对象对象对象名 属性 操作 类类类类分类分类类 继承继承类 类对象聚合聚合抽象抽象客观事物及其客观事物及其 间的联系
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号