Ip cox 2
Mastering Programming Engineering
Test your knowledge on programming engineering concepts and principles with this comprehensive quiz! Dive into topics ranging from modularity to real-time systems, designed to challenge both beginners and experts alike.
Key Features:
- 55 multiple-choice questions
- Diverse topics in programming engineering
- Score your knowledge and identify areas for improvement
Modulariteatea inseamna
Delimitarea unor secvente de program, cu intrari si iesiri bine precizate, intre 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
Metoda MASCOT presupune, printre altele, elaborarea unei diagrame (numite ACR) care reflecta:
Structurile 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 obarsiile? In dispozitivele de intrare si se termina totdeauna la dispozitive 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, procceduri de operare, operator uman
Interfete, sistem 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 aleassa
O abordare iterativa in cardul careia, la fiecare iteratie, prin analiza riscurilor se compara diferitele 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 adevate, 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
Organizarea corecta a activitatii de programare intr-o firma de software
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 programarii 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 folosint descrieri-tip (portotipuri) ale modulelor de program disponibile
Cate module de program pot fi subordonate unui modul, conform regulilor euristice de proiectare?
De obicei intre 3-4 si 7, iar daca 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 taskurile de "luare la cunostinta" intr-un sistem de telemecanica?
Deoarece evenimentele din proces trebuie aduse la cunostinta sistemlui
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 reactilor operatorului cu evenimentele din proces
Deoarece sistemul trebuie sa reactioneze suficient de rapid la evenimentele din proces
Proiectarea structurata se realizeaza prin:
Folosirea proiectarii top-down si a unor structuri standard de control al programului: procesare secventiala, decizie, reunire
Proiectarea ingrijita a programelor, astfel incat acestea sa aiba o structura clara
Folosirea unor structuri standard de control al programuluiL procesare secventiala, decizie, reunire
Proiectarea top-down si modularizare structurala
Ce sunt regulile euristice de proiectare?
Reguli rezultate din aplicarea teoriilor euristice
Metodologii de proiectare ale organizatiilor software
Reguli rezultate din experienta practica
Metode sistematice de proiectare
Principiile ingineriei programarii se refera la:
Modele folosite in procesul de proiectare
Modalitatile de atingere a obiectivelor ingineriei programarii
Scopurile programarii
Destinatia activitatii de programare
Redundanta dinamica se realizeaza prin:
Efectuarea unor teste de acceptanta si eventuala rulare a unei versiuni alternative
Dublarea unei functii
Efectuarea unor teste de acceptanta si rularea unei versiuni alternative
Testarea starii taskurilor
Documentatia software de proiectare este necesara pentru:
Elaborarea unui prototip
Prezentarea produsului
Prezentarea produsului si relatiile cu clientii
Activarea de asistenta tehnica si refolosire software
"Ascunderea" este utila pentru:
Mai buna structurare a programului
Definirea unor restrictii de acces si "ascunderea" detaliilor nesemnificative ale unui modul de program
Definirea unor interfete complexe prin ascunderea temporara a detaliilor
"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 Entitate-relatie, proiectarea cu Diagrame de structura
Proiectarea structurata, proiectarea orientata pe obiecte, proiectare orientata pe calendar, proiectare 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 telemecanica, efectuarea unei telecomenzi parcurge urmatoarele etape:
Selectie, executie
Trimiterea telecomenzii, raspunsul procesului
Selectie, executie, confirmare din proces
Selectie, confirmare
Redundanta dinamica se realizeaza prin:
Efectuarea unor teste de acceptanta si rularea unei versiuni alternative
Dublarea unei functii
Efectuarea unor teste de acceptanta si eventuala rulare a unei versiuni alternative
Testarea starii taskurilor
Obiectivele ingineriei programarii sunt:
Adaptabilitatea, eficienta, fiabilitatea, perceptibilitatea
Modularitatea, confirmabilitatea, adaptabilitatea, eficienta
Adaptabilitatea, eficienta, modularitatea, confirmabilitatea, eficienta
Modularitatea, abstractizarea, ascunderea, eficienta, fiabilitatea, perceptibilitatea, 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 conditionata: 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 diferita reprezinta versiuni diferita 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 performanta
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 mesak (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
???? ???? Furinizeaza 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 obiecte de interes, a unor actori, obiecte neinteresante sau atribute de obiecte
Unor asociatii, unor obiecte, clase, atribute, metode si generalizari
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
Prin includerea unor obiecte de tipul claselor asociate
Prin 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 mdul 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 configuratilor permite stocarea:
Tuturor fisierelor unui proiect, indiferent de destinatia informatiei (cod-sursa, documentatii, planificari etc.), stocare intr-un depozit si sub forma tuturor versiunilor create de proiectanti din cadrul echipei
Tuturor fisierelor aferente unui proiect intr-o ierarhie de clase in care relatiile de mostenire sunt corespunzatoare reviziilor succesive
Tuturor fisierelor unui proiect, indiferent de destinatia informatiei( cod-sursa, documentatii, planificari etc.), socate distribuit, sub forma tuturor versiunilor create de proiectantii din cadrul echipei
In acceptiunea UML, relatiile dintre clase sunt:
Noduri, constrangeri, stereotipuri, asociatii, compozitii, generalizare, dependenta, multiplicitate
Asociatii, agregare, compozitii, generalizare, dependenta
Asociatii, agregare, cazuri de utilizare (use case), actori, compozitie, generalizare, multiplicitate
Caracteristica esentiala a modelului in V de dezvoltare software este:
Testele de acceptanta valideaza cerintele prin asocierea testelor cu specificatiile, prin conlucrarea dintre client si dezvoltator; aripa stanga poate fi reexecutata pentru a imbunatati cerintele, proiectarea sau codificarea
Fiecare pas de proiectare este asociat cu pasul corespunzator din etapa de testare pentru verificarea corectiei 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.
Realrzarea unui produs dezvoltat partial, care sa permita clientilor si proiectantilor sa examineze anumite aspecte ale produsului (mai ales interfete) pentru a putea coda mai usor; codarea este in varful V-ului
Ce este p stare om abprdarea 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 distrinsa 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 specificatiile 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 acceptatnta:
Sistemul este testat conform descrierii cerintelor clientului
Aplicatia este comparata cu lista cerinelor software si hardware
Sistemul este testat daca functiile sunt implementate dupa instalarea softului
Metoda de dezvoltare software Cleanroom este bazata pe
Metode euristice
Metode stohastice
Metode formale
Metode orientate pe obiecte
Penetrabiliatea 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 metode de testare utilizata la testele de acceptanta si presupune inspecia codului de catre client, realizata prin comparare cu specificatiile
Se foloseste la testele de modul si presupune pregatirea actiunii prin desemnarea unei echipe, prezentarea pealabila a codului, studiul acesteia, formularea unei liste de obiective si organizarea unei sedinte de analiza; se verifica inclusiv corectitudinea algoritmilor, performatele, interfetele etc.
Se foloseste la testele de modul si presupune analiza de colegii din echipa de testare, carora li se explica cele realizate (folosind inclusiv documentatia) si care prin efortul de a intelege cele parcurse pot ajuta la descoperirea unor greseli; discutia este condusa de proiectanti si accentul este pe cod
Atingerea unui prag fixat pentru increderea in software este:
Un criteriu de optimizare a proiectarii software
O modalitate de implementare a imbunatatirii sigurantei in functionare
Un criteriu de oprire a testarii
Sablonul Factory
Ofera un surogat local al unui obiect
Ofera o interfata unificata pentru un est de interfete dintr-un subsistem
Defineste o interfata pentru crearea unui obiect, dar lasa scbclasele sa decida ce clasa trebuie instantiata
Model_View-Controller este
Un sablon structural care este de folos atunci cand o referinta sau pointer spre un obiect nu poate fi obisnita
Un cadru compus din doua sabloane Observer
Un model arhitectural pentru implementarea unor interactiuni in timp real intre doua fire de executie
Sablonum Smart Pointer elimina unele surse de erori din practica utilizarii pointerilor obisnuiti, astfel:
Au constructor care initializeaza pointerii cu NULL; nu au destructor dar mentin adresa memoriei unde este obiectul utilizat' indica numarul de instante ale zonelor de memorie in care se face rezervarea
Indica in permanenta spre obiectele valide; determina daca memoria trebuie eliberata cand nu mai e necesara; daca eliberarea memoriei nu se face corect, smart pointers returneaza un pointer valid spre o alta zona de memorie si refuza accesul la zona initiala
Folosesc constructori pentru a initialia 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 la accesul la un alt fir de executie sau proces prin crearea unui surogat al obiectului din acel fir de executie sau process' 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 Conctrete Observer) care adauga comportamentul specializat pentru situatia concreta de functionare
Un singur obiect (Server) care 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 Conctrete 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 Conctrete 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 permit rularea interfetelor utilizator pe una sau mai multe echipamente/masini in vederea interactiunii de-a lungul unei retele
Un sofware care este conceput pentru a rula intr-un nivel ierarhic de mijloc (three-tier) intre utilizatori si bazele de date pentru a permite astfel rularea proceselor multiple pe una sau mai multe echipamente/masini
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 Services Description Language) pentru a putea fi inregistrate in drectori 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 WSDL (Web Services Description language) pentru a putea fi inregistrate in directori publici si cautate in depozitde UDDI (Universal Description Discovery and INtegration repositories) iar suportul pentru transportul informatiei este formatul SOAP (Simple Object Access Protocol).
Analiza orientata pe obiecte (OAA - Object Oriented Analysis) este
Crearea unui set de specificatii OO plecand de la cerintele externe (un model al domeniului solutiei problemei)
Analiza problemei plecand de la cerintele externe, prin discutii cu clientul, urmand sa se obtina astfel diagrame de clase si diagrame de cazuri de utilizare
Crearea unui model OO plecand de la cerintele externe (un model al domeniului problemei)
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) pentru software pentru vehicule care sa fie universal, deschis, scalabil si disponibil pentru toti furnizorii de componente auto
A dezvolta un mediu interactiv de dezvoltare si testare care sa poata fi folosit pe scara larga pentru dezvoltarea de aplicatii orientate pe obiecte in industria software automotive
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 mediu( 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 specifice 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 safety-critical) respectiv, cele mai multe au cerinte exprese privind raspunsul in timp real
Impun cerinte speciale privind raspunsul in timp real, respecti, cele mai multe au cerinte exprese privind utilizarea unor sisteme de operare speciale
Specificatiile urmaresc
Descrierea structurii aplicatiei software si a comunicarii acesteia cu mediun (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 mediu (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":"Ip cox 2", "url":"https://www.quiz-maker.com/QPREVIEW","txt":"Test your knowledge on programming engineering concepts and principles with this comprehensive quiz! Dive into topics ranging from modularity to real-time systems, designed to challenge both beginners and experts alike.Key Features:55 multiple-choice questionsDiverse topics in programming engineeringScore your knowledge and identify areas for improvement","img":"https:/images/course1.png"}