《软件工程概论》实验指导书.doc
软件工程概论实验上机指导书(Version 1.0)安徽工业大学计算机学院计算机科学技术系 郭玉华姓名:_ 班级:_ 学号:_ 专业:_2010年2月目 录实验一:培养良好编程习惯3实验二:程序质量管理5实验三:综合-学生信息管理系统9 实验一:培养良好编程习惯一实验要求 了解程序设计和编程风格的关系;理解代码撰写规范与程序设计质量的关系; 掌握一般的代码撰写规范;二实验目的通过编写符合一般(C语言)规范代码,培养良好的程序设计(代码撰写)习惯;三 实验准备1. 熟悉C语言的编程规范;2. 复习求三个(整)数中最大数的算法;复习C语言;四 步骤1. 按照C语言编程规范编写求三个整数中最大数的函数;2. 在main函数中调用该函数。3. 按照c语言编程规范,分别改写文件(简单)加密/解密程序。(不要求加密作为一个函数,解密作为一个函数。)4. 测试以上程序五 文件加密/解密程序1加密程序:#include <stdio.h>#define null 0int main()FILE *f1,*f2;char name11;char name22;char c;printf("Please input name of the source file to be encrypted(jiami) n");scanf("%s",name1);printf("Please input name of the target file name :n");scanf("%s",name2);f1=fopen(name1,"rb");if(f1=null)printf("source file name error! "); return 1;f2=fopen(name2,"wb");if(f2=null)printf("target fine name error!");return 1;fread(&c,sizeof(char),1,f1);while(!feof(f1)c=c+1;fwrite(&c,sizeof(char),1,f2);fread(&c,sizeof(char),1,f1);fclose(1);fclose(2);2解密程序:#include <stdio.h>#define null 0int main()FILE *f1,*f2;char name120;char name220;char c;printf("Please input name of the source file to be encrypted(jiami) n");scanf("%s",name1);printf("Please input name of the target file name :n");scanf("%s",name2);f1=fopen(name1,"rb");if(f1=null)printf("source file name error! "); return 1;f2=fopen(name2,"wb");if(f2=null)printf("target fine name error!");return 1;fread(&c,sizeof(char),1,f1);while(!feof(f1)c=c-1;fwrite(&c,sizeof(char),1,f2);fread(&c,sizeof(char),1,f1);fclose(1);fclose(2);六:撰写实验报告实验二:程序质量管理一实验要求 理解程序设计质量概念;理解程序设计质量控制因数; 理解程序设计质量控制的方法;二实验目的在撰写符合一般(C语言)规范代码基础上,查找代码中的缺陷并总结经验,计算质量成本;三 实验准备1.继续熟悉并掌握C语言的编程规范;2.复习C语言;3.复习代码复查技术,缺陷排除效益以及质量成本计算方法四 步骤1.按照c语言编程规范,改写文件(简单)加密/解密程序。并将加密设计为一个函数,解密设计为一个函数。并对代码进行复查,将复查结果填写表2。将发现的每个缺陷填入表3。2.测试以上程序3.将步骤1和2中各阶段所花的时间填写表1时间日志记录。4计算缺陷排除效益以及质量成本5总结常犯的错误五 文件加密/解密程序1加密程序:同实验一2解密程序:同实验一六:撰写实验报告表1 时间记录日志学生_ 日期_教师_ 课程_日期开始时间结束时间中断时间净时间活动备注CU表2代码复查指南和检查表目的有效代码复查#累计累计% 一般性说明:在完成每个复查步骤后,将发现的某个类型的个数记录在右面的栏目中。如果该步骤没有发现缺陷,就在右面的栏目中打个交叉符号(X)表示检查无误。在开始复查下一个程序单元之前,要按照检查表完成对程序和函数的检查。完整性验证要求的功能都已经编码include验证include语法是完全的初始化检查变量和参数的初始化1.在程序的开始2.在每个循环的开始3.在函数/过程的入口调用检查函数调用的格式指针参数&的使用名字检查名字的拼写和使用是否前后一致是否在说明的作用域之内结构中的变量的引用是否使用了”.”字符串检查所有字符串是否有指针来识别是否以null来结尾指针检查所有指针是否初始化为null不在使用使用的指针是否置为null输出格式检查输出格式换行是否合适间隔是否合适检查保证所有是否成队出现逻辑操作符验证=,=,|等逻辑操作的使用是否合适以及每个逻辑函数的“()”是否合适标准保证所有代码符合编码标准逐行检查检查每一行代码指令的语法是否正确标点是否正确符号是否正确文件的打开与关闭验证所有文件是否有合适的声明是否合适的打开是否合适的关闭全面检查全面检查以发现系统等各种问题总计 表3 修复缺陷记录学生_ 日期_教师_ 课程_日期编号类型引入阶段排除阶段修复阶段相关缺陷描述:描述:描述:描述:描述:描述:计算缺陷排除效益以及质量成本:经验总结:(我经常犯的错误有,他们会带来什么缺陷,今后如何克服?)实验三:综合-学生信息管理系统一实验要求 深入理解程序设计质量概念;深入理解程序设计质量控制因数; 掌握并运用程序设计质量控制的方法; 具有规范编码意识;二实验目的通过设计较小规模的但具有一定逻辑功能的程序,培养规范编码意识,控制程序质量,达到较高质量的程序设计;三 实验准备1.继续熟悉并掌握C语言的编程规范;2.复习C语言;3.复习PSP时间管理和质量控制等相关知识;四 内容和主要步骤 独立完成一个简单的学生信息管理系统程序。要求学生信息至少包含以下信息:Ally John 至少具有查询和添加学生信息记录功能主要步骤:1.分析题目要求,获取功能要求并对其描述,形成需求文挡。2.估计程序规模,并填写表2。填写计划总结表中的计划数据部分。将所花的时间表1。3.用流程图对系统设计。并设计所花的时间填入表14.主体程序设计#define START 1000void find();void append();main()int i=START;while(i)scanf(“%d”,&i);switch(i)case 1:查询学生;break; case2:添加学生;break; default:退出;printf(“Error,exit”); void find()根据用户输入在文件中查找学生,并显示这些信息void append()把用户输入学生信息插入到文件中把该部分的设计时间填写到表1中。5.根据设计,编写代码。将编写代码所花时间填入表1。6.代码复查,并将复查结果填入表4。并将所花时间填入表1。7.编译程序,并将修复缺陷填入表5。将编译时间填入表1。8.测试,将修复缺陷填入表5。将编译时间填入表1。9.将实际数据登入项目计划表。总结缺陷数据,更新代码复查检查表。并将这些后置处理时间填入表1。10.计算缺陷排除效益以及质量成本11.总结常犯的错误五 :撰写实验报告表1 时间记录日志学生_ 日期_教师_ 课程_日期开始时间结束时间中断时间净时间活动备注CU表2 程序规模估计学生_ 日期_教师_ 课程_程序代码行以前的功能 估计的功能最小最大平均估计表3 PSP项目计划总结表学生_ 日期_程序_ 程序号_教师_ 程序设计语言_总结计划实际累计Minutes/LOCLOC/HourDefects/KLOC过程效益A/FR程序规模(LOC)新开发与更改的最大规模最小规模开发时间/min计划实际累计累计百分比计划设计编码代码复查编译测试后置处理设计最大时间最小时间引入的缺陷计划实际累计累计百分比DEF/Hour计划设计编码代码复查编译测试总计排除的缺陷计划实际累计累计百分比DEF/Hour计划设计编码代码复查编译测试总计表4代码复查指南和检查表目的有效代码复查#累计累计% 一般性说明:在完成每个复查步骤后,将发现的某个类型的个数记录在右面的栏目中。如果该步骤没有发现缺陷,就在右面的栏目中打个交叉符号(X)表示检查无误。在开始复查下一个程序单元之前,要按照检查表完成对程序和函数的检查。完整性验证要求的功能都已经编码include验证include语法是完全的初始化检查变量和参数的初始化1.在程序的开始2.在每个循环的开始3.在函数/过程的入口调用检查函数调用的格式指针参数&的使用名字检查名字的拼写和使用是否前后一致是否在说明的作用域之内结构中的变量的引用是否使用了”.”字符串检查所有字符串是否有指针来识别是否以null来结尾指针检查所有指针是否初始化为null不在使用使用的指针是否置为null输出格式检查输出格式换行是否合适间隔是否合适检查保证所有是否成队出现逻辑操作符验证=,=,|等逻辑操作的使用是否合适以及每个逻辑函数的“()”是否合适标准保证所有代码符合编码标准逐行检查检查每一行代码指令的语法是否正确标点是否正确符号是否正确文件的打开与关闭验证所有文件是否有合适的声明是否合适的打开是否合适的关闭全面检查全面检查以发现系统等各种问题总计 表5 修复缺陷记录学生_ 日期_教师_ 课程_日期编号类型引入阶段排除阶段修复阶段相关缺陷描述:描述:描述:描述:描述:描述:计算缺陷排除效益以及质量成本:经验总结:(我经常犯的错误有,他们会带来什么缺陷,今后如何克服)