Object Oriented Software Engineering
# Object Oriented Software Engineering

Object Oriented Software Engineering (OOSE) est un langage de modélisation objet créé par Ivar Jacobson.

OOSE est une méthode pour l’analyse initiale des usages de logiciels, basée sur les « cas d’utilisation » et le cycle de vie des logiciels.

Ce langage fut fusionné avec OMT de James Rumbaugh et OOD de Grady Booch pour créer l’UML en 1995.

## Le modèle

La méthode OOSE est basée sur cinq modèles et trois types d’objets fondés par Ivar Jacobson en 1992

Les cinq modèles sont :

* le modèle des besoins est un modèle qui se situe au niveau de l’interaction entre l’individu et l’environnement ;
* le modèle d’analyse permet de définir les différentes relations entre les objets, les acteurs et le système ;
* le modèle de conception permet de modéliser ces relations à travers différents diagrammes ;
* le modèle d’implémentation permet le passage au code ;
* le modèle de test basé sur les essais d’actions et d’interactions du système.

Les trois types d’objets sont :

* les entités représentant un objet matériel ou immatériel ;
* des contrôles permettant différentes vérifications ;
* des interfaces représentant des classes abstraites, sans attribut et dont les méthodes sont abstraites et publiques.

## La démarche

* Définir les cas d’utilisations : ce diagramme permet de décrire les exigences fonctionnelles du système et déterminer ses frontières et ses relations avec son environnement. Il intègre des acteurs externes au système (primaires ou secondaires) et les actions permises par le système.
* Créer un modèle d’analyse objet : il décrit les entités et leurs relations en terme objet. Les entités représentent des classes.
* Créer un modèle de conception objet : Il fait intervenir les étapes conception des classes, des associations, des attributs et la validation du modèle.
* Créer un modèle d’interaction pour chaque cas d’utilisation : Il représente les échanges de messages entre objets du système, dans le cas d’un fonctionnement particuliers (scénario) du système. Ce modèle est composé de diagrammes de séquences, de communications et de temps.
* Créer un diagramme d’états/transition pour chaque cycle de vie d’objets : Il découpe un objet en un ensemble d’états, le passage d’un état à un autre s’effectue par des événements. Un événement est constitué d’attributs et de gardien, un attribut est un paramètre et un gardien est une condition de transitions.
