软件工程基础之 程序实现.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《软件工程基础之 程序实现.ppt》由会员分享,可在线阅读,更多相关《软件工程基础之 程序实现.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第五章 程序实现程序设计语言的特点程序设计语言的特点1程序的效率程序的效率 3良好的编程习惯良好的编程习惯2小结小结4本章学习目标1 12 23 3培养良好的培养良好的编程习惯编程习惯理解编程规理解编程规范范了解选择程了解选择程序设计语言序设计语言的一般原则的一般原则程序编码就好比建筑程序编码就好比建筑工程中最基础的砌砖工程中最基础的砌砖和泥工作一样是工程和泥工作一样是工程的基础的基础,是设计的具体是设计的具体实施。实施。引言引言不同不同 瓷砖特点瓷砖特点,砌砖风格砌砖风格,砌墙的手艺砌墙的手艺,砌墙的规范砌墙的规范 程序语言特点程序语言特点,编程风格编程风格,编程基本功编程基本功,编程规范编
2、程规范手艺太差了手艺太差了,还不规范还不规范手艺不错,规范手艺不错,规范屋里的墙屋里的墙砖的应用不合适砖的应用不合适程序设计语言程序设计语言是:人与计算机通信的最基本工具。程序设计语言是:人与计算机通信的最基本工具。程序设计语言的特性不可避免地会影响开发人员程序设计语言的特性不可避免地会影响开发人员的思路和解决问题的方式,会影响代码的可理解的思路和解决问题的方式,会影响代码的可理解性和可维护性。性和可维护性。编码之前的一项重要工作就是选择一种适当的编编码之前的一项重要工作就是选择一种适当的编程语言。程语言。不同的语言适用于不同的应用COBOL语言:数据处理程序语言:数据处理程序 PHP语言:专
3、门用来编写网页处理程序语言:专门用来编写网页处理程序Perl语言:更适合文本处理语言:更适合文本处理C语言:被广泛用于系统软件开发语言:被广泛用于系统软件开发JAVA语言:用于跨平台的应用软件开发等等。语言:用于跨平台的应用软件开发等等。程序设计语言的特点-技术方面 一旦确定了软件需求之后,待选用的一旦确定了软件需求之后,待选用的程序设计语言的技术特性就显得非常程序设计语言的技术特性就显得非常重要了。重要了。o如果需要复杂的数据结构,就要仔细衡量有哪些语言如果需要复杂的数据结构,就要仔细衡量有哪些语言能提供这些复杂的数据结构描述。能提供这些复杂的数据结构描述。o如果软件要求高性能及实时处理能力
4、,就该选用适合如果软件要求高性能及实时处理能力,就该选用适合于实时处理的语言,如于实时处理的语言,如C或汇编语言。或汇编语言。o如果应用有许多输出报告或繁杂的文件处理,则选用如果应用有许多输出报告或繁杂的文件处理,则选用PowerBuilder、Delphi或或SQL比较合适。比较合适。所有程序语言的基本成分都可归纳为所有程序语言的基本成分都可归纳为4种:种:o数据成分:指明该语言能接受的数据,如各种类型的变量、数组、数据成分:指明该语言能接受的数据,如各种类型的变量、数组、指针、记录等。作为程序操作的对象,具有名称、类型和作用域指针、记录等。作为程序操作的对象,具有名称、类型和作用域等特征。
5、使用前要对这些特征加以说明,数据名称由用户通过标等特征。使用前要对这些特征加以说明,数据名称由用户通过标识符命名,类型是说明数据需占用多少存储单元和存放形式,作识符命名,类型是说明数据需占用多少存储单元和存放形式,作用域说明数据可被使用的范围。用域说明数据可被使用的范围。o运算成分:指明该语言可执行的运算,如运算成分:指明该语言可执行的运算,如+,-,*、/o控制成分:顺序结构、条件选择结构和循环结构控制成分:顺序结构、条件选择结构和循环结构 o传输成分:数据的传输方法,例如输入、输出函数传输成分:数据的传输方法,例如输入、输出函数程序设计语言的特点-语言本身1.名字声明名字声明2.类型声明类
6、型声明3.初始化初始化4.程序变量的局部性程序变量的局部性5.程序模块的独立性程序模块的独立性6.循环结构循环结构7.分支结构分支结构8.异常处理异常处理9.独立编译独立编译10.程序设计语言的特点-软件工程方面详细设计能够直接地翻译成程序代码。详细设计能够直接地翻译成程序代码。源程序的可移植性。改善软件可移植性的主要途径是使语言标准化。源程序的可移植性。改善软件可移植性的主要途径是使语言标准化。对于可移植性要求的软件,应该严格遵守相应的标准编写程序代码,对于可移植性要求的软件,应该严格遵守相应的标准编写程序代码,不要图一时的省事去使用语言的非标准特性。不要图一时的省事去使用语言的非标准特性。
7、编译程序效率较高。编译程序首先应该支持独立编译,并且能够发现编译程序效率较高。编译程序首先应该支持独立编译,并且能够发现尽可能多的程序代码错误,辅助程序员提高程序调试效率。尽可能多的程序代码错误,辅助程序员提高程序调试效率。尽可能应用代码生成工具。许多语言都有与它相应的编译程序、连接尽可能应用代码生成工具。许多语言都有与它相应的编译程序、连接程序、调试程序、代码格式化程序、交叉编译程序、宏处理程序和标程序、调试程序、代码格式化程序、交叉编译程序、宏处理程序和标准子程序库等。对于提高效率是明智的选择。准子程序库等。对于提高效率是明智的选择。可维护性。可维护性的前提是代码的可理解性,源程序的可读性
8、、语可维护性。可维护性的前提是代码的可理解性,源程序的可读性、语言的文档化特性是影响可维护性的重要因素。言的文档化特性是影响可维护性的重要因素。程序设计语言的分类按语言级别分类,有低级语言和高级语言之分按语言级别分类,有低级语言和高级语言之分按照用户要求,有过程式语言和非过程式语言之分按照用户要求,有过程式语言和非过程式语言之分 按照应用范围,有通用语言和专用语言之分按照应用范围,有通用语言和专用语言之分 按照使用方式,有交互式语言和非交互式语言之分按照使用方式,有交互式语言和非交互式语言之分 按照成分性质,有顺序语言、并发语言和分布式语言之分按照成分性质,有顺序语言、并发语言和分布式语言之分
9、 第四代语言,有数据库查询语言第四代语言,有数据库查询语言DEV2000、程序代码生成、程序代码生成器以及其他一些原型语言、形式化规格说明语言等等。器以及其他一些原型语言、形式化规格说明语言等等。低级语言:与特定计算机体系结构密切相关,如机低级语言:与特定计算机体系结构密切相关,如机器语言、汇编语言,特点是与机器有关,功效高,器语言、汇编语言,特点是与机器有关,功效高,但使用复杂、开发费时、难维护但使用复杂、开发费时、难维护高级语言:不与特定计算机体系结构密切相关,表高级语言:不与特定计算机体系结构密切相关,表示方法贴近于待解问题,特点是在一定程度上与具示方法贴近于待解问题,特点是在一定程度上
10、与具体机器无关,易学、易用、易维护,但编译后的目体机器无关,易学、易用、易维护,但编译后的目标程序的功效往往较低标程序的功效往往较低过程式语言:通过指明一列可执行的运算及运算次过程式语言:通过指明一列可执行的运算及运算次序来描述计算过程,如序来描述计算过程,如FORTRAN、C、Java等等非过程式语言:不显式指明处理过程细节,在这种非过程式语言:不显式指明处理过程细节,在这种语言中尽量引入抽象度较高的非过程性描述手段,语言中尽量引入抽象度较高的非过程性描述手段,以期在程序中增加以期在程序中增加“做什么做什么”的描述成分,较少的描述成分,较少“如如何做何做”的描述细节,如第四代语言(的描述细节
11、,如第四代语言(4GL)、函数)、函数式语言、逻辑式语言。式语言、逻辑式语言。通用语言:目标非单一的语言,如:通用语言:目标非单一的语言,如:FORTRAN、C、Java等等专用语言:目标单一的语言,如:自动数控程序专用语言:目标单一的语言,如:自动数控程序APT交互式语言:具有反映人机交互的语言,如:交互式语言:具有反映人机交互的语言,如:BASIC非交互式语言:不反映人机交互的语言,如:非交互式语言:不反映人机交互的语言,如:FORTRAN、COBOL顺序语言:只含顺序成分的语言,如:顺序语言:只含顺序成分的语言,如:FORTRAN、C并发语言:含并发成分的语言,如:并发语言:含并发成分的
12、语言,如:Modula、Ada、并发、并发Pascal分布语言:考虑分布式计算要求的语言,如:分布语言:考虑分布式计算要求的语言,如:Modula选择一种语言要考虑的因素在选择与评价语言时,首先要从应用要求入手,在选择与评价语言时,首先要从应用要求入手,对比各项要求的相对重要性,然后再根据这些要对比各项要求的相对重要性,然后再根据这些要求和相对重要性来选择合适的编程语言。求和相对重要性来选择合适的编程语言。具体选择的考虑:具体选择的考虑:o编程人员的水平和编程经历编程人员的水平和编程经历o待开发软件的类型待开发软件的类型o算法和计算复杂性算法和计算复杂性o数据结构的复杂性数据结构的复杂性o软件
13、的开发成本和时间要求软件的开发成本和时间要求o软件的可移植性要求软件的可移植性要求o可用的软件工具可用的软件工具良好的编程习惯良好的编程习惯程序员编写的代码除了交给计算机运行外,还必程序员编写的代码除了交给计算机运行外,还必须让其他程序员或设计人员能够看懂。如果程序须让其他程序员或设计人员能够看懂。如果程序代码的可读性好,则调试和维护的成本就可以大代码的可读性好,则调试和维护的成本就可以大幅度降低,同时可以减小程序运行期间软件失效幅度降低,同时可以减小程序运行期间软件失效的可能性,提高程序的可靠性。的可能性,提高程序的可靠性。对于代码编写而言,要求程序具有良好的结构和对于代码编写而言,要求程序
14、具有良好的结构和风格。风格。结构化程序设计原则尽量使用语言提供的基本控制结构,即顺序结构、尽量使用语言提供的基本控制结构,即顺序结构、选择结构和重复结构。选择结构和重复结构。利用块机制将程序组织成容易识别的块,每块只利用块机制将程序组织成容易识别的块,每块只有一个入口和一个出口。有一个入口和一个出口。复杂结构应该用基本控制结构组合或嵌套实现。复杂结构应该用基本控制结构组合或嵌套实现。对于语言中没有的控制结构,可用一段等价的程对于语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后序段模拟,但要求该程序段在整个系统中应前后一致一致严格控制严格控制GOTO语句。语句。自
15、顶向下、逐步细化在详细设计和编码阶段,还应当采取自顶向下、逐步求精的方法,把在详细设计和编码阶段,还应当采取自顶向下、逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一一个模块的功能逐步分解,细化为一系列具体的步骤,进而翻译成一系列用某种程序设计语言写成的程序。系列用某种程序设计语言写成的程序。例例 用筛选法求用筛选法求100以内的素数。具体做法就是从以内的素数。具体做法就是从2到到100中去掉中去掉2,3,9,10的倍数,剩下的就是的倍数,剩下的就是100以内的素数。以内的素数。为了解决这个问题,可先按程序功能写出一个框架。为了解决这个问题,可先按程序功能写出一个
16、框架。main()建立建立2到到100的数组的数组A,其中,其中Ai=i;-1 建立建立2到到10的素数表的素数表B,存放,存放2到到10以内素数;以内素数;-2 若若Ai=i是是B 中任意一个数的倍数,则剔除中任意一个数的倍数,则剔除Ai;-3 输出输出A 中所有没有被剔除的数;中所有没有被剔除的数;-4程序设计风格1)基本要求)基本要求2)可读性要求)可读性要求3)正确性与容错性要求)正确性与容错性要求4)可移植性要求)可移植性要求5)输入和输出要求)输入和输出要求6)重用性要求)重用性要求7)面向对象的程序设计风格)面向对象的程序设计风格1)基本要求程序结构清晰且简单易懂,单个函数的行数
17、一般程序结构清晰且简单易懂,单个函数的行数一般不要超过不要超过 100行。行。算法设计应该简单,代码要精简,避免出现垃圾算法设计应该简单,代码要精简,避免出现垃圾程序。程序。尽量使用标准库函数(类方法)和公共函数(类尽量使用标准库函数(类方法)和公共函数(类方法)。方法)。最好使用括号以避免二义性。最好使用括号以避免二义性。2)可读性要求注释程序头程序头,函数头说明函数头说明:程序标题程序标题,该模块功能说明该模块功能说明,主主要算法说明;接口说明要算法说明;接口说明:调用形式调用形式,参数描述;子程参数描述;子程序清单序清单,有关数据的说明;模块位置有关数据的说明;模块位置:在哪个源文件在哪
18、个源文件中中,隶属于哪一个软件包;开发历史隶属于哪一个软件包;开发历史:包括模块设计包括模块设计者者,复审者复审者,复审日期复审日期,修改日期及有关说明等修改日期及有关说明等主要变量主要变量(结构、联合、类或对象结构、联合、类或对象):含义的注释。含义的注释。处理过程的每个阶段和典型算法前都有相关注释处理过程的每个阶段和典型算法前都有相关注释说明,但是不要对每条语句注释。说明,但是不要对每条语句注释。应保持注释与代码完全一致。应保持注释与代码完全一致。2)可读性要求格式程序格式清晰:一行只写一条语句,一个程序如程序格式清晰:一行只写一条语句,一个程序如果写得密密麻麻、分不出层次,是很难看懂的。
19、果写得密密麻麻、分不出层次,是很难看懂的。利用空格、空行和缩进显示程序的逻辑结构,缩利用空格、空行和缩进显示程序的逻辑结构,缩进量统一为进量统一为4个字节。个字节。(A-17)AND NOT(B=49)OR C写成写成 (A -17)AND NOT(B=49)OR C对于嵌套的循环和分支程序,层次不要超过五层。对于嵌套的循环和分支程序,层次不要超过五层。2)可读性要求程序本身语句力求简单、清晰,不要片面追求效率语句力求简单、清晰,不要片面追求效率,程序编写得过于紧凑程序编写得过于紧凑,使语使语句复杂化。如:句复杂化。如:for(i=1;i=n;i+)for(j=1;j=n;j+)Vij=(i/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程基础之 程序实现 软件工程 基础 程序 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内