Est-ce que l'ingénierie de développement logiciel? Si non, quelles sont les choses qui lui manquent pour être ainsi qualifié?
Oui, le génie logiciel est une discipline d'ingénierie.
Wikipedia définit l'ingénierie comme «l'application des mathématiques, ainsi que des connaissances scientifiques, économiques, sociales et pratiques afin d'inventer, d'innover, de concevoir, de construire, d'entretenir, de rechercher et d'améliorer les structures, machines, outils, systèmes, composants, matériaux , processus, solutions et organisations. " Le résultat de l'ingénierie logicielle est un système logiciel qui peut améliorer la vie des gens et peut impliquer une combinaison de connaissances scientifiques, mathématiques, économiques, sociales ou pratiques.
En termes de vision, académique et professionnelle, cela varie. Les programmes de génie logiciel peuvent être accrédités par ABET en tant que programmes d'ingénierie. Les ingénieurs logiciels peuvent être membres de l'IEEE. Certaines entreprises considèrent le génie logiciel comme une discipline d'ingénierie, tandis que d'autres ne le font pas - c'est vraiment un jeu d'enfant.
Le meilleur livre sur ce sujet est le développement de logiciels professionnels de Steve McConnell: programmes plus courts, produits de meilleure qualité, projets plus réussis, carrières améliorées . Il examine le génie logiciel en tant que profession, l'évolution d'un métier à une profession, la science du développement logiciel, la différence entre le génie logiciel et le génie logiciel (appliquer les pratiques d'ingénierie aux logiciels par rapport aux ingénieurs qui créent des logiciels, avec une étude de cas qui comprend mon alma mater ), la certification et les licences, et l'éthique.
Glenn Vanderburg a une série de conférences appelées "Real Software Engineering" qui a donné entre 2010 et 2015 lors d'un certain nombre de conférences, ainsi que deux conférences connexes, "Craft, Engineering, and the Essence of Programming" (données en 2011 en tant que keynote at RailsConf) and "Craft and Software Engineering" (donné en 2011 à QCon Londres). Je pense que ces discussions sont un argument assez complet pour expliquer pourquoi le génie logiciel est une discipline d'ingénierie.
Un argument, que Vanderburg soulève brièvement dans ses entretiens, est celui avancé par Jack W. Reeves en 1992 (et revu à nouveau en 2005) sur ce qu'est la conception de logiciels et comment le code est le résultat des activités de conception en génie logiciel ( c'est aussi discuté sur le wiki C2). Une fois que vous vous éloignez des anciennes écoles de pensée où la spécification et la modélisation sont la conception de logiciels et que le code est la conception de logiciels, certaines des relations entre le génie logiciel et d'autres disciplines de l'ingénierie deviennent plus évidentes. Certaines différences et les raisons de ces différences deviennent encore plus apparentes lorsque vous voyez que l'économie du développement logiciel est très différente de celle de nombreuses autres disciplines - la construction est bon marché (presque gratuite, dans de nombreux cas), tandis que la conception est la partie coûteuse.
Est-ce que [CMMI] va transformer le développement en ingénierie?
Non. CMMI est un cadre d'amélioration des processus qui fournit aux organisations des conseils sur les types d'activités utiles lors de la création de logiciels. Les disciplines d'ingénierie ont généralement un processus d'ingénierie. Avoir un tel processus est important pour la réussite de projets de haute qualité. Cela dit, le CMMI (ou tout autre cadre ou méthodologie de processus) n'est qu'un outil unique - son utilisation ne vous fera pas passer magiquement d'un développeur à un ingénieur. Cependant, ne pas suivre une sorte de processus est, à mon avis, le signe d'un projet qui n'est pas un projet d'ingénierie.
Aussi, quelle est votre opinion sur les cours / certificats en génie logiciel?
C'est seulement autant de valeur que d'autres y mettent. Il y a des cours utiles et des cours inutiles. Il existe des certificats précieux et des certificats qui ne valent pas le papier sur lequel ils sont imprimés. Il y a beaucoup de facteurs, de qui approuve ou accrédite le cours ou qui délivre le certificat à votre industrie d'emploi actuelle à votre emploi actuel et où vous voulez aller.