7程序设计和软件工程基础.ppt
《7程序设计和软件工程基础.ppt》由会员分享,可在线阅读,更多相关《7程序设计和软件工程基础.ppt(81页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、西北师范大学计算中心西北师范大学计算中心第第第第7 7 7 7 章章章章 程序设计程序设计程序设计程序设计 和软件工程基础和软件工程基础和软件工程基础和软件工程基础7.1 7.1 程序设计风格程序设计风格7.2 7.2 结构化程序设计结构化程序设计7.3 7.3 面向对象程序设计面向对象程序设计7.4 7.4 软件工程基础软件工程基础西北师范大学计算中心西北师范大学计算中心27 7 程序设计和软件工程基础程序设计和软件工程基础 随着计算机应用范围的不断扩大和硬件环境的不断完善,软件的规模也随着计算机应用范围的不断扩大和硬件环境的不断完善,软件的规模也越来越大,复杂性不断增加越来越大,复杂性不断
2、增加 如何保证软件的正确性,验证软件的正确性成为突出问题。为此在软件如何保证软件的正确性,验证软件的正确性成为突出问题。为此在软件设计领域涌现出结构化程序设计、面向对象程序设计等技术,同时将工程化设计领域涌现出结构化程序设计、面向对象程序设计等技术,同时将工程化引入到软件开发中,像处理工程一样处理软件研制的全过程引入到软件开发中,像处理工程一样处理软件研制的全过程 本章主要介绍本章主要介绍:结构化程序设计结构化程序设计 面向对象程序设计面向对象程序设计 软件工程软件工程西北师范大学计算中心西北师范大学计算中心37.1 7.1 程序设计风格程序设计风格_程序与程序设计程序与程序设计 程序程序是为
3、计算机解决某一问题而编写的指令序列是为计算机解决某一问题而编写的指令序列 从计算机角度来说,程序是用某种计算机所能理解并执行的计算机语言从计算机角度来说,程序是用某种计算机所能理解并执行的计算机语言描述解决问题的方法步骤描述解决问题的方法步骤程序程序 =算法算法 +数据结构数据结构 程序设计程序设计是编写程序的过程是编写程序的过程 程序设计语言程序设计语言是用于描述计算机所执行操作的语言是用于描述计算机所执行操作的语言 程序设计程序设计主要经历了四个阶段:主要经历了四个阶段:机器语言程序设计阶段机器语言程序设计阶段高级语言程序设计阶段高级语言程序设计阶段结构化程序设计阶段结构化程序设计阶段面向
4、对象程序设计阶段面向对象程序设计阶段西北师范大学计算中心西北师范大学计算中心47.1 7.1 程序设计风格程序设计风格_语言与程序设计语言语言与程序设计语言 程序设计语言的程序设计语言的发展发展:低级语言低级语言高级语言高级语言 具体算法具体算法程序设计方法学程序设计方法学 顺序程序设计顺序程序设计并发、并行、分布式程序设计并发、并行、分布式程序设计 非结构化程序设计非结构化程序设计结构化程序设计结构化程序设计 过程式程序设计过程式程序设计逻辑式、函数式、对象式以及可视化程序设计逻辑式、函数式、对象式以及可视化程序设计 阶段阶段年年 限限语语 言言程程 序序 标标 准准一一19461946年年
5、19561956年年机器语言或汇编语言机器语言或汇编语言功效、时间短、占用空间小功效、时间短、占用空间小二二19561956年年19681968年年高级语言高级语言易读性、易维护性易读性、易维护性三三 19681968年年现代高级语言现代高级语言结构良好性,易读、易维护结构良好性,易读、易维护 程序设计语言的程序设计语言的发展趋势发展趋势:模块化模块化 简明性简明性 形式化形式化 并行化并行化 可视化可视化西北师范大学计算中心西北师范大学计算中心57.1 7.1 程序设计风格程序设计风格_面向机器的语言面向机器的语言 机器指令机器指令 是计算机可以理解并执行的操作命令,有完整含义是计算机可以理
6、解并执行的操作命令,有完整含义 指令格式:指令格式:操作码地址码操作码地址码 操作码操作码是指明该指令要完成的操作,如加、减、传送、输入等是指明该指令要完成的操作,如加、减、传送、输入等 操作数操作数是指参加运算的数或者数所在的单元地址是指参加运算的数或者数所在的单元地址 机器语言机器语言 直接用二进制代码表示指令系统的语言。用机器语言所编直接用二进制代码表示指令系统的语言。用机器语言所编写的程序可以被计算机直接识别和执行写的程序可以被计算机直接识别和执行 汇编语言汇编语言 用一些特定的助记符形式来表示所要进行的操作和数据,用一些特定的助记符形式来表示所要进行的操作和数据,又被称为又被称为“符
7、号语言符号语言”。例如:。例如:MOV AX,1MOV AX,1;MOV BX,1MOV BX,1;ADD AX,BXADD AX,BX 汇编语言编写的程序还需要通过汇编程序汇编语言编写的程序还需要通过汇编程序“翻译翻译”成机器指令后才能执成机器指令后才能执行行 在不同的计算机上提供了不同的机器语言或汇编语言,所编写的程序一在不同的计算机上提供了不同的机器语言或汇编语言,所编写的程序一般只能在同类型的计算机上运行,所以机器语言和汇编语言被称为般只能在同类型的计算机上运行,所以机器语言和汇编语言被称为“面向机面向机器的语言器的语言”,相对于高级语言又被成为,相对于高级语言又被成为“低级语言低级语
8、言”操作码操作码地址码地址码西北师范大学计算中心西北师范大学计算中心67.1 7.1 程序设计风格程序设计风格_面向过程的语言面向过程的语言 高级语言高级语言使用了人类的自然语言,采用了数学的公式描述方法;同使用了人类的自然语言,采用了数学的公式描述方法;同时又能脱离对机器的要求,能在任何计算机上运行。如:时又能脱离对机器的要求,能在任何计算机上运行。如:IF B2-4*a*c=0 THEN PRINT(-B+SQR(B2-4*A*C)/(2*A)IF B2-4*a*c=0 THEN PRINT(-B+SQR(B2-4*A*C)/(2*A)汇编语言或高级语言编写的程序称为汇编语言或高级语言编写
9、的程序称为“源程序源程序”,源程序不能在计,源程序不能在计算机上直接运行,必须将其算机上直接运行,必须将其“翻译翻译”成击机器指令的成击机器指令的“目标程序目标程序”编译方式编译方式 编译编译 整个翻译,整体执行整个翻译,整体执行 解释解释 逐条翻译,逐条执行逐条翻译,逐条执行源程序源程序结果结果解释程序解释程序(解释执行)(解释执行)源程序源程序目标文件目标文件.obj编译程序编译程序结果结果连接程序连接程序可执行文件可执行文件.exe执行执行西北师范大学计算中心西北师范大学计算中心77.1 7.1 程序设计风格程序设计风格_程序示例程序示例 以以A=7+8A=7+8的计算为例,比较机器、汇
10、编和高级语言不同的表达方式的计算为例,比较机器、汇编和高级语言不同的表达方式 IBM-PCIBM-PC机的机的机器语言程序机器语言程序:1011 0000 1011 0000 00000000 0111 0111:把把7 7放入累加器放入累加器A A中中 0010 1100 0000 1000 0010 1100 0000 1000:8 8与累加器与累加器A A中的值相加,结果仍放入中的值相加,结果仍放入A A中中 1111 0100 1111 0100 :停机停机 IBM-PCIBM-PC机的机的汇编程序汇编程序 ORG 00H ORG 00H :设置程序起始地址设置程序起始地址 MOV A
11、,7 MOV A,7 :把把7 7放入累加器放入累加器A A中中 ADD A,8 ADD A,8 :8 8与累加器与累加器A A中的值相加,结果仍放入中的值相加,结果仍放入A A中中 HALT HALT :停机停机 高级语言程序高级语言程序(FORTRANFORTRAN)A=7+8 A=7+8 :7 7与与8 8相加的结果放入变量相加的结果放入变量A A中中 WRITE(*,*)A WRITE(*,*)A:在显示器上输出变量在显示器上输出变量A A的值的值 END END :结束程序结束程序西北师范大学计算中心西北师范大学计算中心87.1 7.1 程序设计风格程序设计风格_常用常用程序设计语言
12、程序设计语言语言语言特特 点点FORTRANFORTRAN第一个计算机高级语言。面向过程,适合于科学计算第一个计算机高级语言。面向过程,适合于科学计算ALGOLALGOL算法语言。面向过程,以子程序结构为基础算法语言。面向过程,以子程序结构为基础COBOLCOBOL一种用于事务数据处理的通用程序设计语言一种用于事务数据处理的通用程序设计语言LISPLISP一种用于处理一种用于处理“表表”的函数式程序设计语言的函数式程序设计语言BASICBASIC一种交互式程序设计语言,简单易学、小巧灵活、使用方便一种交互式程序设计语言,简单易学、小巧灵活、使用方便PASCALPASCAL一种结构化程序设计语言
13、,简明性和结构化,适于描述算法一种结构化程序设计语言,简明性和结构化,适于描述算法PROLOGPROLOG一种处理逻辑问题的逻辑程序设计语言一种处理逻辑问题的逻辑程序设计语言C C一种通用程序设计语言,中级语言,主要用于系统程序设计一种通用程序设计语言,中级语言,主要用于系统程序设计AdsAds一种通用的模块化程序设计语言,主要特征是强类型化和模块化一种通用的模块化程序设计语言,主要特征是强类型化和模块化C+C+一种以一种以C语言为基础、支持数据抽象和面向对象技术的通用程序设计语言语言为基础、支持数据抽象和面向对象技术的通用程序设计语言JavaJava一种简捷的、面向对象的、用于网络环境的、可
14、分布执行的程序设计语言一种简捷的、面向对象的、用于网络环境的、可分布执行的程序设计语言西北师范大学计算中心西北师范大学计算中心97.1 7.1 程序设计风格程序设计风格_面向对象的语言面向对象的语言 面向对象的计算机语言,是一种非过程化语言或陈述性语言。使用面向对象的计算机语言,是一种非过程化语言或陈述性语言。使用时只要提出问题,计算机就能自动给出计算步骤或结果时只要提出问题,计算机就能自动给出计算步骤或结果 Visual BasicVisual Basic、Visual FoxProVisual FoxPro、C+C+、JavaJava、Object PascalObject Pascal等
15、等 面向对象计算机语言的面向对象计算机语言的优点优点 与人类的思维方法一致与人类的思维方法一致 稳定性好稳定性好 可重用性好可重用性好 可维护性好可维护性好 易于开发大型软件产品易于开发大型软件产品西北师范大学计算中心西北师范大学计算中心107.1 7.1 程序设计风格程序设计风格 程序设计风格程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路是指编写程序时所表现出的特点、习惯和逻辑思路 程序设计风格会极大地影响软件的质量和可维护性,良好的程序设计风程序设计风格会极大地影响软件的质量和可维护性,良好的程序设计风格可以使程序结构清晰合理,使程序代码便于维护。因此总体而言应该强调格可以使程序
16、结构清晰合理,使程序代码便于维护。因此总体而言应该强调程序简单和清晰,并且是可以理解的程序简单和清晰,并且是可以理解的 著名的著名的“清晰第一清晰第一,效率第二效率第二”论点已成为当今主导的程序设计风格论点已成为当今主导的程序设计风格 形成良好的程序设计的风格,需要注意以下几个方面:形成良好的程序设计的风格,需要注意以下几个方面:程序文档与使用的符号名应具有一定的实际含义,以便对程序功能程序文档与使用的符号名应具有一定的实际含义,以便对程序功能的理解的理解 数据的说明次序要规范,数据总体说明次序固定,可以使数据的属数据的说明次序要规范,数据总体说明次序固定,可以使数据的属性容易查找,有利于测试
17、、排错和维护性容易查找,有利于测试、排错和维护 程序简单易懂,语句构造简单直接,不应该为了提高效率而把语句程序简单易懂,语句构造简单直接,不应该为了提高效率而把语句复杂化复杂化 输入和输出方式和格式应尽可能方便用户的使用输入和输出方式和格式应尽可能方便用户的使用西北师范大学计算中心西北师范大学计算中心7.27.27.27.2 结构化程序设计结构化程序设计结构化程序设计结构化程序设计7.2.1 7.2.1 结构化程序设计的原则结构化程序设计的原则7.2.2 7.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点7.2.3 7.2.3 结构化程序设计原则和方法的应用结构化程序设计原则和方
18、法的应用西北师范大学计算中心西北师范大学计算中心127.2.1 7.2.1 结构化程序设计的原则结构化程序设计的原则 结构化程序设计方法结构化程序设计方法是一种程序设计的技术,采用自顶向下、逐步求精是一种程序设计的技术,采用自顶向下、逐步求精的方法和单入口的方法和单入口/单出口的控制结构单出口的控制结构 程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标,将一个复杂的部目标,将一个复杂的问题解法逐步细化成若干个简单的问题,采用模块化问题解法逐步细化成若干个简单的问题,采用模块化组织,再进一步分解为具体的处理步骤,每
19、个处理步骤可以使用单一入口的组织,再进一步分解为具体的处理步骤,每个处理步骤可以使用单一入口的控制结构控制结构 结构化程序设计的结构化程序设计的主要原则主要原则:自顶向下自顶向下 逐步求精逐步求精 模块化模块化 限制使用限制使用gotogoto语句语句 采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、采用结构化程序设计方法编写程序,可使程序结构良好、易读、易理解、易维护;提高了编程工作的效率,降低了软件开发成本易维护;提高了编程工作的效率,降低了软件开发成本西北师范大学计算中心西北师范大学计算中心137.2.2 7.2.2 结构化程序的基本结构与特点结构化程序的基本结构与特点
20、结构化程序设计基本结构结构化程序设计基本结构 顺序结构顺序结构。按照程序语句行的自然顺序,一条语句一条语句地执行程。按照程序语句行的自然顺序,一条语句一条语句地执行程序。顺序结构是一种最基本、最常用的程序设计结构序。顺序结构是一种最基本、最常用的程序设计结构 选择结构选择结构(分支结构(分支结构)。包括简单选择和多分支选择结构,这种结构。包括简单选择和多分支选择结构,这种结构可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句序列可以根据设定的条件,判断应该选择哪一条分支来执行相应的语句序列 循环结构循环结构(重复结构(重复结构)。根据给定条件,判断是否需要重复执行某一。根据给定条件,判
21、断是否需要重复执行某一相同的或类似的程序段。循环结构对应两类:对先判断后执行循环体的称为相同的或类似的程序段。循环结构对应两类:对先判断后执行循环体的称为当型循环结构。对先执行循环体后判断的称为直到型循环结构当型循环结构。对先执行循环体后判断的称为直到型循环结构 使用这三种基本控制结构就能表达出各种其它形式结构的程序设计方法使用这三种基本控制结构就能表达出各种其它形式结构的程序设计方法A AB B条件条件A AB BT TF F条件条件A AF FT T条件条件A AT TF F条件条件F FA AT T顺序结构顺序结构 对称选择结构对称选择结构 非对称选择结构非对称选择结构 当型循环结构当型
22、循环结构 直到型循环结构直到型循环结构西北师范大学计算中心西北师范大学计算中心147.2.3 7.2.3 结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用 结构化程序设计原则结构化程序设计原则 基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌基于对结构化程序设计原则、方法以及结构化程序基本构成结构的掌握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:握和了解,在结构化程序设计的具体实施中,要注意把握如下要素:使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑序的控制逻辑 选用的控制结
23、构只准许有一个入口和一个出口选用的控制结构只准许有一个入口和一个出口 每个程序块只有一个入口和一个出口每个程序块只有一个入口和一个出口 复杂结构应该用基本控制结构的嵌套、组合来实现复杂结构应该用基本控制结构的嵌套、组合来实现 严格控制严格控制GOTOGOTO语句的使用语句的使用西北师范大学计算中心西北师范大学计算中心7.37.37.37.3 面向对象程序设计面向对象程序设计面向对象程序设计面向对象程序设计 7.3.1 7.3.1 面向对象程序设计基本概念面向对象程序设计基本概念7.3.2 7.3.2 面向对象的程序设计面向对象的程序设计西北师范大学计算中心西北师范大学计算中心167.3.1 7
24、.3.1 面向对象程序设计基本概念面向对象程序设计基本概念 虽然结构化程序设计方法曾经给计算机软件业带来了巨大进步。但是,虽然结构化程序设计方法曾经给计算机软件业带来了巨大进步。但是,2020世纪世纪8080年代末期以来,人们注意到把结构化程序设计方法应用到大型软年代末期以来,人们注意到把结构化程序设计方法应用到大型软件开发时很少取得成功。到件开发时很少取得成功。到2020世纪世纪9090年代前半期,面向对象的设计方法已年代前半期,面向对象的设计方法已经成为人们开发软件时的首选技术。今天,面向对象技术是一种非常流行经成为人们开发软件时的首选技术。今天,面向对象技术是一种非常流行的软件开发技术的
25、软件开发技术 所谓面向对象就是指一个软件系统使用对象、类、继承、通信等所谓面向对象就是指一个软件系统使用对象、类、继承、通信等4 4个概个概念设计和实现的,一个面向对象的程序的每一组成部分都是对象,计算是念设计和实现的,一个面向对象的程序的每一组成部分都是对象,计算是通过建立新的对象与对象之间的通信来执行的。即通过建立新的对象与对象之间的通信来执行的。即面向对象面向对象 =对象对象 +类类 +继承继承 +通信通信 下面分别介绍面向对象方法中几个重要的基本概念,这些概念是理解下面分别介绍面向对象方法中几个重要的基本概念,这些概念是理解和使用面向对象方法的关键和基础和使用面向对象方法的关键和基础西
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 软件工程 基础
限制150内