1
Construcción de una casa para “fido”
2
Construcción de una casa
Construida eficientemente y
en un tiempo
razonable por un equipo
Requiere:
Modelado
Proceso bien definido
Herramientas más 3
Construcción de un rascacielos
4
Problemas de la Industria de
Software en la actualidad
1 Tendencia al crecimiento
del volumen y complejidad
de los productos.
2 Proyectos excesivamente tardes
y se exige mayor productividad y
calidad en menos tiempo.
3 Insuficiente personal calificado.
¿ Por qué fallan los Proyectos
? de Software?
1 Planificación Irreal
2 Mala Calidad del Trabajo
3 Personal Inapropiado
4 No Controlar los Cambios
6
Planificación Irreal 1
CAUSAS
• Prácticas pobres de ingeniería
• Carencia de métricas de calidad
• Inadecuado entrenamiento en calidad
• Decisiones de los directivos guiadas
por una planificación irreal
8
2
Mala Calidad del Trabajo
CONSECUENCIAS
• Tiempos de pruebas impredecibles
• Productos con muchos defectos
• Demoras en la aceptación de los usuarios
• Extensa garantía de servicio y reparaciones
“Una pobre calidad afecta la
planificación y torna ineficente el
proceso de prueba” 9
3
Personal Inapropiado
• Demora del personal
PROBLEMAS • Escaso personal
COMUNES • Miembros del equipo a tiempo parcial
• Personal con conocimientos
inapropiados
• El trabajo se demora o
CONSECUENCIAS descuida
• Trabajo ineficiente
• Sufre la moral del equipo
Con independencia del plan, los
proyectos deben comenzar en tiempo y
con todo el personal. 10
Cambios NO controlados 4
HECHOS a RECORDAR:
• Siempre ocurren cambios en los requerimientos.
• Los planes del proyecto se basan en el alcance del
trabajo conocido.
• Los cambios siempre requieren más trabajo.
• Sin planes detallados, los equipos no pueden
estimar el efecto o magnitud de los cambios.
• Si los equipos no controlan cada cambio, se
pierde gradualmente el control del plan del
proyecto
11
¿Cómo enfrentarla?
?
Las organizaciones
1requieren:
Desarrollar o adquirir una disciplina
en el desarrollo del software.
2 Controlar que los ingenieros usen de
forma consistente los nuevos
métodos.
12
Cómo?
¿Qué debe hacer una
empresa para obtener
software de buena
calidad?
Mejorar el proceso de
desarrollo de software
Cualquier modelo de calidad para
mejorar el Proceso de Desarrollo de
Software, IMPLICA utilizar los
métodos y procedimientos de
INGENIERIA Y GESTION
DE SOFTWARE
14
¿Qué es la Ingeniería de Software (IS)?
IEEE,1993
15
IS es una tecnología multicapa
Indican cómo construir
técnicamente el Sw.
HERRAMIENTA
METODO
Soporte automático o
semiautomático para el
S
Es el fundamento de la
IS. Es la unión que
mantiene juntas las
capas de la tecnología.
PROCES
16
Síntomas - Causas
Síntomas Causas
• necesidades usuarios • requerimientos insuficientes
• requerimientos • comunicación ambigua
cambiantes
• arquitecturas frágiles
• módulos no calzan
• complejidad excesiva
• poco mantenible
• inconsistencias no
• tardía detección detectadas
• baja calidad • prueba pobre
• baja performance • evaluación subjetiva
• versiones y cambios • desarrollo en cascada
• liberación y distribución • cambios no controlados
• automatización insuficiente
...tratar los Síntomas no resuelve el problema
17
Las Mejores Prácticas de la IS
atacan las causas
Desarrolle
Use
Administre Verique
arquitectura Mode
Requerimientos le Calidad
de
componentes
Controle Cambios
18
Mejores Prácticas de Software
19
Mejores Prácticas: Equipos de Alto
Resultado
• Proyectos más exitosos
Ing. de
porque están en plazo, en Performance
presupuesto y satisfacen Analisis
las necesidades del
usuario
Jefe de
Develop Iteratively Proyecto
Desarrollador
Use M
Manage Component odel Verify
Requirement
s
Architectures Quality Probador
Control Changes
Liberación y Distribución
20
Enfrentando las Causas se eliminan los Síntomas
21
Mejores Prácticas se refuerzan entre si
Proceso de desarrollo de
(Dirige y organiza el proceso)
24
afía
Lecturas Recomendadas
o g r
l i
Bib
26
Conceptos básicos del Modelo
de Objetos
27
Enfoque Orientado a Objetos
Objetos
Atributos
Partes
blanco
28
Enfoque Orientado a Objetos
Tipo de Objeto:
Descripción generalizada que describe una
colección de objetos similares.
Clase:
Implementación en software de un tipo de
objeto.
Tlibro = class
private .
. .
end;
29
Enfoque orientado a Objetos
Método:
Implementación en software de la operación.
TSemáforo = class
Cambiar luz .....
Cambiar luz();
end;
30
Enfoque Orientado a Objetos
Encapsulamiento
Empaque conjunto de datos y métodos.
Atributos
Operaciones
31
Enfoque Orientado a Objetos
32
Proceso de Desarrollo de
Software
33
Proceso
Define “quién” está haciendo “qué”, “cuándo” y
“cómo” para alcanzar un determinado objetivo.
CONJUNTO DE
35
Proceso de desarrollo de software (PDS)
36
UML
37
Lenguaje de modelación
Lenguaje
de = Notac + Metamod
38
Lenguaje de modelación
Lenguaje
de = Notac + Metamod
(Forma de (Descripción de
expresar el lo que significa
modelo) esa modelación)
39
Notación visual
Manejar la complejidad
Interface de Usuario
(Visual Basic,
Java, ..)
Lógica del Negocio
(C++, Java, ..)
Múltiples Sistemas
Servidor de BDs
(C++ & SQL, ..)
Modelar el sistema
independientemente Componentes
Reutilizados
del lenguaje de
implementación
Promover la Reutilización
40
Situación de partida
Necesidad de establecer un
41
?
UML
¿Qué es el UML- Unified
Modeling Language?
Lenguaje Unificado de Modelación
• Descrito en "The Unified Modeling Language for
Object-Oriented Development" de Grady Booch,
James Rumbaugh e Ivar Jacobson.
• Basado en las experiencias personales de los
autores.
• Incorpora contribuciones de otras metodologías. 42
?
UML
¿Qué es el UML- Unified
Modeling Language?
Lenguaje Unificado de Modelación
• Ofrece un estándar para describir un “plano” del
sistema.
• Incluye aspectos conceptuales tales como procesos
de negocio y funciones del sistema y aspectos
concretos como espresiones de lenguajes de
programación, esquemas de BD y componentes de
software reutilizables. 43
UML
Visualizar Especificar
Documentar
Construir 44
UML no es un método
46
Creación del UML UML
2.0
UML
OMG Acceptance, Nov 1997 1.5
Version 1.1
Final submission to UML
OMG, Sep ‘97
public First submission to 1.1
feedba OMG, Jan ´97
ck UML UML
partne 1.0
Web - June UML
´96
0.9
OOPSLA Unified
´95 Method 0.8
Other Booch OM O
methods method T OSE
47
¿Por qué UML 2.0?
48
Las Bases de UML
• Booch, Rational Software
• Rumbaugh Corporation. (1995)
• Jacobson
52
Ventajas de UML
53
Limitaciones de UML
54
Un proceso de desarrollo de software
debe ofrecer un conjunto de modelos
que permitan expresar el producto de
software desde cada una de las
perspectivas de interés
Modelos
55
¿Qué es un producto de software?
Un producto de software es el código
máquina y los ejecutables de un sistema
Un producto de software es el conjunto de
artefactos que se necesitan para
representarlo en forma comprensible para:
•Las máquinas.
•Los trabajadores.
¿artefactos? •Los usuarios.
•Los interesados.
56
¿Artefactos?
Término general aplicable a
cualquier tipo de información
creada, cambiada o utilizada por
los trabajadores en el desarrollo
del sistema
Ejemplos:
• Diagramas UML y su texto.
• Bocetos de interfaz.
• Planes de prueba.
57
Modelos y Diagramas
• Un modelo captura una vista de un sistema del mundo
real. Es una abstracción de dicho sistema,
considerando un cierto propósito. Así, el modelo
describe completamente aquellos aspectos del
sistema que son relevantes al propósito del modelo, y
a un apropiado nivel de detalle.
• Diagrama: una representación gráfica de una
colección de elementos de modelado, a menudo
dibujada como un grafo con vértices conectados por
arcos
58
Modelos
Diagrama de Casos de
Uso del Negocio
Diagrama de Casos de
Uso del Sistema
Diagrama de Actividades
Diagrama de Estado
Diagrama de Paquetes 61
Diagramas de UML
Casos de uso
Diagrama de casos de uso
62
Diagrama de casos de uso
§ Casos de Uso es una técnica para
capturar información de cómo un sistema
o negocio trabaja, o de cómo se desea
que trabaje
63
Solicitar Préstamo
Cliente
Diagramas de UML
64
Diagrama de clases
Departamento Profesor
0 1
..1 ..* 65
Diagramas UML
• Diagramas del comportamiento
•Diagramas de Estado
•Diagramas de Actividad
•Diagramas de Secuencia
•Diagrama de Comunicación
•Diagrama de tiempo
alta baja
Socio
número : int
nombre : char[50] núm er o_prés tam os = 0
número_prestamos : int = 0 sin pr éstam os
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
pres tar devol ver [ núm ero_p rést amo s = 1 ]
c on prés tam os
pres tar
Buscar bebida
NO ¿hay jugo?
¿hay café?
SÍ NO
SÍ
Poner filtro en
máquina
Encender
máquina
Hacer café
verificar situación
video
registrar
préstamo
entregar
recibo
69
Diagrama de comunicación
:Socio
:Video
5: entregar recibo
: Encargado 4: registrar préstamo
:Préstamo
70
Diagramas de UML
• Diagramas de implementación
• Diagramas de componentes
• Diagramas de instalación/Distribución
(Despliegue)
Diagrama de componentes
71
Diagrama de componentes
Interfaz de Terminal
Control y Análisis
72
Diagrama de despliegue
73
¿Cómo se relacionan los diagramas?
So
lo
se par
cu a
en co
cia mp
de ren
pa der
so la
s
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case 74
driven object modeling with UML: an annotated e-
¿Cómo se relacionan los diagramas?
So
lo
se par
cu a
en co
cia mp
de ren
pa der
so la
s
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case 75
driven object modeling with UML: an annotated e-
¿Cómo se relacionan los diagramas?
So
lo
se par
cu a
en co
cia mp
de ren
pa der
so la
s
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case 76
driven object modeling with UML: an annotated e-
¿Cómo se relacionan los diagramas?
So
lo
se par
cu a
en co
cia mp
de ren
pa der
so la
s
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case 77
driven object modeling with UML: an annotated e-
Resumen
78
El Proceso Unificado de
Desarrollo
(Rational Unified Process- RUP)
79
Rational Unified Process
80
Evolución de RUP
Pruebas de rendimiento y carga Diseño OO de IU
(Performance Awareness)
1 Rational Unified Ingeniería de Datos
998 Ingeniería de Negocios Process 5.0 (Vigortech)
Administración de
Configuración y Cambios UML 1.2
(Pure-Atria)
Rational
1 Approach Objectory
995
1
Process
987 Ericsson
81
1 method
967
Estructura Estática de RUP
Artefactos
Modelos, reportes, ¿Qué se produce u
obtiene?
documentos
84
Características del ciclo de vida de RUP
85
Ciclo de vida de RUP
Dirigido por Casos de Uso
(Reflejar lo que los futuros usuarios necesitan
y desean)
Caso de Uso
Requisitos Análisis Diseño Implementación Prueba
«trace»
«trace»
Pruebas
Unitarias
Pruebas Funcionales X
Caso de
Prueba
87
Ciclo de vida de RUP
Dirigido por Casos de Uso
88
Ciclo de vida de RUP
Centrado en la arquitectura
En la construcción,
vista de:
A) Estructura.
B) Calefacción.
C) Plomería.
D) Electricidad.
Estáticos
Aspectos
Dinámicos 89
Ciclo de vida de RUP
Centrado en la arquitectura
(Visión común del sistema completo en la que
desarrolladores y usuarios deben estar de acuerdo )
90
Ciclo de vida de RUP
Centrado en la arquitectura
UML UML
Vista física Vista de Vista de
Vista lógica
despliegue componentes
Vista de
Casos de uso Vista Vista de
estática Vista de diseño
Vista de Vista de Casos de uso
despliegue componentes Perfil
Vista de
estado Vista de
Vista de Gestión del
actividades modelo
91
Ciclo de vida de RUP
Iterativo e incremental
Hito de la Hito de la
Hito de los Hito de la funcionalidad versión del
objetivos arquitectura operativa producto
Enfoq
ue
Casca
Enfoque
Iterativo
e
Increme
93
Ciclo de vida de RUP
Iterativo e incremental
Grado de Finalización de Artefactos
94
Beneficios de la iteración
• Reduce el coste del riesgo al coste de un solo
incremento.
96
UML y RUP
Desarrollo
en equipos
Lenguaje Proceso
de Unificado
97