软件工程基础与实例分析 教学课件 作者 王阿川 第06章 编码.pptVIP

软件工程基础与实例分析 教学课件 作者 王阿川 第06章 编码.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 编码 主要学习内容 选择开发语言 软件编码的规范 6.1 选择开发语言 6.1.1程序设计语言分类 1.程序设计语言分类 (1)从属于机器的语言(第一代语言)计算机语言是由机器指令代码组成的语言。计算机语言是由机器指令代码组成的语言,用这种语言编写的程序,都是二进制代码的形式。 (2)汇编语言(第二代语言)汇编语言比机器语言直观,从软件工程的角度来看,汇编语言只是在高级语言无法满足设计要求时,或者不具备支持某种特定功能(例如特殊的输入/输出)的技术性能时,才被使用。 6.1 选择开发语言 6.1.1程序设计语言分类 1.程序设计语言分类 (3)高级程序设计语言(第三代语言) 6.1 选择开发语言 2.程序设计语言的特点 (1)软件心理学的观点 一致性:使用符号的兼容程度、允许随意规定限制的程度。 二义性:读者则可能用不同的方式来理解语句。 简洁性(紧凑性): 局部性:指程序设计语言的综合特性。 线性:指程序的顺序特性。 传统:人们学习一种新的程序设计语言的能力会受到传统的影响。 6.1 选择开发语言 2、程序设计语言的特点 (2)软件工程的观点 详细设计应能被直接地、容易地翻译成代码程序。 源程序应具有可移植性。(3种解释) 1)对源程序不做修改或少做修改就可以实现处理机上的移植或编译程序上的移植。 2)即使程序的运行环境改变(例如,改用一个新版本的操作系统),源程序也不用改变。 3)源程序的许多模块可以不做修改或少做修改就能集成为功能性和各种软件包,以适应不同的需要。 可维护性。 6.1 选择开发语言 6.1.2选择标准 在选择与评价语言时,首先要从问题入手,确定它的要求是什么?这些要求的相对重要性如何?再根据这些要求和相对重要性来衡量所采用的语言。 通常考虑的因素有:项目的应用范围;算法和计算的复杂性;软件执行的环境;性能上的考虑与实现的条件;数据结构的复杂性;软件开发人员的知识水平和心理因素等。其中,项目的应用范围是最关键的因素。 6.2 软件编码的规范 6.2.1 程序中的注释 (1)序言性注释:通常置于每个程序模块的开头部分,它应当给出程序的整体说明,对于理解程序本身具有引导作用。有些软件开发部门对序言性注释做了明确而严格的规定,要求程序编写者逐项列出的有关项目包括:程序标题、有关本模块功能和目的的说明、主要算法、接口说明、有关数据描述、模块位置、开发简历等。 (2)功能性注释:嵌在源程序体中,用以描述其后的语句或程序段是在做什么工作,不要解释下面怎么做,因为解释怎么做常常是与程序本身重复的,并且对于阅读者理解程序没有什么帮助。 6.2 软件编码的规范 6.2.2 数据说明 (1)数据说明的次序应当规范化。为了方便阅读、理解和维护,数据说明的次序应规范化,使说明的先后次序固定。 (2)当一个语句说明多个变量名时,应当对这些变量按字母的顺序排列。 (3)如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。 6.2 软件编码的规范 6.2.3 语句结构 在一行内只写一条语句,并且采取适当的移行,使程序的逻辑和功能变得更加明确; 程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑; 程序编写要简单、清楚,直截了当地说明程序员的用意; 除非对效率有特殊的要求,程序编写要做到清晰第一、效率第二,不要为了追求效率而丧失了清晰性。事实上,程序效率的提高主要通过选择高效的算法来实现; 首先要保证程序正确,然后才要求提高速度。反过来说,在使程序高速运行时,首先要保证它是正确的; 避免过多的循环嵌套和条件嵌套; 避免循环的多个出口; 使用数组,以避免重复的控制序列; 尽可能用通俗易懂的伪码来描述程序的流程,然后再翻译成必须使用的语言; 数据结构要有利于程序的简化; 要模块化,使模块功能尽可能单一化,模块间的耦合能够清晰可见; 利用信息隐蔽,确保每一个模块的独立性; 从数据出发去构造程序; 不要修补不好的程序,要重新编写。也不要一味地追求代码的复用,要重新组织; 对太大的程序,要分块编写、测试,然后再集成; 对递归定义的数据结构尽量使用递归过程; 注意计算机浮点数的特点,例如,浮点数运算10.0 * 0.1 通常不等于1.0; 不要单独进行浮点数的比较; 避免不恰当地追求程序效率,在改进效率前,要做出有关效率的定量估计; 在程序中应有出错处理功能,一旦出现故障时不要让机器进行干预,导致停工。 6.2 软件编码的规范 6.2.4 输入和输出 对所有的输入数据都进行检验,从而识别错误的输入,以保证每个数据的有效性; 检查输入项的各种重要组合的合理性,必要时报告输

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档