Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1
Construcción de una casa para “fido”
2
Construcción de una casa
4
Problemas de la Industria de Software
en la actualidad
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 descuida
CONSECUENCIAS • 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?
IEEE,1993
15
IS es una tecnología multicapa
Indican cómo construir
técnicamente el Sw.
Soporte automático o
semiautomático para el
proceso y los métodos.
Es el fundamento de la
IS. Es la unión que
mantiene juntas las
capas de la tecnología.
16
Síntomas - Causas
Síntomas Diagnóstico 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
Desarrolle Iterativamente
Use
Administre arquitectura Modele Verique
Requerimientos de Visualmente Calidad
componentes
Controle Cambios
18
Mejores Prácticas de Software
19
Mejores Prácticas: Equipos de Alto
Rendimiento
Resultado
• Proyectos más exitosos
Ing. de
porque están en plazo, Performance
en presupuesto y Analisis
satisfacen las
necesidades del usuario Jefe de
Develop Iteratively Proyecto
Desarrollador
Use Model
Manage Component Visually Verify
Requireme Architectures Quality Probador
nts
Control Changes
Liberación y Distribución
20
Enfrentando las Causas se eliminan los Síntomas
21
Mejores Prácticas se refuerzan entre si
23
(Notación)
Sumario
24
Lecturas Recomendadas
• BOOCH, Grady, RUMBAUGH, James, JACOBSON, Ivar;
“El Lenguaje Unificado de Modelación. Libro
introductorio”.2000. Addison Wesley.
• RUMBAUGH, James, JACOBSON, Ivar, BOOCH, Grady;
“El Lenguaje Unificado de Modelación. Manual de
referencia”.2000. Addison Wesley.
26
Conceptos básicos del Modelo
de Objetos
27
Enfoque Orientado a Objetos
Objetos
Atributos
blanco
Partes
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.
35
Proceso de desarrollo de software (PDS)
37
Lenguaje de modelación
= +
38
Lenguaje de modelación
= +
(Forma de (Descripción
expresar el de lo que
modelo) significa 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
del lenguaje de Reutilizados
implementación
Promover la Reutilización
40
Situación de partida
• Diversos métodos y técnicas OO, con muchos aspectos
en común pero utilizando distintas notaciones
• Inconvenientes para el aprendizaje, aplicación,
construcción y uso de herramientas, etc.
• Pugna entre distintos enfoques (y correspondientes
gurús)
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
43
software reutilizables.
UML
Visualizar Especificar
Documentar
Construir 44
UML no es un método
46
Creación del UML UML 2.0
UML 1.5
OMG Acceptance, Nov 1997 Version 1.1
Final submission to OMG, Sep ‘97 UML 1.1
public First submission to OMG, Jan ´97
feedback
UML partners UML 1.0
47
¿Por qué UML 2.0?
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
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 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úmero_préstamos = 0
número_prestamos : int = 0 sin préstamos
alta()
baja()
prestar(código_libro : int, fecha : date)
devolver(código_libro : int, fecha : date)
prestar devolver[ número_préstamos = 1 ]
número_préstamos > 0
con préstamos
prestar
Buscar bebida
NO ¿hay jugo?
¿hay café?
SÍ NO
SÍ
Poner filtro en
máquina
Encender
máquina
Hacer café
prestar(video, socio)
verificar situación socio
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
Servi dor Central Control y Análi si s
Acceso a BD Comment
Comment
Punto de Venta
Ruti nas de Coneccion
Comment
Comment Comment
73
¿Cómo se relacionan los diagramas?
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case driven object 74
modeling with UML: an annotated e-commerce example.
¿Cómo se relacionan los diagramas?
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case driven object 75
modeling with UML: an annotated e-commerce example.
¿Cómo se relacionan los diagramas?
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case driven object 76
modeling with UML: an annotated e-commerce example.
¿Cómo se relacionan los diagramas?
Tomado de:
Rosenberg, Doug, Kendall Scott. Applying use case driven object 77
modeling with UML: an annotated e-commerce example.
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)
1998 Rational Unified Ingeniería de Datos
Ingeniería de Negocios Process 5.0 (Vigortech)
Administración de
Configuración y Cambios UML 1.2
(Pure-Atria)
Escuela de Rational Objectory Proceso SQA
1997 Requerimientos Process 4.1 (SQA Inc.)
(Requisite Inc.)
UML 1.0
Rational
1995 Approach Objectory
Process
1987
Ericsson
1967 81
method
Estructura Estática de RUP
Tiempo
• Concepción Define el alcance del proyecto y el
desarrollo de los casos del negocio.
• Elaboración Planifica el proyecto, especifica
las características y define los
cimientos de la arquitectura.
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 )
Enfoque
Cascada
Enfoque
Iterativo e
Incremental
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.
Desarrollo
en equipos
Lenguaje de Proceso
Modelamiento Unificado
97