版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章:大型程序的开发方法,软件工程开发方法介绍,扫雷案例说明,第一章:大型程序的开发方法,软件工程开发方法介绍,生命周期方法:从时间的角度分解软件开发和维护的复杂问题,将软件的长生命周期依次划分为几个阶段,每个阶段都有相对独立的任务,然后逐步完成每个阶段的任务。前一阶段任务的完成是下一阶段工作开始的前提和基础,后一阶段任务的完成通常会使前一阶段提出的解决方案更加具体,增加更多的实施细节。第一章大型程序的开发方法,软件工程开发方法介绍:生命周期方法论,软件生命周期的每个阶段及其关键问题;第一章大规模程序的开发方法,瀑布模型,软件工程开发方法介绍:生命周期方法论,第一章大规模程序的开发方法,软件
2、工程开发方法介绍,结构化程序设计方法:它是一种程序设计技术,采用自上而下的逐步细化和单入口单出口的设计方法。它提出的原则可以概括为32个字:“自上而下,逐步细化;清晰第一,效率第二;书写标准,缩进格式;基本结构是结合在一起的。”第一章:大规模程序的开发方法,软件工程开发方法介绍:结构化编程方法。一所大学为那些准备参加网络工程师认证的人提供了相应的培训课程。当第一批培训师参加认证考试时,学院自然想知道这些学生的表现,以便调整教学计划和收费标准。现在,有必要编制一个计算考试成绩的程序,它可以显示及格和不及格的人数,如果及格人数不低于总人数的70%,它可以显示提高学费的建议。众所周知,有500人参加
3、了考试,他们在通过考试的人的名字旁边标了1,在不及格的人旁边标了2。应用实例,问题描述,第1章,大规模程序的开发方法,软件工程开发方法介绍:结构化程序设计方法,程序必须处理500个候选的测试结果,因此应使用循环;每个测试结果都是一个数字,即1或2。程序每次读取结果后,必须确定数字是1还是2;使用两个计数器。一个用来计算通过考试的人数,另一个用来计算失败的人数;在程序处理完所有结果后,必须判断是否有超过70%的人员通过了认证考试。应用实例,问题分析,第1章大规模程序的开发方法,软件工程开发方法介绍:结构化程序设计方法,认证考试结果的分析和培训费是否增加的判定,应用实例,问题的顶层表示,第1章大规
4、模程序的开发方法,软件工程开发方法介绍:结构化程序设计方法,初始化变量;输入500个测试结果,统计通过和失败的人数;打印统计结果并决定是否增加培训费。,应用实例,第一次精化的结果,第一章大规模程序的开发方法,介绍软件工程开发方法:结构化编程方法,“初始化变量”,初始化变量传递到0,初始化变量失败到0,变量计数器到1,应用实例,第二次精化的结果,第一章大规模程序的开发方法,介绍软件工程开发方法:结构化编程方法,“输入500个测试结果, 计算通过和失败的人数”当员工计数器小于或等于500时,将下一个测试结果输入到变量结果If中,结果是通过变量passes加1 Else变量failures加1员工计
5、数器加1。 应用示例,第二次细化的结果,第1章大型程序的开发方法,软件工程开发方法介绍:结构化程序设计方法,“打印统计结果并决定是否增加培训费”打印通过认证的人数,打印未通过认证的人数,如果变量pass的值除以500且大于等于0.7,则打印“增加培训费”,应用示例, 第二次精化结果,第一章大规模程序开发方法和软件工程开发方法介绍:结构化程序设计方法,精化结果源程序,第一章大规模程序开发方法和软件工程开发方法介绍,描述设计的三种图形工具:层次图是描述软件设计最古老和最广泛使用的方法。 boxplot是一个很好的图形工具,支持结构化程序设计的思想。第一章:大型程序的开发方法,软件工程开发方法介绍:
6、描述设计的图形工具、应用实例、文本处理系统的层次图,第一章:大型程序的开发方法,软件工程开发方法介绍:描述设计的图形工具、应用实例、程序流程图的对应方框图;第一章:大规模程序的开发方法,软件工程开发方法介绍,编码中需要注意的问题:全局变量应该“限于使用全局变量”。太多的全局变量会降低程序的清晰度;降低功能的多功能性;滥用全局变量会导致程序混乱。如果一个工人想做好工作,他必须首先磨利他的工具.。在编写大型程序时,我们应该充分利用现有的函数来减少重复编写程序段的工作量。第一章:大型程序的开发方法,软件工程开发方法的介绍,以及编码时应注意的问题:风格全局变量使用描述性名称int totalMinei
7、nt tableROWCOL局部变量使用简称int I;对于(I=0;i10第一章,大规模程序的开发方法,软件工程开发方法介绍,命名规则命名规则的主要思想是给变量和函数名加上前缀,以提高人们对程序的理解。匈牙利方法的最大缺点是它很麻烦。第一章,大规模程序的开发方法,软件工程开发方法介绍,规则标识符应该是直观的和可拼写的,并且没有必要对它们进行解码。标识符的长度应符合最小长度浮点旧值;浮动新值;7.全局函数的名称应使用动词或动词名词(动词-对象短语)int DrawTable(),第1章大型程序的开发方法,软件工程开发方法介绍,命名规则8。用正确的反义词命名具有互斥含义的变量,或在minValu
8、e中具有相反动作的函数;int maxValueint SetValue();int GetValue();第一章,大型程序的开发方法,软件工程开发方法介绍,命名规则9。宏定义/常量大写#定义COL 16 int MAX_TABLE 12,第1章,大型程序的开发方法,软件工程开发方法介绍,命名规则10。前缀s_表示静态变量,g_表示全局变量,第1章,大规模程序的开发方法,软件工程开发方法介绍,编码中需要注意的问题:表达式的自然形式,复杂表达式的分解,以及对有副作用的神秘运算符的注意。使用语言来计算对象的大小,除了定义符号常数之外,最好避免使用宏注释,不要谈论显而易见的事情,而是注释函数和全局数
9、据。第一章大型程序的开发方法,软件工程开发方法介绍,编码中需要注意的问题:表达式的自然形式和分解。CK 1: dk-);x=2*k n-m?CK : dk-;* XP=x;第一章,大型程序的开发方法,介绍软件工程的开发方法,以及编码时应注意的问题:谨防操作者艾=5带来的副作用;#定义ISUP (c) (c=a) While (ISUP (getch(),第1章,大规模程序的开发方法,软件工程开发方法介绍,测试和调试方法:测试是一组明确和系统的实验白盒测试,在程序可以工作的条件下找出它的问题,这相当于把程序当作一个透明的白盒,即完全理解程序。它根据程序的内部逻辑设计测试用例,并检查程序中的所有逻
10、辑路径是否按照预定的要求正确工作。常用的技术包括语句覆盖、决策覆盖、条件覆盖、决策/条件覆盖、条件组合覆盖、路径覆盖等。第一章:大规模程序的开发方法,软件工程开发方法介绍,测试和调试方法:测试是一组明确的、系统的实验黑盒测试,当程序被认为是工作的时候,找出问题,这相当于把程序当作一个黑盒,不考虑内部结构和处理过程。它根据指定的功能设计测试用例,并检查程序的功能是否满足要求。常用的技术包括等价类划分和边值分析。第一章大型程序的开发方法,介绍软件工程的开发方法,测试和调试方法:调试(即调试)是在知道程序有问题时要做的事情。寻找熟悉的模式,检查最近的变化,不要犯同样的错误两次,现在消除它们,而不是解
11、释你的代码给他人以后,划分和规则,搜索本地化,第一章大规模程序的开发方法,软件工程开发方法的介绍,解释“扫雷”的情况,第一章大规模程序的开发方法,扫雷的情况:主题选择,第一章大规模程序的开发方法,扫雷的情况:分析,视窗扫雷游戏的游戏规则:在“游戏”菜单上,点击“开始”,出现的游戏界面包括扫雷计数器开始后,点击雷区的任何一个方块来启动计时器。每次标记地雷时,地雷计数器减少1;用鼠标左键点击一个正方形,将其挖出来。如果暴露的盒子下面有雷,踩在雷上。此时,所有包含地雷的区块都被标记,游戏失败;如果一个数字出现在正方形上,它代表它周围的八个正方形中有多少个地雷;用鼠标右键单击一个正方形,它将被标记为地
12、雷被埋在这个块下面(事实上,它可能被错误标记),显示为。每次标记地雷时,地雷计数器减少1;用鼠标右键点击一个正方形两次,并标记一个问题标记为?你可以点击鼠标右键两次,或者在正确的时间点击鼠标左键,把它标记为一个矿或者把它挖出来;如果一个数字方块周围的所有地雷都被标记了,你可以同时点击鼠标左键和右键来挖出剩余的方块。如果这个方块旁边的地雷没有完全标记,未打开的方块会闪烁。第一章,大型程序的开发方法,“扫雷”案例:分析,主要功能:规则1)隐式初始化新游戏的打开功能;规则2)隐式挖掘功能;规则3)相应的地雷标志功能;规则4)阅卷的相应功能;规则5)的自动挖掘功能。操作方式:鼠标,第一章大型程序开发方
13、法,“扫雷”案例:设计,第一章大型程序开发方法,“扫雷”案例:设计,自上而下细化:继续分析现有功能,细化所有子功能,确定模块间接口;描述细化后各模块的处理过程;确定主要数据及其数据结构;确定输入和输出数据的内部和外部形式;界面设计,第一章大型程序开发方法,“扫雷”案例:设计界面,第一章大型程序开发方法,“扫雷”案例:设计操作模式,使用键盘:上、下、左、右按钮移动光标位置;回车或空格键用于挖出光标当前指向的框;f,f表示当前光标指向的正方形中有一个地雷;q,q在光标所指的方框上打一个问号,表示可能有地雷;一、自动挖光标周围的正方形;退出游戏,第一章,大型程序开发方法,“扫雷”案例:设计主要数据,
14、 雷场界面数据# define ROW 16 /*表示整个雷场的行数*/# define COL 16 /*表示整个雷场的列数*/# definestx50/*表示屏幕上雷场的起始x坐标*/# Define st50/*表示屏幕上雷场的起始y坐标*/# Define size20/*表示块的长度*/# Define size20/*表示块的宽度*/,第1章大型程序开发方法,“扫雷”案例:设计主要数据/*整个雷场中的地雷总数*/int TableRowCol;/*数组表中的每个元素值记录该雷区对应的框中是否有雷:1为雷,0为无雷*/int numROWCOL;/*数组编号的每个元素值记录了雷场的
15、相应正方形周围有多少个地雷*/int标志行列;/*数组标志的每个元素值记录雷场中相应区块的当前状态*/,第1章,大型程序的开发方法,“扫雷”案例:设计主要数据,区块(I、 # Define UNREGAG 0/*的值表示盒子没有被打开或用*/#define FLAGED 1 /*标记表示盒子有地雷*/#define问题20 /*表示盒子可能有地雷*/#define EXPLOD 30 /*踩在地雷上并爆炸*/# Define OPEN 40 /*无地雷盒子被打开*/,第1章大型程序的开发方法,“扫雷”案例:设计主数据,光标当前位置数据int pi,pj; /*记录光标的当前位置。最初,光标位于
16、(0,0) */intdi8=-1,-1,0,1,1,0,-1;int dj8=0,1,1,1,0,-1,-1,-1;/*与当前块相比,di8和dj8分别代表其周围八个块的行和列坐标偏移。它们与当前光标坐标一起用于表示周围的正方形,例如,(-1 pi,0 pj)表示当前正方形正上方的正方形的坐标。*/,第1章,大型程序的开发方法,“扫雷”案例:设计主要数据,游戏状态数据;/*记录游戏结束的结果状态,这是输出数据的内部形式。值为0表示按esc键退出游戏;-1表示游戏失败;1表示游戏获胜。*/,第1章,大型程序开发方法,“扫雷”案例:设计主数据,功能键键值/*上、下、左,右击*/#定义up0x4800 #定义down0x5000 #定义left0x4b00 #
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论