vfp(第3版)课件:公共基础 程序设计与软件工程.ppt

上传人(卖家):罗嗣辉 文档编号:2088517 上传时间:2022-02-14 格式:PPT 页数:27 大小:806.50KB
下载 相关 举报
vfp(第3版)课件:公共基础 程序设计与软件工程.ppt_第1页
第1页 / 共27页
vfp(第3版)课件:公共基础 程序设计与软件工程.ppt_第2页
第2页 / 共27页
vfp(第3版)课件:公共基础 程序设计与软件工程.ppt_第3页
第3页 / 共27页
vfp(第3版)课件:公共基础 程序设计与软件工程.ppt_第4页
第4页 / 共27页
vfp(第3版)课件:公共基础 程序设计与软件工程.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、可视化程序设计可视化程序设计Visual FoxPro 第九章第九章程序设计与软件工程程序设计与软件工程23程序设计方法与风格程序设计方法与风格v 程序设计方法:程序设计方法:p结构化程序设计结构化程序设计p面向对象程序设计面向对象程序设计1程序程序 程序是按某种顺序排列的,能完成某种功能的程序是按某种顺序排列的,能完成某种功能的指令集合指令集合。程序有其特定的算法和完整的数据结构。程序有其特定的算法和完整的数据结构。4 结构化程序设计结构化程序设计一、结构化程序设计的原则一、结构化程序设计的原则1.自顶向下自顶向下:先从最上层总目标开始设计,逐步使问题具体化,先总体,后局部;先从最上层总目标

2、开始设计,逐步使问题具体化,先总体,后局部;2.逐步求精逐步求精:对复杂问题,应设计子目标作过渡,逐步细化;对复杂问题,应设计子目标作过渡,逐步细化;3.模块化模块化:把程序要解决的总目标分解为子目标,把每个子目标称为一个模块;把程序要解决的总目标分解为子目标,把每个子目标称为一个模块;4.限制使用限制使用GOTOGOTO语句语句:滥用导致程序混乱,但不可完全避免。滥用导致程序混乱,但不可完全避免。5二、二、 结构化程序的基本结构结构化程序的基本结构1 1、顺序结构顺序结构:2 2、选择结构选择结构:(也称分支结构):(也称分支结构)3 3、重复结构重复结构:(也称循环结构):(也称循环结构)

3、6面向对象程序设计面向对象程序设计 类是具有相同或相似性质的对象的抽象,也就是说类是具类是具有相同或相似性质的对象的抽象,也就是说类是具有相同属性、共同方法的对象的集合。有相同属性、共同方法的对象的集合。(1)类类是对象模板是对象模板(2)对象对象是类的一个实例是类的一个实例v 类和实例类和实例78软件工程基本概念软件工程基本概念一、软件定义与分类一、软件定义与分类1.1.软件的定义:软件的定义: 软件是程序、数据及其相关文档的完整集合。软件是程序、数据及其相关文档的完整集合。程序是按事先设计的功能和性能要求编写的指令序列;程序是按事先设计的功能和性能要求编写的指令序列;数据是使程序能正常操纵

4、信息的数据结构;数据是使程序能正常操纵信息的数据结构;文档是与程序开发、维护和使用有关的图文材料。文档是与程序开发、维护和使用有关的图文材料。程序并不是软件,程序只是软件的组成部分。程序并不是软件,程序只是软件的组成部分。 2.2.软件按功能来分为:软件按功能来分为: 应用软件、系统软件、支撑软件应用软件、系统软件、支撑软件(或工具软件)。(或工具软件)。9软件工程的基本概念软件工程的基本概念v 软件危机软件危机n泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。n软件危机归结为成本、质量、生产率等问题。软件危机归结为成本、质量

5、、生产率等问题。v 软件工程的定义软件工程的定义n软件工程是应用于计算机软件的定义、开发和维护的一整套方法、软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、过程。工具、过程。n软件工程包括软件工程包括3个要素,即方法、工具和过程。个要素,即方法、工具和过程。二、软件工程的基本概念二、软件工程的基本概念10软件工程的基本概念软件工程的基本概念v 软件生命周期软件生命周期软件定义软件定义、软件开发软件开发、软件运行维护软件运行维护3个阶段。个阶段。可行性研究可行性研究初步项目计划初步项目计划需求分析需求分析概要设计概要设计详细设计详细设计软件实现软件实现软件测试软件测试使用使用维护

6、维护退役退役定义阶段定义阶段开发阶段开发阶段维护阶段维护阶段只有软件定义有用户的参与只有软件定义有用户的参与v维护维护是软件生命周期的最后一个阶段,是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。件的可维护性,降低维护的代价。11需求分析需求分析结构化分析方法结构化分析方法v结构化分析方法结构化分析方法是一种面向数据流、自顶是一种面向数据流、自顶向下、逐步求精进行需求分析的方法。常向下、逐步求精进行需求分析的方法。常用工具主要包括:用工具主

7、要包括:数据流图数据流图、数据字典数据字典、判定表和判定树。判定表和判定树。 。 12例:借书过程的数据流程图例:借书过程的数据流程图(DFD)。 加工加工 数据流数据流 存储文件存储文件 源,潭源,潭 需求分析需求分析结构化分析方法结构化分析方法132 2)数据字典数据字典(DDDD-Data Dictionary-Data Dictionary) 数据字典是结构化分析方法的核心。数据字典是结构化分析方法的核心。数据字典是数据字典是数据流数据流图图中所有图形元素的定义集合,数据字典的作用是使得每一中所有图形元素的定义集合,数据字典的作用是使得每一个图形元素的名字都有一个确切的解释。个图形元素

8、的名字都有一个确切的解释。 例:学生借阅清单的数据字典例:学生借阅清单的数据字典学生借阅清单学号+姓名+系别+书号+书名+借阅日期+应还日期+日期学号2字母6姓名2字母24系别2字母24书号1字母32+“00001”“99999”书名1字母120借阅日期日期应还日期日期日期年+月+日年“00”“99”月“01”“12”日“01”“31”需求分析需求分析结构化分析方法结构化分析方法14(3 3)判定树判定树 判定树也是用来表达加工逻辑的一种工具。判定树也是用来表达加工逻辑的一种工具。需求分析需求分析结构化分析方法结构化分析方法15(4 4)判定表判定表 如果数据流图的加工需要依赖于多个逻辑条件的

9、取值,如果数据流图的加工需要依赖于多个逻辑条件的取值,使用判定表来描述比较合适使用判定表来描述比较合适 以以“检查发货单检查发货单”为例为例需求分析需求分析结构化分析方法结构化分析方法16 开发阶段开发阶段结构化设计方法结构化设计方法v 软件设计分两步完成软件设计分两步完成 概要设计(结构设计)概要设计(结构设计) 详细设计详细设计v 软件设计的基本原理和方法:软件设计的基本原理和方法: 抽象抽象 模块化模块化 信息隐蔽信息隐蔽 模块独立性模块独立性 内聚、耦合内聚、耦合内聚:一个模块内部各元素结合的紧密程度内聚:一个模块内部各元素结合的紧密程度耦合:模块间互相联系的紧密程度耦合:模块间互相联

10、系的紧密程度 软件设计中,有利于提高模块独立性的一个准则是软件设计中,有利于提高模块独立性的一个准则是高内聚低耦合高内聚低耦合。高内聚高内聚功能内聚功能内聚低内聚偶然内聚高耦合高耦合非直接耦合非直接耦合 耦合内容耦合171.1.程序流程图程序流程图:顺序型、选择型、后判断重复型、先判断重:顺序型、选择型、后判断重复型、先判断重复型、多分支选择型。复型、多分支选择型。123循环体循环条件循环体循环条件2.2.N-SN-S图图:用方框图代替传统的程序流程图。:用方框图代替传统的程序流程图。条件ELSE THEN条件=1=2=NA1A2A3A4注:注:控制流控制流 加工步骤加工步骤 逻辑条件逻辑条件

11、v常见的过程设计工具常见的过程设计工具 开发阶段开发阶段结构化设计方法结构化设计方法183.3.PADPAD图图:问题分析图。:问题分析图。ABAB条件WHILEAUNTILA4.4.PDLPDL:过程设计语言(结构化的英语或伪码):一种混合:过程设计语言(结构化的英语或伪码):一种混合语言,采用英语的词汇和结构程序设计语言的语法。语言,采用英语的词汇和结构程序设计语言的语法。STARTEND输入x,yX0X15公式2计算UNTIL重复3次记帐、输出19常用工具常用工具v结构化分析工具结构化分析工具: 数据流图(数据流图(DFD) 数据字典(数据字典(DD) 判定树判定树 判定表判定表v过程设

12、计工具过程设计工具 程序流程图程序流程图 N-S图图 PAD图:问题分析图。图:问题分析图。 PDL:过程设计语言过程设计语言20 软件测试软件测试一、软件测试的目的:一、软件测试的目的: 软件测试是为了软件测试是为了发现软件错误发现软件错误。二软件测试技术二软件测试技术 从是否需要执行被测软件的角度,可以分为从是否需要执行被测软件的角度,可以分为静态测试静态测试和和动态测试动态测试方法。方法。 按功能划分为按功能划分为白盒测试白盒测试(结构测试结构测试)和)和黑盒测试黑盒测试(功能功能测试测试)方法。)方法。v 静态测试与动态测试静态测试与动态测试 静态测试不实际运行软件,主要通过静态测试不

13、实际运行软件,主要通过人工进行人工进行。 动态测试是基于计算机的测试,是为了动态测试是基于计算机的测试,是为了发现错误发现错误执行程执行程序的过程序的过程( (动态测试包括白盒测试和黑盒测试动态测试包括白盒测试和黑盒测试) )21v 白盒测试白盒测试(结构测试结构测试) 逻辑覆盖逻辑覆盖 基本路经测试基本路经测试v 黑盒测试黑盒测试(功能测试功能测试) 等价类划分法等价类划分法 边界值分析法边界值分析法 错误推测法错误推测法 因果图因果图等等 软件测试软件测试22 程序的调试程序的调试v 程序调试的任务是程序调试的任务是诊断和改正程序中的错误诊断和改正程序中的错误 根据测试时发现的错误,找出原

14、因和具体位置,进行改正。根据测试时发现的错误,找出原因和具体位置,进行改正。 由程序开发人员来进行,谁开发的程序就由谁来进行调试。由程序开发人员来进行,谁开发的程序就由谁来进行调试。v 程序序调试的基本步骤:程序序调试的基本步骤:1 1)错误定位)错误定位 2 2)修改设计和代码,以排除错误)修改设计和代码,以排除错误 3 3)进行回归)进行回归测试,防止引进新的错误。测试,防止引进新的错误。v 程序序调试的方法:程序序调试的方法: 强行排错法强行排错法(设置断点和监视表达式)(设置断点和监视表达式) 回溯法回溯法(适合小规模程序)(适合小规模程序) 原因排除法原因排除法(通过演绎和归纳,以及

15、二分法来实现)(通过演绎和归纳,以及二分法来实现) 23程序设计基础(1)下列描述中正确的是)下列描述中正确的是_。 A)程序就是软件程序就是软件 B)软件开发不受计算机系统的限制软件开发不受计算机系统的限制C)软件既是逻辑实体,又是物理实体软件既是逻辑实体,又是物理实体D)软件是程序、数据与相关文档的集合软件是程序、数据与相关文档的集合(2)下列选项中不属于结构化程序设计方法的是)下列选项中不属于结构化程序设计方法的是_。 A) 自顶向下自顶向下 B) 逐步求精逐步求精 C) 模块化模块化 D) 可复用可复用(3)下列选项中不符合良好程序设计风格的是)下列选项中不符合良好程序设计风格的是 _

16、 。 A) 源程序要文档化源程序要文档化 B)数据说明的次序要规范化数据说明的次序要规范化 C) 避免滥用避免滥用goto语句语句 D)模块设计要保证高耦合、高内聚模块设计要保证高耦合、高内聚(4)在结构化程序设计中,模块划分的原则是)在结构化程序设计中,模块划分的原则是_。 A)各模块应包括尽量多的功能各模块应包括尽量多的功能 B)各模块的规模应尽量大各模块的规模应尽量大 C)各模块之间的联系应尽量紧密各模块之间的联系应尽量紧密 D)模块内具有高内聚度、模块间具有低耦合度模块内具有高内聚度、模块间具有低耦合度DDDD245)在面向对象方法中,实现信息隐蔽是依靠)在面向对象方法中,实现信息隐蔽

17、是依靠_A)对象的继承)对象的继承B)对象的多态)对象的多态C)对象的封装)对象的封装D)对象的分类)对象的分类(6)下列叙述中,不符合良好程序设计风格要求的是)下列叙述中,不符合良好程序设计风格要求的是_A)程序的效率第一,)程序的效率第一, 清晰第二清晰第二 B)程序的可读性好)程序的可读性好C)程序中要有必要的注释)程序中要有必要的注释 D)输入数据前要有提示信息)输入数据前要有提示信息(7)结构化程序设计的基本原则不包括)结构化程序设计的基本原则不包括_。 A)多态性)多态性 B)自顶向下)自顶向下 C)模块化)模块化 D)逐步求精)逐步求精 CAA25软件工程基础 (1)下列对于软件

18、测试的描述中正确的是)下列对于软件测试的描述中正确的是_。 A) 软件测试的目的是证明程序是否正确软件测试的目的是证明程序是否正确 B) 软件测试的目的是使程序运行结果正确软件测试的目的是使程序运行结果正确 C) 软件测试的目的是尽可能多地发现程序中的错误软件测试的目的是尽可能多地发现程序中的错误 D) 软件测试的目的是使程序符合结构化原则软件测试的目的是使程序符合结构化原则(2)为了使模块尽可能独立,要求)为了使模块尽可能独立,要求_。 A) 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 B) 模块的内聚程度要尽量高,且各模块间的耦

19、合程度要尽量弱模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱 D) 模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(3)下列叙述中正确的是)下列叙述中正确的是_ 。 A)程序设计就是编制程序)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进行再测试)程序经调试改错后还应进行再测试 D)程序经调试改错后不必进行再测试)程序经调试改错后不必进行再测试(4)

20、下列描述中正确的是)下列描述中正确的是_ 。A)软件工程只是解决软件项目的管理问题)软件工程只是解决软件项目的管理问题B)软件工程主要解决软件产品的生产率问题)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则D)软件工程只是解决软件开发中的技术问题)软件工程只是解决软件开发中的技术问题CBCC26(5)在软件设计中,不属于过程设计工具的是)在软件设计中,不属于过程设计工具的是_ 。A)PDL(过程设计语言过程设计语言) B)PAD图图C)N-S图图 D)DFD图图(6)下列叙述中正确的

21、是)下列叙述中正确的是_ 。A)软件交付使用后还需要进行维护)软件交付使用后还需要进行维护B)软件一旦交付使用就不需要再进行维护)软件一旦交付使用就不需要再进行维护C)软件交付使用后其生命周期就结束)软件交付使用后其生命周期就结束D)软件维护是指修复程序中被破坏的指令)软件维护是指修复程序中被破坏的指令(7)两个或两个以上模块之间关联的紧密程度称为)两个或两个以上模块之间关联的紧密程度称为_ 。 A) 耦合度耦合度 B) 内聚度内聚度 C) 复杂度复杂度 D) 数据传输特性数据传输特性(8)下列叙述中正确的是)下列叙述中正确的是_ 。 A) 软件测试应该由程序开发者来完成软件测试应该由程序开发

22、者来完成 B) 程序经调试后一般不需要再测试程序经调试后一般不需要再测试 C) 软件维护只包括对程序代码的维护软件维护只包括对程序代码的维护 D) 以上三种说法都不对以上三种说法都不对(9)从工程管理角度,软件设计一般分为两步完成,它们是)从工程管理角度,软件设计一般分为两步完成,它们是_ 。 A) )概要设计与详细设计概要设计与详细设计 B)数据设计与接口设计数据设计与接口设计 C) )软件结构设计与数据设计软件结构设计与数据设计 D)过程设计与数据设计过程设计与数据设计 (10)下列选项中不属于软件生命周期开发阶段任务的是)下列选项中不属于软件生命周期开发阶段任务的是 _ 。 A)软件测试

23、软件测试 B)概要设计概要设计 C)软件维护软件维护 D)详细设计详细设计 DAADAC27(11)下列叙述中正确的是)下列叙述中正确的是_ 。 A)软件测试的主要目的是发现程序中的错误软件测试的主要目的是发现程序中的错误 B)软件测试的主要目的是确定程序中错误的位置软件测试的主要目的是确定程序中错误的位置 C)为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作 D)软件测试是证明软件没有错误软件测试是证明软件没有错误 (12)软件是指)软件是指_ 。 A)程序)程序 B)程序和文档)程序和文档 C)算法加数据结构)

24、算法加数据结构 D)程序、数据与相关文档的完整集合)程序、数据与相关文档的完整集合(13)软件调试的目的是)软件调试的目的是_ 。 A)发现错误)发现错误 B)改正错误)改正错误 C)改善软件的性能)改善软件的性能 D)验证软件的正确性)验证软件的正确性(14)程序流程图中指有箭头的线段表示的是)程序流程图中指有箭头的线段表示的是_ 。 A)图元关系)图元关系 B)数据流)数据流 C)控制流)控制流 D)调用关系)调用关系(15)在软件开发中,需求分析阶段产生的主要文档是)在软件开发中,需求分析阶段产生的主要文档是_ 。 A)可行性分析报告)可行性分析报告 B)软件需求规格说明书)软件需求规格说明书 C)概要设计说明书)概要设计说明书 D)集成测试计划)集成测试计划ADBBC

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(vfp(第3版)课件:公共基础 程序设计与软件工程.ppt)为本站会员(罗嗣辉)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|