| | 1. Al respecte del desenvolupament d'interfícies d'usuari indiqueu quina de les afirmacions següents és certa: |
| | Durant el desenvolupament d'una aplicació és aconsellable centrar-se des de bon començament en enllestir les funcionalitats de l'aplicació sense preocupar-nos massa de les activitats relacionades amb el desenvolupament de la GUI, és a dir, una bona GUI sempre es pot afegir al final sense problemes gràcies als entorns avançats de desenvolupament de GUIs dels que disposem avui en dia |
| | De fet, les GUIs de qualitat sorgeixen de forma natural |
| | Encara més, com a norma general podem dir que la GUI d'una aplicació té poca importància respecte a les funcionalitats que l'aplicació proporcionarà, es a dir, si aquestes funcionalitats són les que realment espera l'usuari llavors aquest donarà molt poca importància a la GUI |
| | Cap de les anteriors afirmacions és certa |
| | No contesto... |
| |
| | 2. Al context del desenvolupament d'interfícies d'usuari indiqueu quina de les afirmacions següents és falsa: |
| | Si ens basem únicament en un cicle 'dissenyar-prototipar' llavors el problema és que el desenvolupador fa d'usuari. |
| | El més important és l'estil guia perquè determina allò que els usuaris veuen. |
| | Si ens basem únicament en un cicle 'dissenyar-prototipar' llavors no fem disseny centrat a l'usuari. |
| | Que el disseny sigui centrat a l'usuari no vol dir fet pels usuaris. |
| | No contesto... |
| |
| | 3. Al context del desenvolupament d’interfícies d’usuari indiqueu quina de les afirmacions següents és certa: |
| | El disseny, prototipat i avaluació d’una GUI normalment s’emporten més del 70% de l’esforç de desenvolupament de la GUI. |
| | La definició dels usuaris, els seus requisits d’usabilitat i les tasques que faran en relació a la GUI normalment s’emporten més del 70% de l’esforç de desenvolupament de la GUI. |
| | En realitat, com que s’ha de fer per a cada projecte, és l’elaboració de l’estil guia la que s’emporta més del 70% de l’esforç de desenvolupament de la GUI. |
| |
Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 4. Al context del desenvolupament d’interfícies d’usuari digueu quina de les afirmacions següents és falsa:
|
| | Hi hauran criteris d’usabilitat específics de cada aplicació però hi han de generals com: la facilitat d’aprenentatge, la velocitat d’ús, la freqüència d’errors i la facilitat de retenció. |
| | Podem fer taxonomies dels usuaris que dependran de l’aplicació però una taxonomia general els pot dividir en: principiants, intermitents i freqüents. |
| | Relacionant criteris d’usabilitat i tipus d’usuaris podem dir que el més importat per a un usuari principiant és la facilitat d’aprenentatge. |
| | En aquesta línia, la frase reconèixer més que recordar fa referència a una característica desitjable de les GUIs per facilitar el treball dels usuaris principiants. |
| | No contesto... |
| |
| | 5. Al context del desenvolupament d’interfícies d’usuari indiqueu quina de les afirmacions següents és certa:
|
| | Un usuari qualsevol pot recordar unes 100 unitats d’informació per minut, per tant, permetre niar finestres fins a uns 10 nivells no és cap problema. |
| | Missatges com ara ¿Què tal la família?, van molt bé pels usuaris principiants ja que faciliten que es relaxin davant l’ordinador, confiant més en les capacitats d’aquest. |
| | Inhabilitar els botons que no es poden prémer és un bon exemple de codificació visual. |
| | Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 6. Indiqueu quina de les afirmacions següents és certa:
|
| | Evidentment és millor seguir un estil de codificació que no fer-ho, però, en realitat no és massa important perquè llegir codi és una activitat mínima de l’enginyeria del SW. |
| | Si no fos perquè el manteniment d’un codi ho pot fer una persona distinta a la que va crear el codi, els estils de codificació no serien de cap ajuda. |
| | De fet, l’afirmació anterior es veu reforçada degut al caràcter massa enfocat a l’estètica del codi dels estils de codificació, és a dir, en aquest context estil = estètica. |
| | Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 7. Indiqueu en quina de les situacions següents segur que no és correcte llençar una excepció:
|
| | Una aplicació arrenca, intenta llegir el seu fitxer d’inici però no el troba. |
| | L’usuari escriu el nom d’un fitxer en un camp d’un formulari per tal que l’aplicació el busqui. L’aplicació ho intenta però no el troba. |
| | Un sistema format per un PC amb una camera de vídeo va gravant imatges per al seu posterior anàlisi però s’emplena el disc. |
| | Es demana fer una divisió per zero, és a dir, es detecta i, de fet, no s’arriba a fer. |
| | No contesto... |
| |
| | 8. Indiqueu quina de les afirmacions següents és certa:
|
| | En C no es pot fer gestió d’excepcions. |
| |
En C++ no es pot fer gestió d’excepcions. |
| |
En Java no es pot fer gestió d’excepcions. |
| |
Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 9. Indiqueu quina de les afirmacions següents és falsa:
|
| | El disseny per contracte evita la protecció redundant. |
| |
La programació defensiva evita la protecció redundant.
|
| | El disseny per contracte es pot aplicar a sistemes crítics. |
| | La programació defensiva es pot aplicar a sistemes crítics. |
| | No contesto... |
| |
| | 10. Indiqueu quina de les afirmacions següents és falsa:
|
| | Els assert només estan actius en mode Debug. |
| | Aquests assert són utilitzats moltes vegades per verificar pre-condicions d’un mètode, per tant, poden recolzar el disseny per contracte. |
| | De fet, és clar per a tothom que si fem disseny per contracte amb C o C++ hem d’aprofitar el mecanisme dels assert degut a la comoditat que suposa el fet esmentat a l’apartat a). |
| | De tota manera, si que hem d’anar amb compte amb els efectes laterals dels assert en relació al fet esmentat a l’apartat a). |
| | No contesto... |
| |
| | 11. A la reunió d’una revisió tècnica formal com la vista al vídeo de classe, qui no assisteix?:
|
| | El cap de projecte. Per exemple, per evitar que els revisors siguin massa tous. |
| | El productor, per evitar que els revisors siguin massa tous (els revisors d’avui son els productors de demà i poden haver-hi revenges ...). |
| |
El lector, que, encara que pot assistir a la reunió, no és necessari perquè tothom ha llegit prèviament el treball en avaluació. |
| | El transcriptor, que, encara que pot assistir a la reunió, només és necessari quan el productor no assisteix, és a dir, en cas que el productor sigui present ell mateix ha de prendre nota de tot el que s’ha de corregir. |
| | No contesto... |
| |
| | 12. Quina de les situacions següents tracta d’evitar la gestió de la configuració (GC):
|
| | Els canvis. |
| | El desenvolupament paral·lel. |
| | La construcció de variants d’una aplicació. |
| | La GC no vol evitar cap de les situacions anteriors. |
| | No contesto... |
| |
| | 13. En relació a les proves del SW indiqueu quina de les afirmacions següents és certa:
|
| | Els errors tipogràfics de codi són més fàcils de detectar amb proves de caixa negra que de caixa blanca. |
| | Els manuals d’usuari també és poden provar. |
| | Les proves de regressió normalment són de caixa blanca. |
| | Si tenim dues unitats SW provades al 100% (suposem que fos possible, encara que, en general, sabem que no ho és) i que han superat aquestes proves, llavors no faria falta fer proves d’integració si suposem que només es comuniquen entre sí. |
| | No contesto... |
| |
| | 14. Indiqueu quina de les afirmacions següents és falsa:
|
| | Els patrons de disseny són una idea molt bona per aconseguir que tots els enginyers del SW tinguin un llenguatge i coneixements comuns de disseny, però encara són una proposta teòrica perquè la majoria de patrons no s’han utilitzat com a solucions a problemes de disseny d’aplicacions reals. |
| | La idea de patró de disseny és pot aplicar també al context de proves per tenir patrons de proves. |
| | Quan parlem en general del concepte de patró de disseny és correcte no afegir el qualificatiu orientar a objecte perquè el paradigma OO no els té en exclusiva. |
| | Poden haver-hi patrons de disseny que encara no s’han identificat. |
| | No contesto... |
| |
| | 15. Indiqueu quina de les afirmacions següents és certa:
|
| | Si fem enginyeria inversa per anar d’un codi fet en C++, del qual no disposem de disseny previ, cap a un diagrama de classes UML no hi trobarem cap ambigüitat, és a dir, la intenció del programador és clara. El principal problema es troba quan volem anar del disseny de classes al codi. |
| | Podem fer enginyeria inversa per anar d’un codi C++, del qual no disposem de disseny previ, cap a un diagrama de seqüència UML. |
| | Un límit natural e ineludible per a la generació automàtica de codi des d’UML és la part dinàmica del codi, és a dir, automàticament podem aconseguir l’esquelet en C++ (per exemple) d’un diagrama de classes UML (relacions estàtiques entre classes, els seus atributs i mètodes) però no podem generar automàticament les crides que s’han de fer des de els mètodes d’una classe als d’una altra a partir de cap diagrama UML. |
| | La generació automàtica de codi des d’un diagrama de classes UML a C++ normalment farà el 75% del treball de codificació. |
| | No contesto... |
| |
| | 16. Volem fer una estructura de classes que permeti a una classe client llegir de disc i visualitzar imatges de diferents tipus (BMP, JPEG, etc.). Això ho volem fer de manera que el client no hagi de canviar la manera d’interactuar amb aquesta estructura de classes pel fet de canviar de sistema operatiu (la rutina de visualització a baix nivell de les imatges canviarà d’un sistema operatiu a un altre). Suposem que esperem ampliar el nombre de sistemes operatius i el nombre de tipus d’imatges a tractar i volem fer-ho de forma independent, indiqueu quin dels patrons de disseny següents és imprescindible per tal d’assolir aquest “desig d’independència”:
|
| | Bridge pattern. |
| |
Facade pattern (fatxada). |
| |
Adapter pattern (adaptador). |
| | Cap dels anteriors. |
| | No contesto... |
| |
| | 17. Considerant els dos diagrames de classes següents:
indiqueu quina de les afirmacions següents és certa:
|
| | El fragment de codi C1 només és coherent amb D1. |
| | El fragment de codi C1 només és coherent amb D2. |
| | El fragment de codi C1 és coherent amb D1 i D2. |
| | Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 18. Considerem els mateixos diagrames de classes i fragments de codi de la pregunta anterior. Indiqueu quina de les afirmacions següents és certa:
|
| | En general, el fragment de codi C2 captura més acuradament la semàntica de D1 que C1. |
| | En general, el fragment de codi C2 captura més acuradament la semàntica de D2 que C1. |
| | No hi ha cap diferencia pràctica entre C1 i C2. |
| | Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 19. Considerem els mateixos diagrames de classes i fragments de codi de la pregunta anterior, però suposant que al diagrama D1 el diamant estigues emplenat. Indiqueu quina de les afirmacions següents és certa:
|
| | El fragment de codi C1 només és coherent amb D1. |
| | El fragment de codi C1 només és coherent amb D2. |
| | El fragment de codi C1 és coherent amb D1 i D2. |
| | Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 20. Sigui el diagrama de classes següent:
Indiqueu si es basa en algú dels patrons de disseny següents: |
| | Bridge pattern. |
| | Facade pattern (fatxada). |
| | Adapter pattern (adaptador). |
| |
Cap dels anteriors. |
| | No contesto... |
| |
| | 21. Indiqueu en que no ens pot ajudar seguir un estil de codificació per codificar en C++:
|
| | En evitar inclusions accidentals de fitxers .h. |
| | En evitar memory-leaks quan alliberem memòria dinàmica. |
| | En identificar visualment l’abast de les variables (atribut, paràmetre, variable local, etc.). |
| | En evitar codificació basada en cut-and-paste. |
| | No contesto... |
| |
| | 22. En relació a la gestió de la configuració i el control de canvis, indiqueu quina de les afirmacions següents és certa:
|
| | Al context del RUP: seguint l'UCM els desenvolupadors fan check-in/check-out local d’activitats i deliver de fitxers. |
| | En un cicle de vida de desenvolupament de SW tipus incremental-iteratiu, és necessari que tots els artefactes estiguin sota control de la gestió de la configuració per no perdre cap (és que són molts!). |
| | Si capturem correctament els requisits d’un client i els implementem sense errors, les tècniques de control de canvis no tindrien gaire importància perquè el principal motiu de manteniment és la correcció d’errors latents. |
| | Totes les afirmacions anteriors són falses. |
| | No contesto... |
| |
| | 23. Siguin els dos fragments de codi següents:
| Fragment 1 |
|
Fragment 2 |
switch(Variable)
{
case Valor1,Valor2:
// càlcul 1
break;
case Valor3,Valor4:
// càlcul 2
break;
default:
break;
}
|
|
if(Variable==Valor1 || Variable==Valor2)
{
// càlcul 1
}
else if(Variable==Valor3 || Variable==Valor4)
{
// càlcul 2
}
|
indiqueu quina de les afirmacions següents és certa: |
| | La complexitat ciclomàtica del Fragment 1 és major que la del Fragment 2. |
| | La complexitat ciclomàtica del Fragment 1 és menor que la del Fragment 2. |
| | La complexitat ciclomàtica del Fragment 1 és igual que la del Fragment 2. |
| | No es pot calcular la complexitat ciclomàtica d’una sentència switch. |
| | No contesto... |
| |
| | 24. Indiqueu quina de les afirmacions següents és certa:
|
| | A l’hora de fer SW una regla d’or és l’anomenada one rule, one place, que ens indica, per exemple, que no hem de repetir codi. [Fins aquí l’afirmació és certa]. Això acota molt l’impacte dels canvis i, per tant, no cal fer proves de regressió. |
| | Una recepta per obtenir dissenys de classes més simples consisteix en afavorir la composició enfront l’herència. [Fins aquí l’afirmació és certa]. Com passa amb el Bridge Pattern, el facade pattern (fatxada) també es fonamenta en aquest principi. |
| |
Hi ha metodologies de desenvolupament de SW, per exemple l’anomenat Extreme Programming, en les que les tècniques de refactorització (reestructuració del codi sense afectar al comportament extern del SW) són molt importants. [Fins aquí l’afirmació és certa]. En aquest context les proves només es poden concebre al final del desenvolupament perquè durant aquest, el codi canvia amb massa facilitat i el resultat de les proves caducaria en qüestió d’hores. |
| |
Cap de les anteriors afirmacions és certa. |
| | No contesto... |
| |
| | 25. Siguin el diagrama de classes i codi C++ següents:
indiqueu quina de les afirmacions següents és falsa: |
| | Si es llença una excepció tipus FileException s’executarà el tractament d’excepció 1. |
| | Si es llença una excepció tipus PipeException s’executarà el tractament d’excepció 1. |
| | Si es llença una excepció tipus FileException s’executarà el tractament d’excepció 3. |
| | El catch que dóna pas al tractament d’excepció 2 no té cap efecte. |
| | No contesto... |
| |
| | 26. Pràctiques 1: Quina de les següents comprovacions seria un bon invariant de la classe BaseDades?
|
| | if (( bViolInv != true )&&( ( nReg < 0 )||( nCamps < 0 )||( nCharCamp < 0 ))) { throw Excepcio('Invariant Violat'); }. |
| | if (bViolInv == true) { throw Excepcio('Invariant Violat'); }. |
| | if (strcmp(nom_fitxer_DB,'DB.txt') { throw Excepcio('Invariant Violat'); }. |
| |
Totes les anteriors.
|
| | No contesto... |
| |
| | 27. Pràctiques 2: La manera de mostrar els diàlegs d'opcions per al professor i l'alumne, tot just fet el login, és:
|
| | Cridant al mètode DoModal del GestorGUI corresponent. |
| | Cridant al mètode mostrar_menu_opc del GestorGUI corresponent. |
| | El mètode login ja s'encarrega de mostrar-lo automàticament. |
| |
Cap de les anteriors. |
| | No contesto... |
| |
| | 28. Pràctiques 3: Quins mètodes s'havien de declarar inline seguint les regles d'Ellemtel?
|
| | El constructor i el destructor de la classe. |
| | Els mètodes Carregar_DB i Alocar_DB. |
| | Els mètodes nCamps_reg, Nombre_reg, Is_modificada i nChar_camp. |
| |
Cap de les anteriors. |
| | No contesto... |
| |
| | 29. Pràctiques 4: Per a esborrar una classe que hem creat per error o que hem deixat de fer servir:
|
| | N'hem d'esborrar els fitxers corresponents. |
| | Hem d'eliminar la seva definició amb el Class Wizard. |
| | Hem de treure tots els includes que en facin referència. |
| | Totes les anteriors |
| | No contesto... |
| |
| | 30. Pràctiques 5: Quan es captura una excepció:
|
| | S’ha d’aturar l’execució i sortir del programa en qualsevol cas, mostrant, si cal, un missatge d’error. |
| | S’ha d’intentar recuperar l’estat del programa i en cas de que no sigui possible, sortir restaurant tot el possible. |
| | S’ha de mostrar un missatge d’error i continuar amb l’execució normal del programa a partir del punt on ens hem quedat. |
| | S’ha de sortir de forma directa. Windows s’encarrega de mostrar el missatge corresponent. |
| | No contesto... |
| |
| | 31. Pràctiques 6: On s'ha de gestionar el throw de l'invariant?
|
| | Al propi invariant. |
| | Al mètode que el comprova. |
| | Al més alt nivell de l'aplicació per a sortir correctament. |
| | No s'ha de gestionar. |
| | No contesto... |
| |
| | 32. Pràctiques 7: Per a solucionar el problema del memory leak que apareixia en la pràctica de prova, quines eines es va recomanar que utilitzéssiu?
|
| | Purify i PureCoverage. |
| |
Purify i Robot. |
| | PureCoverage i Robot. |
| | En un primer pas Robot, i a continuació Purify i Coverage. |
| | No contesto... |
| |
| | 33. Pràctiques 8: De quin tipus són els punts de verificació que heu inserit a l’Script generat pel Robot en la pràctica de prova?
|
| | Alfanumèric |
| | Window Image |
| | Item existence |
| | Cap dels anteriors |
| | No contesto... |
| |
| | 34. Pràctiques 9: Quan s'executa un script en Robot, és a dir, quan es realitza una prova de regressió, els resultats obtinguts s'analitzen amb una altra eina per veure que els resultats segueixen el pla de prova establert, eina que es diu Test Manager. La connexió entre aquestes dues eines es defineix de la següent manera:
|
| | Introduint al final del script del Robot la sentència 'SetDataStream(Instance_Robot, WNDPROG, __RobotLog, Instance_Test_Manager, WNDPROG,false);'. |
| | Activant la opció del menú File->Settings->Log->Send to Test Manager. |
| |
La crida del TestManager es realitza automàticament. |
| |
Cap de les anteriors. |
| | No contesto... |
| |
| | 35. Pràctiques 10: Un cop sincronitzats el Robot i el TestManager tal com heu definit en la pregunta anterior, s'han de tenir en compte certes precaucions. Una de les següents precaucions no és necessària:
|
| | S'ha d'esborrar del disc l'arxiu Log que conté el resultat de la prova anterior, doncs dins el marc del RUP es prohibeix esborrar proves anteriors (per això s'anomenen proves de regressió ja que comproven el resultat de proves recurrents). |
| | No es pot realitzar per segon cop una nova prova de regressió amb el mateix script si no tanquem la finestra del Test Manager que ens mostra els resultats de la primera prova. |
| | L'estat inicial del sistema quan es grava i es reprodueix un script s'ha d'intentar que sigui sempre el mateix. |
| |
Totes les precaucions anteriors s'han de tenir en compte. |
| | No contesto... |
| |