Nothing Special   »   [go: up one dir, main page]

Ingenieria de Software

Descargar como ppt, pdf o txt
Descargar como ppt, pdf o txt
Está en la página 1de 47

UCLA – Decanato de Ciencias y Tecnología

Departamento de Sistemas

INGENIERÍA DE SOFTWARE.
PROCESOS DE DESARROLLO DE
SISTEMAS

Prof. Ana Mercedes Díaz, Prof. Rómulo Domínguez


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

CONTENIDO

• Definición de Ingeniería del Software


• Definición de Proceso de Desarrollo
• Modelos de Desarrollo
• Metodologías de Desarrollo
• Método Balanceado Blue Watch

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

• Los Sistemas de Información han


cambiado la forma en que operan las
organizaciones actuales.

• A través del uso de los Sistemas de


Información se logran importantes mejoras
en la gestión empresarial

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

• Automatizan los procesos de negocio,


• Suministran una plataforma de
información necesaria para la toma de
decisiones y, lo más importante,
• Su utilización encamina a las tan
cotizadas “ventajas competitivas”.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE INGENIERÍA DE SOFTWARE

• La Ingeniería de Software es una


disciplina que comprende todos los
aspectos de la producción de sistemas
desde las etapas iniciales de la
especificación del sistema, hasta el
mantenimiento de éste después de que se
utiliza.
(Sommerville, 2005)

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE INGENIERÍA DE SOFTWARE

• Aplican Métodos
• Desarrollan o crean métodos

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE INGENIERÍA DE SOFTWARE

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE INGENIERÍA DE SOFTWARE

• La Ingeniería de Software es la
aplicación de un enfoque sistemático,
disciplinado y cuantificable hacia el
desarrollo, operación y mantenimiento del
software.

Pressman, 2010

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE PROCESOS DE DESARROLLO

• Una de las maneras para crear sistemas de


forma sistemática y disciplinada es a través de
los procesos o metodologías de desarrollo
de sistemas.
• Un proceso de desarrollo de sistemas es un
conjunto de actividades y resultados asociados
que conducen a la producción de un producto
software.
Sommerville, 2005
• Existen cuatro actividades fundamentales de
procesos que son comunes a todos los
procesos de desarrollo de sistemas:

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE PROCESOS DE DESARROLLO

• Especificación del sistema: donde los clientes


e ingenieros definen el sistema a producir y las
restricciones sobre su operación.
• Desarrollo del sistema: donde el software se
diseña y programa.
• Validación del sistema: donde el sistema se
valida para asegurar que es lo que el cliente
requiere.
• Evolución del sistema: donde el sistema se
modifica para adaptarlo a los cambios
requeridos por el cliente y el mercado.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE PROCESOS DE DESARROLLO

• Además de estas actividades fundamentales, Pressman


(Pressman, 2010) menciona un conjunto de
“actividades protectoras”, que se aplican a lo largo de
todo el proceso del software. Entre ellas se tienen:
– Seguimiento y control de proyecto de software.
– Revisiones técnicas formales.
– Garantía de calidad del software.
– Gestión de configuración del software.
– Preparación y producción de documentos.
– Gestión de reutilización.
– Mediciones.
– Gestión de riesgos.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DEFINICIÓN DE PROCESOS DE DESARROLLO

• Ningún proceso de desarrollo de sistemas es


universal, los procesos varían porque tienen
lugar en diferentes contextos, desarrollan
diferentes tipos de sistemas y se ajustan a
diferentes tipos de restricciones del negocio
(plazos, costos, calidad y fiabilidad).
Jacobson, 2000
• Por consiguiente un proceso de desarrollo de
sistemas del mundo real debe ser adaptable
y configurable para cumplir con las
necesidades reales de un proyecto y-o
organización concreta.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

MODELOS DE PROCESOS DE
SOFTWARE

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

MODELOS DE DESARROLLO

• Codificar y corregir
• Modelo en cascada
• Desarrollo basado en prototipos
• Desarrollo formal de sistemas (desarrollo a
través de transformaciones)
• Desarrollo basado en reutilización
• Procesos Iterativos
– Desarrollo incremental
– Desarrollo en espiral o iterativo - incremental

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGÍAS PARA EL
DESARROLLO DE SISTEMAS

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGÍAS DE DESARROLLO

• Un proceso de software detallado y completo


suele denominarse “Metodología”.
• Las metodologías se basan en una combinación
de los modelos de proceso genéricos (cascada,
evolutivo, incremental, etc.).
• Adicionalmente una metodología debería definir
con precisión los artefactos, roles y actividades
involucrados, junto con prácticas y técnicas
recomendadas, guías de adaptación de la
metodología al proyecto, guías para uso de
herramientas de apoyo, etc.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGÍAS DE DESARROLLO

• Habitualmente se utiliza el término


“método” para referirse a técnicas,
notaciones y guías asociadas, que son
aplicables a una (o algunas) actividades
del proceso de desarrollo, por ejemplo,
suele hablarse de métodos de análisis y/o
diseño.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGÍAS DE DESARROLLO

Metodologías Estructuradas

Metodologías Tradicionales
Metodologías de
Desarrollo de Sistemas
Metodología OO
Metodologías Ágiles

Metodologías Híbridas o
Balanceadas

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS ESTRUCTURADAS

• Las métodos estructurados comenzaron a


desarrollarse a fines de los 70’s con la Programación
Estructurada, luego a mediados de los 70’s aparecieron
técnicas para el Diseño (por ejemplo: el diagrama de
Estructura) primero y posteriormente para el Análisis
(por ejemplo: Diagramas de Flujo de Datos).
• Ejemplos de metodologías estructuradas de ámbito
gubernamental: MERISE (Francia), MÉTRICA (España),
SSADM (Reino Unido). Ejemplos de propuestas de
métodos estructurados en el ámbito académico: Gane &
Sarson, Ward & Mellor, Yourdon & DeMarco e
Information Engineering, MEDSI.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS OO

• Su historia va unida a la evolución de los


lenguajes de programación orientada a
objeto. A fines de los 80’s comenzaron a
consolidarse algunos métodos Orientados
a Objeto.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS OO

• En 1995 Booch y Rumbaugh proponen el


Método Unificado con la ambiciosa idea
de conseguir una unificación de sus
métodos y notaciones, que posteriormente
se reorienta a un objetivo más modesto,
para dar lugar al Unified Modeling
Language (UML), la notación OO más
popular en la actualidad.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS OO

• Algunos métodos OO con notaciones


predecesoras de UML son: OOAD (Booch),
OOSE (Jacobson), Coad & Yourdon, Shaler &
Mellor y OMT (Rumbaugh).
• Algunas metodologías orientadas a objetos que
utilizan la notación UML son: Rational Unified
Process (RUP), MÉTRICA (que también soporta
la notación estructurada), MERINDE, WATCH.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS TRADICIONALES

• Las Metodologías Tradicionales son aquellas


que están guiadas por una fuerte planificación
durante todo el proceso de desarrollo; llamadas
también metodologías tradicionales o clásicas,
donde se realiza una intensa etapa de análisis y
diseño antes de la construcción del sistema.
• Ejemplos: RUP, Métrica, Merinde, Gray Watch.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS ÁGILES

• Un proceso es ágil, el desarrollo de


software es incremental (entregas
pequeñas de software, con ciclos rápidos),
cooperativo (cliente y desarrolladores
trabajan juntos constantemente con una
cercana comunicación), sencillo (el
método en sí mismo es fácil de aprender y
modificar, esta internalizado), y adaptable
(permite realizar cambios de último
momento) (Abrahamsson, 2002).
Prof. Ana Mercedes Díaz
UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS ÁGILES

Entre las metodologías ágiles identificadas en


(Abrahamsson, 2002):
• Extreme Programming – XP (Beck, 2000).
• Scrum ((Schwaber, 1995), (Schwaber y Beedle, 2002)).
• Familia de Metodologías Crystal (Cockburn, 2002).
• Feature Driven Development (Palmer y Felsing, 2002).
• Proceso Unificado Rational, una configuración ágil
(Kruchten, 1996)).
• Dynamic Systems Development Method (Stapleton,
1997).
• Adaptive Software Development (Highsmith, 2000).
• Open Source Software Development (O´Reilly, 1999).

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

METODOLOGIAS HÍBRIDAS O BALANCEADAS

• Las Metodologías Híbridas retoman las ventajas de las


metodologías tradicionales y las ágiles.
• De esta manera, son una combinación de las mejores
prácticas existentes dentro de ellas.
• La nueva tendencia en Ingeniería de Software es
diseñar Metodologías Híbridas.
• Esta propuesta es atribuida a Ivar Jacobson, uno de los
tres creadores de UML (Unified Modeling Language,
Lenguaje Unificado de Modelado, Object Management
group, 2011); creador de UP (Unified Process, Proceso
Unificado), y ahora creador de EssUP (Essential Unified
Process). EssUP (Jacobson, 2011) es una metodología
híbrida que combina RUP con Scrum.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DIFERENCIAS ENTRE PROCESOS ÁGILES Y DISCIPLINADOS

Procesos Ágiles basados Procesos Tradicionales


en el Manifiesto Ágil basados en la Calidad
que le da mayor valor a: Total que da mayor
• Individuos y su valor a:
interacción. • El proceso de desarrollo.
• Código que funcione. • Los productos incluyendo
• Colaboración con el al código.
cliente. • Contrato con el cliente.
• Respuesta al cambio. • Seguimiento de un plan.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DIFERENCIAS ENTRE PROCESOS ÁGILES Y DISCIPLINADOS

• Centralizados en las • Centrados en los


personas. procesos.
• Énfasis en el código y la • Énfasis en los productos
cooperación. y en la organización.
• Procesos mínimos con • Procesos bien definidos y
poca documentación documentados.
• Formalidad del proceso • Alta formalidad en el
reducida al mínimo. proceso de desarrollo.
• Procesos no repetibles. • Procesos repetibles.
• Resultados dependen del • Resultados predecibles.
equipo de trabajo. • Conocimiento explícito.
• Conocimiento tácito
(inferido).

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DIFERENCIAS ENTRE PROCESOS ÁGILES Y DISCIPLINADOS

Principales Principales
representantes: representantes:
• XP • RUP
• SCRUM • OOSE
• Crystal • OOAD
• FDD • Métrica
• . • Merinde
• . • Gray Watch
• .

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

DIFERENCIAS ENTRE PROCESOS ÁGILES Y DISCIPLINADOS

Métodos Ágiles Métodos Tradicionales


• Proyectos pequeños. • Grandes proyectos.
• Grupos pequeños. • Grupos grandes (20 a 30
• Ambientes cambiantes. desarrolladores).
• Planes internalizados. • Ambientes estables.
• Control cualitativo. • Planes documentados.
• Ejemplos: XP, SCRUM. • Control cuantitativo.
• Ejemplos: RUP, Merinde.

Tendencia Balanceo entre tradicional y ágil,

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

PRÁCTICAS ÁGILES EFECTIVAS

Prácticas ágiles efectivas:


• Satisfacer al cliente mediante entregas tempranas y continuas de
software.
• Los requisitos cambiantes son bienvenidos.
• Entrega frecuente de software que opere.
• Usuarios y desarrolladores trabajan juntos diariamente.
• Individuos motivados.
• Comunicación de la información vía conversación cara a cara.
• Medir el progreso a través del software.
• Desarrollo sostenible.
• Dar atención a la excelencia técnica.
• Simplicidad: maximizar la cantidad de trabajo no realizado.
• Grupos autoorganizados.
• Retrospectiva: reflexionar como ser más efectivo.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH
MÉTODO BALANCEADO

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Blue Watch es un método de desarrollo de


software orientado a aplicaciones Web de
mediana complejidad y-o tamaño.
– Ejemplos de aplicaciones web:
• Comercio electrónico
• Gobierno electrónico
• Sistemas de información web
• Portales corporativos
• Esta dirigido a grupos de desarrollo de pequeño
tamaño.
– De 3 a 10 desarrolladores

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Es un método balanceado
– Equilibrio entre disciplina y agilidad
– Produce un mínimo de documentos
• Esta basado en:
• Desarrollo de software guiado por modelos (MDA)
• Transformación de modelos apoyado en
herramientas CASE.
• Uso de prácticas efectivas tanto ágiles como
tradicionales o disciplinadas.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Blue Watch
– Es versionado, iterativo e incremental.
– Es un método balanceado.
– Es completo
– Esta solidamente fundamentado

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Blue Watch utiliza tres ciclos de desarrollo


disferentes:

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Blue Watch esta compuesto por tres


modelos:
– Modelo de productos
– Modelos de proceso
– Modelo de actores.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH
MODELO DE PRODUCTOS
Productos Técnicos Productos de Gestión Productos de Soporte

Modelo de negocio Visión del producto Proceso y estándares de


desarrollo

Documento de Plan del proyecto Plan de validación y


Requisitos verificación
Documento de Diseño Planes de iteraciones y Plan de gestión de
entregas configuración
Especificaciones de Plan de pruebas Plan de riesgos
Pruebas

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• MODELO DE PROCESO: Relación entre


proceso y producto

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• El ciclo de la aplicación

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Ciclo de versión y ciclo del incremento

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Modelo de Actores

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Conclusiones:
– En el contexto empresarial, el desarrollo de
aplicaciones web es complejo.
• Por muy pequeña que sea la aplicación, su complejidad no
puede menospreciarse.
– Los enfoque disciplinados o tradicionales y los ágiles
son opuestos, pero se pueden combinar.
– Los métodos balanceados deben reducir:
• Documentos.
• Reducir procesos gerenciales y de apoyo sin perder sus
objetivos.

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

BLUE WATCH

• Bibliografia:
– Ian Sommerville
– Roger Pressman
– Tour ágil 2011, conferencia Prof. Jonás
Montilva.
– www.semat.org
– RUP: Jacobson, Booch y Rumbaught

Prof. Ana Mercedes Díaz


UCLA – Decanato de Ciencias y Tecnología
Departamento de Sistemas

Gracias por su Atención!!!!

Sesión de Preguntas y Respuestas…

Prof. Ana Mercedes Díaz

También podría gustarte