热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

软件工程复习提纲——第六章

软件工程复习提纲,期末、考研的学霸笔记第六章——实现第六章实现编码风格:1)源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。2)①程序内部的文

软件工程复习提纲,期末、考研的学霸笔记

第六章——实现



第六章实现

 


  1. 编码风格:

       1)源程序代码的逻辑简明清晰、易读易懂是好程序的一个重要标准。

       2)①程序内部的文档:包括恰当的标识符、适当的注解和程序的视觉组织等(例:次数-times)。

         ②数据说明:数据说明的次序应该标准化,能够加速测试、调试和维护的过程。

         ③语句构造:每个语句都应该简单而直接。

         ④输入输出:对所有输入数据都进行检验;保持输入格式简单。

         ⑤效率:主要指处理机时间和存储器容量两个方面。

            【【【不要牺牲程序的清晰性和可读性来不必要地提高效率。】】】       


  1. 测试的定义和目标:

        1)概念:①测试是为了发现程序中的错误而执行程序的过程;

               ②好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;

               ③成功的测试是发现了至今为止尚未发现的错误的测试。

        2)软件测试:为了发现错误而执行程序的过程。(是为了证明程序有错,而不是证明程序无错)


  1. 单元测试:

        1)集中检测软件设计的最小单元——模块(主要使用白盒测试技术)。

        2)测试重点:

 


  1. 集成测试过程及方法:

        1)是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题。

        2)由模块组装成程序有两种方法:非渐增式测试方法;渐增式测试方法(被普遍采用的)。

        3)渐增式测试方法:

          ①自顶向下集成策略(被普遍采用):可以使用深度优先宽度优先策略。

           ②自底向上集成策略:

        ③不同集成测试策略的比较: 

 

 

 


  1. BRO测试:

        1)测试的一些规定:对于布尔变量B来说,B的输出约束指出,B必须是真(t)或假(f)。

                          对于关系表达式来说&#xff0c;用符号>&#xff0c;&#61;和<指定表达式的输出约束。

        2)例1    C1: B1 & B2

          B1和 B2是布尔变量。C1的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1和D2中的每一个都是

          t或f.因此约束集{(t,t),(t,f),(f,t)}被C1的执行所覆盖。

          例2    C2: B1 & (E3&#61;E4)

          B1是布尔变量,E3和E4是算术表达式。C2的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1是t

          或f.。D2是>&#xff0c;&#61;&#xff0c;<。对于(E3&#61;E4)来说&#xff0c;t 意味着&#61;&#xff0c;而f意味着<或>。因此分别(t,&#61;), (f,&#61;)

          替换(t,t),(f,t),并用(t,<),(t,>)替换(t,f)。故C2的约束集为&#xff1a;{(t,&#61;),(f,&#61;),(t,<),(t,>)} 。

          例3    C3: (E1>E2) & (E3&#61;E4)

          E1,E2,E3和E4都是算术表达式。C3的条件约束形式为&#xff08;D1&#xff0c;D2&#xff09;,其中D1和D2的每一

          个都>,&#61;,<。除了C3的第一个简单条件是关系表达式之外&#xff0c;C3和C2相同&#xff0c;因此可通过修

          改C2的约束集得到C3的约束集&#xff0c;结果为&#xff1a;{(>,&#61;),(&#61;,&#61;),(<,&#61;),(>,<),(>,>)} 。


  1. 确认测试&#xff1a;

        1)目标&#xff1a;验证软件的有效性。

        2)软件有效性&#xff1a;如果软件的功能和性能如同用户所合理期待的那样&#xff0c;软件就是有效的。

        3)通常使用的方法&#xff1a;黑盒测试法。

        4)两种测试方法&#xff1a;

                 Alpha测试&#xff1a;由用户在开发者场所进行&#xff1b;

                 Beta测试&#xff1a;由软件的最终用户们在一个或多个客户场所进行。

        5)测试与调试的区别&#xff1a;

 


  1. 软件可靠性&#xff1a;

        1)系统的稳态可用性为&#xff1a; Ass&#61;MTTF/(MTTF&#43;MTTR)

                             【系统平均无故障时间MTTF和平均维修时间MTTR】

        2)估算平均无故障时间&#xff1a; MTTF&#61;IT /[K( ET- Ec(τ))] &#xff08;其中K为常数&#xff0c;其典型值是200&#xff09;

                             【ET——测试之前程序中错误总数&#xff1b;IT——程序长度(机器指令总

                               数)&#xff1b;τ——测试(包括调试)时间&#xff1b;Ed( τ)——在 0 至τ期间发

                               现的错误数 &#xff1b;Ec( τ)——在 0 至τ期 间改正的错误数。】

        3)  对一个包含10000条机器指令的程序进行一个月集成测试后&#xff0c;总共改正了15个错误&#xff0c;

              此时MTTF&#61;10h;经过两个月测试后&#xff0c;总共改正了25个错误(第二个月改正了10个错

              误)&#xff0c;MTTF&#61;15h。

              要求&#xff1a;(1) 根据上述数据确定MTTF与测试时间之间的函数关系&#xff0c;画出MTTF与测试

                        时间τ的关系曲线。在画这条曲线时做了什么假设?

                    (2) 为做到MTTF&#61;100h&#xff0c;必须进行多长时间的集成测试?当集成测试结束时总

                        共改正了多少个错误&#xff0c;还有多少个错误潜伏在程序中?

 


推荐阅读
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 微软小娜企业版发布新版本,提供构建自定义技能的套件
    微软将向企业级市场发布微软小娜企业版的新版本,该版本提供了构建自定义技能的套件,使企业员工可以更方便地使用数字助理。目前该套件仍处于内测期间,只有部分企业可以获得,其他有兴趣的企业需要继续等待。新版本的套件可以帮助员工构建各种自定义技能,如检查休假余额、创建服务凭证等。微软通过让多个开发人员编辑和管理机器人通道注册配置来改善开发者的体验,团队可以自行访问和更改技能注册,满足企业实际需求。微软小娜企业版已经在各个行业得到采用,能够帮助员工专注于优先事项,将非优先处理的任务交给微软小娜处理。 ... [详细]
  • 《王者荣耀》满配账号价值3.5万,究竟有多牛?
    近日,一群《王者荣耀》的游戏玩家展开了关于满配账号价值的讨论。满配账号不仅拥有所有英雄和皮肤,还包括300个满级铭文,其价值高达3.5万。这还不包括一些绝版的限定皮肤。想要达成《王者荣耀》的满配账号,需要付出巨大的代价。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • GAMETECH腾讯云游戏行业技术沙龙成都站圆满落幕
    11月13日,由腾讯云主办、游戏茶馆协办的2020年首场GAME-TECH腾讯云游戏行业技术沙龙在成都圆满落幕。本次沙龙邀请了腾讯云游戏行业解决方案总监宋永周、腾讯云游戏行业高级解决方案架构师曾梓恩、腾讯云游戏行业高级产品架构师郑晓曦、腾讯云游戏行业高级解决方案架构师温球良和天美L1(王者荣耀)服务器技术副总监杨光,为参会同行们带来了干货满满的技术建议。本文介绍了腾讯云游戏云的优势和为不同游戏研运场景提供的服务。腾讯云在中国游戏云服务市场领跑,成为众多游戏开发者的合作伙伴。 ... [详细]
  • Google在I/O开发者大会详细介绍Android N系统的更新和安全性提升
    Google在2016年的I/O开发者大会上详细介绍了Android N系统的更新和安全性提升。Android N系统在安全方面支持无缝升级更新和修补漏洞,引入了基于文件的数据加密系统和移动版本的Chrome浏览器可以识别恶意网站等新的安全机制。在性能方面,Android N内置了先进的图形处理系统Vulkan,加入了JIT编译器以提高安装效率和减少应用程序的占用空间。此外,Android N还具有自动关闭长时间未使用的后台应用程序来释放系统资源的机制。 ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多 ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 华为鸿蒙系统官网2.0报名方法及适用设备
    本文介绍了华为鸿蒙系统官网2.0报名的适用设备、报名方法以及三种方式,包括在应用商店下载开发者联盟app、在官网中进行报名、在微信公众号中申请体验HarmonyOS 2.0 手机开发者Beta版本。同时提醒错过测试机会的用户可以等待后续的正式版发布。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有