Documente Academic
Documente Profesional
Documente Cultură
RESUELTOS
INGENIERA
DEL SOFTWARE
INFORMTICA
SISTEMAS
Y GESTIN
Informe Meteorolgico
Preferencias Estaciones
Rutas Horarios
Cliente RENFE
Informe Rutas Verdes
0 Precios
Viajes "Najarra"
Nivel 1: DFD 0
Preferencias
Gestionar
Aconsejar informacin Horarios
Datos RENFE
Rutas RENFE
1 2
Informe Rutas
Precios
Rutas Gestionar
Rutas Rutas
3
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE
EDUCACIN A DISTANCIA
NACIONAL 2 SEMANA Departamento de Lenguajes
y Sistemas Informticos
M1
M2 M3
M4 M5
M6
Integracin Descendente
M1
Paso 1
Sust. M2 Sust. M3
M1
M2 M3
Paso 2
Sust. M4 Sust. M5
Sust. M6
M1
M2 M3
Paso 3
M4 M5
M6
Integracin Ascendente
Gestor M2 Gestor M3
Paso 1 M4 M5
M6
Gestor M1
M2 M3
Paso 2
M4 M5
M6
M1
M2 M3
Paso 3
M4 M5
M6
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
S No
desde el principio?
Nmero de elementos de cdigo desechables 5 sustitutos o 3 gestores o
a construir stubs drivers
Facilita el ensayo de situaciones especiales
No S
para los mdulos?
Facilita el trabajo en paralelo?* S S
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 datos y a operaciones.
DATOS OPERACIONES
x lista ordenada de lneas x realizar rotaciones
x lista ordenada de palabras x eliminar la primera palabra
x lista ordenada de caracteres x concatenar la primera palabra al
x lista con las posibles rotaciones de final de la lnea
todas las lneas ordenadas
alfabticamente
Un Tipo Abstracto de Datos (TAD) es una entidad que agrupa la estructura de un tipo
de datos con las operaciones necesarias para su manejo.
Tradicionalmente, en la programacin imperativa se optaba por separar los
programas en dos partes: la de proceso y la de datos (ejemplos de lenguajes
imperativos son FORTRAN, COBOL, PASCAL, BASIC). La parte de proceso
acceda y operaba directamente sobre los datos.
Esta separacin produce una independencia funcional muy baja. Un ejemplo que
ilustra esto es el efecto 2000, donde la simple adicin de dgitos al formato de las
fechas supuso realizar muchas modificaciones en la parte de proceso.
Para solventar estos problemas surgi el concepto de Tipo Abstracto de Datos, que
junta la representacin de los datos con la parte de proceso que los manipula. Los
TADs ocultan la representacin de los datos, que slo es accesible desde las
operaciones. De esta forma, un cambio en la representacin de los datos de un TAD no
se propaga a todo el programa, sino solamente a las operaciones del TAD.
Antiguamente, las estructuras de datos se venan definiendo por su representacin. Sin
embargo, el paso clave hacia la abstraccin de los datos es invertir este punto de vista:
olvidar por el momento la representacin y considerar que las operaciones en s
mismas definen la estructura de datos.
NOTA: un error grave cometido por muchos alumnos consiste en disear una
operacin fuera del TAD que le corresponde. Por ejemplo, en este examen algunos
alumnos proponan utilizar un TAD llamado Rotaciones y una abstraccin funcional
separada llamada ProducirRotaciones.
Tras analizar la doble lista sobre datos y operaciones se proponen tres datos
encapsulados:
Los TAD propuestos son datos encapsulados por que slo existir una variable o
elemento de cada tipo en el sistema.
DATO: Lineas
Operaciones: Se ha tomado la decisin de aglutinar los datos lista
Introducir ordenada de lneas, lista ordenada de palabras y lista
Obtener ordenada de caracteres en un slo dato encapsulado, ya que el
EstaVacia crecimiento innecesario del nmero de abstracciones aumentara
la complejidad del sistema. sta abstraccin consta de tres
operaciones:
x Introducir: se encargar de recibir una lnea y
almacenarla en el dato encapsulado.
x Obtener: proporcionar una lnea.
x EstaVacia: indicar si hay alguna lnea almacenada
dentro del dato encapsulado.
DATO: RotacionesOrdenadasAlfabticamente
Operaciones: ste es un dato encapsulado
Ordenar que producir y almacenar las
Obtener rotaciones realizadas sobre las
EstaVacia lneas ordenadas alfabticamente.
Principal
Salida
Entrada
Rotaciones Ordenadas
Alfabticamente
Rotaciones
Lneas
Como puede verse, el diseo consta de la abstraccin funcional Principal que se
encargar de coordinar al resto de las abstracciones. Adems, el diseo posee las
siguientes abstracciones funcionales:
x Entrada: se encargar de obtener los datos del exterior (en el enunciado no se
especifica la forma en que el usuario introducir los datos) y de almacenarlos en
Lineas. Para ello, emplear la operacin Introducir proporcionada por dicho
dato encapsulado.
x Salida: mostrar el resultado final de procesar los datos de entrada. Para este
fin, utilizar la operacin Obtener del dato encapsulado
RotacionesOrdenadasAlfabticamente.
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 datos y a operaciones.
DATOS OPERACIONES
x lista ordenada de lneas x realizar rotaciones
x lista ordenada de palabras x eliminar la primera palabra
x lista ordenada de caracteres x concatenar la primera palabra al
x lista con las posibles rotaciones de final de la lnea
todas las lneas ordenadas
alfabticamente
Un Tipo Abstracto de Datos (TAD) es una entidad que agrupa la estructura de un tipo
de datos con las operaciones necesarias para su manejo.
Tradicionalmente, en la programacin imperativa se optaba por separar los
programas en dos partes: la de proceso y la de datos (ejemplos de lenguajes
imperativos son FORTRAN, COBOL, PASCAL, BASIC). La parte de proceso
acceda y operaba directamente sobre los datos.
Esta separacin produce una independencia funcional muy baja. Un ejemplo que
ilustra esto es el efecto 2000, donde la simple adicin de dgitos al formato de las
fechas supuso realizar muchas modificaciones en la parte de proceso.
Para solventar estos problemas surgi el concepto de Tipo Abstracto de Datos, que
junta la representacin de los datos con la parte de proceso que los manipula. Los
TADs ocultan la representacin de los datos, que slo es accesible desde las
operaciones. De esta forma, un cambio en la representacin de los datos de un TAD no
se propaga a todo el programa, sino solamente a las operaciones del TAD.
Antiguamente, las estructuras de datos se venan definiendo por su representacin. Sin
embargo, el paso clave hacia la abstraccin de los datos es invertir este punto de vista:
olvidar por el momento la representacin y considerar que las operaciones en s
mismas definen la estructura de datos.
NOTA: un error grave cometido por muchos alumnos consiste en disear una
operacin fuera del TAD que le corresponde. Por ejemplo, en este examen algunos
alumnos proponan utilizar un TAD llamado Rotaciones y una abstraccin funcional
separada llamada ProducirRotaciones.
Tras analizar la doble lista sobre datos y operaciones se proponen tres datos
encapsulados:
Los TAD propuestos son datos encapsulados por que slo existir una variable o
elemento de cada tipo en el sistema.
DATO: RotacionesOrdenadasAlfabticamente
Operaciones: ste es un dato encapsulado
Ordenar que producir y almacenar las
Obtener rotaciones realizadas sobre las
EstaVacia lneas ordenadas alfabticamente.
El diagrama de abstracciones propuesto para construir el sistema solicitado es el
siguiente:
Principal
Salida
Entrada
Rotaciones Ordenadas
Alfabticamente
Rotaciones
Lneas
0:N 1:N
Posee Est en
1:1 1:1
Paciente 1:N
1:1 Planta
1:N
1:N
1:N Trata 1:N Diagnstico
Mdico
Colgar
Descolgar
Colgar Dgito
Colgar Avisando
Dgito
nmero no Nmero no vlido Marcando
vlido
Colgar
Nmero vlido
Lnea
ocupada Ocupado
Conectando
Red saturada
Centralita
ocupada Llamada viable
Repicando
Destinatario
Destinatario
Conectado Desconectando
Destinatario
Llamador
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE
EDUCACIN A DISTANCIA
RESERVA NACIONAL Departamento de Lenguajes
y Sistemas Informticos
3. Se va a construir una estacin meteorolgica automtica junto a un ro. Esta estacin medir datos
atmosfricos as como niveles de contaminacin del ro y los transmitir, va satlite, a la central
de datos. Las especificaciones de funcionamiento son estas:
La temperatura se mide a travs de un termopar, estas medidas se realizan cada minuto. Cada 10
minutos se hace la media de las temperaturas ledas y se almacena su valor. Los datos de la
presin se leen cada cuarto de hora y se calcula y guarda su media cada hora. Tambin cada hora,
se analizan 3 parmetros de nivel de contaminacin de las aguas y se registran sus valores. Si
algn parmetro pasa cierto umbral de peligro se genera una seal de alarma y se enva
automticamente a la central. As mismo se mide el caudal del ro cada 2 horas. Si se produce una
crecida de forma brusca se enva una seal de alarma.
Cada 2 horas la estacin automtica recopila sus datos los transmite a la central va satlite. Para
ello, previamente tiene que codificar dichos datos en un formato estndar de control de errores
para realizar transmisiones tolerantes a fallos.
Diagrama de Contexto:
Estacin
Meteorolgica
Presin Nivel Aguas
Barmetro Caudal
Estacin Central
DFD 0:
Datos Qumicos
Procesar
Obtener Datos
Temperatura Qumicos
Temperatura
Calcular
Datos Estacin Meteorolgica
Media
Obtener
Presin Procesar
Presin
Datos
Codificar Caudal
Datos Nivel Aguas
Datos codificados
Realice un Diagrama de Transicin de Estados con el cual se pueda comprobar, junto con el
cliente, que hemos comprendido el funcionamiento de la aplicacin.
Indique qu tipos de pruebas utilizara para asegurar que el sistema funciona correctamente.
Solucin propuesta por el equipo docente
Autores: Jos Flix Estvariz Lpez, Rubn Heradio Gil,
Universidad Nacional de
Educacin a Distancia Juan Antonio Mascarell Estruch Departamento de Lenguajes y
Sistemas Informticos
Arranque Parada
Sistema Sistema
Tarjeta Vlida
Esperando
Tarjeta
Salir
Tarjeta No Vlida
Comprobar Esperar
Saldo No
Saldo Recarga
Vlido
Actualizar
Salir
Recarga Completa
Salir
Recargar
Opcin
Saldo Correcto
Otra Cinta Men
Esperando
Cinta
Cancelar
Alquilar Retirar
Devolver Seleccin Confirmar
Ttulo
Otro Titulo
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE
EDUCACIN A DISTANCIA
EXTRANJERO RESERVA Departamento de Lenguajes
y Sistemas Informticos
1:N
1:1
1:1
1:N
1:1 Dirige Est en
1:N Producto
1:N
Controla
Edificio
1:N 1:1
3. Ejercicio de diseo
Diseo 1 Diseo 2
Modulo1 Modulo1
Fecha
7
8 ... 8 ...
9BEGIN 9 Fecha.Crear(fecha1, 30, 4, 1974);
10 ... 10 Fecha.ImprimirAnno(fecha1);
11 (* fecha1 := 30-04-1974 *) 11 ...
12 fecha1[1] := 3; 12 Fecha.Crear(fecha2, 10, 1, 1998);
13 fecha1[2] := 0; 13 ...
14 fecha1[3] := 0; 14END Modulo1.
15 fecha1[4] := 4;
16 fecha1[5] := 7;
17 fecha1[6] := 4;
18 (* Imprimir anno *) 1DEFINITION MODULE Fecha;
19 WriteCard(fecha1[5], 1); 2TYPE Tipo;
20 WriteCard(fecha1[6], 1); 3PROCEDURE Crear(VAR fecha: Tipo);
21 ... 4PROCEDURE ImprimirAnno(fecha: Tipo);
22 (* fecha2 := 10-01-1998 *) 5...
23 fecha2[1] := 1; 6END Fecha.
24 fecha2[2] := 0;
25 fecha2[3] := 0;
26 fecha2[4] := 1;
27 fecha2[5] := 9;
28 fecha2[6] := 8;
29 ...
30END Modulo1.
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 como afectara este cambio a cada uno de los diseos.
SOLUCIN
1. Abstraccin
x El primer diseo no utiliza abstracciones de ningn tipo.
x El diseo 2 utiliza el Tipo Abstracto de Datos1 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.
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:
x Permite dividir la implementacin entre varias personas (un programador puede codificar
Modulo1 y otro, Fecha)
x La implementacin asociada al diseo 2 es clara y concisa.
x Los costes asociados al desarrollo, la depuracin, la documentacin y el mantenimiento del diseo
2 son menores que los del diseo 1.
x 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:
x 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.
x La modificacin de la representacin del concepto fecha se propagar a muchas partes del cdigo
del Modulo1. 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:
1
Concretamente y segn la nomenclatura estudiada en la asignatura Programacin 1, el Tipo Opaco de Datos Fecha.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
Plan de estudios NUEVO
CDIGO CARRERA: 53=SISTEMAS y 54=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE Departamento de Lenguajes
EDUCACIN A DISTANCIA NACIONAL 2 SEMANA y Sistemas Informticos
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.
Reflexin sobre Modelos del proceso de desarrollo (Ciclos de Vida). En concreto, puntos 1.5 y
1.6 del libro.
Modelar una especificacin E con una notacin n, significa obtener un modelo Mn que represente
adecuadamente a E.
E Modelarn Mn
Contiene 1:N
Entidad Externa
0:N
1:1 0:N
1:1
0:N
Contiene 1:N
Es Origen
1:1 1:N 0:N
1:N
Flujo de Datos
1:N Proceso
1:N 1:N
1:1 Es Destino
0:1
1:N 1:N
1:N
Contiene 0:N Almacn
Observacin
Durante la correccin, hemos detectado que algunos alumnos han interpretado incorrectamente
el enunciado y han tratado de buscar una equivalencia entre los DFDs y los DERs. Por ejemplo,
los flujos de datosDFD se corresponden con relacionesDER, los almacenes de datosDFD y las
entidades externasDFD con entidadesDER
Esto supone un grave error, ya que los DFDs, DERs y DTEs representan distintos puntos de
vista (prcticamente ortogonales) de un sistema software, y por tanto, es absurdo buscar su
equivalencia.
Informacin: qu datos
utiliza el sistema
DER
Tiempo: comportamiento o
evolucin temporal del sistema
Funcin: qu hace el sistema ante sucesos externos
DFD DTE
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
Plan de estudios NUEVO
CDIGO CARRERA: 53=SISTEMAS y 54=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE Departamento de Lenguajes
EDUCACIN A DISTANCIA ORIGINAL EXTRANJERO y Sistemas Informticos
NOTA: un error grave cometido por muchos alumnos consiste en disear una operacin fuera del
TAD que le corresponde. Por ejemplo, sera errneo el utilizar un TAD llamado Rotaciones y
una abstraccin funcional, separada del TAD, llamada ProducirRotaciones.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Un cliente nos propone desarrollar una aplicacin para gestionar algunos aspectos de una agencia
de viajes y nos ofrece esta descripcin:
La agencia de viajes ofrece a sus clientes destinos tanto nacionales como en el extranjero. Para
cada destino, la agencia ofrece alojamiento en varios hoteles de distinta categora. As mismo, se
ofrece, para cada destino, una serie de actividades complementarias (excursiones, paseos en
barca, etc...).
Si el cliente est de acuerdo, har una reserva de viaje en la que figurarn los datos del cliente, el
destino, tipo de hotel y tipo de habitacin (doble, individual, suite, etc.). El precio del viaje,
adems de las distintas opciones elegidas, depende de la temporada del destino: alta, baja, etc
SOLUCIN
Temporada
Influye 1:1 Destino 1:N Posee 1:1 1:1
1:1 1:N
Ofrece 0:N
1:1
Ofrece Actividades Complementarias 1:1 Influye
1:N
Indica
Hotel
Posee 0:N
0:N Cliente
1:N
1:1
1:1 Indica
0:N Influye
Ofrece 1:1
Indica 0:N
Categora 1:N 0:N
0:N Hace
Habitacin Reserva
1:1
Tipo 1:1
1:1
1:N
1:1 Influye 1:N Precio
1:1
1:N
1:N
Observacin: El anterior diagrama se ha elaborado con la herramienta DOME. La
siguiente tabla resume la equivalencia entre la notacin de dicha herramienta y la
propuesta en el libro de la asignatura.
3. Un cliente nos propone desarrollar una aplicacin para gestionar algunos aspectos de una agencia
de viajes y nos ofrece esta descripcin:
La agencia de viajes ofrece a sus clientes destinos tanto nacionales como en el extranjero. Para
cada destino, la agencia ofrece alojamiento en varios hoteles de distinta categora. As mismo, se
ofrece, para cada destino, una serie de actividades complementarias (excursiones, paseos en
barca, etc...).
Si el cliente est de acuerdo, har una reserva de viaje en la que figurarn los datos del cliente, el
destino, tipo de hotel y tipo de habitacin (doble, individual, suite, etc.). El precio del viaje,
adems de las distintas opciones elegidas, depende de la temporada del destino: alta, baja, etc
SOLUCIN
Temporada
Influye 1:1 Destino 1:N Posee 1:1 1:1
1:1 1:N
Ofrece 0:N
1:1
Ofrece Actividades Complementarias 1:1 Influye
1:N
Indica
Hotel
Posee 0:N
0:N Cliente
1:N
1:1
1:1 Indica
0:N Influye
Ofrece 1:1
Indica 0:N
Categora 1:N 0:N
0:N Hace
Habitacin Reserva
1:1
Tipo 1:1
1:1
1:N
1:1 Influye 1:N Precio
1:1
1:N
1:N
Observacin: El anterior diagrama se ha elaborado con la herramienta DOME. La
siguiente tabla resume la equivalencia entre la notacin de dicha herramienta y la
propuesta en el libro de la asignatura.
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)
(o 4 caras A4, un pliego, un A3 doblado en forma de carpeta, etc.)
1. Reflexione y explique cmo aplicara el mtodo de Abbott para analizar un sistema y para
construir un modelo con la notacin de los DFD.
SOLUCIN
La tcnica de Abbott establece un procedimiento sistemtico para la obtencin de elementos
significativos de un sistema a partir de una descripcin de un modelo. En el caso del diseo, si lo que
estamos buscando son abstracciones, partimos de la caracterizacin o definicin de lo que estamos
buscando y del espacio de bsqueda (en el libro, una descripcin en lenguaje natural) En el diseo se
trata de construir una descripcin del funcionamiento de la aplicacin. Para que dicha aplicacin, y su
funcionamiento, cumplan con determinados objetivos, se debe construir la descripcin
descomponindola en mdulos. Cuando se utilizan abstracciones para el diseo, la descomposicin y
la descripcin vienen caracterizados por ciertos elementos significativos (las abstracciones). As, al
aplicar Abbott en el diseo mediante abstracciones, si lo que se intenta es identificar la existencia de,
por ejemplo, una abstraccin funcional (la cual no es sino un conjunto de acciones y operaciones que
tienen un objetivo concreto); se buscar en la descripcin en lenguaje natural el elemento del cdigo
lingstico indica una accin u operacin: los verbos. La tcnica de Abbott dice: busquemos verbos
porque, seguramente, nos ayudarn a localizar las abstracciones funcionales de nuestro sistema.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
El mtodo de Abbott, en realidad, es una forma de anlisis. Si se aplica el mtodo descrito
anteriormente a la construccin de DFDs, se comprueba su utilidad: qu se busca? procesos? Y
qu son los procesos? Actividades y tareas que tendr que realizar nuestra aplicacin. Cul es el
espacio de bsqueda en este caso? La comprensin de lo que tendr que hacer nuestra aplicacin.
Cmo representamos en nuestra mente a las actividades y tareas? Mediante verbos o cualquier
representacin que utilicemos internamente para la idea de accin o tarea. Pues esta es una manera de
encontrar los procesos o bolas de un DFD. Se hara igual con los flujos de datos o las entidades
externas, etc., slo que, ahora, buscaremos descripciones de elementos que interactan con el sistema,
sustantivos o adjetivos, etc., que se van a procesar, transformar o almacenar, en el sistema que
estamos construyendo.
2. Defina y estructure una clasificacin de las tcnicas generales para el diseo procedimental del
software. Utilice un esquema arbreo; identifique cada tcnica y explique sus caractersticas
principales. (Hasta aqu la pregunta. La mayor parte de las tcnicas de diseo provienen de la programacin, lo cual
se explica -de forma ms o menos implcita- en el desarrollo del libro. Por ello, se valorar positivamente que el
estudio anterior se compare y diferencie respecto a otro anlogo pero para las tcnicas de codificacin.)
SOLUCIN: (Pginas 160 a 187 del libro. Epgrafes 4.2 a 4.4)
I. Diseo procedimental
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
almacenamiento. Es este ltimo diagrama, se realiza un anlisis para identificar o bien un
nico flujo global (flujo de transformacin) o bien uno o varios puntos en los que el flujo
global se bifurca (flujo de transaccin).
3. Segn el patrn identificado en el anlisis anterior, se construye el diagrama de diseo
mediante la notacin de los diagramas de estructura. Para ello, a partir de los DFD
iniciales, se asignan procesos o grupos de procesos a los mdulos de diseo y se
establece una jerarqua o estructura de control en funcin del mencionado patrn
identificado en el punto anterior (transformacin o transaccin).
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
El jugador maneja una nave espacial que dispone inicialmente de cierto nmero de vidas. La
nave debe enfrentarse a distintos tipos de marcianos enemigos. Tanto la nave como los
marcianos lanzan proyectiles. Cuando la nave recibe un impacto, pierde una de sus vidas.
Cuando el n de vidas de la nave es cero, finaliza la partida. Cada tipo de marciano es capaz de
resistir cierto n de impactos. Algunos marcianos, al ser destruidos desprenden un bonus; si la
nave captura un bonus, incrementa en uno su nmero de vidas.
|
| Marciano
|
|
Proyectil
NaveEspacial
Solucin
La construccin del DER solicitado puede abordarse gradualmente. Del texto de la especificacin han de extraerse las
entidades, las relaciones y la cardinalidad de estas ltimas.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
Marciano
1:1
dispara
0:N
dispara
1:1
Nave Espacial
1:1
produce
1:1
Observacin: los DER son una notacin esttica til para modelar los aspectos estructurales de un a especificacin. Los
aspectos temporales se pueden modelar con una notacin dinmica como los DTE (Diagramas de Transicin de Estados).
Por eso, la frase del enunciado Cuando el n de vidas de la nave es cero, finaliza la partida no se modela en el DER
correspondiente.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
proporciona 1:1 Marciano
0:1
aade 1:1
1:1
1:1
dispara
0:1 produce
0:N 1:1
Bonus Proyectil
0:N 1:1
quita
0:N dispara
1:1
1:1
1:1
aade 1:1
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
Plan de estudios NUEVO
CDIGO CARRERA: 53=SISTEMAS y 54=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE Departamento de Lenguajes
EDUCACIN A DISTANCIA NACIONAL RESERVA y Sistemas Informticos
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)
(o 4 caras A4, un pliego, un A3 doblado en forma de carpeta, etc.)
1. Explique las propiedades que debe tener el modelo de un sistema software para lograr una
especificacin correcta.
SOLUCIN
Punto 2.2.1 del libro de texto. Pginas 43 a 46.
2. Explique por qu es, la descomposicin modular, uno de los objetivos principales del diseo del
software.
SOLUCIN
Punto 4.1 del libro de texto. Pginas 148 a 160 (resumen).
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se dispone de un Tipo Abstracto de Datos (TAD) V, con las operaciones op1, op2 y op3. Razone
cmo se podra derivar un nuevo tipo TAD N (utilizando exclusivamente elementos propios de un
Diagrama de Abstracciones) que tuviera las operaciones op1, op2, op3 y op4, donde:
op1N (op1 del TAD N) sera idntica a op1V (op1 del TAD V)
op2N tendra un comportamiento distinto a op2V
op3N sera idntica a op3V
op4N sera totalmente nueva
Cul sera la solucin si V y N fueran Clases de Objetos y se aplicaran Herencia y Polimorfismo?
SOLUCIN
a)NyVcomoTADs
ListadeoperacionesdeN:
N
Operacin Pseudocdigo
op1N llamaraop1V
op2N <<nuevocdigo>>
op3N llamaraop3V
V
op4N <<nuevocdigo>>
b)NyVcomoClasesdeObjetos
ListadeoperacionesdeN:
V
Operacin Pseudocdigo
op2 N <<nuevocdigo>>
op4N <<nuevocdigo>>
N
Como N hereda de V, N adquiere automticamente las operaciones de V. Por lo tanto, no sera necesario
reescribir las operaciones op1 y op3 en N. En cambio, s habra que aadir op2N, que sera invocada
adecuadamente gracias al polimorfismo de anulacin. Finalmente, tambin habra que aadir a N la nueva
operacinop4N.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
Plan de estudios NUEVO
CDIGO CARRERA: 53=SISTEMAS y 54=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE Departamento de Lenguajes
EDUCACIN A DISTANCIA ORIGINAL EXTRANJERO y Sistemas Informticos
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)
(o 4 caras A4, un pliego, un A3 doblado en forma de carpeta, etc.)
1. Explique las ventajas del uso de prototipos, en sus distintas variantes, durante el ciclo de vida.
SOLUCIN
Punto 1.5 del libro de texto. Pginas 16, 17 y, parcialmente, las siguientes de este punto.
2. Defina y estructure una clasificacin de las tcnicas generales para el diseo procedimental del
software. Utilice un esquema arbreo; identifique cada tcnica y explique sus caractersticas
principales. (Hasta aqu la pregunta. La mayor parte de las tcnicas de diseo provienen de la programacin, lo cual
se explica -de forma ms o menos implcita- en el desarrollo del libro. Por ello, se valorar positivamente que el
estudio anterior se compare y diferencie respecto a otro anlogo pero para las tcnicas de codificacin.)
SOLUCIN
Pginas 160 a 187 del libro. Epgrafes 4.2 a 4.4
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
Figura Datosqueladeterminan
Punto Doscoordenadascartesianas
Recta Dospuntos
Rectngulo Dospuntos(quedeterminansudiagonal)
Crculo Un punto (su centro) y su radio (un
nmerorealquerepresentaunalongitud)
a) Realice un diseo mediante un Diagrama Orientado a Objetos que represente las figuras
anteriores y sus relaciones.
b) Se desea aadir al programa anterior el manejo de la figura corona circular (ver figura).
Indique cmo puede obtenerse esta nueva figura aprovechando el desarrollo anterior
mediante:
I. Herencia
II. Composicin
CoronaCircular
SOLUCIN
Parte a)
De nuestro enunciado se desprende rpidamente que vamos a tener las siguientes clases:
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
Y el diagrama de clases que representa esto sera:
Punto Rectangulo
coordX
coordY
..... ....
Recta
Circulo
radio
....
....
Parte b)
Solucin I.
Podemos pensar que una corona circular ES UN circulo con dos radios, esto es, la nueva clase
CoronaCircular puede aprovechar todas las caractersticas de la clase Circulo, aadiendo a su vez un
nuevo radio, quedando perfectamente determinada toas las caractersticas de la corona circular. Todas
las propiedades de la clase crculo las obtenemos por tanto mediante herencia, pero adems, aadiremos
un atributo tipo numrico que representa el segundo radio. El siguiente diagrama representa esta
situacin:
Punto Rectangulo
Circulo
coordX
radio coordY
..... ....
....
Recta
CoronaCircular
....
Radio2
....
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
Solucin II.
Por otra parte, podemos visualizar una corona circular como la diferencia de dos crculos. Por tanto, la
clase CoronaCircular2 ser una clase que contenga dos atributos (en su interior) de tipo Circulo, esto es,
la CoronaCircular2 est compuesta de dos crculos.
La figura siguiente refleja la solucin II:
CoronaCircular
radio1 Recta
radio2
....
....
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
INGENIERA TCNICA en INFORMTICA de SISTEMAS y de GESTIN
Plan de estudios en extincin
CDIGO CARRERA: 40=SISTEMAS y 41=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
Plan de estudios NUEVO
CDIGO CARRERA: 53=SISTEMAS y 54=GESTIN
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
UNIVERSIDAD NACIONAL DE Departamento de Lenguajes
EDUCACIN A DISTANCIA RESERVA EXTRANJERO y Sistemas Informticos
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)
(o 4 caras A4, un pliego, un A3 doblado en forma de carpeta, etc.)
1. Enuncie, defina y explique los tres tipos de mantenimiento que se estudian en esta asignatura.
SOLUCIN
Punto 1.8.1 del libro de texto. Pgina 24.
2. Reflexione y explique cmo aplicara el mtodo de Abbott para analizar un sistema y para
construir un modelo con la notacin de los DFD.
SOLUCIN
La tcnica de Abbott establece un procedimiento sistemtico para la obtencin de elementos
significativos de un sistema a partir de una descripcin de un modelo. En el caso del diseo, si lo que
estamos buscando son abstracciones, partimos de la caracterizacin o definicin de lo que estamos
buscando y del espacio de bsqueda (en el libro, una descripcin en lenguaje natural) En el diseo se
trata de construir una descripcin del funcionamiento de la aplicacin. Para que dicha aplicacin, y su
funcionamiento, cumplan con determinados objetivos, se debe construir la descripcin
descomponindola en mdulos. Cuando se utilizan abstracciones para el diseo, la descomposicin y
la descripcin vienen caracterizados por ciertos elementos significativos (las abstracciones). As, al
aplicar Abbott en el diseo mediante abstracciones, si lo que se intenta es identificar la existencia de,
por ejemplo, una abstraccin funcional (la cual no es sino un conjunto de acciones y operaciones que
tienen un objetivo concreto); se buscar en la descripcin en lenguaje natural el elemento del cdigo
lingstico indica una accin u operacin: los verbos. La tcnica de Abbott dice: busquemos verbos
porque, seguramente, nos ayudarn a localizar las abstracciones funcionales de nuestro sistema.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
El mtodo de Abbott, en realidad, es una forma de anlisis. Si se aplica el mtodo descrito
anteriormente a la construccin de DFDs, se comprueba su utilidad: qu se busca? procesos? Y
qu son los procesos? Actividades y tareas que tendr que realizar nuestra aplicacin. Cul es el
espacio de bsqueda en este caso? La comprensin de lo que tendr que hacer nuestra aplicacin.
Cmo representamos en nuestra mente a las actividades y tareas? Mediante verbos o cualquier
representacin que utilicemos internamente para la idea de accin o tarea. Pues esta es una manera de
encontrar los procesos o bolas de un DFD. Se hara igual con los flujos de datos o las entidades
externas, etc., slo que, ahora, buscaremos descripciones de elementos que interactan con el sistema,
sustantivos o adjetivos, etc., que se van a procesar, transformar o almacenar, en el sistema que
estamos construyendo.
3. Se dispone de un Tipo Abstracto de Datos (TAD) V, con las operaciones op1, op2 y op3. Razone
cmo se podra derivar un nuevo tipo TAD N (utilizando exclusivamente elementos propios de un
Diagrama de Abstracciones) que tuviera las operaciones op1, op2, op3 y op4, donde:
op1N (op1 del TAD N) sera idntica a op1V (op1 del TAD V)
op2N tendra un comportamiento distinto a op2V
op3N sera idntica a op3V
op4N sera totalmente nueva
ListadeoperacionesdeN:
V
Operacin Pseudocdigo
op2N <<nuevocdigo>>
op4N <<nuevocdigo>>
N
Como N hereda de V, N adquiere automticamente las operaciones de V. Por lo tanto, no sera necesario
reescribir las operaciones op1 y op3 en N. En cambio, s habra que aadir op2N, que sera invocada
adecuadamente gracias al polimorfismo de anulacin. Finalmente, tambin habra que aadir a N la nueva
operacinop4N.
Entregue la hoja de lectura ptica con sus datos junto con las respuestas de su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL 1 SEMANA
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota
mnima en cada una de ellas. En las preguntas tericas, que se valoran con 25 puntos cada una, 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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se desea realizar una aplicacin informtica para evitar congestiones de automviles en el interior
de un tnel. El sistema recibe datos de la velocidad de los automviles provenientes de un
conjunto de sensores distribuidos en el interior del tnel. Los datos de todos los sensores se
reciben en paralelo y de forma peridica. El sistema deber actuar, en funcin de dichos datos,
sobre un semforo situado a la entrada del tnel, de forma que cuando se detecte un coche
circulando a una velocidad inferior a una estipulada, el semforo se pondr en rojo y cuando las
velocidades detectadas por los sensores sean superiores a otro valor estipulado, se volver a poner
en verde. Existir un centro de control con una pantalla que muestre el estado del semforo y las
velocidades instantneas captadas por el conjunto de sensores. El sistema podr funcionar en
modo manual, para lo cual el operario deber introducir por teclado su identificador y contrasea
cada vez que quiera pasar de automtico a manual, o viceversa, y/o cambiar el estado del
semforo. Una o varias cmaras de video enviarn imgenes del interior y exterior del tnel, que
se mostrarn en la pantalla y servirn para ayudar al operario a tomar decisiones cuando realice el
control manual. El sistema almacenar todos los datos sobre velocidades proporcionadas por los
sensores, el estado del semforo, los cambios de estado que se produzcan en l y su origen
(automtico o manual) y los accesos de los usuarios, junto con la fecha y hora de cada evento.
Se pide: analizar el sistema mediante Diagramas de Flujo de Datos (DFDs), desarrollando los
DFDs de contexto, nivel 0 y 1.
SOLUCIN
Errata: DFD de contexto = DFDs de nivel 0. Evidentemente, lo que se peda es nivel 0 y 1 o bien
DFD de contexto y nivel 1.
DFD de contexto:
tunel
Sensores
Semforo
Velocidades
Color
Cmara
S-Video
Control
Tnel
Entrada Manual
VGA
Teclado
Pantalla
DFD de nivel 1:
Control Tnel
Velocidades
Color
Control
Velocidad
Orden Automtica
Control
Semforo
Datos Velocidad
Datos Velocidad
S-Video Datos Estado Semforo
Orden Manual
Control
Datos Usuarios
Pantalla
Datos Accesos
Control
Manual
Acceso Autorizado
VGA Control
Acceso
Orden Operario
Datos Acceso
Control
Teclado
Entrada Manual
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL 2 SEMANA
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota
mnima en cada una de ellas. En las preguntas tericas, que se valoran con 25 puntos cada una, 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)
2. Defina qu es un Tipo Abstracto de Datos (TAD) y deduzca las relaciones que se puedan
establecer con los conceptos de ocultacin, genericidad, herencia y polimorfismo.
SOLUCIN
Tradicionalmente, en la programacin imperativa se optaba por separar los programas en dos
partes: la de proceso y la de datos (ejemplos de lenguajes imperativos son FORTRAN, COBOL,
PASCAL, BASIC). La parte de proceso acceda y operaba directamente sobre los datos.
Esta separacin produce una independencia funcional muy baja. Un ejemplo que ilustra esto es el
efecto 2000, donde la simple adicin de dgitos al formato de las fechas supuso realizar muchas
modificaciones en la parte de proceso.
Para solventar estos problemas surgi el concepto de Tipo Abstracto de Datos (TAD), que agrupa
en una sola entidad la representacin de los datos y la parte de proceso que los manipula. Los
Entregue la hoja de lectura ptica con sus datos junto con su examen.
TADs ocultan la representacin de los datos, que slo es accesible desde las operaciones. De esta
forma, un cambio en la representacin de los datos de un TAD no se propaga a todo el programa,
sino solamente a las operaciones del TAD.
Por tanto, la ocultacin est garantizada en el TAD, gracias al propio concepto de esta
abstraccin que oculta la representacin de los datos y slo deja visible las operaciones que
manipulan a dichos datos.
Por la propia naturaleza del TAD, se pueden definir tipos de datos que recogen una solucin
genrica o aplicable a varios casos particulares. Un tipo genrico es un tipo parametrizable, es
decir, que cubre un abanico de soluciones particulares y se adecua a distintos usos.
En cuanto a la herencia, un TAD es una abstraccin y no est dotada del mecanismo de la
herencia.
Por ltimo, la capacidad representar algo o de actuar de distinta forma, sin que se pierda la propia
naturaleza (polimorfismo), se puede alcanzar mediante la genericidad. Por tanto, un TAD puede
ser polimorfo si es genrico; no es as con respecto al polimorfismo de herencia, del que no
dispone un TAD por ser una abstraccin.
3. Como resultado del diseo arquitectnico de una aplicacin hemos caracterizado un mdulo
llamado Gestin de fechas, que realiza las siguientes operaciones sobre una lista de fechas:
x Buscar la ms reciente.
x Buscar la ms antigua.
x Imprimir todas las fechas que pertenezcan a cierto mes.
SOLUCIN
Gestin de fechas
CASO opcion de menu
SI_ES fecha reciente ENTONCES BuscarFechaReciente
SI_ES fecha antigua ENTONCES BuscarFechaAntigua
SI_ES listar fecha del mes ENTONCES ImprimirFechaMes
BuscarFechaReciente
FechaInicial = Primer elemento de la Lista de Fechas
PARA_CADA Elemento EN Lista de Fechas HACER
SI FechaInicial es MENOR que Elemento ENTONCES
FechaInicial = Elemento
FIN-SI
FIN-PARA
i. Identificar claramente las abstracciones que aparezcan en la aplicacin. Esto se puede hacer,
a partir de las especificaciones, utilizando, por ejemplo, el mtodo de bsqueda de Abbott.
ii. Definir las operaciones asociadas a cada abstraccin.
iii. Describir las operaciones mediante lenguaje natural.
iv. A partir de las especificaciones del programa llevar a cabo una descomposicin funcional
como la descrita en el apartado anterior. As mismo reemplazar las descripciones de las
operaciones de cada abstraccin mediante construcciones estructuradas.
Podemos ver el mdulo Gestin de fechas como una abstraccin funcional global que gestiona a
todas las dems abstracciones.
Podemos identificar la lista de fechas como un tipo abstracto de datos, ahora bien, como slo
vamos a tener una lista, podramos considerarlo un tipo encapsulado. A esta lista estaran
asociadas las operaciones de buscar fechas. Otro tipo de datos abstractos sera el que encapsulara
tipo fecha y podramos asociarle, entre otras operaciones, la de comparar con otra fecha.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Dato: Lista fecha (Dato encapsulado)
Atributos
lista de elementos del tipo fecha
Operaciones
Buscar fecha reciente
Buscar fecha antigua
Listar fecha mes
DIAGRAMA DE ABSTRACCIONES
Gestin fechas
Lista Fecha
Fecha
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: EXTRANJERO ORIGINAL
(Europa Continental y Guinea)
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota
mnima en cada una de ellas. En las preguntas tericas, que se valoran con 25 puntos cada una, 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)
A A A
x
x y x y
y
A) B) C)
SOLUCIN
La notacin corresponde a diagramas de estructura; utilizados como notacin de diseo,
principalmente, en el diseo arquitectnico.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
En el caso A ), se representan relaciones de uso: A llama o utiliza el mdulo x y, ste, invoca o
utiliza el mdulo y.
En el caso B ), se representan relaciones de herencia (que slo se dan en los objetos): A es el
antecedente o padre de los mdulos x e y, que son sus hijos. Por tanto, heredarn las
propiedades estticas y dinmicas del padre. Es en los hijos donde se puede producir
especializacin, adecuando las propiedades heredadas al uso especializado del hijo o
incorporando nuevas.
En el caso C ), se representan relaciones de composicin o agregacin: A est compuesto por
una cantidad (se representa la cardinalidad de la relacin) de instancias del mdulo x y por un
nmero de instancias del mdulo y. La sobrecarga es una manera de expresar el polimorfismo
que est vinculado, estrechamente, con el mecanismo de la herencia y slo se produce con la parte
dinmica de los objetos (metodos). Como lo que se representa en el diagrama es la composicin
y no la herencia, no se puede decir si existe la posibilidad de sobrecarga en este mdulo concreto.
Podra producirse sobrecarga, si el mdulo x fuera una clase u objeto que heredara de otro; en
cuyo caso, aparecera en otro diagrama distinto en el que se representara la herencia.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SOLUCIN
Caja Negra
PROCEDURE TestsCajaNegra;
BEGIN
IF Factorial(-8) <> -1 THEN
WriteString("Error en la CE 1");
WriteLn;
ELSIF Factorial(0) <> 1 THEN
WriteString("Error en la CE 2");
WriteLn;
ELSIF Factorial(12) <> 479001600 THEN
WriteString("Error en la CE 3");
WriteLn;
END;
END TestsCajaNegra;
Caja Transparente
Entregue la hoja de lectura ptica con sus datos junto con su examen.
PROCEDURE TestsCajaTransparente;
BEGIN
IF Factorial(-8) <> -1 THEN
WriteString("Error en la PCT 1");
WriteLn;
ELSIF Factorial(0) <> 1 THEN
WriteString("Error en la PCT 2");
WriteLn;
ELSIF Factorial(1) <> 1 THEN
WriteString("Error en la PCT 3");
WriteLn;
ELSIF Factorial(2) <> 2 THEN
WriteString("Error en la PCT 4");
WriteLn;
ELSIF Factorial(3) <> 6 THEN
WriteString("Error en la PCT 5");
WriteLn;
ELSIF Factorial(8) <> 40320 THEN
WriteString("Error en la PCT 6");
WriteLn;
ELSIF Factorial(12) <> 479001600 THEN
WriteString("Error en la PCT 7");
WriteLn;
END;
END TestsCajaTransparente;
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: EXTRANJERO ORIGINAL
(Londres, Lisboa y Tnger)
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota
mnima en cada una de ellas. En las preguntas tericas, que se valoran con 25 puntos cada una, 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)
2. Defina qu es un Tipo Abstracto de Datos (TAD) y deduzca las relaciones que se puedan
establecer con los conceptos de ocultacin, genericidad, herencia y polimorfismo.
SOLUCIN
Tradicionalmente, en la programacin imperativa se optaba por separar los programas en dos
partes: la de proceso y la de datos (ejemplos de lenguajes imperativos son FORTRAN, COBOL,
PASCAL, BASIC). La parte de proceso acceda y operaba directamente sobre los datos.
Esta separacin produce una independencia funcional muy baja. Un ejemplo que ilustra esto es el
efecto 2000, donde la simple adicin de dgitos al formato de las fechas supuso realizar muchas
modificaciones en la parte de proceso.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Para solventar estos problemas surgi el concepto de Tipo Abstracto de Datos (TAD), que agrupa
en una sola entidad la representacin de los datos y la parte de proceso que los manipula. Los
TADs ocultan la representacin de los datos, que slo es accesible desde las operaciones. De esta
forma, un cambio en la representacin de los datos de un TAD no se propaga a todo el programa,
sino solamente a las operaciones del TAD.
Por tanto, la ocultacin est garantizada en el TAD, gracias al propio concepto de esta
abstraccin que oculta la representacin de los datos y slo deja visible las operaciones que
manipulan a dichos datos.
Por la propia naturaleza del TAD, se pueden definir tipos de datos que recogen una solucin
genrica o aplicable a varios casos particulares. Un tipo genrico es un tipo parametrizable, es
decir, que cubre un abanico de soluciones particulares y se adecua a distintos usos.
En cuanto a la herencia, un TAD es una abstraccin y no est dotada del mecanismo de la
herencia.
Por ltimo, la capacidad representar algo o de actuar de distinta forma, sin que se pierda la propia
naturaleza (polimorfismo), se puede alcanzar mediante la genericidad. Por tanto, un TAD puede
ser polimorfo si es genrico; no es as con respecto al polimorfismo de herencia, del que no
dispone un TAD por ser una abstraccin.
3. Como resultado del diseo arquitectnico de una aplicacin hemos caracterizado un mdulo
llamado Gestin de fechas, que realiza las siguientes operaciones sobre una lista de fechas:
x Buscar la ms reciente.
x Buscar la ms antigua.
x Imprimir todas las fechas que pertenezcan a cierto mes.
SOLUCIN
Gestin de fechas
CASO opcion de menu
SI_ES fecha reciente ENTONCES BuscarFechaReciente
SI_ES fecha antigua ENTONCES BuscarFechaAntigua
SI_ES listar fecha del mes ENTONCES ImprimirFechaMes
BuscarFechaReciente
FechaInicial = Primer elemento de la Lista de Fechas
PARA_CADA Elemento EN Lista de Fechas HACER
SI FechaInicial es MENOR que Elemento ENTONCES
FechaInicial = Elemento
FIN-SI
FIN-PARA
i. Identificar claramente las abstracciones que aparezcan en la aplicacin. Esto se puede hacer,
a partir de las especificaciones, utilizando, por ejemplo, el mtodo de bsqueda de Abbott.
ii. Definir las operaciones asociadas a cada abstraccin.
iii. Describir las operaciones mediante lenguaje natural.
iv. A partir de las especificaciones del programa llevar a cabo una descomposicin funcional
como la descrita en el apartado anterior. As mismo reemplazar las descripciones de las
operaciones de cada abstraccin mediante construcciones estructuradas.
Podemos ver el mdulo Gestin de fechas como una abstraccin funcional global que gestiona a
todas las dems abstracciones.
Podemos identificar la lista de fechas como un tipo abstracto de datos, ahora bien, como slo
vamos a tener una lista, podramos considerarlo un tipo encapsulado. A esta lista estaran
asociadas las operaciones de buscar fechas. Otro tipo de datos abstractos sera el que encapsulara
tipo fecha y podramos asociarle, entre otras operaciones, la de comparar con otra fecha.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Dato: Lista fecha (Dato encapsulado)
Atributos
lista de elementos del tipo fecha
Operaciones
Buscar fecha reciente
Buscar fecha antigua
Listar fecha mes
DIAGRAMA DE ABSTRACCIONES
Gestin fechas
Lista Fecha
Fecha
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: AMRICA ORIGINAL
Todas las preguntas de este ejercicio son eliminatorias en el sentido de que debe obtener una nota
mnima en cada una de ellas. En las preguntas tericas, que se valoran con 25 puntos cada una, 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. Enumere y comente los problemas e inconvenientes que encuentra en el ciclo de vida en espiral.
SOLUCIN
La fase de Anlisis de Riesgos se ejecuta, normalmente, por una autoridad con experiencia. Esta
fase consiste en identificar las fuentes y causas de riesgo, determinar las consecuencias de cada
una sobre el desarrollo del producto, establecer un plan de actuacin para el caso de que se
produzca la situacin de riesgo e incorporar la planificacin al plan general del desarrollo. Este
ciclo de vida incorpora tareas propias de la gestin del desarrollo (planificacin y anlisis de
riesgo) y, por ser mucho ms completo y sofisticado que otros modelos, requiere una elaboracin
ms minuciosa. Por otro lado, el anlisis de riesgo est estrechamente vinculado a la planificacin
de la parte que se va a afrontar. Por tanto, la forma de desarrollar el producto se basa, en gran
parte, en la propia experiencia del analista de riesgos. Esto puede ser especialmente crtico en las
frecuentes ocasiones en las que el analista se ve obligado a convencer al cliente de porqu se
planifica y se afronta una parte del desarrollo y no otra.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Segn la arquitectura Von Neumann, un computador est compuesto por:
1. Unidad Central de Proceso: controla el funcionamiento del computador y lleva a cabo sus
funciones de procesamiento de datos. A su vez, consta de:
a. Unidad Aritmtico Lgica: se encarga de realizar operaciones elementales como la
suma, resta, AND
b. Unidad de Control: se encarga de leer y ejecutar las instrucciones mquina
almacenadas en la memoria principal.
c. Registros: proporcionan almacenamiento interno a la Unidad Central de Proceso.
2. Memoria Principal.
3. Unidad de Entrada y Salida: transfiere datos entre el computador y los perifricos.
4. Perifricos: los hay de distinto tipo, por ejemplo,
a. Monitor
b. Impresora
5. Elementos de interconexin o buses: los hay de distinto tipo, por ejemplo,
a. Bus del Sistema: conecta Unidad Central de Proceso, Memoria Principal y Unidad de
E/S.
b. Bus Interno de la Unidad Central de Proceso: conecta Unidad Aritmtico Lgica,
Unidad de Control y Registros.
Desarrolle un modelo de anlisis para esta arquitectura Von Neumann. Para ello, utilice la
notacin de los Diagramas de Objetos que se explica en el texto de la asignatura. No es
necesario que incluya los atributos ni las operaciones de las clases. Limtese a representar las
relaciones de herencia y composicin entre los bloques funcionales descritos anteriormente.
SOLUCIN
1:1
1:1
1:1
1:N
1:1
1:1
1:N 1:N
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL ORIGINAL
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
2. Dadas dos implementaciones alternativas de un algoritmo, coincidirn las pruebas de caja negra
que verifiquen el funcionamiento correcto de cada implementacin? Coincidirn las pruebas si
son de caja transparente?
SOLUCIN
La estrategia de pruebas de caja negra, ignora por completo la estructura interna del programa y se
basa, exclusivamente, en la comprobacin de la especificacin software. En este caso, el juego de
casos de prueba al que se someten las dos versiones ser el mismo. En esto consiste el mtodo
de comparacin de versiones para las pruebas de caja negra. Por el contrario, en la estrategia de
caja transparente, los casos de prueba tratan de conseguir que el programa transite por todos los
posibles caminos de ejecucin y que se pongan en juego todos los elementos del cdigo (que es
conocido). Por ello, al depender (los casos de prueba) del cdigo, dichos casos de prueba pueden
ser distintos en cada implementacin.
empleado
1:1 1:1
departamento
1:N
trabajo 1:N
ocasional
0:N
autnomo paga
trabajos
0:N
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL RESERVA
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)
1. D una breve definicin de la fase de diseo. Describa cules son las cualidades mnimas que se
pretende alcanzar con la descomposicin modular del diseo.
SOLUCIN
El diseo trata de definir y formalizar la estructura de un sistema informtico con el suficiente
detalle como para permitir su realizacin fsica (ultimo prrafo de la pgina 103, epgrafe 3.1
Introduccin). Las cualidades mnimas de la descomposicin modular son la independencia
funcional, la comprensibilidad y la adaptabilidad (epgrafes 4.1.1, 4.1.2 y 4.1.3 en pgina 150 y
siguientes).
2. Enumere las diferencias y coincidencias entre las pruebas D y E
SOLUCIN
Coincidencias: son pruebas de sistema y se suele aplicar una estrategia de caja negra. Es el
usuario el que realiza las pruebas.
Diferencias: en las pruebas alfa, el entorno de prueba est controlado (se registran las incidencias
y se conocen las circunstancias en que se producen) y el usuario recibe el apoyo de alguna persona
del equipo de desarrollo, el cual, puede seguir muy de cerca la evolucin de las pruebas. En las
pruebas beta, el sistema se prueba en el entorno normal de trabajo y sin apoyo de nadie
involucrado en el desarrollo. El usuario es el encargado de transmitir, al equipo de desarrollo, las
circunstancias en las que se han producido las incidencias (epgrafe 5.9.2 en pginas 290 y 291).
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. El Sistema de Posicionamiento Global (Global Positioning System, GPS) permite conocer a sus
usuarios la posicin que ocupan en el globo terrqueo (Figura 1). El sistema consta de, al menos,
24 satlites, 5 estaciones de control terrestres y aparatos receptores. Cada satlite emite
peridicamente una seal con informacin sobre su localizacin en rbita y el instante en que se
ha producido la emisin. Desde la Tierra, un receptor puede conocer su localizacin si recibe
seal desde, al menos, 4 satlites. Conocido el instante en que se emiti una seal y la velocidad a
la que viajan las ondas emitidas (la de la luz), el receptor puede calcular su distancia al satlite
como:
distancia = (tiempo de la recepcin tiempo de la emisin) X velocidad de la luz
Si un receptor recibe seal de un satlite, sabe que se encuentra en la superficie de una esfera de
radio la distancia al satlite y centro la localizacin en rbita del satlite; si recibe seal de 2
satlites, se encuentra en la interseccin de dos superficies esfricas, es decir, una circunferencia
(Figura 2); si recibe de 3 satlites, las posibilidades se reducen a dos puntos (Figura 3); y, si la
recibe de 4, el receptor conoce su posicin exacta en el globo terrqueo.
Normalmente, los receptores guardan un histrico con las localizaciones en rbita de los ltimos
satlites desde los que recibieron seal. De este modo, cuando se enciende un receptor, ste no
inicia una bsqueda desde cero, sino que prueba con los satlites previamente almacenados
(sintonizar).
La rbita que describe un satlite puede sufrir ligeras variaciones. Para mantener la precisin en la
localizacin de los satlites, existen cinco estaciones de control terrestres que ajustan esta
informacin. Concretamente, hay cuatro estacionas automticas que reciben seales de los
satlites y las envan a una estacin central que procesa toda la informacin y transmite las
correcciones pertinentes a los satlites.
Se pide:
x Modelar la descripcin anterior mediante un Diagrama Entidad-Relacin
x Modelar con un Diagrama de Flujo de Datos el software de un receptor
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SOLUCIN
DER
1:1
4:N 0:N
4:4
0:N 1:4
DFD
localizacin en rbita
Satlite receptor
tiempo de emisin
posicin
Usuario
localizacin en rbita
tiempo de emisin
calcular
sintonizar gps listo posicin
satlites
posicin
satlites ms prximos
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL 1 SEMANA
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)
Solucin
En el modelo en V se contempla el nivel de detalle sobre el que se trabaja en cada una de las
fases. El SRD, documento producido en la fase de anlisis, contempla el sistema en su totalidad.
Tras la fase de diseo, en la que se lleva a cabo una descomposicin del sistema para abordar su
codificacin, se desciende al nivel de mdulo. Tras la codificacin de todos los mdulos se
realiza su integracin, ascendindose de nuevo al nivel de sistema completo.
El modelo en V pone de manifiesto que la salida de una fase del ciclo de vida no slo afecta a la
siguiente. Existe una relacin entre salidas y entradas de fases no consecutivas en el tiempo pero
situadas en el mismo nivel de detalle. Este hecho se observa a la hora de realizar comprobaciones
de la correccin. La validacin se hace tras la fase de integracin, donde nos encontramos en el
nivel del sistema completo, comprobndose que se cumple lo estipulado en el documento
producido tras la fase de anlisis (SRD). La verificacin se lleva a cabo tras la fase de
codificacin, realizndose una comprobacin de la correccin del sistema a nivel de mdulo.
2. Defina pruebas alfa, beta, de caja negra y de caja transparente. Razone si las pruebas alfa y beta se
pueden considerar como de caja negra o de caja transparente.
Solucin
Las pruebas alfa y beta sirven para comprobar si un sistema completo satisface las
especificaciones en un entorno real de trabajo. Mientras que las pruebas alfa se realizan en un
entorno controlado donde el usuario tiene el apoyo de algn desarrollador, durante las pruebas
beta no existe dicho apoyo.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Previas a las pruebas de sistema, se realizan las pruebas de unidades, que comprueban por
separado cada mdulo constituyente del sistema. Dentro de las pruebas de unidades pueden
distinguirse las de caja negra, donde se ignora por completo la estructura interna de un mdulo,
y las de caja transparente, donde se conoce y tiene en cuenta dicha estructura.
En las pruebas alfa y beta los usuarios desconocen la estructura interna del sistema, luego pueden
considerarse como de caja negra.
Utilizando un diagrama de objetos (sin incluir las operaciones ni los atributos), elabore un
diseo para los elementos que maneja el procesador de textos.
Cmo afectara a su diseo la inclusin de frmulas matemticas como nuevo tipo de
elemento de texto?
Solucin
Diseo inicial:
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: NACIONAL 2 SEMANA
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)
Solucin
Correccin: Es el grado en que un producto software cumple con sus especificaciones. Podra
estimarse como el porcentaje de requisitos que se cumplen adecuadamente.
Fiabilidad: Es el grado de ausencia de fallos durante la operacin del producto software. Puede
estimarse como el nmero de fallos producidos o el tiempo que permanece inutilizable durante un
intervalo de operacin dado.
Pg. 27 del libro
B. Para evaluar la correccin de un sistema qu tipo de prueba debera utilizarse, de caja negra o de
caja transparente? Razone la respuesta.
Solucin
Como se trata de evaluar si el sistema satisface sus especificaciones, lo correcto es hacer pruebas
de caja negra, ya que se tratara de observar la respuesta del sistema (resultados) a determinadas
entradas (casos de prueba) y comprobar que son los esperados.
Pg. 274 del libro
2. Explique brevemente los distintos niveles de comprobacin de tipos que presentan los lenguajes
de programacin.
Solucin
Vase pg. 255 y 256 del libro de texto.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Se ha recibido una peticin, por parte de un usuario final, para desarrollar un sistema automtico
de acceso a un garaje. En ella dice:
Existe un nico portn que sirve de entrada y salida, pero su ancho slo permite el paso de un
vehculo. Se instalarn sensores de peso que detecten la presencia de un vehculo y semforos
tanto en el interior como en el exterior del garaje. Para controlar el acceso se utilizarn mandos
a distancia codificados.
Solucin
La descripcin del modelo es un apartado fundamental del SRD. En l se define un modelo
conceptual del sistema que se va a desarrollar. Este modelo establecer las propiedades y
restricciones del sistema, dando una visin de alto nivel sin descender a detalles concretos del
mismo. Es decir, indicar QU debe hacer, y no CMO lo debe hacer. Debe ser completo,
conciso, sin ambigedades, sin detalles de diseo o implementacin, fcilmente entendible por
el cliente Para ello se puede emplear cualquiera de las notaciones para la especificacin, siendo
habitual el uso de varias de ellas, de forma que se facilite su entendimiento por parte de los que
van a participar en el desarrollo del sistema.
En este caso, la descripcin mediante lenguaje natural estructurado se complementar con el DFD
de contexto, en el que se detallan los elementos (entidades externas) que facilitan datos o reciben
rdenes del sistema software.
Sistema de control de acceso a garaje. Descripcin del modelo
SI un coche autorizado quiere salir ENTONCES se pondr en rojo el semforo exterior, en
verde el interior, y se abrir el portn durante 30 segundos.
SI un coche autorizado quiere entrar ENTONCES se pondr en rojo el semforo interior, en
verde el exterior, y se abrir el portn durante 30 segundos.
SI la clula fotoelctrica detecta un coche ENTONCES el portn permanecer abierto
durante 30 segundos.
SI un coche no autorizado quiere entrar o salir ENTONCES se pondrn en rojo los
semforos interior y exterior.
semforo exterior
receptor mando exterior aviso entrada
orden salida
cdigo entrada
control
clula fotoelctrica aviso presencia acceso orden portn apertura/cierre portn
garaje
cdigo salida
orden entrada
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: EUROPA RESERVA
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)
Solucin
Sea cual sea la opcin elegida, la notacin o notaciones empleadas debern ser fciles de entender
por el cliente, el usuario y, en general, por todos aquellos que puedan participar en el anlisis o el
desarrollo del sistema.
Si el objetivo global del anlisis es la comprensin del comportamiento del producto que se va a
construir, la utilizacin de una o ms notaciones para elaborar el modelo deber decidirse de
acuerdo a los criterios que debe cumplir el propio modelo:
x Completo y sin omisiones.
x Conciso y sin trivialidades.
x Sin ambigedades.
x Sin detalles de diseo o implementacin.
x Fcilmente entendible por el cliente.
x Separar los requisitos funcionales de los no funcionales.
x Dividido y jerarquizado.
2. Una aplicacin de animacin grfica para la decoracin y diseo de interiores utiliza un elemento
denominado Asiento. Qu aspectos y mecanismos del diseo de software podra utilizar para la
especializacin de dicho elemento y su uso en un ambiente concreto (silla, butaca, banqueta, sof,
etc.)?
Solucin
La especializacin se puede conseguir mediante la abstraccin y a travs de la herencia. En este
caso, lo ms inmediato parece ser el uso del mecanismo de la herencia de manera que la
especializacin de cada instancia en su ambiente (silla, butaca, etc.) se consigue mediante el
Entregue la hoja de lectura ptica con sus datos junto con su examen.
polimorfismo hereditario, es decir, adecuando cada cul sus caractersticas especficas que han
heredado de la clase Asiento.
3. Un sistema informtico de gestin bancaria opera con dos tipos de cuentas bancarias: la corriente
y la de ahorros. Las cuentas disponen de un nmero que las identifica, tienen asociado un titular,
una lista de los movimientos realizados hasta la fecha y almacenan el saldo disponible. As
mismo, las cuentas soportan operaciones como pedir el saldo y hacer ingresos o reintegros. Las
cuentas de ahorros producen un inters que se calcula cada mes. Las cuentas corrientes no
producen inters sino que reciben la carga de una comisin anual. Dichas cuentas corrientes
facilitan diversas operaciones como adeudos domiciliarios y transferencias de dinero. Cada
movimiento bancario consta de la fecha, la cantidad y el concepto de que se trata.
Solucin
CLASES:
x Cuenta de ahorros
x Cuenta corriente
x Cuenta bancaria
x Movimientos
x Banco (Sistema de Gestin)
Banco
Cuenta Bancaria
(ListaCuentas)
NumCuenta
....
Titular
Saldo
(ListaMovimientos)
Movimiento
fecha
VerSaldo cantidad
VerListado
Ingreso ....
Reintegro
CuentaAhorros CuentaCorriente
Interes
Comision
Adeudo
Transferencia
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: ORIGINAL AMRICA, GUINEA Y TNGER
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)
Solucin
Vase apartado 1.5 del libro, en pginas 16 a 21.
2. Se puede conseguir el polimorfismo sin utilizar la herencia? Si es as, de qu manera?
Solucin
El concepto de genericidad () es una manera de lograr que un elemento genrico pueda
adquirir distintas formas cuando se particulariza su utilizacin (pg. 118 del libro).
Por otro lado, existe otro tipo de polimorfismo, que no est ligado a la herencia, en el que quienes
adquieren mltiples formas son los operadores, funciones o procedimientos. Es el polimorfismo de
sobrecarga.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
Solucin
Diseo de la base de datos (E-R):
ER_Dep_Asi_Tit
Departamentos
1:N Imparte
1:N
Asignaturas_UNED
1:N
1:1 Pertenece
Titulaciones_UNED
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Modelado con DFD. Contexto (Nivel 0):
HdConvalidaciones
Datos solicitante
Tit. proced
Tipo
Nivel 1:
Hoja de convalidaciones
Datos solicitante
Conformar
Lista asig. origen
documento Formato documento
Tit. proced
Dpto. A
Asig X
Tipo Asig. Y
Asig Z
Grupos (Departamento/Asignaturas) Dpto. B
Asig H
Asig. J
Consulta
Tit_solicitada y confecc.
de grupos
Entregue la hoja de lectura ptica con sus datos junto con su examen.
ASIGNATURA: INGENIERA DEL SOFTWARE (2 CURSO)
CDIGO DE ASIGNATURA: 210=SISTEMAS y 208=GESTIN
CDIGO CARRERA:
Plan de estudios en extincin: 40=SISTEMAS y 41=GESTIN
Plan de estudios NUEVO: 53=SISTEMAS y 54=GESTIN
MATERIAL PERMITIDO: NINGUNO
Departamento de Ingeniera de
Software y Sistemas Informticos MODELO: RESERVA AMRICA, GUINEA Y TANGER
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)
Solucin
Para mejorar la legibilidad del DFD de un sistema complejo, facilitar la construccin del DFD,
permitir el desarrollo en paralelo del DFD e incluso la reutilizacin parcial del DFD, ste se divide
en diferentes niveles de abstraccin. As, el DFD de contexto da la visin ms abstracta del
sistema: cuales son los agentes externos que interactan con el sistema y que datos le suministran
o solicitan. El DFD de contexto se concreta en el DFD de nivel 1 y, a su vez, cada proceso
complejo de dicho DFD se concreta o explota en otros DFDs. As sucesivamente, hasta alcanzar
procesos elementales.
Por las razones antes mencionadas, tiene sentido aplicar esta estrategia, que en el diseo y la
codificacin suele denominarse refinamiento progresivo, en la representacin de sistemas
complejos con cualquier otra notacin de anlisis. Por ejemplo:
Un DTE podra descomponerse explotando sus estados.
Un DER podra descomponerse explotando sus entidades.
2. Cmo afecta la independencia funcional al mantenimiento de un sistema?
Solucin
Los dos criterios bsicos para medir la independencia funcional entre los mdulos constituyentes
de un sistema son la cohesin y el acoplamiento.
La cohesin se refiere a la coherencia del contenido de un mdulo. Cuanto mayor sea la cohesin
de los mdulos, ms fcil ser localizar los cambios durante el mantenimiento.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
El acoplamiento entre mdulos se refiere a la interrelacin existente entre ellos. Cuanto menor sea
el acoplamiento, menor ser la propagacin de los cambios durante el mantenimiento (la
modificacin de un mdulo no implicar el cambio de los mdulos con los que interacta).
3. Un sistema informtico de gestin bancaria opera con dos tipos de cuentas bancarias: la corriente
y la de ahorros. Las cuentas disponen de un nmero que las identifica, tienen asociado un titular,
una lista de los movimientos realizados hasta la fecha y almacenan el saldo disponible. As
mismo, las cuentas soportan operaciones como pedir el saldo y hacer ingresos o reintegros. Las
cuentas de ahorros producen un inters que se calcula cada mes. Las cuentas corrientes no
producen inters sino que reciben la carga de una comisin anual. Dichas cuentas corrientes
facilitan diversas operaciones como adeudos domiciliarios y transferencias de dinero. Cada
movimiento bancario consta de la fecha, la cantidad y el concepto de que se trata.
Solucin
CLASES:
x Cuenta de ahorros
x Cuenta corriente
x Cuenta bancaria
x Movimientos
x Banco (Sistema de Gestin)
Banco
Cuenta Bancaria
(ListaCuentas)
NumCuenta
....
Titular
Saldo
(ListaMovimientos)
Movimiento
fecha
VerSaldo cantidad
VerListado
Ingreso ....
Reintegro
CuentaAhorros CuentaCorriente
Interes
Comision
Adeudo
Transferencia
Entregue la hoja de lectura ptica con sus datos junto con su examen.
DEPARTAMENTO DE INGENIERA DE SOFTWARE Y SISTEMAS INFORMTICOS
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
2. Dado el siguiente diagrama de arquitectura (construido con las relaciones de uso entre los
mdulos), correspondiente al ejemplo de una estacin meteorolgica; desarrolle el diagrama
orientado a objetos equivalente.
Estacin
Medidor
SOLUCIN:
Uno posible es el correspondiente a la figura 4.14, de la pgina 187, del libro de texto.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
- 23/12 y 24/12
Un juego de casos de prueba podra ser:
CASOS VLIDOS
ENTRADA COMENTARIO SALIDA
7/1, 5 noches Valor lmite temporada baja 500 euros (5 x 100)
24/3, 11 noches 1er periodo temporada baja 1100 euros (11 x 100)
28/6, 3 noches Valor lmite temporada baja 300 euros (3 x 100)
25/6, 7 noches Transicin baja/alta, valor limite alta 740 euros (6 x 100 + 1 x 140)
1/7, 2 noches Valor lmite temporada alta 280 euros (2 x 140)
12/7, 20 noches Temporada alta 2800 euros (20 x 140)
20/8, 12 noches Valor lmite temporada alta 1680 euros (12 x 140)
31/8, 2 noches Transicin alta/baja, valores lmite 240 euros (100 + 140)
15/11, 6 noches 2 periodo temporada baja 600 euros (6 x 100)
21/12, 3 noches Valor lmite temporada baja 300 euros (3 x 100)
28/6, 70 noches Transicin baja/alta/baja 9480 euros (8 x 100 + 62 x 140)
CASOS NO VLIDOS
ENTRADA COMENTARIO SALIDA
3/1, 7 noches Temporada de cierre datos no vlidos
6/1, 2 noches Valor lmite temporada de cierre datos no vlidos
19/12, 11 noches Temporada de cierre datos no vlidos
24/12, 4 noches Valor lmite temporada de cierre datos no vlidos
Otro caso de estudio, que complica bastante el problema, sera la comprobacin de la correccin
de la fecha. Tambin se deberan preparar casos de prueba segn se trate o no de ao bisiesto, etc.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
DEPARTAMENTO DE INGENIERA DE SOFTWARE Y SISTEMAS INFORMTICOS
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
DEPARTAMENTO DE INGENIERA DE SOFTWARE Y SISTEMAS INFORMTICOS
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
operacin mquina
Operador
Arranque/parada
Sensores funcionamiento
rdenes trabajo
Seales accionadores
Gestin de
fotocopias
Pantalla visualizacin
Nivel de papel
Leer
Seales accionadores entrada del
operador
Seales accionadores
Sensores funcionamiento
rdenes trabajo
Test Opciones de copia
mquina
Arranque/parada Verificar
Gestin
de
Alarma copiado
Nivel de papel
Comandos de error
Informacin de estado
Realizar
diagnstico
del
problema Informe problema Producir
mensajes Mensajes
para
usuario
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Diagrama de Transicin de Estados:
FotocopiaDTE Inactiva
Leer entrada op.
Llena e
invoca gestin copia
Leyendo
rdenes
Copias Llena
invoca leer entrada op. invoca leer entrada op.
Problema
invoca diagnostico Problema resuelto
Diagnosticando invoca leer entrada op.
el problema
Entregue la hoja de lectura ptica con sus datos junto con su examen.
DEPARTAMENTO DE INGENIERA DE SOFTWARE Y SISTEMAS INFORMTICOS
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
2. Dado el siguiente diagrama de arquitectura (construido con las relaciones de uso entre los
mdulos), correspondiente al ejemplo de una estacin meteorolgica; desarrolle el diagrama
orientado a objetos equivalente.
Estacin
Medidor
SOLUCIN:
Uno posible es el correspondiente a la figura 4.14, de la pgina 187, del libro de texto.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
- 23/12 y 24/12
Un juego de casos de prueba podra ser:
CASOS VLIDOS
ENTRADA COMENTARIO SALIDA
7/1, 5 noches Valor lmite temporada baja 500 euros (5 x 100)
24/3, 11 noches 1er periodo temporada baja 1100 euros (11 x 100)
28/6, 3 noches Valor lmite temporada baja 300 euros (3 x 100)
25/6, 7 noches Transicin baja/alta, valor limite alta 740 euros (6 x 100 + 1 x 140)
1/7, 2 noches Valor lmite temporada alta 280 euros (2 x 140)
12/7, 20 noches Temporada alta 2800 euros (20 x 140)
20/8, 12 noches Valor lmite temporada alta 1680 euros (12 x 140)
31/8, 2 noches Transicin alta/baja, valores lmite 240 euros (100 + 140)
15/11, 6 noches 2 periodo temporada baja 600 euros (6 x 100)
21/12, 3 noches Valor lmite temporada baja 300 euros (3 x 100)
28/6, 70 noches Transicin baja/alta/baja 9480 euros (8 x 100 + 62 x 140)
CASOS NO VLIDOS
ENTRADA COMENTARIO SALIDA
3/1, 7 noches Temporada de cierre datos no vlidos
6/1, 2 noches Valor lmite temporada de cierre datos no vlidos
19/12, 11 noches Temporada de cierre datos no vlidos
24/12, 4 noches Valor lmite temporada de cierre datos no vlidos
Otro caso de estudio, que complica bastante el problema, sera la comprobacin de la correccin
de la fecha. Tambin se deberan preparar casos de prueba segn se trate o no de ao bisiesto, etc.
Entregue la hoja de lectura ptica con sus datos junto con su examen.
DEPARTAMENTO DE INGENIERA DE SOFTWARE Y SISTEMAS INFORMTICOS
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)
Entregue la hoja de lectura ptica con sus datos junto con su examen.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
operacin mquina
Operador
Arranque/parada
Sensores funcionamiento
rdenes trabajo
Seales accionadores
Gestin de
fotocopias
Pantalla visualizacin
Nivel de papel
Leer
Seales accionadores entrada del
operador
Seales accionadores
Sensores funcionamiento
rdenes trabajo
Test Opciones de copia
mquina
Arranque/parada Verificar
Gestin
de
Alarma copiado
Nivel de papel
Comandos de error
Informacin de estado
Realizar
diagnstico
del
problema Informe problema Producir
mensajes Mensajes
para
usuario
Entregue la hoja de lectura ptica con sus datos junto con su examen.
Diagrama de Transicin de Estados:
FotocopiaDTE Inactiva
Leer entrada op.
Llena e
invoca gestin copia
Leyendo
rdenes
Copias Llena
invoca leer entrada op. invoca leer entrada op.
Problema
invoca diagnostico Problema resuelto
Diagnosticando invoca leer entrada op.
el problema
Entregue la hoja de lectura ptica con sus datos junto con su examen.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
1 Semana
Nacional
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.
SI ESTE EJERCICIO NO SE HA IMPRESO EN HOJA DE LECTURA PTICA, SOLICITE UNA AL
TRIBUNAL.
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)
Solucin
Para el primer aspecto, determinar con rapidez y agilidad las necesidades del cliente, una medida podra ser
el nmero de cambios en los requisitos que se identifica durante la fase de anlisis y elicitacin. Un nmero
elevado podra indicar un problema en la comunicacin con el cliente o un estudio pobre del dominio. En
cuanto a las propuestas de soluciones que satisfagan las necesidades del cliente, se podra contemplar
revisando cuantos cambios se producen en los requisitos o en el modelo, en el resto de las fases del
desarrollo. Un valor elevado indicara una comprensin pobre del sistema que se desarrolla, es decir, un
anlisis incompleto o defectuoso que obligara a frecuentes vueltas atrs y replanteamientos.
Nota: Esta pregunta se ha calificado con el siguiente algoritmo:
La calificacin es el mximo entre uno (1) y la puntuacin obtenida en la correccin normal de la
respuesta (puntuacin mxima de 25).
2. En que medida incorpora o facilita, el Diseo Orientado a Objetos, la aplicacin de los conceptos de
abstraccin, modularidad, ocultacin, herencia y polimorfismo.
Solucin
A. En cuanto a la abstraccin, el concepto de clase nos permite manejar informacin como elementos
individuales abstrayndonos de sus posible composicin interna y atendiendo slo a su
comportamiento.
B. La modularidad: los mdulos de nuestro diseo bsicamente son las clases. Se relacionan entre ellas
por medio del modelo de clases y el de relaciones de uso.
C. Ocultacin, propiedad por la cual conseguimos que nuestros mdulos oculten sus estructura interna,
tambin se consigue utilizando Clases, pues, su implementacin se realiza dentro de la propia clase y
es totalmente transparente cuando se utilizan stas en la aplicacin.
D. Herencia, es un mecanismo propio del diseo Orientado a Objetos, que nos permite, de entrada,
reutilizar cdigo.
E. Polimorfismo. La herencia, a parte de reutilizar cdigo, tiene como principal caracterstica el
permitir polimorfismo: de anulacin o diferido.
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).
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.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Original
Unin Europea
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.
SI ESTE EJERCICIO NO SE HA IMPRESO EN HOJA DE LECTURA PTICA, SOLICITE UNA AL
TRIBUNAL.
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)
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. Cules son las distintas estrategias de integracin de los mdulos de un producto software? Explquelas
brevemente.
Solucin
(Pg. 285 y siguientes).
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Una clnica dental quiere informatizar su sistema de informacin. De ella recibimos el siguiente texto
escrito:
Deseamos almacenar registros de los pacientes, en los que figuren sus datos personales (nombre,
direccin, telfono, antecedentes mdicos, etc.), las dolencias detectadas en sus visitas a nuestra clnica y
los tratamientos realizados.
Disponemos de un equipo mdico encargado de realizar los diagnsticos y llevar a cabo los tratamientos
a los pacientes.
El personal administrativo se encarga de citar a los pacientes, realizar presupuestos de los tratamientos
recomendados por los mdicos y facturar los tratamientos realizados a los pacientes
Se pide:
- Realice un anlisis de los datos que va a manejar el sistema mediante el modelo entidad-relacin.
- Establezca la estructura modular del sistema mediante la tcnica de diseo orientado a objetos.
Solucin
Diagrama entidad-relacin:
hace
0:N trata 1:N 1:N presupuesto 0:1
dental
1:N factura 0:1
Modelo de objetos:
Para obtener la estructura modular asignamos un mdulo a cada clase de objetos. Las relaciones de herencia
se traducen a relaciones de uso y las subclases utilizan el cdigo de su superclase:
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Original
C. Penitenciarios
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.
SI ESTE EJERCICIO NO SE HA IMPRESO EN HOJA DE LECTURA PTICA, SOLICITE UNA AL
TRIBUNAL.
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)
Solucin
Algunos de los criterios que deben guiar la seleccin de un modelo de ciclo de vida son los siguientes:
- Volatilidad de los requisitos. Qu prestaciones ofrecen el modelo para reaccionar ante cambios en los
requisitos?
- Incertidumbre asociada al proyecto debido a la falta de experiencia en proyectos similares, la dificultad
de comprender el requisito, el uso de tecnologas novedosas
- Facilidad que el modelo da a los gestores para controlar el progreso de los sistemas.
- Rapidez con que el usuario dispone de parte o de todo el sistema.
El modelo de ciclo de vida en cascada es el ms antiguo y el ms ampliamente utilizado. Debido a su
simplicidad, el control del progreso de los sistemas es muy sencillo. Adems, no carga el ciclo de vida con
actividades que ralentizan la entrega del sistema total. Sin embargo, dada la dificultad de volver atrs, no
responde eficazmente a cambios en los requisitos ni maneja de manera apropiada la incertidumbre.
El modelo evolutivo corrige la necesidad de una secuencia no lineal de pasos de desarrollo, gestiona
eficazmente la volatilidad de los requisitos y la incertidumbre, y permite la rpida entrega parcial del
sistema (por fascculos).
Respecto al modelo evolutivo, en el modelo en espiral:
- Existe un reconocimiento explcito de las diferentes alternativas para alcanzar los objetivos de un
proyecto.
- La identificacin de riesgos asociados con cada una de las alternativas y las diferentes maneras de
resolverlos son el centro del modelo. Con el modelo evolutivo es habitual dejar las partes ms difciles
para el final y empezar con las ms fciles y de menor riesgo, obteniendo as la ilusin de un gran
avance.
- La divisin de los proyectos en ciclos, cada uno con un acuerdo final de cada ciclo, implica que existe
un acuerdo para los cambios que hay que realizar o para terminar el proyecto, en funcin de lo que se ha
aprendido desde el inicio del proyecto.
Respecto al modelo de ciclo de vida en cascada, en los modelos evolutivos y en espiral se complica el
control del progreso de los sistemas y se introducen nuevas actividades que pueden ralentizar la entrega total
de sistemas sencillos.
Solucin
(Pg, 128, 162, 244 y 253).
Las estructuras de programa recomendadas por la metodologa de programacin estructurada son la
secuencia, la seleccin y la iteracin. Cualquier lenguaje de programacin imperativo proporciona
sentencias para facilitar la programacin estructurada:
- secuencia: escritura consecutiva de sentencias
- seleccin: construcciones if then else, case of, etc.
- Iteracin: construcciones while do, repeat until, for to do, loop y exit.
La metodologa de Jackson es un procedimiento de diseo sistemtico de software a partir de las estructuras
de los datos de entrada y salida del sistema. La equivalencia que existe entre las estructuras de programa
anteriores y las estructuras de datos es la siguiente:
- secuencia tupla (estructura de datos compuesta de elementos heterogneos; la mayora de los
lenguajes disponen de la estructura registro o record para su implementacin).
- seleccin unin (tambin se usa el tipo registro para definir el esquema unin, que es una
agrupacin de elementos posibles de tipos diferentes; en el caso de Pascal y Modula-2
correspondera al registro con campos variantes).
- iteracin formacin (coleccin de elementos del mismo tipo; la estructura que proporcionan los
lenguajes se denomina formacin, vector o array).
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Actualmente, las bicicletas de montaa estn compuestas, entre otras piezas, por un manillar, un sistema de
cambio, un silln, una horquilla de suspensin, dos pedales, una cadena y un cuadro. La cadena est formada
por un conjunto de eslabones y el cuadro, dependiendo de si la bicicleta es de doble suspensin o no,
dispone de un amortiguador.
En la asignatura se estudian dos notaciones para modelar datos, que en ocasiones pueden considerarse
equivalentes: los diccionarios de datos y los diagramas entidad relacin. Modele el enunciado anterior
utilizando ambas notaciones. En el diccionario de datos omita el campo Utilidad y las descripciones de
los componentes de la bicicleta (limtese a cumplimentar los campos Nombre y Estructura).
Solucin
a) Diccionario de datos:
Solucin
A. Ciclo de vida. Disponer de un modelo de referencia para el comportamiento del proceso de desarrollo
que permite la visibilidad, el seguimiento y control de las actividades implicadas en la fabricacin del
producto.
B. El Anlisis. Permite alcanzar la comprensin de las necesidades del cliente, la situacin, el objetivo, el
comportamiento y la funcionalidad de lo que tendr que ser la aplicacin cuando se construya. El
conjunto de actividades de esta fase establecen la definicin del producto. Por tanto, la otra ventaja,
adems de la comprensin, es que se establecen, de manera explcita, un conjunto de especificaciones,
ms o menos formales, imprescindibles para el diseo, la codificacin, validacin y aceptacin del
producto.
C. En el diseo se define un modelo terico del funcionamiento del sistema. El anlisis de estas
especificaciones de funcionamiento permite deducir: defectos en la funcionalidad del sistema o de
alguno de sus componentes; el grado de independencia entre mdulos, su comprensibilidad y
transportabilidad y, por tanto, se pueden estimar los posibles problemas de mantenibilidad, reutilizacin
y codificacin. El refinamiento del diseo reduce los problemas anteriores y facilita la verificacin, la
integracin y las pruebas.
D. En la codificacin se realiza la construccin fsica del producto. Cuando se hace teniendo en cuenta las
pautas de la Ingeniera del Producto Software y basndose en la realizacin correcta de las fases
anteriores, se garantizan mejores resultados en cuanto a los plazos de entrega, la mayora de los aspectos
de calidad del producto; deteccin, control y eliminacin de defectos, facilidad de integracin y
reutilizacin futura del cdigo.
E. Un buen programa de pruebas permite detectar el mximo de defectos de parte del producto o del
sistema completo. Esta deteccin, sobre todo si es precoz, permite disminuir los plazos de entrega,
facilita la eliminacin de defectos (calidad) y ahorra mucho trabajo. Las pruebas se pueden y deben
realizar durante todas las fases del ciclo de vida. De esta manera se posibilita la visibilidad y el control
del desarrollo del producto y se permite que los replanteamientos sean tempranos y eficaces. En cuanto a
las pruebas del cdigo, del funcionamiento de los componentes y del sistema; la identificacin de los
defectos y de su origen depende, en gran medida, de la calidad del diseo realizado y de que la ejecucin
de la codificacin haya sido ordenada y controlada, bien documentada y se hayan realizado las buenas
prcticas recomendadas. El proceso de correccin, cambios y mantenimiento se facilitar tanto ms
cuanto se incorporen estas tcnicas en el desarrollo.
F. Integracin y pruebas del sistema. Las ventajas mencionadas anteriormente para el diseo, la
codificacin y pruebas modulares, se extienden y aplican a la facilidad y xito de la integracin; tanto en
el caso de grandes aplicaciones como en las de pequeo tamao que requieran una integracin mnima.
En cualquier caso, los problemas que se puedan detectar sern de origen ms fcilmente identificable con
un diseo claro, una descomposicin modular altamente independiente, un cdigo limpio y bien
documentado que si este es farragoso o si el diseo tiene dependencias fuertes.
G. La gestin de la configuracin y, en concreto, el establecimiento y mantenimiento de la lnea base,
permite que todas las actividades del desarrollo se realicen en direcciones que son compatibles entre s,
aunando los esfuerzos en el sentido de la finalizacin del producto. Las especificaciones de la lnea base
se van estableciendo paulatinamente a lo largo de todo el ciclo de vida, en una sucesin de distintas
lneas base de las que slo una est vigente (congelada) en cada instante. Como las especificaciones de la
lnea base garantizan que los trabajos que se realicen son compatibles entre s y con lo anteriormente
desarrollado, se evita la dispersin de esfuerzos y el trabajo que supone la adecuacin de una parte del
desarrollo para que sea compatible con el resto.
2. Resuma en qu consiste el principio de ocultacin y qu ventajas se derivan de su aplicacin.
Solucin
El principio de ocultacin y sus ventajas se resumen en las pginas 113 y 114 de J. A. Cerrada Somolinos, et
al. Introduccin a la Ingeniera del Software. Ed. Ramn Areces, 2000. A continuacin, se da una
explicacin complementaria a dicho resumen:
Qu es el principio de ocultacin? Es un principio que promueve esconder todos los detalles que sean
irrelevantes para utilizar un determinado artefacto.
Los lenguajes de programacin ofrecen diversos medios para seguir este principio. Por ejemplo, los detalles
de implementacin de los subprogramas suelen ocultarse mediante cabeceras, que muestran exclusivamente
cuales son los parmetros de entrada y salida de los subprogramas.
Qu ventajas se derivan de su aplicacin? El principio de ocultacin es de propsito general, ya que su
aplicacin va ms all del mero desarrollo de software. Por ejemplo, la electrnica de los equipos de msica
se esconde dentro de una caja que ofrece una escueta interfaz con los botones ON, OFF, PLAY Qu
ocurrira si no fuera as y para escuchar un disco tuviramos que configurar cables, transistores?
1. La utilizacin del equipo exigira aos de estudio para conocer la electrnica del equipo.
2. Si el equipo se estropea y adquirimos un nuevo modelo, habra que volver a invertir tiempo en
aprender qu cables, transistores hay que configurar. Es decir, al estar acoplados a la tecnologa
del equipo, si sta cambia, nos vemos forzados a cambiar nosotros tambin.
3. La prueba de los equipos se encarecera, ya que, adems de expertos en acstica, forzosamente
debern participar expertos en electrnica.
Centrndonos en el desarrollo de software, el principio de ocultacin facilita:
1. La reutilizacin de componentes desarrollados por terceros.
2. El mantenimiento del cdigo que reutiliza componentes desarrollados por terceros. Mientras los
componentes mantengan su interfaz, la evolucin de los componentes no impondr cambios en el
cdigo que los reutiliza.
3. La realizacin de pruebas de caja negra.
3. Los principales componentes del material gentico de los organismos son el ADN (cido
DesoxirriboNucleico) y el ARN (cido RiboNucleico). El ADN est formado por cuatro tipos de
nucletidos, dos con bases nitrogenadas purnicas: la adenina y la guanina, y dos con bases nitrogenadas
pirimidnicas: la citosina y la timina. El ARN est compuesto por los mismos tipos de nucletidos, salvo que
en lugar de timina contiene uracilo.
Modele el enunciado anterior mediante un Diagrama de Objetos.
Solucin
Del anlisis del enunciado se desprenden las relaciones de agregacin y composicin: componentes del
material gentico; ADN y ARN formado por Por otro lado, cualquiera de los compuestos que forman
el materia gentico son bases nitrogenadas, de un tipo u otro, y son nucletidos; de donde se deducen las
relaciones de herencia.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN Sept - 2007
Reserva
Nacional y UE
Solucin
Figuras 1.3, 1.6 y 1.7 de J. A. Cerrada Somolinos, et al. Introduccin a la Ingeniera del Software. Ed.
Ramn Areces, 2000.
2. Resuma qu cualidades debe poseer una buena descomposicin modular.
Solucin
Las cualidades que debe poseer una buena descomposicin modular se indican en el apartado 4.1 de J. A.
Cerrada Somolinos, et al. Introduccin a la Ingeniera del Software. Ed. Ramn Areces, 2000. A
continuacin, se incluye un esquema que resume dichas cualidades.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. En un juego de simulacin area, el usuario puede elegir entre distintos tipos de aeronaves: ala-delta,
planeador, ultraligero, avioneta de recreo, avin de combate, etc. Todas las aeronaves se rigen por el mismo
principio bsico de navegacin area, sin embargo, cada uno ofrece adems su propio comportamiento
dependiendo si se trata de una aeronave con motor o sin l, si ste es de hlice o a reaccin o, incluso, del
nmero de motores de que dispone.
Disee un modelo de objetos que represente los distintos modelos de aeronave. Utilice herencia siempre
que pueda y justifique sus pasos en la construccin del diseo. Intente aadir funcionalidad a las clases
en forma de algunos mtodos que se le ocurran.
Solucin
Para poder identificar las clases que tendr nuestro diseo, emplearemos las directivas de Abbot.
Dado que las caractersticas bsicas de vuelo son comunes a todos los aviones, y atendiendo a criterios de
abstraccin y coherencia, parece natural disear una clase padre llamada Aeronave que recoja estas
caractersticas. A partir de ella irn heredando las distintas clases de aeronaves que dispongamos. Antes, sin
embargo, hacemos la distincin entre aeronaves de motor y sin motor ya que su comportamiento e
instrumentacin sern distintas; estas dos clases sern las A. Sin Motor y A. Con Motor desde las cuales
heredaran todas las distintas clases de aeronaves que dispondr nuestro juego.
Por otro lado, dado que el motor juega una parte importante en la navegacin de las aeronaves, se ha
diseado una clase Motor que recoger la funcionalidad bsica que tendrn los dos tipos de motores: los de
hlice y los de reaccin.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN Sept - 2007
Original
C. Penitenciarios
Solucin
A. Verificacin es la comprobacin de que cada parte, mdulo, componente o elemento codificado funciona
y se comporta correctamente segn lo especificado en el diseo.
Por el contrario, la validacin es la comprobacin de que el sistema, ya integrado, cumple las
expectativas del cliente que se hayan reflejado en la documentacin del anlisis. Dicho de otra manera,
en la validacin se comprueba que las especificaciones que se han acordado con el cliente y que se han
reflejado en la documentacin del anlisis, se ejecutan satisfactoriamente.
B. Por el propio contenido de los dos conceptos: comprobar que cada parte del cdigo se comporta como se
esperaba y constatar que se cumplen las necesidades acordadas con el cliente; estas actividades forman
parte, necesariamente, de una u otra fase de todos los ciclos de vida. Es inaceptable que no se compruebe
si el cdigo funciona o si el producto desarrollado es el que quera el cliente.
2. Explique brevemente las dos estrategias de pruebas de mdulos estudiadas en la asignatura.
Solucin
Para evitar el caos que supondra el tener que hacer una prueba global nica a todo el sistema, antes de la
integracin, se debern hacer pruebas a cada mdulo de diseo conforme avance la codificacin.
Existen dos estrategias fundamentales de prueba de mdulos o unidades:
x Pruebas de caja negra
3. La vejiga natatoria es un rgano de flotacin que poseen muchos peces. Se trata de una bolsa de paredes
flexibles, llena de gas, situada dorsalmente por debajo de la columna vertebral y por encima del tubo
digestivo. Controla la flotabilidad mediante un complejo sistema de intercambio gaseoso con la sangre, y
permite al pez ascender o descender en el agua. Cuando expulsa gases por compresin muscular, aumenta el
peso especfico, facilitando el descenso en el agua. Si se llena de gases, favorece el ascenso hacia la
superficie. El proceso de secrecin gaseosa se basa en la acidificacin de la sangre producida al convertirse
la glucosa en cido lctico. Con ello se libera en la sangre oxgeno de la oxihemoglobina y dixido de
carbono del bicarbonato sdico, que se difunden en la vejiga natatoria. Los gases que no llegan
inmediatamente hasta la vejiga natatoria pasan a los capilares eferentes y circulan de nuevo.
Modele el movimiento ascendente y descendente de los peces, enunciado en el prrafo anterior, mediante
un Diagrama de Transicin de Estados.
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN Sept - 2007
Original
Soto del Real
Solucin
Pginas 27 y 28 de J. A. Cerrada Somolinos, et al. Introduccin a la Ingeniera del Software. Ed. Ramn
Areces, 2000.
2. Para qu sirven las pruebas de sistema?
Solucin
El principal objetivo de las pruebas es conseguir que el programa funcione incorrectamente, esto es, las
pruebas deben ser capaces de encontrar posibles errores de software.
En particular se llaman pruebas de sistema a aquellas que se realizan sobre todo el sistema software una vez
terminado la integracin del mismo. Es este escenario, es cuando se realizan pruebas para evaluar criterios
de calidad. Se pueden agrupar en las siguientes clases segn el objetivo perseguido:
x Pruebas de recuperacin.
x Pruebas de seguridad.
x Pruebas de resistencia.
x Pruebas de rendimiento.
Por ltimo, para ver que el sistema es realmente til al usuario final, se realizan las pruebas alfa y beta.
Vase la seccin 5.9 del libro de referencia (pg. 289 y 290).
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Una compaa editorial est divida en 4 departamentos: edicin, maquetacin, fabricacin y administracin.
Los trabajadores se dividen entre: directivos, tcnicos y operarios. Un proyecto editorial implica a todos los
departamentos y tiene un directivo como responsable. Los dems empleados estn adscritos, al menos, a un
proyecto. El jefe de un departamento es un directivo.
Modele el sistema anterior utilizando orientacin a objetos.
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2008 mbito
1 SEMANA
Solucin
Medio de comunicacin
Mdulo Repositorio de Mdulo
datos comunes
Capa 2
Servidor Servidor
Almacn Almacn
Mdulo Mdulo Capa 1
Solucin
La ventaja ms importante del modelo cliente-servidor es que es una arquitectura distribuida. Se puede hacer
un uso efectivo de los sistemas en red con muchos procesadores distribuidos. Es fcil aadir un nuevo
servidor e integrarlo con el resto del sistema o actualizar los servidores de forma transparente sin afectar al
resto del sistema. Puede no haber un nico modelo de datos compartido entre los servidores y, por tanto, los
subsistemas pueden organizar sus datos de formas diferentes. Esto quiere decir que se puede optimizar el
rendimiento de cada servidor estableciendo en l un modelo de datos especfico.
Internet
b) Modelo Cliente-Servidor
Sin embargo, un inconveniente podra ser que, para obtener mayores beneficios de la integracin de un
nuevo servidor, fuera necesario realizar cambios en los clientes o en los servidores existentes. Si se usara
una representacin de los datos basada en XML, sera relativamente simple realizar las conversiones de un
esquema a otro en el supuesto de que se hiciera una modificacin en algn elemento y el sistema no
compartiera un modelo de datos nico. Desgraciadamente, XML es una forma de representar los datos
poco eficiente y, su uso, podra acarrear problemas en el rendimiento cuya facilidad de optimizacin se
mencionaba como ventaja.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. El sistema Mail Secure sirve para enviar correos electrnicos firmados y/o cifrados. El funcionamiento
bsico (simplificado) es el siguiente:
Cada usuario tiene dos claves: una privada, solo accesible por l, y otra clave pblica que
es compartida por el resto de los usuarios.
Veamos con un ejemplo cmo Alicia enva un mensaje firmado y luego cifrado (oculto) a Bernardo, su
amigo.
1) Alicia pasa su mensaje por una funcin hash que lo comprime a modo de resumen.
2) Este mensaje hash o resumen se codifica con la clave privada de Alicia. El mensaje resultante se conoce
como firma digital.
3) El mensaje original queda firmado al unirlo con su firma.
4) Alicia puede enviar el mensaje firmado (original + firma) a Bernardo.
5) Pero si Alicia quisiera adems cifrar (codificar) su mensaje antes de enviarlo, utilizara la clave
pblica de Bernardo para cifrar el mensaje firmado obteniendo as un mensaje firmado y cifrado
(encriptado).
6) Ahora Alicia enva a Bernardo su mensaje firmado y cifrado (encriptado) a salvo de cualquier mirada y
adems llevando la marca de autenticidad (su firma).
Veamos ahora como procede Bernardo para descifrar el mensaje y comprobar su autora.
1) Cuando Bernardo recibe el mensaje cifrado y firmado de Alicia pasa a descifrarlo utilizando su clave
privada, obteniendo el mensaje original de Alicia y su firma.
2) Para comprobar que es Alicia quien lo ha firmado, descifra la firma con la clave pblica de Alicia. Por
otra parte, aplica la funcin hash al mensaje descifrado de Alicia. Obteniendo as dos mensajes
resmenes.
3) Si coinciden, se puede garantizar que la firma es de Alicia, si no, se rechaza el mensaje.
Modele el sistema anterior mediante dos DFD's: uno para la parte emisora (Alicia) y otro para la parte
receptora (Bernardo) para el caso que se quiera enviar un mensaje cifrado y firmado.
Nota. Codificar, cifrar o encriptar es aplicar una trasformacin a un texto utilizando un algoritmo que
necesita un parmetro llamado clave. La finalidad es ocultar el texto original obteniendo otro texto ilegible.
Descifrar o desencriptar es la operacin inversa.
Solucin
Emisor (Alicia):
DFD de nivel 1.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2008 mbito
UE 2 SEMANA
1. En qu consiste el anlisis del dominio del sistema software que se desarrolla y qu ventajas tiene su
realizacin?
Solucin
Se trata del estudio del entorno en el que se enmarcar el sistema que se desarrolla, en el cual existir una
manera de hacer las cosas y una terminologa que deber ser tenida en cuenta. Esta es una actividad que se
debe contemplar en la fase de anlisis del proceso de desarrollo. Al estudiar el contexto del sistema, el
analista podr alcanzar una comprensin ms clara y precisa de lo que se necesita desarrollar;
fundamental para que las actividades tengan xito. Adems, permite tener una comunicacin fluida con
aquellos interlocutores con los que deber interactuar para llevar a cabo la especificacin del sistema. Si se
ignora este contexto, la solucin estar excesivamente particularizada al caso concreto que pide un cliente,
por lo que la solucin desarrollada no servir para otras empresas. Por tanto, el conocimiento de la
problemtica del entorno servir al analista para situar la aplicacin en un contexto ms global, lo que
facilitar la reutilizacin posterior del software desarrollado.
2. Explique cmo se lleva a trmino, y con qu tipo de pruebas, la fase de validacin del sistema.
Solucin
Validar el sistema significa comprobar que el sistema desarrollado cumple con los requisitos previstos desde
el principio, especificados por el cliente y recogidos en el documento de anlisis. Para ello se aplican
estrategias de caja negra a todo el sistema una vez integrado.
Por ltimo se emplean las pruebas alfa y beta para ver la utilidad que tiene la aplicacin a sus usuarios
finales.
SEGUNDA PARTE. PREGUNTA DE TEORA APLICADA (MXIMO 5 PUNTOS)
3. Los sistemas de procesamiento de lenguaje aceptan como entrada sentencias en algn lenguaje y generan
como salida alguna otra representacin del lenguaje de entrada. Un caso particular son los compiladores,
que traducen un lenguaje de programacin artificial de alto nivel a cdigo mquina (abstracta o de un
procesador real). Los principales componentes de un traductor (sea para un compilador u otro procesador
de lenguaje) son:
1) Un analizador lxico, que toma como entrada los elementos del lenguaje, identifica sus smbolos y
los convierte a un formato interno.
2) Una tabla de smbolos, que almacena informacin sobre los nombres de las entidades (variables,
nombres de clases, de objetos, etc.) usadas en el texto que se est traduciendo.
3) Un analizador sintctico, que comprueba la sintaxis del lenguaje que se est traduciendo. Utiliza
una gramtica definida y construye un rbol sintctico.
4) Un rbol sintctico, que es una estructura interna que representa el texto que se est traduciendo o
el programa que se est compilando.
5) Un analizador semntico, que utiliza la informacin del rbol sintctico y de la tabla de smbolos
para comprobar la correccin semntica del texto en el lenguaje de entrada.
6) Un optimizador, que transforma el rbol sintctico para mejorar la eficiencia y eliminar
redundancias en el cdigo mquina que se genere.
7) Un generador de cdigo, que recorre el rbol sintctico y genera cdigo mquina (traducido).
a) Represente la arquitectura genrica de un compilador mediante un modelo de flujo de datos (haga el
DFD, el correspondiente anlisis de flujo de datos y represente la arquitectura con un diagrama de
estructura). (2 puntos)
Solucin
Tabla de smbolos
Tabla de smbolos rbol sintctico rbol sintctico
Gramtica
Formato interno
Texto tokens Control Optimizador / Cdigo
Anlisis Anlisis
Anlisis lxico Generacin
sintctico semntico
cdigo
Compilador
de
Tabla s rbo
l
m b olo sint
s ctico
Ta
o
Cdig
Texto
bla
tic
rb
o
de ntct
ol s
int
Co
ls
sm ico
am ns
i
ica
Optimizador /
bo
rre
Gr oke
Anlisis lxico
bo
r
Generador cdigo
cci
T
los
n
Anlisis sintctico
Anlisis semntico
Una decisin fundamental para el diseo de la arquitectura es la estrategia para estructurar el sistema.
Se denomina modelo de repositorio a la estructura en la que los subsistemas se agrupan en torno a
una base de datos compartida, almacn o repositorio. Suponga ahora que el compilador anterior forma
parte de un conjunto integrado de herramientas de soporte para la programacin. Tales herramientas
son el compilador, un sistema de edicin estructurado, un depurador interactivo y un programa de
impresin. La gramtica del lenguaje y el formato de salida del programa son elementos generalmente
embebidos en las herramientas pero, por ser comunes, se incluyen en el repositorio junto con los datos
comunes del compilador. El repositorio no slo sirve de almacn, sino tambin de va de comunicacin
entre las herramientas.
b) Transforme la arquitectura definida anteriormente para el compilador a un modelo de repositorio al
integrarlo con las herramientas mencionadas en un entorno de programacin con un editor dirigido
por la sintaxis (segn se escribe, verifica si la sintaxis es correcta e informa al usuario). (2 puntos)
Sugerencia: para que se vea ms claro y sencillo, no use un diagrama de estructura sino un diagrama
de bloques o uno parecido a un DFD.
Solucin
Optimizador
Impresora
rbol sintctico Definicin de
abstracto la gramtica
Repositorio
c) Qu ventajas tiene la ltima estructura arquitectnica respecto a, por ejemplo, el editor dirigido por
la sintaxis, el depurador interactivo o el sistema de impresin? (1 punto)
Solucin
Como la definicin de la gramtica est compartida en el repositorio en lugar de estar embebida en el
editor, que supervisa la sintaxis, se puede comprobar la correccin sintctica del programa fuente al mismo
tiempo que se est escribiendo.
Un depurador interactivo utiliza el programa compilado lenguaje mquina y suele permitir hacer un
seguimiento en la ejecucin, ejecucin paso a paso y visualizacin de los valores de las variables, posiciones
de memoria, registros, etc. Esta funcionalidad del depurador es ms efectiva cuando el compilador est
integrado junto con las otras herramientas arquitectura en repositorio comn. No lo es tanto si el
compilador est aislado de las otras herramientas; en cuyo caso, est ms orientado al procesamiento por
lotes, en el que los programas son compilados y ejecutados sin la interaccin del usuario.
De igual forma, al estar embebido tambin el formato de salida del programa, el sistema de impresin puede
generar, en cualquier momento, listados adecuados que son fciles de leer.
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2008 mbito
CP -- ORIGINAL
1. Explique el concepto de abstraccin aplicado al diseo de software y sus formas fundamentales de uso.
Solucin
Por medio de la abstraccin prescindimos de los elementos y utilidades concretas de un sistema software
determinado para considerarlos ms all de ese sistema. De esta manera, los elementos que diseemos sern
fcilmente mantenibles (se podrn sustituir por otros con mejores prestaciones) y reutilizables en otros
proyectos similares. Hay tres formas fundamentales de abstraccin: abstracciones funcionales, tipos
abstractos de datos y mquinas abstractas.
2. La Comunidad Autnoma ha decidido hacerse cargo de la gestin de la piscina El Remojn. Para ello
slo dejar acceder, de forma gratuita, a dichas instalaciones a aquellos usuarios que sean estudiantes o
trabajadores locales. Dependiendo del tipo de usuario (estudiante o trabajador), que se acreditar con un
carnet, se realizarn diferentes tratamientos para imprimir la entrada. Suponga que este es el DFD de nivel 2
simplificado para un diseo estructurado:
Se pide:
a) Aislar el centro de transformacin o el de transacciones. Defina estos conceptos y muestre un
diagrama de estructura con cada uno de estos casos. (1 punto)
b) Represente el diagrama de estructura correspondiente al diseo estructurado de este ejemplo.
(15 puntos)
Solucin
a) Un centro de transformacin es una operacin, accin, proceso o agrupacin de ellos, que define la
transformacin fundamental de un sistema en el que se ha identificado un flujo de informacin
global desde los elementos de entrada hacia los de salida.
Un centro de transaccin es un proceso que define una bifurcacin, a partir de la cual, el flujo de
datos global se descompone en lneas separadas. En el enunciado, la seleccin del carnet es el centro
de transaccin que activa una u otra lnea (transaccin) en funcin del tipo de dato de entrada el tipo
de carnet.
Centro de
transaccin
Sistema
Control de
Control de la Control de salida
entrada
transformacin
P1 P2 P3 P4 P5 P6
P7 P8
Control de las
Control de transacciones
preparacin
TrA TrB
P1 P2
P4 P5 P6 P7 P8
Sistema
...
Seleccionar
carnet
Carnet Carnet
estudiante trabajador
3. Se le pide que defina el proceso de adquisicin de equipos en una empresa. Esto implica especificar el
equipo deseado, buscar y elegir a los proveedores teniendo en cuenta, tambin, el presupuesto disponible y
su aceptacin; pedir el equipo, recibirlo a su llegada y, a continuacin, verificarlo. La peticin del equipo
se har mediante formularios en los que no slo se reflejarn los detalles del equipo y del proveedor, sino
que debern ir visados para garantizar que hay disponibilidad de fondos y se ha aprobado el gasto. Al
emitir el pedido, este se registra para un posterior seguimiento. La recepcin de un equipo requiere la
verificacin de la entrega, instalacin, comprobacin del funcionamiento especificado, aceptacin y
registro en la base de datos de inventario.
a) Resuelva las faltas y ambigedades que estime. Antelas e indique las decisiones que ha tomado. (1
punto)
b) Represente la funcionalidad del proceso mediante diagramas DFD (nivel 0, 1 y 2). (3 puntos)
c) En el nivel 1, enmarque con una lnea discontinua qu parte del proceso decide usted automatizar
informticamente. Explique y argumente su decisin. (1 punto)
Solucin
a) No queda claro cmo se tiene en cuenta el presupuesto disponible y cul es el procedimiento de
aceptacin del pedido y visado de ste. Tampoco queda claro si la evaluacin del pedido, su aprobacin,
registro de ste y el del inventario del equipo una vez recibido y verificado se realiza en el propio
sistema o bien es una entidad externa como, por ejemplo, Gerencia. Gestin econmica e inventario la que
lo hace.
b)
Nota de entrega
Solicitud /
Necesidad
Adquisicin de
Solicitante Proveedor
equipos
Pedido
verificado
y firmado
DFD de contexto
Solicitud / Nota de
Necesidad entrega
Especificaciones +
Proveedor + Instrucciones
estimacin Notificacin de instalacin
Lista de proveedores del pedido
Especificacin
del equipo
Buscar Elegir Realizar
Instalar equipo
proveedores proveedor Detalles pedido
del pedido +
Formulario en
blanco del pedido Aceptacin
Proveedores
de instalacin
Base de datos
Formulario
de
del pedido
proveedores
verificado y firmado Aceptar equipo
Base de datos
de equipos Detalles
del equipo
DFD de nivel 1
Formulario
Formulario
del pedido
verificado y firmado
Formulario completo Formulario Enviar al verificado y firmado
del pedido verificado y firmado proveedor
Completar
Validar el Registrar el
formulario de Notificacin
Detalles pedido pedido
pedido del pedido
del pedido +
Formulario en Formulario
blanco del pedido verificado y firmado Modificar
Detalles informacin
del pedido contable
Coste de
Fichero de pedido +
pedidos detalles de
la cuenta
Fichero de
presupuestos
Solicitud / Nota de
Necesidad entrega
Especificacin
validada
Especificacin Nota de
Especificar el del equipo Validar Estimacin de Aceptar entrega Verificar
equipo especificacin costes entrega equipo
Especificaciones +
Proveedor + Instrucciones
estimacin Notificacin de instalacin
Lista de proveedores del pedido
Especificacin
del equipo
Buscar Elegir Realizar
Instalar equipo
proveedores proveedor Detalles pedido
del pedido +
Proveedores Formulario en
Base de datos blanco del pedido Aceptacin
de de instalacin
proveedores
Formulario
del pedido
verificado y firmado
Aceptar equipo
Solucin
Los DTEs sirven para modelar el comportamiento temporal de un sistema software. Por ejemplo, el
siguiente diagrama representa la secuencia de colores de un semforo.
Los DERs permiten modelar la estructura de los datos que maneja una aplicacin informtica. Por ejemplo,
el siguiente diagrama muestra el tipo de elementos que manipula un sistema de nminas.
OBSERVACIN: un ejercicio interesante para entender los puntos fuertes y las limitaciones de cada
notacin sera tratar de modelar cada ejemplo intercambiando la notacin propuesta en esta solucin.
Solucin
Empleado
+Nombre : string
+Direccin : string
+FechadeNacimiento : Date
+NumEmpleado : int
+NumSS : string
+Departamento
+Director : Empleado
+Salario : int
+Estado
+Alta() : Date
+Baja() : Date
+Jubilacion() : Date
+Cambio() : void
Programador
Gestor
+Proyecto : string
+PresupuestoAcordado : string
+LenguajesProg : any(idl)
+FechaSolicitud : Date
nivel presa
control
presa orden presa
nivel ro
datos presa
control control
datos ro compuertas auto control
ro automtico
compuertas
compuertas manual
caudal ro datos canal
orden canal
info compuertas
control control
info elementos
canal manual
info operario
nivel canal datos operario
control
control panel
cuadro
mandos datos panel
orden operario
Los objetivos que debe cumplir el sistema son los siguientes, de mayor a menor prioridad:
atender las peticiones del operario
evitar desbordamientos de la presa
evitar desbordamientos del ro
evitar desbordamientos del canal de riego
garantizar agua en el canal de riego
Se pide:
a) Utilizando la tcnica de diseo estructurado, realice el diagrama de estructura del sistema a partir
del anterior DFD.
b) Proponga un algoritmo, utilizando psedocdigo, para el diseo procedimental del mdulo control
de transformacin resultante del paso 1. Haga lo mismo con los mdulos que cuelgan de l.
Tenga para ello en cuenta los objetivos del sistema y su prioridad.
Solucin
a) El diagrama de estructura aade al DFD una jerarqua de control. La tcnica de diseo estructurado
recomienda realizar anlisis de flujo de transformacin o de flujo de transaccin para establecer
dicha jerarqua. En nuestro caso el anlisis de flujo apropiado es el de transformacin, siendo
fcilmente identificables los flujos de informacin de entrada, transformacin y salida del sistema:
nivel presa
control
presa orden presa
nivel ro
datos presa
control control
datos ro compuertas auto control
ro automtico
compuertas
b) Control de transformacin:
REPETIR
MIENTRAS no lleguen datos operario
Realizar control automtico
FIN-MIENTRAS
Realizar control manual
HASTA apagado del sistema
control automtico:
control manual:
Solucin
2. Suponga que el modelo simplificado de uso de un horno microondas implica estas acciones:
1. Seleccionar el nivel de potencia (media o mxima).
2. Introducir el tiempo de coccin.
3. Pulsar el botn de inicio y la comida se cocina durante el tiempo establecido.
El aparato tiene botones para fijar la potencia, el temporizador e iniciar el sistema. Por seguridad, el horno
no debera funcionar con la puerta abierta. Cuando se completa la coccin, suena un timbre. El aparato tiene
una pantalla alfanumrica para representar informacin de seleccin, progreso, alerta y precaucin.
Construya un Diagrama de Transicin de Estados para representar este funcionamiento.
Solucin
Temporizador
Nmero
Seleccionar
tencia Establecer tiempo
Fij ar po potencia
Bo tn Obtener nmero
Fijar tiempo
Puerta
abierta
En espera Puerta
Visualizar cerrada
tiempo Cancelar
Puerta Inhabilitado
abierta Visualizar
En espera
Habilitado
Visualizar
Funcionamiento Listo
Encender horno Iniciar
coccin
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Septiembre 2008 mbito
CENTROS
PENITENCIARIOS
ORIGINAL
Solucin
La metodologa de programacin conocida como 'programacin estructurada' se empez a utilizar a
primeros de los aos 70, siendo los trabajos clsicos de Dijkstra, Dahl y Wirth los que le dieron popularidad.
En la fase de diseo de esta metodologa se utiliza un tcnica (muy intuitiva) llamada 'desarrollo por
refinamiento progresivo' y consiste en descomponer el sistema desde un punto de vista funcional y ver el
sistema entero como una operacin (funcin) global y, a partir de ah, ir descomponindolo siempre en
funciones ms sencillas.
Vase seccin 4.2.1 del libro de texto.
2. Razone qu ventajas puede tener la tcnica de integracin llamada 'sndwich'.
Solucin
La tcnica 'mixta' o 'sndwich', al integrar tanto descendente -con los mdulos de nivel alto- y ascendente
-con los de nivel bajo-, nos ofrece las ventajas de ambas tcnicas al mismo tiempo. Permite ver desde un
principio las posibilidades de la aplicacin al ir integrando de forma descendente y, al mismo tiempo, se
puede trabajar en paralelo con otros desarrolladores que estarn integrando de forma ascendente; empezando
con los mdulos de nivel bajo.
3. Modele, con un diagrama de objetos, la composicin de un ejrcito griego segn el siguiente enunciado:
En la antigua Grecia, la principal unidad del ejrcito era la infantera, que estaba compuesta por tres tipos
de soldados: 1) los hoplitas, pesadamente equipados con un escudo, una lanza, y una espada; 2) los
peltastas, que portaban un equipamiento ms ligero compuesto por varias jabalinas; y 3) los gimnetas, que
llevaban una honda.
La principal organizacin tctica para la guerra era la falange, que luego fue imitada por varias
civilizaciones mediterrneas. La falange estaba formada por una profunda fila de hoplitas.
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2009 mbito
NACIONAL
1 SEMANA
Solucin
Disco
0:1 0:N
Intrprete
1:1
1:N
Es interpretado
Se clasifica
1:N
Pertenece
Esta compuesto
1:1
1:1
1:N
Tipo de musica
Discogrfica Artista
Diccionario de datos:
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. Una cadena hotelera ofrece casi todos sus servicios a travs de un portal Web. Un mecanismo de
fidelizacin utilizado con frecuencia consiste en que el cliente va acumulando puntos en la medida en que
consume los servicios de la empresa, dependiendo de qu actividades realice y en qu condiciones lo haga.
Peridicamente, la cadena confecciona ofertas que sita en su Web; las cuales son canjeables por los
puntos que un cliente tenga acumulados. El mdulo de Fidelizacin y Gestin de Puntos del Cliente,
bsicamente, lo que hace es contabilizar los puntos generados por las actividades consumos de
determinados servicios y anotarlos en la cuenta del cliente. Una Actividad se caracteriza por el tipo,
coste del servicio, beneficio y lugar donde se consume. Una anotacin se compone de tres
elementos: una condicindelugar, una condicindeactividad y el premio por consumo. La
condicindelugar comprueba si la actividad se realiza en el establecimiento o lugar adecuado para
anotar puntos. Dicha comprobacin consulta una lista de establecimientos adheridos a la cadena hotelera.
La condicindeactividad es o bien la comprobacin de que la permanencia en el hotel es mayor que
un determinado valor, o bien que el tipo de la actividad es el adecuado para puntuar. Una vez que se
cumplen las dos condiciones anteriores, se hace el clculo del premio. El premio se calcula de dos formas
excluyentes: o es un premiopordadeestancia o es un premioporcantidadgastada.
Represente la descripcin del mdulo anterior mediante un Diagrama de Objetos.
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2009 mbito
NACIONAL Y U.E.
2 SEMANA
Solucin
Documento de Requisitos de Software (SRD): tras la fase de anlisis. Es una especificacin precisa y
completa de lo que debe hacer el sistema.
Documento de Diseo del Software (SDD): tras la fase de diseo. Estructura del sistema, con su
descomposicin en subsistemas y las relaciones entre ellos.
Cdigo Fuente: tras la codificacin. Programas fuente convenientemente comentados.
Sistema Software: tras la integracin. Es el ejecutable junto con las pruebas de validacin.
Documentos de cambios o mantenimiento: el mantenimiento se debe realizar de manera organizada,
contabilizando tanto los informes del problema como los del cambio realizado.
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
3. Un supermercado desea implantar un sistema de cobro automtico, de forma que sean los propios clientes
quienes pasen los productos por el lector de cdigo de barras y paguen introduciendo su tarjeta de crdito
en una ranura, tras lo que recibirn el comprobante de la compra. El cliente podr cancelar el proceso en
cualquier momento, pero no una vez aceptado el pago.
Proponga, mediante lenguaje natural un sistema sencillo que resuelva el sistema deseado. Realice el
diagrama de transicin de estados del sistema propuesto.
Solucin
En cada puesto de auto-pago habr un terminal de punto de venta (TPV) con los siguientes elementos:
- Pantalla tctil
- Lector de cdigo de barras
- Lector de tarjetas de banda magntica
- Impresora de recibos
Cada TPV estar conectado al sistema que gestiona la base de datos de existencias, referencias y precios de
los productos, y gestionar la autorizacin para el pago con tarjeta de crdito.
Cuando llegue una nuevo cliente deber pulsar en cliente nuevo en la pantalla. A continuacin se le
indicar que comience a pasar los productos por el lector de cdigos de barras. En la pantalla se presentar
la lista de productos ledos con su referencia y precio. En cualquier momento el cliente podr pulsar
cancelar o ltimo artculo.
Cancelar anula todo el proceso de pago; no se puede cancelar el ltimo artculo que se ha detectado sino
que se deber empezar de nuevo a pasar todos los productos por el lector.
Tras pulsar ltimo artculo la pantalla mostrar el mensaje introduzca tarjeta de crdito. Si el pago es
autorizado se imprimir el recibo y el proceso habr finalizado. Si no se autoriza el pago con la tarjeta
introducida, se mostrar el mensaje tarjeta no vlida, pudiendo el cliente introducir otra tarjeta o cancelar
el proceso.
A continuacin se muestra el Diagrama de Transicin de Estados del sistema descrito:
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Septiembre 2009 mbito
NACIONAL - UE
ORIGINAL
Solucin
2. La lista enlazada es una de las estructuras de datos ms utilizadas en programacin. Bsicamente, se trata de
un conjunto de nodos enlazados. Cada nodo N dispone de dos campos; uno que contiene un elemento de
cierto tipo (en este enunciado supondremos que contiene nmeros enteros) y otro campo que puede: (a)
contener otro nodo N (b) si el nodo N es el ltimo elemento de la lista, no contener nada. Por ejemplo, la
siguiente lista [12, 99, 37] se implementara con una lista enlazada como:
Solucin
3. Su empresa va a acometer el desarrollo de un servicio de Internet para el rea del negocio hotelero. En
concreto, un sistema basado en Web de reservas on-line de alojamientos tursticos. El sistema tendr dos
vistas:
La Operativa de Reservas dar servicios a Usuarios visitantes de la Web interesados por el
alojamiento y la disponibilidad, a Agencias/Clientes operadores que tienen un cupo asignado
durante un perodo de tiempo y negocian con l intermediando con el usuario y, adems, con ella
se realizan los Cobros mediante TPV virtual terminal de punto de venta bajo servidor seguro.
La otra vista es la de Gestin del Sistema que permitir al establecimiento hotelero o administrador
de la Web gestionar la disponibilidad, las tarifas, los cupos, las agencias/clientes, las reservas, hacer
seguimiento, consultas, estadsticas, etc.
Las caractersticas principales del sistema son:
Integracin completa en la Web. Visualizacin del precio desglosado. Pago
Potente e intuitiva consulta de seguro, contratacin segn la Ley de Servicios de
disponibilidad; con calendarios, indicador la Sociedad de la Informacin (L.S.S.I.).
de estado, formulario de bsqueda general Confidencialidad segn LOPD.
e individual, con posibilidad de filtrar los Recepcin inmediata de las solicitudes mediante
resultados por tipo de alojamiento, correo electrnico (con copia para la empresa y
ubicacin, capacidad y habitaciones. copia para el usuario).
Acceso al calendario completo de Una vez verificado el cobro, las reservas se
disponibilidad de cada alojamiento visualizan inmediatamente en pantalla, se
(general o individual). registran on-line, se depositan en una Bandeja de
Planificador de disponibilidad con entrada y se actualiza la disponibilidad. Las
visualizacin de estado por colores, con reservas se gestionan en un formato que permita
filtro de bsqueda y movilidad sobre l por su integracin en cualquier otro sistema de
meses y aos (adelante y hacia atrs). gestin externo.
Ayuda y orientacin de cmo efectuar una Fidelizacin de clientes.
reserva. Acceso a las condiciones
generales de la reserva, clusulas de
cancelacin y preguntas frecuentes.
Evidentemente, para representar el comportamiento de un sistema como ste y en el mbito del anlisis
del dominio, se debera investigar los usos y prcticas comunes al rea de negocio que faciliten la
comprensin del funcionamiento del sistema y de las necesidades del cliente. Falta informacin adicional
como, por ejemplo, cmo se tratan las tarifas en relacin a las temporadas tursticas o a los tipos,
categoras o capacidad de las habitaciones (doble con dos camas o una, especial o junior suite, superior
o suite, etc.) o al rgimen de alojamiento (slo alojamiento, con desayuno, media pensin o pensin
completa).
Piense que, al hacer el anlisis de este sistema, tendr que hacer un modelo que represente cmo se
comporta la totalidad del sistema; en cualquier situacin y para todos los usuarios potenciales.
a) Desarrolle qu informacin debe obtener de su cliente en las sucesivas entrevistas que
mantendr con l. (Por ejemplo, cmo se gestionan los cupos de reservas de las agencias? o se
puede hacer una reserva con habitaciones de distintas categoras? (3 puntos)
b) Con la informacin del enunciado y las conclusiones del punto a), construya un listado lo ms
completo y estructurado posible de los requisitos o especificaciones del producto. (2 puntos)
Solucin
Lo que sigue a continuacin NO son las respuestas que se exigiran al ejercicio, sino que se ha desarrollado
de una manera ms detallada con la intencin de que ilustre al alumno en relacin a las reflexiones,
deducciones y soluciones que se deben aportar durante el proceso de Anlisis de una aplicacin. Se
complementa con el documento Anlisis Reserva Online.pdf. JOS FLIX ESTVARIZ
a) El objetivo principal de la fase de Anlisis es conocer las necesidades del Cliente y entender
correctamente QU tiene que hacer la aplicacin.
Una vez determinado que los destinatarios de la aplicacin (el Cliente) son hoteles particulares
(posiblemente en competencia unos con otros), habr que averiguar en qu consiste la parcela del
rea de negocio en la que va a utilizarse el producto, qu actividad realiza el Cliente y as potenciar
las ventajas que el sistema pueda tener para su negocio. De esta forma, se debera conocer:
Si el hotel tiene Web propia.
Qu servicios se ofrecen en la Web.
Qu servicios ofrece el hotel a sus clientes en general (los de la Web pueden ser slo una
parte).
Si tienen acuerdos con agencias de turismo, cupos, o tratamientos especiales con empresas o
instituciones.
Cmo gestiona, hasta ahora, las reservas, la disponibilidad y la ocupacin de los servicios del
hotel (de manera no informatizada?, con una aplicacin de gestin ya implantado?, con
otra aplicacin de reservas online?)
Si se gestionaba la ocupacin de una manera mixta o no informatizada, est dispuesto a
cambiar sus procedimientos de trabajo para realizar una gestin informatizada y unificada?
De qu manera se hace el mantenimiento de la Web del hotel?
Alrededor del 75% del alojamiento hotelero se contrata a travs de un sistema online de este tipo.
Fundamentalmente consiste en posibilitar, al usuario interesado en el hotel, hacer bsquedas de
disponibilidad de servicios y contratarlos por Internet. Esta descripcin correspondera a la
funcionalidad de los usuarios externos al hotel: la vista Operativa de Reservas. Pero debe haber otra
parte que permita la gestin del producto por parte del hotel: la vista de Gestin del Sistema.
Para cualquiera de las dos vistas, el producto tendr una parte importante invariante y vlida para
todos los hoteles. Otra parte ser la personalizacin para cada hotel. En ningn caso, el desarrollo de
esta parte y el ajuste de la personalizacin deben suponer una carga adicional de trabajo para el hotel.
Para esta parte de personalizacin, es necesario conocer:
Una catalogacin de los servicios del hotel, clasificados por categoras, subcategoras, tipos,
caractersticas e instancias; con la denominacin que utiliza el hotel para cada uno de los
elementos anteriores. De esta manera, la denominacin de un servicio (por ejemplo una
categora determinada de habitacin, que en el hotel se denomina junior suite) aparecer
personalizado.
La mayora de los servicios sern visibles para la reserva online; pero puede que el hotel no
quiera que otros aparezcan. Cules s y cules no?
Cada tipo de servicio tiene asociado un calendario de tarifas. Hay ofertas que son
modificaciones del calendario de tarifas. Sin embargo, los paquetes especiales y las
promociones son ligaduras entre dos o ms servicios a los que se subordina un cambio de
tarifas. Por ejemplo, unas jornadas gastronmicas pueden incluir el servicio de alojamiento
y el de restaurante durante un perodo de tiempo determinado y a un precio especial. Una
promocin de este tipo se ofrece como un servicio ms o se muestra como una variacin de
la tarifa de alojamiento ligada al uso obligatorio del restaurante?
Qu perodo mximo y mnimo se permite en las bsquedas? Para un perodo de tiempo se
permite buscar y reservar subcategoras, tipos o incluso servicios diferentes? Por ejemplo,
una habitacin del hotel y una de apartamento o toda una planta del hotel, dos salas de
reunin y el restaurante para un congreso.
Qu condiciones de cancelacin tiene el hotel? Son nicas o diferenciadas para los distintos
servicios? Las promociones tienen condiciones de cancelacin especiales?
Tiene contratado el Cliente alguna cuenta para servicio de Pago Seguro (por ejemplo
PayPal, BMT Micro, etc.)?
En el transcurso del funcionamiento de la aplicacin, la informacin que se obtiene del hotel
se traduce a un formato interno del sistema de reservas. Es esa copia de los datos del hotel
con la que funciona el sistema y el formato interno de representacin es nico y vlido para
cualquier hotel. Dicho formato ser el que d la mxima compatibilidad y funcionalidad
posible. El usuario visualizar la informacin de la copia que maneja el sistema, pero en los
trminos y con la funcionalidad que utilice y decida el hotel.
En general, habr que averiguar todo lo necesario para poder traducir la informacin que el
hotel ofrezca a los usuarios (y el tratamiento que el Cliente quiera darle) al formato interno y
mecnica de funcionamiento de la parte invariante del producto.
En cuanto a la vista de Gestin del Sistema, la informacin que hay que obtener del Cliente se
refiere a:
Cmo se gestiona internamente la ocupacin del hotel (en lo que se refiere a los servicios
susceptibles de reserva)?
Cuando el hotel lanza un nuevo producto o promocin cmo lo ofrece al pblico? cmo se
ofrece a las agencias? Es posible que el hotel publique una promocin en su Web pero
considere que no es adecuado incluirla en el sistema de reservas es factible que, quien
mantenga la Web del hotel, marque los contenidos que publique con un atributo de
disponibilidad para los usuarios de la reserva?
Qu tratamiento se les da a las agencias y sus cupos, a los clientes especiales, empresas e
instituciones?
De qu manera quiere visualizar el calendario de ocupacin y qu informacin es relevante
para hacer bsquedas en l?
Tiene programas de fidelizacin de sus clientes? Quiere gestionarlos con este producto?
Es socio de la Agencia Espaola de Proteccin de Datos? Tiene intencin de inscribirse?
Los aparatos que van a tener acceso a la aplicacin de reservas tienen un control de la
identidad del usuario? El tratamiento actual de los datos privados de los clientes del hotel
tiene garantas para preservar su confidencialidad?
b) La aplicacin estara integrada en Web y tendra dos vistas: la de los usuarios externos al hotel sera
la vista de la Operativa de Reservas; la del personal autorizado del hotel sera la vista de Gestin
del Sistema.
Los diagramas preliminares DFD de cada vista podran ser estos:
Identificacin
Agencias /
Clientes
Actualizacin / datos cliente
Control
Bsqueda de de entrada
informacin Interfaz de Usuario
Agencias /
Hotel lectura/ Agencia
Clientes
Informacin escritura Cliente
del hotel
Servicios
Solicitud
del hotel squeda
Autorizacin de b
Re
sul
ta
osd
Catlogo Seleccin
de servicios
Peticin de n
a ci
informacin
n firm
Bloqueo / Intrprete Co
Info citada
desbloqueo de E/S
Bloqueo /
soli
Reglas
rm a
desbloqueo
cin
Valores de
bsqueda Contratacin Pasarela
Reglas
os
de pago
ad
lt
su
Motor de
Re
consultas Datos de
compra
Confirmacin
Actualizacin / y datos
Datos cliente
Servidor
seguro
Re
s ul
ta
d
os
Agencias / Seleccin /
Catlogo Calendario Usuarios edicin
clientes y
Peticin de de servicios ocupacin del hotel n
cupos
a ci
informacin
n firm
Intrprete Co
Bloqueo / de E/S
cin desbloqueo
Se Ocupa Us
r
y e vicio Inform reg uario
sta s a istr s
do solicit cin ado
s
a da Valores
V
alore editados
Reglas
bsq s de Editores
ueda
Reglas os
Motor de lt ad
s u
consultas Re
Actualizacin
Bloqueo /
modificacin /
desbloqueo
Solucin
Solucin
Solucin
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Junio 2010 mbito
NACIONAL 1 SEMANA
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.
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
Nombre: Producto
Estructura: Nombre + Identificador + Precio
Nombre: Cliente
Estructura: Nombre + Apellidos + IdDNI + Usuario + Clave + Direccin
3. Un mdulo o una parte de una aplicacin grfica dispone de elementos grficos primitivos como lineas,
cadenas de texto, circulos, superficies, 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, Elem_graf, que recoge las caractersticas comunes de
todos ellos. Los mtodos de Elem_graf 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
Elem_graf cliente no necesita saber la estructura del
-Posicion rbol y le es indiferente tratar con linea
-Color o con texto.
+Dibuja()
Un escaln adicional en el diseo es comprender
que la aplicacin cliente querr manejar dibujos
(agrupaciones o compuestos de los elementos
Linea Superficie Circulo Texto
grficos primitivos) de la misma manera que
+Dibuja() +Dibuja() +Dibuja() +Dibuja()
maneja los elementos primitivos.
Para hacer esto hay varias aproximaciones:
1. La ms simple. Constryase una nueva clase Contenedor 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 linea o circulo. Ahora Contenedor no pertenece a la misma
clase que Elem_graf por lo que habr que reescribir el cdigo del cliente de manera que, en lugar de
invocar ciegamente el Dibuja() de los elementos grficos hijos, haga:
a. Compruebe si est tratando con un Contenedor o un Elem_graf.
b. Si es un Contenedor, obtenga la lista de los hijos contenidos en l e invoque Dibuja()
de cada uno.
Los inconvenientes de esta solucin son que cada cliente debe preocuparse de cmo est hecha la clase
Contenedor e incluir cdigo extra para manejar el hecho de que podra estar utilizndola o podra estar
usando Elem_graf. Adems, un Contenedor no puede contener Contenedores por el mero hecho
de ser una agregacin de Elem_graf.
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 Contenedor se va a denominar,
definitivamente, Dibujo; y es un Elem_graf ms. Por otro lado, Dibujo est compuesto por
cualquier Elem_graf, incluido l mismo. Las ventajas de esta solucin son:
No hay que hacer nada especial para que la clase compuesta (Dibujo) 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 Elem_grafs y tambin otros tipos de Dibujos, porque los
clientes no tienen por qu verse alterados.
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
(Objeto_entorno) son del tipo Dibujo. Tambin aqu hay una serie de elementos simples (como
pueden ser Borde, Icono, Fondo, Etiqueta o Decorador) y otros Elem_compuesto son
compuestos, como Ventana, Cuadro, Marco, Barra, Menu o Boton. As, una Barra de Herramientas
(Barra_herr) es una especializacin de Barra y est compuesto por un Borde y un Fondo, por
Botones y Etiquetas, por Menus deplegables, por Separadores y un Asa (estos ltimos, los
consideramos especializaciones de Decorador). Por ejemplo:
Solucin
a) Clase Contenedor:
0..* -Fin2
b) Patrn de Composicin:
Elem_graf 1..*
-Posicion
-Color
+Dibuja() -Fin2
Objeto_entorno 1..*
-Fin2
Elem_compuesto -Fin1
Borde Etiqueta Fondo Icono Decorador
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.
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).
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
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)
Datos
globales Revisor
: Diccionario : Lista de ortografico
dinamico palabras
: Diccionario
estatico
Proceso Recoge
Inicia
Busca
Obtener palabras Cierra
Inicializa palabras ficheros
diccionarios
Borra
Comprueba diccionarios
Obtener en y palabras
nombre del diccionarios
documento Aplica
Dividir Maneja
reglas palabras
documento
en palabras desconocidas
Aplica Aplica
Construir reglas de reglas de
Obtener estructuras prefijo sufijo
nombres de de datos
diccionarios Enva
palabras a la
salida
Abrir
diccionarios
1 1..*
uses uses
Uso
Uso
Diccionario Diccionario
Iterador Fin1
Fin2 Documento esttico dinmico
1 -Fin3
-Fin8 -Fin7
INGENIERA DEL SOFTWARE
(2 Curso)
Cd. 53210 SISTEMAS
54208 GESTIN
Modelo
Septiembre 2010 mbito
NACIONAL UE
RESERVA
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
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
Solucin
+Dibujar()
+Eliminar()
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_figura = new Circulo()
crea la instancia Mi_figura, de tipo Figura_plana, mediante el constructor de Circulo que es el mtodo
Circulo(), implcito en la clase Circulo.
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_figura, 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_figura es
Figura_plana -enlazado temprano. Sin embargo al invocar, durante la ejecucin, al mtodo
Mi_figura.Dibujar(), el polimorfismo o enlazado dinmico garantiza que el mtodo que
se ejecuta en la invocacin es la especializacin correcta de Circulo Circulo.Dibujar()
puesto que ese es el tipo de Mi_figura.
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)
Supongamos que los valores que pueden tomar las variables del sistema son las siguientes:
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:
Plataforma
FC2_M2=1 P1=-1
horizontal
Sistema 1
Bloqueo P3=-
bloqueado FC3_M2=1
M2=-1 FC2_M2=1
P3=-1
M2=0; FC3_M2=1 P3=1
Desbloqueo M2=1
Plataforma
inclinada
P3=1
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
FC1_M1 =1
M1 =0
FC2_M1 =0
FC1_M2 =1
M2 =0 FC2_M2 =0
FC3_M2 =0
ESTADO 1, ABRIENDO
La accin de la palanca P2 para abrir, permite la MOTORES FINALES DE CARRERA
transicin al movimiento de M2 hasta poner la FC1_M1 =1
plataforma horizontal o hasta que se pulse P2 en M1 =0
FC2_M1 =0
sentido contrario (1):
FC1_M2 =0
M2 =-1 FC2_M2 =0
FC3_M2 =0
ESTADO 2, ABIERTO
MOTORES FINALES DE CARRERA
FC1_M1 =1 Al llegar a la posicin horizontal el motor M2 se detiene y el sistema
M1 =0 queda en el siguiente estado (2, de reposo).
FC2_M1 =0
FC1_M2 =0
M2 =0 FC2_M2 =1
FC3_M2 =0
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:
M1
M2 M3
M4 M5
M6
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
Integracin Descendente
M1
Paso 1
Sust. M2 Sust. M3
M1
M2 M3
Paso 2
Sust. M4 Sust. M5
Sust. M6
M1
M2 M3
Paso 3
M4 M5
M6
Integracin Ascendente
Gestor M2 Gestor M3
Paso 1 M4 M5
M6
Gestor M1
M2 M3
Paso 2
M4 M5
M6
M1
M2 M3
Paso 3
M4 M5
M6
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
S No
desde el principio?
Nmero de elementos de cdigo desechables 5 sustitutos o 3 gestores o
a construir stubs drivers
Facilita el ensayo de situaciones especiales
No S
para los mdulos?
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.
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.
Elem_graf 1..*
-Posicion
-Color
+Dibuja() -Fin2
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_separador es del tipo Decorador. La aplicacin utilizara el mtodo
Mi_separador.Dibuja(). 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
(Objeto_entorno) son una serie de elementos simples: Borde, Icono, Fondo, Etiqueta o
Decorador; y otros Elem_compuesto son agrupaciones de los simples y de s mismos, como
Ventana, Cuadro, Marco, Barra, Menu o Boton. As, una Barra de Herramientas (Barra_herr) es
una especializacin de Barra y est compuesto por un Borde y un Fondo, por Botones y Etiquetas,
por Menus deplegables, por Separadores y un Asa (estos ltimos, los consideramos especializaciones de
Decorador). 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:
Objeto_entorno 1..*
-Fin2
Elem_compuesto -Fin1
Borde Etiqueta Fondo Icono Decorador
Menu_
despl
Objeto_entorno 1..*
-Fin2
Elem_compuesto -Fin1
Borde Etiqueta Fondo Icono Decorador
Menu_
Boton_ despl
Zoom
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
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,
a cenar voy
al restaurante
voy a cenar
cenar voy a
al restaurante
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,
a
arcen
cenar
enarc
voy a cenar 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.
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 *
-Fin2
Solucin
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
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 Modulo1. Para su desarrollo se plantean dos diseos
alternativos:
Diseo 1 Diseo 2
Modulo1
Modulo1
Fecha
1MODULE Modulo1;
2FROM InOut
3 IMPORT WriteCard, WriteString;
4...
5VAR 1MODULE Modulo1;
6 fecha1, fecha2: 2IMPORT Fecha;
Cdigo aproximado en Modula-2
19 WriteCard(fecha1[5], 1);
20 WriteCard(fecha1[6], 1);
21 ...
1DEFINITION MODULE Fecha;
22 (* fecha2 := 10-01-1998 *)
2TYPE Tipo;
23 fecha2[1] := 1;
3PROCEDURE Crear(VAR fecha: Tipo);
24 fecha2[2] := 0;
4PROCEDURE ImprimirAnno(fecha: Tipo);
25 fecha2[3] := 0;
5...
26 fecha2[4] := 1; 6END Fecha.
27 fecha2[5] := 9;
28 fecha2[6] := 8;
29 ...
30END Modulo1.
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.
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 Modulo1
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
Modulo1. 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
Solucin
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.
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.
1. Independencia funcional. (Qu es y cmo se mide. Sntesis de las pginas 150 a 157 del libro)
2. Comprensibilidad.
3. Adaptabilidad
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
Informe Meteorolgico
Preferencias Estaciones
Rutas Horarios
Cliente RENFE
Informe Rutas Verdes
0 Precios
Viajes "Najarra"
Nivel 1: DFD 0
Preferencias
Gestionar
Aconsejar informacin Horarios
Datos RENFE
Rutas RENFE
1 2
Informe Rutas
Precios
Rutas Gestionar
Rutas Rutas
3
Solucin junio, 1 semana, nacional 2012
Solucin
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)
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.
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
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.
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
Nombre: Producto
Estructura: Nombre + Identificador + Precio
Nombre: Cliente
Estructura: Nombre + Apellidos + IdDNI + Usuario + Clave + Direccin
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
Solucin
Solucin septiembre, nacional y Unin Europea, original 2012
Solucin
Disco
0:1 0:N
Intrprete
1:1
1:N
Es interpretado
Se clasifica
1:N
Pertenece
Esta compuesto
1:1
1:1
1:N
Tipo de musica
Discogrfica Artista
Diccionario de datos:
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
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).
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
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
Solucin
Fichero
Entrada Informe
Procesar
Lote fichero
Procesar Movimiento
Cabecera Cuerpo Fin Producto
Leer
Cabecera
Leer Leer
Cuerpo Final
Registro
Procesar
Entrada Salida
Registro
Sumar Restar
Entrada Salidas
s