《第四讲结构化程序设计与面向对象程序设计.pptx》由会员分享,可在线阅读,更多相关《第四讲结构化程序设计与面向对象程序设计.pptx(35页珍藏版)》请在优知文库上搜索。
1、第四第四讲讲 面向对象程序设计基本思想面向对象程序设计基本思想 结构化程序设计与面向对象程序设计结构化程序设计与面向对象程序设计的异同的异同了解:软件结构化分析方法及工具。理解:结构化设计及面向对象设计的思路及特点。掌握:结构化和面向对象方法学的基本概念。教学要求教学要求1 概述 认识计算机(计算机组成原理)第一,计算机由哪些部分组成,各有什么作用,少一个组成部件会有什么后果。第二,CPU是如何工作,CPU做了哪些事情,CPU为什么只能认识0和1,CPU的寻址方式? CPU基础计算只有3个:与,或,非。这3个逻辑门实现了现在所有的计算机程序计算。 过程性的编程思想(汇编语言)学习汇编的核心是汇
2、编是一种过程性的编程语言,并且目前的CPU只能执行过程性的程序,任何高级语言都必须转换成过程性的编程语言后再交给CPU执行。在汇编里主要有三个操作:比较,跳转(goto),过程调用(call)。 1 概述 结构性的编程思想(数据结构)20世纪60年代编程思想发生了一场革命性的变化,结构性的编程方法出现了。结构化程序设计思想曾为解决“软件危机”立下过汗马功劳,它在一定程度上解决了软件的可靠性、可理解性、可维护性等问题;C语言里面有几个能表现出结构化思想的地方:分支(if), 循环(while,for),结构体(struct)。 面向对象的编程思想(设计模式)面向对象的程序设计思想后来居上,在软件
3、的模块化、可重用、可扩展性等方面体现出了强大的优势。从程序语法上看,面向对象比结构性的程序多了两个特性: 1, 结构体成员的私有化。结构化程序里面,结构体的成员都是公有的。然而在面向对象里面,结构体改称为类,并且成员分为公有和私有两个部分。就因为这一点的不同,就产生了接口的概念。接口不就是类成员的公有部分么? 2, 类的继承。因为出现了继承,才出现了多态。然而就是因为多态,才出现诸如:隐藏啊,虚函数啊 等等这些概念。多态的出现,能够让同一组数据,在不同的阶段,用同一种表达方式,执行不同的操作。1 概述结构化程序设计思想 体现了人们抽象思维和复杂问题分解的基本原则与要求; 结构化技术的三个方面:
4、结构化分析(SA)基于功能分解的分析方法,即使用数据流程图、决策表等工具建立符合用户需求的结构化说明书结构化设计(SD) 面向数据流的设计方法,从而提出满足系统需求的最佳软件结构,完成软件层次图或者软件结构图结构化编程(SP) 1 概述面向对象的程序设计 反映了客观世界由对象组成的本质特点;面向对象技术的三个方面:面向对象分析(OOA) 基于现实世界客观存在的事物出发,运用人类的自然思维方式,强调直接以现实世界的事物为中心来思考、认识问题面向对象设计(OOD)从客观事物的本质特点出发,把它们抽象表示为系统的类,作为系统的基本构成单元,使得该系统的组件可以直接反映客观世界中事物及其相互关系的本来
5、面貌面向对象编程(OOP)2 结构化方法的基本原理 结构化分析是结构化分析是以系统中数据的加工处理过程分析为主要内容的分析方法。以系统中数据的加工处理过程分析为主要内容的分析方法。 结构化设计结构化设计是以模块功能及其处理过程设计为主要内容进行详细设计的是以模块功能及其处理过程设计为主要内容进行详细设计的 一种设计方法。一种设计方法。其概念最早由E.W.Dijikstra在1965年提出,它是软件发展的一个重要的里程碑。 结构化开发方法结构化开发方法也称为面向过程的方法面向过程的方法或传统软件工程开发方法传统软件工程开发方法,它的观点是采用自顶向下、逐步求精的程序设计方法。 使用三种基本控制结
6、构构造程序,任何程序都可由顺序、选择、循环三种基本控制结构构造; 详细描述处理过程常用三种工具:图形、表格和语言; 使用的手段主要有数据流图、数据字典、层次方框图、流程图、结构化语言等。 结构化程序设计的一般步骤结构化程序设计的一般步骤是:分析业务流程、分析数据信息的加工处分析业务流程、分析数据信息的加工处理过程;画出数据流图;建立数据字典;提出系统的总体逻辑方案;细化数理过程;画出数据流图;建立数据字典;提出系统的总体逻辑方案;细化数据流图;确定模块的接口;为每个模块确定采用的算法和数据结构;根据据流图;确定模块的接口;为每个模块确定采用的算法和数据结构;根据E-R图设计数据库、根据模块算法
7、编程等。图设计数据库、根据模块算法编程等。2 结构化方法的基本原理阶段拟解决的关键性问题工具交付成果问题定义 要解决的问题是什么 可行性论证及软件计划有行得通的解决办法吗可行性分析报告需求分析系统必须做什么数据流图、数据字典需求规格说明书总体设计概括地说,应该怎样做系统结构图、层次方框图概要设计说明书详细设计具体怎样做HIPO图、处理流程图详细设计说明书2.1结构化开发-结构化分析与设计过程 结构化开发的主要过程:问题定义、可行性论证及软件计划、需求分析、总体设计、详细设计等。 每个阶段使用的工具如图所示。2 结构化方法的基本原理2.2 结构化开发方法结构化分析与设计举例 -书店借书系统用到的
8、分析与设计工具数据流图 数据字典 系统功能结构层次图与HIPO图、处理流程图E-R图 2 结构化方法的基本原理1) 数据流图(Data Flow Diagram ,DFD图) 它是描述数据加工处理过程的工具,有四种基本符号如下图所示。处理处理数据存储数据存储外部实体外部实体数据流数据流 基本符号的含义:基本符号的含义:l 矩形方框表示数据的源点或终点,是系统的外部实体矩形方框表示数据的源点或终点,是系统的外部实体.l 圆形表示变换数据的处理。圆形表示变换数据的处理。l 两条平行横线代表数据存储。两条平行横线代表数据存储。l 箭头表示数据流,即特定数据的流动方向。箭头表示数据流,即特定数据的流动
9、方向。 数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静数据存储和数据流都是数据,仅仅所处的状态不同。数据存储是处于静止状态的数据,数据流是处于运动中的数据。止状态的数据,数据流是处于运动中的数据。2 结构化方法的基本原理画数据流图的基本原则:自顶向下、逐层细化、完善求精。 具体步骤:(1)绘顶层数据流图。找出对整个系统而言的输入、输出数据,确定外部实体, 它们决定了系统与外界的接口。(2)为数据流命名,为加工命名。(3)检查核对。(4)核对无误后,进行分解,画处理的内部。 在(2)至(4)步之间反复迭代,直到处理无法进一步分解为止。 顶层数据流图只要求表示对整个系统而言的输入输
10、出数据,如图所示。软件系统软件系统外部实体外部实体外部实体外部实体外部实体外部实体外部实体外部实体输入数据流输入数据流输入数据流输入数据流输出数据流输出数据流输出数据流输出数据流顶层数据流图的画法顶层数据流图的画法2 结构化方法的基本原理图2-3书店借书系统的顶层数据流图结构化分析结构化分析画出数据流图画出数据流图例如,书店借书系统的顶层数据流图如图例如,书店借书系统的顶层数据流图如图2-3所示。所示。2 结构化方法的基本原理 顶层数据流图只反映了整个系统与外界的接口,但未表明数据的加工细节,需要进一步细化,得到第1层数据流图(如图所示). 书店借书系统的第一次分解后的数据流图2 结构化方法的
11、基本原理 “借书”处理分解后的数据流图 从图中可以看出,在书店借书系统的不同业务中,借书、还书、查询这几个从图中可以看出,在书店借书系统的不同业务中,借书、还书、查询这几个处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,处理较为复杂,使用到不同的数据较多,因此有必要对其进行更深层次的分析,进一步细化。以借书处理为例,如图所示是上图中进一步细化。以借书处理为例,如图所示是上图中“2.0借书借书”处理分解后的数处理分解后的数据流图,该图中的每个处理已不用再细分了。据流图,该图中的每个处理已不用再细分了。2 结构化方法的基本原理2)数据字典 数据字典是对所有与系统相关的数据元素
12、的一个有组织的列表,精确、严格地定义各个数据元素,使得用户及开发人员对于输入、输出、存储和处理形成共同的理解。 数据字典由对下列6类元素的定义组成:数据流、数据流分量、数据结构、数据存储、处理逻辑、外部实体。数据字典是对数据流图的详细描述。 例如: 借阅制度表 = 读者类别+允许借阅册数+罚款规定+丢失图书罚款规定 读者类别 = 金卡 | 银卡 | 铜卡 又如: 酒店客房预订请求 = 客人数据+住宿期限+客房类别 客人数据 = 客人姓名+地址+身份证号码+护照号码 +支付方式 身份证号码 = 15十进制数字18 护照号码 = 字母 + 8十进制数字8 字母 = AZ 十进制数字 = 09 2
13、结构化方法的基本原理数据字典应用举例数据字典应用举例以学生选课学生选课数据字典为例简要说明如何定义数据字典。如何定义数据字典。学生选课的数据流图如右所示:数据项:数据项:以“学号”为例数据项名:学号数据项含义:唯一标识每一个学生别名:学生编号数据类型:字符型长度:8取值范围:0000099999取值含义:前2位为入学年号,后3位为顺序编号与其他数据项的逻辑关系:(无) 数据结构数据结构:以“学生”为例数据结构名:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系 数据流数据流:以“选课信息”为例数据流名:选课信息说明:学生所选课程信息数据
14、流来源:“学生选课”处理数据流去向:“学生选课”存储组成:学号,课程号平均流量:每天10个高峰期流量:每天100个 数据存储数据存储:以“学生选课”为例数据存储名:学生选课说明:记录学生所选课程的成绩编号:(无)流入的数据流:选课信息,成绩信息流出的数据流:选课信息,成绩信息组成:学号,课程号,成绩数据量:50000个记录存取方式:随机存取 处理过程处理过程:以“学生选课”为例处理过程名:学生选课说明:学生从可选修的课程中选出课程输入数据流:学生,课程输出数据流:学生选课处理:每学期学生都可以从公布的选修课程中选修自己愿意选修的课程,选课时有些选修课有先修课程的要求,还要保证选修课的上课时间不
15、能与该生必修课时间相冲突,每个学生四年内的选修课门数不能超过8门。2 结构化方法的基本原理3 3)E-RE-R图图( (实体关系图实体关系图 ) )例如:图书馆“读者借还书”的E-R图。借还书读者图书日期姓名书名书号借书卡号1n2 结构化方法的基本原理4)层次图与HIPO图(Hierarchy层次结构) 层次图用来描绘软件的层次结构,图中的一个矩形框代表一个模块,方框间的连线表示调用关系。它适于在自顶向下设计软件的过程中使用,描述模块的划分。 在第1层数据流图中对“书店借书系统”划分模块得到对应的系统功能结构的层次图,如图所示。 HIPO图是“层次图加输入/处理/输出图”的英文缩写, 为了能使
16、HIPO图更清晰,首先要对层次图中的各个模块编号, 加了编号后的层次图,称为H图.图中体现了编号的规则. “2.1.1 借书处理”功能的IPO图和功能处理流程图,据此可以编程。2 结构化方法的基本原理结构化设计-概要设计的系统功能结构层次图书店借书系统书店借书系统功能结构功能结构的层次图的层次图书店借书系统借还书会员管理会员注册续卡查询会员信息会员注销登录借还书处理打印借书单2.2 结构化方法的基本原理书店借书系统功能结构的层次图(加了编号)借借书书处处理理2.1.1还还书书处处理理2.1.2书店借书系统借还书2.0会员管理3.0会会员员注注册册3.1续续卡卡3.4查查询询会会员员信信息息3.3会会员员注注销销3.2登录登录1.0借还书处理2.1打印借书单2.2读者1.0注册注册注册2.0借书借书3.0还书还书会员借书卡借书请求读者注册信息表图书和借书单读者还书请求图书有损坏罚款单图书信息表借还记录信息表读者信息借书管理员4.0查询查询会员信息查询图书状态信息图书信息 借还信息补收押金信息卡到期提醒借书管理员信息表5.0登录请求登录请求登录请求登录信息查询的信息7.0续卡续卡续卡请求会