软件工程编码
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、变量命名
6.4 编码语言与编码标准和规范
1、变量命名
6.4编码语言与编码标准和规范
2、头文件
头文件在每个程序的开头位置,是对程序的介绍, 包括: 模块的名字叫什么 是完成的这个模块 在设计中这个模块的位置 模块是何时编写、修改 模块的重要性 模块中的数据结构、算法和控制
6.4 编码语言与编码标准和规范
第一代语言——机器语言
第二代语言——汇编语言
第三代语言——高级程序设计语言 第四代语言——4gl
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.2.1 结构化编程
程序模块的主要控制结构在概要设计和详细设计中
已经确定,在编码过程中要继承设计中确定的结构, 程序结构要反映设计中的控制结构。但是要避免以 下情况出现: GetMoney = min; If(age<70)goto A; GetMoney = max; If (age<60) goto B; A: …….. B:……...
软件项目的编码
余
伟
目录
6.1 编码概述 6.2 编码方法 6.3 编码策略 6.4 编码语言与编码标准和规范
6.1 编码概述
需 求 分 析
概 要 设 计
详 细 设 计
编 码
测 试
产 品 提 交
维 护
6.1 编码概述
6.1编码概述
看不下去!
重写程序!
找到原作者,暴打一顿! 炒他鱿鱼,他不走我走!
什么是每日构建?
就是每天都把整个软件项目自动编译一遍,最终生 成的产出物必须和交付到用户手中的一样。 每日建构的重要性和意义?每日构建.docx
开发阶段的日常管理(补充)
3、构建大师
构建失败需注意: 强调基本开发流程(编译要产生debug和release两个 版本) 签入时,必须从TFS同步下载所有最新的版本在编 译 签入前,都要进行单元测试和构建验证测试
6.1编码概述
编码是软件设计的自然结果,因此,程序的质量主
要取决于软件设计质量,但是所选用的程序设计语 言的特点和编码风格,也会对程序的可靠性、可读
性、可测试性和可维护性产生深远影响!
6.1编码概述
编码过程的一个重要标准是编程与设计的对应性和
统一性。
如果编码没有按照设计的要求进行,设计就没有意
示。典型的数据结构有:标量项、顺序表、链表、 树、网状、n维空间。
6.2.3 面向对象编程
类?对象?属性?方法?
访问控制:公共的?私有的?受保护的?
6.3 编程策略
1、自顶向下的开发策略
即从模块的最高层次开始逐步向下编码,在面向对 象的系统中,首先开发实现执行的那个类(主类)。 2、自底向上的开发策略 先写底层的工具类,然后高层调用底层,直至实现 所有的类。 3、自顶向下和自底向上方法的结合 这种方法是常用的,顶层模块一般是系统总体界面、 初始化、配置等,可以先实现,然后开始实现底层 的基础模块。
6.4编码语言与编码标准和规范
3、程序注释
6.4 编码语言与编码标准和规范
4、目录
开发阶段的日常管理(补充)
1、闭门造车(Leave Me Alone)
开发时被不停的打断,导致工作进展低。
是不是“封闭开发”就能避免干扰? bug一定要立即处理吗?
开发阶段的日常管理(补充)
2、每日构建
6.2.1 结构化编程
例如:如果程序中有一个三维数组,你为了增加效
率而用一个一维数组代替三维数组的位置索引,这 样你的代码是index=3*i+2*j+k;其实,编译器计算
数组的索引位置是在注册表中,速度很快的。
6.2.1 结构化编程
3、数据结构
数据结构是数据的各个元素之间逻辑关系的一种表
义了。
设计过程中的算法、功能、接口、数据结构都应该
在编码过程中体现。
6.2.1 结构化编程
1、控制结构
不能再被分解的模块叫做原子模块,如果一个软件
系统的全部实际工作都由原子模块来完成,其他非
原子模块仅仅执行控制或者协调功能,这样的系统
就是完全因子分解系统,这是我们努力的目标。模 块结构分为:树状结构和网状结构。
6.2.1 结构化编程
2、算法
在设计的时候可以对模块的实现算法进行描述和说 明,但是在编码实现这些算法时可以有很大的灵活 性。一味追求代码的运行速度,有可能带来隐含的 成本:
写运行速度更快的代码,技术要复杂一些,需要花
费更多时间。 在测试的时候,复杂技术需要更多的测试案例 读者可能需要话费更多的时间阅读代码 修改代码的时间加长
Hale Waihona Puke Baidu
6.3 编码策略
4、现场模式的开发策略 线程是执行关键功能的最小模块集合,他们可以来自设 计层次的不同层,通过跨层次的交互来实现一定的功能。 县城可以并行开发、独立编写和测试。 需注意: 确定编码标准或者指南 从其他项目中复用代码 让自己能被其他线程复用 按照详细设计进行设计到编码的反复 增加说明解释文档 设计的属性能在代码中体现出来 编码语言尽可能使用设计的要求
6.2.1 结构化编程
(1)树状结构
A B D G H E I C F
6.2.1 结构化编程
(1)树状结构
整个结构只有一个顶层,上层调用下层模块,同一
层模块间不能相互调用。
6.2.1 结构化编程
(2)网状结构
任意两个模块间都可以有调用关系,不存在上层模
块和下属模块的关系。
A B D C
开发阶段的日常管理(补充)
3、构建大师
由于谁的失误导致构建失败的,被团队赋予“构建 大师”称号,构建大师负责以下事情: 故障管理构建服务器 调试构建,负责找错,并分析原因 负责把“构建大师”称号交给下一人
开发阶段的日常管理(补充)
4、小强地狱
开发进度>修复bug? 怎么样平衡开发和测试?
6.4 编码语言与编码标准和规范
1、变量命名
6.4编码语言与编码标准和规范
2、头文件
头文件在每个程序的开头位置,是对程序的介绍, 包括: 模块的名字叫什么 是完成的这个模块 在设计中这个模块的位置 模块是何时编写、修改 模块的重要性 模块中的数据结构、算法和控制
6.4 编码语言与编码标准和规范
第一代语言——机器语言
第二代语言——汇编语言
第三代语言——高级程序设计语言 第四代语言——4gl
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.4 编码语言与编码标准和规范
6.2.1 结构化编程
程序模块的主要控制结构在概要设计和详细设计中
已经确定,在编码过程中要继承设计中确定的结构, 程序结构要反映设计中的控制结构。但是要避免以 下情况出现: GetMoney = min; If(age<70)goto A; GetMoney = max; If (age<60) goto B; A: …….. B:……...
软件项目的编码
余
伟
目录
6.1 编码概述 6.2 编码方法 6.3 编码策略 6.4 编码语言与编码标准和规范
6.1 编码概述
需 求 分 析
概 要 设 计
详 细 设 计
编 码
测 试
产 品 提 交
维 护
6.1 编码概述
6.1编码概述
看不下去!
重写程序!
找到原作者,暴打一顿! 炒他鱿鱼,他不走我走!
什么是每日构建?
就是每天都把整个软件项目自动编译一遍,最终生 成的产出物必须和交付到用户手中的一样。 每日建构的重要性和意义?每日构建.docx
开发阶段的日常管理(补充)
3、构建大师
构建失败需注意: 强调基本开发流程(编译要产生debug和release两个 版本) 签入时,必须从TFS同步下载所有最新的版本在编 译 签入前,都要进行单元测试和构建验证测试
6.1编码概述
编码是软件设计的自然结果,因此,程序的质量主
要取决于软件设计质量,但是所选用的程序设计语 言的特点和编码风格,也会对程序的可靠性、可读
性、可测试性和可维护性产生深远影响!
6.1编码概述
编码过程的一个重要标准是编程与设计的对应性和
统一性。
如果编码没有按照设计的要求进行,设计就没有意
示。典型的数据结构有:标量项、顺序表、链表、 树、网状、n维空间。
6.2.3 面向对象编程
类?对象?属性?方法?
访问控制:公共的?私有的?受保护的?
6.3 编程策略
1、自顶向下的开发策略
即从模块的最高层次开始逐步向下编码,在面向对 象的系统中,首先开发实现执行的那个类(主类)。 2、自底向上的开发策略 先写底层的工具类,然后高层调用底层,直至实现 所有的类。 3、自顶向下和自底向上方法的结合 这种方法是常用的,顶层模块一般是系统总体界面、 初始化、配置等,可以先实现,然后开始实现底层 的基础模块。
6.4编码语言与编码标准和规范
3、程序注释
6.4 编码语言与编码标准和规范
4、目录
开发阶段的日常管理(补充)
1、闭门造车(Leave Me Alone)
开发时被不停的打断,导致工作进展低。
是不是“封闭开发”就能避免干扰? bug一定要立即处理吗?
开发阶段的日常管理(补充)
2、每日构建
6.2.1 结构化编程
例如:如果程序中有一个三维数组,你为了增加效
率而用一个一维数组代替三维数组的位置索引,这 样你的代码是index=3*i+2*j+k;其实,编译器计算
数组的索引位置是在注册表中,速度很快的。
6.2.1 结构化编程
3、数据结构
数据结构是数据的各个元素之间逻辑关系的一种表
义了。
设计过程中的算法、功能、接口、数据结构都应该
在编码过程中体现。
6.2.1 结构化编程
1、控制结构
不能再被分解的模块叫做原子模块,如果一个软件
系统的全部实际工作都由原子模块来完成,其他非
原子模块仅仅执行控制或者协调功能,这样的系统
就是完全因子分解系统,这是我们努力的目标。模 块结构分为:树状结构和网状结构。
6.2.1 结构化编程
2、算法
在设计的时候可以对模块的实现算法进行描述和说 明,但是在编码实现这些算法时可以有很大的灵活 性。一味追求代码的运行速度,有可能带来隐含的 成本:
写运行速度更快的代码,技术要复杂一些,需要花
费更多时间。 在测试的时候,复杂技术需要更多的测试案例 读者可能需要话费更多的时间阅读代码 修改代码的时间加长
Hale Waihona Puke Baidu
6.3 编码策略
4、现场模式的开发策略 线程是执行关键功能的最小模块集合,他们可以来自设 计层次的不同层,通过跨层次的交互来实现一定的功能。 县城可以并行开发、独立编写和测试。 需注意: 确定编码标准或者指南 从其他项目中复用代码 让自己能被其他线程复用 按照详细设计进行设计到编码的反复 增加说明解释文档 设计的属性能在代码中体现出来 编码语言尽可能使用设计的要求
6.2.1 结构化编程
(1)树状结构
A B D G H E I C F
6.2.1 结构化编程
(1)树状结构
整个结构只有一个顶层,上层调用下层模块,同一
层模块间不能相互调用。
6.2.1 结构化编程
(2)网状结构
任意两个模块间都可以有调用关系,不存在上层模
块和下属模块的关系。
A B D C
开发阶段的日常管理(补充)
3、构建大师
由于谁的失误导致构建失败的,被团队赋予“构建 大师”称号,构建大师负责以下事情: 故障管理构建服务器 调试构建,负责找错,并分析原因 负责把“构建大师”称号交给下一人
开发阶段的日常管理(补充)
4、小强地狱
开发进度>修复bug? 怎么样平衡开发和测试?