2010-2011POO 1 POO ? ■ Programmation Orientée Objet ■ Design Patterns ■ 9 cours, 1 examen ■ 8 TD/TP, 1 TP noté ■ Cours : Philippe Finkel,

Slides:



Advertisements
Présentations similaires
Supports de formation au SQ Unifié
Advertisements

Introduction au Génie Logiciel
Présentation AICHA REVEL INGENIEUR D’ÉTUDE STERIA DEPARTEMENT TRD
Developpement Process « Coding party !! » Tony Carnal Altran.
Projet de fin d'étude pour l'obtention du Diplôme Nationale d'Ingénieur en Informatique Conception et développement des modules de GED pour l’ indexation.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
1 Bienvenue! INF3723: Systèmes d’exploitation Luigi Logrippo
Recherche des fonctions pour la rédaction de l'expression fonctionnelle du besoin à l'aide d'un outil graphique : Le diagramme des inter-acteurs. Le diagramme.
F. Touchard ESIL Département d'Informatique, Réseaux et Multimédia Projets d'architecture 1 Projets d'archi : présentation et modalités.
Analyse fonctionnelle Classe de 3ème Projet de serre automatisée.
Comment ça marche ? Les sciences pour répondre aux questions de notre société Santé Alimentation Énergie Habitat Sciences de l'Ingénieur.
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
Juin 2016 Georges PETIT Pistes de réduction des coûts de revient des Matériels en GIRONDE.
Plan Présentation de 2TUP 2TUP, un processus UP 2TUP et UML Les apports de 2TUP 2TUP en détail 2TUP dans la pratique.
Objectifs de la formation en J8
Windows NT/2000/XP Enjeux et contraintes techniques
TECHNOLOGIE 6ème Équipe 4 Compte Rendu Définition Modélisation 3D :
Méthode « traditionnelle » : le cycle en V
Initiation à la conception des systèmes d'informations
Pourquoi et comment innover?
Ch.1 : Modélisation des systèmes par SysML
Stratégie de maintenance
Méthode « traditionnelle » : le cycle en V
Gestion de projet: Quelques notions clés
Cours de Préparation aux Etudes Supérieures PES
L’étude Chaos du Standish Group
PORTEFEUILLE DE COMPETENCES
Information et Système d’Information
Collège G. ONSLOW – LEZOUX Année scolaire 2015 – 2016 TECHNOLOGIE
COURS DE CIRCUITS INTEGRES PROGRAMMABLES www. massaleidamagoe2015
Informatique et Sciences du Numérique
Portefeuille des compétences
Collège G. ONSLOW – LEZOUX Année scolaire 2015 – 2016 TECHNOLOGIE
C’est ce que l’on veut obtenir la manière dont on va l’obtenir
3ème Livre 1 Rappel.
Maîtriser la qualité en conception
Génie–logiciel 3. Modèles du cycle de vie du logiciel Azeddine Chikh
Démarche qualité sur les chantiers du génie civil
Et la vie lycéenne Vous présentent.
Et la vie lycéenne Vous présentent.
Ou comment partager la connaissance
Août 2009.
CMMI Capability Maturity Model Integration « Importance de CMMI dans la gouvernance IT basée sur COBIT »
Modélisation avec UML 2.0 Partie II Diagramme de classes.
S.T.S. S.I.O. 1ère année La gestion de projets
Gestion de Projet BTS SI0 Gilles G. CASANOVA Professeur Agrégé d’Economie Gestion et Informatique Ingénieur Arts & Métiers Lycée Honoré d’Estienne d’Orves,
Benali Fellague Mouhamed
LA NECESSITE DE PROFESSIONNALISATION
Les cas d’utilisation 420-KE2-LG.
Le département QIF Qualité, Innovation, Fiabilité
Le Cycle SCrum SPRINT et release.
Introdution  Le test appartient à l'activité de Vérification et de Validation d'une application, qui consiste à déterminer si cette dernière a été développée.
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
ENSEIGNER L’ALGORITHMIQUE ET LA PROGRAMMATION AU COLLÈGE
La collecte d’informations Présenté par: Boudries. S.
Génie Logiciel DÉFINITION DES BESOINS. Cahier de charges: définition  Le Cahier des Charges (CDC) est un document par lequel la maîtrise d'ouvrage exprime.
Initiation à la conception des systèmes d'informations. Cours N°1 : introduction. Souheib Baarir Université Paris Ouest Nanterre.
LA CONCEPTION ET L ’AMÉLIORATIOND’UN SYSTÈME DE PRODUCTION SÉANCE 2 GOP.
Objectifs du module (1/2)
C’est ce que l’on veut obtenir la manière dont on va l’obtenir
Bienvenue! INF3723: Systèmes d’exploitation Luigi Logrippo
Réalisé par: SAMMARI RIM SOUID AHLEM AMROUCH HAFEDH
PAF Guillaume Martin - Fabrice Cizeron - Xavier Roulot
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
LE SYSTÈME D’INFORMATION LE (SI). Définition Qu’es ce que c’est une entreprise ■L’entreprise rassemble l’ensemble des activités d’une personnes ou d’un.
UX DESIGN User exprérience en anglais Expérience Utilisateur en français Concevoir, Créer, dessiner UX DESIGN, consiste à penser et concevoir un site web.
Transcription de la présentation:

POO 1 POO ? ■ Programmation Orientée Objet ■ Design Patterns ■ 9 cours, 1 examen ■ 8 TD/TP, 1 TP noté ■ Cours : Philippe Finkel, ■ TD/TP : John Chaussard

POO 2 Objectifs ■ Apprendre et maitriser les grands principes de la Programmation Orienté Objet ■ Apprendre et maitriser les principaux Design Pattern ■ Et aussi : Introduction au Génie Logiciel « Visiter » l'utilisation de Tests « Visiter » le refactoring

POO 3 POOurquoi ?? ■ La plupart des projets informatiques se passent mal ! dépassement important des délais dépassement important des coûts non conformité : ■ bugs, ■ limitations, ■ "flou" car comportement attendu "discutable" (imprécision, quiproquo,...) difficulté et coût important de de maintenance

POO 4 POOurquoi : qualité ■ Qualité insuffisante ! la qualité concerne bien sûr toute la chaîne : ■ expression de besoins ■ cahier des charges fonctionnelles ■ préparation des cas tests ■ organisation des recettes, ■ … qualité et l'implication des participants !!! qualité et efficacité des organisations Qualité du développement logiciel : conception, developpement, cycle de vie du logiciel Manque de : - Précision - Stabilité - Complétude

POO 5 Histoire... ■ crise du logiciel en baisse significative de la qualité des logiciels + puissance de calcul des ordinateurs => logiciels beaucoup plus complexes qu'auparavant ■ La création de ces nouveaux logiciels plus complexes Retards, dépassement de coût, - fiabilité, - performant Coût important de maintenance ■ baisse du coût du matériel informatique // augmentation du coût du logiciel. études sur les méthodes de travail adaptées à la complexité des logiciels contemporains => génie logiciel ■ l'utilisation des méthodes de génie logiciel se répand doucement dans l'industrie du logiciel.

POO 6 Vie d'un logiciel ■ POURQUOI: Besoins / exigences ■ QUOI: Cahier des charges fonctionnel ■ COMMENT : Architecture ■ COMMENT : Conception, Spécifications techniques ■ Dev + tests unitaires, + tests d'intégration ■ Maintenance corrective / évolutive ■ Réutilisation / évolutions majeures / refonte Peuvent être flous, et changer ! Maturité, évolution marché, contexte entreprise, réorganisation, … CE QU'ON NE VEUT PAS CHANGER LES FONDATIONS Peuvent être imprécis, irréalistes, incomplet, et changer ! Maturité, évolution marché, contexte entreprise, contexte réglementaire,... POO DP's

POO 7

POO 8 Architecture ■ Une description de niveau supérieur du logiciel: les composants principaux et la manière dont ils interagissent le découpage de plus haut niveau d'un système en parties/sous-systèmes/composants ■ Qui prend en compte le matériel, les autres logiciels et l'utilisateur, les canaux de communication ■ Sans toutes ces information une erreur fondamentale peut arriver ■ Du bon sens : « Prendre les décisions qui seront dures à changer »

POO 9 Conception ■ Définition générale : activité créatrice qui consiste à élaborer un projet ou une partie des éléments le constituant, en partant des besoins exprimés des moyens existants des possibilités technologiques dans le but de créer un produit ou un service

POO 10 Analyse / Conception fonctionnelle ■ Première étape de la conception Définit les fonctions/responsabilités des composantes d'un système Décrit leurs interactions fonctionnelles ■ Fonctions principales, sans préjuger des solutions « Lier » les deux parties et non « visser »... «réduire la hauteur de l'herbe » vs « tondre » ■ Prise en compte des contraintes Sécurité Respect de standard, de normes Fixée par le client...

POO 11 Conception descendante ■ Le problème global est décomposé en sous-problèmes, eux-même décomposés en opérations plus élémentaires jusqu'à obtenir la granularité souhaitée

POO 12 Conception ascendante ■ On commence par définir les fonctions les plus élémentaires, pour ensuite les utiliser et définir des fonctions de plus en plus spécifiques et complexes

POO 13 Conception de système ■ La conception de système inclut architecture matérielle architecture logicielle définition des composants définition des interfaces définition des données ■ Recherche de solutions

POO 14 Et alors ?? ■ La définition de conception ne nous donne pas d'idée sur comment en faire une... ■ Il faut traduire les exigences en solutions ■ Analyse = comprendre les exigences ■ Concevoir = construire la solution

POO 15 Deux AXES majeurs ! LE CLIENT LE MAINTENEUR VOUS ! Vous ! Vous ? (AMOA)

POO 16 Client / Mainteneur ■ Client Veut être satisfait Est celui qui paye ! N'est pas concerné par « comment » mais uniquement par « quoi » ■ Mainteneur Veut en faire le minimum ! SAIT changer = temps + bugs + régression +... => douleur VEUT minimiser les changements

POO 17 Les risques ■ Rigidité ■ Fragilité ■ Immobilité

POO 18 Changements... Dépendances ■ Besoins de changements => risques Immobilité : ne pas pouvoir les réaliser Rigidité : c'est dur ! Fragilité : ça casse un peu partout ■ Les risques sont liés aux impacts des changements Attention particulière aux dépendances

POO 19 Gestion des dépendances ■ Dans un projet, les points cruciaux sont les dépendances entre modules ■ Besoin de rigueur ■ Trois cibles Robustesse Flexibilité / Extensibilité Ré-utilisabilité

POO 20 Dépendance ■ A dépend de B Si B est absent, dysfonctionnement Si B est différent, dysfonctionnement Si B est modifié Recompilation ? Continuité Syntaxique ? Continuité Sémantique ?

POO 21 Se protéger de ces difficultés : ■ On fait un conception préalable ■ On code en objet ■ On utilise des interfaces ■ Elles utilisent des design patterns ■ On utilise UML

POO 22 Modules ■ Définition : Un module est une unité de code ■ De toute taille ■ À forte cohésion classe, fichier paquetage bibliothèque

POO 23 Module Ouvert ■ Un module dans lequel il est encore possible de réaliser des modifications ■ Ajout d'attributs, changement de code, ajout de classe publique... ■ C'est ce que demande le concepteur d'un module qui veut pouvoir : le corriger, l'étendre, l'adapter

POO 24 Module Fermé ■ Compilable, validé, testé ■ Un module utilisable par d'autres (ce qu'ils veulent) ■ La valeur d'un module est plus grande s'il est fermé avancement debugging réutilisation

POO 25 Un rêve : Ouvert ET Fermé ■ On aimerai à avoir des paquetages ouverts et fermés sécurisé extensible

POO 26 Modules ■ Les modules doivent correspondre à une unité syntaxique du langage fichier classe bibliothèque paquetage

POO 27 Paquetages ■ Les paquetages offrent les mêmes challenges que les classes lisibilité réutilisabilité ouverture/fermeture ■ Unité de programmation plus efficace pour l'organisation du travail et pour définir l'architecture logicielle Conception Cohésion Documentation Livraison Le bon niveau