Caractéristiques du développement d'agents logiciels. Justification du choix des outils et de l'environnement de développement logiciel

Nous fournissons un examen complet de tous les éléments

Pourquoi devez-vous définir des exigences ?

L'environnement de développement doit contenir tout le nécessaire pour créer et déployer des systèmes à forte intensité logicielle (c'est-à-dire des systèmes dans lesquels le logiciel est l'élément le plus important et obligatoire). Pourquoi est-il important d’avoir une définition cohérente des exigences de l’environnement de développement ? En bref, de nombreuses organisations s'efforcent de réduire les délais de commercialisation, de réduire les coûts et d'améliorer la qualité, autant d'objectifs commerciaux qui dépendent directement de la qualité de l'environnement utilisé pour créer de tels systèmes. Disposer d'une définition cohérente et complète de l'environnement de développement garantit que rien n'est oublié lors de la planification des actions visant à améliorer l'environnement existant, de la définition des exigences en matière d'environnement, de la définition de l'architecture de l'environnement, de l'évaluation de l'environnement, de la garantie du niveau approprié de retour sur investissement. investissement à mesure que l’environnement change, et ainsi de suite. La définition de votre environnement de développement est une contribution essentielle à toutes ces tâches.

Place de l'environnement de développement dans son contexte

Avant d'examiner les éléments spécifiques qui composent un environnement de développement, il est très utile de comprendre d'abord où l'environnement s'inscrit dans l'ensemble.

La figure 1 montre centre d'assurance qualité(Centre d'excellence), responsable de la création et du maintien de l'environnement de développement. Cet environnement est utilisé dans les projets de développement qui, à leur tour, créent et maintiennent des systèmes à forte intensité logicielle (ou d'autres actifs logiciels, tels que des composants ou des services). Cette visualisation simple permet de clarifier les différences entre le rôle du centre qualité (y compris les rôles des membres de l'équipe, des processus et du nœud clé - l'environnement de développement) et les projets qui utiliser cet environnement de développement (et aussi leur rôles, processus et nœuds).


Éléments de l'environnement de développement

Selon les experts en logiciels IBM Rational, l'environnement de développement se compose des six éléments suivants, chacun étant illustré dans la figure 2 et décrit en détail ci-dessous :

  • Méthode
  • Outils
  • Activation
  • Organisation
  • Adoption

Vous connaissez peut-être les composants du modèle Personnes-Processus-Technologie qui sont les éléments clés d’un projet de développement réussi. Cependant, ce modèle est trop simplifié pour les besoins de cet article. Cependant, ce modèle est construit sur les éléments présentés dans la figure 2 :

  • Personnel– c’est l’organisation et la préparation.
  • Processus- c'est une technique.
  • Technologie Ce sont des fonds et des infrastructures.

La mise en œuvre est un élément nouveau (et très important) qui se concentre sur la diffusion de l'environnement de développement au sein d'une organisation, d'une unité commerciale ou d'un projet.

Méthode

Un élément clé de tout environnement de développement est la méthodologie suivie, formellement ou informellement, par les praticiens. Voici les éléments clés liés à la méthodologie :

  • Éléments clés de la méthodologie, tels que les rôles, les produits du travail, les tâches et les processus.
  • Éléments supplémentaires de la méthodologie, tels que des normes, des recommandations, des instructions, des modèles et des exemples.
  • La topologie de déploiement de la méthodologie, qui peut être prise en compte par exemple lors du déploiement de la méthodologie sous forme de site Web sur l'intranet d'une entreprise. Dans notre exemple, un serveur Web est requis pour héberger le contenu, et les postes de travail doivent disposer d'un navigateur Web adapté installé et être connectés au serveur Web.

Outils

Les outils de développement automatisent certains aspects de la méthodologie choisie. Par exemple, vous pouvez utiliser des outils pour stocker et gérer les exigences d'un projet en cours de développement, pour la modélisation visuelle de l'architecture et de la conception, pour les tests. logiciel etc.

Éléments clés liés à moyens instrumentaux:

  • Outils de développement et outils pour leur intégration.
  • Scénarios d'installation et de configuration des outils de développement.
  • Topologie de déploiement des outils de développement qui prend en compte les logiciels requis et Matériel, à la fois côté client et côté serveur, ainsi que toutes les plates-formes et émulateurs cibles (par exemple, lors du développement de périphériques en temps réel ou embarqués).

Activation

Préparer les spécialistes à utiliser l’environnement de développement (formation et mentorat) est une condition importante sa mise en œuvre réussie. Par conséquent, les aspects de l’environnement de développement incluent la définition et la création de matériel de formation et d’instructions. Les grandes entreprises paient également Attention particulière accroître le niveau de professionnalisme de son personnel et s'orienter vers des organisations professionnelles externes.

Éléments clés liés à la préparation :

  • Programmes et cours. Ils couvrent une variété de besoins, depuis la formation de professionnels expérimentés dans les détails de l'environnement de développement jusqu'à un programme complet de recyclage pour les spécialistes.
  • Matériel didactique. Ils sont utilisés par des spécialistes lorsqu'ils consultent des collègues moins expérimentés.
  • Topologie de déploiement de provisionnement. La topologie de déploiement doit être prise en compte, par exemple, lorsque la formation est organisée via une formation Web. Encore une fois, un serveur Web est requis pour héberger le matériel et les postes de travail doivent être équipés de navigateurs Web. La topologie de déploiement peut également indiquer les salles et les salles de classe nécessaires pour dispenser une formation en classe.

Organisation

Un autre aspect de l'environnement de développement consiste à garantir que les ressources organisationnelles appropriées sont disponibles pour le définir, le déployer et le gérer. Ceux-ci peuvent inclure des spécialistes dans des aspects spécifiques de l'environnement de développement (par exemple, des formateurs, des spécialistes, des formateurs et des mentors), du personnel chargé d'administrer et de maintenir l'environnement, du personnel possédant les qualifications appropriées au sein du service d'assistance de l'entreprise et des communautés de pratique pertinentes.

Éléments clés liés à l'organisation :

  • Définir les rôles organisationnels et les départements qui font partie de l'environnement de développement.
  • Topologie de déploiement des ressources organisationnelles indiquant l'emplacement de ces unités organisationnelles.

Infrastructure

Du point de vue de l'environnement de développement, l'infrastructure est considérée en termes de matériel et de logiciels. Cela a déjà été abordé précédemment en ce qui concerne la méthodologie, les outils, la préparation et l'organisation. Il y a cependant trois raisons de considérer l’infrastructure séparément comme un élément clé :

  1. Premièrement, la consolidation. Par exemple, si l'on considère les besoins en infrastructure de l'environnement de développement dans son ensemble, on peut déterminer qu'un seul serveur Web est nécessaire pour prendre en charge à la fois le contenu Web pour la méthodologie et la formation Web.
  2. Deuxièmement, assurez-vous que tous les matériels et logiciels supplémentaires prenant en charge l'environnement de développement (par exemple, les systèmes d'exploitation, les systèmes de gestion de bases de données, les systèmes de gestion du matériel, les outils de test pour le développement de périphériques en temps réel et intégrés) sont correctement pris en compte.
  3. Troisièmement, le centre d'assurance qualité peut nécessiter le déploiement d'une infrastructure pour prendre en charge la création et le test de l'environnement de développement avant de le déployer dans une infrastructure de production pour prendre en charge des projets commerciaux.

Éléments clés liés aux infrastructures :

  • Emplacement, nœuds et connectivité.
  • Logiciels (par exemple systèmes d'exploitation, systèmes de gestion de bases de données, systèmes de gestion de matériel, outils de test).

Adoption

En plus des éléments déjà répertoriés, il est important d’envisager la mise en œuvre du cadre au sein d’une organisation, d’une business unit ou d’un projet de développement.

Éléments clés liés à la mise en œuvre :

  • Plan de mise en œuvre. Ce plan définit les tâches généralement effectuées lors de la mise en œuvre de l'environnement, telles que l'achat de matériel et de logiciels.
  • Modalités de réalisation des changements organisationnels. Ils seront nécessaires pour mettre en œuvre et intégrer l’environnement de développement dans les activités quotidiennes des structures organisationnelles concernées.
  • Détermination d'indicateurs environnementaux. Des indicateurs sont utilisés pour mesurer l’efficacité de l’environnement.

Contexte de la solution

Le contexte de la solution (où la solution en question est l'environnement de développement) est également important. Le contexte représente les exigences de l'environnement de développement et peut être vu en termes de Fonctionnalité, propriétés Et restrictions.

  • Fonctionnalité représente le modèle ou l'ordre de développement logiciel fourni par l'environnement de développement. La mise en œuvre de ces exigences vous oblige à prendre en compte tous les éléments évoqués précédemment. Par exemple, le processus de gestion des exigences (voir Figure 3) s'appuie sur les aspects suivants :
    • Méthodologie de gestion des exigences.
    • Outils de gestion des exigences.
    • Formation et mentorat en gestion des exigences.
    • Une équipe de support compétente dans la résolution des problèmes de gestion des exigences.
    • Matériel et logiciels pour prendre en charge les éléments liés à la gestion des exigences.
    • Mise en œuvre appropriée des procédures de gestion des exigences dans les projets.

D'autres parties de l'environnement de développement, telles que l'architecture ou la gestion de la qualité, peuvent être considérées de la même manière. Cette méthodologie peut également être appliquée à des activités spécifiques, par exemple au développement itératif (qui constitue la base d'une approche dynamique (agile) du développement et de la livraison de logiciels), qui nécessite également la prise en compte de tous les éléments.

  • Propriétés– ce sont les paramètres que doit avoir l’environnement de développement. Ils nécessitent également de prendre en compte tous les éléments de l’environnement de développement. Par exemple, pour implémenter des propriétés d'évolutivité (par exemple, la capacité de prendre en charge différents nombres d'utilisateurs simultanés), les approches suivantes sont utilisées :
    • Une méthode personnalisable en fonction de la taille du projet.
    • Outils pouvant être configurés pour prendre en charge la méthode en cours de configuration.
    • Mécanismes et niveaux de formation appropriés pour des projets de différentes tailles.
    • Ressources organisationnelles pour garantir la disponibilité de personnel possédant les niveaux de compétences appropriés pour soutenir le nombre attendu de projets de développement.
    • Infrastructure pouvant évoluer pour prendre en charge le nombre attendu d'utilisateurs simultanés.
    • Mécanismes appropriés pour la mise en œuvre de l'environnement.
  • Restrictions auxquels l'environnement de développement doit se conformer nécessitent également la prise en compte de tous les éléments de l'environnement de développement. Par exemple, si vous devez migrer à partir d'un environnement existant, vous devrez peut-être procéder comme suit :
    • Prenez les règles d’une méthodologie existante et intégrez-les dans une nouvelle.
    • Migrez les produits de travail d'un ensemble d'outils existant vers un nouvel ensemble (ou intégrez-les à des outils existants).
    • Offrir une formation adéquate à l’état actuel des choses et bien organisée.
    • Fournir du personnel pour assurer une transition en douceur originalétats dans prévu.
    • Identifiez l'infrastructure qui tire le meilleur parti de l'infrastructure existante (par exemple, réutilisez les licences matérielles et logicielles existantes lorsque cela est possible).
    • Fournir des mécanismes de mise en œuvre pour confirmer les progrès de la migration.

Une autre contrainte importante lorsque vous envisagez de modifier votre environnement de développement existant est bien entendu le retour sur investissement (ROI). Pour qu’une telle initiative réussisse, elle doit bien entendu produire des résultats positifs cohérents avec le plan d’affaires. Chaque aspect de l'environnement de développement a un impact sur le retour sur investissement, tant du point de vue des coûts que des bénéfices.

Bien que cela ne soit pas illustré dans la figure 2, les fonctionnalités, les propriétés et les limitations correspondent généralement à un contexte commercial spécifique (par exemple, les objectifs commerciaux déclarés). En ce sens, le contexte décisionnel inclut également les aspects commerciaux. Cela peut être particulièrement important lorsqu’il s’agit de démontrer la contribution directe ou indirecte de l’environnement de développement à la réalisation des objectifs de l’entreprise.

Définir, déployer, gérer

Lors de la définition des différents éléments d'un environnement de développement, il est utile de considérer les éléments suivants du cycle de vie de l'environnement (voir Figure 4) car, outre le contexte de la solution, chacun d'eux a ses propres aspects qui influencent la définition :

  • Définition de l'environnement.
  • Déploiement de l'environnement.
  • Gestion de l'environnement.

Avant d'examiner les domaines de la figure 4, il convient d'expliquer pourquoi ils sont liés dans faire du vélo. Ce chiffre confirme qu'un changement efficace (dans ce cas, l'amélioration de l'environnement de développement) est généralement obtenu par une série de changements progressifs, plutôt que par Big Bang(évolution, pas révolution), et chaque changement incrémentiel représente un passage dans le cycle. Cependant, un changement mis en œuvre dans un cycle, par définition, change le contexte du suivant (par exemple, les spécialistes ont désormais les qualifications nécessaires, de nouveaux équipements sont apparus, de nouveaux outils ont été acquis, etc.), c'est-à-dire le caractère cyclique du cycle suivant. les changements sont démontrés.

Les sections suivantes traitent de chaque élément de l'environnement de développement ainsi que de la définition de la solution, du déploiement de la solution et de la gestion de la solution.

Définition

Appliqué à définition environnement de développement, rappelez-vous la discussion précédente sur les éléments clés. Cette discussion n'est pas répétée ici, même si, par souci d'exhaustivité, le tableau 1 résume les différents éléments définis précédemment.

Il convient également de noter que la définition est généralement considérée au niveau organisationnel et peut nécessiter mise en œuvre locale pour répondre aux exigences d’une unité commerciale ou d’un projet spécifique lors du déploiement. Cela se reflète dans les sections suivantes.

Tableau 1. Aspects de la définition
ÉlémentDescription
MéthodeRôles, produits de travail, tâches, processus
Normes, recommandations, instructions, etc.
Topologie de déploiement de méthodologie
OutilsOutils de développement et d'intégration
Scénarios d'installation et de configuration des outils de développement
Topologie de déploiement des outils de développement
ActivationProgrammes d'études et cours
Matériel didactique
Topologie de déploiement de provisionnement
OrganisationRôles et unités organisationnelles
Topologie de déploiement des ressources organisationnelles
Emplacement, nœuds et connectivité
Logiciels de support (tels que les systèmes d'exploitation)
AdoptionPlan de mise en œuvre
Méthodologies pour réaliser des changements organisationnels
Indicateurs environnementaux

Déploiement

Le déploiement d'un environnement de développement soulève des questions spécifiques concernant chaque élément (voir tableau 2).

Tableau 2 : Considérations relatives au déploiement
ÉlémentDescription
Méthode
Méthodologie de déploiement
OutilsExécution d'une configuration locale
Installation des outils
Migration de données locales
ActivationConfiguration sur site
Déploiement de matériel d’orientation
Formation des artistes
OrganisationDéfinir la configuration locale
Réorganisation
InfrastructureDéfinir l'infrastructure locale
Fournir des emplacements, des nœuds et une connectivité
Fournir un logiciel de support
AdoptionFormulation d'un plan de mise en œuvre local
Vérification de l'environnement

Éléments clé techniques:

  • Définir la configuration locale. Lors du déploiement d'une méthodologie dans une unité commerciale ou un projet de développement, une configuration locale peut être nécessaire pour refléter les caractéristiques spécifiques de l'unité commerciale, du projet de développement ou du système (par exemple, en garantissant une niveau de formalité).
  • Déploiement de la méthodologie. Il garantit la disponibilité de la technique pour les spécialistes.

Éléments clé outils:

  • Performance paramètres locaux. Toute personnalisation locale des outils permet d'automatiser la personnalisation de la méthodologie locale.
  • Installation d'outils. Rend les outils installés (et leur intégration) accessibles aux spécialistes.
  • Migration des données locales. Par exemple, vous devrez peut-être migrer les données d'une boîte à outils existante vers une nouvelle.

Éléments clé préparation:

  • Effectuez la configuration locale. paramètres locaux. Si nécessaire - adaptation, clarification ou mise à jour matériel éducatif. Vous pouvez, par exemple, réviser vos supports de formation pour les aligner sur le processus défini pour une unité commerciale ou un projet de développement donné.
  • Déploiement des supports de formation. Garantit l'accès à ceux-ci pour les artistes, y compris l'accès à tous les documents Web.
  • Formation des interprètes. Pendant la formation, les commentaires des interprètes sont collectés.

Éléments clé organisations:

  • Définir la configuration locale. Des experts peuvent être nécessaires pour répondre aux besoins spécifiques d’une unité commerciale ou d’un projet de développement particulier.
  • Réorganisation. Organiser le personnel et les ressources pour soutenir l'environnement de développement.

Éléments clé Infrastructure:

  • Définir la configuration locale. Déterminez l’infrastructure nécessaire pour une unité commerciale ou un projet de développement spécifique.
  • Fournir l'emplacement, les nœuds et la connectivité. Rendre disponible tout le matériel nécessaire (y compris toutes les plates-formes cibles et émulateurs pour les appareils temps réel et embarqués).
  • Fournir un logiciel de support. Installez tous les logiciels nécessaires pour prendre en charge l'environnement de développement (par exemple, des systèmes de gestion de bases de données ou des outils de test).

Éléments clé mise en œuvre:

  • Définir un plan de mise en œuvre local. Affinez votre plan de mise en œuvre en fonction des besoins spécifiques de votre business unit ou de votre projet de développement.
  • Vérification de l'exactitude de l'environnement. Testez l'environnement déployé et vérifiez qu'il répond aux exigences définies en termes de fonctionnalités, de propriétés et de limitations spécifiées.

Contrôle

Comme le montre le tableau 3, la gestion de l'environnement de développement après son déploiement présente également des aspects spécifiques à chaque élément.

Tableau 3. Aspects de gestion
ÉlémentDescription
MéthodeRecueillir des retours sur la méthodologie
OutilsSauvegarde, archivage, récupération de données
Recueillir des commentaires sur les outils
ActivationFormation de spécialistes
Recueillir des commentaires sur la préparation
OrganisationRecueillir des commentaires sur
InfrastructureFournir ou retirer des infrastructures selon les besoins
Recueillir des commentaires sur les infrastructures
AdoptionMesurer l’efficacité de l’environnement
Recueillir des commentaires sur la mise en œuvre

Éléments clé techniques:

  • Recueillir des retours sur la méthodologie. Un aspect clé de la gestion de votre environnement de développement est de l’améliorer continuellement. La collecte de feedback concerne donc tous les éléments. Les commentaires sont généralement recueillis de manière subjective à l’aide de questionnaires, par exemple.

Éléments clé outils:

  • Sauvegarde, archivage, récupération de données. Vérifiez que les produits de travail créés par les spécialistes sont gérés correctement et que les pratiques de « bonne administration » sont appliquées.
  • Recueillir des retours sur les outils. Recueillir des retours (positifs et négatifs) sur la disponibilité et les performances des outils.

Éléments clé préparation:

  • Formation des interprètes. Désignez des superviseurs de projet afin que les artistes sachent comment utiliser l’environnement.
  • Recueillir des commentaires sur la préparation, par ex. pour une formation ou un mentorat.

Éléments clé organisations:

  • Recueillir des commentaires sur l'organisation. Les interprètes apportent leurs commentaires sur le support apporté à l'utilisation de l'environnement de développement (par exemple, sur la qualité du service de support).

Éléments clé Infrastructure:

  • Fournir ou retirer des éléments d’infrastructure selon les besoins. Du début à la fin des projets, l'environnement de développement doit être dimensionné de manière appropriée pour prendre en charge de manière optimale le nombre de personnes utilisant l'environnement à un moment donné.
  • Recueillez des commentaires sur l’infrastructure, y compris le matériel et les logiciels de support.

Éléments clé mise en œuvre:

  • Mesurer l'efficacité de l'environnement. Il s’agit d’un aspect clé d’une mise en œuvre réussie. Par exemple, vous pouvez fournir un questionnaire aux artistes et leur demander d'évaluer l'efficacité de l'introduction de nouvelles méthodes de travail.
  • Recueillir des commentaires sur la mise en œuvre. Des commentaires sur les approches de mise en œuvre sont recueillis.

Interdépendances

Enfin, gardez à l’esprit que les différents éléments de l’environnement de développement ne sont pas indépendants. Une représentation alternative de la figure 2 est donnée dans la figure 5, qui montre que chaque élément a des relations avec tous les autres éléments.

Voici quelques exemples de dépendances entre éléments :

  • La méthodologie (méthodologie) fait référence aux formations disponibles (préparation).
  • Les outils (outils) automatisent les tâches (techniques).
  • Les rôles administratifs (organisation) sont définis pour prendre en charge les outils (outils).
  • Des serveurs (infrastructure) sont fournis pour héberger un ensemble d'outils (outils).
  • La mise en œuvre des pratiques de travail (mise en œuvre) est évaluée selon une approche spécifique (méthodologie).

Conclusion

Cet article complète l'article (EN) publié par le même auteur dans L’avantage rationnel En 2008. Il détaille les éléments clés d'un environnement de développement et met en évidence les différents aspects de la définition, du déploiement et de la gestion de cet environnement. Il fournit un cadre simple pour garantir que tous ces aspects sont pris en compte lors de la planification d'actions visant à améliorer un environnement existant, à définir des exigences environnementales, à définir une architecture, à évaluer un environnement, etc.

Alexeï Fedorov, Natalia Elmanova

L'article précédent de cette série était consacré à l'examen de la conception des données logiques et physiques et aux outils utilisés dans ce processus. Nous sommes convaincus que la conception des données joue un rôle clé dans le développement des systèmes d'information - après tout, les coûts associés à la création d'applications pour les utilisateurs finaux, ainsi que la maintenance et la modernisation ultérieures du produit créé, dépendent de la qualité de ce travail. . Le résultat de cette étape est une base de données « vide » (c'est-à-dire une base de données dont les tables ne contiennent pour la plupart pas d'enregistrements, à l'exception peut-être des tables de référence comme une liste de sujets Fédération Russe ou indicatifs téléphoniques).

La prochaine étape du cycle de vie Système d'Information- développement d'applications clients. Le résultat de cette étape est un produit fini composé d'un certain nombre d'applications qui permettent aux utilisateurs de saisir des données dans des tableaux ou de modifier des données existantes, d'analyser les données saisies et de les présenter sous une forme plus conviviale - graphiques, tableaux croisés dynamiques ou rapports ( y compris sous forme de « documents papier »).

Le processus de conception de données pour les SGBD relationnels est dans une certaine mesure un processus logique et est soumis à une méthodologie standard unique. Cela détermine le faible degré de dépendance de la séquence d'actions effectuées lors de la conception des données à la fois sur l'outil de conception de données utilisé et sur son utilisation. C’est en fait la raison pour laquelle les outils de conception de données sont plus ou moins similaires dans leur interface, qui reflète essentiellement le processus de dessin de modèles de données sur papier.

Le processus de création d'applications client fonctionnant avec des bases de données est assez difficile à décrire sous la forme d'une séquence d'actions aussi universelle, car la logique d'une application particulière dépend presque entièrement de la logique du processus métier modélisé. Les outils de développement d'applications en tant que catégorie de produits logiciels existent depuis bien plus longtemps que les outils d'ingénierie de données, et ils sont plus variés - depuis un compilateur fonctionnant depuis ligne de commande, aux outils, où l'application finie est assemblée avec la souris à partir de composants prêts à l'emploi, et le code est généré automatiquement. Avec une telle variété d'outils de développement, ils doivent être classés d'une manière ou d'une autre, ce que nous essaierons de faire dans cet article, en indiquant simultanément lesquels d'entre eux sont pratiques à utiliser dans un cas particulier.

Classification des outils de développement d'applications

Les outils de développement peuvent être classés selon différentes positions, par exemple en fonction du langage de programmation qu'ils prennent en charge, ou de la fonctionnalité des applications créées sur une plate-forme particulière, ou de la présence de certaines bibliothèques et outils visuels. Nous essaierons de classer les outils de développement d'applications en fonction de la facilité de leur utilisation pour créer des produits qui représentent une interface utilisateur avec une base de données.

Presque tous les outils de développement qui ont la moindre prétention à l'universalité peuvent fonctionner avec n'importe quelle base de données - il suffit de prendre en charge l'utilisation de bibliothèques tierces dans cet outil de développement et pour que cette base de données dispose d'un ensemble d'interfaces client (API) pour la plateforme sur laquelle les applications créées doivent fonctionner . Cependant, toutes les paires de produits « outil de développement plus SGBD » ne sont pas attractives du point de vue des coûts de main-d'œuvre associés à la création de telles applications. Vous pouvez écrire une application à part entière qui appelle des fonctions API client et implémente une interface utilisateur pratique à l'aide d'un compilateur en langage C et d'une bibliothèque graphique simple (par exemple, vous permettant de changer la couleur des pixels à l'écran) pour le système d'exploitation dans lequel cette application exécutera. Mais les coûts associés à la mise en œuvre d'un tel projet peuvent être totalement injustifiés - après tout, dans ce cas, les développeurs devront implémenter des fonctions déjà contenues dans les bibliothèques de classes et de composants d'outils de développement plus axés sur la création d'applications de base de données ou incluant prise en charge de la création de telles applications.

Outils de développement ciblés sur des SGBD spécifiques

Il y a dix à vingt ans, dans de nombreuses applications utilisant des bases de données, les fonctions de l'API client étaient appelées à partir de code écrit dans l'un des langages de programmation, le plus souvent en C. Il suffit de regarder la description de l'API côté client de presque tous les SGBD serveur - et vous trouverez de nombreux exemples des fragments de code les plus courants, par exemple pour enregistrer un utilisateur, exécuter des requêtes, etc. Cependant, il est rapidement devenu évident pour les développeurs de SGBD que les coûts de main-d'œuvre associés à l'écriture d'un tel code pourraient être considérablement réduits en rassemblant les fragments de code les plus typiques et les éléments d'interface utilisateur les plus fréquents (même pour les terminaux alphanumériques) dans des bibliothèques, en formatant ces bibliothèques. en tant que produit distinct et en y ajoutant un environnement de développement et des utilitaires pour concevoir des formulaires personnalisés pour afficher et modifier des données, ainsi que des rapports. C'est exactement ainsi qu'apparaissent les premiers outils de développement, axés sur des SGBD spécifiques, comme Oracle*Forms (le prédécesseur de l'actuel Développeur de formulaires Oracle).

Les produits de cette classe sont encore disponibles aujourd’hui sur le marché des outils de développement. Presque tous les fabricants de SGBD serveur produisent également des outils de développement d’applications. Dans la grande majorité des cas, les versions modernes de ces outils de développement prennent en charge l'accès aux SGBD d'autres fabricants en utilisant au moins un des mécanismes universels d'accès aux données (ODBC, OLE DB, BDE). Cependant, l’accès à « votre » SGBD s’effectue généralement dans la mesure du possible façon efficace, c'est-à-dire en utilisant des API clientes, des objets contenus dans les bibliothèques de la partie client des SGBD serveur, des classes spéciales pour accéder aux données de ce SGBD, ou via la mise en œuvre de pilotes pour des mécanismes universels d'accès aux données pouvant prendre en compte les spécificités de ce SGBD.

Les environnements de développement de SGBD de bureau peuvent être classés dans une catégorie distincte. Dans l'article de cette série consacré aux SGBD de bureau, nous avons déjà noté que la grande majorité des SGBD de bureau qui ont survécu à ce jour, comme Microsoft Visual FoxPro, Microsoft Access, Corel Paradox, Visual dBase, prennent en charge l'accès aux SGBD serveur, au minimum, en utilisant des mécanismes universels d'accès aux données, ce qui nous permet de les classer conditionnellement comme outils de développement. Notez cependant qu'actuellement, la création d'applications dans une architecture client-serveur avec leur aide est un phénomène peu fréquent. L'exception, peut-être, concerne les paires Microsoft Access - MSDE, Microsoft Access - Microsoft SQL Server et Microsoft Visual FoxPro - Microsoft. serveur SQL. Ceci est le résultat d'une politique compétente de Microsoft, visant une compatibilité maximale de ses produits et assurant le remplacement le plus simple possible pour les utilisateurs de leurs SGBD de bureau par leurs propres serveurs de bases de données (Access->MSDE->Microsoft SQL Server, FoxPro->Visual FoxPro ->Microsoft SQL Server) .

Des outils de développement universels par rapport aux SGBD

Les outils de développement universels par rapport à un SGBD (ou prétendant à une universalité similaire) sont, en règle générale, des adeptes des outils de développement d'applications classiques qui ne sont pas directement liés aux bases de données. Des exemples typiques de tels outils de développement sont Borland Pascal, Borland C++, Microsoft QuickC. Capables d'utiliser des bibliothèques tierces, ces outils ont permis d'accéder aux fonctions des API clientes, et avec le développement des mécanismes d'accès universel aux données (comme ODBC), également d'accéder aux fonctions API des bibliothèques qui mettent en œuvre de tels mécanismes. A noter que ces outils de développement ont souvent été utilisés pour créer des environnements SGBD de bureau (comme dBase, FoxBase) ou des pseudo-compilateurs pour les langages de la famille xBase (par exemple, Clipper).

Les versions ultérieures de ces outils de développement ont acquis des bibliothèques de fonctions et de classes conçues pour accéder aux données à l'aide de certains mécanismes universels. Le développement ultérieur des outils de développement a conduit à l'émergence de deux catégories de produits ayant des objectifs similaires.

La première catégorie comprend les outils de développement qui disposent de bibliothèques de classes étendues, d'un grand nombre d'« assistants » et de générateurs de code, mais se concentrent sur la création de code « manuelle » et sont assez rarement utilisés pour créer des applications « standard » pour travailler avec des bases de données (ci-dessous la phrase " application standard" nous entendons une application qui a un accès direct à la base de données avec laquelle l'utilisateur interagit, c'est-à-dire qu'il s'agit d'un client « classique » d'un SGBD serveur). Un représentant typique (et le seul vraiment populaire sur le marché des logiciels) de ce la classe de produits est Microsoft Visual C++. en utilisant Microsoft Les bibliothèques Visual C++ et MFC (Microsoft Foundation Classes) peuvent créer n'importe quelle application si vous en avez les compétences, les connaissances, la capacité et le temps. Cependant, les applications dotées d'une interface utilisateur complexe (par exemple, utilisant des bases de données) ne sont pas développées si souvent avec son aide (bien que des exemples d'une telle utilisation puissent être trouvés même dans la littérature russe). Ce produit est principalement utilisé pour créer des applications client dans le cas où des exigences particulières leur seraient présentées, comme par exemple des performances élevées, la capacité d'effectuer des opérations non standard, etc.

La deuxième catégorie comprend les outils de développement avec des outils visuels développés qui permettent de littéralement « dessiner » l'interface utilisateur, effaçant partiellement les différences entre le travail du programmeur et celui de l'utilisateur et réduisant le coût du produit final en impliquant des développeurs peu expérimentés. qualifié en conception d'interfaces (si vous étudiez attentivement les programmes de cours des centres de formation spécialisés dans la formation aux outils de développement Microsoft, Borland et Sybase, vous constaterez que la durée de la formation, après avoir écouté laquelle les habituelles Utilisateur Windows doit apprendre à créer des applications client pour les SGBD serveur, prend de 5 à 10 jours ouvrables).

C'est cette catégorie d'outils de développement qui est la plus souvent utilisée lors de la création d'applications clientes. Les produits les plus populaires de cette classe comprennent Microsoft Visual Basic Borland Delphes Sybase PowerBuilder et Borland C++ Builder. Les environnements de développement de tels produits sont très similaires en apparence (jusqu'à la disposition par défaut des fenêtres sur l'écran) : en règle générale, l'environnement de développement d'un tel produit contient un « blanc » de la forme conçue (analogue d'une fenêtre) , un panneau séparé avec des icônes d'éléments de l'interface utilisateur et d'autres objets utilisés dans l'application qui peuvent être sélectionnés et placés sur le formulaire, une fenêtre dans laquelle les propriétés de l'un des éléments sélectionnés sur le formulaire sont affichées et modifiées (et parfois un liste des événements auxquels cet élément réagit), une fenêtre d'éditeur de code dans laquelle vous pouvez saisir des fragments de code, liés au traitement de certains événements, ainsi que du code qui implémente la logique de fonctionnement cette application. Généralement, moyens modernes les développements de cette classe vous permettent de créer des applications simples pour éditer des données avec pratiquement aucun codage.

Récemment, il est également devenu très populaire de créer des applications utilisant l'accès à des bases de données, mais situées à l'intérieur de documents ordinaires. Les outils de développement de telles applications sont basés sur les langages macro des éditeurs correspondants. Le représentant le plus typique et pratiquement le seul représentant populaire des outils de développement de cette catégorie est Visual Basic pour Applications, qui est similaire aux outils de développement visuels répertoriés ci-dessus et en diffère en ce que les applications créées avec son aide sont contenues dans des documents. Microsoft Office et n'en sont pas aliénés.

Notez cependant que la division ci-dessus des outils de développement entre ces deux classes est très arbitraire. Comme nous l'avons dit ci-dessus, presque tous les outils de développement d'applications de bases de données, y compris ceux axés sur des SGBD spécifiques, prennent en charge au moins un des mécanismes d'accès universel aux données. Et presque tous les outils de développement d'applications « universels », s'ils appartiennent au fabricant d'un SGBD serveur, prennent mieux en charge « leur » SGBD que les SGBD tiers (cela peut s'exprimer, par exemple, dans des bibliothèques spéciales de classes ou de composants pour accéder un serveur donné, ainsi que la présence de référentiels communs d'objets et de modèles de données, et parfois d'éditeurs de paramètres d'accès aux données ou de schémas de données communs avec la partie client du SGBD serveur)

Classification des applications à l'aide de bases de données

Applications dans une architecture client-serveur

Dans les articles précédents de cette série, nous avons déjà parlé de ce qu'est une architecture client-serveur au sens traditionnel. On ne rappellera donc que brièvement que les systèmes d'information créés dans une telle architecture sont un serveur de base de données qui manipule les données et une application client qui y accède et utilise soit des API clientes (ou des classes et composants encapsulant leurs appels) soit celles issues de mécanismes universels d'accès aux données. . Généralement, lors de l'utilisation d'une telle architecture d'application, le serveur de base de données est également chargé de surveiller le respect des règles métier mises en œuvre sous la forme de procédures stockées, de déclencheurs, de restrictions de serveur et d'autres objets de base de données.

Pour créer des applications clientes dans ce cas, des outils de développement dotés d'outils visuels avancés, tels que Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder, sont le plus souvent utilisés.

A noter cependant que le choix d'architectures pour les applications modernes est désormais assez large et ne se limite pas à l'architecture client-serveur « classique », ce qui implique que l'application est constituée d'un serveur de base de données et d'applications clientes qui interagissent avec ce serveur. Par conséquent, nous discuterons ci-dessous des outils de développement qu'il est pratique d'utiliser lors de la création d'applications distribuées.

Applications distribuées

Les applications distribuées (ou multi-niveaux) se composent généralement de services de présentation (ou clients « légers » avec lesquels les utilisateurs finaux interagissent généralement), de services de logique métier implémentés en tant qu'objets métier (ou services de niveau intermédiaire ; souvent pour décrire un ensemble du terme middleware est utilisés pour de tels services) et les services de données (composés généralement d'un serveur de base de données et de mécanismes d'accès aux données). Les services de logique métier sont conçus pour recevoir les entrées des utilisateurs des services de présentation, interagir avec les services de données pour effectuer des opérations commerciales (par exemple, le traitement des commandes ou les calculs de bilan) et renvoyer les résultats de ces opérations aux services de présentation.

Contrairement aux applications conventionnelles dans une architecture client-serveur, dans les systèmes multiniveaux, les clients légers n'ont généralement pas d'accès direct aux données. Au lieu de cela, les clients envoient des requêtes à des objets métier spécialement conçus à cet effet. Ceux-ci, à leur tour, peuvent effectuer les opérations commerciales demandées par le client (telles que le traitement des commandes, l'exécution transaction bancaire etc.).

Certains objets métier peuvent accéder aux services de données en utilisant l'un ou l'autre mécanisme d'accès aux données. Étant donné que l’utilisateur final n’interagit pas directement avec les objets métier, ils ne disposent généralement pas d’interface utilisateur au sens traditionnel du terme. Physiquement, les objets métier peuvent être implémentés sous forme de services de système d'exploitation, d'applications console ou d'applications Windows, ainsi que sous forme de bibliothèques chargées dans l'espace d'adressage d'une application serveur spécialement conçue à cet effet (serveur Web, serveur d'applications, moniteur de transactions, etc. ). Il n’est pas rare qu’une entité commerciale serve plusieurs clients.

Pour créer des objets métier, on utilise à la fois des outils de développement dotés d'outils visuels avancés et des outils de développement axés sur la création « manuelle » de code d'application (tels que Visual C++). A noter que les dernières versions de presque tous les outils de développement d'applications Windows les plus populaires (Microsoft Visual Basic, Visual FoxPro et Visual C++, Borland Delphi et C++Builder, Sybase PowerBuilder) prennent en charge la création de différents types d'objets métier (applications Web, Objets ASP, serveurs COM, etc.), à l'exception peut-être de Microsoft Access, ce produit s'adresse davantage à des utilisateurs qualifiés qu'à des développeurs de systèmes distribués. Les outils de création d'applications Java (tels que Borland JBuilder) sont souvent utilisés à cette fin.

Notez qu'en plus des outils « universels » répertoriés ci-dessus pour créer à la fois des applications dans l'architecture client-serveur et des objets métier pour les systèmes distribués, le marché des outils de développement dispose également d'outils spécialisés conçus spécifiquement pour créer des objets métier (généralement des applications Web). . Parmi les outils de développement de cette classe pour la plate-forme Windows, le plus populaire est Microsoft Visual InterDev, dont la première version est apparue en 1998. Nous pouvons également mentionner un autre produit intéressant appartenant à la même catégorie d'outils de développement - Borland IntraBuilder, apparu deux ans plus tôt, mais pour une raison quelconque, malgré le besoin croissant de produits de cette classe, n'a pas fait l'objet d'un développement ultérieur. En règle générale, les outils de développement de cette classe vous permettent de créer des applications qui génèrent dynamiquement du code HTML ou du code dans l'un des langages de script (VBScript ou JavaScript), qui est transmis par le serveur Web au navigateur de l'utilisateur dans le cadre de la page Web, et perçoit les données saisies par l'utilisateur sous forme HTML et transmises par le navigateur au serveur Web.

Conclusion

Dans cet article, nous avons abordé le processus de création d'applications utilisant des bases de données, ainsi que les différentes catégories d'outils utilisés dans leur développement. Nous avons vu que les outils de développement peuvent être divisés, d'une part, en outils axés sur l'utilisation de SGBD spécifiques, en outils universels par rapport aux SGBD et en environnements SGBD de bureau utilisés pour le développement d'applications. D'autre part, ils peuvent être divisés en outils axés sur la conception d'interfaces utilisateur visuelles (cette catégorie comprend Microsoft Visual Basic, Borland Delphi, Sybase PowerBuilder, Borland C++Builder) et en outils axés sur l'écriture de code d'application (Visual C++).

Après avoir examiné plusieurs des outils de développement d'applications les plus populaires, nous avons constaté que la plupart de ces produits prennent généralement en charge :

  • au moins un des mécanismes universels d'accès aux données, qui vous permet d'utiliser applications créées données provenant de divers SGBD ;
  • créer plusieurs types d'applications distribuées ;
  • génération automatique de code d'application basé sur des modèles créés à l'aide des outils de conception de données et de modélisation de processus métier les plus populaires.

Nous avons également expliqué en quoi les applications client-serveur diffèrent des systèmes distribués et quels outils de développement peuvent être utilisés pour créer les deux types d'applications.

Le cycle de vie d’un système d’information ne s’arrête pas au développement d’applications. Une fois créés, ils sont censés être testés, mis en œuvre, formés à l’utilisation par les utilisateurs et enfin exploités pendant plusieurs années. À la suite d’une telle exploitation, des données s’accumulent, qui, en règle générale, ont beaucoup plus de valeur que les applications elles-mêmes. Ces données représentent souvent le matériel nécessaire pour prendre des décisions de gestion importantes, il est donc important de pouvoir les convertir sous une forme adaptée à cet objectif. A cet effet, il existe des outils appartenant à la catégorie Business Intelligence - générateurs de rapports, outils traitement analytique données et recherche de modèles. Nous en parlerons dans le prochain article de cette série.

Pour un développement optimal de l’environnement outil logiciel il est nécessaire de combiner différents langages de programmation, car chacun d'eux vise à atteindre des buts et objectifs spécifiques. Par exemple, quelques commandes PHP peuvent créer une page Web entière, mais dans la pratique, le script est presque toujours utilisé en conjonction avec HTML, et le texte source du script contient généralement un grand nombre de lignes. Cependant, il convient de noter que le code PHP peut être situé n'importe où dans un document HTML, mais il n'est pas nécessaire qu'il utilise du HTML. Il vous suffit de vous assurer que le code PHP produit le bon code HTML, qui sera ensuite correctement affiché par le navigateur Web.

HTML est un langage de balisage hypertexte utilisé pour créer des documents sur Internet. Il crée la structure et la grille nécessaires de la page, apparence ce qui améliore encore CSS et JavaScript. Actuellement, la dernière version est HTML5, précédée de HTML4.01. La plupart des ressources Web sont construites sur la base de ce langage particulier.

Contrairement à HTML 4, qui possède 3 validateurs, HTML 5 n'en possède qu'un :. HTML 5 prend en charge MathML et SVG.

Nouvelles balises : section, article, apart, hgroup, header, footer, nav, dialog, figure, video, audio, source, embed pour insérer du contenu avec le plugin (uniquement), mark, progress, meter, time, ruby, rt, rp, canevas, commande, détails, datalist, keygen, sortie.

Nouveaux types d'entrée : tel, recherche, url, email, datetime, date, mois, semaine, heure, datetime-local, numéro, plage, couleur.

Nouveaux attributs pour les balises : attributs média ping pour a et zone, etc.

La disparition de certaines balises, du fait qu'elles peuvent être remplacées par du CSS : basefont, big, center, font, s, strike, tt, u.

Cadres disparaissant en raison d'un impact négatif sur la page entière

La disparition de certaines balises, remplacées dans la spécification mise à jour par des balises plus pertinentes : acronyme (l'abréviation est utilisée), applet (l'objet est utilisé), isindex, dir.

Certains attributs de balise ne sont pas pris en charge par manque de nécessité : rev et charset pour link et a, shape et coords pour a, etc.

Certains attributs des balises ne sont pas pris en charge car lorsque en utilisant CSS atteint meilleur effet: aligner pour toutes les balises, alink, link, text, vlink pour le corps, etc.

Nouvelles API : dessiner des images 2D en temps réel ; contrôle de la lecture des fichiers multimédias ; stocker des données dans le navigateur ; édition; Glisser déposer; travailler avec le réseau; MIME; de nouveaux éléments dans le DOM.

CSS est un langage formel permettant de décrire l'apparence d'un document rédigé à l'aide d'un langage de balisage. CSS est un acronyme pour Feuilles de Style en Cascade. CSS est un langage de style qui définit l'affichage des documents HTML. Par exemple, CSS fonctionne avec les polices, la couleur, les marges, les lignes, la hauteur, la largeur, les images d'arrière-plan, le positionnement des éléments et bien d'autres choses. HTML peut être utilisé pour concevoir des sites Web, mais CSS est plus puissant, plus précis et raffiné. CSS est actuellement pris en charge par tous les navigateurs.

Le HTML est utilisé pour structurer le contenu d'une page. CSS est utilisé pour formater ce contenu structuré. Comme développement web Les concepteurs ont commencé à chercher des moyens de formater les documents en ligne. Pour répondre à la demande croissante des consommateurs, les fabricants de navigateurs (à l'époque Netscape et Microsoft) ont inventé de nouvelles balises HTML, telles que , qui différaient des balises HTML d'origine dans la mesure où elles définissaient l'apparence plutôt que la structure. Cela a également conduit à des balises structurantes originales telles que

, sont de plus en plus utilisés pour la conception de pages plutôt que pour la structuration de texte. De nombreuses nouvelles balises de conception telles que , n'étaient pris en charge que par un seul navigateur. « Vous avez besoin du navigateur X pour afficher cette page » est devenu un avertissement courant sur les sites Web.

CSS a été créé pour corriger cette situation en offrant aux concepteurs Web des fonctionnalités de conception de précision prises en charge par tous les navigateurs. Dans le même temps, la présentation et le contenu du document ont été séparés, ce qui a grandement simplifié le travail.

L'avènement du CSS a été une révolution dans le monde du design Web. Avantages spécifiques du CSS :

Contrôler l'affichage de plusieurs documents à l'aide d'une seule feuille de style ;

Contrôle plus précis de l'apparence des pages ;

Différentes vues pour différents supports (écran, impression, etc.) ;

Technique de conception complexe et sophistiquée.

Il existe des moyens d'appliquer des règles CSS à un document HTML.

Méthode 1 : Inline/In-line (attribut de style). Vous pouvez appliquer du CSS au HTML à l'aide de l'attribut de style HTML. La couleur d'arrière-plan peut être définie sur rouge comme ceci :

Exemple

C'est une page rouge

Méthode 2 : interne (balise de style). La deuxième façon d'insérer des codes CSS est une balise HTML