Examenes Ingenieria Del Software 3
Examenes Ingenieria Del Software 3
Examenes Ingenieria Del Software 3
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
J unio 2010
mbito
NACIONAL 1SEMANA
ESTE EJERCICIO NO ES DE TEST.
NECESITO EL EJERCICIO MANUSCRITO POR EL ALUMNO Y LA HOJA DE LECTURA PTICA
PARA PODER CALIFICAR.
SI ESTE EJERCICIO NO SE HA IMPRESO EN HOJA DE LECTURA PTICA, SOLICITE UNA AL
TRIBUNAL.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
ATENCIN! PONGA SUS DATOS EN LA HOJA DE LECTURA PTICA QUE DEBER ENTREGAR
JUNTO CON EL RESTO DE LAS RESPUESTAS.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. En qu consiste la actividad de reingeniera y cundo es necesaria?
Solucin
Consiste en generar un sistema bien organizado y documentado a partir de un producto software que no fue
desarrollado siguiendo tcnicas de ingeniera de software.
En ocasiones es necesaria para el mantenimiento de dichos productos software. (Pg. 26)
2. El sistema de ventas por Internet de una tienda funciona de la siguiente manera: para que el cliente
formalice la compra debe estar previamente registrado. El formulario de compra consiste bsicamente en
tres partes: datos del cliente, forma de pago y la lista de los productos seleccionados. Cuando se formalice la
compra el sistema guarda dicha operacin con: un identificador (orden de compra), el cliente y la lista de
productos.
Realice un diagrama de modelos de datos Entidad - Relacin de la compra. Describa los datos ms
relevantes mediante el diccionario de datos.
Solucin
El diagrama E R para el modelo de datos de la compra:
Y el diccionario de datos para los elementos ms relevantes:
Nombre: Orden de compra
Estructura: Identificador + Cliente + Producto + {Producto}
Identificador = {CaracterAlafanumrico}
N
Nombre: Producto
Estructura: Nombre + Identificador + Precio
Nombre: Forma de pago
Estructura: [ Contrareembolso | Tarjeta | Transferencia ]
Nombre: Cliente
Estructura: Nombre + Apellidos + IdDNI + Usuario + Clave + Direccin
Nombre = {CaracterAlafnumrico}
10
/ristra de 10 caracteres /
Apellidos = {CaracterAlafanumrico}
30
/ristra de 30 caracteres/
IdDNI = {Dgito}
8
Usuario = {CaracterAlafnumrico}
10
Clave = {CaracterAlafnumrico}
10
Direccin = {CaracterAlafanumrico}
50
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Un mdulo o una parte de una aplicacin grfica dispone de elementos grficos primitivos como l i neas,
cadenas de t ext o, ci r cul os, super f i ci es, etc. Para facilitar el uso de estos elementos, sera deseable
que cualquier otro mdulo o aplicacin cliente pudiera manejarlos de forma similar: los pinte en una
posicin, los mueva, cambie su color, etc. Para conseguirlo, si disponemos del polimorfismo de herencia, se
puede crear una clase abstracta o una interfaz, El em_gr af , que recoge las caractersticas comunes de
todos ellos. Los mtodos de El em_gr af no tienen contenido sino que, mediante un enlace dinmico, se
resuelve el cdigo que corresponda al hijo cuando, en tiempo de ejecucin, se cree una instancia del objeto
utilizado. De esta manera la aplicacin
cliente no necesita saber la estructura del
rbol y le es indiferente tratar con l i nea
o con t ext o.
Un escaln adicional en el diseo es comprender
que la aplicacin cliente querr manejar di buj os
(agrupaciones o compuestos de los elementos
grficos primitivos) de la misma manera que
maneja los elementos primitivos.
Para hacer esto hay varias aproximaciones:
1. La ms simple. Constryase una nueva clase Cont enedor formada por una coleccin de los elementos
grficos.
Pregunta a) A partir del diagrama anterior, represente esta solucin con la clase Contenedor.
Ntese que ahora el uso que la aplicacin cliente hace de los objetos es anloga a la inicial cuando, al no
haber agrupado an los elementos grficos primitivos en una familia, no exista el enlace dinmico y
tena que discernir si trataba con l i nea o ci r cul o. Ahora Cont enedor no pertenece a la misma
clase que El em_gr af por lo que habr que reescribir el cdigo del cliente de manera que, en lugar de
invocar ciegamente el Di buj a( ) de los elementos grficos hijos, haga:
a. Compruebe si est tratando con un Cont enedor o un El em_gr af .
b. Si es un Cont enedor , obtenga la lista de los hijos contenidos en l e invoque Di buj a( )
de cada uno.
Los inconvenientes de esta solucin son que cada cliente debe preocuparse de cmo est hecha la clase
Cont enedor e incluir cdigo extra para manejar el hecho de que podra estar utilizndola o podra estar
usando El em_gr af . Adems, un Cont enedor no puede contener Cont enedor es por el mero hecho
de ser una agregacin de El em_gr af .
2. Esta segunda solucin, que llamaremos Patrn de Composicin, recoge las ventajas de la solucin
anterior y resuelve sus inconvenientes. Por un lado, la anterior clase Cont enedor se va a denominar,
definitivamente, Di buj o; y es un El em_gr af ms. Por otro lado, Di buj o est compuesto por
cualquier El em_gr af , incluido l mismo. Las ventajas de esta solucin son:
No hay que hacer nada especial para que la clase compuesta (Di buj o) se contenga a s misma o a
otros elementos de la familia y, as, podemos tener estructuras de cualquier profundidad.
Se preserva la simplicidad de los clientes porque slo deben conocer una clase y no estn obligados a
replicar en ellos la estructura del rbol.
Se pueden aadir nuevas subclases de El em_gr af s y tambin otros tipos de Di buj os, porque los
clientes no tienen por qu verse alterados.
+Dibuja()
-Posicion
-Color
Elem_graf
+Dibuja()
Linea
+Dibuja()
Circulo
+Dibuja()
Texto
+Dibuja()
Superficie
Pregunta b) A partir del diagrama inicial, represente la solucin del Patrn de Composicin con
la clase Dibujo.
Este hallazgo de una solucin que resuelve no slo un problema especfico de diseo, sino una buena
cantidad de otros problemas similares, se denomina patrn de diseo.
Supngase ahora un entorno grfico de ventanas como Windows donde los elementos que se manejan
(Obj et o_ent or no) son del tipo Di buj o. Tambin aqu hay una serie de elementos simples (como
pueden ser Bor de, I cono, Fondo, Et i quet a o Decor ador ) y otros El em_compuest o son
compuestos, como Vent ana, Cuadr o, Mar co, Bar r a, Menu o Bot on. As, una Barra de Herramientas
(Bar r a_her r ) es una especializacin de Bar r a y est compuesto por un Bor de y un Fondo, por
Bot ones y Et i quet as, por Menus deplegables, por Separ ador es y un Asa (estos ltimos, los
consideramos especializaciones de Decor ador ). Por ejemplo:
Pregunta c) Utilice el patrn de diseo Composicin anterior para representar la estructura de
Objeto_entorno y, en concreto, Barra_herr.
Solucin
a) Clase Contenedor:
b) Patrn de Composicin:
+Dibuja()
-Posicion
-Color
Elem_graf
+Dibuja()
Linea
+Dibuja()
Circulo
+Dibuja()
Texto
+Dibuja()
Superficie
Contenedor
-Fin1
1
-Fin2
1..* -Fin1
1
-Fin2 0..*
+Dibuja()
-Posicion
-Color
Elem_graf
+Dibuja()
Linea
+Dibuja()
Circulo
+Dibuja()
Texto
+Dibuja()
Superficie
-Fin1
1
-Fin2
1..*
+Dibuja()
Dibujo
c) Patrn de Composicin para Barra_herr:
Objeto_entorno
Borde Etiqueta Fondo Icono Decorador
Elem_compuesto
Separador Asa Boton Marco Ventana Barra
Barra_herr Barra_tit Barra_despl
Panel Menu
-Fin1
1
-Fin2
1..*
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2010
mbito
2 SEMANA Y UE
ESTE EJERCICIO NO ES DE TEST.
NECESITO EL EJERCICIO MANUSCRITO POR EL ALUMNO Y LA HOJA DE LECTURA PTICA
PARA PODER CALIFICAR.
SI ESTE EJERCICIO NO SE HA IMPRESO EN HOJA DE LECTURA PTICA, SOLICITE UNA AL
TRIBUNAL.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
ATENCIN! PONGA SUS DATOS EN LA HOJA DE LECTURA PTICA QUE DEBER ENTREGAR
JUNTO CON EL RESTO DE LAS RESPUESTAS.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJAS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. La Lnea Base es un concepto inherente a la Gestin de la Configuracin del Software que incide en la idea
de mantener el control de los elementos de trabajo en su evolucin, que necesariamente tienen, durante el
desarrollo de un producto Software. Segn IEEE 620.12/1990 se define:
Una especificacin o producto que se ha revisado formalmente y sobre el que se ha llegado a un
acuerdo, y que de ah en adelante sirve como base (referencia) para un desarrollo posterior y que
puede cambiarse solamente a travs de procedimientos formales de control de cambios.
En cualquier fase del ciclo de vida, un elemento de trabajo se modifica libremente hasta llegar a un estado
en el que algn agente participante, con capacidad y autoridad para ello, lo revisa y aprueba formalmente. A
partir de ese momento dicho elemento no se puede modificar si no es mediante un protocolo formal de
control de cambios. Puede haber lneas base en diferentes mbitos: Planificacin, Requisitos, Diseo,
Desarrollo, Configuracin del Producto... En todos los casos, la lnea base confiere visibilidad, estabilidad y
control al desarrollo porque identifica situaciones significativas (estados) de los elementos de trabajo (y su
historia), permiten la comparacin entre unas y otras para hacer un seguimiento del progreso del desarrollo y
porque, adems, aaden su capacidad para ser recuperadas.
Supngase que, durante la fase de anlisis de un producto que se gestiona con una lnea base de requisitos,
el Departamento Comercial de su organizacin o un usuario potencial del producto, solicita que se
incorporen al producto determinadas funcionalidades.
Segn lo explicado ms arriba y lo que se ve en la asignatura sobre gestin de la configuracin, razone cmo
se manejara esta solicitud y su incidencia en la elaboracin de los requisitos del sistema. Debera aceptarse
la solicitud?
Solucin
En la fase de especificacin de un producto, es usual que lluevan requisitos desde distintas procedencias.
Este es uno de los motivos por los que, en la asignatura, se hace hincapi en la importancia de identificar la
figura del cliente como interlocutor directo en la mayor parte del desarrollo. Sin embargo, esto no quiere
decir que sea el nico. Lo ms comn es que haya que considerar necesidades y aspectos relacionados con el
futuro uso de la aplicacin o tener en cuenta decisiones estratgicas al respecto de la competitividad del
producto en el mercado o de la propia organizacin. Esto contribuye a la volatilidad de los requisitos, su
incertidumbre y disminuye la controlabilidad del desarrollo. Como bromea Kenneth M. Dymond en UNA
GUA DEL CMM: COMPRENDER EL MODELO DE MADUREZ DE CAPACIDAD DEL SOFTWARE: demasiados
cocineros estropean el caldo. Precisamente, el concepto de la lnea base es paliar estos efectos. En la lnea
base de requisitos, debera identificarse los interlocutores vlidos para incorporar requisitos y cul es el
procedimiento para admitirlos. De esta manera, si la solicitud del enunciado se produce con anterioridad a la
consolidacin de una lnea base de requisitos, debera evaluarse superficialmente y admitirse
condicionalmente a lo que establezca la lnea base o a lo que se acuerde al constituirla. Otra opcin es
recoger la solicitud y postergar la decisin para tratarla como un cambio sobre la lnea base, una vez
constituida. En cualquier caso, tanto la admisin de un agente peticionario de nuevos requisitos como la
incorporacin de estos requisitos, requiere la evaluacin de la conveniencia y el alcance de la modificacin,
el acuerdo de su incorporacin o no y la comunicacin de dicho acuerdo a todas las partes implicadas.
2. Realice estos apartados:
a) Modele, mediante un diagrama de transicin de estados (DTE), el mdulo de acceso a un sistema
mediante usuario y contrasea. Contemple la posibilidad de enviar por correo electrnico la contrasea a
los usuarios vlidos que as lo soliciten en caso de olvido.
b) Descrbalo tambin mediante pseudocdigo.
Solucin
a)
b)
SI (usuario) Y (password) correctos ENTONCES
Acceso permitido
SI NO
SI (usuario) correcto Y peticion de envio ENTONCES
enviar password por correo electrnico
SI NO
Denegar acceso
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se desea disear un sistema informtico para controlar la apertura y cierre de la compuerta trasera de un
camin. Tal como indica la figura, el sistema recibir informacin de tres palancas (P1, P2 y P3) y diversos
sensores:
1) La palanca P1 permite subir y bajar la compuerta en vertical. Un sensor indicar si la compuerta est a
ras del suelo (0%) o arriba del todo (100%).
2) La palanca P2 abre y cierra la compuerta. Un sensor indicar el ngulo de apertura de la compuerta. Se
considera que la compuerta est abierta si el ngulo es de 0 grados y cerrada si el ngulo es de 90 grados.
3) La palanca P3 inclina la compuerta para facilitar la carga y descarga del camin. El ngulo que puede
girarse la compuerta con esta palanca va de 0 a -10 grados.
El proceso de apertura se consigue accionando las palancas: P2 (abrir) P1 (bajar) P3 (inclinar)
El proceso de cierre se consigue accionando las palancas: P3 (arriba) P1 (subir) P2 (cerrar)
El sistema informtico deber asegurar que la compuerta slo se abre o se cierra si est arriba del todo
(100% de la posicin vertical).
Disee el sistema informtico mediante un diagrama de transicin de estados. No contemple la posibilidad
de accionar ms de una palanca a la vez.
Solucin
Segn el enunciado estricto:
Al considerar que los movimientos de la compuerta son estados, se introducen nuevas posibilidades. Por
ejemplo, imaginemos que mientras se est bajando la compuerta, se decide rectificar y volver a subir la
compuerta. Esta posibilidad, que no est soportada por la solucin anterior, conllevara la siguiente
secuencia de eventos en la solucin: P1 accionada hacia abajo -> P1 deja de accionarse -> P2 accionada
hacia arriba.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Septiembre 2010
mbito
NACIONAL UE
ORIGINAL
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. J ustifique si es recomendable, o no, utilizar un modelo de ciclo de vida evolutivo para el desarrollo de
sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido o de alto ndice de riesgo.
Solucin
En todos estos sistemas, su naturaleza y funcionalidad dependen fuertemente de la interaccin de todos los
componentes o de la coordinacin en el desarrollo o del funcionamiento de sus elementos. Por ello, es difcil
o inviable hacer desarrollos incrementales o parciales, con entornos reducidos del sistema prototipos, sin
comprometer seriamente el producto final. El uso de este modelo de desarrollo no se recomienda para
productos de este tipo.
2. Las siguientes figuras representan dos mtodos de prueba de caja negra: el anlisis de valores lmite y la
particin en clases de equivalencia.
1) Estos mtodos limitan el espacio de prueba a una parte del espacio de ejecucin, por qu?
2) Identifique qu mtodo corresponde a cada figura y resuma brevemente en qu consiste cada mtodo.
Solucin
a) En general, probar completamente un programa es inabordable y adems no resulta rentable ni prctico.
Por esta razn, se emplean mtodos que limitan las pruebas a ciertas regiones del espacio de ejecucin.
Con las pruebas slo se explora una parte de todas las posibilidades del programa. Se trata de alcanzar
un compromiso para que con el menor esfuerzo posible se puedan detectar el mximo nmero de
defectos y, sobre todo, aquellos que puedan provocar las consecuencias ms graves.
b)
Particin en clases de equivalencia
Este mtodo divide el espacio de ejecucin de un programa en varios
subespacios o clases equivalentes. Cada clase (delimitada por un par de
lneas punteadas en la figura) agrupa a todos aquellos datos de entrada
al programa que producen resultados equivalentes.
Anlisis de valores lmite
Muchos programas se construyen codificando primero un tratamiento
general, y retocando luego el cdigo para cubrir casos especiales. Por
esta y otras razones es bastante normal que los errores tengan cierta
tendencia a aparecer precisamente al operar en las fronteras o valores
lmite de los datos normales (representados por crculos sombreados en la
figura). Este mtodo se basa en la identificacin y prueba de los valores
lmite.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se ha diseado un paquete de revisin ortogrfica mediante refinamiento progresivo diseo funcional
descendente o, tambin llamado, diseo algortmico. La descripcin del comportamiento del mdulo es la
siguiente:
Recoge las palabras de un documento de texto particular y las busca, una a una, bien en un
diccionario principal fichero esttico, que el usuario no puede modificar o bien en un diccionario
definido por el usuario dinmico, que s se puede ampliar o modificar. Ambos diccionarios son
ficheros constituidos por una lista de palabras ordenadas alfabticamente. Si alguna de las palabras
del documento revisado no aparece en ninguno de los diccionarios o no se puede deducir mediante
la aplicacin de ciertas transformaciones, prefijos o sufijos; se mostrar por la salida estndar del
sistema.
Las especificaciones y objetivos iniciales del programa son:
Debe manejar archivos de texto ASCII.
El documento debe caber completamente en la memoria principal.
Debe ejecutarse rpidamente.
Tenga en cuenta que el documento se procesa en modo batch, por lotes.
Debe ser inteligente sobre lo que constituye las palabras mal escritas (por eso necesitamos
prefijo/sufijo, reglas y un diccionario privado, dinmico o de usuario).
El grfico del diseo obtenido es el siguiente:
Las desventajas de este diseo son:
Gestiona con dificultad la evolucin (cambios) del sistema a largo plazo.
Por ejemplo, los cambios en los algoritmos y estructuras de datos repercuten en la estructura de
todo el diseo (y en la documentacin).
La implementacin se caracteriza, a menudo, por la falta de ocultacin; combinada con una
sobre-abundancia de variables globales.
Estas caractersticas no son inherentes aunque, frecuentemente, estn relacionadas.
No facilita la reutilizacin.
El diseo se adapta a medida para los requisitos y especificaciones de una aplicacin en
particular.
estructuras de datos.
Se aplazan hasta que las funciones y procedimientos se hayan definido y ordenado.
Para paliar los puntos dbiles de este diseo, desarrolle otro arquitectura pero con orientacin a
objetos. Explique claramente cmo construye dicha arquitectura y justifique las decisiones que tome.
: Lista de
palabras
: Diccionario
estatico
Revisor
ortografico
Inicia
Proceso Recoge
Inicializa
diccionarios
Obtener
nombres de
diccionarios
Abrir
diccionarios
Construir
estructuras
de datos
: Diccionario
dinamico
Datos
globales
Obtener
palabras
Cierra
ficheros
Borra
diccionarios
y palabras
Obtener
nombre del
documento
Dividir
documento
en palabras
Busca
palabras
Comprueba
en
diccionarios
Aplica
reglas
Aplica
reglas de
sufijo
Aplica
reglas de
prefijo
Maneja
palabras
desconocidas
Enva
palabras a la
salida
Solucin
Dicionario
-Fin1
1
-Fin2
1..*
Diccionario
esttico
Diccionario
dinmico
Diccionario
principal
Diccionario
de usuario
Fin1 Fin2
uses
-Fin3 1
-Fin4 1..*
-Fin5
1
-Fin6
1..*
-Fin7
1
-Fin8
0..*
uses
Ordenacin
Revisor
ortogrfico
Documento
Palabra
Iterador
Uso
Uso
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Septiembre 2010
mbito
NACIONAL UE
RESERVA
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJAS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Acaba de incorporarse a la empresa Victoria & Niagara Software como director/a de software. Dicha
empresa lleva muchos aos desarrollando software de gestin contable para pequeas empresas y utilizando
el ciclo de vida en cascada con xito aceptable. Sin embargo, segn su experiencia, usted piensa que el
modelo con prototipo rpido es una forma bastante mejor para desarrollar software. Escriba un informe,
dirigido al vicepresidente de desarrollo de software, explicando por qu cree que la organizacin debera
cambiar al uso del modelo con prototipo rpido. Recuerde que a los vicepresidentes no les agradan los
informes de ms de una pgina.
Solucin
La ventaja del ciclo de vida en cascada es que establece un estilo de trabajo disciplinado y est dirigido por
la documentacin que se va generando. Sin embargo, no garantiza que el producto entregado sea el que
necesita el cliente, porque la lnea de fabricacin se separa del contacto con el cliente a partir de la fase de
anlisis. Con el modelo con prototipo rpido, sin embargo, el cliente ve inmediatamente si sus necesidades
se reflejan, o no, en el prototipo y esto aumenta la confianza en la garanta de que el producto final responda
a sus necesidades. Por otro lado, el hecho de que la organizacin tenga experiencia en un dominio concreto,
hace que la creacin de un prototipo sea casi inmediata. O dicho de otra manera, la experiencia de la
organizacin permite crear un esquema o patrn general, aplicable al dominio, del que se puede obtener
rpidamente (con una parametrizacin adecuada) el prototipo rpido necesario para cada desarrollo
particular.
2. Explique en qu consiste la fase de mantenimiento del software y distinga entre los distintos tipos de
mantenimiento: correctivo, adaptativo y perfectivo.
Solucin
Pg. 24, seccin 1.8.1, del libro de la asignatura.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. A principios de los 80 el nmero de partculas elementales conocidas aument muchsimo, con lo que se
intent organizarlas en familias con propiedades comunes. Algunas partculas (como el electrn y el
neutrino) no experimentan la interaccin fuerte y se las denomina leptones. Las partculas del ncleo del
tomo experimentan la interaccin fuerte y se las conoce como hadrones. Los hadrones se subdividen en
dos categoras: los mesones (como el pin) y los bariones (como el protn).
Las partculas poseen un momento angular intrnseco que se conoce como spin, cuya magnitud es un
mltiplo de la constante de Plank h. Para los bariones este mltiplo es un semientero: 1/2, 3/2, 5/2, etc.
mientras que para los mesones es un entero: 0, 1, 2, etc. Todos los leptones tienen spin 1/2 h.
Modele la descripcin anterior mediante un diagrama Orientado a Objetos.
Solucin
Solucin junio, 1 semana, nacional 2011
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Defina el concepto de configuracin software. Explique qu es y cmo se utiliza la lnea base para
gestionar los cambios en la configuracin del software.
Solucin
Epgrafe 1.9.5 del libro; pginas 30 a 32.
2. En el diagrama de objetos de la figura, observe que Figura_plana es una clase con polimorfismo. El mtodo
Circulo.Dibujar() sobrecarga el mtodo de Figura_plana; y ocurre lo mismo con Eliminar() y con los
respectivos mtodos de Cuadrado y Triangulo.
El operador new se encarga de crear una instancia invocando a un mtodo denominado constructor de
una clase o un objeto determinado. As, la sentencia:
Figura_plana Mi _f i gur a = new Circulo()
crea la instancia Mi _f i gur a, de tipo Figura_plana, mediante el constructor de Circulo que es el mtodo
Circulo(), implcito en la clase Circulo.
a. La sentencia anterior generara correctamente el cdigo o el compilador dara un mensaje de error
por diferencia en los tipos? Qu tipo se asigna, finalmente, a Mi _f i gur a?
b. Si se hace la llamada Mi _f i gur a. Di buj ar ( ) , qu mtodo se ejecuta, el de Figura_plana o el
de Circulo?
+Dibujar()
+Eliminar()
Figura_plana
-Dibujar()
-Eliminar()
Circulo
-Dibujar()
-Eliminar()
Cuadrado
-Dibujar()
-Eliminar()
Triangulo
Solucin
El hecho de conectar la invocacin de un mtodo con el cdigo que le corresponde, se llama acoplamiento
o enlace. Cuando el compilador conoce exactamente qu cdigo le corresponde a la invocacin de un
mtodo, la asignacin se denomina enlazado temprano (early binding) y se produce durante la compilacin,
antes de la ejecucin. Sin embargo, si durante la compilacin no se sabe qu cdigo le corresponde
exactamente en la invocacin de un mtodo, la asignacin se resuelve durante la ejecucin del programa,
cuando las referencias toman un valor concreto. A esto se le llama acoplamiento tardo (late binding) o
enlazado dinmico.
a. En el caso de la sentencia anterior, se crea un objeto de tipo Circulo e, inmediatamente, la referencia
obtenida se asigna a un objeto, Mi _f i gur a, de tipo Figura_plana. La sentencia es correcta y el
compilador no dara error puesto que, por la herencia, un Circulo es, tambin, una Figura_plana. A
esto se le llama generalizacin y es una transformacin del tipo hacia arriba (upcasting).
b. Se ha establecido que el tipo que el compilador ha asignado a Mi _f i gur a es
Figura_plana -enlazado temprano. Sin embargo al invocar, durante la ejecucin, al mtodo
Mi _f i gur a. Di buj ar ( ) , el polimorfismo o enlazado dinmico garantiza que el mtodo que
se ejecuta en la invocacin es la especializacin correcta de Circulo Ci r cul o. Di buj ar ( )
puesto que ese es el tipo de Mi _f i gur a.
En las descripciones anteriores se pone de manifiesto de qu manera, la herencia y el polimorfismo,
permiten disear con ocultacin, ahorrar en el desarrollo de cdigo el cual resulta compacto, sencillo y
fcilmente entendible y lleva a diseos flexibles en los que es fcil aadir o eliminar elementos.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se desea disear un sistema informtico para controlar la apertura y cierre de la compuerta trasera,
articulada, de un camin. La compuerta est formada por dos plataformas cuyo movimiento se realiza con
dos motores M1 y M2 accionados mediante tres palancas P1, P2 y P3. Unos sensores, llamados
final de carrera detectan que cada plataforma ha llegado al lmite de su movimiento: FC1_M1, FC2_M1,
FC1_M2, FC2_M2 y FC3_M2. Una vez que se activa el sistema, las rdenes de las palancas se envan a un
pequeo autmata que alimenta a los motores. Dicho autmata debe contener la lgica necesaria para que
las maniobras de Apertura y Cierre sean seguras y correctas. Segn la figura de ms abajo:
1) La palanca P1 controla M1 y permite subir y bajar la compuerta en vertical. El sensor FC2_M1 indicar
si la compuerta est a ras del suelo (0%, FC2_M1=1) y FC1_M1 si est arriba del todo (100%,
FC1_M1=1).
2) La palanca P2 acciona el M2 para abrir y cerrar la compuerta la segunda plataforma. Los finales de
carrera indicarn el ngulo correcto de la apertura de la compuerta. Se considera que la compuerta est
abierta si el ngulo es de 0 grados (FC2_M2=1) y cerrada si el ngulo es de 90 grados (FC1_M2=1).
3) La palanca P3 acciona tambin el M2 e inclina ms la plataforma para facilitar la carga y descarga del
camin. El ngulo que puede girarse la compuerta con esta palanca va de 0 (FC2_M2=1) a -10 grados
(FC_M2=1) (FC3_M2=1).
Las maniobras de Apertura y Cierre son las siguientes:
El proceso de apertura se consigue accionando las palancas: P2 (abrir) P1 (bajar) P3 (inclinar)
El proceso de cierre se consigue accionando las palancas: P3 (arriba) P1 (subir) P2 (cerrar)
Restricciones:
No se pueden pulsar dos palancas a la vez.
La plataforma NO se inclinar en ningn sentido si no est totalmente abierta (ngulo 0 grados)
y, adems, la compuerta totalmente bajada (0% FC2_M1=1)
La plataforma NO se cerrar si est inclinada (ngulo 0 grados) o la compuerta no est totalmente
subida (elevacin < 100% FC1_M11)
La compuerta NO se elevar ni bajar hasta que la plataforma est totalmente horizontal (ngulo =0
grados o FC2_M2=1)
Se pide disear el funcionamiento descrito mediante un diagrama de transicin de estados.
Solucin
Supongamos que los valores que pueden tomar las variables del sistema son las siguientes:
Motores Finales de carrera Palancas
M1
={-1, 0, 1}
Bajar, parado, subir
FC1_M1 ={0, 1} P1
={-1, 0, 1}
Abajo, no pulsado, arriba
FC2_M1 ={0, 1}
M2
={-1, 0, 1}
Abrir o bajar, parado, cerrar o subir
FC1_M2 ={0, 1} P2
={-1, 0, 1}
Abrir, no pulsado, cerrar
FC2_M2 ={0, 1}
FC3_M2 ={0, 1}
P3 ={-1, 0, 1}
Abajo, no pulsado, arriba
Las entradas al sistema sern las acciones de las palancas y el valor de los finales de carrera; las salidas, las
seales de los motores. Los estados vendrn definidos por el movimiento de los motores y las posiciones de
la compuerta. El diagrama de estados sera:
En el estado inicial, se verifican y calibran los accionadores, motores y finales de carrera. Los valores
internos deben ser (estado 0):
ESTADO 0, REPOSO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =1
FC2_M1 =0
M2 =0
FC1_M2 =1
FC2_M2 =0
FC3_M2 =0
M2=-1
M2=0; FC2_M2=1; FC1_M1=1
M2=1
P
2
=
-
1
FC2_M2=1
P2=1
FC1_M2=1
M1=-1
M1=0; FC2_M1=1; CF2_M2=1
M1=1
P1=-1
FC2_M1=1
P1=1
FC1_M1=1
M2=-1
M2=0; FC3_M2=1
M2=1
P
3
=
-1
FC3_M2=1
P3=1
FC2_M2=1
Bloqueo
Desbloqueo
Plataforma
horizontal
Plataforma
bajada
Plataforma
inclinada
Sistema
bloqueado
Sistema
iniciado
P2=1
P
2
=
-1
P1=1
P1=-1
P3=1
P3=-1
La accin de la palanca P2 para abrir, permite la
transicin al movimiento de M2 hasta poner la
plataforma horizontal o hasta que se pulse P2 en
sentido contrario (1):
Al llegar a la posicin horizontal el motor M2 se detiene y el sistema
queda en el siguiente estado (2, de reposo).
A continuacin, la sucesin del resto de estados:
ESTADO 3, BAJ ANDO
MOTORES FINALES DE CARRERA
M1 =-1
FC1_M1 =0
FC2_M1 =0
M2 =0
FC1_M2 =0
FC2_M2 =1
FC3_M2 =0
ESTADO 4, ABAJ O
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =0
FC2_M1 =1
M2 =0
FC1_M2 =0
FC2_M2 =1
FC3_M2 =0
ESTADO 5, INCLINANDO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =0
FC2_M1 =1
M2 =-1
FC1_M2 =0
FC2_M2 =0
FC3_M2 =0
ESTADO 6, INCLINADO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =0
FC2_M1 =1
M2 =0
FC1_M2 =0
FC2_M2 =0
FC3_M2 =1
ESTADO 7, BLOQUEO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =0
FC2_M1 =1
M2 =0
FC1_M2 =0
FC2_M2 =0
FC3_M2 =1
ESTADO 8, ARRIBA
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =0
FC2_M1 =1
M2 =1
FC1_M2 =0
FC2_M2 =0
FC3_M2 =0
ESTADO 9, SUBIR
MOTORES FINALES DE CARRERA
M1 =1
FC1_M1 =0
FC2_M1 =0
M2 =0
FC1_M2 =0
FC2_M2 =1
FC3_M2 =0
ESTADO 10, CERRANDO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =1
FC2_M1 =0
M2 =1
FC1_M2 =0
FC2_M2 =0
FC3_M2 =0
ESTADO 1, ABRIENDO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =1
FC2_M1 =0
M2 =-1
FC1_M2 =0
FC2_M2 =0
FC3_M2 =0
ESTADO 2, ABIERTO
MOTORES FINALES DE CARRERA
M1 =0
FC1_M1 =1
FC2_M1 =0
M2 =0
FC1_M2 =0
FC2_M2 =1
FC3_M2 =0
Solucin junio, 2 semana, Unin Europea 2011
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Supngase que una organizacin decide afrontar, por primera vez, un proyecto software en el que no tiene
experiencia y que se sita en un mbito desconocido para ella. Desde el punto de vista del ciclo de vida,
indique qu alternativas tiene esta organizacin para culminar el proyecto con xito y explique cmo
pueden, dichas alternativas, mitigar los problemas potenciales con los que la organizacin se puede
encontrar durante el desarrollo.
Solucin
Los ciclos de vida clsicos definen un marco de trabajo controlado, de alta visibilidad sobre los procesos de
desarrollo y un estilo de elaboracin, en las diferentes fases, muy estable y repetitivo. Se denominan clsicos
porque son los modelos de trabajo que se han venido empleando desde antes del origen de la Ingeniera de
Software y porque estn muy prximos a la manera trivial de elaborar cualquier producto. El ciclo de vida
en cascada y en V es adecuado para la mayora de los desarrollos cuya elaboracin es suficientemente
conocida y resulta especialmente cmodo para aquellos equipos de desarrollo u organizaciones que, por
tener experiencia en la elaboracin de un tipo de proyectos concreto, poseen procedimientos, plantillas o
patrones de trabajo ajustados al desarrollo de dicho producto y que han demostrado sus ventajas en el xito
de anteriores proyectos de ese tipo. Sin embargo, estos modelos ciclos de vida se caracterizan, tambin,
por su rigidez; ya que limitan el margen de maniobra ante circunstancias tales como los replanteamientos o
la adecuacin de las formas de trabajo descritas anteriormente. Las caractersticas de controlabilidad y
visibilidad del desarrollo, de estos tipos de ciclo de vida, los hacen adecuados, tambin, para proyectos de
gran envergadura en los que sea necesario tener un control y hacer un seguimiento cercano de sus partes. En
las condiciones que se muestran en el enunciado, no parece aconsejable utilizar este modelo de trabajo.
El uso de modelos reducidos, maquetas y prototipos; su uso en simulacin, anlisis y pruebas para obtener
experiencia o conclusiones que posibiliten paliar las incertidumbres que puedan existir en algn paso de la
fabricacin; ha sido una de las primeras y ms notables contribuciones de la ingeniera al desarrollo de
software. Actualmente existe un dinamismo frentico, no slo en las herramientas, plataformas y tecnologas
de desarrollo, sino en los entornos y tecnologas de ejecucin y uso de los productos y servicios informticos
en s. Por otro lado, el mercado demanda la necesidad de disminuir, drsticamente, los tiempos de
desarrollo. El imperativo de la agilidad y la adaptabilidad, es la razn principal de que los ciclos de vida
evolutivos y basados en prototipos, sean los ms usados en los desarrollos actuales. Las ventajas del
tratamiento eficaz de la incertidumbre y de la provisin de agilidad a los desarrollos, se contraponen a la
disminucin del control y de la visibilidad del proceso de fabricacin, en relacin con los ciclos de vida
clsicos. En el escenario planteado en el enunciado, ste tipo de ciclo de vida parece el ms adecuado.
El ciclo de vida en espiral se sita en un plano totalmente distinto respecto a los modelos anteriores; debido
al hecho de que incorpora modelos de gestin al propio desarrollo. En este ciclo de vida, el modelo del
proceso de fabricacin que puede ser cualquiera de los ciclos de vida vistos anteriormente, en cada
vuelta est controlado a travs de una gestin del riesgo, el cual acompaa todo el desarrollo del producto.
Desde el punto de vista del enunciado, este modelo de trabajo no aporta nada nuevo respecto a lo
argumentado anteriormente. La gestin del riesgo aumenta la controlabilidad entre etapas sobre todo
porque el anlisis de riesgos genera una planificacin que se coordina e integra en el Plan General del
proyecto aunque el incremento en la seguridad y estabilidad del desarrollo disminuya, quizs, su agilidad.
2. Dado el siguiente Diagrama de Abstracciones:
Establezca una comparativa entre las estrategias de integracin ascendente y descendente, indicando el
orden en el que se construiran los mdulos del diagrama para cada una de ellas, as como sus ventajas e
inconvenientes.
Solucin
Examinemos el orden de realizacin de los mdulos para cada estrategia de integracin:
Integracin Descendente
Paso 1
Paso 2
Paso 3
M1
Sust . M3 Sust . M2
M1
M3
Sust . M6
Sust . M5 Sust . M4
M2
M1
M3
M6
M5
M4
M2
M1
M3
M6
M5
M4
M2
Integracin Ascendente
Paso 1
Paso 2
Paso 3
La siguiente tabla resume las ventajas e inconvenientes derivados del uso de las integraciones
descendente y ascendente en el ejemplo que nos ocupa:
I. Descendente I. Ascendente
Facilita una visin general de la aplicacin
desde el principio?
S No
Nmero de elementos de cdigo desechables
a construir
5 sustitutos o
stubs
3 gestores o
drivers
Facilita el ensayo de situaciones especiales
para los mdulos?
No S
Facilita el trabajo en paralelo?
*
S S
(*): Aunque generalmente la integracin ascendente propicia en mayor grado el trabajo en paralelo que
la integracin descendente, en este ejemplo, las dos estrategias de integracin facilitan el trabajo en
paralelo en el mismo grado.
Gest or M3
M6
M5
M4
Gest or M2
Gest or M1
M3
M6
M5
M4
M2
M1
M3
M6
M5
M4
M2
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. El diagrama de objetos de la figura es una solucin que resuelve no slo un problema especfico de diseo,
sino una buena cantidad de otros problemas similares. A eso se le denomina patrn de diseo.
El patrn anterior se denomina genricamente Contenedor y corresponde, en este ejemplo, a la clase Dibujo
de la figura.
a. Supngase que la clase Decorador es una especializacin de Dibujo y la instancia del objeto
Mi _separ ador es del tipo Decorador. La aplicacin utilizara el mtodo
Mi _separ ador . Di buj a( ) . Explique qu ventajas tiene el uso de este patrn y de qu manera
funciona como para justificar su uso extenso.
Supngase un entorno grfico de ventanas como Windows donde los elementos que se manejan
(Obj et o_ent or no) son una serie de elementos simples: Bor de, I cono, Fondo, Et i quet a o
Decor ador ; y otros El em_compuest o son agrupaciones de los simples y de s mismos, como
Vent ana, Cuadr o, Mar co, Bar r a, Menu o Bot on. As, una Barra de Herramientas (Bar r a_her r ) es
una especializacin de Bar r a y est compuesto por un Bor de y un Fondo, por Bot ones y Et i quet as,
por Menus deplegables, por Separ ador es y un Asa (estos ltimos, los consideramos especializaciones de
Decor ador ). Por ejemplo:
b. Haciendo que el patrn de diseo Contenedor sea la clase Elem_compuesto, construya el diagrama
de objetos correspondiente al entorno y la clase Barra_herr. Si se aade un botn de Zoom
(Boton_Zoom) Cmo cambia el diagrama?
Solucin
El hecho de conectar la invocacin de un mtodo con el cdigo que le corresponde, se llama acoplamiento
o enlace. Cuando el compilador conoce exactamente qu cdigo le corresponde a la invocacin de un
mtodo, la asignacin se denomina enlazado temprano (early binding) y se produce durante la compilacin,
antes de la ejecucin. Sin embargo, si durante la compilacin no se sabe qu cdigo le corresponde
exactamente en la invocacin de un mtodo, la asignacin se resuelve durante la ejecucin del programa,
cuando las referencias toman un valor concreto. A esto se le llama acoplamiento tardo (late binding) o
enlazado dinmico.
a. El patrn Contenedor, Dibujo, sobrecarga los mtodos de Elem_graf. Si se crea una instancia de tipo
Dibujo, por ejemplo as:
Elem_graf Mi _Di buj o = new Dibujo()
+Dibuja()
-Posicion
-Color
Elem_graf
+Dibuja()
Linea
+Dibuja()
Circulo
+Dibuja()
Texto
+Dibuja()
Superficie
-Fin1
1
-Fin2
1..*
+Dibuja()
Dibujo
se crea un objeto de tipo Dibujo e, inmediatamente, la referencia obtenida se asigna a un objeto,
Mi _Di buj o, de tipo Elem_graf. El compilador no dara error puesto que, por la herencia, un Dibujo es,
tambin, un Elem_graf. A esto se le llama generalizacin y es una transformacin del tipo hacia arriba
(upcasting) que se hace durante la compilacin (enlazado temprano).
En el caso del patrn de composicin, Dibujo, no slo es un Elem_graf sino que, por la composicin,
puede estar compuesto por l mismo o cualquiera de sus hermanos y sus descendientes.
En el ejemplo, Mi _Separ ador es de tipo Decorador y, por la herencia, tambin es un Dibujo y un
Elem_graf. Mediante la generalizacin, se le asignar en tiempo de compilacin el tipo conocido del
antecesor ms cercano: Dibujo o Elem_graf, segn haya sido la sentencia de creacin.
Al invocar, durante la ejecucin, al mtodo Mi _Separ ador . Di buj a( ) , el polimorfismo o
enlazado dinmico garantiza que el mtodo que se ejecuta en la invocacin es la especializacin
correcta de Decorador Decor ador . Di buj a( ) puesto que ese es el tipo de Mi _Separ ador .
Se pone de manifiesto de qu manera, la herencia y el polimorfismo, permiten disear con ocultacin,
ahorrar en el desarrollo de cdigo el cual resulta compacto, sencillo y fcilmente entendible y lleva a
diseos flexibles en los que es fcil aadir o eliminar elementos. El uso del patrn de composicin tiene
el valor aadido de que permite crear estructuras de cualquier profundidad, las cuales pueden ser
perfectamente ignoradas para el cdigo que las utilice puesto que es suficiente con conocer la clase
raz, denominada interfaz y, adems, dicho cdigo no se ve afectado porque se aadan elementos en la
familia.
b. El diagrama del entorno, con la clase Barra_herr, quedara:
Objeto_entorno
Borde Etiqueta Fondo Icono Decorador
Elem_compuesto
Separador Asa Boton Marco Ventana Barra
Barra_herr Barra_tit Barra_despl
Panel Menu
-Fin1
1
-Fin2
1..*
Menu_
despl
Si se aade la clase Boton_Zoom, quedara:
Objeto_entorno
Borde Etiqueta Fondo Icono Decorador
Elem_compuesto
Separador Asa Boton Marco Ventana Barra
Barra_herr Barra_tit Barra_despl
Panel Menu
-Fin1
1
-Fin2
1..*
Menu_
despl
Boton_
Zoom
Solucin junio, reserva, Unin Europea 2011
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Supngase que una organizacin decide afrontar, por primera vez, un proyecto software en el que no tiene
experiencia y que se sita en un mbito desconocido para ella. Desde el punto de vista del ciclo de vida,
indique qu alternativas tiene esta organizacin para culminar el proyecto con xito y explique cmo
pueden, dichas alternativas, mitigar los problemas potenciales con los que la organizacin se puede
encontrar durante el desarrollo.
Solucin
Los ciclos de vida clsicos definen un marco de trabajo controlado, de alta visibilidad sobre los procesos de
desarrollo y un estilo de elaboracin, en las diferentes fases, muy estable y repetitivo. Se denominan clsicos
porque son los modelos de trabajo que se han venido empleando desde antes del origen de la Ingeniera de
Software y porque estn muy prximos a la manera trivial de elaborar cualquier producto. El ciclo de vida
en cascada y en V es adecuado para la mayora de los desarrollos cuya elaboracin es suficientemente
conocida y resulta especialmente cmodo para aquellos equipos de desarrollo u organizaciones que, por
tener experiencia en la elaboracin de un tipo de proyectos concreto, poseen procedimientos, plantillas o
patrones de trabajo ajustados al desarrollo de dicho producto y que han demostrado sus ventajas en el xito
de anteriores proyectos de ese tipo. Sin embargo, estos modelos ciclos de vida se caracterizan, tambin,
por su rigidez; ya que limitan el margen de maniobra ante circunstancias tales como los replanteamientos o
la adecuacin de las formas de trabajo descritas anteriormente. Las caractersticas de controlabilidad y
visibilidad del desarrollo, de estos tipos de ciclo de vida, los hacen adecuados, tambin, para proyectos de
gran envergadura en los que sea necesario tener un control y hacer un seguimiento cercano de sus partes. En
las condiciones que se muestran en el enunciado, no parece aconsejable utilizar este modelo de trabajo.
El uso de modelos reducidos, maquetas y prototipos; su uso en simulacin, anlisis y pruebas para obtener
experiencia o conclusiones que posibiliten paliar las incertidumbres que puedan existir en algn paso de la
fabricacin; ha sido una de las primeras y ms notables contribuciones de la ingeniera al desarrollo de
software. Actualmente existe un dinamismo frentico, no slo en las herramientas, plataformas y tecnologas
de desarrollo, sino en los entornos y tecnologas de ejecucin y uso de los productos y servicios informticos
en s. Por otro lado, el mercado demanda la necesidad de disminuir, drsticamente, los tiempos de
desarrollo. El imperativo de la agilidad y la adaptabilidad, es la razn principal de que los ciclos de vida
evolutivos y basados en prototipos, sean los ms usados en los desarrollos actuales. Las ventajas del
tratamiento eficaz de la incertidumbre y de la provisin de agilidad a los desarrollos, se contraponen a la
disminucin del control y de la visibilidad del proceso de fabricacin, en relacin con los ciclos de vida
clsicos. En el escenario planteado en el enunciado, ste tipo de ciclo de vida parece el ms adecuado.
El ciclo de vida en espiral se sita en un plano totalmente distinto respecto a los modelos anteriores; debido
al hecho de que incorpora modelos de gestin al propio desarrollo. En este ciclo de vida, el modelo del
proceso de fabricacin que puede ser cualquiera de los ciclos de vida vistos anteriormente, en cada
vuelta est controlado a travs de una gestin del riesgo, el cual acompaa todo el desarrollo del producto.
Desde el punto de vista del enunciado, este modelo de trabajo no aporta nada nuevo respecto a lo
argumentado anteriormente. La gestin del riesgo aumenta la controlabilidad entre etapas sobre todo
porque el anlisis de riesgos genera una planificacin que se coordina e integra en el Plan General del
proyecto aunque el incremento en la seguridad y estabilidad del desarrollo disminuya, quizs, su agilidad.
2. Qu tres objetivos fundamentales o cualidades mnimas es deseable alcanzar al hacer la descomposicin
modular de un sistema? Explique cada uno de ellos y, en cada caso, cmo se pueden medir o qu factores
intervienen.
Solucin
Independencia funcional, comprensibilidad y adaptabilidad.
Sntesis y resumen esquemtico del epgrafe 4.1. Pginas 148 a 160 del libro de texto.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se desea construir un sistema que reciba como entrada una lista ordenada de lneas, cada una de las cuales
est formada por una lista ordenada de palabras, que a su vez ser una lista ordenada de caracteres. Sobre
cada lnea se pueden realizar rotaciones, que consisten en eliminar la primera palabra y concatenarla al final
de la lnea. El sistema devolver como resultado una lista con las posibles rotaciones de todas las lneas
ordenadas alfabticamente (incluyendo las rotaciones nulas).
Por ejemplo,
voy a cenar
al restaurante
a cenar voy
al restaurante
cenar voy a
restaurante al
voy a cenar
a. Disee el sistema utilizando herencia, polimorfismo y Diagramas de Objetos.
b. Cmo cambiara su diseo si el sistema recibe una lnea lista ordenada de palabras, realiza
rotaciones sobre cada palabra va rotando los caracteres circularmente y devuelve como
resultado una lista con las posibles rotaciones de todas las palabras ordenadas alfabticamente
(incluyendo las rotaciones nulas)?
Por ejemplo,
voy a cenar
a
arcen
cenar
enarc
narce
oyv
rcena
voy
yvo
Solucin
En una primera aproximacin, aplicaremos el mtodo de Abbott para determinar las clases u objetos que
componen el diseo. Para ello, marcaremos en rojo los sustantivos (candidatos a ser clases o atributos) y en
azul los verbos (candidatos a ser mtodos).
Se desea construir un sistema que reciba como entrada una lista ordenada de lneas, cada una de las cuales
est formada por una lista ordenada de palabras, que a su vez ser una lista ordenada de caracteres. Sobre
cada lnea se pueden realizar rotaciones, que consisten en eliminar la primera palabra y concatenarla al
final de la lnea. El sistema devolver como resultado una lista con las posibles rotaciones de todas las
lneas ordenadas alfabticamente (incluyendo las rotaciones nulas).
A partir de este marcado elaboramos una doble lista con los elementos correspondientes a clases y a
mtodos.
CLASES O ATRIBUTOS MTODOS
lista ordenada de lneas
lista ordenada de palabras
lista ordenada de caracteres
lista con las posibles rotaciones de
realizar rotaciones
eliminar la primera palabra
concatenar la primera palabra al
final de la lnea
todas las lneas ordenadas
alfabticamente
Cuando piense en cmo asignar una clase a una estructura de datos y en cmo distribuir la
herencia o el polimorfismo, considere que una clase es una definicin del tipo de un dato. Decir
Mirlo hereda de Ave significa que son del mismo tipo y la relacin se enuncia como: un Mirlo
es un Ave. La especializacin y algunas formas de polimorfismo tambin se deben a la
herencia. Un Avestruz es como un Mirlo Es pues un Ave tiene el mismo tipo pero ha
anulado el mtodo de volar y tiene sobrecargadas otras funciones de Ave.
Del anlisis del cuadro anterior, obtenido con el mtodo de Abbott, parece claro que se van a manejar listas
ordenadas cuyos componentes son elementos de texto. El objetivo de la aplicacin es realizar determinadas
operaciones con lo que hemos denominado listas ordenadas. Ahora bien, cada elemento que se maneja en
una lista es, a su vez, otra lista; a no ser que el elemento sea un carcter. Adems, para ahorrar cdigo y
simplificar el diseo, sera conveniente que el cdigo escrito para una operacin en una lista ordenada por
ejemplo, ORDENAR ALFABTICAMENTE LAS LNEAS DE ENTRADA sirva igualmente para otras listas. Al fin y
al cabo, todos los elementos de una lista son elementos de texto! ste es el elemento crucial: encontrar el
tipo comn.
El diseo podra ser as:
Elem_Texto
Char
+orden_alfabet()
+rotar_elem()
-num_componentes
Elem_compuesto
+orden_alfabet()
+rotar_elem()
Palabra
+orden_alfabet()
+rotar_elem()
Linea
+orden_alfabet()
+rotar_elem()
Parafo
-Fin1
1
-Fin2
*
Nacional U.E. ORIGINAL Septiembre 2011
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA EN LA CASILLA DE TEST O NO (lo que ponga, NO CUENTA para
la calificacin). SIN EMBARGO, SE DEBE ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA
CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Defina y distinga la validacin y la verificacin. En qu fase del ciclo de vida en cascada se realiza cada
una?
Solucin
Libro de texto, epgrafe 1.4.1.2, pginas 15 y 16.
Validacin: la comprobacin de que un elemento (o todo el sistema) satisface las necesidades del usuario
identificadas durante el anlisis.
Verificacin: la comprobacin de que una parte (mdulo o unidad) del sistema cumple con sus
especificaciones particulares (de funcionamiento).
Evidentemente, estas comprobaciones se deberan hacer siempre; independientemente del ciclo de vida que
se est utilizando. La validacin se har despus de la integracin y pruebas de una parte funcionalmente
significativa del sistema o del sistema completo, antes de su entrega y aceptacin por parte del cliente. Por el
contrario, en la verificacin se comprueba que una unidad funcional se ejecuta correcta y coherentemente
con las especificaciones de funcionamiento que se han establecido en el diseo para esa parte de la
aplicacin. Por tanto, la verificacin se confunde con las pruebas de unidades y se hace tras la
codificacin o, si se est comprobando un mdulo, tras la integracin de sus componentes.
2. Defina los siguientes tipos de pruebas de software: caja negra, caja transparente, alfa y beta. Las pruebas
alfa y beta son de caja negra o transparente? Y las pruebas de unidades de qu tipo son y cundo se hacen?
Solucin
Epgrafes 5.7.2, 5.7.3 y 5.9.2 del libro de texto.
Las pruebas alfa y beta son pruebas del sistema completo, integrado. Pueden formar parte de las
comprobaciones establecidas para la validacin. Son de caja negra. Para las pruebas de unidades se puede
seguir cualquier tcnica de las reflejadas en los epgrafes de 5.7: de caja negra o de caja transparente. Estas
pruebas constituyen la verificacin y se hacen tras la codificacin o, si se est comprobando un mdulo, tras
la integracin de sus componentes.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Dentro de un sistema informtico se emplea el mdulo Modul o1. Para su desarrollo se plantean dos diseos
alternativos:
Diseo 1 Diseo 2
C
d
i
g
o
a
p
r
o
x
i
m
a
d
o
e
n
M
o
d
u
l
a
-
2
Compare los dos diseos analizando cmo aplican los conceptos de Abstraccin, Modularidad y
Ocultacin.
Inicialmente, cuando se plante el sistema informtico, se consider que para el almacenamiento de los aos
bastaba con dos dgitos. Sin embargo, con la llegada el nuevo milenio se descubri que eran necesarios
cuatro dgitos. Razone cmo afectara este cambio a cada uno de los diseos.
Solucin
1. Abstraccin
El primer diseo no utiliza abstracciones de ningn tipo.
El diseo 2 utiliza el Tipo Abstracto de Datos
1
Fecha.
Como resultado, se puede observar que el cdigo asociado al diseo 1 ser muy redundante (lneas 12-
17 lneas 23-28). La redundancia induce a errores e inconsistencias.
1
Concretamente y segn la nomenclatura estudiada en la asignatura Programacin 1, el Tipo Opaco de Datos Fecha.
Modul o1
Modul o1
Fecha
1MODULE Modul o1;
2FROM I nOut
3 I MPORT Wr i t eCar d, Wr i t eSt r i ng;
4. . .
5VAR
6 f echa1, f echa2:
7 ARRAY [ 1. . 6] OF Ti poDi gi t o;
8 . . .
9BEGI N
10 . . .
11 ( * f echa1 : = 30- 04- 1974 *)
12 f echa1[ 1] : = 3;
13 f echa1[ 2] : = 0;
14 f echa1[ 3] : = 0;
15 f echa1[ 4] : = 4;
16 f echa1[ 5] : = 7;
17 f echa1[ 6] : = 4;
18 ( * I mpr i mi r anno *)
19 Wr i t eCar d( f echa1[ 5] , 1) ;
20 Wr i t eCar d( f echa1[ 6] , 1) ;
21 . . .
22 ( * f echa2 : = 10- 01- 1998 *)
23 f echa2[ 1] : = 1;
24 f echa2[ 2] : = 0;
25 f echa2[ 3] : = 0;
26 f echa2[ 4] : = 1;
27 f echa2[ 5] : = 9;
28 f echa2[ 6] : = 8;
29 . . .
30END Modul o1.
1DEFI NI TI ON MODULE Fecha;
2TYPE Ti po;
3PROCEDURE Cr ear ( VAR f echa: Ti po) ;
4PROCEDURE I mpr i mi r Anno( f echa: Ti po) ;
5. . .
6END Fecha.
1MODULE Modul o1;
2I MPORT Fecha;
3. . .
4VAR
5 f echa1, f echa2: Fecha. Ti po;
6 . . .
7BEGI N
8 . . .
9 Fecha. Cr ear ( f echa1, 30, 4, 1974) ;
10 Fecha. I mpr i mi r Anno( f echa1) ;
11 . . .
12 Fecha. Cr ear ( f echa2, 10, 1, 1998) ;
13 . . .
14END Modul o1.
2. Modularidad
El diseo 1 es monoltico, mientras que el diseo 2 es modular. Por ello, el diseo 2 dispone de las
siguientes ventajas sobre el diseo 1:
Permite dividir la implementacin entre varias personas (un programador puede codificar Modul o1
y otro, Fecha)
La implementacin asociada al diseo 2 es clara y concisa.
Los costes asociados al desarrollo, la depuracin, la documentacin y el mantenimiento del diseo 2
son menores que los del diseo 1.
El diseo 2 permite reutilizar el concepto de fecha en otros proyectos.
3. Ocultacin
En el diseo 1 las interioridades de las fechas estn al descubierto, es decir, no existe ocultacin del
concepto de fecha. Este hecho, conlleva dos grandes problemas:
Si se produce un error en el uso de una fecha, su deteccin ser ardua, ya que a este concepto se
accede directamente desde muchos puntos del programa.
La modificacin de la representacin del concepto fecha se propagar a muchas partes del cdigo del
Modul o1. Si tal y como se propone en el enunciado, se decide extender la representacin de los
aos de 2 dgitos a 4, ser necesario modificar las lneas 7, 12-28.
En el diseo 2, el concepto de fecha se encapsula y oculta a travs de un Tipo Abstracto de Datos. Las
consecuencias benignas de esta estrategia son:
Si se produce un error asociado a una fecha, la bsqueda se limitar al mdulo de implementacin de
Fecha.
Gracias a la ocultacin del concepto fecha, la ampliacin del nmero de dgitos de los aos implica
cambios exclusivamente en el cdigo del mdulo de implementacin de Fecha.
Nacional U.E. RESERVA Septiembre 2011
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA EN LA CASILLA DE TEST O NO (lo que ponga, NO CUENTA para
la calificacin). SIN EMBARGO, SE DEBE ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA
CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Suponga que se quiere modelar un sistema en el que lo ms importante es representar las tareas y
transformaciones que se hacen con la informacin y los dems aspectos son prcticamente irrelevantes.
Sera imprescindible el uso de Diagramas Entidad-Relacin? Qu aspecto del modelo prioriza esta
notacin?
Solucin
Epgrafes 2.3.2, 2.3.3 y 2.3.6 del libro. Pginas 52 a 60 y 65 a 68.
Los tres tipos diagramas para representar de modelos del comportamiento del sistema, que se ven en la
asignatura, son complementarios y cuasi-ortogonales. Cada uno de ellos hace hincapi en un grupo de
aspectos del modelo, diferenciado de los otros. De esta forma, para que un sistema est completa o
suficientemente descrito, necesitara de todas las vistas. Ahora bien, el objetivo principal de un modelo es
que facilite la comprensin del comportamiento del sistema que se va a construir; y lo haga hasta tal punto
que se pueda disear el funcionamiento con una incertidumbre mnima y, despus, la implementacin del
diseo lleve al comportamiento deseado. Por tanto, el grado de desarrollo del modelo, depender de la
complejidad del sistema y de los aspectos que an no se comprenden o no estn definidos con claridad. En
este caso, para representar las tareas y transformaciones que se hacen con la informacin, lo ms apropiado
es utilizar Diagramas de Flujo de Datos. Si, con esta representacin, se alcanza la comprensin del
comportamiento que se espera del producto y los dems aspectos son, realmente, irrelevantes, se podra
prescindir de DTE y DER.
Los Diagramas Entidad-Relacin son modelos de datos que se centran en los aspectos relacionados con los
objetos, artefactos o elementos de informacin las entidades y en las vinculaciones relevantes que
existen entre ellos las relaciones; pero no en cmo se manejan ni cmo se controla el funcionamiento del
sistema ni cul es su evolucin dentro de l.
2. Qu tres objetivos fundamentales o cualidades mnimas es deseable alcanzar al hacer la descomposicin
modular de un sistema? Explique cada uno de ellos y, en cada caso, cmo se pueden medir o qu factores
intervienen.
Solucin
Introduccin de la seccin 4.1 Descomposicin modular y epgrafes 4.1.1 a 4.1.3. Pginas 149 a 160 del
libro de la asignatura.
Realizar la descripcin del funcionamiento del sistema descomponindolo en mdulos, tiene como objetivo
fundamental facilitar la implementacin y que, tras la codificacin, disminuyan los problemas de
funcionamiento. El diseo hace funcionar al producto porque define sus mecanismos de funcionamiento,
que se codificarn a continuacin. Pero las decisiones relativas a qu diseo se utiliza, qu descomposicin
modular se elige, estn orientadas a facilitar el mantenimiento, inmediato o futuro. Que el producto sea ms
o menos mantenible est estrechamente ligado a los costes de produccin y a la rentabilidad que se espera al
comercializarlo.
Para incrementar la mantenibilidad del software, la experiencia acumulada en desarrollos anteriores
aconseja que la descomposicin modular elegida cumpla con unos niveles mnimos de:
1. Independencia funcional. (Qu es y cmo se mide. Sntesis de las pginas 150 a 157 del libro)
2. Comprensibilidad.
3. Adaptabilidad
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Con el fin de promocionar el uso del transporte pblico y el ocio al aire libre, RENFE ha decidido encargar
la construccin de un sistema informtico que asesore a sus clientes acerca de rutas verdes para hacer a pie
a partir de sus estaciones de tren.
El sistema recibir peridicamente la siguiente informacin:
Un informe meteorolgico del Instituto Nacional de Meteorologa que contendr las previsiones
climticas para los prximos das.
Datos referentes a las estaciones de tren, horarios y precios de billetes. Esta informacin ser
suministrada por RENFE.
Se ha encargado a la empresa Viajes Najarra la elaboracin e introduccin en el sistema de las rutas
verdes. Para ello, la empresa podr solicitar del sistema un informe de las estaciones de RENFE
existentes.
Los clientes introducirn en el sistema sus preferencias. A partir de estas y los datos antes descritos, se
construir un informe con las rutas aconsejadas.
Analice el sistema mediante DFDs (Diagramas de Flujo de Datos), desarrollando exclusivamente los
DFDs de nivel 0 (contexto) y nivel 1.
Solucin
Nivel 0: Diagrama de Contexto
Nivel 1: DFD 0
Rutas
Verdes
0
Instituto Nacional de Meteorologa
Cliente RENFE
Viajes "Najarra"
Preferencias
Informe Rutas
Informe Meteorolgico
Estaciones
Horarios
Precios
Informe Estaciones
Rutas
Aconsejar
Rutas
1
Gestionar
informacin
RENFE
2
Gestionar
Rutas
3
Rutas
Datos RENFE
Informe Meteorolgico
Preferencias
Informe Rutas
Rutas
Informe Estaciones Estaciones
Horarios
Precios
Solucin junio, 1 semana, nacional 2012
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Qu es el Anlisis de Dominio y para qu se usa?
Solucin
Epgrafes 2.1.2.5, en pgina 40, y 2.2.2 en la pgina 46.
2. Las siguientes figuras representan dos mtodos de prueba de caja negra: el anlisis de valores lmite y la
particin en clases de equivalencia.
Estos mtodos limitan el espacio de prueba a una parte del espacio de ejecucin, por qu?
Identifique qu mtodo corresponde a cada figura y resuma brevemente en qu consiste cada mtodo.
Solucin
a) En general, probar completamente un programa es inabordable y adems no resulta rentable ni prctico.
Por esta razn, se emplean mtodos que limitan las pruebas a ciertas regiones del espacio de ejecucin.
Con las pruebas slo se explora una parte de todas las posibilidades del programa. Se trata de alcanzar
un compromiso para que con el menor esfuerzo posible se puedan detectar el mximo nmero de
defectos y, sobre todo, aquellos que puedan provocar las consecuencias ms graves.
b)
Particin en clases de equivalencia
Este mtodo divide el espacio de ejecucin de un programa en varios
subespacios o clases equivalentes. Cada clase (delimitada por un par de
lneas punteadas en la figura) agrupa a todos aquellos datos de entrada
al programa que producen resultados equivalentes.
Anlisis de valores lmite
Muchos programas se construyen codificando primero un tratamiento
general, y retocando luego el cdigo para cubrir casos especiales. Por
esta y otras razones es bastante normal que los errores tengan cierta
tendencia a aparecer precisamente al operar en las fronteras o valores
lmite de los datos normales (representados por crculos sombreados en la
figura). Este mtodo se basa en la identificacin y prueba de los valores
lmite.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Un sistema informtico de punto de venta (PDV) se suele utilizar en muchas tiendas para registrar ventas y
realizar pagos. Tiene componentes hardware, como un terminal y un lector para los identificadores de los
artculos. El software interacta con mdulos de terceras partes, que dan servicios de captura de facturacin
y clculo de impuestos, de control del inventario y de clculo de comisiones y mrgenes de beneficio para el
vendedor en el sistema de contabilidad. Una operacin tpica de este PDV es Procesar Venta, cuyo
escenario principal de xito (o flujo bsico) se puede expresar, en formato breve:
Procesar Venta: Un cliente llega a la caja de una tienda para comprar varios
artculos. El cajero utiliza el sistema PDV para registrar los artculos. El sistema
presenta una suma parcial y detalles de cada lnea de venta. El cliente introduce los
datos del pago y el sistema los valida y registra. El sistema actualiza el inventario. El
cliente recibe un recibo del sistema y se va con sus artculos.
Reflexione sobre los intereses (necesidades) de cada uno de los actores involucrados en la operacin:
Compaa: Quiere registrar las transacciones con precisin y satisfacer los intereses de los clientes.
Quiere asegurar que se registran los pagos aceptados por el Servicio de Autorizacin de Pagos.
Quiere actualizacin automtica y rpida de la contabilidad y el inventario.
Cajero: Quiere entradas precisas, rpidas y sin errores de pago, pues las prdidas se deducen de su
salario.
Cliente: Quiere hacer el pago sin problemas y obtener el recibo correcto.
Vendedor: Quiere actualizadas las comisiones de las ventas.
Agencia Tributaria: Quiere recopilar los impuestos de cada venta.
Servicio de Autorizacin de Pagos: Quiere recibir peticiones de autorizacin digital con el formato
y protocolo correctos. Quiere registrar, de manera precisa, las cuentas por cobrar de la tienda.
a. Construya un modelo de comportamiento para la operacin Procesar Venta, descrita en su
flujo bsico, mediante DFDs (contexto y nivel 1). Explquelo.
Solucin
Considerando la mayora de los intereses de los actores involucrados en la operacin, los DFD de nivel 0 y 1
son:
b. Qu solucin aportara al modelo anterior, si las necesidades de la compaa se modifican de la
siguiente manera:
Compaa: Quiere registrar las transacciones con precisin y satisfacer los intereses de los
clientes. Quiere asegurar que se registran los pagos aceptados por el Servicio de
Autorizacin de Pagos. Quiere cierta tolerancia a fallos que permita capturar las ventas,
incluso si algn componente del servidor (ej. la validacin remota del crdito) no estn
disponibles. Quiere actualizacin automtica y rpida de la contabilidad y el inventario.
Vuelva a representar el DFD 0 anterior, pero con este nuevo requisito. Explquelo.
Solucin
Solucin junio, 2 semana y UE 2012
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. En qu consiste la actividad de reingeniera y cundo es necesaria?
Solucin
Consiste en generar un sistema bien organizado y documentado a partir de un producto software que no fue
desarrollado siguiendo tcnicas de ingeniera de software.
En ocasiones es necesaria para el mantenimiento de dichos productos software. (Pg. 26)
2. El sistema de ventas por Internet de una tienda funciona de la siguiente manera: para que el cliente formalice
la compra debe estar previamente registrado. El formulario de compra consiste bsicamente en tres partes:
datos del cliente, forma de pago y la lista de los productos seleccionados. Cuando se formalice la compra el
sistema guarda dicha operacin con: un identificador (orden de compra), el cliente y la lista de productos.
Realice un diagrama de modelos de datos Entidad - Relacin de la compra. Describa los datos ms
relevantes mediante el diccionario de datos.
Solucin
El diagrama E R para el modelo de datos de la compra:
Y el diccionario de datos para los elementos ms relevantes:
Nombre: Orden de compra
Estructura: Identificador + Cliente + Forma de Pago + {Producto}
Identificador = {CaracterAlfanumrico}
N
Nombre: Producto
Estructura: Nombre + Identificador + Precio
Nombre: Forma de pago
Estructura: [ Contrareembolso | Tarjeta | Transferencia ]
Nombre: Cliente
Estructura: Nombre + Apellidos + IdDNI + Usuario + Clave + Direccin
Nombre = {CaracterAlfanumrico}
10
/ristra de 10 caracteres /
Apellidos = {CaracterAlfanumrico}
30
/ristra de 30 caracteres/
IdDNI = {Dgito}
8
Usuario = {CaracterAlfanumrico}
10
Clave = {CaracterAlfanumrico}
10
Direccin = {CaracterAlfanumrico}
50
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Un sistema informtico de punto de venta (PDV) se suele utilizar en muchas tiendas para registrar ventas y
realizar pagos. Una operacin tpica de este PDV es Procesar Venta en la que, tras registrar los artculos
y calcular el importe, el proceso de Venta invoca la ejecucin del Pago. Ahora bien, el Pago puede ser
EnEfectivo, ACredito o ConCheque. Al hacer el diseo, se ha creado una clase Venta asociada a la
clase Pago.
a. Construya un modelo de objetos para las modalidades de pago.
Solucin
b. Suponga que tambin se quiere considerar el pago en metlico, con tarjeta de dbito, a crdito
con tarjeta de crdito y crdito financiado. Construya el nuevo diagrama.
Solucin
c. En alguna de estas modalidades de pago, su ejecucin implica Transacciones de
Autorizacin del Pago. Una TransaccionAutorizacionPago es una
SolicitudAutorizacionPago o bien una RespuestaAutorizacionPago. A su vez, la
respuesta puede ser RespuestaAprobadaPago o RespuestaDenegadaPago. Es obvio
que cada transaccin se comporta de distinta forma con cada modalidad de pago. Para las
modalidades de Pago ACredito y ConCheque, construya la jerarqua de clases partiendo de
TransaccionAutorizacionPago; de manera que tenga la mxima simplicidad y
flexibilidad. Cuntas clases hay que aadir si incluimos la comprobacin de saldo en una
tarjeta de dbito?
Solucin
Solucin septiembre, nacional y Unin Europea, original 2012
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. La gestin del catlogo de discos de una biblioteca se debe basar en la siguiente especificacin:
Un disco tiene un ttulo y un intrprete. El intrprete puede ser un artista slo o un grupo (conjunto de
artistas). El disco pertenece a una discogrfica y contiene una serie de canciones. As mismo, cada disco
puede ser clasificado segn un tipo de msica.
Modele el enunciado anterior mediante un Diagrama Entidad-Relacin. Describa los principales datos
utilizando la notacin del Diccionario de Datos.
Solucin
Disco
Intrprete
0:N
1:1
Discogrfica
Pertenece
1:N
1:1
Cancin Contiene
0:1
1:N
Artista
Esta compuesto
1:N
1:N
Es interpretado
Se clasifica
Tipo de musica
0:1
1:1
Diccionario de datos:
DISCO =Nombre +INTERPRETE +TIPO-DE-MSICA +DISCOGRFICA +LISTA-DE-
CANCIONES +ao
INTERPRETE =ARTISTA
ARTISTA = {nombre}
DISCOGRFICA =nombre
TIPO-DE-MSICA =[jazz | clsica | pop | rock | heavy | dance ]
CANCIN = nombre +ARTISTA
LISTA-DE-CANCIONES ={CANCIN}
2. Una prctica muy extendida para reutilizar software es cortar y pegar fragmentos de cdigo. Esto puede
llevar a que un trozo de cdigo se encuentre repetido muchas veces en un programa. Cmo afecta esto al
mantenimiento del programa? Cmo podran solventarse los efectos negativos del cdigo duplicado?
Solucin
La duplicidad de cdigo perjudica la adaptabilidad de un programa. Por ejemplo, la siguiente figura
representa un programa compuesto por 4 ficheros que contienen cierto cdigo repetido (representado por
). Si durante el mantenimiento del programa se decide modificar dicho cdigo repetido, habr que
realizar el cambio en todos los lugares donde se encuentra el cdigo (en el ejemplo, habra que repetir el
cambio en 8 puntos). Este trabajo no slo es tedioso, si no que puede llevar a inconsistencias cuando los
cambios no se aplican a todos los lugares donde el cdigo est repetido.
Como indica la siguiente figura, estos problemas podran evitarse encapsulando el cdigo repetido en algn
tipo de abstraccin y sustituyendo las repeticiones ( ) por invocaciones ( ) a la nueva abstraccin.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se ha codificado en Modula-2 el siguiente subprograma que distingue, por el tamao de sus lados si un
tringulo es issceles (dos lados iguales), equiltero (todos los lados iguales) o escaleno (ningn lado igual).
Verifique el subprograma con pruebas de caja transparente, realizando el cubrimiento lgico
correspondiente.
Solucin
Para la verificacin del subprograma se elaborar un conjunto de casos de prueba que consigan que se
transite por todos los posibles caminos de ejecucin y que pongan en juego todos los elementos del cdigo.
En primer lugar, el cdigo del subprograma se transformar en el siguiente diagrama de flujo, donde cada
rombo representa un predicado lgico simple:
A continuacin, se calcular el n de caminos bsicos para recorrer todas las lneas de flujo del diagrama al
menos una vez:
N de predicados =11
N mximo de caminos =N de predicados +1 =12
A continuacin se determinarn los caminos y los casos de prueba que forzarn su recorrido.
Como indica la siguiente figura, es imposible escribir un juego de prueba para los caminos 0-1-3-4-5-7-8-9-
12-13-15-14 y 0-1-3-4-5-7-8-9-12-13-15-16. Es decir, el subprograma es incorrecto por que contiene dos
caminos que no pueden recorrerse. Concretamente, la imposibilidad de transitar por el camino 0-1-3-4-5-7-
8-9-12-13-15-16 hace que el subprograma clasifique errneamente los tringulos equilteros como issceles.
Solucin septiembre, nacional y Unin Europea, reserva 2012
ESTE EJERCICIO ES DE TIPO MIXTO.
ES IRRELEVANTE SI CONTESTA A LA PREGUNTA DE TEST O NO. SIN EMBARGO, SE DEBE
ESCANEAR DICHA HOJA JUNTO CON EL RESTO DE LA CONTESTACIN DEL EXAMEN.
EL ALUMNO PUEDE QUEDARSE CON EL ENUNCIADO.
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota mnima en
cada una de ellas. En cada pregunta terica, que se valora con 25 puntos, la nota mnima es 1 punto; en la
segunda parte (ejercicio de teora aplicada que se valora con 5 puntos) la nota mnima que debe obtener es
de 2 puntos.
Conteste a las preguntas tericas, en cualquier orden, en hojas diferentes a las que utilice para la contestacin de la
segunda parte. En cada parte, la cantidad MXIMA de papel (de examen, timbrado) que puede emplear EST
LIMITADA al equivalente a DOS (2) HOJ AS de tamao A4 (210 x 297 mm)
PRIMERA PARTE. PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
1. Una interfaz grfica tiene un Men principal con un submen de Archivo que, a su vez, tiene el
comando de Abrir archivo. Cada men tiene una opcin para Salir. El comando Abrir archivo tiene
un cuadro de texto en el que se puede escribir el nombre (y opcionalmente la ruta) del archivo que se quiere
abrir. Supngase que slo se puede abrir un archivo cada vez. Si el nombre del archivo es correcto, se pedir
que se escriba una clave para autorizar su apertura y, si es incorrecta, la interfaz vuelve al submen
Archivo. Construya un modelo del comportamiento (para el anlisis) utilizando un diagrama de
transicin de estados.
Solucin
2. Varios mdulos de una aplicacin utilizan la informacin de un fichero que est en un disco. Para usarlo, los
mdulos invocan los servicios que provee la controladora del dispositivo los cuales trabajan directamente
con las caractersticas fsicas del disco. Por ejemplo, para escribir en el fichero, los mdulos invocan la
instruccin imaginaria del microcontrolador del disco: WRITE_STRING(DiskID, Cyl, Sector, Pos,
NBytes, String). Qu tipo de acoplamiento presenta este caso? Qu consecuencias tiene este uso
respecto a la reusabilidad y a la mantenibilidad? Cmo cambiara esta situacin?
Solucin
Pgina 152 de bibliografa bsica.
ste es un claro ejemplo de acoplamiento externo, en el que varios mdulos comparten informacin que
reside en un dispositivo externo a ellos y a la que acceden directamente a travs del hardware que controla
el dispositivo.
Esta prctica obliga a realizar todas las operaciones a travs de las rutinas de servicio del propio dispositivo.
Al ser, dichas rutinas, especficas del dispositivo; la posibilidad de reutilizacin del cdigo reusabilidad
en cualquier otro dispositivo que no sea idntico, est obviamente disminuido o anulado. En cuanto a la
mantenibilidad o facilidad y posibilidad de hacer modificaciones en el cdigo, tambin se ve gravemente
afectada; puesto que, si se cambia algo del dispositivo externo, obliga a cambiar todas las partes del cdigo
en las que se utilice dicho dispositivo.
La manera de evitar todo esto es mediante la abstraccin y el encapsulamiento de todas estas operaciones en
un mdulo o paquete que se constituya como un controlador abstracto y genrico del dispositivo disco y
que contenga, bajo invocaciones genricas a los antiguos servicios especficos del dispositivo, las rutinas
concretas de operacin del dispositivo. As, si se produce algn cambio, slo ser necesario hacer las
modificaciones en el controlador abstracto.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Un fichero secuencial almacena informacin de entradas y salidas de stocks de un almacn. Estas
transacciones estn agrupadas en lotes. Cada lote consiste en una serie de transacciones referentes a un
mismo producto. Los lotes comienzan con una marca de cabecera, un conjunto de registros con las entradas
o salidas del producto y terminan con otra marca de fin.
Disee un programa que cree un informe con los movimientos netos de cada producto. Utilice la
metodologa de Jackson para las estructuras de datos de entrada y salida as como para la estructura del
programa.
Solucin
Fichero
Entrada
Lote
Cuerpo Cabecera Fin
Registro
Entrada Salida
Informe
Movimiento
Producto
Procesar
fichero
Procesar
Leer
Final
Leer
Cabecera
Leer
Cuerpo
Procesar
Registro
Sumar
Entrada
s
Restar
Salidas