La création de logiciels est un métier difficile, hautement qualifié et professionnel ; elle peut parfois faire passer l'ingénierie aérospatiale pour un jeu d'enfant. Vous devez être sûr de pouvoir tenir vos engagements, en particulier si vous êtes chargé de créer une solution pour quelqu'un d'autre. Si vous mettez le bazar, personne ne vous en remerciera, et vous-même non plus. Cependant, il existe de nombreuses façons d'acquérir une réelle confiance en vos capacités à créer des solutions d'automatisation et d'intégration Impact.
Confiance en soi
Formation
Arden offre des formations sur les spécificités de notre interface d'automatisation et le développement de solutions pour vous permettre d'exploiter pleinement son potentiel. Notre propre équipe d'ingénieurs logiciels hautement qualifiés et expérimentés est toujours prête à partager ses secrets et à vous aider et vous motiver. Votre réussite est aussi importante pour nous qu'elle l'est pour vous.
Autres qualifications
Les auteurs doivent avoir une bonne compréhension des processus généraux d'analyse et de conception du développement de logiciels ainsi que des connaissances sur les technologies et les langages qui peuvent être utilisés. De nombreux établissements universitaires et organismes tels que Microsoft proposent des certifications, des diplômes et des formations. Peut-être vous disposez déjà des qualifications et des compétences transférables pertinentes.
Professionnalisme
Nous encourageons les auteurs qui souhaitent exercer leur métier avec sérieux à devenir membres d'un organisme professionnel tel que IEEE Computer Society, Association for Computing Machinery (ACM), ou British Computer Society (BCS) [Société informatique de France SIF]. Ces organismes demandent à leurs membres de respecter un code de conduite ou de bonnes pratiques en matière de confidentialité, de compétence, d'équité, de qualité, de responsabilité et d'intégrité, et offrent soutien et protection à leurs membres et à ceux qui les emploient.
Compétences
Les auteurs doivent avoir une bonne compréhension du secteur, ainsi que des connaissances en mathématiques/CAO, afin d'utiliser efficacement les fonctionnalités de l'interface d'automatisation.
Amusement
Cela dit, même si cela représente un défi, la création de solutions à l'aide de notre technologie est extrêmement gratifiante et enrichissante. N'oubliez pas de vous amuser.
À propos de l'interface
Afin de vous permettre d'écrire des macros, des scripts et des plugiciels capables d'automatiser et d'intégrer notre logiciel dans d'autres systèmes, nous mettons à votre disposition une interface de programmation.
IML ou COM
Notre première tentative d'interface de ce type, langage de macro Impact (IML), était puissante mais finalement limitée par les technologies disponibles à l'époque. Elle a été remplacée par Impact COM et nServer, qui utilisent la technologie Component Object Model (COM) de Microsoft, norme industrielle. Bien que les auteurs puissent toujours utiliser des macros, nous ne prenons plus en charge et ne développons plus IML. Vous devez utiliser Impact COM et nServer pour tous les nouveaux projets Impact d'automation.
Abstraction
Les bibliothèques COM d'Impact offrent une interface que vous pouvez utiliser pour accéder aux fonctionnalités clés d'Impact à l'aide d'un script ou d'un plugiciel. Les méthodes et propriétés du système CAO exposées dans cette interface sont soigneusement planifiées et contrôlées ; de nombreux aspects internes du système CAO ne sont pas exposés et ne le seront jamais. Les bibliothèques COM d'Impact ne sont pas une représentation directe des composants internes d'Impact, mais une abstraction de ceux-ci. Cette abstraction rend les bibliothèques plus faciles à comprendre et à utiliser, mais ne leur confère pas le même niveau de puissance et de contrôle que celui dont disposent nos propres développeurs ayant un accès direct aux composants internes. Impact n'est pas open source. Cela signifie également que les systèmes qui utilisent les bibliothèques COM d'Impact pour fournir une solution seront moins performants qu'un système écrit en code natif par notre propre équipe ; il y a une surcharge pour employer l'interface COM. Bien que cela ne figure peut-être pas dans votre liste de priorités, nous ne pouvons pas garantir que les performances de tout système utilisant les fonctionnalités COM et nServer d'Impact répondront toujours à vos attentes. Veuillez nous contacter si cela devient un problème pour vous.
Mise en œuvre
Comme nous l'avons vu, une automatisation Impact peut prendre la forme d'une macro, d'un script ou d'une bibliothèque de plugiciels. Il est également possible de créer une application ou un script autonome, destiné à fonctionner indépendamment d'Impact. Chaque forme présente des avantages et des inconvénients. C'est à vous de choisir laquelle mettre en œuvre pour chaque tâche.
Macros
Bien qu'Impact vous permette d'écrire des macros en utilisant IML, celles-ci ne peuvent pas utiliser Impact COM et nServer, et vous ne devez pas en créer de nouvelles. Elles sont prises en charge uniquement à des fins de compatibilité descendante.
Scripts
Impact et nServer vous permettent d'écrire des scripts à l'aide du langage Visual Basic Script (VBScript ou VBS) de Microsoft. Ces scripts peuvent être incorporés directement dans l'objet qui les utilise (tel que des modèles, des entités de texte, des tâches automatiques, des outils ou des éléments de menu de plugiciel) dans Impact, ou peuvent être stockés dans un fichier externe (ou dans des fichiers utilisant des inclusions, une nouveauté d'Impact 2014). VBScript est pris en charge par défaut dans Windows, il n'y a donc rien de plus à installer sur le poste de travail. Le VBScript incorporé est utile pour les solutions simples et de petite taille, surtout parce qu'il ne nécessite pas la distribution ou le placement de fichiers dans un emplacement accessible par la station de travail. Cependant, il peut être difficile de gérer et de modifier le code source lorsqu'il est incorporé de cette manière, car vous ne pouvez le faire que dans l'environnement Impact. Vous pouvez également distribuer des fichiers script mis à jour sans avoir à modifier les objets eux-mêmes, ce qui peut être un avantage si vous modifiez les scripts dans un environnement de test avant de distribuer les modifications à un système actif ou à un autre système. Les scripts sont lisibles par l'homme et plus faciles à créer et à modifier que les bibliothèques de plugiciels et les applications autonomes. Ils permettent de développer rapidement de petits utilitaires et peuvent être prototypés dans la boîte à outils script d'Impact.
Bibliothèque de plugiciels
Au lieu d'utiliser des scripts, vous pouvez écrire une bibliothèque dans n'importe quel langage prenant en charge COM. Une seule bibliothèque de plugiciels peut prendre en charge plusieurs interfaces, chacune pouvant être utilisée à la place d'un script dans un objet au sein d'Impact. Elles sont plus difficiles à développer, mais beaucoup plus performantes. Contrairement aux macros et aux scripts, vous avez besoin d'un environnement de développement intégré (IDE) tel que Microsoft Visual Studio ou Embarcadero RAD Studio pour ce faire, bien qu'il existe une version gratuite (Express) de Visual Studio avec des capacités de débogage limitées. Vous disposez d'un choix de langages plus varié que pour les scripts, notamment VB.Net, C# et C++ à condition qu'ils prennent en charge COM. Si vous utilisez Visual Studio, vous aurez un accès complet au .Net Framework, qui offre aux auteurs un ensemble supplémentaire d'outils performants. Les bibliothèques doivent être compilées et créent des fichiers binaires (.dll ou .tlb) qui ne sont pas lisibles par l'homme, mais cela est souvent souhaitable car les performances d'exécution sont améliorées et le code peut être obscurci (voir Protection de votre propriété intellectuelle). Ces bibliothèques doivent ensuite être installées et enregistrées sur chaque station de travail Impact, ce qui peut vous obliger à créer également un programme d'installation si vous souhaitez les distribuer. Idéalement, ces installateurs ne devraient pas exiger que la bibliothèque soit installée pour tous les utilisateurs de cette station de travail, car cela nécessite généralement des droits d'administrateur. Vous ne pouvez pas recompiler une bibliothèque si Impact l'a déjà chargée, ce qui peut compliquer les essais de développement, car vous devez redémarrer Impact à chaque fois que vous modifiez le code.
Applications autonomes
Vous pouvez également écrire une application autonome, qui est complètement indépendante d'Impact, mais qui utilise toujours Impact COM et nServer. Elles sont beaucoup plus limitées que les bibliothèques de plugiciels, car elles ne peuvent pas être utilisées par des objets dans Impact ; elles peuvent seulement fonctionner en parallèle. Il n'est pas recommandé aux auteurs de créer des applications autonomes qui doivent interagir avec Impact lui-même. Bien qu'elles soient légèrement plus faciles à développer qu'une bibliothèque de plugiciels, elles nécessitent toujours un IDE, doivent toujours être compilées en fichiers binaires (.exe) qui ne sont pas lisibles par l'homme et doivent toujours être installées.
Innovation
Comme tous les autres logiciels réussis et disponibles, Impact est en constante évolution, expansion et amélioration. Nous nous engageons à innover. Les composants internes du système de CAO ne font pas exception. C'est l'une des principales raisons pour lesquelles les bibliothèques COM d'Impact sont une abstraction plutôt qu'une interface directe ; sinon, l'interface changerait trop régulièrement et les auteurs devraient continuellement repenser ou réécrire leurs scripts et applications pour les maintenir à jour. Pour votre bénéfice, nous faisons de notre mieux pour maintenir la fonctionnalité de l'interface COM et nServer d'Impact entre chaque version du produit, en nous contentant de l'enrichir plutôt que de modifier les méthodes et propriétés existantes. Heureusement, les fonctionnalités de bas niveau telles que la structure de dessin et le parcours sont moins susceptibles de changer de manière significative au fil du temps que les fonctionnalités de haut niveau telles que l'interface utilisateur d'Impact. Il nous est difficile d'exposer des fonctionnalités en constante évolution à l'aide de COM, tout en conservant l'interface entre les versions. C'est à cela que nous avons choisi de ne pas exposer ces fonctionnalités de haut niveau via COM, ou de les fournir avec très peu de granularité. Les auteurs ne doivent pas se sentir limités par ce qu'ils peuvent réaliser à l'aide de l'interface COM d'Impact. Ils sont libres d'écrire le code de leur choix, ou même d'utiliser des API de tiers afin de réaliser des choses qui ne sont actuellement pas directement prises en charge par l'interface COM d'Impact. Nous ne pouvons garantir que les fonctionnalités Impact COM et nServer resteront inchangées à l'avenir. Tout comme les progrès technologiques ont rendu l'IML obsolète, ils pourraient en faire de même avec COM. Cela est hors du contrôle d'Arden. Les auteurs sont responsables de la mise à jour de leurs systèmes en fonction des changements futurs.
Essais
Nous avons un accès complet à nos propres systèmes et consacrons beaucoup d'efforts à tester de manière exhaustive tous nos produits logiciels avant leur mise sur le marché. Si un bogue ou un problème venait à apparaître après la mise sur le marché, ce qui arrive inévitablement de temps en temps dans tous les produits logiciels, nous sommes en mesure d'enquêter et de résoudre efficacement les problèmes en interne, en tenant pleinement compte des effets que toute modification pourrait avoir sur d'autres parties du système, car nous contrôlons l'ensemble du code source et de la documentation. Nous nous engageons à fournir une maintenance et une assistance de qualité pour tous nos produits logiciels. Malheureusement, nous ne pouvons pas offrir la même garantie pour les logiciels que vous créez. Nous ne pouvons pas tester le code que vous avez écrit, auquel nous n'avons pas accès ou que nous ne connaissons même pas, par rapport à chaque version du logiciel que nous commercialisons. La responsabilité de tester et de maintenir tout code source qui utilise l'interface COM et nServer d'Impact avec chaque version repose sur l'auteur. Toute erreur présente uniquement dans votre code doit être corrigée par vous. Bien que nous nous efforcions toujours de corriger le plus rapidement possible des erreurs présentes dans notre code, si ces erreurs ne peuvent être reproduites qu'à partir de votre code, il peut être difficile d'identifier exactement où se trouve le problème, en particulier sans la coopération et l'aide totale de l'auteur. Cela peut poser problème si le code source est de nature commercialement sensible. Arden garantit à ses clients qu'elle agira toujours dans leur meilleur intérêt et ne dévoilera jamais ces informations à des tiers.
Préservation du fruit de votre travail
Le code source d'Impact et la documentation technique de norme industrielle qui l'accompagne sont stockés en toute sécurité dans nos locaux pour le présent et pour l'avenir. Si un désastre venait à nous frapper, soit en tant qu'individus ou en tant qu'entreprise dans son ensemble, d'autres personnes seraient en mesure de récupérer le code source et, à l'aide de la documentation qui leur permettrait de le comprendre, de continuer à servir nos clients à l'avenir. En tant qu'auteur de code source, le même principe s'applique à vous. C'est à vous d'assurer que tout travail que vous effectuez est préservé pour l'avenir.
Sauvegardes
Effectuez régulièrement des sauvegardes de votre code. Il peut être dévastateur de perdre votre travail à cause d'une panne matérielle ou d'un autre événement hors de votre contrôle. Envisagez d'utiliser un outil de gestion du code source, qui peut également vous aider à suivre les modifications apportées à votre code et rangez vos affaires pour mieux réutiliser votre code écrit à des fins différentes.
Documentation et commentaires de code
Il est très difficile pour une autre personne de comprendre un code source sans documentation associée ou même sans commentaires dans le code, lorsqu'elle ne l'a pas écrit elle-même. C'est impossible de l'entretenir sans compréhension. Si vous êtes chargé en tant qu'auteur de fournir une solution à quelqu'un d'autre, il n'est pas professionnel de simplement fournir une solution sans tenir compte du fait que la société de ce client pourrait être menacée si vous n'êtes pas disponible pour la maintenir pour lui, tant aujourd'hui qu'à l'avenir, même s'il est tentant de le fidéliser facilement en utilisant vos services. Ne fournissez pas une solution qui fonctionne aujourd'hui, mais qui pourrait ne plus fonctionner à l'avenir. Fournissez le code source et la documentation. En général, vos clients vous en seront reconnaissants et seront plus enclins à vous charger de nouveau. Même si vous êtes indifférent à la compréhension de votre code par d'autres personnes, à moins d'avoir une mémoire photographique, vous aurez beaucoup de mal à vous souvenir et à comprendre votre propre code sans documentation au bout de six mois ! Ce sera comme si quelqu'un d'autre l'avait écrit.
Entiercement
Si vous ne souhaitez pas fournir le code source et la documentation à un client, vous pouvez faire appel à un tiers qui conservera ces informations pour votre compte.
Protection de votre propriété intellectuelle
Il existe des mesures que les auteurs peuvent prendre pour protéger leur propriété intellectuelle.
Sécurité du code
Les auteurs peuvent souhaiter sécuriser leur code afin qu'il ne puisse être utilisé qu'au sein de leur organisation ou avec leur autorisation. Les scripts sont des fichiers texte lisibles par l'homme et donc facilement modifiables et exposés à des abus. En revanche, les bibliothèques de plugiciels et les applications autonomes sont des fichiers binaires compilés et donc plus sécurisés, mais restent des fichiers qui peuvent être copiés et réutilisés. C'est à l'auteur lui-même de mettre en place les mesures de sécurité qu'il juge nécessaires pour protéger la propriété intellectuelle de son entreprise. Il existe de nombreuses façons de procéder, la plus simple étant que la bibliothèque de plugiciels ou l'application obtienne le numéro de licence Impact pour la station de travail ou l'organisation et le compare à une liste de licences approuvées afin de se protéger contre toute utilisation non autorisée. De plus, si l'auteur souhaite distribuer et vendre ses plugiciels à des tiers, Arden Software peut l'aider en utilisant des « objets bibliothèque » qui contrôlent l'accès à la bibliothèque de plugiciels pour l'ensemble de la clientèle mondiale d'Impact. En outre, le développeur doit protéger les fichiers binaires contre la rétro-ingénierie par des outils de débogage de tiers. Pour les applications .Net, il existe plusieurs outils d'obfuscation populaires permettant de le faire.
Exemples
L'exemple simple suivant de VBScript démontre la facilité avec laquelle il est possible de récupérer les informations de licence d'Impact
Récupération du numéro de licence
licenceNumber = Impact.System.Licence.Id
Notez que le numéro sera unique pour la station de travail, le site ou votre organisation, selon votre préférence lors de la commande des licences.
Recherche d'un objet bibliothèque
‘ Voici le nom de l'objet bibliothèque à rechercher,
‘ fourni par Arden pour votre application
name = “Mega Corp\Plug-ins\Mega Plugin 1”
‘ rechercher l'objet bibliothèque
Set libraryObject = Impact.System.Licence.LibraryObjects.Item( name )
If libraryObject Is Nothing Then
‘ Cette licence Impact n'inclut pas l'élément spécifié,
‘ donc informez l'utilisateur, puis quittez l'application
Else
‘ La licence est valide, continuez...
End If
Avant de distribuer vos produits
Il est assez facile de créer un code source qui fait ce que vous voulez. Sur votre ordinateur. Avec un dessin particulier. Un vendredi. Avec le vent en poupe. Il faut beaucoup plus de temps pour développer ce code source, le peaufiner et produire une solution qui fonctionne de manière suffisamment fiable dans différents scénarios pour être considérée comme « terminée » (bien sûr, aucun logiciel n'est jamais vraiment terminé) ou du moins adaptée à l'usage prévu et distribuable. Ce processus prend toujours plus de temps que ce que l'on imagine.
Robustesse
Le code que vous écrivez doit être robuste, c'est-à-dire qu'il ne doit faire aucune supposition quant au résultat d'une opération ou d'un appel de fonction quelconque. Vérifiez chaque résultat et générez des messages d'erreur (la bibliothèque COM dispose de fonctionnalités permettant de les écrire dans le journal de débogage d'Impact, ce qui est très utile) qui vous aideront à résoudre les problèmes qui pourraient survenir et surviendront. Testez votre solution à l'aide de nombreux exemples, de nombreux cas réalistes et de nombreux cas inhabituels. La grande majorité du temps que vous passez à créer du code source est consacrée à faire des essais plutôt qu'à le taper.
Public
Impact et nServer offrent une vaste gamme d'options de configuration différentes, ce qui signifie qu'il n'existe pas deux stations de travail Impact identiques. Si vous créez du code spécifiquement pour une entreprise, vous serez tenté de gagner du temps en ne tenant compte que des options qu'elle utilise. Cela risque de poser des problèmes si elle décide de modifier ces options à l'avenir, mais vous pourriez vous en tirer à bon compte. Vous ne vous en tirerez certainement pas si vous avez l'intention de distribuer votre solution. Voici quelques-uns des nombreux éléments à envisager :
- Votre solution fonctionnera-t-elle avec différentes bases de données (Oracle, SQL Server…) ?
- Votre solution fonctionnera-t-elle avec différentes langues (anglais, allemand…) ?
- Votre solution fonctionnera-t-elle avec différents paramètres de localisation (système métrique, système anglais…) ?
- Votre solution fonctionnera-t-elle avec différents paramètres d'apparence (couleurs, visibilité…) ?
- Votre solution fonctionnera-t-elle avec différents utilisateurs (autorisations, sites…) ?
Distribution de vos produits
Partager
Un principe clé du génie logiciel est de ne jamais écrire du code qui a déjà été écrit par quelqu'un d'autre. Pourquoi perdre votre temps alors qu'il serait plus efficace (et moins coûteux !) d'utiliser ou d'acheter le code existant ? Bien sûr, pour cela vous devez savoir que quelqu'un d'autre a déjà écrit du code pour faire ce dont vous avez besoin. Même si les auteurs peuvent souhaiter protéger leur propriété intellectuelle et les détails d'une solution qu'ils ont développée, il est rare que l'existence d'une telle solution doive être un secret commercial. Vous auriez raison d'en être fier. Nous sommes impatients de découvrir les solutions que vous avez créées. Avec votre permission, nous pouvons même vous aider à les commercialiser en tant que produits.
Plugiciels automatiques d'Impact
Nouveauté d'Impact 2014, les plugiciels automatiques d'Impact (IAP) permettent à l'auteur de distribuer simplement, facilement et efficacement des paquets de fonctionnalités d'automatisation à d'autres utilisateurs d'Impact. Ces utilisateurs bénéficient d'une intégration sans heurt de ces outils d'automatisation dans leur installation Impact habituelle, leur environnement et leurs paramètres d'apparence. Cela devrait encourager les auteurs à partager, échanger et commercialiser leurs IAP, et à établir un marché plus grand pour les solutions logicielles Impact de tiers.
Conclusions
Les entreprises n'acceptent pas une approche unique pour leurs besoins en logiciels. L'automatisation Impact permet aux auteurs de personnaliser, d'intégrer et d'étendre notre logiciel d'une manière que nous ne pouvons même pas imaginer, afin de leur donner, à eux-mêmes ou à leurs clients, un réel avantage concurrentiel sur le marché. Laissez-nous vous aider à le faire.