软件工程第五章 编码、编码风格与程序复杂性.pptVIP

软件工程第五章 编码、编码风格与程序复杂性.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文档。上传文档
查看更多
软件工程第五章 编码、编码风格与程序复杂性

软件工程 第5讲 编码 、编码风格和程序复杂性 5.1 编码的目的和任务 5.2 编码风格 5.3 程序复杂性度量 5.1 编码的目的 目的 把模块的过程性描述翻译为用选定的程序设计语言书写的源程序(源代码)。 依据 编码的主要依据是概要设计和详细设计说明文档。 任务 理解概要设计和详细设计说明书; 遵循编码原则和风格进行翻译,形成源代码。 编码中的问题 编码中产生的问题大多数是由于设计的错误或缺陷引起的,程序的质量首先取决于设计的质量。但编码仍然对程序的可靠性、可读性、可测试性、可维护性、执行效率产生深远的影响。 编码产生的源程序应该是正确、可靠,简明清晰,运行效率高。但是,保持程序的清晰就可能会降低程序的效率。 编码与选择的程序设计语言/工具有密切的关系。 5.2 编码风格 编码风格(程序设计风格Programming Style) 程序员习惯使用的编码方式。 好的编码风格可以使编写的程序更容易阅读、更容易修改。 早期的编码风格强调效率第一、占用内存少、包含的功能多。 现在的编码风格则强调“清晰第一,效率第二”。 现在的编码风格主要以可理解性、可修改性、可测试性为主要目标。 主要的编码风格 有意义的命名 清晰的表达式 使用标准的控制结构 限制使用GOTO语句 清晰与效率 实现源程序的文档化 输入/输出 (1)有意义的命名 一个名字用于标识这个对象时,应该带着说明其用途的一些信息。它应该是非形式的、简练的、容易记忆的,如果可能的话,最好是能够拼读的。 全局变量/局部变量 函数/过程(可采用名词或动宾结构) 常量 文件名/文件夹 例如在C++中类的成员有如下定义: class CTestView { private: int m_iCounter; public: void GetCounter() {return iCounter; } } (2)清晰的表达式 清晰、简单地表达意图 (3)使用标准的控制结构 遵循单入口、单出口原则。 采用结构化程序设计所允许的基本控制结构。 (4)限制使用GOTO语句 不允许转上,但可以转下 goto语句的另外一种用法:转向出错处理。下例是一个堆栈的进栈操作,堆栈的最大容量是100。 (5)清晰与效率的指导原则 先使程序正确,再提高运行速度; 使程序清楚,再使其快速; (6)实现源程序的文档化 “软件=程序+文档” 有了详尽的文档,即使没有源程序,也能再现该软件。注释是文档化的一部分。 文档化包括以下内容: 使用有意义的变量名、标号(前已述) 适当的注释 别为每一条语句注释 注释应该与程序保持一致 注释数据布局 采用缩格方式排列程序结构 适当使用空格或圆括号等做隔离符 2种重要的注释: 序言性注释:模块首部 有关模块的功能说明 界面描述: 该模块被调用的语句格式; 所有参数的解释; 该模块需要调用的模块等; 一些重要变量的使用、限制等 开发历史,如 作者、日期 复查者、复查日期 修改者、修改日期 相关叙述等 描述行注释 功能性描述:程序段的功能说明,放在段首; 状态性的描述:说明数据的状态,放在段尾。 例 序言性注释 例 PSP(Personal Software Process )建议的C++编码标准 (1) 例 PSP建议的C++编码标准 (2) 例 PSP建议的C++编码标准 (3) (7)I/O风格 绝大多数计算机系统都是人-机交互系统,故界面友善是十分重要的。 输入方面: 对输入数据进行有效性检验 输入格式力求简单、一致 给用户足够多的提示信息 组合检验时消除似是而非的选择 输出方面: 给输出数据必要的说明 报表、报告具有良好的格式 能提供“在线”帮助] 5.3 程序复杂性度量 程序复杂性主要指模块内程序的复杂性。它直接关联到软件开发费用的多少,开发周期的长短和软件内部潜伏错误的多少。同时它也是软件可理解性的另一种度量。 定量度量程序的复杂性是很有用的方法。 Halstead McCabe 交叉复杂度 Halstead n1程序中出现的不同的运算符的个数 n2程序中出现的不同的运算对象的个数 N1程序中出现的运算符总个数 N2程序中出现的运算对象总个数 程序长度N= N1+N2 估计程序长度 N0=n1logn1+n2logn2 估计错误数 E=Nlog2(n1+n2)/3000 预测的程序长度: N0=n1·log2n1+n2·log2n2=10·log210+7·log27 =52.87 实际的程序长度: N=N1+N2=28+22=50 McCabe环域复杂度

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档