SE程序设计语言及编码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
引言
通常把编码和测试统称为实现。 编码(Coding):把软件设计翻译成计算机可以 理解的形式——用某种程序设计语言书写的程序 编码阶段涉及的问题 语言选择 编码风格 编程准则 程序效率
编码概述
目的
用选定的程序设计语言将模块的过程性描述 翻译为用该语言书写的源程序 编码 模块的过程性描述 (不可执行的) 源程序 (可执行的)
编码 要求
编码概述
对编码的有关说明
设计是编码的先导,要复审设计 编码要熟悉所用的语言 要恰倒好处利用编程语言的特点 测试阶段也要编写一些测试程序
编程标准
人们总是希望编制清晰、紧凑、高效的程序,但 这些特性在编码时往往互相矛盾,一般应依次考 虑下列原则: (1)编制易于修改、维护的代码
编码的风格
2、数据说明
在设计阶段已经确定了数据结构的组织及其 复杂性。在编写程序时,则需要注意数据说明的 风格。 为了使程序中数据说明更易于理解和维护, 必须注意以下几点: 数据说明的次序应当规范化 说明语句中变量安排有序化 使用注释说明复杂数据结构
编码的风格
(2)程序的注释 夹在程序中的注释是程序员与日后的程序读 者之间通信的重要手段。 注释决不是可有可无的。 一些正规的程序文本中,注释行的数量占到 整个源程序的1/3到1/2,甚至更多。 注释分为序言性注释和功能性注释。
编码的风格
1)序言性注释
通常置于每个程序模块的开头部分,它应当给出程序的 整体说明。有关项目包括: 程序标题; 有关本模块功能和目的的说明; 主要算法; 接口说明:包括调用形式,参数描述,子程序清单; 有关数据描述:重要的变量及其用途,约束或限制条件, 以及其它有关信息; 模块位置:在哪一个源文件中,或隶属于哪一个软件包 开发简历:模块设计者,复审者,复审日期,修改日期 及有关说明等。
编码概述
编码的过程
熟悉所选语言的功能和程序开发环境 仔细阅读设计文档详细设计
弄清要编码的模块的外部接口与内部过程
对编码产生的源程序的要求
正确可靠
简明清晰
有较高的执行效率
编码概述
对编码的有关说明
效率与清晰是一对矛盾的要求 要优先考虑程序的清晰性和可理解性
清晰第一 (对大多数模块) 效率第一 (对个别模块) 用单入/单出保证控制流的直线性 用限制GOTO保证控制流的局部性 用GOTO与其它技巧消除重复编码
引言
软件工程编码阶段的任务是将详细设计翻译成计 算机可以“理解”并且最终可运行的代码。 根据基本机制可将程序设计语言分为过程式程序 设计语言、函数式程序设计语言、逻辑程序设计 语言和面向对象程序设计语言四类。 编码阶段不应单纯追求编码效率,而应全面考虑 编写程序、测试程序、说明程序和修改程序等各 项工作。 影响编码质量的因素包括编程语言、编程准则和 编程风格,它们对程序的可靠性、可读性、可测 试性和可维护性都将产生深远的影响。
编码的风格
追求“聪明”和“技巧”提倡“简明”和 “直接” 使用标准的控制结构 清晰的前提下求取效率
Baidu Nhomakorabea
Make it right before you make it faster. Make it clear before you make it faster. Keep it right when you make it faster.
主要措施是在模块化和面向对象详细设计的 基础上,进一步按属性划分程序。
(2)编制易于测试的代码
一般来说,人们总是通过运用条件编译语句尽 早设计出测试用例、采用统一的命名规则管理 这些测试用例并适时地进行回归测试等一系列 措施提高程序的可测试性。
编程标准(续)
(3)必须将编程与编文档的工作统一开来。一个程序 段的文档应包括下列内容: ①代码的功能; ②代码的完成者; ③代码在整个软件系统中的位置; ④代码编制、复审的时间; ⑤保留代码的原因; ⑥代码中如何使用数据结构和算法。 (4)编程中采用统一的标准和约定,降低程序复杂性 (5)限定每一层的副作用,减少耦合度 (6)尽可能地重用
编码的风格
1、源程序文档化 (1)符号名的命名 符号名即标识符,包括模块名、变量名、常量 名、标号名、子程序名、、数据区名以及缓冲区名 等 这些名字应能反映它所代表的实际东西,应有 一定实际意义 例如,表示次数的量用Times,表示总量的用 Total,表示平均值的用Average,表示和的量用 Sum等 应当选择精炼的意义明确的名字。必要时可使 用缩写名字,但这时要注意缩写规则要一致,并且 要给每一个名字加注释
编码的风格
2)功能性注释 嵌在源程序体中,用以描述其后的语句或程 序段是在做什么工作,或是执行了下面的语句会 怎么样。而不要解释下面怎么做。 要点: 描述一段程序,而不是每一个语句 用缩进、空行或加框,使程序与注释容易区 别 注释要正确
编码的风格
例如, /*ADD AMOUNT TO TOTAL*/ TOTAL=AMOUNT+TOTAL 此注释不好。 如果注明把月销售额计入年度总额,便使读者 理解了下面语句的意图: /*ADD MONTHLY-SALES TO ANNUAL-TOTAL*/ TOTAL=AMOUNT+TOTAL
(求快不忘保持程序正确)
Keep it simple to make it faster.
(保持程序简单以求快)
Don’t sacrifice clarity for “efficiency”.
(书写清楚,不要为“效率”牺牲清楚)
编码的风格
源程序代码的逻辑简明清晰、易读易懂是好程 序的一个重要标准 程序具有良好的风格包括: 源程序文档化 数据说明 语句结构 输入/输出方法 同时要考虑设计出的程序的执行效率问题
编码的风格
(3)视觉组织(空格、空行和移行) 恰当地利用空格,可以突出运算的优先性,避免 发生运算的错误。 自然的程序段之间可用空行隔开。 移行也叫做向右缩格。 对于选择语句和循环语句,把其中的程序段语句 向右做阶梯式移行。使程序的逻辑结构更加清晰。
编码的风格
例如,两重选择结构嵌套,写成下面的移行形式, 层次就清楚得多。 for(i=1;i<=n;i++) for(j=1;j<=n;j++) a[i][j]=i*10+j;