《结构化程序设计与面向对象程序设计.ppt》由会员分享,可在线阅读,更多相关《结构化程序设计与面向对象程序设计.ppt(39页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件建模技术中国水利水电出版社中国水利水电出版社高职高专计算机类专业“十二五”规划教材主编 曹静软件建模技术软件建模技术第一部分第一部分 基基 础础 篇篇1 第二部分 实 践 篇2第三部分第三部分 工工 具具 篇篇 3http:/ 结构化程序设计与面向对象程序设计结构化程序设计与面向对象程序设计 v2.1 概述概述 v2.2 结构化方法的基本原理构化方法的基本原理 2.2.1 结构化分析过程2.2.2 结构化分析工具 v2.3 面向面向对象方法学的基本概念和原象方法学的基本概念和原则 2.3.1 基本概念 2.3.2 主要原则 v2.4 面向面向对象方法与象方法与结构化方法比构化方法比较2.4
2、.1 实例 2.4.2 面向对象方法与结构化方法比较 2.4.3 两种方法的综合运用 v教学要求教学要求掌握:软件结构化分析方法中常用的方法及工具。理解:结构化设计及面向对象设计的思路及特点;在面向对象设计中如何运用结构化设计的方法及工具。了解:结构化分析过程;面向对象方法学的基本概念。第第2章章 结构化程序设计与面向对象程序设计结构化程序设计与面向对象程序设计2.1 概概 述述 v面向过程的方法面向过程的方法v面向对象的方法面向对象的方法20世纪60年代提出的结构化程序设计思想曾为解决“软件危机”立下过汗马功劳,它在一定程度上解决了软件的可靠性、可理解性、可维护性等问题。面向对象的程序设计思
3、想后来居上,在软件的模块化、可重用、可扩展性等方面体现出了强大的优势 2.2 结构化方法的基本原理结构化方法的基本原理 结构化程序设计主要观点是采用自顶向下、逐步求精的程序设计方法。使用三种基本控制结构构造程序,任何程序都可由顺序、选择、重复三种基本控制结构构造。详细描述处理过程常用三种工具:图形、表格和语言;使用的手段主要有数据流图、数据字典、层次方框图、结构化语言、判定表和判定树等。2.2 结构化方法的基本原理结构化方法的基本原理 结构化程序设计一般步骤是:分析业务流程及信息走向;画出数据流图;建立数据字典;提出系统的总体逻辑方案;细化数据流图;确定模块的接口;为每个模块确定采用的算法和数
4、据结构;根据E-R图设计数据库等。2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.1 结构化分析过程结构化分析过程 阶段拟解决的关键性问题工具手段交付成果问题定义要解决的问题是什么 可行性论证及软件计划有行得通的解决办法吗数据流图、数据字典、数据流程图、成本/效益分析可行性分析报告、多种解决方案、系统高层逻辑模型需求分析系统必须做什么数据流图、数据字典、算法描述需求规格说明书、系统逻辑模型总体设计概括地说,应该怎样做数据流图、系统流程图、成本/效益分析、系统结构图、层次方框图几种可能的解法详细设计具体怎样做数据流图、HIPO图模块及其接口设计、数据字典2.2 结构化方法的基本原理结
5、构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v数据流图数据流图 v数据字典数据字典 vE-R图图 vIPO图图 v层次图与层次图与HIPO图图v状态图状态图 v成本成本/效益分析效益分析 v程序流程图与盒图(程序流程图与盒图(N-S图)图)http:/ 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 1.数据流图(DFD图)描绘信息流和数据从输入移动到输出的过程中所经受的变换。基本符号处理处理数据存储数据存储外部实体外部实体数据流数据流2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v基本符
6、号的含义基本符号的含义矩形方框表示数据的源点或终点。是系统的外部实体。圆形表示变换数据的处理。它可以代表一系列程序、单个程序或者程序的一个模块。平行横线代表数据存储。数据存储并不等同于一个文件,它可以表示一个文件、文件的一部分、数据库的元素或记录的一部分等。数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v画数据流图的基本原则画数据流图的基本原则自顶向下逐层细化完善求精 2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具
7、结构化分析工具 具体步骤具体步骤:(1)绘顶层数据流图。找出对整个系统而言的输入、输出数据,确定外部实体,它们决定了系统与外界的接口。(2)为数据流命名,为加工命名。(3)检查核对。(4)核对无误后,进行分解,画处理的内部。在(2)至(4)步之间反复迭代,直到处理无法进一步分解为止。2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v书店借书系统的顶层数据流图书店借书系统的顶层数据流图2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v书店借书系统的第一次分解后的数据流图书店借书系统的第一次分解后的数据流图
8、2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v“借书借书”处理分解后的数据流图处理分解后的数据流图2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v书店借书系统的层次图书店借书系统的层次图2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 2数据字典数据字典是对所有与系统相关的数据元素的一个有组织的列表,精确、严格地定义各个数据元素,使得用户及开发人员对于输入、输出、存储和处理形成共同的理解例如:借阅制度表=读者类别+允许借阅册数+罚款规定+丢失图书罚款规定
9、 读者类别=金卡|银卡|铜卡 又如:预订请求=客人数据+住宿期限+客房类别 客人数据=客人姓名+地址+身份证号码+护照号码+支付方式 身份证号码=15十进制数字18 护照号码=字母+8十进制数字8 字母=AZ 十进制数字=09 2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 3E-R图(实体关系图)例如2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 4IPO图vIPO是输入、处理、输出的简称,IPO图能方便地描绘输入数据、数据的处理和输出数据的关系。http:/ 结构化方法的基本原理结构化方法的基本原理
10、 v2.2.2 结构化分析工具结构化分析工具 v主文件更新的IPO图2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 5层次图与HIPO图v层次图用来描绘软件的层次结构,图中的一个矩形框代表一个模块,方框间的连线表示调用关系。它适于在自顶向下设计软件的过程中使用,描述模块的划分。2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v书店借书系统的层次图2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v书店借书系统的H图2.2 结构化方法的基本原理结构化方法的基本原
11、理 v2.2.2 结构化分析工具结构化分析工具 6状态图(略)2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 7成本/效益分析v目的目的从经济角度分析开发一个特定的新系统是否划算,从而帮助客户组织的负责人正确地作出是否投资于这项开发工程的决定 2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 v实例实例2.2 结构化方法的基本原理结构化方法的基本原理 v2.2.2 结构化分析工具结构化分析工具 8程序流程图与盒图(N-S图)v是表达语句执行过程的主要工具是表达语句执行过程的主要工具 v基本符号:基本符号:
12、2.3 面向对象方法学的基本概念和原则面向对象方法学的基本概念和原则 v2.3.1 基本概念基本概念1对象(object)2类(class)3实例(instance)4消息(message)5方法(method)6属性(attribute)7封装(encapsulation)8继承(inheritance)9多态性(polymorphism)10重载(overloading)2.3 面向对象方法学的基本概念和原则面向对象方法学的基本概念和原则 v2.3.2 主要原则主要原则(1)抽象(2)分类(3)聚合(4)关联(5)消息通信(6)粒度控制(7)行为分析2.4 面向对象方法与结构化方法比较面向
13、对象方法与结构化方法比较 v2.4.1 实例实例 v结构化方法与面向对象的方法的共性2.4 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.1 实例实例 v实例“书店借书系统”的分析与设计(详见教材)2.4 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.1 实例实例 v(1)面向对象方法反复迭代完善需求。反复迭代完善需求。对已有的需求(参见附录对已有的需求(参见附录1)进行整理,列出需求列表。)进行整理,列出需求列表。与用户交流得到有效的需求列表。与用户交流得到有效的需求列表。画出初始用例模型,表达系统的主要功能及主要业务流程。画出初始用例模型,表达系
14、统的主要功能及主要业务流程。完善需求列表,完善用例完善需求列表,完善用例模型。模型。反复迭代进行逻辑设计。反复迭代进行逻辑设计。识别系统中的对象及其关系,画初始类模型。识别系统中的对象及其关系,画初始类模型。确定类的职责、属性和方法。确定类的职责、属性和方法。表示出主要业务过程的动态模型。表示出主要业务过程的动态模型。由动态模型反复映射,完善类模型。由动态模型反复映射,完善类模型。http:/ 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.1 实例实例 v面向对象方法(续)物理设计。物理设计。确定整个系统的拓扑结构(部署图)。确定整个系统的拓扑结构(部署图)。修订类模型。
15、修订类模型。相应修订动态模型。相应修订动态模型。完成反映程序模块的包图。完成反映程序模块的包图。完成反映程序软件构成的组件图。完成反映程序软件构成的组件图。设计界面,设计数据库。设计界面,设计数据库。2.4 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.1 实例实例 v(2)结构化方法。获取完整的需求。获取完整的需求。自顶向下、逐层分解,画出数据流图。自顶向下、逐层分解,画出数据流图。书写数据字典。书写数据字典。映射出系统的层次结构,进行系统结构(模块及其映射出系统的层次结构,进行系统结构(模块及其接口)设计。接口)设计。逐层细分,细化出每个处理。逐层细分,细化出每个处理
16、。设计界面,设计数据库。设计界面,设计数据库。2.4 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.2 面向对象方法与结构化方法比较面向对象方法与结构化方法比较1.结构化程序设计方法的特点是自顶向下、逐步求精,在获取完整的需求之后才能开始系统的分析和设计 2.面向对象的程序设计方法的特点是根据现实问题直接抽象出对象,分析对象的行为和与行为相关的数据,对象间通过传递消息进行通信,协作完成相应的功能,从问题出发,模拟现实问题建立系统模型,易于理解和实现。2.4 面向对象方法与结构化方法比较面向对象方法与结构化方法比较 v2.4.3 两种方法的综合运用两种方法的综合运用(1)内在的一致性。1)目标一致。2)使用分解和抽象的原则。3)局部化和信息隐蔽。4)模块独立。(2)应用的互补性。1)成熟的理论。2)有效的方法。3)实用的工具。4)严谨的开发过程。http:/