第6章 软件编码 本章内容结构 本章引言 学习目标 教学内容 本章小结 思考和练习 课堂讨论 2019年4月9日.

Slides:



Advertisements
Similar presentations
1 计算机软件考试命题模式 计算机软件考试命题模式 张 淑 平 张 淑 平. 2  命题模式内容  组织管理模式 − 命题机构和人员组成 − 命题程序  试卷组成模式.
Advertisements

数据结构的引入. 通讯录管理 社团机构管理 校园导航管理 通讯录管理 社团机构管理 校园导航管理.
联系方式 课程学习平台网址: 用户名:学号 ; 密码:身份证后 6 位.
北师大版四年级数学下册 天平游戏(二).
《程序设计实践》 孙辉 理工配楼104A
软件工程 周志钊
ASP .NET 程序设计(C#版) 第二版 机械工业出版社同名教材 配套电子教案
第3节 体内物质的运输.
第3节 体内物质的运输.
会计学专业基础课堂之 基础会计(初级会计) 安徽财经大学会计学院.
基于解释性语言的手机跨平台架构 Sloan Yi. Qt MTK.
面向对象程序设计 C#.Net 01 C#概述和简单编程 郑捷
C语言实验 第一课 标题:学号+姓名.
全国计算机等级考试 二级基础知识 第二章 程序设计基础.
计算机基础知识 丁家营镇九年制学校 徐中先.
施耐德电气(中国)投资有限公司 运动控制部技术经理 李幼涵 高级工程师
程序的形式验证 - 简介 中国科学院软件研究所 张文辉 1.
《数据库原理及应用》课程介绍 信息工程学院 孙俊国
Hadoop I/O By ShiChaojie.
EBNF 请用扩展的 BNF 描述 C语言里语句的结构; 请用扩展的 BNF 描述 C++语言里类声明的结构;
面向对象建模技术 软件工程系 林 琳.
学习前的准备工作 讲师:burning.
存储系统.
管理信息结构SMI.
走进编程 程序的顺序结构(二).
辅导课程六.
第11章:一些著名开源软件介绍 第12章:服务安装和配置 本章教学目标: 了解当前一些应用最广泛的开源软件项目 搭建一个网站服务器
软件工程 Software Engineering
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
数 控 技 术 华中科技大学机械科学与工程学院.
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第二章 Java语言基础.
数据挖掘工具性能比较.
CPU结构和功能.
《编译原理与技术》 期末复习 计算机科学与技术学院 郑启龙 李 诚 25/12/2018.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
宁波市高校慕课联盟课程 与 进行交互 Linux 系统管理.
程序设计工具实习 Software Program Tool
编程作业3:网页正文抽取 (10分).
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
内容摘要 ■ 课程概述 ■ 教学安排 ■ 什么是操作系统? ■ 为什么学习操作系统? ■ 如何学习操作系统? ■ 操作系统实例
C语言程序设计 主讲教师:陆幼利.
EBNF与操作语义 请用扩展的 BNF 描述 javascript语言里语句的结构;并用操作语义的方法描述对应的语义规则
简单介绍 用C++实现简单的模板数据结构 ArrayList(数组, 类似std::vector)
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
C# 入门 2011级ACM班 张方魁.
VisComposer 2019/4/17.
实验七 安全FTP服务器实验 2019/4/28.
计算机网络与网页制作 Chapter 07:Dreamweaver CS5入门
第4章 Excel电子表格制作软件 4.4 函数(一).
JSP实用教程 清华大学出版社 第2章 JSP运行环境和开发环境 教学目标 教学重点 教学过程 2019年5月7日.
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
<编程达人入门课程> 本节内容 计算机编程语言 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
3.16 枚举算法及其程序实现 ——数组的作用.
数据集的抽取式摘要 程龚, 徐丹云.
第八章 总线技术 8.1 概述 8.2 局部总线 8.3 系统总线 8.4 通信总线.
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
<编程达人入门课程> 本节内容 学习路线 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
_03宽字符与Unicode编程 本节课讲师——void* 视频提供:昆山爱达人信息技术有限公司 官网地址:
第二节 C语言的特点.
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第三节 数量积 向量积 混合积 一、向量的数量积 二、向量的向量积 三、向量的混合积 四、小结 思考题.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
任课教师:戴开宇 TA:时均帅、谭肖、王安华 程序设计B班 :20-16:50(90分钟)
实验六、COM类型病毒分析实验 实验开发教师: 刘乃琦 谌黔燕.
编译原理实践 6.程序设计语言PL/0.
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第6章 软件编码 本章内容结构 本章引言 学习目标 教学内容 本章小结 思考和练习 课堂讨论 2019年4月9日

本章引言 经过软件的总体设计和详细设计后,便得到了软件系统的结构和每个模块的详细过程描述,接着便进入了软件的制作阶段,或者叫编码阶段,也就是通常人们惯称的程序设计阶段。 程序设计语言的性能和编码风格在很大程序上影响着软件的质量和维护性能,即对程序的可靠性、可读性、可测试性和可维护性产生深远的影响,所以选择哪一种程序设计语言和怎样来编写代码是要认真考虑的。但是,本章并不具体讲述如何编写程序,而是在软件工程这个广泛的范围内介绍与编程语言和编写程序有关的一些问题。 2019年4月9日

学习目标 熟悉程序设计语言的分类 了解程序设计语言的选择 理解并会应用程序设计风格 2019年4月9日

教学内容 6.1 程序设计语言的分类 6.2 程序设计语言的选择 6.3 程序设计风格 6.4 本章小结和习题 2019年4月9日

6.1 程序设计语言的分类 从不同的分类角度,程序设计语言可得出不同的分类体系。从软件工程的角度,编程语言可分为基础语言、结构化语言和面向对象语言3 大类。 6.1.1 基础语言 6.1.2 结构化语言 6.1.3 面向对象语言 2019年4月9日

6.1.1 基础语言 基础语言是通用语言,它的特点是适用性强,应用面广,历史悠久 。 6.1.1 基础语言 基础语言是通用语言,它的特点是适用性强,应用面广,历史悠久 。 FORTRAN,COBOL,BASIC和ALGOL都属于这类语言。

6.1.2 结构化语言 20世纪70年代以来,随着结构化程序设计思想的逐步发展,先后出现了一批常用的结构化语言。 6.1.2 结构化语言 20世纪70年代以来,随着结构化程序设计思想的逐步发展,先后出现了一批常用的结构化语言。 作为基础语言的ALGOL语言是结构化语言的基础,它衍生出了Pascal、C、 Ada等结构化语言。

6.1.3 面向对象的语言 C++语言 Java语言 从软件工程的角度,按“代”可以将编程语言划分为: 6.1.3 面向对象的语言 C++语言 Java语言 从软件工程的角度,按“代”可以将编程语言划分为: 1GL:面向机器的语言,代表是机器语言和汇编语言; 2GL:始于20世纪50年代至60年代,代表:FORTRAN、ALGOL、COBOL、BASIC。 3GL:也称现代编程语言,代表Pascal、C、Ada、C++、Smalltalk等、 4GL :代表:VB、VC、JAVA。

6.2 程序设计语言的选择 程序设计语言选择的理想标准主要有: 6.2 程序设计语言的选择 程序设计语言选择的理想标准主要有: 为了使程序容易测试和维护以减少软件的总成本,所选用 的高级语言应该有理想的模块化机制,以及可读性好的控制 结构和数据结构; 为了便于调试和提高软件可靠性,语言特点应该使编译程 序能够尽可能多地发现程序中的错误。 为了降低软件开发和维护的成本,选用的高级语言应该有 良好的独立编译机制。

6.2 程序设计语言的选择 程序设计语言选择的实用标准主要有: 待开发软件的应用领域 用户的要求 软件的运行环境 软件开发人员的知识 6.2 程序设计语言的选择 程序设计语言选择的实用标准主要有: 待开发软件的应用领域 用户的要求 软件的运行环境 软件开发人员的知识 软件的可移植性要求

6.3 程序设计风格 源程序代码的逻辑简明、易读易懂是好程序的一个重 要标准。 1.程序内部文档 2.数据说明 3.语句构造 4.输入输出 6.3 程序设计风格 源程序代码的逻辑简明、易读易懂是好程序的一个重 要标准。 1.程序内部文档 2.数据说明 3.语句构造 4.输入输出 5.效率

6.3.1 程序内部文档 程序内部文档包括标识符的选取、增加注解和好的程 序布局。 标识符的选取 程序的注解 程序的布局

6.3.2 数据说明 数据说明应遵循一些简单的原则: 数据说明的次序应该标准化; 当一个说明语句说明多个变量时,最好按字典顺序排列; 6.3.2 数据说明 数据说明应遵循一些简单的原则: 数据说明的次序应该标准化; 当一个说明语句说明多个变量时,最好按字典顺序排列; 如果设计时使用了一个复杂的数据结构,则应加注解说明用程序设计语言实现这个数据结构的方法和特点 。

6.3.3 语句构造 语句构造的原则 : 不要为了节省存储空间把多个语句写在同一行。 尽量避免复杂的条件测试,尤其是减少对“非”条件的测试。 6.3.3 语句构造 语句构造的原则 : 不要为了节省存储空间把多个语句写在同一行。 尽量避免复杂的条件测试,尤其是减少对“非”条件的测试。 避免大量使用循环嵌套语句和条件嵌套语句。 利用圆括号使逻辑表达式或算术表达式的运算次序清晰直观。 变量说明不要遗漏,变量的类型、长度、存储及初始化要正确。 心理换位:“如果我不是编码人,我能看懂它吗”?

6.3.4 输入输出 有关输入输出风格的规则: 对所有输入数据都要进行校验。 检查输入项重要组合的合法性。 保持简单的输入格式。 6.3.4 输入输出 有关输入输出风格的规则: 对所有输入数据都要进行校验。 检查输入项重要组合的合法性。 保持简单的输入格式。 输入一批数据时,使用数据或文件结束标志,不要用计数来控制。 人机交互式输入时,要详细说明可用的选择范围和边界值。 当程序设计语言对输入/输出格式有严格要求时,应保持输入格式与输入语句的要求一致。 输出报表的设计要符合用户要求,输出数据尽量表格化、图形化。 给所有的输出数据加标志,并加以必要的注解。

6.3.5 效率 效率主要是指处理机工作时间和内存容量这两方面的利用率。 关于程序效率问题应该记住下面3条原则: 6.3.5 效率 效率主要是指处理机工作时间和内存容量这两方面的利用率。 关于程序效率问题应该记住下面3条原则: 效率是属于性能的要求,因此应该在软件需求分析阶段确定效率方面的要求; 良好的设计可以提高效率; 提高程序的效率和好的编码风格要保持一致,不应该一味追求程序的效率而牺牲程序的清晰性和可读性。 进一步讨论效率问题: 代码效率 、存贮效率和输入输出的效率 。

例子

例子

例子

例子

例子

例子

例子

例子

例子

例子

本章小结 编码阶段是将详细设计的每个模块的算法转换为用程序设计语言编写的源程序。用程序设计语言编写源程序时,要根据实际项目的特点,既要考虑现实可能性,又要从技术角度、工程角度和心理角度评价和比较各种语言,选择一种合适的程序设计语言。 编码风格直接影响软件的质量,影响软件的可读性、可维护性和可移植性。因此,编码风格要求简明和清晰,不要追求所谓程序设计技巧,要注重程序结构清晰,层次结构分明,语言简单明了,各种标识符名字的命名要规范,程序和复杂的数据要有注释。 2019年4月9日

习题 在软件项目开发时,选择程序设计语言通常考虑哪些因素? 举例说明各种程序设计语言的特点及适用范围? 什么是程序设计风格?为了具有良好的程序设计风格,应该注意哪些方面的问题? 以下3个表达式表示的是同一个内容: (a)-6**A/3*B; (b)-(6**A/3)*B; (c)+(((6**A)/(-3))*x) (1)你认为哪一种可读性最好?哪一种最差? (2)如果让你列出几条关于书写表达式的指导原则,你对表达式中运算符的数量和圆满括号的层数将作何规定 5. 第4代语言有哪些主要特征?为什么受到广大用户欢迎?

课堂讨论 根据前面选择的软件开发项目,选择一种程序设计语言尝试完成编码工作; Question? 2019年4月9日