miércoles, 31 de agosto de 2011

Metodologías de diseño de software.

Primero empezaremos por definir lo que es una metodología.


Metodología: Conjunto de procedimientos, técnicas, herramientas y un soporte documental que ayuda a los desarrolladores a realizar nuevo software.



La metodología indica cómo hay que obtener los distintos productos parciales y finales.


Existen tres generaciones de metodologías:

  • Desarrollo Convencional (Sin Metodología) .
  • Desarrollo Estructurado.
  • Desarrollo Orientado a Objetos.
A continuación veremos las características de cada una de ellas:


Desarrollo Convencional.
  • Los resultados finales son impredecibles.
  • No hay forma de controlar lo que está sucediendo en el proyecto.
  • Los cambios organizativos afectan negativamente al proceso de desarrollo.
Con este tipo de desarrollo sin metodología, uno de los principales riesgos que se corre es que el software no funcione adecuadamente o definitivamente no funcione, haciendo que el se le entregue un producto que no sirve al cliente o en el peor caso no entregar el producto final.


Desarrollo Estructurado.
  • Programación estructurada.
  • Diseño estructurado.
  • Análisis estructurado.
Con este tipo de desarrollo el software será mejor de lo que se esperaba con el anterior desarrollo, ya que al ser todo estructurado se tiene un mejor control de las cosas,por lo cual hace mas completo el desarrollo del software y el producto final será de mejor calidad que uno que no tiene una metodología.


Desarrollo Orientado a Objetos.
  • Se eliminan las fronteras entre las fases, debido a la naturaleza iterativa del desarrollo OO.
  • Aparece una nueva manera de concebir los lenguajes de programación, al incorporarse bibliotecas de clases y otros componentes reutilizables.
  • Hay un grado alto de iteración y soplamiento, lo que lleva a una forma de trabajo muy dinámica.

La esencia del desarrollo orientado a objetos  es la identificación y organización de conceptos del dominio de la aplicación y no tanto de su representación final en un lenguaje de programación.

Entre las características deseables de toda metodología están:
  • Existencia de reglas predefinidas.
  • Cobertura total del ciclo de desarrollo.
  • Verificaciones intermedias.
  • Planificación y control.
  • Comunicación efectiva.
  • Utilización sobre un abanico amplio de proyectos.
  • Fácil información.
  • Herramientas CASE.
  • Actividades que mejoran el proceso de desarrollo.
  • Soporte al mantenimiento.
  • Soporte de la reutilización del software.

Existen tres tipos de metodologías:
  • Estructuradas: Se definen primero las estructuras de datos de entrada y salida.
  • Orientadas a objetos: Pueden ser de dos tipos, revolucionarios o puros, y sintetistas o evolutivos.
  • Para sistemas en tiempo real: En este tipo de metodología, al ser en tiempo real, trata de hacer las tareas sincronizadas, poder reaccionar cuando se presente algún evento externo y manejar datos continuos o discretos, entre otras cosas.
Las fases de la metodología son:

Requisitos: Los requisitos son una lista de cosas que queremos que haga nuestro programa. 

Análisis: Definir más claramente qué es lo que va a hacer nuestro programa. Durante el análisis debemos de hacer varias cosas como:
  • Identificar actores: Usuarios y/o sistemas con los que se comunica nuestro programa.
  • Identificar casos de uso: Un caso de uso es algo que un actor quiere hacer con nuestro programa.
  • Detallar los casos de uso: Describir mas a fondo los casos de uso.
  • Diagrama de clases: Es un diagrama de clases de objetos que tienen sentido para el usuario.
Diseño preliminar: En esta etapa, vamos a pensar en como se van a hacer las cosas, tratando de establecer la arquitectura de nuestro programa.

Diseño detallado: En este tipo de diseño ya nos enfocamos a las clases y a los métodos.

Implementación y pruebas: Como su nombre lo indica aquí vamos a ponernos a trabajar nuestro programa, es decir, la codificación, una vez terminada esta fase es necesario hacer varias pruebas, en caso de algún error hay que ver en que nos equivocamos con anterioridad y corregirlo de inmediato.

Referencias:



No hay comentarios:

Publicar un comentario