Grila IP COX
Grila IP COX Quiz
Testați-vă cunoștințele în ingineria programării cu acest quiz captivant! Explorează concepte fundamentale și metodologii esențiale care stau la baza programării și dezvoltării software.
Întrebările sunt concepute pentru a acoperi o varietate de subiecte, cum ar fi:
- Modularitatea
- Sistemele de operare
- Ingineria programării
- Proiectarea software-ului
Modulariatatea inseamna:
Delimitarea unor secvente de program, cu intrari si iesiri bine precizate, in care se stabilesc relatii ierarhice sau de colaborare
Stabilirea unor ierarhii in program
Delimitarea unor secvente de program
Stabilirea riguroasa a intrarilor si iesirilor
Notiunea de timp real implica:
Proprietatea de a reactiona in conditii reale a sistemului
Reactia sistemului in conditii precizate
Timp minim de reactie
Proprietatea sistemului de a reactiona la schimbari in proces, intr-un timp mai mic decat o limita prestabilita.
Medoda MASCOT presupune, printre altele, elaborarea unei diagrame(numite ACR) care reflecta:
Structura de date si de apel folosite in program
Relatiile dintre structurile de date si structurile de program
Tranzactiile din sistem
fluxurile de date din program, care isi au obirsile in dispozitivele de intrare si se termina totdeauna la dispozitivele de iesire
Obiectivele ingineriei programarii stabilesc:
Modelele de proiectare
Dezideratele activitatii de proiectare software
Principiile care trebuie urmate la proiectare
Modelele si principiile de proiectare
Intr-un sistem de conducere de proces interactioneaza urmatoarele componente:
Software, hardware
Programe, calculatoare, interfete de proces, manuale de utilizare
Echipamente, software, proceduri de operare, operator uman
Interfete, sisteme de reglare, sisteme de calcul, software
Modelul de dezvoltare in spirala presupune:
O abordare iterativa in cadrul careia la fiecare iteratie, analiza riscurilor cantareste diferitele alternative din punct de vedere al validarii prin testare, ceea ce permite analiza fezabilitatii inainte ca o anumita alternativa sa fie aleasa
o abordare iterativa in cadrul careia, la fiecare iteratie, prin analiza riscurilor se compara diferite alternative din punct de vedere al cerintelor si constrangerilor, iar prototipizarea verifica fezabilitatea inainte ca o anumita alternativa sa fie aleasa
O abordare euristica in cadrul careia la fiecare etapa de dezvoltare, conceptul de dezvoltare abordat este validat prin metode euristice si solutia aleasa este in continuare dezvoltata in spirala
Ingineria programarii se ocupa cu:
Aplicarea unor principii de programare structurata, astfel incat sa creasca fiabilitatea produselor - program
Folosirea unor instrumente software adecvate, astfel incat sa creasca productivitatea activitatii de programare
Utilizarea intr-o maniera disciplinata , sistematica si cu pricepere a unor metode si instrumente asociate, adecvate, avand in vedere anumite obiective si principii de baza.
Adaptabilitatea se refera la:
Obiectivul de realizare a unor programe care sa poata fi usor adaptate pentru conditii diferite de functionare
Obiectivul de realizare a unor programe adaptate unor situatii concrete de functionare
Principiul de programare prin care programul trebuie sa fie usor de modificat
Principiul de proiectare prin care se cere proiectantului sa se adapteze usor la noi cerinte
Prototipizarea este o paradigma a ingineriei programari care se refera la:
Construirea aplicatiilor prin metoda top-down
Construirea unui prototip al programului si modificarea acestuia
Dezvoltarea rapida a unui model simplificat al programului, interactiunea cu clientul si adaugarea ulterioara a functiilor omise
Proiectarea folosind descrieri-tip(prototipuri) ale modulelor de program disponibile
Cate module de program pot fi subordonate unui modul conform regulilor eurisrice de proiectare?
De obicei intre 3-4 si 7, iar daa fan-out este mai mare de 9 sau mai mic de 3-4 este necesara reproiectarea.
Maxim 5 si minim 2
Intre 3 si 6
Mai mult de 4
De ce sunt necesare taskuri de “luare la cunostinta” intr-un sistem de telemecanica?
Deoarece evenimentele din proces trebuie aduse la cunostinta sistemului
Deoarece telecomenzile trebuie confirmate de catre operator
Deoarece operatorul trebuie sa confirme ca a luat la cunostinta de evenimentele din proces si sunt necesare alte taskuri decat cele de tratare a evenimentelor, din pricina asincronismului reactiilor operatorului cu evenimentele din proces
Deoarece sistemul trebuie sa reactioneze sufficient de rapid la evenimentele din proces
Proiectarea structurata se realizeaza prin
Proiectarea ingrijita a programelor, astfel incat acestea sa aiba o structura clara
Folosirea unor structuri standard de control al programului: procesare secventiala, decizie, reunire
Folosirea proiectarii top-down si a unor structuri standard de control al programului: procesare secventiala, decizie, reunire
Proiectarea top-down si modularizare structurala
Ce sunt regulile euristice de proiectare?
Reguli rezultate din aplicarea teoriilor euristice
Reguli rezultate din experienta practica
Metodologii de proiectare ale organizatiilor software
Metode sistematice de proiectare
Principiile ingineriei programarii se refera la:
Modalitatile de atingere a obiectivelor ingineriei programarii
Modele folosite in procesul de proiectare
Scopurile programarii
Destinatia activitatii de programare
Redundanta dinamica se realizeaza prin:
Dublarea unei functii
Efectuarea unor teste de acceptanta si eventuala rulare a unei versiuni alternative
Efectuarea unor teste de acceptanta si rularea unei versiuni alternative
Testarea starii taskurilor
Documentatia software de proiectare este necesara pentru:
Prezentarea produsului
Prezentarea produsului si relatiile cu clientii
Elaborarea unui prototip
Activitatea de asistenta tehnica si refolosire software
“Ascunderea” este utila pentru:
Mai buna structurare a programului
Definirea unor interfete complexe
Definirea unor restrictii de acces si “ascunderea” detaliilor nesemnificative ale unui modul de program
Ascunderea detaliilor referitoare la tratarea erorilor
Cand o clasa trebuie sa gestioneze un numar de obiecte de aceeasi clasa, o abordare potrivita in proiectare ar fi sa se adauge:
Un model (pattern) de proiectare
O clasa observator intre clasa primara si setul de obiecte
O clasa container intre clasa primara si setul de obiecte
Nivelurile cerintelor software sunt urmatoarele:
De business, de proiectare, de testare
De sistem, de program, de modul
De business, utilizator, functionale
Activitatile de proiectare software cuprind urmatoarele:
Proiectarea cu Diagrama de flux de date(data flow), proiectarea Enitate-relatie, proiectarea cu diagrame de structura
Proiectarea structurata, proiectarea orientata pe obiecte, proiectare orientata pe calendar, proiectarea orientata pe cerinte
Proiectarea arhitecturii, specificarea abstracta, proiectarea componentelor si a interfetelor, proiectarea structurilor de date, proiectarea algoritmilor
Sistemele de operare dedicate folosesc pentru comunicare:
Mesaje si variabile comune
Mesaje
Cutii postale si semafoare
Zone tampon si conducte
Intr-un sistem de telemecanica, efectuarea unei telecomenzi parcurge urmatoarele etape:
Selectie, executie
Trimiterea telecomenzii, confirmare din proces
Selectie, executie, confirmare din proces
Selectie, confirmare
Redundanta dinamica se realizeaza prin:
Efectuarea unor teste de acceptanta si eventuala rulare a unei versiuni alternative
Modularitatea, confirmabilitatea, adaptabilitatea, eficienta
Adaptabilitatea, eficienta, modularitatea, confirmabilitatea, eficienta
Modularitatea, abstractizarea, ascunderea, eficienta, fiabilitatea, perciptibilitatea, confirmabilitatea
Un sistem Delta de stocare de versiuni:
Reprezinta toate versiunile prin utilizarea unei singure copii a codului sursa si diferentele dintre versiuni sunt marcate prin compilare conditionala: codul sursa relevant pentru anumite versiuni este generat de macrocomenzi astfel incat compilatorul poate reconstitui diversele versiuni
Memoreaza o singura versiune completa si le reprezinta pe celelalte prin retinerea diferentelor de la una la alta
Cuprinde conventiile de nume care sunt folosite pentru a discerne intre situatiile in care fisiere diferite reprezinta versiuni diferite ale aceluiasi modul
Ce este o revizie?
O noua versiune destinata a inlocui versiunea veche si care reflecta evolutia In depanarea si imbunatatirea modulului ca functionalitate si performate
O noua versiune care realizeaza aceleasi functionalitati pentru situatii usor diferite si care este destinata a fi o alternativa interschimbabila cu alta similara
Un mecanism notational care arata organizarea unui set de variatii si relatiile dintre acestea
Un mesaj (UML) este:
O realizare a unei comunicari intre un obiect sursa si un obiect destinatie
Un apel de functie care se realizeaza la aparitia unui eveniment
O abstractie a unei unitati de comunicare intre un obiect sursa si un obiect Destinatie
Dezvoltarea iterativa furnizeaza clientului o versiune de program care:
Contine de la inceput toate functiile si cu fiecare versiune noua acestea sunt Perfectionate si performantele imbunatatite
Contine de la inceput un set restrans de functionalitati si cu fiecare versiune noua se adauga altele noi
Permite instruirea clientului si adaugarea de functii noi
Strategia de identificare a obiectelor numita “sublinierea substantivelor” permite depistarea:
Unor clase de interes, a unor subsisteme, clase neinteresante sau atribute de clase
Unor asociatii, unor obiecte, clase, atribute, metode si generalizari
Unor obiecte de interes, a unor actori, obiecte neinteresante sau atribute de obiecte
Problema dublei intretineri rezulta daca:
Se mentin copii multiple ale aceluiasi cod sursa
Mai multi proiectanti au drepturi pentru acces si modificare simultana a acelorasi date (eventual cod sursa)
Doi proiectanti actualizeaza simultan acelasi cod sursa si astfel este posibil sa se suprascrie unele modificari in copia distribuita
Implementarea asociatiilor se poate realiza prin
Includerea unor obiecte de tipul claselor asociate
Mesaje pentru asociatiile “1 la 1” si prin liste inlantuite si iteratori pentru asociatiile “1 la mai multi”
Pentru asociatii “1 la 1” cu pointeri, referinte sau declaratii inline de clase, Iar asociatiile “1 la mai multi” se implementeaza de multe ori cu pattern “container”
Un proces de descarcare (charge-out) in cadrul unui sistem de gestiune a configuratiilor Realizeaza:
Copierea unui modul din depozitul de baza in spatiul de lucru al Programatorului si apoi blocarea accesului (lock) la acest modul astfel incat Nimeni altcineva sa nu mai poata realiza un alt proces de descarcare
Copierea unui modul de program din depozitul de baza (baseline) in spatiul de lucru al programatorului si apoi stergerea acestuia din depozit
Crearea unei noi revizii in depozit si eliminarea blocarii accesului astfel incat alti programatori sa poata realiza mai departe revizii
O aplicatie informatica de gestiune a configuratiilor permite stocarea
Tuturor fisierelor unui proiect, indiferent de destinatia informatiei (cod-sursa, documentatii, planificari etc.), stocate intr-un depozit si sub forma tuturor versiunior create de proiectantii din cadrul echipei
Tuturor fisierelor aferente unui proiect intr-o ierarhie de clase in care relatiile de moştenire sunt corespunzatoare reviziilor succesive
Tuturor fisierelor unui proiect, indiferent de destinatia informatiei (cod-sursa, Documentatii, planificari, etc), stocate intr-un depozit si sub forma tuturor Versiunilor create de proiectantii din cadrul echipei
Ce fel de relatii sunt implementate in codul sursa de mai jos? (Animal -> caine, peste, Mita)
Specializare
Generalizare
Extensie
In acceptiunea UML, relatiile dintre clase sunt:
Noduri, constrângeri, stereotipuri, asociaţii, compoziţii, generalizare, dependenţå, multiplicitate
Asociatii, agregare, compozitii, generalizare, dependenta
Asociaţii, agregare, cazuri de utilizare (use cases), actori, compoziţie, generalzare, multplicitate
Caracteristica esentiala a modelului in V de dezvoltare software este:
Testele de acceptanţă validează cerinţele prin asocierea testelor cu specificafile, prin conlucrarea dintre client și dezvoltator, aripa stangă poate fi reexecutată pentru a îmbunĝtäţi cerinţele, proiectarea sau codificarea
Fiecare pas de proiectare este asociat cu pasul corespunzator din etapa de testare pentru verificarea corectei implementari a cerintelor si a aspectelor de proiectare, asociere realizata prin conlucrarea directa a echipelor implicate, aripa stanga poate fi reexecutata pentru a imbunatati cerintele, proiectarea sau codificarea
Realizarea unui produs dezvoltat parţial, care så permită clienţilor și prolectantlor så examineze anumite aspecte ale produsulul (mai ales interfeţe) pentru a putea coda mal uşor, codarea este in varful V-ului
Ce reprezinta in UML figura de mai jos? (stickmen)
O diagrama structurata
O agregare
O diagrama de caz de utilizare (use case)
Ce este o stare in abordarea UML?
O diagrama reprezentand relatiile dintre diferitele componente ale unui sistem
) o conditie de existenta a unui sistem care persista pentru o perioada semnificativa de timp si este reprezentata prin relatiile din cadrul arhitecturii sistemului
O conditie de existenta a unui obiect, care persista pentru o perioada semnificativa de timp si poate fi distinsa intr-un anumit mod de alta astfel de conditie de existenta
Testele de integrare verifica daca:
Aplicatia functioneaza corect in mediul in care va fi folosita
Toate modulele de program, integrate in sistem, functioneaza corect impreuna, conform cerintelor functionale
Clientul certifica corespondenta dintre specificatile initiale si functionarea aplicatiei
In depanarea aplicatiilor in cadrul intretinerii, este bine daca:
Introducem in meniul aplicatiei o comanda numita „Lista erorilor inregistrate”
Avem acces la un simulator de proces
Avem un log al utilizatorilor, al activitatilor, al erorilor, al utilizatorilor care au modificat inregistrari in baza de date
In cadrul testelor de acceptanta:
Sistemul este testat conform descrierii cerintelor clientului
Aplicatia este comparata cu Iista cerintelor software si hardware
Sistemul este testat daca functiile sunt implementate dupa instalarea softului
Metoda de dezvoltare Cleanroom este bazata pe:
Metode formale
Metode euristice
Metode stohastice
Metode orientate pe obiecte
Penetrabilitatea sistemelor de operare este:
Raspandirea si asimilarea de catre specialisti si utilizatori
Raspandirea si asimilarea de catre dezvoltatorii software
Calitatea sistemelor de operare de a fi usor de utilizat si de inteles de catre utilizatori
Inspectia codului:
Este o metoda de testare utilizata Ia testele de acceptanta si presupune inspectia codului de catre client, realizata prin comparare cu specificatiile
Se foloseste la testele de modul si presupune pregatirea actiunii prin desemnarea unei echipe, prezentarea prealabila a codului, studiul acesteia, formularea unei liste de obiective si organizarea unei sedinte de analiza; se verifica inclusiv corectitudinea algoritmilor, performantele, interfetele, etc
Atingerea unui prag fixat pentru increderea in software este
Un criteriu de optimizare a proiectarii software
O modalitate de implementare a imbunatirii sigurantei in functionare
Un criteriu de oprire a testarii
Sablonul Factory
Ofera un surogat local al unui obiect
Ofera o interfata unificata pentru un set de interfete dintr-un subsistem
Defineste o interfata pentru crearea unui obiect, dar lasa subclasele sa decida ce clasa trebuie instantiata
Model-View-Controller este
Un sablon stuctural care este de folos atunci cand o referinta sau pointer spre un obiect nu poate fi obisnuita
Un cadru compus din doua sabloane Observer
Un model arhitectural pentru implementarea unor interactiuni in timp real intre doua fire de executie
Sablonul Smart Pointer elimina unele surse de erori din practica utilizarii pointerilor obisnuiti, astfel:
Au contructor care initializeaza pointerii cu NULL, nu au desctuctor dar mentin adresa memoriei unde e obiectul utilizat, indica numarul de instante ale zonelor de memorie in care se face rezervarea
Indica in permanenta spre obiecte valide, determina daca memoria trebuie eliberata cand nu mai e necesara, daca eliberarea memoriei nu e face corect, smart pointers returneaza un pointer valid spre o alta zona de memorie si refuza accesul la zona initiala
) folosesc constructorii pentru a initializa cu NULL sau a forta preconditii pentru ca pointerii sa indice spre obiecte valide; determina daca memoria trebuie eliberata cand nu mai e necesara; daca eliberarea memoriei nu se face corect, smart pointers pot automat detecta conditia ca obiectul nu mai exista si sa refuze accesul
Solutia pentru sablonul Real-Time Observer consta in aceea ca:
Un singur obiect (Server) decupleaza clientii sai (Observers) care in prealabil s-au inregistrat la Server cu Subscribe() de Ia accesul la un alt fir de executie sau proces prin crearea unui surogat al obiectului din acel fir de executie sau proces; daca clientii au nevoie de un serviciu de la obiectul acela, ei cer asta de la Server, Server si Observer sunt clase abstracte care au clase derivate (Concrete Server si Concrete Observer) care adauga comportamentul specializat pentru situatia concreta de functionare
) un singur obiect (Server) furnizeaza automat date pentru clientii sai (Observers) care in prealabil s-au inregistrat la Server cu Subscribe(); acestea sunt clase abstracte care au clase derivate (Concrete Server si Concrete Observer) care adauga comportamentul specializat pentru situatia concreta de functionare
Obiectul Server furnizeaza la cerere asincrona sau episodica date pentru clientii sai (Observers) care in prealabil s-au inregistrat la Server cu Attach(); acestea sunt clase abstracte care au clase derivate (Concrete Server si Concrete Observer) care adauga comportamentul specializat pentru situatia concreta de functionare
Middleware este
) un software de conectivitate care consta dintr-un set de servicii care permit rularea proceselor multiple pe una sau mai multe echipamente/masini in vederea interactiunii de-a lungul unei retele
Un software de conectivitate care consta dintr-un set de servicii de tip proxy care permin rularea interfetelor utilizator pe una sau mai mute echipamente/masini in vederea interactiunii de-a lungul unei retele
Un software care este conceput pentru a rula intr-un nivel ierarhic de mijloc (three-tier) intre utilizatori si bazele de date pentru a permite rularea proceselor multiple pe una sau mai multe echipamente/masini
Analiza software este
Aceea dintre disciplinele existente in domeniul Software care determina cum trebuie proiectat sistemul software (arhitectura, prelucrari), preluand problema clientului
) aceea dintre disciplinele existente in domeniul Software care determina ce trebuie facut, preluand problema clientului si exprimand-o intr-un mod inteligibil de catre dezvoltator
Activitatea de negociere cu clientul a detaliilor contractului de dezvoltare software, pe baza doleantelor acestuia
Uzual, Service Oriented Architecture (SOA) se bazeaza pe
Standarde de acces specifice Serviciilor WEB (SOAP - Simple Object Access Protocol, REST), interfetele Serviciilor WEB sunt descrise in termeni de XML (Extensible Markup Language) pentru a putea fi cautate in depozite UDDI (Universal Description, Discovery and Integration repositories), iar mediul pentru dezvoltarea aplicatiilor este Microsoft Studio .NET sau JAVA
Standarde de acces specifice Serviciilor WEB (SOAP - Simple Object Access Protocol, REST), interfetele Serviciilor WEB sunt descrise in termeni de WSDL (Web Service Description Language) pentru a putea fi inregistrate in directori publici si cautate in depozite UDDI (Universal Description, Discovery and Integration repositories) iar suportul pentru transportul informatiei este formatul XML (Extensible Markup Language)
Standarde de acces specifice Serviciilor WEB (XML - Extensible Markup Language), interfetele Serviciilor WEB sunt descrise in termeni de WSDL (Web Service Description Language) pentru a putea fi inregistrate in directori publici si cautate in depozite UDDI (Universal Description, Discovery and Integration repositories), iar suportul pentru transportul informatiei este formatul SOAP (Simple Object Access Protocol)
Analiza orientata pe obiecte (OOA - Object Oriented Analysis) este
Crerea unui set de specificatii OO plecand de la cerintele externe
Analiza problemei plecand de la cerintele externe, prin discutii cu clientul urmand sa se obtina astfel de diagrame de clase si diagrame de cazuri de utilizare
Crerea unui model OO plecand de la cerintele externe
Obiectivul partenerilor furnizori pentru industria auto care au definit impreuna AUTOSAR (Automotive Open System Architecture) este de
A crea si stabili standarde deschise pentru arhitecturile software, care vor oferi o infrastructura de baza, pentru a ajuta la dezvoltarea de software de vehicule, interfete utilizator si de management pentru toate domeniile specifice industriei auto
A crea si stabili un sistem de operare (OSEK-VDK) ...
A dezvolta un mediu interactiv de dezvoltare si testare ...
Specificatiile urmaresc:
Descrierea structurii aplicatiei software si a comunicarii acesteia cu mediul (aici, multimea tuturor actorilor – a entitatilor exterioare cu care aplicatia interactioneaza in mod semnificativ)
Descrierea elementelor de arhitectura si de detaliu din aplicatia software, a structurii bazelor de date precum si a interfetelor utilizator
Descrierea comunicarii dintre aplicatia software (vazuta ca o cutie neagra) si mediul (aici, multimea tuturor actorilor - a entitatilor exterioare cu care aplicatia interactioneaza in mod semnificativ).
Obiectivul primordial al proiectarii software este sa se ajunga la o descriere care sa permita:
Delimitarea exacta a muncii in cadrul echipei si pe de alta parte continuarea cu actiunea de codificare (scriere de cod-sursa) in cadrul careia fiecare proiectant sa stie exact ce sa faca pentru a scrie codul ca activitate de rutina
Descrierea exacta a claselor, a relatiilor dintre acestea, stabilirea metodelor, descrierea structurii bazelor de date astfel ca mai departe fiecare proiectant sa stie exact ce sa faca pentru a scrie codul ca activitate de rutina
Delimitarea exacta a muncii in cadrul echipei prin intocmirea corecta a diagramei Gantt si obtinerea diagramei DFD pentru ca mai departe fiecare proiectant sa stie exact ce sa faca pentru a scrie codul ca activitate de rutina
Sistemele pentru conducere de proces ridica probleme speciale, care maresc gradul de dificultate al proiectarii si implementarii, deoarece:
Impun cerinte speciale privind siguranta in functionare (sisteme safety-critical), respectiv, cele mai multe au cerinte exprese privind implementarea redundantei dinamice
Impun cerinte speciale privind siguranta in functionare (sisteme safetycritical), respectiv cele mai multe au cerinte exprese privind raspunsul in timp real
Impun cerinte speciale privind raspunsul in timp real, respectiv, cele mai multe au cerinte exprese privind utilizarea unor sisteme de operare speciale
Specificatiile urmaresc:
Descrierea structurii aplicatiei software si a comunicarii acesteia cu mediul (aici, multimea tuturor actorilor – a entitatilor exterioare cu care aplicatia interactioneaza in mod semnificativ)
Descrierea comunicarii dintre aplicatia software (vazuta ca o cutie neagra) si mediul (aici, multimea tuturor actorilor - a entitatilor exterioare cu care aplicatia interactioneaza in mod semnificativ).
Descrierea elementelor de arhitectura si de detaliu din aplicatia software, a structurii bazelor de date precum si a interfetelor utilizator
{"name":"Grila IP COX", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Testați-vă cunoștințele în ingineria programării cu acest quiz captivant! Explorează concepte fundamentale și metodologii esențiale care stau la baza programării și dezvoltării software.Întrebările sunt concepute pentru a acoperi o varietate de subiecte, cum ar fi:ModularitateaSistemele de operareIngineria programării Proiectarea software-ului","img":"https:/images/course2.png"}