CppDepend is a powerful and versatile tool for analyzing code dependencies in C++. It is designed to help developers, architects, and project managers get a better understanding of the structure of their code and how different components depend on each other. With CppDepend, it is possible to visualize the relationships between different classes, methods, and other components, as well as to identify potential problems, such as tight coupling, circular dependencies, and other issues that can lead to code fragility and reduced maintainability.
CppDepend, the leading code analysis tool for C/C++ developers, announces the release of its latest version 2023.1, with exciting new features aimed at improving code quality and maintenance.
The latest version includes a Maintainability Index, which helps developers assess the maintainability of their code. The index is calculated using various metrics, including code complexity and design, and provides a single, easy-to-understand score that gives developers a quick understanding of the state of their codebase.
OpenCV (Open Source Computer Vision) is a library of programming functions mainly aimed at real-time computer vision, developed by Intel Russia research center in Nizhny Novgorod. The library is cross-platform. It focuses mainly on real-time image processing.
OpenCV is widely used, Adopted all around the world, for end users, it’s very mature and powerful, for developers it’s well implemented and designed. The OpenCV developers used very basic principles which makes it very simple to understand and maintain.
Currently many mature libraries and frameworks exist for each programming language and many advanced features were added to the languages. But what about the old projects where the language features were not advanced as now and no many mature libraries existed yet?
Many resources discuss the benefits of using the static analysis tools, and how they could help you improve your code base. Somehow they show you what you could gain after using them. But did you asked yourself what do you lose if you don’t use them?
Let’s take an example of a memory corruption due to free of a pointer twice, this cause random crash. It could take few hours or maybe many days to find this kind of issue. Many similar risky problems exist in C/C++ specially concerning memory corruption. Just one problem could cost few dollars or many thousands of dollars. Continue reading “Why should you care about C/C++ static analysis?”
Coupling is usually contrasted with cohesion. Low coupling often correlates with high cohesion, and vice versa. Low coupling is often a sign of a well-structured computer system and a good design, and when combined with high cohesion, supports the general goals of high readability and maintainability. The goal of this case study is to show the benefits of loose coupling and high cohesion, and how it can be implemented with C++. The case study consists of designing an application that accesses a file in order to get data, processes it, and prints the result to an output file. Continue reading “Two easy approaches to leverage your C++ OOP design skills.”