les derniers
articles

Index &
Sommaire
 

Articles « Info » : Développeur

 


DÉCOLLAGE !


Présentation du
site WEB AILES
 


Développeur :
Concevoir


    Après avoir découvert "Quoi coder" (avec les spécifications), on va vous demander "Comment le coder".
    C'est donc à vous de concevoir les solutions techniques à mettre en œuvre, en terme de modélisation et de choix d'implémentation.
    Cela s'appelle respectivement "Conception Préliminaire" et "Conception Détaillée"!
    Rq : cette phase fait partie de ce qui est nommé aux États-Unis "Design", illustré dans un "projet-cauchemar" :
Waterfall.
    Notons au passage que le terme "Conception" est aussi une bonne traduction du mot anglais "engineering" (détaillé dans l'article sur la
conception de Linux)


 



Lisez-moi et
réagissez !



Écrivez à AILES !



page précédente :
Spécifier - Analyse



page suivant :
Coder



Article suivant :
MOE & MOA
 
Conception Préliminaire
    Si les modèles précédents (statiques, dynamiques, etc.) vous ont aidé à spécifier votre système, vous allez les reprendre pour les "préciser" : ici, vous n'êtes plus seulement au niveau des concepts. Vous devez déterminer comment vous allez manipuler ces concepts, donc comment les implémenter.
    Pour cela, vous pouvez vous appuyer sur des "patrons de modélisation objet" qui vous aident à implémenter plus facilement des... :
- gestions d'événements,
- gestion d'états,
- gestion d'interface, ...
Cela s'appelle les Design Patterns et vous permet de ne pas "réinventer la roue" à chaque fois que vous devez gérer vos concepts de telle ou telle façon.
    Vous pouvez également en profiter pour valider toutes les dépendances entre classes : si, soudainement, une classe a besoin d'une autre alors qu'en phase d'analyse, leurs packages (ensemble logique de classes) respectifs s'ignorent, c'est qu'il y a un problème (soit au niveau de l'analyse ou de la conception, dans le choix d'implémentation)

Conception Détaillée
    En principe, vous devez compléter vos classes de façon à ce que leurs interfaces soient complètement définies et documentées.
    Tous les choix de conception (et, en particulier, les choix de Design Patterns) doivent être justifiés.
    On peut également en profiter pour documenter certains algorithmes complexes.
    Tout l'aspect dynamique de l'application doit également être décrit.
    Enfin, la phase d'intégration (comment assembler tous les morceaux) peut être préparée sur la base de ce document : celui-ci indique en effet clairement qui dépend de qui, et l'on peut en déduire un premier ordre d'intégration qui permet de rapidement cerner les problèmes, module après module.
En pratique
    Le plus souvent, le débutant commence par faire de la conception qui se limite hélas trop souvent à quelques diagrammes objets vites faits avant de se ruer sur le code.
La conception détaillée n'est, en générale, faite que pendant voire après le codage, à l'aide d'un outils d'extraction de code automatique.
    A ce niveau, le modèle objet de l'application est le plus défini. Le gros problème est qu'il devient vite incohérent au fur et à mesure que le codage avance. Celui-ci introduit en effet des changements rapides de conception selon l'apparition de certaines difficultés non-prévues lors de la conception initiale ou encore selon les "modifications inopinées"des spécifications par le client... (cf. aussi les critiques de B. Meyer)

Pourquoi faire de la Conception ?
    Bien sûr, il s'agit d'une phase vitale qui permet de se poser les "vraies questions" avant de se lancer dans le code. En théorie, le codage ne devrait être qu'une simple "transcription" de la conception...
    Une utilisation courante consiste également à servir de base pour vous aider à déterminer en combien de temps vous comptez réaliser ce que vous avez conçu.
Attention, ce nombre de jour devra comprendre le codage, le test mais aussi toutes les emm... inhérentes à tout projet (serveur en rade, outils de développement défaillants, librairie qui manque, mise-à-jour d'un produit qui se fait attendre alors que seule la nouvelle version propose la fonctionnalité dont vous avez besoin...)
    Pour estimer cette durée, il n'y a pas de recette exceptée celle-ci : si vous débutez, vous pouvez tranquillement multiplier par deux (2!) votre estimation... non que vous soyez "mauvais" développeur, mais surtout parce que vous ne connaissez pas encore suffisamment votre projet pour savoir à quelle fréquence les ennuis précédemment évoqués vous tomberont sur la g... figure!



               
 
Avertissement !
 
Décollage !  |  Présentation du site web "AILES"  | 
Infos générales  |  articles "Informatique"