Logiciel d'outil de développement de logiciels. Outils de développement de logiciels Systèmes d'outils technologiques de programmation

1. Outils de développement de logiciels. Dans le processus de développement de logiciels, le support informatique des processus de développement de logiciels est utilisé à un degré ou à un autre. Ceci est réalisé en présentant au moins certains documents logiciels du PS (principalement des programmes) sur des supports de stockage informatiques (par exemple, des disques) et en mettant à la disposition du développeur de logiciels des logiciels spéciaux ou des dispositifs spéciaux inclus dans l'ordinateur, créés pour tout traitement de ces documents. documents. En tant que logiciel spécial, vous pouvez spécifier un compilateur à partir de n'importe quel langage de programmation.

Le compilateur dispense le développeur de logiciels de la nécessité d'écrire des programmes dans le langage informatique destiné au développeur. Un PS serait extrêmement gênant - au lieu de cela, il compile des programmes dans un langage de programmation qui lui convient, que le compilateur correspondant traduit automatiquement en langage informatique. Un émulateur de langage peut servir de périphérique spécial prenant en charge le processus de développement logiciel. Un émulateur permet d'exécuter (interpréter) des programmes dans un langage différent du langage de l'ordinateur qui prend en charge le développement du logiciel, par exemple dans le langage de l'ordinateur auquel ce programme est destiné. Un logiciel conçu pour prendre en charge le développement d'autres logiciels sera appelé un outil logiciel pour le développement de logiciels, et un périphérique informatique spécifiquement conçu pour prendre en charge le développement de logiciels sera appelé un outil matériel pour le développement de logiciels.

Les outils de développement logiciel peuvent être utilisés tout au long du cycle de vie du logiciel pour travailler avec différents documents de programme. Ainsi, un éditeur de texte peut être utilisé pour développer presque n’importe quel document logiciel. Du point de vue des fonctions que les outils remplissent lors du développement de logiciels, ils peuvent être divisés dans les quatre groupes suivants : · éditeurs, · analyseurs, · convertisseurs, · outils qui prennent en charge le processus d'exécution du programme.

Les éditeurs soutiennent la conception (formation) de certains documents de programme à différentes étapes du cycle de vie. Comme déjà mentionné, vous pouvez utiliser pour cela un éditeur de texte universel. Toutefois, des éditeurs spécialisés peuvent apporter un soutien plus important : chaque type de document possède son propre éditeur. En particulier, dans les premiers stades de développement, les moyens graphiques de description (schémas, schémas, etc.) peuvent être largement utilisés dans les documents. Dans de tels cas, les éditeurs graphiques peuvent s’avérer très utiles. Au stade de la programmation (codage), au lieu d'un éditeur de texte, un éditeur à contrôle syntaxique orienté vers le langage de programmation utilisé peut être plus pratique. Les analyseurs effectuent soit un traitement statique des documents, effectuant divers types de contrôles, identifiant certaines de leurs propriétés et accumulant des données statistiques (par exemple, vérifier la conformité des documents à des normes spécifiées), soit une analyse dynamique des programmes (par exemple, pour identifier les répartition du temps de fonctionnement du programme entre les modules logiciels). Les convertisseurs vous permettent de convertir automatiquement des documents vers une autre forme de représentation (par exemple, des formateurs) ou de traduire un document d'un type en un document d'un autre type (par exemple, des convertisseurs ou des compilateurs), de synthétiser un document à partir de parties distinctes, etc.

Les outils qui prennent en charge le processus d'exécution du programme vous permettent d'exécuter sur un ordinateur des descriptions de processus ou de parties individuelles de ceux-ci, présentées sous une forme autre que le code machine, ou le code machine avec des capacités supplémentaires pour son interprétation. Un exemple d'un tel outil est un émulateur du code d'un autre ordinateur. Ce groupe d'outils comprend également divers débogueurs. Essentiellement, chaque système de programmation contient un sous-système logiciel d'exécution qui exécute les fragments de programme les plus typiques d'un langage de programmation et fournit une réponse standard aux situations exceptionnelles qui surviennent lors de l'exécution du programme (nous appellerons un tel sous-système support exécutif) - peut également être considéré comme un outil pour ces groupes.

2. Environnements d'outils pour le développement et la maintenance de logiciels. Actuellement, chaque système de programmation n'est pas associé à des outils individuels (par exemple, un compilateur), mais à un certain ensemble d'outils logiciels et matériels logiquement connectés qui prennent en charge le développement et la maintenance de logiciels dans un langage de programmation donné ou se concentrent sur un domaine spécifique. Domaine. Nous appellerons un tel ensemble l’environnement instrumental pour le développement et la maintenance de logiciels. De tels environnements d'outils se caractérisent, d'une part, par l'utilisation d'outils logiciels et matériels et, d'autre part, par une certaine orientation soit vers un langage de programmation spécifique, soit vers un domaine spécifique. L'environnement de l'outil ne doit pas nécessairement fonctionner sur l'ordinateur sur lequel le logiciel développé avec son aide sera utilisé. Souvent, une telle combinaison est assez pratique (si seule la puissance de l'ordinateur utilisé le permet) : il n'est pas nécessaire de traiter avec des ordinateurs de différents types ; des composants de l'environnement de l'outil lui-même peuvent être inclus dans le logiciel développé.

Il existe trois classes principales d'environnements d'outils pour développer et maintenir des environnements de programmation PS : · postes de travail en technologie informatique, · systèmes d'outils pour la technologie de programmation. L'environnement de programmation est principalement destiné à prendre en charge les processus de programmation (codage), de test et de débogage du logiciel. Le milieu de travail en technologie informatique se concentre sur le soutien aux premières étapes du développement de logiciels (spécifications) et à la génération automatique de programmes conformément aux spécifications. Le système d'outils technologiques de programmation est conçu pour prendre en charge tous les processus de développement et de maintenance tout au long du cycle de vie du logiciel et se concentre sur le développement collectif de grands systèmes logiciels avec un long cycle de vie.

3. Les environnements de programmation d'outils contiennent tout d'abord un éditeur de texte qui permet de construire des programmes dans un langage de programmation donné, des outils qui permettent de compiler ou d'interpréter des programmes dans ce langage, ainsi que de tester et déboguer les programmes résultants. De plus, il peut exister d'autres outils, par exemple pour l'analyse de programmes statiques ou dynamiques. Ces outils interagissent les uns avec les autres via des fichiers normaux utilisant les capacités standard du système de fichiers. On distingue les classes d'outils de programmation suivantes : environnements à usage général, environnements orientés langage.

Les environnements de programmation à usage général contiennent un ensemble d'outils logiciels qui prennent en charge le développement de programmes dans différents langages de programmation (par exemple, un éditeur de texte, un éditeur de liens ou un interpréteur pour le langage de l'ordinateur cible) et représentent généralement certains extension des capacités du système d'exploitation utilisé. Pour programmer dans un tel environnement dans n'importe quel langage de programmation, des outils supplémentaires destinés à ce langage (par exemple, un compilateur) seront nécessaires. . . Classification des outils de programmation

4. Le concept de technologie informatique pour le développement de logiciels et ses emplois. Il est difficile de développer une définition stricte de la technologie CASE (technologie informatique pour le développement de logiciels). CASE est un acronyme pour Computer-Aided Software Engineering. Mais sans l'aide (le support) d'un ordinateur, les systèmes logiciels n'ont pas été développés depuis longtemps (au moins un compilateur est utilisé). En fait, ce concept reçoit un sens plus étroit (spécial), qui s'estompe progressivement (comme cela arrive toujours lorsqu'un concept n'a pas de définition stricte). Initialement, CASE était compris comme l'ingénierie des premières étapes du développement logiciel (définition des exigences, développement d'une description externe et de l'architecture du logiciel) à l'aide d'un support logiciel (outils logiciels). Désormais, CASE peut également être compris comme l'ingénierie de l'ensemble du cycle de vie d'un système logiciel (y compris sa maintenance), mais uniquement dans le cas où les programmes sont partiellement ou totalement générés à partir de documents obtenus à ces premiers stades de développement. Dans ce cas, la technologie CASE a commencé à différer fondamentalement de la technologie manuelle (traditionnelle) de développement logiciel : non seulement le contenu des processus technologiques a changé, mais aussi leur totalité.

Actuellement, la technologie de développement de logiciels informatiques peut être caractérisée par : - L'utilisation d'un support logiciel pour l'élaboration des exigences graphiques et des spécifications graphiques du logiciel, - la génération automatique de programmes dans n'importe quel langage de programmation ou en code machine (partiellement ou totalement) , - support logiciel pour le prototypage.

Un système d'outils technologiques de programmation est un ensemble intégré d'outils logiciels et matériels qui prennent en charge tous les processus de développement et de maintenance de grands systèmes logiciels tout au long du cycle de vie d'une certaine technologie. De cette définition découlent les principales caractéristiques suivantes de cette classe de support informatique : · complexité, · concentration sur le développement collectif, · certitude technologique, · intégration.

Compte tenu des propriétés discutées des systèmes instrumentaux de technologie de programmation, on peut distinguer trois de leurs composants principaux : · base de données de développement (référentiel), · outils, · interfaces.

Un référentiel est un stockage informatique central d'informations liées au projet (développement) d'un système logiciel tout au long de son cycle de vie. Boîte à outils - un ensemble d'outils qui définit les capacités fournies par le système à l'équipe de développement. Typiquement, cet ensemble est ouvert : en plus de l'ensemble minimal (outils intégrés), il contient des moyens de son extension (outils importés), et structuré, constitué d'une partie commune de tous les outils (le noyau) et structurel (parfois classes d'outils hiérarchiquement liées. Les interfaces sont divisées en 1) utilisateur 2) système. L'interface utilisateur permet aux développeurs d'accéder à des outils (langage de commande, etc.) et est implémentée par le shell du système. Les interfaces système assurent l'interaction entre les outils et leurs parties communes. Les interfaces système sont mises en évidence en tant que composants architecturaux en raison de l'ouverture du système - elles doivent être utilisées par les nouveaux outils (importés) inclus dans le système.

Il existe deux classes de systèmes d'outils technologiques de programmation : 1) les systèmes d'outils de support de projet et 2) les systèmes d'outils dépendants du langage. Le système instrumental de support de projet est un système ouvert capable de prendre en charge le développement de logiciels dans différents langages de programmation après son expansion appropriée avec des outils logiciels axés sur le langage sélectionné. Un tel système contient un noyau (fournissant notamment l'accès au référentiel), un ensemble d'outils prenant en charge la gestion du développement logiciel, des outils indépendants du langage de programmation prenant en charge le développement logiciel (éditeurs de texte et graphiques, générateurs de rapports, etc.) , ainsi que des outils d'extension du système. Un système instrumental dépendant du langage est un système permettant de prendre en charge le développement de logiciels dans n'importe quel langage de programmation, qui utilise essentiellement les spécificités de ce langage pour organiser son travail. Cette spécificité peut affecter à la fois les capacités du noyau (y compris la structure du référentiel) et les exigences relatives au shell et aux outils.

Langage de modélisation unifié UML La plupart des méthodes d'analyse et de conception orientées objet (OOAP) existantes incluent à la fois un langage de modélisation et une description du processus de modélisation. Un langage de modélisation est une notation (principalement graphique) utilisée par une méthode pour décrire des projets. La notation est une collection d'objets graphiques utilisés dans les modèles ; c'est la syntaxe du langage de modélisation. Par exemple, la notation des diagrammes de classes définit la manière dont les éléments et les concepts tels que la classe, l'association et la multiplicité sont représentés. Un processus est une description des étapes à suivre pour développer un projet. Le langage de modélisation unifié (UML) est le successeur de cette génération de méthodes OOAP apparues à la fin des années 80 et au début des années 90.

UML est un langage de modélisation visuelle à usage général conçu pour spécifier, visualiser, concevoir et documenter les composants logiciels, les processus métier et d'autres systèmes. Le langage UML est à la fois un outil de modélisation simple et puissant qui peut être utilisé efficacement pour construire des modèles conceptuels, logiques et graphiques de systèmes complexes à des fins très diverses. L'utilisation constructive du langage UML repose sur la compréhension des principes généraux de modélisation de systèmes complexes et des caractéristiques du processus de conception orientée objet (POO) en particulier. Le choix des moyens expressifs pour construire des modèles de systèmes complexes prédétermine les tâches qui peuvent être résolues à l'aide de ces modèles. Dans le même temps, l'un des principes de base pour la construction de modèles de systèmes complexes est le principe d'abstraction, qui prescrit d'inclure dans le modèle uniquement les aspects du système conçu qui sont directement liés à l'exécution par le système de ses fonctions ou à sa destination. . Dans ce cas, tous les détails mineurs sont omis afin de ne pas trop compliquer le processus d'analyse et de recherche du modèle résultant.

UML contient un ensemble standard de diagrammes et de notations d'une grande variété de types. Un diagramme en UML est une représentation graphique d'un ensemble d'éléments, le plus souvent représenté comme un graphe connecté avec des sommets (entités) et des arêtes (relations). Des diagrammes sont dessinés pour visualiser un système sous différentes perspectives. Un diagramme est, en un sens, une des projections du système. En règle générale, sauf dans les cas les plus triviaux, les schémas fournissent une vue condensée des éléments qui composent le système. Le même élément peut être présent dans tous les diagrammes, ou seulement dans quelques-uns (option la plus courante), ou ne pas être présent dans aucun (très rare). En théorie, les diagrammes peuvent contenir n’importe quelle combinaison d’entités et de relations. Dans la pratique, cependant, un nombre relativement restreint de combinaisons standards sont utilisées, correspondant aux cinq types les plus courants qui composent l'architecture d'un système logiciel.

UML distingue les types de diagrammes suivants : – diagrammes de cas d’utilisation – pour modéliser les processus métiers de l’organisation (exigences système) ; – diagrammes de classes – pour modéliser la structure statique des classes du système et les connexions entre elles. Ces diagrammes montrent les classes, les interfaces, les objets et les collaborations, ainsi que leurs relations. Lors de la modélisation de systèmes orientés objet, ce type de diagramme est le plus souvent utilisé. Les diagrammes de classes correspondent à la vue statique du système d'un point de vue conception ; – diagrammes de comportement du système (diagrammes de comportement) ; diagrammes d’interaction – pour modéliser le processus d’échange de messages entre objets. – diagrammes d'états-transitions – pour modéliser le comportement des objets du système lors de la transition d'un état à un autre.

– diagrammes d'activités – pour modéliser le comportement du système dans différents cas d'utilisation ou activités de modélisation. – diagrammes de mise en œuvre : diagrammes de composants – pour modéliser la hiérarchie des composants (sous-systèmes) du système ; diagrammes de déploiement – ​​pour modéliser l’architecture physique du système.

Essai

LOGICIEL - un ensemble de programmes de système de traitement de l'information et de documents de programme nécessaires au fonctionnement de ces programmes (GOST 19781-90). Également - un ensemble de programmes, de procédures et de règles, ainsi que la documentation relative au fonctionnement du système informatique (ST ISO 2382/1-84).

LOGICIEL OUTIL – logiciel destiné à être utilisé dans la conception, le développement et la maintenance de programmes. Généralement, ce terme est utilisé pour souligner la différence entre cette classe de logiciels et les logiciels d'application et système.

COMPILATEUR – un traducteur qui convertit un programme écrit dans la langue source en un module objet.

INTERPRÈTE - un programme (parfois matériel) qui analyse les commandes ou les instructions du programme et les exécute immédiatement.

SYSTÈME D'EXPLOITATION - un ensemble de programmes de contrôle et de traitement qui, d'une part, agissent comme une interface entre les appareils du système informatique et les programmes d'application, et d'autre part, sont conçus pour contrôler les appareils, gérer les processus informatiques, répartir efficacement les ressources informatiques entre processus informatiques et organiser une informatique fiable.

PROGRAMME D'APPLICATION - un programme conçu pour effectuer certaines tâches utilisateur et conçu pour une interaction directe avec l'utilisateur.

VISUALBASIC est un outil de développement logiciel développé par Microsoft Corporation qui comprend un langage de programmation et un environnement de développement.

VISUALBASICFORAPPLICATION est une implémentation légèrement simplifiée du langage de programmation Visual Basic, intégrée à la gamme de produits Microsoft Office (y compris les versions pour Mac OS), ainsi qu'à de nombreux autres progiciels tels qu'AutoCAD, SolidWorks, CorelDRAW, WordPerfect et ESRI ArcGIS.

Le but du travail est d'étudier les types et les fonctions des logiciels, notamment des logiciels instrumentaux.

Classement des logiciels :

Types de logiciels outils :

1) Éditeurs de texte

4) Compilateurs

5) Interprètes

6) Liens

8) Assembleurs

9) Débogueurs

10) Profileurs

11) Générateurs de documentation

Pour créer un programme dans le langage de programmation choisi, vous devez disposer des composants suivants :

2. Compilateur ou interprète. Le texte source est traduit en code objet intermédiaire à l'aide d'un programme compilateur.

Résultat du travail : Le logiciel, ses fonctions et ses types, en particulier les logiciels instrumentaux, son essence et ses tâches sont considérés. Le troisième chapitre traite de Microsoft Visual Basic en tant qu'outil de développement logiciel et de son dialecte - Microsoft Visual Basic for Application. Le cours met en œuvre un algorithme de résolution d'un problème financier et économique à l'aide du langage de programmation Pascal.

Introduction

Dans le monde moderne, plus d'une personne ayant goûté aux bienfaits de la civilisation ne peut imaginer sa vie sans l'utilisation de la technologie informatique. Son utilisation se produit dans toutes les sphères de l'activité humaine : production, commerce, éducation, divertissement et communication des personnes, leurs activités scientifiques et culturelles. Tout cela est dû à la possibilité de sélectionner du matériel informatique pour résoudre n'importe quel problème, même le plus complexe.

Cependant, la polyvalence et la spécialisation de la technologie informatique sont assurées par l'utilisation d'un ensemble différent de logiciels sur la base de presque tous les ordinateurs qui fournissent une solution à toutes les tâches assignées.

Nous sommes tous témoins de l'immense variété de programmes informatiques et du rythme effarant de leur croissance et de leur amélioration, et seule une petite partie d'entre nous comprend le côté invisible de leur conception, de leur développement et de leur création. Cependant, ce domaine de l'informatique est, à notre avis, le plus important, puisque l'avenir de l'informatique dépendra de son développement.

Et puisque le développement de tout programme informatique s'effectue à l'aide d'un logiciel instrumental, dans notre travail de cours, je voudrais m'y attarder en détail, en le mettant en évidence parmi tous les logiciels et en révélant son essence et ses fonctionnalités.

Pour plus de clarté, nous examinerons les logiciels instrumentaux (objet d'étude) à l'aide de l'exemple du progiciel VisualBasicforApplication (sujet d'étude), utilisé pour la programmation dans l'environnement Microsoft Office - le progiciel bureautique le plus répandu et le plus populaire.

1. Logiciel

1.1 Concept et essence du logiciel

Le logiciel fait partie intégrante d'un système informatique. C'est une suite logique des moyens techniques de tout ordinateur. Le champ d'application d'un ordinateur particulier est déterminé par le logiciel créé pour celui-ci. L’ordinateur lui-même ne connaît aucune application. Toutes ces connaissances sont concentrées dans des programmes exécutés sur des ordinateurs, qui disposent d'un ensemble de fonctionnalités spécifiques et sont conçus pour exécuter des fonctions spécifiques, dans la plupart des cas, hautement spécialisées, telles que la création et le traitement d'images graphiques ou de fichiers sonores.

Les logiciels comprennent actuellement des centaines de milliers de programmes conçus pour traiter une grande variété d'informations à des fins très diverses.

Les logiciels comprennent également tout le domaine d'activité de conception et de développement de logiciels :

1) technologie de conception de programmes (par exemple, conception descendante, conception structurée et orientée objet) ;

2) méthodes de test des programmes ;

3) méthodes pour prouver l'exactitude des programmes ;

4) analyse de la qualité des programmes ;

5) documenter les programmes ;

6) développement et utilisation d'outils logiciels qui facilitent le processus de conception de logiciels, et bien plus encore.

Il existe de nombreuses définitions différentes du logiciel. En général, un logiciel est un ensemble de programmes de système de traitement de l'information et de documents de programme nécessaires au fonctionnement de ces programmes (GOST 19781-90). Également - un ensemble de programmes, de procédures et de règles, ainsi que la documentation relative au fonctionnement du système informatique (ST ISO 2382/1-84).

Le logiciel est l'un des types de support d'un système informatique, au même titre que le support technique (matériel), mathématique, informationnel, linguistique, organisationnel et méthodologique.

En argot informatique, le mot logiciel est souvent utilisé à partir du mot anglais logiciel, qui a été utilisé pour la première fois dans ce sens dans un article de l'American Mathematical Monthly par le mathématicien de l'Université de Princeton, John W. Tukey, en 1958.

Autres définitions :

1) LE LOGICIEL est un ensemble de programmes permettant le traitement automatisé des informations sur un ordinateur.

2) LOGICIEL (support mathématique pour un ordinateur électronique), un ensemble de programmes pour un système de traitement de données et des documents de programme nécessaires à la mise en œuvre de programmes sur un ordinateur électronique.

3) LOGICIEL - un ensemble de programmes permettant de contrôler le processus de fonctionnement de l'ordinateur et d'automatiser la programmation.

4) LOGICIEL - un ensemble de programmes informatiques qui assurent le traitement ou la transmission des données.

Toutes les définitions sont similaires et reflètent l'essence du logiciel - organisant l'interaction de la partie matérielle (technique), sous la forme de divers nœuds et périphériques intégrés, leur contrôle et leur coordination de l'interaction globale du système informatique les uns avec les autres et avec l'utilisateur.

1.2 Fonctions du logiciel

Les concepts de logiciel ci-dessus déterminent les fonctions exécutées par le logiciel lors du fonctionnement de l'équipement informatique. La liste de ces fonctions est très diversifiée, mais elles peuvent être grossièrement divisées en cinq types suivants :

1. Matériel et mécanique. Ils interfacent différents composants informatiques et assurent la transmission d'un signal matériel d'un composant à un autre.

2. Machine-Logique. Traiter et interpréter un ensemble d'impulsions électromagnétiques provenant du matériel en un code logiciel logiquement conscient qui possède une structure et des propriétés spécifiques.

3. Information et commandement. Ils vérifient la conformité du code du programme avec les principes du système, créent une structure logique de l'information et procèdent à son exécution.

4. Interfaces. Assurer le traitement et l'interprétation du code du programme dans un format d'affichage accessible à l'utilisateur. Crée un environnement favorable à l’interaction « Ordinateur-Homme, Homme-Machine ».

5. Appliqué. Effectue des actions mathématiques, logiques, physiques et autres avec un ensemble de données disponibles, en d'autres termes, traite les informations disponibles pour résoudre certains problèmes.

Cette liste est loin d'être exhaustive, ce qui témoigne de la diversité et de l'ambiguïté des fonctions assurées par le logiciel.

1.3 Types de logiciels

En fonction des fonctions fournies par un composant informatique donné, il est nécessaire de créer votre propre logiciel spécialisé, ce qui est le motif fondamental de la création de logiciels de différents types, illustré dans (Fig. 1) :

a) Programmes d'application qui prennent directement en charge l'exécution des travaux requis par les utilisateurs ;

b) les programmes système, conçus pour contrôler le fonctionnement du système informatique, remplissent diverses fonctions auxiliaires, par exemple :

1) gestion des ressources informatiques ;

2) créer des copies des informations utilisées ;

3) vérifier la fonctionnalité des appareils informatiques ;

4) fournir des informations de référence sur l'ordinateur, etc. ;

c) des systèmes logiciels instrumentaux qui facilitent le processus de création de nouveaux programmes informatiques.

Le logiciel système assure le fonctionnement et la maintenance de l'ordinateur, ainsi que l'automatisation du processus de création de nouveaux programmes. Le logiciel système comprend : les systèmes d'exploitation et leur interface utilisateur ; outils logiciels; systèmes d’entretien.

Un système d'exploitation est un élément obligatoire d'un logiciel spécial qui assure le fonctionnement efficace d'un ordinateur personnel dans différents modes, organisant l'exécution de programmes et l'interaction de l'utilisateur et des périphériques externes avec l'ordinateur.

L’interface utilisateur (programmes de service) sont des modules complémentaires logiciels au système d’exploitation (shell et environnement) conçus pour simplifier la communication de l’utilisateur avec le système d’exploitation.

Les programmes qui fournissent l'interface conservent la forme de communication (dialogue) entre l'utilisateur et le système d'exploitation, mais changent la langue de communication (généralement le langage de commande est converti en langage de menu). Les systèmes de service peuvent être divisés en systèmes d'interface, shells de système d'exploitation et utilitaires.

Les systèmes d'interface sont des systèmes de services puissants, le plus souvent de type graphique, qui améliorent non seulement l'utilisateur, mais également l'interface de programme des systèmes d'exploitation, en mettant notamment en œuvre certaines procédures supplémentaires pour diviser des ressources supplémentaires.

Les shells du système d'exploitation offrent à l'utilisateur une interface qualitativement nouvelle par rapport à celle implémentée par le système d'exploitation et rendent facultative la connaissance de ce dernier.

Les utilitaires automatisent l'exécution de certaines procédures standards fréquemment utilisées, dont la mise en œuvre nécessiterait que l'utilisateur développe des programmes spéciaux. De nombreux utilitaires disposent d'une interface interactive développée avec l'utilisateur et se rapprochent du niveau de communication des shells.

Les outils logiciels (systèmes de programmation) sont une partie obligatoire du logiciel avec lequel les programmes sont créés. Les outils logiciels comprennent des outils d'écriture de programmes (éditeurs de texte) ; moyens de conversion de programmes sous une forme adaptée à l'exécution sur un ordinateur (assembleurs, compilateurs, interprètes, chargeurs et éditeurs de liens), moyens de surveillance et de débogage des programmes.

Les éditeurs de texte vous permettent d'éditer, de former et de combiner facilement des textes de programme, et certains vous permettent de contrôler la syntaxe des programmes créés.

Un programme écrit en langage algorithmique doit être converti en un module objet écrit en langage machine (code binaire). Une telle conversion est effectuée par des traducteurs (assembleur - du langage Assembler et compilateurs - des langages de haut niveau). Pour certains langages algorithmiques, on utilise des interpréteurs qui ne créent pas de module objet, mais, à chaque exécution successive du programme, traduisent chacune de ses lignes ou instructions individuelles en langage machine. Le module objet est traité par un chargeur - un éditeur de liens, qui le convertit en un programme machine exécutable.

Les outils de débogage vous permettent de suivre les programmes (exécution étape par étape avec des informations sur les résultats d'exécution), de vérifier la syntaxe du programme et les résultats intermédiaires aux points d'arrêt et de modifier les valeurs des variables à ces points.

Les systèmes de maintenance et de service sont des outils logiciels permettant de surveiller, de diagnostiquer et de restaurer les fonctionnalités d'un ordinateur, de disques, etc.

Le logiciel d'application fournit des solutions aux problèmes des utilisateurs. Le concept clé ici est le dossier de candidature.

Un progiciel d'application est un ensemble de programmes permettant de résoudre une gamme de problèmes sur un sujet ou un sujet spécifique. On distingue les types de packages de candidature suivants :

1) usage général - axé sur l'automatisation d'un large éventail de tâches utilisateur (traitements de texte, éditeurs de feuilles de calcul, systèmes de gestion de bases de données, processeurs graphiques, systèmes de publication, systèmes d'automatisation de la conception, etc.) ;

2) orienté méthode - mise en œuvre de diverses méthodes économiques et mathématiques pour résoudre des problèmes (programmation mathématique, planification et gestion de réseaux, théorie des files d'attente, statistiques mathématiques, etc.) ;

3) orienté problème - visant à résoudre une tâche (problème) spécifique dans un domaine spécifique (progiciels bancaires, progiciels comptables, gestion financière, référentiels juridiques, etc.).

Le logiciel d'application comprend un logiciel de service qui sert à organiser un environnement de travail pratique pour l'utilisateur, ainsi qu'à exécuter des fonctions auxiliaires (gestionnaires d'informations, traducteurs, etc.).

Lors de la construction d'une classification des logiciels, il faut tenir compte du fait que le développement rapide de la technologie informatique et l'expansion de la portée des applications informatiques ont fortement accéléré le processus d'évolution des logiciels. Si auparavant il était facile d'énumérer les principales catégories de logiciels - systèmes d'exploitation, traducteurs, progiciels d'application, aujourd'hui la situation a radicalement changé. Le développement de logiciels est allé à la fois en profondeur (de nouvelles approches de création de systèmes d'exploitation, de langages de programmation, etc. sont apparues) et en ampleur (les programmes d'application ont cessé d'être appliqués et ont acquis une valeur indépendante). La relation entre les produits logiciels requis et ceux disponibles sur le marché évolue très rapidement. Même les produits logiciels classiques, tels que les systèmes d'exploitation, évoluent constamment et sont dotés de fonctions intelligentes, dont beaucoup étaient auparavant uniquement liées aux capacités intellectuelles humaines.

2. Logiciel d'outillage

2.1 L'essence et le concept des outils logiciels

Un logiciel instrumental (IPO) est un logiciel destiné à être utilisé dans la conception, le développement et la maintenance de programmes.

L'outillage est utilisé dans la phase de développement. Les logiciels d'outillage sont un ensemble de programmes utilisés pour assister les programmeurs dans leur travail, pour aider les responsables du développement de logiciels dans leurs efforts pour contrôler le processus de développement et les produits résultants. Les représentants les plus célèbres de cette partie du logiciel sont les programmes de traduction des langages de programmation, qui aident les programmeurs à écrire des commandes machine. Les programmes instrumentaux sont des traducteurs des langages Fortran, Cobol, Joe-vial, BASIC, APL et Pascal. Ils facilitent le processus de création de nouveaux programmes de travail. Cependant, les traducteurs de langue ne constituent que la partie la plus connue des programmes instrumentaux ; ils sont très nombreux.

Utiliser des ordinateurs pour créer de nouveaux programmes est loin d’être évident pour les personnes qui ne sont pas des programmeurs professionnels. Il arrive souvent que les professionnels parlent dans le même souffle de logiciel outil (phase de développement) et de logiciel système (phase d'utilisation), supposant que ceux qui ne connaissent pas les secrets de leur métier sont conscients de ce rôle de logiciel outil. Tout comme lors de la phase d'utilisation (pour les programmes d'application), le logiciel système fonctionne également lors de la phase de développement, mais uniquement en relation avec l'outillage. Les logiciels-outils ou systèmes de programmation sont des systèmes permettant d'automatiser le développement de nouveaux programmes dans un langage de programmation.

Dans le cas le plus général, pour créer un programme dans le langage de programmation sélectionné (langage de programmation système), vous devez disposer des composants suivants :

1. Éditeur de texte pour créer un fichier avec le texte source du programme.

2. Compilateur ou interprète. Le texte source est traduit en code objet intermédiaire à l'aide d'un programme compilateur. Le code source d'un grand programme se compose de plusieurs modules (fichiers sources). Chaque module est compilé dans un fichier séparé avec le code objet, qui doit ensuite être combiné en un seul.

3. Un éditeur de liens ou un assembleur qui relie des modules d'objets et produit une application fonctionnelle en tant que code exécutable de sortie.

Le code exécutable est un programme complet qui peut être exécuté sur n'importe quel ordinateur doté du système d'exploitation pour lequel le programme a été créé. En règle générale, le fichier résultant porte l'extension .EXE ou .COM.

Récemment, les méthodes de programmation visuelle (utilisant des langages de script) visant à créer des applications Windows se sont généralisées. Ce processus est automatisé dans les environnements de conception rapide. Dans ce cas, des composants visuels prêts à l'emploi sont utilisés, qui sont configurés à l'aide d'éditeurs spéciaux.

Les éditeurs les plus populaires (systèmes de programmation de programmes utilisant des outils visuels) pour la conception visuelle :

1) Borland Delphi - conçu pour résoudre presque tous les problèmes de programmation d'applications.

2) Borland C++ Builder est un excellent outil pour développer des applications DOS et Windows.

3) Microsoft Visual Basic est un outil populaire pour créer des programmes Windows.

4) Microsoft Visual C++ - cet outil vous permet de développer n'importe quelle application exécutée dans un environnement de système d'exploitation tel que Microsoft Windows

Ainsi, l'essence du logiciel instrumental est de créer n'importe quel programme exécutable en convertissant des expressions logiques formelles en code machine exécutable, ainsi que son contrôle et son ajustement.

2.2 Tâches et fonctions du logiciel outil

Les logiciels instrumentaux, en tant que type particulier de logiciels, se caractérisent par des caractéristiques générales et privées.

fonctions, comme pour tous les logiciels en général. Les fonctions générales sont discutées ci-dessus, et les fonctions spécialisées inhérentes uniquement à ce type de programme sont :

1. Création du texte du programme en cours de développement à l'aide de mots de code spécialement établis (langage de programmation), ainsi que d'un certain ensemble de caractères et de leur emplacement dans le fichier créé - syntaxe du programme.

2. Traduction du texte du programme créé en code orienté machine, accessible pour la reconnaissance informatique. Si le volume du programme créé est important, il est divisé en modules distincts et chacun des modules est traduit séparément.

3. Connecter des modules individuels en un seul code exécutable, dans le respect de la structure nécessaire, assurant la coordination de l'interaction des parties individuelles les unes avec les autres.

4. Tester et surveiller le programme créé, identifier et éliminer les erreurs formelles, logiques et syntaxiques, vérifier les programmes pour la présence de codes interdits, ainsi qu'évaluer les performances et le potentiel du programme créé.

2.3 Types d'outils logiciels

En fonction des tâches assignées au logiciel instrumental, on peut distinguer un grand nombre de types différents de logiciels instrumentaux :

1) Éditeurs de texte

2) Environnements de développement intégrés

4) Compilateurs

5) Interprètes

6) Liens

7) Analyseurs et générateurs d'analyseurs (voir Javacc)

8) Assembleurs

9) Débogueurs

10) Profileurs

11) Générateurs de documentation

12) Outils d'analyse de la couverture du code

13) Outils d'intégration continue

14) Outils de test automatisés

15) Systèmes de contrôle de version, etc.

Il convient de noter que les shells permettant de créer des programmes d'application sont également créés par des programmes-outils et peuvent donc être classés comme programmes d'application. Examinons brièvement les objectifs de certains programmes instrumentaux.

Éditeurs de texte.

Un éditeur de texte est un programme informatique conçu pour traiter des fichiers texte, par exemple pour créer et apporter des modifications.

Types d'éditeurs de texte.

Classiquement, il existe deux types d'éditeurs : les éditeurs de texte en streaming et les éditeurs interactifs.

Les éditeurs de texte de flux sont des programmes informatiques conçus pour traiter automatiquement les données de texte d'entrée reçues d'un fichier texte conformément aux règles prédéfinies par les utilisateurs. Le plus souvent, les règles sont des expressions régulières, dans un dialecte propre à un éditeur de texte donné. Un exemple d'un tel éditeur de texte est l'éditeur Sed.

Les éditeurs de texte interactifs sont une famille de programmes informatiques conçus pour apporter des modifications à un fichier texte de manière interactive. De tels programmes vous permettent d'afficher l'état actuel des données texte dans un fichier et d'effectuer diverses actions dessus.

Les éditeurs de texte interactifs contiennent souvent des fonctionnalités supplémentaires importantes conçues pour automatiser une partie des actions d'édition ou pour modifier l'affichage des données texte, en fonction de leur sémantique. Un exemple de ce dernier type de fonctionnalité est la coloration syntaxique.

Les éditeurs de texte sont conçus pour créer et éditer des documents texte. Les plus courants sont MS WORD, Lexicon. Les principales fonctions des éditeurs de texte sont :

1) travailler avec des fragments de documents,

2) insertion d'objets créés dans d'autres programmes

3) diviser le texte du document en pages

4) saisir et éditer des tableaux

5) saisie et édition de formules

6) mise en forme des paragraphes

7) création automatique de listes

8) création automatique d'une table des matières.

Des dizaines d'éditeurs de texte sont connus. Les plus accessibles sont NOTEPAD (bloc-notes), WORDPAD, WORD. Le fonctionnement d'un éditeur de texte particulier est généralement déterminé par des fonctions dont le but est reflété dans les éléments de menu et dans le système d'aide.

Environnement de développement intégré

L'environnement de développement intégré, ISD, est un système logiciel utilisé par les programmeurs pour développer des logiciels. Généralement, l'environnement de développement comprend :

1) éditeur de texte

2) compilateur et/ou interprète

3) outils d'automatisation de l'assemblage

4) débogueur.

Parfois, il contient également des outils d'intégration avec des systèmes de contrôle de version et divers outils pour simplifier la conception d'une interface utilisateur graphique. De nombreux environnements de développement modernes incluent également un navigateur de classes, un inspecteur d'objets et un diagramme hiérarchique de classes à utiliser dans le développement de logiciels orientés objet. Bien qu'il existe des environnements de développement conçus pour plusieurs langages de programmation - tels qu'Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator ou Microsoft Visual Studio, l'environnement de développement est généralement destiné à un langage de programmation spécifique - tel que Visual Basic, Delphi, Dev. -C++.

Un cas particulier d'ISR est un environnement de développement visuel, qui inclut la possibilité de modifier visuellement l'interface du programme.

SDK.

SDK (de l'anglais SoftwareDevelopmentKit) ou « devkit » est un kit de développement qui permet aux spécialistes du logiciel de créer des applications pour un progiciel spécifique, un logiciel de développement de base, une plate-forme matérielle, un système informatique, des consoles de jeux vidéo, des systèmes d'exploitation et d'autres plates-formes.

En règle générale, le programmeur reçoit le SDK directement du développeur de la technologie ou du système cible. Le SDK est souvent distribué sur Internet. De nombreux SDK sont distribués gratuitement pour encourager les développeurs à utiliser une technologie ou une plateforme donnée.

Les fournisseurs de SDK remplacent parfois le terme logiciel dans le kit de développement logiciel par un mot plus précis. Par exemple, Microsoft et Apple fournissent des kits de développement de pilotes (DDK) pour développer des pilotes de périphériques, et PalmSource appelle sa boîte à outils de développement PalmOS Development Kit (PDK).

Exemples de SDK :

5) Kit de développement Java

6) SDK des appareils Opera

Compilateurs.

Compilateur -

1) Un programme ou un outil technique qui effectue la compilation.

2) Le programme machine utilisé pour la compilation.

3) Un traducteur qui convertit un programme écrit dans la langue source en un module objet.

4) Un programme qui traduit le texte d'un programme dans un langage de haut niveau en un programme équivalent en langage machine.

5) Un programme conçu pour traduire un langage de haut niveau en code absolu ou, parfois, en langage assembleur. Les informations d'entrée du compilateur (code source) sont une description de l'algorithme ou du programme dans un langage orienté problème, et la sortie du compilateur est une description équivalente de l'algorithme dans un langage orienté machine (code objet).

Compilation-

1) Traduction d'un programme dans un langage proche du langage machine.

2) Traduction d'un programme écrit dans la langue source en un module objet. Réalisé par le compilateur.

Compiler - traduire un programme machine d'un langage orienté problème vers un langage orienté machine.

Types de compilateurs :

1) Vectorisation. Traduit le code source en code machine sur les ordinateurs équipés d'un processeur vectoriel.

2) Souple. Modulaire, piloté par des tables et programmé dans un langage de haut niveau ou implémenté à l'aide d'un compilateur de compilateurs.

3) Dialogues.

4) Incrémentiel. Retransmet les fragments du programme et les ajouts sans recompiler l'intégralité du programme.

5) Interprétatif (étape par étape). Effectue séquentiellement une compilation indépendante de chaque instruction individuelle (commande) du programme source.

6) Compilateur de compilateurs. Un traducteur qui accepte une description formelle d'un langage de programmation et génère un compilateur pour ce langage.

7) Déboguer. Élimine certains types d'erreurs de syntaxe.

8) Résident. Vit en permanence dans la mémoire principale et est disponible pour être réutilisé par de nombreuses tâches.

9) Auto-compilation. Écrit dans la même langue à partir de laquelle la diffusion est effectuée.

10) Universel. Basé sur une description formelle de la syntaxe et de la sémantique du langage d’entrée. Les composants d'un tel compilateur sont : le noyau, les chargeurs syntaxiques et sémantiques.

Types de compilation :

1) Lot. Compilation de plusieurs modules sources en un seul élément de travail.

2) Ligne par ligne.

3) Conditionnel. Compilation dans laquelle le texte traduit dépend des conditions spécifiées dans le programme source. Ainsi, en fonction de la valeur d'une certaine constante, vous pouvez activer ou désactiver la traduction d'une partie du texte du programme.

Structure du compilateur.

Le processus de compilation comprend les étapes suivantes :

1) Analyse lexicale. A ce stade, la séquence de caractères du fichier source est convertie en une séquence de jetons.

2) Analyse syntaxique (grammaticale). La séquence de jetons est convertie en un arbre d'analyse.

3) Analyse sémantique. L'arbre d'analyse est traité pour établir sa sémantique (signification) - par exemple, lier les identifiants à leurs déclarations, types, vérifier la compatibilité, déterminer les types d'expression, etc. Le résultat est généralement appelé « représentation/code intermédiaire » et peut être étendu par l'arbre d'analyse, un nouvel arbre, un ensemble abstrait de commandes ou quelque chose d'autre pratique pour un traitement ultérieur.

4) Optimisation. Supprimer les structures inutiles et simplifier le code tout en conservant son sens. L'optimisation peut se faire à différents niveaux et étapes - par exemple, sur le code intermédiaire ou sur le code machine final.

5) Génération de codes. A partir de la représentation intermédiaire, du code dans la langue cible est généré.

Dans des implémentations spécifiques du compilateur, ces étapes peuvent être séparées ou combinées sous une forme ou une autre.

Diffusion et post-production.

Une caractéristique historique importante du compilateur, reflétée dans son nom (anglais : compiler - assembler, composer), était qu'il pouvait également effectuer des liaisons (c'est-à-dire qu'il contenait deux parties - un traducteur et un éditeur de liens). Cela est dû au fait que la compilation et la liaison séparées en tant qu'étape d'assemblage distincte sont apparues bien plus tard que l'avènement des compilateurs. À cet égard, au lieu du terme « compilateur », le terme « traducteur » est parfois utilisé comme synonyme : soit dans la littérature ancienne, soit lorsqu'on veut souligner sa capacité à traduire un programme en code machine (et vice versa, le le terme « compilateur » est utilisé pour souligner la capacité de compiler à partir de plusieurs fichiers (un seul).

Interprètes.

Interprète (langage de programmation) -

1) Un programme ou un outil technique qui effectue l'interprétation.

2) Un type de traducteur qui effectue le traitement et l'exécution instruction par instruction (commande par commande) du programme source ou de la requête (par opposition à un compilateur qui traduit l'intégralité du programme sans l'exécuter).

3) Un programme (parfois matériel) qui analyse des commandes ou des instructions de programme et les exécute immédiatement.

4) Un processeur de langage qui analyse le programme source ligne par ligne et effectue simultanément les actions prescrites, plutôt que de générer un programme compilé en langage machine qui est ensuite exécuté.

Types d'interprètes.

Un simple interpréteur analyse et exécute immédiatement (l'interprétation réelle) le programme commande par commande (ou ligne par ligne), à ​​mesure que son code source arrive à l'entrée de l'interprète. L'avantage de cette approche est la réponse instantanée. L'inconvénient est qu'un tel interpréteur ne détecte les erreurs dans le texte du programme que lorsqu'une tentative est effectuée pour exécuter une commande (ou une ligne) avec une erreur.

Un interpréteur de type compilateur est un système composé d'un compilateur qui traduit le code source d'un programme en une représentation intermédiaire, par exemple en bytecode ou p-code, et de l'interpréteur lui-même, qui exécute le code intermédiaire résultant (le soi- appelée machine virtuelle). L'avantage de tels systèmes est la plus grande vitesse d'exécution du programme (en raison de la suppression de l'analyse du code source en une passe distincte et unique et de la minimisation de cette analyse dans l'interpréteur). Les inconvénients sont une plus grande exigence en ressources et une exigence d'exactitude du code source. Il est utilisé dans des langages tels que Java, PHP, Python, Perl (le bytecode est utilisé), REXX (le résultat de l'analyse du code source est enregistré), ainsi que dans divers SGBD (le p-code est utilisé).

Si l'interpréteur de type compilateur est divisé en composants, le résultat est un compilateur de langage et un interpréteur simple avec une analyse minimale du code source. De plus, le code source d'un tel interpréteur ne doit pas nécessairement être au format texte ou être un bytecode que seul cet interpréteur comprend ; il peut s'agir du code machine d'une plate-forme matérielle existante. Par exemple, les machines virtuelles comme QEMU, Bochs, VMware incluent des interpréteurs de code machine pour les processeurs de la famille x86.

Certains interprètes (par exemple, pour les langages Lisp, Scheme, Python, BASIC et autres) peuvent fonctionner en mode dialogue ou ce qu'on appelle read-eval-printloop (REPL). Dans ce mode, l'interpréteur lit une construction de langage complète (par exemple, une expression s en Lisp), l'exécute, imprime les résultats, puis attend que l'utilisateur entre la construction suivante.

Le langage Forth est unique, capable de fonctionner à la fois dans les modes d'interprétation et de compilation des données d'entrée, vous permettant de basculer entre ces modes à tout moment, à la fois pendant la traduction du code source et pendant l'exécution des programmes.

Il convient également de noter que les modes d'interprétation peuvent être trouvés non seulement dans les logiciels, mais également dans le matériel. Ainsi, de nombreux microprocesseurs interprètent le code machine à l'aide du firmware intégré, et les processeurs de la famille x86, à commencer par le Pentium (par exemple, sur l'architecture Intel P6), lors de l'exécution du code machine, le pré-traduisent dans un format interne. (en une séquence de microopérations).

Algorithme pour un interprète simple :

2. analyser les instructions et déterminer les actions appropriées ;

3. prendre les mesures appropriées ;

4. Si la condition de fin du programme n'est pas atteinte, lisez les instructions suivantes et passez à l'étape 2.

Avantages et inconvénients des interprètes.

1) Une plus grande portabilité des programmes interprétés - le programme fonctionnera sur n'importe quelle plate-forme disposant d'un interprète approprié.

2) En règle générale, des moyens plus avancés et visuels pour diagnostiquer les erreurs dans les codes sources.

3) Simplification du débogage des codes sources du programme.

4) Tailles de code plus petites par rapport au code machine obtenu à partir des compilateurs conventionnels.

1) Un programme interprété ne peut pas être exécuté séparément sans programme interpréteur. L'interprète lui-même peut être très compact.

2) Le programme interprété s'exécute plus lentement car l'analyse intermédiaire du code source et la planification de son exécution nécessitent un temps supplémentaire par rapport à l'exécution directe du code machine dans lequel le code source pourrait être compilé.

3) Il n'y a pratiquement aucune optimisation du code, ce qui entraîne des pertes supplémentaires dans la vitesse des programmes interprétés.

Éditeur de liens.

Linker (également éditeur de liens, éditeur de liens) - un programme qui effectue des liaisons - prend un ou plusieurs modules objets en entrée et assemble un module exécutable à partir d'eux.

Pour lier des modules, l'éditeur de liens utilise des tables de noms créées par le compilateur dans chacun des modules objets. Ces noms peuvent être de deux types :

1) Noms définis ou exportés - fonctions et variables définies dans un module donné et mises à disposition pour être utilisées par d'autres modules.

2) Noms non définis ou importés - fonctions et variables auxquelles le module fait référence, mais ne les définit pas en interne.

Le travail de l'éditeur de liens consiste à résoudre les références à des noms non définis dans chaque module. Pour chaque nom importé, sa définition se retrouve dans d'autres modules ; la mention du nom est remplacée par son adresse.

L'éditeur de liens ne vérifie généralement pas les types et le nombre de paramètres des procédures et des fonctions. Si vous devez combiner des modules objets de programmes écrits dans des langages à typage fort, alors les vérifications nécessaires doivent être effectuées par un utilitaire supplémentaire avant de lancer l'éditeur de liens.

Assembleur.

Un assembleur (de l'anglais assembleur - assembleur) est un programme informatique, un compilateur du texte source d'un programme écrit en langage assembleur dans un programme en langage machine.

Comme le langage (d'assemblage) lui-même, les assembleurs sont généralement spécifiques à une architecture, un système d'exploitation et une variante de syntaxe du langage particuliers. Dans le même temps, il existe des assembleurs multiplateformes voire universels (plus précisément limités-universels, car il est impossible d'écrire des programmes indépendants du matériel dans un langage de bas niveau) qui peuvent fonctionner sur différentes plates-formes et systèmes d'exploitation. Parmi ces derniers, on peut également distinguer un groupe de cross-assembleurs capables de collecter du code machine et des modules exécutables (fichiers) pour d'autres architectures et systèmes d'exploitation.

L'assemblage n'est peut-être pas la première ou la dernière étape sur le chemin menant à l'obtention d'un module de programme exécutable. Ainsi, de nombreux compilateurs de langages de programmation de haut niveau produisent le résultat sous la forme d'un programme en langage assembleur, qui est ensuite traité par l'assembleur. En outre, le résultat de l'assemblage peut être non pas un exécutable, mais un module objet contenant des parties disparates et non liées de code machine et de données de programme, à partir desquelles (ou à partir de plusieurs modules objets) peuvent ensuite être assemblées à l'aide d'un programme de liaison (« éditeur de liens »). fichier exécutable.

Un débogueur ou débogueur est un module d'environnement de développement ou une application distincte conçue pour rechercher les erreurs dans un programme. Le débogueur vous permet d'effectuer un traçage étape par étape, de surveiller, de définir ou de modifier les valeurs des variables pendant l'exécution du programme, de définir et de supprimer des points d'arrêt ou des conditions d'arrêt, etc.

Liste des débogueurs.

1) AQtime est un débogueur commercial pour les applications créées pour les versions 1.0, 1.1, 2.0, 3.0, 3.5 du .NET Framework (y compris les applications ASP.NET), ainsi que pour les applications Windows 32 et 64 bits.

2) DTrace - framework de traçage dynamique pour Solaris, OpenSolaris, FreeBSD, Mac OS X et QNX.

3) Clôture électrique - débogueur de mémoire.

4) GNU Debugger (GDB) - un débogueur de programme du projet GNU.

5) IDA est un puissant désassembleur et débogueur de bas niveau pour les systèmes d'exploitation Windows et Linux.

6) Microsoft Visual Studio - un environnement de développement logiciel qui inclut les outils de débogage de Microsoft.

7) OllyDbg est un débogueur gratuit de bas niveau pour les systèmes d'exploitation Windows.

8) SoftICE est un débogueur de bas niveau pour les systèmes d'exploitation de la famille Windows.

9) Sun Studio - environnement de développement logiciel, comprenant le débogueur dbx pour Solaris et Linux OS, de Sun Microsystems Corporation.

10) Dr. Watson est un débogueur Windows standard qui vous permet de créer des vidages de mémoire.

11) TotalView est l'un des débogueurs commerciaux pour UNIX.

12) WinDbg est un débogueur gratuit de Microsoft.

Le générateur de documentation est un programme ou progiciel permettant d'obtenir une documentation destinée aux programmeurs (documentation API) et/ou aux utilisateurs finaux du système, pour du code source spécialement commenté et, dans certains cas, pour des modules exécutables (obtenus en sortie du compilateur).

Typiquement, le générateur analyse le code source du programme, mettant en évidence les structures syntaxiques correspondant aux objets significatifs du programme (types, classes et leurs membres/propriétés/méthodes, procédures/fonctions, etc.). L'analyse utilise également des méta-informations sur les objets du programme, présentées sous forme de commentaires documentés. Sur la base de toutes les informations collectées, une documentation prête à l'emploi est générée, généralement dans l'un des formats généralement acceptés - HTML, HTMLHelp, PDF, RTF et autres.

Documenter les commentaires.

Un commentaire de documentation est un commentaire spécialement formaté sur un objet programme destiné à être utilisé par un générateur de documentation spécifique. La syntaxe des constructions utilisées dans la documentation des commentaires dépend du générateur de documentation utilisé.

Les commentaires de documentation peuvent contenir des informations sur l'auteur du code, décrire le but de l'objet programme, la signification des paramètres d'entrée et de sortie pour une fonction/procédure, des exemples d'utilisation, des situations d'exception possibles et des fonctionnalités d'implémentation.

Les commentaires de documentation sont généralement formatés sous forme de commentaires multilignes de style C. Dans tous les cas, le commentaire doit apparaître avant l'élément à documenter. Le premier caractère d'un commentaire (et au début des lignes de commentaire) doit être *. Les blocs sont séparés par des lignes vides.

3. Visual Basic pour les applications

système d'exploitation logiciel

3.1 L'essence de VisualBasic et son bref historique

Microsoft Visual Basic (VB) est un outil de développement logiciel développé par Microsoft Corporation qui comprend un langage de programmation et un environnement de développement. Le langage Visual Basic a hérité de l'esprit, du style et en partie de la syntaxe de son ancêtre, le langage BASIC, qui possède de nombreux dialectes. Dans le même temps, Visual Basic combine les procédures et les éléments des langages de programmation orientés objet et orientés composants. L'environnement de développement VB comprend des outils pour concevoir visuellement des interfaces utilisateur. (Voir le tableau).

Visual Basic (fonctionnalités clés)

Visual Basic est considéré comme un bon outil pour développer rapidement des prototypes de programmes, pour développer des applications de bases de données et, en général, pour une méthode basée sur des composants permettant de créer des programmes exécutés sous les systèmes d'exploitation de la famille Microsoft Windows.

Au cours de son évolution, Visual Basic a traversé un certain nombre d'étapes successives qui lui ont permis de devenir aujourd'hui l'un des langages de programmation les plus populaires. Donc évolution VisualBasic a procédé de la manière suivante :

1. Mai 1991 – Visual Basic 1.0 est publié pour Microsoft Windows. La syntaxe QBasic a été prise comme base du langage, et l'innovation qui a ensuite apporté une énorme popularité au langage était le principe de connexion entre le langage et l'interface graphique.

2. Septembre 1992 - Sortie de Visual Basic 1.0 pour DOS. Il n'était pas entièrement compatible avec la version Windows de VB, car il s'agissait d'une version ultérieure de QuickBASIC et fonctionnait en mode écran texte.

3. Novembre 1992 - Sortie de Visual Basic 2.0. L'environnement de développement est devenu plus facile à utiliser et plus rapide.

4. à l'été 1993, Visual Basic 3.0 est sorti en versions Standard et Professionnelle. De plus, un moteur permettant de travailler avec les bases de données Access a été ajouté au package.

5. Août 1995 - Visual Basic 4.0 - une version capable de créer des programmes Windows 32 et 16 bits.

6. Février 1997 - Visual Basic 5.0 - à partir de cette version, il est devenu possible, parallèlement aux applications classiques, de développer des composants COM.

7. Au milieu de 1998, Visual Basic 6.0 est sorti. Après cela, Microsoft a radicalement modifié sa politique concernant les langages Basic. Au lieu de développer Visual Basic, un tout nouveau langage, Visual Basic .NET, a été créé.

8. En 2005, une nouvelle version de Visual Basic a été publiée, fournie avec Visual Studio. Elle était satisfaite de la nouvelle interface et des nouvelles fonctionnalités. Le langage est basé sur Visual Basic.NET.

9. Fin 2007, Microsoft a publié une nouvelle version de Visual Basic - Visual Basic 2008, également basée sur Visual Basic.NET.

Sur la base des fonctionnalités et des spécificités de l'application, les types suivants de ce programme peuvent être distingués :

1. Visual Basic classique (versions 5-6) Ce langage est très fortement lié à son environnement de développement et au système d'exploitation Windows, étant exclusivement un outil d'écriture d'applications Windows.

2. VisualBasicforApplications (VBA) Il s'agit d'un outil de programmation, pratiquement identique au Visual Basic classique, conçu pour écrire des macros et d'autres programmes d'application pour des applications spécifiques. Il a acquis la plus grande popularité grâce à son utilisation dans la suite Microsoft Office. L'utilisation généralisée de Visual Basic pour Applications, combinée au manque initial d'attention aux problèmes de sécurité, a conduit à l'utilisation généralisée de virus de macro.

3. VisualBasicScriptingEdition (VBScript) Un langage de script, qui est une version quelque peu tronquée du Visual Basic habituel. Utilisé principalement pour automatiser l'administration des systèmes Windows, ainsi que pour créer des pages et des scripts ASP pour Internet Explorer.

3.2 Interface VisualBasicforApplication, principales fonctions et capacités

En créant VisualBasicforApplication, Microsoft Corporation s'est fixé comme objectif principal la création d'outils accessibles aux utilisateurs qui ne sont pas des programmeurs professionnels, mais en même temps suffisamment qualifiés pour développer et concevoir des programmes d'application et des applications basés sur Microsoft Office. C'est pour résoudre ce problème que les développeurs ont créé VBA, en le dotant d'un certain nombre de fonctionnalités uniques. L'un d'eux, le plus précieux pour l'utilisateur, est la possibilité de créer et d'utiliser des boîtes de dialogue non standard (personnalisées) dans les programmes en ajoutant un objet UserForm au projet, ainsi qu'une interface utilisateur pratique.

L'interface du programme VisualBasicforApplication se compose d'un ensemble de différentes fenêtres et onglets utilisés lors de la conception de l'application en cours de création, dont les principaux sont :

1) Fenêtre Projet (Fig. 2), affichant la structure du projet créé.

2) la fenêtre Code de programme (Fig. 3), affichant le code de programme du projet créé et permettant d'écrire un programme de manière classique à l'aide de l'éditeur de mots de code intégré, dont il existe plus de 16 000 dans VBA. Cette fenêtre vous permet également de modifier le code et de vérifier les erreurs.

3) l'onglet Propriétés (Fig. 4), affichant les paramètres définis pour l'objet spécifié et permettant de modifier les paramètres spécifiés.

En se déplaçant entre les fenêtres et les onglets, l'utilisateur peut facilement personnaliser le projet créé.

À l'aide de formulaires créés par l'utilisateur VBA, vous pouvez créer des boîtes de dialogue personnalisées pour afficher des données ou recevoir des valeurs de l'utilisateur du programme de la manière la plus adaptée aux besoins du programme. Par exemple, vous pouvez créer un test, afficher une boîte de dialogue pour afficher des questions à choix multiples et permettre à l'utilisateur de sélectionner l'une des options de réponse qu'il juge correcte.

Les boîtes de dialogue non standard permettent au programme d'interagir avec son utilisateur de la manière la plus complexe et fournissent une forme variée d'entrée et de sortie de données.

Une boîte de dialogue personnalisée est créée dans VBA en ajoutant un objet UserForm au projet. Cet objet représente une boîte de dialogue vide ; il a une barre de titre et un bouton de fermeture, mais il lui manque d'autres commandes. Une boîte de dialogue personnalisée est créée en ajoutant des contrôles à un objet UserForm et est généralement simplement appelée formulaire (Figure 5).

Chaque objet UserForm possède des propriétés, des méthodes et des événements dont il hérite de la classe d'objets UserForm.

Chaque objet UserForm contient également un module de classe dans lequel l'utilisateur ajoute ses propres méthodes et propriétés ou écrit des procédures de gestion d'événements pour un formulaire donné.

La possibilité de créer votre propre interface, indépendamment de l'environnement d'application, tel qu'Excel, à l'aide de formulaires d'affichage est l'une des fonctionnalités les plus précieuses de VBA.

Les formulaires d'écran sont des fenêtres de différents objectifs et types créées par l'utilisateur pour son application. Ils contiennent des contrôles qui permettent à l'utilisateur d'échanger des informations avec l'application.

VBA utilise la conception graphique créée du formulaire - avec des paramètres pour les propriétés et les contrôles du formulaire - pour obtenir toutes les informations nécessaires à l'affichage de la boîte de dialogue : les dimensions de la boîte de dialogue, les contrôles qu'elle contient, etc. Par conséquent, VBA vous permet d'afficher un formulaire de boîte de dialogue avec une seule instruction.

Pour afficher une boîte de dialogue personnalisée, utilisez la méthode Show de l'objet UserForm. Si le formulaire n'est pas actuellement chargé en mémoire, la méthode Show charge le formulaire et l'affiche. Si le formulaire est déjà chargé, la méthode Show l'affiche simplement.

L'affichage d'une seule boîte de dialogue n'est généralement pas suffisant pour terminer une tâche. Vous souhaitez presque toujours déterminer l'état des contrôles d'une boîte de dialogue pour savoir quelles données ou options l'utilisateur a sélectionnées. Par exemple, si une boîte de dialogue est utilisée pour obtenir des informations de l'utilisateur sur les colonnes et les lignes selon lesquelles une feuille de calcul doit être triée, vous devez pouvoir savoir quelles valeurs l'utilisateur a saisies après la fermeture de la boîte de dialogue et avant l'opération de commande commence effectivement.

Dans d'autres cas, vous souhaiterez peut-être modifier dynamiquement les titres des boutons (ou autres contrôles) d'une boîte de dialogue, mettre à jour dynamiquement une étiquette ou un champ associé à un compteur ou valider dynamiquement les données saisies dans une boîte de dialogue.

Dans VBA, il devient possible d'étendre considérablement l'ensemble des fonctions intégrées à une application standard, telle que Microsoft Excel, ainsi que de créer des fonctions dont les valeurs dépendent de certaines conditions et événements.

VBA vous permet de programmer des fonctions de table. Pour créer une feuille de calcul distincte pour un module de programme, utilisez l'onglet Insérer un module du menu Visuel et la commande Module du menu Insérer une macro. Après cela, une nouvelle feuille de calcul "Modele1" apparaîtra. Dans un module de programme, vous devez décrire une fonction en VBA. Vous pouvez travailler dans la fenêtre du module de programme comme si vous étiez dans une petite fenêtre d'éditeur de texte.

L'intégration des fonctions est effectuée par la commande Object Browser du menu View. Les fonctions définies par l'utilisateur sont traitées comme des objets indépendants dans le programme. VBA possède un ensemble important de fonctions intégrées, les divisant en types.

Visual Basic vous permet de réserver des variables, avec ou sans taille, de travailler avec différents types de données, d'utiliser des constantes, de travailler avec des opérateurs et des fonctions mathématiques et d'utiliser des opérateurs supplémentaires. L'utilisation d'opérateurs de boucle For Next, Do et d'objets de type « timer » (un chronomètre invisible dans le programme) est prévue. La précision du réglage de l'heure dans le programme est de 1 milliseconde, ou 1/1000 sec. La minuterie démarrée fonctionne constamment - c'est-à-dire la procédure de gestion des interruptions correspondante est exécutée à un intervalle de temps spécifié - jusqu'à ce que l'utilisateur arrête la minuterie ou désactive le programme.

Dans VBA, vous pouvez définir n'importe quelle propriété d'un formulaire, notamment le titre, la taille, le type de bordure, les couleurs d'arrière-plan et de caractères, la police du texte et l'image d'arrière-plan.

Si l'on résume toutes les fonctions du programme, alors Visual Basic forApplication permet de :

1) travailler avec des contrôles

Avantages :

1. Haute vitesse de création d'applications avec une interface graphique pour MS Windows.

2. Syntaxe simple qui permet de maîtriser le langage très rapidement.

3. Possibilité de compilation aussi bien en code machine qu’en P-code (au choix du programmeur). En mode débogage, le programme est toujours (quel que soit votre choix) compilé en code P, ce qui vous permet de suspendre le programme, d'apporter des modifications importantes au code source, puis de poursuivre l'exécution sans avoir besoin d'une recompilation complète et d'un redémarrage du programme. .

4. Protection contre les erreurs liées à l'utilisation de pointeurs et à l'accès à la mémoire. Cet aspect rend les applications Visual Basic plus stables, mais fait également l'objet de critiques.

5. Possibilité d'utiliser la plupart des fonctions WinAPI pour étendre les fonctionnalités de l'application. Ce problème a été étudié de manière plus approfondie par Dan Appleman, qui a écrit le livre « Guide du programmeur Visual Basic pour l'API Win32 ».

Critique :

1. Certains aspects de Visual Basic sont souvent critiqués, tels que la possibilité de désactiver le suivi des variables déclarées, la possibilité de convertir implicitement des variables et la présence du type de données « Variant ». Selon les critiques, cela permet d’écrire du code extrêmement mauvais. En revanche, cela peut être considéré comme un plus, puisque VB n'impose pas de « bon style », mais donne plus de liberté au programmeur.

2. Manque de pointeurs, accès mémoire de bas niveau, insertions ASM. Malgré le fait que le paradigme Visual Basic permet au programmeur VB moyen de se passer de tout cela, ces choses deviennent aussi souvent des objets de critique. Et bien que, en utilisant des fonctionnalités non documentées et certaines astuces, tout cela puisse être implémenté en VB (par exemple, en utilisant les fonctions d'obtention des pointeurs VarPtr(), StrPtr() et ObjPtr()) ; Utiliser ces astuces est beaucoup plus difficile que, par exemple, en C++.

Cependant, il convient de noter que tous les inconvénients du langage proviennent de son principal avantage : la facilité de développement d'une interface graphique. Par conséquent, de nombreux programmeurs utilisent Visual Basic pour développer l'interface utilisateur et implémenter les fonctionnalités du programme sous la forme de bibliothèques de liens dynamiques (DLL) écrites dans un autre langage (le plus souvent C++).

4. Partie pratique

4.1 Énoncé du problème

Dessinez un schéma fonctionnel et écrivez un programme en Pascal. Calculer la valeur intrinsèque des titres. La valeur intrinsèque d’un actif est déterminée par le flux futur de revenus provenant de cet actif.

pv – valeur intrinsèque actuelle du stock

c – réception attendue du bien en question

r – taux de rendement attendu par l'investisseur pour un revenu avec le niveau de risque correspondant

n – facteur temps (en mois).

Effectuez une analyse de marché et triez les résultats par ordre croissant des données obtenues.

4.2 Texte du programme en langage Pascal

pv : tableau de réels ;

writeLn('Entrez le reçu attendu de ',i,'ième actif c:');

writeLn('Entrez le taux de rendement attendu par l'investisseur r:');

pv:=c/exp(ln(1+r)*je);

writeLn('la valeur intrinsèque actuelle de l'actif est', pv[i]:1:3);

writeLn('La valeur intrinsèque de l'actif est', s);

pour j:=1 à 4 faire

si pv[j] > pv alors

writeLn('Valeur de l'actif triée par ordre croissant');

pour i:=1 à 5 fais

écrireLn(pv[i]:1:3);

4.3 Cas de test

4.4 Résultat de l'exécution du programme sur un exemple de test

Conclusion

Ainsi, pour résumer tout ce qui précède, il convient de noter que les logiciels-outils sont l'un des types de logiciels ayant leurs propres tâches et fonctions générales.

Cependant, étant un type de logiciel hautement spécialisé, il possède un certain ensemble de propriétés et de fonctions uniques qui apportent des solutions à ses problèmes spécifiques.

Il est nécessaire de noter la tendance émergente à simplifier le processus de programmation et à créer une certaine sous-classe - la programmation semi-professionnelle à des fins appliquées.

C'est ce qui permettra à un utilisateur d'ordinateur expérimenté, mais non à un programmeur professionnel, de créer certaines applications et petits fichiers exécutables dans l'environnement Microsoft Office, utilisés principalement à des fins comptables et de flux de documents dans les petites entreprises.

C'est dans ce but que Microsoft a développé le progiciel VisualBasicforApplication, qui simplifie le processus de programmation et permet aux utilisateurs, plutôt qu'aux programmeurs, de s'engager dans la programmation d'applications. Cette fonctionnalité a été implémentée principalement en créant une section de programme - "Éditeur de script" et la possibilité d'enregistrer et d'exécuter des "Macros" en tant que type distinct de modules programmables graphiquement. La possibilité de créer des applications avec une interface graphique pour MS Windows a été implémentée. Un autre avantage de ce type de logiciel outil est sa syntaxe simple, qui permet de maîtriser rapidement le langage et de l'utiliser pour la programmation dans toutes les applications Microsoft Office standards.

Par conséquent, il est difficile de surestimer l’importance des outils en général, et de VisualBasicforApplication en particulier, même si les inconvénients mentionnés ci-dessus existent également. Mais il ne s’agit même pas d’aspects négatifs du produit, mais plutôt de lignes directrices pour une amélioration ultérieure du logiciel sous la forme de VisualBasicforApplication.

1. Langages algorithmiques temps réel / Ed. Yanga S. / 2004

2. PC Magazine édition russe n° 2 2008 L'ordinateur aujourd'hui.

3. Informatique. /Éd. Mogilev A.V., Pak N.I., Henner E.K./ - M. : ACADEMIA, 2000.

4. Informatique et technologies de l'information : Manuel / Ed. Romanova D. Yu. / Eksmo Publishing House LLC, 2007.

5. La dernière encyclopédie de l'ordinateur personnel / Ed. Leontyeva V. /Moscou, 1999. – 271p.

6. Nouveaux langages de programmation et tendances dans leur développement / Ed. Ouchkova V. / 2001

7. Pédagogie / Éd. Pidkasistogo P.I./ – M. : Société pédagogique de Russie, 2000.

8. Programmation pour Microsoft Excel 2000 en 21 jours. /Éd. Kharisa M./ – M. : Williams, 2000.

9. Simonovich S. Informatique : cours de base. Cahier de texte pour les universités. Saint-Pétersbourg, Pierre, 2002

10. Aucun problème avec Excel 2000. /Éd. Kowalski/ – M. : Binom, 2000.

11. « Travail efficace sous Windows 98 » / Ed. Stinson K. / 2000. – 247p.

12. Langages de programmation. livre 5 /Éd. Vaulina A.S. / 2003

13. Langages de programmation : développement et implémentation / Ed. Terrence P. / 2001

14. Manuel électronique d'informatique. Alekseev E.G. http://www.stf.mrsu.ru/nomic/lib/Informatics/text/Progr.html\

Caractéristiques générales des outils de développement logiciel

    Caractéristiques générales des outils de développement logiciel

    Technologie de programmation de systèmes instrumentaux

    Outils CAS. Caractéristiques des outils CASE modernes

Présentation des outils orientés objet

La programmation orientée objet est apparue avant l'analyse et la conception orientées objet, il existe donc aujourd'hui un assez grand nombre de langages prenant en charge cette technologie. Le premier d'entre eux, selon la date d'origine, est considéré comme la langue Petite conversation, bien que de nombreux éléments de l'approche orientée objet aient été utilisés dans le langage Simulateur en 1967 L'outil le plus puissant aujourd'hui pour créer des programmes orientés objet est le langage C++, créé sur la base d'un langage de programmation structuré C. La langue se développe avec succès Java, qui a été initialement conçu pour être orienté objet.

Le développement de grands systèmes logiciels dans les conditions modernes est impossible sans l'utilisation d'outils de développement de logiciels d'automatisation (outils CASE). Il n’existe pas beaucoup de CASE prenant en charge l’approche orientée objet. L'outil le plus connu dans ce sens est le système Rose rationnelle , qui prend en charge, entre autres, les étapes d'analyse et de conception orientées objet.

Outil CASE orienté objet Rational Rose

Développeur Rose rationnelle- Rational Software Corp., connu pour ses développements dans le domaine des technologies orientées objet dont le principal est le langage UML. C'est précisément pour prendre en charge UML, en tant que principal langage de conception logicielle, que ce système CASE est orienté.

Comme tout outil CASE moderne, ce système prend en charge toutes les étapes du cycle de vie du logiciel et offre à l'utilisateur un large éventail de fonctions pour analyser, concevoir, créer et maintenir des logiciels. Dans ce cas, les technologies orientées objet sont utilisées et les modèles graphiques sont largement utilisés.

Rose rationnelle se compose des principaux composants suivants : un référentiel, une interface utilisateur graphique, des outils d'inspection de projet (navigateur), des outils de contrôle de projet, des outils de collecte de statistiques et un générateur de documents, ainsi que des extensions pour prendre en charge divers langages de programmation.

Les principales fonctionnalités sont les suivantes :

    Un puissant langage de modélisation de domaine graphique doté d'un haut niveau de formalisation et prenant en charge la méthodologie orientée objet.

    Navigation pratique entre les éléments du modèle à l’aide de « l’inspecteur de projet ».

    Stockage des résultats de conception sous la forme d’un modèle unique.

    Soutenir le travail de l'équipe de développement sur le projet.

    Système puissant pour préparer des rapports et de la documentation de projet.

    Possibilité de synthèse de programmes dans presque tous les langages modernes orientés objet, y compris le langage Java multiplateforme.

    Prise en charge des technologies de composants pour la création de systèmes logiciels.

    Larges possibilités de conception de logiciels d'architectures diverses, depuis les programmes simples jusqu'aux grands systèmes « client-serveur » et applications Internet.

    Possibilité de réingénierie du modèle basé sur le code source du programme. Cela garantit que l’intégrité des informations de conception et de mise en œuvre est maintenue.

    Configuration et extension des fonctionnalités de l'environnement CASE en installant des modules d'extension, principalement pour prendre en charge divers langages de programmation.

Principes de développement de systèmes logiciels dans Rational Rose

La construction de systèmes orientés objet a ses propres spécificités. Évidemment, pour une efficacité maximale, une seule technologie doit être utilisée à toutes les étapes du cycle de vie. Cette opportunité est offerte par le langage de modélisation universel UML. Rose rationnelle prend en charge toutes les phases de conception du système définies dans la spécification UML.

La principale méthode de conception consiste à créer différents types de diagrammes et de spécifications qui définissent la structure logique et physique du modèle de système, ses aspects statiques et dynamiques. Ceux-ci incluent des diagrammes de classe, d’état, de script, de module et de processus.

À toutes les étapes, il est possible d'utiliser des éditeurs graphiques spécialisés pour les éléments du modèle et d'utiliser l'inspecteur de modèle pour naviguer parmi ses composants. Toutes les informations de conception sont enregistrées dans un seul fichier de modèle (*.mdl).

Le travail commence par la construction d'un diagramme de cas d'utilisation, qui caractérise les principales tâches et l'environnement du système conçu. Ensuite, pour chaque cas d'utilisation présenté dans le diagramme d'utilisation, des diagrammes de séquence sont développés pour identifier les objets du système et décrire la séquence d'événements qui se produisent au cours du processus de communication entre les objets. Rose rationnelle permet d'associer automatiquement des diagrammes de séquence à des blocs d'utilisation.

Les objets présents dans les diagrammes de séquence sont définis dans le système à l'aide de classes. Les classes et leurs relations sont définies à l'aide de diagrammes de classes, dont le développement est également pris en charge Rose rationnelle. Les cours sont regroupés en packages. Rationnel Rose vous permet de définir un ensemble de packages, les relations entre eux et de représenter leurs classes constitutives dans des diagrammes de classes imbriqués.

La composition des modules système compilés et exécutés est spécifiée dans Rose rationnelleà l'aide d'un diagramme de composants. Le diagramme identifie les dépendances entre les composants. Les composants peuvent avoir des interfaces via lesquelles les dépendances sont implémentées. Diagrammes de déploiement dans Rose rationnelle reflètent la configuration du système logiciel en cours d'exécution et sont constitués de nœuds et de relations d'interaction entre les nœuds. Les nœuds incluent les composants représentés dans le diagramme des composants du système.

Pour un modèle entièrement défini, il est possible de générer des textes de programme source dans divers langages de programmation orientés objet pris en charge Rose rationnelle, comme Java ou C++.

Les textes de programme résultants peuvent être modifiés en dehors Rose rationnelle, et pour prendre en compte les modifications apportées, le système permet de procéder à l'ingénierie inverse de textes dans un modèle.

Conception de logiciels

Modélisation de domaine . La création d'un projet commence par la formation des principes d'utilisation du système. Dans Rose rationnelle Cette étape est appelée « Vue du cas d'utilisation ». La mise en œuvre de cette étape permet d'identifier les utilisateurs externes, les blocs d'utilisation, les objets système et les connexions entre eux.

Un schéma d'utilisation est établi qui reflète le fonctionnement externe du système en cours de création. Ce modèle est à bien des égards similaire au diagramme de flux de données dans l'analyse structurelle. Ses principaux composants sont les utilisateurs externes (acteurs), les blocs d'utilisation (cas d'utilisation) et les connexions entre composants. Pour créer un graphique dans Rose rationnelle un éditeur graphique spécialisé est utilisé.

Tous les éléments du diagramme d'utilisation sont identifiés par le système en tant que composants indépendants du modèle au cours de cette étape et sont sujets à des spécifications supplémentaires. Tout d'abord, cela concerne les blocs d'utilisation, qui reflètent des groupes de fonctions système présentés comme un tout à un utilisateur externe.

Pour chaque bloc d'utilisation, un diagramme de séquence est construit, qui affiche l'interaction dans le temps des objets exécutant la tâche. De tels diagrammes identifient les objets système et définissent les messages par lesquels ces objets interagissent. Les diagrammes sont construits dans un éditeur spécialisé.

Chaque objet d'un diagramme de séquence est accompagné du nom de la classe à laquelle il appartient. Un objet spécifique est une instance d'une classe. Les classes forment la structure logique du système.

Développement d'une structure logique. Après avoir terminé la formation des principes d'utilisation du système, l'étape de développement de sa structure logique commence. DANS Rose rationnelle cela s'appelle "Vue Logique". Le résultat de cette étape devrait être un diagramme principal et des diagrammes détaillés de ses éléments.

À ce stade, vous devez déterminer les classes nécessaires dans le système. Les instances de ces classes sont déjà spécifiées dans les diagrammes de séquence. Les classes et leurs connexions sont reflétées dans le modèle sous la forme d'un diagramme de classes. Les groupes de classes dans ces diagrammes peuvent être regroupés en packages.

La conception d'une structure logique doit commencer par la définition des packages de base. Un package est un outil universel permettant de regrouper des éléments de modèle. L'utilisation de packages permet de rendre le modèle plus visible. Les packages peuvent être imbriqués les uns dans les autres. Les classes qui composent chaque package sont détaillées dans le diagramme inclus.

Intégré Rose rationnelle L'éditeur de diagramme de classes fournit des outils pratiques pour de telles opérations, et l'inspecteur de modèle facilite la navigation dans la hiérarchie des diagrammes.

Pour chaque classe, une spécification est spécifiée qui décrit la composition des attributs et des méthodes, les connexions, le modèle sur lequel la classe est créée et les fonctionnalités d'implémentation.

La présence de modèles facilite la création de classes de structures diverses.

Les classes peuvent être importées dans le système depuis l’extérieur. Rose rationnelle prend en charge la structure des composants du logiciel et permet l'utilisation de composants binaires tels que COM et ActiveX dans le modèle. Leur représentation dans le modèle est réalisée à l'aide de classes basées sur les interfaces de ces composants.

En plus des diagrammes de classes, des diagrammes d'état, des diagrammes de scénarios et d'autres éléments du langage UML sont utilisés pour décrire la logique du système à ce stade.

Concevoir la structure physique de l'application. Les classes décrites à l'étape précédente sont associées aux composants physiques du programme à l'aide de diagrammes de composants.

Un composant est un module exécutable du système et est associé à un fichier source, un fichier de bibliothèque binaire, un module objet ou un fichier exécutable. Les composants peuvent inclure d'autres composants.

Pour visualiser les composants du système conçu, des diagrammes de composants sont utilisés. Étape de construction des diagrammes de composants dans Rose appelé "Vue des composants". Elle consiste à construire un schéma d'ensemble et, si nécessaire, à détailler les composants individuels en sous-schémas.

Ces diagrammes reflètent la relation entre les composants du logiciel. La relation est implémentée via des interfaces, qui sont également affichées sur le diagramme.

Les diagrammes sont créés dans un éditeur spécialisé. Pour un composant, ses classes constitutives sont spécifiées.

Le composant peut générer du texte source dans divers langages de programmation pris en charge Rose rationnelle, ou attribuer des fragments de programme développés en dehors de l'environnement Rose. Dans ce dernier cas, leur interface doit correspondre à celle déclarée dans le modèle.

La dernière étape de la conception d'un logiciel consiste à préparer un diagramme de déploiement. DANS Rose cette étape est appelée « Vue de déploiement ». Les diagrammes de déploiement montrent la configuration d'un système logiciel exécutable. Il se compose de nœuds et de relations d'interaction entre les nœuds et les composants. Les nœuds peuvent inclure des composants et des objets. Les nœuds sont des éléments d'exécution physiques.

Construction et maintenance du système

Génération de textes sources . Une fois que les composants spécifiques du système en cours de développement ont été identifiés, il est temps de générer le code du programme pour chaque composant.

En fait, Rose génère un squelette de programme, qui est ensuite envoyé aux programmeurs pour révision. Les définitions de classes et de méthodes sont automatiquement synthétisées, dont la mise en œuvre spécifique doit être effectuée manuellement.

Les informations initiales pour cette opération sont des informations sur les classes qui composent ce composant et le langage sélectionné pour implémenter ce composant.

Avant d'effectuer l'opération, vous devez déterminer la composition et les paramètres de sauvegarde du code reçu. Ensuite, effectuez la génération en sélectionnant la langue souhaitée. Si des erreurs surviennent, le système vous en informera.

Il est possible de générer sélectivement du code de programme pour des composants de modèle individuels et de personnaliser les informations placées dans les fichiers de programme. Cela permet d'obtenir une grande flexibilité lors de la mise à niveau et de la modification du modèle.

Rational Rose 98 Édition Entreprise vous permet de générer du texte source en Visual Basic, C++, Java, ainsi que d'obtenir une description des interfaces des composants en IDL et de créer des projets pour le système Oracle 8.

Réingénierie d'un modèle basé sur les codes sources . La capacité de réingénierie, ou, comme on l'appelle aussi, « ingénierie inverse », d'un modèle à partir des textes sources du programme semble être l'une des fonctions importantes et, bien sûr, utiles. Rose. La nécessité d'une telle opération surgit souvent lors de la modification et de la mise à niveau d'un projet. Les modèles de programme générés par le modèle, après avoir été transférés aux programmeurs, peuvent être modifiés et ces changements doivent être pris en compte dans le modèle. De plus, puisque Rose rationnelle prend en charge l'importation de composants binaires (objets COM dans l'environnement Win32), alors la prise en charge de la construction de classes basées sur la description des interfaces d'un composant binaire est simplement nécessaire.

Vous pouvez procéder à l'ingénierie inverse des classes en sélectionnant le langage de programmation dans lequel les classes sont implémentées et en spécifiant le répertoire où se trouvent les fichiers sources. Ensuite, vous pouvez sélectionner les fichiers nécessaires ou procéder à une ingénierie inverse de tous. Lorsque vous effectuez ces actions, vous devez être prudent et sélectionner uniquement les éléments qui peuvent réellement être convertis en modèle. Pendant le fonctionnement, le système vous informera de la présence d'erreurs.

Une fois l'opération réussie, un nouvel élément apparaîtra sur le diagramme des composants (l'étape « Vue des composants »), portant un nom qui correspond au répertoire des fichiers sources. Passer à l'étape Vue Logique montrera que toutes les classes et packages qui composent le nouveau composant sont également apparus dans les diagrammes de classes.

Il est désormais possible d'apporter des modifications au modèle, déterminées par les composants ajoutés, et de régénérer les textes sources.

Accompagnement en phase de développement

Composants et modèles. Une des possibilités Rose est la modélisation de composants binaires prenant en charge la spécification COM. Dans le modèle, ces composants sont représentés par des classes d'interface créées sur la base de fichiers IDL accompagnant l'objet COM. Cela vous permet d'inclure divers composants disponibles dans le commerce dans votre modèle.

La prise en charge des modèles d'éléments de modèle simplifie le processus de conception. DANS Rose Vous pouvez créer et utiliser des modèles pour la plupart des éléments du modèle, notamment : les blocs d'utilisation, les packages, les classes, les composants, ainsi que pour les opérations sur le modèle. Lors de la création d'un nouvel élément, vous devez spécifier quel modèle est utilisé et l'élément inclura toutes les propriétés du modèle. Cette approche vous permet de vous débarrasser du travail de routine et de vous concentrer sur le projet lui-même.

Environnements de travail. Un développement logique de l'idée d'utiliser des modèles et des composants binaires externes dans Rose rationnelle C'est l'émergence de l'environnement de travail (Framework).

Un espace de travail est un type de modèle qui définit l'environnement du modèle en cours de création. Cela se fait en chargeant les éléments de base inclus dans l'établi, qui deviennent partie intégrante du modèle.

Rose propose une large gamme d'environnements de travail standards et vous pouvez également créer le vôtre. L'ensemble des environnements de travail standards est le suivant :

    Explorateur de performances des applications

    Environnement standard. Concentré sur la création d'applications en Visual Basic. Comprend la déclaration de nombreux objets VB standard.

    Environnement de conception d'applications pour Internet. Comprend la définition de divers composants ActiveX et bibliothèques VB.

    Environnement de conception d'applications pour travailler avec des bases de données locales (Local Database). Contient la déclaration des objets système DAO

    Environnement de conception d'applications utilisant RDO (Remote Data Object). Vous permet d'utiliser des objets RDO pour créer des applications client-serveur.

    Un environnement de conception d'applications pour accéder aux serveurs SQL (SQL Server Distributed Management Object (SQL-DMO)), prenant en charge l'accès à SQL via des objets OLE-Automation.

    Environnement de prise en charge du serveur de transactions Microsoft

    Environnement de support Microsoft Outlook

    Environnements de développement d'applications Java (Java JDK 114 Full et Java JDK 114 Quick). Comprend des modèles de classes et d'interfaces Java obtenus grâce à l'ingénierie inverse.

    Environnement de support Oracle8

L'environnement de développement est attribué lors de la création du modèle. Les environnements de développement sont stockés sous forme de fichiers modèles (*.mdl) destinés à la lecture seule. Au cours du processus de création d'un nouveau modèle, les éléments nécessaires sont chargés à partir de l'environnement de développement sélectionné, après quoi un nouveau modèle est créé.

Les environnements de développement fournissent un excellent mécanisme de personnalisation Rose pour un projet précis. Vous pouvez créer votre propre environnement de développement, qui inclura les éléments dont vous avez besoin provenant de divers environnements standards. Partie Rose rationnelle comprend un « maître » pour créer des environnements de travail.

Accompagnement de l'équipe de développement. Tout projet de grande envergure est généralement réalisé par un groupe de développeurs comprenant des analystes, des concepteurs et des programmeurs. Le processus de développement est constitué d'itérations successives avec le cycle « analyse » – « conception » – « mise en œuvre ». A chaque étape, plusieurs développeurs travaillent avec le modèle et les étapes sont répétées de manière cyclique. Dans de telles conditions, il est nécessaire de maintenir l'intégrité du projet, de prendre en compte les modifications apportées aux différentes étapes et de coordonner les étapes. Tout cela nécessite l’utilisation d’un référentiel commun et une idéologie de conception particulière.

Outre un outil d'inspection de modèles pratique qui facilite le passage d'une étape à l'autre, Rose rationnelle Des mécanismes de soutien à l'équipe de développement ont été identifiés.

Crée différents espaces de travail pour les développeurs et un espace de travail pour l'ensemble du projet. Chaque développeur apporte des modifications dans sa partie (sous-modèle), et ces modifications ne deviennent globales (transférées au modèle général) qu'après avoir été approuvées par le système de gestion de projet. En tant que contrôleurs de projet dans Rose des systèmes externes peuvent être utilisés, tels que EffacerCase Et Microsoft SourceSafe.

Utilisation de modules d'extension . DANS Rose rationnelle Un mécanisme flexible de configuration et de personnalisation des capacités du système a été introduit. Il existe différents modules d'extension qui peuvent être installés dans Rose et résoudre divers problèmes. Il existe deux principaux types de modules d'extension : les extensions prenant en charge les langages de programmation et les extensions des fonctionnalités de l'environnement.

Lors de l'ajout d'une nouvelle extension, elle s'intègre au système en ajoutant des éléments aux menus système et en installant les bibliothèques et fichiers exécutables nécessaires. De plus, chaque extension peut ajouter ses propres types et modèles au système.

Les extensions nécessaires sont généralement ajoutées lors de l'installation initiale du système, mais elles peuvent être installées ultérieurement. La distribution d'extensions via Internet est prise en charge

Pour gérer les extensions dans Rose Il existe un gestionnaire d'extensions. Avec son aide, vous pouvez activer et désactiver divers modules d'extension.

Avantages et inconvénients de Rational Rose

Cet outil CASE peut être utilisé pour créer une variété de logiciels orientés objet, principalement pour la plate-forme Windows, ainsi que dans le langage Java multiplateforme.

Le langage UML est utilisé à toutes les étapes de développement, et le projet logiciel est un modèle unique.

Les avantages importants sont la personnalisation pour différents langages de programmation et architectures de systèmes logiciels, ainsi que la possibilité de « rétro-ingénierie » basée sur des textes sources dans différents langages de programmation. Il existe un support pour diverses méthodes de mise en œuvre physique pour les composants du système conçu.

La possibilité de configurer le système à l'aide de modules d'extension est très utile. En fait, la seule façon d’écrire une application pour un système d’exploitation autre que Windows est d’utiliser le langage Java.

La technologie de programmation en général et les outils d'aide au développement de logiciels en particulier évoluent si rapidement que même une simple liste des principaux systèmes d'outils prendrait trop de place dans ce livre. C'est pourquoi nous nous attarderons brièvement ci-dessous sur quelques projets dans le domaine de la technologie de programmation qui sont intéressants dans le cadre de cette publication.

Tout système technologique développé doit prendre en charge toutes les étapes principales de la création du progiciel conçu. Pour atteindre cet objectif dans une structure globale système typique de soutien au développement technologique(Fig. 6.3) sont généralement isolés base de données de projets ; sous-système d'automatisation de la conception et de la programmation ; sous-systèmes de débogage, de documentation et de maintenance, UN également un sous-système de gestion de l'avancement du projet.


Riz. 6.3. Structure générale d'un système typique de soutien au développement technologique

Les systèmes de support au développement de bibliothèques développés sont actuellement utilisés partout dans le monde dans tous les projets logiciels sérieux. Mais dans la grande majorité des cas, ces systèmes ont atteint le niveau de facilité d'utilisation pour des programmeurs qualifiés. Nous nous intéressons principalement aux systèmes et aux projets qui tendent à représenter explicitement des connaissances technologiques, même s’ils ne sont pas basés sur des idées et des méthodes d’IA.

L'un de ces projets, Gandalf, se concentre sur la génération automatisée de systèmes de développement de logiciels. Les recherches menées au sein du projet Gandalf concernent trois aspects de l'aide à la conception logicielle : la gestion de projet, le contrôle de version et la programmation incrémentale, ainsi que leur intégration dans un environnement unique. La gestion dans l'environnement Gandalf repose sur l'hypothèse que le projet en cours de développement doit être traité comme un ensemble de types de données abstraits sur lesquels seules certaines opérations peuvent être effectuées. L'outil qui implémente ce concept était le système SDC (Software Development Control), qui est un ensemble de programmes initialement implémentés en langage Shell sur le système UNIX, puis traduits en langage C.

Les recherches dans le domaine du contrôle de version ont été lancées par L. Kooprider sur la base du projet FAFOS, où les possibilités de création d'une famille de systèmes d'exploitation ont été initialement analysées. Une notation a été développée pour décrire l'interaction entre les sous-systèmes, pour décrire les différentes versions des sous-systèmes (code source et objet, documentation, etc.) et pour décrire les mécanismes opérant au stade du développement (compilation, édition des liens, etc.). Ensuite, un langage spécial, Intercol, a été créé pour décrire les relations et les versions des modules du système. Et enfin, la connaissance de la manière de construire un système à partir de pièces a été intégrée au système sans obliger l'utilisateur à le faire. Dans le prolongement de ce travail, SUCE a été créé pour suivre les différences entre les implémentations (versions qui fournissent réellement du code pour un ensemble de spécifications) et les compositions (versions qui définissent de nouveaux sous-systèmes en tant que groupes de sous-systèmes existants).



Dans le système LOIPE (Language-Oriented Incremental Programming Environment), la compilation incrémentielle est effectuée au niveau d'une procédure individuelle. L'avantage de cette approche est que lorsqu'une procédure est corrigée au niveau d'objets ou de types locaux, seule cette procédure est recompilée. Si la spécification change, alors toutes les procédures qui en dépendent sont recompilées. L'interface utilisateur du système LOIPE est basée sur le sous-système d'édition orienté syntaxiquement ALOE (A Language-Oriented Editor). Le but du développement de ce sous-système était d'étudier la possibilité de créer et d'utiliser des éditeurs orientés syntaxiquement comme base pour les environnements de programmation.

Une analyse de la littérature de ces dernières années sur la technologie de programmation montre qu'une nouvelle branche dans la technologie du développement industriel et de la mise en œuvre de systèmes logiciels complexes et importants est en train d'être créée. Technologie CASE(Génie logiciel assisté par ordinateur).

Initialement, la technologie CASE est apparue dans des projets de création de systèmes industriels de traitement de données. Cette circonstance a laissé sa marque sur les outils technologiques CASE, où la plus grande attention a été accordée, du moins dans les premiers systèmes CASE, à la prise en charge de la conception des flux d'informations. Actuellement, on s’éloigne de l’accent mis sur les systèmes de traitement de données et les outils technologiques CASE deviennent de plus en plus polyvalents.

Tous les outils de support technologique CASE sont divisés en deux grands groupes : Boîtes à outils CASE Et Etablis CASE. Il n’existe pas de bons équivalents russes pour ces termes. Cependant, les premiers sont souvent appelés « coffres à outils » (packages de développement, packages technologiques), et les seconds sont des « machines de production de logiciels » (lignes de production).

Prieuré A Boîte à outils CASE - une collection d'outils logiciels intégrés qui fournissent une assistance automatique à la résolution de problèmes du même type dans le processus de création de programmes.

De tels packages utilisent un « référentiel » commun pour toutes les informations techniques et de gestion sur le projet (référentiel), sont équipés d'une interface utilisateur commune et d'une interface unifiée entre les outils individuels du package. En règle générale, CASE-Toolkit se concentre sur le soutien au développement d'une phase de production de programme ou d'un type de problème d'application.

Tout ce qui précède est également vrai pour CASE-WorkBench. Mais ici, en plus, un support automatisé est fourni pour l'analyse des tâches de production de logiciels en cours de résolution, qui est basée sur des hypothèses générales sur le processus et la technologie de ces activités ; le transfert automatique des résultats du travail d'une étape à une autre est pris en charge, depuis la phase de conception jusqu'à l'élimination du produit logiciel créé et sa maintenance.

Ainsi, CASE-WorkBench est une « clôture » naturelle de la technologie de développement, de mise en œuvre et de maintenance des logiciels.

Actuellement, un système de support technologique CASE « typique » possède la fonctionnalité illustrée à la Fig. 6.4.

Riz. 6.4. Fonctionnalité d'un système de support technologique CASE typique

Comme il ressort de ce diagramme en H, l'environnement CASE doit prendre en charge toutes les principales étapes de développement et de maintenance des processus de création de systèmes logiciels. Toutefois, le niveau de ce soutien varie considérablement. Par exemple, si nous parlons des étapes d'analyse et de conception, la plupart des packages d'outils prennent en charge les formulaires d'écran et de reporting, le prototypage et la détection d'erreurs. Une partie importante de ces fonds est destinée aux PC. Beaucoup prennent en charge des méthodologies largement utilisées telles que l'analyse structurelle DeMarco ou Gane/Sarson, la conception structurelle Yourdan/Jackson et plusieurs autres. Il existe des packages de développement spécialisés pour la création de systèmes d'information, par exemple Ana Tool (Advanced Logical Software) pour Macintosh ; CA-Univers/Prototype (Computer Associates International) pour PC. Il existe des environnements CASE pour prendre en charge le développement de systèmes temps réel.

Parmi les développeurs de logiciels, il existe deux appréciations de cette approche : certains d'entre eux estiment que la technologie CASE change radicalement les processus de développement et d'exploitation des logiciels, d'autres le nient et laissent aux outils CASE uniquement la fonction d'automatisation du travail de routine. Cependant, une analyse de la littérature montre que les outils CASE « déplacent » encore les technologies de développement logiciel de la gestion de projet vers la méthode de prototypage. Et ce changement, à notre avis, constitue une tendance extrêmement importante dans la technologie de programmation moderne.

Vers le logiciel outil inclure des outils de développement de logiciels. Il s'agit de systèmes de programmation qui incluent les logiciels nécessaires pour créer automatiquement du code machine. Ce sont des outils destinés aux programmeurs professionnels et vous permettent de développer des programmes dans différents langages de programmation.

Les outils de développement logiciel comprennent les programmes suivants :

  • assembleurs - programmes informatiques qui convertissent un programme sous forme de texte source en langage assembleur en commandes machine sous forme de code objet ;
  • traducteurs – programmes qui effectuent la traduction de programmes ;
  • les compilateurs sont des programmes qui traduisent le texte d'un programme dans un langage de haut niveau en un programme équivalent en langage machine ;
  • interprètes - programmes qui analysent les commandes ou les instructions de programme et les exécutent immédiatement ;
  • éditeurs de liens (éditeurs de liens) - programmes qui effectuent des liaisons - prennent un ou plusieurs modules objets en entrée et assemblent un module exécutable à partir d'eux ;
  • Les préprocesseurs sources sont des programmes informatiques qui prennent des entrées et produisent des entrées pour un autre programme, tel qu'un compilateur.
  • débogueurs – programmes qui sont un module de l'environnement de développement ou une application distincte conçue pour rechercher les erreurs dans un programme ;
  • éditeurs de code source spécialisés – programmes nécessaires à la création et à l’édition du code source du programme. Un éditeur de sources spécialisé peut être une application distincte ou intégré à un environnement de développement intégré, etc.

Les langages qui représentent les algorithmes comme une séquence d'instructions lisibles (non codées en binaire) sont appelés langages algorithmiques. Les langages algorithmiques sont divisés en langages orientés machine, orientés procédures et orientés problèmes.

Les langages orientés machine sont des langages de programmation de bas niveau - leur programmation est la plus laborieuse, mais vous permet de créer des programmes optimaux qui prennent en compte les caractéristiques fonctionnelles et structurelles d'un ordinateur particulier. Les programmes dans ces langues, toutes choses égales par ailleurs, seront plus courts et plus rapides. De plus, la connaissance des bases de la programmation dans un langage orienté machine permet à un spécialiste de comprendre en détail l'architecture d'un ordinateur. La plupart des commandes dans les langages orientés machine, lorsqu'elles sont traduites (traduites) dans un langage machine (binaire), génèrent une commande machine.

Les langages orientés procédure et orientés problème sont des langages de haut niveau qui utilisent des macro-instructions. Une fois traduite, une macro-commande génère de nombreuses commandes machine (pour un langage orienté procédure, ce rapport est en moyenne de « 1 pour des dizaines de commandes machine », et pour un langage orienté problème, il est de « 1 pour des centaines de commandes machine). les langages de programmation orientés sont les plus utilisés (Basic, Visual Basic, Pascal, Borland Delphi, C, etc.) Dans ce cas, le programmeur doit décrire toute la procédure de résolution du problème, tandis que les langages orientés problème (ils sont également appelés non procéduraux) permettent uniquement une identification formelle du problème et précisent la composition, les structures de présentation et les formats des informations d'entrée et de sortie pour la tâche.

Lors de l'exécution des instructions d'un programme, un ordinateur doit convertir des instructions lisibles par l'homme écrites dans un langage de programmation en une forme lisible par ordinateur. Les logiciels d'outillage disposent de programmes spéciaux qui traduisent le texte des programmes écrits dans divers langages de programmation en codes machine, qui sont ensuite exécutés par un ordinateur. Ce type de logiciel est appelé compilateur ou interprète. Le texte d'un programme écrit dans un langage de programmation de haut niveau avant d'être converti en codes machine est appelé code source (code source). Le compilateur convertit le code source en codes machine appelés code objet (code objet) – un programme dans la langue de sortie du traducteur. Avant l'exécution, un processus d'édition de liaison a lieu, dans lequel les modules du programme de sortie sont combinés avec d'autres modules de code objet contenant, par exemple, des données. Le module de démarrage résultant correspond aux commandes directement exécutées par l'ordinateur. Certains langages de programmation ne contiennent pas de compilateur, mais un interpréteur qui convertit chaque expression individuelle du code source en codes machine et les exécute immédiatement. L'interpréteur est pratique au stade du débogage du programme, car il fournit un retour rapide lorsqu'une erreur est détectée dans le code source. Les bases de la programmation dans le langage de haut niveau Visual Basic sont décrites dans le chapitre. 12 de ce manuel.

Vers le logiciel outil incluent également certains systèmes de gestion de bases de données (SGBD). Un SGBD est un ensemble spécialisé de programmes conçus pour organiser et maintenir des bases de données. Étant donné que les systèmes de gestion de bases de données ne constituent pas un composant essentiel d’un système informatique, ils ne sont pas classés comme logiciels système. Et comme les SGBD individuels n'effectuent qu'une fonction de service lors du fonctionnement d'autres types de programmes (serveurs Web, serveurs d'applications), ils ne peuvent pas toujours être classés comme logiciels d'application. Pour ces raisons, ils sont souvent classés comme outils logiciels.

Les principales fonctions d'un tel SGBD :

  • gestion des données en mémoire externe (sur disques) ;
  • gérer les données dans la RAM à l'aide du cache disque ;
  • enregistrer les modifications dans des journaux spéciaux, sauvegarder et restaurer la base de données après des pannes ;
  • prise en charge des langages de bases de données (langage de définition de données, langage de manipulation de données).

Les fondements théoriques du SGBD sont décrits ci-dessus (section 3.2), et l'application pratique est décrite au chapitre. dix.