热门标签 | 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;还有多少个错误潜伏在程序中?

 


推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 自学编程与计算机专业背景者的差异分析
    本文探讨了自学编程者和计算机专业毕业生在技能、知识结构及职业发展上的不同之处,结合实际案例分析两者的优势与劣势。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 本文介绍了两种方法,用于检测 Android 设备是否开启了开发者模式。第一种方法通过检查 USB 调试模式的状态,第二种方法则直接判断开发者选项是否启用。这两种方法均提供了代码示例和详细解释。 ... [详细]
  • ASP.NET MVC中Area机制的实现与优化
    本文探讨了在ASP.NET MVC框架中,如何通过Area机制有效地组织和管理大规模应用程序的不同功能模块。通过合理的文件夹结构和命名规则,开发人员可以更高效地管理和扩展项目。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 在 Flutter 开发过程中,开发者经常会遇到 Widget 构造函数中的可选参数 Key。对于初学者来说,理解 Key 的作用和使用场景可能是一个挑战。本文将详细探讨 Key 的概念及其应用场景,并通过实例帮助你更好地掌握这一重要工具。 ... [详细]
  • Python入门:第一天准备与安装
    本文详细介绍了Python编程语言的基础知识和安装步骤,帮助初学者快速上手。涵盖Python的特点、应用场景以及Windows环境下Python和PyCharm的安装方法。 ... [详细]
  • 探讨架构师在项目中应如何平衡对产品的关注和对团队成员的关注,以实现最佳的开发成果。 ... [详细]
  • 前端开发:从底层到顶端的行业现象解析
    在编程领域,鄙视链现象屡见不鲜,从C语言到Java、.NET等,每个技术栈都有其独特地位。然而,前端开发者尽管常处于鄙视链底端,却在市场需求中备受青睐。本文深入探讨这一现象,并分析前端工程师如何在竞争激烈的市场中脱颖而出。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • PHP插件机制的实现方案解析
    本文深入探讨了PHP中插件机制的设计与实现,旨在分享一种可行的实现方式,并邀请读者共同讨论和优化。该方案不仅涵盖了插件机制的基本概念,还详细描述了如何在实际项目中应用。 ... [详细]
  • 使用 GitHub、JSDelivr、PicGo 和 Typora 构建高效的图床解决方案
    本文详细介绍了如何利用 GitHub 仓库、JSDelivr CDN、PicGo 图床工具和 Typora 编辑器,搭建一个高效且免费的图床系统。通过此方案,用户可以轻松管理和上传图片,并在 Markdown 文档中快速插入高质量的图片链接。 ... [详细]
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社区 版权所有