Différence entre l'ingénierie directe et l'ingénierie inverse

Auteur: Laura McKinney
Date De Création: 2 Avril 2021
Date De Mise À Jour: 26 Avril 2024
Anonim
Différence entre l'ingénierie directe et l'ingénierie inverse - La Technologie
Différence entre l'ingénierie directe et l'ingénierie inverse - La Technologie

Contenu


L'ingénierie prospective et l'ingénierie inverse font partie du processus de réingénierie et sont étroitement liées. La différence cruciale entre l'ingénierie aval et l'ingénierie inverse réside dans le fait que l'ingénierie prospective utilise le changement du système en question pendant la restructuration. Inversement, l’ingénierie inverse a pour seul but d’examiner le système afin d’obtenir sa conception plus abstraite.

La réingénierie logicielle n’est rien d’autre que la ré-implémentation du système existant pour plus de durabilité. L'évolution du système nécessite l'assimilation du système existant qui doit être modifié pour que le système puisse être modifié en mettant en œuvre les modifications.

    1. Tableau de comparaison
    2. Définition
    3. Différences Clés
    4. Conclusion

Tableau de comparaison

Base de comparaisonIngénierie avancéeIngénierie inverse
De baseDéveloppement de l'application avec les exigences fournies.Les exigences sont déduites de l'application donnée.
CertitudeProduit toujours une application mettant en œuvre les exigences.On peut donner plusieurs idées sur l'exigence d'une implémentation.
La naturePrescriptifAdaptatif
Compétences nécessairesHaute compétenceExpertise de bas niveau
Temps requisPlusMoins
PrécisionLe modèle doit être précis et complet.Le modèle inexact peut également fournir des informations partielles.


Définition de l'ingénierie avancée

Ingénierie prospective est un processus de construction d’une application à l’aide des exigences générales de la mise en oeuvre finale. Elliot J. Chikofsky et James H. Cross ont utilisé le terme «ingénierie avancée» dans leur document en 1990 et l'ont associé au développement classique. Comme mentionné ci-dessus, la technique d'évolution du système nécessite une bonne compréhension du logiciel ou des programmes existants, de sorte que seuls les nouveaux changements pourraient être introduits et mis en œuvre.

L'ingénierie prospective implique la construction d'un produit en suivant les spécifications générales. Les anciennes spécifications du système sont analysées, restructurées et régénérées afin d'obtenir le produit de la meilleure qualité.


Les autres noms utilisés pour l’ingénierie avancée sont “rénovation et remise en état”Car il récupère non seulement les informations de conception à partir du logiciel existant, mais les utilise également pour créer un produit de qualité supérieure.

Définition de l'ingénierie inverse

Ingénierie inverse, comme son nom l’indique, est le processus inverse de l’ingénierie prospective, dans lequel le système existant est analysé pour produire la documentation du système existant. Initialement, l’ingénierie inverse est mise en œuvre sur du matériel informatique, où l’exercice consistant à déchiffrer les conceptions des produits finis est courant.

Cependant, lors du développement d’une nouvelle application, l’ingénierie inverse vise à découvrir les composants du système et leurs relations. Le code logiciel existant est analysé à certains niveaux d'abstraction - système, composant, programme, instruction et modèle.

Cette récupération des données, des informations de conception architecturale et procédurale est réalisée pour construire une représentation du programme en tenant compte du niveau d'abstraction le plus élevé par rapport au code source.

  1. L'ingénierie prospective commence par la spécification du système et comprend la conception et la mise en œuvre du système en développement. Au contraire, la première étape de la rétroingénierie commence avec le système existant et la technique de développement pour le remplacement repose sur l’interprétation.
  2. Il est toujours certain de générer un sous-produit de l’ingénierie avancée, mais dans le cas de l’ingénierie inverse, plusieurs idées sont générées à propos de l’exigence, mais pas nécessairement un produit.
  3. L'ingénierie avancée est de nature normative, les développeurs devant suivre des règles particulières pour obtenir les résultats appropriés. En revanche, l’ingénierie inverse est une solution adaptative qui oblige l’ingénieur à découvrir ce que le développeur a réellement fait.
  4. L'ingénierie avancée prend plus de temps que l'ingénierie inverse.
  5. Le produit final de l'ingénierie avancée doit être complet et exact. Par contre, le modèle d'ingénierie inverse peut être imparfait, les informations partielles récupérées sont toujours utiles.

Relation entre l'ingénierie directe et l'ingénierie inverse

Conclusion

L'ingénierie directe implique la modification du système en question, alors que l'ingénierie inverse ne fait qu'analyser le système. De plus, ce sont les composants du processus de réingénierie.