第六章 软件编码.docx
- 文档编号:27518989
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:8
- 大小:20.38KB
第六章 软件编码.docx
《第六章 软件编码.docx》由会员分享,可在线阅读,更多相关《第六章 软件编码.docx(8页珍藏版)》请在冰豆网上搜索。
第六章软件编码
第六章软件编码
本章的内容比较少且简单,多为识记的内容,想必每一个学到本课程的同学都已经有过编码(写程序)的经验,也积累了一些编程方面的经验,在本章中,就是从理论的角度来讨论一下程序设计语言的特色及编码应注意的程序设计风格。
以理解和记忆为主。
所以下面就一些记忆要点作一摘要。
6.1程序设计语言的特性及选择
程序设计语言是人机通信的工具之一,使用这类语言“指挥”计算机干什么,是人类特定的活动。
我们从以下三个方面介绍语言的特性。
6.1.1程序设计语言特性
1.心理特性:
是指影响程序员心理的语言性能,包括歧义性,简洁性,局部性和顺序性,传统性几个方面。
(1)歧义性:
是指某些语言虽然在编译程序中只有一种解释,但在人们看来却可能产生两种或多种不同的解释。
(2)简洁性:
是指人们必须记住的语言成分的数量。
(3)局部性和顺序性:
局部性指语言的联想性,模块的高内聚低耦合使局部性得以加强,提供异常处理的语言特性则削弱局部性。
顺序性强则使人们易理解,易接受。
(4)传统性:
由于人们使用语言有一种习惯性。
若新语种的传统性强,则人们学习起来容易接受。
反之则需要更多时间来学习。
可见传统性容易影响人们学习新语种的积极性。
2.工程特性:
从软件工程的观点,程序设计语言的特性着重考虑软件开发项目的需要,因此对程序编码有如下要求:
(1)可移植性:
是指程序从一个计算机环境移植到另一个计算机环境的容易程度。
(2)开发工具的可利用性:
就是说一个开发工具好不好用,功能多不多,强不强。
比如VC++就是一个开发工具。
(3)软件的可重用性:
指编程语言能否提供可重用的软件成分,重用时需要修改调整的内容多不多。
(4)可维护性:
一个易读懂,易修改的软件就是可维护性好的软件。
3.技术特性
支持结构化构造的语言有利于减少程序环路的复杂性,使程序易测试、易维护。
6.1.2程序设计语言的选择:
这一节主要要识记一些语言所适合的需求,考虑选择语言的因素。
1.项目的应用领域
(1)科学工程计算。
需要大量的标准库函数,以便处理复杂的数值计算,可供选用的语言有:
FORTRAN语言,它是世界上第一个被正式推广应用的计算机语言。
Pascal语言,具有很强的数据和过程结构化能力,它是第一个体现结构化编程思想的语言
C语言:
功能强大,它具有汇编语言的某些特征,使程序运行效率高。
PL/1语言:
适用性广,但由于太庞大而难以推广。
(2)数据处理与数据库应用:
主要有Coble语言,广泛用于商业数据处理。
这种语言中程序说明与硬件环境说明分开、数据描述与算法描述分开。
SQL:
结构化查询语言,用于对数据库进行存取管理。
4GL(第4代语言),包括Foxpro、Uniface、PowerBuilderInformix4GL等语言。
这种语言有几个特征:
①友好的用户界面
②兼有过程性和非过程性双重特性
③高效的程序代码
④完备的数据库
⑤应用程序生成器
(3)实时处理
实时处理软件一般对性能的要求很高,可选用的语言有:
汇编语言、Ada语言等。
(4)系统软件。
如果编写操作系统、编译系统等系统软件时,可选用汇编语言、C语言、Pascal语言和Ada语言。
(5)人工智能。
如果要完成知识库系统、专家系统、决策支持系统、推理工程、语言识别、模式识别等人工智能领域内的系统,应选择Prolog、Lisp语言。
Lisp是一种函数型语言。
Prolog是一种逻辑型语言。
如果用面向对象方法开发软件,可采用C++、Java语言。
近年来软件开发环境已进入可视化时代,我们的实践课程中,也都需要你有可视化编程工具进行程序设计,可用的如VisualBasic、VisualC++、VisualFoxpro、Delphi等等。
我们应该去学习掌握这些可视化编程工具。
2.软件开发的方法(详见第9章)
有时编程语言的选择依赖于开发的方法,如果要用快速原型模型来开发,要求能快速实现原型,因此宜采用4GL。
如果是面向对象方法,宜采用面向对象的语言编程。
3.软件执行的环境
良好的编程环境不但有效提高软件生产率,同时能减少错误,有效提高软件质量。
4.算法和数据结构的复杂性
科学计算、实时处理和人工智能领域中的问题算法较复杂,而数据处理、数据库应用、系统软件领域内的问题,数据结构比较复杂,因此选择语言时可考虑是否有完成复杂复杂算法的能力,或者有构造复杂数据结构的能力。
5.软件开发人员的知识
编写语言的选择与软件开发人员的知识水平及心理因素有关,开发人员应仔细地分析软件项目的类型,敢于学习新知识,掌握新技术。
6.2程序设计风格
程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
随着计算机技术的发展,软件的规模增大了,软件的复杂性也增强了。
为了提高程序的可阅读性,要建立良好的编程风格。
1.源程序文档化:
即给标识符取名和注释方面养成良好的习惯,注意写出易读易理解的程序文档。
(1)标识符应按意取名。
(2)程序应加注释。
注释是程序员与日后读者之间通信的重要工具,用自然语言或伪码描述。
它说明了程序的功能,特别在维护阶段,对理解程序提供了明确指导。
注释分序言性注释和功能性注释。
序言性注释应置于每个模块的起始部分,主要内容有:
①说明每个模块的用途、功能。
②说明模块的接口:
调用形式、参数描述及从属模块的清单。
③数据描述:
重要数据的名称、用途、限制、约束及其他信息。
④开发历史:
设计者、审阅者姓名及日期,修改说明及日期。
功能性注释嵌入在源程序内部,说明程序段或语句的功能以及数据的状态。
注意以下几点:
①注释用来说明程序段,而不是每一行程序都要加注释。
②使用空行或缩格或括号,以便很容易区分注释和程序。
③修改程序也应修改注释。
2.数据说明:
注意数据说明时的顺序和变量名的排列顺序以及必要的注释。
为了使数据定义更易于理解和维护,有以下指导原则:
(1)数据说明顺序应规范,使数据的属性更易于查找,从而有利于测试、纠错与维护。
例如按以下顺序:
常量寿命、类型说明、全程量说明、局部量说明。
(2)一个语句说明多个变量时,各变量名按字典序排列。
(3)对于复杂的数据结构,要加注释,说明在程序实现时的特点。
3.语句构造
语句构造的原则是:
简单直接,不能为了追求效率而使代码复杂化。
为了便于阅读和理解,不要一行多个语句。
不同层次的语句采用缩进形式,使程序的逻辑结构和功能特征更加清晰。
要避免复杂的判定条件,避免多重的循环嵌套。
表达式中使用括号以提高运算次序的清晰度等等。
4.输入和输出
在编写输入和输出程序时考虑以下原则:
(1)输入操作步骤和输入格式尽量简单。
(2)应检查输入数据的合法性、有效性,报告必要的输入状态信息及错误信息。
(3)输入一批数据时,使用数据或文件结束标志,而不要用计数来控制。
(4)交互式输入时,提供可用的选择和边界值。
(5)当程序设计语言有严格的格式要求时,应保持输入格式的一致性。
(6)输出数据表格化、图形化。
输入、输出风格还受其他因素的影响,如输入、输出设备,用户经验及通信环境等。
5.效率
效率指处理机时间和存储空间的使用,对效率的追求明确以下几点:
(1)效率是一个性能要求,目标在需求分析给出。
(2)追求效率建立在不损害程序可读性或可靠性基础上,要先使程序正确,再提高程序效率,先使程序清晰,再提高程序效率。
(3)提高程序效率的根本途径在于选择良好的设计方法、良好的数据结构算法,而不是靠编程时对程序语句做调整。
第6章例题分析与解答
一、填空题
1.软件需求分析之后,软件的设计、编码、测试与语言的特性有很大的关系,这个特性主要是语言的______特性。
答案:
语言的技术特性
2.为了提高程序的易读性,同时减少错误,提高软件开发效率,编码时注意养成良好的_____。
答案:
程序设计风格
3.源程序中加注释是帮助理解程序的重要手段,注释分为_______两类。
答案:
序言性注释和功能性注释
二、选择题
1.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在人们更重视程序的( )。
A.技巧性 B.保密性 C.一致性 D.可理解性
答案:
D
2.与选择编程语言无关的因素是( )。
A.软件开发的方法 B.软件执行的环境
C.程序设计风格 D.软件开发人员的知识
答案:
C
3.源程序文档化要求在每个模块之前加序言性注释。
该注释内容不应有( )。
A.模块的功能 B.语句的功能 C.模块的接口 D.开发历史
答案:
B
4.不适合作为数据处理的语言是( )。
A.PROLOG B.C C.4GL D.SQL
答案:
A
5.提高程序效率的根本途径并非在于( )。
A.选择良好的设计方法 B.选择良好的数据结构
C.选择良好的算法 D.对程序语句作调整
答案:
D
第6章自测题及参考答案
一、名词解释
1.编码 2.程序设计风格
二、填空题
1.程序设计语言的特性主要有_______三方面。
(心理特性、工程特性、技术特性)
2.程序设计语言的心理特性在语言中的表现形式为_______。
(歧义性、简洁性、局部性、顺序性和传统性)
3.程序设计语言的工程特性主要表现为_____。
(可移植性、开发工具的可利用性、软件的可重用性、可维护性)
4.项目的应用领域一般有_____几种类型。
(科学工程计算、数据处理与数据库应用、实时处理、系统软件、人工智能)
5.与编码风格有关的因素有数据说明、语句构造、输入输出、效率等,其中还有一个重要的因素是_______。
(源程序文档化)
三、选择题
1.项目的应用领域是选择编程语言关键的因素之一,不适合作为项目应用领域的类型是( D)。
A.系统软件 B.数据处理与数据库应用
C.实时处理 D.UNIX操作系统
2.为了提高易读性,源程序内部应加功能性注释,用于说明( B)。
A.模块总的功能 B.程序段或语句的功能
C.模块参数的用途 D.数据的用途
3.程序设计语言的心理特性在语言中表现不应包括( C)。
A.歧义性 B.简洁性 C.保密性 D.传统性
4.程序设计语言的工程特性其中之一表现在(A)。
A.软件的可重用性 B.数据结构的描述性
C.抽象类型的描述性 D.数据库的易操作性
5.程序设计语言的技术特性不应包括( D)。
A.数据结构的描述性 B.抽象类型的描述性
C.数据库的易操作性 D.软件的可移植性
《软件工程》习题参考答案6
1、程序语言有哪些共同特征?
答:
程序语言的共同特征(似为特性更符合题意)是指程序设计语言的语言特性,包括心理特性、工程特性和技术特性三个方面。
语言的心理特性对人机通信的质量有主要的影响;语言的工程特性对软件开发成功一否有重要的影响,此外,语言的技术特性也会影响软件设计的质量。
2、在项目开发时选择程序设计语言通常考虑哪些因素?
答:
通常要考虑的因素有:
项目的应用领域、软件开发的方法、软件执行的环境、算法和数据结构的复杂性以及软件开发人员的知识等。
3、第4代语言(4GL)有哪些主要特征?
答:
4GL的主要特征是:
(1)友好的用户界面
(2)兼有过程性和非过程性双重特性
(3)高效的程序代码
(4)完备的数据库
(5)应用程序生成器
4、举例说明各种程序设计语言的特点及适用范围?
答:
以常见的一些编程语言为例:
FORTRAN语言,它不仅面向科学计算,数据处理能力也极强。
适用于科学工程计算
Pascal语言,具有很强的数据和过程结构化能力,它语言简明,数据类型丰富,程序结构严谨。
它是第一个体现结构化编程思想的语言。
用于描述结构化算法和科学计算,操作系统的编写
C语言:
功能强大,支持复杂的数据结构,可大量运用指针,具有丰富灵活的操作运算符及数据处理操作符,它还具有汇编语言的某些特征,使程序运行效率高。
可用于许多领域,特别是在操作系统等方面有较大优势。
Coble语言,它具有极强的数据定义能力,程序说明与硬件环境说明分开、数据描述与算法描述分开。
结构严谨层次分明,广泛用于商业数据处理。
SQL:
结构化查询语言,用于对数据库进行存取管理。
汇编语言和Ada语言,主要用于实时处理和编写系统软件。
Prolog、Lisp语言。
Lisp是一种函数型语言,特别适用于组合问题中符号运算和表处理,用于定理证明、树的搜索和其他问题的求解。
Prolog是一种逻辑型语言,它提供了支持知识表示的特性,每一个程序由一组表示事实、规则和推理的句子组成,比较接近与自然语言。
这两种语言主要用于人工智能系统开发。
C++、Java语言,是面向对象的设计语言,用于面向对象的方开发软件。
5、什么是程序设计风格?
为了具有良好的设计风格,应注意哪些方面的问题?
答:
程序设计风格是指一个人编制程序时所表现出来的特点、习惯、逻辑思路等。
要形成良好的程序设计风格,应从源程序文档化、数据说明、语句构造、输入输出和追求效率几个方面加以注意。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第六章 软件编码 第六 软件 编码