好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

7软件设计与实现3.ppt

22页
  • 卖家[上传人]:ni****g
  • 文档编号:591928946
  • 上传时间:2024-09-18
  • 文档格式:PPT
  • 文档大小:515KB
  • / 22 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第三章 软件设计与实现王玲王玲13008170166电子科大沙河校区主楼西电子科大沙河校区主楼西301301w_ling@ 软件设计与实现电子科大生命学院 王玲P2软件的详细设计,完成了软件的过程性的软件的详细设计,完成了软件的过程性的软件的详细设计,完成了软件的过程性的软件的详细设计,完成了软件的过程性的描述编码(编码(编码(编码(CodingCoding)阶段的任务)阶段的任务)阶段的任务)阶段的任务, , 是为每个模是为每个模是为每个模是为每个模块编写程序即是将详细设计的结果转换为源块编写程序即是将详细设计的结果转换为源块编写程序即是将详细设计的结果转换为源块编写程序即是将详细设计的结果转换为源程序代码程序代码程序代码程序代码3.7 软件实现软件实现SP 结构化程序设计结构化程序设计OOP 面向对象程序设计面向对象程序设计 软件设计与实现电子科大生命学院 王玲P3    结构化程序设计方法结构化程序设计方法 ((Structured Program),即),即SP法是结构化开发方法的重要法是结构化开发方法的重要组成部分组成部分基本思想基本思想: 自顶向下、逐步求精自顶向下、逐步求精。

      基本原则基本原则: 功能的分解与抽象功能的分解与抽象3.7.1 结构化程序设计结构化程序设计 软件设计与实现电子科大生命学院 王玲P4 1.自顶而下、逐步求精自顶而下、逐步求精 开发的程序层次结构清晰,易读、易理开发的程序层次结构清晰,易读、易理解还易验证,程序的质量高解还易验证,程序的质量高 2.单入口和单出口的控制结构单入口和单出口的控制结构 仅由顺序、选择、循环三种基本控制结仅由顺序、选择、循环三种基本控制结构组成构组成一、结构化程序设计特点一、结构化程序设计特点一、结构化程序设计特点一、结构化程序设计特点 软件设计与实现电子科大生命学院 王玲P5二、结构化程序设计的步骤二、结构化程序设计的步骤二、结构化程序设计的步骤二、结构化程序设计的步骤 提出和分提出和分析问题析问题确定数确定数学模型学模型设计算法设计算法模块化模块化编程编程程序整个编程序整个编译、运行译、运行结构化程序设计步骤 三、优化设计三、优化设计三、优化设计三、优化设计 优优优优化化化化设设设设计计计计有有有有多多多多方方方方面面面面的的的的内内内内容容容容,,,,例例例例如如如如结结结结构构构构的的的的优优优优化化化化,,,,功功功功能能能能的优化,的优化,的优化,的优化,算法算法算法算法的优化和的优化和的优化和的优化和时间、效率时间、效率时间、效率时间、效率的优化等等的优化等等的优化等等的优化等等. . 软件设计与实现电子科大生命学院 王玲P6⑴⑴⑴⑴不考虑时间因素的前提下开发并精简软件结构。

      不考虑时间因素的前提下开发并精简软件结构不考虑时间因素的前提下开发并精简软件结构不考虑时间因素的前提下开发并精简软件结构⑵⑵⑵⑵寻求软件设计结构中的寻求软件设计结构中的寻求软件设计结构中的寻求软件设计结构中的 “ “关键路径关键路径关键路径关键路径” ” 和和和和 “ “关关关关键事件键事件键事件键事件” ”仔细的设计该模块的实现算法仔细的设计该模块的实现算法仔细的设计该模块的实现算法仔细的设计该模块的实现算法⑶⑶⑶⑶选选选选择择择择合合合合适适适适的的的的高高高高级级级级编编编编程程程程语语语语言言言言,,,,提提提提高高高高程程程程序序序序的的的的编编编编译译译译效效效效率⑷⑷⑷⑷在效率和实现功能之间寻求在效率和实现功能之间寻求在效率和实现功能之间寻求在效率和实现功能之间寻求平衡平衡平衡平衡点对时间起决定性作用的软件的优化方法对时间起决定性作用的软件的优化方法对时间起决定性作用的软件的优化方法对时间起决定性作用的软件的优化方法 软件设计与实现电子科大生命学院 王玲P7从如何从如何提高软件的质量和可维护性提高软件的质量和可维护性的角的角度,讨论在编码阶段所要解决的主要问题:度,讨论在编码阶段所要解决的主要问题: 程序设计语言的特性及选择的原则程序设计语言的特性及选择的原则 程序设计风格程序设计风格 算法与程序效率算法与程序效率 软件代码审查软件代码审查3.7.2 软件编码中的注意事项软件编码中的注意事项 软件设计与实现电子科大生命学院 王玲P8     按照语言级别可以分为两大类:按照语言级别可以分为两大类: 低级语言低级语言 高级语言高级语言((1)低级语言:)低级语言:包括机器语言和汇编语言。

      包括机器语言和汇编语言 低级语言表示成二进制形式的机器基本指令集低级语言表示成二进制形式的机器基本指令集,或者是操作码经过符号化的基本指令集,由于其或者是操作码经过符号化的基本指令集,由于其依依赖于特定的机器,其使用复杂、繁琐、费时、易出赖于特定的机器,其使用复杂、繁琐、费时、易出差错差错,因而程序编写也有一定的难度因而程序编写也有一定的难度3.7.2.1 程序设计语言的选择程序设计语言的选择一、程序设计语言的分类一、程序设计语言的分类 软件设计与实现电子科大生命学院 王玲P9     按照语言级别可以分为两大类:按照语言级别可以分为两大类: 低级语言低级语言 高级语言高级语言((2)高级语言)高级语言 高级语言的表示方法要比低级语言更接近于待高级语言的表示方法要比低级语言更接近于待高级语言的表示方法要比低级语言更接近于待高级语言的表示方法要比低级语言更接近于待解的问题,其特点是解的问题,其特点是解的问题,其特点是解的问题,其特点是在一定程度上与具体机器无关在一定程度上与具体机器无关在一定程度上与具体机器无关在一定程度上与具体机器无关, ,易学、易用、易维护易学、易用、易维护易学、易用、易维护易学、易用、易维护。

      高级语言的实现极大的提高高级语言的实现极大的提高高级语言的实现极大的提高高级语言的实现极大的提高了软件的生产效率了软件的生产效率了软件的生产效率了软件的生产效率3.7.2.1 程序设计语言的选择程序设计语言的选择一、程序设计语言的分类一、程序设计语言的分类 软件设计与实现电子科大生命学院 王玲P101. 按应用范围按应用范围分:分: 通用语言有:通用语言有:通用语言有:通用语言有:PASCALPASCAL、、、、C C、、、、C++C++、、、、JavaJava等等等等 专用语言有:专用语言有:专用语言有:专用语言有:APTAPT等等等等 二、二、高级语言的分类高级语言的分类 2. 按用户的要求分为:按用户的要求分为: 过程式语言和非过程式语言;过程式语言和非过程式语言;3. 按使用方式分:按使用方式分: 交互式语言和非交互式语言;交互式语言和非交互式语言;4.按语言的内在特点分:按语言的内在特点分: 系统实现语言系统实现语言 静态高级语言静态高级语言 动态高级语言动态高级语言 块结构高级语言;块结构高级语言; 软件设计与实现电子科大生命学院 王玲P111. 项目的应用领域项目的应用领域项目的应用领域项目的应用领域。

      应尽量选取适合某个应用领域的应尽量选取适合某个应用领域的语言2. 算法和计算复杂性算法和计算复杂性算法和计算复杂性算法和计算复杂性 3. 3. 软件的执行环境软件的执行环境软件的执行环境软件的执行环境要选取机器上能运行且具有相应要选取机器上能运行且具有相应要选取机器上能运行且具有相应要选取机器上能运行且具有相应支持软件的语言支持软件的语言支持软件的语言支持软件的语言4. 4. 性能因素性能因素性能因素性能因素应结合工程具体性能来考虑应结合工程具体性能来考虑应结合工程具体性能来考虑应结合工程具体性能来考虑 5. 5. 数据结构的复杂性数据结构的复杂性数据结构的复杂性数据结构的复杂性要根据不同语言构造数据结构要根据不同语言构造数据结构要根据不同语言构造数据结构要根据不同语言构造数据结构类型的能力选取类型的能力选取类型的能力选取类型的能力选取 6. 6. 软件开发人员的软件开发人员的软件开发人员的软件开发人员的知识水平知识水平知识水平知识水平以及心理因素以及心理因素以及心理因素以及心理因素三、三、程序设计语言选择准则程序设计语言选择准则 软件设计与实现电子科大生命学院 王玲P12 四、高级语言的内在特性四、高级语言的内在特性1. 传统的高级语言传统的高级语言 具有代表性有:具有代表性有:BASIC、、FORTRAN、、ALOGOL2. 通用的结构化程序设计语言通用的结构化程序设计语言 具有代表性的有:具有代表性的有: PASCAL、、PL/1、、C、、Ada 等,它们都是从等,它们都是从 ALOGOL 语言派生出语言派生出来的。

      来的 软件设计与实现电子科大生命学院 王玲P13 四、高级语言的内在特性四、高级语言的内在特性3. 面向对象的程序设计语言面向对象的程序设计语言 具有代表性的有:具有代表性的有:Smalltalk、、C++、、Java、、C#语言、语言、Visual Basic、、Borland Delphi等4. 第四代语言(第四代语言(4GL)) 常见的有:查询语言、程序生成器和其它常见的有:查询语言、程序生成器和其它4GL语言 软件设计与实现电子科大生命学院 王玲P14 SmalltalkSmalltalk语言语言语言语言,最先实现真正的面向对象的程序设计,最先实现真正的面向对象的程序设计,最先实现真正的面向对象的程序设计,最先实现真正的面向对象的程序设计语言,支持程序部件的语言,支持程序部件的语言,支持程序部件的语言,支持程序部件的“ “可复用性可复用性可复用性可复用性” ” C++C++程程程程序序序序设设设设计计计计语语语语言言言言,,,,既既既既融融融融合合合合了了了了面面面面向向向向对对对对象象象象的的的的能能能能力力力力,,,,又又又又与与与与C C兼兼兼兼容容容容,,,,保保保保留留留留了了了了C C的的的的许许许许多多多多重重重重要要要要特特特特性性性性。

      维维维维护护护护了了了了大大大大量量量量已已已已开开开开发发发发的的的的C C库、工具及库、工具及库、工具及库、工具及C C源程序的完整性源程序的完整性源程序的完整性源程序的完整性 JavaJava语言语言语言语言,是一种简单的面向对象的分布式的语言功,是一种简单的面向对象的分布式的语言功,是一种简单的面向对象的分布式的语言功,是一种简单的面向对象的分布式的语言功能强大、高效安全,与结构无关,易于移植,是多线程的能强大、高效安全,与结构无关,易于移植,是多线程的能强大、高效安全,与结构无关,易于移植,是多线程的能强大、高效安全,与结构无关,易于移植,是多线程的动态语言增加了动态语言增加了动态语言增加了动态语言增加了Objective CObjective C的扩充,提供更多的动态解的扩充,提供更多的动态解的扩充,提供更多的动态解的扩充,提供更多的动态解决办法决办法决办法决办法 具有网络支持、简单、安全具有网络支持、简单、安全具有网络支持、简单、安全具有网络支持、简单、安全 C#C#语言具有语言具有语言。

      具有语言具有JavaJava的几乎所有特征,同时又增加了泛的几乎所有特征,同时又增加了泛的几乎所有特征,同时又增加了泛的几乎所有特征,同时又增加了泛型型型型(generics)(generics)、委托、委托、委托、委托(delegation)(delegation)代码、代码、代码、代码、 λ λ表达式等现代高级表达式等现代高级表达式等现代高级表达式等现代高级语言的特性,使其表达能力非常强语言的特性,使其表达能力非常强语言的特性,使其表达能力非常强语言的特性,使其表达能力非常强 VB, DelphiVB, Delphi面向对象的可视化语言,即所见即所得,提面向对象的可视化语言,即所见即所得,提面向对象的可视化语言,即所见即所得,提面向对象的可视化语言,即所见即所得,提供了一个可视化的开发环境,具有图形设计工具,结构化供了一个可视化的开发环境,具有图形设计工具,结构化供了一个可视化的开发环境,具有图形设计工具,结构化供了一个可视化的开发环境,具有图形设计工具,结构化的事件驱动编程模式的事件驱动编程模式的事件驱动编程模式的事件驱动编程模式 软件设计与实现电子科大生命学院 王玲P153.7.2.2 程序设计风格程序设计风格1. 1. 代码文件代码文件代码文件代码文件 符号名的符号名的符号名的符号名的命名命名命名命名。

      尽量用与实际意义相同或接近的标尽量用与实际意义相同或接近的标尽量用与实际意义相同或接近的标尽量用与实际意义相同或接近的标识符命名识符命名识符命名识符命名 源程序中的源程序中的源程序中的源程序中的注释注释注释注释 注释可分为序言性注释和解释性注释错误的注注释可分为序言性注释和解释性注释错误的注注释可分为序言性注释和解释性注释错误的注注释可分为序言性注释和解释性注释错误的注释宁可不要释宁可不要释宁可不要释宁可不要 注意源程序的注意源程序的注意源程序的注意源程序的书写格式书写格式书写格式书写格式提高程序的可读性、改善程序质量提高程序的可读性、改善程序质量 软件设计与实现电子科大生命学院 王玲P16语句构造,尤其是流程控制语句的构造技语句构造,尤其是流程控制语句的构造技术,直接影响到程序的可读性及效率术,直接影响到程序的可读性及效率应采用直接、清晰的构造方式,而不要为应采用直接、清晰的构造方式,而不要为了提高效率或者显示技巧而降低程序的了提高效率或者显示技巧而降低程序的清清晰性和可读性晰性和可读性 2. 2. 语句构造方法语句构造方法语句构造方法语句构造方法 软件设计与实现电子科大生命学院 王玲P17例例例例1 1 :建立一个:建立一个:建立一个:建立一个N×NN×N的单位矩阵的单位矩阵的单位矩阵的单位矩阵V Vfor (i = 0; i < N; i++)for (i = 0; i < N; i++) for (j = 0; j < N; j++) for (j = 0; j < N; j++) V[i][jV[i][j] = (i / j) * (j / i); ] = (i / j) * (j / i); 采用直截了当的描述方式:采用直截了当的描述方式:采用直截了当的描述方式:采用直截了当的描述方式: for (i = 0; i < N; i++)for (i = 0; i < N; i++) for (j = 0; j < N; j++) for (j = 0; j < N; j++) V[i][jV[i][j] = (i == j) ? 1 : 0; ] = (i == j) ? 1 : 0; 2. 2. 语句构造方法语句构造方法语句构造方法语句构造方法程序构思巧妙程序构思巧妙程序构思巧妙程序构思巧妙, ,但易读性差但易读性差但易读性差但易读性差. . 软件设计与实现电子科大生命学院 王玲P183. 3. 数据说明方法数据说明方法数据说明方法数据说明方法 为使程序中的数据说明更易于理解和维护,为使程序中的数据说明更易于理解和维护,数据数据说明的次序应当规范化说明的次序应当规范化:: 可按说明类型可按说明类型(常量常量,简单变量类型简单变量类型,复杂类型复杂类型 ) 一个语句说明多个变量时,按字母顺序排列。

      一个语句说明多个变量时,按字母顺序排列 复杂的数据结构,要加复杂的数据结构,要加注释注释 软件设计与实现电子科大生命学院 王玲P194. 4. 输入输出技术输入输出技术输入输出技术输入输出技术 输入和输出输入和输出格式格式应尽可能统一应尽可能统一 输出输出信息中应该反映信息中应该反映输入输入的数据 输入和输出应尽可能输入和输出应尽可能集中集中安排 软件设计与实现电子科大生命学院 王玲P203.7.2.3 算法与程序效率算法与程序效率 设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效设计逻辑结构清晰、高效的算法,是提高程序效率的关键率的关键率的关键率的关键 例如:在例如:在例如:在例如:在P187—P188 P187—P188 中,用中,用中,用中,用C C代码编写了两种绘代码编写了两种绘代码编写了两种绘代码编写了两种绘制直线的算法制直线的算法制直线的算法制直线的算法 在在在在DDADDA算算算算法法法法中中中中,,,,一一一一共共共共要要要要进进进进行行行行4*4*dxdx次次次次浮浮浮浮点点点点加加加加法法法法和和和和2*2*dxdx次次次次整整整整型到浮点型的类型转换运算;型到浮点型的类型转换运算;型到浮点型的类型转换运算;型到浮点型的类型转换运算; 在在在在BresenhamBresenham算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行算法中,没有浮点运算,共要进行dxdx次整数次整数次整数次整数比较运算和最多比较运算和最多比较运算和最多比较运算和最多3*3*dxdx次整数加法运算。

      次整数加法运算次整数加法运算次整数加法运算 显然,显然,显然,显然,BresenhamBresenham算法在各方面都比算法在各方面都比算法在各方面都比算法在各方面都比DDADDA算法优越算法优越算法优越算法优越 软件设计与实现电子科大生命学院 王玲P211. 算法算法对效率的影响对效率的影响如顺序表的查找算法,如顺序表的查找算法,假设顺序表的长度为假设顺序表的长度为假设顺序表的长度为假设顺序表的长度为N N,很明显,,很明显,,很明显,,很明显,顺序顺序顺序顺序查找查找法的时间复杂度为法的时间复杂度为法的时间复杂度为法的时间复杂度为O(N)O(N),而二分法的时间复杂度却只,而二分法的时间复杂度却只,而二分法的时间复杂度却只,而二分法的时间复杂度却只是是是是O(log2N)O(log2N)后者的效率明显高于前者后者的效率明显高于前者后者的效率明显高于前者后者的效率明显高于前者. . 2. 2. 存储效率存储效率存储效率存储效率操作系统的操作系统的操作系统的操作系统的存储管理方式存储管理方式存储管理方式存储管理方式,直接影响到程序的存储效率。

      直接影响到程序的存储效率直接影响到程序的存储效率直接影响到程序的存储效率3. 3. 输入输出效率输入输出效率输入输出效率输入输出效率提高提高提高提高输入输入输入输入/ /输出速度输出速度输出速度输出速度,减少,减少,减少,减少出错率出错率出错率出错率影响程序效率的因素影响程序效率的因素 软件设计与实现电子科大生命学院 王玲P223.7.2.4 软件代码审查软件代码审查 为保证代码开发的质量,在编码完成后,进行代为保证代码开发的质量,在编码完成后,进行代为保证代码开发的质量,在编码完成后,进行代为保证代码开发的质量,在编码完成后,进行代码审查或称码审查或称码审查或称码审查或称ReviewReview 审查内容:审查内容:审查内容:审查内容: 1. 1.程序的版式程序的版式程序的版式程序的版式 2. 2.文件结构文件结构文件结构文件结构 3. 3.命名规则命名规则命名规则命名规则 4. 4.表达式与基本语句表达式与基本语句表达式与基本语句表达式与基本语句 详见详见详见详见P190P190,表,表,表,表6-1 6-1 软件代码审查软件代码审查软件代码审查软件代码审查 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.