decorated-logo.png

Les différentes technologies par domaine
informatique technique, scientifique, intégration avec l'embarqué
accès aux données et SGBDR, modélisation des données, autres langages de programmation
Systèmes, OS, infrastructure

#

#

Savoir faire

en matière de développement logiciel

Une bonne partie de mes connaissances gravite autour de la POO. Beaucoup d'éléments de conception restent assez indépendants des différents langages. Présenter brièvement ce contenu, transparent aux "technologies", est l'objet de cette page.

Dimensionnement

En ce qui concerne l'estimation de l'effort et de la taille d'un logiciel, j'ai trouvé un compromis versatile avec une méthode d'analyse/estimation de la taille fonctionnelle du logiciel : la méthode de mesure COSMIC (ISO/IEC 19761).

Modélisation

Je pratique toujours UML en tant que méthode de notation polyvalente durant tout le cycle de vie du logiciel

  • vecteur de communication entre les différents acteurs (plutôt informaticiens ...)
  • moyen de traçabilité et de documentation
  • également en amont pour les cas d'utilisations et les grandes collaborations

J'use de toutes les vues et diagrammes, avec un attachement sur la vue dynamique (comportementale), en particulier avec diagrammes de séquences et d'états.

Maitrise de l'outil CASE SparxSystems EnterpriseArchitect EA-logo-type-col.gif

Pattern de conception

En ayant travaillé sur des projets "from scratch" j'ai pu mettre en oeuvre de nombreux design patterns. Voici les principaux utilisés :

Pattern génériques

créateurs structuraux comportementaux
  • fabrique abstraite
  • prototype
  • adaptateur
  • décorateur
  • façade
  • commande
  • médiateur
  • observateur
  • visiteur

Patterns spécifiques

Des modèles de conception ciblant plus particulièrement des applications temps réel (soft real time)

Architecture Concurrence Mémoire Distribution
  • couches hiérarchiques
  • channel, pipe (data stream)
  • file de messages
  • guarded call pattern
  • static priority pattern (rate monotonic scheduling)
  • alllocations statiques
  • pool
  • fixed size buffer
  • smart pointers
  • mémoire partagée
  • proxy
  • data bus