internetul Windows. Android

Justificarea alegerii mijloacelor și a mediului de dezvoltare a software-ului. CPU Sisteme de management automatizate și siguranță industrială

Mediul de dezvoltare integrat (IPR) este un sistem de instrumente software utilizat de programatori de dezvoltare. software.. ÎN limba engleza Acest mediu se numește mediu integrat de dezvoltare sau abreviat IDE.

DPI include de obicei un editor de text, compilator, un interpret, dezvoltare de software și asamblare și debugger. Uneori conține, de asemenea, instrumente pentru integrarea cu sistemele de control al versiunii și o varietate de instrumente pentru a simplifica designul interfeței grafice de utilizator. Multe medii de dezvoltare moderne includ ferestrele claselor programate, inspectorul de obiecte și diagrama ierarhiei clasei - pentru utilizarea în dezvoltarea de software orientată pe obiecte. Cele mai moderne isRS sunt concepute pentru a dezvolta programe în mai multe limbi de programare în același timp.

Unul dintre cazurile speciale ale mediului de dezvoltare vizuală de dezvoltare vizuală, care include posibilitatea editării vizuale a interfeței programului.

Fereastra principală este editorul de text utilizat pentru a intra cod sursa În IPR și axat pe lucrul cu o secvență de caractere în fișiere text. Astfel de editori oferă funcționalitate avansată - evidențierea sintaxei, a șirurilor de sortare, a modelelor, a conversiei de codare, a codurilor de simboluri etc. Uneori sunt numite editori de coduri, deoarece scopul principal este de a scrie codul sursă al programelor de calculator.

Sincronizarea sintaxei este evidențiază modele de text sintactice folosind diferite culori, fonturi și modele. De obicei, aplicate în editorii de text pentru a facilita citirea textului sursă, îmbunătățirea percepției vizuale. Acesta este adesea folosit la publicarea codului sursă pe Internet.

Conceptul de difuzare, compilator și interpret a fost dat în prelegerile anterioare.

Una dintre cele mai piese importante ISR - Debugger, care este un modul de mediu de dezvoltare sau o aplicație separată concepută pentru a căuta erori în program. Debuggerul vă permite să efectuați trasarea, urmăriți, instalați sau modificați valorile variabilelor în timpul executării programului, instalarea și ștergerea punctelor de control sau a condițiilor de oprire etc.

Cele mai frecvente debugri sunt:

- GNU Debugger - programe de depanare din proiectul GNU;

- IDA - dezasamblare și debugger la nivel scăzut pentru sistemele de operare familială Windows și GNU / Linux;

- Microsoft. Studio vizual. - Mediul de dezvoltare a software-ului, inclusiv fondurile de depanare de la Microsoft;

- Ollydbg este un depanator gratuit de nivel scăzut pentru sistemele de operare Windows;

- Softice - Debugger la nivel scăzut pentru sistemele de operare Windows;

- Dr. Watson - Debuggerul Windows standard vă permite să creați haldele de memorie;

- WindBG este un debugger gratuit de la Microsoft.

Procesul principal de depanare este următorul. Urmărirea este un proces de execuție a programului pas cu pas. În modul TRACE, programatorul vede secvența de execuție a comenzilor și valorile variabilelor la acest pas de program, ceea ce facilitează detectarea erorilor. Urmărirea poate fi pornită și sa încheiat oriunde în program, execuția programului se poate opri pe fiecare comandă sau pe punctele de oprire, urmărind poate fi efectuată la procedură / funcție și fără a vizita.

Cel mai important modul IPR cu dezvoltarea comună a proiectelor de complexitate medie și înaltă este sistemul de management al versiilor. Sistemul de control al versiunii (CV-urile abreviere în limba engleză) - Software pentru a facilita lucrul cu informații în schimbare. Vă permite să stocați câteva versiuni ale aceluiași document, dacă este necesar, să reveniți la versiunile anterioare, să determinați cine și când ați făcut una sau o altă schimbare și multe altele.

Astfel de sisteme sunt cele mai utilizate la elaborarea software-ului, pentru a stoca codul sursă al programului dezvoltat. Cu toate acestea, ele pot fi aplicate cu succes în alte domenii în care lucrarea este în curs de desfășurare cu un număr mare de documente electronice în continuă schimbare, în special, acestea sunt utilizate din ce în ce mai mult în CAD, de obicei ca parte a sistemelor de management al produselor. Gestionarea versiunilor utilizate în instrumentele de gestionare a configurației diferite dispozitive și sisteme.

În țara noastră, este posibil datorită numărului mic de proiecte la scară largă, sistemele de control al versiunilor nu au primit distribuție, în ciuda faptului că utilizarea lor este cheia implementării cu succes a proiectelor mari. În acest sens, ne vom concentra mai mult pe această caracteristică a DPI.

Majoritatea sistemelor de control al versiunilor utilizează un model centralizat atunci când există un singur depozit de documente gestionat de un server special, care efectuează majoritatea caracteristicilor de gestionare a versiunilor. Utilizatorul care lucrează cu documente trebuie să obțină mai întâi versiunea documentului din depozitul de care aveți nevoie; O copie locală a documentului este creată, de obicei, așa-numitul "flux de lucru". Ultima versiune sau oricare dintre versiunile sau data de creație selectată anterior pot fi obținute, uneori pentru alte caracteristici. După efectuarea modificărilor necesare la document, noua versiune este plasată în depozit. Spre deosebire de fișierul simplu de salvare, versiunea anterioară nu este ștersă, și rămâne și în depozit și poate fi obținută de acolo în orice moment. Serverul poate utiliza compresia Delta - o metodă pentru stocarea documentelor în care sunt salvate numai modificările dintre versiunile seriale, ceea ce reduce volumul datelor stocate.

Uneori, crearea unei noi versiuni este efectuată imperceptibil pentru utilizator (transparent) - fie utilizând un program de aplicație care are suport încorporat pentru o astfel de funcție sau prin utilizarea unui specială sistemul de fișiere. În acest din urmă caz, utilizatorul funcționează doar cu un fișier ca de obicei, iar la salvarea fișierului, o nouă versiune este creată automat.

Se întâmplă adesea că mai mulți oameni lucrează la un proiect în același timp. Dacă doi oameni schimbă același fișier, atunci unul dintre ei poate anula accidental modificările făcute de alții. Sistemele de control al versiunii Urmăriți astfel de conflicte și oferă instrumente pentru a le rezolva. Majoritatea sistemelor pot combina automat schimbările făcute de diferite dezvoltatori. Cu toate acestea, o astfel de asociere automată de modificări este, de obicei, numai pentru fișierele text și apoi, numai dacă a schimbat diferite părți (locuite) ale acestui fișier. O astfel de restricție se datorează faptului că majoritatea sistemelor de gestionare a versiunilor se concentrează pe susținerea procesului de dezvoltare a software-ului, iar codurile programului sursă sunt stocate în fișiere text. Dacă asociația automată a eșuat, sistemul poate sugera rezolvarea manuală a problemei.

Adesea, îmbinarea nu poate fi configurată în modul automat, nici în modul manual, de exemplu, dacă formatul de fișier este prea complicat sau necunoscut deloc. Unele sisteme de control al versiunilor fac posibilă blocarea fișierului în depozit. Blocarea nu permite altor utilizatori să obțină o copie de lucru sau să împiedice modificarea unei copii de lucru a fișierului (de exemplu, instrumentele de sistem de fișiere) și astfel asigură accesul în mod excepțional la utilizatorul care lucrează cu documentul.

Alte caracteristici ale sistemului de management al versiilor constau:

În crearea diferitelor variante ale unui document-ramură, cu o istorie generală de modificări ale punctului de ramură și cu lucruri diferite după el.

Jurnalul Management în care utilizatorii pot înregistra explicații despre ce și de ce s-au schimbat în această versiune;

Controlează drepturile de acces ale utilizatorilor, rezolvând sau interzice modificarea citirii sau a datelor în funcție de cine solicită această acțiune.

O clasă separată este distribuită sisteme de control al versiunilor. Astfel de sisteme utilizează un model distribuit în locul unui client tradițional. În general, nu au nevoie de un depozit centralizat: întreaga istorie a modificărilor la documente este stocată pe fiecare computer, în stocarea locală și, dacă este necesar, fragmentele individuale ale istoriei depozitării locale sunt sincronizate cu spațiul de stocare similar un alt computer. În unele astfel de sisteme, stocarea locală este situată direct în directoarele de copiere de lucru.

Când utilizatorul unui astfel de sistem efectuează acțiuni obișnuite, cum ar fi recuperarea unei versiuni specifice a documentului, crearea unei noi versiuni și altele asemenea, acesta funcționează cu copia depozitabilă locală. Pe măsură ce se fac schimbările de stocare aparținând dezvoltatorilor diferiți, încep să difere și este nevoie de sincronizare. O astfel de sincronizare poate fi efectuată prin partajarea patch-urilor sau așa-numitele seturi de schimbări (Eng. Seturi de schimbări) între utilizatori.

Principalul avantaj al sistemelor distribuite este flexibilitatea lor. Fiecare dezvoltator poate lucra independent, deoarece este convenabil pentru aceasta, păstrând documentele intermediare și transmiterea rezultatelor altor participanți atunci când consideră că este necesar. În acest caz, seturile de schimbări de schimbare poate fi efectuată de către diferite scheme. În grupuri mici, participanții la locul de muncă pot face schimb de schimbări asupra principiului "fiecare cu fiecare", datorită căreia nu este nevoie să creați un server dedicat. O comunitate mare, dimpotrivă, poate folosi un server centralizat cu care sunt sincronizate copii ale tuturor participanților săi. Opțiuni mai complexe sunt, de asemenea, posibile, de exemplu, cu crearea de grupuri pentru muncă în anumite zone într-un proiect mai mare.

Pentru a utiliza sistemele de control al versiunii, este necesar să se contureze terminologia acestor sisteme. Nu există o terminologie general acceptată, diverse nume pot fi utilizate în diferite sisteme pentru aceleași acțiuni.

Mai jos sunt unele dintre cele mai frecvent utilizate opțiuni. Datorită faptului că sistemele au fost dezvoltate de comunitatea în limba engleză, iar terminologia vorbitorilor ruși au fost încă dezvoltați, sunt utilizați termeni englezi.

sucursala (sucursala) - direcția de dezvoltare, independentă de alții. Filiala este o copie a părții (de regulă, a unui director) al depozitului, care poate fi făcut din schimbări care nu afectează alte ramuri. Documentele din diferite ramuri au aceeași poveste la punctul de ramură și diferit - după el.

check-in, Commit, Trimite - Crearea unei noi versiuni, publicați modificări. Distribuiți modificările efectuate într-o copie de lucru în depozitul documentului. În același timp, depozitul creează o nouă versiune a documentelor modificate.

C. heck-out, clona - extragerea unui document din depozit și crearea unei copii de lucru.

C. oRICE - O situație de conflict când mai mulți utilizatori au făcut modificări în aceeași zonă a documentului. Conflictul este detectat în cazul în care un utilizator și-a publicat deja schimbările, iar al doilea încearcă doar să le publice, iar sistemul în sine nu poate scurge corect schimbările conflictuale. Deoarece programul nu poate fi suficient de rezonabil pentru a determina ce schimbare este "corectă", al doilea utilizator trebuie să rezolve conflictul (hotărâre).

M. erge, integrare (fuziune) - combinarea modificărilor independente într-o singură versiune a documentului. Se efectuează atunci când doi oameni au schimbat același fișier sau când se transferă schimbări de la o sucursală la alta.

R. epository - Un loc în care sistemul de management al versiunii stochează toate documentele împreună cu istoria schimbării lor și a altor informații despre serviciu.

R. evision. Sistemele de control al versiunii disting versiunile versiunii care sunt atribuite automat.

T. aG, Etichetă (etichetă) - care poate fi atribuită o versiune specifică a documentului. Eticheta este un nume simbolic pentru un grup de documente și descrie nu numai setul de nume de fișiere, ci și revizuirea fiecărui fișier. Revizuirile incluse în eticheta documentelor pot aparține unor momente diferite de timp.

T. runk, linia principală (trunk) este principala ramură a dezvoltării proiectului. Politica de lucru cu trunchiul poate diferi de proiect la proiect, dar, în general, este după cum urmează: Cele mai multe modificări sunt făcute în cilindru; Dacă este necesară o schimbare serioasă, capabilă să ducă la instabilitate, se creează o ramură, care se îmbină cu cilindrul atunci când inovația este suficient de testată; Înainte de eliberarea următoarei versiuni, se creează o ramură "de eliberare" în care se fac numai corecțiile.

U. pDate, sincronizare (actualizare, sincronizare) - sincronizarea copiei de lucru într-o anumită stare specifică a depozitului. Cel mai adesea, această acțiune înseamnă actualizarea unei copii de lucru în starea de stocare foarte proastă. Cu toate acestea, dacă este necesar, puteți sincroniza o copie de lucru și la o stare mai veche decât cea curentă.

W. orking Copie (copie de lucru) - Copie de lucru (locală) a documentelor.

Luați în considerare posibilitățile DPI privind exemplul celor mai accesibile și mai populare versiuni.

Eclipse (din engleză. Eclipse) este un mediu de dezvoltare integrat gratuit pentru aplicațiile transversale modulare (Figura 69). Dezvoltat și susținut de Organizația non-profit Eclipse Foundation (http://www.eclipse.org/).

Inițial, Eclipse a fost dezvoltat de IBM ca un standard al IPR corporativ pentru a se dezvolta limbi diferite sub platforme de la această companie. Potrivit IBM, proiectarea și dezvoltarea costă 40 de milioane de dolari. Codul sursă a fost complet deschis și pus la dispoziție după ce Eclipse a fost transferat în dezvoltarea ulterioară a Comunității Independente IBM.

Cadrul OSGI și SWT / JFace se bazează pe Eclipse, pe baza următorului strat - RCP (platformă de client bogat, platformă pentru dezvoltarea aplicațiilor client cu drepturi depline). RCP servește drept bază nu numai pentru Eclipse, ci și pentru alte aplicații RCP, cum ar fi Azureus și Aranger de fișiere. Următorul strat este eclipsa în sine, care este un set de extensii RCP: editori, panouri, prospecți, modulul CVS și modulul Instrumente de Dezvoltare Java (JDT).

Eclipse - În primul rând, un Java Full JaCr, care vizează dezvoltarea grupului: Suportul CVS este inclus în furnizarea de Eclipse, mai multe module SVN se dezvoltă în mod activ, există sprijin pentru VSS și altele. În virtutea liberei și de înaltă calitate, Eclipse în multe organizații este un standard corporativ pentru dezvoltarea de aplicații.

Al doilea scop al Eclipse este de a servi ca o platformă pentru dezvoltarea de noi extensii decât a câștigat popularitate: orice dezvoltator poate extinde eclipsa cu modulele sale. Există deja instrumente de dezvoltare C / C ++ (CDT) dezvoltate de inginerii QNX cu "IBM", iar mijloacele pentru Cobol, Fortran, PHP Limbi și altele de la diverși dezvoltatori. Multe extensii completează miercuri Eclipse de către managerii de a lucra cu baze de date, servere de aplicații etc.

Figura 69. . Interfața fereastră principală Eclipse

Eclipse este scrisă în Java, prin urmare este un produs independent de platformă, cu excepția bibliotecii SWT, care este dezvoltată pentru toate platformele comune. Biblioteca SWT este utilizată în locul unei biblioteci standard de leagăn pentru Java. Se bazează complet pe platforma subiacentă (sistemul de operare), care oferă viteză și naturală aspect Interfața utilizator, dar uneori cauzează compatibilitatea și durabilitatea aplicațiilor pe diferite platforme.

Baza Eclipse este platforma de clienți extinsă (RCP de la engleză. Platformă de clienți bogată). Componentele sale:

OSGI (set standard de provizii de seturi (eng. Pachete));

SWT (set de instrumente widget portabil);

JFACE (tampoane de fișiere, care lucrează cu text, editori de text);

Mediul de lucru Eclipse (panouri, editori, proiecții, maeștri).

Un alt ISR popular gratuit este KDevelop (http://www.kdevelop.org, fig.70). KDevelop (eng. Kdevelop) - Mediu de dezvoltare a software-ului gratuit pentru sistemele de operare similare UNIX. Proiectul a început în 1998. KDevelop se aplică în conformitate cu licența GNU (licență publică generală).

Figura 70. Interfața kdevelop

KDevelop nu include compilatorul, în schimb, utilizează orice compilator pentru a crea un cod executabil.

Versiunea stabilă actuală acceptă un numar mare de Limbi de programare, cum ar fi Iadul, Bash, C, C ++, Fortran, Java, Pascal, Perl, PHP, Python, Ruby și SQL.

CDevelopul utilizează componenta încorporată - un editor de text - prin tehnologia KPARTS. Editorul principal este Kate.

FUNCȚII KDEWELOP:

Iluminarea codului sursă, luând în considerare sintaxa limbii de programare utilizate, care este determinată automat;

Manager de proiect pentru proiecte de diferite tipuri, cum ar fi automake, qmake pentru proiecte bazate pe tehnologii QT și Ant pentru proiecte bazate pe Java;

Clasa Navigator (browser de clasă);

Front-end pentru colectarea compilatorului GNU;

Front-end pentru Debugger GNU;

Ajutoare pentru generarea și actualizarea claselor și a platformei (cadrul);

Sistem automat de finalizare a codului (SI / C ++);

Suport încorporat pentru sistemul de documentare a codului sursă (DoxyGen);

Unul dintre versiunile Sisteme de control: CSM, CVS, subversiune, Performă și Clearcase;

Funcția de deschidere rapidă vă permite să navigați rapid prin fișiere.

Kdevelop. Este o arhitectură "plug-in". Când dezvoltatorul face schimbări, ar trebui să compileze doar pluginul. Este posibil să se salveze profilurile care indică ce pluginuri trebuie încărcate.Kdevelop. Nu este furnizat împreună cu încorporarea editor de text, Este conectat ca un plugin.Kdevelop. Nu depinde de limba de programare și de platforma pe care pornește, susținând KDE, GNOME și multe alte tehnologii (de exemplu, QT, GTK + și WXWIDGETS).

Debugger încorporatKdevelop. Vă permite să lucrați grafic cu toate instrumentele de depanare, cum ar fi punctele de întrerupere și urme. De asemenea, poate funcționa cu pluginuri dinamic de încărcare, spre deosebire de GDB consola.

În prezent există aproximativ 50 până la 100 plug-in-uri pentru acest IDE. Printre marcajele de coduri de proiect cele mai utile, abrevierile de cod, permițându-vă să implementați rapid textul, formatorul de sursă, care reformat text pentru salvare, căutare pentru expresii regulate și căutare / înlocuire la nivel de proiect.

Ultimul ICR esteMicrosoft Visual Studio. (Microsoft Visual Studio, fig.71). De fapt,Microsoft Visual Studio. este linia de produse din Microsoft, care include un mediu integrat de dezvoltare software și o serie de alte instrumente.


Figura 71. Interfața Microsoft Visual Studio

Microsoft Visual Studio. Include una sau mai multe componente din următoarele: Visual Basic.net, Visual C ++, Visual C #, Visual F #, Microsoft SQL. Server, Visual Interdev, Visual J ++, Visual J #, Visual FoxPro., Sursa Visual Sigur.

Unul dintre principalele avantaje ale Microsoft Visual Studio este calitate superioară Documentarea procesului de dezvoltare și descriere probleme posibile În biblioteca MSDN. Cu toate acestea, cea mai interesantă parte profesională dedicată complexelor de dezvoltare există numai în limba engleză.

Microsoft oferă, de asemenea, un analog gratuit al produsului Visual Studio Express.

În prezent, cu fiecare sistem de programare, instrumente separate (de exemplu, compilatorul) sunt asociate cu un set asociat logic de software și instrumente hardware care susțin dezvoltarea și susținerea PS în acest limbaj de programare sau orientat către orice domeniu specific. O astfel de totalitate va apela mediu instrumental pentru dezvoltarea și întreținerea PS. Pentru astfel de medii instrumentale, este caracteristică, în primul rând, utilizarea instrumentelor de software și hardware și, în al doilea rând, o anumită orientare sau la un anumit limbaj de programare sau la o anumită zonă a subiectului.

Mediul de scule nu trebuie să funcționeze pe computerul pe care se va aplica PS dezvoltat. Adesea, o astfel de combinație este destul de convenabilă (dacă numai puterea computerului utilizat permite acest lucru): Nu este necesar să se ocupe de computerele de diferite tipuri, componentele mediului de scule pot fi incluse în PS dezvoltate. Cu toate acestea, în cazul în care computerul pe care trebuie aplicat PS nu este disponibil pentru dezvoltatorii acestui PS (de exemplu, este în mod constant angajat în alte lucrări, care nu pot fi întrerupte sau este încă în curs de dezvoltare) sau inconfortabil pentru dezvoltare de PS, sau puterea acestui computer este insuficientă pentru asigurarea funcționării mediului instrumentului necesar, apoi se folosește așa-numitul abordarea obiectului instrumentului. Esența este că PS este dezvoltat pe un computer, numit instrumentalși va fi aplicat pe un alt computer numit ţintă(sau obiect).

Există trei clase principale de mass-media instrumentale și întreținerea PS (fig.16.1): ·

mediu de programare, ·

calculatoare de lucru de lucru, ·

sisteme de instrumente tehnologice de programare.

Mediu de programareacesta este destinat în principal de a sprijini procesele de programare (codificare), testarea și depanarea PS. Tehnologia computeruluiaxat pe sprijinul etapelor timpurii ale dezvoltării PS (specificații) și a generării automate de programe pe specificații. Sistem de instrument de programare Tehnologiese intenționează să susțină toate procesele de dezvoltare și întreținere pe tot parcursul ciclului de viață al PS și se concentrează pe dezvoltarea colectivă a sistemelor software mari cu un ciclu de viață îndelungat. Pentru astfel de sisteme, costul escortei depășește, de obicei, costul dezvoltării.

Smochin. 16.1. Principalele clase de medii instrumentale pentru dezvoltarea și întreținerea PS.

  1. Medii de programare instrumentale.

Mediul instrumentului de programare conține în primul rând un editor de text care vă permite să proiectați programe într-un limbaj de programare specificat, instrumente care permit compilarea sau interpretarea programelor în acest limbaj, precum și testul și depanarea programelor obținute. În plus, pot exista alte instrumente, de exemplu, pentru analiza programelor statice sau dinamice. Aceste instrumente interacționează între ele prin intermediul fișierelor obișnuite utilizând caracteristicile standard ale sistemului de fișiere.

Următoarele clase de suport de instrument de programare disting (vezi figura 14.2): ·

zone generale, ·

mediu orientat spre limbă.

Programare Mediu de instrument scop generalconține un set de instrumente software care suportă dezvoltarea programului în diferite limbi de programare (de exemplu, un editor de text, un editor de link sau un interpret de limbă de calculator țintă) și, de obicei, reprezintă o anumită extindere a capacităților utilizate sistem de operare. Pentru programarea într-un astfel de mediu, orice limbă de programare va necesita instrumente suplimentare orientate spre această limbă (de exemplu, compilatorul).

Fig.16.2. Clasificarea mass-media de programare.

Orientat spre limbămediul instrumentului de programare este conceput pentru a sprijini dezvoltarea PS pe orice limbă de programare și cunoașterea acestei limbi au fost utilizate în mod semnificativ în construirea unui astfel de mediu. Ca rezultat, pot exista posibilități suficient de puternice care iau în considerare specificul într-un astfel de mediu. din această limbă. Astfel de medii sunt împărțite în două subclase: ·

medii interpretive, ·

medii controlate sintactic.

Interpretareamediul instrumentului de programare asigură interpretarea programelor în acest limbaj de programare, adică În primul rând, interpretul limbajului de programare pe care este orientat acest mediu. Acest mediu este necesar pentru limbile de programare ale unui tip interpretativ (cum ar fi LISP), dar pot fi, de asemenea, utilizate pentru alte limbi (de exemplu, pe un computer de scule). Sintaxă gestionatămediul instrumentului de programare se bazează pe sintaxa lingvistică de programare la care este orientată. Într-un astfel de mediu, în loc de un text, se utilizează un editor gestionat de sintaxă, permițând utilizatorului să utilizeze diferite modele de structuri sintactice (ca urmare a acestui fapt, programul dezvoltat va fi întotdeauna corect din punct de vedere sincronic). Simultan cu programul, un astfel de forme de editor (în memoria calculatorului) arborele de sintaxă care poate fi utilizat de alte instrumente.

Apariția lui Makefile poate fi considerată primul pas pentru a crea sisteme de programare. Limba MakeFile a devenit mijloace standardUnificat pentru compilatoarele tuturor dezvoltatorilor. Era confortabil, dar destul de complicat remediu tehniccare necesită un grad ridicat de pregătire și cunoștințe profesionale de la dezvoltator, deoarece industria de comandă a limbii el însuși a fost comparabilă cu limba simplă Programare.

O astfel de structură a instrumentelor de dezvoltare a existat suficient pentru o lungă perioadă de timpÎn unele cazuri, este folosit în această zi (mai ales atunci când creați programe de sistem). S-a datorită faptului că întreaga structură a instrumentelor de dezvoltare a fost foarte convenabilă pentru execuția lotului de programe pe computer, care a contribuit la utilizarea pe scară largă în epoca mainframe cu sisteme de operare de tip Unix.

4.5. Medii de dezvoltare integrată

  1. Visual Studio 97 este prima versiune lansată a Visual Studio. Pentru prima dată, au fost colectate diverse mijloace de dezvoltare a software-ului. Sistemul a fost eliberat în două versiuni: profesional și întreprindere. Acesta a inclus Visual Basic 5.0, Visual C ++ 5.0, Visual J ++ 1.1, Visual FoxPro 5.0, a apărut pentru prima dată mediul de dezvoltare ASP - Interdev Visual. Visual Studio 97 a fost prima încercare Microsoft de a crea un singur mediu pentru dezvoltarea în diferite limbi de programare: Visual C ++, Visual J ++, Visual Interdev și MSDN au folosit un mediu numit Developer Studio. Visual Basic și Visual FoxPro a aplicat medii individuale de dezvoltare individuală.
  2. Visual Studio 6.0 a ieșit în iunie 1998. Aceasta este cea mai recentă versiune a Visual Studio, care operează pe platforma Win9x. Încă sunt încă populare printre programatorii care utilizează Visual Basic. Această versiune a fost principalul mediu pentru dezvoltarea aplicațiilor sub Windows de la Microsoft, înainte ca platforma 5.net.
  3. Visual Studio .NET (numele codului Rainier, versiunea internă 7.0) emisă în februarie 2002 (include Framework 1.0). Service Pack 1 pentru Visual Studio .NET (2002) lansat în martie 2005
  4. Visual Studio .NET 2003 (codul de cod Everett, versiunea internă 7.1) a apărut în aprilie 2003 (include Framework 1.1net 1.1. Service Pack 1 pentru Visual Studio .NET 2003 lansat pe 13 septembrie 2006
  5. Visual Studio 2005 (Nume de cod Whidbey, versiunea internă 8.0) a fost lansată la sfârșitul lunii octombrie 2005, ultima funcționare oficială pe Windows 2000 (include .NET Framework 2.0). La începutul lunii noiembrie 2005, o serie de produse a fost publicată și în Express: Visual C ++ 2005 Express, Visual Basic 2005 Express, Visual C # 2005 Express, etc. Aprilie 19, 2006 Express Editorial a fost gratuit. Service Pack 1 pentru VS2005 și toate edițiile exprese lansate pe 14 decembrie 2006. Patch suplimentar pentru SP1, problema decisivă Compatibilitate S. Windows Vista. lansat pe 6 martie 2007
  6. Visual Studio 2008 (numele codului ORCAS) a fost lansat pe 19 noiembrie 2007, în același timp X.NET Framework 3.5. Scopul de a crea aplicații pentru Windows Vista (dar suportă atât XP), Office 2007 și aplicații web. Include LINQ, versiuni noi ale limbilor C # și Visual Basic. Studioul nu a intrat în Visual J #. Începând cu 28 octombrie 2008, versiunea este disponibilă pentru prima dată în limba rusă.
  7. Visual Studio 2010 (numele codului Hawaii, pentru Ultimate - Rosario) lansat pe 12 aprilie 2010 împreună cu S.Net Framework 4.0. Visual Studio include suport pentru limbi C # 4.0 și Visual Basic .NET 10.0, precum și limba F # care a fost absentă în versiunile anterioare.

Miercuri Visual Studio 2010 vă permite să creați efectiv aplicații complexe pentru o perioadă scurtă de timp. Modelul acestui mediu este semnificativ mai devreme sau utilizează astfel de concepte ca o soluție (soluție), proiect, spațiu de nume (spații de nume) și asamblare (ansamblu). Conceptul proiectului este prezent în multe mijloace media, de exemplu, în miercuri Delphi.. Fișierul de proiect conține enumerarea fișierelor sursă și a altor resurse din care sistemul va construi o aplicație. Soluția de mediu a studioului vizual include mai multe proiecte care pot fi dependente sau independente unul de celălalt. Iasă în evidență pornirea proiectului. Conceptul de Adunare provine din mediul executiv al limbii generale CLR (runtime de limbă comună). Mediul CLR este invenția cea mai revoluționară, cu care procesul de scriere și executare a aplicațiilor devine fundamental diferit.

Compilatorul convertește fișierele cu cod sursă la codurile din limba intermediară MSIL ( Limba intermediară Microsoft.). Împreună cu metadatele, aceste coduri sunt înregistrate prin fișiere PE (executabil portal), având o extensie Ex sau DLL în funcție de tipul de proiect. Un modul poate fi obținut și cu extensia netmodule care nu conține metadate.

Total există 12 tipuri de proiecte. Când încărcarea fișierelor PE "în zbor" este difuzată la comenzile procesorului real. Cadru cadru. Net, oferind executarea programului, nu este inclusă în Visual Studio, dar este o configurație în sistemul de operare. Acesta este un analog al Java-Mashina virtuală.

Adunarea este o unitate minimă pentru implementarea aplicațiilor. Fiecare tip de ansamblu se caracterizează printr-un identificator unic, identificat de semnătura digitală a autorului și număr unic. versiuni. Există un raport următor între ansambluri și spații ale numelor. Adunarea poate conține mai multe spații de nume. În același timp, spațiul de nume poate dura mai multe ansambluri. Adunarea poate avea în compoziția sa atât una cât și mai multe fișiere care sunt combinate în așa-numita descriere manifestală sau asamblare.

La nivelul C #, spațiul de nume, similar cu pachetele din Java, servesc la structurarea proiectului. Spațiul de nume include una sau mai multe clase. Într-un singur fișier sursă, mai multe spații de nume pot fi determinate și, în același timp, un spațiu de nume poate fi determinat în mai multe fișiere. Și chiar și clasa poate fi localizată în mai multe fișiere (clase parțiale).

Pentru programatorii novici, o astfel de abundență de oportunități poate provoca dificultăți considerabile. Dimensiunea și complexitatea mediului pot fi judecate prin următorul tabel comparativ de trei medii.

Interesant și promițător pare mediul de operare Eclipse dezvoltată în IBM. Scopul inițial al proiectului a fost crearea unui standard al ID-urilor corporative pentru dezvoltarea programelor în diferite limbi pentru diferite platforme. Apoi proiectul a fost redenumit Eclipse și a subliniat accesul deschis. Licența permite utilizarea gratuită a codului și a mediului de dezvoltare și, în același timp, creând produse comerciale închise. Datorită acestui fapt, sistemul a devenit larg răspândit, iar pentru multe organizații au devenit un standard corporativ pentru dezvoltarea de aplicații.

Eclipsa ecosistemului se referă la tehnologii consolidate, anul repartizării pe scară largă este 2007. Sistemul este implementat de către limba Java. și inițial a reprezentat o miercuri integrată integrată pentru limba Java. În viitor, alte limbi au început să fie susținute. Primele versiuni au fost incomod, deoarece produsul țintă a fost forțat să includă funcționalitatea excesivă. Pornind de la a treia versiune, arhitectura întregului sistem a fost redată pentru a maximiza separarea modulelor și a relației dintre ele. În același timp, modurile Eclipse formate din seturi de clasă convenite au oferit funcționalitatea întregului subsisteme, cum ar fi subsistemele de asistență, actualizările de produse, învățarea, prezentările, suport multilingv Și multe altele. Prin dezvoltarea aplicației, acum puteți mări treptat funcționalitatea, conectați componentele gratuite făcute. În terminologia Eclipsei, aceste componente sunt numite "Module plug-in" sau "plugin-uri" (plugin-uri). O astfel de tehnologie devine tipică pentru mediile de operare dezvoltate. Platforma bazată pe această tehnologie a fost numită

Instrumente instrumentale pentru dezvoltarea agenților software formează un mediu care este optimizat pentru eliberarea unui anumit tip de aplicare, cu o arhitectură specifică.

Principalele medii distinctive de scule din alte mijloace de construcție a agenților software este că mediul înconjurător oferă un ciclu complet de dezvoltare a agenților software, inclusiv etapele analizei domeniului, etapele de proiectare, dezvoltarea, verificarea, precum și etapele de desfășurare și acompaniament.

Puteți selecta cele mai renumite și mai populare medii de dezvoltare a agenților:

Ave (mediul de construcție a agentului);

Luați în considerare mai detaliat mediile de dezvoltare a agenților instrumentali enumerați.

1. Mediul instrumentului AgentBuilder oferă dezvoltatorilor să dezvolte un instrument de dezvoltare și un cont de o aplicație agent. Tehnologia creării unui agent inteligent în mediul AgentBuilder este prezentată în Figura 2.1.

Smochin. 2.1.

Mediile de dezvoltare și implementare sunt scrise în limba de programare Java, ceea ce le permite să lucreze la toate platformele în care este instalat Java miercuri. Agentul creat folosind AgentBuilder Toolkit poate fi efectuat pe orice platformă cu o mașină virtuală Java (versiunea 1.1 și de mai sus).

Instrumentele de dezvoltare reprezintă o interfață grafică convenabilă pentru analizarea domeniului MAC dezvoltat și specificarea comportamentului dorit al agenților dezvoltați de editori grafici. În acest mediu instrumental, sunt furnizate următorii pași de construire a unei aplicații multi-agent:

definiția agenției;

crearea de agenți, care prevede construirea ontologiei utilizate pentru a efectua agentul de delegat de autoritate și modelul mental (credința, capacitatea, obligațiile, regulile de conduită);

crearea de protocoale pentru specificarea interacțiunii agenților acestei agenții;

generaţie fișier special Descrierile agentului în limba RADL, care, în cele din urmă, reprezintă modelul mental și comportamentul dorit al agentului.

Runtimea aplicației agentului constă dintr-un agent și procesor pentru efectuarea unui agent. Procesorul utilizează proceduri eficiente de ieșire logică prin compararea regulilor comportamentului comportamentului agentului cu credințele agentului definit de modelul mental actual și mesajele primite. Pe baza argumentelor, procesorul îndeplinește anumite acțiuni asociate cu autoritatea agentului. Programul de agent este definirea unui agent sub forma unui fișier RADL împreună cu biblioteca instalată a proiectului. Un program blocat împreună cu procesorul formează un agent efectuat. La rularea mediului de rulare, este inițializat un procesor de agent care utilizează modelul RADL și o ontologie a agentului prezentat ca o bibliotecă de clasă de proiect (biblioteca de accesorii pentru proiect). Acest lucru necesită definirea agentului (fișierul RADL care oferă un agent cu capacitatea de raționament și modelul mental inițial) și biblioteca de cursuri de proiect (clasele de sprijin ale proiectului PACS din biblioteca de cursuri de proiect) - aceste obiecte sunt utilizate pentru a afișa zona subiectului sarcinii.

2. În mediul Bee-Gent, dezvoltarea aplicațiilor orientate spre agenție este efectuată de metodologia de specificare a comportamentului agenților distribuiți de sistem utilizând biblioteca MAC implementată în limba Java. Pe baza sistemului Bee-Gent oferit de sistemul Bee-Gent, este posibilă structurarea clară a comportamentului fiecărui agent ca grafic al stărilor și determinarea protocoalelor de interacțiune ale agenților. Statele membre ale agenților sunt construite pe baza viabilității rolurilor definite sub forma unor expresii regulate în stadiul unei analize orientate spre agenție (de exemplu, în conformitate cu metodologia GAIA). Un exemplu de fragment al grafului comportamentului agentului Studentul sistemului de formare este prezentat în Figura 2.2.


Smochin. 2.2.

Graficul de stat înregistrează toate numele statelor în care poate fi agentul. În următorul pas de dezvoltare, clasele sunt definite pentru fiecare stat. Fiecare stat din coloană este o instanță a clasei Awripstate din biblioteca toshiba blocată implementată în limba Java. În clasa designer, condițiile pre și post sunt determinate, adică. Condițiile care trebuie executate în starea actuală pentru a efectua acțiuni definite de clasa de stat și pentru a determina tranziția către următorul stat. Apoi, acțiunile care ar trebui să fie efectuate în fiecare stat (inclusiv propriul lor agent și procese de interacțiune cu alți agenți) sunt apoi specificate. Pentru statele inițiale și cele finale, sunt create clasele "init" și "sfârșitul". Dacă agentul interacționează cu alți agenți, apoi cu specificațiile statelor specifice, sistemul Bee-Gent asigură definirea protocolului de interacțiune. Protocolul trebuie să reflecte toate liniile de comportament agent din această stare. În fiecare stat, activitățile agentului vizează efectuarea protocoalelor de interacțiune pentru a pune în aplicare linia de comportament planificată. Activitățile fiecărui agent din MAC sunt determinate, de exemplu, un model de servicii dezvoltate în stadiul unei analize orientate spre agenți asupra metodologiei GAIA.

Fiecare linie de comportament este documentată de diagrama interacțiunii agenților cu conținutul mesajelor și secvența acestora. Figura 2.3 prezintă un exemplu al diagramei de interacțiune pentru starea de studiu a disciplinei agentului elevului. Formatul mesajului este determinat de limbajul XML / ACL, care este dezvoltarea limbii de comunicații KQML.


Smochin. 2.3. Diagrama de interacțiune a studentului de agent în statul "studiul disciplinei"

Astfel, pe baza modelelor logice dezvoltate, sistemul Bee-Gent generează automat scheletul unui cod de program multi-agent în limba Java, care este completat de codul de program necesar care oferă un anumit "ciclu de viață" al agenților. În sistemul Bee-Gent, spre deosebire de AgentBuilder, la descrierea comportamentului agenților, regulile nu sunt utilizate pentru a determina reacția agentului la evenimentele externe și starea sa internă.

3. Agenții inteligenți Jack TM (Jack) este un mediu de dezvoltare orientat spre agenție care se bazează pe limba de programare Java. Jack este un add-in Java sub formă de extindere a modelelor de sintaxă Java pentru implementarea software a proprietăților asociate conceptului de agent inteligent. Limba de programare a agentului Jack oferă următoarele caracteristici:

definește noi clase, interfețe și metode de bază;

extinde sintaxa Java pentru a sprijini noi clase, definiții și operatori orientați spre Angent;

oferă extinderea semanticii (caracteristici atunci când execută) pentru a sprijini modelul de execuție cerut de un sistem software orientat spre ACTENT.

Toate extensiile lingvistice sunt implementate ca plug-in, ceea ce face ca limba să fie cât mai expandabilă și flexibilă într-o programare orientată spre agenție.

La nivelul clasei, au fost introduse 5 structuri principale:

agent care simulează entitățile intelectuale din Jack;

abilitatea care colectează într-o singură componentă funcțională (evenimente, planuri, multe credințe și alte abilități), destinate utilizării de către agenți;

un eveniment pentru modelarea situațiilor și mesajelor la care agentul trebuie să poată răspunde;

un plan care este destinat să simuleze o descriere procedurală a modului în care agentul gestionează acest eveniment (toate acțiunile întreprinse de către agenție sunt furnizate în avans și sunt descrise în planurile sale);

multe convingeri, pentru modelarea cunoștințelor agentului sub formă de credințe care aderă la semantica unei lumi închise sau deschise. Acest design reprezintă credința agentului sub formă de tuple relaționale ale primei ordini și asigură consistența lor logică.

Trebuie remarcat faptul că comportamentul de agent dorit este încapsulat în unitățile modulare definite de aceste clase, iar clasele conțin toată structura necesară pentru o execuție independentă și metode pe care programatorii din limba Jack le pot folosi. Pentru a stabili relația dintre clasele menționate mai sus, există un set de declarații.

Pentru a stabili relații între clasele menționate mai sus, este furnizat un set de declarații. Mai jos este un fragment al codului de implementare a proiectului planului scris pe mufa (elementele de sintaxă care aparțin lui Jack sunt evidențiate cu caractere aldine):

planul MișcareResponse extinde planul (

# Handles Event Robotmoveevent Moversponse;

# Augent de implementare a robotului robotInterface;

boolean static relevant (robotmoveevent eV)

context () (...)

Metoda #Reasoning.

În acest exemplu, planul de acțiune al programului definit al agentului de program își moștenește funcțiile de bază de la clasa Jackplan. În plus, folosind mai multe declarații pentru planurile lui Jack, se indică modul în care va fi utilizat planul. Fiecare declarație este precedată de simbolul "#" pentru a le distinge de elementele de sintaxă Java. Declarația evenimentului #Handles definește o țintă sau un eveniment pe care acest plan răspunde. Declarație # Agent care implementează agentul (agenții) de consacră care poate utiliza acest plan. Planul de exemplu poate fi efectuat numai de către acei agenți care implementează interfața specificată (RoboTinterface). Suporturile figure conțin codul obișnuit Java.

În plus față de Declarație, limba JACK pentru descrierea argumentelor și comportamentului întreprinse de agenți atunci când punerea în aplicare a planului oferă operatorilor săi metode de raționament care sunt alocate de simbolul precedent "@".

Pentru a sprijini executarea unui agent orientat spre agent sistem software. Jack oferă următoarele extensii suplimentare de limbă care oferă următoarele semantice:

Multiplicarea este construită în kernel și îndepărtată de sub controlul programatorului.

Activitatea agenților se desfășoară astfel încât agenții să se ocupe de multe planuri și să aibă acces la descrierile de credință. Agenții îndeplinesc planurile în sarcinile de gestionare a evenimentelor atunci când apar, comparând credințele lor atunci când este necesar. Aceste planuri pot iniția substante care, la rândul lor, își pot iniția subcasurile lor dacă agentul necesită un răspuns consumator de timp și dificil.

A fost introdusă o nouă structură de date, elementul logic numit (membru logic), valoarea căreia depinde de rezultatul interogării la setul de credințe de agent.

Abilitatea de a efectua cereri la o multitudine de condamnări agent utilizând elemente logice pentru aceasta, prin asocierea lor pentru a obține rezultatul dorit. Dacă cererea are succes, elementul logic conține valoarea dorită.

Componenta de mediu de dezvoltare Jack (Mediul de dezvoltare Jack) face posibilă desemnarea diagramelor de ansamblu prin care mediul generează scheletul codului programului și asigură că modificările făcute în cod sunt afișate în diagrame.

Agenții creați în Jack au o arhitectură inerentă agenților intelectuali. Astfel, este posibil să se modeleze un comportament rezonabil, în conformitate cu modelul teoretic al agentului BDI-Architecture, bazat pe credințe, dorințe și intenții.

Potrivit arhitecturii BDI, agenții inteligenți ai lui Jack sunt componente software autonome care pot prezenta un comportament sensibil bazat pe proactivitate (focus) și reactivitate (eveniment trimis) la semnale de intrare. Fiecare astfel de agent are:

condamnări (acesta este setul de date despre lume);

dorințe (un set de evenimente pe care va reacționa și un set de scopuri, realizările pe care le pot dori);

intenție (un set de planuri care descriu modul în care poate gestiona obiectivele și planurile emergente).

Dacă agentul este considerat ca un analog al personalității, setul de planuri descrie pașii pe care agentul trebuie să le execute atunci când apare un anumit eveniment sau dorința de a obține un anumit rezultat. La prima vedere, comportamentul agentului poate părea similar cu acțiunile sistemelor de experți, cu toate limitările inerente acestora. Cu toate acestea, diferența fundamentală dintre sistemele orientate spre agenți este că agenții pot fi programați să îndeplinească planurile în același mod ca și cum ar funcționa o personalitate rezonabilă. În special, cu ajutorul agenților, puteți implementa următoarele proprietăți asociate cu un comportament rezonabil:

focalizarea durabilă - agenții se concentrează asupra scopurilor și nu pe metodele selectate pentru a le atinge;

dependența contextuală a agenților reali vor urma opțiunile care se aplică la fiecare dată și vor lua decizii privind acțiunile de urmărire pe baza condițiilor existente;

aprobarea corectitudinii abordării în timp real - Agentul va asigura că rezultă cursul selectat de acțiuni până când anumite condiții continuă să fie adevărate;

simultaneitate - un sistem de agent este multi-filetat. Dacă apar noi obiective și evenimente, agentul este capabil să determine prioritățile la cererea multitasking.

Aplicația Jack este un cod sursă care implementează caracteristica unei abordări orientate pe annt: agenți, abilități, evenimente, planuri, credințe, vedere (interogări), precum și o clasă Java cu funcția principală (), care este punctul de intrare Pentru mașina virtuală Java și orice alte fișiere necesare Java. Fișierele care sunt create pentru aceste concepte trebuie să aibă același nume ca și obiectul definit în fișier. Ei au o extensie care definește tipul de concept Jack. Compilatorul de agent Jack convertește fișierele sursă în limba Agent Jack în codul din limba Java, care este apoi compilat în codul mașinii virtuale Java pentru a efectua sistemul țintă.

4. Software-ul Jade (Cadrul de dezvoltare a agenților Java) a fost utilizat pe scară largă pentru a dezvolta sisteme multi-agent. Acesta este complet implementat în Java și suportă standardele FIPA pentru crearea de agenți inteligenți. Scopul creării unui mediu jad este simplificarea procesului de dezvoltare prin standardizarea metodelor de interacțiune a agenților în sistemul de servicii de sistem.

Pentru a atinge acest obiectiv, Jade oferă un programator pentru dezvoltarea sistemelor de agenți următoarele caracteristici:

platforma de agent compatibil FIPA, bazată pe FIPA și includerea tipurilor obligatorii de agenți de sistem pentru gestionarea, în primul rând, de către o platformă de agent (AMS), a doua, canal de comunicare (ACC) și servicii de director (DF) (aceste tipuri de agenți activate automat când platforma este pornită);

platformă distribuită a agentului distribuit, care poate utiliza mai multe gazde, iar doar o mașină virtuală Java începe pe fiecare nod. Agenții sunt efectuați ca fluxuri Java. În funcție de locația agentului, trimiterea unui mesaj și cel care îl primește, mecanismul de transport corespunzător este utilizat pentru a furniza mesaje.

Suport de domenii multiple - un număr de agenți DF FIPA bazați pe Federație, implementarea unui agent multidaj.

Mediul de execuție multithreadică cu programare ticlevel. Fiecare agent jad are debitul propriu debit, dar este, de asemenea, capabil să lucreze în modul multi-filetat. Mașina virtuală Java planifică sarcini executate de agenți sau una dintre ele.

Mediu de programare obiect orizat. Cele mai multe concepte caracteristice specificațiilor FIPA sunt reprezentate de clasele Java care formează interfața cu utilizatorul.

Biblioteca de protocoale de interacțiune. Se utilizează solicitări standard interactive FIPA și protocoalele interactive din FIPA-Contract-Net. Pentru a crea un agent care ar putea funcționa în conformitate cu astfel de protocoale, dezvoltatorii de aplicații, trebuie doar să implementați acțiuni specifice de domeniu, în timp ce toate logica protocolului independentă de aplicație va fi implementată de sistemul JADE.

Administrarea GUI. Operații simple Managementul platformei poate fi executat printr-o interfață grafică care afișează agenți activi și containere agenți. Folosind GUI, administratorii de platformă pot crea, distruge, întrerupe și relua agenții, creează ierarhiile de domeniu și federații DF multi-agent (facilitatori).

Jade se bazează pe Java RMI Technologies, Java Corba IDL, Java Serializare și API de reflecție Java. Dezvoltarea MAC în acest mediu este simplificată datorită utilizării specificațiilor FIPA și a unui număr de instrumente pentru susținerea depunerii și implementării sistemului. Această platformă agent poate fi instalată pe computere cu sisteme de operare diferite și poate fi configurată printr-o interfață GUI de la distanță. Procesul de configurare a acestei platforme este destul de flexibil: poate fi schimbat chiar și în timpul executării programelor de către agenți în mișcare de la o mașină la alta. Singura cerință pentru funcționarea sistemului este instalarea pe mașină de funcționare Java 1.2.

Fiecare instanță de funcționare a mediului jad este un container, pentru că Pot conține mai mulți agenți. Un grup de containere active formează o platformă. Containerul principal trebuie să fie întotdeauna activ, iar toate celelalte containere trebuie înregistrate la ele atunci când le creează. Prin urmare, primul container care rulează pe platformă este containerul principal, iar celelalte sunt containere regulate și ar trebui să primească instrucțiuni în cazul în care recipientul lor principal este pe care trebuie înregistrat. Dacă un alt container principal este lansat în rețea, acesta reprezintă o altă platformă pe care noile containere regulate au capacitatea de a se înregistra. Figura 2.4 prezintă conceptele de platformă și containere de mai sus și prezintă un script cu două platforme Jade, constând din trei și, respectiv, un container.


Smochin. 2.4. Miercuri "Existența" Agenți Jade

Agenții Jade trebuie să aibă nume unice, să cunoască numele celorlalți și, datorită acestui lucru, pot comunica direct, indiferent de locația lor reală, adică. În interiorul unui singur recipient (de exemplu, agenții A2 și A3), în diferite recipiente dintr-o platformă (de exemplu, A1 și A2) sau în diferite platforme (de exemplu, A4 și A5). Containerul principal diferă de cel obișnuit prin faptul că acesta conține un sistem de management al agentului și un router pornit automat când este pornit recipientul principal. Sistemul de management al agentului AMS (sistemul de management al agentului) este "Power" în platformă (crearea / ștergerea agenților în recipiente de la distanță solicitate prin AMS) și oferă servicii de numire a agentului. Router DF Directory (facilitator de directorul), care oferă serviciul "Pagini galbene", ajută la găsirea unui agent al altor agenți, pentru a obține serviciile necesare pentru a vă atinge obiectivele.

Pentru a comunica, arhitectura de mediu oferă un proces de mesagerie flexibil și eficient în care Jade creează o coadă și controlează fluxul de mesaje ACL, care sunt private pentru fiecare agent. Agenții sunt capabili să contacteze coada folosind o combinație de mai multe moduri de lucru: blocarea, votarea, ruperea funcționării și comparației cu standardul (dacă se referă la metodele de căutare). Multi-Agent Platform Toolkit

ÎN versiuni recente Sistemele utilizează Java RMI, notificarea evenimentului și IIOP. Cu toate acestea, puteți adăuga cu ușurință alte protocoale. De asemenea, oferă posibilitatea de a integra SMTP, http și wap. Cele mai multe protocoale de comunicare care sunt deja identificate de comunitatea internațională a dezvoltatorilor de medii de agent sunt disponibile și pot fi ilustrate pe exemple specifice după determinarea comportamentului sistemului și a stărilor sale de bază. Împreună cu sprijinul limbilor de conținut definit de utilizator, ontologia gestionării agenților, precum și ontologiile, care pot fi implementate și înregistrate la agenți și sunt utilizate de sistem. Pentru a extinde în mod semnificativ performanța jadului, este posibil să se integreze cu clemele Jess și Java-Shell.

O analiză comparativă a capacităților media luate în considerare pentru dezvoltarea agenților software este prevăzută în Tabelul 4. și din Figura 2.5 prezintă rezultatele acestei analize.

Tabelul 4.

Analiza comparativă a posibilităților de instrument media pentru dezvoltarea agenților software

Oportunități de medii instrumentale

Mijloace de construcție a agențiilor

Instrumente de management de proiect

Mediu grafic pentru a determina specificațiile agenților

Mecanism de control al integrității

Instrumente de construcție ontologie

Biblioteca pentru dezvoltarea în masă

Mecanismul argumentelor agentului cu privire la abilitățile și abilitățile celorlalți agenți

Comunicarea lingvistică formală

Instrumente de interacțiune a agentului

Specificarea agenților cu abilități specificate


Smochin. 2.5.

Pe baza comparației caracteristicilor mediilor instrumentale considerate, se poate concluziona că cele mai puternice și mai flexibile tehnologii de implementare a conceptului de "agenți" sunt abordările propuse de instrumentul AgentBuilder și Macilul Jack.

Este necesar să se acorde atenție faptului că pentru platforma Jade există o extensie suplimentară a BDI - Jadex Mediu. Acest mediu oferă o arhitectură hibridă reactivă-deliberativă, în care agentul este considerat ca o "cutie neagră" care acceptă și trimite mesaje. Pe baza rezultatelor procesării mesajelor, a evenimentelor interne și externe, mecanismul deliberativ face decizii privind tranziția la un nou plan de acțiune sau continuarea celui vechi. Planul actual poate trimite mesaje altor agenți, schimbarea bazei de date a credințelor, formează noi obiective și provoacă evenimente interne. Sistemul utilizează biblioteca de planuri care sunt procesate ca cursuri Java.

Unul dintre principalele avantaje ale dezvoltării agenților inteligenți pe platforma Jadex este că nu este obligat să studieze noi limbi de programare. În schimb, agenții sunt codificați pe baza programării orientate pe obiecte într-un mediu de dezvoltare integrat (IDES), cum ar fi Eclipse și Ideea Intellij.

Un alt aspect important este independența software-ului de liant, deoarece Jadex independent cu modulele sale poate fi utilizat în alte scenarii la nivelul superior al platformei. Programele orientate spre agenți adaugă proprietățile explicite ale elementelor de actorie autonome care participă la procesul de luare a deciziilor la obiecte pasive. În acest sens, agenții oferă ingrediente active cu capacități individuale de interacțiune cu componente.

Jadex este conceput ca un mecanism de decizie independent, adaptat la locul de muncă cu orice sisteme obligatorii care efectuează interacțiunea cu agentul în raport cu gestionarea proprie și primirea mesajelor.

Agentul poate migra liber între gazde, efectuând operațiuni atât pe partea serverului, cât și pe partea de utilizator, menținând în același timp independența față de locul de executare a sarcinilor.

Analiza celor mai cunoscute sisteme de instrumente au permis să aleagă un mediu Jadex eficient și accesibil.

Acest articol este dedicat tehnologiilor de dezvoltare tehnologică și tendințelor lor de dezvoltare în contextul majorității companiilor interne și străine de la automatizarea naturală a zonelor individuale ale activităților lor la soluții integrate unice.

Dezvoltarea de aplicații în proiecte IT moderne

Perioada actuală de dezvoltare a automatizării și informatizării întreprinderilor interne poate fi caracterizată ca momentul tranziției în masă de la automatizarea naturală a zonelor individuale ale activităților societății la soluții integrate unice care acoperă toate aspectele existenței lor. Nu ar putea afecta compoziția și volumul proiectelor IT cele mai frecvent și pe metodele implementării acestora.

Caracteristicile proiectelor IT moderne

În cazul în care alte cinci sau șapte ani în urmă, proiectele legate de aplicațiile unice au fost răspândite (și soluții oarecum mai puțin bazate pe componente gata, destinate unei anumite domenii) și efectuate de programatorii erudiți ai unui profil larg care deține și specialități înrudite (de exemplu, capabile să se administreze rețele locale Iar DBMS), astăzi, în primul rând, proiectele de implementare a aplicațiilor de afaceri gata și sunt ordonate sisteme ERP, în cadrul căruia proiectele sunt adesea puse în aplicare pe baza soluțiilor bazate pe toate aceleași aplicații de afaceri. Motivul pentru aceasta este, pe de o parte, conștientizarea liderilor majorității companiilor cu privire la faptul că, așa cum a fost, compania lor pretinde că unic în strategia lor de marketing, în esență, producția sa și aspectele individuale ale activităților sale sunt destul de tipic, iar pe de altă parte - conștientizarea aplicațiilor de afaceri a aplicațiilor de afaceri ale proceselor de afaceri neobișnuite ale majorității societăților și crearea unei game largi de soluții tipice cu furnizarea simultană de servicii pentru implementarea, acompaniarea și actualizarea lor sau de forțele partenerilor.

Tranziția la diviziunea muncii în proiecte de dezvoltare a

O astfel de situație nu a putut afecta compoziția personalului companiilor IT, printre care integratorii de sistem au predominat recent (uneori având departamentul lor de dezvoltare, dar specializându-se în principal pe proiecte integrate, inclusiv nu numai dezvoltarea aplicațiilor) și companiile specializate exclusiv pe aplicațiile de dezvoltare, mic. În acesta din urmă, este în curs de desfășurare procesul de specializare, împărțind un grup de dezvoltatori pe analiștii de afaceri, analiștii de sistem, programatori, scriitori tehnici și manageri de proiect. În același timp, analistul sistemului nu știe cum să programeze, analistul de afaceri nu conduce proiectele, iar managerul de proiect este angajat numai de munca organizațională și nu este interesată de arhitectura aplicației sau de zona mai mare. Acest lucru reflectă faptul că tranziția de la producția minoră de software exclusivitate la producția industrială în masă a soluțiilor tipice în cerere de către utilizatorii moderni.

Schimbați aplicațiile

Vorbind despre proiectele de dezvoltare a aplicațiilor și legate de dezvoltarea unor aplicații părți ale proiectelor IT complexe, trebuie remarcat faptul că astăzi crearea de soluții corporative bazate pe DBMS, ci și alte produse - aplicații de birou, sisteme GIS și CAD, devine Cele mai relevante. Fondurile de analiză a afacerilor, produse de server specializate, sisteme de management al întreprinderilor și alte aplicații de afaceri. Cerințele pentru protecția soluțiilor create sunt, de asemenea, diferite de cele care au existat acum trei ani. În cele din urmă, una dintre tendințele importante este creșterea interesului pentru aplicații dispozitive mobile și aplicațiile capabile să funcționeze autonom și, dacă este necesar, să se sincronizeze cu sistemul de informare a întreprinderii.

Din alte tendințe care au fost recent în domeniul dezvoltării deciziilor corporative, trebuie remarcat nevoia crescândă a companiilor în mijlocul analizei de afaceri care fac parte din soluțiile existente sau existente sub formă de instrumente individuale. În ciuda faptului că crearea de aplicații cu aplicarea analizei de afaceri este dificilă datorită faptului că astăzi standardizarea accesului la datele din depozitarea multidimensională și limba solicitărilor către aceștia rămâne relevantă, în mâinile dezvoltatorilor sunt deja suficiente Mijloace de rezolvare a unor astfel de sarcini pentru cele mai populare platforme analitice din cadrul furnizorilor de platforme analitice (de exemplu, Oracle, Microsoft și Hyperion) și de la companii specializate în instrumente de analiză a datelor (Cognos, Proclaritate și obiecte de afaceri). În plus, Instrumentele de Informații și Raport de afaceri, Birt (Business Intelligence și Raport Tools, Birt) sunt disponibile pentru platforma Eclipse, care este acum jumătate pe piață pentru dezvoltarea aplicațiilor Java.

Implicarea clientului în procesul de dezvoltare

Evaluarea contribuției dezvoltatorilor de aplicații în succesul afacerii de afaceri ale clientului, precum și o evaluare a calității procesului în sine și rezultatul său a fost întotdeauna o problemă controversată și un motiv pentru neînțelegere și conflicte. Cu toate acestea, recent au existat metode de evaluare a scadenței proceselor de dezvoltare și a recomandărilor bazate pe modelele de integrare a modelului de maturitate a capacității (CMMI), precum și o serie de metodologii de dezvoltare a aplicațiilor, oferind cererea de aplicare capacitatea de a controla dezvoltarea proces. Modelul CMMI vă permite să evaluați și să îmbunătățiți procesele de dezvoltare a aplicațiilor și să profitați de exemplele de succes ale unor astfel de procese, iar disponibilitatea unei evaluări a unuia sau a nivelului de maturitate în conformitate cu acest model, compania dezvoltatorului cunoaște asigurarea calității finalei rezultatul procesului de dezvoltare a produselor în această companie.

Metodologiile de dezvoltare familială sub numele general al metodologiilor agile (inclusiv, în special, metodologia de programare extremă, pe care am scris-o acum câteva luni) oferă "rețete" pentru gestionarea zilnică a echipei de proiect, inclusiv, împreună cu altele, principiul Dezvoltarea controlată prin testarea (testul de dezvoltare - dezvoltare, TDD), care sa dovedit ca un mijloc de obținere a codului de înaltă calitate. O caracteristică a acestei metodologii familiale este implicarea clientului în procesul de dezvoltare, astfel încât să o poată controla în toate etapele.

Cele mai populare arhitecturi și platforme

Arhitectura orientată spre servicii

Una dintre tendințele actuale în dezvoltarea infrastructurii IT a întreprinderilor și arhitecturilor moderne de aplicații corporative este tranziția la arhitectura orientată spre servicii (arhitectura orientată spre servicii, SOA). Această arhitectură presupune crearea și implementarea aplicațiilor și a serviciilor distribuite pe baza utilizării diferitelor tehnologii, cum ar fi serviciile web (ca tehnologii similare, sunt susținute pe scară largă de către platforma Eclipse și Instrumentele de dezvoltare Microsoft).

Cele mai populare platforme

Una dintre cele mai notabile tendințe de recent se manifestă în unificarea platformelor pentru care sunt create cele mai multe aplicații, iar alocarea a doi lideri printre care este Windows / Microsoft .Net și Java / J2ee. Acest lucru se datorează în mare măsură capacității acestor platforme pentru a asigura capacitatea de a crea aplicații, gradul de protecție a datelor în care, precum și capacitatea de a crea interfețe de utilizator și de a oferi acces la servicii și date, îndeplinesc cerințele moderne. Cu toate acestea, tendința specificată nu a fost de mult timp nouă pentru oricine.

De asemenea, remarcăm că, datorită creșterii rapide a interesului clienților corporativi la evoluția dispozitivelor mobile, dezvoltarea acestei categorii de aplicații și platforme mobile în sine devine din ce în ce mai populară printre dezvoltatori.

Popularitatea creșterii platformelor mobile

Astăzi, aplicațiile mobile sunt dezvoltate aproximativ pentru o jumătate de zeci de platforme. Potrivit companiei de cercetare EVANS DATA CORP efectuată la sfârșitul anului trecut. Sondaj de câteva sute de dezvoltatori aplicatii mobilePrincipalii lideri din acest domeniu sunt.NET Compact Framework și ediția mobilă Java 2 (J2ME), precum și alte platforme Microsoft pentru dispozitivele mobile și Linux încorporate (fig.1).

Smochin. 1. Popularitate platforme mobile Printre dezvoltatori (sursa - alegere a dezvoltatorilor platforme wireless. Clasamente definitive ale platformei wireless de către dezvoltatori din întreaga lume - Evans Data Corp., septembrie 2005)

Cu toate acestea, potrivit aceluiași sondaj, în ceea ce privește dezvoltarea dezvoltatorilor la calitatea instrumentelor și nivelul de dezvoltare a comunității, platforma Nokia Series 60 este acum ocupată. Conform predicțiilor aceluiași element de date Corp., ponderea Este de așteptat Linux încorporat pe piața platformelor mobile.

În ceea ce privește dezvoltarea aplicațiilor, pentru platforme Windows. Instrumentele mobile de la Microsoft există de mai mulți ani. Instrumentele Borland sunt disponibile pentru platformele .NET Compact Framework, Symbian și J2ME. În plus, există câteva instrumente pentru dezvoltarea aplicațiilor mobile din Sybase, precum și un număr de alți producători.

Instrumente de dezvoltator astăzi

Specializarea îngustă a dezvoltatorilor a condus la o dezvoltare activă în ultimii cinci ani de așa-numitul sprijin ciclu de viață Aplicații destinate echipelor mari dezvoltatorilor. Instrumente similare includ mijloacele de gestionare a cerințelor, modelarea proceselor de afaceri, aplicații și date, testarea și optimizarea aplicațiilor, gestionarea colectivă a lucrărilor, controlul versiunilor, managementul schimbării. Mulți furnizori de frunte prin: IBM, asociații de calculator, Borland, Microsoft, Oracle și un număr de alții produc astfel de instrumente.

Recent, multe companii specializate anterior în crearea de medii de dezvoltare (în special IBM, asociații de calculator, borland, Microsoft, Oracle și Sybase) au o atenție deosebită la instrumentele unui astfel de scop. Necesitatea de a integra reciproc toate aceste instrumente "grele" a condus la crearea de platforme întregi pentru dezvoltarea de software bazate pe roluri și gestionarea ciclului de viață a aplicațiilor - astfel de platforme sunt acum fabricate de Borland, IBM, companiile Microsoft și lângă alții.

De regulă, utilizarea unor astfel de instrumente necesită luarea în considerare a procesului de dezvoltare a software-ului ca proces de producție și, în consecință, crearea și implementarea metodologiilor pentru gestionarea acestui proces similar cu metodele de gestionare a proceselor de producție materiale. Introducerea unor astfel de tehnici este adesea realizată prin implementarea proiectelor IT (și nu ieftine) pentru implementare în companii - dezvoltatori de platforme integrate de dezvoltare a aplicațiilor pentru a automatiza și a optimiza procesele care însoțesc dezvoltarea, inclusiv gestionarea sarcinilor, managementul cerințelor, realizarea standarde de calitate.

Versiuni gratuite ale instrumentelor comerciale

Dacă vă amintiți ce sa întâmplat cu instrumentele de dezvoltare în ultimii doi ani, se poate observa că tendința a fost recent manifestată în mod activ de către cei mai importanți producători ai dezvoltării versiunilor lor gratuite (și cu bine funcționalitate) Pentru a atrage atenția dezvoltatorilor la potențialul și oportunitățile de produse și platforme complete pentru care sunt destinate. În special, Borland produce aproximativ trei ani versiuni gratuite Unele dintre evoluțiile lor. Microsoft a fost recent lansat o familie de produse Express, care include mai multe instrumente pentru dezvoltarea formularelor Windows și a aplicațiilor ASP .NET. Oracle, la rândul său, a oferit, de asemenea, accesul gratuit la dezvoltatori la instrumentul Oracle JDeveloper 10G.

Open Source Tools.

Există o altă caracteristică a tendinței pieței moderne pentru instrumentele de dezvoltare, este o creștere activă a popularității platformelor și uneltelor open source, care este în prezent investită de o mulțime de fonduri de către societăți comerciale, inclusiv atât de cunoscuți producători de platforme ca IBM , Novell și Oracle. Printre exemplele cele mai izbitoare ar trebui să fie dezvoltarea activă a mediului Eclipse - o platformă universală de dezvoltare deschisă compatibilă cu numeroasele limbi, platforme de implementare și tehnologii, precum și proiectul Mono al părții platformei platformei .NET pentru sistemul de operare Linux (Compilii și alte instrumente sunt produse în prezent în mod activ).

Proiectul Eclipse a fost găsit în 1998 de IBM, care și-a stabilit scopul de a crea un mediu integrat de dezvoltare Java a unei noi generații extinse de instrumentele integrate încorporate în ea, forțele mai multor furnizori de instrumente Java. În acest scop, IBM Corporation la sfârșitul anului 2001 a furnizat partea comunitare Open Source din Codul sursă al instrumentelor sale de dezvoltare a aplicațiilor Java WebSphere Studio și a format consorțiul Eclipse (incluse reprezentanți ai sistemelor software din Borland, IBM, Merant, QNX, rațional Software, Red Hat, Suse, Togethersoft și WebGain) pentru a gestiona dezvoltarea în continuare a acestui mediu de dezvoltare, transformat mai târziu într-o organizație independentă de Eclipse Foundation, care are 115 de membri astăzi.

Astăzi, după cinci ani de la momentul creației sale, platforma Eclipse a devenit atât de populară încât a început să o depășească de pe piață instrumente comerciale utilizate pe scară largă (de exemplu, unele instrumente de dezvoltare Java). Astăzi, ponderea instrumentelor de dezvoltare a aplicațiilor Java, ocupată de Eclipse, este de aproximativ 50%. În același timp, în cursul anului precedent, tendința de a transforma eclipsa din mediul de dezvoltare Java la platforma de integrare a instrumentului pentru întregul ciclu de viață al dezvoltării aplicațiilor - recent, astfel de proiecte au fost lansate ca creând un mediu de modelare grafică, instrumente pentru servicii orientate în consorțiul Eclipse și, de asemenea, lansat versiuni actualizate ale instrumentelor de testare, analize de afaceri, instrumente de aplicații web.

În ceea ce privește mijloacele reale de dezvoltare a aplicațiilor, platforma Eclipse este în prezent creată de mediul de dezvoltare pentru PHP, Fortran, Macromedia Flex; Se planifică emiterea unui număr de instrumente pentru dezvoltarea aplicațiilor pentru platforme încorporate și mobile. Pentru platforma Eclipse, există mijloace comerciale de dezvoltare a companiilor IBM, Borland și SAP.

Cele mai populare medii de dezvoltare

Potrivit unui sondaj de 1200 de dezvoltatori realizat în luna iunie a acestui an de către compania de cercetare Evans Data Corp, cel mai utilizat mediu de dezvoltare sa dovedit a fi Microsoft Visual Studio .NET (figura 2).

Smochin. 2. Frecvența de utilizare a mass-mediei de dezvoltare (Sursa - Evans "Evans Data Corp., iunie 2006)

Potrivit aceluiași sondaj, cel mai popular în ceea ce privește funcționalitatea mediului de dezvoltare a aplicațiilor sa dovedit a fi IBM Rational Application Development, recunoscut ca părțile la un sondaj ca instrument de modelare și asamblare a aplicațiilor și cu cel mai bun set de exemple ( Figura 3).

Rezultatele acestui sondaj reflectă tendințele deja menționate în prevalența celor două platforme cele mai populare (Windows / Microsoft .NET și Java / J2EE - aproape toate mediile de dezvoltare populare sunt destinate acestor platforme) și creșterea popularității fondurilor și a dezvoltării platforme cu sursa deschisa (După cum reiese din prezența Eclipsei în cele cinci cele mai populare medii de dezvoltare).

Astfel, tendințele actuale ale dezvoltării tehnologiilor de dezvoltare a aplicațiilor includ o scădere a ponderii dezvoltării aplicațiilor în proiectele IT, o tranziție treptată de la soluțiile la nivel scăzut la producția în masă a soluțiilor standard, o aplicare din ce în ce mai activă a instrumentelor de dezvoltare a dezvoltării ( inclusiv proiecte de implementare a platformelor integrate pentru dezvoltarea aplicațiilor). Recent, interesul pentru crearea de aplicații pentru platformele mobile a consolidat, de asemenea,. Tendința caracteristică a ultimilor ani este, de asemenea, apariția unor unelte de înaltă calitate open source. Este posibil ca aceste tendințe să continue și mai mulți ani.