- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程实践才6编程
北京理工大学软件工程实践 汤铭端 中国航天科工集团公司204所 第五讲 软件实现 内容和目的 编程语言的选择 编程风格 程序效率 编码要求 静态分析 代码审查 软件调试 编程 编程是设计的自然结果 编程语言的特性和编程风格会深刻地影响软件的重量和可维护性 软件实现是一个不断变换的过程:设计——源程序——目标代码——机器码 编程语言的选择 应用领域 算法及运算的复杂性 软件运行的环境 性能 数据结构的复杂性 软件开发组成员对该语言的熟悉程度 编程风格 程序必须是可以理解的 程序的风格应该强调简单和清晰 影响程序风格的因素有: 源程序内部文档化 数据说明的方法 语句的结构 I/O的方法 源程序文档化 选择好标识符(变量和标号)的名字 挑选有意义的标识符名字 安排注解 序言式注解(头文件) 功能注解 使程序的结构一目了然 缩进 数据说明 数据说明的次序应该规范化 多个变量说明时最好按字典数顺序排列 对复杂结构用注解说明 语句结构 每个语句应该简单直接,不应该为提高效率而把语句复杂化 使程序简单易懂 避免采用复杂的条件语句 不要用“否定”条件的条件语句 避免多重的循环嵌套或条件嵌套 用括号使逻辑表达式或算术表达式更为清晰 用空格及有意义的符号使语句内容清晰明确 反问自己“如果这程序不是我编的,我能看懂吗?” 输入/输出 对批处理I/O 符合逻辑地组织输入 I/O出错检查 好的I/O出错恢复功能 清晰的输出报告格式 对交互式I/O 简单而有提示的输入方式 完备的出错处理及出错恢复 人机对话输出 I/O格式的一致性 原则: 检查所有输入数据的合法性 检查输入项的各种重要组合是否合理 输入格式要简单 最好采用数据结尾指示符,而不应要求用户规定“输入项目的数量” 交互式I/O要求用户输入时,标明交互输入可选择的种类和范围 输出时保持格式的一致性 设计和标明所有的输出 Wasserman交互系统设计原则原则 把计算机的内部特性掩盖起来不让用户看到 使程序“穿上防弹衣”,保证程序不被用户破坏 如果用户的请求会产生重大的后果,就要提醒用户 在使用此程序时提供联机的帮助条件 按照用户的水平设计输入要求 按照输出设备的速度设计输出信息 区别对待不同类型的用户 保持一致的响应时间 应尽量减少用户处理出错的工作量 效率 要求有效地利用临界资源是自然的 CPU周期和内存单元常被看作临界资源 有关效率的三个格言: 效率是一种性能需求。软件的效率应根据需要,而不是尽可能地高! 好的设计必然提高效率。 程序的简单性与程序的效率往往是一致的。 总之不要去牺牲程序的清晰性、可读性或正确性去追求效率的非本质的提高 源程序的效率 源程序的效率与算法效率直接相关 编程风格会影响运行速度及所需内存的大小 编译器的“优化”特性是提高效率的一种手段 原则: 在具体编程前应简化算术表达式及逻辑表达式 细心地分析多层嵌套循环以确定能否把一些语句或表达式移到循环之外 尽量避免采用多维数组 尽量避免采用指针及复杂的表 采用“快”的算术运算 不要把不同的数据类型混在一起 只要可能就采用整型数的算术运算和布尔表达式 内存效率 大机器领域内存几乎无限制,虚存使“内存效率”不等同于“占用最小的内存” 微机领域内存的限制仍是很现实的问题 采用汇编语言可以节省内存 提高运行效率的技术往往可以同时节省内存 使程序简单是提高内存效率的关键 输入输出效率 提高I/O效率的指导原则: 全部I/O应有缓冲以避免过于频繁的信息交换 对外存应该选用最简单的可接收的存取方式 与外存联系的I/O操作应成块地传送数据 与终端及行式打印机联系的I/O操作应考虑设备的特性,以改进质量与速度 如果“超高效率”的I/O无法被人们理解,则是毫无意义的 Kernighan和Plauger给出的好的程序设计风格的规则 写得清晰——而不是太灵巧 简单而直接地说明你的用意 使用库功能 避免使用临时变量 写清晰——不要为了“效率”而牺牲清晰 让机器干苦活 用调用一个公共的例程去代替重复的表示 选用不易混淆的变量名 避免使用不必要的转移 Kernighan和Plauger给出的好的程序设计风格的规则 不使用条件转移代替一个逻辑表达式 假如一个逻辑表达式难以理解,则试着对其进行变换 使用数组,避免重复的控制序列 选用使程序简单的数据表示法 先用一个容易理解的伪语言写程序,然后再翻译成你所用的语言使用IF…ELSEIF…ELSEIF…ELSE…ENDIF实施多路选择 模块化,使用子例程 Kernighan和Plauger给出的好的程序设计风格的规则 确保注释与代码一致 不要用注释去精确地重复代码——使每一个注释有价值 不要注释或修补坏代码——重写 使用有意义的变量名 使用有意义的语句标号 程序格式应有助于读者理解程序 为你的数据设计提供文
您可能关注的文档
最近下载
- 人工智能导论知到课后答案智慧树章节测试答案2025年春浙江师范大学.docx VIP
- 2024年饮品店项目创业投资方案.docx
- 生命的律动答案.docx
- 300T汽车吊性能说明书-XCA300_1全地面起重机技术规格书+[主臂风电臂加超起].pdf VIP
- 导尿管相关尿路感染预防与控制课件.pptx VIP
- 历史的天空2015全图文攻略.pdf VIP
- 人工智能引论智慧树知到课后章节答案2023年下浙江大学.docx VIP
- 医院感染与痰液标本采集.pptx VIP
- 黑龙江统招专升本2019英语真题.pdf VIP
- 2019版 人教版 高中生物学 选择性必修2 生物与环境《第4章 人与环境》大单元整体教学设计[2020课标].docx
文档评论(0)