Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Pág.1
UNIVERSIDAD NACIONAL
AUTONOMA DE HONDURAS
“UNAH”
Presentado Por:
Kevin Balerio Sánchez Aguilar
20151003973
SDLC significa Ciclo de Vida de Desarrollo de Software. SDLC es un proceso que consiste en
una serie de actividades planificadas para desarrollar o alterar los Productos de Software. Este
tutorial le dará una descripción general de los conceptos básicos de SDLC, los modelos de
SDLC disponibles y su aplicación en la industria. Este tutorial también explica otras
metodologías relacionadas como Agile, RAD y Prototyping.
El ciclo de vida del desarrollo de software (SDLC) es un proceso utilizado por la industria del
software para diseñar, desarrollar y probar software de alta calidad. El objetivo de SDLC es
producir un software de alta calidad que cumpla o supere las expectativas del cliente, que se
complete dentro de los plazos y las estimaciones de costos.
SDLC es un marco que define las tareas realizadas en cada paso del proceso de
desarrollo de software.
La siguiente figura es una representación gráfica de las diversas etapas de un SDLC típico.
SRS es la referencia para que los arquitectos de productos presenten la mejor arquitectura para
el producto que se va a desarrollar. De acuerdo con los requisitos especificados en SRS,
generalmente se propone y documenta más de un enfoque de diseño para la arquitectura del
producto en un DDS - Especificación de documento de diseño.
Este DDS es revisado por todas las partes interesadas importantes y se basa en diversos
parámetros como la evaluación de riesgos, la solidez del producto, la modularidad del diseño,
el presupuesto y las limitaciones de tiempo, y se selecciona el mejor enfoque de diseño para el
producto.
Un enfoque de diseño define claramente todos los módulos arquitectónicos del producto junto
con su comunicación y representación de flujo de datos con los módulos externos y de terceros
(si los hay). El diseño interno de todos los módulos de la arquitectura propuesta debe definirse
claramente con el más mínimo detalle en el DDS.
Los desarrolladores deben seguir las pautas de codificación definidas por su organización y las
herramientas de programación como compiladores, intérpretes, depuradores, etc. se utilizan
para generar el código. Se utilizan diferentes lenguajes de programación de alto nivel como C,
C ++, Pascal, Java y PHP para la codificación. El lenguaje de programación se elige con
respecto al tipo de software que se está desarrollando.
Luego, en función de los comentarios, el producto puede lanzarse tal como está o con las
mejoras sugeridas en el segmento de mercado de segmentación. Una vez que el producto se
lanza al mercado, su mantenimiento se realiza para la base de clientes existente.
Modelos SDLC
Hay varios modelos de ciclo de vida de desarrollo de software definidos y diseñados que se
siguen durante el proceso de desarrollo de software. Estos modelos también se conocen como
modelos de procesos de desarrollo de software ". Cada modelo de proceso sigue una serie de
pasos únicos a su tipo para garantizar el éxito en el proceso de desarrollo de software.
Los siguientes son los modelos SDLC más importantes y populares seguidos en la industria &
miuns;
Modelo de cascada
Modelo iterativo
Modelo espiral
Modelo V
Modelo de Big Bang
Otras metodologías relacionadas son el modelo ágil, el modelo RAD, el desarrollo rápido de
aplicaciones y los modelos de creación de prototipos
El modelo de cascada fue el primer modelo de proceso que se introdujo. También se le conoce
como un modelo de ciclo de vida lineal-secuencial . Es muy simple de entender y usar. En un
modelo de cascada, cada fase debe completarse antes de que la siguiente fase pueda comenzar
y no haya superposición en las fases.
El modelo Waterfall es el primer enfoque SDLC que se utilizó para el desarrollo de software.
La siguiente ilustración es una representación de las diferentes fases del Modelo de cascada.
Implementación: con los aportes del diseño del sistema, el sistema se desarrolla
primero en pequeños programas llamados unidades, que se integran en la siguiente
fase. Cada unidad está desarrollada y probada para su funcionalidad, que se conoce
como Unidad de Pruebas.
Mantenimiento: hay algunos problemas que surgen en el entorno del cliente. Para
solucionar esos problemas, se lanzan parches. También para mejorar el producto se
lanzan algunas mejores versiones. El mantenimiento se realiza para entregar estos
cambios en el entorno del cliente.
Todas estas fases están conectadas en cascada entre sí, en las que se ve que el progreso fluye
constantemente hacia abajo (como una cascada) a través de las fases. La siguiente fase se
inicia solo después de que se haya alcanzado el conjunto definido de objetivos para la fase
anterior y se haya cerrado, por lo que se llama "Modelo de cascada". En este modelo, las fases
no se superponen.
El proyecto es corto.
Algunas de las principales ventajas del modelo de cascada son las siguientes:
Fácil de manejar debido a la rigidez del modelo. Cada fase tiene entregables específicos
y un proceso de revisión.
Funciona bien para proyectos más pequeños donde los requisitos se entienden muy
bien.
No se produce ningún software que funcione hasta tarde durante el ciclo de vida.
No es adecuado para los proyectos donde los requisitos tienen un riesgo de cambio de
moderado a alto. Entonces, el riesgo y la incertidumbre son altos con este modelo de
proceso.
La integración se realiza como un "big bang. Al final, que no permite identificar ningún
cuello de botella tecnológico o de negocios o desafíos antes.
Un modelo de ciclo de vida iterativo no intenta comenzar con una especificación completa de
los requisitos. En su lugar, el desarrollo comienza especificando e implementando solo una
parte del software, que luego se revisa para identificar otros requisitos. Este proceso luego se
repite, produciendo una nueva versión del software al final de cada iteración del modelo.
En este modelo incremental, todo el requisito se divide en varias construcciones. Durante cada
iteración, el módulo de desarrollo pasa por las fases de requisitos, diseño, implementación y
prueba. Cada versión posterior del módulo agrega función a la versión anterior. El proceso
continúa hasta que el sistema completo esté listo según el requisito.
Los requisitos principales deben ser definidos; sin embargo, algunas funcionalidades o
mejoras solicitadas pueden evolucionar con el tiempo.
Hay algunas características y objetivos de alto riesgo que pueden cambiar en el futuro.
Las ventajas del modelo SDLC iterativo e incremental son las siguientes:
Los riesgos son identificados y resueltos durante la iteración; y cada iteración es un hito
fácilmente manejado.
Las desventajas del modelo de SDLC iterativo e incremental son las siguientes:
Aunque el costo del cambio es menor, pero no es muy adecuado para los requisitos
cambiantes.
La arquitectura del sistema o los problemas de diseño pueden surgir porque no todos
los requisitos se reúnen al comienzo de todo el ciclo de vida.
El modelo en espiral combina la idea de desarrollo iterativo con los aspectos sistemáticos y
controlados del modelo de cascada. Este modelo en espiral es una combinación de un modelo
de proceso de desarrollo iterativo y un modelo de desarrollo lineal secuencial, es decir, el
modelo de cascada con un gran énfasis en el análisis de riesgos. Permite lanzamientos
incrementales del producto o refinamiento incremental a través de cada iteración alrededor de
la espiral.
Identificación
Esta fase comienza con la recopilación de los requisitos comerciales en la espiral de
referencia. En las espirales posteriores a medida que el producto madura, la identificación de
los requisitos del sistema, los requisitos del subsistema y los requisitos de la unidad se realizan
en esta fase.
Esta fase también incluye comprender los requisitos del sistema mediante la comunicación
continua entre el cliente y el analista del sistema. Al final de la espiral, el producto se
implementa en el mercado identificado.
Diseño
La fase de diseño comienza con el diseño conceptual en la línea de base espiral e incluye el
diseño arquitectónico, el diseño lógico de los módulos, el diseño físico del producto y el
diseño final en las espirales posteriores.
Construir o Construir
La fase de construcción se refiere a la producción del producto de software real en cada
espiral. En la línea de base de la espiral, cuando se piensa en el producto y se está
desarrollando el diseño, se desarrolla un POC (Prueba de concepto) en esta fase para obtener
la opinión del cliente.
Luego, en las espirales posteriores, con mayor claridad en los requisitos y detalles de diseño,
se produce un modelo operativo del software llamado build con un número de versión. Estas
compilaciones se envían al cliente para su retroalimentación.
La siguiente ilustración es una representación del modelo espiral, que enumera las actividades
en cada fase.
Compromiso a largo plazo del proyecto debido a posibles cambios en las prioridades
económicas a medida que los requisitos cambian con el tiempo.
Nueva línea de productos que debe lanzarse en fases para obtener suficientes
comentarios de los clientes.
Este método es consistente con los enfoques que tienen múltiples compilaciones y
lanzamientos de software que permiten realizar una transición ordenada a una actividad de
mantenimiento. Otro aspecto positivo de este método es que el modelo en espiral obliga a una
participación temprana del usuario en el esfuerzo de desarrollo del sistema.
Por otro lado, se necesita una administración muy estricta para completar dichos productos y
existe el riesgo de ejecutar la espiral en un bucle indefinido. Por lo tanto, la disciplina del
cambio y el alcance de recibir solicitudes de cambio es muy importante para desarrollar e
implementar el producto con éxito.
El desarrollo se puede dividir en partes más pequeñas y las partes de riesgo se pueden
desarrollar antes, lo que ayuda a una mejor gestión de riesgos.
No es adecuado para proyectos pequeños o de bajo riesgo y podría ser costoso para
proyectos pequeños.
El proceso es complejo
SDLC - Modelo V
El modelo V es una extensión del modelo de cascada y se basa en la asociación de una fase de
prueba para cada etapa de desarrollo correspondiente. Esto significa que para cada fase del
ciclo de desarrollo, hay una fase de prueba directamente asociada. Este es un modelo
altamente disciplinado y la siguiente fase comienza solo después de completar la fase anterior.
Modelo V - Diseño
Bajo el Modelo V, la fase de prueba correspondiente de la fase de desarrollo se planea en
paralelo. Por lo tanto, hay fases de verificación en un lado de las fases 'V' y validación en el
otro lado. La fase de codificación une los dos lados del V-Model.
Diseño de sistemas
Una vez que tenga los requisitos claros y detallados del producto, es hora de diseñar el sistema
completo. El diseño del sistema comprenderá y detallará la configuración completa de
hardware y comunicación para el producto en desarrollo. El plan de prueba del sistema se
desarrolla en base al diseño del sistema. Hacer esto en una etapa anterior deja más tiempo para
la ejecución de la prueba real más adelante.
Diseño arquitectónico
Las especificaciones arquitectónicas se entienden y diseñan en esta fase. Por lo general, se
propone más de un enfoque técnico y, en función de la viabilidad técnica y financiera, se toma
la decisión final. El diseño del sistema se divide en módulos que toman funcionalidades
diferentes. Esto también se conoce como diseño de alto nivel (HLD) .
Módulo de diseño
En esta fase, se especifica el diseño interno detallado de todos los módulos del sistema,
denominado Diseño de bajo nivel (LLD) . Es importante que el diseño sea compatible con los
otros módulos en la arquitectura del sistema y los otros sistemas externos. Las pruebas
unitarias son una parte esencial de cualquier proceso de desarrollo y ayudan a eliminar las
fallas y errores máximos en una etapa muy temprana. Estas pruebas unitarias pueden diseñarse
en esta etapa basándose en los diseños de los módulos internos.
Fase de codificación
La codificación real de los módulos del sistema diseñados en la fase de diseño se toma en la
fase de codificación. El mejor lenguaje de programación adecuado se decide en función del
sistema y los requisitos arquitectónicos.
La codificación se realiza en base a las pautas y estándares de codificación. El código pasa por
numerosas revisiones de código y está optimizado para obtener el mejor rendimiento antes de
que la compilación final se registre en el repositorio.
Fases de Validación
Las diferentes fases de validación en un modelo V se explican en detalle a continuación.
Examen de la unidad
Las pruebas unitarias diseñadas en la fase de diseño del módulo se ejecutan en el código
durante esta fase de validación. La prueba de unidad es la prueba a nivel de código y ayuda a
eliminar errores en una etapa temprana, aunque todos los defectos no pueden ser descubiertos
por la prueba de unidad.
Pruebas de integración
Las pruebas de integración están asociadas a la fase de diseño arquitectónico. Se realizan
pruebas de integración para probar la coexistencia y comunicación de los módulos internos
dentro del sistema.
Test de aceptación
Las pruebas de aceptación están asociadas con la fase de análisis de los requisitos del negocio
e implican probar el producto en el entorno del usuario. Las pruebas de aceptación descubren
los problemas de compatibilidad con los otros sistemas disponibles en el entorno del
usuario. También descubre problemas no funcionales, como defectos de carga y rendimiento
en el entorno de usuario real.
V- Modelo ─ Aplicación
La aplicación del modelo V es casi la misma que la del modelo en cascada, ya que ambos
modelos son de tipo secuencial. Los requisitos deben ser muy claros antes de que comience el
proyecto, ya que generalmente es costoso volver atrás y hacer cambios. Este modelo se utiliza
en el campo del desarrollo médico, ya que es estrictamente un dominio disciplinado.
Los siguientes punteros son algunos de los escenarios más adecuados para usar la aplicación
V-Model.
El proyecto es corto.
Funciona bien para proyectos más pequeños donde los requisitos se entienden muy
bien.
Fácil de manejar debido a la rigidez del modelo. Cada fase tiene entregables específicos
y un proceso de revisión.
No es adecuado para los proyectos donde los requisitos tienen un riesgo de cambio de
moderado a alto.
Una vez que una aplicación está en la etapa de prueba, es difícil volver atrás y cambiar
una funcionalidad.
No se produce ningún software que funcione hasta tarde durante el ciclo de vida.
El modelo Big Bang es un modelo SDLC en el que no seguimos ningún proceso específico. El
desarrollo comienza con el dinero requerido y los esfuerzos como entrada, y la salida es el
software desarrollado que puede o no ser según los requisitos del cliente. Este modelo de Big
Bang no sigue un proceso / procedimiento y se requiere muy poca planificación. Incluso el
cliente no está seguro de lo que quiere exactamente y los requisitos se implementan sobre la
marcha sin mucho análisis.
Por lo general, este modelo se sigue para proyectos pequeños donde los equipos de desarrollo
son muy pequeños.
Este modelo es ideal para proyectos pequeños con uno o dos desarrolladores trabajando juntos
y también es útil para proyectos académicos o de práctica. Es un modelo ideal para el producto
donde los requisitos no se comprenden bien y no se da la fecha de lanzamiento final.
Sin embargo, el modelo Big Bang es un modelo de muy alto riesgo y los cambios en los
requisitos o los malentendidos pueden incluso llevar a una reversión completa o un raspado
del proyecto. Es ideal para proyectos pequeños o repetitivos con riesgos mínimos.
Fácil de manejar
BIBLIOGRAFIA