CSC4102 : Introduction Au G Enie Logiciel Pour .

2y ago
25 Views
2 Downloads
1.39 MB
20 Pages
Last View : 15d ago
Last Download : 3m ago
Upload by : Kairi Hasson
Transcription

CSC4102 : Introduction augénie logiciel pourapplications orientées objetRevision : 4802Denis ConanJanvier 2021

1 Contexte : Qui demande une ingénierie 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 useundisciplined development methods.As long as we fail to demand that developers use disciplined methods, we runthe 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 français, « situation sans issue »2/2001/2021Denis ConanCSC4102 : Introduction

2 Intérêt — Pourquoi une méthodologie ?2.1 Du programme (monolithique) correct.2.2 .À l’ingénierie d’un logiciel3/2001/2021Denis ConanCSC4102 : 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 science1.2.3.4.What [should] this program do ?How [is it doing] it ?Why does it work ?What is the evidence for believing the answers to all these questions ? [When writing programs,] we know in principle how to answer them31. 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 componentmodules that explain why it works4. It is mathematical and logical proof [and testing], nowadays constructed andchecked by computer, that ensures mutual consistency of specifications,interfaces, programs, and their implementations3. Hoare Triple : {P}S{Q} reading “if precondition P is true before statement S is executed, and if theexecution of S terminates, then postcondition Q is true afterwards”.4/2001/2021Denis ConanCSC4102 : Introduction

2.2 .À l’ingénierie d’un logiciel Définition du terme « ingénierie logiciel » selon[ISO/IEC, 2017, ISO/IEC, 2015]« Software engineering : systematic application of scientific andtechnological knowledge, methods, and experience to the design,implementation, testing, and documentation of software »David L. Parnas, ACM SIGSOFT[Parnas, 2010] Experiences remind [us] that the activity we call software engineeringdoes not come close to deserving a place among the traditionalengineering disciplines [e.g. civil, electrical, and mechanical].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 5/20The complexity of a computer [model] is not limited by physical laws.The rate of change of computer system technology is unprecedented.01/2021Denis ConanCSC4102 : Introduction:

3 Contenu — Quels sont les objectifs du module ?1. Contexte : Qui demande une ingénierie logiciel ?2. Intérêt — Pourquoi une méthodologie ?3. Contenu — Quels sont les objectifs du module ?3.1 Acquis d’apprentissage visés3.2 Concernant le développement logiciel agile3.3 Concernant la modélisation avec UML3.4 Concernant JAVA, la qualité logicielle, l’outillage3.5 Après le module — À quoi çà sert ensuite ?où ? quand ?4. Prérequis5. Modalités d’évaluation6. Structuration du dispositif pédagogique7. Équipe enseignante et site Web6/2001/2021Denis ConanCSC4102 : Introduction

3.1 Acquis d’apprentissage visés À l’issue du module, vous serez capables :1. Spécification, conception et programmation orientées objet : de spécifier, concevoir et programmer entièrement et de manièresystématique un logiciel de petite taille, mais réaliste, dont le cahier descharges est fourni, en utilisant la notation UML et le langage JAVA d’appliquer des patrons (motifs) de conception et de programmation(idiomes) donnés dans le but d’améliorer la qualité du logiciel2. Qualité logicielle et tests : de rédiger des tests de validation et des tests unitaires (les testsd’intégration ne sont ni étudiés ni utilisés)de programmer et d’exécuter (de manière automatique) ces testsd’utiliser des logiciels d’analyse statique de la qualité du code3. Méthodologie de développement agile : d’organiser le développement dans des sprintsde partager vos développements tout au long des sprints4. Outillage des activités de développement : 7/2001/2021d’identifier et d’utiliser des outils représentatifs des activités de dév.Denis ConanCSC4102 : Introduction

3.2 Concernant le développement logiciel agile Activités de dév. logiciel d’un binôme-projet « qui fait tout le logiciel » Quelques éléments fournis au départ, puis deux sprints dans le module Cycle en V guidé dans le premier sprintPlus d’autonomie dans le second sprintCahier des chargesS’accorder sur lesfonctionnalitésdu systèmeLogicielExpression des besoinsRecettePréparation.Comprendre lesbesoins, décrire leQUOI du systèmedes tests.ExécutionSpécificationS’accorder sur le COMMENTde construction du systèmeTests de validationTests d’intégrationConception préliminaireDétailler le COMMENTpour un langage deprogrammation donnéTests unitairesConception détailléeCodagefonctionnalitéset tests8/2001/2021Denis ConanCSC4102 : IntroductionLe système est ilconforme aucahier descharges ?Le système est ilconforme à laspécification ?Les différentes partiesdu logicielfonctionnent ellescorrectement ensemble ?Pour un objet, chaque opérationfonctionne t elle correctement ?

3.3 Concernant la modélisation avec UML Connaissances — savoirs Différents types de diagrammes avec leurs notationsRôles complémentaires des types de diagrammesCohérence entre diagrammes de même type ou de types ine Interactionà étatsObjetsSéquenceCf. CSC3601Communications Pratique — savoir-faire 9/20Présentation dans le cours d’une première étude de casUne seconde étude de cas complète disponible pour consultationMise en pratique lors des séances avec une autre étude de cas01/2021Denis ConanCSC4102 : Introduction

3.4 Concernant JAVA, la qualité logicielle, l’outillage Connaissances — savoirs Approfondissement des concepts de l’orientation objet :retours sur l’héritage (transtypage, redéfinition [polymorphisme d’inclusion],visibilité, classe abstraite, interface),retours sur les classes paramétrée (polymorphisme paramétrique),librairie (collections avec listes et dictionnaires), etlambda expressions et StreamsIntroduction aux idiomes JAVA et aux patrons de conception Pratique — savoir-faire 10/20Gestion de versions avec Git et GitLabEnsConstruction de logiciel JAVA avec MavenProgrammation des tests avec JUnitQualité du code avec CheckStyle et SpotBugs01/2021Denis ConanCSC4102 : Introduction

3.5 Après le module — À quoi çà sert ensuite ?où ? quand ? À titre indicatif, quelques métiers : VAP ASR et JIN architecte, ingénieur développeur, ingénieur R&D, consultant, intégrateur VAP DSI architecte SI, maı̂trise d’œuvre des SI, consultant, intégrateur VAP ISI maı̂trise d’ouvrage11/2001/2021Denis ConanCSC4102 : Introduction

4 Prérequis4.1 Quelques sondages (prérequis, préacquis)4.1.1 À propos de CSC31014.1.2 À propos de CSC36014.1.3 À propos de PRO3600 et de CSC4101[. Sondage Wooclap] Dispositif de révision 12/20Nous mettons à disposition des éléments de cours et des exercices de révisionRévisions non comptabilisées dans le travail hors présentielAvant la séance 2 : généralités sur UMLAvant la séance 3 : diagramme de classes UMLAvant la séance 5 : concepts de base de la programmation en JAVA01/2021Denis ConanCSC4102 : Introduction

Quelques sondages (prérequis, préacquis)4.1.1 À propos de CSC3101 Est-ce que ce sont des prérequis préacquis éthodeVisibilitéHéritageDenis ConanCSC3101–2InterfaceClasse abstraiteAttribut de classeMéthode de classeÉnumérationClasse paramétréeCSC4102 : Introduction

Quelques sondages (prérequis, préacquis)4.1.2 À propos de CSC3601 Est-ce que ce sont des prérequis préacquis ?12314/2001/2021CSC3601Diagramme de classes UMLSchémas relationnels de bases de donnéesConception de schémas relationnels de bases de données à partirde diagrammes de classes UMLDenis ConanCSC4102 : Introduction

Quelques sondages (prérequis, préacquis)4.1.3 À propos de PRO3600 et de CSC4101 Est-ce que ce sont des prérequis préacquis ?15/2001/20211PRO3600Développer une application informatique123CSC4101Concepts de client/serveurPatron de conception MVCPersistance des donnéesDenis ConanCSC4102 : Introduction

5 Modalités d’évaluation Première session (répartition de la notation à titre indicatif) Travail en binôme, décomposé en deux périodes / sprints (10 points) Solution logicielle livrée dans le projet (8 pts) Modélisation préparation des tests (M 4 pts) Programmation outillée (P 4 pts) Évaluation à la fin de chaque sprint, avec progrès attendus Agilité avec présence active aux séances mise en œuvre outillée de la méthodologie agile (A 2 pts) Présence : 0.1 point par séance Mise à disposition dans GitLabEns des productions : 0.1 pt par séance Connaissances globales lors d’une soutenance individuelle (S 10 points) À base de questions de niveaux de difficulté variés, 10 minutes Questions de cours questions sur votre solution Assister aux cours hors présentiel sur le projet (3h par séance)Note finale si (S 5) alors (M P A S) sinon min(M P A, 9) Seconde session : contrôle sur table portant sur la totalité du module Pas de « rattrapage » en CF3, etc., pour cause de « mode projet »16/2001/2021Denis ConanCSC4102 : Introduction

6 Structuration du dispositif pédagogiqueÀ partir d’un cahier des charges, chaque binôme-projet propose sa solutionSprint 1Sprint 2Séance 1 :Introductionet organisationdu développementCMTPSéance 7 :HPIdiomes JavaCMTPHPHPSéance 8 :Modélisation del’intégration despatrons de conceptionCMTPHPSéance 9 :Programmation ettests d’intégrationdes patrons de conceptionCMTPHPTPHPSuivi 5Séance 2 :SpécificationRÉVet préparationdes tests de validationCMTPSuivi 1Séance 3 :ConceptionpréliminaireRÉVCMTPHPou Suivi 6Suivi 2Séance 4 :Conception détailléeet préparationdes tests unitairesCMTPSéance 10 :Livraison dusecond sprintHPSuivi 3Séance 5 :ProgrammationoutilléeSoutenance individuelleRÉVCMTPSOUTENANCECRI ÉVAL MCRI ÉVAL PCRI ÉVAL AHPCRI ÉVAL SSuivi 4Séance 6 :Livraison dupremier sprintCMTPHPCRI ÉVAL MCRI ÉVAL PCo-modalité/distanciel : capsule vidéo du cours kahoot en auto-évaluationCo-modalité/distanciel : chaque responsable de groupe organise les 3h de chaque séance17/2001/2021Denis ConanCSC4102 : Introduction

6.1 Quelques statistiques Année 2018–2019 : # notes de soutenances individuelles insuffisantes : 25# notes CF1 / CF2 10 : 31 / 21 Année 2017–2018 : # notes de soutenances individuelles insuffisantes : 23# notes CF1 / CF2 10 : 32 / 8 Année 2016–2017 : 18/20# notes de soutenances individuelles insuffisantes : 21# notes CF1 / CF2 10 : 26 / 1101/2021Denis ConanCSC4102 : Introduction

7 Équipe enseignante et site Web Responsables de runetDenisConan Aides pour le suivi : Denisse MunantePaulGibson(Grp TP 4 et 6)PierreSutraet Anatole LefortChantalTaconet(Grp TP 5) Intervenants de TP pour les séances 1, 2, 5, et 6 :Pascal Hennequin, Boubacar Kane, Anatole Lefort, Denisse Munante, YohanPipereau, Subashiny Tanigassalame Site Web : https://www-inf.telecom-sudparis.eu/COURS/CSC4102/ 19/20Contenu des séancesMenu Organisation Grilles ris.eu/COURS/CSC4102/?page grilles auto evaluationGlossaire, liste des tâches, aides et foires aux questions01/2021Denis ConanCSC4102 : Introduction

Quelques sondages (prérequis, préacquis)Références IHoare, C. (2009).Retrospective : An Axiomatic Basis for Computer Programming.Communications of the ACM, 52(10) :30–32.ISO/IEC (2015).Information technology—Vocabulary.International Standard ISO/IEC 2382:2015, ISO/IEC Joint Technical Committee 1,Information technology.ISO/IEC (2017).Systems and software engineering—Vocabulary.International Standard ISO/IEC 24765:2017, ISO/IEC Joint Technical Committee 1,Information technology.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.20/2001/2021Denis ConanCSC4102 : Introduction

(idiomes)donn es dans le but d’am eliorer la qualit e du logiciel 2.Qualit e logicielle et tests : der edigerdes tests de validation et des tests unitaires (les tests d’int egration ne sont ni etudi es ni utilis es) deprogrammeret d’ex ec

Related Documents:

Assisting Developers of Big Data Analytics Applications When Deploying on Hadoop Clouds Weiyi Shang y, Zhen Ming Jiang , Hadi Hemmati , Bram Adams z, Ahmed E. Hassan y, Patrick Martin x y Software Analysis and Intelligence Lab (SAIL), School of Computing, Queen's University, Kingston, Canada z D epartement de G enie Informatique et G enie Logiciel, Polytechnique Montr eal, Montr eal .

2 Aspects statiques, diagramme de classes 2.1 Diagramme avec le rappel des pr erequis 2.2 Attributs et op erations de classe 2.3 Classe d'association 2.4 Type enum er e ( enum eration) 2.5 Classe abstraite 2.6 G en eralisation sp ecialisation et red efinition 2.7 Diagramme avec les nouveaux concepts 2.8 El ements de m .

Rappels sur les mod eles Formation phylog enie { Institut Pasteur Guy Perri ere Laboratoire de Biom etrie et Biologie Evolutive UMR CNRS n 5558 Universit e Claude Bernard { Lyon 1 1er octobre 2015 Guy Perri ere (BBE) Rappels sur les mod eles 1er octobre 2015 1 / 21. Introduction Divergence observ ee Appel ee p (ou p-distance), c’est l’estimation la plus simple de la distance entre deux s .

iv Buku Panduan Pendidikan FIK UI TIM PENYUSUN Pengarah Dekan Fakultas Ilmu Keperawatan UI Penyusun Buku Ketua: Agus Setiawan, SKp. MN, DN Kontributor: 1. Dr. Enie Novieastari, SKp.

Apache. Zabezpieczenia aplikacji i serwerów WWW Autor: Ryan C. Barnett T³umaczenie: Marek Pa³czyñsk ISBN: 83-246-0505-3 Tytu³ orygina³u: Preventing Web Attacks with Apache Format: B5, stron: 544 Internet to nie tylko niezmierzone Ÿród³o informacji. To tak¿e zagro¿enie dla serwerów

A n de d eterminer la constante K, on calcule la transform ee de Fourier de sen 0 a l’aide de la d e nition, et de la formule vue pr ec edemment : bs(0) Z R s(t)dt r ˇ a K. Finalement, bs( ) Z R s(t)e 2iˇ tdt Z R e at2e 2iˇ tdt r ˇ a e ˇ 2 2 a: (1) On remarquera grace a ce r esultat que la transform ee de Fourier d’une .

D epartement d’informatique et de g enie logiciel, Universit e Laval Qu ebec, Canada, G1V 0A6 Hugo Larochelle hugo.larochelle@usherbrooke.ca D epartement d’informatique, Universit e de Sherbrooke Qu ebec, Canada, J1K 2R1 Fran cois Laviolette Francois.Laviolette@

It WAS a powerful good adventure, and Tom Sawyer had to work his bullet-wound mighty lively to hold his own against it. Well, by and by Tom's glory got to paling down gradu'ly, on account of other things turning up for the people to talk about--first a horse-race, and on top of that a house afire, and on top of that the circus, and on top of that the eclipse; and that started a revival, same .