Strumenti di sviluppo software. Strumenti per sviluppatori: indispensabili e semplicemente utili

Lo sviluppo del software viene effettuato utilizzando diversi strumenti che forniscono:

    programmazione originale;

    utilizzo di pacchetti software applicativi – programmi standard che implementano funzioni di elaborazione dati;

    automazione delle principali fasi di sviluppo del programma.

Gli strumenti di sviluppo più tradizionali sono linguaggi e sistemi di programmazione. I linguaggi di programmazione sono solitamente suddivisi in linguaggi macchina e linguaggi algoritmici.

Macchina i linguaggi contengono istruzioni macchina corrispondenti alle operazioni di lavorazione più semplici. Le istruzioni macchina sono legate a una classe specifica di computer e/o sistema operativo.

Algoritmico I linguaggi di programmazione descrivono l'algoritmo di un problema, forniscono chiarezza dell'algoritmo e facilità di manutenzione del programma. I linguaggi algoritmici si dividono in linguaggi orientati alla macchina, orientati alle procedure e orientati ai problemi.

Macchina-orientata I linguaggi di programmazione sono linguaggi di basso livello perché tengono conto dell'architettura e del tipo di computer. La programmazione in tali linguaggi richiede molto lavoro, ma i programmi sono ottimali in termini di risorse informatiche richieste. Esempi di linguaggi di programmazione orientati alla macchina sono vari assemblatori 1 (Macro Assembler, Turbo Assembler, ecc.) di una determinata classe di computer.

Procedurale-orientata Linguaggi di programmazione come Visual Basic, Pascal, C++, Ada, Cobol, PL1, ecc. permettono di descrivere un insieme di procedure di elaborazione e implementare strutture di calcolo standard:

1. Sequenze di blocchi (istruzioni): 1, 2, 3, 4, ecc.

Tutti i blocchi (istruzioni) vengono eseguiti in sequenza rigorosa (Fig. 5 A)

2. Transizione condizionale (Fig. 5 B) - verifica di una determinata condizione (2) e selezione di un'azione alternativa: se la condizione è vera - 3, altrimenti - 4. Successivamente, il controllo viene trasferito al blocco 5.

3. Scelta alternativa (Fig. 5 B) – verifica della condizione (2), se la condizione è vera – eseguire l'azione 3, altrimenti verifica della condizione (4); se la condizione è vera, eseguire l'azione 5, ecc. Se non vengono soddisfatte le condizioni o non vengono eseguite azioni (3 o 5, ecc.), il controllo viene trasferito al blocco 6.

A B C

Figura 5

4. Processo ciclico – il ciclo “ancora” (Fig. 6A). Il ciclo viene ripetuto finché la condizione (2) è vera - blocco 3. Se la condizione (2) è falsa, il controllo viene trasferito al blocco 4.

5. Processo ciclico – ciclo “prima” (Fig. 6B). Il ciclo viene eseguito almeno una volta - blocco 2. Dopo aver verificato la condizione (3), se è vera, viene eseguito il blocco (2), altrimenti il ​​controllo viene trasferito al blocco 4.

Figura 6

Linguaggi di programmazione oggetto tipo, elementi di programmazione strutturata vengono utilizzati anche nel codice di programma di una classe di oggetti o nelle procedure di elaborazione di eventi.

Problematico-orientata linguaggi di programmazione: linguaggi di query relazionali di alto livello, generatori di report, ecc. consentono di identificare il problema, le informazioni in input e in output, senza specificare specifiche procedure di elaborazione.

I pacchetti di programmi applicativi (APP) sono suddivisi in classi:

    PPP orientato ai problemi: fornire soluzioni ai problemi di un’area tematica specifica;

    PPP orientato al metodo – supporta un certo tipo di modello e metodi per la risoluzione dei problemi, vengono utilizzati indipendentemente dall’area tematica;

    Software per scopi generali: fornisce supporto per le tecnologie dell'informazione (lavoro di testo, lavoro grafico, calcoli standard, ecc.).

Caratteristiche generali degli strumenti di sviluppo software

    Caratteristiche generali degli strumenti di sviluppo software

    Tecnologia di programmazione dei sistemi strumentali

    Strumenti CASO. Caratteristiche dei moderni strumenti CASE

Panoramica degli strumenti orientati agli oggetti

La programmazione orientata agli oggetti è nata prima dell'analisi e della progettazione orientata agli oggetti, quindi oggi esiste un numero piuttosto elevato di linguaggi che supportano questa tecnologia. Il primo di essi, secondo la data di origine, è considerato la lingua Chiacchiere, sebbene nel linguaggio siano stati utilizzati molti elementi dell'approccio orientato agli oggetti Simulazione nel 1967 Lo strumento più potente per creare programmi orientati agli oggetti oggi è il linguaggio C++, creato sulla base di un linguaggio di programmazione strutturato C. La lingua si sta sviluppando con successo Giava, originariamente progettato per essere orientato agli oggetti.

Lo sviluppo di sistemi software di grandi dimensioni nelle condizioni moderne è impossibile senza l'uso di strumenti di sviluppo software di automazione (strumenti CASE). Non ci sono molti CASE che supportano l'approccio orientato agli oggetti. Lo strumento più conosciuto in questa direzione è il sistema Rosa razionale , che supporta, tra l'altro, le fasi di analisi e progettazione orientata agli oggetti.

Strumento CASE orientato agli oggetti Rational Rose

Sviluppatore Rosa razionale- Rational Software Corp., nota per i suoi sviluppi nel campo delle tecnologie orientate agli oggetti, la principale delle quali è il linguaggio UML. È proprio per supportare UML, come principale linguaggio di progettazione del software, che questo sistema CASE è orientato.

Come ogni moderno strumento CASE, questo sistema supporta tutte le fasi del ciclo di vita del software e fornisce all'utente un'ampia gamma di funzioni per l'analisi, la progettazione, la creazione e la manutenzione del software. In questo caso vengono utilizzate tecnologie orientate agli oggetti e sono ampiamente utilizzati modelli grafici.

Rosa razionaleè costituito dai seguenti componenti principali: un repository, un'interfaccia utente grafica, strumenti di ispezione del progetto (browser), strumenti di controllo del progetto, strumenti di raccolta statistiche e un generatore di documenti, nonché estensioni per supportare vari linguaggi di programmazione.

Le caratteristiche principali includono quanto segue:

    Un potente linguaggio di modellazione di domini grafici che ha un alto livello di formalizzazione e supporta la metodologia orientata agli oggetti.

    Comoda navigazione tra gli elementi del modello utilizzando l'"ispettore progetto".

    Memorizzazione dei risultati della progettazione sotto forma di un unico modello.

    Supportare il lavoro del team di sviluppo sul progetto.

    Potente sistema per la preparazione di report e documentazione di progetto.

    Possibilità di sintesi del programma in quasi tutti i moderni linguaggi orientati agli oggetti, compreso il linguaggio Java multipiattaforma.

    Supporto per le tecnologie dei componenti per la creazione di sistemi software.

    Ampie possibilità di progettazione di software di varie architetture, da semplici programmi a grandi sistemi “client-server” e applicazioni Internet.

    Possibilità di reingegnerizzare il modello in base al codice sorgente del programma. Ciò garantisce che venga mantenuta l'integrità delle informazioni di progettazione e dell'implementazione.

    Configurazione ed espansione delle funzionalità dell'ambiente CASE installando moduli di estensione, principalmente per supportare vari linguaggi di programmazione.

Principi di sviluppo di sistemi software in Rational Rose

La costruzione di sistemi orientati agli oggetti ha le sue specificità. Ovviamente, per ottenere la massima efficienza, è opportuno utilizzare un’unica tecnologia in tutte le fasi del ciclo di vita. Questa opportunità è fornita dal linguaggio di modellazione universale UML. Rosa razionale supporta tutte le fasi di progettazione del sistema definite nella specifica UML.

Il metodo di progettazione principale consiste nel creare vari tipi di diagrammi e specifiche che definiscono la struttura logica e fisica del modello di sistema, i suoi aspetti statici e dinamici. Questi includono diagrammi di classi, stati, script, moduli e processi.

In tutte le fasi, è possibile utilizzare editor grafici specializzati per gli elementi del modello e utilizzare l'ispettore del modello per navigare tra i suoi componenti. Tutte le informazioni di progettazione vengono salvate in un singolo file di modello (*.mdl).

Il lavoro inizia con la costruzione di un Use Case Diagram, che caratterizza i principali compiti e l'ambiente del sistema progettato. Successivamente, per ciascun caso d'uso presentato nel diagramma d'uso, vengono sviluppati diagrammi di sequenza che identificano gli oggetti nel sistema e descrivono la sequenza di eventi che si verificano nel processo di comunicazione tra oggetti. Rosa razionale consente di associare automaticamente i diagrammi di sequenza ai blocchi di utilizzo.

Gli oggetti presenti nei diagrammi di sequenza sono definiti nel sistema tramite classi. Le classi e le loro relazioni vengono definite utilizzando diagrammi di classi, il cui sviluppo è supportato Rosa razionale. Le classi sono raggruppate in pacchetti. Razionale Rosa consente di definire un insieme di pacchetti, le relazioni tra loro e di rappresentare le loro classi costituenti in diagrammi di classi nidificate.

La composizione dei moduli di sistema compilati ed eseguiti è specificata in Rosa razionale utilizzando un diagramma dei componenti. Il diagramma identifica le dipendenze tra i componenti. I componenti possono avere interfacce attraverso le quali vengono implementate le dipendenze. Diagrammi di distribuzione in Rosa razionale riflettono la configurazione del sistema software in esecuzione e sono costituiti da nodi e relazioni di interazione tra nodi. I nodi includono i componenti rappresentati nel diagramma dei componenti del sistema.

Per un modello completamente definito è possibile generare testi del programma sorgente nei vari linguaggi di programmazione orientati agli oggetti supportati Rosa razionale, come Java o C++.

I testi del programma risultanti possono essere modificati all'esterno Rosa razionale e per tenere conto delle modifiche apportate, il sistema consente di decodificare i testi in un modello.

Progettazione del software

Modellazione del dominio . La creazione di un progetto inizia con la formazione dei principi per l'utilizzo del sistema. Entro Rosa razionale Questa fase è chiamata "Vista dei casi d'uso". L'implementazione di questa fase permette di identificare gli utenti esterni, i blocchi di utilizzo, gli oggetti di sistema e le connessioni tra gli stessi.

Viene redatto un diagramma di utilizzo che riflette il funzionamento esterno del sistema in fase di realizzazione. Questo modello è per molti versi simile al diagramma del flusso di dati nell'analisi strutturale. I suoi componenti principali sono gli utenti esterni (attori), i blocchi d'uso (casi d'uso) e le connessioni tra i componenti. Per creare un grafico in Rosa razionale viene utilizzato un editor grafico specializzato.

Tutti gli elementi del diagramma di utilizzo vengono identificati dal sistema come componenti indipendenti del modello in questa fase e sono soggetti a ulteriori specificazioni. Si tratta innanzitutto dei blocchi di utilizzo, che riflettono gruppi di funzioni del sistema presentate come un tutt'uno a un utente esterno.

Per ciascun blocco di utilizzo viene costruito un diagramma di sequenza che mostra l'interazione nel tempo degli oggetti che eseguono l'attività. Tali diagrammi identificano gli oggetti del sistema e definiscono i messaggi attraverso i quali questi oggetti interagiscono. I diagrammi sono costruiti in un editor specializzato.

Ogni oggetto in un diagramma di sequenza è accompagnato dal nome della classe a cui appartiene. Un oggetto specifico è un'istanza di una classe. Le classi costituiscono la struttura logica del sistema.

Sviluppo di una struttura logica. Dopo aver completato la formazione dei principi per l'utilizzo del sistema, inizia la fase di sviluppo della sua struttura logica. IN Rosa razionale si chiama "Vista Logica". Il risultato di questa fase dovrebbe essere un diagramma principale e diagrammi di dettaglio per i suoi elementi.

In questa fase, dovresti determinare le classi necessarie nel sistema. Le istanze di queste classi sono già specificate nei diagrammi di sequenza. Le classi e le loro connessioni si riflettono nel modello sotto forma di diagramma delle classi. I gruppi di classi in questi diagrammi possono essere raggruppati in pacchetti.

La progettazione di una struttura logica dovrebbe iniziare con la definizione dei pacchetti principali. Un pacchetto è uno strumento universale per raggruppare gli elementi del modello. L'uso dei pacchetti consente di rendere il modello più visibile. I pacchetti possono essere annidati uno dentro l'altro. Le classi che compongono ciascun pacchetto sono dettagliate nel diagramma incluso.

Costruito dentro Rosa razionale L'editor del diagramma di classe fornisce strumenti utili per tali operazioni e il controllo modello semplifica la navigazione nella gerarchia del diagramma.

Per ogni classe viene specificata una specifica che descrive la composizione di attributi e metodi, le connessioni, il modello su cui viene creata la classe e le funzionalità di implementazione.

La presenza di modelli semplifica la creazione di classi di varie strutture.

Le classi possono essere importate nel sistema dall'esterno. Rosa razionale supporta la struttura dei componenti del software e consente l'utilizzo di componenti binari come COM e ActiveX nel modello. La loro rappresentazione nel modello viene effettuata utilizzando classi basate sulle interfacce di questi componenti.

Oltre ai diagrammi di classe, in questa fase vengono utilizzati diagrammi di stato, diagrammi di scenario e altri elementi del linguaggio UML per descrivere la logica del sistema.

Progettare la struttura fisica dell'applicazione. Le classi descritte nel passaggio precedente sono associate ai componenti fisici del programma utilizzando i diagrammi dei componenti.

Un componente è un modulo eseguibile del sistema ed è associato a un file sorgente, un file di libreria binaria, un modulo oggetto o un file eseguibile. I componenti possono includere altri componenti.

Per visualizzare i componenti del sistema progettato, vengono utilizzati i diagrammi dei componenti. Fase di costruzione dei diagrammi dei componenti in Rosa chiamato "Vista componente". Consiste nella costruzione di un diagramma generale e, se necessario, nel dettaglio dei singoli componenti in sottodiagrammi.

Questi diagrammi riflettono la relazione tra i componenti del software. La relazione viene implementata tramite interfacce, visualizzate anche nel diagramma.

I diagrammi vengono creati in un editor specializzato. Per un componente vengono specificate le sue classi costituenti.

Il componente può generare testo sorgente in vari linguaggi di programmazione supportati Rosa razionale, o assegnare frammenti di programma sviluppati al di fuori dell'ambiente Rosa. In quest'ultimo caso la loro interfaccia deve corrispondere a quella dichiarata nel modello.

L'ultimo passaggio nella progettazione del software consiste nel preparare un diagramma di distribuzione. IN Rosa questa fase è denominata "Visualizzazione distribuzione". I diagrammi di distribuzione mostrano la configurazione di un sistema software eseguibile. È costituito da nodi e relazioni di interazione tra nodi e componenti. I nodi possono includere componenti e oggetti. I nodi sono elementi fisici di runtime.

Costruzione e manutenzione del sistema

Generazione di testi di origine . Una volta identificati i componenti specifici del sistema in fase di sviluppo, è il momento di generare il codice di programma per ciascun componente.

In realtà, Rosa genera uno scheletro del programma, che viene successivamente inviato ai programmatori per la revisione. Le definizioni di classi e metodi vengono sintetizzate automaticamente, la cui implementazione specifica deve essere eseguita manualmente.

Le informazioni iniziali per questa operazione sono informazioni sulle classi che compongono questo componente e sulla lingua selezionata per l'implementazione di questo componente.

Prima di eseguire l'operazione, è necessario determinare la composizione e i parametri per il salvataggio del codice ricevuto. Successivamente, esegui la generazione selezionando la lingua richiesta. Se si verificano errori, il sistema ti informerà di ciò.

È possibile generare selettivamente il codice di programma per i singoli componenti del modello e personalizzare le informazioni inserite nei file di programma. Ciò consente di ottenere un'elevata flessibilità durante l'aggiornamento e la modifica del modello.

Razionale Rose 98 Enterprise Edition consente di generare testo sorgente in Visual Basic, C++, Java, nonché ottenere una descrizione delle interfacce dei componenti in IDL e creare progetti per il sistema Oracle 8.

Reingegnerizzazione di un modello basato su codici sorgente . La capacità di riprogettare, o, come viene anche chiamato, "reverse engineering", un modello dai testi del programma sorgente sembra essere una delle funzioni importanti e, ovviamente, utili Rosa. La necessità di tale operazione nasce spesso quando si modifica e si aggiorna un progetto. I modelli di programma generati dal modello, dopo essere stati trasferiti ai programmatori, possono essere modificati e queste modifiche devono essere prese in considerazione nel modello. Inoltre, da allora Rosa razionale supporta l'importazione di componenti binari (oggetti COM nell'ambiente Win32), quindi è semplicemente necessario il supporto per la creazione di classi basate sulla descrizione delle interfacce di un componente binario.

È possibile decodificare le classi selezionando il linguaggio di programmazione in cui sono implementate le classi e specificando la directory in cui si trovano i file di origine. Quindi puoi selezionare i file necessari o decodificarli tutti. Quando esegui queste azioni, devi fare attenzione e selezionare solo quegli elementi che possono effettivamente essere convertiti in un modello. Durante il funzionamento il sistema informerà della presenza di errori.

Dopo aver completato con successo l'operazione, un nuovo elemento apparirà sul diagramma dei componenti (la fase "Vista Componenti"), avente un nome che corrisponde alla directory dei file sorgente. Passando alla fase di Visualizzazione Logica verrà mostrato che tutte le classi e i pacchetti che compongono il nuovo componente sono apparsi anche nei diagrammi delle classi.

Ora è possibile apportare modifiche al modello, determinate dai componenti aggiunti, e rigenerare i testi di origine.

Supporto alla fase di sviluppo

Componenti e modelli. Una delle possibilità Rosaè la modellazione di componenti binari che supportano la specifica COM. Nel modello tali componenti sono rappresentati da classi di interfaccia create sulla base dei file IDL che accompagnano l'oggetto COM. Ciò ti consente di includere vari componenti standard nel tuo modello.

Il supporto per i modelli di elementi del modello semplifica il processo di progettazione. IN RosaÈ possibile creare e utilizzare modelli per la maggior parte degli elementi del modello, inclusi: blocchi di utilizzo, pacchetti, classi, componenti, nonché per operazioni sul modello. Quando crei un nuovo elemento, devi specificare quale modello viene utilizzato e l'elemento includerà tutte le proprietà del modello. Questo approccio ti consente di sbarazzarti del lavoro di routine e concentrarti sul progetto stesso.

Ambienti di lavoro. Uno sviluppo logico dell'idea di utilizzare modelli e componenti binari esterni in Rosa razionaleè stata l'emergere dell'ambiente di lavoro (Framework).

Uno spazio di lavoro è un tipo di modello che imposta l'ambiente per il modello da creare. Ciò avviene caricando gli elementi base inseriti nel banco di lavoro, che diventano parte integrante del modello.

Rosa fornisce un'ampia gamma di ambienti di lavoro standard ed è anche possibile crearne di propri. L’insieme degli ambienti di lavoro standard è il seguente:

    Esplora prestazioni dell'applicazione

    Ambiente standard. Focalizzato sulla creazione di applicazioni in Visual Basic. Include la dichiarazione di molti oggetti VB standard.

    Ambiente di progettazione di applicazioni per Internet. Include la definizione di vari componenti ActiveX e librerie VB.

    Ambiente di progettazione dell'applicazione per lavorare con database locali (database locale). Contiene la dichiarazione degli oggetti di sistema DAO

    Ambiente di progettazione dell'applicazione utilizzando RDO (Remote Data Object). Consente di utilizzare oggetti RDO per creare applicazioni client-server.

    Un ambiente di progettazione dell'applicazione per l'accesso ai server SQL (SQL Server Distributed Management Object (SQL-DMO)), che supporta l'accesso a SQL tramite oggetti OLE-Automation.

    Ambiente di supporto di Microsoft Transaction Server

    Ambiente di supporto di Microsoft Outlook

    Ambienti di sviluppo applicazioni Java (Java JDK 114 Full e Java JDK 114 Quick). Include modelli di classi e interfacce Java ottenuti tramite reverse engineering.

    Ambiente di supporto Oracle8

L'ambiente di sviluppo viene assegnato durante la creazione del modello. Gli ambienti di sviluppo vengono archiviati sotto forma di file modello (*.mdl) destinati alla sola lettura. Durante il processo di creazione di un nuovo modello, gli elementi necessari vengono caricati dall'ambiente di sviluppo selezionato, dopodiché viene creato un nuovo modello.

Gli ambienti di sviluppo forniscono un ottimo meccanismo per la personalizzazione Rosa per un progetto specifico. Puoi creare il tuo ambiente di sviluppo, che includerà gli elementi di cui hai bisogno da vari ambienti standard. Parte Rosa razionale include un “master” per la creazione degli ambienti di lavoro.

Supporto al team di sviluppo. Qualsiasi progetto di grandi dimensioni viene solitamente realizzato da un gruppo di sviluppatori, che comprende analisti, progettisti e programmatori. Il processo di sviluppo è costituito da iterazioni successive con il ciclo “analisi” – “progettazione” – “implementazione”. In ogni fase, diversi sviluppatori lavorano con il modello e le fasi si ripetono ciclicamente. In tali condizioni, è necessario mantenere l'integrità del progetto, tenere conto delle modifiche apportate nelle diverse fasi e coordinare le fasi. Tutto ciò richiede l’uso di un archivio comune e di un’ideologia progettuale speciale.

Insieme a un comodo strumento di ispezione del modello che semplifica il passaggio da una fase all'altra, Rosa razionale Sono stati identificati meccanismi per supportare il team di sviluppo.

Crea diverse aree di lavoro per gli sviluppatori e un'area di lavoro per l'intero progetto. Ogni sviluppatore apporta modifiche nella sua parte (sottomodello) e queste modifiche diventano globali (trasferite al modello generale) solo dopo essere state approvate dal sistema di gestione del progetto. Come controllori del progetto in Rosa possono essere utilizzati sistemi esterni, come ad es ClearCase E Microsoft SourceSafe.

Utilizzo dei moduli di espansione . IN Rosa razionaleÈ stato introdotto un meccanismo flessibile per la configurazione e la personalizzazione delle funzionalità del sistema. È possibile installare vari moduli di espansione Rosa e risolvere vari problemi. Esistono due tipi principali di moduli di estensione: estensioni che supportano i linguaggi di programmazione ed estensioni delle funzionalità dell'ambiente.

Quando si aggiunge una nuova estensione, si integra con il sistema aggiungendo elementi ai menu di sistema e installando le librerie e i file eseguibili necessari. Inoltre, ciascuna estensione può aggiungere i propri tipi e modelli al sistema.

Le estensioni necessarie vengono solitamente aggiunte durante l'installazione iniziale del sistema, ma possono essere installate successivamente. È supportata la distribuzione delle estensioni tramite Internet

Per gestire le estensioni in Rosa C'è un gestore di estensioni. Con il suo aiuto puoi attivare e disattivare vari moduli di estensione.

Pro e contro di Rational Rose

Questo strumento CASE può essere utilizzato per creare una varietà di software orientato agli oggetti, principalmente per la piattaforma Windows, nonché nel linguaggio Java multipiattaforma.

Il linguaggio UML viene utilizzato in tutte le fasi dello sviluppo e il progetto software costituisce un unico modello.

Importanti vantaggi sono la personalizzazione per vari linguaggi di programmazione e architetture di sistemi software, nonché la possibilità di “reverse engineering” basato su testi sorgente in vari linguaggi di programmazione. Sono supportati vari metodi di implementazione fisica dei componenti del sistema progettato.

Molto utile la possibilità di configurare il sistema tramite moduli di espansione. Infatti, l'unico modo per scrivere un'applicazione per un sistema operativo non Windows è utilizzare il linguaggio Java.

L'essenza e il concetto di software strumentale

Il software strumentale (IPO) è un software destinato all'uso nella progettazione, sviluppo e manutenzione di programmi.

Gli strumenti vengono utilizzati nella fase di sviluppo. Il software di tooling è una raccolta di programmi utilizzati per assistere i programmatori nel loro lavoro, per assistere i responsabili dello sviluppo software nei loro sforzi per controllare il processo di sviluppo e i prodotti risultanti. I rappresentanti più famosi di questa parte del software sono i programmi di traduzione dei linguaggi di programmazione, che aiutano i programmatori a scrivere comandi macchina. I programmi strumentali sono traduttori delle lingue Fortran, Cobol, Joe-vial, BASIC, APL e Pascal. Facilitano il processo di creazione di nuovi programmi di lavoro. Tuttavia, i traduttori linguistici sono solo la parte più conosciuta dei programmi strumentali; ce ne sono moltissimi.

Usare i computer per creare nuovi programmi è tutt'altro che ovvio per le persone che non sono programmatori professionisti. Accade spesso che i professionisti parlino contemporaneamente di software tool (fase di sviluppo) e di sistema (fase di utilizzo), dando per scontato che chi non è a conoscenza dei segreti del loro mestiere sia consapevole di questo ruolo del software tool. Come nella fase di utilizzo (per i programmi applicativi), anche nella fase di sviluppo il software di sistema funziona, ma solo in combinazione con il tooling. Il software tool o i sistemi di programmazione sono sistemi per automatizzare lo sviluppo di nuovi programmi in un linguaggio di programmazione.

Nel caso più generale, per creare un programma nel linguaggio di programmazione selezionato (linguaggio di programmazione di sistema), è necessario disporre dei seguenti componenti:

1. Editor di testo per creare un file con il testo sorgente del programma.

2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma compilatore. Il codice sorgente di un programma di grandi dimensioni è costituito da diversi moduli (file sorgente). Ogni modulo viene compilato in un file separato con codice oggetto, che poi deve essere combinato in uno solo.

3. Un editor di collegamento o assemblatore che collega moduli oggetto e produce un'applicazione funzionante come codice eseguibile in output.

Il codice eseguibile è un programma completo che può essere eseguito su qualsiasi computer dotato del sistema operativo per il quale è stato creato il programma. Di norma, il file risultante ha l'estensione .EXE o .COM.

Recentemente si sono diffusi metodi di programmazione visiva (utilizzando linguaggi di scripting) volti a creare applicazioni Windows. Questo processo è automatizzato in ambienti di progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, configurati utilizzando editor speciali.

Gli editor più popolari (sistemi di programmazione che utilizzano strumenti visivi) per la progettazione visiva:

Borland Delphi - progettato per risolvere quasi tutti i problemi di programmazione delle applicazioni.

Borland C++ Builder è uno strumento eccellente per lo sviluppo di applicazioni DOS e Windows.

Microsoft Visual Basic è uno strumento popolare per la creazione di programmi Windows.

Microsoft Visual C++: questo strumento consente di sviluppare qualsiasi applicazione eseguita in un ambiente operativo come Microsoft Windows

Pertanto, l'essenza del software strumentale è creare qualsiasi programma eseguibile convertendo le espressioni logiche formali in codice macchina eseguibile, nonché il suo controllo e regolazione.

Compiti e funzioni del software dello strumento

Il software strumentale, in quanto tipo speciale di software, è caratterizzato da generale e privato

funzioni, come per tutti i software in generale. Le funzioni generali sono discusse sopra, mentre le funzioni specializzate inerenti solo a questo tipo di programmi sono:

1. Creazione del testo del programma in fase di sviluppo utilizzando parole in codice appositamente stabilite (linguaggio di programmazione), nonché un determinato insieme di caratteri e la loro posizione nel file creato - sintassi del programma.

2. Traduzione del testo del programma creato in codice orientato alla macchina, accessibile al riconoscimento informatico. Se il volume del programma creato è significativo, viene suddiviso in moduli separati e ciascuno dei moduli viene tradotto separatamente.

3. Collegamento dei singoli moduli in un unico codice eseguibile, nel rispetto della struttura necessaria, garantendo il coordinamento dell'interazione delle singole parti tra loro.

4. Testare e monitorare il programma creato, identificando ed eliminando errori formali, logici e sintattici, controllando i programmi per la presenza di codici proibiti, nonché valutando le prestazioni e le potenzialità del programma creato.

Tipi di software per utensili

In base ai compiti assegnati al software strumentale, possiamo distinguere un gran numero di diverse tipologie di software strumentale:

Editor di testo

Ambienti di sviluppo integrati

Compilatori

Interpreti

Collegatori

Parser e generatori di parser (vedi Javacc)

Assemblatori

Debugger

Profilatori

Generatori di documentazione

Strumenti di analisi della copertura del codice

Strumenti di integrazione continua

Strumenti di test automatizzati

Sistemi di controllo della versione, ecc.

Va notato che le shell per la creazione di programmi applicativi vengono create anche da programmi strumento e pertanto possono essere classificate come programmi applicativi. Consideriamo brevemente le finalità di alcuni programmi strumentali.

Editor di testo.

Un editor di testo è un programma per computer progettato per elaborare file di testo, ad esempio creando e apportando modifiche.

Composizione CAD

Il CAD è un sistema che combina mezzi tecnici, matematica e software, i cui parametri e caratteristiche sono selezionati con la massima considerazione delle specificità della progettazione ingegneristica e delle attività di costruzione. Il CAD garantisce la facilità d'uso dei programmi attraverso l'uso di mezzi di comunicazione operativa tra un ingegnere e un computer, linguaggi speciali orientati ai problemi e la disponibilità di un database di informazioni e di riferimento.

I componenti strutturali del CAD sono sottosistemi che hanno tutte le proprietà dei sistemi e vengono creati come sistemi indipendenti. Si tratta di parti di sistemi CAD, identificate in base a determinate caratteristiche, che garantiscono l'esecuzione di determinate attività di progettazione completate con la ricezione delle corrispondenti soluzioni progettuali e documenti di progettazione.

In base al loro scopo, i sottosistemi CAD si dividono in due tipologie: progettazione e manutenzione.

I sottosistemi di progettazione includono quelli che eseguono procedure e operazioni di progettazione, ad esempio:

· sottosistema layout macchina;

· sottosistema per la progettazione di unità di assemblaggio;

· sottosistema di progettazione delle parti;

· sottosistema di progettazione del circuito di controllo;

· sottosistema di progettazione tecnologica.

I sottosistemi di manutenzione includono sottosistemi progettati per mantenere la funzionalità dei sottosistemi di progettazione, ad esempio:

· sottosistema per la visualizzazione grafica degli oggetti di design;

· sottosistema documentazione;

· sottosistema di recupero delle informazioni, ecc.

A seconda del rapporto con l'oggetto di progettazione, si distinguono due tipi di sottosistemi di progettazione:

· orientato agli oggetti (basato sugli oggetti);

· indipendente dall'oggetto (invariante).

I sottosistemi di oggetti includono sottosistemi che eseguono una o più procedure o operazioni di progettazione che dipendono direttamente da un oggetto di progettazione specifico, ad esempio:

· sottosistema di progettazione degli impianti tecnologici;

· sottosistema per la modellazione della dinamica, della struttura progettata, ecc.

I sottosistemi invarianti includono sottosistemi che eseguono procedure e operazioni di progettazione unificate, ad esempio:

· sottosistema per il calcolo delle parti della macchina;

· sottosistema per il calcolo delle modalità di taglio;

· sottosistema per il calcolo degli indicatori tecnici ed economici, ecc.

Il processo di progettazione è implementato in sottosistemi sotto forma di una sequenza specifica di procedure e operazioni di progettazione. La procedura di progettazione corrisponde a una parte del sottosistema di progettazione, a seguito della quale viene presa una determinata decisione progettuale. Consiste in operazioni di progettazione elementari, ha un ordine di attuazione fermamente stabilito e mira a raggiungere un obiettivo locale nel processo di progettazione. Per operazione di progettazione si intende una parte convenzionalmente selezionata di una procedura di progettazione o un'azione elementare eseguita da un progettista durante il processo di progettazione. Esempi di procedure di progettazione includono procedure per lo sviluppo di un diagramma cinematico o di layout di una macchina utensile, tecnologia di lavorazione del prodotto, ecc., Ed esempi di operazioni di progettazione includono il calcolo delle quote, la risoluzione di un'equazione, ecc.

L'unità strutturale dei sottosistemi CAD è assicurata da una rigorosa regolamentazione delle connessioni tra vari tipi di software, uniti da una funzione target comune per un dato sottosistema. Si distinguono i seguenti tipi di sicurezza:

· supporto metodologico - documenti che riflettono la composizione, le regole per la selezione e il funzionamento degli strumenti di automazione della progettazione;

· supporto linguistico – linguaggi di progettazione, terminologia;

· software - metodi, modelli matematici, algoritmi;

· software - documenti con testi di programmi, programmi su supporti informatici e documenti operativi;

· supporto tecnico - attrezzature informatiche e organizzative, dispositivi di trasmissione dati, dispositivi di misurazione e altri dispositivi e loro combinazioni;

· supporto informativo - documenti contenenti una descrizione delle procedure di progettazione standard, soluzioni di progettazione standard, elementi standard, componenti, materiali e altri dati;

· supporto organizzativo - regolamenti e istruzioni, ordini, orari del personale e altri documenti che regolano la struttura organizzativa dei dipartimenti e la loro interazione con un complesso di strumenti di automazione della progettazione.

· 64 tecnologie CALS.

Le tecnologie CALS servono come mezzo per integrare i sistemi automatizzati industriali in un unico sistema multifunzionale. L’obiettivo dell’integrazione di sistemi di progettazione e controllo automatizzati è aumentare l’efficienza nella creazione e nell’utilizzo di apparecchiature complesse.

Nelle condizioni moderne dell'emergere di una società dell'informazione globale, il ruolo dell'informazione e delle tecnologie dell'informazione nella preparazione di un futuro specialista è in aumento in modo significativo. Nel prossimo futuro il potenziale strategico della società non saranno le risorse energetiche, ma l'informazione e la conoscenza scientifica. L'informazione diventa la principale risorsa per lo sviluppo scientifico, tecnico e socioeconomico della società, influenza in modo significativo lo sviluppo accelerato della scienza, della tecnologia e di varie industrie e svolge un ruolo significativo nel processo di modernizzazione dell'istruzione. Le caratteristiche valore-semantiche dell'istruzione universitaria e delle attività professionali degli specialisti dovrebbero essere espresse nella formazione di un ambiente professionale intellettuale che realizzi pienamente i compiti delle attività di ricerca e progettazione.

La diffusa informatizzazione di tutti i tipi di attività umana: dai tradizionali compiti intellettuali di carattere scientifico all'automazione delle attività produttive, commerciali, commerciali, bancarie e di altro tipo serve ad aumentare l'efficienza produttiva. In un'economia di mercato, solo le imprese che utilizzano le moderne tecnologie dell'informazione nelle loro attività resistono con successo alla concorrenza.

Sono le tecnologie dell'informazione, insieme alle tecnologie avanzate di produzione dei materiali, che consentono di aumentare significativamente la produttività del lavoro e la qualità dei prodotti e allo stesso tempo ridurre significativamente il tempo necessario per lanciare nuovi prodotti che soddisfino le esigenze e le aspettative dei consumatori. Tutto quanto sopra si applica principalmente a prodotti complessi ad alta tecnologia, compresi i prodotti per scopi tecnici.

L'esperienza acquisita nel processo di implementazione di vari sistemi informativi autonomi ha permesso di realizzare la necessità di integrare varie tecnologie informatiche in un unico complesso basato sulla creazione all'interno di un'impresa o di un gruppo di imprese (impresa virtuale) di un ambiente informativo integrato che supporti tutte le fasi del ciclo di vita dei prodotti fabbricati. L'ambiente professionale rivela in modo più completo opportunità di miglioramento professionale, utilizzando le nuove tecnologie dell'informazione nella scienza e nel campo della gestione dei processi produttivi. Le tecnologie innovative nel campo dell'industria dell'elaborazione delle informazioni con l'introduzione della tecnologia CALS- (Continuous Acquisition and Life Cycle Support) - supporto informativo continuo per il ciclo di vita di un oggetto progettato, portano l'automazione della gestione del processo di produzione a un nuovo livello.

L'uso delle tecnologie dell'informazione basate sull'ideologia CALS è uno dei fattori che contribuiscono all'implementazione più efficace di un sistema di gestione aziendale automatizzato.

Le tecnologie CALS servono come mezzo per integrare i sistemi automatizzati industriali in un unico sistema multifunzionale. L’obiettivo dell’integrazione di sistemi di progettazione e controllo automatizzati è aumentare l’efficienza nella creazione e nell’utilizzo di apparecchiature complesse.

L'essenza del concetto CALS è l'applicazione di principi e tecnologie di supporto informativo in tutte le fasi del ciclo di vita del prodotto, basato sull'uso di un ambiente informativo integrato che fornisce modalità uniformi di gestione dei processi e dell'interazione di tutti i partecipanti a questo ciclo: clienti del prodotto (inclusi enti e dipartimenti governativi), fornitori (produttori)) prodotti, personale operativo e di manutenzione. Questi principi e tecnologie sono implementati in conformità con i requisiti degli standard internazionali che regolano le regole di gestione e interazione principalmente attraverso lo scambio elettronico di dati.

Quando si utilizza la tecnologia CALS, la qualità dei prodotti aumenta grazie a una considerazione più completa delle informazioni disponibili durante la progettazione e l'assunzione di decisioni gestionali, oltre a ridurre i costi di materiale e tempo per la progettazione e la fabbricazione dei prodotti. Nel processo di introduzione di questa tecnologia, la validità delle decisioni prese in un sistema automatizzato di gestione aziendale (EMS) sarà maggiore se il decisore e i corrispondenti programmi di gestione avranno accesso tempestivo non solo al database AMMS, ma anche a database di altri sistemi automatizzati e pertanto può ottimizzare i piani di lavoro, il contenuto delle domande, la distribuzione degli esecutori, l'allocazione delle finanze, ecc. Allo stesso tempo, l’accesso online dovrebbe essere inteso non solo come la capacità di leggere i dati da un database, ma anche come la facilità della loro corretta interpretazione, cioè. coerenza sintattica e semantica con i protocolli adottati nei sistemi di controllo automatizzati. I sottosistemi tecnologici devono percepire e interpretare correttamente i dati provenienti da sottosistemi di progettazione automatizzata con elevata precisione. Ciò non è così facile da ottenere se l’impresa principale e le organizzazioni correlate lavorano con diversi sistemi automatizzati. Inoltre, sta diventando urgente il problema della protezione delle informazioni lungo l'intero perimetro dei sottosistemi tecnologici.

L'uso delle tecnologie CALS può ridurre significativamente la quantità di lavoro di progettazione, poiché le descrizioni di sviluppi di componenti e dispositivi precedentemente completati e di successo, molti componenti di apparecchiature, macchine e sistemi progettati in precedenza sono archiviati in database di server di rete, accessibili a qualsiasi utente di Tecnologia CALS. Disponibilità e tutela sono ancora una volta assicurate dalla coerenza di formati, metodi, linee guida nelle diverse parti del complessivo sistema integrato. Inoltre, ci sono maggiori opportunità di specializzazione delle imprese, anche creando imprese virtuali, il che aiuta anche a ridurre i costi.

Nel processo di implementazione della tecnologia CALS, i costi operativi vengono significativamente ridotti grazie all'implementazione di funzioni di supporto logistico integrato. Rende notevolmente più semplice la risoluzione dei problemi di manutenibilità, integrazione dei prodotti in vari tipi di sistemi e ambienti, adattamento alle mutevoli condizioni operative, ecc. Questi vantaggi dell'integrazione dei dati si ottengono utilizzando le moderne tecnologie CALS.

I sistemi automatizzati industriali possono operare in modo autonomo e attualmente l'organizzazione del processo di gestione della produzione avviene su questa base. Tuttavia, l’efficacia dell’automazione sarà notevolmente maggiore se i dati generati in uno dei sistemi sono disponibili in altri sistemi, poiché le decisioni prese in essi diventeranno più informate.

L'esperienza nell'implementazione della tecnologia CALS mostra che per raggiungere il corretto livello di interazione tra i sistemi automatizzati industriali, è necessario creare uno spazio informativo unificato all'interno delle singole imprese e, soprattutto, nel quadro di un'associazione di imprese. Uno spazio informativo unificato è garantito unificando sia la forma che il contenuto delle informazioni su prodotti specifici nelle varie fasi del loro ciclo di vita.

L'unificazione del modulo si ottiene utilizzando formati e linguaggi standard per la presentazione delle informazioni negli scambi tra programmi e durante la documentazione.

L'unificazione dei contenuti, intesa come la corretta interpretazione univoca dei dati relativi a un prodotto specifico in tutte le fasi del suo ciclo di vita, è assicurata dallo sviluppo di ontologie (meta-descrizioni) delle applicazioni, sancite nei protocolli applicativi CALS.

CAD – che cos'è?

Allora, cosa sono i sistemi di progettazione assistita da computer? CAD si riferisce a sistemi automatizzati progettati per implementare l'una o l'altra tecnologia informatica attraverso la progettazione. In pratica i sistemi CAD sono sistemi tecnici che permettono di automatizzare e garantire il funzionamento dei processi che compongono lo sviluppo dei progetti. A seconda del contesto, CAD può significare:

software utilizzato come elemento principale della relativa infrastruttura;

Un insieme di sistemi tecnici e del personale (compresi quelli che implicano l'uso di CAD sotto forma di software) utilizzati in un'impresa per automatizzare il processo di sviluppo del progetto;

È quindi possibile distinguere un'interpretazione ampia e una più ristretta del termine in questione. È difficile dire quale di queste interpretazioni sia più spesso utilizzata negli affari. Tutto dipende dall'area specifica di utilizzo dei sistemi di progettazione assistita da computer, nonché dai compiti per i quali questi sistemi dovrebbero essere utilizzati. Quindi, ad esempio, nel contesto di una singola officina in produzione, si presuppone che il CAD sia un programma specifico per la progettazione assistita da computer. Se parliamo di pianificazione strategica per lo sviluppo di un'organizzazione, molto probabilmente un concetto come CAD corrisponderà a un'infrastruttura su larga scala utilizzata per aumentare l'efficienza dello sviluppo di vari progetti. Va notato che il termine stesso CAD è un'abbreviazione che può essere decifrata in diversi modi. In generale, questa abbreviazione corrisponde alla combinazione delle parole “sistema di progettazione assistita da computer”. Esistono anche altre opzioni per decifrare questa abbreviazione. Ad esempio, l'opzione "sistema di automazione della progettazione" è abbastanza comune. In termini di significato, l'equivalente inglese del termine CAD è l'abbreviazione CAD, in alcuni casi viene utilizzato anche CAX. Diamo un'occhiata più da vicino alla seguente domanda: per quali scopi possono essere creati sistemi di progettazione assistita da computer nell'ingegneria meccanica e altri campi?

CAD: obiettivi della creazione

L'obiettivo principale dello sviluppo CAD è aumentare l'efficienza del lavoro degli specialisti aziendali che risolvono vari problemi di produzione, compresi quelli relativi alla progettazione ingegneristica. In questo caso, l’efficienza può essere aumentata grazie ai seguenti fattori:

Ridurre l’intensità del lavoro del processo di progettazione;

Ridurre i tempi di implementazione del progetto;

Ridurre il costo del lavoro di progettazione e i costi operativi;

Garantire una migliore qualità delle infrastrutture di progettazione.

Riduci i costi di test e simulazione.

Il CAD è uno strumento che permette di ottenere i vantaggi riscontrati dovuti ai seguenti fattori:

Efficace supporto informativo per gli specialisti coinvolti nello sviluppo del progetto;

Automazione della documentazione;

Applicazione di concetti di progettazione parallela;

Unificazione di varie soluzioni;

Applicazione della modellazione matematica come alternativa ai test costosi;

Ottimizzazione dei metodi di progettazione;

Migliorare la qualità dei processi di gestione aziendale.

Consideriamo ora la struttura in cui può essere presentato un sistema di progettazione automatica.

CAD: classificazioni

I criteri più comuni per la classificazione CAD includono lo scopo del settore. Si distinguono le seguenti tipologie:

  1. Progettazione automatizzata di infrastrutture di ingegneria meccanica;
  2. CAD per apparecchiature elettroniche;
  3. CAD nel campo dell'edilizia.

Il primo tipo di sistemi CAD può essere utilizzato in un'ampia gamma di settori: produzione aeronautica, produzione automobilistica, costruzione navale e produzione di beni di consumo. Inoltre, l'infrastruttura corrispondente può essere utilizzata per sviluppare sia singole parti che vari meccanismi utilizzando vari approcci nell'ambito della modellazione e della progettazione.

Il secondo tipo di sistemi CAD viene utilizzato per progettare apparecchiature elettroniche finite e i suoi singoli elementi, ad esempio circuiti integrati, processori e altri tipi di hardware.

Il CAD del terzo tipo può essere utilizzato per progettare varie strutture, edifici ed elementi infrastrutturali.

Un altro criterio in base al quale è possibile classificare i sistemi di progettazione assistita da computer è lo scopo previsto. Qui si evidenziano:

Strumenti di progettazione utilizzati per automatizzare modelli geometrici bidimensionali o tridimensionali per la generazione di documentazione di progettazione;

Sistemi utilizzati allo scopo di sviluppare vari disegni;

Sistemi progettati per la modellazione geometrica;

Sistemi progettati per automatizzare i calcoli all'interno di progetti di ingegneria e modellazione dinamica;

Strumenti di automazione utilizzati ai fini dell'ottimizzazione tecnologica dei progetti;

Sistemi progettati per l'analisi computerizzata di vari parametri per progetti.

Questa classificazione è considerata condizionale.

Un sistema di progettazione del processo assistito da computer può includere un'ampia gamma di funzioni tra quelle sopra elencate. L'elenco specifico delle funzionalità CAD è determinato principalmente dallo sviluppatore del sistema. Diamo un'occhiata a quali compiti può risolvere.

Software per strumenti di sviluppo software

Saggio

SOFTWARE: un insieme di programmi del sistema di elaborazione delle informazioni e documenti di programma necessari per il funzionamento di questi programmi (GOST 19781-90). Inoltre - un insieme di programmi, procedure e regole, nonché la documentazione relativa al funzionamento del sistema di elaborazione dati (ST ISO 2382/1-84).

SOFTWARE TOOL – software destinato all'uso nella progettazione, sviluppo e manutenzione di programmi. In genere, questo termine viene utilizzato per enfatizzare la differenza tra questa classe di software e il software applicativo e di sistema.

COMPILATORE – un traduttore che converte un programma scritto nella lingua sorgente in un modulo oggetto.

INTERPRETE - un programma (a volte hardware) che analizza comandi o istruzioni di programma e li esegue immediatamente.

SISTEMA OPERATIVO - un insieme di programmi di controllo ed elaborazione che, da un lato, fungono da interfaccia tra i dispositivi del sistema informatico e i programmi applicativi e, dall'altro, sono progettati per controllare i dispositivi, gestire i processi informatici, distribuire efficacemente le risorse informatiche tra processi informatici e organizzare un calcolo affidabile.

PROGRAMMA APPLICATIVO - un programma progettato per eseguire determinate attività dell'utente e progettato per l'interazione diretta con l'utente.

VISUALBASIC è uno strumento di sviluppo software sviluppato da Microsoft Corporation che include un linguaggio di programmazione e un ambiente di sviluppo.

VISUALBASICFORAPPLICATION è un'implementazione leggermente semplificata del linguaggio di programmazione Visual Basic, integrato nella linea di prodotti Microsoft Office (incluse le versioni per Mac OS), nonché in molti altri pacchetti software come AutoCAD, SolidWorks, CorelDRAW, WordPerfect ed ESRI ArcGIS.

Lo scopo del lavoro è studiare le tipologie e le funzioni del software, in particolare del software strumentale.

Classificazione del software:

Tipi di software degli strumenti:

1) Editor di testo

4) Compilatori

5) Interpreti

6) Linker

8) Assemblatori

9) Debugger

10) Profilatori

11) Generatori di documentazione

Per creare un programma nel linguaggio di programmazione prescelto è necessario disporre dei seguenti componenti:

2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma compilatore.

Risultato del lavoro: vengono presi in considerazione il software, le sue funzioni e tipologie, in particolare il software strumentale, la sua essenza e i compiti. Il terzo capitolo discute Microsoft Visual Basic come strumento di sviluppo software e il suo dialetto: Microsoft Visual Basic for Application. Il lavoro del corso implementa un algoritmo per risolvere un problema finanziario ed economico utilizzando il linguaggio di programmazione Pascal.

introduzione

Nel mondo moderno, più di una persona che ha assaporato i benefici della civiltà non può immaginare la propria vita senza l'uso della tecnologia informatica. Il suo utilizzo avviene in qualsiasi ambito dell'attività umana: produzione, commercio, istruzione, intrattenimento e comunicazione delle persone, le loro attività scientifiche e culturali. Tutto questo grazie alla capacità di selezionare apparecchiature informatiche per risolvere qualsiasi problema, anche il più complesso.

Tuttavia, sia la versatilità che la specializzazione della tecnologia informatica sono assicurate dall'uso di un diverso insieme di software sulla base di quasi tutti i computer che forniscono una soluzione a qualsiasi compito assegnato.

Tutti noi vediamo l'enorme varietà di programmi per computer e il ritmo sbalorditivo della loro crescita e miglioramento, e solo una piccola parte di noi comprende il lato invisibile della loro progettazione, sviluppo e creazione. Tuttavia, quest'area della tecnologia informatica è, a nostro avviso, la più importante, poiché il futuro della tecnologia informatica dipenderà dal suo sviluppo.

E poiché lo sviluppo di qualsiasi programma per computer avviene utilizzando software strumentale, nel lavoro del nostro corso vorrei soffermarmi su di esso in dettaglio, evidenziandolo da tutti i software e rivelandone l'essenza e le caratteristiche.

Per chiarezza, esamineremo il software strumentale (oggetto di studio) utilizzando l'esempio del pacchetto software VisualBasicforApplication (oggetto di studio), utilizzato per la programmazione nell'ambiente Microsoft Office, il pacchetto office più diffuso e popolare.

1. Software

1.1 Concetto ed essenza del software

Il software è parte integrante di un sistema informatico. È una continuazione logica dei mezzi tecnici di qualsiasi computer. L'ambito di applicazione di un particolare computer è determinato dal software creato per esso. Il computer stesso non è in grado di riconoscere alcuna applicazione. Tutta questa conoscenza è concentrata in programmi eseguiti su computer, che hanno una serie di funzionalità specifiche e sono progettati per eseguire funzioni specifiche, nella maggior parte dei casi, altamente specializzate, come la creazione e l'elaborazione di immagini grafiche o file audio.

Il software attualmente comprende centinaia di migliaia di programmi progettati per elaborare un'ampia varietà di informazioni per un'ampia varietà di scopi.

Il software comprende anche l'intera area di attività nella progettazione e sviluppo di software:

1) tecnologia di progettazione del programma (ad esempio progettazione top-down, progettazione strutturata e orientata agli oggetti);

2) metodi di test dei programmi;

3) metodi per dimostrare la correttezza dei programmi;

4) analisi della qualità dei programmi;

5) documentare i programmi;

6) sviluppo e utilizzo di strumenti software che facilitino il processo di progettazione del software e molto altro.

Esistono molte definizioni diverse di software. In generale, il software è un insieme di programmi del sistema di elaborazione delle informazioni e documenti di programma necessari per il funzionamento di questi programmi (GOST 19781-90). Inoltre - un insieme di programmi, procedure e regole, nonché la documentazione relativa al funzionamento del sistema di elaborazione dati (ST ISO 2382/1-84).

Il software è uno dei tipi di supporto di un sistema informatico, insieme al supporto tecnico (hardware), matematico, informativo, linguistico, organizzativo e metodologico.

Nel gergo informatico, la parola software è spesso usata dalla parola inglese software, che in questo senso fu usata per la prima volta in un articolo sull'American Mathematical Monthly dal matematico John W. Tukey dell'Università di Princeton nel 1958.

Altre definizioni:

1) IL SOFTWARE è un insieme di programmi che consentono l'elaborazione automatizzata delle informazioni su un computer.

2) SOFTWARE (supporto matematico per un computer elettronico), un insieme di programmi per un sistema di elaborazione dati e documenti di programma necessari per implementare programmi su un computer elettronico.

3) SOFTWARE: un insieme di programmi per il controllo del processo di funzionamento del computer e l'automazione della programmazione.

4) SOFTWARE - un insieme di programmi informatici che fornisce l'elaborazione o la trasmissione dei dati.

Tutte le definizioni sono simili e riflettono l'essenza del software: organizzazione dell'interazione della parte hardware (tecnica), sotto forma di vari nodi e dispositivi periferici integrati, il loro controllo e coordinamento dell'interazione complessiva del sistema informatico tra loro e con l'utente.

1.2 Funzioni del software

I concetti di software di cui sopra determinano le funzioni eseguite dal software durante il funzionamento delle apparecchiature informatiche. L'elenco di queste funzioni è molto vario, ma possono essere suddivise approssimativamente nei seguenti cinque tipi:

1. Hardware e meccanica. Interfacciano diversi componenti del computer e garantiscono la trasmissione di un segnale hardware da un componente all'altro.

2. Logico-macchina. Elabora e interpreta una serie di impulsi elettromagnetici dall'hardware in un codice software logicamente cosciente che ha una struttura e proprietà specifiche.

3. Informazioni e comando. Controllano la conformità del codice del programma con i principi del sistema e creano una struttura logica di informazioni e ne eseguono l'esecuzione.

4. Interfaccia. Fornire l'elaborazione e l'interpretazione del codice del programma in un formato di visualizzazione accessibile all'utente. Crea un ambiente favorevole per l’interazione “Computer-Uomo, Uomo-Computer”.

5. Applicato. Esegue azioni matematiche, logiche, fisiche e di altro tipo con una serie di dati disponibili, in altre parole, elaborazione delle informazioni disponibili per risolvere determinati problemi.

Questo elenco è lungi dall'essere esaustivo, il che indica la diversità e l'ambiguità delle funzioni svolte dal software.

1.3 Tipi di software

A seconda delle funzioni fornite da un determinato componente del computer, è necessario creare il proprio software specializzato, che è il motivo fondamentale per creare software di vario tipo, mostrato in (Fig. 1):

a) Programmi applicativi che supportano direttamente l'esecuzione del lavoro richiesto dagli utenti;

b) i programmi di sistema, progettati per controllare il funzionamento del sistema informatico, eseguono varie funzioni ausiliarie, ad esempio:

1) gestione delle risorse informatiche;

2) creazione di copie delle informazioni utilizzate;

3) verificare la funzionalità dei dispositivi informatici;

4) rilascio di informazioni di riferimento sul computer, ecc.;

c) sistemi software strumentali che facilitano il processo di creazione di nuovi programmi informatici.

Il software di sistema garantisce il funzionamento e la manutenzione del computer, nonché l'automazione del processo di creazione di nuovi programmi. Il software di sistema comprende: sistemi operativi e la relativa interfaccia utente; strumenti software; sistemi di manutenzione.

Un sistema operativo è una parte obbligatoria di un software speciale che garantisce il funzionamento efficace di un personal computer in varie modalità, organizzando l'esecuzione dei programmi e l'interazione dell'utente e dei dispositivi esterni con il computer.

L'interfaccia utente (programmi di servizio) sono componenti aggiuntivi software del sistema operativo (shell e ambiente) progettati per semplificare la comunicazione dell'utente con il sistema operativo.

I programmi che forniscono l'interfaccia mantengono la forma di comunicazione (dialogo) tra l'utente e il sistema operativo, ma cambiano la lingua di comunicazione (di solito la lingua dei comandi viene convertita in una lingua dei menu). I sistemi di servizio possono essere suddivisi in sistemi di interfaccia, shell del sistema operativo e utilità.

I sistemi di interfaccia sono potenti sistemi di servizi, molto spesso di tipo grafico, che migliorano non solo l'utente, ma anche l'interfaccia del programma dei sistemi operativi, in particolare implementando alcune procedure aggiuntive per la suddivisione di risorse aggiuntive.

Le shell del sistema operativo forniscono all'utente un'interfaccia qualitativamente nuova rispetto a quella implementata dal sistema operativo e rendono facoltativa la conoscenza di quest'ultimo.

Le utilità automatizzano l'esecuzione di determinate procedure standard, utilizzate di frequente, la cui implementazione richiederebbe all'utente di sviluppare programmi speciali. Molte utilità hanno un'interfaccia interattiva sviluppata con l'utente e si avvicinano al livello di comunicazione delle shell.

Gli strumenti software (sistemi di programmazione) sono una parte obbligatoria del software con cui vengono creati i programmi. Gli strumenti software includono strumenti per scrivere programmi (editor di testo); strumenti per convertire programmi in una forma adatta all'esecuzione su un computer (assemblatori, compilatori, interpreti, caricatori ed editor di collegamenti), mezzi per monitorare ed eseguire il debug dei programmi.

Gli editor di testo consentono di modificare, formare e combinare comodamente i testi dei programmi e alcuni consentono di controllare la sintassi dei programmi creati.

Un programma scritto in linguaggio algoritmico deve essere convertito in un modulo oggetto scritto in linguaggio macchina (codice binario). Tale conversione viene eseguita dai traduttori (assemblatore - dal linguaggio Assembler e compilatori - da linguaggi di alto livello). Per alcuni linguaggi algoritmici vengono utilizzati interpreti che non creano un modulo oggetto, ma, ad ogni successiva esecuzione del programma, traducono ciascuna delle sue singole righe o istruzioni in linguaggio macchina. Il modulo oggetto viene elaborato da un caricatore, un editor di collegamenti, che lo converte in un programma macchina eseguibile.

Gli strumenti di debug consentono di tracciare i programmi (esecuzione passo passo con informazioni sui risultati dell'esecuzione), controllare la sintassi del programma e i risultati intermedi nei punti di interruzione e modificare i valori delle variabili in questi punti.

I sistemi di manutenzione e assistenza sono strumenti software per il monitoraggio, la diagnosi e il ripristino della funzionalità di un computer, dischi, ecc.

Il software applicativo fornisce soluzioni ai problemi dell'utente. Il concetto chiave qui è il pacchetto dell'applicazione.

Un pacchetto software applicativo è un insieme di programmi per risolvere una serie di problemi su un argomento o argomento specifico. Si distinguono i seguenti tipi di pacchetti applicativi:

1) scopo generale - focalizzato sull'automazione di un'ampia gamma di attività dell'utente (elaboratori di testi, editor di fogli di calcolo, sistemi di gestione di database, elaboratori grafici, sistemi di pubblicazione, sistemi di automazione della progettazione, ecc.);

2) orientamento al metodo - implementazione di vari metodi economici e matematici per risolvere problemi (programmazione matematica, pianificazione e gestione della rete, teoria delle code, statistica matematica, ecc.);

3) orientato ai problemi - mirato a risolvere un compito specifico (problema) in un'area tematica specifica (pacchetti bancari, pacchetti contabili, gestione finanziaria, sistemi di riferimento giuridico, ecc.).

Il software applicativo comprende software di servizio che serve a organizzare un ambiente di lavoro conveniente per l'utente, nonché a svolgere funzioni ausiliarie (gestori delle informazioni, traduttori, ecc.).

Quando si costruisce una classificazione del software, è necessario tenere conto del fatto che il rapido sviluppo della tecnologia informatica e l'espansione della portata delle applicazioni informatiche hanno accelerato drasticamente il processo di evoluzione del software. Se prima era facile elencare le principali categorie di software: sistemi operativi, traduttori, pacchetti software applicativi, ora la situazione è cambiata radicalmente. Lo sviluppo del software è andato sia in profondità (sono apparsi nuovi approcci alla costruzione di sistemi operativi, linguaggi di programmazione, ecc.) Che in ampiezza (i programmi applicativi hanno cessato di essere applicati e hanno acquisito valore indipendente). Il rapporto tra i prodotti software richiesti e quelli disponibili sul mercato sta cambiando molto rapidamente. Anche i prodotti software classici, come i sistemi operativi, sono in continua evoluzione e dotati di funzioni intelligenti, molte delle quali precedentemente legate solo alle capacità intellettuali umane.

2. Software per utensili

2.1 L'essenza e il concetto di strumenti software

Il software strumentale (IPO) è un software destinato all'uso nella progettazione, sviluppo e manutenzione di programmi.

Gli strumenti vengono utilizzati nella fase di sviluppo. Il software di tooling è una raccolta di programmi utilizzati per assistere i programmatori nel loro lavoro, per assistere i responsabili dello sviluppo software nei loro sforzi per controllare il processo di sviluppo e i prodotti risultanti. I rappresentanti più famosi di questa parte del software sono i programmi di traduzione dei linguaggi di programmazione, che aiutano i programmatori a scrivere comandi macchina. I programmi strumentali sono traduttori delle lingue Fortran, Cobol, Joe-vial, BASIC, APL e Pascal. Facilitano il processo di creazione di nuovi programmi di lavoro. Tuttavia, i traduttori linguistici sono solo la parte più conosciuta dei programmi strumentali; ce ne sono moltissimi.

Usare i computer per creare nuovi programmi è tutt'altro che ovvio per le persone che non sono programmatori professionisti. Accade spesso che i professionisti parlino contemporaneamente di software tool (fase di sviluppo) e di sistema (fase di utilizzo), dando per scontato che chi non è a conoscenza dei segreti del loro mestiere sia consapevole di questo ruolo del software tool. Come nella fase di utilizzo (per i programmi applicativi), anche nella fase di sviluppo il software di sistema funziona, ma solo in combinazione con il tooling. Il software tool o i sistemi di programmazione sono sistemi per automatizzare lo sviluppo di nuovi programmi in un linguaggio di programmazione.

Nel caso più generale, per creare un programma nel linguaggio di programmazione selezionato (linguaggio di programmazione di sistema), è necessario disporre dei seguenti componenti:

1. Editor di testo per creare un file con il testo sorgente del programma.

2. Compilatore o interprete. Il testo sorgente viene tradotto in codice oggetto intermedio utilizzando un programma compilatore. Il codice sorgente di un programma di grandi dimensioni è costituito da diversi moduli (file sorgente). Ogni modulo viene compilato in un file separato con codice oggetto, che poi deve essere combinato in uno solo.

3. Un editor di collegamento o assemblatore che collega moduli oggetto e produce un'applicazione funzionante come codice eseguibile in output.

Il codice eseguibile è un programma completo che può essere eseguito su qualsiasi computer dotato del sistema operativo per il quale è stato creato il programma. Di norma, il file risultante ha l'estensione .EXE o .COM.

Recentemente si sono diffusi metodi di programmazione visiva (utilizzando linguaggi di scripting) volti a creare applicazioni Windows. Questo processo è automatizzato in ambienti di progettazione rapida. In questo caso vengono utilizzati componenti visivi già pronti, configurati utilizzando editor speciali.

Gli editor più popolari (sistemi di programmazione che utilizzano strumenti visivi) per la progettazione visiva:

1) Borland Delphi: progettato per risolvere quasi tutti i problemi di programmazione delle applicazioni.

2) Borland C++ Builder è un ottimo strumento per sviluppare applicazioni DOS e Windows.

3) Microsoft Visual Basic è uno strumento popolare per creare programmi Windows.

4) Microsoft Visual C++: questo strumento consente di sviluppare qualsiasi applicazione eseguita in un ambiente operativo come Microsoft Windows

Pertanto, l'essenza del software strumentale è creare qualsiasi programma eseguibile convertendo le espressioni logiche formali in codice macchina eseguibile, nonché il suo controllo e regolazione.

2.2 Compiti e funzioni del software dello strumento

Il software strumentale, in quanto tipo speciale di software, è caratterizzato da generale e privato

funzioni, come per tutti i software in generale. Le funzioni generali sono discusse sopra, mentre le funzioni specializzate inerenti solo a questo tipo di programmi sono:

1. Creazione del testo del programma in fase di sviluppo utilizzando parole in codice appositamente stabilite (linguaggio di programmazione), nonché un determinato insieme di caratteri e la loro posizione nel file creato - sintassi del programma.

2. Traduzione del testo del programma creato in codice orientato alla macchina, accessibile al riconoscimento informatico. Se il volume del programma creato è significativo, viene suddiviso in moduli separati e ciascuno dei moduli viene tradotto separatamente.

3. Collegamento dei singoli moduli in un unico codice eseguibile, nel rispetto della struttura necessaria, garantendo il coordinamento dell'interazione delle singole parti tra loro.

4. Testare e monitorare il programma creato, identificando ed eliminando errori formali, logici e sintattici, controllando i programmi per la presenza di codici proibiti, nonché valutando le prestazioni e le potenzialità del programma creato.

2.3 Tipologie di strumenti software

In base ai compiti assegnati al software strumentale, possiamo distinguere un gran numero di diverse tipologie di software strumentale:

1) Editor di testo

2) Ambienti di sviluppo integrati

4) Compilatori

5) Interpreti

6) Linker

7) Parser e generatori di parser (vedi Javacc)

8) Assemblatori

9) Debugger

10) Profilatori

11) Generatori di documentazione

12) Strumenti di analisi della copertura del codice

13) Strumenti di integrazione continua

14) Strumenti di test automatizzati

15) Sistemi di controllo della versione, ecc.

Va notato che le shell per la creazione di programmi applicativi vengono create anche da programmi strumento e pertanto possono essere classificate come programmi applicativi. Consideriamo brevemente le finalità di alcuni programmi strumentali.

Editor di testo.

Un editor di testo è un programma per computer progettato per elaborare file di testo, ad esempio creando e apportando modifiche.

Tipi di editor di testo.

Convenzionalmente, esistono due tipi di editor: editor di testo in streaming e editor interattivi.

Gli editor di testo in flusso sono programmi per computer progettati per elaborare automaticamente i dati di testo in ingresso ricevuti da un file di testo in conformità con le regole predefinite dagli utenti. Nella maggior parte dei casi, le regole sono espressioni regolari, in un dialetto specifico di un determinato editor di testo. Un esempio di tale editor di testo è l'editor Sed.

Gli editor di testo interattivi sono una famiglia di programmi per computer progettati per apportare modifiche a un file di testo in modo interattivo. Tali programmi consentono di visualizzare lo stato corrente dei dati di testo in un file ed eseguire varie azioni su di esso.

Spesso gli editor di testo interattivi contengono significative funzionalità aggiuntive progettate per automatizzare parte delle azioni di modifica o per modificare la visualizzazione dei dati di testo, a seconda della loro semantica. Un esempio di quest'ultimo tipo di funzionalità è l'evidenziazione della sintassi.

Gli editor di testo sono progettati per creare e modificare documenti di testo. I più comuni sono MS WORD, Lexicon. Le principali funzioni degli editor di testo sono:

1) lavorare con frammenti di documenti,

2) inserimento di oggetti creati in altri programmi

3) suddividere il testo del documento in pagine

4) inserimento e modifica tabelle

5) inserimento e modifica delle formule

6) formattazione del paragrafo

7) creazione automatica di elenchi

8) creazione automatica di un sommario.

Si conoscono dozzine di editor di testo. I più accessibili sono NOTEPAD (blocco note), WORDPAD, WORD. Il funzionamento di un particolare editor di testo è solitamente determinato da funzioni, il cui scopo si riflette nelle voci di menu e nel sistema di guida.

Ambiente di sviluppo integrato

L'ambiente di sviluppo integrato, ISD, è un sistema software utilizzato dai programmatori per sviluppare software. In genere l'ambiente di sviluppo include:

1) editor di testo

2) compilatore e/o interprete

3) strumenti di automazione dell'assemblaggio

4) debugger.

A volte contiene anche strumenti per l'integrazione con sistemi di controllo della versione e vari strumenti per semplificare la progettazione di un'interfaccia utente grafica. Molti ambienti di sviluppo moderni includono anche un browser di classi, un ispettore di oggetti e un diagramma della gerarchia di classi da utilizzare nello sviluppo di software orientato agli oggetti. Sebbene esistano ambienti di sviluppo progettati per diversi linguaggi di programmazione - come Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator o Microsoft Visual Studio, solitamente l'ambiente di sviluppo è destinato a un linguaggio di programmazione specifico - come Visual Basic, Delphi, Dev -C++.

Un caso speciale di ISR ​​è un ambiente di sviluppo visivo, che include la possibilità di modificare visivamente l'interfaccia del programma.

SDK.

SDK (dall'inglese SoftwareDevelopmentKit) o ​​"devkit" è un kit di sviluppo che consente agli specialisti di software di creare applicazioni per un pacchetto software specifico, software di sviluppo principale, piattaforma hardware, sistema informatico, console per videogiochi, sistemi operativi e altre piattaforme.

Il programmatore, di norma, riceve l'SDK direttamente dallo sviluppatore della tecnologia o del sistema di destinazione. Spesso l'SDK viene distribuito su Internet. Molti SDK sono distribuiti gratuitamente per incoraggiare gli sviluppatori a utilizzare una determinata tecnologia o piattaforma.

I fornitori di SDK a volte sostituiscono il termine Software nel Software Development Kit con una parola più precisa. Ad esempio, Microsoft e Apple forniscono Driver Development Kit (DDK) per lo sviluppo di driver di dispositivo e PalmSource chiama il suo toolkit di sviluppo PalmOS Development Kit (PDK).

Esempi di SDK :

5) Kit di sviluppo Java

6) SDK dei dispositivi Opera

Compilatori.

Compilatore -

1) Un programma o uno strumento tecnico che esegue la compilazione.

2) Il programma macchina utilizzato per la compilazione.

3) Un traduttore che converte un programma scritto nella lingua sorgente in un modulo oggetto.

4) Un programma che traduce il testo di un programma in un linguaggio di alto livello in un programma equivalente in linguaggio macchina.

5) Un programma progettato per tradurre il linguaggio di alto livello in codice assoluto o, talvolta, in linguaggio assembly. L'informazione in input al compilatore (codice sorgente) è una descrizione dell'algoritmo o del programma in un linguaggio orientato ai problemi, e l'output del compilatore è una descrizione equivalente dell'algoritmo in un linguaggio orientato alla macchina (codice oggetto).

Compilazione -

1) Traduzione di un programma in un linguaggio vicino al linguaggio macchina.

2) Traduzione di un programma scritto nella lingua sorgente in un modulo oggetto. Eseguito dal compilatore.

Compilare: tradurre un programma macchina da un linguaggio orientato ai problemi in un linguaggio orientato alla macchina.

Tipi di compilatori :

1) Vettorizzazione. Traduce il codice sorgente in codice macchina su computer dotati di un processore vettoriale.

2) Flessibile. Modulare, basato su tabelle e programmato in un linguaggio di alto livello o implementato utilizzando un compilatore di compilatori.

3) Dialogo.

4) Incrementale. Ritrasmette frammenti di programma e aggiunte ad esso senza ricompilare l'intero programma.

5) Interpretativa (passo dopo passo). Esegue in sequenza la compilazione indipendente di ogni singola istruzione (comando) del programma sorgente.

6) Compilatore di compilatori. Un traduttore che accetta una descrizione formale di un linguaggio di programmazione e genera un compilatore per questo linguaggio.

7) Debug. Elimina alcuni tipi di errori di sintassi.

8) Residente. Vive permanentemente nella memoria principale ed è disponibile per il riutilizzo in molte attività.

9) Autocompilazione. Scritto nella stessa lingua da cui viene effettuata la trasmissione.

10) Universale. Basato su una descrizione formale della sintassi e della semantica del linguaggio di input. I componenti di un tale compilatore sono: il kernel, i caricatori sintattici e semantici.

Tipi di compilazione :

1) Lotto. Compilazione di più moduli sorgente in un unico elemento di lavoro.

2) Riga per riga.

3) Condizionale. Compilazione in cui il testo tradotto dipende dalle condizioni specificate nel programma sorgente. Quindi, a seconda del valore di una determinata costante, è possibile attivare o disattivare la traduzione di parte del testo del programma.

Struttura del compilatore.

Il processo di compilazione prevede i seguenti passaggi:

1) Analisi lessicale. In questa fase, la sequenza di caratteri nel file sorgente viene convertita in una sequenza di token.

2) Analisi sintattica (grammaticale). La sequenza di token viene convertita in un albero di analisi.

3) Analisi semantica. L'albero di analisi viene elaborato per stabilirne la semantica (significato), ad esempio legando gli identificatori alle loro dichiarazioni, tipi, verificando la compatibilità, determinando i tipi di espressione, ecc. Il risultato è solitamente chiamato "rappresentazione/codice intermedio" e può essere esteso da l'albero di analisi, un nuovo albero, un insieme astratto di comandi o qualcos'altro utile per un'ulteriore elaborazione.

4) Ottimizzazione. Rimuovere le strutture non necessarie e semplificare il codice mantenendone il significato. L'ottimizzazione può avvenire a diversi livelli e fasi, ad esempio sul codice intermedio o sul codice macchina finale.

5) Generazione del codice. Dalla rappresentazione intermedia viene generato il codice nella lingua di destinazione.

Nelle implementazioni specifiche del compilatore, queste fasi possono essere separate o combinate in una forma o nell'altra.

Trasmissione e post-produzione.

Un'importante caratteristica storica del compilatore, riflessa nel suo nome (inglese: compilare - mettere insieme, comporre), era che poteva anche eseguire il collegamento (cioè conteneva due parti: un traduttore e un linker). Ciò è dovuto al fatto che la compilazione separata e il collegamento come fase di assemblaggio separata sono emersi molto più tardi rispetto all'avvento dei compilatori. A questo proposito, al posto del termine “compilatore”, viene talvolta utilizzato come sinonimo il termine “traduttore”: sia nella vecchia letteratura, sia quando si vuole sottolineare la sua capacità di tradurre un programma in codice macchina (e viceversa, il Il termine “compilatore” è usato per enfatizzare la capacità di compilare da molti file (uno).

Interpreti.

Interprete (linguaggio di programmazione) -

1) Un programma o uno strumento tecnico che esegue l'interpretazione.

2) Un tipo di traduttore che esegue l'elaborazione e l'esecuzione istruzione per istruzione (comando per comando) del programma sorgente o della query (al contrario di un compilatore che traduce l'intero programma senza eseguirlo).

3) Un programma (a volte hardware) che analizza comandi o istruzioni di programma e li esegue immediatamente.

4) Un processore del linguaggio che analizza il programma sorgente riga per riga e contemporaneamente esegue le azioni prescritte, anziché generare un programma compilato in linguaggio macchina che viene successivamente eseguito.

Tipologie di interpreti.

Un semplice interprete analizza ed esegue immediatamente (l'interpretazione vera e propria) il programma comando per comando (o riga per riga), non appena il suo codice sorgente arriva all'input dell'interprete. Il vantaggio di questo approccio è la risposta immediata. Lo svantaggio è che un tale interprete rileva errori nel testo del programma solo quando si tenta di eseguire un comando (o una riga) con un errore.

Un interprete di tipo compilatore è un sistema costituito da un compilatore che traduce il codice sorgente di un programma in una rappresentazione intermedia, ad esempio in bytecode o p-code, e dall'interprete stesso, che esegue il codice intermedio risultante (il così- chiamata macchina virtuale). Il vantaggio di tali sistemi è la maggiore velocità di esecuzione del programma (grazie alla rimozione dell'analisi del codice sorgente in un passaggio separato e una tantum e alla minimizzazione di questa analisi nell'interprete). Gli svantaggi sono un maggiore requisito di risorse e un requisito per la correttezza del codice sorgente. Viene utilizzato in linguaggi come Java, PHP, Python, Perl (viene utilizzato il bytecode), REXX (viene salvato il risultato dell'analisi del codice sorgente), nonché in vari DBMS (viene utilizzato il p-code).

Se l'interprete del tipo compilatore viene diviso in componenti, il risultato è un compilatore del linguaggio e un semplice interprete con un'analisi minima del codice sorgente. Inoltre, il codice sorgente per tale interprete non deve essere in formato testo o essere bytecode comprensibile solo da questo interprete; può essere il codice macchina di qualche piattaforma hardware esistente. Ad esempio, le macchine virtuali come QEMU, Bochs e VMware includono interpreti di codice macchina per processori della famiglia x86.

Alcuni interpreti (ad esempio per i linguaggi Lisp, Scheme, Python, BASIC e altri) possono funzionare in modalità dialogo o nel cosiddetto read-eval-printloop (REPL). In questa modalità, l'interprete legge un costrutto linguistico completo (ad esempio, un'espressione s in Lisp), lo esegue, stampa i risultati e quindi attende che l'utente inserisca il costrutto successivo.

Unico è il linguaggio Forth, che è in grado di funzionare sia in modalità di interpretazione che di compilazione dei dati di input, consentendo di passare da una modalità all'altra in qualsiasi momento, sia durante la traduzione del codice sorgente che durante l'esecuzione dei programmi.

Va inoltre notato che le modalità di interpretazione si possono trovare non solo nel software, ma anche nell'hardware. Pertanto, molti microprocessori interpretano il codice macchina utilizzando il firmware integrato e i processori della famiglia x86, a partire dal Pentium (ad esempio, sull'architettura Intel P6), durante l'esecuzione del codice macchina, lo pre-traducono in un formato interno (in una sequenza di microoperazioni).

Algoritmo per un semplice interprete :

2. analizzare le istruzioni e determinare le azioni appropriate;

3. intraprendere azioni appropriate;

4. Se la condizione di conclusione del programma non viene raggiunta, leggere le seguenti istruzioni e andare al passo 2.

Vantaggi e svantaggi degli interpreti.

1) Maggiore portabilità dei programmi interpretati: il programma funzionerà su qualsiasi piattaforma dotata di un interprete appropriato.

2) Di norma, mezzi più avanzati e visivi per diagnosticare errori nei codici sorgente.

3) Semplificazione del debug dei codici sorgente dei programmi.

4) Dimensioni del codice più piccole rispetto al codice macchina ottenuto dai compilatori convenzionali.

1) Un programma interpretato non può essere eseguito separatamente senza un programma interprete. L'interprete stesso può essere molto compatto.

2) Il programma interpretato viene eseguito più lentamente perché l'analisi intermedia del codice sorgente e la pianificazione della sua esecuzione richiedono tempo aggiuntivo rispetto all'esecuzione diretta del codice macchina in cui il codice sorgente potrebbe essere compilato.

3) Non esiste praticamente alcuna ottimizzazione del codice, il che porta a ulteriori perdite nella velocità dei programmi interpretati.

Collegamento.

Linker (anche link editor, linker) - un programma che esegue il collegamento - prende uno o più moduli oggetto come input e assembla da essi un modulo eseguibile.

Per collegare i moduli, il linker utilizza le tabelle dei nomi create dal compilatore in ciascuno dei moduli oggetto. Tali nomi possono essere di due tipi:

1) Nomi definiti o esportati: funzioni e variabili definite in un dato modulo e rese disponibili per l'uso da altri moduli.

2) Nomi non definiti o importati: funzioni e variabili a cui fa riferimento il modulo, ma non le definisce internamente.

Il compito del linker è risolvere i riferimenti a nomi non definiti in ciascun modulo. Per ogni nome importato la sua definizione si trova in altri moduli; la menzione del nome è sostituita dal suo indirizzo.

Il linker generalmente non controlla i tipi e il numero di parametri di procedure e funzioni. Se è necessario combinare moduli oggetto di programmi scritti in linguaggi con digitazione forte, i controlli necessari devono essere eseguiti da un'utilità aggiuntiva prima di avviare l'editor dei collegamenti.

Assemblatore.

Un assembler (dall'inglese assembler - assembler) è un programma per computer, un compilatore del testo sorgente di un programma scritto in linguaggio assembly in un programma in linguaggio macchina.

Come il linguaggio (assembly) stesso, gli assemblatori sono tipicamente specifici per una particolare architettura, sistema operativo e variante della sintassi del linguaggio. Allo stesso tempo, esistono assemblatori multipiattaforma o addirittura universali (più precisamente, universali limitati, perché è impossibile scrivere programmi indipendenti dall'hardware in un linguaggio di basso livello) che possono essere eseguiti su piattaforme e sistemi operativi diversi. Tra questi ultimi si può distinguere anche un gruppo di cross-assembler in grado di raccogliere codice macchina e moduli eseguibili (file) per altre architetture e sistemi operativi.

L'assemblaggio potrebbe non essere il primo o l'ultimo passo nel percorso per ottenere un modulo di programma eseguibile. Pertanto, molti compilatori di linguaggi di programmazione di alto livello producono il risultato sotto forma di un programma in linguaggio assembly, che viene ulteriormente elaborato dall'assemblatore. Inoltre, il risultato dell'assemblaggio potrebbe non essere un eseguibile, ma un modulo oggetto contenente parti disparate e non correlate di codice macchina e dati di programma, da cui (o da diversi moduli oggetto) può essere successivamente assemblato utilizzando un programma linker ("linker") file eseguibile.

Un debugger o debugger è un modulo dell'ambiente di sviluppo o un'applicazione separata progettata per trovare errori in un programma. Il debugger consente di eseguire il tracciamento passo passo, monitorare, impostare o modificare i valori delle variabili durante l'esecuzione del programma, impostare e rimuovere punti di interruzione o condizioni di arresto e così via.

Elenco dei debugger.

1) AQtime è un debugger commerciale per applicazioni create per le versioni .NET Framework 1.0, 1.1, 2.0, 3.0, 3.5 (incluse applicazioni ASP.NET), nonché per applicazioni Windows a 32 e 64 bit.

2) DTrace - framework di tracciamento dinamico per Solaris, OpenSolaris, FreeBSD, Mac OS X e QNX.

3) Recinto elettrico: debugger della memoria.

4) GNU Debugger (GDB) - un debugger di programmi dal progetto GNU.

5) IDA è un potente disassemblatore e debugger di basso livello per sistemi operativi Windows e Linux.

6) Microsoft Visual Studio: un ambiente di sviluppo software che include strumenti di debug di Microsoft.

7) OllyDbg è un debugger gratuito di basso livello per sistemi operativi Windows.

8) SoftICE è un debugger di basso livello per sistemi operativi della famiglia Windows.

9) Sun Studio - ambiente di sviluppo software, incluso il debugger dbx per i sistemi operativi Solaris e Linux, di Sun Microsystems Corporation.

10) Dott. Watson è un debugger standard di Windows che consente di creare dump della memoria.

11) TotalView è uno dei debugger commerciali per UNIX.

12) WinDbg è un debugger gratuito di Microsoft.

Il generatore di documentazione è un programma o pacchetto software che consente di ottenere documentazione destinata ai programmatori (documentazione API) e/o agli utenti finali del sistema, codice sorgente appositamente commentato e, in alcuni casi, moduli eseguibili (ottenuti in uscita del compilatore).

Tipicamente, il generatore analizza il codice sorgente del programma, evidenziando le strutture sintattiche corrispondenti agli oggetti significativi del programma (tipi, classi e loro membri/proprietà/metodi, procedure/funzioni, ecc.). L'analisi utilizza anche metainformazioni sugli oggetti del programma, presentate sotto forma di commenti documentativi. Sulla base di tutte le informazioni raccolte, viene generata la documentazione già pronta, solitamente in uno dei formati generalmente accettati: HTML, HTMLHelp, PDF, RTF e altri.

Documentare i commenti.

Un commento di documentazione è un commento con formato speciale su un oggetto programma destinato all'uso da parte di uno specifico generatore di documentazione. La sintassi dei costrutti utilizzati nella documentazione dei commenti dipende dal generatore di documentazione utilizzato.

I commenti di documentazione possono contenere informazioni sull'autore del codice, descrivere lo scopo dell'oggetto programma, il significato dei parametri di input e output per una funzione/procedura, esempi di utilizzo, possibili situazioni di eccezione e caratteristiche di implementazione.

I commenti di documentazione sono in genere formattati come commenti multilinea in stile C. In ogni caso il commento deve precedere l'elemento da documentare. Il primo carattere in un commento (e all'inizio delle righe di commento) deve essere *. I blocchi sono separati da righe vuote.

3. Visual Basic per le applicazioni

sistema operativo software

3.1 L'essenza di VisualBasic e la sua breve storia

Microsoft Visual Basic (VB) è uno strumento di sviluppo software sviluppato da Microsoft Corporation che include un linguaggio di programmazione e un ambiente di sviluppo. Il linguaggio Visual Basic ha ereditato lo spirito, lo stile e in parte la sintassi del suo antenato, il linguaggio BASIC, che ha molti dialetti. Allo stesso tempo, Visual Basic combina le procedure e gli elementi dei linguaggi di programmazione orientati agli oggetti e ai componenti. L'ambiente di sviluppo VB include strumenti per la progettazione visiva delle interfacce utente. (Vedi la tabella).

Visual Basic (funzionalità principali)

Visual Basic è considerato un buon strumento per sviluppare rapidamente prototipi di programmi, per sviluppare applicazioni di database e in generale per un metodo basato su componenti per creare programmi eseguiti su sistemi operativi della famiglia Microsoft Windows.

Nel processo di evoluzione, Visual Basic ha attraversato una serie di fasi successive che gli hanno permesso di diventare uno dei linguaggi di programmazione più popolari oggi. Quindi evoluzione VisualBasic è andato nel modo seguente:

1. Maggio 1991: viene rilasciato Visual Basic 1.0 per Microsoft Windows. La sintassi QBasic fu presa come base del linguaggio e l'innovazione che in seguito portò al linguaggio un'enorme popolarità fu il principio di connessione tra il linguaggio e l'interfaccia grafica.

2. Settembre 1992: viene rilasciato Visual Basic 1.0 per DOS. Non era completamente compatibile con la versione Windows di VB, poiché era una versione successiva di QuickBASIC e funzionava in modalità schermo basata su testo.

3. Novembre 1992: rilascio di Visual Basic 2.0. L'ambiente di sviluppo è diventato più facile da usare e più veloce.

4. nell'estate del 1993 - Visual Basic 3.0 fu rilasciato nelle versioni Standard e Professional. Inoltre, al pacchetto è stato aggiunto un motore per lavorare con i database di Access.

5. Agosto 1995 - Visual Basic 4.0 - una versione in grado di creare programmi Windows sia a 32 che a 16 bit.

6. Febbraio 1997 - Visual Basic 5.0: a partire da questa versione è diventato possibile, insieme alle normali applicazioni, sviluppare componenti COM.

7. A metà del 1998 fu rilasciato Visual Basic 6.0. Successivamente, Microsoft ha cambiato radicalmente la sua politica riguardo ai linguaggi Basic. Invece di sviluppare Visual Basic, è stato creato un linguaggio completamente nuovo, Visual Basic .NET.

8. Nel 2005 è stata rilasciata una nuova versione di Visual Basic, in bundle con Visual Studio. Era soddisfatta della nuova interfaccia e delle nuove funzionalità. Il linguaggio è basato su Visual Basic.NET.

9. Alla fine del 2007, Microsoft ha rilasciato una nuova versione di Visual Basic - Visual Basic 2008, anch'essa basata su Visual Basic.NET.

In base alla funzionalità e alle specifiche dell'applicazione, si possono distinguere i seguenti tipi di questo programma:

1. Visual Basic classico (versioni 5-6) Questo linguaggio è fortemente legato al suo ambiente di sviluppo e al sistema operativo Windows, essendo esclusivamente uno strumento per scrivere applicazioni Windows

2. VisualBasicforApplications (VBA) Si tratta di uno strumento di programmazione, praticamente non diverso dal classico Visual Basic, progettato per scrivere macro e altri programmi applicativi per applicazioni specifiche. Ha guadagnato la massima popolarità grazie al suo utilizzo nella suite Microsoft Office. L'uso diffuso di Visual Basic for Applications, combinato con un'iniziale mancanza di attenzione ai problemi di sicurezza, ha portato all'uso diffuso di virus macro.

3. VisualBasicScriptingEdition (VBScript) Un linguaggio di scripting, che è una versione un po' troncata del solito Visual Basic. Utilizzato principalmente per automatizzare l'amministrazione dei sistemi Windows, nonché per creare pagine ASP e script per Internet Explorer.

3.2 Interfaccia VisualBasicforApplication, principali funzioni e capacità

Creando VisualBasicforApplication, Microsoft Corporation si è posta come obiettivo principale la creazione di strumenti accessibili a utenti che non sono programmatori professionisti, ma allo stesso tempo sufficientemente qualificati per sviluppare e progettare programmi applicativi e applicazioni basati su Microsoft Office. È stato per risolvere questo problema che gli sviluppatori hanno creato VBA, dotandolo di una serie di funzionalità uniche. Uno di questi, il più prezioso per l'utente, è la possibilità di creare e utilizzare finestre di dialogo non standard (personalizzate) nei programmi aggiungendo un oggetto UserForm al progetto, nonché una comoda interfaccia utente.

L'interfaccia del programma VisualBasicforApplication è costituita da un insieme di varie finestre e schede utilizzate durante la progettazione dell'applicazione che si sta creando, le principali delle quali sono:

1) Finestra Progetto (Fig. 2), che visualizza la struttura del progetto creato.

2) la finestra Codice programma (Fig. 3), che visualizza il codice programma del progetto creato e consente di scrivere un programma in modo classico utilizzando l'editor di parole in codice integrato, di cui ce ne sono più di 16mila VBA. Questa finestra consente anche di modificare il codice e verificarne la presenza di errori.

3) la scheda Proprietà (Fig. 4), che visualizza i parametri impostati per l'oggetto specificato e consente di modificare le impostazioni specificate.

Spostandosi tra finestre e schede, l'utente può personalizzare facilmente il progetto creato.

Utilizzando i moduli VBA creati dall'utente, è possibile creare finestre di dialogo personalizzate per visualizzare dati o ricevere valori dall'utente del programma nel modo che meglio si adatta alle esigenze del programma. Ad esempio, puoi creare un test, visualizzare una finestra di dialogo per visualizzare domande a scelta multipla e consentire all'utente di selezionare una delle opzioni di risposta che ritiene corretta.

Le finestre di dialogo non standard consentono al programma di interagire con l'utente nel modo più complesso e forniscono una varia forma di input e output di dati.

Una finestra di dialogo personalizzata viene creata in VBA aggiungendo un oggetto UserForm al progetto. Questo oggetto rappresenta una finestra di dialogo vuota; ha una barra del titolo e un pulsante di chiusura, ma manca di altri controlli. Una finestra di dialogo personalizzata viene creata aggiungendo controlli a un oggetto UserForm e in genere viene chiamata semplicemente modulo (Figura 5).

Ogni oggetto UserForm dispone di proprietà, metodi ed eventi che eredita dalla classe di oggetti UserForm.

Ogni oggetto UserForm contiene anche un modulo di classe in cui l'utente aggiunge i propri metodi e proprietà o scrive procedure di gestione degli eventi per un determinato modulo.

La possibilità di creare la propria interfaccia, indipendente dall'ambiente applicativo, come Excel, utilizzando moduli di visualizzazione è una delle funzionalità più preziose di VBA.

Le videate sono finestre di vario scopo e tipologia create dall'utente per la sua applicazione. Contengono controlli che consentono all'utente di scambiare informazioni con l'applicazione.

VBA utilizza il design grafico creato del modulo - con le impostazioni per le proprietà e i controlli del modulo - per ottenere tutte le informazioni necessarie per visualizzare la finestra di dialogo: le dimensioni della finestra di dialogo, i controlli in essa contenuti, ecc. Di conseguenza, VBA consente di visualizzare un modulo di finestra di dialogo con una singola istruzione.

Per visualizzare una finestra di dialogo personalizzata, utilizzare il metodo Show dell'oggetto UserForm. Se il modulo non è attualmente caricato in memoria, il metodo Show carica il modulo e lo visualizza. Se il modulo è già caricato, il metodo Show lo visualizza semplicemente.

La visualizzazione di una singola finestra di dialogo in genere non è sufficiente per completare un'attività. Quasi sempre si desidera determinare lo stato dei controlli di una finestra di dialogo per scoprire quali dati o opzioni ha selezionato l'utente. Ad esempio, se una finestra di dialogo viene utilizzata per ottenere informazioni dall'utente su quali colonne e righe deve essere ordinato un foglio di lavoro, è necessario essere in grado di scoprire quali valori l'utente ha immesso dopo la chiusura della finestra di dialogo e prima inizia effettivamente l'operazione di ordinazione.

In altri casi, potresti voler modificare dinamicamente i titoli dei pulsanti (o altri controlli) in una finestra di dialogo, aggiornare dinamicamente un'etichetta o un campo associato a un contatore o convalidare dinamicamente i dati immessi in una finestra di dialogo.

In VBA diventa possibile espandere in modo significativo l'insieme di funzioni integrate in un'applicazione standard, come Microsoft Excel, nonché creare funzioni i cui valori dipendono da determinate condizioni ed eventi.

VBA consente di programmare le funzioni della tabella. Per creare un foglio di lavoro separato per un modulo di programma, utilizzare la scheda Inserisci modulo dal menu Visuale e il comando Modulo dal menu Inserisci macro. Successivamente apparirà un nuovo foglio di lavoro "Modele1". In un modulo di programma è necessario descrivere una funzione in VBA. Puoi lavorare nella finestra del modulo del programma come se fossi in una piccola finestra di editor di testo.

L'incorporamento delle funzioni viene effettuato dal comando Visualizzatore oggetti dal menu Visualizza. Le funzioni definite dall'utente vengono trattate come oggetti indipendenti nel programma. VBA ha una serie significativa di funzioni integrate, suddividendole in tipi.

Visual Basic consente di riservare variabili, con o senza dimensione, lavorare con vari tipi di dati, utilizzare costanti, lavorare con operatori e funzioni matematici e utilizzare operatori aggiuntivi. Viene fornito l'uso degli operatori di loop For Next, Do e oggetti del tipo "timer" (un cronometro invisibile nel programma). La precisione dell'impostazione dell'ora nel programma è di 1 millisecondo o 1/1000 di secondo. Il timer avviato è costantemente in funzione, ad es. la corrispondente procedura di gestione degli interrupt viene eseguita a un intervallo di tempo specificato, finché l'utente non arresta il timer o disabilita il programma.

In VBA è possibile impostare qualsiasi proprietà per un modulo, inclusi titolo, dimensione, tipo di bordo, colori di sfondo e carattere, carattere del testo e immagine di sfondo.

Se riassumiamo tutte le funzioni del programma, Visual Basic forApplication ti consente di:

1) lavorare con i controlli

Vantaggi :

1. Alta velocità di creazione di applicazioni con interfaccia grafica per MS Windows.

2. Sintassi semplice che ti consente di padroneggiare la lingua molto rapidamente.

3. Possibilità di compilazione sia in codice macchina che in codice P (a scelta del programmatore). In modalità debug, il programma è sempre (indipendentemente dalla scelta) compilato in codice P, che consente di mettere in pausa il programma, apportare modifiche significative al codice sorgente e quindi continuare l'esecuzione senza la necessità di una ricompilazione completa e di un riavvio del programma. .

4. Protezione contro gli errori associati all'uso dei puntatori e all'accesso alla memoria. Questo aspetto rende le applicazioni Visual Basic più stabili, ma è anche oggetto di critiche.

5. Possibilità di utilizzare la maggior parte delle funzioni WinAPI per espandere le funzionalità dell'applicazione. Questo problema è stato studiato in modo più approfondito da Dan Appleman, che ha scritto il libro "Visual Basic Programmer's Guide to the Win32 API".

Critica :

1. Gli aspetti di Visual Basic sono spesso criticati, come la capacità di disabilitare il tracciamento delle variabili dichiarate, la capacità di convertire implicitamente le variabili e la presenza del tipo di dati “Variant”. Secondo i critici, ciò rende possibile scrivere codice estremamente pessimo. D'altra parte, questo può essere considerato un vantaggio, poiché VB non impone un “buon stile”, ma dà più libertà al programmatore.

2. Mancanza di puntatori, accesso alla memoria di basso livello, inserti ASM. Nonostante il paradigma Visual Basic permetta al programmatore VB medio di fare a meno di tutto ciò, anche queste cose diventano spesso oggetto di critica. E sebbene, utilizzando funzionalità non documentate e alcuni trucchi, tutto ciò possa essere implementato in VB (ad esempio, utilizzando funzioni per ottenere puntatori VarPtr(), StrPtr() e ObjPtr()); Usare questi trucchi è molto più difficile che, ad esempio, in C++.

Tuttavia, vale la pena notare che tutti gli svantaggi del linguaggio derivano dal suo vantaggio principale: la facilità di sviluppare un'interfaccia grafica. Pertanto, molti programmatori utilizzano Visual Basic per sviluppare l'interfaccia utente e implementare la funzionalità del programma sotto forma di librerie a collegamento dinamico (DLL) scritte in un altro linguaggio (molto spesso C++).

4. Parte pratica

4.1 Dichiarazione del problema

Disegna uno schema a blocchi e scrivi un programma in Pascal. Calcolare il valore intrinseco dei titoli. Il valore intrinseco di un bene è determinato dal futuro flusso di reddito derivante da quel bene.

pv – valore intrinseco attuale del titolo

c – ricavo atteso dal bene in questione

r – tasso di rendimento atteso dall'investitore per il reddito con il corrispondente livello di rischio

n – fattore tempo (in mesi).

Esegui analisi di mercato e ordina i risultati in ordine crescente rispetto ai dati ottenuti.

4.2 Testo del programma in linguaggio Pascal

pv: array di reali;

writeLn('Inserisci l'incasso previsto dal ',i,'esimo bene c:');

writeLn('Inserisci il tasso di rendimento atteso dall'investitore r:');

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

writeLn('il valore intrinseco attuale dell'asset è', pv[i]:1:3);

writeLn('Il valore intrinseco del bene è', s);

per j:=da 1 a 4 do

se pv[j] > pv allora

writeLn('Valore del bene ordinato in ordine crescente');

per i:=da 1 a 5 fai

scriviLn(pv[i]:1:3);

4.3 Caso di prova

4.4 Risultato dell'esecuzione del programma su un esempio di test

Conclusione

Quindi, riassumendo tutto quanto sopra, va notato che il software dello strumento è uno dei tipi di software, con i suoi compiti e funzioni generali.

Tuttavia, essendo un tipo di software altamente specializzato, dispone di un certo insieme di proprietà e funzioni uniche che forniscono soluzioni ai suoi problemi specifici.

È necessario notare la tendenza emergente verso la semplificazione del processo di programmazione e la creazione di una certa sottoclasse: programmazione semi-professionale per scopi applicati.

Questo è ciò che consentirà a un utente esperto di computer, ma non a un programmatore professionista, di creare alcune applicazioni e piccoli file eseguibili nell'ambiente Microsoft Office, utilizzati principalmente per scopi contabili e per il flusso di documenti nelle piccole aziende.

È a questo scopo che Microsoft ha sviluppato il pacchetto software VisualBasicforApplication, che semplifica il processo di programmazione e consente agli utenti, piuttosto che ai programmatori, di impegnarsi nella programmazione delle applicazioni. Questa funzionalità è stata implementata principalmente creando una sezione del programma: "Script Editor" e la possibilità di registrare ed eseguire "Macro" come un tipo separato di moduli graficamente programmabili. È stata implementata la possibilità di creare applicazioni con interfaccia grafica per MS Windows. Un altro vantaggio di questo tipo di software è la sua sintassi semplice, che consente di padroneggiare rapidamente la lingua e di utilizzarla per la programmazione in tutte le applicazioni standard di Microsoft Office.

Pertanto, è difficile sopravvalutare l'importanza degli strumenti in generale, e di VisualBasicforApplication in particolare, sebbene esistano anche i difetti, come menzionato sopra. Ma questi non sono nemmeno aspetti negativi del prodotto, ma piuttosto linee guida per un ulteriore miglioramento del software sotto forma di VisualBasicforApplication.

1. Linguaggi algoritmici in tempo reale / Ed. Yanga S. / 2004

2. PC Magazine Edizione russa n. 2 2008 L'informatica oggi.

3. Informatica. /Ed. Mogilev A.V., Pak N.I., Henner E.K./ - M.: ACADEMIA, 2000.

4. Informatica e tecnologia dell'informazione: libro di testo / Ed. Romanova D.Yu. / Casa editrice Eksmo LLC, 2007.

5. L'ultima enciclopedia del personal computer / Ed. Leontyeva V. /Mosca, 1999. – 271 pag.

6. Nuovi linguaggi di programmazione e tendenze nel loro sviluppo / Ed. Ushkova V. / 2001

7. Pedagogia / Ed. Pidkasistogo P.I./ – M.: Società Pedagogica Russia, 2000.

8. Programmazione per Microsoft Excel 2000 in 21 giorni. /Ed. Kharisa M./ – M.: Williams, 2000.

9. Simonovich S. Informatica: corso base. Manuale per le università. San Pietroburgo, Pietro, 2002

10. Nessun problema con Excel 2000. /Ed. Kowalski/ – M.: Binom, 2000.

11. "Lavoro efficace in Windows 98" / Ed. Stinson K. / 2000. – 247 pag.

12. Linguaggi di programmazione. libro 5/Ed. Vaulina AS / 2003

13. Linguaggi di programmazione: sviluppo e implementazione / Ed. Terrence P. / 2001

14. Libro di testo elettronico di informatica. Alekseev E.G. http://www.stf.mrsu.ru/economic/lib/Informatics/text/Progr.html\

La tecnologia di programmazione in generale e gli strumenti di supporto allo sviluppo software in particolare si stanno evolvendo così rapidamente che anche il semplice elenco dei principali sistemi di strumenti occuperebbe troppo spazio in questo libro. Ecco perché di seguito ci soffermeremo brevemente solo su alcuni progetti nel campo della tecnologia di programmazione che sono interessanti nel contesto di questa pubblicazione.

Qualsiasi sistema tecnologico sviluppato deve supportare tutte le fasi principali della creazione del pacchetto software progettato. Per raggiungere questo obiettivo in una struttura complessiva tipico sistema di supporto allo sviluppo tecnologico(Fig. 6.3) sono solitamente isolati banca dati del progetto; progettazione e programmazione del sottosistema di automazione; debugging, documentazione e sottosistemi di manutenzione, UN anche un sottosistema per la gestione dello stato di avanzamento del progetto.


Riso. 6.3. Struttura generale di un tipico sistema di supporto allo sviluppo tecnologico

I sistemi di supporto allo sviluppo delle librerie sviluppati sono attualmente utilizzati in tutto il mondo in tutti i progetti software seri. Ma nella stragrande maggioranza dei casi tali sistemi hanno raggiunto il livello di facilità d'uso per programmatori qualificati. Siamo interessati principalmente a sistemi e progetti che tendono a rappresentare esplicitamente la conoscenza tecnologica, anche se non sono basati su idee e metodi di intelligenza artificiale.

Uno di questi progetti, Gandalf, è focalizzato sulla generazione automatizzata di sistemi di sviluppo software. La ricerca condotta nell'ambito del progetto Gandalf riguarda tre aspetti del supporto alla progettazione del software: gestione del progetto, controllo della versione e programmazione incrementale, nonché la loro integrazione in un unico ambiente. La gestione in ambiente Gandalf si basa sul presupposto che il progetto in fase di sviluppo debba essere trattato come un insieme di tipi di dati astratti su cui è possibile eseguire solo determinate operazioni. Lo strumento che implementa questo concetto è stato il sistema SDC (Software Development Control), ovvero un insieme di programmi inizialmente implementati nel linguaggio Shell sul sistema UNIX e successivamente tradotti nel linguaggio C.

La ricerca nel campo del controllo delle versioni è stata avviata da L. Kooprider sulla base del progetto FAFOS, in cui inizialmente sono state analizzate le possibilità di creare una famiglia di sistemi operativi. È stata sviluppata una notazione per descrivere l'interazione tra sottosistemi, per descrivere diverse versioni di sottosistemi (codice sorgente e oggetto, documentazione, ecc.) e per descrivere i meccanismi che operano nella fase di sviluppo (compilazione, modifica dei collegamenti, ecc.). Successivamente è stato creato un linguaggio speciale, Intercol, come mezzo per descrivere la relazione e le versioni dei moduli nel sistema. E infine, la conoscenza di come costruire un sistema partendo da parti è stata integrata nel sistema senza costringere l'utente a farlo. Come seguito a questo lavoro, SUCE è stato creato per tracciare le differenze tra implementazioni (versioni che effettivamente forniscono codice per una serie di specifiche) e composizioni (versioni che definiscono nuovi sottosistemi come gruppi di sottosistemi esistenti).



Nel sistema LOIPE (Language-Oriented Incremental Programming Environment), la compilazione incrementale viene eseguita a livello di una singola procedura. Il vantaggio di questo approccio è che quando una procedura viene corretta a livello di oggetti o tipi locali, solo quella procedura viene ricompilata. Se la specifica cambia, tutte le procedure che dipendono da essa vengono ricompilate. L'interfaccia utente con il sistema LOIPE si basa sul sottosistema di editing orientato alla sintassi ALOE (A Language-Oriented Editor). Lo scopo dello sviluppo di questo sottosistema era studiare la possibilità di creare e utilizzare editor orientati alla sintassi come base per ambienti di programmazione.

Dall’analisi della letteratura degli ultimi anni sulle tecnologie di programmazione emerge che si sta delineando un nuovo ramo nella tecnologia dello sviluppo industriale e dell’implementazione di sistemi software complessi e significativi. Tecnologia CASE(Computer Aided Software Engineering).

Inizialmente, la tecnologia CASE è apparsa in progetti per la creazione di sistemi di elaborazione dati industriali. Questa circostanza ha lasciato il segno sugli strumenti tecnologici CASE, dove l'attenzione più seria è stata prestata, almeno nei primi sistemi CASE, al supporto della progettazione dei flussi di informazioni. Attualmente l’attenzione si sta allontanando dai sistemi di elaborazione dati e gli strumenti tecnologici CASE stanno diventando sempre più versatili.

Tutti gli strumenti di supporto tecnologico CASE si dividono in due grandi gruppi: Kit di strumenti CASE E Banchi da lavoro CASE. Non esistono buoni equivalenti russi per questi termini. Tuttavia, i primi sono spesso chiamati “casse degli attrezzi” (pacchetti per sviluppatori, pacchetti tecnologici), mentre i secondi sono “macchine per la produzione di software” (linee di produzione).

A-prior Kit di strumenti CASE - una raccolta di strumenti software integrati che forniscono assistenza automatica nella risoluzione di problemi dello stesso tipo nel processo di creazione dei programmi.

Tali pacchetti utilizzano un “repository” comune per tutte le informazioni tecniche e gestionali del progetto (repository), sono dotati di un'interfaccia utente comune e di un'interfaccia unificata tra i singoli strumenti del pacchetto. Tipicamente, CASE-Toolkit è incentrato sul supporto dello sviluppo di una fase di produzione del programma o di un tipo di problema applicativo.

Tutto quanto sopra vale anche per CASE-WorkBench. Ma qui, inoltre, viene fornito un supporto automatizzato per l'analisi delle attività di produzione del software da risolvere, che si basa su presupposti generali sul processo e sulla tecnologia di tali attività; è supportato il trasferimento automatico dei risultati del lavoro da una fase all'altra, a partire dalla fase di progettazione e termina con lo smaltimento del prodotto software creato e la sua manutenzione.

Così, CASE-WorkBenchè una naturale “chiusura” della tecnologia per lo sviluppo, l’implementazione e la manutenzione del software.

Attualmente, un “tipico” sistema di supporto della tecnologia CASE ha la funzionalità mostrata in Fig. 6.4.

Riso. 6.4. Funzionalità di un tipico sistema di supporto tecnologico CASE

Come segue da questo diagramma ad H, l'ambiente CASE deve supportare tutte le principali fasi di sviluppo e manutenzione dei processi di creazione dei sistemi software. Tuttavia, il livello di tale sostegno varia in modo significativo. Ad esempio, se parliamo delle fasi di analisi e progettazione, la maggior parte dei pacchetti di strumenti supporta moduli di visualizzazione e reporting, prototipazione e rilevamento degli errori. Una parte significativa di questi fondi è destinata ai PC. Molti supportano metodologie ampiamente utilizzate come l'analisi strutturale DeMarco o Gane/Sarson, la progettazione strutturale Yourdan/Jackson e molte altre. Esistono pacchetti di sviluppo specializzati per la creazione di sistemi informativi, ad esempio Ana Tool (Advanced Logical Software) per Macintosh; CA-Universe/Prototype (Computer Associates International) per PC. Esistono ambienti CASE per supportare lo sviluppo di sistemi in tempo reale.

Tra gli sviluppatori di software, ci sono due valutazioni di questo approccio: alcuni credono che la tecnologia CASE cambi radicalmente i processi di sviluppo e funzionamento del software, altri lo negano e lasciano agli strumenti CASE solo la funzione di automatizzare il lavoro di routine. Tuttavia, un’analisi della letteratura mostra che gli strumenti CASE continuano a “spostare” le tecnologie di sviluppo software dalla gestione dei progetti verso il metodo di prototipazione. E questo cambiamento, a nostro avviso, è una tendenza estremamente importante nella moderna tecnologia di programmazione.

Pubblicazioni sull'argomento