SWEBOK
Le SWEBOK, ou « Guide to the Software Engineering Body of Knowledge », ou « Guide du corpus de connaissances en génie logiciel » est un référentiel établi par l’IEEE Computer Society pour structurer les connaissances relatives au génie logiciel. Il cherche à délimiter des domaines de connaissances bien identifiés, et à faire une synthèse des pratiques et techniques généralement acceptées, tout en visant à assoir la reconnaissance du génie logiciel comme discipline de l'ingénierie[1]. La version électronique est mis à disposition gratuitement par l'IEEE[2].
Intérêt
Le SWEBOK vise à codifier les connaissances professionnelles, et servir ainsi de guide aux professionnels du développement de logiciels pour l'exercice de leur métier, aux organismes académiques ou de formation professionnelle pour l'élaboration de cursus d'apprentissage, et à des organisations professionnelles pour établir des programmes de certification ou d'accréditation professionnelle[1]. Le SWEBOK s’adresse donc aux enseignants chargés de bâtir des programmes de l’enseignement supérieur et aux étudiants. Il peut être aussi utilisé par les entreprises privées et publiques comme un guide des connaissances du domaine pour mettre en place des bonnes pratiques d’ingénierie du logiciel. Ce qui ne veut pas dire que tout ingénieur devra l’appliquer sans réflexion.
Son but est de structurer le génie logiciel en 15 domaines de compétences, et de présenter les pratiques « généralement acceptées », techniques et normes correspondantes. Il fait ainsi un inventaire méthodologique qui permet d'orienter le praticien. Toutefois l'attention du lecteur est attiré sur le fait qu'il s'agit d'un guide sur le corpus et non du corpus lui-même[1] : le SWEBOK se réfère ainsi à des connaissances métier existantes, sans chercher à se substituer à d'autres ouvrages et sources de référence. Par ailleurs, il documente en quoi le génie logiciel constitue une discipline à part entière de l'ingénierie.
Historique
Les travaux pour établir le SWEBOK ont démarré en 1993 à la suite d'une initiative conjointe entre l'IEEE et l'ACM[1] et ont été organisés en trois phases[3].
Le début de l'élaboration de ce référentiel est concomitante avec les travaux de l'Organisation Internationale de normalisation initiés en 1990 et qui ont abouti à la promulgation en 1995 de la norme ISO 12207 sur le cycle de vie des processus logiciels. Cette norme a servi de base de référence au SWEBOK, qui en est toutefois indépendant et ne se limite pas à la norme[1].
Une première version du SWEBOK est réalisée en 1998 mais nécessite des améliorations[4] - [5].
L'ACM s'est retiré des instances de pilotage du SWEBOK en 2000, après avoir constaté que l'IEEE envisageait d'utiliser le SWEBOK comme base pour réglementer l'accès à la profession d'ingénieur logiciel (via une licence d'exercice), ce à quoi l'ACM s'oppose fondamentalement[6].
Une seconde version du SWEBOK[7] est publiée en 2004. Elle a été publiée en 2005 sous la forme d’un rapport technique de normalisation ISO/IEC TR 19759:2005.
La norme ISO 12207 est révisée en 2008 et prend l'intitulé « Ingénierie des systèmes et du logiciel -- Processus du cycle de vie du logiciel »[8].
Une troisième version[1], le SWEBOK 3.0, est publiée en 2014. Elle a été publiée en 2015 sous forme d'un rapport technique de normalisation ISO/IEC TR 19759:2015 également diffusé par l'AFNOR[9]. C'est la version actuelle du référentiel.
La norme ISO 12207 est révisée en 2017 et devient une norme commune avec l'IEEE, et cite le SWEBOK en tant que rapport technique de référence.
Les domaines de connaissance du génie logiciel
Le SWEBOK structure le génie logiciel en 15 domaines de connaissances. Un chapitre est dédié à chacun d'entre eux:
- Exigences du logiciel ( « Software requirements »)
- Conception du logiciel ( « Software Design »)
- Construction du logiciel (« Software Construction »)
- Test du logiciel ( « Software Testing »)
- Maintenance du logiciel ( « Software Maintenance »)
- Gestion de la configuration du logiciel ( « Software Configuration Management »)
- Management du génie logiciel ( « Software Engineering Management »)
- Processus du génie logiciel ( « Software Engineering Process »)
- Modèles et méthodes du génie logiciel ( « Software Engineering Models and Methods »)
- Qualité du logiciel ( « Software Quality »)
- Pratique professionnelle du génie logiciel ( « Software Engineering Professional Practice »)
- Principes économiques du génie logiciel ( « Software Engineering Economics »)
- Bases informatiques ( « Computing Foundations »)
- Bases mathématiques ( « Mathematical Foundations »)
- Bases d'ingénierie ( « Engineering Foundations »)
Ces domaines, et les processus évoqués dans les domaines ne sont pas à comprendre comme des activités séquentielles.
Les disciplines liées au génie logiciel
Le SWEBOK identifie les disciplines suivantes comme étant liées au génie logiciel:
- L’ingénierie informatique (« Computer engineering » en anglais);
- L'informatique (« Computer science » en anglais)
- Les mathématiques;
- La gestion;
- La gestion de projet;
- Le management de la qualité;
- L’ingénierie des systèmes.
Participation au dispositif du SWEBOK
Le projet SWEBOK est le fruit d’une collaboration entre universités, industries et associations professionnelles soit :
- Associations professionnelles : IEEE Computer Society, ACM (s’est retirée en 2000)[6]
- Autres organisations professionnelles : Conseil canadien des ingénieurs (CCI), Conseil national de recherches Canada (CNRC)
- Organisations publiques: NIST, MITRE Corporation
- Entreprises : Boeing, Raytheon, Construx, Rational Software (vendue Ă IBM en 2003), SAP
- Entités académiques :École de technologie supérieure (ÉTS), Université du Québec à Montréal (UQÀM)
RĂ©actions face Ă SWEBOK
Il y a eu de fortes réactions lors du processus de création du SWEBOK, en raison de l'intention affichée par l'IEEE d'utiliser le SWEBOK pour règlementer l'accès à la profession d'ingénieur logiciel sur la base d'un mécanisme de licence professionnelle. L'ACM qui était co-initiatrice du SWEBOK s'est ainsi retirée du projet dès 2000, en raison de son opposition rigoureuse à une telle restriction règlementaire, et de sa position en faveur d'un accès libre à la profession[6].
Plusieurs auteurs ont critiqué publiquement une version préliminaire du SWEBOK 2004, lors d'une phase publique d'appel à commentaires, que ce soit sur l'intention d'établir une licence professionnelle, ou sur la base du contenu jugé comme prêtant à question, insuffisant ou erroné comme Martin Fowler[10], Cem Kaner (professeur de génie logiciel)[11] - [12] et Grady Booch.
Depuis, le SWEBOK a subi plusieurs révisions qui on fait intervenir plus de 150 praticiens. L'avant propos de la version en vigueur ne mentionne plus le mécanisme de licence professionnelle qu' à titre d'exemple, parmi les procédés à disposition des professions pour diffuser les connaissances nécessaires à leur exercice, au même titre que les études, les formations, et les certifications[1]. La dernière version du SWEBOK prend de plus en compte les pratiques agile, et précise pour plusieurs domaines, comme par exemple les exigences ou la conception, que le processus est nécessairement itératif.
Notes et références
- (en) Bourque, Pierre, Fairley, R. E. (Richard E.) et IEEE Computer Society, Guide to the software engineering body of knowledge (ISBN 978-0-7695-5166-1, OCLC 1100623800, lire en ligne)
- (en-US) « Software Engineering Body of Knowledge (SWEBOK) | IEEE Computer Society » (consulté le )
- P. Bourque, R. Dupuis, A. Abran et J.W. Moore, « The guide to the Software Engineering Body of Knowledge », IEEE Software, vol. 16, no 6,‎ , p. 35–44 (DOI 10.1109/52.805471, lire en ligne, consulté le )
- (en) I. Monarch, « Understanding software engineering failure as part of the SWEBOK », Proceedings 14th Conference on Software Engineering Education and Training. 'In search of a software engineering profession' (Cat. No.PR01059), IEEE Comput. Soc,‎ , p. 191–192 (ISBN 9780769510590, DOI 10.1109/CSEE.2001.913843, lire en ligne, consulté le )
- (en) P. Bourque et T.C. Lethbridge, « Improvements to the Guide to the Software Engineering Body of Knowledge (SWEBOK) and to the Software Engineering Education Body of Knowledge (SEEK) », Intermag Europe 2002 Digest of Technical Papers. 2002 IEEE International Magnetics Conference (Cat.No.02CH37323), IEEE Comput. Soc,‎ , p. 7–7 (ISBN 9780769518787, DOI 10.1109/STEP.2002.1267594, lire en ligne, consulté le )
- John White et Barbara Simons, « ACM's position on the licensing of software engineers », Communications of the ACM, vol. 45, no 11,‎ (DOI 10.1145/581571.581602, lire en ligne, consulté le )
- (en) Alain Abran et James W Moore, Guide to the software engineering body of knowledge, IEEE Computer Society, (OCLC 607598432, lire en ligne)
- ISO, « ISO/IEC 12207:2008 », sur ISO (consulté le )
- « ISO/IEC TR 19759:2015, Octobre 2015 », sur afnor.org
- (en) « Martin Fowler - Swebok », sur martinfowler.com, (consulté le )
- (en-US) Cem Kaner, « IEEE’s “Body of Knowledge” for Software Engineering « Cem Kaner, J.D., Ph.D. », sur kaner.com, (consulté le )
- (en-US) Cem Kaner, « SWEBOK Problems, Part 2 « Cem Kaner, J.D., Ph.D. », sur kaner.com, (consulté le )