View
217
Download
0
Category
Preview:
Citation preview
CSC4102 : Introduction augenie logiciel pourapplications orientees objetRevision : 2450
Denis Conan, avec Paul Gibson
Decembre 2017
Sommaire
1. Contexte : Qui demande une ingenierie logiciel ?
2. Interet —Pourquoi organiser un developpement ?
3. Contenu — Quels sont les objectifs du module ?
4. Prerequis
5. Evaluation
6. Equipe et site Web
2/22 12/2017 Denis Conan CSC4102 : Introduction
1 Contexte : Qui demande une ingenierie logiciel ?
David L. Parnas, ACM SIGSOFT1 Outstanding Research Award, 1998 [Parnas, 2010]
� We are caught in a catch-22 situation2 :
• Until customers demand evidence that the designers were qualified anddisciplined, they will continue to get sloppy software.
• As long as there is no better software, we will buy sloppy software.• As long as we buy sloppy software, developers will continue to use
undisciplined development methods.• As long as we fail to demand that developers use disciplined methods, we run
the risk —nay, certainty— that we will continue to encounter software full ofbugs.
� Much of the fault lies with our teaching.Computer science students are not taught to work in disciplined ways.
1. ACM, Special Interest Group on SOFTware engineering2. En francais, « situation sans issue »
3/22 12/2017 Denis Conan CSC4102 : Introduction
2 Interet —Pourquoi organiser un developpement ?
2.1 Du programme (monolithique) correct...2.2 ...A l’ingenierie d’un logiciel2.3 Particularite de l’ingenierie du logiciel
4/22 12/2017 Denis Conan CSC4102 : Introduction
2.1 Du programme (monolithique) correct...C. Antony R. Hoare, ACM A.M. Turing Award, 1980 [Hoare, 2009]
� The basic questions common to all branches of science
1. What [should] this program do ?2. How [is it doing] it ?3. Why does it work ?4. What is the evidence for believing the answers to all these questions ?
� We know in principle how to answer them
1. It is the specifications that describes what [we want] a program [to do]2. It is programming language semantics that explains how it works3. It is assertions and other internal interface contracts between component
modules that explain why it works4. It is mathematical and logical proof [and testing], nowadays constructed and
checked by computer, that ensures mutual consistency of specifications,interfaces, programs, and their implementations
5/22 12/2017 Denis Conan CSC4102 : Introduction
2.2 ...A l’ingenierie d’un logiciel
David L. Parnas, ACM SIGSOFT [Parnas, 2010]
� The branches of engineering (such as civil, electrical, and mechanical),are often referred to as disciplines for good reason.
• Associated with each specialty is a set of rules that specify : (i) checks thatmust be made ; (ii) properties that must be measured, calculated, or specified ;(iii) documentation that must be provided ; (iv) design review procedures ; (v)tests that must be carried out on the product ; and (vi) product inspection andmaintenance procedures.
� [Everyday] experiences reminded [us] that the activity we (euphemistically)call software engineering does not come close to deserving a place amongthe traditional engineering disciplines.
6/22 12/2017 Denis Conan CSC4102 : Introduction
2.3 Particularite de l’ingenierie du logiciel
J.H. Saltzer, M.F Kaashoek [Saltzer and Kaashoek, 2009]
� There are at least two significant ways in whichcomputer systems differ from every other kind of systemwith which [engineers] have experience
• The complexity of a computer [model] is not limited by physical laws.− A titre indicatif, voir [Hayes and Jones, 1989]
− Par exemple, « The halting problem » [Husfeldt, 2012]
• The rate of change of computer system technology is unprecedented.
7/22 12/2017 Denis Conan CSC4102 : Introduction
3 Contenu — Quels sont les objectifs du module ?
3.1 Objectifs globaux et demarche de l’evaluation3.2 Objectif — Developpement logiciel agile3.3 Objectif — Modelisation avec UML3.4 Objectif — JAVA, qualite logicielle, outillage3.5 Apres le module — A quoi ca sert ensuite ?
ou ? quand ?
8/22 12/2017 Denis Conan CSC4102 : Introduction
3.1 Objectifs globaux et demarche de l’evaluation
� Objectifs :1. Specification, conception et programmation orientees objet2. Qualite logicielle et tests3. Developpement agile4. Outillage des activites de developpement
� Demarche globale de l’evaluation (repartition de la notation a titre indicatif) :• Travail en binome, decompose en deux periodes / sprints (notes ∈ [0, 10])
− Solution logicielle livree dans le projet (7 pts)• Modelisation + preparation des tests (3 pts)• Programmation outillee (4 pts)
− Investissement continu dans la mise en œuvre de la methodologie agile(presence active aux seances)+ Mise en œuvre outillee de la methodologie agile (3 pts)
• Connaissances globales lors d’une soutenance individuelle(notes ∈ {0} ∪ [5, 10])
9/22 12/2017 Denis Conan CSC4102 : Introduction
3.2 Objectif — Developpement logiciel agile
� Activites de dev. logiciel d’un binome-projet « qui fait tout le logiciel »
� Cycle en V dans une iteration / un sprint
� Deux sprints dans le module
SpécificationComprendre les
besoins, décrire le
Conception détaillée
Expression des besoinsS’accorder sur les
fonctionnalitésdu système
QUOI du système
Détailler le COMMENTpour un langage de
programmation donné
Préparation...
Codage
des tests ...Exécution
Tests unitaires Pour un objet, chaque opérationfonctionne−t−elle correctement ?
Tests d’intégration
Tests de validation
Les différentes partiesdu logicielfonctionnent−ellescorrectement ensemble ?
Le système est−ilconforme aucahier descharges ?
Le système est−ilconforme à laspécification ?
Recette
LogicielCahier des charges
Conception préliminaireS’accorder sur le COMMENTde construction du système
fonctionnalitéset tests
Éléments Fournis
10/22 12/2017 Denis Conan CSC4102 : Introduction
3.3 Objectif — Modelisation avec UML
� Connaissances — savoirs• Differents types de diagrammes avec leurs notations• Roles complementaires des types de diagrammes• Coherence entre diagrammes de meme type ou de types differents
Casd’utilisation
Activité
Classes
Objets
Machineà états
Interaction
Communications
Séquence
Cf. CSC3601
� Pratique — savoir-faire• Presenter des elements methodologiques d’utilisation des differents types de
diagrammes dans un processus de developpement• Presentation dans le cours d’une premiere etude de cas• Mise en pratique lors des seances avec une autre etude de cas
11/22 12/2017 Denis Conan CSC4102 : Introduction
3.4 Objectif — JAVA, qualite logicielle, outillage
� Connaissances — savoirs
• Concepts de l’orientation objet : retours sur l’heritage (transtypage,redefinition [polymorphisme d’inclusion], visibilite, classe abstraite, interface),retours sur les classes parametree (polymorphisme parametrique), librairie(collections avec listes et dictionnaires)
• Idiomes JAVA et patrons de conception
� Pratique — savoir-faire
• Gestion de versions avec Git et GitLab• Construction de logiciel JAVA avec Maven• Programmation des test avec JUnit• Qualite du code avec CheckStyle et FindBugs
12/22 12/2017 Denis Conan CSC4102 : Introduction
3.5 Apres le module — A quoi ca sert ensuite ?ou ? quand ?
� A titre indicatif, quelques metiers :
• VAP ASR et JIN− architecte, ingenieur developpeur, ingenieur R&D, consultant, integrateur
• VAP DSI− architecte SI, maıtrise d’œuvre des SI, consultant, integrateur
• VAP ISI− maıtrise d’ouvrage
13/22 12/2017 Denis Conan CSC4102 : Introduction
4 Prerequis
4.1 Quelques sondages (prerequis versus preacquis)4.1.1 A propos de CSC31014.1.2 A propos de CSC36014.1.3 A propos de PRO3600 et de CSC41014.2 Dispositif de revision4.3 Structuration du dispositif du module
14/22 12/2017 Denis Conan CSC4102 : Introduction
Quelques sondages (prerequis versus preacquis)
4.1.1 A propos de CSC3101
� Est-ce que ce sont des prerequis preacquis ?
CSC3101–1 CSC3101–21 Objet Interface2 Classe Classe abstraite3 Attribut Attribut de classe4 Methode Methode de classe5 Visibilite Enumeration6 Heritage Classe parametree
15/22 12/2017 Denis Conan CSC4102 : Introduction
Quelques sondages (prerequis versus preacquis)
4.1.2 A propos de CSC3601
� Est-ce que ce sont des prerequis preacquis ?
CSC36011 Diagramme de classes UML2 Schemas relationnels de bases de donnees3 Conception de schemas relationnels de bases de donnees a partir
de diagrammes de classes UML
16/22 12/2017 Denis Conan CSC4102 : Introduction
Quelques sondages (prerequis versus preacquis)
4.1.3 A propos de PRO3600 et de CSC4101
� Est-ce que ce sont des prerequis preacquis ?
PRO36001 Developper une application informatique
CSC41011 Concepts de client/serveur2 Patron de conception MVC3 Persistance des donnees
17/22 12/2017 Denis Conan CSC4102 : Introduction
4.2 Dispositif de revision
� Nous mettons a disposition des elements de cours et des exercices de revision
� Revisions non comptabilisees dans le travail hors presentiel
� Avant la seance 2 : generalites sur UML
� Avant la seance 3 : diagramme de classes UML
� Avant la seance 5 : concepts de base de la programmation en JAVA
18/22 12/2017 Denis Conan CSC4102 : Introduction
4.3 Structuration du dispositif du moduleA partir d’un cahier des charges, chaque binome-projet propose sa solution
CM HPTP
CM HPTP
CM HPTPRÉV
CM HPTP
CM HPTP
CM HPTPRÉV
CM HPTP
HPTP
RÉV
CM HPTPRÉV
CM HPTP
du développement
Introductionet organisation
Séance 1 :
des tests de validation
Séance 2 :Spécificationet préparation
Séance 3 :Conceptionpréliminaire
des tests unitaires
Séance 4 :Conception détailléeet préparation
Séance 5 :Programmationoutillée
Séance 6 :Livraison dupremier sprint
Suivi
Suivi
Suivi
Suivi
CRI−ÉVAL 2
Idiomes Java
Séance 7 :
second sprintLivraison duSéance 10 :
Soutenance individuelle
Séance 8 :Modélisation del’intégration despatrons de conception
Séance 9 :Programmation ettests d’intégrationdes patrons de conception
Sprint 1 Sprint 2
Suivi
Suivi
Suivi
SOUTENANCE
CRI−ÉVAL 2
CRI−ÉVAL 4
CRI−ÉVAL 3
Suivi
CRI−ÉVAL 1
SuiviCRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 3
CRI−ÉVAL 1
19/22 12/2017 Denis Conan CSC4102 : Introduction
5 Evaluation
� Premiere session :
• CRI-Eval-1 : Modelisation et preparation des tests− Evalue a la fin de chaque sprint, avec progres attendu
• CRI-Eval-2 : Programmation outillee− Evalue a la fin de chaque sprint, avec progres attendu
• CRI-Eval-3 : Mise en œuvre de la methodologie agile− Investissement continu (presence active) + Rendus a la fin de chaque seance− 3 points (grille criteriee : ≥ 80% presences et rendus, ≥ 50%, < 50%)
• CRI-Eval-4 : Toutes les connaissances lors d’une soutenance individuelle− A base de questions de niveaux de difficulte varies, 10 minutes− 10 points (une note inferieure a 5 est insuffisante, et est ramenee a 0)
� Seconde session : controle sur table portant sur la totalite du module
20/22 12/2017 Denis Conan CSC4102 : Introduction
6 Equipe et site Web� Responsables de groupe
OlivierBerger
DenisConan
PaulGibson
ChantalTaconet
PierreSutra
� Intervenants de TP pour les seances 1, 2, 4 et 5
• Elisabeth Brunet, Walid Gaaloul, Alexis Lescouet, et Francois Trahay
� Site Web : https://www-inf.telecom-sudparis.eu/COURS/CSC4102/
• Contenu des seances• Glossaire, liste des taches, grilles auto-evaluation, trucs et astuces
21/22 12/2017 Denis Conan CSC4102 : Introduction
Quelques sondages (prerequis versus preacquis)
References I
Hayes, I. and Jones, C. B. (1989).Specifications are not (necessarily) executable.Software Engineering Journal, 4(6) :330–339.
Hoare, C. (2009).Retrospective : An Axiomatic Basis for Computer Programming.Communications of the ACM, 52(10) :30–32.
Husfeldt, T. (2012).The Freeze App Does Not Exist.https ://thorehusfeldt.net/2012/06/25/the-freeze-app-does-not-exist/.
Parnas, D. (2010).Risks of Undisciplined Development.Communications of the ACM, 53(10) :25–27.
Saltzer, J. and Kaashoek, M. (2009).Principles of Computer System Design : An Introduction.Morgan Kaufmann.
22/22 12/2017 Denis Conan CSC4102 : Introduction
Recommended