《软件工程》-曹哲-电子教案 第11章

上传人:E**** 文档编号:89423681 上传时间:2019-05-25 格式:PPT 页数:21 大小:139.50KB
返回 下载 相关 举报
《软件工程》-曹哲-电子教案 第11章_第1页
第1页 / 共21页
《软件工程》-曹哲-电子教案 第11章_第2页
第2页 / 共21页
《软件工程》-曹哲-电子教案 第11章_第3页
第3页 / 共21页
《软件工程》-曹哲-电子教案 第11章_第4页
第4页 / 共21页
《软件工程》-曹哲-电子教案 第11章_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《《软件工程》-曹哲-电子教案 第11章》由会员分享,可在线阅读,更多相关《《软件工程》-曹哲-电子教案 第11章(21页珍藏版)》请在金锄头文库上搜索。

1、ZLL,BeiHua,软件工程,主编 曹哲 高诚 中国水利水电出版社,ZLL,BeiHua,第11章 程序设计语言与编码,编码以详细设计说明书为输入,将该输入用某种程序设计语言翻译成计算 机可以理解并最终可运行的代码的过程。 本章介绍程序设计语言的特点、发展和分类、开发时选择程序设计语言的标准、编程质量与程序设计语言的关系、编程标准和编程风格,最后简单介绍目前程序设计的支持环境。,ZLL,BeiHua,11.1 程序设计语言11.1.1特性及选择,1工程特性 从软件工程的观点和程序设计语言的特性来说,进行软件开发时要着重考虑软件开发项目的需求,因此对程序编码有如下要求: (1)可移植性 指程序

2、从一个计算机环境移植到另一个计算机环境的难易程度,计算机环境是指不同硬件、不同的操作系统版本。 (2)开发工具的可利用性 指软件开发工具在缩短编码时间,改进源代码的质量方面的能力。 (3)软件的可重用性 指编程语言提供可重复使用的软件成分的能力,如模块化的程序可通过源代码剪贴、使用继承方式实现软件重用。提供软件重用性的程序设计语言可以大大提高源程序的利用率。 (4)可维护性 指将详细设计转变为源程序的能力和对源程序进行维护的方便性。因此,将设计文档转化为源程序特性、源程序的可读性和语言的文档化特性对软件的可维护性具有重大的影响。,ZLL,BeiHua,11.1 程序设计语言11.1.1特性及选

3、择,2技术特性 在确定了软件需求之后,所选择的语言的技术特性会对软件工程的其余阶段有一定的影响,因此要根据项目的特点选择相应的语言。比如,有的要求实时处理能力强,有的要求对数据库进行很方便的操作,有的要求能对硬件做一些操作。一般在软件设计阶段的设计质量与语言的关系不大(面向对象设计除外),但在编码阶段,质量往往受语言特点的影响,甚至可能会影响到设计阶段的质量。如面向对象的语言可以提供抽象类、继承等方法,JAVA会提供关于网络设计方面的很多工具,而汇编语言可以直接对机器硬件进行操作。当选择了一种语言,就可以影响到对概要设计和详细设计的实现。语言的特性对于软件的测试与维护也有一定的影响,支持结构化

4、设计的语言有利于减少程序环路的复杂性,使程序易测试、易维护。,ZLL,BeiHua,11.1 程序设计语言11.1.1特性及选择,3心理特性 语言的心理特性指影响程序员心理的语言性能。程序的编写最终要靠人来实现,因此人的因素对程序的实现质量有很大的影响。而程序语言的心理特点,主要是表现在编码实现时对人的影响,包括对程序代码的理解等。它在语言中的表现有以下几个方面。 (1)歧义性 对于一个程序代码,不同的人对它的意义有不同的解释,这就是心理上的二义性。但是实际上编译程序总是根据语法,按一种固定方法来解释语句,不存在二义性。 (2)简洁性 人们要掌握一种语言,就要记住语句的种类、各种数据类型、各种

5、运算符、各种内部函数和内部过程,这些成分数量越多,简洁性越差,人们越难以掌握。但过分简洁会造成程序难以理解,一致性差。因此语言的简洁必须有一个合适的度。 (3)局部性和顺序性 程序语言的局部性是人的记忆的联想方式的表现。 (4)传统性 指人们在学习新的内容时比较容易受到已有内容的影响。而传统性的表现影响人们学习新语种的积极性,若新语种的结构、形式与原来的类似,比较容易接受,若风格和设计思想差别很大,则在学习新的语言时,原有的语言知识会起到阻碍的作用。,ZLL,BeiHua,11.1.2 程序设计语言的选择,为开发一个特定项目选择程序设计语言时,必须从技术特性、工程特性和心理特性几方面考虑。在选

6、择语言时,要从问题需求入手,确定它的要求是什么,以及这些要求的相对重要性,针对这种需求,需要什么特性的程序设计语言来实现。由于一种语言不可能同时满足项目开发的各种需求,所以要对各种要求进行权衡,比较各种可用语言的适用程度,最后选择认为是最适用的语言。选择语言时,可以从以下几个方面来考虑:,ZLL,BeiHua,1项目的应用领域 项目应用领域是选择语言的关键因素,有下列各种类型。 1)科学工程计算 该计算需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有: (1)FORTRAN语言:是世界上第一个被正式推广应用的计算机语言,产生于1954年,经过FORTRAN 0到FORTRAN 4

7、,又相继扩展为FORTRAN 77,FORTRAN 90,后来又陆续推出FORTRAN 95、FORTRAN 2003等更新版本,通过几个版本不断的更新,使它不仅面向科学计算,数据处理能力也很强。 (2)Pascal语言:产生于19世纪60年代末,具有很强的数据和过程结构化的能力,它是第一个体现结构化编程思想的语言,由于该语言简明、数据类型丰富、程序结构严谨,许多算法都用类Pascal来概括。用Pascal语言写程序,也有助于培养良好的编程风格。 (3)C语言:产生于20世纪70年代初,最初用于描述UNIX操作系统及其上层软件,后来发展成具有很强功能的语言,支持复杂的数据结构,可大量运用指针,

8、具有丰富灵活的操作运算符及数据处理操作符。还可以直接对位进行操作,程序运行效率高。 (4)PL/1语言:是一个适用性非常广泛的语言,能够适用于多种不同的应用领域,但由于太庞大,难以推广使用,目前,一些PL/1的子集被广泛使用。 (5)C+语言:支持面向对象的设计思想,支持继承和多态性等概念,可以大大提高程序的重用性,是现代软件设计的趋势。,11.1.2 程序设计语言的选择,ZLL,BeiHua,1项目的应用领域 项目应用领域是选择语言的关键因素,有下列各种类型。 1)科学工程计算 该计算需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有: (1)FORTRAN语言:是世界上第一个被

9、正式推广应用的计算机语言,产生于1954年,经过FORTRAN 0到FORTRAN 4,又相继扩展为FORTRAN 77,FORTRAN 90,后来又陆续推出FORTRAN 95、FORTRAN 2003等更新版本,通过几个版本不断的更新,使它不仅面向科学计算,数据处理能力也很强。 (2)Pascal语言:产生于19世纪60年代末,具有很强的数据和过程结构化的能力,它是第一个体现结构化编程思想的语言,由于该语言简明、数据类型丰富、程序结构严谨,许多算法都用类Pascal来概括。用Pascal语言写程序,也有助于培养良好的编程风格。 (3)C语言:产生于20世纪70年代初,最初用于描述UNIX操

10、作系统及其上层软件,后来发展成具有很强功能的语言,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符。还可以直接对位进行操作,程序运行效率高。 (4)PL/1语言:是一个适用性非常广泛的语言,能够适用于多种不同的应用领域,但由于太庞大,难以推广使用,目前,一些PL/1的子集被广泛使用。 (5)C+语言:支持面向对象的设计思想,支持继承和多态性等概念,可以大大提高程序的重用性,是现代软件设计的趋势。,11.1.2 程序设计语言的选择,ZLL,BeiHua,2)数据处理与数据库应用 数据处理与数据库应用可供选用的语言如下: (1)COBOL语言:产生于20世纪50年代末,

11、是广泛用于商业数据处理的语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开,数据描述与算法描述分开,结构严谨,层次分明,说明采用类英语的语法结构,可读性强。 (2)SQL语言:最初是为IBM公司开发的数据库查询语言,目前不同的软件开发公司有不同的扩充版本,如20世纪80年代后期我国引入Informix_SQL,Microsoft的SQL可以方便地对数据库进行存取管理。 (3)4GL语言:称为第4代语言,随着信息系统的飞速发展,原来的第2代语言(如FORTRAN、COBOL)、第3代语言(如Pascal、C等)受硬件和操作系统的局限,其开发工具不能满足新技术发展的需求,因此,在20世纪7

12、0年代末,提出了第4代语言的概念,4GL的主要特征是: 友好的用户界面 兼有过程性和非过程性双重特性 高效的程序代码 完备的数据库 应用程序生成器,11.1.2 程序设计语言的选择,ZLL,BeiHua,3)实时处理 实时处理软件一般对实时性能的要求很高,可选用的语言有: (1)汇编语言:是面向机器的,它可以完成高级语言无法满足的特殊功能,如 与外部设备之间的一些接口操作。 (2)Ada语言:是美国国防部出资,在Pascal语言基础上开发出来的,主要用于实时、并发和嵌入式系统的语言。它特别地支持程序的实时设计要求,包括多任务处理、中断处理、任务间同步与通信等。到现在已经发展成为安全、高效和灵活

13、的面向对象的编程语言。 4)系统软件 系统类软件很多时候都需要同计算机的硬件打交道,因此在编写操作系统、编译系统等系统软件时,可选用汇编语言、C语言、Pascal语言和Ada语言等。 5)人工智能 如果要完成专家系统、推理工程、语言识别、模式识别、知识库系统、机器人视角及自然语言处理等和人工智能有关的系统,可以选择以下的几种语言: (1)LISP (2)PROLOG,11.1.2 程序设计语言的选择,ZLL,BeiHua,3软件开发的环境 良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。近几年推出了许多可视化的软件集成开发环境,特别是Microsoft公司的Visual

14、 BASIC、Visual C、Visual FoxPro及Borland公司的Delphi(面向对象的Pascal)等,都提供了强有力的调试工具,帮助用户快速形成高质量的软件。 4算法和数据结构的复杂性 科学计算、实时处理和人工智能领域中的问题算法较复杂,而数据处理、数据库应用和系统软件领域内的问题数据结构比较复杂,因此选择语言时可考虑是否有完成复杂算法的能力,或者有构造复杂数据结构的能力。 5软件开发人员的知识 软件开发人员原有的知识和经验对选择编程语言也有很大的影响。一般情况下,软件编程人员愿意选择曾经成功开发过项目的语言。新的语言虽然有吸引力,也会提供较多的功能和质量控制方法,但软件开

15、发人员若熟悉某种语言,而且有类似项目的开发经验,往往愿选择原有的语言。为了能选择更好的适应项目的程序设计语言,开发人员应该经常学习新的程序设计语言,掌握新技术。,11.1.2 程序设计语言的选择,ZLL,BeiHua,11.2 程序设计风格,开发软件项目过程中,测试和维护都是很重要的一个阶段。不论测试与维护,都必须要阅读源程序。因此,阅读程序是软件开发和维护过程中的一个重要组成部分。因为对源程序中的变量和语句所表达的实际意义不了解,技巧性强的程序,读程序的时间比写程序的时间还要多,并且很难理解。程序员编码过程中应培养和形成良好的编码风格,这是编写出易读、易维护、高质量程序的前提。程序设计风格指

16、一个人编制程序时所表现出来的特点、习惯及逻辑思路等。一个公认的、良好的编程风格可以减少编码的错误,减少读程序的时间,从而提高软件的开发效率。下面从几个方面来阐述良好的编码风格。,ZLL,BeiHua,1源程序文档化 编写源程序文档化的原则为: (1)标识符应尽量具有实际意义 (2)程序应加注释 说明每个模块的用途、功能。 说明模块的接口形式、参数描述及从属模块的清单。 该模块的数据描述:特殊的数组或变量的说明、约束或其他信息。 开发历史:指程序的编写者、审阅者姓名及日期、修改说明及日期。 功能性注释嵌入在源程序内部,说明程序段或语句的功能以及数据的状态。加入功能性注释的原则有以下几点: 只给重要的、理解困难的程序段添加注释,而不是每一行程序都要加注释。 书写上要注意形式,以便很容易区分注释和程序。 修改程序时,要注意修改相应的注释部分。,11.2 程序设计风格,ZLL,BeiHua,2数据说明 为了使数据定义更易于理解和维护,一般有以下的书写原则: (1)数据说明顺序应规范,将同一

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号