Cazul tehnologiilor de proiectare a sistemelor de control. Clasificarea instrumentelor moderne de caz. Caracteristicile instrumentelor moderne CASE

Caracteristicile fondurilor CASE

Principalele caracteristici ale instrumentelor CASE, importante din punct de vedere al modelării și optimizării proceselor de business, sunt următoarele:

  • Disponibilitatea unei interfețe grafice. Pentru a reprezenta modele de procese CASE, instrumentele trebuie să fie capabile să afișeze procesele sub formă de diagrame. Diagramele sunt mult mai ușor de utilizat decât diverse descrieri text și numerice. Acest lucru vă permite să obțineți componente de model ușor de gestionat, cu o structură simplă și clară.
  • Disponibilitatea unui depozit. Depozitul este bază comună date, care conține o descriere a elementelor procesului și a relațiilor dintre acestea. Fiecare obiect de depozit trebuie să aibă o listă de proprietăți specifice numai acestui obiect.
  • Flexibilitate de aplicare. Această caracteristică face posibilă reprezentarea proceselor de afaceri în diverse opțiuni, important din punct de vedere al analizei. Instrumentele CASE ar trebui să vă permită să analizați procesele și să creați modele concentrate pe diverse aspecte ale întreprinderii.
  • Posibilitate de lucru in echipa. Analiza și modelarea proceselor pot necesita colaborare cativa oameni. Pentru a lucra simultan la modelele de proces CASE, instrumentele trebuie să ofere managementul schimbărilor pentru orice fragmente de modele și modificarea acestora cu acces colectiv.
  • Construirea de prototipuri. Prototipurile de proces sunt necesare astfel încât în ​​etapele incipiente ale schimbării procesului să fie posibil să se înțeleagă cât de bine procesul va îndeplini cerințele.
  • Generarea de rapoarte. Instrumentele CASE ar trebui să asigure construirea de rapoarte pe toate modelele de proces, ținând cont de relația dintre elemente. Astfel de rapoarte sunt necesare pentru analiza modelelor și identificarea oportunităților de optimizare. Rapoartele asigură controlul asupra completității și suficienței modelelor, asupra nivelului de descompunere a proceselor, asupra corectitudinii sintaxei diagramelor și asupra tipurilor de elemente utilizate.

Selectarea fondurilor CASE

Alegerea instrumentelor CASE pentru analizarea și modelarea proceselor depinde de mulți factori - oportunități financiare, caracteristici functionale, instruirea personalului, instrumentele tehnologice utilizate etc. Nu are sens să oferim o listă exhaustivă a acestor factori, deoarece într-o situație de alegere pentru fiecare caz specific, această compoziție se va modifica. Cu toate acestea, este posibil să se definească un set de factori „de bază” pe baza cărora sunt determinate criteriile de selectare a fondurilor CASE.

În ultimul deceniu, a apărut o nouă direcție în ingineria software - CASE (Computer-Aided Software/System Engineering) - tradus literal - dezvoltare software sisteme informatice suportate (folosind) un calculator. În prezent, nu există o definiție general acceptată a CASE; termenul CASE este folosit într-un sens foarte larg. Sensul inițial al termenului CASE, limitat doar la problemele de automatizare a dezvoltării de software, a dobândit acum un nou sens, acoperind procesul de dezvoltare a complexului automatizat. sisteme de informareîn general. Acum, termenul de instrumente CASE se referă la instrumentele software care sprijină procesele de creare și întreținere a IS, inclusiv analiza și formularea cerințelor, proiectarea software-ului aplicației (aplicații) și baze de date, generarea de cod, testare, documentare, asigurare a calității, management al configurației și proiect. management, precum și alte procese. Instrumentele CASE, împreună cu software-ul și hardware-ul de sistem, formează un mediu complet de dezvoltare IS.

Instrumentele CASE vă permit nu numai să creați produsele „corecte”, ci și să asigurați procesul „corect” pentru crearea acestora. Scopul principal al CASE este de a separa proiectarea unui IS de codificarea acestuia și etapele ulterioare de dezvoltare și, de asemenea, de a ascunde de dezvoltatori toate detaliile mediului de dezvoltare și funcționarea IS. Când utilizați tehnologiile CASE, toate etapele se schimbă ciclu de viață software-ul (mai multe despre aceasta vor fi discutate mai jos) ale sistemului informatic, în timp ce cele mai multe Schimbări mari se referă la etapele de analiză și proiectare. Majoritatea instrumentelor CASE existente se bazează pe metodologii de analiză și proiectare structurale (în mare parte) sau orientate pe obiecte, folosind specificații sub formă de diagrame sau texte pentru a descrie cerințele externe, relațiile dintre modelele de sistem, dinamica comportamentului sistemului și arhitectura. software. Astfel de metodologii oferă o descriere riguroasă și vizuală a sistemului proiectat, care începe cu privirea generală a acestuia și apoi devine detaliată, dobândind o structură ierarhică cu un număr tot mai mare de nivele. Tehnologiile CASE sunt folosite cu succes pentru a construi aproape toate tipurile de circuite integrate, dar ocupă o poziție stabilă în următoarele domenii:

    asigurând dezvoltarea IP de afaceri și comerciale, utilizarea pe scară largă a tehnologiilor CASE se datorează naturii răspândite a acestei zone de aplicații, în care CASE este utilizat nu numai pentru dezvoltarea IP, ci și pentru crearea. modele de sistem ajutând la rezolvarea problemelor de planificare strategică, management financiar, determinarea politicilor companiei, pregătirea personalului etc. (această zonă și-a primit propriul nume - analiză de afaceri);

    dezvoltarea sistemelor informatice de sistem si control. Utilizarea activă a tehnologiilor CASE este asociată cu marea complexitate a acestei probleme și cu dorința de a crește eficiența muncii.

CASE nu este o revoluție în inginerie software, ci rezultatul dezvoltării evolutive naturale a întregii industrii de instrumente, numite anterior instrumentale sau tehnologice. De la începuturile sale, tehnologiile CASE au evoluat pentru a depăși limitările metodologiilor de proiectare structurală din anii 60 și 70. secolul XX (dificultate de înțelegere, intensitate mare a forței de muncă și cost de utilizare, dificultate în efectuarea modificărilor specificațiilor de proiectare etc.) datorită automatizării acestora și integrării instrumentelor suport. Astfel, tehnologiile CASE nu pot fi considerate metodologii independente, ci doar dezvoltă metodologii structurale și fac aplicarea lor mai eficientă prin automatizare.

Pe lângă automatizarea metodologiilor structurale și, în consecință, posibilitatea utilizării metodelor moderne de inginerie de sistem și software, instrumentele CASE au următoarele avantaje principale:

    îmbunătățirea calității IP creată folosind fonduri control automat(în primul rând controlul proiectelor);

    permite pentru un timp scurt creați un prototip viitorul sistem, care vă permite să evaluați rezultatul așteptat într-un stadiu incipient;

    accelerarea procesului de proiectare și dezvoltare;

    eliberați dezvoltatorul de munca de rutină, permițându-i să se concentreze în totalitate pe partea creativă a dezvoltării;

    sprijină dezvoltarea și menținerea dezvoltării;

    sprijină tehnologiile de reutilizare a componentelor de dezvoltare.

Apariția tehnologiei CASE și a instrumentelor CASE a fost precedată de cercetări în domeniul metodologiei de programare. Programarea a dobândit caracteristicile unei abordări sistematice cu dezvoltarea și implementarea limbajelor nivel inalt, metode de programare structurată și modulară, limbaje de proiectare și mijloace de susținere a acestora, limbaje formale și informale pentru descrierea cerințelor și specificațiilor sistemului etc. În anii 70-80. a început să fie utilizată în practică o metodologie structurală, punând la dispoziția dezvoltatorilor metode stricte formalizate de descriere a PI și adoptate. solutii tehnice. Se bazează pe o tehnică grafică vizuală: diagramele și diagramele sunt folosite pentru a descrie diferite tipuri de modele IC. Vizibilitatea și rigoarea instrumentelor de analiză structurală au permis dezvoltatorilor și viitorilor utilizatori ai sistemului să participe informal la crearea acestuia încă de la început, să discute și să consolideze înțelegerea principalelor soluții tehnice. Cu toate acestea, utilizarea pe scară largă a acestei metodologii și respectarea recomandărilor sale în dezvoltarea circuitelor integrate de contact a fost destul de rară, deoarece în cazul dezvoltării neautomatizate (manuale) acest lucru este practic imposibil. Acest lucru a contribuit la apariția unei clase speciale de instrumente software și hardware - instrumente CASE care implementează tehnologia CASE pentru crearea și menținerea IS.

Este necesar să înțelegem că utilizarea cu succes a instrumentelor CASE este imposibilă fără a înțelege tehnologia de bază pe care se bazează aceste instrumente. Instrumentele software CASE în sine sunt instrumente pentru automatizarea proceselor de proiectare și întreținere a sistemelor informaționale. Fără înțelegerea metodologiei de proiectare IS, este imposibil să utilizați instrumentele CASE.

Abordări ale designului IS.

Există două abordări principale în proiectarea sistemelor informaționale:

· structural

· procesual .

Abordare structurală se bazează pe utilizarea structurii organizatorice a companiei, atunci când proiectarea sistemului se realizează conform diviziilor structurale. Tehnologiile de activitate în acest caz sunt descrise prin tehnologiile de operare ale unităților structurale și interacțiunea acestora.

Dacă firma este o structură complexă, cum ar fi un holding, sau o întreprindere-rețea, atunci este, de asemenea, necesar să existe un model de interacțiune a tuturor elementelor sale constitutive, care să reflecte nu numai aspectele tehnologice, ci și financiare și juridice. .

Principalul dezavantaj Abordarea structurală este legată de structura organizațională, care se schimbă foarte rapid, astfel încât trebuie făcute schimbări frecvente în proiectarea sistemului informatic. Și schimbarea unui IP finit este de obicei un proces destul de laborios, lung și plictisitor.

Abordarea procesului concentrat nu pe structura organizațională, ci pe procesele de afaceri, de exemplu. de exemplu, o companie furnizează echipamente, furnizează componente și piese de schimb, întreține echipamente etc. Acestea vor fi procesele sale de afaceri, care trebuie analizate în prima etapă a proiectării SI.

Abordarea procesului este mai promițătoare deoarece procesele de afaceri, spre deosebire de structura organizatorică, se schimbă mai rar. Mai mult, există puține procese principale de afaceri într-o întreprindere, de obicei nu mai mult de zece.

În condițiile moderne, complexitatea creării sistemelor informaționale este foarte mare. Prin urmare, tehnologia CASE a devenit acum utilizată pe scară largă în proiectarea IC.

Tehnologia CASE - Acest pachete software, automatizarea tuturor proces tehnologic analiza, proiectarea, dezvoltarea și întreținerea de software complex.

Instrumentele moderne CASE acoperă o gamă largă de suport pentru numeroase tehnologii de proiectare IC: de la mijloace simple analiză și documentare la instrumente de automatizare la scară completă care acoperă întregul ciclu de viață al software-ului.

Cele mai laborioase etape ale dezvoltării SI sunt etapele de analiză și proiectare, timp în care instrumentele CASE oferă calitate superioară deciziile tehnice luate și pregătirea documentației de proiect. În acest caz, ele joacă un rol important instrumente grafice modelare domeniul subiectului, care le permit dezvoltatorilor să studieze vizual IS-ul existent și să îl reconstruiască în conformitate cu obiectivele lor și cu limitările existente.

Instrumentele CASE integrate au următoarele trasaturi caracteristice :



· asigurarea managementului procesului de dezvoltare SI;

· utilizarea unei stocări special organizate a metadatelor proiectului (depozitar).

Instrumentele integrate CASE conțin următoarele componente:

· analiză grafică și instrumente de proiectare utilizate pentru a descrie și documenta SI;

· instrumente de dezvoltare a aplicațiilor, inclusiv limbaje de programare și generatoare de cod;

· un depozit care oferă stocarea versiunilor proiectului în curs de dezvoltare și ale acestuia componente individuale, sincronizarea informațiilor primite de la diverși dezvoltatori în timpul dezvoltării grupului, controlul metadatelor pentru completitudine și coerență;

· instrumente pentru gestionarea procesului de dezvoltare SI;

· instrumente de documentare;

· instrumente de testare;

· instrumente de reinginerie care oferă analiza codurilor programelor și schemelor bazelor de date și generarea pe baza acestora diverse modeleși specificații de proiectare.

Toate instrumentele moderne CASE sunt împărțite în două grupuri. Primul grup organizați instrumente integrate în sistemul de implementare, în care toate deciziile de proiectare și implementare sunt legate de sistemul de management al bazei de date selectat. A doua grupă organizarea mijloacelor de implementare independente de sistem, în care toate deciziile de proiectare sunt concentrate pe unificarea etapelor inițiale ale ciclului de viață și a mijloacelor de documentare a acestora. Aceste instrumente oferă o mai mare flexibilitate în alegerea instrumentelor de implementare.

Bazele demnitate Tehnologii CASE – sprijin pentru lucrul în echipă pe un proiect datorită capacității de a lucra în el retea locala, exportul și importul de fragmente de proiecte individuale între dezvoltatori, management organizat proiect.

La fel de etape creare produse software pentru sistemele informatice se pot distinge următoarele:

1. Mediul de operare este determinat. În această etapă, se determină un set de procese ale ciclului de viață IS, se determină domeniul de aplicare al IS și se determină dimensiunea aplicațiilor suportate, de exemplu. limitele sunt stabilite pe valori precum numărul de linii codul programului, dimensiunea bazei de date, numărul de elemente de date, numărul de obiecte de control etc.

2. Se realizează diagrame și analize grafice. În această etapă se construiesc diagrame care stabilesc conexiuni cu sursele de informații și consumatorii, definind procesele de conversie a datelor și locația stocării acestora.

3. Se determină specificațiile și cerințele pentru sistem (tip de interfață, tip de date, structura sistemului, calitate, performanță, mijloace tehnice, costurile totale etc.).

4. Se realizează modelarea datelor, i.e. sunt introduse informații care descriu elementele de date ale sistemului și relațiile lor.

5. Se realizează modelarea procesului, adică. sunt introduse informații care descriu procesele sistemului și relațiile lor.

6. Se proiectează arhitectura viitorului software.

7. Se realizează modelarea prin simulare, i.e. Modelarea diferitelor aspecte ale funcționării sistemului pe baza specificațiilor cerințelor și/sau a specificațiilor de proiectare.

8. Prototiparea, i.e. este creată o versiune preliminară a întregului sistem sau a componentelor sale individuale.

9. Trasare, se realizează o analiză a funcționării sistemului de la specificarea cerințelor până la rezultatele finale.

10. Codul programului este generat, compilat și depanat.

11. Testarea software-ului rezultat. Analiza si evaluarea rezultatelor obtinute.

Caracteristicile sistemelor de operare moderne

An de an, structura și capacitățile sistemelor de operare evoluează. ÎN În ultima vreme Noile sisteme de operare și noile versiuni ale sistemelor de operare existente au inclus unele elemente structurale care au adus schimbări majore în natura acestor sisteme. Sistemele de operare moderne îndeplinesc cerințele hardware și software în continuă evoluție. Ei sunt capabili să gestioneze funcționarea sistemelor multiprocesor care funcționează mai rapid mașini obișnuite, dispozitive de rețea de mare viteză și o varietate de dispozitive de stocare, al căror număr este în continuă creștere. Aplicațiile care au influențat proiectarea sistemelor de operare includ aplicații multimedia, instrumente de acces la Internet și modelul client/server.

Creșterea constantă a cerințelor pentru sistemele de operare duce nu numai la îmbunătățiri ale arhitecturii acestora, ci și la apariția unor noi modalități de organizare a acestora. O mare varietate de abordări și blocuri de construcție au fost încercate în sistemele de operare experimentale și comerciale, majoritatea putând fi grupate în următoarele categorii.

· Arhitectura microkernel.

· Multithreading.

· Multiprocesare simetrică.

· Sisteme de operare distribuite.

· Design orientat pe obiecte.

Trăsătură distinctivă Majoritatea sistemelor de operare de astăzi au un nucleu monolitic mare. Nucleul sistemului de operare oferă majoritatea capabilităților sale, inclusiv programarea, lucrul cu sistemul de fișiere, funcții de rețea, funcționarea diferitelor drivere de dispozitiv, gestionarea memoriei și multe altele. De obicei, un nucleu monolitic este implementat ca un singur proces, ale cărui elemente împărtășesc același spațiu de adrese. Într-o arhitectură microkernel, nucleul este alocat doar câteva dintre cele mai multe funcții importante, care includ lucrul cu spații de adrese, comunicare între procese (IPC) și programare de bază. Alte servicii ale sistemului de operare sunt furnizate de procese care sunt uneori numite servere. Aceste procese rulează în modul utilizator și microkernel-ul le tratează în același mod ca și alte aplicații. Această abordare vă permite să împărțiți sarcina de a dezvolta un sistem de operare în dezvoltarea kernelului și dezvoltarea serverului. Serverele pot fi personalizate pentru a se potrivi cerințelor aplicatii specifice sau mediu. Includerea unui microkernel în structura sistemului simplifică implementarea sistemului, asigură flexibilitatea acestuia și, de asemenea, se potrivește bine într-un mediu distribuit. De fapt, microkernel-ul interacționează cu localul și server la distanta după aceeași schemă, care simplifică construcția sistemelor distribuite.

Multithreadingul este o tehnologie în care procesul care rulează o aplicație este împărțit în mai multe fire de execuție simultane. Mai jos sunt principalele diferențe dintre un fir și un proces.

· Curgere. O unitate de lucru dispecerabilă care include un context de procesor (care include conținutul contorului de program și al indicatorului de stivă), precum și propria zonă de stivă (pentru organizarea apelurilor subrutine și stocarea datelor locale). Comenzile firului sunt executate secvenţial; un thread poate fi întrerupt atunci când procesorul trece să proceseze un alt thread 4.Proces. O colecție de unul sau mai multe fire și fire asociate resursele sistemului(cum ar fi zona de memorie care conține cod și date, deschide fișiere, diverse dispozitive). Acest concept este foarte asemănător cu conceptul de program care rulează. Prin împărțirea unei aplicații în mai multe fire de execuție, programatorul profită din plin de modularitatea aplicației și de capacitatea de a controla evenimentele de sincronizare legate de aplicație.

Multithreading-ul este foarte util pentru aplicațiile care efectuează mai multe sarcini independente care nu necesită execuție secvențială. Un exemplu de astfel de aplicație este un server de baze de date care primește și procesează simultan cereri multiple de clienți. Dacă mai multe fire sunt procesate în cadrul aceluiași proces, atunci comutarea între fire diferite necesită mai puțină supraîncărcare CPU decât comutarea între procese diferite. Threadurile sunt utile și în structurarea proceselor care fac parte din nucleul sistemului de operare, așa cum este descris în capitolele următoare.

Până de curând, totul calculatoare personale, conceput pentru un utilizator, iar stațiile de lucru conțineau un microprocesor virtual scop general. Ca urmare a cerințelor de performanță tot mai mari și a costurilor în scădere ale microprocesoarelor, producătorii s-au orientat spre producerea de computere cu procesoare multiple. Pentru a crește eficiența și fiabilitatea, este utilizată tehnologia de multiprocesare simetrică (SMP). Acest termen se referă la arhitectură hardware computer, precum și la modul în care sistemul de operare se comportă corespunzător acestuia caracteristică arhitecturală. Multiprocesarea simetrică poate fi definită ca fiind autonomă sistem informatic cu următoarele caracteristici.

1. Sistemul are mai multe procesoare.

2. Aceste procesoare, interconectate printr-o magistrală de comunicație sau un alt circuit, partajează aceeași memorie principală și aceleași dispozitive de intrare/ieșire.

3. Toate procesoarele pot îndeplini aceleași funcții (de unde și denumirea de procesare simetrică).

Un sistem de operare care rulează pe un sistem simetric multiprocesare distribuie procesele sau firele de execuție pe toate procesoarele. Sistemele multiprocesor au mai multe avantaje potențiale față de sistemele cu un singur procesor, inclusiv următoarele.

· Performanţă. Dacă o lucrare care urmează să fie efectuată de un computer poate fi aranjată astfel încât părți ale lucrării să fie executate în paralel, aceasta va avea ca rezultat o performanță îmbunătățită în comparație cu un sistem cu un singur procesor cu același tip de procesor. Poziția formulată mai sus este ilustrată în Fig. 2.12. În modul multi-task, un singur proces poate rula în același timp, în timp ce alte procese sunt forțate să-și aștepte rândul. Într-un sistem multiprocesor, mai multe procese pot rula simultan, fiecare rulând pe un procesor separat.

· Fiabilitate.În multiprocesarea simetrică, defecțiunea unui procesor nu va opri mașina deoarece toate procesoarele pot îndeplini aceleași funcții. După o astfel de defecțiune, sistemul va continua să funcționeze, deși performanța sa va scădea ușor.

· Construind. Adăugarea la sistem procesoare suplimentare, utilizatorul își poate îmbunătăți performanța.

· Scalabilitate. Producătorii își pot oferi produsele într-o varietate de configurații de preț și performanță concepute pentru a funcționa sume diferite procesoare.

Este important să rețineți că beneficiile enumerate mai sus sunt mai degrabă potențiale decât garantate. Pentru a realiza corect potențialul conținut de multiprocesor sisteme de calcul, sistemul de operare trebuie să ofere un set adecvat de instrumente și capabilități

Orez. 2.12. Multitasking și multiprocesare

Poți găsi adesea discuție comună multithreading și multiprocessing, dar aceste două concepte sunt independente. Multithreading-ul este un concept util pentru structurarea proceselor de aplicație și kernel, chiar și pe o singură mașină cu procesor. Pe de altă parte, un sistem multiprocesor poate avea avantaje față de un sistem cu un singur procesor, chiar dacă procesele nu sunt threaded, deoarece este posibil să ruleze mai multe procese în același timp. Cu toate acestea, ambele posibilități sunt în bun acord una cu cealaltă și cu ele partajarea poate da un efect vizibil.

O caracteristică atractivă a sistemelor multiprocesoare este că prezența mai multor procesoare este transparentă pentru utilizator - sistemul de operare este responsabil pentru distribuirea firelor între procesoare și sincronizarea diferitelor procese. Această carte examinează mecanismele de programare și sincronizare care sunt utilizate pentru a se asigura că toate procesele și procesoarele sunt vizibile pentru utilizator ca sistem unificat. O altă sarcină de nivel superior este reprezentarea unui grup de mai multe calculatoare individuale. În acest caz, avem de-a face cu un set de calculatoare, fiecare având propria sa memorie principală și secundară și propriile module de intrare/ieșire. Un sistem de operare distribuit creează vizibilitate un singur spațiu memorie principală și secundară, precum și o singură Sistemul de fișiere. Deși popularitatea clusterelor este în creștere constantă și tot mai multe produse de cluster apar pe piață, sistemele de operare distribuite moderne rămân în continuare în urma sistemelor cu un singur și multiprocesor în curs de dezvoltare. Veți face cunoștință cu astfel de sisteme în partea a șasea a cărții.

Una dintre cele mai recente inovații în sistemele de operare este utilizarea tehnologiilor orientate pe obiecte. Designul orientat pe obiecte ajută la aducerea ordinii în procesul de adăugare la miezul principal module suplimentare. La nivel de sistem de operare, structura orientată pe obiecte permite programatorilor să personalizeze sistem de operare fără a-i încălca integritatea. În plus, această abordare facilitează dezvoltarea instrumentelor distribuite și a sistemelor de operare distribuite cu drepturi depline.