Aide à la conception de logiciels et de sites (patrons, outils et techniques)
Mise à jour: suite au commentaire de George, j’ai complété cet article
Avant de développer (« Pisser du code »), il y’a une étape que personne n’aime ou l’étape que l’on veut passer rapidement, c’est la conception. Cette étape est pourtant cruciale pour la réussite d’un projet. Produire un logiciel qui répond aux besoins est faisable. Mais produire un logiciel « maintenable » dans le temps et qui sait évoluer c’est plus compliqué.
Je vous propose quelques liens et techniques pour vous aidez à la conception de logiciels.
Designs Patterns du Gang of Four (les patrons de conceptions)
Définition Wikipédia:
Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing recurring solutions to common problems in software design. The book’s authors are Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides with a foreword by Grady Booch. The authors are often referred to as the Gang of Four, GoF,[1] or Go4
Les patrons de conceptions du GoF sont très utiles et il me semble que vous devriez en utiliser au moins un à chaque fois que vous développez un logiciel.
Quelques patrons de conceptions:
- Abstract factory
- Singleton
- Facade
- Strategy
Pour comprendre comment fonctionne tous ces patrons vous pouvez aller sur le site (tous les patrons sont modélisés avec des exemples compréhensibles) : http://www.dofactory.com/Patterns/Patterns.aspx
Il existe d’autres patrons comme DAO (Data Access Object) qui permet de gérer la persistance des objets. (SGBDR ou autres)
Patrons d’architectures
Les patrons d’architecture permettent de construire les grandes briques de votre application.
Vous utilisez surement:
- MVC (Model View Controller)
- MVP (Model View Presentation)
- 3-tiers
Modélisation
Il est important de modéliser votre programme avec des diagrammes. utilisez UML et plusieurs types de diagrammes pour représenter votre logiciel.
Utilisez des diagrammes pour représenter la statique et la dynamique de votre logiciel. Il est important que vous utilisiez tout au long du développement ces diagrammes. Mettez les à jour au fur et à mesure. « Voyagez léger », ne faites pas trop de diagramme non plus!
Le premier diagramme qui me semble OBLIGATOIRE est celui des cas d’utilisations (Use cases)! Comment peut-on envisager de débuter un projet sans ce type de diagramme. Il convient d’expliquer ce diagramme au client pour formaliser les cas d’utilisation de son application.

De ce diagramme découlera des diagrammes de classes et de packages.
Utilisez des packages pour ranger vos classes (MVC). Exemple: View (GUI), Business, DAL(Data Access Layer)

Un outil en ligne permet de modéliser et générer du code: http://www.genmymodel.com . Cette outil est encore en beta mais il semble prometteur (Wait and see).
Maquette
La maquette est très pratique pour dialoguer avec votre client. Elle représente une vision simplifiée de l’interface utilisateur. Vous pouvez utiliser des logiciels pour créer rapidement des maquettes et avoir un retour de votre client. Un logiciel que j’aime beaucoup utiliser: Balsamiq Mockup. Si vous en connaissez d’autres, partager les!
Voici donc quelques techniques et outils utiles à la conception de logiciels. Si vous avez d’autres techniques pour modéliser et concevoir des logiciels, laissez un commentaire!