Studiul instrumentelor de dezvoltare software pentru întreprinderi. Unelte de dezvoltare software pentru sisteme de instrumente software. Rezultatul execuției programului pe exemplul de control

Software instrument (Instrumente software) - software utilizat în cursul dezvoltării, corectării sau dezvoltării altor programe: editori, compilatoare, depanatoare, programe auxiliare de sistem, pachete grafice etc.

Acestea includ limbaje de programare, medii integrate de dezvoltare a programelor, sisteme CASE etc.

Alegerea unui limbaj de programare

Limbajele de programare care există astăzi pot fi împărțite în următoarele grupuri:

  • limbi universale de nivel înalt;
  • limbaje specializate pentru dezvoltatori de software;
  • limbi de utilizare specializate;
  • limbi de nivel scăzut.

Într-un grup limbi universale de nivel înalt Liderul incontestabil astăzi este limbajul C++. Într-adevăr, are o serie de avantaje:

  • scalabilitate. Limbajul C++ este folosit pentru a dezvolta programe pentru o mare varietate de platforme și sisteme;
  • capacitatea de a lucra la un nivel scăzut cu memorie, adrese, porturi, care, dacă sunt folosite cu neglijență, se pot transforma cu ușurință într-un dezavantaj;
  • C++ are un preprocesor puternic moștenit de la C, dar ca orice alt instrument puternic, trebuie folosit cu grijă;
  • capacitatea de a crea algoritmi generalizați pentru diferite tipuri de date, specializarea acestora și calcule în etapa de compilare folosind șabloane.

În același timp, limbajul C++ are o serie de dezavantaje semnificative:

  • conectarea interfeței unui modul extern prin inserarea preprocesorului a fișierului antet (#include) încetinește serios compilarea atunci când sunt conectate un număr mare de module;
  • lipsa de informații despre tipurile de date la momentul compilării;
  • dificil de învățat și de compilat;
  • unele conversii de tip nu sunt intuitive. În special, operația pe numere nesemnate și semnate produce un rezultat nesemnat.

Pentru C++, există un număr mare de biblioteci de clasă care acceptă crearea unei interfețe utilizator, aplicații client-server, lucrul cu baze de date etc., așa că nu există încă o alternativă la C++. Pentru proiectele secundare, Visual Basic este uneori folosit. Limbajul Java a fost considerat o alternativă la Basic, dar din cauza lipsei unui instrument de dezvoltare a formelor vizuale, rămâne de puțin folos. Obiectul modern Pascal, ca și Pascal, propus de N. Wirth la mijlocul anilor 70 ai secolului XX, rămâne cel mai atractiv pentru predarea bazelor programării datorită simplității, structurii și detectării de către compilator a unui număr mare de nu numai erori sintactice, dar și semantice.

Astăzi, spre deosebire de anii 1960, limbajele de programare sunt rareori create. În ultimii 15 ani, pot fi remarcate doar două noutăți care s-au răspândit pe scară largă - acestea sunt Java (Sun Microsystems, 1995), care a devenit popular în mare parte datorită tehnologiei utilizării sale pe Internet și apariției unui astfel de concept precum o mașină virtuală Java și C # (Microsoft, 2000), bazată pe C++.

Creatorul limbajului este angajatul Microsoft Andreas Hejlsberg. A devenit celebru în lumea programatorilor cu mult înainte de a veni la Microsoft. Hejlsberg a fost unul dintre cei mai importanți dezvoltatori ai unuia dintre cele mai populare medii de dezvoltare - Delphi. La Microsoft, a fost implicat în crearea unei versiuni de Java - J++, așa că nu are lipsă de experiență în limbaje de scriere și medii de programare. După cum a remarcat însuși Andreas Hejlsberg, C# a fost creat ca limbaj de programare pentru componente, iar acesta este unul dintre principalele avantaje ale limbajului, care vizează posibilitatea reutilizarii componentelor create.

Alte avantaje ale limbajului C#:

  • păstrează cele mai bune caracteristici ale limbajelor de programare populare C/C++ pe care se bazează. În acest sens, trecerea programatorilor de la C++ la C # este facilitată;
  • este mai simplu și mai fiabil decât C++. Simplitatea și fiabilitatea se datorează în principal faptului că C#, deși este permis, nu încurajează astfel de caracteristici C++ periculoase precum pointerii, adresarea, dereferențiarea, aritmetica adresei;
  • este un limbaj complet orientat pe obiecte, unde chiar și tipurile construite în limbaj sunt reprezentate prin clase;
  • implementează posibilitățile de moștenire și universalizare;
  • ia în considerare toate caracteristicile Framework .Net, deoarece C# a fost creat în paralel cu acest mediu;
  • Cu framework-ul .Net construit pe deasupra sistemului de operare, programatorii C# beneficiază de aceleași beneficii de mașină virtuală ca și programatorii Java. Eficiența codului este chiar îmbunătățită deoarece CLR este un compilator de limbaj intermediar, în timp ce JVM este un interpret de cod de octeți;
  • o bibliotecă cadru puternică susține comoditatea de a construi diferite tipuri de aplicații în C #, permițându-vă să construiți cu ușurință servicii Web, alte tipuri de componente, trebuie doar să salvați și să preluați informații dintr-o bază de date și alte depozite de date;
  • este o sursă de cod sigur și eficient.

În plus față de limbile descrise mai sus, grupul universal

apartine si lui Modula, Ada, COBOL, FORTRAN si altii. Fiecare dintre limbile de mai sus are propriile sale caracteristici și, în consecință, propriul domeniu de aplicare. În prezent, limbajele de programare universale sunt utilizate în diferite domenii ale activității umane, cum ar fi:

  • calcul științific (limbi C++, FORTRAN, Java);
  • programarea sistemului (limbi C++, Java);
  • procesarea informațiilor (limbi C++, COBOL, Java);
  • inteligență artificială (LISP, Prolog);
  • activitate de publicare (Postscript, TeX);
  • prelucrarea informațiilor de la distanță (Perl, PHP, Java, C++);
  • descrierea documentelor (HTML, XML).

De-a lungul timpului, unele limbi s-au dezvoltat, au dobândit noi caracteristici și au rămas la cerere, altele și-au pierdut relevanța și astăzi sunt de interes pur teoretic (Focal, PL / 1 etc.). Acest lucru se datorează în mare parte următorilor factori:

  • prezența unui mediu de programare care susține dezvoltarea de aplicații într-un limbaj de programare specific;
  • ușurința de întreținere și testare a programelor;
  • costul dezvoltării utilizând un anumit limbaj de programare;
  • claritatea și ortogonalitatea construcțiilor limbajului;
  • aplicarea unei abordări orientate pe obiecte.

Limbaje specializate pentru dezvoltatori folosit pentru a crea anumite tipuri de software. Acestea includ:

  • limbi baze de date;
  • limbaje pentru crearea aplicațiilor de rețea;
  • limbaje pentru crearea sistemelor de inteligență artificială etc.

Limbi de utilizare specializate fac de obicei parte din mediile utilizatorilor profesioniști, sunt concentrate îndeaproape și nu sunt utilizate de dezvoltatorii de software.

Limbi de nivel scăzut permit programarea aproape la nivelul instrucțiunilor mașinii. Totodata se obtin cele mai optime programe atat din punct de vedere al timpului de executie cat si din punct de vedere al cantitatii de memorie necesara. Dezavantajul acestora este că nu suportă principiile programării structurate.

În zilele noastre, limbajele de tip asamblare folosesc în general:

  • la scrierea unor programe relativ simple, pentru a accesa mijloace tehnice, precum drivere;
  • ca inserții în programe în limbaje de nivel înalt, de exemplu, pentru a accelera transformarea datelor în bucle cu un număr mare de repetări.

Într-o măsură mai mare, alegerea unui limbaj de programare este determinată de experiența dezvoltatorului, de cerințele organizației care conduce dezvoltarea sau pur și simplu de o opinie stabilită.

Tehnologia de programare în general, și instrumentele de sprijin pentru dezvoltarea software-ului în special, evoluează atât de rapid încât chiar și o simplă listă a sistemelor de instrumente majore ar ocupa prea mult spațiu în această carte. De aceea, mai jos ne vom concentra pe scurt doar pe câteva proiecte din domeniul tehnologiei de programare care prezintă interes în contextul acestei publicații.

Orice sistem tehnologic dezvoltat trebuie să suporte toate etapele principale ale creării unui pachet software proiectat. Pentru a atinge acest obiectiv în structura generală sistem tipic de sprijin pentru dezvoltarea tehnologică(Fig. 6.3) sunt de obicei izolate baza de date a proiectelor; subsistem de automatizare a proiectării și programării; subsisteme de depanare, documentare și întreținere, A precum și un subsistem pentru gestionarea derulării proiectului.


Orez. 6.3. Structura generală a unui sistem tipic de sprijin pentru dezvoltarea tehnologică

Sistemele avansate de sprijin pentru dezvoltarea bibliotecii sunt utilizate în prezent în întreaga lume în orice proiect software serios. Dar, în marea majoritate a cazurilor, astfel de sisteme au atins nivelul de comoditate pentru programatorii calificați să lucreze cu ele. Ne interesează în primul rând sistemele și proiectele care tind să reprezinte în mod explicit cunoștințele tehnologice, chiar dacă nu se bazează pe idei și metode AI.

Un astfel de proiect - Gandalf - se concentrează pe generarea automată de sisteme de dezvoltare software. Cercetările efectuate în cadrul proiectului Gandalf se referă la trei aspecte ale suportului de proiectare software: managementul proiectelor, controlul versiunilor și programarea incrementală, precum și integrarea acestora într-un singur mediu. Managementul în mediul Gandalf se bazează pe presupunerea că proiectul în curs de dezvoltare ar trebui tratat ca un set de tipuri de date abstracte pe care pot fi efectuate doar anumite operațiuni. Instrumentul care implementează acest concept a fost sistemul SDC (Software Development Control), care este un set de programe implementate inițial în limbajul Shell în sistemul UNIX, iar ulterior traduse în limbajul C.

Cercetările în domeniul controlului versiunilor au fost demarate de L. Kooprider pe baza proiectului FAFOS, unde au fost analizate inițial posibilitățile de creare a unei familii de sisteme de operare. A fost elaborată o notație pentru a descrie interacțiunea dintre subsisteme, pentru a descrie diferite versiuni de subsisteme (codul sursă și obiect, documentație etc.) și pentru a descrie mecanismele care funcționează în stadiul de dezvoltare (compilare, editare link-uri etc.). Apoi a fost creat un limbaj special Intercol ca mijloc de a descrie relația și versiunile modulelor din sistem. Și, în cele din urmă, cunoștințele despre cum să construiți un sistem din părți fără a forța utilizatorul să o facă a fost integrată în sistem. Ca urmare a acestei lucrări, a fost creat sistemul SUCE, care a urmărit diferențele dintre implementări (versiuni care oferă de fapt cod pentru un set de specificații) și compoziții (versiuni care definesc noile subsisteme ca grupuri de subsisteme existente).



În sistemul LOIPE (Language-Oriented Incremental Programming Environment), compilarea incrementală se realizează la nivelul unei singure proceduri. Avantajul acestei abordări este că atunci când procedura este corectată la nivel de obiecte sau tipuri locale, doar aceasta este recompilată. Dacă specificația se modifică, atunci toate procedurile care depind de aceasta sunt recompilate. Interfața cu utilizatorul cu sistemul LOIPE se bazează pe subsistemul de editare orientat sintactic ALOE (A Language-Oriented Editor). Scopul dezvoltării acestui subsistem a fost de a explora posibilitatea creării și utilizării editorilor orientați sintactic ca bază pentru mediile de programare.

O analiză a literaturii din ultimii ani privind tehnologia de programare arată că o nouă ramură în tehnologia dezvoltării industriale și implementării sistemelor software complexe și semnificative este Tehnologia CASE(Inginerie software asistată de calculator).

Inițial, tehnologia CASE a apărut în proiectele de realizare a sistemelor industriale de prelucrare a datelor. Această împrejurare și-a pus amprenta asupra instrumentelor tehnologiei CASE, unde cea mai serioasă atenție a fost acordată, cel puțin în primele sisteme CASE, suportului pentru proiectarea fluxurilor de informații. În prezent, există o schimbare de la concentrarea asupra sistemelor de procesare a datelor, iar instrumentele tehnologice CASE devin din ce în ce mai universale.

Toate instrumentele de asistență tehnologică CASE sunt împărțite în două grupuri mari: CASE-Seturi de instrumenteși bancuri de lucru CASE. Nu există echivalente rusești bune pentru acești termeni. Cu toate acestea, cele dintâi sunt adesea denumite „cuferă de instrumente” (pachete de dezvoltare, pachete tehnologice), iar cele din urmă ca „mașini de producție de programe” (linii de producție).

A-prioriu CASE-Set de instrumente- o colecție de instrumente software integrate care oferă asistență automată în rezolvarea problemelor de același tip în procesul de creare a programelor.

Astfel de pachete folosesc un „depozit” comun pentru toate informațiile tehnice și de management ale proiectului (depozitar), sunt prevăzute cu o interfață de utilizator comună și o interfață unificată între instrumentele individuale ale pachetului. De regulă, CASE-Toolkit se concentrează în jurul suportului de dezvoltare pentru o fază a producției de software sau un tip de aplicație.

Toate cele de mai sus sunt valabile și pentru CASE-WorkBench. Dar aici, în plus, se oferă suport automat pentru analiza sarcinilor de producție de software care urmează să fie rezolvate, care se bazează pe ipoteze generale despre procesul și tehnologia unor astfel de activități; Este suportat transferul automat al rezultatelor lucrării de la o etapă la alta, începând din etapa de proiectare și terminând cu înstrăinarea produsului software creat și întreținerea acestuia.

Prin urmare, CASE-WorkBench este o „închidere” naturală a tehnologiei pentru dezvoltarea, implementarea și întreținerea software-ului.

În prezent, un sistem „tipic” de suport pentru tehnologia CASE are funcționalitatea prezentată în Fig. 6.4.

Orez. 6.4. Funcționalitatea unui sistem tipic de suport tehnologic CASE

După cum reiese din această diagramă H, în mediul CASE ar trebui suportate toate etapele principale de dezvoltare și întreținere a proceselor de creare a sistemelor software. Cu toate acestea, nivelul unui astfel de sprijin variază semnificativ. Deci, de exemplu, dacă vorbim despre etapele analizei și proiectării, majoritatea pachetelor de instrumente acceptă formulare de ecran și raportare, prototipare, detectarea erorilor. O parte semnificativă a acestor fonduri este destinată computerelor. Mulți acceptă metodologii utilizate pe scară largă, cum ar fi DeMarco sau Gane/Sarson Structural Analysis, Yourdan/Jackson Structural Design și câteva altele. Există pachete specializate pentru dezvoltatori pentru crearea de sisteme informatice, precum Ana Tool (Advanced Logical Software) pentru Macintosh; CA-Universe/Prototype (Computer Associates International) pentru PC. Mediile CASE sunt, de asemenea, disponibile pentru a sprijini dezvoltarea sistemelor în timp real.

Printre dezvoltatorii de software, există două evaluări ale acestei abordări: unii dintre ei consideră că tehnologia CASE schimbă radical procesele de dezvoltare și operare software, alții neagă acest lucru și lasă în urmă instrumentelor CASE doar funcția de automatizare a muncii de rutină. Cu toate acestea, analiza literaturii de specialitate arată că instrumentele CASE încă „schimbă” tehnologiile de dezvoltare software de la managementul execuției proiectelor către metoda de prototipare. Și această schimbare, în opinia noastră, este o tendință extrem de importantă în tehnologia modernă de programare.

Ministerul Republicii Kazahstan

Bilim zhane sală de educație și știință

Ministrul Ligilor Republicii Kazahstan

D. Serikbaev la yndagy EKSTU

SHKMTU-i. D. Serikbaeva

APROBA

Decanul FITIB

M. Kylyshkanov

2015

BAҒDARLAMANS AZIRLEUDIN ҚҰRAL-SAYMANDARY

Zhұmys moduldіk oқu bagdarlamasy zhane programa

INSTRUMENTE DE DEZVOLTARE A PROGRAMELOR

Numărul de credite disciplinare: 3

Ust-Kamenogorsk

Un curriculum modular de lucru și o programă au fost elaborate la Departamentul de Sisteme Informaționale și Modelare Calculatoare pe baza Standardului de Stat al Învățământului Obligatoriu al Republicii Kazahstan GOSO RK 5.04.019 - 2011 Învățământ superior. Licență, Curriculum de lucru, Curriculum model și Modular Major.

Discutate la o ședință a Departamentului de Sisteme Informaționale și Modelare Calculatoare

Cap departamentul N. Denisov

Aprobat de consiliul educațional și metodologic al FITIB

președinte G. Uazirkhanova

Proces-verbal Nr ____ din data de ____ ____________ 2015

Dezvoltat

Conferențiar al Departamentului T. Balova

lector superior catedra I. Uvalieva

Controlor I. Fazylova

1 CARACTERISTICILE DISCIPLINEI, LOCUL Ei ÎN PROCESUL EDUCAȚIONAL

1.1 Rezumatul disciplinei studiate

Disciplina „Instrumente de dezvoltare a programelor” (denumită în continuare ISWP) se referă la o componentă obligatorie a ciclului disciplinelor majore a programului de învățământ de specialitatea 5B070400 – „Inginerie informatică și software” și face parte din modulul de dezvoltare a programului din programul educațional modular. de specialitatea 5B070400 - „Inginerie informatică și software” .

Conținutul disciplinei studiate vizează dezvoltarea cunoștințelor studenților în domeniul tehnologiilor moderne de programare și al instrumentelor pentru sprijinirea acestora, contribuie la formarea unui specialist IT cu o perspectivă largă și o cultură a gândirii, pregătit pentru utilizare în domeniul instrumente moderne CASE pentru proiectarea produselor software.

1.2 Scopurile și obiectivele studierii disciplinei

Scopul studierii disciplinei „Instrumente de dezvoltare a programelor” este familiarizarea studenților cu cunoștințele teoretice din domeniul tehnologiilor de proiectare și asigurarea ciclului de viață al sistemelor software, precum și dobândirea de competențe practice în utilizarea tehnologiilor moderne axate pe modelarea proceselor de afaceri și proiectarea. sisteme software care utilizează tehnologii CASE (Ingineria de sisteme/software asistată de computer, CASE). Scopul disciplinei este în concordanță cu obiectivele generale ale programului educațional modular al specialității.

Abordarea bazată pe competențe în predarea disciplinei „Instrumente de dezvoltare a programelor” definește principalele sale sarcini:

Să formeze un sistem de cunoștințe în domeniul ingineriei software (ingineria software) și al programării (programarea computerelor) în rândul studenților;

Să familiarizeze studenții cu bazele teoretice ale modelării proceselor de afaceri, cu metodologii de proiectare și dezvoltare de produse software și un set de instrumente care asigură ciclul lor de viață;

Dezvoltați abilitățile de utilizare a instrumentelor CASE pentru modelarea structurală și orientată pe obiecte și proiectarea software.


Sarcinile de studiere a disciplinei asigură implementarea cerințelor de pregătire a licențelor în cadrul programului de învățământ 5B070400-„Inginerie Informatică și Software” stabilite în caracteristicile de calificare.

1.3 Rezultatele studiului disciplinei

Rezultatele învățării sunt definite pe baza Descriptorilor Dublin ai nivelului relevant de educație și sunt exprimate prin următoarele competențe:

cunoașteți și înțelegeți:

Modelele ciclului de viață al software-ului și fundamentele teoretice ale metodologiei de proiectare a software-ului;

Principii de clasificare a instrumentelor moderne de dezvoltare software;

Abordări ale modelării și restructurarii proceselor și sistemelor de afaceri;

să poată pune în practică instrumente CASE care sprijină:

Metodologia de modelare funcțională IDEF0;

Metodologia de modelare a evenimentelor IDEF3;

Metodologia de modelare a fluxului de date DFD;

Metodologia de modelare a datelor semantice IDEF1X;

Metodologie de modelare software orientată pe obiecte și metamodel UML;

fiți pregătiți să vă formați judecăți:

Despre alegerea unui model de ciclu de viață pentru un anumit proiect și proiect;

Pe probleme de îmbunătățire a software-ului în cadrul sistemelor informaționale corporative și proiecte mari guvernamentale (de la modelul AS-IS la modelul TO-BE);

Despre semnificația și consecințele activităților lor profesionale, ținând cont de pozițiile sociale, profesionale și etice;

dezvoltarea abilităților de comunicare, inclusiv:

dezvoltarea abilităților de învățare care contribuie la:

Dezvoltare profesională și personală, dezvoltare profesională în domeniul standardelor internaționale de inginerie software;

Dobândirea și utilizarea independentă în practică a noilor cunoștințe și abilități în lucrul cu instrumentele CASE, inclusiv în noi domenii de cunoștințe care nu au legătură directă cu domeniul de activitate.

Suportul educațional și metodologic al disciplinei vizează formarea cu succes a acestor rezultate ale învățării.

1.4 Cerințe preliminare

Pentru asimilarea deplină a materialului pe disciplina ISRP este necesar să aveți cunoștințe în disciplinele legate de tehnologia de algoritmizare și programare.

1.5 Cerințe ulterioare

Cunoștințele dobândite sunt necesare pentru stăpânirea calitativă a materialului disciplinelor: interfețe ale sistemelor informatice și tehnologii Internet; sisteme si proiectare de baze de date personale; proiectarea sistemelor informatice si programarea aplicata. Cunoștințele dobândite sunt necesare pentru formarea de succes în dezvoltarea de software.

2.1 Plan tematic


Numele subiectului, conținutul acestuia

și alte surse

laboriozitate,

Modulul 1 „Instrumente CASE pentru proiectarea structurală și funcțională a instrumentelor software”

Cursuri de curs

Subiectul 1 „Introducere în disciplină”.

Noțiuni de bază. Clasificarea instrumentelor moderne de dezvoltare software. Scopul și obiectivele instrumentelor de dezvoltare software. Istoria dezvoltării instrumentelor.

Tema 2 „Metode de proiectare software”.

Cerințe generale pentru metodologia și tehnologia proiectării software. Un ghid pentru corpul de cunoștințe SWEBOK Software Engineering. Revizuirea metodelor de proiectare software. Prezentare generală a setului de instrumente de proiectare software

Tema 3 „Fundamentele metodologiei de proiectare software”.

Proiectarea programelor ca sisteme complexe. Ciclul de viață al software-ului. Principalele procese ale ciclului de viață al software-ului. Procese auxiliare ale ciclului de viață al software-ului. Procesele organizaționale ale ciclului de viață al software-ului

Subiectul 4 „Modele ciclului de viață al software-ului”.

Conceptul unui model de ciclu de viață al software-ului. Modelul clasic al procesului de dezvoltare software. Prototiparea. Strategia de dezvoltare incrementală. Model de proces în spirală. Modelul de dezvoltare a aplicațiilor RAD

Tema 5 „Metodologii de dezvoltare software”.

XP - proces sau programare extremă. Metodologia procesului unificat rațional (RUP). Metodologii flexibile (agile). Alegerea unui model de ciclu de viață pentru un anumit proiect. Procedura de dezvoltare software

Tema 6 „CAZ Modern – tehnologii”.

CAZ - tehnologii și utilizarea lor. Caracteristicile generale și clasificarea instrumentelor moderne CASE. Tehnologii pentru implementarea și dezvoltarea instrumentelor CASE. Evaluarea instrumentelor CASE

Tema 7 „Modelarea proceselor de afaceri”.

Conceptul de proces de afaceri. Restructurarea proceselor de afaceri. Modelarea proceselor de afaceri. Metode de modelare a proceselor de afaceri

Tema 8 „CASE-tehnologii de analiză structurală și proiectare software”.

Metodologia analizei si proiectarii structurale. IDEF0 Metodologia de modelare funcțională. Metodologia de modelare a evenimentelor IDEF3. Simularea fluxurilor de date DFD. Metodologia de modelare a datelor semantice IDEF1X

Studii de laborator

Subiectul 1 „Dezvoltarea modelului funcțional IDEF0”

Subiectul 2 „Dezvoltarea modelelor de proces de informare IDEF3 și a fluxurilor de date DFD”

Subiectul 3 „Metodologia de modelare a datelor semantice IDEF1X”

Subiectul 1 „Rapoarte și diagrame frați IDEF0-model”

Tema 2 „Instrumente pentru dezvoltarea colectivă a modelelor funcționale în mediul BPwin”

Subiectul 3 „Crearea rapoartelor în ERwin”

Subiectul 1 „Crearea diagramelor FEO”

Subiectul 3 „Crearea unei relații de clasificare în modelul IDEF1X”

Modul total 1

Modulul 2 „Instrumente CASE pentru proiectarea software orientată pe obiecte”

Subiectul 9 „Elementele de bază ale modelării software orientate pe obiecte și ale metamodelului UML”.

Ierarhia meta descrierilor utilizate în modelarea software-ului vizual. Scopul și nivelurile modelelor UML. Vizualizări în UML

21, 22, 23, 24, 25

Subiectul 10 „Limbajul unificat de modelare UML. Modelul UML.

UML este un limbaj de modelare unificat. Entități în UML. Relațiile în UML

22, 23, 24, 25, 26, 27

Subiectul 11 ​​„Limbajul de modelare unificat UML. Diagrame UML.

Tipuri de diagrame UML. Diagrame UML generale. Diagrame speciale UML

22, 23, 24, 25, 26, 27

Subiectul 12 „Limbajul de modelare unificat UML. Mecanisme generale ale UML.

Folosind mecanisme UML comune. Proprietățile generale ale modelului. Puncte semantice

22, 23, 24, 25, 26, 27

Subiectul 13 „Descrierea generală a sistemului din punctul de vedere al reprezentării UML”.

Reprezentări ale UML din punctul de vedere al generalizării descrierilor. Mecanisme generale ale UML. Proprietățile generale ale modelului

22, 23, 24, 25, 26, 27

Subiectul 14 „Descrierea funcționalității dezvoltării software”.

Managementul riscului de proiect. Procedura de dezvoltare software. Documentația software. Managementul Cerintelor

Subiectul 15 „Tendințe în știință și tehnologie și segmentele cu cea mai rapidă creștere de pe piața IT globală”.

Trei platforme în evoluția pieței IT. Noi tendințe IT: Prognoza Gartner. Cele mai importante tendințe de dezvoltare IT din lume pentru următorii 3-5 ani

Studii de laborator

22, 23, 24, 25, 26, 27

22, 23, 24, 25, 26, 27

22, 23, 24, 25, 26, 27

Munca independentă a elevului sub îndrumarea unui profesor (SROP)

Tema 4. „Constructia diagramelor structurale UML”

22, 23, 24, 25, 26, 27


Subiectul 5. „Construirea diagramelor de comportament UML”

22, 23, 24, 25, 26, 27


Subiectul 6. „Generarea codului programului după modelul UML”

22, 23, 24, 25, 26, 27


Munca independentă a studentului (SRO)

Tema 4. „Constructia diagramelor structurale UML”

22, 23, 24, 25, 26, 27

Subiectul 5. „Construirea diagramelor de comportament UML”

22, 23, 24, 25, 26, 27

Subiectul 6. „Generarea codului programului după modelul UML”

22, 23, 24, 25, 26, 27

Modul total 2

Total după disciplină, credit RK


2.2 Sarcini pentru munca independentă (SROP, SRO)


Durata de executare, cont. o săptămână

formă de control

Termen limită

(numărul săptămânii academice)

Suplimentați sarcina pentru modelul SROP-IDEF0 cu rapoarte și diagrame de arbore de noduri.

Suplimentați sarcina pentru modelul SRO-IDEF0 cu diagrama FEO.

Familiarizați-vă cu metodele de bază de dezvoltare colectivă a modelelor funcționale în mediul BPwin

Ind. sarcină și întrebări suplimentare în timpul apărării. Sarcini de testare

Sarcina pentru SROP:

Efectuați împărțirea modelului IDEF0 și

Analiza ABC.

Sarcina SRO este de a studia elementele modelului de simulare.

Dobândiți abilități practice în utilizarea instrumentelor de dezvoltare a modelelor de colaborare cu elemente de analiză ABC

Sarcina pentru SROP este de a construi un șablon de raport pentru modelul IDEF1X.

Misiunea SRO - pentru a studia munca de creare a unei relații de categorizare în modelul IDEF1X

Aflați cum să creați șabloane de rapoarte utilizând Generatorul de rapoarte din mediul ERwin și să stăpâniți procedurile de lucru cu link-urile de categorizare

Ind. sarcină și întrebări suplimentare în timpul apărării muncii de laborator Sarcini de testare

Atingeți intrarea în mai multe poziții și evenimentele WPF

Obțineți o introducere despre cum să interacționați cu o aplicație WPF folosind

ecran tactil pentru interacțiune interactivă

Ind. sarcină și întrebări suplimentare în timpul apărării muncii de laborator. Sarcini de testare

Proprietăți WPF și declanșatoare de evenimente

Familiarizați-vă cu mecanismul de declanșare WPF pentru crearea unui efect de animație

Ind. sarcină și întrebări suplimentare în timpul apărării muncii de laborator. Sarcini de testare

Utilizarea API-ului Office și a ansamblurilor primare. NetMicrosoft. birou. Interop

Să stăpânească un mecanism simplificat de interacțiune cu COM pentru a extinde metodele practice de organizare a interacțiunii între programe

Ind. sarcină și întrebări suplimentare în timpul apărării muncii de laborator.

Sarcini de testare


2.3 Program pentru finalizarea și livrarea sarcinilor pe disciplină



Literatura principală

1 Rambo J. Proces unificat de dezvoltare software / A. Jacobson, G. Butch, J. Rambo - St. Petersburg: Peter, 2002.-496 p.: ill.

2 tehnologii CASE. Metode şi mijloace moderne de proiectare a sistemelor informaţionale / - M .: Finanţe şi statistică, 1998.- 176 p.

3 Bakhtizin, dezvoltare software: manual. indemnizatie / , . - Minsk: BSUIR, 2010. - 267 p. : bolnav.

4, Analiza și modelarea computerizată a proceselor și sistemelor informaționale /, .- Dialog-MEPhI, 2009. - 416 pagini.

5 ISO/IEC 12207:2008. Sisteme și inginerie software - Procese ciclului de viață al software-ului [Resursă electronică]. - URL: http://www. izo. org/iso/catalogue_detail? csnumber=43447, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

6 GOST R ISO/IEC 12207-2010 Tehnologia informației. Inginerie de sistem și software. Procesele ciclului de viață al software-ului. - M. Editura de standarde, 2011., 115p.

7 GOST R ISO/IEC 11179-2-2012 Tehnologia informației. Registre de metadate (RMD). Partea 2. Clasificare [Resursă electronică]. - URL: http:///Catalog/64/6430.shtml, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

8 GOST R ISO / IEC TO 12182 - 2002. Tehnologia informaţiei. Clasificarea software-ului. - Intrare. 2002 - 06 - 11. - Editura M. Standarde, 2002

9 IEEE Computer Society. SWEBOK [Resursă electronică]. - URL: http://puter. org/web/swebok, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

10, Manual pentru exerciții practice „Abordarea structural-funcțională a proiectării și utilizării CASE-tools” / Perm. stat soacră un.-t. - Perm, 2005. - 245 p.

11 Metodologia Mark McGowan de analiză structurală și proiectare SADT [Trad. din engleză] / arch, akGowan - M .: MetaTechnology, 1993. -240 p.

12 RD 50.1.028-2001. Metodologia de modelare funcțională IDEF0 Ghid Document. Ediție oficială. - M.: Editura IPK Standards, 2000. - 75 p.

13 Modelarea și analiza sistemelor. IDEF-tehnologii: atelier/S. Cheremnykh, I. Semenov, V. Ruchkin.- M.: Finanțe și statistică, 2006. -192 p.

14, Analiza structurală a sistemelor. IDEF - tehnologii/S. Cheremnykh, I. Semenov, V. Ruchkin. - M.: Finanțe și statistică, 2001. – 208 p.

15 Modele structurale de afaceri: DFD-technologies / A. Kalashyan, G. Kalyanov.- M.: Applied information technologies, 2009.- 256 p.

literatură suplimentară

16 IEEE Std. 1320.2–1998. Standardul IEEE privind sintaxa și semantica limbajului de modelare conceptuală IDEFIX97 (obiect IDEF). - Intrare. 25-06-1998. – New York: IEEE, 1998.

17 Modelare eficientă cu AllFusion Process Modeler / V. Dubeikovsky.- M.: Dialog-MEPhI, -2007.- 384 p.

18 Modelarea proceselor de afaceri cu AllFusion Process Modeler / S. Maklakov.- M .: Dialogue-MEPhI, -2004.- 240 p.

19 BPwin și Erwin. CASE-instrumente pentru dezvoltarea sistemelor informatice / S. Maklakov. - Dialog-MEPhI, 2000. - 320 p.

20, IDEF0 Metodologia de proiectare funcțională. Manual pentru cursul „Tehnologia dezvoltării software” pentru studenți. specialist. 40 01 01 Software informatic pentru învățământ cu normă întreagă. - Minsk: BGUIR, 2003. - 24 p.: ill.

21, Modelare UML. Teorie, practică, curs video. - Sankt Petersburg, Literatură profesională, știință și tehnologie, 2010, 640 p.

UML în 22 de limbi. Manualul utilizatorului. A doua editie. - DMK, 2006, 496 p.

23 J. Rambeau, M. Blaha, UML 2.0. Modelare și dezvoltare orientată pe obiect.- Peter, 2007, 544 p.

24 Martin Fowler. UML. Bazele. Un scurt ghid pentru limbajul standard de modelare a obiectelor. Simbol-Plus, 2011., 192p.

25 Limbajul de modelare unificat (UML) [Resursa electronică]. - URL: http://www. uml. org/, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

26 introducere în UML: [Resursa electronică] - Cursuri deschise ale Universității de Tehnologia Informației pe Internet (INTUIT). - Mod de acces http://www. intui. ru/studies/courses/1007/229/info (data accesului: 30.10.2015)

27 modelarea vizuală în mediul IBM Rational Rose 2003: [Resursa electronică] - Cursuri deschise ale Universității de Tehnologii Informaționale pe Internet (INTUIT). - Mod de acces http://www. intui. ru/studies/courses/14/14/info (data acces: 30.10.2015)

28 Simpozionul Gartner/ITxpo [Resursa electronică]. - URL: http://www. /technology/symposium/japan/exhibitor-directory. jsp, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

29 Revizuirea și evaluarea perspectivelor de dezvoltare a piețelor IT globale și ruse / Blogul companiei Moscow Exchange, standarde IT, infrastructură IT [Resursă electronică]. - URL: http://habrahabr. ru/company/moex/blog/250463/, gratuit. - Zagl. de pe ecran (data accesului: 30.10.2015)

4 EVALUAREA CUNOAȘTERII

4.1 Cerințe pentru instructor

Cerințe ale profesorului:

Este obligatorie frecventarea cursurilor și a orelor de laborator, SIWT conform orarului;

Prezența elevilor în clasă se verifică la începutul orelor, în caz de întârziere, elevul trebuie să intre în tăcere în clasă și să se implice în lucru, iar în pauză să explice profesorului motivul întârzierii;

Lucrările de laborator evaluate la puncte trebuie depuse în termenele stabilite; studenții care au susținut cel puțin o lucrare de laborator cu calificativul curent au dreptul la proba la jumătatea semestrului;

Nu se admite promovarea repetată de către elevul de control intermediar, în cazul primirii unei note nesatisfăcătoare;

Telefoanele mobile trebuie închise în timpul orei.

Elevii sunt obligați să vină la ore în ținute de afaceri.

4.2 Criterii de evaluare

Evaluarea tuturor tipurilor de sarcini se realizează conform unui sistem de 100 de puncte.

Controlul curent se desfășoară în fiecare săptămână și include controlul participării la cursuri, orelor practice și efectuării muncii independente.

Controlul limită al cunoștințelor se realizează în săptămâna a 7-a și a 15-a a semestrului sub formă de testare. Evaluarea constă din următoarele tipuri de control:



Examenul la disciplină are loc în cadrul sesiunii de examene sub formă de testare.

Evaluarea finală a cunoștințelor studentului în disciplină include:

40% din rezultatul obținut la examen;

60% din rezultatele performanței academice actuale.

Formula de calcul a notei finale:

unde P1, P2 sunt echivalentele digitale ale primei și, respectiv, celei de-a doua evaluări; E este echivalentul digital al notei la examen.

Nota finală la literă și echivalentul său digital în puncte:



4.3 Materiale pentru controlul final

4.3.1 Modulul 1 „Instrumente CASE pentru proiectarea structurală și funcțională a instrumentelor software”

În conformitate cu standardele internaționale ISO și IEC (International Electrotechnical Commission), tehnologia de programare este

A) una dintre activitățile incluse în ciclul de dezvoltare software

B) procesul de creare a unui program (structură informațională) de către un programator (uman) destinat execuției ulterioare (de către un computer)

C) un set de cunoștințe generalizate și sistematizate, sau știința celor mai bune modalități de a conduce un proces de programare care asigură, în condiții date, obținerea de produse software cu proprietăți date

D) un set de metode și instrumente care vă permit să stabiliți procesul de producție de creare a software-ului

E) un algoritm scris într-un limbaj de programare

F) o secvență de comenzi (operatori, instrucțiuni) ale computerului, a căror execuție duce la rezultatul rezolvării problemei

Instrumentele software sunt:

A) browsere, care oferă o interfață grafică pentru căutarea interactivă, descoperirea, vizualizarea și procesarea datelor în rețea

B) software de întreprindere, ale cărui funcții asigură managementul financiar, un sistem de relații cu clienții, managementul personalului etc.

C) linkere și depanare

D) software utilizat în proiectarea, dezvoltarea, modificarea sau dezvoltarea altor produse software

E) software pentru accesarea conținutului sau resurselor digitale fără a le edita, exemple sunt media playere, browsere web etc.

Compilatorul este:

A) un program care convertește codul sursă scris într-un limbaj de programare de nivel înalt în cod de program executabil care poate fi utilizat pe alte computere fără transformări suplimentare

B) un set de instrumente pentru dezvoltarea de produse software într-un limbaj de programare specific, inclusiv un editor de cod sursă, traducător sau interpret, linker, depanator, biblioteci de subrutine standard etc.

C) un pachet software care este conceput pentru a dezvolta produse software și integrează editori sursă și de resurse, un compilator sau interpret, un linker etc.

D) un modul de sistem de programare sau un program independent care asamblează programul rezultat din module obiecte și module standard de bibliotecă

E) un program care asigură executarea pas cu pas a programului, vizualizarea valorilor curente ale variabilelor, calcularea valorii oricărei expresii a programului și alte funcții

Principalele avantaje ale instrumentelor CASE sunt:

A) Creșterea costurilor de dezvoltare

B) Reducerea costurilor de dezvoltare

C) Complicarea accesului la date

D) Timp de dezvoltare crescut

E) Facilitarea modificărilor sistemului

F) Capacitatea de stocare a datelor

Conform proiectului ICAM (Integration of Computer and Industrial Technologies), metodologia de modelare funcțională a unui mediu sau sistem de producție este asociată cu notația

Elementele principale ale modelului IDEF3 sunt

B) linkuri (linkuri)

C) entitati externe

D) Nodurile

E) fluxuri de date

F) depozite de date

G) entitati externe

H) procese sau lucrări (activitate)

4.3.2 Modulul 2: Instrumente CASE pentru proiectarea software orientată pe obiecte

Riscul asociat cu depășirea bugetului, reacția negativă a clienților sau comunicarea slabă cu utilizatorii:

a) riscul tehnic

B) risc calendaristic

C) risc managerial

D) risc comercial

Principiul de modelare utilizat de UML, conform căruia modelul ar trebui să includă doar acele elemente ale sistemului proiectat care sunt direct legate de îndeplinirea funcțiilor sale sau de scopul propus, alte elemente sunt omise pentru a nu complica procesul de analiză. și studierea modelului, se numește

a) moștenirea

B) încapsulare

C) polimorfism

D) abstractizare

E) multimodel

F) construcţia ierarhică

Diagrama de utilizare UML utilizează următoarele tipuri de entități

B) Cazuri de utilizare

C) Actori

D) Interfeţe

F) State

G) Obiecte

Ce entitate structurală a UML este situată în afara sistemului modelat și interacționează direct cu acesta

O clasa

B) interfață (interfață)

C) actor

D) caz de utilizare

E) artefact

F) nodul

5 FORME DE BAZĂ ȘI METODE DE ANTRENARE

Pentru a crește motivația elevilor de a stăpâni cunoștințele în disciplină, se folosesc următoarele:

Învățare contextuală, care vă permite să identificați legături între cunoștințele specifice și aplicarea lor în practică;

Un model de învățare interactiv care prevede apărarea publică a lucrărilor de laborator sub forma unei prezentări, a unui mesaj pe tema SROP și SIW;

Software care permite, la efectuarea lucrărilor de laborator, crearea de grupuri de dezvoltatori de programe, gestionarea proceselor complexe de depanare, testare și programe, ceea ce crește activitatea creativă a studenților, stimulează înțelegerea teoretică a cunoștințelor și căutarea independentă a soluțiilor la problemele unui individ. sarcină;

Tehnologia proiectului, care presupune activități individuale sau colective de sistematizare a cunoștințelor în discipline conexe (module de proiectare baze de date și proiectare IS), sugerând o temă reală de producție;

Formare bazată pe experiența științifică și industrială a cadrelor didactice, care face posibilă activarea elevilor prin asocierea propriei experiențe cu subiectul de studiu;

Tehnologia învăţământului la distanţă.

Pentru formarea sarcinilor individuale cu elemente de cercetare științifică în efectuarea lucrărilor de laborator, sunt utilizate rezultatele cercetării științifice ale oamenilor de știință ai departamentului.

6 TIMP DE CONSULTARE

Consultațiile se desfășoară conform programului profesorului.


1. Instrumente de dezvoltare software.

În procesul de dezvoltare a instrumentelor software, într-o măsură sau alta, se folosește suportul computerizat pentru dezvoltarea PS.

Acest lucru se realizează prin prezentarea a cel puțin unor documente de program ale PS (în primul rând programe) pe suporturi de date computerizate (de exemplu, discuri) și punerea la dispoziție dezvoltatorului PS PS special sau incluse în computer dispozitive speciale creat pentru orice prelucrare a unor astfel de documente.

Ca un astfel de PS special, puteți specifica compilator din orice limbaj de programare.

Compilatorul îl scutește pe dezvoltatorul PS de a fi nevoit să scrie programe într-un limbaj de calculator care ar fi extrem de incomod pentru dezvoltatorul PS - în schimb, el scrie programe într-un limbaj de programare care este convenabil pentru el, pe care compilatorul corespunzător îl traduce automat în limbajul de computer. .

Ca dispozitiv special care sprijină procesul de dezvoltare a unui PS, poate servi emulator orice limbă.

Emulatorul vă permite să executați (interpretați) programe într-o altă limbă decât limba computerului care acceptă dezvoltarea PS, de exemplu, în limba computerului pentru care este destinat acest program.

Un PS menit să sprijine dezvoltarea altor PS va apelați un instrument software pentru dezvoltarea unui PS, iar un dispozitiv informatic special conceput pentru a sprijini dezvoltarea unui PS va fi numit instrument hardware de dezvoltare software.

Instrumentele de dezvoltare PS pot fi utilizate pe parcursul întregului ciclu de viață al PS pentru a lucra cu diferite documente de program. Deci, un editor de text poate fi folosit pentru a dezvolta aproape orice document de program.

Din punctul de vedere al funcțiilor pe care instrumentele le îndeplinesc în dezvoltarea software-ului, acestea pot fi împărțite în următoarele patru grupe:

editori,

analizoare,

convertoare,

instrumente care sprijină execuția programelor.

Editori sprijină proiectarea (formarea) anumitor documente de program în diferite etape ale ciclului de viață.

După cum am menționat deja, pentru aceasta puteți folosi unul dintre unele universale editor de text.

Cu toate acestea, se poate oferi un sprijin mai puternic redactori de specialitate: Fiecare tip de document are propriul editor. În special, în stadiile incipiente ale dezvoltării, mijloacele grafice de descriere (diagrame, scheme etc.) pot fi utilizate pe scară largă în documente. În astfel de cazuri, poate fi foarte util editor grafic.

La etapa de programare (codificare), în loc de un editor de text, poate fi mai convenabil editor controlat sintactic A care este specific limbajului de programare utilizat.

Analizoare efectuează fie prelucrarea statică a documentelor, efectuarea diferitelor tipuri de control al acestora, identificarea anumitor proprietăți ale acestora și acumularea de date statistice (de exemplu, verificarea conformității documentelor cu standardele specificate), fie analiza dinamică a programelor (de exemplu, în scopul de a identificați distribuția timpului programului pe module de program).

Convertoare vă permit să aduceți automat documente într-o altă formă de prezentare (de exemplu, formatoare) sau să traduceți un document de un tip într-un document de alt tip (de exemplu, convertoare sau compilatoare), să sintetizați un document din părți separate etc.

Instrumente care sprijină execuția programelor, vă permit să executați pe computer descrieri ale proceselor sau ale părților lor individuale, prezentate într-o altă formă decât codul mașinii, sau codul mașinii cu posibilități suplimentare de interpretare a acestuia.

Un exemplu de astfel de instrument este codul emulator al altui computer. În acest grup de instrumente ar trebui să fie incluse și diverse dispozitive de depanare.

În esență, fiecare sistemul de programare conține un subsistem de program de rulare care execută cele mai tipice fragmente de program pentru limbajul de programare și oferă un răspuns standard la excepțiile care apar în timpul execuției programului (vom numi un astfel de subsistem suport executiv), - poate fi considerat și ca instrument al acestui grup.

2. Medii de instrumente pentru dezvoltarea și întreținerea software-ului.

În prezent, fiecare sistem de programare nu este asociat cu instrumente separate (de exemplu, un compilator), ci un set logic de instrumente software și hardware care sprijină dezvoltarea și întreținerea unui sistem software într-un anumit limbaj de programare sau concentrat pe orice domeniu specific. Vom numi o astfel de colecție mediu de instrumente pentru dezvoltarea și întreținerea PS.

Pentru astfel de medii instrumentale, este tipic

în primul rând, utilizarea atât a instrumentelor software, cât și a instrumentelor hardware și,

în al doilea rând, o anumită orientare fie către un anumit limbaj de programare, fie către un anumit domeniu.

Mediul instrumental nu trebuie neaparat sa functioneze pe computerul pe care PS-ul dezvoltat cu ajutorul acestuia va trebui folosit. Adesea, o astfel de combinație este destul de convenabilă (dacă doar puterea computerului utilizat o permite): nu este nevoie să se ocupe de computere de diferite tipuri, componentele mediului de instrumente în sine pot fi incluse în PS dezvoltat.

Cu toate acestea, dacă computerul pe care urmează să fie utilizat PS-ul nu este disponibil dezvoltatorilor acestui PS (de exemplu, este ocupat constant cu alte lucrări care nu pot fi întrerupte sau este încă în curs de dezvoltare) sau este incomod pentru dezvoltarea PS, sau puterea acestui computer este insuficientă pentru a asigura funcționarea mediului instrumental necesar, atunci așa-numitul abordare instrumental-obiectivă.

Esența lui constă în că PS-ul este dezvoltat pe un singur computer, numit instrumental, și va fi aplicat pe un alt computer, numit țintă (sau obiect).

Distinge trei clase principale de medii de instrumente pentru dezvoltarea și întreținerea PS

(Fig. 16.1): ·

medii de programare,

locuri de muncă în tehnologie informatică,

sisteme instrumentale ale tehnologiei de programare.

Mediul de programare este destinat

în principal pentru a sprijini procesele de programare (codare), testare și depanare a PS.

Locul de muncă al tehnologiei informatice este axat pe sprijinirea etapelor incipiente ale dezvoltării PS (specificații) și generarea automată a programelor conform specificațiilor.

Sistem de instrumente tehnologice de programare este conceput pentru a sprijini toate procesele de dezvoltare și întreținere de-a lungul ciclului de viață al software-ului și este axat pe dezvoltarea colectivă a sistemelor software mari cu un ciclu de viață lung.

Pentru astfel de sisteme, costul de întreținere depășește de obicei costul de dezvoltare.

Orez. 16.1. Principalele clase de medii de instrumente pentru dezvoltarea și întreținerea PS.

3. Medii de programare a sculelor.

Medii de programare conţin în primul rând

editor de text, care vă permite să proiectați programe într-un anumit limbaj de programare, instrumente care vă permit să compilați sau să interpretați programe în acest limbaj, precum și să testați și să depanați programele rezultate.

În plus, pot exista și alte instrumente, de exemplu, pentru analiza statică sau dinamică a programelor.

Aceste instrumente interacționează între ele prin fișiere obișnuite folosind capabilitățile standard ale sistemului de fișiere.

Există următoarele clase de medii de programare(vezi fig. 14.2): ·

medii de uz general,

medii orientate spre limbaj.

Medii de programare de uz general conțin un set de instrumente software care sprijină dezvoltarea de programe în diferite limbaje de programare (de exemplu, un editor de text, un editor de linkuri sau un interpret pentru limba computerului țintă) și reprezintă, de obicei, o oarecare extensie a capacităților de sistemul de operare utilizat. Pentru a programa într-un astfel de mediu în orice limbaj de programare, veți avea nevoie de instrumente suplimentare care sunt orientate către acest limbaj (de exemplu, un compilator).


Fig.16.2. Clasificarea mediilor de instrumente de programare.

Mediu de instrumente orientat pe limbă programarea este concepută pentru a sprijini dezvoltarea unui sistem software în orice limbaj de programare, iar cunoștințele despre acest limbaj au fost utilizate în mod semnificativ în construirea unui astfel de mediu. Drept urmare, într-un astfel de mediu pot fi disponibile funcții destul de puternice, care țin cont de specificul acestui limbaj.

Astfel de medii sunt împărțite în două subclase:

medii interpretative,

medii conduse sintactic.

Mediu de programare interpretativă oferă interpretarea programelor într-un anumit limbaj de programare, de exemplu. conține în primul rând un interpret al limbajului de programare către care este orientat acest mediu. Un astfel de mediu este necesar pentru limbaje de programare de tip interpretativ (cum ar fi Lisp), dar poate fi folosit pentru alte limbaje (cum ar fi pe un computer instrumental).

Mediu de programare condus sintactic se bazează pe cunoaşterea sintaxei limbajului de programare către care este orientat. Într-un astfel de mediu, în locul unui editor de text este utilizat un editor condus sintactic, permițând utilizatorului să utilizeze diferite modele de construcții sintactice (ca urmare a acestui fapt, programul dezvoltat va fi întotdeauna corect din punct de vedere sintactic). Concomitent cu programul, un astfel de editor își formează (în memoria computerului) arborele de sintaxă, care poate fi folosit de alte instrumente.

4. Conceptul de tehnologie informatică pentru dezvoltarea de software și locurile de muncă ale acestuia.

Există unele dificultăți în dezvoltarea unei definiții riguroase a tehnologiei CASE (tehnologia computerizată pentru dezvoltarea PS).

CASE este o abreviere pentru Computer-Aided Software Engineering (Computer-Assisted Programming Engineering). Dar fără ajutorul (suportul) unui computer, PS-urile nu au fost dezvoltate de mult timp (se folosește cel puțin un compilator).

De fapt, acestui concept i se pune un sens mai restrâns (special), care se estompează treptat (cum se întâmplă întotdeauna când un concept nu are o definiție strictă).

Inițial, CASE a fost înțeles ca ingineria etapelor incipiente ale dezvoltării software (definirea cerințelor, dezvoltarea unei descrieri externe și arhitectura software-ului) folosind suport software (instrumente software).

Acum, CASE poate fi înțeles și ca inginerie a întregului ciclu de viață al software-ului (inclusiv întreținerea acestuia), dar numai în cazul în care programele sunt generate parțial sau complet conform documentelor obținute la etapele incipiente de dezvoltare indicate. În acest caz, tehnologia CASE a devenit fundamental diferită de tehnologia manuală (tradițională) a dezvoltării software: nu numai conținutul proceselor tehnologice s-a schimbat, ci și totalitatea acestora.

În prezent, tehnologia computerizată pentru dezvoltarea PS poate fi caracterizată

Utilizarea suportului software pentru dezvoltarea cerințelor grafice și a specificațiilor grafice ale PS,

Generarea automată de programe în orice limbaj de programare sau în codul mașinii (parțial sau complet),

Suport software pentru prototipare.

Se mai spune că tehnologia informatică pentru dezvoltarea PS este „fără hârtie”, adică. concepute pentru reprezentarea pe computer a documentelor programului.

Cu toate acestea, este destul de dificil să distingem cu încredere tehnologia manuală de dezvoltare a software-ului de tehnologia computerizată bazată pe aceste caracteristici. Aceasta înseamnă că nu a fost evidențiat cel mai esențial din tehnologia computerelor.

În opinia noastră, principala diferență între tehnologia de dezvoltare manuală a software-ului și tehnologia computerelor este următoarea.

Tehnologia manuală se concentrează pe dezvoltarea documentelor care sunt înțelese în mod egal de diferiți dezvoltatori PS, în timp ce tehnologia computerelor se concentrează pe furnizarea de înțelegere (interpretare) semantică a documentelor cu suport software pentru tehnologia computerelor.

Reprezentarea computerizată a documentelor nu înseamnă încă o astfel de înțelegere a acestora. În timp ce înțelegerea semantică a documentelor face posibil ca suportul software să genereze automat programe, iar necesitatea de a asigura o astfel de înțelegere face de dorit diferite forme grafice de documente de intrare. Acesta este ceea ce face posibilă schimbarea rațională a setului de procese tehnologice pentru dezvoltarea și întreținerea software-ului.

Din discuția despre esența tehnologiei computerelor, se pot înțelege schimbările asociate în ciclul de viață al software-ului.

Dacă, atunci când se folosește tehnologia manuală, principalele eforturi în dezvoltarea PS au fost făcute în etapele de programare (codificare) și depanare (testare) efectivă, atunci când se folosește tehnologia computerizată, aceasta a fost la primele etape ale dezvoltării PS (definirea cerințelor). și specificații funcționale).

În același timp, natura documentației s-a schimbat semnificativ: în locul unui întreg lanț de documente informale concentrate pe transferul de informații de la client (utilizator) către diverse categorii de dezvoltatori, se formează un prototip PS care sprijină utilizatorul selectat. interfață și specificații funcționale formale suficiente pentru sinteza (generarea) automată a programelor PS (sau cel puțin o parte semnificativă a acestora).

În același timp, a devenit posibilă generarea automată a unei părți din documentația necesară dezvoltatorilor și utilizatorilor. În loc de programare manuală (codificare) - generarea automată a programelor, ceea ce face inutilă depanarea și testarea independentă a programelor: se adaugă în schimb un control semantic automat profund al documentației.

Natura întreținerii PS se schimbă, de asemenea, semnificativ: toate modificările sunt făcute de întreținător numai la specificații (inclusiv prototipul), alte modificări la PS sunt făcute automat.

Cu acestea spuse Ciclul de viață PS folosind tehnologia computerizată poate fi reprezentată prin următoarea diagramă (Fig. 16.3).


Orez. 16.3. Ciclul de viață al unui instrument software care utilizează tehnologia computerizată.

prototipare vă permite să înlocuiți descrierea indirectă a interacțiunii dintre utilizator și PS cu tehnologia manuală (la determinarea cerințelor pentru PS și descrierea externă a PS) cu alegerea directă de către utilizator a metodei și stilului acestei interacțiuni cu fixare. toate detaliile necesare.

În esență, în această etapă, se face o descriere precisă a interfeței cu utilizatorul, ușor de înțeles pentru suportul software al tehnologiei computerului și cu participarea responsabilă a utilizatorului: dezvoltatorul arată utilizatorului pe monitor diferite opțiuni, iar utilizatorul selectează opțiuni. care sunt acceptabile pentru el, utilizatorul, cu ajutorul dezvoltatorului, introduce denumirile obiectelor informaționale prelucrate de acesta și operațiunile asupra acestora, alege modul de accesare a acestora și le asociază cu diverse ferestre, meniuri, tastaturi virtuale etc. .

Toate acestea se bazează pe prezența în suportul software al tehnologiei informatice a unui shell personalizabil cu o bibliotecă extinsă de spații libere pentru diverse fragmente și detalii de ecran. Ca urmare a acestor acțiuni, se determină carcasa PS - nivelul superior de control al PS. Acest tip de prototipare pare a fi cea mai bună modalitate de a depăși bariera dintre utilizator și dezvoltator.

Dezvoltarea specificațiilor se descompune în mai multe procese diferite.

Dacă excludem stadiul inițial de elaborare a specificațiilor (determinarea cerințelor), atunci aceste procese folosesc metode care duc la crearea de documente formalizate, adică se folosesc limbaje de specificații formalizate. În același timp, metodele grafice de specificații sunt utilizate pe scară largă, conducând la crearea diferitelor scheme și diagrame care definesc destul de formal structura mediului informațional și structura de management a PS. Fragmente de date și descrieri de programe sunt atașate unor astfel de structuri, prezentate în limbaje de specificații algebrice (de exemplu, folosind semantică operațională sau axiomatică) sau limbaje de specificații logice (bazate pe o abordare logică a specificației programului). Astfel de specificații permit ca programele să fie generate în mare măsură sau complet automat.

Control automat al specificațiilor

Sisteme de instrumente ale tehnologiei de programare.

Pentru suportul computerizat pentru dezvoltarea și întreținerea sistemelor software mari cu un ciclu de viață lung, se folosesc sisteme de instrumente cu tehnologie de programare.

Sistemul de instrumente tehnologice de programare este un set integrat de instrumente software și hardware care sprijină toate procesele de dezvoltare și întreținere a sistemelor software mari de-a lungul întregului său ciclu de viață într-o anumită tehnologie.

Următoarele caracteristici principale ale acestei clase de suport informatic rezultă din această definiție: ·

complexitate, ·

concentrare pe dezvoltarea echipei,

certitudine tehnologică,

integrare.

Complexitatea suportului informatic înseamnă că acesta acoperă toate procesele de dezvoltare și întreținere a software-ului și că produsele acestor procese sunt coordonate și interconectate. Astfel, sistemul este capabil să asigure, cel puțin, controlul asupra completității (completitudinii) documentației create (inclusiv a unui set de programe) și asupra coerenței modificării acesteia (versiune). Faptul că suportul informatic acoperă și faza de suport a PS înseamnă că sistemul trebuie să suporte lucrul cu mai multe variante ale PS deodată, orientate către diferite condiții de utilizare a PS și către diferite echipamente asociate acestuia, adică. ar trebui să ofere gestionarea configurației PS.

Axat pe dezvoltarea colaborativăînseamnă că sistemul trebuie să sprijine managementul (managementul) muncii echipei și pentru diferiți membri ai acestei echipe să ofere diferite drepturi de acces la diferite fragmente ale producției de procese tehnologice.

Certitudine tehnologică suport informaticînseamnă că complexitatea sa este limitată la cadrul oricărei anumite tehnologii de programare. Sistemele de instrumente tehnologice de programare sunt sisteme software suficient de mari și costisitoare pentru a justifica cumva supraîncărcarea instrumentelor. Prin urmare, setul de instrumente incluse în acestea este selectat cu atenție ținând cont de nevoile domeniului de studiu, de limbajele utilizate și de tehnologia de programare aleasă.

Suportul computerizat integrat înseamnă:

integrarea datelor,

Integrarea interfeței cu utilizatorul

Integrare prin acțiuni (funcții),

Integrarea datelorînseamnă că instrumentele acționează în conformitate cu o schemă (model) informațională fixă ​​a sistemului, care determină dependența diferitelor fragmente de date (obiecte informaționale) utilizate în sistem unele de altele.

Integrarea interfeței cu utilizatorulînseamnă că toate instrumentele sunt unite printr-o singură interfață cu utilizatorul.

Integrarea acțiuniiînseamnă că, în primul rând, există părți comune ale tuturor instrumentelor din sistem și, în al doilea rând, unele instrumente, atunci când își îndeplinesc funcțiile, pot accesa alte instrumente.

Ținând cont de proprietățile discutate ale sistemelor instrumentale ale tehnologiei de programare, putem distinge t ri componentele lor principale

baza de date de dezvoltare (depozitar),

trusă de instrumente, ·

interfețe.

Depozitar - un computer central de stocare a informațiilor legate de proiectul (dezvoltarea) PS de-a lungul întregului său ciclu de viață.

Toolkit - un set de instrumente care definește capacitățile oferite de sistem echipei de dezvoltare. De obicei, acest set este deschis: în plus față de setul minim (unelte încorporate), conține mijloacele de extindere (unelte importate) și structurat, constând dintr-o parte comună a tuturor uneltelor (miezul) și structurală (uneori înrudite ierarhic) clase de instrumente.

Interfețele sunt împărțite în

1) personalizat

2) sistemic.

Interfața cu utilizatorul oferă dezvoltatorilor acces la instrumente (limbaj de comandă etc.), implementate de shell-ul sistemului.

Interfețe de sistem asigură interacțiunea între instrumente și părțile lor comune. Interfețele de sistem se remarcă ca componente arhitecturale datorită deschiderii sistemului - acestea trebuie utilizate de instrumente noi (importate) incluse în sistem.

Cea mai generală arhitectură a sistemelor instrumentale de tehnologie de programare este prezentată în Fig. 16.4.

Distinge doua clase sisteme de instrumente tehnologice de programare:

1) sisteme de instrumente de sprijin pentru proiecte și

2) sisteme instrumentale dependente de limbaj.

Sistem de instrumente de sprijin pentru proiect- acesta este un sistem deschis care poate sprijini dezvoltarea PS în diferite limbaje de programare după extensia sa corespunzătoare cu instrumente software orientate către limba selectată. Un astfel de sistem conține un nucleu (care oferă, în special, acces la depozit), un set de instrumente care sprijină gestionarea (managementul) dezvoltării PS, instrumente independente de limbajul de programare care sprijină dezvoltarea PS (text și grafică). editori, generatoare de rapoarte etc.), precum și instrumente de extindere a sistemului.

Sistem de instrumente dependent de limbă- acesta este un sistem de sprijinire a dezvoltării de software în orice limbaj de programare, care utilizează în esență specificul acestui limbaj în organizarea activității sale. Această specificitate poate afecta atât capacitățile nucleului (inclusiv structura depozitului), cât și cerințele pentru shell și instrumente.

Un exemplu de astfel de sistem este Ada Programming Support Environment (APSE).


Orez. 16.4. Arhitectura generală a sistemelor instrumentale de tehnologie de programare.

Instrumentele de dezvoltare software sunt un set de instrumente hardware și software care permit scrierea și depanarea programelor pentru sistemele cu microprocesoare cu un grad ridicat de fiabilitate a performanței acestora în sisteme reale.

Acestea includ:

Emulatoare în circuit;

Simulatoare software;

Monitoare de depanare;

Consilii de dezvoltare (consilii de evaluare);

emulatori ROM;

Medii de dezvoltare integrate.

Emulator în circuit- cel mai puternic și versatil instrument de depanare. Acesta este un instrument software și hardware care poate înlocui procesorul într-un sistem real și face procesul de funcționare a controlerului care este depanat transparent, adică ușor de controlat, controlat arbitrar și modificat la voința dezvoltatorului.

Din punct de vedere funcțional, emulatoarele în circuit sunt împărțite în cele conectate la un computer extern și funcționând autonom.

Andocarea cu sistemul care este depanat se realizează folosind un cablu special cu un cap de emulare, care este introdus în locul depanării microcontrolerului sau paralel cu acesta. În acest din urmă caz, microcontrolerul trebuie să aibă un mod de depanare, în care toate ieșirile sale sunt transferate în a treia stare.

Principalele blocuri funcționale ale emulatorului:

Depanator;

Nod de emulare microcontroler;

memorie de emulare;

Subsistemul punct de întrerupere.

Blocuri suplimentare:

Procesor de breakpoint;

trasor;

Profiler (analizor de eficiență a codului);

Cronometru în timp real;

Firmware care oferă posibilitatea de a citi și modifica procesorul emulat;

Firmware care oferă control sincron necesar pentru emulare în sistemele multiprocesor.

Depanator efectueaza:

Managementul procesului de emulare (simulare);

Afișarea stării și conținutului tuturor registrelor și memoriei pe monitor și, dacă este necesar, modificarea acestora (modificarea conținutului acestora).

Depanatorul vă permite să monitorizați simultan progresul programului și să vedeți corespondența dintre textul sursă, imaginea programului în coduri de mașină și starea tuturor resurselor microcontrolerului emulat.

memorie de emulare poate fi folosit în locul ROM-ului sistemului care este depanat și, de asemenea, face posibilă depanarea programului fără sistemul real sau aspectul acestuia. (Nu este nevoie să reprogramați ROM-ul.) Emularea este posibilă în întregime sau în blocuri.

trasor este un analizor logic care funcționează sincron cu procesorul și captează fluxul de instrucțiuni care se execută și starea semnalelor externe selectate.

Procesor de Breakpoint vă permite să opriți execuția programului sau să efectuați alte acțiuni, de exemplu, pornirea sau oprirea trasorului atunci când condițiile specificate de utilizator (de orice grad de complexitate) sunt îndeplinite fără a vă retrage din scara „în timp real”.

profiler vă permite să obțineți următoarele informații pe baza rezultatelor rulării programului depanat:

Numărul de apeluri către diferite secțiuni ale programului;

Timpul alocat executării diferitelor secțiuni ale programului.

Analiza informațiilor statistice furnizate de profiler facilitează identificarea secțiunilor „moarte” sau suprasolicitate ale programelor și, ca urmare, optimizarea structurii programului depanat.

Un mediu de dezvoltare integrat este un set de instrumente software care suportă toate etapele dezvoltării software - de la scrierea codului sursă al unui program până la compilarea și depanarea acestuia - și oferă interacțiune simplă și rapidă cu alte instrumente (depanator-simulator software și programator).

Prezența unui editor de text încorporat, a unui manager de proiect și a unui sistem de management ajută foarte mult dezvoltatorul, salvându-l de o mulțime de acțiuni de rutină. Limita dintre scrierea, editarea și depanarea unui program este neclară.

Există emulatoare concepute pentru a emula microcontrolere ale familiilor Intel MCS 8051, MCS-196, Microchip PIC.

Simulator software- un instrument software care simulează funcționarea microcontrolerului și a memoriei acestuia. Include un depanator, un procesor și un model de memorie. Simulatoarele mai complexe conțin și modele de periferice încorporate (temporizatoare, ADC-uri și sisteme de întrerupere). După ce a încărcat programul în simulator, utilizatorul îl poate rula în mod pas cu pas sau continuu, poate seta puncte de întrerupere condiționate sau necondiționate, poate controla și modifica liber conținutul celulelor de memorie și al registrelor microcontrolerului. Cu acesta, puteți verifica rapid logica execuției programului și corectitudinea operațiilor aritmetice.

Prezența unei interfețe de mediu extern face posibilă salvarea dezvoltatorului de necesitatea de a seta și modifica manual conținutul registrelor de intrare, adică este posibil să se creeze și să se utilizeze în mod flexibil un model de mediu extern de microcontroler care funcționează și interacționează cu programul este depanat conform unui algoritm dat.

O caracteristică a simulatoarelor software este faptul că execuția programelor încărcate în simulator are loc pe o scară de timp diferită de cea reală. Cu toate acestea, prețul mai mic, capacitatea de a depana chiar și în absența unui aspect al dispozitivului depanat fac din simulatoarele software un instrument de depanare foarte eficient.

Monitor de depanare- un program special încărcat în memoria sistemului de depanare și care obligă procesorul să îndeplinească, pe lângă sarcina aplicației, și funcții de depanare:

Încărcarea codurilor de aplicație în memoria fără monitor;

Setarea punctelor de întrerupere;

Porniți și opriți programul încărcat în timp real;

Trecerea prin programul utilizatorului;

Vizualizarea, editarea conținutului de memorie și registre de control.

Programul de monitorizare trebuie conectat la un computer sau monitor extern pentru a vizualiza procesul de depanare.

Principalul avantaj al folosirii unui monitor este costul redus, menținând în același timp capacitatea de depanare în timp real pe microcontrolerul de pe placă. Dezavantajul este distragerea atenției resurselor microcontrolerului pentru procedurile de depanare și comunicare (memorie, întreruperi, canal serial).

Plăci de dezvoltare, sau placile de evaluare, sunt un fel de constructori pentru prototiparea sistemelor de aplicații. Lansarea plăcilor de evaluare este o abordare modernă pentru promovarea microcontrolerelor pe piață. De obicei, toate echipamentele necesare sunt instalate pe placa de circuit imprimat pentru a demonstra capacitățile microcontrolerului, este asigurată comunicarea cu computerul și este prevăzut un câmp pentru montarea circuitelor aplicate de utilizator. Astfel de plăci pot fi utilizate pentru instalarea în echipamente de o serie mică (5 - 20 buc.).

Pentru comoditatea depanării, plăcile de dezvoltare sunt echipate cu cele mai simple instrumente de depanare bazate pe un monitor de depanare pentru microcontrolere cu și fără magistrală externă.

În primul caz, monitorul de depanare este furnizat ca un cip ROM, care este instalat într-un slot (leagăn) de pe placă. Placa are, de asemenea, RAM pentru programele utilizatorului și un canal de comunicare cu computerul. Un exemplu este placa INTEL pentru microcontrolerul 8051.

Pentru microcontrolere fără magistrală externă, placa de dezvoltare are circuite de programare ROM interne ale microcontrolerului încorporate controlate de la un computer extern. Programul de aplicație trebuie să ofere apeluri de funcții de depanare și monitorul însuși. După descărcarea și rularea programului, efectuarea modificărilor necesită ștergerea ROM-ului și suprascrierea unei noi versiuni a programului utilizator.

Programul terminat este obținut prin eliminarea monitorului și a tuturor apelurilor de funcții ale monitorului. Exemple sunt plăcile de dezvoltare de la MICROCHIP pentru controlerele lor PIC, precum și plăcile de dezvoltare pentru depanarea controlerelor lor 80C750 Philips și 89C2051 Atmel.

În general, capacitățile acestei abordări (placă de dezvoltare + monitor) nu sunt la fel de versatile ca și capacitățile unui emulator în circuit și trebuie luată în considerare devierea resurselor controlerului către modul de depanare. Cu toate acestea, un set complet de instrumente software și hardware care vă permit să începeți instalarea și depanarea unui sistem de aplicații fără pierderi de timp este în multe cazuri un factor decisiv, ținând cont de costul mai mic, comparativ cu un emulator universal.

emulatoare ROM- acestea sunt instrumente software și hardware care vă permit să înlocuiți ROM-ul de pe placa care este depanată și să înlocuiți RAM, unde programul este încărcat de pe computer printr-unul dintre canalele de comunicație standard. În acest caz, încearcă să evite mai multe cicluri de reprogramare a ROM-ului. Metoda este potrivită pentru microcontrolere care pot accesa memoria externă a programului. Din punct de vedere al complexității și al costului, metoda este comparabilă cu utilizarea plăcilor de dezvoltare, dar este mai versatilă, deoarece poate fi folosită cu orice tip de microcontrolere.

În prezent, există modele de emulatoare ROM „inteligente” care vă permit să priviți în interiorul microcontrolerului, adică funcționează aproape ca un emulator în circuit datorită comutării rapide a magistralei. Efectul este creat ca și cum monitorul de depanare este instalat pe placa utilizatorului și, în același timp, nu preia nicio resursă hardware de la microcontroler, cu excepția unei zone mici de pași software, aproximativ 4K. Un astfel de dispozitiv a fost dezvoltat de FITON pentru toate microcontrolerele existente și viitoare cu nucleul MK 8051, dar în plus saturat cu diverse dispozitive de intrare/ieșire. Suportă multe microcontrolere de la „PHILIPS”, „SIEMENS”, „OKI”.

Medii de dezvoltare integrate(Integrated Development Environment, IDE) permite programatorului să:

Utilizați editorul de text pentru fișiere încorporat, special axat pe lucrul cu textele sursă ale programului;