Recommandé, 2024

Choix De L'Éditeur

Différence entre les approches descendante et ascendante

Les algorithmes sont conçus en utilisant deux approches qui sont l'approche descendante et l'approche ascendante. Dans l’approche descendante, le module complexe est divisé en sous-modules. Par ailleurs, l’approche ascendante commence par les modules élémentaires, puis les combine davantage. L'objectif antérieur d'un algorithme est de faire fonctionner les données comprises dans la structure de données. En d'autres termes, un algorithme est utilisé pour effectuer les opérations sur les données à l'intérieur des structures de données.

Un algorithme complexe est divisé en petites parties appelées modules, et le processus de division est appelé modularisation . La modularisation réduit considérablement les complications liées à la conception d'un algorithme et facilite la conception et la mise en œuvre de son processus. La programmation modulaire est la technique de conception et d’écriture d’un programme sous la forme de fonctions, chaque fonction étant distincte les unes des autres et fonctionnant de manière indépendante. Le contenu des fonctions est cohérent et il existe un faible couplage entre les modules.

Tableau de comparaison

Base de comparaisonApproche descendanteUne approche en profondeur
De baseDivise le problème massif en sous-problèmes plus petits.Résout le problème fondamental de bas niveau et les intègre à un problème plus vaste.
ProcessusLes sous-modules sont analysés de manière volontaire.Examiner quelles données doivent être encapsulées et implique le concept de dissimulation d’informations.
la communicationNon requis dans l'approche descendante.Nécessite une quantité spécifique de communication.
RedondanceContient des informations redondantes.La redondance peut être éliminée.
Langages de programmationLes langages de programmation orientés structure / procédure (ie C) suivent l’approche descendante.Les langages de programmation orientés objet (comme C ++, Java, etc.) suivent l'approche ascendante.
Principalement utilisé dansDocumentation du module, création de scénarios de test, implémentation de code et débogage.Essai

Définition de l'approche descendante

L’approche descendante divise un problème complexe ou un algorithme en plusieurs parties plus petites (modules). Ces modules sont ensuite décomposés jusqu'à ce que le module résultant constitue le programme fondamental, soit essentiellement compris et ne puisse plus être décomposé. Après avoir atteint un certain niveau de modularité, la décomposition des modules est arrêtée. L’approche descendante est le processus par étapes consistant à scinder le module de programme volumineux en modules plus simples et plus petits pour organiser et coder le programme de manière efficace. Le flux de contrôle dans cette approche est toujours dans la direction descendante. L'approche descendante est implémentée dans le langage de programmation «C» à l'aide de fonctions.

Ainsi, la méthode descendante commence par la conception abstraite, puis séquentiellement, cette conception est affinée pour créer des niveaux plus concrets jusqu'à ce qu'il n'y ait plus aucune exigence de raffinement supplémentaire.

Définition de l'approche ascendante

L’approche ascendante fonctionne de manière opposée à l’approche descendante. Initialement, il comprend la conception des pièces les plus fondamentales qui sont ensuite combinées pour former le module de niveau supérieur. Cette intégration de sous-modules et de modules dans le module de niveau supérieur est répétée jusqu'à l'obtention de l'algorithme complet requis.

L’approche ascendante fonctionne avec des couches d’abstraction. La principale application de l'approche ascendante consiste à tester, chaque module fondamental étant d'abord testé avant de le fusionner avec le plus grand. Le test est effectué à l'aide de certaines fonctions de bas niveau.

Principales différences entre les approches descendante et ascendante

  1. L'approche descendante décompose la tâche importante en sous-tâches plus petites, tandis que l'approche ascendante choisit d'abord de résoudre directement les différentes parties fondamentales de la tâche, puis de les combiner en un programme complet.
  2. Chaque sous-module est traité séparément selon une approche descendante. En revanche, l’approche ascendante met en œuvre le concept de dissimulation d’informations en examinant les données à encapsuler.
  3. Les différents modules en approche descendante ne nécessitent pas beaucoup de communication. Au contraire, l'approche ascendante nécessite une interaction entre les modules fondamentaux distincts pour les combiner ultérieurement.
  4. Une approche descendante peut produire une redondance, tandis qu'une approche ascendante n'inclut pas d'informations redondantes.
  5. Les langages de programmation procéduraux tels que Fortran, COBOL et C suivent une approche descendante. En revanche, les langages de programmation orientés objet tels que C ++, Java, C #, Perl et Python suivent l’approche ascendante.
  6. L’approche ascendante est utilisée auparavant dans les tests. Inversement, l'approche top-down est utilisée dans la documentation du module, la création de scénarios de test, le débogage, etc.

Conclusion

L'approche descendante et l'approche ascendante sont les méthodes de conception d'algorithmes, où la méthode descendante est une approche conventionnelle qui décompose le système d'une spécification de haut niveau à une spécification de bas niveau. D'autre part, l'approche ascendante est plus efficace et fonctionne de manière inverse, les composants primitifs étant d'abord conçus puis poursuivis au niveau supérieur.

L’approche descendante met l’accent sur l’isolation des sous-modules (signifie un couplage faible entre les modules) tout en ignorant l’identification du concept de communication et de réutilisation. Dans l’approche ascendante, la dissimulation et la réutilisabilité de l’information sont les principaux facteurs.

Top