Metodologías de desarrollo de software

23
Metodologías de desarrollo de software Ing: Ruth Gissela Pérez Cabrejos

Transcript of Metodologías de desarrollo de software

Page 1: Metodologías de desarrollo de software

Metodologías de desarrollo de software

Ing: Ruth Gissela Pérez Cabrejos

Page 2: Metodologías de desarrollo de software

Definición

Una metodología de desarrollo de software es un conjunto de pasos y procedimientos que deben seguirse para desarrollar software. Una metodología está compuesta por:

Page 3: Metodologías de desarrollo de software

• Cómo dividir un proyecto en etapas.• Qué tareas se llevan a cabo en cada etapa.• Qué restricciones deben aplicarse.• Qué técnicas y herramientas se emplean.• Cómo se controla y gestiona un proyecto.

Page 4: Metodologías de desarrollo de software

Clasificación de las metodologías

Las metodologías se clasifican de la siguiente forma:• Estructuradas.• Orientadas a procesos• Orientadas a datos• Mixtas

• No estructuradas.• Orientadas a objetos• Sistemas de tiempo real

Page 5: Metodologías de desarrollo de software

METODOLOGÍA ESTRUCTURADA

Page 6: Metodologías de desarrollo de software

Metodologías estructuradas

Se basan en la forma top-down1. Metodologías orientadas a procesosLa ingeniería del software se basa en el modelo básico de entrada/proceso/salida de un sistema. Está compuesta por:

• Diagrama de flujo de datos (DFD).• Diccionario de datos.• Especificaciones de proceso.

• Ejemplos: metodologías de DeMarco, Gene y Sarson, Yourdon.

Page 7: Metodologías de desarrollo de software

Metodología de DeMarco:Es un Análisis Estructurado, creado por Tom DeMarco.

Consta de los pasos siguientes pasos:

• Estudio del entorno físico actual: modelo del sistema actual con sus procedimientos. A través de un conjunto de DFD

• Derivación del correspondiente modelo lógico actual: modelo derivado del anterior sin connotación física.

• Derivación del nuevo modelo lógico: tomar en cuenta las nuevas necesidades. Formado por un DFD, diccionario de datos y especificaciones de proceso del sistema.

• Crear un conjunto de modelos físicos alternativos: del modelo lógico se establecen alternativas se enoje el más conveniente.

• Valorar cada opción: costos y beneficios de los modelos físicos.

• Seleccionar una opción: selecciona modelo físico

• Empaquetar la especificación: se recopila toda la documentación.

Page 8: Metodologías de desarrollo de software

Metodología de Gane y Sarson:

• Es el resultado de varios años de práctica en consultoría de análisis y diseño estructurado.

• Creado por la empresa MCAUTO/IST bajo el nombre de STRADIS SDM.

• Es parecido al de DEMARCO, la principal diferencia es que hay una etapa en la que se define los contenidos de los almacenes de datos que aparecen en DFD en 3FN.

Page 9: Metodologías de desarrollo de software

Metodología de Yourdon / Constantine

Consta de las siguientes fases

• realizar los DFD del sistema

• Realizar el diagrama de estructuras a partir del DFD, mediante análisis de transformación, y análisis de transacción.

• Evaluación del diseño midiendo la calidad de la estructura mediante el acoplamiento y cohesión

• preparación del diseño para la implementación dividiéndola en Unidades. Físicas o cuadernos de carga.

Page 10: Metodologías de desarrollo de software

La ingeniería del software está fundamentada sobre el modelo básico de entrada/proceso/salida de un sistema. Los datos se introducen en el sistema y el sistema responde ante ellos transformándolos para obtener las salidas.

Una especificación estructurada es un modelo gráfico, particionado, descendente y jerárquico de los procesos del sistema y de los datos utilizados por los procesos.

Estas metodologías enfocan el criterio de descomposición que emplean al concepto de Proceso.

• Las herramientas asociadas a estas metodologías son:• Diagramas de flujo de datos. (DFD).• Diagramas de Entidad-Relación. (Definición de almacenes de datos

para el DFD).• Diccionario de datos.• Descripciones funcionales.• Lenguaje natural estructurado.• Tablas de decisión.

Page 11: Metodologías de desarrollo de software

Diagramas de flujos de datos (DFD).Son diagramas que representan los procesos (funciones) que debe llevar a cabo un sistema a distintos niveles de abstracción y los datos que fluyen entre los procesos. Los procesos más complejos se descomponen en nuevos diagramas hasta llegar a los procesos sencillos. Es la técnica más importante del análisis estructurado, y se emplea en todas las metodologías de análisis y diseño estructurados.

Page 12: Metodologías de desarrollo de software

Diagrama de entidad-relación.

Se construye a partir del texto de los requerimientos. Esta formado por: entidades, relaciones, atributos.

Page 13: Metodologías de desarrollo de software

Diccionario de datos.

Es el conjunto de las definiciones de todos los datos que aparecen en el DFD, tanto almacenados como en los flujos de datos, incluido el propio diccionario.

Page 14: Metodologías de desarrollo de software

Teoría de Lenguajes Formales.Los datos compuestos se definen en función de sus componentes.Para composición de datos se usan como mecanismos: la secuencia, la selección y la agrupación repetida (multiconjunto).

Page 15: Metodologías de desarrollo de software

2. Metodologías orientadas a datos También llamadas metodologías “dirigidas por los datos”.Estas metodologías toman como base la idea de que los datos, además de fluir y tener un contenido, tienen una estructura. Así, el criterio de descomposición es la estructura de datos.

Los datos constituyen el corazón del sistema de información, son más estables que los proceso que actúan sobre ellos. El estudio de los procesos viene derivado de una definición inicial de los datos (modelo de datos) constituido por el conjunto de entidades de datos básicas y las interrelaciones entre ellas.

Page 16: Metodologías de desarrollo de software

Características comunes a estas metodologías:• Se identifican entidades y procesos.• Se presupone una estructura jerárquica en los datos. (Si no lo

es, se fuerza el método).• Se representa la estructura de los datos usando la secuencia,

la selección y la repetición.• Se definen métodos para transformar una estructura de datos

jerárquica en una estructura de programa.

Page 17: Metodologías de desarrollo de software

Defectos de las metodologías estructuradas.• No dan respuesta fácil a cambios en el dominio del problema.• Son inadecuadas para dominios de problemas de naturaleza

concurrente y de tiempo real.• No ofrecen medidas para garantizar el principio de ocultación

de información.

Page 18: Metodologías de desarrollo de software

METODOLOGÍA NO ESTRUCTURADA

Page 19: Metodologías de desarrollo de software

Metodologías orientadas a objetos.

Cobra mucha más importancia el aspecto de modelado del sistema, examinando el dominio del

problema como un conjunto de objetos que interactúan entre sí. Tenemos dos enfoques en las

metodologías orientadas al objeto:

Revolucionarios o puros: que entienden la orientación al objeto como un cambio profundo que

convierten a las metodologías estructuradas en obsoletas.

Sintetistas o evolutivos: que piensan que el análisis y diseño estructurado constituyen la base para el

desarrollo orientado al objeto, pudiéndose combinar elementos del análisis y diseño estructurado

con los de orientación a l objeto.

Page 20: Metodologías de desarrollo de software

Sistemas en tiempo realSon sistemas muy dependientes del tiempo que procesan información orientada al control. Controlan y son controlados por eventos externos. Se caracterizan porque:• Se lleva a cabo el proceso de muchas actividades de forma

simultanea.• Se asignan prioridades a determinados procesos.• Se interrumpe una tarea antes de que concluya, para

comenzar otra de mayor prioridad.• Existe comunicación entre tareas.• Existe acceso simultáneo a datos comunes.

Page 21: Metodologías de desarrollo de software

Para especificar los requisitos de estos sistemas hay que incluir nuevos conceptos para:

• El manejo de interrupciones.• La comunicación y sincronización entre tareas.• Gestionar procesos concurrentes.• Dar respuesta oportuna y a tiempo ante eventos externos.• Datos continuos o discretos.

Page 22: Metodologías de desarrollo de software

Comparación entre Metodologías Estructuradas y Orientadas a Objetos.

Page 23: Metodologías de desarrollo de software