Approche orientée objet
Dans l'approche orientée objet, l'accent est mis sur la capture de la structure et du comportement des systèmes d'information en petits modules qui combinent à la fois les données et les processus. L'objectif principal de la conception orientée objet (OOD) est d'améliorer la qualité et la productivité de l'analyse et de la conception du système en le rendant plus utilisable.
En phase d'analyse, les modèles OO sont utilisés pour combler l'écart entre le problème et la solution. Il fonctionne bien dans les situations où les systèmes subissent une conception, une adaptation et une maintenance continues. Il identifie les objets dans le domaine du problème, les classant en termes de données et de comportement.
Le modèle OO est bénéfique des manières suivantes -
Il facilite les changements dans le système à faible coût.
Il favorise la réutilisation des composants.
Cela simplifie le problème de l'intégration des composants pour configurer un grand système.
Il simplifie la conception des systèmes distribués.
Éléments du système orienté objet
Passons en revue les caractéristiques du système OO -
Objects- Un objet est quelque chose qui existe dans le domaine du problème et qui peut être identifié par des données (attribut) ou un comportement. Toutes les entités tangibles (étudiant, patient) et certaines entités immatérielles (compte bancaire) sont modélisées comme objet.
Attributes - Ils décrivent des informations sur l'objet.
Behavior- Il spécifie ce que l'objet peut faire. Il définit l'opération effectuée sur les objets.
Class- Une classe encapsule les données et leur comportement. Objets ayant une signification et un but similaires regroupés en classe.
Methods- Les méthodes déterminent le comportement d'une classe. Ce ne sont rien de plus qu'une action qu'un objet peut effectuer.
Message- Un message est un appel de fonction ou de procédure d'un objet à un autre. Ce sont des informations envoyées aux objets pour déclencher des méthodes. Essentiellement, un message est un appel de fonction ou de procédure d'un objet à un autre.
Caractéristiques du système orienté objet
Un système orienté objet est livré avec plusieurs fonctionnalités intéressantes qui sont décrites ci-dessous.
Encapsulation
L'encapsulation est un processus de dissimulation d'informations. C'est simplement la combinaison de processus et de données en une seule entité. Les données d'un objet sont masquées du reste du système et disponibles uniquement via les services de la classe. Il permet d'améliorer ou de modifier les méthodes utilisées par les objets sans affecter les autres parties d'un système.
Abstraction
C'est un processus de prise ou de sélection de la méthode et des attributs nécessaires pour spécifier l'objet. Il se concentre sur les caractéristiques essentielles d'un objet par rapport à la perspective de l'utilisateur.
Des relations
Toutes les classes du système sont liées les unes aux autres. Les objets n'existent pas isolément, ils existent en relation avec d'autres objets.
Il existe trois types de relations d'objet -
Aggregation - Il indique la relation entre un tout et ses parties.
Association - En cela, deux classes sont liées ou connectées d'une certaine manière, par exemple une classe travaille avec une autre pour effectuer une tâche ou une classe agit sur une autre classe.
Generalization- La classe enfant est basée sur la classe parent. Cela indique que deux classes sont similaires mais présentent quelques différences.
Héritage
L'héritage est une fonctionnalité intéressante qui permet de créer des sous-classes à partir d'une classe existante en héritant des attributs et / ou des opérations des classes existantes.
Polymorphisme et liaison dynamique
Le polymorphisme est la capacité de prendre de nombreuses formes différentes. Il s'applique à la fois aux objets et aux opérations. Un objet polymorphe est un objet dont le vrai type se cache dans une classe super ou parent.
En fonctionnement polymorphe, l'opération peut être effectuée différemment par différentes classes d'objets. Cela nous permet de manipuler des objets de différentes classes en ne connaissant que leurs propriétés communes.
Approche structurée vs. Approche orientée objet
Le tableau suivant explique en quoi l'approche orientée objet diffère de l'approche structurée traditionnelle -
Approche structurée | Approche orientée objet |
---|---|
Cela fonctionne avec une approche descendante. | Cela fonctionne avec une approche ascendante. |
Le programme est divisé en nombre de sous-modules ou de fonctions. | Le programme est organisé en ayant le nombre de classes et d'objets. |
L'appel de fonction est utilisé. | Le passage de message est utilisé. |
La réutilisation du logiciel n'est pas possible. | La réutilisation est possible. |
La programmation de conception structurée est généralement laissée jusqu'aux phases finales. | Programmation de la conception orientée objet réalisée en même temps que d'autres phases. |
La conception structurée est plus adaptée à la délocalisation. | Il convient au développement en interne. |
Il montre une transition claire de la conception à la mise en œuvre. | Transition pas si claire de la conception à la mise en œuvre. |
Il convient aux systèmes temps réel, aux systèmes embarqués et aux projets où les objets ne sont pas le niveau d'abstraction le plus utile. | Il convient à la plupart des applications d'entreprise, des projets de développement de jeux, qui devraient être personnalisés ou étendus. |
Les diagrammes DFD et ER modélisent les données. | Le diagramme de classes, le diagramme de séquence, le diagramme d'état et les cas d'utilisation contribuent tous. |
En cela, les projets peuvent être gérés facilement grâce à des phases clairement identifiables. | Dans cette approche, les projets peuvent être difficiles à gérer en raison de transitions incertaines entre les phases. |
Langage de modélisation unifié (UML)
UML est un langage visuel qui vous permet de modéliser des processus, des logiciels et des systèmes pour exprimer la conception de l'architecture système. C'est un langage standard pour la conception et la documentation d'un système d'une manière orientée objet qui permet aux architectes techniques de communiquer avec le développeur.
Il est défini comme un ensemble de spécifications créées et diffusées par Object Management Group. UML est extensible et évolutif.
L'objectif d'UML est de fournir un vocabulaire commun de termes orientés objet et de techniques de création de diagrammes suffisamment riche pour modéliser tout projet de développement de systèmes, de l'analyse à la mise en œuvre.
UML est composé de -
Diagrams - Il s'agit d'une représentation picturale d'un processus, d'un système ou d'une partie de celui-ci.
Notations - Il se compose d'éléments qui fonctionnent ensemble dans un diagramme tels que des connecteurs, des symboles, des notes, etc.
Exemple de notation UML pour la classe
Diagramme d'instance-notation UML
Opérations effectuées sur des objets
Les opérations suivantes sont effectuées sur les objets -
Constructor/Destructor- Création de nouvelles instances d'une classe et suppression des instances existantes d'une classe. Par exemple, ajouter un nouvel employé.
Query- Accéder à l'état sans changer de valeur, n'a pas d'effets secondaires. Par exemple, trouver l'adresse d'un employé en particulier.
Update - Modifie la valeur d'un ou plusieurs attributs et affecte l'état de l'objet Par exemple, changer l'adresse d'un employé.
Utilisations d'UML
UML est très utile aux fins suivantes -
- Modélisation du processus métier
- Décrire l'architecture du système
- Affichage de la structure de l'application
- Capturer le comportement du système
- Modélisation de la structure des données
- Construire les spécifications détaillées du système
- Esquisser les idées
- Générer le code du programme
Modèles statiques
Les modèles statiques montrent les caractéristiques structurelles d'un système, décrivent sa structure système et mettent l'accent sur les parties qui composent le système.
Ils sont utilisés pour définir les noms de classe, les attributs, les méthodes, la signature et les packages.
Les diagrammes UML qui représentent un modèle statique incluent un diagramme de classes, un diagramme d'objets et un diagramme de cas d'utilisation.
Modèles dynamiques
Les modèles dynamiques montrent les caractéristiques comportementales d'un système, c'est-à-dire comment le système se comporte en réponse à des événements externes.
Les modèles dynamiques identifient l'objet nécessaire et comment ils fonctionnent ensemble grâce à des méthodes et des messages.
Ils sont utilisés pour concevoir la logique et le comportement du système.
Les diagrammes UML représentent un modèle dynamique comprenant un diagramme de séquence, un diagramme de communication, un diagramme d'état, un diagramme d'activité.
Cycle de vie du développement de système orienté objet
Il se compose de trois processus macro -
- Analyse orientée objet (OOA)
- Conception orientée objet (OOD)
- Implémentation orientée objet (OOI)
Activités de développement de systèmes orientés objet
Le développement de systèmes orientés objet comprend les étapes suivantes -
- Analyse orientée objet
- Conception orientée objet
- Prototyping
- Implementation
- Test incrémental
Analyse orientée objet
Cette phase concerne la détermination de la configuration système requise et la compréhension de la configuration système requise. use-case model. Un cas d'utilisation est un scénario pour décrire l'interaction entre l'utilisateur et le système informatique. Ce modèle représente les besoins de l'utilisateur ou la vue utilisateur du système.
Cela inclut également l'identification des classes et leurs relations avec les autres classes du domaine de problème, qui constituent une application.
Conception orientée objet
L'objectif de cette phase est de concevoir et d'affiner les classes, les attributs, les méthodes et les structures qui sont identifiés pendant la phase d'analyse, l'interface utilisateur et l'accès aux données. Cette phase identifie et définit également les classes ou objets supplémentaires qui prennent en charge la mise en œuvre de l'exigence.
Prototypage
Le prototypage permet de comprendre pleinement à quel point il sera facile ou difficile de mettre en œuvre certaines des fonctionnalités du système.
Cela peut également donner aux utilisateurs la possibilité de commenter la convivialité et l'utilité de la conception. Il peut définir davantage un cas d'utilisation et rendre la modélisation de cas d'utilisation beaucoup plus facile.
la mise en oeuvre
Il utilise soit le développement basé sur les composants (CBD), soit le développement rapide d'applications (RAD).
Développement basé sur les composants (CBD)
CODD est une approche industrialisée du processus de développement logiciel utilisant diverses technologies telles que les outils CASE. Le développement d'applications passe du développement personnalisé à l'assemblage de composants logiciels pré-construits, pré-testés et réutilisables qui fonctionnent les uns avec les autres. Un développeur CBD peut assembler des composants pour construire un système logiciel complet.
Développement rapide d'applications (RAD)
RAD est un ensemble d'outils et de techniques qui peuvent être utilisés pour créer une application plus rapidement qu'avec les méthodes traditionnelles. Il ne remplace pas SDLC mais le complète, car il se concentre davantage sur la description des processus et peut être parfaitement combiné avec l'approche orientée objet.
Sa tâche est de créer rapidement l'application et de mettre en œuvre de manière incrémentielle la conception des exigences de l'utilisateur à l'aide d'outils tels que Visual Basic, Power Builder, etc.
Test incrémental
Le développement de logiciels et toutes ses activités, y compris les tests, sont un processus itératif. Par conséquent, cela peut être une affaire coûteuse si nous n'attendons de tester un produit qu'après son développement complet. Ici, des tests incrémentiels entrent en jeu dans lesquels le produit est testé à différentes étapes de son développement.