I_SE.T13.ppt

上传人:hyn****60 文档编号:70977951 上传时间:2023-01-31 格式:PPT 页数:35 大小:968.50KB
返回 下载 相关 举报
I_SE.T13.ppt_第1页
第1页 / 共35页
I_SE.T13.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《I_SE.T13.ppt》由会员分享,可在线阅读,更多相关《I_SE.T13.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件工程软件工程Software Engineering面向面向面向面向2121世纪课程世纪课程世纪课程世纪课程渤海大学信息科学与工程学院第十三章第十三章 程序设计语言和编码程序设计语言和编码软件工程编码阶段的任务是将详细设计翻译成计算软件工程编码阶段的任务是将详细设计翻译成计算软件工程编码阶段的任务是将详细设计翻译成计算软件工程编码阶段的任务是将详细设计翻译成计算机可以机可以机可以机可以“理解理解理解理解”并且最终可运行的代码。并且最终可运行的代码。并且最终可运行的代码。并且最终可运行的代码。根据基本机制可将程序设计语言分为过程式程序设根据基本机制可将程序设计语言分为过程式程序设根据基本机制

2、可将程序设计语言分为过程式程序设根据基本机制可将程序设计语言分为过程式程序设计语言、函数式程序设计语言、逻辑程序设计语言计语言、函数式程序设计语言、逻辑程序设计语言计语言、函数式程序设计语言、逻辑程序设计语言计语言、函数式程序设计语言、逻辑程序设计语言和面向对象程序设计语言四类。和面向对象程序设计语言四类。和面向对象程序设计语言四类。和面向对象程序设计语言四类。编码阶段不应单纯追求编码效率,而应全面考虑编编码阶段不应单纯追求编码效率,而应全面考虑编编码阶段不应单纯追求编码效率,而应全面考虑编编码阶段不应单纯追求编码效率,而应全面考虑编写程序、测试程序、说明程序和修改程序等各项工写程序、测试程序

3、、说明程序和修改程序等各项工写程序、测试程序、说明程序和修改程序等各项工写程序、测试程序、说明程序和修改程序等各项工作。作。作。作。影响编码质量的因素包括编程语言、编程准则和编影响编码质量的因素包括编程语言、编程准则和编影响编码质量的因素包括编程语言、编程准则和编影响编码质量的因素包括编程语言、编程准则和编程风格,它们对程序的可靠性、可读性、可测试性程风格,它们对程序的可靠性、可读性、可测试性程风格,它们对程序的可靠性、可读性、可测试性程风格,它们对程序的可靠性、可读性、可测试性和可维护性都将产生深远的影响。和可维护性都将产生深远的影响。和可维护性都将产生深远的影响。和可维护性都将产生深远的影

4、响。渤海大学信息科学与工程学院教学目标教学目标程序设计语言程序设计语言程序设计过程程序设计过程编程标准编程标准渤海大学信息科学与工程学院重点、难点重点、难点编程标准编程标准渤海大学信息科学与工程学院13.1 程序设计语言程序设计语言编码的过程就是把详细设计翻译成可执行代编码的过程就是把详细设计翻译成可执行代码的过程,也是人借助编程语言与计算机通码的过程,也是人借助编程语言与计算机通信的过程。信的过程。编程语言的种种特性必然影响到翻译和通信编程语言的种种特性必然影响到翻译和通信过程的质量和效率。过程的质量和效率。程序设计语言既要支持软件工程的原理,又程序设计语言既要支持软件工程的原理,又要符合程

5、序员的心理。要符合程序员的心理。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院13.1.1 程序设计语言的特性程序设计语言的特性特定的程序设计语言有一些特定的限制,它特定的程序设计语言有一些特定的限制,它们影响着程序员描述和处理问题。们影响着程序员描述和处理问题。设计程序语言应着重考虑程序员易学易用,设计程序语言应着重考虑程序员易学易用,不易出错。不易出错。程序设计语言必须考虑下列特性:程序设计语言必须考虑下列特性:一致性:指语言采用标记法协调一致的程度。一致性:指语言采用标记法协调一致的程度。一致性:指语言采用标记法协调一致的程度。一致性:指语言采用标记法协

6、调一致的程度。二义性:导致程序员对程序理解的程度。二义性:导致程序员对程序理解的程度。二义性:导致程序员对程序理解的程度。二义性:导致程序员对程序理解的程度。紧致性:程序员必须记忆的与编码有关的信息总紧致性:程序员必须记忆的与编码有关的信息总紧致性:程序员必须记忆的与编码有关的信息总紧致性:程序员必须记忆的与编码有关的信息总量。量。量。量。局部性:指语言的联想特征。(块、异常处理)局部性:指语言的联想特征。(块、异常处理)局部性:指语言的联想特征。(块、异常处理)局部性:指语言的联想特征。(块、异常处理)线性:维持功能域。线性:维持功能域。线性:维持功能域。线性:维持功能域。13.1程序设计语

7、言程序设计语言渤海大学信息科学与工程学院程序设计语言的特性程序设计语言的特性为满足软件工程的需要,程序设计语言还应为满足软件工程的需要,程序设计语言还应考虑:考虑:(1)将设计翻译为代码的便利程度将设计翻译为代码的便利程度(2)编译器的效率编译器的效率(3)源代码的可移植性源代码的可移植性(4)配套的开发工具配套的开发工具(5)可维护性可维护性13.1程序设计语言程序设计语言渤海大学信息科学与工程学院13.1.2 程序设计语言的基本机制程序设计语言的基本机制软件工程师应该对程序设计语言的基本机制软件工程师应该对程序设计语言的基本机制以及它们对软件质量的影响有一个全面的了以及它们对软件质量的影响

8、有一个全面的了解,以便为一个开发项目选择语言或为一个解,以便为一个开发项目选择语言或为一个设计选择实现方案时作出合理的技术抉择。设计选择实现方案时作出合理的技术抉择。过程式程序设计语言的基本机制包括:过程式程序设计语言的基本机制包括:(1)对象说明对象说明 预先说明程序中将要使用的对象预先说明程序中将要使用的对象(常量和常量和变量变量)的名字和类型,便于编译程序检查使用的名字和类型,便于编译程序检查使用方式的合法性,从而帮助程序员发现错误。方式的合法性,从而帮助程序员发现错误。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院过程式程序设计语言的基本机制过程式程序设计语言的基本机制(续

9、续)(2)(2)数据类型的定义和检查数据类型的定义和检查数据类型的定义和检查数据类型的定义和检查 数据类型定义是一种抽象机制数据类型定义是一种抽象机制数据类型定义是一种抽象机制数据类型定义是一种抽象机制,它刻画一组数它刻画一组数它刻画一组数它刻画一组数据对象和作用在数据对象上的一组操作。据对象和作用在数据对象上的一组操作。据对象和作用在数据对象上的一组操作。据对象和作用在数据对象上的一组操作。(3)(3)子程序子程序子程序子程序 子程序是可独立编译的程序单元子程序是可独立编译的程序单元子程序是可独立编译的程序单元子程序是可独立编译的程序单元,包含自己的包含自己的包含自己的包含自己的数据结构和控

10、制结构。在不同的语言中数据结构和控制结构。在不同的语言中数据结构和控制结构。在不同的语言中数据结构和控制结构。在不同的语言中,子程序可子程序可子程序可子程序可能分别称作子例程、过程或函数。子程序一般具备能分别称作子例程、过程或函数。子程序一般具备能分别称作子例程、过程或函数。子程序一般具备能分别称作子例程、过程或函数。子程序一般具备如下三种机制如下三种机制如下三种机制如下三种机制:子程序说明子程序说明子程序说明子程序说明,它给出子程序与其他它给出子程序与其他它给出子程序与其他它给出子程序与其他程序单元的接口程序单元的接口程序单元的接口程序单元的接口;子程序体子程序体子程序体子程序体,它实现子程

11、序的数据它实现子程序的数据它实现子程序的数据它实现子程序的数据和控制结构和控制结构和控制结构和控制结构;调用方式。调用方式。调用方式。调用方式。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院过程式程序设计语言的基本机制过程式程序设计语言的基本机制(续续)(4)控制结构控制结构 几乎所有现代程序设计语言都允许程序几乎所有现代程序设计语言都允许程序员使用顺序、分枝和循环三类结构化构件,员使用顺序、分枝和循环三类结构化构件,甚至许多语言的结构编辑器直接给出它们对甚至许多语言的结构编辑器直接给出它们对应的语法框架。应的语法框架。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院程序

12、设计语言的基本机制程序设计语言的基本机制函数式程序设计语言一般包括数据对象定义和函数定函数式程序设计语言一般包括数据对象定义和函数定函数式程序设计语言一般包括数据对象定义和函数定函数式程序设计语言一般包括数据对象定义和函数定义两种基本机制。在其颇具代表性的两种语言中,义两种基本机制。在其颇具代表性的两种语言中,义两种基本机制。在其颇具代表性的两种语言中,义两种基本机制。在其颇具代表性的两种语言中,LISPLISP采用采用采用采用表达式的形式定义函数,而表达式的形式定义函数,而表达式的形式定义函数,而表达式的形式定义函数,而MLML采用递采用递采用递采用递归方程描述函数。归方程描述函数。归方程描

13、述函数。归方程描述函数。逻辑程序设计语言一般为某种符号逻辑系统,其中基逻辑程序设计语言一般为某种符号逻辑系统,其中基逻辑程序设计语言一般为某种符号逻辑系统,其中基逻辑程序设计语言一般为某种符号逻辑系统,其中基于于于于HornHorn短句的一类语言短句的一类语言短句的一类语言短句的一类语言(如如如如Prolog)Prolog)是迄今为止发是迄今为止发是迄今为止发是迄今为止发展得较完善和实用的语言。它采用特定的逻辑语句形展得较完善和实用的语言。它采用特定的逻辑语句形展得较完善和实用的语言。它采用特定的逻辑语句形展得较完善和实用的语言。它采用特定的逻辑语句形式描述问题域本身的知识和信息式描述问题域本

14、身的知识和信息式描述问题域本身的知识和信息式描述问题域本身的知识和信息(称为事实和规则称为事实和规则称为事实和规则称为事实和规则)以以以以及待解问题及待解问题及待解问题及待解问题(称为目标称为目标称为目标称为目标),计算机采用某种推理规则,计算机采用某种推理规则,计算机采用某种推理规则,计算机采用某种推理规则(如归结原理如归结原理如归结原理如归结原理)模仿逻辑推理过程求解问题。模仿逻辑推理过程求解问题。模仿逻辑推理过程求解问题。模仿逻辑推理过程求解问题。面向对象程序设计语言最基本的机制包括类、子类、面向对象程序设计语言最基本的机制包括类、子类、面向对象程序设计语言最基本的机制包括类、子类、面向

15、对象程序设计语言最基本的机制包括类、子类、对象和实例的定义,单继承和多继承,对象的部分对象和实例的定义,单继承和多继承,对象的部分对象和实例的定义,单继承和多继承,对象的部分对象和实例的定义,单继承和多继承,对象的部分整体关系,消息传递和动态链接等等。整体关系,消息传递和动态链接等等。整体关系,消息传递和动态链接等等。整体关系,消息传递和动态链接等等。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院13.1.3 程序设计语言的演变和分类程序设计语言的演变和分类程序设计语言发展到今天程序设计语言发展到今天,大致可划分为四代。大致可划分为四代。13.1程序设计语言程序设计语言渤海大学信息

16、科学与工程学院程序设计语言的演变和分类程序设计语言的演变和分类第一代语言指与机器紧密相关的机器语言和汇编语第一代语言指与机器紧密相关的机器语言和汇编语第一代语言指与机器紧密相关的机器语言和汇编语第一代语言指与机器紧密相关的机器语言和汇编语言,其历史可追溯到第一台电子计算机问世,甚至言,其历史可追溯到第一台电子计算机问世,甚至言,其历史可追溯到第一台电子计算机问世,甚至言,其历史可追溯到第一台电子计算机问世,甚至更早。因其与硬件操作一一对应,基本上有多少种更早。因其与硬件操作一一对应,基本上有多少种更早。因其与硬件操作一一对应,基本上有多少种更早。因其与硬件操作一一对应,基本上有多少种计算机就有

17、多少种汇编语言。计算机就有多少种汇编语言。计算机就有多少种汇编语言。计算机就有多少种汇编语言。第二代语言是第二代语言是第二代语言是第二代语言是5050年代未年代未年代未年代未6060年代初先后出现的,它年代初先后出现的,它年代初先后出现的,它年代初先后出现的,它们应用面广,为人们熟悉和接受,有大量成熟的程们应用面广,为人们熟悉和接受,有大量成熟的程们应用面广,为人们熟悉和接受,有大量成熟的程们应用面广,为人们熟悉和接受,有大量成熟的程序库。它们是现代序库。它们是现代序库。它们是现代序库。它们是现代(第三代第三代第三代第三代)程序设计语言的基础和程序设计语言的基础和程序设计语言的基础和程序设计语

18、言的基础和前身。这代语言包括前身。这代语言包括前身。这代语言包括前身。这代语言包括FortranFortran、CobolCobol、AlgolAlgol 6060和和和和BasicBasic等。等。等。等。第三代语言第三代语言第三代语言第三代语言(也称为现代或结构化程序语言也称为现代或结构化程序语言也称为现代或结构化程序语言也称为现代或结构化程序语言)的特点的特点的特点的特点是直接支持结构化构件,并具有很强的过程能力和是直接支持结构化构件,并具有很强的过程能力和是直接支持结构化构件,并具有很强的过程能力和是直接支持结构化构件,并具有很强的过程能力和数据结构能力。这代语言本身又可细分为三类:通

19、数据结构能力。这代语言本身又可细分为三类:通数据结构能力。这代语言本身又可细分为三类:通数据结构能力。这代语言本身又可细分为三类:通用高级语言、面向对象语言和专用语言。用高级语言、面向对象语言和专用语言。用高级语言、面向对象语言和专用语言。用高级语言、面向对象语言和专用语言。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院程序设计语言的演变和分类程序设计语言的演变和分类第四代语言第四代语言(4GL)上升到更高的一个抽象层上升到更高的一个抽象层次,尽管它仍象其他人工语言一样用自己的次,尽管它仍象其他人工语言一样用自己的语法形式表示控制和数据结构,但已不再涉语法形式表示控制和数据结构,但

20、已不再涉及太多的算法性细节。迄今及太多的算法性细节。迄今,使用最广的四代使用最广的四代语言是数据库查询语言,它支持用户以复杂语言是数据库查询语言,它支持用户以复杂的方式操作数据库。的方式操作数据库。程序生成器程序生成器(Program Generators)代表代表更为复杂的一类更为复杂的一类4GL,它输入由高级语言书写它输入由高级语言书写的语句,自动产生完整的三代语言程序。的语句,自动产生完整的三代语言程序。13.1程序设计语言程序设计语言渤海大学信息科学与工程学院13.1.4 程序设计语言的选择程序设计语言的选择一般而言,衡量某种程序语言是否适合于特一般而言,衡量某种程序语言是否适合于特定

21、的项目,应考虑下面一些因素:定的项目,应考虑下面一些因素:(1)(1)(1)(1)应用领域应用领域应用领域应用领域(2)(2)(2)(2)算法和计算复杂性算法和计算复杂性算法和计算复杂性算法和计算复杂性(3)(3)(3)(3)软件运行环境软件运行环境软件运行环境软件运行环境(4)(4)(4)(4)用户需求中关于性能方面的需要用户需求中关于性能方面的需要用户需求中关于性能方面的需要用户需求中关于性能方面的需要(5)(5)(5)(5)数据结构的复杂性数据结构的复杂性数据结构的复杂性数据结构的复杂性(6)(6)(6)(6)软件开发人员的知识水平软件开发人员的知识水平软件开发人员的知识水平软件开发人员

22、的知识水平(7)(7)(7)(7)可用的编译器与交叉编译器可用的编译器与交叉编译器可用的编译器与交叉编译器可用的编译器与交叉编译器13.1程序设计语言程序设计语言渤海大学信息科学与工程学院13.2 程序设计过程程序设计过程程序设计即用某种程序设计语言将详细设计程序设计即用某种程序设计语言将详细设计编码为计算机可接受的形式。编码为计算机可接受的形式。过程式程序设计因过程式语言与大多数过程过程式程序设计因过程式语言与大多数过程设计描述有直接的对应关系,所以编码过程设计描述有直接的对应关系,所以编码过程相对直观、易掌握。相对直观、易掌握。函数程序设计简单地讲就是以某种方式描述函数程序设计简单地讲就是

23、以某种方式描述和定义函数。和定义函数。逻辑程序设计被逻辑程序设计被R.Kowalski概括为:在计概括为:在计算机中用逻辑描述信息;用逻辑向计算机提算机中用逻辑描述信息;用逻辑向计算机提出问题;用逻辑推理解决这些问题。出问题;用逻辑推理解决这些问题。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院13.2.1 面向对象语言对面向对象语言对OOD的支持的支持直接支持面向对象方法的语言一般提供抽象直接支持面向对象方法的语言一般提供抽象数据类型数据类型(即类即类)和继承的机制。和继承的机制。例例13.1:定义抽象数据类型:定义抽象数据类型Sensor(传传感器感器)例

24、例13.2:定义:定义Sensor的子类的子类CriticalSensor例例13.3:假设一个传感器一定装在某座建:假设一个传感器一定装在某座建筑物上,而一座建筑物内可安装多种传感筑物上,而一座建筑物内可安装多种传感器,表示此关系。器,表示此关系。13.2程序设计过程程序设计过程渤海大学信息科学与工程学院13.2.2 基于对象语言对基于对象语言对OOD的支持的支持Ada这类语言虽能支持抽象数据类型,但不这类语言虽能支持抽象数据类型,但不能直接支持继承、消息传递、动态链接等概能直接支持继承、消息传递、动态链接等概念,一般认为念,一般认为Ada是基于对象的语言。是基于对象的语言。Ada的程序包能

25、将数据结构的程序包能将数据结构(属性属性)和作用在和作用在数据结构上的操作数据结构上的操作(方法方法)很好地封装起来,很好地封装起来,形成一个类。形成一个类。例例13.1、13.2、13.3用用Ada对应的描对应的描述。述。13.2程序设计过程程序设计过程渤海大学信息科学与工程学院13.2.3 过程式语言对过程式语言对OOD的支持的支持传统语言传统语言(如如C语言语言)对数据抽象、封装等概对数据抽象、封装等概念的支持较基于对象的语言念的支持较基于对象的语言(如如Ada)更弱。更弱。类与对象在类与对象在C语言中,只好用结构表示。语言中,只好用结构表示。例例13.1、13.2、13.3用用C语言的

26、描述。语言的描述。13.2程序设计过程程序设计过程渤海大学信息科学与工程学院13.3 编程标准编程标准人们总是希望编制清晰、紧凑、高效的程序,但这人们总是希望编制清晰、紧凑、高效的程序,但这人们总是希望编制清晰、紧凑、高效的程序,但这人们总是希望编制清晰、紧凑、高效的程序,但这些特性在编码时往往互相矛盾,一般应依次考虑下些特性在编码时往往互相矛盾,一般应依次考虑下些特性在编码时往往互相矛盾,一般应依次考虑下些特性在编码时往往互相矛盾,一般应依次考虑下列原则列原则列原则列原则:(1)(1)编制易于修改、维护的代码编制易于修改、维护的代码编制易于修改、维护的代码编制易于修改、维护的代码 主要措施是

27、在模块化和面向对象详细设计主要措施是在模块化和面向对象详细设计主要措施是在模块化和面向对象详细设计主要措施是在模块化和面向对象详细设计的基础上的基础上的基础上的基础上,进一步按属性划分程序。进一步按属性划分程序。进一步按属性划分程序。进一步按属性划分程序。(2)(2)编制易于测试的代码编制易于测试的代码编制易于测试的代码编制易于测试的代码 一般来说一般来说一般来说一般来说,人们总是通过运用条件编译语句人们总是通过运用条件编译语句人们总是通过运用条件编译语句人们总是通过运用条件编译语句尽早设计出测试用例、采用统一的命名规则管理尽早设计出测试用例、采用统一的命名规则管理尽早设计出测试用例、采用统一

28、的命名规则管理尽早设计出测试用例、采用统一的命名规则管理这些测试用例并适时地进行回归测试等一系列措这些测试用例并适时地进行回归测试等一系列措这些测试用例并适时地进行回归测试等一系列措这些测试用例并适时地进行回归测试等一系列措施提高程序的可测试性。施提高程序的可测试性。施提高程序的可测试性。施提高程序的可测试性。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院编程标准(续)编程标准(续)(3)(3)必须将编程与编文档的工作统一开来。一个程必须将编程与编文档的工作统一开来。一个程必须将编程与编文档的工作统一开来。一个程必须将编程与编文档的工作统一开来。一个程序段的文

29、档应包括下列内容:序段的文档应包括下列内容:序段的文档应包括下列内容:序段的文档应包括下列内容:代码的功能代码的功能代码的功能代码的功能代码的完成者代码的完成者代码的完成者代码的完成者代码在整个软件系统中的位置代码在整个软件系统中的位置代码在整个软件系统中的位置代码在整个软件系统中的位置代码编制、复审的时间代码编制、复审的时间代码编制、复审的时间代码编制、复审的时间保留代码的原因保留代码的原因保留代码的原因保留代码的原因代码中如何使用数据结构和算法代码中如何使用数据结构和算法代码中如何使用数据结构和算法代码中如何使用数据结构和算法(4)(4)编程中采用统一的标准和约定,降低程序复杂编程中采用统

30、一的标准和约定,降低程序复杂编程中采用统一的标准和约定,降低程序复杂编程中采用统一的标准和约定,降低程序复杂性性性性(5)(5)限定每一层的副作用,减少耦合度(分解)限定每一层的副作用,减少耦合度(分解)限定每一层的副作用,减少耦合度(分解)限定每一层的副作用,减少耦合度(分解)(6)(6)尽可能地重用尽可能地重用尽可能地重用尽可能地重用13.3编程标准编程标准渤海大学信息科学与工程学院13.4 编程风格编程风格按照软件工程的观点按照软件工程的观点,程序是软件设计的自然程序是软件设计的自然结果结果,程序的质量主要取决于设计的质量程序的质量主要取决于设计的质量,根根据设计的要求选择了程序设计语言

31、之后据设计的要求选择了程序设计语言之后,编程编程的风格在很大程度上影响着程序的可读性、的风格在很大程度上影响着程序的可读性、可测试性和可维护性。可测试性和可维护性。鉴于软件开发的绝大部分成本消耗在测试和鉴于软件开发的绝大部分成本消耗在测试和维护阶段维护阶段,努力追求可测试性和可维护性极其努力追求可测试性和可维护性极其重要。重要。编程风格是在不影响性能的前提下编程风格是在不影响性能的前提下,有效地编有效地编排和组织程序以提高可读性和可维性。排和组织程序以提高可读性和可维性。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院(1)节俭化)节俭化提供尽可能简洁的代码。具

32、体措施包括:提供尽可能简洁的代码。具体措施包括:避免程序中不必要的动作和变量避免程序中不必要的动作和变量避免变量名重载避免变量名重载减小程序的体积减小程序的体积减少程序的执行时间减少程序的执行时间(提高速度提高速度)避免模块冗余和重复避免模块冗余和重复检查全局变量的副作用检查全局变量的副作用13.4编程风格编程风格渤海大学信息科学与工程学院(2)模块化)模块化把代码划分为内聚度高、富有意义的功把代码划分为内聚度高、富有意义的功能块。通常是把长且复杂的程序段或子能块。通常是把长且复杂的程序段或子程序分解为小且定义良好的程序段,具程序分解为小且定义良好的程序段,具体措施包括:体措施包括:确保物理和

33、逻辑功能密切相关确保物理和逻辑功能密切相关限定一个模块完成一个独立的功能限定一个模块完成一个独立的功能检查代码的重复率检查代码的重复率13.4编程风格编程风格渤海大学信息科学与工程学院(3)简单化)简单化去掉过分复杂和不必要的矫揉造作。具去掉过分复杂和不必要的矫揉造作。具体措施包括:体措施包括:采用简单和直截了当的算法采用简单和直截了当的算法使用简单的数据结构,避免使用多维数使用简单的数据结构,避免使用多维数组、指针和复杂的表组、指针和复杂的表注意对象命名的一致性注意对象命名的一致性以手工方式简化算术和逻辑表达式。以手工方式简化算术和逻辑表达式。13.4编程风格编程风格渤海大学信息科学与工程学

34、院(4)结构化)结构化把程序的各个构件组织成一个有效系统。具体措施包括:把程序的各个构件组织成一个有效系统。具体措施包括:把程序的各个构件组织成一个有效系统。具体措施包括:把程序的各个构件组织成一个有效系统。具体措施包括:按标准化的次序说明数据按标准化的次序说明数据按标准化的次序说明数据按标准化的次序说明数据 按字母顺序说明对象名按字母顺序说明对象名按字母顺序说明对象名按字母顺序说明对象名 使用读者明了的结构化程序部件使用读者明了的结构化程序部件使用读者明了的结构化程序部件使用读者明了的结构化程序部件 采用直接了当的算法采用直接了当的算法采用直接了当的算法采用直接了当的算法 根据应用背景排列程

35、序各部分根据应用背景排列程序各部分根据应用背景排列程序各部分根据应用背景排列程序各部分 不随意为效率而牺牲程序的清晰度和可读性不随意为效率而牺牲程序的清晰度和可读性不随意为效率而牺牲程序的清晰度和可读性不随意为效率而牺牲程序的清晰度和可读性 让机器多做琐碎、繁琐的工作让机器多做琐碎、繁琐的工作让机器多做琐碎、繁琐的工作让机器多做琐碎、繁琐的工作,如重复工作和库函数如重复工作和库函数如重复工作和库函数如重复工作和库函数 用公共函数调用代替重复出现的表达式用公共函数调用代替重复出现的表达式用公共函数调用代替重复出现的表达式用公共函数调用代替重复出现的表达式 检查参数传递情况保证有效性检查参数传递情

36、况保证有效性检查参数传递情况保证有效性检查参数传递情况保证有效性 检查多层嵌套结构检查多层嵌套结构检查多层嵌套结构检查多层嵌套结构,确认是否存在某些语句可从内层循环中确认是否存在某些语句可从内层循环中确认是否存在某些语句可从内层循环中确认是否存在某些语句可从内层循环中提出提出提出提出,避免大量使用嵌套循环结构和嵌套分枝结构避免大量使用嵌套循环结构和嵌套分枝结构避免大量使用嵌套循环结构和嵌套分枝结构避免大量使用嵌套循环结构和嵌套分枝结构 坚持使用统一缩进规则坚持使用统一缩进规则坚持使用统一缩进规则坚持使用统一缩进规则 只编制单入口单出口的代码只编制单入口单出口的代码只编制单入口单出口的代码只编制

37、单入口单出口的代码13.4编程风格编程风格渤海大学信息科学与工程学院(5)文档化)文档化程序能自说明。具体措施包括:程序能自说明。具体措施包括:有效、适当地使用注释,保证注释有意有效、适当地使用注释,保证注释有意义说明性强义说明性强使用含义鲜明的变量名使用含义鲜明的变量名协调使用程序块注释和程序行注释协调使用程序块注释和程序行注释始终坚持编制文档始终坚持编制文档13.4编程风格编程风格渤海大学信息科学与工程学院(6)格式化)格式化尽量使程序布局合理、清晰、明了。具尽量使程序布局合理、清晰、明了。具体措施包括:体措施包括:有效地使用编程空间有效地使用编程空间(水平和垂直两个方水平和垂直两个方向向

38、),以助于读者理解以助于读者理解;适当插入括号适当插入括号,使表达式的运算次序清晰使表达式的运算次序清晰直观直观,排除二义性排除二义性;有效地使用空格符以区别程序的不同部有效地使用空格符以区别程序的不同部分分(例如例如,注释与程序、一个分程序与另一注释与程序、一个分程序与另一个分程序等等个分程序等等),提高程序的可读性。,提高程序的可读性。13.4编程风格编程风格渤海大学信息科学与工程学院13.5 程序设计支持环境程序设计支持环境(PSE)现今编程过程大多在一组现今编程过程大多在一组现今编程过程大多在一组现今编程过程大多在一组CASECASE工具的支持下进行工具的支持下进行工具的支持下进行工具

39、的支持下进行,这组工这组工这组工这组工具辅助完成编辑、编译、调试、项目管理等一系列任务具辅助完成编辑、编译、调试、项目管理等一系列任务具辅助完成编辑、编译、调试、项目管理等一系列任务具辅助完成编辑、编译、调试、项目管理等一系列任务,人人人人们称这组工具构成一个程序设计支持环境们称这组工具构成一个程序设计支持环境们称这组工具构成一个程序设计支持环境们称这组工具构成一个程序设计支持环境(PSE),PSE),一个富有吸一个富有吸一个富有吸一个富有吸引力的引力的引力的引力的PSEPSE应具备下列特性应具备下列特性应具备下列特性应具备下列特性:通用性通用性通用性通用性适用于不同的语言、不同的应用领域和开

40、发方法适用于不同的语言、不同的应用领域和开发方法适用于不同的语言、不同的应用领域和开发方法适用于不同的语言、不同的应用领域和开发方法;适应性适应性适应性适应性能通过开关设置配制出满足不同需要的能通过开关设置配制出满足不同需要的能通过开关设置配制出满足不同需要的能通过开关设置配制出满足不同需要的PSEPSE实例实例实例实例;开放性开放性开放性开放性能方便地增加新工具能方便地增加新工具能方便地增加新工具能方便地增加新工具;支持重用支持重用支持重用支持重用能支持可重用模块的存储、索引和查找能支持可重用模块的存储、索引和查找能支持可重用模块的存储、索引和查找能支持可重用模块的存储、索引和查找;自控性自

41、控性自控性自控性保证自身操作的正确和协调保证自身操作的正确和协调保证自身操作的正确和协调保证自身操作的正确和协调;自带数据库自带数据库自带数据库自带数据库提供数据库机制存储、管理已开发的软件产品提供数据库机制存储、管理已开发的软件产品提供数据库机制存储、管理已开发的软件产品提供数据库机制存储、管理已开发的软件产品;保证质量保证质量保证质量保证质量有助于提高所开发软件的质量有助于提高所开发软件的质量有助于提高所开发软件的质量有助于提高所开发软件的质量;吸引用户吸引用户吸引用户吸引用户用户愿意使用用户愿意使用用户愿意使用用户愿意使用;具有市场竞争力具有市场竞争力具有市场竞争力具有市场竞争力PSEP

42、SE能真正提高软件生产力。能真正提高软件生产力。能真正提高软件生产力。能真正提高软件生产力。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院示例:示例:渤海大学信息科学与工程学院示例:示例:13.5程序设计支持环境程序设计支持环境(PSE)渤海大学信息科学与工程学院小结小结编程就是将软件设计的结果用某种程序设计编程就是将软件设计的结果用某种程序设计语言描述出来,因此所选择的语言应尽量自语言描述出来,因此所选择的语言应尽量自然地支持软件设计方法,适合于所求解问题然地支持软件设计方法,适合于所求解问题的领域。的领域。编程时应综合考虑时空特性,理解、测试与编程时应综合

43、考虑时空特性,理解、测试与维护程序的便利等因素。维护程序的便利等因素。第十三章第十三章 程序设计语言和编码程序设计语言和编码渤海大学信息科学与工程学院作业作业P13.9,P13.12第一章第一章 软件与软件工程软件与软件工程渤海大学信息科学与工程学院1964年生于美国洛杉矶年生于美国洛杉矶1995年年2月,因入侵了美国摩月,因入侵了美国摩托罗拉、美国的托罗拉、美国的NOVELL、芬、芬兰的诺基亚、美国的兰的诺基亚、美国的SUNMICROSYSTEMS等高等高科技公司的计算机,盗走了各式科技公司的计算机,盗走了各式程序和数据而被判入狱程序和数据而被判入狱 凯文凯文米特尼克米特尼克世界头号黑客,世界头号黑客,15岁闯入了岁闯入了“北美空中防北美空中防护指挥系统护指挥系统”的计算机主机!的计算机主机!渤海大学信息科学与工程学院随语随语编程是硬道理。编程是硬道理。第一章第一章 软件与软件工程软件与软件工程渤海大学信息科学与工程学院

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁