版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章软件实现本章概述
本章首先介绍编程语言的发展与分类,其次讲述选择编程语言需要考虑的因素,然后针对编程风格与规范进行阐述。接着简述面向对象实现,最后讲述代码复用以及分析和评估代码质量的相关内容本章概述了解编程语言的发展和分类了解选择编程语言时所需考虑的因素掌握良好的编程风格与编码规范了解代码复用了解分析和评价代码的质量本章目标目录编程语言第一节编程风格与规范第二节代码复用第三节分析和评价代码质量第四节第一节编程语言编程语言在软件设计阶段,得到了实现目标系统的解决方案,并用模型图、伪代码等设计语言表述出来。编码的过程就是把软件设计阶段得到的解决方案转化为可以在计算机上运行的软件产品的过程选择合适的编程语言是编码过程的关键。可以说,编程语言是人与计算机交互的基本工具,它定义了一组计算机的语法规则,通过这些语法规则可以把人的意图、思想等转化为计算机可以理解的指令,进而让计算机帮助人类完成某些任务。软件开发人员通过使用编程语言来实现目标系统的功能编程语言的发展与分类7机器语言是最早的编程语言,是计算机可以识别、执行的指令代码机器语言使用0和1为代码编写程序,可以直接被计算机CPU识别,从而操纵计算机硬件运行。这一特性意味着语言必须基于机器的实现细节,即不同型号的计算机对应不同的机器语言机器语言可以直接操纵硬件,执行速度快,但是对程序员要求很高,程序直观性差、容易出错,且不能直接移植机器语言编程语言的发展与分类汇编语言和机器语言一样具有“面向机器”属性,同样不具备移植能力,通常为特定型号的计算机设计,用于高效访问汇编语言用一组助记符代替机器语言的二进制代码,用地址符号或标号代替地址码,比机器语言直观。也正因如此汇编语言不能被机器直接识别,需要特定翻译程序将汇编语言转换为机器语言,也就是“汇编”过程,相应翻译程序就称为汇编程序8编程语言的发展与分类高级语言使用类似英文的语句来表示语义,更容易理解,且不依赖于特定硬件,能够在不同计算机之间移植高级语言可以分为面向过程和面向对象两类。面向过程语言如Fortran,basic等使用结构化的数据结构、控制结构、过程抽象等概念体现客观事物的结构和逻辑含义。面向对象语言如C++,将客观事物看成具有属性和行为的对象,并把一系列具有相似属性和行为的对象抽象为类,可以更直观地描述客观存在的事物属性即相互关系9编程语言的发展与分类超高级语言对数据处理和过程描述进行了更高级抽象,一般由特定的知识库和方法库支持,例如与数据库相关的查询语言等,其目的在于直接实现各种应用系统10几种流行的语言Python一种面向对象,解释性的语言。它具有强大的库,也被称为胶水语言,因为它可以联结用不同语言制作的各种模块。在实际开发中,可以使用Python建立程序原型,对具体部分用更合适的语言编写,最后封装为扩展类库由Python调用C一种面向过程语言,兼具高级语言和汇编语言的特点,常用于系统级别的程序设计。它比其他高级语言更接近计算机底层,执行效率很高11几种流行的语言C++作为C语言的扩展,添加了面向对象等新特性,是原生应用程序开发的首选语言。在性能要求高的编辑领域往往都使用C++编写Java一种纯面向对象的语言,继承了C/C++的风格,但舍弃了如指针等不易掌握的特性。在编译时Java源代码会被编译为虚拟机中间代码,然后这些代码再在具体应用平台的虚拟机执行,这一特性赋予了Java极强的移植性12几种流行的语言13TIOBE编程语言排行榜(2023年9月),可见Python,C和C++占据前三位。选择编程语言需考虑的因素进行软件开发时,应该根据待开发软件的特征及开发团队的情况考虑使用合适的编程语言。14因为不同的编程语言有各自不同的特点,有些时候,软件开发人员在选择时经常感到很矛盾。这时候,软件开发人员应该从主要问题入手,对各个因素进行平衡。选择编程语言需考虑的因素在选择编程语言时,通常需考虑以下因素:待开发系统的应用领域,即项目的应用范围:不同领域可能适合不同的语言用户的要求:应尽量使用用户熟悉的语言(如果有)将使用何种工具进行软件开发:应当根据开发软件选定语言,以提高开发效率软件开发人员的喜好和能力:采用开发人员熟悉的语言,可以节省开发人员学习资源,加快进度软件的可移植性要求:可移植性好的语言可以使软件方便地在不同计算机上运行算法和数据结构的复杂性:需注意有一些语言并不适合完成复杂度较高的计算平台支持:某些编程语言只能在指定的部分平台上才能使用15第二节编程风格与规范编程风格编程风格是指源程序的书写习惯,比如变量的命名规则、代码的注释方法、缩进等。具有良好编程风格的源程序具有较强的可读性、可维护性,同时还能提高团队开发的效率。良好的个人编程风格是一个优秀程序员素质的一部分,项目内部相对统一的编称风格也使得该项目的版本管理、代码评审等软件工程相关工作更容易实现。在大型软件开发项目中,为了控制软件开发的质量,保证软件开发的一致性,遵循一定的编程风格尤为重要。17编程风格版权和版本声明应该在每个代码文件的开头对代码的版权和版本进行声明,主要内容有,版权信息文件名称,标识符,摘要当前版本号,作者/修改者,完成日期版本历史信息版权和版本声明是对代码文件的一个简要介绍,包括了文件的主要功能、编写者、完成和修改时间等信息。添加版权和版本声明使得代码更加容易阅读和管理18要做到按照良好的编程风格进行编程,可从以下几点入手:编程风格2.程序版式在程序编写过程中应该注意代码的版式,使代码更加清晰易读。对空行、空格的使用及对缩进的控制与程序的视觉效果密切相关好的代码版式没有统一标准,但有一些经验总结的规则,如:每个类声明和函数定义后加空行;函数体内逻辑上不密切的地方加空行分隔;一行代码只做一件事情;关键字单独占一行,执行语句不得紧跟,且要加上{};关键字和“,”后留空格等等3.注释注释阐述了程序的细节,是软件开发人员之间以及开发人员和用户之间进行交流的重要途径。做好注释工作有利于日后的软件维护。注释也需要遵循一定的规则,比如注释需要提供哪些方面的信息、注释的格式、注释的位置等4.命名规则事实上,没有一种命名规则可以让所有的编程人员都赞同,在不同的编程语言、不同的操作系统、不同的集成开发环境中,使用的命名规则可能不尽相同。因此,软件开发中仅需要制定一种令大多数项目成员满意的命名规则,并在项目中贯彻实施19编程风格5.数据说明为了使数据更容易理解和维护,需要遵循一定的原则来进行数据说明,如说明次序,添加注释等6.语句构造语句构造是编写代码的一个重要任务。语句构造的原则和方法在编程阶段尤为重要7.输入输出软件系统的输入输出部分与用户的关系比较紧密,良好的输入输出的实现能够直接提高用户对系统的满意度8.效率效率是对计算机资源利用率的度量,它主要是指程序的运行时间和存储器容量两个方面。源程序的运行时间主要取决于详细设计阶段确定的算法。可以使用用于代码优化的编译程序来减少程序的运行时间。使用较少的存储单元可以提高存储器的效率20//简洁但效率低的程序for
(i=0;
i<N;
i++){if
(condition)
Call1();else
Call2();}//效率高但不太简洁的程序if
(condition){
for
(i=0;
i<N;
i++)
Call1();}else{
for
(i=0;
i<N;
i++)
Call2();}第三节代码复用代码复用广义地说,软件复用可分为3个层次:知识复用,方法复用和标准复用,软件成分复用。代码复用属于软件成分复用。代码复用是使用已有的代码构造或编写新系统,代码形式包括二进制目标代码和源代码。代码复用可以减低编写难度,减少工作量,保证软件的质量(被复用代码往往已被充分测试)复用也称为再用或复用,是指同一事物(代码)不做修改或稍加改动就可以多次重复利用,是降低软件成本,提高效率和质量的有效途径。代码复用通常将代码复用理解为调用库中的模块,实际上代码复用也有如下几种方式:源代码剪贴:最原始的形式,问题在于复制时的出错,以及配置管理问题导致无法跟踪原始代码的复用源代码包含:许多语言提供包含库中源代码的机制,使用这种方法时配置管理问题有所缓解,因为修改原始代码后所有包含它的程序都需要重新编译继承:利用继承机制复用类时不需要修改已有代码,就可以扩充或具体化类,几乎不存在配置管理问题开源代码复用目前80%以上的IT产业主要产品复用了开源代码,GitHub上的开源项目截至2021年1月已有5421万个,OpenHub索引的代码超过873亿行开源软件资源丰富,但要进行有效复用存在一定难度。一方面是开源许可证侵权风险,另一方面是开源代码需要及时更新,以免旧代码被攻破漏洞24第四节分析和评价代码质量评估代码质量好的代码一定是整洁的,能够帮助阅读者快速理解定位,加快开发迭代速度,常见的评价标准如下:可读性:命名是否达意,注释是否详尽,函数是否长短合适,模块划分是否清
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨科患者营养状况评估
- 辽宁省沈阳市铁西区达标名校2026届初三5月月考(物理试题理)试题含解析
- 河南省林州市第七中学2025-2026学年初三4月质量检测试题物理试题含解析
- 河南省2025-2026学年初三押题信息卷物理试题(三)含解析
- 广东省高州市谢鸡镇达标名校2026届初三第一次调研考试数学试题含解析
- 骨科手术前后护理
- 湖北省黄石市阳新一中卓越联盟2026年中考物理试题命题比赛模拟试卷(27)含解析
- 腹泻时小儿的心理护理
- 老年骨质疏松症患者的运动康复
- 智研咨询发布-2026年中国颈椎病用药行业现状、发展环境及投资前景分析报告
- 2025年《AI原生应用架构白皮书》解读
- 吊装安全培训课件
- 2025年临床执业助理医师资格考试真题试卷(+答案)
- 医院门诊服务流程优化与提升策略
- 医院申报重点专科汇报
- 机器人焊接质量监控创新创业项目商业计划书
- 学校章程修订会议记录范文
- 火电厂新员工培训课件
- 天然药物生物转化
- 肿瘤的治疗与预防
- 《形势与政策(2026版)》期末考试满分题库
评论
0/150
提交评论