DE
INGENIERIA DE SOFTWARE
AO: 2016
PRIMERA PARTE.
PREGUNTAS TERICAS (25 PUNTOS CADA UNA)
Un marco de referencia que contiene los procesos, las actividades y las tareas
involucradas en el desarrollo, la explotacin y el mantenimiento de un producto de
software, abarcando la vida del sistema desde la definicin de los requisitos hasta la
finalizacin de su uso ISO 12207-1
CASCADA
Las fases del ciclo de vida (requisitos, anlisis, diseo, etc.) se realizan (en teora) de
manera lineal, una nica vez, y el inicio de una fase no comienza hasta que termina la
fase anterior.
El ciclo de vida ms criticado en los ltimos aos, la mayora de las veces, que no todas,
con razn. En muchos proyectos su implantacin ha sido un fracaso, mientras que hay
otros proyectos que trabajarn perfectamente de esta manera.
ESPIRAL
Para resolver los anteriores problemas, en 1984 Boehm presenta el ciclo de vida en
espiral, en el que cada una de las fases del cascada termina con una evaluacin de
riesgos y un prototipo.
Los prototipos permiten a los usuarios determinar si el proyecto continua, debe volver a
fases anteriores, o debe terminar. Sin embargo, las fases son todava lineales, los
requisitos se realizan en la fase de requisitos, el diseo en la fase de diseo, y as
sucesivamente.
INCREMENTAL
Cada iteracin (una iteracin es un periodo de tiempo, no confundir con el ciclo de vida
iterativo, que veremos luego, siendo este uno de los principales los que vienen de
definiciones confusas) contiene las fases del cascada estndar, pero cada iteracin
trabaja sobre un sub conjunto de funcionalidad. La entrega total del proyecto se divide
en subsistemas priorizados.
Desarrollar por partes el producto software, para despus integrarlas a medida que se
completan. Un ejemplo de un desarrollo puramente incremental puede ser la agregacin
de mdulos en diferentes fases. El agregar cada vez ms funcionalidad al sistema.
ITERATIVO
ITERATIVO E INCREMENTAL
El ciclo de vida iterativo e incremental es una de las buenas prcticas de ingeniera del
software ms antiguas, su primer uso en el software se data en los 50 (te dejo este post
donde hablamos del tema).
Adems, el ciclo de vida iterativo e incremental es una de las bases de un proyecto gil,
ms concretamente, con iteraciones cortas en tiempo, de pocas semanas, normalmente
un mes y raramente ms de dos.
Yendo a una definicin de mnimos, sera un ciclo de vida iterativo e incremental, con
iteraciones cortas (semanas) y sin que dentro de cada iteracin tenga porque haber fases
lineales (tipo cascada).
A partir de la anterior, matizaciones, adaptaciones, etc., hay por cada metodologa gil
que existe.
Pero, como comentaba, ada metodologa de las llamadas giles, FDD, Crystal, DSDM,
XP, etc., matizar su ciclo de vida.
La fase de Plantificacin del Software comprende las etapas de Ingeniera del Sistema o
Anlisis del Sistema, en concreto el establecimiento de los Requisitos del Software o
Plan Software; y el Anlisis de los Requisitos del Software, que se traduce en una
Especificacin de Requisitos.
Se debe tener tener en cuenta cuando se informatiza un problema que existen tareas
manuales que se deben tratar dentro del sistema. Es decir, el anlisis del sistema
comprende el tratamiento de todas las tareas manuales e informticas que definen el
sistema. Para ello, el ingeniero informtico tendr que estudiar a fondo todo sistema,
especializarse en su terminologa y realizar una interaccin permanente con el cliente, el
experto del sistema u los usuarios de forma que la percepcin que tenga del sistema
coincide con la del cliente, experto y usuario.
El anlisis del sistema es una etapa de la fase de planificacin y en ella se realiza una
descripcin del entorno, software que se quiere obtener y se define los recursos
humanos para su desarrollo, el coste y el calendario estimado.
2. Anlisis del Sistema: Define los flujos de informacin, las estructuras primarias de
datos, las caractersticas funcionales del sistema, los requerimientos de rendimiento y
las restricciones impuestas por el cliente. Asimismo, se incorporarn los criterios
globales de validacin que se utilizarn para probar que los requisitos sealados han
sido implementados.
3. Diseo: Es el primer paso en la fase de desarrollo de cualquier producto o sistema de
ingeniera. Define como el proceso de aplicar distintas tcnicas y principios con el
propsito de definir un dispositivo, proceso o sistemas con los suficientes detalles como
para permitir su realizacin fsica. El objetivo del diseador es producir un modelo o
representacin de una entidad que ser construida ms adelante. Esta etapa se suele
dividir en dos:
1. Diseo Preliminar
1.1 Diseo de datos.
1.2 Diseo arquitectnico.
1.3 Diseo de la interfaz hombre-mquina.
2. Diseo Detallado
2.1 Diseo Procedimental
4. Calificacin: Esta etapa tiene por fin traducir en una forma legible para la
computadora el diseo desarrollado en la etapa anterior. Esta actividad implica la
creacin de programas informticos aplicar las estructuras de programacin de algn
paradigma y utilizando un lenguaje apropiado de programacin. Como producto de este
proceso se obtiene un listado fuente de los programas que definen el software que se
est desarrollando.
Esta fase comporta diferentes actividades: por un lado comprobar que toda la
documentacin est disponible y es adecuada para las tareas de mantenimiento. y por
otro establecer un esquema de acciones para el caso de error o molificacin del software
y comunicar al usuario esas acciones.
1. Deduzca y justifique en qu casos es mejor aplicar un ciclo de vida en cascada
respecto a uno en espiral y viceversa.
2. D una breve definicin de la fase de diseo. Describa cules son los objetivos
ltimos que se pretende alcanzar con la descomposicin modular del diseo.
Descomposicin modular
Una descomposicin modular debe poseer ciertas cualidades mnimas para que se pueda
considerar suficiente validad.
1. Independencia funcional
2. Acoplamiento
3. Cohesin
4. Comprensibilidad
5. Adaptabilidad
Independencia Funcional
Acoplamiento
Fuerte
Por contenido, cuando desde un mdulo se puede cambiar datos locales de otro.
Comn, se emplea una zona comn de datos a la que tienen acceso
varios mdulos.
Moderado
Dbil
De datos, viene dado por los datos que intercambian los mdulos. Es el mejor.
Sin acoplamiento directo, es el acoplamiento que no existe
Cohesin
Comprensibilidad
Previsin, es necesario prever que aspectos del sistema pueden ser susceptibles de
cambios en el futuro, y poner estos elementos en mdulos independientes, de manera
que su modificacin afecte al menor nmero de mdulos posibles