40
Ingénierie du Logiciel Master 1 Informatique 4I502 Cours 1 : Introduction Génie Logiciel Yann Thierry-Mieg [email protected] page 1

Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Ingeacutenierie du Logiciel

Master 1 Informatique ndash 4I502

Cours 1 Introduction Geacutenie Logiciel

Yann Thierry-Mieg

YannThierry-Mieglip6fr

page 1

I Meacutethode de Deacuteveloppement

2

Du besoin informel agrave la solution

bull Besoin informel

laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me

deacuteplacer sans permis de conduire raquo

bull Solution Google Car

3

Le besoin drsquoune meacutethode

bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de

deacuteveloppement limiteacute

bull Exo de TME en binome page ou formulaire web hellip

bull 1 Ouvrir IDE 2 Coder

bull Large echelle communicant critique temps reel embarqueacute

reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip

bull Nombreuses sources de complexiteacute

bull Deacutefis techniques

bull Deacutefis drsquoorganization

4

Complexiteacute technique

Solution complexe

bull Interfaces composants physique embarqueacute

bull Temps reacuteel

bull Connecteacute accegraves donneacutees carte

bull Synchronisation camerasdirection

bull Interface homme machine

bull Langages et technologiesframework techniques multiples

bull Prise de deacutecision systegraveme critique

bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de

sous-systegravemes heacuteteacuterogegraveneshellip

La solution ne se limite pas au code consideacuterer lrsquoensemble des

documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel

systegraveme

5

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 2: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

I Meacutethode de Deacuteveloppement

2

Du besoin informel agrave la solution

bull Besoin informel

laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me

deacuteplacer sans permis de conduire raquo

bull Solution Google Car

3

Le besoin drsquoune meacutethode

bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de

deacuteveloppement limiteacute

bull Exo de TME en binome page ou formulaire web hellip

bull 1 Ouvrir IDE 2 Coder

bull Large echelle communicant critique temps reel embarqueacute

reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip

bull Nombreuses sources de complexiteacute

bull Deacutefis techniques

bull Deacutefis drsquoorganization

4

Complexiteacute technique

Solution complexe

bull Interfaces composants physique embarqueacute

bull Temps reacuteel

bull Connecteacute accegraves donneacutees carte

bull Synchronisation camerasdirection

bull Interface homme machine

bull Langages et technologiesframework techniques multiples

bull Prise de deacutecision systegraveme critique

bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de

sous-systegravemes heacuteteacuterogegraveneshellip

La solution ne se limite pas au code consideacuterer lrsquoensemble des

documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel

systegraveme

5

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 3: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Du besoin informel agrave la solution

bull Besoin informel

laquo Je souhaite un veacutehicule sans chauffeur qui me permette de me

deacuteplacer sans permis de conduire raquo

bull Solution Google Car

3

Le besoin drsquoune meacutethode

bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de

deacuteveloppement limiteacute

bull Exo de TME en binome page ou formulaire web hellip

bull 1 Ouvrir IDE 2 Coder

bull Large echelle communicant critique temps reel embarqueacute

reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip

bull Nombreuses sources de complexiteacute

bull Deacutefis techniques

bull Deacutefis drsquoorganization

4

Complexiteacute technique

Solution complexe

bull Interfaces composants physique embarqueacute

bull Temps reacuteel

bull Connecteacute accegraves donneacutees carte

bull Synchronisation camerasdirection

bull Interface homme machine

bull Langages et technologiesframework techniques multiples

bull Prise de deacutecision systegraveme critique

bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de

sous-systegravemes heacuteteacuterogegraveneshellip

La solution ne se limite pas au code consideacuterer lrsquoensemble des

documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel

systegraveme

5

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 4: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Le besoin drsquoune meacutethode

bull laquo Petit raquo programme isoleacute non critique jetable dureacutee de

deacuteveloppement limiteacute

bull Exo de TME en binome page ou formulaire web hellip

bull 1 Ouvrir IDE 2 Coder

bull Large echelle communicant critique temps reel embarqueacute

reacuteutilisable coucirct de deacuteveloppement en dizaines drsquohommeanhellip

bull Nombreuses sources de complexiteacute

bull Deacutefis techniques

bull Deacutefis drsquoorganization

4

Complexiteacute technique

Solution complexe

bull Interfaces composants physique embarqueacute

bull Temps reacuteel

bull Connecteacute accegraves donneacutees carte

bull Synchronisation camerasdirection

bull Interface homme machine

bull Langages et technologiesframework techniques multiples

bull Prise de deacutecision systegraveme critique

bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de

sous-systegravemes heacuteteacuterogegraveneshellip

La solution ne se limite pas au code consideacuterer lrsquoensemble des

documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel

systegraveme

5

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 5: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Complexiteacute technique

Solution complexe

bull Interfaces composants physique embarqueacute

bull Temps reacuteel

bull Connecteacute accegraves donneacutees carte

bull Synchronisation camerasdirection

bull Interface homme machine

bull Langages et technologiesframework techniques multiples

bull Prise de deacutecision systegraveme critique

bull Systegraveme de systegravemes le systegraveme est un assemblage complexe de

sous-systegravemes heacuteteacuterogegraveneshellip

La solution ne se limite pas au code consideacuterer lrsquoensemble des

documents et artefacts neacutecessaires pour le deacuteveloppement drsquoun tel

systegraveme

5

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 6: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Chef de Projet avancement projet affectation ressources

6

Diagramme de Gantt Kanban

Burndown Chart

Images wikipedia

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 7: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Dimension Humaine

bull Architecte architecture logicielle et mateacuterielle composants

interactions

7

Vision architecturaleComposants Instanciation

API InterfacesSeacutequences interactions

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 8: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Dimension Humaine

Deacuteveloppeur reacutealiser le code

8

Spec Fonctionnelle

API Interfaces

Tests

Code ()

Conception O-O

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 9: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Dimension Humaine

Administrateur Base de Donneacutee entretenir et geacuterer les donneacutees

optimiser les accegraves

9

EntityRelationship

Requecirctes et volumes perfs

Requecirctes SQL

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 10: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Dimension Humaine

Intervenants Divers =gt visions diverses

bull Testeur deacutefinir et executer les tests

o Specifications fonctionnelle tests api

bull ClientInvestisseur vue drsquoensemble deacutefinition du besoin

o use case tests de validation maquettesprotos

bull Designer ergonomie graphismes

o charte graphique maquettes use case

bull Responsable qualiteacute suivi et mesure de la qualiteacute

o Normes qualiteacute meacutetriques instruments

hellip

La DIVERSITE = multitude de points de vue deacutedieacutes agrave une utilisation

particuliegravere

On ne peutdoit pas chercher agrave tout fusionner

Le code nrsquoest qursquoun artefact parmi drsquoautres peu abstrait et inadapteacute pour

beaucoup drsquointervenants10

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 11: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

La meacutethode de deacuteveloppement objectifs

La meacutethode a pour but drsquoameacuteliorer

bull La productiviteacute des eacutequipes

bull Time to market deacutelais coucircts

bull La qualiteacute des logiciels produits

bull Portabiliteacute robustesse seacutecuriteacutehellip

Souvent une opposition entre ces deux critegraveres

Quelles qualiteacutes doit posseacuteder le logiciel

11

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 12: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Qualiteacutes du logiciel

12Source ISO20500com

Cf aussi ISO9126

ISOIEC 25010 categorization of

software quality requirements

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 13: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Qualiteacutes du logiciel

De nombreuses qualiteacutes souhaitables selon le domaine drsquoapplication

et les contraintes

La qualiteacute est un meacutetier en soi (peu abordeacute dans lrsquoUE)

bull Meacutetrique indicateur quantitatifs aidant agrave eacutevaluer lrsquoeacutevolution drsquoune

dimension de la qualiteacute logicielle

bull Loc locclasse classespackage profondeur drsquoheacuteritage couverture de test

bull Maitrise du risque identification classification mesures de

mitigationhellip

Dans lrsquoUE on recherche en particulier

bull Portabiliteacute minimiser les hypothegraveses sur la plateforme technique

permettre la reacutealisation sur toute plateforme

bull Reacuteutilisabiliteacute modulariteacute accent sur la construction drsquoune

application agrave lrsquoaide de composants reacuteutilisables

bull Aspects non fonctionnels peu abordeacutes performance seacutecuriteacutehellip13

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 14: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Composantes drsquoune meacutethodeLa deacutemarche deacutecrit les actions agrave mener

leur enchaicircnement et les dispositifs

neacutecessaires pour atteindre les objectifs

du projet

La conduite est la technique de preacutevision

et drsquoordonnancement des travaux Elle

permet le suivi du projet

Lrsquoapproche est la technique de

modeacutelisation utiliseacutee au cours du

projet

La technique de modeacutelisation comprend

bull un formalisme

bull une heuristique

Le formalisme offre une faccedilon de

srsquoexprimer du texte des modegraveles

Lrsquoheuristique est la technique de

deacutecouverte crsquoest la maniegravere de

trouver et de formuler les eacuteleacutements

neacutecessaires au modegravele

14

DEMARCHE APPROCHE

Deacutecoupage du

projet en phases

deacutefinition du

qui fait quoi

Techniques de

repreacutesentation

de modeacutelisation

CONDUITE

Techniques de preacutevisions

dordonnancement et de

suivi

Peu abordeacute dans lrsquoUE (cours 28)

Choix UML

Composants

Objets

Cycle en V

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 15: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Meacutethode

Qursquoattend-t-on drsquoune meacutethode

bull Quand

bull Deacutecoupage en eacutetapes maniegravere drsquoaborder le problegraveme de deacutecouper le

raisonnement

bull Qui

bull Deacutefinition des rocircles des intervenants organisation

bull Comment

bull Strateacutegies et outils de modeacutelisation preacuteconiseacutes traitements neacutecessaire pour

chaque eacutetape

bull Quoi

bull Speacutecification des objectifs et besoins traccedilabiliteacute des exigences

Quelles sont les qualiteacutes rechercheacutees drsquoune meacutethode

bull Gains de production Gains de qualiteacute Reacuteduction des coucircts

Gestion des risques

15

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 16: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Meacutethode de Deacuteveloppement une deacutefinition

Un meacutethode doit expliquer quand comment qui doit faire des modegraveles et des scheacutema

(lesquels dans quel objectif agrave quelle granulariteacute drsquoabstraction) pour concevoir une

application

Une meacutethode doit permettre de bons reacutesultats (gain de productiviteacute)

Elle doit ecirctre facile agrave apprendre et agrave mettre en œuvre

Toute meacutethodologie de deacuteveloppement a pour objectif de produire un logiciel reacutepondant au

mieux au cahier des charges tout en ameacuteliorant la productiviteacute

Elle deacutefinit

1048707 des eacutetapes (eg Analyse Tests Validation Conceptionhellip) le plus souvent

aussi une deacutecoupe en iteacuterations plus ou moins longues

1048707 des moyens (eg diagrammes UML tests fiche deacutetailleacutee geacuteneacuteration de

codehellip)

1048707 des produits intermeacutediaires du deacuteveloppement (cagraved les deacutelivrables eg

document drsquoanalyse tests de validationhellip)

Elle peut aussi deacutefinir une structure geacuteneacuterale pour la gestion de projet (petites ou grosses

eacutequipes organisation du travailhellip

16

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 17: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

II Modeacutelisation

17

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 18: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Retour sur la diversiteacute

Diffeacuterents intervenants

bull Chef de projet (avanceacutee du projet)

bull Deacuteveloppeur (meacutethode algo deacutependance aux API)

bull Testeur (deacutefinition de tests exeacutecution de tests)

bull Deploiement (mise en production tests de monteacutee en charge)

bull Qualiteacute (respect des charte meacutetriques)

bull CLIENT (besoin satisfait)

Points de vue diffeacuterents

Niveaux drsquoabstraction diffeacuterents

Pourtant tout cela doit ecirctre coheacuterent

Limitation des langages de programmation

1 seul niveau drsquoabstraction

1 seul niveau de diversiteacute

Les modegraveles offrent une solution pour aider agrave maintenir la coherence

tout en acceptant la diversiteacute

18

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 19: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Qursquoest-ce qursquoun modegravele

Modegravele = repreacutesentation simplifieacutee du reacuteel

Contraintes de repreacutesentation facilitant le passage au logiciel 19

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 20: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Pourquoi Modeacuteliser

20

Entre utilisateurs etinformaticiens

Entre informaticiens

analystes concepteursdeacuteveloppeursmainteneurs

Qualiteacute des modegraveles

coheacuterenceexhaustiviteacute couverturepertinenceeacuteconomie

Le premier but de la modeacutelisation

est de garantir

la bonne compreacutehension

entre les acteurs

COMMUNIQUER

CONTROLER

Le second but de la modeacutelisation

est de fournir une description

rigoureuse et controcirclable

Mais aussi avec laquo soi raquo bull mieux comprendre le problegraveme

bull documenter

Support outilleacute geacuteneacuteration de code de documentation

Analyses du modegravele (consistance coheacuterence)

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 21: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Communiquer et Controcircler

Comment atteindre ces objectifs

Parmi les critegraveres que lon cherche agrave garantir en utilisant une meacutethode

de modeacutelisation on peut citer

bull la coheacuterence toutes les repreacutesentations qui composent le modegravele

sarticulent entre elles et ne se contredisent pas

bull lrsquoexhaustiviteacute et la couverture le modegravele contient toute

linformation neacutecessaire pour atteindre les buts fixeacutes

bull la pertinence toutes les informations rassembleacutees dans le modegravele

ont leur utiliteacute

bull lrsquoeacuteconomie du modegravele les repreacutesentations sont aussi concises que

le permettent les critegraveres preacuteceacutedents Le modegravele possegravede leacuteleacutegance

et la structure qui facilite son exploitation

21

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 22: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Coheacuterence et Diversiteacute

Il y a un fort besoin de coheacuterence

Comme toutes les informations visent agrave deacutevelopper une application

il serait inteacuteressant de tout centraliser

Mais il ne faut pas uniformiser

Chaque intervenant a sa faccedilon propre de travailler

On ne peut pas donner un langage de programmation agrave un client

22

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 23: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Modegravele et Diagramme

Modegravele

Lrsquoensemble des informations permettant la conception le

deacuteveloppement et la maintenance du logiciel (diagrammes code

tests documentation hellip)

Diagramme ou Vue

Sous ensemble des informations du modegravele (filtreacute) preacutesenteacutees selon

un certain point de vue (selon un axe servant un objectif) 23

Deacuteveloppeur Analyste Meacutetier

Modegravele

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 24: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Objet Composant Service

24

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 25: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Orienteacute-Objet

Concepts cleacute facilitant la construction drsquoapplications de grande taille

maintenables

Geacuteneacuterations de langages

1 Primitif asm

Pas de structure GOTO

2 Proceacutedural C Pascal

Structure de controcircle fonctions tableaux struct

3 Orienteacute Objet Java C++ hellip

Donneacutees (struct) et fonctions sont regroupeacutes en uniteacutes encapsulation

4 Dynamique Python Perl JS hellip

Typage faible (scalaire list hash) reflexion avanceacutee

En parallegravele courant fonctionnel (lisp -gt ML -gt Haskellhellip)

aujourdrsquohui assez bien inteacutegreacute dans les langages OO (lambda)25

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 26: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

La classe

La classe

Cateacutegorie ou type

drsquoobjet

Munie de responsabiliteacutes

mateacuterialiseacutees par unedes

interfaces

Deacutefinie par ses attributs

et meacutethodes

Exemple classe

locomotive

Locomotive

- modele- puissance- vitesse- couleur

+ allerEnAvant( )+ allerEnArriere( )+ demarrer( )+ stopper( )+ accelerer( )

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 27: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Lrsquoobjet instance drsquoune classe

bull Les instances drsquoobjets sont

deacutefinies par la valeur de leurs

attributs

bull Les traitements qursquoon peut

reacutealiser sur ces attributs sont

deacutefinis au niveau de la classe

agrave travers les meacutethodes

Un objet = instance drsquoune classe

dans un eacutetat particulier

-couleur= rouge

-puissance= 18000

-vitesse= 230

-modele= AL2119

Loco21Locomotive

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 28: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

L rsquoobjet notion drsquoencapsulation

Services publics

Donneacuteesproteacutegeacutees

Environnement

Messages

OBJET

Substituabiliteacute du noyau sans impacter les clients

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 29: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

L rsquoabstraction

La modeacutelisation OO pousse agrave

gagner en abstraction

Une application est composeacutee

drsquointeractions complexes entre

composants

Lrsquoencapsulation permet de faire

abstraction de lrsquoimpleacutementation

effective des comportements du

systegraveme pour reposer sur la notion

drsquointerface

Une interface deacutefinit des

responsabiliteacutes

indeacutependamment de la faccedilon

dont elles sont reacutealiseacutees

+demarrer()

+accelerer()

+freiner()

Locomotive

ltltabstractgtgt

LocomotiveDiesel LocomotiveElectrique

ltltinterfacegtgt

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 30: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Objets vs Composants

bull Lrsquoorienteacute-objet preacutesente de nombreuses qualiteacutes MAIS

bull Uniteacute de reacuteutilisation meacutediocre

bull La classe ne vient pas seule package entier

bull Heacuteteacuterogeacuteneacuteiteacute mal geacutereacutee dans un modegravele OO pur

bull SGBD relationnel langages divers

bull Au-delagrave de lrsquoobjet

bull Modegraveles de composant

bull Preacutesente une API ou interface pour communiquer avec lrsquoexteacuterieur

bull Uniteacute de reacuteutilisation et de deacuteploiement

bull Support de plateformes heacuteteacuterogegravenes

bull Support de plateformes distribueacutees

bull Vision composant promulgueacutee dans lrsquoUE (arc 2)

bull Au-delagrave du composant

bull SOA Service Oriented Architecture SaS Software as a Service

bull Compatible avec la vision orienteacute-composant

bull Application = choreacutegraphie entre composants dont on ne connait que les API

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 31: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Unified Modeling Language

UML

Une notation standard pour repreacutesenter des

modegraveles drsquoartefacts logiciels

31

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 32: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

UML historique

bull 1998 10 agglomeacuteration des diagrammes OMT (~ classes) OOD (~seacutequences)

et OOSE (~use case) premier standard OMG

bull 1998-2003 eacutevolution rapide vers UML14 ajout de diagrammes seacutemantique

encore vague repreacutesentation interne mal standardiseacutee (eacutechanges entre outils )

bull 2005-2010 UML 20-gt24 refonte complegravete de lrsquoinfrastructure publication

drsquoun meacuteta-modegravele de reacutefeacuterence drsquoUML seacutemantique mieux preacuteciseacutee Evolution

rapide nombreux soucis reacuteveacuteleacutes par lrsquointeacutegration

bull 2020 UML 251 (depuis 2017) le langage est stable 14 diagrammesvues

UML est un standard industriel (OMG et ISO) =gt communiquer++ 32

Meacutethode OOD

BOOCH

Modeacutelisation dynamique

Meacutethode OOSE

JACOBSON

Cas drsquoutilisation

Meacutethode OMT

RUMBAUGH

Modeacutelisation statique

UML

Unified Modeling Language

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 33: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Selon temps disponible

Diagramme de classe

bull Structure (attributs opeacuterations) associations typage

bull Expression Add Constante eval()int + impleacutementations

Diagramme drsquoobjet

bull Instances des classes dans une configuration particuliegravere snapshot

de lrsquoapplication

bull 3+2

Diagramme de Seacutequence

bull Axe temps (vertical) interactions entre instances donneacutees

eacutechangeacutees

bull (3+2)eval()

Intersections non vide entre ces diagrammes

bull Classes -gt lignes de vie opeacuterations-gtmessages Classe -gt instances

bull Le modegravele UML unifie et assure la coheacuterence 33

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 34: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Structure de lrsquoUE et Organisation

34

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 35: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Plan des Seacuteances

Objectif Meacutethode de deacuteveloppement Analyse Conception Architecturale

1 Introduction organisation du deacuteveloppement logiciel

Arc 1 QUOI La phase drsquoanalyse

2 Analyse I cas drsquoutilisation classes meacutetier

3 Analyse II fiches deacutetailleacutees

4 Analyse III seacutequences tests de validation bilan analyse

Examen Reacuteparti 1 Analyse drsquoun cahier des charges

Arc 2 COMMENT Conception

5 Conception Architecturale transition architecture composants seacutequences

6 Conception Deacutetailleacutee plateformes agrave composant reacutealisation en J2SE

7 Tests composants bouchons configurations de test test unitaire bilan cycle V

Arc 3 Drsquoautres approches

8 Agiliteacute pratiques agiles SCRUM XPhellip

9 Ingeacutenierie des modegraveles meacuteta-meacuteta-modeacutelisation Domain Specific Language

10 Bilan de lrsquoUE design pattern architectural ouverture

Examen Reacuteparti 2 Conception orienteacute composant 35

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 36: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Reacutefeacuterences

bull Hypothegravese preacute-requis

bull Niveau intermeacutediaire en Java ou autre langage O-O

bull Des bases en UML en Design Pattern peuvent ecirctre utiles

bull Page web httpspageslip6frYannThierry-MiegIL

bull Slides du cours Enonceacutes TD et TME

bull Fiches de cours non redondant

bull Videacuteos de lrsquoamphi et drsquoun groupe de TD

bull ExempleGuide pour le projet de TME Sudoku

bull Annales une ressource importante pour preacuteparer lrsquoexamen

bull Reacutefeacuterences biblio

bull Ian Sommerville laquo Software Engineering raquo

bull Gamma Helm Vlissides Johnson laquo Design Patterns raquo

bull FreemanampFreeman laquo Head First in Design Patterns raquo

bull Larman laquo Applying UML and Patterns raquo

bull Roques laquo UML par la pratique raquo (ou drsquoautres du mecircme auteur)

bull Se choisir des livres en bibliothegraveque et les lire36

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 37: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Organisation

bull 2h cours 2h TD 2h TME par semaine

bull Examen reacuteparti 1 (novembre) sur feuille

bull Examen reacuteparti 2 (janvier) sur feuille

bull Reacutepartition 10 note de TME 40 Exam 1 50 Exam 2

bull En TD

bull Appliquer les eacutetapes de la deacutemarche avec un enseignant sur un Cahier des

Charges (CdC)

bull En TME

bull Equipes de 6 agrave 8 eacutetudiants (4 agrave 5 eacutequipes par groupe de TD)

bull Appliquer la deacutemarche en eacutequipe sur un CdC

bull LDVH le Livre Dont Vous ecirctes le Heacuteros

37

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 38: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Gestion des Equipes

bull Groupes de 6 agrave 8 eacutetudiants

bull Problegraveme srsquoorganiser pour utiliser cette ressource dynamique de groupe

bull Jeu de rocircle SSII reacutepondant agrave un appel drsquooffre

bull Communication

bull Support eacutecrit avec traces consultables par tous les membres du groupe

discord google groups whatsapphellip

bull Git pour les sources

bull Decoupage et affectation de taches

bull Reacuteunions

bull Outils

bull IDE Java+UML IBM Rational Software Architect Designer (RSAD)

bull Disponible agrave la ppti + agrave teacuteleacutecharger et active avec la cleacute sur le site

38

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 39: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Gestion drsquoeacutequipe

bull Ideacutealement prendre des personnes avec des affiniteacutes

bull Mais lrsquoexercice correctement appliqueacute doit permettre de collaborer avec tout le

monde

bull Rester poli et professionnel dans les eacutechanges

bull Reacuteunions efficaces

bull Time-box au bout de 15 minutes crsquoest fini 42 binomes produisent plus que 8

ensemble en geacuteneacuteral

bull Ordre du jour par eacutecrit avant la reacuteunion qursquoon y ait reacutefleacutechi un minimum

Typiquement tour de table avancement sur mes tacircches si besoin synchronisation

deacutecoupage du travail suivant affectation

bull Rapport deacutecisions prises lors de la reacuteunion principalement deacutefinition et affectation

de tacircches

bull Outils importants

bull Trace eacutecrites consultables (par tous) preacutefeacuterables eacuteviter les eacutechanges perso autour du

projet

bull Organisation et deacutecoupage en tacircches des outils peuvent aider eg Trello

bull Pas de contrainte sur lrsquoorganisation mais si un membre veut faire CP de faccedilon

consensuelle cela peut bien fonctionner39

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40

Page 40: Cours 1 : Introduction Génie Logiciel · L’objet:instance d’uneclasse • Les instances d’objetssont définies par la valeur de leurs attributs. • Les traitements qu’onpeut

Projet de TME eacutevaluation

Deux soutenances

bull Slidespowerpoint + preacutesentation en groupe

bull Seacuteance 5 bilan de lrsquoanalyse

bull Seacuteance 10 conception bilan du projet

Evaluation

bull Le groupe a bien appliqueacute la deacutemarche proposeacutee

bull Qualiteacute et exhaustiviteacute des diagrammes et artefacts produits

bull Qualiteacute de la preacutesentation et coheacutesion de lrsquoeacutequipe

Le projet nrsquoest pas centreacute sur la reacutealisationcodage

bull Pas une UE de programmation

bull Si le projet permet une deacutemonstration drsquoun prototype reacutealisant un

sous-ensemble reacuteduit des fonctionnaliteacutes mais conccedilu et construit

en appliquant la deacutemarche on est satisfait40