martes, 1 de marzo de 2016

Ciclo de vida del software

Ciclo de vida del software



Levantamiento de requerimientos:
Es la etapa del ciclo de vida del software, donde se analizan y describen cuáles son las necesidades específicas a las cuales debe responder el software que se va a crear.

Análisis y diseño:
En la etapa de análisis y diseño se toman los requerimientos que quedaron en el documento de requerimientos del primer paso del ciclo de vida. Se analizan y se estructuran mediante diagramas UML para de esta forma tener bien estructurado el software.

Construcción del software:
En esta etapa, tomamos todo el análisis y diseño (diagramas UML) que fueron resultado de la etapa anterior, y se empieza a programar el software siguiendo todas las especificaciones que fueron resultado de la etapa de análisis y diseño.

Pruebas del software
Al llegar a esta etapa se realizan pruebas al software que ya está construido, para verificar que esté dando cumplimiento a los requerimientos planteados, y que su funcionamiento sea correcto.

Integración del software
En esta etapa se pone en funcionamiento el software y se verifica que no altere ningún otro software que se tenga en funcionamiento.

Mantenimiento del software
Esta etapa sirve para dar soporte a los clientes del software, lo que incluye la reparación de fallos (bugs) que no se hubiesen detectado en la etapa de pruebas, así como asesoría en el correcto manejo del software. En esta etapa también disponemos cuáles son las nuevas funcionalidades que debe tener el software, así que cuando se solicitan nuevas funcionalidades para actualizar el software, se vuelve de nuevo a la etapa de levantamiento de requerimientos para así empezar de nuevo todo el proceso con las funcionalidades a incluir.

Levantamiento de requerimientos

Es la etapa del ciclo de vida del software, donde se analizan y describen cuáles son las necesidades específicas a las cuales debe responder el software que se va a crear.
Los requerimientos están divididos en dos grandes grupos:
  • Requerimientos Funcionales
  • Requerimientos No Funcionales
Los requerimientos funcionales, se identifican debido a que son funciones que debe cumplir explicitamente el software que se este desarrollando, como por ejemplo en un sistema de denuncias el software debe permitirle a los administradores del sistema generar un reporte diario con la cantidad de denuncias hechas.

Los requerimientos NO funcionales, se identifican porque estos son restricciones que el cliente impone sobre el sistema y no son funciones explicitas que debe cumplir un sistema. Por ejemplo el sistema debe tener una interfáz gráfica agradable ó el sistema debe ser seguro.

A continuación se muestra un video realizado por el SENA para dar mayor claridad a la clasificación de requerimientos funcionales y no funcionales:


Los requerimientos se deben enumerar, de tal manera que se tenga una manera única de identificar cada requerimiento.

Ejemplo de requerimientos

El problema:
El colegio sol solecito le ha solicitado a usted, que le desarrolle un software en el cual los profesores del colegio puedan realizar el registro de notas de cada una de sus asignaturas por internet, así como que los estudiantes puedan ver las notas correspondientes que cada uno de los docentes registran en sus asignaturas. Además de esto le solicitan que los alumnos puedan subir sus trabajos (Archivos Word y Excel) al software.
Fuera de lo anterior le exigen que el software debe ser seguro y debe soportar una cantidad mínima de 200 personas conectadas al mismo tiempo.

Solución:

Requerimientos Funcionales:

  1. El software debe permitirle a los profesores, registrar las notas de cada una de sus asignaturas a travez de internet.
  2. El software debe permitirle a los alumnos visualizar las notas de cada una de sus asignaturas.
  3. El software debe permitirle a los alumnos subir trabajos (Archivos Word y Excel) al software.
Requerimientos No Funcionales:

       4. El software debe tener un buen nivel de seguridad.
       5. El software debe soportar una cantidad mínima de 200 usuarios conectados concurrentemente.






UML

UML


El Lenguaje de Modelamiento Unificado (UML - Unified Modeling Language) es un lenguaje gráfico para visualizar, especificar y documentar cada una de las partes que comprende el desarrollo de software. UML entrega una forma de modelar cosas conceptuales como lo son procesos de negocio y funciones de sistema, además de cosas concretas como lo son escribir clases en un lenguaje determinado, esquemas de base de datos y componentes de software reusables.
(Fuente : http://users.dcc.uchile.cl/~psalinas/uml/introduccion.html)