Вы находитесь на странице: 1из 16

UNIVERSIDAD TECNOLÓGICA DE TABASCO

DIVISIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN Y


COMUNICACIÓN

ASIGNATURA:
OPTATIVA II (INTRODUCCIÓN AL MODELADO DE PROCESOS).

ANÁLISIS DE LOS DIFERENTES CICLOS DE VIDA DEL


SOFTWARE

INTEGRANTES:
ERIC GARCÍA BÁEZ
JUAN CARLOS BENITEZ VAZQUEZ
GIBRAN ISAIAS UICAB HERNANDEZ

CATEDRATICO:
MGTI RAFAEL GONZALO ÁLVAREZ CAMPOS

CUATRIMESTRE: 9° GRUPO: “A”

PERIODO:
MAYO - AGOSTO

PARRILLA, CENTRO, TABASCO, MAYO 2018.


Introducción

El ciclo de vida de desarrollo de Software es el conjunto de etapas donde se


engloban las distintas actividades a realizar, desde el momento en que surge la idea
de crear un nuevo producto software, hasta que el producto deja definitivamente de
ser utilizado por el último de sus usuarios, es decir, desde que “nace” hasta que
“muere“.

Las etapas de un ciclo de vida de desarrollo de Software se resumen en:

 Especificación de requisitos.
 Análisis.
 Diseño.
 Implementación.
 Pruebas.
 Validación.
 Evolución.

El ciclo de vida de un proyecto de software, empieza cuando se da la recolección


de requerimientos para el programa a desarrollar y termina cuando el producto ha
quedado completado y es entregado al cliente que lo pidió. Sin embargo, en el
intermedio, hay una gran cantidad de fases antes mencionadas, por las cuales se
tiene que pasar y cada metodología tiene fases distintas en su ciclo de desarrollo
de programas

Los temas tratados en este análisis, corresponden a los distintos modelos de ciclo
de vida de un software, veremos como se componen, su definición, la necesidad de
adoptarlo, sus características, así como sus ventajas y desventajas de cada uno de
ellos.
Sustento teórico:

Adaptabilidad: Capacidad de un objeto para acomodarse o ajustarse a otro;


Capacidad para acostumbrarse a una situación.

Base de datos: Una base de datos o banco de datos (en ocasiones abreviada con
la sigla BD o con la abreviatura b. d.) es un conjunto de datos pertenecientes a un
mismo contexto y almacenados sistemáticamente para su posterior uso.

Clase: En la programación orientada a objetos, una clase es una construcción que


se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo
describe el estado y el comportamiento que todos los objetos de la clase comparten.

Código: En el caso de la informática, se conoce como código fuente al texto


desarrollado en un lenguaje de programación y que debe ser compilado o
interpretado para poder ejecutarse en una computadora

Metodología: La metodología hace referencia al conjunto de procedimientos


racionales utilizados para alcanzar una gama de objetivos que rigen en una
investigación científica, una exposición doctrinal o tareas que requieran habilidades,
conocimientos o cuidados específicos. Alternativamente puede definirse la
metodología como el estudio o elección de un método pertinente para un
determinado objetivo.

Objeto: En el paradigma de programación orientada a objetos (POO, o bien OOP


en inglés), un objeto se define como la unidad que en tiempo de ejecución realiza
las tareas de un programa. También a un nivel más básico se define como la
instancia de una clase.

Portabilidad: La portabilidad, en informática, se refiere a la capacidad de un


programa o sistema de ejecutarse en diferentes plataformas o arquitecturas con
mínimas modificaciones.
La portabilidad, en cuanto al hardware, es la facilidad con que se puede transportar
un dispositivo electrónico (computadora, consola de juego, etc.) y está básicamente
relacionado al peso y las dimensiones del equipo. A menor peso y dimensiones,
más portable es el dispositivo.

Programación: Es el proceso de diseñar, codificar, depurar y mantener el código


fuente de programas computacionales. El código fuente es escrito en un lenguaje
de programación.

Sistema: Un sistema (del latín systēma, proveniente del griego σύστημα) es un


objeto compuesto cuyos componentes se relacionan con al menos algún otro
componente; puede ser material o conceptual.

Software: Conjunto de programas, instrucciones y reglas informáticas para ejecutar


ciertas tareas en una computadora.

Tecnología: es el conjunto de conocimientos técnicos, ordenados científicamente,


que permiten diseñar y crear bienes y servicios que facilitan la adaptación al medio
ambiente y satisfacer tanto las necesidades esenciales como los deseos de las
personas.
Ciclo de vida cascada

Esta metodología es lineal y consta de algunas fases que hay que seguir y
completar para poder avanzar a la fase siguiente. No es precisamente la mejor
metodología, pero si se utiliza de forma correcta los resultados pueden ser muy
buenos. Está compuesta por las siguientes fases:

1. Requerimientos
2. Diseño
3. Implementación y Desarrollo
4. Integración
5. Pruebas o Validación
6. Despliegue o Instalación
7. Mantenimiento

Como se puede ver, el ciclo de vida de un programa realizado bajo la metodología


en cascada, es extenso pero muy bien estructurado. El detalle es que no puedes
saltarte fases ni volver a repetirlas.
Como se menciona, es una metodología lineal en cascada y si no se completa cada
una de las fases al 100%, no es posible avanzar a la fase que sigue, así es como
funciona y se debe seguir al pie de la letra, por muy exagerado que esta parezca.

Con este modelo se tiene un seguimiento de todas las fases del proyecto y del
cumplimiento de todos los objetivos marcados en cada etapa tanto de costos, fechas
de entrega y lo más importante que pueden comprobar al final de cada etapa si el
proyecto cumple todas las necesidades del usuario.

A su vez esto es un problema ya que, si falta una tarea en el desarrollo una vez
pasada esta etapa, el trabajo que hay que realizar se retrasa en fechas de entrega
y el costo es mayor. Por lo tanto, esto produce un fracaso a las modificaciones de
última hora.

Características:

 Es el más utilizado.
 Es una visión del proceso de desarrollo de software como una sucesión de
etapas que produce productos intermedios.
 Si se cambia el orden de las fases, el producto final será de inferior calidad.

Ventajas:

 Es un modelo sencillo y disciplinado.


 Es fácil aprender a utilizarlo y comprender su funcionamiento.
 Está dirigido por los tipos de documentos y resultados que deben obtenerse
al final de cada etapa.
 Ha sido muy usado y, por tanto, está ampliamente contrastado.
 Ayuda a detectar errores en las primeras etapas a bajo costo.
 Ayuda a minimizar los gastos de planificación, pues se realiza sin problemas.
Desventajas:

 Los proyectos raramente siguen el proceso lineal tal como se definía


originalmente el ciclo de vida.
 Es difícil que el cliente exponga explícitamente todos los requisitos al
principio.
 El cliente debe tener paciencia pues obtendrá el producto al final del ciclo de
vida.
 No refleja exactamente cómo se programa realmente el sistema, en el que
suele haber un gran componente iterativo.
 Puede resultar complicado regresar a etapas anteriores (ya acabadas) para
realizar correcciones.
 El producto final obtenido puede que no refleje todos los requisitos del
usuario.

Ciclo de vida en V

El modelo en V es una variación del modelo en cascada que muestra cómo se


relacionan las actividades de prueba con el análisis y el diseño.
La unión mediante líneas discontinuas entre las fases de la parte izquierda y las
pruebas de la derecha representa una doble información. Por un lado, sirve para
indicar en qué fase de desarrollo se deben definir las pruebas correspondientes. Por
otro sirve para saber a qué fase de desarrollo hay que volver si se encuentran fallos
en las pruebas correspondientes.

Características:

 Minimización de los riesgos del proyecto.


 Mejora y garantía de calidad.
 Reducción de los gastos totales durante todo el proyecto y sistema de ciclo
de vida.
 Mejora la comunicación entre todos los inversionistas.

Ventajas:

 La relación entre las etapas de desarrollo y los distintos tipos de pruebas


facilitan la localización de fallos.
 Es un modelo sencillo y de fácil aprendizaje.
 Hace explícito parte de la iteración y trabajo que hay que revisar.
 Especifica bien los roles de los distintos tipos de pruebas a realizar.
 Involucra al usuario en las pruebas.

Desventajas:

 Es difícil que el cliente exponga explícitamente todos los requisitos.


 El cliente debe tener paciencia pues obtendrá el producto al final del ciclo de
vida.
 Las pruebas pueden ser caras y, a veces, no lo suficientemente efectivas.
 El producto final obtenido puede que no refleje todos los requisitos del
usuario.
Ciclo de vida Evolutivo

Este modelo es muy utilizado, puesto que uno puede apreciar directamente la
evolución del proyecto a realizar.

En este modelo, los requerimientos del usuario pueden cambiar desde el inicio. En
este caso es difícil mantener la misma idea desde el principio, ya que el cliente
puede cambiar los requerimientos de éste mismo conforme se vaya a desarrollando.

Uno de los puntos en contra de este modelo, es que el cliente no puede transmitirte
a la primera lo que es todos los requerimientos, y puede ir cambiando a cómo vaya
cambiando el tiempo. Conforme el tiempo vaya avanzando, pueden surgir nuevos
requerimientos, y tendrían que ser anexados nuevamente al desarrollo del proyecto.

Este modelo nos es muy útil cuando desconocemos por completo los
requerimientos, sin embargo, el desarrollo de software con este modelo, requiere
un especial cuidado en la manipulación de documentos, programas, etc,
desarrollados para distintas versiones del software.

Fases del modelo

A continuación, se aprecian los pasos del modelo evolutivo:

1. Especificación inicial. Definición del problema y especificación inicial en


base a los requerimientos definidos
2. Desarrollo del producto. Desarrollo del software en base a un proceso con
énfasis a la rapidez de la liberación.
3. Implementación de uso y evaluación. Implantación y uso del software, en
ambiente de explotación, monitoreo de nuevos requerimientos.
4. Re-especificación. Re-definición del problema en base a los nuevos
requerimientos.
5. Versiones del Software.

Características:

 Es evolutivo
 Posee un enfoque evolutivo para la creación de software
 Comienza con la identificación de las clases más importantes
 Examina los datos que se van a manejar
 Permite la reutilización del software
 El ensamblaje de los componentes reduce el 70 del 100% del tiempo del ciclo
del desarrollo del software y un 84 del 100% del costo del proyecto.

Ventajas:

 Este modelo puede ser cambiado en cualquier momento.


 Es muy útil cuando desconocemos la mayoría de las solicitudes iniciales o
cuando los requerimientos no están completos.

Desventajas:

 Modelo evolutivo asume que las necesidades no son completamente


conocidos al inicio del proyecto.
 El desarrollo de software en forma evolutiva requiere un especial cuidado en
la manipulación de documentos, programas, etc. desarrollados para distintas
versiones del software.
Ciclo de vida en Espiral

El modelo espiral en ingeniería del software tiene un enfoque muy distinto al modelo
de cascada, principalmente porque su enfoque va dirigido hacia el análisis de
riesgos. El modelo de ciclo de vida en espiral, consiste en realizar diversas
iteraciones, pasando por cada una de sus fases una y otra vez. A diferencia del
modelo de cascada que no tiene vuelta atrás, en el modelo en espiral se pueden
hacer las iteraciones que se consideren necesarias y estas son sus fases
principales:

1. Determinación de Objetivos

2. Análisis de riesgos

3. Desarrollo y Pruebas

4. Planificación

Entre las principales ventajas de desarrollar un proyecto con el modelo espiral, es


que los riesgos se van disminuyendo conforme avanzan los ciclos o iteraciones, de
hecho, no puedes avanzar a un ciclo nuevo, si no se ha dado solución a todos los
riesgos latentes. Lamentablemente el modelo es realmente costoso y para que
puedas tener un alto nivel de eficacia en la evaluación final de tu proyecto con este
ciclo de vida, necesitas que tu equipo tenga un gran nivel de conocimientos y si es
posible buena experiencia para superar cualquier riesgo al cual se puedan enfrentar.
Características:

 En cada giro se construye un nuevo modelo del sistema completo.


 Es el mejor modelo para el desarrollo de grandes sistemas.
 Este modelo puede combinarse con otros modelos de proceso de desarrollo.

Ventajas:

 Incorpora muchas de las ventajas de los otros ciclos de vida.


 Conjuga la naturaleza iterativa de los prototipos con los aspectos controlados
y sistemáticos del modelo clásico.
 Proporciona el potencial para el desarrollo rápido de versiones
incrementales.
 Puede adaptarse y aplicarse a lo largo de la vida del software.
 Es un enfoque realista del desarrollo del software.
 Permite aplicar el enfoque de construcción de prototipos en cualquier
momento para reducir riesgos.
 Reduce los riesgos antes de que se conviertan en problemáticos.
 Controla muy bien los riesgos y mientras más iteraciones se realicen, menos
riesgos habrá.
 Monitoriza y controla los riesgos continuamente.

Desventajas:

 Puede resultar difícil convencer a algunos clientes de que el enfoque


evolutivo es controlable.
 Solo resulta aplicable para proyectos de gran tamaño.
 Supone una carga de trabajo adicional, no presente en otros ciclos de vida.
 Requiere una considerable habilidad para la evaluación y resolución del
riesgo, y se basa en esta habilidad para el éxito.
 Si un riesgo importante no es descubierto y gestionado, indudablemente
surgirán problemas.
 Es bastante complicado de realizar y su complejidad puede incrementarse
hasta hacerlo impracticable.
 El modelo no se ha utilizado tanto como otros, por lo que tendrán que pasar
años antes de que determine con certeza la eficacia de este modelo.

Ciclo de vida Incremental.

El modelo incremental combina elementos del modelo en cascada con la filosofía


interactiva de construcción de prototipos. Se basa en la filosofía de construir
incrementando las funcionalidades del programa. Este modelo aplica secuencias
lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada
secuencia lineal produce un incremento del software.

Cuando se utiliza un modelo incremental, el primer incremento es a menudo un


producto esencial, sólo con los requisitos básicos. Este modelo se centra en la
entrega de un producto operativo con cada incremento. Los primeros incrementos
son versiones incompletas del producto final, pero proporcionan al usuario la
funcionalidad que precisa y también una plataforma para la evaluación.
Fases del modelo

 Definición de requerimientos
 Asignar los requerimientos a los incrementos.
 Diseño del incremento a partir de los requerimientos.
 Desarrollo del incremento.
 Validar incrementos.
 Integrar incrementos.
 Validar funcionamiento.

Características:

 Combina elementos del modelo de cascada con la filosofía interactiva de


construcción de prototipos.
 Cada secuencia lineal produce un producto operacional con cada incremento
de la misma forma que progresa el tiempo en el calendario.
 El primer incremento es a menudo el núcleo.
 Como un resultado de evaluación y/o utilización se desarrolla un plan para el
incremento siguiente, este proceso se repite hasta llegar al producto
completo.
 Este modelo es particularmente útil cuando la dotación de personal no es
suficiente para una implementación completa.
 Los primeros incrementos se pueden implementar con menos recursos.
 Si es muy riesgoso desarrollar el sistema completo de una sola vez, entonces
debería considerar este modelo.
Ventajas:

 Construir un sistema pequeño es siempre menos riesgoso que construir un


sistema grande.
 Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los
requerimientos planeados para los niveles subsiguientes son correctos.
 Si un error importante es realizado, sólo la última iteración necesita ser
descartada y utilizar el incremento previo.

Desventajas:

 Se presupone que todos los requisitos se han definido al inicio.


 Se requiere de una experiencia importante para definir los incrementos de
forma de distribuir en ellos las tareas en forma proporcional.
 Si el sistema a desarrollar es de gran magnitud y se cuenta con un único
grupo para construirlo se corre el riesgo que el desarrollo se prolongue
demasiado en tiempo.
Conclusión

Después de haber leído el análisis, los ciclos de vida de un software son muy
diversos. Sin embargo, al final, deberás contar con el sentido de adaptación, pues
sabemos que, al desarrollar un software, difícilmente se tendrá un enfoque o método
determinado para trabajar. Es por eso que manejar un modelo de programación es
una excelente alternativa, de esta forma estarás dominando cada una de las
metodologías del ciclo de vida de software y podrás afrontar cualquier situación
complicada en la cual te puedas encontrar.

Вам также может понравиться