Ciclo de vida del desarrollo Software


Anuncios


El ciclo de vida del desarrollo Software (SDLC en sus siglas inglesas), es una secuencia estructurada y bien definida de las etapas en Ingenier铆a de software para desarrollar el producto sofware deseado.

Actividades del SDLC

El SDLC aporta una serie de pasos a seguir con la finalidad de dise帽ar y desarrollar un producto software de manera eficiente. El borrador del SDLC incluye los pasos que veremos a continuaci贸n:

SDLC

Comunicaci贸n

Este es el primer paso donde l usuario inicia la petici贸n de un producto software determinado. Contacta al proveedor de servicios e intenta negociar las condiciones. Presenta su solicitud al proveedor de servicios aportando la organizaci贸n por escrito.

Recolecci贸n de solicitudes

A partir de este paso y en adelante el equipo de desarrollo software trabaja para tirar adelante el proyecto. El equipo se re煤ne con varios depositarios de dominio del problema, e intentan conseguir la m谩xima cantidad de informaci贸n possible sobre lo que requieren. Los requisitos se contemplan y agrupan en requisitos del usuario, requisitos funcionales y requisitos del sistema. La recolecci贸n de todos los requisitos se lleva a cabo como se especifica a continaci贸n -

  • Estudiando el software y el sistema actual o obsoleto,

  • Entrevistando a usuarios y a desarrolladores de Software,

  • Consultando la base de datos o

  • Recogiendo respuestas a trav茅s de cuestionarios.

Estudio de viabilidad

Despu茅s de la recolecci贸n de requisitos, el equipo idea un plan para procesar el software. En esta fase, el equipo analiza si el software puede hacerse para cubrir todos los requisitos del usuario y si hay alguna posibilidad de que el software ya no sea necesario. Se investiga si el proyecto es viable a nivel financiero, pr谩ctico, y a nivel tecnol贸gico para que la organizaci贸n acepte la oferta. Hay varios algoritmos disponibles, los cuales ayudan a los desarrolladores a concluir si el proyecto software es factible o no.

An谩lisis del sistema

En este pas los desarrolladores trazan su plan e intentan crear el mejor y m谩s conveniente modelo de software para el proyecto. El an谩lisis del sistema inclye el entendimiento de las limitaciones del producto Software; el aprendizaje de los problemas relacionados con el sistema; los cambios que se requieren en sistemas ya existentes con antelaci贸n, identificando y dirigiendo el impacto del proyecto a la organizaci贸n y al personal, etc. El equipo del proyecto analiza las posibilidades del proyecto y planifica la temporalizaci贸n y los recursos correspondientes.

Dise帽o de Software

El siguiente paso es dise帽ar el producto software con la ayuda de toda la informaci贸n recogida sobre requisitos y an谩lisis. Los inputs (aportacines) de los usuarios y los resultados de la recogida de informaci贸n hecha en la fase anterior seran las aportaciones base de la fase actual. El output (o resultado) de esta etapa toma la forma de 2 dise帽os; El dise帽o l贸gico y el dise帽o f铆sico. Los ingenieros crean meta-data (Metadatos), Diagramas dil贸gicos, diagramas de flujo de datos, y en algunos casos pseudoc贸digos.

Codificaci贸n

Esta fase tambi茅n se puede denominar 'fase de programaci贸n'. La implementaci贸n del dise帽o de software empieza con el lenguaje de programaci贸n m谩s conveniente, y desarrollando programas ejecutables y sin errores de manera eficiente.

Pruebas

Se estima que el 50% de todos los procesos de desarrollo de software deber铆an ser evaluados. Los errores pueden arruinar el software tanto a nivel cr铆tico y hasta el punto de ser eliminado. Las pruebas de Software se hacen mientras se codifica y suelen hacerlo los desarrolladores y otros expertos evaluadores a varios niveles. Esto incluye evaluaci贸n de m贸dulos, evaluaci贸n del programa, evaluaci贸n del producto, evaluaci贸n interna y finalmente evaluaci贸n con el consumidor final. Encontrar errores y su remedio a tiempo es la llave para conseguir un software fiable.

Integraci贸n

El Software puede necesitar estar integrado con las bibliotecas, Bases de datos o con otro u otros programas. Esta fase del SDLC se focaliza en la integraci贸n del software con las entidades del mundo exterior.

Implementaci贸n

Aqu铆 se instala el software en m谩quinas de clientes. A veces, el software necesita instalar configuraciones para el consumidor final con posterioridad. El Software se eval煤a por su adaptabilidad y su portabilidad, en cuanto a las cuestiones relacionadas con la integraci贸n y conceptos asociados, se resuelven durante la implementaci贸n.

Mantenimiento y Funcionamiento

Esta fase confirma el funcionamiento del software en t茅rminos de m谩s eficiencia y menos errores. Si se requiere, los usuarios se forman, o se les presta documentaci贸n sobre como operar y como mantenerlo en funcionamiento. El software se mantiene de forma temprana actualizando el c贸digo en acorde a los cambios que tienen lugar en entornos del usuario o tecnol贸gicos. Esta fase puede que tenga que encarar retos originados por virus ocultos o problemas no identificados del mundo real.

Disposici贸n

Con el paso del tiempo, puede que el software falle en su ejecuci贸n. Puede que se vuelva totalmente obsoleto o que necesite actualizaciones. De ah铆 surge una necesidad urgente de eliminar una parte importante del sistema. Esta fase incluye archivar datos y componentes software requeridos, cierre del sistema, planificaci贸n de la actividad de disposici贸n y terminaci贸n de sistema en el momento final del sistema.

Paradigma de desarrollo de Software

El Paradigma de desarrollo de Software ayuda al desarrollador a escoger una estrategia para desarrollar el software. El paradigma de desarrollo software tiene su propio set de herramientas, m茅todos y procedimientos, los cuales son expresados de forma clara, y define el ciclo de vida del desarrollo del software. Algunos paradigmas de desarrollo de software o modelos de proceso se definen a continuaci贸n:

Modelo de cascada

El modelo de cascada es el modelo de paradigma m谩s simple en desarrollo de software. Sigue un modelo en que las fases del SDLC funcionar谩n una detr谩s de la otra de forma lineal. Lo que significa que solamente cuando la primera fase se termina se puede empezar con la segunda, y as铆 progresivamente.

Este modelo asume que todo se lleva a cabo y tiene lugar tal y como se hab铆a planeado en la fase anterior, y no es necesario pensar en asuntos pasados que podr铆an surgir en la siguiente fase. Este modelo no funcionar谩 correctamente si se dejan asuntos de lado en la fase previa. La naturaleza secuencial del modelo no permite volver atr谩s y deshacer o volver a hacer acciones.

Este modelo es recomendable cuando el desarrollador ya ha dise帽ado y desarrollado softwares similares con anterioridad, y por eso est谩 al tanto de todos sus dominios.

Modelo repetitivo

Este modelo gu铆a el proceso de desarrollo de software en repeticiones. Proyecta el proceso de desarrollo de forma c铆clica repitiendo cada paso despu茅s de cada ciclo en el proceso de SDLC.

Modelo iterativo

El software primero se desarrolla en menor escala y se siguen y tienen en consideraci贸n todos los pasos. Entonces, por cada repetici贸n, m谩s m贸dulos y caracter铆sticas son dise帽ados, codificados, evaluados y a帽adidos al software. Cada ciclo produce un sotware completo, con m谩s caracter铆sticas y capacidad que los previos.

Despu茅s de cada repetici贸n, el equipo directivo puede concentrarse en la gesti贸n de riesgos y prepararse para la siguiente repetici贸n. Como el ciclo incluye peque帽as porciones de la totalidad del proceso software, es m谩s f谩cil gestionar el proceso de desarrollo, pero a la vez se consumen m谩s recursos.

Modelo en espiral

El modelo en espiral es una combinaci贸n de ambos modelos, el repetitivo y uno del modelo SDLC. Se puede ver como si se combina un modelo de SDLC combinado con un proceso c铆clico (modelo repetitivo).

Modelo espiral

Este modelo considera el riesgo, factor que otros modelos olvidan o no prestan atenci贸n en el proceso. El modelo empieza determinando los objetivos y las limitaciones del software al inicio de cada repetici贸n. En la siguiente etapa se crean los modelos de prototipo del software. Esto incluye el an谩lisis de riesgos. Luego un modelo est谩ndar de SDLC se usa para construir el software. En la cuarta etapa es donde se prepara el plan de la siguiente repetici贸n.

Modelo V

El mayor inconveniente del modelo de cascada es que solo se pasa a la siguiente fase cuando se completa la anterior, por tanto no es posible volver atr谩s si se encuentra alg煤n error en las etapas posteriores. El Modelo V aporta opciones de evaluaci贸n del software en cada etapa de manera inversa.

V-Modelo

En cada etapa, se crea la planificai贸n de las pruebas y los casos de pruebas para verificar y validar el producto seg煤n los requisitos de la etapa. Por ejemplo, en la etapa de recogida de requisitos, el equipo de evaluadores prepara las pruebas de caso correspondientes a los requisitos. M谩s tarde, cuando el producto se desarrolla y est谩 preparado para ser evaluado, las pruebas de caso en esta etapa verifican el software y su validez sug煤n sus requisitos.

Esto hace que tanto la verificaci贸n como la validaci贸n vayan en paralelo. Este modelo tambi茅n se conoce como modelo de validaci贸n y verificaci贸n.

Modelo Big Bang

Este modelo es el modelo con la forma m谩s simple. Requiere poca planificaci贸n, mucha programaci贸n y tambi茅n muchos fondos. Este modelo se conceptualiza alrededor de la teor铆a de creaci贸n del universo 'Big Bang'. Tal como cuentan los cient铆ficos, despu茅s del big bang muchas galaxias, planetas y estrellas evolucionaron. De la misma manera, si reunimos muchos fondos y programaci贸n, quiz谩 podemos conseguir el mejor producto de software.

Big Bang Modelo

Para este modelo, se requiere poca planificaci贸n. No sigue ning煤n proceso concreto, y a veces el cliente no est谩 seguro de las futuras necesidades y requisitos. Por tanto la entrada o input respecto a los requisitos es arbitraria.

Este modelo no es recomendable para grandes proyectos de software, pero es bueno para aprender y experimentar.

Para una lectura en profundidad del SDLC y de sus modelos, Pulse aqu铆.



Advertisements