第五讲可靠性与程序设计风格课件.ppt

上传人:石*** 文档编号:40174189 上传时间:2022-09-08 格式:PPT 页数:18 大小:1.03MB
返回 下载 相关 举报
第五讲可靠性与程序设计风格课件.ppt_第1页
第1页 / 共18页
第五讲可靠性与程序设计风格课件.ppt_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《第五讲可靠性与程序设计风格课件.ppt》由会员分享,可在线阅读,更多相关《第五讲可靠性与程序设计风格课件.ppt(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第1页,此课件共18页哦l软件可靠性在特定环境特定时间内程序不是摆地运行的概率l信息安全可靠性:访问控制、加密l程序运行可靠性:编程风格、测试l软件错误统计 功能错:占整个软件错误27%,是需求分析设计不完整而引起的系统错:占整个软件错误16%,是总体设计错误而引起的数据错:占整个软件错误10%,由编码错误引起的编码错:占整个软件错误4%,程序员编码错误引起的 其它错:占整个软件错误4%,由文档错和硬件错所引起的第2页,此课件共18页哦l软件错误分类l词法错误:打字错误l语法错误:编译错误l语义错误:连接错误l逻辑错误:运行错误l错误越“高级”,解决代价越高昂l非常难以发现的错误常常是小错误第

2、3页,此课件共18页哦l评审和测试是发现错误的主要途径l软件测试就是为了尽可能多地发现错误和缺陷l软件测试不能证明软件没有错误第4页,此课件共18页哦l测试用例:测试数据+预期结果l不仅设计合法的测试用例,也要设计非法的和非预期的测试用例l用少量测试用例发现尽可能多的错误l测试用例、测试计划、测试统计都应保留l应避免程序员测试自己的程序l彻底测试整个软件l错误群集:若发现错误数目多,则残存错误数目也比较多 第5页,此课件共18页哦l单元测试l模块接口测试 l局部数据结构测试 l路径测试 l错误处理测试 l边界测试:1l驱动模块:相当于所测模块的主程序。它接收不同测试用例的测试数据,并把这些数据

3、传给所测模块,最后输出实测结果 l桩模块:也称存根模块、连接模块。用以代替所测模块调用的子模块。桩模块不需要具备子模块所有功能,但也不能什么事情都不做,要模拟实际子模块的功能第6页,此课件共18页哦l组装测试:也叫做集成测试或联合测试,发现与接口相联系的问题 l数据穿过接口时可能会丢失l某个模块可能会破坏另一个模块的功能l各子模块组合起来可能达不到预期要求的主功能l全局数据结构可能出问题l单个模块可以接受的误差,装配以后可能会放大(或积累)到不能接受的程度 l确认测试:又称验收测试l验证软件的功能和性能及其他特性是否与用户的要求一致l软件需求规格说明书既是软件开发依据,也是软件验收标准 第7页

4、,此课件共18页哦l黑盒测试:又称功能测试,完全不考虑程序的内部结构和处理过程 l等价类划分:把所有可能的输入数据(有效的和无效的)划分成若干个等价类,从每个等价类中只取一组数据作为测试数据 l边界值分析:处理边界情况时程序最容易发生错误。选取刚好等于、稍小于和稍大于等价类边界值的数据作为测试数据 l错误推测:靠直觉和经验列举出程序中可能有的错误和容易发生错误的特殊情况,并且根据它们选择测试方案,作为辅助手段 l综合策略:将各种技术结合起来,取长补短,形成综合的测试策略 第8页,此课件共18页哦l白盒测试:又称结构测试,完全了解程序的结构和处理过程 l逻辑覆盖l一系列测试过程逐渐进行越来越完整

5、的通路测试l语句覆盖:至少每个语句应该执行一次 l判定覆盖:又叫分支覆盖,不仅每个语句必须至少执行一次,而且每个判定的每种可能的结果都应该至少执行一次 l条件覆盖:不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。条件覆盖通常比判定覆盖强、更细l判定/条件覆盖:使得判定表达式中的每个条件都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果;也可能有相反的情况 l条件组合覆盖:选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次 l路径覆盖:每条可能路径都至少执行一次 第9页,此课件共18页哦l软件测试:尽可能多地暴露程序中的错误l软件调试

6、:发现错误的最终目的是为了改正错误 l调试方法 l输出存储器内容 l适当插入打印语句 l使用专门的调试工具:设置断点 l调试策略 l试探法:分析错误征兆,猜想故障的大致位置 l回溯法:人工沿程序的控制流往回追踪程序代码,直到找出错误的根源或确定故障范围为止 l归纳法:收集、整理数据,发现规律,提出假设,证明假设 l演绎法:从一般原理出发,经过删除和精化推导出结论 第10页,此课件共18页哦l高效+技巧安全+可靠l时间、空间效率可用性、可维护性、可移植性l良好的编程风格可以减少软件错误l程序设计风格 l源程序文档化:标识符名,注释,视觉组织 l数据说明:变量名,排列顺序 l语句构造:易读效率,避

7、免复杂的语句 l输入和输出:校验,允许缺省值,输出加注释 l效率:追求效率要建立在不损害程序可读性或可靠性基础之上。要先使程序正确、再提高效率,要先使程序清晰,再提高程序效率 第11页,此课件共18页哦l命名约定l当同时多个程序员合作从事一个项目时l当把程序移交给另一个程序员修改和维护时l当其他程序员评审程序时l当程序过大需要分部分考虑时l当一个项目中频繁使用不常见词汇l命名约定可以强化相关项之间的关系l命名约定可以弥补语言的缺陷l命名约定可以帮助程序员更快熟悉项目的代码l命名约定可以防止一个变量多名l命名约定可以增强程序的可读性第12页,此课件共18页哦l命名注意事项l坚持使用英语命名,不用

8、汉语拼音及缩写l名称最佳长度:介于MaximumNumberOfPointsSince1896和x之间l名称的作用域:短名称总是不好么?l反义词可以保持名称的连续性:add/remove begin/end create/destroy insert/delete first/last get/release increment/decrement put/getup/down lock/unlock min/max next/previous old/newopen/close show/hide source/destination start/stopl循环变量:i/j/kl状态变量:F

9、lag/StatusFlag/PrintFlag/DataReady/Typel临时变量:temp/t/xl逻辑变量:Done/Error/Found/Successl常量:PI/CYCLES_NEEDED第13页,此课件共18页哦l匈牙利命名法:见名知义l小写前缀与大小写混合的单词组合l一整套对子程序和变量的详细命名约定l发明者Charles Simonyi原为匈牙利人l组成部分l基本类型、一个以上前缀、一个限定词l基本类型(小写):程序语言中没有的抽象数据类型例如:wn:窗口 scr:屏幕区 fon:字体 ch:字符 pa:段落WN wnMain;SCR scrUserWorkspace;

10、l前缀(小写):标准化的,可以与基本类型组合 例如:a:数组 c:数目 e:数组元素 g:全局变量 i:数组下标 m:模块层次的变量 p(lp,np):指针 h:处理l限定记号(大小写混合):名称的描述部分l举例:achDelete ichMin pachInsert cscrMenu 第14页,此课件共18页哦l注释:源代码中的文档l代码的重复:没有附加信息l代码的解释:应当改进代码l代码中的标记:开发记录提示,后续的工作l代码的总结:增加可读性l代码意图的描述:问题一级的注释l要注释还是不要注释l注释一定要准确l不精确的(错误的)注释比没有注释更糟 第15页,此课件共18页哦l序言性注释l

11、安排在每个程序模块的起始部分,对程序的整体说明,对于理解程序本身具有引导作用l程序或模块的功能方面的说明:程序或模块标题、功能l界面描述:调用形式、输入输出参数的意义、引用的子程序l重要变量的使用、限制及其它信息l开发历史:编者(日期)、审查者(日期)、修改(日期)l功能性注释l嵌入在源程序体内,描述其后的语句或程序段的处理功能l描述的对象是一段程序,而不是每一个语句l适当使用缩进和空行,使程序与注释容易区别第16页,此课件共18页哦l空间布局l每行仅写一条语句l每行只定义一个数据l把一个文件内多个子程序区分清楚l把紧密相关的元素放在一起l对齐相关的赋值语句l段落之间用空行l注意人和计算机对程序的不同理解l布局的作用l正确表达出程序的逻辑结构l提高可读性l易于修改第17页,此课件共18页哦l布局方法l对齐l缩进:锯齿状l空格:相关分组l括号:优先级、分组第18页,此课件共18页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁