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