软件工程——程序设计语言和编码.pptx
《软件工程——程序设计语言和编码.pptx》由会员分享,可在线阅读,更多相关《软件工程——程序设计语言和编码.pptx(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实现实现编码和测试统称为实现Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第1页/共75页软件实现从宏观上讲,软件实现包括详细设计、编程实现、单元测试和集成测试。从微观上讲,软件实现是指编程和单元测试。本章只讲编程实现方法,包括编码风格。还要求完成:1)用户使用手册的编写 2)用户安装手册的编写 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client
2、 Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第2页/共75页第13章程序设计语言与编码Programming languages and Coding 编码以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算 机可以理解并最终可运行的代码的过程。本章介绍程序设计语言的特点、发展和分类、开发时选择程序设计语言的标准、编程质量与程序设计语言的关系、编程标准和编程风格,最后简单介绍目前程序设计的支持环境。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Pro
3、file 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第3页/共75页第13章 程序设计语言和编码编码阶段不应单纯追求编码效率,而应全面考虑编写程序、测试程序、说明程序和修改程序等各项工作。影响编码质量的因素包括编程语言、编程准则和编程风格,它们对程序的可靠性、可读性、可测试性和可维护性都将产生一定的影响。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第4页/共75页13.1
4、 程序设计语言编码的过程就是把详细设计翻译成可执行代码的过程,也是人借助编程语言与计算机通信的过程。编程语言的种种特性必然影响到翻译和通信过程的质量和效率。程序设计语言既要支持软件工程的原理,又要符合程序员的心理。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第5页/共75页第13章 程序设计语言和编码13.1 程序设计语言程序设计语言的特性程序设计语言的发展和分类程序设计语言的选择标准13.2 编程质量与程序设计语
5、言13.3 编程标准和原则13.4 编程/编码风格13.5 程序设计支持环境(PSE)附录1:编码风格的规则和体现 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第6页/共75页程序设计语言的特性程序设计语言的特性心理特性心理特性/心理学观点心理学观点工程特性工程特性/工程观点工程观点语言特性语言特性技术特性技术特性/或称基本机制或称基本机制Evaluation only.Created with Aspose.Sl
6、ides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第7页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 一、心理特性/心理学观点l1)一致性(Uniformity)l2)二义性(ambiguity)l3)紧致性(compactness)l4)局部性(locality)l 线性(Linearity)l 传统性 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.
7、0.Copyright 2004-2011 Aspose Pty Ltd.第8页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 语言的几种特性(心理特性/心理学观点)1)一致性(Uniformity)指语言中采用的标记(Token)法协调一致的程度。例如“”在C语言中即可以在声明中表示其后的变量为指针变量,又可作间接访问运算符,还可以作乘法运算符,这种“一词多用”、一致性不好的语言程序不仅可读性差,而且在编写程序的过程中容易出错。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Pr
8、ofile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第9页/共75页13.1.1 程序设计语言的特点程序设计语言的特点语言的几种特性(心理特性/心理学观点)2)二义性(ambiguity)语言的二义性是指语言是否允许使用具有二义性的语句。允许使用二义性语句的语言在可理解性和可修改性上都要差一些。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第10页/共75页13.1.1
9、程序设计语言的特点程序设计语言的特点语言的几种特性(心理特性/心理学观点)3)紧致性(compactness)紧致性是指程序员写程序时必须记忆的关于语言的信息总量。决定紧致性的指标包括:语言对结构化的支持程度。关键字及操作符的数目,显然关键字和操作符的数目越多,则紧致性越差。标准函数的个数及复杂程度。通常紧致性和一致性是矛盾的。在选择程序语言时,必须在这两者之间找到平衡点。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd
10、.第11页/共75页13.1.1 程序设计语言的特点程序设计语言的特点语言的几种特性(心理特性/心理学观点)4)局部性(locality)局部性是指语言的模块化和信息隐藏特性。一个局部性差的语言必然会导致程序的复杂性增加。比如,一种不具有块机制的语言,那么信息的作用域必然是全局的,程序的走向也是全局的,从而导致程序的复杂性增加,可读性、可修改性和可维护性都会相应降低。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第1
11、2页/共75页13.1.1 程序设计语言的特性影响程序员心理的语言特性还有:线性(Linearity):人们习惯于按逻辑上线性的次序理解程序,程序中大量的分支和循环、随意的GOTO语句会破坏程序的线性,提倡结构化程序设计。传统性:传统性容易影响人们学习新语种的积极性 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第13页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 二、工程特性
12、/工程观点l1)将设计翻译成代码的难易程度l2)编译器所生成代码的效率l3)源代码的可移植性l4)配套的开发工具l5)可维护性(语言本身的自说明特性)Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第14页/共75页程序语言其他连带的特性:工程特性1)将设计翻译成代码的难易程度例:语言对语言对OODOOD的支持的支持直接支持面向对象方法的语言一般提供抽象数据类型(即类)和继承的机制。例13.1:定义抽象数据类型Sens
13、or(传感器)例13.2:定义Sensor的子类CriticalSensor例13.3:假设一个传感器一定装在某座建筑物上,而一座建筑物内可安装多种传感器,表示此关系。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第15页/共75页程序语言其他连带的特性:工程特性1)将设计翻译成代码的难易程度例:语言对语言对OODOOD的支持的支持Ada这类语言虽能支持抽象数据类型,但不能直接支持继承、消息传递、动态链接等概念,一般
14、认为Ada是基于对象的语言。Ada的程序包能将数据结构(属性)和作用在数据结构上的操作(方法)很好地封装起来,形成一个类。例13.1、13.2、13.3用Ada对应的描述。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第16页/共75页程序语言其他连带的特性:工程特性1)将设计翻译成代码的难易程度例:语言对OOD的支持传统语言(如C语言)对数据抽象、封装等概念的支持较基于对象的语言(如Ada)更弱。类与对象在C语言中
15、,只好用结构表示。例13.1、13.2、13.3用C语言的描述。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第17页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 三、语言特性l从语言级别看低级语言高级语言超高级语言l从应用范围看通用语言专用语言 l从对用户要求看从对用户要求看l过程式语言l非过程式语言l从语言所含的成分看从语言所含的成分看l顺序语言l并发语言l分布式语言Eva
16、luation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第18页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 四、技术特性/或称基本机制 1.名字说明和类型说明 2.变量初始化 3.程序对象的局部性 4.程序块结构 5.程序控制结构 6.异常处理 7.独立编译机制 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Pro
17、file 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第19页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 四、技术特性/或称基本机制 (1)对象说明(名字说明)(2)数据类型的定义和检查 (3)子程序 (4)控制结构 (5)函数式,数据对象定义和函数定义 (6)Horn子句,事实和规则、逻辑推理 (7)类、子类、对象和实例,继承 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004
18、-2011 Aspose Pty Ltd.第20页/共75页13.1 程序设计语言 13.1.1 程序设计语言的特点程序设计语言的特点 四、技术特性/或称基本机制根据基本机制可将程序设计语言分为过程式程序设计语言、函数式程序设计语言、逻辑程序设计语言和面向对象程序设计语言四类。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第21页/共75页13.1.2 程序设计语言的发展和分类程序设计语言的分类按语言级别:低级语言和
19、高级语言;按应用范围:通用语言和专用语言;按用户要求:过程式和非过程式语言;按语言所含的成分:顺序语言、并发语言和分布式语言 根据基本机制可将程序设计语言分为过程式程序设计语言、函数式程序设计语言、逻辑程序设计语言和面向对象程序设计语言四类。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第22页/共75页13.1.2 程序设计语言的发展和分类程序设计语言的发展史第一代语言:机器语言和汇编语言第二代语言:早期的高级语言
20、,如BASIC,FORTRAN,COBOL等第三代语言:具有很强的数据结构和过程描述能力,支持结构化编程,如Pascal,Modula,C,Ada等第四代语言(4GL):这类语言出现于七十年代,其目的是为了提高程序开发速度,以及让非专业用户能直接编制计算机程序 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第23页/共75页13.1.2 程序设计语言的发展和分类第四代语言(4GL)4GL还局限在某些领域内,如数据库查
21、询语言。程序生成器代表了更为通用的一类4GL,程序生成器可以将更为自然的语言描述翻译成第三代语言程序,进而更好地消除设计和代码之间的语义断层。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第24页/共75页13.1.2 程序设计语言的发展和分类程序设计语言发展到今天,大致可划分为四代。Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profi
22、le 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第25页/共75页13.1.2 程序设计语言的发展和分类4GL的特点 4GL有很强的查询、存储、维护等数据管理机制,特别适用管理信息系统编程。4GL提供一组高效的非过程化命令,组成语言的基本语句。用户编程不必描述实现的细节。4GL除含有程序控制逻辑和数据库操作语句外,还包括生成和处理报表、表格、图形,以及实现数据运算和分析统计功能的各种语句,构成了一个多功能、一体化的语言系统,可适应多种应用开发的需要。4GL的编译器或解释器一般都较大,速度慢,并尽可能容错。Evaluation only.Created
23、 with Aspose.Slides for.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第26页/共75页13.1.2 程序设计语言的发展和分类第四代语言4GL的特点 目前,第四代语言的种类繁多,尚无标准,在语法和能力上有很大差异,其中一些支持非过程式编程,更多的是既含有非过程语句,也含有过程语句。典型的4GL有:数据库查询语言、报表生成程序、应用生成程序、电子表格、图形语言等。多数4GL是面向领域的,很少是通用的。Evaluation only.Created with Aspose.Slides f
24、or.NET 3.5 Client Profile 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第27页/共75页13.1.2 程序设计语言的发展和分类此外,一些决策支持语言,原型语言,形式化规格说明语言,甚至个人计算机环境中的一些工具也被认为属于4GL的范畴。第三代语言的每一条语句一般被编译成5-10条机器代码指令。第四代语言(4GL,超高级语言)是非过程化语言。这类语言的一条语句一般被编译成30-50条机器代码 Evaluation only.Created with Aspose.Slides for.NET 3.5 Client Profile
25、 5.2.0.0.Copyright 2004-2011 Aspose Pty Ltd.第28页/共75页13.1.2 程序设计语言的发展和分类面向对象语言在过程型语言的基础上发展而来的。一类是混合型面向对象语言,如C+语言。C+语言是面向对象机制的C语言的一个超集。任何C程序不需改变就能把它们从结构化范型平滑地过渡到面向对象范型。另一类是纯面向对象语言,如Java语言。Java语言是继C+语言之后,当今最流行的网络编程语言。它的面向对象、跨平台和分布式等特点,极大地拓展了应用程序的内涵和外延,给传统编程带来了一系列崭新的概念,成为编程语言发展的潮流和方向。Evaluation only.Cr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 程序设计语言 编码
限制150内