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 GammaRichard HelmRalph Johnson and John Vlissides with a foreword by Grady Booch. The authors are often referred to as the Gang of FourGoF,[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.

Use cases
Diagramme Use cases biblio

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)

Packages
Packages diagrams

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!