lunes, 7 de diciembre de 2015

     METODOLOGÍAS DEL DESARROLLO DEL SOFTWARE

METODOLOGÍAS ESTRUCTURADAS
La metodología de desarrollo lo que pretende es resolver un problema o necesidad, y para
ello parte de la petición del cliente y con sucesivas fases obtiene una solución informática.
Ya vimos que en las metodologías estructuradas se realiza una aproximación a la resolución del
problema descendente. estas metodologías proponen la creación de modelos que representen los procesos o acciones a realizar, los flujos de información y las estructuras de datos necesarias para almacenar la información.

El modelo general que representa a un sistema informático consta de
Entrada-Proceso-Salida. Los datos se introducen en el sistema, el cual los
procesa para obtener unos resultados a la salida.

METODOLOGÍAS ESTRUCTURADAS ORIENTADAS A PROCESOS
Estas metodologías orientadas a procesos estudian cómo son transformados los flujos de datos por los
procesos, desde la entrada hasta la salida. Por tanto, hacen más hincapié en los procesos que en los
datos.
¿Cómo vamos a analizar estos flujos de información?
Estas representaciones gráficas son acompañadas por documentos de texto desarrollando lo que se
denomina especificación estructurada.
La especificación estructurada incluye estas técnicas:
• Diagramas de Flujo de Datos (DFD): son una
representación gráfica que representa los procesos que
debe llevar a cabo el sistema informático y los datos que
hay a la entrada y salida de cada proceso.
• Diccionario de Datos (DD): son las descripciones de todos los datos del sistema y de los elementos
que aparecen en el DFD.
• Especificaciones de procesos: es la descripción detallada de los procesos.
CONSTA DE LAS SIGUIENTES FACES:
1. Fase de planificación inicial.
2. Fase de análisis:
• Descripción del modelo físico actual: se trata de describir el sistema actual del cliente que
podrá estar informatizado.
• Elaboración del modelo lógico actual:  realiza un nuevo modelo que no dependa de elementos físicos.
FACES DEL DISEÑO:
• Desarrollo de un nuevo modelo lógico: introduce  nuevas necesidades del cliente y elaborar un modelo lógico alternativo que resuelva los problemas del cliente y satisfaga sus requisitos.
• Elaboración de un conjunto de modelos físicos: a partir del modelo lógico se incluyen los
detalles físicos de la empresa.
• Estimación de los costes y tiempos de cada opción del modelo físico.
• Selección de un modelo en función de los intereses del cliente.
• Recopilación del modelo elegido en un documento de especificación que permita su
posterior implementación en la empresa.
4. Fase de codificación: mediante la programación estructurada.
5. Resto de fases: incluye las fases de prueba, control y mantenimiento.
METODOLOGÍAS ESTRUCTURADAS ORIENTADAS A DATOS
Dentro del modelo básico Entrada-Proceso-Salida, estas metodologías se centran en el estudio de los
datos a la entrada y de los resultados a la salida. Para ello definen cómo son esos datos, los agrupan
en estructuras de datos, y posteriormente describen los procesos.

¿TODAS LAS ESTRUCTURAS DE DATOS SON IGUALES?
No exactamente, por eso, en función de cómo sean esas estructuras de datos, podemos clasificar a estas: Metodologías en orientadas a datos jerárquicos y orientadas a datos no jerárquicos.
METODOLOGÍAS ESTRUCTURADAS ORIENTADAS A DATOS JERÁRQUICOS
Es la estructura de control del programa que se deriva del estudio de los datos también es jerárquica. Esto significa que hay una relación de jerarquía entre los datos y pueden ser representados mediante árboles.
Una estructura de datos jerárquica sería la representación del árbol genealógico de una familia.
En esta metodología, el procedimiento a seguir consiste en definir primero
las estructuras de los datos de entrada y salida .
METODOLOGÍAS ESTRUCTURADAS ORIENTADAS A DATOS  NO JERÁRQUICOS
En esta metodología se analizan los datos para crear un modelo que integre las entidades y las relaciones entre ellas. Estas entidades
representan los elementos de la organización, por ejemplo una entidad
podría ser un proveedor de la empresa.
METODOLOGÍAS ORIENTADAS A OBJETOS: RUP
Es el Proceso Unificado (RUP) que utiliza las técnicas proporcionadas por el Lenguaje
de Modelado Unificado (UML). RUP ha unificado distintas metodologías y técnicas en una sola
metodología.
RUP constituye la metodología estándar más utilizada para el análisis, implementación y
documentación de sistemas orientados a objetos.
Sus principales características son:
• Forma disciplinada de asignar y organizar tareas.
• Desarrollo iterativo e incremental.
• Proporciona mecanismos de gestión del proyecto.
• Facilita la gestión de requisitos a través de un proceso completo.
• Centrada en la arquitectura para buscar su robustez con un producto. 
• Basada en componentes reutilizables.
• Modelado visual del software utilizando el estándar UML.
• Resulta fácil dividir el sistema en varios subsistemas independientes.
• Facilita el control de cambios a lo largo de todo el proceso.
• Permite la verificación de la calidad del software a través de diferentes mecanismos. 
• Adaptable a cualquier tipo de proyecto y organización independientemente. 
Hemos indicado que RUP asigna y organiza disciplinadamente las tareas, para ello define estos
elementos:
• Perfiles o roles de las personas y entidades implicadas (quién).
• Actividades que guían el proceso (cómo).
• Artefactos o productos intermedios a obtener (qué).
• Flujos de trabajo: indican la secuencia de actividades y los procedimientos a seguir (cuándo).
DESARROLLO Y INGENIERIA INCLUYE:
􀂃 Modelado de Negocio: describe la estructura y dinámica del negocio.
􀂃 Requisitos: descripción de las necesidades del negocio mediante casos de uso.
􀂃 Análisis y Diseño: describe la arquitectura de software mediante distintos modelos.
􀂃 Implementación: desarrollo del software según el diseño y cumpliendo los requisitos.
􀂃 Pruebas: para asegurar que el comportamiento es correcto y satisface las necesidades.
􀂃 Implantación: puesta en marcha y configuración del sistema.
DESARROLLO DE AYUDA Y APOYO INCLUYEN:
􀂃Configuración y gestión de cambios: controla los productos intermedios.
Administración del proyecto: establece estrategias de trabajo, horarios y recursos.
􀂃Entorno: para controlar la infraestructura ligada al desarrollo del proyecto.
LAS FACES O ETAPAS DEL DESARROLLO SON:
• Fase de Inicio: El objetivo es estudiar la viabilidad del proyecto.
• Fase de Elaboración: El objetivo es determinar la arquitectura óptima.
• Fase de Construcción: El objetivo es la elaboración de un producto totalmente operativo y
eficiente y el manual de usuario.
• Fase de Transición: El objetivo es implantar el producto y ponerlo a disposición de los usuarios.
MODELO CON OBJETOS UML
Hemos dicho que RUP utiliza UML como técnica de modelado de los objetos, pero ¿en qué consiste
UML?
El Lenguaje Unificado de Modelado (UML) consiste en un conjunto de notaciones y diagramas estándar para modelar sistemas orientados a objetos.
 UML es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema de software.
Podemos clasificar estos diagramas en:
• Diagramas de estructura: describen los elementos del sistema. Incluye:
􀂃 Diagrama de clases.
􀂃 Diagrama de componentes.
􀂃 Diagrama de objetos.
• Diagramas de comportamiento: indican lo que deben hacer los elementos del sistema, para lo
que incluye:
􀂃 Diagrama de actividades.
􀂃 Diagrama de casos de uso.
􀂃 Diagrama de estados.
• Diagramas de Interacción: indican el flujo de control y de datos entre los elementos del sistema,
para lo que utiliza:
􀂃 Diagrama de secuencia.
􀂃 Diagrama de comunicaciones.
􀂃 Diagrama de tiempos.
METODOLOGÍAS PARA SISTEMAS EN TIEMPO REAL

Un sistema informático que debe captar señales en este caso del radar y de los sistemas de
comunicación de los aviones sin perder ninguna y que debe contestar a las mismas antes de un
determinado momento, es un sistema de tiempo real.
En estos sistemas la velocidad de respuesta es fundamental porque el usuario, en este caso el controlador aéreo y el piloto, no pueden esperar.
Para desarrollar estos sistemas será necesario disponer de metodologías de desarrollo del software que permitan especificar este tipo de situaciones de tiempo real y las posibles soluciones. ¿Qué incluirán estas metodologías?
Deberán establecer mecanismos para modelar sistemas que:
• Controlen la comunicación y sincronización entre tareas.
• Gestionen los procesos concurrentes que se ejecutan en paralelo.
• Respondan ante eventos externos como puede ser una nueva señal.
• Reciban datos y señales continuas que no pueden perderse.
• Interrumpan los procesos.
METODOLOGÍAS DE DESARROLLO AGIL
Algunos desarrolladores creen que las metodologías tradicionales generan demasiada burocracia y
exigen demasiado esfuerzo.
Exige calidad, coste e innovación, sino también rapidez y flexibilidad. En este contexto, el mercado
necesita ciclos de desarrollo más cortos.
Para solucionar estos problemas se han propuesto una serie de principios y valores que aligeren la carga de las metodologías tradicionales.
Con el desarrollo de estas ideas y conceptos han aparecido un nuevo tipo de metodologías que se denominan de desarrollo ágil. consideran que el desarrollo ágil no constituye realmente una nueva metodología, sino un conjunto de recomendaciones y principios aplicables a las metodologías tradicionales para hacerlas más flexibles, rápidas y adaptables.
Las metodologías ágiles se basan en el trabajo en equipo y pretenden:
• Centrarse en el desarrollo y en satisfacer al cliente.
• Mejorar las predicciones y previsiones para cumplir plazos y ajustarse a los recursos.
• Eliminar riesgos .
• Disminuir costes.
Las metodologías ágiles están basadas fundamentalmente en:
metodologías orientadas a objetos, algunas de las más utilizadas son:
Programación Extrema (XP), Scrum (Schwaber y Beedle 2001), o Rational
Unified Process (RUP).
Desarrollo ágil: programación extrema.
La Programación extrema (eXtreme Programming XP) se trata de un proceso ágil de desarrollo de

software formulado por Kent Beck (1999).Es una de las metodologías de desarrollo de software más
exitosas en la actualidad, utilizada en proyectos de corto plazo, con equipo pequeño y que requieren
flexibilidad.
La metodología consiste en:
• Un desarrollo incremental.
• Dar mayor valor al individuo
• Los principios y prácticas que propone son de sentido común.
La programación extrema fue creada pensando en las siguientes
circunstancias:
• Proyectos en contextos de incertidumbre, 
• Proyectos con alto riesgo.
• Proyectos con un grupo pequeño de desarrolladores.
Las características fundamentales del método de programación extrema son:
• Desarrollo iterativo e incremental
• Pruebas continúas
• Programación por parejas
• Buen ambiente de trabajo
• Frecuente comunicación
• Corrección de todos los errores
• Refactorización del código
• Propiedad del código compartida
• Simplicidad
• Reutilización del código
El ciclo de vida ideal de XP consiste de seis fases:
• Exploración de las necesidades.
• Planificación de la entrega con estimaciones.
• Iteraciones de desarrollo.
• Implantación del producto.
• Mantenimiento del producto implantado.
• Muerte o abandono del proyecto.
En las iteraciones se siguen estos pasos:
• El cliente define sus necesidades.
• El programador estima el esfuerzo necesario para su implementación.
• El cliente selecciona qué desarrollar.
• El desarrollador realiza lo solicitado.

• planificación (planning).
• diseño (designing).
• codificación (coding).
• pruebas (testing).
METODOLOGÍAS DE LA ADMINISTRACIÓN EUROPEA
Desarrollan aplicaciones software, ¿qué metodologíautilizarán? ¿Sería conveniente disponer de una metodología estándar para toda la administración
pública?
Con la intención de estandarizar los diferentes proyectos informáticos que utilizaban y desarrollaban diferentes administraciones del mismo país, los organismos públicos Comenzaron a desarrollar a finales de los años 70 y principios de los 80, metodologías de desarrollo software basadas en el método estructurado.
SSADM  la española Métrica, y el Eurométodo propuesto por la Unión Europea para dar homogeneidad a

los proyectos ligados a su organización.
MERISE
El proyecto Merise nace en 1977 dentro del centro CTI (Centre Technique d’Information) perteneciente al Ministerio de Industria Francés. Su objetivo era desarrollar una metodología de desarrollo del software.
SSADM
En 1980 el gobierno británico plantea la necesidad de crear una metodología para unificar y
estandarizar los proyectos de software de las distintas administraciones. Así se desarrolló, entre el
Central Computing and Telecommunications Agency (CCTA) y Learmonth and Burchett Management
Systems (LBMS), la metodología SSADM (Structures Systems Analysis and Design Method).
EUROMETODO
Las metodologías de desarrollo de software, que las empresas y administraciones públicas pueden utilizar en función de sus intereses y necesidades. Cada método aporta su estructura con unas particularidades determinadas. Cuando una empresa privada o un organismo público pretenden adquirir un sistema de información informático debe establecerse una buena colaboración y relación de entendimiento entre el proveedor y el cliente.

lunes, 16 de noviembre de 2015

Tipos de Modelo

El diseño basado en re utilización puro busca construir un producto software integrando componentes pre-existentes.
Los beneficios principales que otorga este modelo son:
-Tiempos de desarrollos cortos
-Disminución de errores
-Disminución de costos y riegos ya que se reduce los componentes a desarrollar
-Existe un aumento de la confiabilidad ya que los componentes a utilizar ya fueron testados y utilizados en otro momento previo al comienzo del proyecto

A modo de desventaja podemos mencionar el hecho de que al no poseer algún componente que cubra con un requisito dado por el usuario, este debe ser modificado para adaptarlo a los componentes almacenados en el repositorio de componentes.
Esto se da en el modelo puro. En cambio en el modelo real si no se puede adaptar un requisito de usuario, se conseguirá o se desarrollara ese modulo para que cumpla con lo pedido por el usuario.
Otra desventaja de este modelo es que una vez finalizada la etapa de modificación de requisitos, y ante la eventual necesidad de cambios en estos últimos, puede pasar que no haya componentes que se adapten a las nuevas modificaciones.
Modelo Puro



Modelo Real




 



Modelo Incremental
El Modelo Incremental combina elementos del MLS con la filosofía interactiva de construcción de prototipos.
En una visión genérica, el proceso se divide en 4 partes: Análisis, Diseño, Código y Prueba. Sin embargo, para la producción del Software, se usa el principio de trabajo en cadena o “Pipeline”, utilizado en muchas otras formas de programación. Con esto se mantiene al cliente en constante contacto con los resultados obtenidos en cada incremento.

Es el mismo cliente el que incluye o desecha elementos al final de cada incremento a fin de que el software se adapte mejor a sus necesidades reales. El proceso se repite hasta que se elabore el producto completo.
El Modelo Incremental es particularmente útil cuando no se cuenta con una dotación de personal suficiente. Los primeros pasos los pueden realizar un grupo reducido de personas y en cada incremento se añadir• personal, de ser necesario. Por otro lado los incrementos se pueden planear para gestionar riesgos técnicos.
El Modelo Incremental se puede ver aquí en forma gráfica:
- Se evitan proyectos largos y se entrega algo de valor a los usuarios con cierta frecuencia.
- El usuario se involucra más.
- Difícil de evaluar el coste total.
- Difícil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo.
- Requiere gestores experimentados.
- Los errores en los requisitos se detectan tarde.
- El resultado puede ser muy positivo.
Pipeline
La arquitectura en pipeline (basada en filtros) consiste en ir transformando un flujo de datos en un proceso comprendido por varias fases secuenciales, siendo la entrada de cada una la salida de la anterior.
Esta arquitectura es muy común en el desarrollo de programas para el intérprete de comandos, ya que se pueden concatenar comandos fácilmente con tuberías (pipe).
Interprete de comandos
Parte fundamental de un sistema operativo que ordena la ejecución de mandatos obtenidos del usuario por medio de una interfaz alfanumérica.
Características
- Se evitan proyectos largos y se entrega “algo de valor” a los usuarios con cierta frecuencia.
- El usuario se involucre más.
- Difícil de evaluar el costo total.
- Difícil de aplicar a los sistemas transaccionales que tienden a ser integrados y a operar como un todo.
- Requiere gestores experimentados.
- Los errores en los requisitos se detectan tarde.
- El resultado puede ser muy positivo.
Ventajas:
- Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.
- También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.
- El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.
- Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
- Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
- Por su versatilidad requiere de una plantación cuidadosa tanto a nivel administrativo como técnico.
Desventajas:
- El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos.
- Requiere de mucha plantación, tanto administrativa como técnica.
- Requiere de metas claras para conocer el estado del proyecto.



El modelo de desarrollo en espiral es un generador de modelo de proceso guiado por el riesgo que se emplea para conducir sistemas intensivos de ingeniería de software concurrente y a la vez con muchos usuarios¨. Las actividades que conforman este modelo forman una espiral, en la que cada bucle o interacciona representa un conjunto de actividades. Se tiene en cuenta fuertemente el riesgo que aparece a la hora de desarrollar software.


Modelo Evolutivo

  Los modelos evolutivos son iterativos. Se caracterizan por la forma en que permiten a los ingenieros del software desarrollar versiones cada vez más completas del software.
  El software evoluciona con el tiempo. Los requisitos del usuario y del producto suelen cambiar conforme se desarrolla el mismo. Las fechas de mercado y la competencia hacen que no sea posible esperar a poner en el mercado un producto absolutamente completo, por lo que se aconsejable introducir una versión funcional limitada de alguna forma para aliviar las presiones competitivas.


Desventajas
  Genera mucho tiempo en el desarrollo del sistema
  Modelo costoso
  Requiere experiencia en la identificación de riesgos

Ventajas
El análisis del riesgo se hace de forma explícita y clara.
Une los mejores elementos de los restantes modelos.
  Reduce riesgos del proyecto
  Incorpora objetivos de calidad
  Integra el desarrollo con el mantenimiento, etc.
Los evolutivos son modelos iterativos, permiten desarrollar versiones cada vez más completas y complejas, hasta llegar al objetivo final deseado; incluso evolucionar más allá, durante la fase de operación. Los modelos “Iterativo Incremental” y “Espiral” (entre otros) son dos de los más conocidos y utilizados del tipo evolutivo.
La idea detrás de este modelo es el desarrollo de una implantación del sistema inicial, exponerla a los comentarios del usuario, refinarla en Nuevas versiones hasta que se desarrolle el sistema adecuado.Una ventaja de este modelo es que se obtiene una rápida re alimentación del usuario, ya que las actividades de especificación, desarrollo y pruebas se ejecutan en cada iteración.


Existen dos tipos de desarrollo evolutivo:


· Desarrollo Exploratorio: El objetivo de este enfoque es explorar con el usuario los requisitos hasta llegar a un sistema final. El desarrollo comienza con las partes que se tiene más claras. El sistema evoluciona conforme se añaden nuevas características propuestas por el usuario.

· Enfoque utilizando prototipos: El objetivo es entender los requisitos del usuario y trabajar para mejorar la calidad de los requisitos. A diferencia del desarrollo exploratorio, se comienza por definir los requisitos que no están claros para el usuario y se utiliza un prototipo para experimentar con ellos. El prototipo ayuda a terminar de definir estos requisitos.

VENTAJAS
· La especificación puede desarrollarse de forma creciente.
· Los usuarios y des arrolladores logran un mejor entendimiento del sistema. Esto se refleja en una mejora de la calidad del software.

· Es más efectivo que el modelo de cascada, ya que cumple con las necesidades inmediatas del cliente.


DESVENTAJAS

· Proceso no Visible: Los administradores necesitan entregas para medir el progreso. Si el sistema se necesita desarrollar rápido, no es efectivo producir documentos que reflejen cada versión del sistema.

· Sistemas pobremente estructurados: Los cambios continuos pueden ser perjudiciales para la estructura del software haciendo costoso el mantenimiento.

· Se requieren técnicas y herramientas: Para el rápido desarrollo se necesitan herramientas que pueden ser incompatibles con otras o que poca gente sabe utilizar.


En Ingeniería de software el desarrollo en cascada, también llamado modelo en cascada (denominado así por la posición de las fases en el desarrollo de esta, que parecen caer en cascada “por gravedad” hacia las siguientes fases), es el enfoque metodológico que ordena rigurosamente las etapas del proceso para el desarrollo de software de tal forma que el inicio de cada etapa debe esperar al término de la etapa anterior.1 Al final de cada etapa, el modelo está diseñado para llevar a cabo una revisión final, que se encarga de determinar si el proyecto está listo para avanzar a la siguiente fase. Este modelo fue el primero en originarse y es la base de todos los demás modelos de ciclo de vida.
Un ejemplo de una metodología de desarrollo en cascada es:
1.     Análisis de requisitos.
2.     Diseño del Sistema.
3.     Segregación del programa.
4.     Diversificación.
5.     Verificación integral.
6.     Ordeñado del programa.
Fases del Modelo
    Análisis de requisitos
En esta fase se analizan las necesidades de los usuarios finales del software para determinar qué objetivos debe cubrir. De esta fase surge una memoria llamada SRD (documento de especificación de requisitos), que contiene la especificación completa de lo que debe hacer el sistema sin entrar en detalles internos.
Diseño del Sistema
Descompone y organiza el sistema en elementos que puedan elaborarse por separado, aprovechando las ventajas del desarrollo en equipo. Como resultado surge el SDD (Documento de Diseño del Software), que contiene la descripción de la estructura relacional global del sistema y la especificación de lo que debe hacer cada una de sus partes, así como la manera en que se combinan unas con otras.
Diseño del Programa
Es la fase en donde se realizan los algoritmos necesarios para el cumplimiento de los requerimientos del usuario así como también los análisis necesarios para saber qué herramientas usar en la etapa de Codificación
Codificación
Dependiendo del lenguaje de programación y su versión se crean las bibliotecas y componentes re utilizables dentro del mismo proyecto para hacer que la programación sea un proceso mucho más rápido
Pruebas   
Los elementos, ya programados, se ensamblan para componer el sistema y se comprueba que funciona correctamente y que cumple con los requisitos, antes de ser entregado al usuario final.
Verificación
Es la fase en donde el usuario final ejecuta el sistema, para ello el o los programadores ya realizaron exhaustivas pruebas para comprobar que el sistema no falle.
Mantenimiento
Una de las etapas más críticas, ya que se destina un 75 % de los recursos, es el mantenimiento del Software ya que al utilizarlo como usuario final puede ser que no cumpla con todas nuestras expectativas.









jueves, 12 de noviembre de 2015

Ciclo de Vida de un Sistema de Información

Ciclo de Vida de un Sistema de Información
Ciclo de vida de un sistema de información
Es un sistema, automatizado o manual, que engloba a personas, máquinas y/o métodos organizados para recopilar, procesar, transmitir datos que representan información. Un sistema de información engloba la infraestructura, la organización, el personal y todos los componentes necesarios para la recopilación, procesamiento, almacenamiento, transmisión, visualización, diseminación y organización de la información.
Cualquier sistema de información va pasando por una serie de fases a lo largo de su vida. Su ciclo de vida comprende una serie de etapas entre las que se encuentran las siguientes:
Planificación
Realizar una serie de tareas previas que influirán decisivamente en la finalización con éxito del proyecto.
Análisis
Averiguar qué es exactamente lo que tiene que hacer el sistema. La etapa de análisis en el ciclo de vida del software corresponde al proceso mediante el cual se intenta descubrir qué es lo que realmente se necesita y se llega a una comprensión adecuada de los requerimientos del sistema.
Diseño
Se han de estudiar posibles alternativas de implementación para el sistema de información que hemos de construir y se ha de decidir la estructura general que tendrá el sistema (su diseño arquitectónico). El diseño de un sistema es complejo y el proceso de diseño ha de realizarse de forma iterativa.
Implementación
Seleccionar las herramientas adecuadas, un entorno de desarrollo que facilite nuestro trabajo y un lenguaje de programación apropiado para el tipo de sistema que vayamos a construir. La elección de estas herramientas dependerá en gran parte de las decisiones de diseño que hayamos tomado hasta el momento y del entorno en el que nuestro sistema deberá funcionar.
Pruebas
Tiene como objetivo detectar los errores que se hayan podido cometer en las etapas anteriores del proyecto (y, eventualmente, corregirlos). La búsqueda de errores que se realiza en la etapa de pruebas puede adaptar distintas formas, en función del contexto y de la fase del proyecto.
Instalación o despliegue
Debemos de planificar el entorno en el que el sistema debe funcionar, tanto hardware como software: equipos necesarios y su configuración física, redes de interconexión entre los equipos y de acceso a sistemas externos, sistemas operativos y bibliotecas.
Estas etapas son un reflejo del proceso que se sigue a la hora de resolver cualquier tipo de problema.
Uso y mantenimiento
La etapa de mantenimiento consume típicamente del 40 al 80 por ciento de los recursos de una empresa de desarrollo de software. De hecho, con un 60% de media, es probablemente la etapa más importante del ciclo de vida del software.
·         Eliminar los defectos que se detecten durante su vida útil, lo primero que a uno se le viene a la cabeza cuando piensa en el mantenimiento de cualquier cosa.
·         Adaptarlo a nuevas necesidades cuando el sistema ha de funcionar sobre una nueva versión del sistema operativo o en un entorno hardware diferente.
·         Añadirle nueva funcionalidad, cuando se proponen características deseables que supondrían una mejora del sistema ya existente.

Ciclo de vida de los sistemas de información