Thématiques principales

lundi 16 octobre 2017

La conception logicielle

Cet article a pour but d'introduire une série d'articles relatifs à la conception logicielle et plus généralement au développement des systèmes logiciels ou encore Génie logiciel.

La conception logicielle est entre autre une sous-activité du développement des systèmes logiciel. On la place généralement entre l'analyse des besoins et l'implantation du logiciel. Son objectif est de répondre aux objectifs suivant:

  • Maîtrise de la complexité 
  • Amélioration de la productivité et de la qualité
  • Maîtrise des coûts
  • Maîtrise de l’évolution du logiciel et de son obsolescence

Pour partir sur une définition de la conception logicielle, nous pourrions en donner celle-ci:
Processus permettant, a partir d'un besoin fonctionnel donné, l'élaboration d'un ensemble de concepts métiers et techniques reconstituant la logique du besoin en vue d'une implantation logicielle. Le produit de ce processus est l'architecture logicielle.
On voit bien dans cette définition qu'il s'agit d'une activité et qu'elle permet de caractériser des concepts qui naturellement seront associé aux éléments de l'architecture. Ainsi, sur cette base, nous pouvons donner une définition pas si évidente que ça de l'architecture logicielle:
Organisation générale d'un système en tant que tout, matérialisé pas ses composants, leurs relations mutuelles et des relations avec l'environnement, étayé par des principes guidant la conception et l'évolution du système.
Bien sur cette définition est celle fournie par l'IEEE et est donc très formelle surtout que finalement ça ne nous donne pas vraiment de clefs pour faire de la conceptions logicielles même si on en voit mieux l'objectif, on a pas encore forcement de méthode ou de processus pour mener a bien cette tache.

Ainsi divers approches existent pour concevoir un système logiciel:

  • Utilisation de patterns de conception et d'architectures qui définissent des standard de construction déjà éprouvés
  • Utilisation de frameworks consolidant des aspects métiers ou techniques 
  • La modélisation afin de rationaliser l'architecture dans une spécification plus proche des aspects d'implantation et de fournir une méthodologie pour capturer les concepts du besoin (par exemple en traitant séparément des aspects métier et aspects technique)
Voila, après avoir abordé ces quelques notions, je traiterai plus en avant des sujets évoqués comme les patterns de conception, les frameworks, la modélisation (entre autre avec l'IDM), etc...

Aucun commentaire:

Enregistrer un commentaire