软件制造工程第三章.ppt





《软件制造工程第三章.ppt》由会员分享,可在线阅读,更多相关《软件制造工程第三章.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件制造工程软件制造工程 第三章第三章编程工程编程工程第三章第三章编程工程编程工程v编程工程的定义和内容编程工程的定义和内容v结构化编程结构化编程v编码规范编码规范v编程前的准备编程前的准备v编程实施编程实施3.1.1编程工程的定义和内容编程工程的定义和内容v编程工程编程工程就是用程序设计语言把程序设计的就是用程序设计语言把程序设计的结果和过程翻译为在计算机相应环境下可运结果和过程翻译为在计算机相应环境下可运行的软件产品,把系统工程师按照用户需求行的软件产品,把系统工程师按照用户需求设计出来的系统构架变为真正可运行的软件设计出来的系统构架变为真正可运行的软件系统的工程。系统的工程。3.1.1编
2、程工程的定义编程工程的定义v编程工程的作业内容编程工程的作业内容详细地划分为制定工作详细地划分为制定工作标准,制定编码基准,理解设计书,程序编标准,制定编码基准,理解设计书,程序编码,自查,送上级系统工程师审查,修改以码,自查,送上级系统工程师审查,修改以及进行单元测试等若干步骤及进行单元测试等若干步骤.3.2结构化编程结构化编程v结构化开发结构化开发-结构化分析、结构化设计结构化分析、结构化设计和结构化编程三个阶段和结构化编程三个阶段3.2.1结构化开发过程结构化开发过程结结 构构 化化 编编程程结结 构构 化化 设设计计结结 构构 化化 分分析析需求分析需求分析/验收测试计划验收测试计划外
3、部设计外部设计/系统测试计划系统测试计划内部设计内部设计/组合测试计划组合测试计划程序制造程序制造(编码编码&单元测试单元测试)验收测试验收测试组合测试组合测试系统测试系统测试3.2.1结构化开发过程结构化开发过程1、结构化分析、结构化分析v结构化分析方法的核心是沿数据流程图自顶向下、结构化分析方法的核心是沿数据流程图自顶向下、逐步求精,是最经典的面向数据流的需求分析方法。逐步求精,是最经典的面向数据流的需求分析方法。结构化分析方法使用系统流程图、数据流程图、数结构化分析方法使用系统流程图、数据流程图、数据字典、据字典、ER图、处理说明等工具来描述系统的功能图、处理说明等工具来描述系统的功能需
4、求、数据需求、运行需求和系统扩充需求。该方需求、数据需求、运行需求和系统扩充需求。该方法广泛应用于银行,证券,商务处理,生产管理等法广泛应用于银行,证券,商务处理,生产管理等大中型信息管理系统的需求分析过程。大中型信息管理系统的需求分析过程。3.2.1结构化开发过程结构化开发过程v在软件系统开发的初期阶段,首先要对用户在软件系统开发的初期阶段,首先要对用户的现行业务运行系统进行调查和现状分析,的现行业务运行系统进行调查和现状分析,把握用户对新的开发系统的要求和希望,从把握用户对新的开发系统的要求和希望,从用户提供的基本信息中,整理出开发系统目用户提供的基本信息中,整理出开发系统目的和可能实现的
5、功能范围,设计出新系统的的和可能实现的功能范围,设计出新系统的数据流程图(数据流程图(DFD:DataFlowDiagram),),显示屏幕关连图和功能概要说明书。显示屏幕关连图和功能概要说明书。3.2.1结构化开发过程结构化开发过程2、结构化设计、结构化设计v结构化设计方法通常也叫做面向数据流的设计、面结构化设计方法通常也叫做面向数据流的设计、面向行为的设计。结构化设计方法是以需求分析阶段向行为的设计。结构化设计方法是以需求分析阶段获得的新系统的数据流程图获得的新系统的数据流程图(DFD)和显示屏幕关连图和显示屏幕关连图为基础,通过一系列映射,自顶向下,逐步细化,为基础,通过一系列映射,自顶
6、向下,逐步细化,把它们变换为具体的程序概要结构图和屏幕设计式把它们变换为具体的程序概要结构图和屏幕设计式样,把一个个复杂的问题分解细化为由多个功能模样,把一个个复杂的问题分解细化为由多个功能模块组成的具有层次结构的软件系统。块组成的具有层次结构的软件系统。3.2.1结构化开发过程结构化开发过程3、结构化程序制造、结构化程序制造v结构化程序制造由结构化程序设计和结构化程序编结构化程序制造由结构化程序设计和结构化程序编码组成,它以外部设计和内部设计过程中获得的软码组成,它以外部设计和内部设计过程中获得的软件结构图及其相关设计资料为基础,采用自顶向下,件结构图及其相关设计资料为基础,采用自顶向下,逐
7、步细化的方法,把一个个模块的功能逐步分解,逐步细化的方法,把一个个模块的功能逐步分解,细化为一系列具体的步骤,作出结构化程序设计说细化为一系列具体的步骤,作出结构化程序设计说明书,程序员再按照程序设计说明书和系统设计的明书,程序员再按照程序设计说明书和系统设计的相关资料,把一步步的处理说明翻译成一系列用某相关资料,把一步步的处理说明翻译成一系列用某种程序设计语言编写的程序代码。种程序设计语言编写的程序代码。3.2.2结构化编码结构化编码v程序代码的质量与软件系统外部设计和内部程序代码的质量与软件系统外部设计和内部设计的质量直接相关,同时,程序设计语言设计的质量直接相关,同时,程序设计语言的特性
8、和程序员的编码水平,程序代码的可的特性和程序员的编码水平,程序代码的可读性,可维护性,可靠性,可测试性都是直读性,可维护性,可靠性,可测试性都是直接影响程序质量的因素。接影响程序质量的因素。3.2.2结构化编码结构化编码v结构化编码采用自顶向下,逐步细化的方法,结构化编码采用自顶向下,逐步细化的方法,先全局,后局部,先整体,后细节,先抽象,先全局,后局部,先整体,后细节,先抽象,后具体,逐步求精,编制出来的程序具有清后具体,逐步求精,编制出来的程序具有清晰的逻辑层次结构,容易阅读、理解、修改晰的逻辑层次结构,容易阅读、理解、修改和维护,可以提高软件质量,提高软件开发和维护,可以提高软件质量,提
9、高软件开发的成功率和生产性。的成功率和生产性。结构化编码过程中,结构化编码过程中,要遵循以下几个主要的原则要遵循以下几个主要的原则:尽可能使用语言提供的基本控制结构,顺序结构、尽可能使用语言提供的基本控制结构,顺序结构、选择结构和重复结构。选择结构和重复结构。选用的控制结构只准许有一个入口和一个出口。选用的控制结构只准许有一个入口和一个出口。利用程序内部函数,把程序组织成容易识别的内部利用程序内部函数,把程序组织成容易识别的内部函数模块,每个模块只有一个入口和一个出口,一函数模块,每个模块只有一个入口和一个出口,一般不超过般不超过100行。行。复杂结构应该用基本控制结构组合或嵌套来实现。复杂结
10、构应该用基本控制结构组合或嵌套来实现。尽可能减少尽可能减少GOTO语句的使用,一般限制用到以下语句的使用,一般限制用到以下三种情况:三种情况:v把控制转移到出错处理。把控制转移到出错处理。v把控制转移到函数模块结束把控制转移到函数模块结束v从深层嵌套的循环退出从深层嵌套的循环退出3.2.2结构化编码结构化编码v大量采用大量采用GOTO语句实现控制路径,会使程语句实现控制路径,会使程序路径变得复杂而且混乱,但有时完全不用序路径变得复杂而且混乱,但有时完全不用GOTO语句,可能会增加程序实现的复杂度。语句,可能会增加程序实现的复杂度。例如,在查找结束时、文件访问结束时或出例如,在查找结束时、文件访
11、问结束时或出现错误情况要从循环中转出时,使用现错误情况要从循环中转出时,使用GOTO语句会使程序更加清晰易懂。所以,应该加语句会使程序更加清晰易懂。所以,应该加以限制地使用以限制地使用GOTO语句。语句。程序程序1 if(A B)goto 120;if(B C)goto 110;100 write(C);goto 140;110 write(B);goto 140;120 if(A C)goto 130;goto 100;130 write(A);140 end 例1 打印A,B,C三数中最小者程序 程序程序2 if(A B)and(A C)then write(A)else if(A B)a
12、nd(B C)then write(B)else write(C)endif endif3.2.3结构化编码结构化编码v在结构化程序的实现方法中,有两种常用的在结构化程序的实现方法中,有两种常用的基本方法,第一是分类基本方法,第一是分类(BREAK)处理方法,第处理方法,第二是匹配二是匹配(MATCHING)处理方法。处理方法。BREAK方法的引入方法的引入:问题问题:根据学生成绩文件,统计各班的平均分,并输:根据学生成绩文件,统计各班的平均分,并输出到班级平均成绩文件中?出到班级平均成绩文件中?班级编号班级编号学号学号英语成绩英语成绩20040100190.520040100267.5200
13、40100378.020040200167.020040200279.020040300182.520040300266.0程序处理过程(程序处理过程(PDL代码)代码):读入学生成绩文件的第一个记录;读入学生成绩文件的第一个记录;beforeKey=这个纪录的班级编号;这个纪录的班级编号;sum=这个纪录的成绩这个纪录的成绩;n=1;While(学生成绩文件没有结束)学生成绩文件没有结束)读入下一个学生成绩记录;读入下一个学生成绩记录;afterKey=这个纪录的班级编号;这个纪录的班级编号;if(afterKey=beforeKey)sum+=这个纪录的成绩;这个纪录的成绩;n+;else
14、输出输出sum/n到班级平均成绩文件;到班级平均成绩文件;beforeKey=afterkey;sum=这个纪录的成绩;这个纪录的成绩;n=1;输出输出sum/n到班级平均文件;到班级平均文件;输入文件输入文件BREAK处理处理输出文件输出文件Break方法处理概要方法处理概要vBREAK方法的前提条件方法的前提条件:在进行在进行BREAK处理之前,输入文件必须是已处理之前,输入文件必须是已经按照关键字项目值进行排序(升序或者降经按照关键字项目值进行排序(升序或者降序)处理好的。序)处理好的。3.2.2结构化编码结构化编码BREAK方法的处理流程说明方法的处理流程说明:按关键字项目值的升序读入
15、输入文件的记录,把关按关键字项目值的升序读入输入文件的记录,把关键字项目的值存入工作变量中。键字项目的值存入工作变量中。关键字项目的值相同时,进行统计处理(或者其他关键字项目的值相同时,进行统计处理(或者其他处理)。处理)。关键字项目的值发生了变化(关键字项目的值发生了变化(BREAK)的时候,)的时候,把变化前(把变化前(BREAKBEFOR)的关键字项目值和统)的关键字项目值和统计结果输出到文件中(或者其他处理),用变化后计结果输出到文件中(或者其他处理),用变化后(BREAKAFTER)的关键字项目值替换变化前的)的关键字项目值替换变化前的关键字项目值。关键字项目值。3.2.2结构化编码
16、结构化编码读入输入文件的下一条记录,把关键字项读入输入文件的下一条记录,把关键字项目的值存入变化后的工作变量中。目的值存入变化后的工作变量中。继续进行上述继续进行上述至至的处理,直至文件读的处理,直至文件读入结束。入结束。BREAK处理流程处理流程汇总处汇总处理理学号学号姓名姓名语语文文数学数学总总分分 001 001吴吴晓晓燕燕9080170170002002张张光光华华7880158004004李锋李锋6577142142学号学号姓名姓名001吴吴晓晓燕燕002002张张光光华华003003田野田野004004李锋李锋学号学号语文语文数学数学001908000278800046777学生名
17、称文件学生名称文件学生成绩文件学生成绩文件学生成绩汇总文件学生成绩汇总文件MACHING方法的引入方法的引入:问题:读入学生名称文件和学生成绩文件,把相同编号的数据问题:读入学生名称文件和学生成绩文件,把相同编号的数据记录结合起来,输出到学生成绩汇总文件中记录结合起来,输出到学生成绩汇总文件中?程序处理过程(程序处理过程(PDL代码)代码):读入学生名称文件的第一个记录;读入学生名称文件的第一个记录;bKey=这个纪录的学号;这个纪录的学号;读入学生成绩文件的第一个记录;读入学生成绩文件的第一个记录;tKey=这个纪录的学号;这个纪录的学号;While(学生成绩文件没有结束)学生成绩文件没有结
18、束)if(bKey=tKey)输出输出bKey记录的学号、姓名和记录的学号、姓名和tKey记录的单科成绩和总成绩记录的单科成绩和总成绩到学生到学生成绩成绩汇总文件中;汇总文件中;读入下一个学生成绩记录;读入下一个学生成绩记录;tKey=这个纪录的学号;这个纪录的学号;elseif(bKeytKey)读入下一个读入下一个学生名称记录;学生名称记录;bKey=这个纪录的学号;这个纪录的学号;else输出错误信息输出错误信息(学号为学号为tKey的学生记录在学生名称文件中没有的学生记录在学生名称文件中没有);读入下一个学生成绩记录;读入下一个学生成绩记录;tKey=这个纪录的学号;这个纪录的学号;基
19、础数据文件基础数据文件事务数据文件事务数据文件MATCHING处理处理输出文件输出文件错误信息文件错误信息文件MACHING方法处理概要方法处理概要3.2.2结构化编码结构化编码vMATCHING方法的前提条件方法的前提条件:在进行在进行MATCHING处理之前,输入文件必须处理之前,输入文件必须是已经按照关键字项目的值进行排序(升序是已经按照关键字项目的值进行排序(升序或者降序)处理好的。或者降序)处理好的。3.2.2结构化编码结构化编码vMATCHING方法处理流程说明方法处理流程说明:按关键字项目值的升序读入基础文件的记录,把关按关键字项目值的升序读入基础文件的记录,把关键字项目的值存入
20、基础键字项目的值存入基础KEY工作变量中。工作变量中。按关键字项目值的升序读入事务文件的记录,把关按关键字项目值的升序读入事务文件的记录,把关键字项目的值存入事务键字项目的值存入事务KEY工作变量中。工作变量中。基础基础KEY的值与事务的值与事务KEY值相等时,把事务文件的值相等时,把事务文件的数据编辑输出到文件中。读入事务文件的下一条记数据编辑输出到文件中。读入事务文件的下一条记录,把关键字值存入事务录,把关键字值存入事务KEY。3.2.2结构化编码结构化编码基础基础KEY的值大于事务的值大于事务KEY值的时候,把事务值的时候,把事务KEY的值写到错误信息文件中。读入事务文件的下一条的值写到
21、错误信息文件中。读入事务文件的下一条记录,把关键字值存入事务记录,把关键字值存入事务KEY。基础基础KEY的值小于事务的值小于事务KEY值的时候,读入基础文值的时候,读入基础文件的下一条记录,把关键字值存入基础件的下一条记录,把关键字值存入基础KEY。继续进行上述继续进行上述至至的处理,直至文件读入结束。的处理,直至文件读入结束。MACHING处理流程处理流程3.3 编码规范v代码组织与风格代码组织与风格v注释注释v命名命名v声明声明v语句结构语句结构3.3.1代码组织与风格代码组织与风格1基本原则基本原则v代码的组织和风格的基本原则是:便于自代码的组织和风格的基本原则是:便于自己的开发,己的
22、开发,易于与他人的交流易于与他人的交流。v因个人习惯和编辑器等可以设置和形成自因个人习惯和编辑器等可以设置和形成自己的风格,但必须前后一致,并符合本规己的风格,但必须前后一致,并符合本规范的基本要求和原则。范的基本要求和原则。3.3.1代码组织与风格代码组织与风格2缩进缩进v子功能块当在其父功能块后缩进。子功能块当在其父功能块后缩进。v当功能块过多而导致缩进过深时将子功能块提取出来做为当功能块过多而导致缩进过深时将子功能块提取出来做为子函数。子函数。v代码中以代码中以TAB(4个字符)缩进,在编辑器中请将个字符)缩进,在编辑器中请将TAB设设置为以空格替代,否则在不同编辑器或设置下会导致置为以
23、空格替代,否则在不同编辑器或设置下会导致TAB长长度不等而影响整个程序代码的格式。例如:度不等而影响整个程序代码的格式。例如:缩进示例:缩进示例:publicvoidmethodName()if(somecondition)for()/somesentences/endfor/endif3.3.1代码组织与风格代码组织与风格3长度长度 v为便于阅读和理解,单个函数的有效代码长度当为便于阅读和理解,单个函数的有效代码长度当尽量控制在尽量控制在100行以内(不包括注释行),当一行以内(不包括注释行),当一个功能模块过大时往往造成阅读困难,因此当使个功能模块过大时往往造成阅读困难,因此当使用子函数等
24、将相应功能抽取出来,这也有利于提用子函数等将相应功能抽取出来,这也有利于提高代码的重用度。高代码的重用度。v单个类也不宜过大,当出现此类情况时当将相应单个类也不宜过大,当出现此类情况时当将相应功能的代码重构到其他类中,通过组合等方式来功能的代码重构到其他类中,通过组合等方式来调用,建议单个类的长度包括注释行不超过调用,建议单个类的长度包括注释行不超过1500行。行。v尽量避免使用大类和长方法。尽量避免使用大类和长方法。3.3.1代码组织与风格代码组织与风格4行宽行宽 页宽应该设置为页宽应该设置为80字符。一般不要超过这个字符。一般不要超过这个宽度宽度,这会导致在某些机器中无法以一屏来这会导致在
25、某些机器中无法以一屏来完整显示完整显示,但这一设置也可以灵活调整。在但这一设置也可以灵活调整。在任何情况下任何情况下,超长的语句应该在一个逗号后超长的语句应该在一个逗号后或一个操作符前折行。一条语句折行后或一个操作符前折行。一条语句折行后,应应该比原来的语句再缩进一个该比原来的语句再缩进一个TAB或或4个空格,个空格,以便于阅读。以便于阅读。3.3.1代码组织与风格代码组织与风格5间隔间隔 v 类、方法及功能块间等应以空行相隔,以类、方法及功能块间等应以空行相隔,以增加可读性,但不得有无规则的大片空行。增加可读性,但不得有无规则的大片空行。v操作符两端应当各空一个字符以增加可操作符两端应当各空
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 制造 工程 第三

限制150内