Analyse and explore articles

Kezacode - comprendre un code source

Introduction

Kezacode fournit des outils qui facilitent la compréhension de code source (ou compréhension de programme), y compris de programmes complexes avec un code source important.

La documentation générée suit quelques principes :

Comprendre la structure des répertoires du code source

L'explorateur de répertoires de Kezacode

Cet explorateur facilite la compréhension de la structure des répertoires du code source et du contenu.

image de l'explorateur de fichier de kezacode
explorateur kezacode - exemple avec Firefox

Pour explorer des projets concrets, suivre les liens: Explorer le code source de Firefox, Explorer le code source de VLC.

Comparaison avec les solutions existantes

Des outils web existent déjà pour visualiser les répertoires et le contenu d'un code source: Git, Mercurial, Opengrok, recherche de code, autres...

Certains explorateurs affichent le fichier readme d'un dossier,

Ces explorateurs manquent de vues plus haut niveau lors de l'affichage du contenu des fichiers (comme l'affichage des composants générés par un fichier projet).

Comprendre les composants clés et leurs dépendances

Revue des composants logiciels

Kezacode extrait les composants générés par un projet build et leurs dépendances, puis génère une documentation web.

image de l'explorateur des composants
Revue des composants avec kezacode - exemple avec Firefox

Ainsi, il devient plus facile de comprendre où le programme principal est généré, quelles sont ses dépendances, etc. Cela facilite la compréhension de l'architecture logicielle haut-niveau et l'organisation des composants.

Kezacode supporte partiellement les fichiers projet/build suivants :

L'analyse des projets est approximative: il peut donc manquer des informations ou simplifier le résultat du processus de construction, surtout avec un contenu de construction complexe.

Explorateur des dépendances entre composants

L'explorateur des dépendances entre composants affiche un graphe des composants et leurs liens.

image de l'explorateur des dépendances entre composants de Kezacode
Kezacode - Explorateur des dépendances entre composants - Exemple Libreoffice

Le graphique ci dessus est un graphe de composants qui est déjà complexe. Il est donc possible de se concentrer sur un composant spécifique et ses descendants, comme le montre le graphique ci-dessous.

image de l'explorateur des dépendances entre composants de Kezacode - vue filtrée
Kezacode - Explorateur des dépendances entre composants - Une vue Filtrée - Exemple Libreoffice writer

Pour visualiser des graphes de dépendance de projets concrets, suivre les liens: Explorer les dependances entre composants Libreoffice, Explorer les dependances entre composants VLC.

Composants externes

Kezacode recherche les composants ou bibliothèques logicielles connues. Cela permet de fournir des informations supplémentaires ainsi que de découvrir des sujets / domaines de code liés au code source principal.

Comparaison avec des solutions existantes

Les IDEs / environnements de développement peuvent fournir une vue des projets et de leurs composants, mais ils sont limités. Il n'y a pas d'équivalents kezacode évidents.

Thématiques logicielles

Une application se focalise généralement sur un usage spécifique (bureautique, web, multimédia, etc.). Les répertoires ou composants sont aussi souvent liés à des thématiques spécifiques (interface utilisateur, réseau, etc.).

Kezacode analyse le code source pour découvrir ces informations.

image de l'explorateur de thématiques logicielles
kezacode - Thématiques Logicielles - Exemple Firefox

Le schéma thématique est une version alternative de l'explorateur.

image du schéma thématique kezacode
kezacode - schéma thématique - Exemple Libreoffice

Code source

Interfaces de programmation

Regarder les APIs, Services / Interfaces / Fonctions d'un logiciel est un bon moyen de comprendre son contenu fonctionnel. Kezacode analyse les fichiers de déclaration des interfaces. Le résultat agrégé peut être visualisé dans la section interfaces externes. Le contenu de chaque fichier de code est également accessible via l'explorateur de répertoire.

kezacode - explorateur des interfaces (code) - image
kezacode - interfaces externes - Exemple Firefox AIDL

A ce jour, Kezacode supporte (ou supporte partiellement):

Documentation manuelle, concepts, hyperliens vers du code

Documentation manuelle

Kezacode cumule plusieurs sources pour générer une documentation :

Concepts

Une autre approche est d'identifier les principaux concepts (ou sujets / composants).

Kezacode fournit une liste de concepts qui peuvent être utilisés comme point d'entrée pour comprendre un logiciel, puis naviguer vers les composants ou les répertoires de code source liés au à chaque concept.

Usage d'hyperliens vers le code

La documentation manuelle peut être enrichie avec des hyperliens

Generated by PFA software prototype