You are on page 1of 43

III JORNADAS INFORMTICAS UTSAM-EI 2008

METODOLOGAS DE DESARROLLO DE
SOFTWARE SEGN LOS PARADIGMAS

ESTRUCTURADO Y/U ORIENTADO A OBJETOS

30 de agosto de 2013

ING. BERTHA MAZON,

Pg. 1

Para reflexionar
Qu es lo ms difcil en la construccin de un software?
Lo ms difcil en la construccin de un sistema software es decidir precisamente qu construir... F. P. Brooks, 1987
Frederick P. Brooks J. fue jefe del proyecto OS/360 sistema operativo de IBM. Es autor del libro The mythical Man-Month, un clsico de la Ingeniera del Software escrito en 1975 y reeditado 20 aos despus y que an sigue vigente. Habla de los problemas relacionados con el desarrollo de proyectos software, y su analoga con otros proyectos de ingeniera.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 2

AGENDA
FUNDAMENTOS DE LA INGENIERIA DE SOFTWARE Conceptos de Ingeniera de SW Gestin del Proyecto de Software Anlisis y Diseo Estructurado del Software: Ingeniera de Software Orientada a Objetos METODOLOGAS DE DESARROLLO DE SOFWARE: Mtrica II Mtrica III RUP Metodologas giles Metodologas Hbridas

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 3

Conceptos generales
Qu es el software? Qu es la ingeniera? Qu es la ingeniera del software? Establecimiento y uso de principios de ingeniera para obtener software econmico que trabaje de forma eficiente en mquinas reales (Fritz Bauer, 1968-conferencia OTAN). Ingeniera del Software es la aplicacin practica del conocimiento cientfico en el diseo y construccin de programas de computadora y la documentacin necesaria requerida para desarrollar, operar (funcionar) y mantenerlos (Bohem, 1976). Disciplina para producir software de calidad desarrollado sobre las agendas y costes previstos y satisfaciendo los requisitos (S. Schach 1990, Software Engineering). Ingeniera al software es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al desarrollo, operacin (funcionamiento) y mantenimiento del software (IEEE, 1993)
30 de agosto de 2013 ING. BERTHA MAZON Pg. 4

Hace cuanto tiempo surgi la Ingeniera de Software?


(< 1970) Dominios sencillos Software diseado a medida Carencia de mtodos sistemticos Programar software considerado como un arte. (1968) Fritz Bauer, utiliza por primera vez el trmino Ingeniera del Software, en la 1era. conferencia sobre desarrollo de software patrocinada por el Comit de Ciencia de la OTAN celebrada en Garmisch, Alemania. (>1968) Dominios complejos Aplicaciones variadas y complejas Separacin desarrollador cliente Exigencias de calidad Desarrollo en grupos Crisis del software Preocupacin de universidades y organismos de estandarizacin (SEI, IEEE, ISO) por el desarrollo de estndares, metodologas, tcnicas y herramientas para ISW.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 5

Crisis del Software


Proyectos para el desarrollo de sistemas de software
Fracaso 2004 2000 1998 1995 1994 31% 19% 23% 28% 40% Problemtico 53% 49% 46% 33% 53% xito 29% 28% 26% 27% 16%

Proyecto no terminado, nunca se llega a utilizar Desbordamiento de agendas o costes. Las funcionalidades no cubren las expectativas. Problemas funcionales Proyecto realizado en el tiempo previsto, con los costes previstos, con la funcionalidad esperada y ofreciendo un funcionamiento correcto. Fuente: Standish Group Survey,
30 de agosto de 2013 ING. BERTHA MAZON Pg. 6

Crisis del Software


CAUSAS: Imprecisin en la planificacin del proyecto y estimacin de los costos. Baja calidad del software. Dificultad de mantenimiento de programas con un diseo poco estructurado, etc. Por otra parte se exige que el software sea eficaz y barato tanto en el desarrollo como en la compra. Tambin se requiere una serie de caractersticas como fiabilidad, facilidad de mantenimiento y de uso, eficiencia, etc.
30 de agosto de 2013 ING. BERTHA MAZON Pg. 7

Introduccin Ingeniera del Software Principales estndares y modelos


La Ingeniera del Software es una ingeniera muy joven que necesitaba:

Definirse a s misma: Cules son las reas de conocimiento que la comprenden?


SWEBOK: Software Engineering Body of knowledge

Definir los procesos que intervienen en el desarrollo, mantenimiento y operacin del


software

ISO/IEC 12207: Procesos del ciclo de vida del software

De las mejores prcticas, extraer modelos de cmo ejecutar esos procesos para evitar
los problemas de la crisis del software CMM / CMMI ISO/IEC TR 15504

Definir estndares menores para dibujar criterios unificadores en requisitos, pruebas,


gestin de la configuracin, etc.
IEEE 830 - IEEE 1362 - ISO/IEC 14764
Fuente: http://www.navegapolis.net

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 8

Introduccin Ingeniera del Software

Conceptos bsicos
Mtodo
Proceso a seguir para resolver una situacin o problema con un orden y objetivos establecidos. Proceso {actividades} {tareas}

Tcnica

estrategia para desarrollar una actividad de un mtodo mtodo + tcnica + soporte documental

Metodologa

Herramienta

soporte automatizado, Ejm. CASE, CARE

Producto

Resultado de cada etapa, entregables

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 9

Paradigmas de la Ingeniera de Software


Metodologa vs Ciclo de Vida Una metodologa puede seguir uno o varios modelos de ciclo de vida, es decir, el ciclo de vida indica qu es lo que hay que obtener a lo largo del desarrollo del proyecto pero no cmo hacerlo. La metodologa indica cmo hay que obtener los distintos productos parciales y finales
30 de agosto de 2013

Mtodo genrico

Definicin Desarrollo Mantenimiento

Modelo en cascada CICLOS DE VIDA Modelo en espiral

O PARADIGM AS

Modelo incremental

ING. BERTHA MAZON

Pg. 10

PROTOTIPOS

Ing. SW Genrica Fase de Definicin


Anlisis de sistemas

papel de cada elemento de un sistema informtico, uno de los cuales es el software

Planificacin del proyecto software

asignacin de recursos, tareas, costes, trabajos, tiempo ...


descripcin detallada del procesamiento de informacin y funciones del software, rendimientos, interfaces, restricciones, ... Ciclos de Vida

Anlisis de requisitos software

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 11

Ing. SW Genrica Fase de Desarrollo


Diseo

traduccin de los requisitos a un mecanismo de solucin software

Codificacin

traduccin a un lenguaje de programacin (ejecutable)

Pruebas e integracin

comprobacin de partes que son ensambladas en conjuntos progresivamente ms grandes Ciclos de Vida

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 12

Ing. SW Genrica Fase de Mantenimiento


Prevencin y Correccin

de errores

Adaptacin

por evolucin del entorno

Modificacin

por cambio de requisitos para ampliar o reforzar el sistema Ciclos de Vida

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 13

Ciclo de vida Cascada

Requisitos Requisitos Diseo Codificacin Codificacin Pruebas Integracin

Diseo

estructurado en secuencia de etapas Lineal Rgido Monoltico

Pruebas

Integracin

Operacin y mantenimiento

Operacin y mantenimiento

Ciclos de Vida
Pg. 14

30 de agosto de 2013

ING. BERTHA MAZON

Modelo incremental
Diseo REQUISITOS Codificacin Pruebas Integracin Operacin Mantenim. Sub-sistema

Diseo Codificacin

Pruebas Integracin

Operacin Mantenim.

Sub-sistema

Diseo Codificacin

Pruebas

entrega de una parte, evaluacin, ajuste y ampliacin Implementacin incremental Desarrollo incremental Prototipo evolutivo
ING. BERTHA MAZON

Ciclos de Vida
Pg. 15

30 de agosto de 2013

SISTEMA

Modelo en espiral
guiado por la identificacin y eliminacin de riesgos potenciales metamodelo: incremental, prototipado

Ciclos de Vida
30 de agosto de 2013 ING. BERTHA MAZON Pg. 16

INGENIERA DE SISTEMAS Algunas definiciones


Ingeniera de sistemas comprende la funcin de gestionar todo el esfuerzo de desarrollo para conseguir un balance ptimo entre todos los elementos del sistema. Es el proceso que transforma la necesidad operacional en la descripcin de los parmetros del sistema, e integra esos parmetros para mejorar la eficiencia general del sistema. Defense Systems Management College, 1989 La principal funcin de la ingeniera de sistemas es garantizar que el sistema satisface los requisitos durante todo el ciclo de vida. Todas las dems consideraciones se alinean sobre esta funcin. Wymore 1993 La ingeniera de sistemas define el plan para gestionar las actividades tcnicas del proyecto. Identifica el ciclo de desarrollo y los procesos que ser necesario aplicar. Desde la Ingeniera de sistemas se desarrolla la lnea base tcnica para todo el desarrollo, tanto de hardware como de software.
ING. BERTHA MAZON Pg. 17

30 de agosto de 2013

INGENIERA DE SISTEMAS Ingeniera de sistemas Gestin de proyectos Ingeniera del Soft.

Gestin de proyectos

Planificacin Organizacin Personal Direccin Control

Ingeniera de sistemas

Ingeniera del software

Definicin del problema Anlisis de la solucin Planificacin de procesos Control de procesos Evaluacin del producto

Diseo del software Codificacin Pruebas unitarias Integracin del subsistema de software

Fuente: http://www.navegapolis.net

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 18

El tpico proyecto
En el que se da la siguiente situacin:
- Cmo va el proyecto?

- Bien, bien.

Dos semanas despus - Cmo va el proyecto?


- Bien, bien.

Tres semanas despus - El lunes hay que entregar el proyecto.- No se por qu pero los proyectos se entregan los lunes.
- El lunes !!?. Todava falta mucho!!

- Cmo? Me dijiste que el proyecto iba bien!! Arrglatelas como quieras, pero el proyecto tiene que estar terminado para el lunes.

Si no sabes el tamao del proyecto y no sabes cuanto llevas hecho, nunca sabrs cuando vas a terminar
30 de agosto de 2013 ING. BERTHA MAZON Pg. 19

Anlisis y diseo Estructurado del SW


Definicin de Requisitos del SW, Planificacin del SW Anlisis Estructurado
Tcnica de modelado del flujo, contenido y transformacin de la informacin que fluye por un sistema. Tcnicas: DFD, MER,DTE y sus respectivos diccionarios Naci como complemento al Diseo Estructurado. El trmino Anlisis Estructurado fue popularizado por DeMarco a fines de los 70. Yourdon, Gane y Sarson y otros proponen variaciones a la propuesta original. A mediados de los 80 Ward y Mellor proponen ampliaciones para sistemas de tiempo real.

Diseo Estructurado
El proceso de aplicar tcnicas y principios con el propsito de definir un producto con los suficientes detalles para permitir su realizacin fsica

Diseo + codificacin: consume el 75% del coste de ingeniera sin contar el mantenimiento. Actividades del diseo: Diseo de datos Diseo arquitectnico Diseo de interfaces Diseo procedimental

Codificacin, Pruebas, Implantacin y Mantenimiento


30 de agosto de 2013 ING. BERTHA MAZON Pg. 20

Ingeniera de SW Orientada a Objetos


Anlisis
Caractersticas comunes de los documentos: identificacin, ttulo, versin, fecha, revisin, cdigo de documento. Documentos de anlisis Especificacin de requisitos Diagramas de casos de uso Escenarios y sub-escenarios Prototipos

Diseo
Modelado de Clases, objetos y mecanismos de colaboracin Diagramas de interaccin: secuencia y colaboracin Diagramas de clases Diagramas de objetos Modelo de comportamiento de clases y objetos: Diagramas de actividades y estados Construccin del modelo fsico: diagramas de componentes y de despliegue

Implementacin
A partir de los diagramas de componentes y de despliegue se toman las decisiones iniciales Se implementan las clases de un componente a partir de los diagramas de clases y diagramas de objetos A partir de los diagramas de actividades y de estado se implementa el comportamiento de los mtodos de cada clase

Pruebas
Prueba unitaria de cada clase Prueba de mdulos Pruebas de integracin se realiza siguiendo los escenarios, diagramas de interaccin, actividades y estados

Mantenimiento
Informe de errores Nueva especificacin de requisitos -- > nueva versin Pg. 21

30 de agosto de 2013

ING. BERTHA MAZON

METODOLOGAS DE DESARROLLO DE SOFTWARE

Mtrica II Mtrica III RUP Metodologas giles Metodologas Hbridas


30 de agosto de 2013 ING. BERTHA MAZON Pg. 22

METRICA II
Desarrollada por El CREI (Centro Regional para la Enseanza de la Informtica) del Ministerio para las Administraciones Pblicas (MAP) de Espaa. (en 1989 V. 1, 1993 la V. 2, 1995 la V. 2.1) Utiliza el enfoque estructurado del SW Objetivo:
Crear un entorno que permita al equipo de trabajo construir Sistemas, que: den solucin a los objetivos considerados prioritarios en los departamentos vinculados, que estos se desarrollen cuando el usuario los necesite y de acuerdo con los presupuestos y duracin estimados, que sea de calidad para que se mantengan fcilmente y a su vez soportar los cambios futuros de la organizacin. Todo ello utilizando un vocabulario comn y un conjunto completo de tareas y productos finales que ayuden a construir con xito Sistemas de Informacin

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 23

Estructura de Mtrica II

Consta de 3 guas: de Referencia, Tcnica y de Usuario Se compone de FASES, MODULOS, ACTIVIDADES Y TAREAS Planificacin del proyecto de software que sirva de gua al equipo de trabajo e involucre a los usuarios en su desarrollo y en sus puntos decisivos. Un conjunto de productos finales a desarrollar. Un conjunto de tcnicas para obtener los productos finales. Las diferentes responsabilidades y funciones de los miembros del equipo de proyecto y de los usuarios.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 24

Fases de la Metodologa Mtrica 2


FASE 0 Plan de sistemas de informacin FASE 1 Anlisis de sistemas FASE 2 Diseo de sistemas FASE 3 Contruccin de sistemas
Tcnicas matriciales, anlisis coste-beneficio, entrevistas, reuniones tcnicas Diagramas de flujo de datos Modelado de datos Historia de la vida de las entidades Entrevistas Diseo estructurado: de datos, arquitectnico, de interfaces y procedimental Construir el sistema a partir de caractersticas fsicas, ejecucin de pruebas unitarias, de integracin Probar el sistema en el entorno real: pruebas de aceptacin Capacitacin a los usuarios Procedimientos de puesta en produccin
ING. BERTHA MAZON Pg. 25

FASE 4 Implantacin de sistemas


30 de agosto de 2013

Mtrica III - Origen

Creadores: MAP, otros ministerios y la empresa consultora Coopers & Lybrand


30 de agosto de 2013 ING. BERTHA MAZON Pg. 26

Mtrica III - procesos

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 27

Mtrica III vs Mtrica II

Planificacin del Sistema de Informacin (SI) Estudio de viabilidad del SI Anlisis del SI de informacin estructurado y OO Diseo del SI estructurado y OO Construccin del sistema de informacin Implantacin y Adaptacin del sistema

Planificacin del Sistema de Informacin Anlisis de requisitos del sistema Especificacin funcional del sistema Diseo tcnico del sistema

Diseo de componentes del sistema


Diseo de pruebas Proceso de Implantacin y Adaptacin

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 28

Aportaciones Mtrica III


Compatibilidad con los ltimos estndares en Calidad e Ingeniera del Software Interfaz con Procesos de Gestin y Control Cubre desarrollos estructurados y orientados a objeto Ampliacin para tecnologas Cliente/Servidor e Interfaces de Usuario Grficas Tcnicas soportadas por varias herramientas CASE

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 29

RUP
RUP es un proceso de desarrollo de software: Forma disciplinada de asignar tareas y responsabilidades en una empresa de desarrollo (quin hace qu, cundo y cmo). Objetivos: Asegurar la produccin de software de calidad dentro de plazos y presupuestos predecibles. Dirigido por casos de uso, centrado en la arquitectura, iterativo (mini-proyectos) e incremental (versiones). Es tambin un producto: Desarrollado y mantenido por Rational (de propiedad comercial). Actualizado constantemente para tener en cuenta las mejores prcticas de acuerdo con la experiencia.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 30

RUP
RUP es una gua de cmo usar UML de la forma ms efectiva Aumenta la productividad de los desarrolladores mediante acceso a: Base de conocimiento, plantillas y herramientas. Se centra en la produccin y mantenimiento de modelos del sistema ms que en producir documentos. Existen herramientas de apoyo a todo el proceso: Modelamiento visual, programacin, pruebas, etc.
30 de agosto de 2013 ING. BERTHA MAZON Pg. 31

RUP. Estructura

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 32

Mtodos giles
Origen de los mtodos giles En el 2001, 17 crticos de estos modelos, convocados por Kent Beck, que acababa de definir una nueva metodologa denominada Extreme Programming, se reunieron en Salt Lake City para discutir sobre los modelos de desarrollo de software. En la reunin se acu el trmino Mtodos giles Alternativa a las metodologas formales, (CMM-SW, SPICE), consideradas excesivamente pesadas y rgidas por su carcter normativo y fuerte dependencia de planificaciones detalladas, previas al desarrollo. Se define el Manifiesto gil Surgen metodologas hbridas que renen mejores caractersticas de los mtodos formales y giles.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 33

Mtodos giles
Manifiesto gil (2001)
Estamos poniendo al descubierto mejores mtodos para desarrollar software, hacindolo y ayudando a otros a que lo hagan. Con este trabajo hemos llegado a valorar:

A los individuos y su interaccin


El software que funciona La colaboracin con el cliente La respuesta al cambio

por encima
por encima por encima por encima

de los procesos y las herramientas


de la documentacin exhaustiva la negociacin contractual seguimiento de un plan

Aunque hay valor en los elementos de la derecha, valoramos ms los de la izquierda

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas 30 de agosto de 2013 ING. BERTHA MAZON http://agilemanifesto.org/ Pg. 34

Principales mtodos giles


Extreme Programming (XP) Scrum Adaptive Software Development (ASD) Crystal Clear y otras metodologas de la familia Crystal DSDM Feature Driven Development Lean software development
Todos estos mtodos han surgido a partir del cumplimiento de los principios del manifiesto gil.
30 de agosto de 2013 ING. BERTHA MAZON Pg. 35

Metodologa Hbrida (MH) (Ejm.)


Recoge las mejores prcticas de las metodologas giles y mtodos formales Pilares fundamentales: Equipo, roles y fases Se definen roles, cada miembro cumple tareas y funciones especficas Los roles no son fijos y se pueden alternar segn convenga, una persona puede tener ms de un rol Apadrinar una figura o logo a travs del cual se identifique las cualidades caractersticas del proyecto que se llevara a cabo
30 de agosto de 2013 ING. BERTHA MAZON Pg. 36

Metodologa Hbrida (MH) Roles

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 37

Metodologa Hbrida (MH) Fases

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 38

Metodologa Hbrida (MH) Ciclo de Vida

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 39

Comparativa de metodologas
Actividades
Captura de Requisitos Planificacin del proyecto Anlisis y diseo estructurado del SW Anlisis y diseo Orientado a Objetos Codificacin Pruebas Mantenimiento X X X

Mtrica II
X X X

Mtrica III
X X X X X X X

RUP
X X

MA
X X
(rpido)

MH
X X

X X X X

Algunos mtodos

X X X

X X X

Ciclo de vida Iterativo

X (muy rgido)

X (muy rgido)

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 40

CONCLUSIONES
Las personas, aunque sean buenas, no pueden realizar bien su trabajo si el procedimiento no les gua. Es vital que las organizaciones adquieran un procedimiento (metodologa) si quieren realizar SW de calidad. Estandarizar el desarrollo de software a travs de procesos definidos que permitan realizar proyectos de un modo repetitivo. Si se quiere mejorar es necesario un cambio de mentalidad en toda la organizacin, un proceso de formacin continua, paciencia, tiempo y disciplina La disciplina debe ser asumida y no impuesta.... Las personas odiamos que nos impongan las cosas y tenemos miedo al cambio.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 41

BIBLIOGRAFA
"SWEBOK, Software Engineering Body of Knowledge". 2004. www.swebok.org Sommerville, I., "Software Engineering. 6th edition". Addison Wesley. 2000 Pressman R.S. "Ingeniera del software. Un enfoque prctico". McGrawHill/Interamericana, 5 edicin, 2001. Traducido del ingles "Software Engineering: A Practitioners Approach", McGrawHill, European adaption. Rational. http://www.rational.com IEEE Std 830-1998, IEEE Recommended Practice for Software Requirements Specifications: IEEE, 1998. Jacobson, I., Booch, G. y Rumbaugh, J., "El proceso unificado de modelado", Addison Wesley, 2000. Rolland C. Praskash, N. From conceptual modeling to requirement engineering, Annals of software engineering 10 (2000) 151-176 Navegapolis.net. http://www.navegapolis.net Vico.org. http://www.vico.org S. L. Pfleeger, "Software Engineering: Theory and Practice," Second ed:. Prentice-Hall, 2001.

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 42

Preguntas, dudas o aclaraciones?


Nadie puede motivar a nadie. Lo ms que se puede hacer es crear el escenario para que la persona se motive, si encuentra suficientes razones para ello Luis Puchol.

GRACIAS POR SU ATENCIN!!!

30 de agosto de 2013

ING. BERTHA MAZON

Pg. 43

You might also like