PVS-Studio(静态代码分析工具)

大小:146.32M 类别:
  • 编程软件

官方安全无插件纠错

  • 更新时间2024-04-18
  • 版本v7.30.80803.925
  • 系统Pc
  • 语言英文
PVS-Studio是一款易用的静态代码分析工具。PVS-Studio可以将软件的代码发送到本软件上测试,也可以直接将布局模块的函数添加到软件上分析,从而找到错误的编辑命令,让您及时处理错误的代码,为后期应用程序开发提供更好的检测功能;PVS-Studi其集成在Visual Studio 2012、2010、2008、2005和Embarcadero RAD Studio XE3 Update 1、XE3、XE2、XE、2010、2009等环境中,可以诊断C/C++/C+11应用程序源代码中的错误;PVS-Studio相对于其他类型的方法而言,软件采用的静态代码分析方法有明显的优越性,因为它可以覆盖整个程序代码,代码检查的过程在任何情况下都不会破坏代码本身,分析过程完全由程序员控制,并决定是否需要修改代码,有兴趣的小伙伴快来下载体验吧!

功能介绍

1、融合Visual Studio2005/2008/2010的开发环境
2、PVS-Studio提供在线帮助
3、可以生成PDF文件
4、可以保存和下载分析结果
5、具有命令行启动能力
6、支持所有的内核和处理器
7、评估64位代码移植的复杂度
8、支持 Windows(LLP64)和Linux(LP64)的数据模型
9、交互式过滤器
10、易于融入团队开发项目中
11、标记程序文本仅检查新代码

PVS-Studio安装教程

1、下载软件压缩包文件,双击打开“PVS-Studio.exe”,进行安装

2、阅读软件的许可协议,阅读完成后点击我接受许可协议,必须接受协议才能继续安装软件

3、点击“Browse”选择软件安装位置
安装向导默认设置的软件默认安装路径为C:\Program Files (x86)\PVS-Studio

4、选择需要安装的组件,自行选择勾选即可

5、确认安装信息,无误,点击Install进行安装

6、软件安装完成,安装向导会提示完成软件安装向导,点击Finish

7、双击打开PVS-Studio软件,点击Tools--Options--Registration,将“key.txt”文件内的姓名和注册码复制到软件中

8、再点击Help下的About,如下图PVS-Studio可以放心使用

软件特色

一、避免继承
1、Go编程语言是为数不多的面向对象语言之一,其特殊性体现在不提供任何类继承方法或来自其他类的属性,虽然类层次结构是面向对象语言的基石,但是也会使代码更加死板,常见层次结构中所有类有着微妙的联系,改变其中任何一个类可能导致后代类发生变化或需要改变一个祖先类,遗传有助于代码耦合同时破坏后期修改代码能力,从而减少代码的灵活性
2、PVS-Studio除了创建死板的层次结构,对象继承也束在一起,如果一个属性或方法在类中命名却未定义,那么平台隐式搜索该祖先类以寻求匹配,可以自定义简单的方法覆盖或复杂的多重继承和模糊设计模式,避免继承意味着避免复杂内置行为的解决方案
二、倾向组合
1、代替继承,Go语言建议对象组合,功能开发程序员都熟悉函数组成,组合对象是相似的,如继承,组合对象连接一个类到另一个,但不是调度隐式类,组合对象需指定何时或如何使用连接类方法和属性,这是会带来有力结果的一个小小不便
2、使用组合对象,调度方法调用不同对象就变得微不足道了,可以根据不同情况下组合多个对象和调度不同对象,达到即使是多重继承也无法实现的功能,在不使用静态属性和全局变量的情况下还可以共享常用对象和状态,组合对象提供了细粒度控制代码,当不知未来代码会发生如何改变时,该方法提供了巨大的便利
三、不要将偶然相似的代码抽象化
1、开发人员都学习了解DRY含义,它似乎变成了一个咒语,当我们编写代码时一旦发现相似的代码就会删除它,但是过于较真地删除重复数据往往不利于灵活性,特别是删除仅是表面的相似之处的代码
2、打个比喻,两个变量值均为200,一个变量指在列表上项目指定的最大数值,另一个被用于检测HTTP响应是否成功,从表面来看,两个变量有相同的数值,人们很容易将MAX_ITEMS值设置为另一个变量,而不是设置数值200,但是如果将MAX_ITEMS设置等于HTTP_SUCCESS,那么是一个严重错误,两个结果值相同但是变量间并无联系,具有更好灵活性的代码需要有重复的代码
3、以上的例子看起来很愚蠢,但是开发者开发时对模糊相似的代码会有下意识的反应,很多时候,相似性只是偶然和毫无意义的
笔者对于表面相似的代码变得非常谨慎,吸取了以往教训,首先做出特定代码变化是避免误删代码的第一步,抽象化代码(无论是自己还是别人、以前还是现在)可做出乐观的假设,如果很多自以为相似的代码需要改变,那么它们都会以同样的方式改变,但这些笔者并没有遇到,且很多时候代码改变并不是以共享方式
四、收缩抽象
1、抽象仍然是重要的,避免写抽象代码的一个方法是之前编写过代码后面不再写尽量减少抽象的代码的出现,编写少量抽象代码且集中起来,并且尽量不要调整代码位置,如果真的需要调整位置却不想改变代码的抽象所有的应用,那么更少的抽象对于修改版本更加容易
2、收缩抽象的一个关键技巧是区分概念,Cognitect的CTO Rich Hickey已重新将decomplet注入现代词汇中,意为散开通常,功能不同的代码会被放到同一个的代码块中,散开代码功能会产生抽象起到特定的作用,如设置一个标记,调用一个功能,然后取消标记
3、小抽象也会有更广泛地应用,它们更容易相互组合,如果已习惯构建小的抽象代码,随着项目的不断成熟会有一个稳固的积累,使其更容易在不需要编写复杂代码情况下引入复杂的需求
五、不要设想
更多的假设会让代码变得更加死板,避免设想使得代码更容易变化
从目前我的项目中有一个实例:一个新链接应该在新标签中打开吗?有些人支持新标签,则有人反对,还有些都可以,通常情况下,这样的争论会通过权衡利弊,甚至做一些调查,遵循更好的选择,但在这种情况下,有一个假设我们没有做,链接没有自身行为方法,因为是我们配置行为,我们目前通过功能指定是否打开标签
我们仅需修改少部分的代码来实现该选择功能,不同的开发者可以根据偏好设置不同的选项,如果用户想要关闭该选项,无须任何的代码改动也是可以做到的,如果用户不喜欢,我们也很容易配置符合每个用户的喜好,应用程序将会更加灵活因为我们避免了设想方式

支持的语言和运行环境

•Visual Studio 2012 C,C++,C++11,C++/CX(WinRT)
•Visual Studio 2010 C,C++,C++0x
•Visual Studio 2008 C,C++
•Visual Studio 2005 C,C++
•Embarcadero RAD Studio XE3 Update 1包括C,C++,C++11,64位编译器
•Embarcadero RAD Studio XE2 C,C++,C++0x
•Embarcadero RAD Studio XE C,C++
•Embarcadero RAD Studio 2010 C,C++
•Embarcadero RAD Studio 2009 C,C++
•MinGW C,C++,C++11

展开内容

类似软件

  • Komodo Edit官方版(php开发工具)

    8.9/72.47M

    Komodo Edit官方版是一款可以支持多种程序语言的php开发工具,它可以为用户提供最专业的开发功能,强大的代码智能引擎可以扫描所有语言安装到定制的扩展工具上,并且支持通用的开源语言Perl、PHP和Ruby的使用。

    查看
  • JDK18官方版

    8.6/152.04M

    Java平台的软件开发工具包

    查看
  • NI LabVIEW 2017官方版

    8.8/1.47G

    NI LabVIEW 2017官方版是一款由NI公司专门为了工程师和科学家们开发测试、测量和控制应用而优化的开发环境,NI LabVIEW能够支持32位和64位操作系统平台,而且分别包括简体中文在内的多种语言版本,已经在市场上得到了广泛的认可和好评,LabVIEW是一款通用的编程

    查看
  • Flutter(谷歌开源框架)

    9.0/1.02G

    Flutter官方版是 Google 开源的应用开发框架,拥有强大的UI框架,帮助你通过简单代码编辑,即可同时在iOS和Android上开发出媲美原生体验的精美应用。

    查看

网友评论

0人参与,0条评论
  • 评论需审核后才能显示

同类排行

  • 米思齐(Mixly)编程软件

    8.5/3.05G

    mixly3.0编程软件是一款非常好用且功能强大的米思齐编程软件,是由北京师范大学米思齐团队独立研发的一款图形化编程工具。它基于Google的Blockly图形化编程框架开发的免费开源的图形化Arduino编程软件。

    查看
  • EasyBuilder pro官方版(威纶通编程软件)

    8.9/757.61M

    EasyBuilder pro官方版是一款专业的屏幕编辑软件,是WEINVIEW HMI组态软件,由台湾威纶科技公司开发的新一代人机界面软件,利用EasyBuilder pro可以大大的提高我们的软件的功能,和高水平的硬件,软件强大的宏指令功能,除了常用的四则运算、逻辑判断等功能

    查看
  • Arduino IDE(电子原型设计)

    9.0/142.37M

    Arduino是一款便捷灵活、方便上手的开源电子原型平台,Arduino IDE则是目前比较主流的一款电子元件开发软件,软件构建于原始码simple I/O介面版,并且软件具有类似java、C语言的Processing/Wiring开发环境,主要包含连个主要的部分:硬件部分

    查看
  • Visual Basic 6.0中文企业版

    9.3/215.92M

    Visual Basic 6.0中文企业版是一种常用的编程开发工具,软件的基础是编程语言Basic ,微软推出这款软件主要是为了让人们更好的学习编程,而6.0版本同时也是老vb的最后一个版本。

    查看
  • PyCharm2022中文版

    9.1/498.22M

    PyCharm2022是一款专业的代码编辑软件,软件集合了各种开发工具、数据库、svn、测试运行等程序,可以快速编写代码。除此之外,这款软件功能非常强大,具有调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等功能,全方位满足你的编程需求。

    查看
  • UltraEdit官方版(文本代码编辑器)

    9.6/107.53M

    UltraEdit官方版是一款功能强大的基于磁盘的文本代码编辑器,它可用于编辑HTML,PHP,JavaScript,Perl,C / C ++,Python和几乎任何其他编码/编程语言,并且UltraEdit还能处理和编辑超过4GB的文件!

    查看
  • Visual Basic 6.0绿色精简版

    9.3/5.54M

    Visual Basic,简称VB,是由微软公司开发的结构化、模块化和面向对象的,可包含协助开发环境的事件驱动为机制的可视化程序设计语言。它源于自BASIC编程语言,其拥有图形用户界面和快速应用程序开发系统,用户就可利用这些系统轻易的使用DAO、RDO和ADO连接数据库,或者轻松

    查看
  • 编程猫电脑版

    9.2/75.47M

    国内知名少儿编程教育平台

    查看
  • Openssl Windows版

    8.9/121.57M

    OpenSSL是一个安全套接字层密码库,它囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。OpenSSL采用C语言作为开发语言,这使得它具有优秀的跨平台性能,用户借此可以在不同的平台使用同样熟悉的东西,它支持Linux、Wi

    查看
  • JetBrains Rider 2025中文版

    3.4/1.56G

    JetBrains Rider 2025中文版是一款跨平台 .NET 开发工具软件,主打 AI 集成与高效调试。AI 助手支持本地模型(如 Claude 3.7、Gemini 2.0)及离线模式,提供智能代码补全与测试生成,提升编码效率。

    查看
  • touchwin编辑工具

    9.0/57.48M

    touchwin编辑工具是信捷开发的一款用于自家触摸屏使用的编程软件,它可以编程好用户事先在触摸屏上使用的程序驱动里面的各种连接装置,到时候在配合触摸屏的时候就可以调用你编写好的设置进行使用。

    查看
  • Oxygen XML Editor(XML编辑器)

    9.0/349.62M

    Oxygen XML Editor是一款非常专业的XML文件编辑器。通过该款软件可以帮助设计者们可以更加高效的对包括XML、XSD、Relax NG、XSL、DTD等格式进行设计工作,毕竟设计者们要做的是事情是将文档制作出来,而不是一直为寻找某个地方的错误而耽误大量的时间。

    查看
  • github Desktop(windows桌面版)

    9.1/173.06M

    功能强大的公共代码仓库网站

    查看
  • JRE 8 64位

    9.1/61.49M

    JRE为Java Runtime Environment的简称,即Java运行环境,Java Runtime Environment(包括Java Plug-in)是Oracle的产品,包括两部分:Java Runtime Environment和Java Plug-in。

    查看
  • thonny(python编辑器)

    9.1/20.7M

    thonny中文版是一款超级适合python初学者的编辑器。通过它不仅可以轻松地帮助用户学习编程,而且软件适配Windows,Mac或Linux等多个操作系统,它能高效的帮助用户节省下载或者配置Python解释器的精力,从而提高更好的工作效率。

    查看