You are on page 1of 14

Ingeniera del Software Ingeniera del Software de Gestin

Tema 3 Metodologas de Desarrollo de Software


Flix scar Garca Rubio Crescencio Bravo Santos

ndice
1. 2. 3. 4. 5. 6. 7. 8. Definiciones Objetivos Conceptos Generales Metodologa vs Ciclo de Vida Evolucin Histrica de las Metodologas Impacto de las Metodologas en el Entorno de Desarrollo Clasificacin de las Metodologas Ejemplos de Metodologas de Desarrollo

Metodologas de Desarrollo de Software

Definiciones
Metodologa de Desarrollo:
1) Conjunto de pasos y procedimientos que deben seguirse para el desarrollo de software. 2) Conjunto de filosofas, fases, procedimientos, reglas, tcnicas, herramientas, documentacin y aspectos de formacin para los desarrolladores de SI [Maddison, 1983] 3) Conjunto de procedimientos, tcnicas, herramientas y soporte documental que ayuda a los desarrolladores a realizar nuevo software
Metodologas de Desarrollo de Software 3

Objetivos
Un metodologa de desarrollo por lo tanto representa el camino a seguir para desarrollar software de manera sistemtica. Objetivos:
Mejores Aplicaciones Un mejor Proceso de Desarrollo que identifique salidas (o productos intermedios) de cada fase de forma que se pueda planificar y controlar el proyecto Un Proceso Estndar en la organizacin

Metodologas de Desarrollo de Software

Conceptos Generales (i)


Actividades y Tareas
El Proceso se descompone hasta el nivel de Actividades y Tareas (actividades elementales)

Procedimientos
Define la forma de llevar a cabo las Tareas Vnculo de Comunicacin entre Usuarios y Desarrolladores

Productos
Obtenidos como resultado de seguir un Procedimiento Pueden ser Intermedios o Finales
Metodologas de Desarrollo de Software 5

Conceptos Generales (ii)


Tcnicas
Se utilizan para aplicar un Procedimiento Pueden ser Grficas y/o Textuales Determinan el formato de los Productos resultantes en cada Tarea

Herramientas Software
Proporcionan soporte a la aplicacin de las Tcnicas

Metodologas de Desarrollo de Software

Metodologa vs Ciclo de Vida


Diferencias entre Metodologa, Ciclo de Vida y Mtodo
Una Metodologa puede seguir uno o varios modelos de Ciclo de Vida Un Ciclo de Vida indica qu obtener, pero no cmo Una Metodologa es un concepto ms amplio que Mtodo
Se puede considerar como un conjunto de mtodos. Una metodologa puede englobar un conjunto de mtodos (de anlisis, diseo, programacin, etc.) para abarcar el ciclo de vida completo
Metodologas de Desarrollo de Software 7

Evolucin Histrica Metodologas (i)


1. Desarrollo Convencional:
Aos 50 Desarrollo artesanal y ausencia de Metodologa Enfocado en la Tarea de Programacin Inconvenientes:
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

Metodologas de Desarrollo de Software

Evolucin Histrica Metodologas (ii)


2. Desarrollo Estructurado:
Aos 60 (entorno acadmico), mediados 70 (industria) Evolucin:
i. Programacin Estructurada:
Facilitar comprensin de Programas Normas para la aplicacin de estructuras de datos y de control

ii. Diseo Estructurado


Mayor nivel abstraccin (independencia del lenguaje programacin) Elemento bsico de diseo: Mdulo Modularidad. Medidas de Calidad de Programas
Metodologas de Desarrollo de Software 9

Evolucin Histrica Metodologas (iii)


2. Desarrollo Estructurado:
Evolucin:
iii. Anlisis Estructurado
Previamente: Descripcin Narrativa Requisitos Monolticas Redundantes Ambiguas Imposibles de Mantener Especificaciones:

Se obtienen Especificaciones Funcionales: Grficas Particionadas Mnimamente redundantes


Metodologas de Desarrollo de Software 10

Evolucin Histrica Metodologas (iv)


3. Desarrollo Orientado a Objetos:
Aos 80 Trata Procesos y Datos de forma conjunta. Principios:
Abstraccin Ocultacin Informacin Modularidad

Las tcnicas estructuradas han influido en estas metodologas.

Metodologas de Desarrollo de Software

11

Relacin Histrica Metodologas


AO 1968 1974 1975 1977 1978 1981 1985 1986 1987 1989 1990 1993 1995 1998 METODOLOGA Conceptos sobre la programacin estructurada de DIJKSTRA Tcnicas de programacin estructurada de WARNIER y JACKSON Primeros conceptos sobre diseo estructurado de MYERS y YOURDON Primeros conceptos sobre anlisis estructurado GANE y SARSON Anlisis estructurado: DEMARCO y WEINBERG Nace MERISE SSADM (versin inicial) Information Engineering (versin inicial) Anlisis y Diseo estructurado para sistemas de tiempo real de WARD y MELLOR SSADM Versin 3 Anlisis y Diseo estructurado para sistemas de tiempo real de HATLEY y PIRHBAY METRICA (versin inicial) SSADM Versin 4 METRICA Versin 2 METRICA Versin 2.1 MTRICA Versin 3
Metodologas de Desarrollo de Software 12

Impacto de las Metodologas en el Entorno de Desarrollo (i)


ENTORNO DE DESARROLLO DE SOFTWARE ORGANIZACION DE DESARROLLO DE SOFTWARE EQUIPO DE DESARROLLO DE SOFTWARE
Seleccionan las herramientas PROCEDIMIENTOS DE GESTION Da informes a la direccin Coordinan y guan Dan una estructura visible

Metodologa: Ncleo del


Entorno de Desarrollo
Entorno Desarrollo:
La organizacin mantiene un Equipo de Desarrollo Procedimientos de Gestin Influyen y determinan el soporte automatizado (HW y SW) Coordinan y Guan a los Desarrolladores en el uso de las Tcnicas Soporte Automatizado Mejora la Productividad
13

METODOLOGIA DE DESARROLLO

soportan mtodos SOPORTE AUTOMATIZADO determinan las herramientas necesarias TECNICAS

Metodologas de Desarrollo de Software

Impacto de las Metodologas en el Entorno de Desarrollo (ii)


Implantacin de Metodologas en los Entornos de Desarrollo. Opciones:
Seleccionar entre un gran nmero de posibilidades y combinaciones de mtodos de gestin, tcnicas de desarrollo y soporte automatizado, para crear y desarrollar una Metodologa de Desarrollo Software ms apropiada. Analizar y evaluar las metodologas existentes y seleccionar la que ms se adapte a las necesidades.

Factores que influyen en las metodologas:


Tamao y estructura de la organizacin Tipo de aplicaciones a desarrollar
Metodologas de Desarrollo de Software 14

Caractersticas Deseables de una Metodologa


Existencia de reglas predefinidas Cobertura total del ciclo de desarrollo Verificaciones intermedias Planificacin y control Comunicacin efectiva Utilizacin sobre un abanico amplio de proyectos Fcil formacin Herramientas CASE Actividades que mejoren el proceso de desarrollo Soporte al mantenimiento Soporte de la reutilizacin de software
Metodologas de Desarrollo de Software 15

Clasificacin de las Metodologas


TIPO DE SISTEMA FORMALIDAD

ENFOQUE
ESTRUCTURADAS * Orientadas a Procesos * Orientadas a Datos

GESTIN - Jerrquicos - No jerrquicos * Mixtas

NO FORMAL

ORIENTADAS A OBJETOS

TIEMPO REAL

FORMAL

Metodologas de Desarrollo de Software

16

Metodologas Estructuradas (i)


Proponen la creacin de modelos del sistema que representan:
Los procesos Los flujos La estructura de los Datos

Enfoque Top-Down
De visin general a nivel de abstraccin ms sencillo

Tipos:
Orientadas a Procesos Orientadas a Datos
Estructuras de Datos Jerrquicas Estructuras de Datos no Jerrquicas

Mixtas
Metodologas de Desarrollo de Software 17

Metodologas Estructuradas (ii)


Metodologas Orientadas a Procesos
ENTRADA

PROCESO

SALIDA

Se apoyan en tcnicas grficas para obtener:


ESPECIFICACIN ESTRUCTURADA

Modelo grfico, particionado, descendente y jerrquico de los procesos del sistema y de los datos utilizados por stos. Componentes: Diagrama de Flujo de Datos Diccionario de Datos Especificaciones de Procesos
Metodologas de Desarrollo de Software 18

Metodologas Estructuradas (iii)


Metodologas Orientadas a Procesos
FASES DEL ANALISIS ESTRUCTURADO

Mtodo de DeMarco
1. Construir el modelo fsico actual (DFD fsico actual) 2. Construir el modelo lgico actual (DFD lgico actual) 3. Crear un conjunto de modelos fsicos alternativos 4. Estimar los costes y tiempos de cada opcin 5. Seleccionar un modelo 6. Empaquetar la especificacin

Mtodo de Gane y Sarson


1. Construir el modelo lgico actual (DFD lgico actual) 2. Construir el modelo del nuevo sistema: elaborar una especificacin estructurada y construir un modelo lgico de datos en tercera forma normal que exprese el contenido de los almacenes de datos. 3. Seleccionar un modelo lgico 4. Crear el nuevo modelo fsico del sistema 5. Empaquetar la especificacin

Metodologas de Desarrollo de Software

19

Metodologas Estructuradas (iv)


Metodologas Orientadas a Procesos
Metodologa de Yourdon/Constantine
Realizar los DFD del sistema Realizar el diagrama de estructuras Evaluar el diseo Preparar el diseo para la implantacin

Metodologas de Desarrollo de Software

20

Metodologas Estructuradas (v)


Metodologas Orientadas a Datos Jerrquicos
ENTRADA PROCESO SALIDA

La estructura de control del programa debe ser jerrquica y se debe

derivar de la estructura de datos del programa

El proceso de diseo consiste en definir primero las estructuras de los

datos de entrada y salida, mezclarlas todas en una estructura jerrquica de programa y despus ordenar detalladamente la lgica procedimental para que se ajuste a esta estructura

El diseo lgico debe preceder y estar separado del diseo fsico

Metodologas de Desarrollo de Software

21

Metodologas Estructuradas (vi)


Metodologas Orientadas a Datos No Jerrquicos
ENTRADA PROCESO SALIDA

Metodologa Ingeniera de la Informacin Planificacin: construir una arquitectura de la Informacin y una estrategia que soporte los objetivos de la organizacin Anlisis: comprender las reas del negocio y determinar los requisitos del sistema Diseo: establecer el comportamiento del sistema deseado por el usuario y que sea alcanzable por la tecnologa Construccin: construir sistemas que cumplan los tres niveles anteriores
Metodologas de Desarrollo de Software 22

Metodologas Orientadas a Objetos


Cambio en los principios de las metodologas estructuradas:
Estructurado: Examinar el sistema desde las funciones y tareas OO: Modelado del Sistema examinando el dominio del problema como un conjunto de objetos que interactan entre s Objetos: Encapsulan Funciones + Datos

Enfoques:
Revolucionarios o Puros La OO se entiende como un cambio profundo de las metodologas estructuradas que se ven como obsoletas OOD (Booch), CRC/RDD (Wirfs-Brock)

Sintetistas o Evolutivos nalisis y Diseo Estructurado se consideran como la base para el desarrollo OO OMT, UML
Metodologas de Desarrollo de Software 23

Metodologas Sistemas Tiempo Real


Sistemas que controlan un ambiente recibiendo datos, procesndolos y devolvindolos con la suficiente rapidez como para influir en dicho ambiente en ese momento Caractersticas:
Gestin de procesos concurrentes Manejo de interrupciones y prioridades Comunicacin y sincronizacin entre tareas Respuesta oportuna ante eventos externos Datos continuos o discretos

Metodologas:
Ampliaciones a la notacin del anlisis estructurado Metodologas OO para Sistemas Tiempo Real
Metodologas de Desarrollo de Software 24

Ejemplos de Metodologas de Desarrollo (i)


Metodologa MERISE:
Administracin Pblica Francia
NIVELES DATOS TRATAMIENTOS

CONCEPTUAL

Modelo Conceptual de Datos

Modelo Conceptual de Tratamientos

ORGANIZATIVO

Modelo Lgico de Datos

Modelo Organizativo de Tratamientos

FSICO

Modelo Fsico de Datos

Modelo Operativo de Tratamientos

Metodologas de Desarrollo de Software

25

Ejemplos de Metodologas de Desarrollo (ii)


Metodologa SSADM:
Administracin Pblica Reino Unido

SSADM
Estudio de Viabilidad Especificacin Lgica del Sistema Construccin y Pruebas Especificacin de Requisitos Diseo Fsico Anlisis de Requisitos

Planificacin Estratgica

Estudio completo

Desarrollo

Produccin

Administracin y Control

Metodologas de Desarrollo de Software

26

Ejemplos de Metodologas de Desarrollo (iii)


METRICA v.3
Administracin Pblica Espaa

1. Planificacin de Sistemas de Informacin (PSI) 2. Desarrollo de Sistemas de Informacin:


a. b. c. d. e. Estudio de Viabilidad del Sistema (EVS) Anlisis del Sistema de Informacin (ASI) Diseo del Sistema de Informacin (DSI) Construccin del Sistema de Informacin (CSI) Implantacin y Aceptacin del Sistema (IAS)

3. Mantenimiento de Sistemas de Informacin (MSI)

Metodologas de Desarrollo de Software

27

You might also like