Algorithmique et U.M.L (mise à niveau)
Download
Report
Transcript Algorithmique et U.M.L (mise à niveau)
CM1-1 : Initiation à la programmation
Mickaël Martin Nevot
V1.7.0
22/02/2014 18:42
Cette œuvre de Mickaël Martin Nevot est mise à disposition selon les termes de la
licence
licence Creative
Creative Commons
Commons Attribution
Attribution –- Pas d'Utilisation Commerciale –- Partage
Partage àà l'Identique
l'Identique
3.0 non transposé.
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
I. Présentation du cours
II. Init. à la prog.
III. Algo.
IV. Java
V. Java avancé
VI. Algo. avancée
VII. UML
VIII.Génie log.
Programmation orientée objet et Java
Mickaël Martin Nevot
1/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programme (informatique)
Enchaînement d’instructions
Écrit dans un langage de programmation
Exécuté par des appareils informatiques
Pour effectuer une tâche donnée
Cycle de vie :
Construction
Distribution
Utilisation (installation ?)
Abandon (évolution rapide du marché, des modes, etc.)
Programmation orientée objet et Java
Mickaël Martin Nevot
2/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
Conception :
Données à traiter
Méthode employée (algorithme)
Résultat (données en sortie)
Données à
traiter
Traitement
Programmation orientée objet et Java
Mickaël Martin Nevot
Résultat
3/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
Codage :
Contraintes d’architecture (choix du langage ?)
Langage de programmation
Transformation du code source :
Compilation ou interprétation
Test (important !)
Programmation orientée objet et Java
Mickaël Martin Nevot
4/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
Conception
Codage
Transformation du code source
Test
Notes
saisies
Saisie
clavier
Calculer
Moyenne
Moyenne
affichée
Affichage
écran
Lire et stocker
les données
notes
Additionner les
données notes
et stocker la
donnée somme
Diviser la donnée
somme
et stocker la
donnée moyenne
Programmation orientée objet et Java
Mickaël Martin Nevot
Afficher la
donnée
moyenne
5/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Historique
1842 : Ada Lovelace et Charles Babbage
1936 : machine de Turing / invention de la programmation
1950 - 1980 : cartes perforées
1954 : Fortan et système d’exploitation
1970 : programmation structurée
1980 – 1990 : programmation orientée objet (POO)
Programmation orientée objet et Java
Mickaël Martin Nevot
6/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Environnement de programmation
Éditeur
Compilateur :
Vérifier la syntaxe
Traduire en langage machine
Code source
Compilateur
Programmation orientée objet et Java
Mickaël Martin Nevot
Code binaire
7/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Qu’est-ce qu’un objet ?
Code source traditionnel
Code source orienté objet
Programmation orientée objet et Java
Mickaël Martin Nevot
8/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Qu’est-ce qu’un objet ?
Code source traditionnel
Code source orienté objet
« Un objet est une capsule logicielle oblative avec un tropisme conatif dont
l'hétéronomie est la marque de la durée, de l'éphémère et de la hoirie »
— Serge Miranda
Programmation orientée objet et Java
Mickaël Martin Nevot
9/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Pourquoi la POO ?
Diminuer le coût d’un logiciel
Faciliter la conception et l’évolution du code
Augmenter la durée de vie d’un logiciel
Augmenter la réutilisabilité d’un logiciel
Augmenter la facilité de maintenance d’un logiciel
Conception d’un logiciel à la manière
de la fabrication d’une voiture
Programmation orientée objet et Java
Mickaël Martin Nevot
10/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Principe de la POO
Communication inter-objets par messages
À la réception d’un message :
Appel d’une méthode qui modifie son état
Appel d’une méthode qui envoie un message à son tour
Ma voiture
démarre
Programmation orientée objet et Java
Mickaël Martin Nevot
Le moteur
11/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO
Paradigme (≠ méthodologie)
Concept :
Objet :
État (attributs)
Comportement (méthodes)
Identité
Encapsulation
Héritage
Polymorphisme
Langage de programmation :
Java, C++, Ada, PHP, C#, Objective C, Python, etc.
Programmation orientée objet et Java
Mickaël Martin Nevot
12/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Objet et classe
Objet : un concept, une idée/entité du monde physique
Exemples : voiture, étudiant, chat, fenêtre, forme, etc.
Classe : regroupe les objets de mêmes comportements
Instancier : fabriquer un exemplaire d'un élément à partir
d'un modèle qui lui sert en quelque sorte de moule
Un objet est une instance de classe
Réification : permet de transformer ou à transposer un concept
en une entité informatique
Une classe représente une responsabilité
Programmation orientée objet et Java
Mickaël Martin Nevot
13/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
État et comportement
État :
Défini par l’ensemble des attributs
Attribut, variable d’instance, donnée membre :
Variable spécifique à l’objet
Comportement :
Défini par l’ensemble de méthodes
Méthode : fonctions spécifique à l’objet
Méthodes :
Constructeur : appelé à la création de l’objet
Destructeur : appelé à la destruction d’un objet
Méthode abstraite : méthode sans code
Accesseurs et mutateurs : sert de mandataire d’accès à l’état de
l’objet depuis l’extérieur de celui-ci
Programmation orientée objet et Java
Mickaël Martin Nevot
14/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO et magie
Programmation orientée objet et Java
Mickaël Martin Nevot
15/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO et magie
Programmation orientée objet et Java
Mickaël Martin Nevot
16/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO : deux aspects
Programme en cours d’écriture :
Ensemble de classes
Chaque classe a des attributs et des méthodes
Programme en cours d’exécution (processus) :
Ensemble d’objets
Chaque objet a son état courant et un comportement
Programmation orientée objet et Java
Mickaël Martin Nevot
17/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Encapsulation
Association de variables et fonctions dans une même entité
L'objet est vu de l'extérieur comme une boîte noire ayant
certaines propriétés et ayant un comportement spécifié
Variables
Attribut
Variables
Attribut
Variables
Attribut
Méthode
Fonction
Méthode
Fonction
Programmation orientée objet et Java
Mickaël Martin Nevot
18/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Encapsulation : accessibilité
Concerne : classe, constructeur, attribut et méthode
Visibilité :
Publique : accessible de partout et sans aucune restriction
Protégée : accessible aux classes du module (ou paquetage) et
à ses classes filles
Privée : accessible uniquement au sein de sa classe
Accesseurs (getters) / mutateurs (setters) :
Permet de récupérer/modifier la valeur d’un attribut avec une
visibilité restreinte grâce à une méthode
Programmation orientée objet et Java
Mickaël Martin Nevot
19/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Héritage
Construction d’une classe à partir d’autres classes
en partageant leurs attributs et méthodes
Spécialisation (ou généralisation), enrichissement
Réutilisation
Vehicle
Redéfinition
Car
Bike
ER Vehicle
Ambulance
Programmation orientée objet et Java
Mickaël Martin Nevot
20/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Classes et sous-classes
B hérite de A
A est la classe mère, B la classe fille
A est la super-classe de B
B est une sous-classe de A
Un objet de type B est aussi un objet de type A
Un objet de type A n’est pas un objet de type B
A
B
Programmation orientée objet et Java
Mickaël Martin Nevot
21/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Notions générales
Opérateurs
Données :
Variables ≠ attributs
Constantes
Valeurs littérales ("hello!", 3, 2.75, true)
Expressions (et expressions « parenthésées »)
Affectation ≠ condition
Instructions
Fonction ≠ procédure ≠ méthode (signature)
Paramètres (formels) ≠ arguments (paramètres effectifs)
Exécution séquentielle
Programmation orientée objet et Java
Mickaël Martin Nevot
22/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Aller plus loin
Prototype
Mixin
Trait
Programmation orientée objet et Java
Mickaël Martin Nevot
23/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Crédits
Auteur
Mickaël Martin Nevot
[email protected]
[email protected]
Carte
Cartede
devisite
visiteélectronique
électronique
Relecteurs
Cours en ligne sur : mickael.martin.nevot.free.fr
Programmation orientée objet et Java
Mickaël Martin Nevot
24/24