Enginyeria del Software II - 20370
22 de juny 2004

  1. Considerem les següents sentencies:
i. La interacció del nostre sistema amb els usuaris l'hem desenvolupat en base als controls gràfics estàndard que ens proporciona la nostra eina de desenvolupament de software.
ii.Una vegada hem desenvolupat les funcionalitats del nostre sistema li hem afegit una GUI que considerem adient per accedir a aquestes funcionalitats, llavors fem un gran esforç pedagògic per tal que els usuaris entenguin com han de fer anar aquesta GUI.

Tenint-les en compte, digueu quina de les afirmacions següents és certa:
     Les sentències 'i' i 'ii' suggereixen que hem fet un desevolupament de la GUI centrat a l'usuari
     Les sentències 'i' i 'i' suggereixen que hem fet un desevolupament de la GUI centrat al sistema
     La sentència 'i' suggereix un desenvolupament de la GUI centrat a l'usuari però la 'ii' suggereix un desenvolupament centrat al sistema
       La sentència 'i' suggereix un desenvolupament de la GUI centrat al sistema però la 'ii' suggereix un desenvolupament centrat a l'usuari
       No contesto...
 
  2. Digueu quina de les afirmacions següents és certa:
     Els manuals d'usuari no es poden provar
     El model conceptual de l'usuari és menys important que el look and feel de la GUI
     Els programes capaços de pitjar botons d'una GUI, emplenar els seus camps, etc., i tot automàticament, són molt útils per avaluar la usabilitat dels sistemes
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  3. Considerem el següent esquema:


Digueu quina de les afirmacions següents és certa:
     Aquests esquemes són sortida de la fase de 'Dissenyar la GUI'
     Aquests esquemes són sortida de la fase de 'Fer un prototip de la GUI'
     Aquests esquemes són sortida de la fase de 'Avaluar la GUI'
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  4. Donat el següent esquema:


Digueu quin dels aparellaments següents és correcte:
     A1, B2, C3, D5, E4, F6, G7
     A1, B3, C2, D7, E6, F5, G4
     A1, B2, C3, D4, E5, F6, G7
       A6, B1, C2, D3, E7, F5, G4
       No contesto...
 
  5. Digueu quina de les afirmacions següents és certa:
     El look and feel de la GUI queda molt determinat per l'estil de codificació que utilitzi l'empresa de desenvolupament de SW
     El fet de seguir un estil de codificació no ens facilita cap activitat a l'hora de buscar errors durant la fase de proves d'unitat
     Un estil de codificació facilita les revisions tècniques formals de codi
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  6. Digueu quina de les afirmacions següents és certa:
     Quan un programador s'incorpora a un equip de desenvolupament ha de definir el seu propi estil
     En realitat no ha de definir el seu propi estil des de zero, el que ha de fer és una barreja dels estils de la resta de programadors, així minimitza els errors de comunicació amb tots per igual
     De tota manera, el principal problema és que els estils de programació només serveixen per llenguatges orientats a objecte
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  7. Digueu quina de les afirmacions següents és certa:
     Una de les regles de l'estil de codificació en C vist a classe ens demana utilitzar mètodes 'inline' en lloc de macros, sempre que sigui possible
     Una de les regles de l'estil de codificació en C vist a classe ens demana utilitzar comentaris de línia utilitzant '//..' en lloc de '/*..*/'
     Estil de codificació = normes estètiques
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  8. Siguin el diagrama de classes i el codi següents:


Digueu quina de les afirmacions següents és certa:
     Les excepcions tipus 'SocketException' sempre reben el tractament '1'
     Les excepcions tipus 'SocketException' sempre rebrien el tractament '1' si l'objecte llençat es capturés per valor en comptes de per referència
     Es el mateix capturar per valor o per referència l'excepció llençada
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  9. Tenint en compte el diagrama de la pregunta "8". Digueu quina de les afirmacions següents és certa:
     Les excepcions tipus 'PipeException' sempre reben el tractament '3'
     Si afegim una subclasse a 'SerialException' aquest també la tractaria
     Si el 'Tractament d'excepció 1' fa un altre 'throw e', el flux d'execució passa al tractament '2'
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  10. Tenint en compte el diagrama de la pregunta '8'. Digueu quina de les afirmacions següents és certa:
     Les excepcions tipus 'FileException' sempre reben el tractament '4'
     Les excepcions tipus 'FileException' sempre rebrien el tractament '4' si l'objecte llençat es capturés per valor en comptes de per referència
     Si al tractament '2' es llença una excepció tipus 'FileException' llavors el flux d'execució passa al tractament '4'
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  11. Tenint en compte el següent diagrama de classes:


Digueu quina de les afirmacions següents és certa:
     A la part private de la classe A un generador automàtic de codi pot afegir la definició 'B * m_atri1'
     A la part private de la classe A un generador automàtic de codi pot afegir la definició 'B * m_atri2'
     Si el diamant que surt de B fos dels emplenats, llavors l'apartat b) seria cert
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  12. Tenint en compte el diagrama de la pregunta '11'. Digueu quina de les afirmacions següents és certa:
     A la part private de la classe B un generador automàtic de codi pot afegir la definició 'A * m_atri1'
     A la part private de la classe B un generador automàtic de codi pot afegir la definició 'A *m_atri2'
     Si el diamant que surt de A fos dels emplenats, llavors l'apartat b) seria cert
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  13. Digueu quina de les afirmacions següents és certa:
     No podem fer disseny per contracte sense un llenguatge formal com ara l'OCL
     El concepte d'invariant només té sentit al paradigma orientat a objecte
     És coherent que la complexitat ciclomàtica d'un codi sigui menor si fem disseny per contracte que si fem programació defensiva. A l'inrevés és menys probable
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  14. Digueu quina de les afirmacions següents és certa:
     Com que existeixen els 'asserts' tant en C com en C++, podem dir que aquests llenguatges donen suport explícit al disseny per contracte
     Tothom té clar que les pre-condicions d'un mètode no s'han de comprovar quan el sistema s'executa en mode 'Release', es a dir, quan ja fa la feina per a la que ha estat desenvolupat
     Les post-condicions del proveïdor són obligacions pel client
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  15. Digueu quina de les afirmacions següents és falsa:
     El CMM és un model que tracta d'avaluar el grau de maduresa de les empreses desenvolupadores de SW, d'acord amb el seu procés de desenvolupament
     El CMM és un model que tracta d'avaluar el grau de maduresa de les empreses desenvolupadores de SW, d'acord amb la qualitat que els seus clients perceben els productes
     El CMM té cinc nivells
       La gestió de la configuració és necessària per tal d'assolir el segon nivell del CMM
       No contesto...
 
  16. Digueu quina de les afirmacions següents és falsa:
     La durada màxima aconsellada per una reunió d'una revisió tècnica formal és dues hores
     A les revisions tècniques formals intervé el responsable del productor per tenir coneixement immediat de la qualitat del treball del productor
     Amb les revisions tècniques formals es volen trobar problemes el més a prop d'on s'han produït
       Però, de fet, durant les revisions tècniques formals no es resolen els problemes trobats
       No contesto...
 
  17. Digueu quina de les afirmacions següents és certa:
     La complexitat ciclomàtica d'un bucle augmenta amb el nombre d'iteracions
     A partir només d'un graf de flux poden generar els casos de prova dels camins bàsics, ja sense tenir en compte el codi que va donar lloc al graf
     La complexitat ciclomàtica és pròpia de les proves d'integració
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  18. En relació a la tècnica de proves OATS, digueu quina de les afirmacions següents és certa:
     El principal avantatge de les taules de l'OATS és que, encara que no trobem una adient pel nostre cas, fer-ne de noves és molt senzill
     Quan volem provar interaccions entre dos objectes, ens dóna un mecanisme per a generar tots els casos de prova possibles de forma eficient
     Quan volem provar interaccions entre dos objectes, ens dóna un mecanisme per a escollir casos de prova de entre l'univers possible
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  19. Digueu quina de les afirmacions següents és certa:
     Si realment ens poguéssim refiar de que les proves d'unitat estan ben fetes les proves d'integració no serien necessàries
     Encara que sabem que és impossible, suposem que poguéssim fer proves d'unitat que ens assegurin que dites unitats són perfectes. Llavors no serien necessàries les proves d'integració
     Respecte a les proves d'unitat, les proves d'integració tendeixen a caçar errors de disseny
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  20. Al context de la gestió de la configuració, digueu quina de les afirmacions següents és certa:
     El model del conjunt de canvis és més proper a l'UCM que el model de composició i el de check-in/check-out
     Al model de composició és bàsic el concepte de baseline per tal de definir el concepte de configuració
     El model de check-in/check-out no incorpora explícitament el concepte de configuració
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  21. Digueu quina de les afirmacions següents és falsa:
     Una caracterísitica de l'UCM és que dues persones poden modificar el mateix fitxer al mateix temps, encara que després s'haurà de fer una fusió dels canvis
     Una característica de l'UCM és que ens permet entendre una nova configuració del sistema com el resultat de realitzar activitats sobre la configuració anterior
     L'UCM utilitza el concepte de component, per tant, el problema d'aquest model de gestió de la configuració és que només serveix si hem fet diagrames de components d'UML, és a dir, només serveix al context de l'orientació a objectes basada en UML
       L'UCM també ens serveix com a model de desenvolupament paral·lel
       No contesto...
 
  22. Al context de la gestió de la configuració, digueu quina de les afirmacions següents és falsa:
     Una recepta adient es fer baselines en arribar a fites del projecte
     Es suposa que els components de la gestió de la configuració es corresponen amb els components de l'arquitectura del SW
     Sense una eina adient no té sentit plantejar-se la gestió de la configuració
       La gestió de la configuració també és necessària encara que el software sigui petit i desenvolupat per un sol programador
       No contesto...
 
  23. Sigui el següent diagrama de classes:


Digueu quina de les afirmacions següents és certa:
     Apareix el Bridge pattern i l'adapter pattern
     Apareix el Bridge pattern i el facade pattern
     Dels patrons vistos a classe, només apareix el Bridge pattern
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  24. Al context dels patrons de disseny, digueu quina de les afirmacions següents és certa:
     L'abstract factory pattern no és un patró estructural com el Bridge Pattern
     Respecte a l'UML, els patrons ens permeten fer diagrames de classes però no de col·laboració
     Crear un patró és fàcil, però el difícil és saber si mai s'utilitzarà
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  25. Digueu 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]. Aquesta regla fa més fàcil el control de versions
     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 tant canviant, encara que les proves es planifiquin al començament, només es poden executar quan el SW estigui totalment preparat per lliurar al client
     Hi ha una tècnica per dissenyar diagrames de classes anomenada 'commonality/variability analysis' que consisteix en indentificar els conceptes que varien i encapsular-los i després identificar les variacions. A més a més, 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]. El Bridge Pattern es pot deduir mitjançant aquestes dues receptes
       Cap de les anteriors afirmacions és certa
       No contesto...
 
  26. Pràctiques 1: Per codificar la interacció de la interfície gràfica corresponent als diàlegs d'opcions del professor i de l'alumne:
     S'ha de crear una classe associada al diàleg i posar la crida al botó corresponent
     S'ha de crear una classe associada al diàleg i el GestorGUI corresponent amb un mètode mostrar_menu_opc
     Ja estava codificada la interacció amb la resta de la interfície al fer un login d'un usuari d'aquest tipus
       S'havia de crear un menú d'opcions intermig per poder cridar al menú de cada tipus d'usuari de forma correcta
       Cap de les anteriors
       No contesto...
 
  27. Pràctiques 2: Quan es captura una excepció d'una pre- o postcondició:
     S'ha de mostrar un missatge al testejador indicant on s'ha produït l'error i perquè
     S'ha de mostrar un missatge al usuari indicant que s'ha produït un error, però sense entrar en detalls tècnics
     No cal capturar les excepcions que llencen les pre- o postcondicions
       S'ha de solucionar l'error de forma automàtica i continuar amb l'execució
       b) i d) són certes
       No contesto...
 
  28. Pràctiques 3: Quina utilitat té aplicar un estil de codi com el d'Ellemtel?
     Fer el codi més llegible i estructurat
     Fer el codi més fàcilment modificable
     Permetre a un grup de programadors integrar el codi fet per cadascun de forma uniforme
       Totes les anteriors
       Cap de les anteriors
       No contesto...
 
  29. El Test Manager, combinat amb el Robot:
     ens permet detectar i solucionar memory leaks
     ens permet veure les línies de codi cobertes durant l'execució del programa
     ens resumeix l'execució d'una prova i el resultat de les verificacions
       evita l'aparició de finestres no desitjades
       estableix directives de compilació per a fer el codi més eficient
       No contesto...
 
  30. Pràctiques 5: Quin sentit té definir les constants INVARIANT, PRECOND i POSTCOND?
     No s'ha de definir dites constants
     Per a diferenciar on es troba el codi de programació per contracte
     Són constants que el compildor comprova per a ser capaç de llençar excepcions
       Per poder deshabilitar el codi que contenen un cop acabada la fase de proves
       Cap de les anteriors
       No contesto...
 
  31. Pràctiques 6: Segons l'estil de codi Ellemtel, les variables d'una classe han de ser declarades:
     Globals a totes les clases per a poder-hi accedir de forma ràpida
     Privades a la classe a la que pertanyen
     Públiques a la classe a la que pertanyen
       Amb un mètode d'accés per a poder obtenir-ne el valor
       b) i d) són certes
       No contesto...
 
  32. Pràctiques 7: El programa Rational Robot serveix per a realitzar proves de tipus
     proves de regressió
     proves d'unitat, sempre i quan s'utilitzi en combinació amb la programació per contracte
     proves de caixa negra, sempre i quan s'utilitzi en combinació amb el programa PureCoverage
       proves d'integració, sempre i quan s'utilitzi en combinació amb el programa PureCoverage
       cap de les anteriors
       No contesto...
 
  33. Pràctiques 8: Les eines ClearQuest i ClearCase serveixen per a realitzar
     control de versions i creació de baselines, respectivament
     control de versions i seguiment de canvis, respectivament
     control de versions i confecció de casos de prova, respectivament
       confecció de casos de prova i control de versions, repectivament
       cap de les anteriors
       No contesto...
 
  34. Pràctiques 9: Per a detectar l'existència d'una finestra amb el Rational Robot heu de
     inserir un script de verificació en Visual Basic de tipus 'window existence'
     inserir un script de verificació en Visual Basic de tipus 'gui object existence'
     inserir un punt de verificació de tipus 'gui object existence'
       inserir un punt de verificació de tipus 'windows existence'
       cap de les anteriors
       No contesto...
 
  35. Pràctiques 10: Les eines Purify i Coverage serveixen principalment per a:
     detectar memory leaks i especificar les linies de codi executades, respectivament
     detectar memory leaks i especificar les variables emmascarades per aquests memory leaks, respectivament
     optimitzar el codi i especificar les línies de codi executades, respectivament
       optimitzar el codi i detectar memory leaks, respectivament
       cap de les anteriors
       No contesto...
 

Check...