Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Автоматизированное программное обеспечение для проверки кода проверяет соответствие исходного кода заранее определенному набору правил или передовым практикам. Использование аналитических методов для инспекции и анализа исходного кода с целью выявления ошибок или проблем безопасности является стандартной практикой разработки как в проектах с открытым исходным кодом, так и в коммерческом программном обеспечении. Этот процесс может выполняться как вручную, так и в автоматическом режиме. При автоматизации программные инструменты оказывают помощь в процессе проверки и инспекции кода. Программа или инструмент для проверки обычно отображает список предупреждений (нарушений стандартов программирования). Программа для проверки также может предоставлять автоматизированный или поддерживаемый программистом способ исправления обнаруженных проблем. Это способствует легкому освоению разработки программного обеспечения и развитию практики Software Intelligence. Этот процесс обычно называют "линтингом", поскольку одним из первых инструментов для статического анализа кода был Lint. Некоторые инструменты статического анализа кода могут использоваться для помощи в автоматизированной проверке кода. Они не могут сравниться с ручными проверками, однако их можно выполнить быстрее и эффективнее. Эти инструменты также содержат глубокие знания базовых правил и семантики, необходимых для выполнения такого анализа, что избавляет рецензента кода от необходимости обладать таким же уровнем экспертизы, как у опытного аудитора. Среды разработки Microsoft Visual Studio поддерживают различные плагины, облегчающие проверку кода. Помимо инструментов статического анализа кода, существуют также инструменты, которые анализируют и визуализируют структуры программного обеспечения, помогая лучше их понимать. Такие системы больше ориентированы на анализ, поскольку обычно не содержат заранее определенного набора правил для проверки программного обеспечения. Некоторые из этих инструментов (например, Imagix 4D, Resharper, SonarJ, Sotoarc, Structure101, ACTool) позволяют определять целевые архитектуры и обеспечивать соблюдение ограничений этих архитектур в фактической реализации программного обеспечения.
Automated code review software checks source code for compliance with a predefined set of rules or best practices. The use of analytical methods to inspect and review source code to detect bugs or security issues has been a standard development practice in both Open Source and commercial software domains. This process can be accomplished both manually and in an automated fashion. With automation, software tools provide assistance with the code review and inspection process. The review program or tool typically displays a list of warnings (violations of programming standards). A review program can also provide an automated or a programmer assisted way to correct the issues found. This is a component for mastering easily software. This is contributing to the Software Intelligence practice. This process is usually called "linting" since one of the first tools for static code analysis was called Lint. Some static code analysis tools can be used to help with automated code review. They do not compare favorably to manual reviews, however they can be done faster and more efficiently. These tools also encapsulate deep knowledge of underlying rules and semantics required to perform this type analysis such that it does not require the human code reviewer to have the same level of expertise as an expert human auditor. and Microsoft Visual Studio IDEs support a variety of plugins that facilitate code review. Next to static code analysis tools, there are also tools that analyze and visualize software structures and help humans to better understand these. Such systems are geared more to analysis because they typically do not contain a predefined set of rules to check software against. Some of these tools (e. g. Imagix 4D, Resharper, SonarJ, Sotoarc, Structure101, ACTool) allow one to define target architectures and enforce that target architecture constraints are not violated by the actual software implementation.