Sunteți pe pagina 1din 7

SOFTWARE PENTRU SISTEME MECATRONICE Titular curs: conf.dr.ing.

Ciprian Ion RIZESCU

CURS 1 2022-2023
SOFTWARE PENTRU CALCULATOARE

1.1. Introducere. Definiţii, terminologie.

Software este un termen general care poate descrie o mulţime de programe


pentru calculatoare, proceduri, documentaţii care execută anumite cerinţe pe sistemul
de operare al calculatorului.

Acest termen include :


• Aplicaţii software de tipul procesoarelor de texte care sunt foarte utile
operatorilor;
• Aplicaţii multimedia pentru rularea diferitelor suporturi multimedia;
• Microprograme (firmware), programe rezidente în memoria fixă a sistemului
cu microprocesor;
• Middleware, programe care fac legătura între componente software şi diferite
aplicaţii.

În figura 1 este prezentată pagină de intrare a unui procesor de texte: OpenOffice


writer, care este un program pentru procesare de texte şi este gratuit.

Fig. 1 Pagina de intrare a unui procesor de texte: OpenOffice writer.

Termenul „software” poate include site-urile web, programe, jocuri video, etc care
sunt scrise cu ajutorul limbajelor de programare de tipul C, C++, etc.
Mai sunt cuprinse în termenul software şi programele de sistem cum ar fi sistemul de
operare care realizează interfaţa cu componentele hardware pentru a asigura
serviciile necesare pentru aplicaţiile software.

Testware este un termen prin care se înţelege toate programele de aplicaţii şi/sau
utilitare care servesc în combinaţie la testarea pachetelor de programe dar care nu
servesc în mod obligatoriu unor scopuri operaţionale. Testware-ul este realizat atât de
metodele de verificare cât şi de cele de validare. Testware-ul se deosebeşte de
noţiunea de software general deoarece:

1. are un scop diferit;


2. alt nivel întindere;
3. alţi utilizatori.

În urmă cu 20-25 de ani produsele software nu erau utilizate în mod curent.


Mijloacele tehnice din jurul nostru, depind în cea mai mare măsură de componentele
hardware, însă în ultimul timp a crescut şi importanţa software.
Software reprezintă un produs intelectual constituit din programe, proceduri, reguli şi
documentaţia asociată pentru funcţionarea unui sistem de prelucrare a datelor. Acesta
cuprinde şi procedurile de operare, implementare, utilizare, întreţinere, documentaţia
asociată lor, precum şi interacţiunea cu utilizatorii. Componentele software sunt
sistemele de programe. Orice sistem de programe este constituit din:
• programe şi module;
• date asociate prelucrărilor prevăzute în sistem;
• documentaţia asociată sistemului de programe.
Elementele constitutive ale software sunt: module, programe, sisteme de programe şi
biblioteci de programe.
• modulul - este un element de structură al programului, rezultat din divizarea lui în
părţi disjuncte, astfel încât fiecare parte să aibă independenţă funcţională, iar
interacţiunea dintre părţi să fie minimă; este caracterizat de: funcţie, logică,
interfaţă şi pondere; se utilizează la orice nivel în ierarhia sistem informatic,
subsistem, sistem de programe, program:
• programul este o combinaţie de instrucţiuni de calcul şi definiţii de date care
permit calculatorului să execute calcule şi funcţii de control; acesta reprezintă
codificarea într-un limbaj accesibil maşinii, sau într-un limbaj de nivel înalt a unor
algoritmi şi funcţii de prelucrare a informaţiei; constituie o unitate de sine
stătătoare care interacţionează doar cu sistemul de operare şi lucrează cu date de
intrare sau ieşire proprii;
• sistemul de programe reprezintă o mulţime de programe şi module, constituită într-o
structură de tip liniar, arborescent sau reţea, care rezolvă izolat sau împreună
probleme de un anumit tip şi aparţin aceleaşi clase de probleme.
• bibliotecile de programe sunt colecţii de programe care rezolvă probleme dintr-o
anumită clasă şi sunt folosite de programatori ca instrumente de dezvoltare a
aplicaţiilor; se obţine astfel un înalt grad de standardizare şi modularizare.
1.2. Categorii de software

Un sistem de operare reprezintă un produs soft care este parte componentă a unui
sistem de calcul care se ocupă de gestionarea şi coordonarea activităţilor unui
computer. Sistemul de operare joacă rolul de gazdă pentru aplicaţiile care rulează pe
o staţie de lucru.
Exemple de sisteme de operare:

o *BSD;
o BeOS ;
o DOS, PC-DOS, MS-DOS ;
o Linux, AIX, HP-UX ;
o Mac OS ;
o OSEK-VDX ;
o Solaris ;
o UNIX ;
o Windows ;
o BS2000, BS3000 ;
o z/OS .

Fig. 2 Poziţia sistemului de operare într-un sistem de calcul.

O structură de tip straturi, care poziţionează sistemul de operare pe calculatorul de


birou ce utilizează diverse programe, este dată în figura 2.

Sistemul de operare constă în ansamblul de programe care asigură utilizarea


optimă a resurselor fizice şi logice ale unui sistem de calcul. El are rolul de a gestiona
funcţionarea componentelor hardware ale sistemului de calcul, de a coordona şi
controla execuţia programelor şi de a permite comunicarea utilizatorului cu sistemul
de calcul. Folosirea hardware-ului unui sistem de calcul ar fi dificilă şi ineficientă în
lipsa unui sistem de operare. Pe scurt, sistemul de operare este componenta software
care coordonează şi supraveghează întreaga activitate a sistemului de calcul şi asigură
comunicarea utilizatorului cu sistemul de calcul.

Din punctul de vedere al interacţiunii cu componentele hardware ale sistemului de


calcul şi după modul de implementare a software-ului, sistemul de operare este
organizat pe două niveluri:

a. nivelul fizic include componenta firmware a sistemului de calcul; acest nivel oferă
servicii privind lucrul cu componentele hardware ale sistemului de calcul şi cuprinde
acele elemente care depind de structura hardware a sistemului. Tot în nivelul fizic
sunt incluse programe a căror execuţie este indispensabilă, de exemplu programul
care lansează încărcarea automată a sistemului de operare, la pornirea calculatorului.

La acest nivel, comunicarea cu sistemul de calcul se realizează prin intermediul


sistemului de întreruperi, prin care se semnalează anumite evenimente apărute în
sistem; la apariţia unei întreruperi, controlul este dat unor rutine de pe nivelul următor
al sistemului de operare;

Exemplu : la sistemele de calcul compatibile PC, componenta sistemului de operare


de pe nivelul fizic este componenta ROM-BIOS. Aceasta include programe grupate
după funcţia lor în :

• programele care se execută la pornirea sistemului de calcul : programul POST


(Power-On Self-Test), care verifică starea de funcţionare a sistemului de calcul
şi programele de iniţializare a activităţii sistemului (rutina de încărcare a
primului sector al discului sistem) ;
• rutinele care fac posibilă utilizarea componentelor fizice ale sistemului de
calcul, rutine numite drivere fizice ; ele oferă servicii pentru lucrul cu
configuraţia hardware standard a sistemului de calcul : consola, tastatura,
imprimanta, perifericele standard şi ceasul sistemului. Avantajul acestei soluţii
este că asigură independenţa software-ului de pe nivelul logic faţă de
caracteristicile constructive ale componentelor hardware de bază, ele fiind
tratate unitar, prin intermediul driverelor.

b. nivelul logic include partea de programe a sistemului de operare şi oferă


utilizatorului mijloacele prin care poate exploata sistemul de calcul; comunicarea
utilizatorului cu sistemul de calcul se realizează prin comenzi adresate sistemului de
operare sau prin intermediul instrucţiunilor programelor pe care le execută; invers,
comunicarea se realizează prin intermediul mesajelor transmise de sistemul de
operare către utilizator.

Programele nivelului logic adresează dispozitivele hardware prin intermediul


programelor nivelului fizic al sistemului de operare şi din acest motiv ele sunt
independente de structura hardware a sistemului de calcul : nivelul fizic constituie o
interfaţă între hardware şi nivelul logic al sistemului de operare.

Din punct de vedere funcţional, programele sistemului de operare se împart în două


categorii :

a. Componenta de comandă şi control, care cuprinde programe ce au rolul de a


asigura utilizarea eficientă a resurselor sistemului de calcul.
b. Componenta de servicii, care cuprinde programe destinate minimizării
efortului uman implicat de utilizarea sistemului de calcul.

Funcţia sistemului de operare de optimizare a exploatării unui sistem de calcul


este împărţită între cele două componente, conform schemei din figura 3.
Accesibilitatea, diversitatea şi numărul componentelor software creşte de la stânga la
dreapta, în diagramă, în timp ce numărul şi nivelul de specializare al utilizatorilor
acestor programe scade de la stânga la dreapta.
Atât pentru proiectarea cât şi pentru utilizarea lor, componentele software se sprijină
pe alte componente software, aflate la stânga lor, în diagramă.
Fig. 3 Funcţia de optimizare a sistemului de operare

Practic sistemele de calcul împart sistemele software în trei clase importante:


software de sistem, software pentru programare şi aplicaţii software, cu precizarea că
această împărţire este subiectivă şi de multe ori greu de stabilit pentru anumite cazuri.

Software-ul de sistem
Software-ul de sistem intervine direct în funcţionarea componentelor hardware şi a
sistemului de calcul. Se poate spune că în software-ul de sisteme intră:
• driverele componentelor calculatorului,
• programele de diagnoză şi reparaţii,
• sistemele de operare,
• programele pentru servere,
• programele utilitare,
• programele de sistem.

Rolul software-ului de sistem este de a „izola”, pe cât posibil, programatorul de


aplicaţii de complexitatea calculatorului ce este utilizat, în special de memorie şi de
alte elemente cum ar fi componentele hardware sau accesorii de comunicaţie ca
imprimante, cititoare de card, dipaly-uri, tastaturi, etc.

Cea mai importantă etapă în dezvoltarea produselor software o reprezintă


stabilirea cerinţelor sau analizarea cerinţelor. De obicei utilizatorii au o idee abstractă
asupra programului pe care şi-l doresc şi nu ştiu aproape nimic despre ceea ce ar
trebui să execute programul. Astfel cerinţele incomplete, ambigue, contradictorii vor
fi interpretate de ingineri de software foarte experimentaţi care vor fi capabili să le
transpună într-un program acceptabil. Dezvoltarea aplicaţiilor software, de orice tip
ar fi ele (intranet, portal, corporate website, e-commerce), necesită experienţă
îndelungată, o echipă solidă şi un plan bine pus la punct astfel încât succesul
aplicaţiei să fie asigurat. De cele mai multe ori există falsa impresie că dezvoltarea
unei aplicaţii software necesită doar un volum de muncă ridicat. Adevărul este că un
volum de muncă ridicat dar nedublat de o experienţă corespunzătoare, poate
transforma proiectul într-un eşec. Cu siguranţă nimeni nu îşi doreşte acest lucru, mai
ales atunci când acea aplicaţie software are menirea de a eficientiza munca în propria
companie.
De aceea este nevoie ca în desfăşurarea unui astfel de proiect să se ia în calcul câteva
etape cheie:
• analiza pieţei ,
• planificare ,
• stabilirea cerinţelor tehnice ,
• proiectare ,
• implementare ,
• testare ,
• găzduire ,
• întreţinere / mentenanţă ,
• update-uri constante.

Astfel proiectantului de software îi revin practic numai o parte din aceste etape aşa
cum este prezentat în figura 4.

Fig.4 Principalele etape în procesul de elaborare a unui software

1.3 Elemente de etică. Codul de etică

Asociaţia maşinilor de calcul (ACM – Association for Computing Machinery) a


adoptat încă din 1992 un cod de etică pentru fiecare membru al asociaţiei. Codul
constă în 24 de imperative (cerinţe) formulate ca declaraţii individuale, de
responsabilitate ale fiecărui membru. Practic, fiecare membru îşi ia un angajament
prin această declaraţie formală. Aceste cerinţe pot fi grupate astfel:
I. cerinţe generale:
o să contribui la binele societăţii şi la binele omului;
o să eviţi lezarea altor persoane;
o să fii cinstit şi de cuvânt;
o să fii corect şi să nu faci discriminare;
o să respecţi drepturile proprietăţii inclusiv copyright-urile şi brevetele;
o să dai creditul cuvenit proprietăţii intelectuale;
o să respecţi intimitatea celorlalţi;
o să respecţi confidenţialitatea;

II. cerinţe profesionale


o să atingi cea mai ridicată performanţă, în activitate;
o să obţii şi să menţii competenţa profesională;
o să cunoşti şi să respecţi legile privind profesia;
o să accepţi şi să promovezi îmbunătăţirea pregătirii profesionale;
o să dai o evaluare minuţioasă şi cuprinzătoare a sistemelor de clacul şi a
efectelor acestora, inclusiv o analiza a riscurilor posibile;
o să respecţi contractele, înţelegerile şi responsabilităţile asumate;
o să accesezi resursele de calcul şi de comunicaţii numai dacă eşti autorizat să o
faci;
o să îmbunătăţeşti pregătirea profesională;

III. cerinţe de conducere


o să introduci responsabilităţile membrilor unităţii / organizaţiei şi să încurajezi
acceptarea responsabilităţilor;
o să conduci personalul pentru proiectarea şi construcţia sistemelor
informaţionale care îmbunătăţesc calitatea în mediul de lucru;
o să susţii utilizarea autorizată a sistemelor de calcul şi de comunicaţii ale unităţii
/ organizaţiei;
o să te asiguri că utilizatorii precum şi aceia care vor fi afectaţi de un sistem de
calcul au foarte bine definite nevoile în timpul determinării cerinţelor şi proiectării;
ulterior se va decide dacă sistemul îndeplineşte cerinţele;
o să susţii şi să promovezi politicile care protejează demnitatea utilizatorilor şi a
altor persoane afectate de sistemul de calcul;
o să creezi şansele tuturor membrilor unităţii / organizaţiei să poată învăţa
principiile şi limitele sistemelor de calcul;

IV. legătura cu codul de etică


o să menţii şi să promovezi principiile acestui Cod de etică;
o să consideri că orice încălcare a cerinţelor acestui cod reprezintă o
incompatibilitate cu apartenenţa la asociaţie (ACM).

S-ar putea să vă placă și