Introduction au Génie Logiciel



Documents pareils
Université de Bangui. Modélisons en UML

GL Processus de développement Cycles de vie

UML (Diagramme de classes) Unified Modeling Language

GL Le Génie Logiciel

IFT2255 : Génie logiciel

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

I4 : Bases de Données

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Urbanisation des systèmes d information

GOL502 Industries de services

Propriété intellectuelle en informatique

Le Guide Pratique des Processus Métiers

Les diagrammes de modélisation

Patrons de Conception (Design Patterns)

Le génie logiciel. maintenance de logiciels.

1 Introduction. Business Intelligence avec SharePoint Server 2010

Projet Active Object

Pré-conditions : Evénement déclencheur : le client souhaite un virement. Description du déroulement du cas : Description des Use cases

Évaluation et implémentation des langages

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

Chapitre 2. Classes et objets

Solutions industrielles pour l ingénierie des systèmes complexes

Cedric Dumoulin (C) The Java EE 7 Tutorial

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Chapitre I : le langage UML et le processus unifié

Business Intelligence avec SQL Server 2012

Application web de gestion de comptes en banques

Génie Logiciel avec Ada. 4 février 2013

GL Ingénierie des Exigences

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Une méthode d apprentissage pour la composition de services web

GPC Computer Science

Comment consolider des données

Programmation Orientée Objet

Le langage UML : Les cas d utilisation

alg - Classes, instances, objets [oo] Exercices résolus

C++ - Classes, instances, objets [oo] Exercices résolus

Diagrammes de Package, de déploiement et de composants UML

Solutions informatiques (SI) Semestre 1

Dafoe Présentation de la plate-forme UIMA

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

Introduction aux systèmes temps réel. Iulian Ober IRIT

Conception des bases de données : Modèle Entité-Association

Logiciel Libre Cours 3 Fondements: Génie Logiciel

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

P s a sep e o p r o t S e S r e vi v ce c s Fabrice Dubost

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

CORBA. (Common Request Broker Architecture)

Conception, architecture et urbanisation des systèmes d information

Utiliser un proxy sous linux

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

PANORAMA DES MENACES ET RISQUES POUR LE SI

Description de la formation

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Introduction aux Bases de Données Relationnelles Conclusion - 1

SIO Page 1 de 5. Applications Web dynamiques. Prof. : Dzenan Ridjanovic Assistant : Vincent Dussault

UNIVERSITÉ DE LORRAINE Master MIAGE (Méthodes Informatiques Appliquées à la Gestion des Entreprises)

Méthodes d évolution de modèle produit dans les systèmes du type PLM

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

REMOTE DATA ACQUISITION OF EMBEDDED SYSTEMS USING INTERNET TECHNOLOGIES: A ROLE-BASED GENERIC SYSTEM SPECIFICATION

PHP 5.4 Développez un site web dynamique et interactif

Bases de données relationnelles : Introduction

Guichet automatique de banque

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Synergies entre Artisan Studio et outils PLM

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Master CCI. Compétences Complémentaires en Informatique. Livret de l étudiant

Rational Unified Process

Le pilotage des collaborations et l interopérabilité des systèmes d information Vers une démarche intégrée

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

WINDOWS SHAREPOINT SERVICES 2007

M1 : Ingénierie du Logiciel

Master Informatique Aix-Marseille Université

Introduction aux concepts d ez Publish

Processus d Informatisation

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Générer du code à partir d une description de haut niveau

Information utiles. webpage : Google+ : digiusto/

UML est-il soluble dans les méthodes agiles?

Nouvelle approche de validation Novo Nordisk

Embases pour raccordement G1/8 - G1/4

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Bases de données avancées Introduction

Logiciel Libre Cours 9 Modèles Économiques

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

ÉVALUATION DES RÉTROACTIONS DONNÉES PAR UN LOGICIEL D AIDE À L APPRENTISSAGE DE L ÉCRITURE MANUSCRITE

Corporate Cards. Embarquement immédiat pour l Europe

L enseignement de méthodes agiles dans un contexte d apprentissage actif

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Formula Negator, Outil de négation de formule.

Métriques de performance pour les algorithmes et programmes parallèles

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

OCL - Object Constraint Language

CEG4566/CSI4541 Conception de systèmes temps réel

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Workflow et Service Oriented Architecture (SOA)

Transcription:

Introduction au Génie Logiciel Lydie du Bousquet Lydie.du-bousquet@imag.fr En collaboration avec J.-M. Favre, I. Parissis, Ph. Lalanda

Qu est-ce que le logiciel? programme, ensemble d instructions

Caractéristiques du logiciel Abstrait Difficile à représenter/visualiser Malléable A priori facile à modifier/corriger mais Souvent complexe et de grande taille Besoin de gérer la complexité «Effets de bord» Mystérieux pour les utilisateurs «ça bogue», «sais pas comment ça marche»

Qu est-ce que le génie logiciel?

Qu est-ce que le génie civil? Ensemble de techniques concernant les constructions civiles Conception Réalisation Exploitation Réhabilitation d ouvrages Répondre aux besoins de la société, Tout en assurant la sécurité du public Et la protection de l environnement.

Qu est-ce que le génie logiciel? Ensemble des techniques concernant les constructions de logiciels Conception Réalisation Exploitation Réhabilitation d ouvrages Maintenance Répondre aux besoins des utilisateurs, Tout en assurant leur sécurité Et la protection de l environnement.

Génie Logiciel (Sommerville) An engineering discipline concerned with all aspects of software production from early stages of specification to maintaining the system after it has gone into use The purpose is to rigorously applies methods and techniques to produce timely, quality, satisfying software

Comme pour le Génie civil, en GL, il existe des méthodes Pour récolter les besoins Estimer les coûts Concevoir, développer, valider Pour organiser les différentes étapes Planifier/suivre le travail

Une question de bon sens Récolter les exigences Parce qu il faut savoir ce que le client veut avant de commencer Exprimer les besoins Parce qu il faut s assurer que l on a compris Concevoir, développer Valider, documenter Parce qu il faut montrer que le travail a été bien fait Installer, Former, Maintenir Parce que le système va être utilisé

Au programme de GL2 Pour récolter les besoins Estimer les coûts Concevoir, développer, valider Organiser les différentes étapes Planifier/suivre le travail

Au programme de GL1 : outils de base Notion de conception objet Notion de modèle Langage pour exprimer les modèles (UML) Travail d analyse

Approche orientée-objet

Plan Notion d objet Principe d encapsulation Principe de classification

Pourquoi l approche objet Depuis 1960, plus en plus de programmes Beaucoup de similarités Vers un besoin de réutilisation Programmes non ou peu structurés (assembleur) Blocs, fonctions/procédures, modules, packages Objets Composants, services Patrons (de conception, d architecture, )

Différentes approches Approche fonctionnelle Orientée traitement Diviser pour régner Réutilisation et évolution difficiles Approche objet Objet = données + traitements associés Monde réel => modèle du monde Réutilisation et évolution a priori simplifiée

«Orienté objet» Représenter un système comme un ensemble d objet autonomes qui interagissent par messages Chaque objet représente un concept a une identité unique a un état propose des «services» = méthodes exécute un service

Exemples d objets Pierre Marie Paul Le compte de Pierre Le compte de Pierre et de marie La carte bancaire de Paul Le compte de Paul le distributeur La réserve de billets la banque

Principe de réification Matérialiser un concept par un objet Permet de manipuler le concept En mathématique, on choisit, puis on nomme des variables : «soit x le nombre de pommes» Un concept abstrait L événement «à 10h45, la carte a été introduite» Une relation entre 2 objets «Jean possède la voiture 555 BBB 38»

Attributs et méthodes Chaque objet A un état caractérisé par la valeur de ses attributs Propose des services sous la forme de méthodes La banque numéro = 2453 nom = «banque du sud» CréerUnCompte SupprimerUnCompte Le compte de Paul numéro = 88219 solde = 2000 découvertmax=-500 ConsulterSolde Créditer Débiter Le compte de Pierre numéro = 88213 solde = 10 découvertmax=-100 ConsulterSolde Créditer Débiter

Envoi de message Les objets interagissent par envoi de messages

Principe d encapsulation Un objet n expose jamais ses attributs directement Solde d un compte ne peut pas être modifié par un autre objet directement Il propose des méthodes pour le faire Consulter, créditer, débiter Il indique les méthodes qu il offre (interface) Le compte de Paul numéro = 88219 solde = 2000 découvertmax=-500 ConsulterSolde Créditer Débiter Mais cache la réalisation concrète des méthodes Les autres objets ne connaissent pas le programme (code) qui effectue le débit

Grâce à l encapsulation Un client ne connaît que l interface L objet est plus facile à comprendre Il suffit de comprendre les commandes du magnétoscope à réutiliser Connexion avec les autres appareils ok (si l interface est bien faite) Il est protégé contre les mauvaises utilisations Enlever La K7 alors que l appareil est en lecture

Grâce à l encapsulation La réalisation de l objet peut-être modifiée sans impact sur le client On peut améliorer l objet Remplacer un composant Mettre de nouvelles sorties On peut le remplacer par un équivalent Changer de magnétoscope

Principe de classification Regrouper les objets similaires en classes Une classe est un modèle, un moule Une classe est caractérisée par ses attributs ses méthodes Chaque objet est une instance d une classe Une classe permet d instancier plusieurs objets

Classes vs Objets «instance de» Compte numéro solde découvertmax ConsulterSolde Créditer Débiter «instance de» Le compte de Paul numéro = 88219 solde = 2000 découvertmax=-500 ConsulterSolde Créditer Débiter Le compte de Pierre numéro = 88213 solde = 10 découvertmax=-100 ConsulterSolde Créditer Débiter

Exemple de classification Client Compte Banque Distributeur classes objets Pierre Le compte de Pierre une banque Marie Paul Le compte de Pierre et de marie Le compte de Paul le distributeur D28 le distributeur D11

Avantages du principe de classification Modèle plus simple Moins de classes que d objets Les objets d une classe sont similaires L ensemble de classe ne change pas à l exécution Modèle plus général Indépendant de l état et du nombre des objets Modèle réutilisable Une classe est réutilisable

Relations entre les classes Description de relations au niveau du modèle Spécialisation/généralisation Un compte courant est un cas particulier de compte Composition / agrégation Un relevé de compte est composé de lignes Association Tout compte est associé à au plus une banque

Concepts essentiels Objet Attribut Méthode Classe Réification Encapsulation Classification