Quelles sont les différences entre le HLD et le LLD dans un cycle de vie de développement logiciel ?


Cela dépend de la complexité des systèmes.
Pour un système simple non distribué, le DHN peut être juste des couches logiques et l'interaction entre elles et le LLD peut être les structures réelles de classes et de méthodes dans ces couches.
Pour un gros système distribué de type SOA avec disons 50 composants, le DHN pourrait être les composants impliqués et l'interaction entre ces composants (flux d'informations) et le LLD pourrait être la façon dont les propriétaires de composants individuels conçoivent leur partie du puzzle entier.
Il peut y avoir du HLD et du LLD dans les LLD de manière récursive en fonction de la taille du problème sur lequel vous travaillez.


Juste en prenant un exemple très basique.
Un système d'enregistrement/de connexion dans une application web.
En forme de texte, le HLD et le LLD pourraient être vaguement comme
HLD
1. Il y aurait une couche d'interface utilisateur pour prendre les entrées de l'utilisateur
2. Il y aurait une couche de service pour faire des validations, faire le cryptage des mots de passe, l'authentification et la communication avec la couche de stockage
3. Il y aura une couche de stockage pour stocker les enregistrements et pour correspondre contre pour les connexions.


LLD
1. L'interface utilisateur sera 2 boîtes et 1 bouton de soumission
2. Le service sera UserService avec des méthodes comme
register(utilisateur utilisateur)
login(String username, String password)
3. Le stockage sera un db relationnel et il y aura une table appelée user avec des champs comme id, username, password.