lunes, 17 de junio de 2019

DEFINICION

¿Qué son las metodologías de desarrollo de software?

Inicialmente, es importante conocer la definición de metodología y desarrollo.
Metodología es una palabra compuesta por tres vocablos griegos: metá (“más allá”), odós (“camino”) y logos (“estudio”); considerando lo anterior, la definición de metodología son los métodos para luego determinar cuál es el más adecuado.

El concepto de metodología es “conjunto de métodos coherentes y relacionados por unos principios comunes”. El concepto de desarrollo, está vinculado a la acción de desarrollar o a las consecuencias de este accionar, por lo tanto es necesario, rastrear el significado del verbo desarrollar: se trata de incrementar, agrandar, extender, ampliar o aumentar alguna característica de algo físico (concreto) o intelectual (abstracto). Por lo anterior, se concluye que metodología de desarrollo es: el estudio y determinación de cuál es el método más adecuado para dar incremento a algo en este caso al software.
Actualmente el término desarrollo es el más utilizado para referirse a las actividades que involucran la creación, fabricación, actualización o modificación de software.

¿Cuáles metodologías existen y cómo se pueden agrupar?

Con base en la información de los cursos de IS impartidos por el autor, en el Instituto Tecnológico de Pachuca, la recopilada por alumnos de la materia, los textos de ingenieria de software y la investigación en internet sobre el tema, a continuación se presentan los nombres de las metodologías que existen y una forma de agruparlas.

INTRODUCCION

¿Quién desarrolla o fabrica el software? 

Los ingenieros en Sistemas Computacionales, los licenciados en Informática y en general los profesionales de desarrollo de software. 
Estos deben desarrollar software de calidad que atienda las necesidades y cumpla con los requisitos que los usuarios demandan, y que además que sea amigable, es decir, fácil de usar. 
Pero crear software es algo muy complejo, sobre todo cumplir con los atributos de calidad que los usuarios (personas, empresas, instituciones) requieren; debido a ello, desde que se inició la fabricación de computadoras y hubo la necesidad de programas para que funcionaran (década de los 60), surgieron también las metodologías de desarrollo de software (MDS).

Las MDS son parte esencial de la ingeniería de software (IS), que es la disciplina profesional que trata fundamentalmente de las actividades llevadas a cabo por personas que producen.

Usan o modifican artefactos de software (un artefacto es algo tangible creado con un propósito práctico) (Sánchez, 2012).

Las MDS son indispensables para crear, o modificar software de calidad que cumpla con los requisitos de los usuarios, ya que si no se utiliza la metodología apropiada, seguramente no se alcanzará el objetivo.
El problema actual es que de las diversas MDS que existen no se selecciona la adecuada, y en el peor de los casos no se emplea ninguna, para desarrollar el software que se requiere. Para dar una solución a lo anterior, en este artículo se presenta un panorama general de las metodologías que se pueden utilizar, agrupándolas por tipos de aplicaciones particulares; asimismo, a manera de resultados, se proporcionan algunas sugerencias para seleccionar la adecuada.

CLASIFICACION

Metodologías clásicas

De acuerdo con Pressman (2010), las MDS clásicas son llamadas también modelos de proceso prescriptivo, y fueron propuestas originalmente para poner orden en el caos del desarrollo de software que existía cuando se empezó a generar masivamente. La historia indica que estos modelos tradicionales, propuestos en la década del 60, han dado cierta estructura útil al trabajo de IS y constituyen un mapa razonablemente eficaz para los equipos de software. Estas MDS son:

  • Incremental
  • Evolutivo
  • Espiral
  • Prototipos
  • Desarrollo basado en componentes


En la Figura 1 se muestra un diagrama de la metodología de Ciclo de vida o Cascada

Figura 1 Diagrama de metodología Ciclo de vida o Cascada

Metodologías orientadas a objetos

En los años finales del siglo XX se publicaron centeneres de artículos y libros que proponían distintas metodologías, técnicas y notaciones para el desarrollo orientado al objeto. En cuanto al proceso de desarrollo de software, se distinguen tres grandes corrientes:

Metodologías dirigidas por los datos (data- driven), que se basan en la parte estructural de los objetos y son una extensión del modelo conceptual en el modelo Entidad/Relación. Estas son:

  • Fusión
  • Object Modelling Technique (OMT)


Metodologías dirigidas por las responsabilidades (responsability-driven), que representan el enfoque más purista de la orientación al objeto centrándose en las “responsabilidades” de los objetos, esto es, las acciones que puede llevar a cabo un objeto. Dos de estas son:

  • Object Management Facility (OMF)
  • Object Management System (OMS)
Proceso de unificado de desarrollo de software (USDP Unified Software Develpment Process): se deriva de la metodología Objectory, de Jacobson; la metodología de Booch; y la técnica de modelado de objetos, de Rumbaugh. (Piattini, 2000).

  • Unified Process (UP)

En la figura 2 se muestra un diagrama del Proceso unificado de desarrollo de software.


Figura 3 Diagrama de metodología Proceso Unificado de desarrollo de software