Title: Baccalaurat en gnie logiciel
1Baccalauréat en génie logiciel
2Quest-ce que le génie logiciel?
- Le génie logiciel est lapplication des
principes de lingénierie à la conception des
logiciels, - lapplication dapproches méthodiques et
quantifiables au développement, à lopération et
à la maintenance des logiciels, - lutilisation dune culture, de connaissances et
dhabiletés qui permettent de livrer des produits
logiciels de qualité en temps et dans les coûts.
3Définitions
- Linformatique a pour objet la théorie de la
conception et le développement des systèmes
informatiques et des logiciels dordinateur, - Le génie informatique a pour objet la conception
et la réalisation du matériel informatique, son
utilisation dans des systèmes informatisés et la
conception des logiciels qui font fonctionner ces
utilisations, - Le génie logiciel assure la cohérence logique et
lintégrité des informations à travers toutes les
phases de réalisation dun projet.
4Quest-ce que le logiciel ?
- Le logiciel est différent des produits
industriels classiques - Il est invisible/intangible.
- Il ne vieillit pas.
- Il ne suse pas, il nest pas détérioré par le
test. - Il est souvent fabriqué artisanalement.
- Il est très (trop ?) facile à modifier.
- Il coûte très (trop ?) cher.
5Vue en couches
Couche logiciel
Couche informatique
Couche matériel
6Pourquoi étudier le génie logiciel ?
- Reconnaissance de la crise logiciel (OTAN, 68)
- Le logiciel est difficile à fabriquer !
- Problèmes échéanciers.
- Problèmes budgétaires.
- Problèmes de qualité de produit.
7Un logiciel qui satisfait aux besoins du client ?
- Fonctionnalité et utilité. Le logiciel
- Correspond aux besoins du client.
- Est facile à apprendre.
- Est efficace et fiable.
- Etc.
8GL par rapport à dautres disciplines dingénierie
- Pourquoi un logiciel ne se plante-t-il pas aussi
rarement quun pont sécroule ? - Lattitude de la communauté
- Si un pont sécroule, on va (re)vérifier la
conception de ce pont ainsi que dautres ponts. - Si un logiciel se plante, on redémarre !
- La maintenance.
- Le logiciel ne suse pas, et il est très facile à
modifier. - Si on demandait à un ingénieur civil de faire
tourner un pont 90 !?
9Assises du programme
- Notre Vision,
- Programme,
- Professeurs,
- Étudiants.
10Notre vision
- Le génie logiciel est un champ de formation en
soi. - Il a évolué pour devenir une discipline autonome
comme le génie électrique, mécanique ou civil.
11Notre vision (suite)
- Les connaissances nécessaires à lingénieur en
génie logiciel ne peuvent plus être greffées sur
un autre programme (ex. 6 cours optionnels
rattachés à un autre programme), - Lingénieur logiciel bien que distinct, doit
pouvoir communiquer avec les autres ingénieurs.
Le langage de communication avec les autres
disciplines est la modélisation, les
mathématiques.
12Programme
- Arrimé
- au cégep,
- à lindustrie
- mène au titre dingénieur (sous réserve
daccréditation du programme)
13Programme (suite)
- Coopératif constitué de 3 stages
- 1er stage travail de technicien
- 2ième stage travail intermédiaire
- 3ième stage travail dingénieur
14Professeurs
- Spécialisés en génie logiciel
- analyse des besoins,
- assurance qualité,
- vérifications et validations,
- maintenance.
15Professeurs (suite)
- Spécialisés en applications
- interfaces usagers ergonomie,
- temps réel,
- réseautique,
- bases de données,
- modélisation numérique.
16Étudiants
- Dabord des techniciens
- Ensuite des ingénieurs
- pratiques,
- compétents,
- qui, à leur graduation,
- offrent déjà de lexpérience,
- nont rien à envier aux gradués des autres
universités, - qui gagnent très souvent les compétitions
inter-universitaires.
17Le génie logiciel à l ÉTS
- Merci de votre attention.
- Pour plus dinformation
- http//www.etsmtl.ca/ti/3/baccgenielogiciel.html
- Ou très bientôt www.log.etsmtl.ca
18Diapos supplémentaires . . .
19Quest-ce que le logiciel ?
- Le logiciel
- Ensemble des programmes, procédés et règles, et
éventuellement de la documentation, relatifs au
fonctionnement d'un ensemble de traitement de
l'information (selon le Larousse 96 et IEEE Std
729).
20Quest-ce que le Génie logiciel ?
- Programming in the large .
- Plusieurs gens.
- Systèmes complexes.
- Développement discipliné en équipe
- Définition des rôles spécifiques analyste,
concepteur, développeur, testeur, etc. - Reconnaissance de qualifications.
- Formation complémentaire.
21Quest-ce que le Génie logiciel ? (suite)
- Des processus répétables .
- Par exemple, définis à lISO 9000, Capability
Maturity Model (CMM), etc. - Des cycles de vie
- Choix de méthodes rigoureuses.
- Choix de notations spécialisées selon la nature
des problèmes. - Utilisation denvironnements riches et doutils
supports.
22Pourquoi étudier le génie logiciel ? (suite)
- Le génie logiciel essaie dappliquer les
principes de lingénierie au développement du
logiciel. - On veut dépasser la simple fabrication artisanale
de logiciels. - Pourquoi le GL nous concerne-t-il ?
23La crise du logiciel
100
matériel
80
développement
60
50-75
Coût
40
logiciel
20
maintenance
1985
1955
1970
24Génie logiciel une définition
- Daprès la norme IEEE 610.12
- (1) Lapplication dune approche systématique,
disciplinée et quantifiable au développement, à
lopération, et à la maintenance du logiciel.
Cest-à-dire, lapplication de lingénierie au
logiciel. - (2) Létude des approches telles que dans (1).
- (1) The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of software that is,
the application of engineering to software. - (2) The study of approaches as in (1).
25Deux perspectives
- Processus.
- Comment le logiciel est fabriqué.
- Produit.
- Ce qui est fabriqué.
26Génie logiciel encore une définition
- Daprès Classical and Object-Oriented Software
Engineering with UML and Java de Schach - Le génie logiciel est une discipline qui a pour
but - La fabrication du logiciel qui est sans faute,
qui est livré en respectant le délai et le budget
prévus à lavance, et qui satisfait aux besoins
du client. - Software engineering is a discipline whose aim is
the production of fault-free software, delivered
on time and within budget, that satisfies the
users needs.
27Logiciel sans faute
- Quest quune faute dans un logiciel ?
- Un comportement non-prévu lors de la conception
du logiciel.
28Logiciel sans faute (suite)
- Exemples
- Le problème du Therac-25 (un appareil
d'irradiation thérapeutique) 2 morts, 4
irradiés. - Le bug du Pentium, en 1994. Coût 500 millions
de dollars. - L'explosion du premier vol d'Ariane 5, le 4 juin
1996. Coût 500 millions de dollars de pertes. - Des exemples à vous ?
29Logiciel sans faute (suite)
- Comment réduire le risque davoir des fautes ?
- Utiliser un processus bien défini qui décrit des
méthodes rigoureuses pour la conception,
limplémentation, la vérification, etc.
30Les contraintes temporelles et budgétaires
- Que se passe-t-il si le développement termine en
retard ? - La concurrence aura son produit sur le marché
avant nous. - Les coûts croissent, les bénéfices baissent.
31Les contraintes temporelles et budgétaires
- Que se passe-t-il si le projet dépense trop
dargent ? - Les bénéfices baissent.
- Annulation éventuelle du projet.
32Les contraintes temporelles et budgétaires
- Études de cas dannulation de projet
- La Bourse de Londres a renoncé en mars 1993 au
projet informatique Taurus qui devait assurer
complètement le suivi de l'exécution des
transactions. Ce système avait coûté directement
60M et les opérateurs sur le marché avaient
dépensé 400M pour y adapter leurs propres
logiciels.
33Les contraintes temporelles et budgétaires
- Études de cas dannulation de projet (suite)
- En Californie, le DMV a renoncé en 1993 au projet
informatique commencé en 1987 qui devait intégrer
deux systèmes dinformations (immatriculation et
permis). Ce système avait coûté 50MUS. Les coûts
étaient de 6.5 fois lestimation initiale, et la
date de livraison était prévue pour lan 1998.
34Un logiciel qui satisfait aux besoins du client ?
(suite)
- Une mauvaise interface usager coûte cher.
- En argent.
- En vies (par exemple, Therac-25).
- Linterface à lusager est difficile à faire
correctement. - Les gens sont imprévisibles.
35GL par rapport à dautres disciplines
dingénierie (suite)
- Il existe du logiciel fabriqué sérieusement .
- Systèmes de contrôle temps-réel (médicaux,
avioniques, aérospatiaux, nucléaires). - Puisque des fautes peuvent être catastrophiques,
les systèmes incluent la tolérance aux fautes (la
redondance).
36GL par rapport à dautres disciplines
dingénierie (suite)
- Est-ce juste une question de temps avant de
pouvoir fabriquer le logiciel aussi bien que lon
construit des ponts ? - La croissance de la complexité du logiciel depuis
30 ans est beaucoup plus importante que la
croissance de la complexité des ponts depuis 3000
ans !
3000 ans
37Le cycle de vie du logiciel
- Le cycle de vie dun logiciel est la série des
étapes suivies pour le réaliser de sa
conception jusquà sa mise hors-service. - Il est essentiel davoir un processus bien
défini. - Le niveau de la maturité du processus donnera une
indication du succès dune organisation pour
fabriquer un logiciel.
38Le cycle de vie traditionnel
Problème
Étude des besoins
CdC, Spécification
Analyse, Conception
Modèle
Implantation
Programme
Intégration, Tests et validation
Programme livrable
Maintenance
Programme mis hor-service
39Effort relatif pour les phases de développement
Ces ratios ne représentent pas le cas idéal
Daprès Software Engineering de Hans Van Vliet
40Coût pour corriger une faute
- Plus tôt une faute est détectée (et corrigée),
moins cher ça coûte
Daprès Classical and Object-Oriented Software
Engineering with UML and Java de Schach