Admissibilité des travaux dans le cadre de projets de RS&DE qui comportent le développement de logiciels

Transcription

Diapositive 1

L’omniprésence des logiciels dans les produits et services modernes est incontestable. Le développement logiciel semble jouer un rôle dans la création ou l’amélioration de produits ou services dans presque tous les secteurs. Naturellement, un pourcentage élevé des demandes de recherche scientifique et développement expérimental (RS&DE) porte sur le développement logiciel. Ce webinaire vise à illustrer les notions de RS&DE appliquées aux travaux liés au développement logiciel.

Diapositive 2

Tout d’abord, nous allons résumer brièvement la RS&DE, la politique sur l’admissibilité des travaux, et la définition de la technologie. Par la suite, nous appliquerons ceci aux travaux portant sur le développement logiciel et nous en fournirons une illustration à travers des exemples. En d’autres mots, nous allons:

  • examiner l’admissibilité des travaux intégrant le développement logiciel, dans le cadre de la RS&DE, à travers des exemples pratiques,
  • assurer une compréhension commune de la RS&DE dans le contexte du développement logiciel.

Compte tenu des contraintes de temps, nous espérons que vous comprendrez qu’il ne sera pas possible de nous attarder sur tous les aspects de cette question. Aussi, veuillez noter que cette présentation portera uniquement sur les aspects techniques liés à l’admissibilité des travaux.

Diapositive 3

Dans ce webinaire, nous passerons en revue les aspects clés de la définition de la RS&DE et la méthodologie utilisée pour déterminer l’admissibilité des travaux.

Nous examinerons dans les grandes lignes les situations dans lesquelles nous rencontrons le développement logiciel dans les demandes au titre de la RS&DE.

Nous illustrerons le concept de technologie appliqué aux logiciels, nous nous pencherons sur quelques domaines d’avancement technologique pour illustrer le fait que le potentiel d’avancement existe dans de nombreux domaines.

Nous examinerons les concepts clés de la RS&DE dans la méthode des 5 questions à l’aide d’exemples liés au développement logiciel.

Diapositive 4

Pour que les travaux soient admissibles aux encouragements fiscaux, ils doivent satisfaire à la définition législative de la recherche scientifique et du développement expérimental. Par conséquent, lorsque nous parlons « d’admissibilité des travaux » ou de « travaux admissibles », nous faisons référence aux travaux qui satisfont à la définition législative de la RS&DE. Le paragraphe 248(1) de la Loi de l’impôt sur le revenu définit la RS&DE.

La première partie de la définition nous renseigne essentiellement sur comment les travaux de RS&DE sont menés. C’est-à-dire que les travaux doivent prendre la forme d’une investigation ou recherche systématique d’ordre scientifique ou technologique, effectuée par voie d’expérimentation ou d’analyse.

La deuxième partie de la définition précise pourquoi les travaux sont menés. C’est-à-dire qu’ils doivent être entrepris :

  • pour l’avancement de la science: identifiés comme a) la recherche pure ou b) la recherche appliquée suivant qu’une application pratique est ou n’est pas en vue, ou
  • dans l’intérêt du progrès technologique: identifié comme c) le développement expérimental.

Diapositive 5

La méthodologie en deux étapes sert à déterminer si et dans quelle mesure les travaux satisfont à la définition de la RS&DE :

L’étape 1 consiste à déterminer s’il y a de la RS&DE.

L’étape 2 consiste à déterminer l’étendue des travaux admissibles (seulement s’il y a RS&DE).

L’objectif de ce webinaire étant l’admissibilité des travaux faisant intervenir le développement logiciel, nous limiterons la portée à l’étape 1.

Pour déterminer s’il y a de la RS&DE, nous utilisons la méthode des cinq questions telle qu’elle est décrite dans la politique.

Diapositive 6

La méthode qui permet établir s’il y a de la RS&DE consiste à répondre aux cinq questions suivantes :

  1. Existait‑il une incertitude scientifique ou technologique ?
  2. Est-ce que des hypothèses visant expressément à réduire ou à éliminer cette incertitude ont été formulées ?
  3. Est-ce que l’approche globale adoptée était conforme à une investigation ou recherche systématique, incluant la formulation et la vérification des hypothèses par voie d’expérimentation ou d’analyse ?
  4. Est-ce que l’approche globale adoptée visait à réaliser un avancement scientifique ou technologique ?
  5. Est-ce qu’un registre des hypothèses vérifiées et des résultats a été conservé au cours des travaux ?

Rappel : Il y a de la RS&DE si la réponse à chacune des cinq questions est « oui ».

Diapositive 7

Examinons maintenant trois scénarios de projets faisant intervenir le développement logiciel.

Dans le premier scénario, le logiciel lui-même est le produit, le procédé ou le dispositif nouveau ou amélioré.

Voici trois exemples pour ce scénario:

Un logiciel codec vocal, tel que le codec G.729, est un produit logiciel qui comprend une implémentation particulière d’un algorithme de compression pour les données vocales.

Les systèmes d’information Web et des outils de gestion de documents sont des produits logiciels qui permettent la gestion, le stockage et la publication de documents sur le Web

Un logiciel de prédiction de la structure des protéines qui permet de prédire le modèle de structure tridimensionnelle des molécules de protéines à partir de séquences d’acides aminés est un produit logiciel.

Diapositive 8

Pour le deuxième scénario, le produit, le procédé ou le dispositif nouveau ou amélioré représente une combinaison de matériel et de logiciel. Regardons deux exemples.

Les contrôleurs de commande électrique peuvent être un matériel avec logiciel embarqué qui intègre l’électronique de puissance et les microprocesseurs pour exercer un contrôle dynamique sur la vitesse, le couple et l’efficacité.

Les systèmes de lecture de chèques bancaires qui reposent sur un logiciel de réseaux de neurones convolutifs peuvent se composer de matériel mécanique et électrique permettant de numériser et traiter automatiquement les chèques.

Diapositive 9

Le troisième scénario concerne les projets où le développement logiciel est nécessaire, mais où le logiciel développé ne fait pas partie du produit, du procédé ou du dispositif. Examinons deux exemples.

Ce premier cas concerne le développement de code en langage de description de matériel (HDL ou Hardware Description Language) pour des circuits ASIC (ou Application-Specific Integrated Circuit) en utilisant des outils tels que les simulateurs Verilog/VHDL et les outils de synthèse HDL.

Le deuxième cas est celui où le développement logiciel est nécessaire pour effectuer des essais ou mener une expérience en utilisant des outils de capture de paquets supportant la programmation à l’aide de scripts.

Diapositive 10

Après avoir survolé ces trois scénarios, examinons maintenant le concept de technologie.

Comme nous l’avons mentionné précédemment, le développement expérimental est entrepris dans le but de réaliser un progrès technologique. Alors, qu’est-ce que la technologie ?

La technologie n’est pas une entité physique.

La technologie est l’application pratique des connaissances et des principes scientifiques.

C’est la compréhension de la transposition de faits et de principes déterminés scientifiquement dans le matériau, dispositif, produit ou procédé.

À mesure que la technologie évolue, les applications pratiques des connaissances et des principes scientifiques ainsi que les connaissances technologiques associées aux produits, procédés ou dispositifs deviennent des faits et des principes scientifiquement déterminés pour un développement ultérieur.

Regardons quelques exemples illustrant ce point.

Diapositive 11

Un microcontrôleur ou un microprocesseur peut exécuter du code machine sans la présence d’un système d’exploitation, et tout programme informatique développé par l’utilisateur peut fonctionner directement sur celui-ci.

En revanche, dans un système d’exploitation, le programme ou logiciel développé par l’utilisateur s’exécute dans un environnement géré.

Le noyau du système d’exploitation regroupe la gestion des processus, la gestion de la mémoire et la gestion des Entrées/Sorties pour gérer l’environnement.

Dans la gestion des processus, un ordonnanceur gère les tâches et les processus à l’aide de structures de données complexes qui fonctionnent conjointement avec d’autres composantes.

Comme nous pouvons le voir, dans un système d’exploitation moderne, le noyau et d’autres composantes non mentionnées dans la diapositive constituent les faits et principes scientifiquement déterminés. De la même façon pour le noyau, c’est la gestion des processus, la gestion de la mémoire, la gestion des Entrées/Sorties et d’autres composantes. À un niveau plus détaillé, l’ordonnanceur comprend des Listes, des Files d’attente, etc.

Diapositive 12

Même lorsque nous utilisons un microcontrôleur sans système d’exploitation, les outils utilisés pour générer le code machine peuvent provenir d’un ensemble d’outils (ou toolset).

Ce deuxième exemple concerne une plateforme ouverte (ou open source) de prototypage électronique. Cette plateforme fournit un outil utilisant les principes des langages de programmation pour permettre l’écriture de programmes dans un langage plus évolué que le code machine. Cet outil utilise aussi les principes du compilateur qui transforme le code en fichiers objets (c'est-à-dire des instructions lisibles par la machine) et un éditeur de liens pour combiner les fichiers objets avec des bibliothèques.

Les principes sur lesquels reposent le langage de programmation, le compilateur, l’éditeur de liens et l’interface graphique sont les faits et principes scientifiquement déterminés dans cet ensemble d’outils (ou toolset).

On peut observer une évolution similaire dans les technologies associées au Web, aux systèmes d’information, aux bases de données, au stockage et recherche distribués, etc.

Diapositive 13

Nous avons examiné la définition de la technologie à travers des exemples logiciels.

De nouveaux produits et services sont en train d’être conçus en utilisant ou combinant diverses technologies qui permettent de créer des applications complexes. Cela entraîne la réalisation de progrès constants.

La tendance dans le développement logiciel s’est orientée vers les services partagés tels que les suivants:

  • Logiciel en tant que service (ou SaaS),
  • Plateforme en tant que service (ou PaaS), et
  • Infrastructure en tant que service (ou laaS)

Nous observons cette tendance avec l’infonuagique qui est rendu possible par d’énormes progrès dans les technologies matérielles et logicielles.

D’un point de vue logiciel, les services de l’infonuagique sont devenus possibles grâce à l’avancement des réseaux et celui des infrastructures et calcul distribués.

Tous ces développements font appel à divers avancements dans la pile des technologies logicielles.

Ceci est une illustration de la façon dont divers avancements offrent une plateforme pour les applications modernes des mégadonnées (ou big data).

Comme vous le savez tous, différentes sociétés se livrent concurrence dans différents domaines technologiques. Par exemple, une société spécialisée dans le calcul distribué touche à des technologies différentes de celles abordées par des sociétés qui travaillent sur des bases de données ou sur des réseaux de diffusion de contenu. Ces sociétés ont le potentiel de faire progresser la technologie dans leurs domaines respectifs.

Diapositive 14

Les sociétés produisent différents produits et services en utilisant la technologie. La RS&DE concerne l’avancement technologique nécessaire pour fournir les produits et services nouveaux ou améliorés. Par conséquent, il est important de faire la distinction entre la technologie et le produit.

Souvent, le nom du produit, du procédé ou du dispositif sert également à identifier la technologie.

La distinction réside dans le fait que :

  1. Les produits, les procédés et les dispositifs ont trait aux caractéristiques, fonctionnalités, capacités, etc.
  2. La technologie, par contre, a trait aux connaissances relatives à la façon dont les éléments incorporés dans le produit, le procédé, ou le dispositif fonctionnent pour fournir les caractéristiques, les fonctionnalités, les capacités, etc.

Prenons l’exemple d’un produit Intranet de gestion et de stockage de documents qui comprend des fonctionnalités, des interfaces, des interfaces de programmation applicatives (API ou Application Programming Interface) et des ensembles d’outils (ou toolsets).

Diapositive 15

La compréhension des capacités et des limites d’un tel système vis-à-vis de la création d’une application Intranet, l’utilisation de ses APIs/interfaces pour développer cette application, ou les renseignements concernant ses caractéristiques et ses fonctionnalités se rapportent au produit.

En revanche, la connaissance du fonctionnement interne d’un tel système et de la façon dont les différentes interactions produisent, influencent et affectent les caractéristiques, les interfaces, les APIs, les ensembles d’outils, etc. se rapporte à la technologie.

Diapositive 16

Après avoir abordé quelques notions relatives à la technologie et à la politique sur l’admissibilité des travaux, commençons maintenant par examiner les concepts associés aux 5 questions dans cette politique.

Nous allons donc commencer par traiter la question 1 relative à l’existence d’une incertitude scientifique ou technologique. Cela sera couvert par les diapositives 16 à 33.

Une incertitude scientifique ou technologique existe si la probabilité d’atteindre un objectif ou un résultat donné, ou la façon d’y parvenir, ne peuvent être connues ou déterminées d’après l’expérience ou les connaissances scientifiques ou technologiques généralement disponibles.

La base de connaissances scientifiques ou technologiques fait référence à l’état actuel de la technologie et des connaissances scientifiques et englobe les connaissances relatives aux ressources de la société et aux ressources du domaine public.

L’état actuel de la technologie peut être insuffisant pour résoudre un problème. Par conséquent, il est important d’identifier les déficiences ou les limites de la technologie qui empêchent le développement d’une caractéristique, d’une fonctionnalité ou d’une capacité nouvelle ou améliorée.

Il est donc important d’établir la base de connaissances technologiques afin d’identifier l’incertitude technologique.

Diapositive 17

Prenons un exemple pour illustrer le type d’information qui permet d’établir la base de connaissances technologiques.

Dans le domaine des télécommunications, on peut imaginer le cas d’une société développant des distributeurs automatiques d’appels (ACD ou Automatic Call Distributor) pour la téléphonie basée sur la voix sur IP (VoIP ou Voice over IP). Cette société veut éviter les échecs dans les appels utilisant le protocole d’initiation de session (SIP ou Session Initiation Protocol) en raison de défaillances matérielles, logicielles, de systèmes ou de réseaux.

Les connexions pair-à-pair à travers le réseau de données sont sensibles à de telles défaillances, ce qui entraîne des interruptions de session.

Pour les sessions vocales au-dessus des réseaux de données, ceci a comme effet indésirable la perte des appels téléphoniques en cours et des configurations d’appels en cours d’initialisation.

Diapositive 18

Cette société affirme que la base de connaissances technologiques n’a pas permis d’assurer la continuité des appels (c'est-à-dire avoir des appels téléphoniques continus sans réinitialisation).

Les renseignements dont s’est servie cette société pour arriver à cette conclusion peuvent aider à établir la base de connaissances technologiques.

  • En commençant par définir la technologie ou les technologies en question (telles que le protocole d’initiation de session, le protocole de description de session (SDP ou Session Description Protocol), le protocole de transport en temps réel (RTP ou Real-time Transport Protocol) et leurs interactions),
  • identifier ce qui est disponible dans la base de connaissances technologiques en ce qui concerne les appels pair-à-pair, les modes d’échec, la configuration des appels, la progression des appels et la déconnexion des appels,
  • décrire les technologies propriétaires utilisées,

Diapositive 19

  • identifier les brevets ou les renseignements techniques associés à la façon dont les échecs d’appel sont traités à l’aide de l’état actuel de la technologie,
  • fournir l’expérience technologique de la société dans les domaines de la technologie tels que la voix sur IP, la théorie de l’information, la téléphonie vocale, la connaissance des protocoles réseau Protocole de contrôle de transmission (TCP ou Transmission Control Protocol), Protocole de datagramme utilisateur (UDP ou User Datagram Protocol), SIP, SDP, RTP, etc.,
  • déterminer où l’état actuel de la technologie est insuffisant,
  • documenter cette recherche quand elle a eu lieu afin d’établir la base de connaissances technologiques à ce moment précis.

Le fait d’établir correctement la base de connaissances technologiques est une étape essentielle avant l’affirmation d’une incertitude technologique.

Diapositive 20

Dans les diapositives précédentes, nous avons défini la base de connaissances technologiques, et à travers des exemples, nous avons illustré le type d’information pertinente qui permet d’établir la base de connaissances technologiques.

Il est important de se rappeler que la base de connaissances technologiques peut différer en fonction des sociétés et des domaines technologiques.

Ce schéma montre que la base de connaissances scientifiques ou technologiques de chaque société est établie au cas par cas.

Au minimum, la base de connaissances scientifiques ou technologiques se situe au niveau du domaine public. Comme mentionné précédemment, une société est censée avoir accès aux connaissances générales au moment où les travaux ont été entrepris. Ceci est indiqué par la base de connaissances scientifiques ou technologiques de la société A.

En comparant avec la société B, cette dernière ne dispose pas de toutes les connaissances et compétences disponibles. Tout effort qu’elle entreprend pour acquérir ces connaissances ou compétences représente simplement un apprentissage. Il s’agit d’un effort pour se mettre à jour et cette démarche ne nécessite pas de la RS&DE.

Dans le cas de la société C, la base de connaissances technologiques se situe au-dessus du domaine public, et inclus les connaissances et savoir-faire exclusifs à cette société.

Diapositive 21

Dans la diapositive 16, nous avons discuté l’incertitude technologique et l’importance d’identifier les déficiences ou les limites de la technologie. Dans ce qui suit, nous allons examiner la limite de la technologie à travers un exemple.

Avant cela, voici quelques informations de contexte pour se préparer à cet exemple:

Comme nous le savons, l’accès aux applications logicielles est basé sur la confirmation de l’identité de l’utilisateur. Les applications logicielles peuvent s’appuyer sur des fournisseurs d’identité et faire confiance à l’identifiant fournit par ces derniers. Ceci est très semblable à la manière avec laquelle les organisations comme les banques identifient des personnes en se basant sur des documents fournit par le gouvernement tels que le permis de conduire.

Aussi, il est souhaitable d’utiliser le même identifiant pour accéder à plusieurs applications. Il est encore mieux si le processus de vérification pour le control d’accès se fasse en arrière-plan à travers des stratégies de sécurité prédéfinies.

Ce type d’accès à des applications se nomme l’authentification unique (SSO ou Single Sign-On).

La sécurité des communications pour demander, générer et fournir des identifiants est critique par rapport à l’intégrité de ce type d’accès.

L’illustration montre l’un des modèles de service de confiance pour la sécurité tel que défini par un consortium de sociétés. Un utilisateur qui demande l’accès à une application obtient un jeton de sécurité à partir d’un fournisseur d’identité reconnu par l’application (ici, ce fournisseur est nommé Service d’émission de jeton de sécurité ou STS pour Security Token Service). Ce jeton de sécurité contient des revendications codifiées pour protéger et autoriser les demandes d’accès. Ces revendications sont des affirmations sur l’utilisateur.

Les spécifications Web Services Federation (ou WS-Federation) est une évolution de ce modèle. Ces spécifications répondent aux besoins des applications Web avec des relations de confiance plus riches et des services de fédération avancés.

Diapositive 22

Maintenons, examinons la limitation de la technologie à travers un exemple lié à l’authentification unique.

En 2013, la société XYZ, leader dans le domaine du logiciel, offrait un accès à sa suite de productivité et aux services connexes dans le nuage (ou cloud), à travers une authentification basée sur une connexion par courriel unique.

Sa capacité d’authentification unique (SSO ou Single Sign-On) reposait sur le modèle de revendication à l’aide de ses services d’annuaire et de gestion d’identité dans le nuage.

Diapositive 23

À cette époque, pour mettre en œuvre l’authentification unique par courriel pour les applications hébergées dans le nuage XYZ, les deux approches généralement disponibles dans la base de connaissances technologiques étaient les suivantes :

  1. La société XYZ fournissait un outil qui permet de synchroniser l’information essentielle entre le service d’annuaire local d’une société et les services d’annuaire et de gestion d’identité dans le nuage. Ceci permettait aux utilisateurs de la société l’accès aux applications dans le nuage même en dehors des locaux de la société.
  2. La deuxième approche consiste à mettre en place un service de fédération: La société XYZ offrait un logiciel de service de fédération qui peut agir en tant que service d’émission de jeton de sécurité (STS ou Security Token Service) lié aux contrôleurs de domaines individuels, afin d’effectuer l’authentification et fournir des jetons de sécurité. Dans cette implémentation, afin de mettre en place l’authentification unique, le service de gestion d’identité dans le nuage fait confiance aux jetons de sécurité émis par ce service de fédération.

Diapositive 24

Nous allons illustrer les deux approches d’authentification unique en commençant par l’approche 2 qui est une véritable authentification unique (ou Single Sign-On)

Ici nous avons l’intranet de la société dans lequel le service de fédération est déployé à travers un serveur de fédération et un serveur proxy se situant dans la zone démilitarisée pour l’accès externe.

Le service d’annuaire de la société contient l’information sur les objets utilisateurs et fournit l’information relative à l’identité au service de fédération.

Nous avons aussi une application déployée au sein de la suite de productivité dans le nuage XYZ.

L’utilisateur se connecte à cette suite de productivité depuis son bureau. Le même utilisateur pourrait avoir besoin d’y accéder en dehors de l’Intranet de la société.

Dans les deux cas, l’utilisateur sera redirigé vers l’application.

L’utilisateur se connectera à l’application.

Comme l’application fait confiance au service de fédération et repose sur celui-ci en ce qui concerne la gestion des identités et des accès, l’utilisateur est donc redirigé vers ce service de fédération.

L’utilisateur obtient finalement le jeton de sécurité à partir du service de fédération ou à partir de son proxy en fonction de l’emplacement de l’utilisateur. Ceci est donc le processus pour obtenir des jetons de sécurité dans l’approche 2.

En ce qui concerne l’approche 1, le nuage XYZ fournit un jeton de sécurité à travers ses services de contrôle d’accès et d’annuaire. Le service d’annuaire dans le nuage est synchronisé avec le service d’annuaire de la société grâce à l’outil de synchronisation fournit par XYZ.

Diapositive 25

Les deux approches, illustrées précédemment, imposent une restriction aux noms d’utilisateurs à travers des hiérarchies d’espaces de nommage sur la base de la séparation des domaines. De plus,

  • l’approche 1 ne constitue pas une véritable authentification unique, mais plutôt une façon de fournir un accès aux utilisateurs internes depuis l’extérieur;
  • quant à la seconde approche, elle représente bien une authentification unique, mais elle exige un serveur de fédération et un serveur proxy pour chaque contrôleur de domaine. Elle utilise également des comptes d’utilisateur de domaine pour la connexion.

Prenons comme exemple le cas imaginaire d’une société qui a comme objectif de projet le développement d’une authentification unique en utilisant la gestion d’identité et le contrôle d’accès dans le nuage XYZ, sans avoir les restrictions sur les noms d’utilisateurs ou nécessiter un service de fédération pour la gestion des identités.

Diapositive 26

Voyons maintenant quelle est la limitation de la technologie dans cet exemple.

L’option d’authentification unique fédérée disponible dans le nuage XYZ utilisait le protocole WS-Federation aux fins de connexion.

Le service de gestion d’identités dans le nuage faisait confiance au service de fédération pour lui fournir les jetons de sécurité.

La base de connaissances technologiques, incluant la compréhension de la façon dont la gestion de l’identité fonctionnait au niveau du nuage XYZ, était insuffisante pour la société pour déterminer si la restriction imposée par l’approche 2 pouvait être surmontée.

À ce stade, ceci constitue une limitation de l’état actuel de la technologie.

Des travaux peuvent être entrepris pour faire progresser les connaissances pour le développement de cette solution d’authentification unique.

Maintenant, nous allons voir quelques exemples pour illustrer les idées fausses les plus courantes au sujet de l’incertitude technologique.

Diapositive 27

Le premier exemple est pour souligner que l’absence d’une capacité n’équivaut pas à une incertitude technologique.

Une société souhaite mettre au point une nouvelle version pour son application mobile client-serveur. La version précédente fonctionnait conjointement avec un Serveur d’Entreprise (Enterprise Server) très connu et utilisait son service Push du côté serveur. La nouvelle version de l’application doit fonctionner dans des configurations où le Serveur d’Entreprise ne peut être disponible.

Dans les applications client-serveur, le serveur répond aux requêtes du client. Avec le service Push coté serveur du Serveur d’Entreprise, les applications clientes peuvent recevoir des informations de la part des serveurs même si elles n’ont pas initié la requête.

La société ne peut pas invoquer l’absence de la capacité Push du Serveur d’Entreprise comme une incertitude technologique pour son travail visant le développement d’une certaine forme du service Push. La société doit identifier une limitation de la technologie qui empêche le développement d’un tel service

Diapositive 28

Le deuxième exemple est pour souligner l’importance de faire la distinction entre l’objectif du projet et l’incertitude technologique.

Un logiciel basé sur l’état de l’art en matière de traitement du langage naturel (TLN) (ou NLP pour Natural Language Processing) traite des phrases en anglais, issues de conversations sur les réseaux sociaux, avec un taux de N mots par seconde et une exactitude d’interprétation sémantique de 75 %.

La société cherche à améliorer le logiciel en augmentant de 30 % le taux de traitement des mots et en ciblant une exactitude de 85 %. Cela traduit un objectif de projet sans traduire une limitation de la technologie qui empêche la société d’atteindre un tel objectif.

Mentionner qu’il y a eu incertitude quant à savoir si l’objectif du projet peut être atteint ne traduit pas une limitation de l’état actuel de la technologie.

Diapositive 29

Les objectifs de performance, la mesure de l’efficacité, les exigences en termes de passage à l’échelle, la mesure de la redondance et la fiabilité sont des indicateurs d’un produit, d’un procédé, d’un dispositif ou d’un matériau.

L’incertitude technologique peut être l’une des raisons pour lesquelles une certaine valeur d’une métrique est impossible à obtenir. Mais, le fait de vouloir obtenir cette valeur est un objectif fonctionnel, et tenter de réaliser cet objectif ne signifie pas nécessairement une tentative de réaliser un avancement technologique en éliminant une incertitude technologique.

Diapositive 30

Le troisième exemple est pour mettre le point sur l’importance d’aborder la limitation de la technologie et non la contourner.

Lors de la création ou de l’amélioration d’un produit, on peut soupçonner qu’un problème rencontré s’explique par une limitation de la technologie.

Une société peut choisir de développer une solution qui contourne ou évite le problème en utilisant des alternatives.

Dans un tel scénario, le problème identifié ne peut pas être considéré comme l’incertitude technologique pour les travaux.

Diapositive 31

Voyons un exemple pour illustrer ce scénario.

Une société possède un grand groupe spécialisé dans le développement des applications pour un système d’exploitation mobile. Lors du développement à l’aide d’un kit de développement logiciel (SDK ou Software Development Kit) particulier, la société a constaté que les applications échouaient de façon aléatoire lors de la manipulation d’une grande quantité de données à un rythme rapide.

Des investigations et analyses préliminaires ont amené à soupçonner que l’échec pourrait être dû à :

  • des problèmes liés à la gestion de la mémoire virtuelle dans la bibliothèque du SDK, ou
  • une bibliothèque mal construite qui n’est pas fiable.

Diapositive 32

Après mûre réflexion, la société choisit de ne pas aborder le problème du SDK et décide de construire son propre SDK.

Puisque le développement du nouveau SDK n’aborde pas directement les problèmes relatifs au SDK existant, ils ne peuvent donc pas être invoqués comme limitation de la technologie pour le développement du nouveau SDK.

Il est important de déterminer si une limitation de la technologie empêche le développement du nouveau SDK.

Diapositive 33

Nous avons vu un exemple relatif à la limitation de la technologie. Nous avons aussi vu quelques exemples pour traiter quelques idées fausses relatives à l’incertitude technologique.

Voyons maintenant quelques caractéristiques importantes de l’incertitude technologique.

L’incertitude technologique traduit l’idée qu’il existe un problème ou un obstacle de nature technologique qui ne peut être résolu à l’aide des connaissances/renseignements disponibles dans la base de connaissances technologiques.

Elle décrit le moment où la nature du travail passe de l’utilisation de la base de connaissances technologiques à la recherche d’une solution en s’attaquant à la limitation de la technologie.

Ce sont les détails des travaux qui permettent de confirmer que des travaux ont été entrepris pour réduire ou éliminer une incertitude technologique. Cela permettra également d’éliminer les cas où :

  • les travaux entrepris ont contourné la limitation, ou
  • les conclusions des travaux entrepris se trouvent dans la base de connaissances technologiques.

Une fois qu’une incertitude technologique est identifiée, les techniques utilisées pour l’investigation ou la recherche systématique peuvent être des techniques qui se trouvent dans la base de connaissances technologiques.

Pour illustrer ce dernier point, prenons par exemple les expérimentations qui nécessitent la surveillance du trafic réseau à l’aide des outils de capture et d’analyse de paquets.

Même si les techniques de capture et de surveillance du trafic sont bien connues et considérées comme étant dans la base de connaissances technologiques, elles sont par contre requises dans les expérimentations dont les résultats proviennent d’informations relatives aux paquets.

Diapositive 34

Après avoir discuté de l’incertitude technologique, nous allons maintenant illustrer le concept d’hypothèse qui est nécessaire pour pouvoir répondre à la Question 2.

Des hypothèses appropriées peuvent être formulées pour plus d’investigation après avoir identifié ce qui manque dans la base de connaissances scientifiques ou technologiques.

Alors, qu'est-ce qu’une hypothèse ?

Une hypothèse est une idée conforme aux faits connus.

Par exemple, supposer que la vitesse de transmission de données Internet peut dépasser la vitesse de la lumière n’est pas conforme aux faits connus.

L’hypothèse prend la forme d’une supposition ou d’une explication sur la base de preuves limitées et sert de point de départ à des investigations plus approfondies.

Exemple 1 : En effectuant une revue de piles technologiques pour décider lequel sélectionner parmi deux systèmes d’exploitation temps-réel ‘A’ et ‘B’, une supposition que le système ‘A’ offrira une meilleure gestion des interruptions que le système ‘B’ n’a aucun lien avec une quelconque lacune au niveau de la base de connaissances scientifiques ou technologiques. Il ne s’agit donc pas d’une hypothèse pour la RS&DE.

Exemple 2: Par contre, en reprenant l’exemple précédent sur la limitation de la technologie, une supposition que des données spécifiques aux objets du service d’annuaire sont utilisées dans la composition des revendications pour les jetons de sécurité du nuage XYZ dans WS-Federation constitue une hypothèse pour la RS&DE.

La formulation d’hypothèses appropriées est essentielle pour une approche planifiée de la RS&DE.

Diapositive 35

Nous allons maintenant illustrer le concept d’investigation ou recherche systématique relatif à la Question 3. Ceci couvre les diapositives 35 à 46.

Après avoir formulé l’hypothèse de départ, l’investigation ou la recherche se poursuit par l’expérimentation ou l’analyse pour traiter la limitation de l’état actuel de la technologie.

Les détails des travaux établissent si une investigation ou une recherche systématique a été réalisée dans le but d’éliminer ou de réduire l’incertitude technologique.

Diapositive 36

Les travaux entrepris pour le développement du produit, du procédé, ou du dispositif nouveau ou amélioré peuvent conduire à des conclusions différentes. Nous allons illustrer cela avec trois scénarios en utilisant des exemples. Notez que les exemples de ces scénarios seront utilisés plus tard dans cette présentation pour illustrer d’autres concepts.

Dans le premier scénario: Les travaux entrepris confirment les connaissances qui se trouvent déjà dans la base de connaissances technologiques, et ils déterminent l’adéquation des solutions de rechange qui font aussi partie de la base de connaissances technologiques.

Dans le deuxième scénario: Pendant le développement d’une application novatrice, les problèmes rencontrés ont d’abord été suspectés comme étant une limitation de la technologie, mais les travaux entrepris établissent que la solution se trouve dans la base de connaissances technologiques.

Enfin, dans le troisième scénario: Les travaux ont été entrepris pour faire progresser les connaissances liées à l’état actuel de la technologie au-delà de la base de connaissances technologiques, en réduisant ou en éliminant une incertitude technologique.

Diapositive 37

Examinons maintenant dans le détail un exemple du 1er scénario.

Une société est en train de développer une application en ligne qui permettra aux utilisateurs d’interroger une très grande base de données contenant des renseignements sur des produits et des prix. L’application utilise l’emplacement de l’utilisateur pour afficher les produits triés selon la proximité. Les besoins du système ont été définis en termes de temps d’achèvement de la recherche et de la possibilité d’effectuer des mises à jour en direct de la base de données en temps opportun.

La société a entrepris les travaux suivants:

Un système initial a été développé à l’aide d’un système de gestion de bases de données relationnelles (SGBDR) moderne. La performance de la recherche ne répondait pas aux critères préalablement définis et les mises à jour en direct prenaient beaucoup de temps. Le temps consommé par les différents processus du flux de travail (ou workflow) a été mesuré, de l’entrée utilisateur jusqu’à l’affichage du résultat final. Cela a permis d’identifier les calculs qui prenaient trop de temps.

Diapositive 38

Pour réduire le temps de recherche, les calculs répétitifs identiques ont été remplacés par des tables de correspondance (ou look-up tables) et des tables de base de données mises en cache. La mémoire cache n’était pas suffisante car il y avait beaucoup de grandes tables. Ces grandes tables étaient nécessaires pour éviter les requêtes complexes qui dépendent de plusieurs tables. Les changements ont été effectués et cela n’a pas amélioré la performance. Le temps de recherche n’a pas atteint le niveau souhaité.

La société a mis au point une solution alternative basée sur une plateforme de recherche faisant appel à des fonctionnalités avancées de recherche textuelle. Le temps de recherche se trouvait alors dans la bonne fourchette, mais les mises à jour de la base de données ne satisfaisaient pas aux critères établis.Une analyse a été effectuée et des modifications ont été apportées à la configuration de la plateforme de recherche, ce qui a amélioré les performances des mises à jour.

Alors, quelles conclusions peut-on tirer à partir des travaux de la société ?

Diapositive 39

Les performances en termes de temps de recherche ont été atteintes en choisissant une plateforme de recherche, plus appropriée pour la recherche textuelle, au lieu d’utiliser une base de données relationnelle.

Aussi, la plateforme de recherche nécessitait d’être proprement configurée pour permettre d’atteindre les objectifs en termes de performance de mise à jour.

L’utilisation d’une plateforme de recherche pour la recherche textuelle et la configuration de cette plateforme pour en optimiser les performances font partie de la base de connaissances technologiques.

Diapositive 40

Examinons maintenant l’exemple du deuxième scénario.

Voici un résumé de l’objectif du projet et des travaux de développement.

On a demandé à une société spécialisée dans le développement mobile de développer une application unique de transfert sécurisé de fichiers. L’application utilisera le Wi-Fi pour envoyer et recevoir de nombreux fichiers préprogrammés vers et depuis un serveur central.

L’utilisateur de l’application n’est pas contraint de rester connecté à un réseau Wi-Fi pour que les transferts de fichiers se fassent en entier.

La société a donc développé une application, basée sur un protocole standard de transfert sécurisé de fichiers, qui permet la mise en file d’attente et l’ordonnancement des transferts.

Chaque fois que le téléphone était connecté au Wi-Fi, l’ordonnanceur de l’application lançait et poursuivait les transferts préprogrammés.

L’application rencontrait des échecs de transfert à chaque fois que l’utilisateur était hors de portée du Wi-Fi. Ce dernier devait alors recommencer le transfert ou utiliser des données sans fil coûteuses.

Diapositive 41

Des essais ont eu lieu et ont révélé que les échecs étaient plus fréquents lorsque la taille du fichier était supérieure à un certain seuil.

Les fichiers ont été divisés en plus petits segments et chaque segment était transmis indépendamment en gardant trace des segments transmis.

Cela a résolu le problème initial, mais a créé d’autres problèmes. Par exemple, le dispositif consommait trop de ressources et la préparation des fichiers prenait trop de temps, ce qui avait un impact sur l’ordonnancement.

Pour remédier à cela, les développeurs ont décidé de transmettre des données de taille fixe et de garder une trace du pointeur à l’emplacement final de la dernière transmission pour éliminer le temps de préparation.

Alors, quelles conclusions peut-on tirer à partir des travaux entrepris dans cet exemple ?

Diapositive 42

Le développement de l’application nécessitait la transmission des données de petite taille, le suivi effectué grâce aux pointeurs de fichiers et l’instauration d’un processus de planification et de gestion des fichiers et des données au sein d’un fichier.

Les connaissances pour accomplir ceci font partie de la base de connaissances technologiques. Même si l’application peut être unique, il n’y avait aucune limitation de la technologie qui empêchait son développement.

Les travaux, bien qu’ayant été systématiquement menés, ne visaient pas à réduire ou à éliminer une incertitude technologique. Par conséquent, il ne s’agit pas d’une investigation ou d’une recherche systématique visant à résoudre une incertitude technologique.

Diapositive 43

Cet exemple du troisième scénario est une suite du précédent exemple de la partie « limitation de la technologie ». Il décrit les travaux qui ont été entrepris pour comprendre comment le nuage XYZ utilise les informations contenues dans les objets du service d’annuaire à des fins de gestion des identités dans le cadre de l’authentification unique.

Penchons-nous maintenant sur les travaux entrepris.

Une configuration comprenant le nuage XYZ utilisant le service d’annuaire du nuage comme fournisseur d’identité pour une application a été créée. Un outil de capture de paquets a été configuré pour capturer et analyser le trafic réseau du navigateur de l’utilisateur et le journal pendant les tentatives de connexion. Le service d’annuaire du nuage commençait à recevoir des objets utilisateur depuis le service d’annuaire local.

La  visibilité des revendications au sein de WS-Federation a été confirmée lors des tentatives de connexion. L’étape suivante consistait à comprendre les relations entre les attributs des revendications et les objets utilisateurs du service d’annuaire. L’observation et l’analyse de l’information capturée ont permis la mise en correspondance des attributs d’objets utilisateurs, provenant du service d’annuaire, et les attributs d’objets utilisés au niveau de la gestion d’identité dans le nuage.

Diapositive 44

Les activités suivantes visaient à valider les résultats de la mise en correspondance et à déterminer si l’on peut substituer le service de fédération qui agit en tant que service d’émission de jeton de sécurité (ou STS).

Un serveur STS à code source libre a été mis en place. Une relation de confiance entre ce serveur et la gestion d’identité dans le nuage XYZ a été établie. L’algorithme de signature et les certificats de signature ont été alignés entre les deux composantes. Ces étapes étaient nécessaires pour configurer le STS pour être utilisé en tant que fournisseur d’identité pour le service XYZ en nuage.

En se basant sur les résultats de la mise en correspondance, le code source du serveur a été modifié pour créer de nouveaux types de revendications structurées selon les attributs d’objets utilisateurs du service d’annuaire.

La conduite de plusieurs essais a permis de comprendre où et comment les objets du service d’annuaire sont utilisés dans les revendications pour le service dans le nuage. Les résultats ont également permis de développer une approche d’authentification unique pour le nuage XYZ sans le service de fédération avec la possibilité d’utiliser des attributs et des identifiants uniques qui n’appartiennent pas au service d’annuaire. Cela a aussi conduit au développement de dépôts utilisateurs sans ce service d’annuaire.

Encore une fois, quelles conclusions peut-on tirer à partir des travaux entrepris dans cet exemple ?

Diapositive 45

À partir de la description des travaux, nous pouvons conclure que les renseignements sur les travaux entrepris sont suffisamment détaillés pour que le demandeur et un examinateur de l’Agence du revenu du Canada (ARC) puissent se mettre d’accord sur les énoncés de fait, voir les caractéristiques des travaux entrepris et repérer de nouvelles connaissances générées. En faisant un effort raisonnable, l’examinateur et le demandeur peuvent déterminer et convenir si cela dépasse la base de connaissances technologiques.

Diapositive 46

Voici quelques points supplémentaires à propos de l’investigation ou recherche systématique.

Si les travaux génèrent ou confirment ce qui se trouve dans la base de connaissances technologiques, même si les travaux ont été entrepris systématiquement, ils ne seront pas considérés comme une investigation ou recherche systématique visant à réduire ou à éliminer l’incertitude technologique.

Les travaux qui génèrent de nouvelles connaissances qui expliquant les raisons d’échec de solutions possibles, proposées pour réaliser un avancement technologique, sont considérés comme un avancement technologique à condition que ces connaissances ne soient pas comprises dans la base de connaissances technologiques.

Diapositive 47

Maintenant, nous allons examiner le concept d’avancement technologique lié à la Question 4. Ceci est couvert par les diapositives 47 à 51.

Comme nous le savons déjà, le développement expérimental représente des travaux entrepris dans l’intérêt du progrès technologique en vue de la création de nouveaux matériaux, dispositifs, produits ou procédés ou de l’amélioration, même légère, de ceux qui existent.

L’avancement scientifique ou technologique est la production de renseignements ou la découverte de connaissances qui font progresser notre compréhension des relations scientifiques ou de la technologie.

Les principaux jalons dans la poursuite de l’avancement technologique sont les suivants :

  • déterminer l’existence d’une limitation dans l’état actuel de la technologie;
  • entreprendre des travaux pour remédier à la limitation;
  • mener des travaux qui conduisent à une compréhension des principes, des techniques et des concepts au-delà de la base de connaissances technologiques existante.

L’avancement technologique représente les nouvelles connaissances qui peuvent être applicables au-delà du projet actuel.

Diapositive 48

Les avancements technologiques dans les projets de développement logiciel peuvent, par exemple, porter sur:

  • Des techniques et méthodes, nouvelles ou améliorées, pour le stockage, la recherche, le traitement et la gestion des mégadonnées (ou big data). Les travaux sont habituellement entrepris au sein des universités et des grands laboratoires de recherche.
  • Des avancements nécessaires pour appuyer le développement des piles et outils technologiques liés au logiciel.
  • Des avancements nécessaires pour des infrastructures nouvelles ou améliorées comme l’infonuagique et l’informatique distribuée.
  • Des avancements nécessaires pour appuyer la mise à l’échelle, la fiabilité et la disponibilité des systèmes logiciels.
  • Des avancements dans d’autres domaines technologiques comme la vision et l’imagerie médicale, la transmission vidéo, la télécommunication (voix), l’automatisation, les contrôles, etc.

Diapositive 49

Nous reviendrons sur les trois exemples précédents de la section relative à « l’investigation ou la recherche systématique » pour illustrer ce qui constitue et ce qui ne constitue pas un avancement technologique.

Si vous vous rappelez de l’exemple du premier scénario, la société s’était mise à développer une application en ligne qui interroge une très grande base de données contenant des informations sur des produits et des prix. Au départ, la société s’était servie d’une base de données relationnelle qui ne répondait pas à ses exigences. Elle a ensuite utilisé une plateforme de recherche textuelle.

Disons que cet énoncé a été formulé comme l’avancement technologique.

Développement d’une application en ligne qui affiche des résultats de recherche sur les produits disponibles et les prix en fonction de la proximité de l’utilisateur, et qui permet en même temps l’exécution des tâches dans les délais.

Est-ce que cela représente un avancement technologique ?

La réponse est non. Pourquoi ?

Parce qu’il s’agit de la description de la fonctionnalité et de la capacité d’une application. Cette description ne fait pas état d’un avancement technologique nécessaire au développement de la capacité ou de la fonctionnalité.

Diapositive 50

Examinons maintenant l’exemple du deuxième scénario. Dans cet exemple, une société qui développe des applications mobiles a été invité à développer une application unique de transfert sécurisé de fichiers qui utilise le Wi-Fi pour envoyer et recevoir de nombreux fichiers préprogrammés vers et depuis un serveur central.

Disons que la création de cette application de transfert sécurisé de fichiers avec ses fonctionnalités uniques a été présentée comme  l’avancement technologique pour le projet.

Peut-on parler d’avancement technologique dans cet énoncé ?

La réponse est non. Encore une fois, Pourquoi ?

Ici, la nouveauté, les caractéristiques et les fonctionnalités de l’application mobile ont été réalisées en utilisant des informations et techniques disponibles dans la base de connaissances technologiques. Cela n’a pas nécessité un avancement technologique.

Diapositive 51

Enfin, passons maintenant à l’exemple du troisième scénario où une société a entrepris des travaux afin de réaliser une capacité d’authentification unique pour son application hébergée dans le nuage XYZ.

Dans ce projet, l’avancement technologique présenté consistait à comprendre où et comment les attributs des objets utilisateurs du service d’annuaire sont utilisés dans les revendications, comment ils sont mis en correspondance avec les jetons de sécurité, leur relations avec les attributs d’objets du service de gestion d’identité dans le nuage, et l’élimination de la nécessité d’avoir recours au service de fédération.

Selon vous, s’agit-t-il d’un avancement technologique ?

La réponse est oui. Pourquoi ?

Parce que ces connaissances ont permis le développement de la capacité d’authentification unique au nuage XYZ sans utiliser le service de fédération offert par la société XYZ. De plus, cela a permis de bâtir, pour cette authentification unique, un dépôt d’utilisateurs en dehors du service d’annuaire classique.

Il est important de noter que la réalisation de la capacité d’authentification unique ne constitue pas, à elle seule, l’avancement technologique.

Diapositive 52

Après avoir examiné l’avancement technologique, nous allons maintenant traiter la question 5 de l’étape 1 de la politique sur l’admissibilité des travaux, et qui concerne la conservation de registres des hypothèses vérifiées et des résultats au cours des travaux.

Ceci est important pour plusieurs raisons.

Les registres confirment que les travaux décrits au cours d’un examen ont été menés.

Ces registres regroupent les hypothèses, les essais et les résultats et ils font état de la progression des travaux.

Ils mettent en lumière l’analyse des résultats de chaque étape et comment ces résultats sont appliqués à l’étape suivante.

Ils indiquent également si les indicateurs et les mesures qui servent à déterminer si les objectifs du travail sont atteints ont été consignés.

Le suivi et la conservation de ces registres permettent de faire ressortir les résultats des travaux.  

Diapositive 53

Nous allons maintenant illustrer, à partir des travaux entrepris dans le dernier exemple, la conservation de registre des hypothèses testées et des résultats.

À mesure qu’ils progressaient, les travaux décrits dans l’exemple précédent relatif à l’authentification unique présentaient des hypothèses, des essais et des résultats.

Les différentes étapes des travaux seront utilisées comme un exemple pour illustrer des cas de résultats générés naturellement à la suite d’essais et l’enregistrement organisé pendant la progression des travaux :

La confirmation de la visibilité des attributs d’utilisateurs du service d’annuaire à l’intérieur des revendications au niveau de WS-Federation a été effectuée à l’aide d’un outil de capture et d’analyse de paquets. Par conséquent, les résultats suivants auraient été générés naturellement ou facilement :

  • Capture d’écran ou journal (log) de la capture du trafic identifiant les jetons avec les revendications.
  • Les attributs reconnaissables des objets utilisateurs du service d’annuaire.

Diapositive 54

L’étape suivante de la mise en correspondance des attributs avec les identificateurs des revendications doit générer ce qui suit :

  • Noms et format de l’expression de tous les identificateurs des revendications et les objets utilisateurs du service d’annuaire qui leur sont associés dans les revendications.

La relation de confiance entre le STS générique et le nuage XYZ a été établie et rendue fonctionnelle. Une capture d’écran de la réponse des commandes, utilisées pour établir cette relation, indiquera dans le détail ce que cette étape a permis d’accomplir.

Diapositive 55

Enfin, des ajouts et modifications ont été apportés au code source du STS générique pour permettre la création des revendications. Plusieurs essais ont été menés et des rajustements ont été effectués en fonction des résultats de ces essais pour garantir des revendications fonctionnelles au sein de WS-Federation. Ces travaux devraient comprendre :

  • la modification initiale du code source pour créer des revendications et les résultats de son utilisation,
  • les changements apportés en fonction des résultats des essais précédents et les résultats de ces changements,
  • le code final

Diapositive 56

Nous avons complété l’illustration de la RS&DE associée au développement logiciel.

Résumons maintenant les divers points abordés dans ce webinaire.

Le développement logiciel fait partie intégrante de la création ou de l’amélioration de produits ou services dans de nombreux secteurs.

Il existe un développement prolifique et sans précédent d’applications complexes à l’aide de logiciels. Cela explique la nécessité de l’avancement technologique.

L’avancement technologique peut se manifester dans la technologie liée au logiciel ou dans d’autres domaines.

Dans la technologie liée au logiciel, l’avancement peut être réalisé à divers niveaux.

Diapositive 57

La technologie représente la connaissance et n’est pas une entité physique.

La méthodologie des cinq questions s’applique au développement logiciel comme dans tout autre domaine.

Il est important d’identifier correctement la base de connaissances technologiques.

La limitation de la technologie doit être formulée en la reliant à la base de connaissances technologiques.

Diapositive 58

Les travaux systématiques ne représentent pas tous une investigation ou une recherche systématique pour la RS&DE.

En montrant pourquoi une solution éventuelle n’aboutira pas ou ne répondra pas aux objectifs souhaités, il existe toujours une possibilité d’avancement.

Le registre des hypothèses testées et des résultats générés est important car il démontre qu’une investigation systématique a eu lieu.

Diapositive 59

Ceci nous amène à la conclusion de ce webinaire.

Nous avons illustré, à travers des exemples de cas fictifs, certains des concepts clés associés à étape 1 de la Politique sur l’admissibilité des travaux aux crédits d’impôt à l’investissement en RS&DE pour les demandes portant sur le développement logiciel.

Signaler un problème ou une erreur sur cette page
Veuillez sélectionner toutes les cases qui s'appliquent :

Merci de votre aide!

Vous ne recevrez pas de réponse. Pour toute question, contactez-nous.

Date de modification :