Você está na página 1de 20

BLOQUE 1

1. Cules son los bloques temticos que propone el SWEBOK en el campo de la


Ingeniera del Software?
Bloque I Fundamentos de la Ingeniera del Software.
Bloque II Procesos fundamentales de la Ingeniera del Software.
Bloque III Gestin y calidad de la Ingeniera del software.
2. El uso de normas o estndares en el desarrollo de software es importante para
generar productos bien construidos, y como medida para certificar la calidad de los
mimos.
(a1) Enumere 5 organizaciones de estandarizacin:
IEEE (Institute of Electrical & Electronic Engineers).
ACM (Association for Computing Machinery).
OMG (Object Management Group).
W3C (World Wide WEB Consortium).
ISO (International Organization for Standardization).
(a2) Escriba al menos cinco normas o recomendaciones; y (a3) diga la organizacin
que la propone o emite:
XML, XSLT Y HTML W3C
CORBA Y UML OMG
(b1) Describa la metodologa RUP:
Es una metodologa que integra los procesos y herramientas que hay que utilizar
durante todo el ciclo de vida del sistema.
(b2) Sobre qu mtodos de desarrollo est inspirado?
Modelo Iterativo Incremental
(b3) Qu organizacin lo propone?
IBM
(b4) Enumere las 6 caractersticas que lo definen:
1- Modelo iterativo incremental
2- Guiado y controlado por casos de uso
3- Centrado en arquitectura
4- Desarrollo basado en componentes
5- Usa un lenguaje de modelado estndar
6- Es un proceso integrado
3. Describa qu es y en qu consiste un plan TFEA. Realice un dibujo para explicar a
partir del mismo dicho plan:
Un plan TFEA sirve para facilitar la especificacin de aplicaciones, consiste en la
elaboracin de cuestionarios y entrevistas sucesivas con el cliente con el nico fin de
recabar informacin relativa al dominio del problema que tenemos que resolver

4. Cules son las metodologas de desarrollo de software tradicionales (modelos de


ciclo de vida del software)? Enumrelas y describa brevemente cada una de ellas
haciendo uso de un dibujo para dicha descripcin:
- Modelo en cascada: Es un modelo til para problemas poco complejos donde los
requisitos del sistema son claros por parte del cliente, o fcilmente detectables
entre el cliente y el equipo de ingenieros. El cliente no tendr una versin de
trabajo hasta que el proyecto no est bastante avanzado, adems, se tarda
bastante en completar las fases del ciclo de vida del sistema.
- Modelo basado en prototipos: Comienza con la recoleccin de requisitos del
sistema y del software. El cliente, junto con los ingenieros, identifican las
necesidades del sistema en general. El equipo de ingenieros desarrolla un
prototipo el cual no tiene por qu ser el programa definitivo de cmo quedara su
producto.

- Modelo incremental: Est basado en el modelo en cascada aplicado de forma


iterativa durante todo el ciclo de vida del sistema, con la filosofa de generar
prototipos. Cada incremento supone una nueva funcionalidad del sistema, una vez
finalizado un incremento, se entrega in informe tcnico complementario al
producto desarrollado.
- Modelo de desarrollo rpido de aplicaciones:

- Modelo basado en mtodos Funcionales: Sirven como complemento para aadir


semntica a los modelos (diagramas), al igual que lo hace OCL en los diagramas de
clases.
Ejemplos de mtodos funcionales:
Lgica temporal (Unity, TLA)
Especificaciones axiomticas (Lgica de estructuras y ecuacional.
Especificaciones conjuntistas (La notacin formal de z)
lgebra de procesos (CCS, CSP, LOTOS)
Otros formalismos (Mquinas de estado, redes de Petri).
- Modelo en espiral: Es una mezcla de todos los modelos, en l se van refinando
lentamente los requisitos a medida que estos se van descubriendo, ya que es
imposible conocerlos todos desde el principio, es por esto, que la mayora
aparecen en la fase de diseo e implementacin

5. Describa las caractersticas del modelo en cascada para el desarrollo de software.


Qu problemas principales presenta esta metodologa?
Es un modelo que debe ser nicamente utilizado para problemas poco complejos
dnde el cliente tenga claros los requisitos del sistema, o estos sean fcilmente
detectables entre el cliente y el equipo de ingenieros. El cliente no tendr una versin
de trabajo hasta que el proyecto est avanzado y, adems, se tarda bastante en
completar las fases del ciclo de vida del sistema.
6. Describa las caractersticas del modelo basado en prototipos para el desarrollo de
software. En qu situaciones es conveniente utilizar este modelo? Cules son los
inconvenientes que pueden presentarse en su aplicacin?
El modelo basado en prototipos comienza con una recoleccin de requisitos del
software y del sistema. El cliente, junto con el equipo de ingenieros, identifican las
necesidades del sistema en general. El equipo de ingenieros desarrollar un prototipo
del sistema que no tendr por qu ser el producto final.
Es conveniente utilizarlo para el desarrollo de interfaces grficas de usuario.
Posibles INCONVENIENTES:
Cuando se comunica al cliente que hay que redisear el producto para pruebas, este
aprovecha para incorporar nuevas ideas que no estaban contempladas.
Cuando el ingeniero se esmera en ofrecer una versin final sin utilizar adems las
herramientas adecuadas cuando con bocetos visuales es suficiente, adems de ayudar
a identificar nuevos requisitos.
7. Describe las caractersticas del modelo de desarrollo rpido de aplicaciones para el
desarrollo de software. En qu situaciones es conveniente aplicarlo? En qu
situaciones no lo es?
Es conveniente utilizarlo cuando:
- Se trata de aplicaciones a pequea escala (60-90 das)
- Cuando adems de ser un sistema poco complejo, se aprecie una fcil modulacin
del problema

No es conveniente utilizarlo cuando Hay que adoptar herencias de sistemas que


requieren alta interoperabilidad con otros programas existentes en la organizacin

8. Describa las caractersticas del modelo en espiral para el desarrollo de software.


Cul es el principio bsico en el que se basa dicho modelo?
El modelo en espiral est basado en todos los dems modelos, va refinando
lentamente los requisitos del sistema a medida que estos van apareciendo, ya que es
imposible conocerlos todos desde el principio, es por esto que casi todos aparecen en
la fase de diseo e implementacin.
9. Describa las caractersticas del modelo iterativo e incremental para el desarrollo de
software.
El modelo iterativo e incremental est basado en el modelo en cascada aplicado de
forma iterativa durante todo el ciclo de vida del sistema y con la filosofa de generar
prototipos. Cada incremento supone una nueva funcionalidad del sistema. Al finalizar
cada incremento, se entregar un informe tcnico complementando el producto
desarrollado.
10. Enumere cinco casos en los que resulta conveniente utilizar un modelo basado en
mtodos funcionales para llevar a cabo el desarrollo de un sistema software (o de
alguna de sus partes).
Verificacin del software (pruebas de verificacin y validacin)
Consistencia del software (pruebas de consistencia)
Para comprobar que las implementaciones se ajustan a las especificaciones.
Demostrar problemas de seguridad, fiabilidad, etc.
Sistemas crticos, software crtico

BLOQUE 2-CAPITULO IV.

1. Defina en trminos generales qu es un requisito software:


Un requisito software es la capacidad que debe poseer o alcanzar un sistema o
componente de un sistema para satisfacer un contrato estndar, una especificacin u
otro documento formal.
2. Qu es un atributo de un requisito software y cul es su utilidad?
Se denomina atributo de un requisito a cualquier informacin complementaria que se
utiliza para su gestin y se incluye en su especificacin
3. Cules son las actividades de requisitos? Defina brevemente cada una de ellas:
Obtencin de requisitos: Consiste en capturar el propsito y funcionalidades del
sistema desde el punto de vista del usuario
Anlisis de requisitos: Es el proceso de estudiar las necesidades del usuario para
obtener una definicin detallada de los requisitos.
Especificacin de requisitos: Es el proceso de documentar el comportamiento
requerido de un sistema software, a menudo utilizando una notacin de modelado u
otro lenguaje de especificacin
Validacin de requisitos: Consiste en examinar los requisitos para asegurarse de que
definen el sistema que el cliente y los usuarios desean.
4. Qu personas (y con qu rol) participan en las actividades de requisitos?
Los participantes en las actividades de requisitos se denominan actores.
Un actor es un rol perfectamente definido que una persona puede desempear en el
proceso de requisitos, como, por ejemplo, los usuarios, clientes, analistas de mercado,
diseadores, administradores, reguladores, ingenieros
5. Qu significa que un requisito software debe ser verificable?
Que ha de satisfacer esa propiedad/funcionalidad del sistema tal y como fue
especificado. Deben de ser cuantificables (los requisitos) siempre que sea posible y
han evitar especificaciones ambiguas.
6. Qu es y para qu se utiliza el documento de especificacin de requisitos del
software?
El documento de especificacin de requisitos del software contiene un conjunto
exhaustivo y preciso de requisitos modelados en un lenguaje de especificacin y
validados. Sirven como contrato entre lo que desea el cliente y lo que los
desarrolladores se comprometen a construir.
7. Cul es el criterio ms utilizado para la clasificacin de los requisitos? Describa
brevemente cada uno de estos tipos:
El criterio ms utilizado para la clasificacin de requisitos es su funcionalidad.
Un requisito funcional especifica una funcin que un sistema o componente de
un sistema debe ser capaz de llevar a cabo
Un requisito no funcional especifica aspectos tcnicos que debe incluir el
sistema, y que pueden clasificarse en restricciones y calidades.
8. Qu es un requisito funcional? Describa cinco ejemplos dentro del contexto de la
aplicacin software en la que se encontrara cada requisito.
Un requisito funcional especifica una funcin que un sistema o componente de un
sistema debe ser capaz de llevar a cabo. Definen el comportamiento del sistema que
se va a desarrollar y suelen proceder de requisitos de usuario.
Escenario de ejemplo: Negocio de venta y alquiler de herramientas.
- Imprimir contratos de alquiler
- Almacenar la informacin relativa a los contratos de alquiler
- Guardar informacin sobre ventas y pagos
- Seguimiento del estado de los pagos
- Gestin de inventario
9. Qu es un requisito no funcional? Describa cinco ejemplos dentro del contexto de la
aplicacin software en la que se encontrara cada requisito.
Un requisito no funcional especifica aspectos tcnicos que debe incluir el sistema y
que pueden clasificarse en restricciones y calidades. Son difciles de validar y estn
relacionados con el rendimiento, las interfaces externas, mantenimiento, seguridad,
fiabilidad
Escenario de ejemplo: Negocio de venta y alquiler de herramientas.
- Que se pueda ejecutar en diferentes plataformas
- Que el software/sistema est disponible el 95% del da
- Que se rija por MTRICA
- Que el registro de datos personales cumpla con la LOPD.
- Que el sistema est adaptado a minusvlidos
10. Cul es la clasificacin ms amplia de los requisitos no funcionales? Describa
brevemente cada una de las tres categoras:
Requisitos del producto: Detallan limitaciones o funcionalidades exigidas al producto.
Ejemplo: memoria requerida, tiempo de respuesta
Requisitos de la organizacin: Estn relacionados con las normativas de
funcionamiento de la organizacin que lleva a cabo el desarrollo, as como sus
procedimientos y polticas. Ejemplos: Estndares de desarrollo adoptados, formato de
documentacin, plazos de entrega
Requisitos externos: Estn relacionados con aspectos externos al sistema y a su
proceso de desarrollo. Ejemplos: interoperabilidad con otros sistemas, requisitos
legales
11. Cul es el objetico y cules son las tareas principales de la obtencin de requisitos?
La obtencin de requisitos tiene como objetivo determinar cules son los requisitos
del sistema a desarrollar y adquirir conocimiento suficiente sobre el problema a
resolver.
Las tareas principales de la obtencin de requisitos son el establecimiento de las
fuentes de informacin y de las tcnicas de obtencin de requisitos.
12. Qu ventajas aporta el uso de notaciones para la descripcin del modelo
conceptual?
Mejor comprensin de los requisitos
Revela inconsistencias
Permite la discusin entre diferentes actores del proceso a la vista de los
diagramas que representan el modelo.
13. Cules son las notaciones ms utilizadas para el modelado conceptual?
El modelado conceptual permite diferentes notaciones como los casos de uso,
modelos entidad-relacin, diagramas de clases UML, notaciones funcionales
14. Cules son los principales inconvenientes y/o problemas encontrados en la gestin
del proceso de requisitos software?
Grandes presiones, ciclos de desarrollo cortos, mercados competitivos
15. Qu es una lnea base y en qu contexto se utiliza?
Una lnea base es un conjunto de requisitos que deber contener una entrega del
producto. Proporciona un historial de cambios y versiones en caso de que haya
problemas en la gestin de procesos de requisitos.
16. Enumere y describa brevemente tres ejemplos de mtricas de requisitos:
-Tasa de requisitos derivados: Indicador de la explosin de requisitos que se produce
como consecuencia de una especificacin deficiente de los requisitos iniciales.
-Tasa de requisitos incompletos: Aquellos que sern especificados en etapas siguientes
del ciclo de desarrollo.
-Tasa de requisitos probados: Estado actual (en codificacin, codificacin completada,
validacin) de los requisitos no completados.
17. Cules son las ventajas fundamentales que aporta el uso de herramientas en la
gestin de requisitos?
-Facilitan el mantenimiento de los requisitos
-Proporcionan un medio adecuado para el seguimiento de los cambios de los
requisitos durante el desarrollo del proyecto
-Permiten automatizar tareas relacionadas y originadas por estos cambios.
-Reducen costes de especificacin y de desarrollo.
-Minimizan el nmero e impacto de los errores.
-Mejoran la calidad al mejor anlisis y gestin de los requisitos.
-Aumentan la productividad, facilitando la reutilizacin.
-Facilitan la administracin de las especificaciones de requisitos.
-Ayudan a cumplir con los estndares de calidad.
18. Enumere y describa brevemente cinco de las caractersticas ms importantes que
suelen incluir las herramientas para la gestin de requisitos:
1. Permiten gestionar versiones y cambios mediante lneas base
2. Almacenan datos sobre los requisitos (atributos)
3. Permiten enlazar los requisitos con otros elementos (p.e. componentes)
4. Gestionan el estudio de cada uno de los requisitos y proporcionan datos sobre el
nmero de requisitos completados.
5. Permiten crear subconjuntos de requisitos y realizar bsquedas y consultas.
6. Proporcionan control de accesos en la creacin y modificacin de requisitos.

BLOQUE II-CAPTULO V

1. Qu dos acepciones principales tiene el concepto de diseo (dentro del contexto


del diseo del software)?
El diseo del software puede definirse como:
- El proceso para definir la arquitectura, los componentes, las interfaces, y otras
caractersticas de un sistema o componente.
- El resultado del proceso anterior.
2. Defina los tres tipos de abstraccin fundamentales relacionados con el diseo:
- Abstraccin de datos: Define los objetos compuestos por un conjunto de datos.
Ejemplo abstraccin cliente (incluye nombre, direccin, etc.).
- Abstraccin de control: Define un sistema de control de un software sin describir
el funcionamiento interno. Ejemplo: Abstraccin semforo en SSOO.
- Abstraccin procedimental: Define una secuencia de pasos que componen un
proceso determinado. Ejemplo: algoritmo de ordenacin.
3. Describa qu es un componente y qu es una interfaz de un componente:
Un componente es una parte funcional de un sistema que oculta sus detalles de
implementacin proveyendo su realizacin a travs de un conjunto de interfaces.
Una interfaz describe la frontera de comunicacin entre dos entidades software,
definiendo explcitamente el modo en que un componente interacciona con otros.
4. Enumere y describa brevemente cuales son las propiedades fundamentales para
evaluar la modularidad:
-Descomposicin: Permite definir componentes de alto nivel en otros componentes de
bajo nivel (puede ser recursiva).
-Composicin: Inverso a la descomposicin. Un componente preserva esta propiedad
si facilita el diseo de elementos de complejidad mayor mediante su ensamblado
(vinculado con la reutilizacin).
-Comprensin: Facilita el diseo de elementos de programacin que se pueden
interpretar sin conocer el resto de mdulos (muy relacionado con la documentacin).
5. Qu dos conceptos se utilizan para medir la modularidad de un sistema software?
Defina cada uno de estos conceptos:
-Acoplamiento: Mide el grado de interconexin entre los mdulos. Tiene como
objetivo conseguir un acoplamiento bajo.
-Cohesin: Mide el grado en el que los elementos de un mismo mdulo mantienen una
funcionalidad comn. Tiene como objetivo obtener mdulos con alta cohesin
funcional.
6. Describa brevemente cuatro ejemplos de estilos arquitectnicos. Puede hacer unos
de alguna figura para representar su estructura.
-Filtro tubera o procesamiento por lotes: Un componente transforma una entrada en
una salida que, a su vez, es la entrada de otro componente. Sencillo pero inadecuado
para sistemas que necesitan mucha interaccin entre componentes.

-Orientacin a objetos: Se representa a travs de un diagrama de clases. Grafo cuyos


nodos son objetos y los arcos representan los mtodos que comunican a los objetos.

-Control de procesos: Se aaden componentes de control para supervisar el


comportamiento de algunos componentes del sistema.

-Sistemas basados en repositorios o de datos compartidos: Existe una estructura


central de datos a la que acceden los distintos componentes. Es el estado del
repositorio el que marca el flujo del sistema.
7. Describa tres ejemplos de mtodos estructurales para el diseo de software:
- Diagramas de flujo de datos (DFD): Representan los flujos de los datos y las
transformaciones que se aplican sobre ellos.
- Diagramas entidad-relacin (E/R): Modelo conceptual de los datos. Orientado al
diseo de esquemas de bases de datos. Tiene como elementos centrales las
entidades y las relaciones.
- Diccionarios de datos: Contienen los datos utilizados por el sistema. Describen
principalmente la estructura de los datos. Aporta informacin sobre las
restricciones, acceso, autorizaciones, relacin con los usuarios, etc.
8. Qu tcnicas o mtodos se utilizan para describir el comportamiento interno de
cada uno de los mdulos que forman parte del diseo?
- Tablas de transacciones: Definen de forma tabular reglas con acciones a realizar. El
cumplimiento de las reglas depende de las condiciones establecidas a partir de
ciertas variables de entrada.
- rboles de decisin: Similares a las tablas de decisin, pero en forma de rbol.
- Diagramas de estados: Originalmente desarrollados para describir autmatas
finitos. Actualmente, se utilizan en muchas reas.
- Otros modelos de descripcin: Pseudocdigo, diagrama de flujo, etc.
9. Cules son las cuatro propiedades principales de la orientacin a objetos? Defnalas
brevemente:
- Abstraccin: Con el objetivo de reducir la complejidad del dominio. Se representa
haciendo uso del concepto de clase, que describe un conjunto de objetos
concretos llamados instancias. El concepto de clase define las propiedades y
operaciones comunes.
- Herencia: Permite definir una clase a partir de otras existentes. La nueva hereda
las caractersticas de la superclase y puede aadir nuevas caractersticas.
- Encapsulado: Los datos y las operaciones estn organizados para el que use la
clase slo necesite conocer su interfaz pblica.
- Polimorfismo: Permite utilizar el mismo nombre para mtodos que ejecutan
comportamientos diferentes. Pueden ser de tipo esttico o dinmico.
10. De los siguientes tipos de diagramas UML, cules son de estructura (estticos) y
cules de comportamiento (dinmicos)?: despliegue, objetos, casos de uso,
estados, secuencia, interaccin, clases.
Estticos: Despliegue, objetos, clases.
Dinmicos: Casos de uso, estados, secuencia, interaccin.
11. Qu es OCL y qu ventajas aporta su uso?
OCL (Lenguaje de restriccin de objeto) es un lenguaje que extiende la semntica de
los elementos de los modelos UML, que permite definir restricciones y expresiones de
consulta que no pueden ser descritas con la sintaxis de los modelos.
12. Qu diferencia existe entre un patrn de diseo y un modismo de programacin?
Se diferencian en que un patrn de diseo consta de un conjunto de relaciones con sus
clases para modelos orientados a objetos, mientras que un modismo de programacin
consiste en trucos, reglas sobre cdigo en programacin (maneras de expresar lo
mismo).
13. Qu es un patrn de diseo y para qu se utiliza? Describa un ejemplo:
Un patrn de diseo es una solucin a un problema recurrente de carcter general en
trminos de clases, interfaces, objetos e interacciones entre estos elementos.
Un patrn de diseo describe un problema a resolver que ocurre infinidad de veces en
un entorno determinado, as como la solucin al mismo, de tal forma que el modelo
propone volver a utilizar esta solucin las veces que sea necesario sin tener que volver
a pensarlo de nuevo. Ejemplo de patrones de diseo: Observer, Composite, Mediator.
14. Qu tipos principales de patrones de diseo existen? Descrbalos y nombre un
ejemplo de cada uno:
-De creacin: describen soluciones a la hora de crear objetos. Ejemplo: Abstract
Factory.
-Estructurales: ayudan a modelar el modo en que las clases y los objetos se combinan
para dar lugar a estructuras de mayor complejidad. Ejemplo: Composite.
-De comportamiento: Ayudan en el modelado de la comunicacin e interaccin entre
los objetos del sistema. Ejemplo: Observer.
15. A qu nos referimos cuando hablamos del concepto de antipatrn en el diseo
del software?
Un antipatrn trata de prevenir contra errores comunes en el diseo. Describen
problemas que algunos diseos acarrean, en los que los inconvenientes superan a las
ventajas.
16. Qu es un framework y para qu se utiliza? Nombre tres ejemplos de frameworks
relacionados con el diseo y el desarrollo de software:
Un framework es un conjunto de clases, interfaces y sus relaciones que proporcionan
un diseo reusable para un sistema software o parte de un sistema, diseado
especficamente para ser extendido y no como aplicacin final.
Ejemplos: Eclipse, JUnit, Spring, etc.
17. Defina brevemente qu es un plug-in Qu factor principal hay que tener en cuenta
para su implementacin?
Un plug-in es una aplicacin completa, mdulo o componente que interacciona con
una aplicacin anfitriona extendindola o adaptando su comportamiento, pero sin
modificarla.
Para la implementacin de un plug-in hay que seguir el patrn denomidado inversin
de control. La aplicacin anfitriona no tiene que ser modificada, ni conocer los
detalles de su implementacin.
18. Qu es un sistema distribuido? Cules son las motivaciones principales para crear
un sistema distribuido?
Un sistema distribuido es aquel cuyos componentes de hardware o software se
encuentran localizados en diferentes puntos dentro de una red de computadores,
comunicndose y coordinando sus acciones nicamente mediante el paso de
mensajes.
Motivacin para crear un sistema distribuido:
-Razones funcionales: La distribucin es inherente al sistema (web, cliente/servidor,
etc)
-Balanceo de carga en los servidores.
-Fiabilidad: informacin redundante y copias de seguridad.
-Razones econmicas: agrupaciones de clsteres, comparticin de recursos, etc.
BLOQUE II CAPTULO VI

1. Cul es la diferencia entre codificar y construir (dentro del contexto de la


construccin de software)?
Codificar es el proceso de expresar un programa de computador en un lenguaje de
programacin.
Construir consiste en crear software mediante una combinacin de codificacin,
verificacin, pruebas unitarias y depuracin.
2. Qu son los lenguajes de construccin y cules son los tres tipos principales que
existen?
Los lenguajes de construccin incluyen todas las posibles formas de comunicacin
mediante las cuales un humano puede especificar a un computador una solucin
ejecutable a un problema.
Tipos de lenguajes de construccin:
- Lenguajes de configuracin.
- Lenguajes de las cajas de herramientas (toolkits).
- Lenguajes de programacin.
3. Cul es la diferencia entre un lenguaje de programacin de tercera generacin (3GL)
y una de cuarta generacin (4GL)?
- Lenguajes de tercera generacin: Lenguajes de alto nivel. Facilitan la forma de
comunicacin entre los humanos y los computadores (C, C++, Java)
- Lenguajes de cuarta generacin (4GL): No expresan como se deben ejecutar las
acciones, sino qu se debe hacer. Suelen desarrollarse con un propsito especfico
a menudo relacionado con acceso a BD (SQL).
4. Qu es una librera o biblioteca de software?
Una biblioteca de software es una coleccin controlada de software y documentacin
relacionada que ha sido diseada para facilitar el desarrollo, uso o mantenimiento de
software.
5. Cules son los principios fundamentales de la construccin de software?
Descrbalos brevemente:
- Minimizar la complejidad (cdigo dividido en partes, facilitar desarrollo,
comprensin, etc.).
- Anticipar los cambios (identificar los elementos que puedan cambiar/fallar y
separarlos, aislarlos).
- Construir para verificar (construir software buscando errores y solucionando fallos
en la ejecucin).
- Utilizar estndares (conjuntos de especificaciones tcnicas documentadas que
regulan la realizacin de un proceso o fabricacin de un producto, como IEEE,
UML(OMG), etc.).
6. Nombre cinco tcnicas para reducir la complejidad del cdigo.
- Tcnicas de legibilidad
- Uso de elementos de estructuracin (clases, variables, etc.).
- Uso de estructuras de control (for, while, if, etc.).
- Divisin jerrquica del cdigo fuente (Programa > paquetes > clases > Mtodos ...)
- Documentacin del cdigo.
7. En qu consisten las tcnicas de afinacin del cdigo?
Son tcnicas que pretenden mejorar la eficiencia del cdigo cuando el cdigo es
relativamente ineficiente en las que se pueden tomar las siguientes reglas:
- Reglas de cesin de espacio (para ganar tiempo): Usar/Aumentar las estructuras
de datos para reducir el tiempo de acceso.
- Reglas de cesin de tiempo (para ganar espacio): Mtodo contrario al anterior.
8. Segn las recomendaciones estudiadas, Cmo expresaramos un mtodo encargado
de calcular la nota media de un alumno y que recibe como parmetro una constante
de tipo double con un factor de ponderacin? Ponga un ejemplo entre los muchos
posibles y justifique el nombre otorgado.
Un nombre adecuado sera calcularNotaMediaAlumno(double notaMedia) porque no
empieza por mayscula, no tiene verbos conjugados y expresa lo que va a hacer el
mtodo.
9. De qu se encarga el mecanismo de gestin de excepciones?
Se encarga de separar el cdigo de tratamientos de errores del resto para buscar
excepciones. Permiten agrupar y clasificar los diferentes tipos de errores.
10. Dentro del principio de anticiparse a los cambios, cules son los elementos de un
sistema software ms proclives a sufrir cambios?
- Reglas de negocio.
- Dependencias del hardware.
- Entradas y salidas de la aplicacin.
- Dependencias de las extensiones no estndar de los lenguajes de programacin
(de los entornos de programacin)
11. Qu es un estndar y qu dos tipos principales de estndares existen?
Un estndar es un conjunto de especificaciones tcnicas documentadas que regulan la
realizacin de un proceso o la fabricacin de un producto. Pueden ser internos o
externos.
12. Defina brevemente los siguientes conceptos: invariante, precondicin y
postcodicin:
- Invariante: Expresin lgica que debera ser cierta siempre en una parte concreta
de un programa.
- Precondicin: Expresin lgica que establece las propiedades que deben cumplirse
antes de invocar un cdigo.
- Postcondicin: Establece las propiedades que debe garantizar el cdigo al realizar
su ejecucin.
13. En qu consiste el proceso de depuracin dentro de la construccin de software?
Nombra alguna de las tcnicas ms utilizadas.
Depuracin es el proceso de detectar, localizar y corregir fallos de un programa
software.
Algunas de las tcnicas ms utilizadas.
- Puntos de ruptura (breakpoints): La ejecucin se detiene para poder observar el
estudio y resultados del programa.
- Centinelas (watches): Ventanas que permiten observar los valores de las variables.
- Ejecucin paso a paso: Instruccin a instruccin. Ver cmo varan los datos.
- Seguimiento de la ejecucin: Registro de qu instrucciones se estn ejecutando y
en qu secuencia.
- Comprobaciones de escritorio: Ejecuciones manuales de un proceso con un
conjunto de datos de entrada.
BLOQUE II CAPTULO VII

1. Defina qu es un caso de prueba y para qu se utiliza.


Un caso de prueba es un conjunto de entradas, condiciones de ejecucin y resultados
esperados, que han sido desarrollados para un objetivo particular como, por ejemplo,
probar un camino concreto en un programa o verificar el cumplimiento de un
determinado requisito.
2. Qu significado tiene el concepto de prueba exhaustiva?
Se denomina prueba exhaustiva o prueba completa a una prueba ideal que
proporcionar la seguridad de que se han comprobado todas y cada una de las
posibles causas de fallos.
3. Explique la diferencia entre fallo y error dentro del contexto de pruebas de
software.
- Un fallo es un efecto indeseado observado en las funciones o prestaciones
desempeadas por un software.
- Un error (o defecto) es una imperfeccin del software que provoca un
funcionamiento incorrecto del mismo.
4. Cul es la diferencia entre probar y depurar?
- Probar un software es el proceso de mostrar la presencia de un error en el mismo.
- Depurar un software consiste en descubrir en qu lugar exacto se encuentra el
error y modificar el software para eliminarlo
5. Qu es un orculo dentro del contexto de pruebas de software?
Un orculo es cualquier agente (humano o no) capaz de decidir si un programa se
comporta correctamente durante una prueba y, por tanto, capaz de dictaminar si la
prueba ha sido superada.

6. Por qu la seleccin de los equipos de prueba puede ser una limitacin en el


proceso de pruebas?
Las pruebas deben ser realizadas por personas independientes del software e
imparciales, para crear pruebas variadas y no condicionadas. Es difcil tener acceso a
este tipo de recursos (sobre todo en equipos de desarrollo pequeos).
7. Enumere y describa brevemente los tres tipos de riesgos (vistos en clase) que asume
una organizacin de desarrollo de software si no realiza correctamente el proceso de
pruebas:
- Deterioro de su imagen: es difcil de medir, pero puede daar ms a una
compaa que otras causas.
- Prdidas econmicas: Cuando no existe proporcionalidad entre el tamao del
error y la cantidad de dinero afectada
- Consecuencias legales: costes econmicos para las indemnizaciones y
reparaciones, as como prdida de licencias de explotacin, responsabilidades
penales, etc.

8. Cules son las diferencias entre las pruebas de caja blanca y las pruebas de caja
negra?
Las pruebas de caja blanca estn basadas en informacin sobre el diseo o
programado del software, mientras que las pruebas de caja negra estn basadas
nicamente en el comportamiento de la entrada y salida de datos.
9. Qu significa el concepto de cobertura dentro del contexto de pruebas del
software?
Es una medida porcentual que indica la cantidad de cdigo que ha sido probado.
10. Qu tipo de pruebas existen segn el objeto (elemento que se est probando)?
Describa brevemente cada tipo de prueba:
- Pruebas unitarias: Es un componente software especficamente creado para
verificar el comportamiento de otro componente del sistema
- Pruebas de integracin: Comprueba si los componentes individuales tambin
funcionan correctamente en conjuncin con otros.
- Pruebas del sistema: Se realizan despus de las pruebas unitarias y las pruebas de
integracin. Se trabaja con el equipo de desarrollo al completo. Se pueden
considerar pruebas de caja negra.
11. Qu es JUnit y cmo puede ser til dentro del proceso de pruebas en el desarrollo
de una aplicacin software?
JUnit es un framework abierto para realizar pruebas en java. Es un conjunto de clases
Java que permiten probar clases de este mismo lenguaje segn el modelo de caja
negra.

BLOQUE II CAPTULO VIII

1. Qu significa el concepto de mantenimiento de software?


El mantenimiento del software es la modificacin de un producto software despus de
la entrega para corregir fallos, para mejorar su rendimiento u otros atributos, o para
adaptar el producto a un entorno modificado.
Mantenimiento del software son la totalidad de actividades necesarias para
proporcionar un soporte rentable al sistema software, tanto antes como despus de la
entrega.
2. Describa brevemente los dos conceptos que, de forma combinada, constituyen la
facilidad de mantenimiento:
Un sistema software es reparable si permite la correccin de sus defectos con una
cantidad de trabajo limitada y razonable.
Un sistema software es flexible si permite la introduccin de cambios para satisfacer
nuevos requisitos, es decir, si puede evolucionar.
3. Cul es la diferencia entre mantenimiento del software y evolucin del software?
El mantenimiento del software es la modificacin de un producto software despus de
la entrega para corregir fallos, para mejorar su rendimiento u otros atributos, o para
adaptar el producto a un entorno modificado. Mientras que evolucin del software es
el conjunto de todas las actividades de programacin que se orientan a generar una
nueva versin de un software a partir de una versin anterior operativa.
4. Defina brevemente las tres tcnicas principales vistas en clase para llevar a cabo el
mantenimiento del software:
- La ingeniera inversa: Consiste en analizar un sistema para identificar sus
componentes y las relaciones entre ellos, as como para crear nuevas
representaciones del mismo, generalmente en un nivel de abstraccin ms
elevado.
- La reingeniera: Consiste en la modificacin de componentes software en la que se
emplean tcnicas de ingeniera inversa para su anlisis, y herramientas de
ingeniera directa para su construccin. Los cambios suelen estar dirigidos a
facilitar el mantenimiento, aumentar la reutilizacin, mejorar la comprensin o
facilitar su evolucin.
- La reestructuracin (refactoring): Consiste en el cambio de representacin de un
producto software, pero manteniendo el mismo nivel de abstraccin.
5. En qu consiste el proceso de ingeniera inversa? Describa brevemente un ejemplo:
Ejemplo: Obtener un diagrama de clases a partir del cdigo fuente.
6. En qu consiste el proceso de reingeniera? Describa brevemente un ejemplo:
Ejemplo: Modificar todos los mtodos que tengan relacin con ms de un mdulo del
sistema. Para ello, realizar un diagrama de clases que represente las relaciones entre
los mdulos.
7. En qu consiste el proceso de reestructuracin (refactoring)? Describa brevemente
un ejemplo:
Ejemplo: Modificar un diagrama de clases para simplificar los nombres de los mtodos
y para dividir clases complejas en varias clases ms simples.

BLOQUE III CAPTULO IX

1. Describa brevemente cinco prcticas o principios que pueden aplicarse en el


desarrollo de software para conseguir productos de calidad:
- Apreciar el trabajo de la gente.
- El factor ms importante en la calidad del software es que el cliente est implicado
en el desarrollo.
- Tener el mismo concepto del producto final que el que tiene el cliente.
- Gestionar correctamente los defectos del software y las solicitudes de cambios.
- No se puede combinar todo a la vez. Hay que identificar los cambios prioritarios y
aplicarlos lo antes posible
2. Describa brevemente los cuatro tipos de costes asociados a la obtencin de calidad
en el desarrollo de software:
- Costes de prevencin: Derivados de controlar que el proceso de produccin se
atenga a los criterios de calidad establecidos previendo la aparicin de defectos.
Ejemplos: planificacin de las actividades de calidad, formacin de nuevos
integrantes, etc.
- Costes de evaluacin de la calidad: Asociados con las actividades de verificacin de
la calidad. Ejemplos: Comprobar que se cumple con los requisitos de calidad
establecidos, inspeccionar el producto entregado, etc.
- Coste de los fallos internos: Producidos como consecuencia de las tareas de
deteccin y reparacin de defectos internos (existen antes de ser entregados a los
usuarios) del software. Ejemplos: correccin de errores para reutilizacin, revisin
del producto, etc.
- Coste de los fallos externos: Derivados de corregir los fallos encontrados en el
software despus de ser entregado al cliente. Ejemplos: Anlisis del software a
partir de una reclamacin por parte del cliente, reemplazo del producto y
reparaciones, etc.
3. Cules son los tres modelos de calidad ms importantes estudiados y que se utilizan
para medir la calidad del software? Nombre seis factores de calidad que estn
contemplados en ellos (los factores o atributos pueden pertenecer a distintos
modelos, pero no pueden coincidir):
- Modelo de calidad de McCall.
- Modelo de calidad de Bohm.
- Modelo de calidad ISO/IEC 9126.
- Factores de calidad: funcionalidad, fiabilidad, usabilidad, eficiencia, facilidad de
mantenimiento y portabilidad.
4. Describa las tres perspectivas del modelo de calidad de McCall:
- Revisin del producto: Estudia la capacidad del producto para adaptarse a los
cambios. Se tienen en cuenta factores tales como: facilidad de mantenimiento,
flexibilidad, facilidad de evaluacin
- Transmisin del producto: Identifica los factores de calidad que influyen en la
capacidad para adaptarse a distintos contextos de operacin. Se tienen en cuenta
factores tales como: reusabilidad, portabilidad, interoperabilidad.
- Operacin del producto: Identifica aquellos factores de calidad que tienen que ver
con la forma en que el software lleva a cabo sus funcionalidades y la medida en
que cumple con las especificaciones. Se tienen en cuenta factores tales como:
correccin, fiabilidad, eficiencia, integridad, usabilidad
5. Qu concepto introduce el modelo de calidad de Bohm? Describa brevemente los
tres tipos que se establecen relacionados con dicho concepto:
El modelo de calidad de Bohm introduce como concepto fundamental las utilidades
principales, reconocimiento explcito para que un software sea considerado de calidad.
Las tres utilidades de alto nivel son:
- Utilidad tal y como est: Representa el estado actual del software en relacin a su
facilidad de uso, su fiabilidad y eficiencia.
- Facilidad de mantenimiento: Facilidad para identificar qu es necesario modificar,
as como la facilidad de modificacin o de ejecucin de las pruebas.
- Portabilidad: Facilidad para utilizar el software en un nuevo entorno.
6. Cules son los documentos que forman el estndar de calidad ISO/IEC 9126?
Describa brevemente qu contiene cada documento.
El estndar ISO/IEC 9126 se divide en cuatro partes:
-Modelo de calidad (ISO/IEC 9126-1: 2001): Establece el modelo de calidad. Define seis
caractersticas de calidad del software: funcionalidad, fiabilidad, usabilidad, eficiencia,
facilidad de mantenimiento y portabilidad.
-Mtricas externas (ISO/IEC TR 9126-2: 2003): Conjunto de mtricas que miden las
caractersticas de calidad externas definidas en el modelo. Miden el comportamiento
del sistema en su conjunto.
-Mtricas internas (ISO/IEC TR 9126-3:2003): Mtricas para medir aquellas
caractersticas internas definidas en el modelo de calidad. Miden el propio software.
-Calidad en las mtricas de uso (ISO/IEC TR 9126-4: 2004): Identifica las mtricas que
permitirn medir la calidad desde el punto de vista del usuario. Cuatro caractersticas:
efectividad, productividad, seguridad y satisfaccin.
7. Qu es un modelo de madurez? Cules son las diferencias principales entre los dos
modelos de representacin de CMMI?
Modelo de madurez: Conjunto de caractersticas que describen ciertos aspectos de
equilibrio, experiencia y formalidad en una organizacin.
Representacin continua Representacin por etapas
Niveles de capacitacin. Niveles de madurez.
La organizacin selecciona reas de La organizacin selecciona reas de
proceso y niveles de capacitacin en proceso en funcin de los niveles de
funcin de sus objetivos de mejora. madurez.
Las mejoras se miden utilizando 6 niveles Las mejoras se miden mediante 5
de capacitacin (0. incompleto, 1. niveles de madurez (1. Inicial, 2.
Realizado, 2. Gestionado, 3. Definido, 4. Repetible, 3. Definido, 4. Gestionado, 5.
Gestionado cuantitativamente, 5. En Optimizacin) que miden un conjunto
optimizacin) que miden la madurez de de procesos.
un proceso concreto.
Se emplean perfiles de nivel de Se emplean niveles de madurez para
capacitacin para fijar los objetivos y fijar los objetivos y corregir el
corregir el rendimiento. rendimiento.
Las tablas de equivalencias permiten a No son necesarios mecanismos de
una organizacin que usa esta equivalencia para calcular el nivel de
representacin deducir su nivel de madurez de la organizacin.
madurez.

8. Defina brevemente en qu consiste PSP y TSP. Cmo pueden ser utilizados de forma
conjunta con CMMI?
- El proceso de software personal (PSP) fue diseado para controlar, gestionar y
mejorar la forma de trabajo individual de los ingenieros de software. Describe
prcticas para el desarrollo individual de programas pequeos. Aplica las ideas de
CMMI al trabajo individual.
- El Team Software Process (TSP) fue creado para proporcionar un entorno de
trabajo en equipo que de soporte al proceso de software personal (PSP) y que
ayude a contribuir y mantener equipos de trabajo autodirigidos. Aplica las ideas de
CMMI al trabajo colectivo.
9. Qu es ITIL y para qu se utiliza?
ITIL es un modelo de gestin de servicios de tecnologas de la informacin ms
aceptado actualmente. Est formado por un conjunto de documentos de buenas
prcticas para facilitar la implementacin.

BLOQUE III - CAPTULO X

1. Enumere y describa brevemente los cinco procesos principales dentro de la gestin


de proyectos software:
Iniciacin y alcance del proyecto: actividades necesarias para decidir si el proyecto
debe llevarse a cabo. Ejemplos: Determinacin y alcance de los objetivos, estudios de
viabilidad del proyecto, etc.
Planificacin del proyecto: Actividades de preparacin del proyecto. Ejemplos:
Planificacin del proceso (ciclo de vida y herramientas), determinacin de entregables,
estimacin de costes y plazos, etc.
Seguimiento del proyecto: actividades de control del proyecto. Ejemplos: acciones
correctivas si la planificacin y el estado actual no coinciden, mantener alta la moral y
productividad del equipo
Revisin y evaluacin del proyecto: Analizar si los requisitos han sido satisfechos,
analizar la eficiencia y eficacia con la que se ha llevado a cabo el proyecto, etc.
Cierre del proyecto: analizar post-mortem el proyecto, aprender de los errores y
analizar posibles mejoras de cara a futuros proyectos.
2. Qu tres parmetros principales definen un proyecto software y deben balancearse
en un proyecto para que se realice de forma correcta?
- La funcionalidad que el sistema debe proporcionar
- El plazo en el que se debe desarrollar
- Los recursos de los que dispone llevarlo a cabo.
3. Defina los conceptos estimar, sobrestimar y subestimar:
Estimacin: Proceso para determinar una variable conocida a partir de otras
conocidas.
Subestimar: Probables prdidas para la organizacin. No se pueden dedicar los
recursos necesarios, retrasos en el proyecto, calidad inferior a la requerida, horas extra
del personal, etc.
Sobrestimar: el trabajo se expande hasta rellenar todo el volumen disponible.
Posible prdida del concurso o licitacin del proyecto.
4. Describa un mtodo para realizar una estimacin mediante el juicio de expertos:
Mtodo Delphi:
- Creado en 1940 en mbito militar y formalizado por Bohm en 1981.
- Un coordinador proporciona a cada experto una especificacin y un formulario
- Reunin para intercambiar opiniones sobre la estimacin
- Al final de la reunin, cada experto rellena su formulario de forma annima
- El coordinador proporciona un resumen de la estimacin y se organizan nuevas
reuniones para debatir las estimaciones de la ronda anterior hasta que no son
necesarias ms revisiones.
5. Describa los cinco tipos de puntos de funcin no ajustados que considera IFPUG.
- Entradas externas: entradas de usuario.
- Salidas externas: informacin ofrecida al usuario.
- Consultas: entradas interactivas con respuesta del sistema.
- Ficheros externos: interfaces con otros sistemas.
- Ficheros internos: entidades persistentes gestionadas por el sistema.
6. De forma genrica. cmo realizan la estimacin los modelos algortmicos o
paramtricos? Qu dos tipos de estos modelos existen?
- Representan relaciones (en forma de ecuaciones) entre variables, generalmente
entre el esfuerzo y el tamao del software.
- Tambin incluyen otras caractersticas relacionadas con la complejidad y la
organizacin del proyecto.
- Clasificacin:
Abiertos (pblicos o de caja blanca): Se conocen las ecuaciones que los
componen Tcnicas estadsticas de regresin, SLIM, COCOMO, puntos de
funcin, etc.
Cerrados (propietarios o de caja negra): una institucin comercializa la
herramienta de estimacin sin publicar las ecuaciones PRICE-S, SEER-SEM,
CHECKPOINT, etc.
7. Describa un ejemplo de mtodo para realizar una estimacin con un modelo basado
en inteligencia artificial:
Razonamiento basado en casos: Replicar el proceso que lleva a cabo un experto.
- Encontrar proyectos similares respecto a los datos del proyecto a estimar (por
ejemplo, con la distancia eucldea)
- Estimar parmetros desconocidos haciendo uso de: media, regresiones, otras
operaciones estadsticas/matemticas.

Você também pode gostar