Un programme axé sur le développement d’applications sécuritaires
Ce programme, basé sur les compétences ministérielles actualisées en 2018, allie la formation en entreprise avec des cours au Cégep. Il permet avant tout de développer des compétences en développement d'applications tout en prenant conscience des enjeux de sécurité associés aux pratiques de développement en abordant les 10 principales failles de sécurité présentées par l'OWASP. Pour ce faire, des notions variées seront abordées, telles que l'orienté objet, le développement Web, les bases de données, le déploiement sur l'infonuagique. Visitez la page de l’AEC Développement d’applications sécuritaires pour connaître tous les détails relatifs aux cours de ce programme.
Un stage en deux volets
Le stage d’apprentissage à temps plein comprend deux volets. Le premier volet, d’une durée de six (6) semaines, permet aux stagiaires de se familiariser avec les tâches inhérentes au développement d’applications dans un milieu professionnel où la collaboration et les interactions sont constantes.
Le second volet, d’une durée de neuf (9) semaines, permet aux stagiaires de collaborer à des projets de conception et de développement d’applications en mobilisant des connaissances relatives à l’identification des risques et de la sécurisation des données.
Exemples de mandats pour le 1er volet du stage (6 semaines)
Attitudes professionnelles
- Collaborer aux modifications ou améliorations d’une application
- Interagir avec une équipe de travail
- Intégrer une équipe de travail en participant aux diverses rencontres (ex.: Scrum, gestion de projet, gestion de changement, analyse avec client)
- Mettre en place un projet dans un environnement de développement afin d’y apporter des modifications, d’identifier des bogues ou de comprendre son fonctionnement
- Collaborer à la correction de bogues
- S’impliquer dans le processus de gestion du changement
- Utiliser un gestionnaire de versionnage
- Identifier les pratiques éthiques et sécuritaires de l’entreprise
Collaborer à la conception d'applications
- Collaborer à la conception et programmation d’interfaces (Web et monopostes)
- Utiliser des patrons de conception (ex. : MVC, Singleton, etc.)
- Utiliser des librairies de développement (ex. : ReactJS)
- Programmer une application en appliquant les principes de la programmation orientée objet (héritage et polymorphisme)
- Utiliser des structures de données en mémoire (ex. : tableau, matrice, pile, file, liste, dictionnaire, map, set, etc.)
- Utiliser des structures de données persistantes (fichiers textes et binaires)
- Concevoir et appliquer un diagramme de classe UML
- Collaborer à la conception et à l’application de tests fonctionnels
- Programmer des pages Web statiques et dynamiques incluant des échanges avec un serveur
- Créer une application monopage front-end qui échange des données avec un serveur
Soutien technique
- Apprendre à prioriser des demandes en fonction de leur priorité, de l’échéancier et du temps estimé pour les réaliser
- Consigner les demandes des utilisateurs dans un système de gestion de demandes
- Rendre une station de travail fonctionnelle selon les caractéristiques spécifiées
- Assurer un soutien technique et la formation aux utilisateurs
- Utiliser les outils et composants d’un système d’exploitation afin de configurer efficacement une station de travail
Développement avec BD
- Faire des requêtes dans une base de données, exploiter un langage procédural (ex. : PL/SQL) pour l’exploitation des fonctions, procédures et déclencheurs
- Élaborer le modèle de données d’une situation fournie
Exemples de mandats pour le 2e volet du stage (9 semaines)
- Apporter des améliorations préventives, correctives ou évolutives à une application pour des projets de petite envergure
- Identifier les risques susceptibles de menacer les données informatiques
- Sécuriser l’application et les données
- Valider la sécurité applicative
- Effectuer des tâches de maintenance et de validation d’applications
- Collaborer à un projet de développement
- Participer à une mise en production
- Rédiger de la documentation technique
- Interagir avec une base de donnée
Langages, logiciels et outils
Au fil des sessions, les étudiantes et étudiants manipulent les langages, logiciels et outils suivants :
Langages de programmation
- C#
- HTML, CSS, XML, JavaScript, JQuery, Bootstrap
- SQL, PL/SQL
- ASP.NET
- React.js ou Vue.js, Angular.js, Node.js
- Mobile : Java/Android, Laravel, React native
Systèmes de gestion de bases de données
- Oracle
- MySQL
- SQL Server
- MariaDB
- Entity Framework Core
- Data Binding Microsoft
Outils de développement
- Visual Studio
- Visual Paradigm
- Eclipse
- GIT
Outils de validation de la sécurité des applications
- Veracode
- HpFortify
- SonarQube
- Acunetix
- OWASP ZAP
- SonarCloud
- Microsoft Identity