SlideShare una empresa de Scribd logo
1 de 37
Descargar para leer sin conexión
Programación Avanzada
Desarrollo Orientado a Objetos
basado en UML
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 2
Proceso de Desarrollo
 ¿Qué es?
 Un proceso de desarrollo de software
describe un enfoque para construir,
instalar y mantener sistemas de software
 ¿Por qué necesitamos uno?
 Es necesario conocer de antemano qué
actividades debemos realizar
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 3
Algunas Actividades
1. Entrar en contexto con la realidad del problema
2. Obtener una descripción de lo que se espera
del producto
3. Comprender qué se debe hacer
4. Determinar cómo se debe hacer
5. Hacerlo
6. Probar que esté bien hecho
7. Entregar el producto
8. Hacerle retoques varios
9. Mantenerlo
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 4
Pero Hay Más…
 Realizar estimaciones de tiempo, de
costos, de recursos
 Planificar
 Asegurarse que las cosas se hagan:
 En el tiempo previsto
 De la forma establecida
 Administrar las diferentes versiones de
lo que se va produciendo
 Montar y mantener los ambientes de
desarrollo y prueba
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 5
Un Modelo de Proceso
 Cascada:
Relevamiento
Análisis
Diseño
Implementación
Testeo
Liberación
Mantenimiento
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 6
Problemas…
 Cada actividad se realiza en
secuencia y luego de finalizar la
anterior
 Para problemas grandes y complejos
no resulta una estrategia adecuada:
 Errores en etapas tempranas se
descubren tardíamente
 No hay visibilidad hasta muy avanzado el
proyecto
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 7
Otro Modelo
 Iterativo e Incremental (I&I):
Relevamiento
Liberación
Mantenimiento
Construcción
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 8
Características
 Se divide el problema en varios subproblemas
 Las iteraciones se producen en “Construcción”
 Se itera sobre una “mini cascada” donde se
resuelve cada subproblema:
for each (sp:Subproblema) {
analisis(sp);
diseño(sp);
implementacion(sp);
testeo(sp);
}
 En la iteración i se resuelve spi llevándose
resueltos los subproblemas: sp1, sp2, … , spi-1
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 9
Nuestro Proceso
 Para poder realizar un proceso I&I es
necesario conocer un proceso en cascada
 Nos concentraremos en algunas actividades
dentro de la “cascada” de Construcción:
 Análisis
 Diseño
 Implementación
 Los pasos concretos a realizar en estas
actividades depende del paradigma de
desarrollo a seguir
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 10
Nuestro Proceso (2)
 Los requerimientos vendrán dados por
Casos de Uso y descripciones
generales del sistema
 Un Caso de Uso narra la historia
completa (junto a todas sus variantes)
de un conjunto de actores mientras
usan el sistema
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 11
Caso de Estudio
 Gestión de cuentas en bancos a
través de ATMs (cajeros
automáticos):
 A través de una red de ATMs, los
clientes acceden a sus cuentas sobre
las cuales realizan transacciones
(depósitos y retiros)
 Las cuentas pueden ser compartidas
por más de un cliente
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 12
Caso de Estudio
Caso de Uso
Nombre Retiro de Cuenta Actores Cliente
Sinopsis El caso de uso comienza cuando el cliente
inserta su tarjeta en el cajero e ingresa su
clave de usuario. Tras validar al cliente, el
sistema recibe el nombre del banco y el
número de cuenta para iniciar la transacción
de retiro correspondiente. El cliente ingresa el
monto que desea retirar de la cuenta y el
sistema realiza el débito. Finalmente, el cliente
retira su tarjeta.
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 13
Orientación a Objetos
 Enfoque diferente al tradicional
 Puede ser entendida como:
 Una forma de pensar basada en
abstracciones de conceptos existentes
en el mundo real
 Organizar el software como una
colaboración de objetos que interactúan
entre sí por medio de mensajes
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 14
Enfoque Tradicional
 Una aplicación implementada con un
enfoque tradicional presenta la
siguiente estructura general:
type T = …
f1(T t) {…}
…
fn() {…}
main() {
//invocaciones a fi
}
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 15
Enfoque Orientado a Objetos
 Una aplicación orientada a objetos es
el resultado de la codificación en un
lenguaje de programación orientado a
objetos del siguiente esquema:
o1
o2
o4
o5
o3
m1
m2
m3
m4
m
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 16
Desarrollo OO
 Los pasos generales de desarrollo se
mantienen en el enfoque orientado a
objetos
 Pero las actividades que constituyen
algunos de ellos son particulares:
 Análisis  Análisis Orientado a Objetos
 Diseño  Diseño Orientado a Objetos
 Implem.  Implem. Orientada a Objetos
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 17
Desarrollo OO (2)
 Ciertas actividades son demasiado
complejas para realizarlas
mentalmente en el desarrollo de una
aplicación de mediano porte en
adelante
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 18
Desarrollo OO (3)
 Es necesaria una herramienta
(conceptual) que permita a la vez:
 Servir de ayuda para el desarrollo de la
tarea (uno mismo)
 Visualizar lo hecho hasta el momento
(uno mismo)
 Comunicar el avance obtenido (el cliente
y el equipo de desarrollo)
 Documentar el desarrollo de la aplicación
(el equipo de desarrollo)
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 19
Desarrollo OO (4)
 UML es el estándar para modelado de
software
 Es un lenguaje que puede ser aplicado
cualquiera sea el método particular de
desarrollar software orientado a
objetos
 Utilizaremos algunos de sus
diagramas para asistir nuestro
desarrollo
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 20
Análisis Orientado a Objetos
 Considerar el dominio de la aplicación
y su solución lógica en términos de
conceptos (cosas, entidades)
 Concepto clave: abstracción
 Objetivo: encontrar y describir los
conceptos en el dominio de la
aplicación:
 Esto permite comprender mejor la
realidad y el problema
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 21
Análisis Orientado a Objetos (2)
 Estos conceptos pueden entenderse
como una primera aproximación a la
solución al problema
 En un sistema de software orientado a
objetos (bien modelado) existe un
isomorfismo entre estos conceptos y
los elementos que participan en el
problema en la vida real
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 22
Análisis Orientado a Objetos (3)
Modelo
Realidad
Casa
Casa
Juan
Juan
Auto
Auto
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 23
Análisis OO :: Actividades
 Modelado de Dominio
 Modelar el dominio para comprender mejor
el contexto del problema
 Herramienta: Diagrama de Clases
 Especificación del Comportamiento
 contar con una descripción más precisa de
qué es lo que se espera del sistema
 Herramientas: Diagramas de Secuencia del
Sistema y Contratos
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 24
Análisis OO :: Dominio
 Un Modelo de Dominio contiene los
conceptos y sus relaciones que sean
significativos en el dominio del
problema
 La información es provista
principalmente por los Casos de Uso
 Se incluyen además las restricciones a
las cuales está sujeto el dominio
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 25
Caso de Estudio
Modelo de Dominio
numero : int
saldo : float
Cuenta
nombre : string
Banco
numero : int
ATM fecha : Date
hora : int
importe : float
terminada : bool
Transaccion
Retiro Deposito
codigo : string
Cliente
*
*
1 *
registra >
1 *
operacon>
1..*
1..*
Cuenta-Cliente
*
1
< realizada sobre
*1..*
trabaja con >
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 26
Análisis OO :: Comportamiento
 Los Diagramas de Secuencia del
Sistema ilustran la forma en que los
actores realizan “invocaciones” sobre el
sistema
 Los diferentes escenarios de uso son los
definidos en los Casos de Uso
 El efecto de cada mensaje es
especificado en forma precisa por medio
de un Contrato
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 27
Caso de Estudio
Diagrama de Secuencia
Cliente
Sistema
autenticarCliente(codCliente:String) : bool
ingresarCuenta(nroCuenta:int, nomBanco:String)
ingresarMonto(monto:float)
finalizar()
El sistema recuerda
al Cliente (en el primer
mensaje) y la cuenta
(en el segundo mensaje)
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 28
Caso de Estudio
Contrato
Operación ingresarCuenta(nroCuenta:int,nomBanco:String)
Descripción
Obtiene la cuenta nroCuenta del banco nomBanco sobre la
cual se realizará la transacción.
Pre-
condiciones
1. Existe una cuenta de número nroCuenta
2. Existe un banco de nombre nomBanco
3. Existe un cliente autenticado
Post-
condiciones
El sistema selecciona y recuerda la cuenta
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 29
Diseño Orientado a Objetos
 Objetivo: definir objetos lógicos (de software)
y la forma de comunicación entre ellos para
una posterior programación
 En base a los “conceptos candidatos”
encontrados durante el análisis y por medio
de ciertos principios y técnicas, se debe
decidir:
 Cuáles de éstos serán los objetos que
participarán en la solución
 Cómo se comunican entre ellos para obtener el
resultado deseado
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 30
Diseño Orientado a Objetos (2)
 Concepto clave: responsabilidades
 En esta transición:
 No todos los conceptos necesariamente
participarán de la solución
 Puede ser necesario “reflotar” conceptos
inicialmente dejados de lado
 Será necesario fabricar “ayudantes”
(también objetos) para que los objetos
puedan llevar a cabo su tarea
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 31
Diseño OO :: Actividades
 Diseño de Interacciones
 definir cómo se comunican los objetos para
resolver las operaciones del sistema
 Herramienta: Diagrama de Comunicación
 Diseño de Estructura
 especificar la estructura necesaria para que
todas las interacciones puedan ocurrir
 Herramienta: Diagrama de Clases de
Diseño
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 32
Diseño OO :: Interacciones
 Se realiza un Diagrama de
Comunicación por operación del
sistema
 Los objetos protagonistas aparecen
“sugeridos” en el Modelo de Dominio
 El resultado esperado es el
especificado en el contrato de la
operación a diseñar
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 33
Caso de Estudio
Diagramas de Comunicación
: ATM : Cliente
ok := autenticarCliente(codCliente) 1: ok := member(codCLiente)
: Banco : Cuenta
2: c := cuenta(nroCuenta) 2.1: c := find(nroCuenta)
: ATM
ingresarCuenta(nroCuenta,nomBanco)
Banco
1: b := find(nomBanco)
ATM recuerda
la cuenta "c"
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 34
Diseño OO :: Estructura
 Se resume la información provista por
los Diagramas de Comunicación
 La estructura está guiada por el
Modelo de Dominio
 Generalmente se realiza un único
Diagrama de Clases que resume toda
la información
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 35
Caso de Estudio
Diagrama de Clases de Diseño
asignarCuenta(Integer,Retiro)()
nombre : String
Banco
identificacion(Integer,String)()
seleccionarCuenta(Integer)()
ingresarMonto(Integer)()
salir()
numero : Integer
ATM
fecha : Date
hora : Time
importe : Integer
terminada : Boolean
Transaccion
debitar(Integer)()
numero : Integer
saldo : Real
Cuenta
codigo : String
Cliente
asignarCliente(Cliente)()
asignarCuenta(Cuenta)()
ingresarMonto(Integer)()
finalizar()
Retiro
*1 *1
1..*
*
1
1..*
*1
1
1
*1
finalizadas
actual
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 36
Implementación OO
 Su objetivo es codificar en un lenguaje
de programación orientado a objetos
las construcciones definidas en el
diseño
 La definición de los objetos y el
intercambio de mensajes requieren
construcciones particulares en el
lenguaje a utilizar
Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 37
Resumen
Esc. Típico
Casos de Uso
Esc. Alternat. 1
Esc. Alternat. n
.
.
.
: Sistema
: Cajero
iniciarVenta()
agregarProducto(id,cant)
terminarVenta()
realizarPago(monto)
descripcion, subtotal
* [mas productos]
total con impuestos
cambio, recibo
: Sistema
: Cajero
iniciarVenta()
agregarProducto(id,cant)
terminarVenta()
realizarPago(monto)
descripcion, subtotal
* [mas productos]
total con impuestos
cambio, recibo
: Sistema
: Cajero
iniciarVenta()
agregarProducto(id,cant)
terminarVenta()
realizarPago(monto)
descripcion, subtotal
* [mas productos]
total con impuestos
cambio, recibo
-atr1
Class1
Class2
-atr2
Class3
-atr3
-atr4
Class4** Association1
*
* Association2
Cont. 1
Cont. 2
Cont. 1
Cont. 3
Cont. 1
Cont. 4
Object1 Object2
Message1
Object3
Message2
Object1 Object2
Message1
Object3
Message2
Object1 Object2
Message1
Object3
Message2
Object1 Object2
Message1
Object3
Message2
+oper1()
-atr1
Class1
+oper2()
+oper3()
Class2
+oper4()
-atr2
Class3
+operacion1()
+operacion2()
+oper5()
-atr3
-atr4
Class4
** Association1
*
* Association2

Más contenido relacionado

La actualidad más candente (20)

Cocomo
CocomoCocomo
Cocomo
 
Modelo Cocomo
Modelo CocomoModelo Cocomo
Modelo Cocomo
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
Manua Visual Basic 6.0
Manua Visual Basic 6.0Manua Visual Basic 6.0
Manua Visual Basic 6.0
 
Cocomo
CocomoCocomo
Cocomo
 
Delphi 7 20051
Delphi 7 20051Delphi 7 20051
Delphi 7 20051
 
Modelo COCOMO
Modelo COCOMOModelo COCOMO
Modelo COCOMO
 
Metodología para la solución de un problema
Metodología para la solución de un problemaMetodología para la solución de un problema
Metodología para la solución de un problema
 
Diagramas flujo
Diagramas flujoDiagramas flujo
Diagramas flujo
 
Ingeniería en software
Ingeniería en softwareIngeniería en software
Ingeniería en software
 
Unmsm01 2008
Unmsm01 2008Unmsm01 2008
Unmsm01 2008
 
Modelo cocomo
Modelo cocomo Modelo cocomo
Modelo cocomo
 
Programación estructurada
Programación  estructuradaProgramación  estructurada
Programación estructurada
 
Estimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de usoEstimacion basada en puntos de casos de uso
Estimacion basada en puntos de casos de uso
 
Cocomo
CocomoCocomo
Cocomo
 
proceso unificado de desarrollo parte 2
proceso unificado de desarrollo parte 2proceso unificado de desarrollo parte 2
proceso unificado de desarrollo parte 2
 
Cocomo (1)
Cocomo (1)Cocomo (1)
Cocomo (1)
 
Programación modular estructurada.ppt
Programación modular estructurada.pptProgramación modular estructurada.ppt
Programación modular estructurada.ppt
 
Programacion Estructurada
Programacion EstructuradaProgramacion Estructurada
Programacion Estructurada
 
Software engineeringparte2 (1)
Software engineeringparte2 (1)Software engineeringparte2 (1)
Software engineeringparte2 (1)
 

Similar a Programa UML- Clase 1

Slideshare #01
Slideshare #01Slideshare #01
Slideshare #01wcontra31
 
Características de un programa
Características de un programaCaracterísticas de un programa
Características de un programaDavid Sampedro
 
3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumenfelixzenon
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la ProgramaciónPablo Parola
 
Aplicacion RUP Y UML
Aplicacion RUP Y UMLAplicacion RUP Y UML
Aplicacion RUP Y UMLEsraelita
 
Metodología rup final
Metodología rup finalMetodología rup final
Metodología rup finalMariaC7
 
Unidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del SoftwareUnidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del Softwarerezzaca
 
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptMarko Zapata
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian OblitasChristian1705
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de softwareYaskelly Yedra
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2Yeison Smith
 

Similar a Programa UML- Clase 1 (20)

Desarrollo de aplicaciones con rup y uml
Desarrollo de aplicaciones con rup y umlDesarrollo de aplicaciones con rup y uml
Desarrollo de aplicaciones con rup y uml
 
Software engineeringparte2 (1)
Software engineeringparte2 (1)Software engineeringparte2 (1)
Software engineeringparte2 (1)
 
Slideshare #01
Slideshare #01Slideshare #01
Slideshare #01
 
Clase
ClaseClase
Clase
 
Características de un programa
Características de un programaCaracterísticas de un programa
Características de un programa
 
3 analisis y diseño resumen
3  analisis  y diseño resumen3  analisis  y diseño resumen
3 analisis y diseño resumen
 
Estructura de casos de uso
Estructura de casos de usoEstructura de casos de uso
Estructura de casos de uso
 
Introducción a la Programación
Introducción a la ProgramaciónIntroducción a la Programación
Introducción a la Programación
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Estructura de casos de uso
Estructura de casos de usoEstructura de casos de uso
Estructura de casos de uso
 
Aplicacion RUP Y UML
Aplicacion RUP Y UMLAplicacion RUP Y UML
Aplicacion RUP Y UML
 
Metodología rup final
Metodología rup finalMetodología rup final
Metodología rup final
 
Unidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del SoftwareUnidad 4 Modelos de Procesos del Software
Unidad 4 Modelos de Procesos del Software
 
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.pptELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
ELEMENTOS DE LA CONFIGURACION DE SOFTWARE.ppt
 
Trabajo de Christian Oblitas
Trabajo de Christian OblitasTrabajo de Christian Oblitas
Trabajo de Christian Oblitas
 
UML. un analisis comparativo para la diagramación de software
UML.  un analisis comparativo para la diagramación de softwareUML.  un analisis comparativo para la diagramación de software
UML. un analisis comparativo para la diagramación de software
 
Introducción a UML
Introducción a UMLIntroducción a UML
Introducción a UML
 
Presentación de Marco Lógico, curso Seguimiento y Evaluación
Presentación de Marco Lógico, curso Seguimiento y EvaluaciónPresentación de Marco Lógico, curso Seguimiento y Evaluación
Presentación de Marco Lógico, curso Seguimiento y Evaluación
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 
F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2F004 p006 gfpi guìa de aprendizaje 3-v2
F004 p006 gfpi guìa de aprendizaje 3-v2
 

Último

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PCCesarFernandez937857
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosCesarFernandez937857
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docxAleParedes11
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxinformacionasapespu
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdfBaker Publishing Company
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSjlorentemartos
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.DaluiMonasterio
 

Último (20)

Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
Identificación de componentes Hardware del PC
Identificación de componentes Hardware del PCIdentificación de componentes Hardware del PC
Identificación de componentes Hardware del PC
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Informatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos BásicosInformatica Generalidades - Conceptos Básicos
Informatica Generalidades - Conceptos Básicos
 
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docxGLOSAS  Y PALABRAS ACTO 2 DE ABRIL 2024.docx
GLOSAS Y PALABRAS ACTO 2 DE ABRIL 2024.docx
 
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptxPRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
PRIMER SEMESTRE 2024 ASAMBLEA DEPARTAMENTAL.pptx
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf2024 - Expo Visibles - Visibilidad Lesbica.pdf
2024 - Expo Visibles - Visibilidad Lesbica.pdf
 
Power Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptxPower Point: "Defendamos la verdad".pptx
Power Point: "Defendamos la verdad".pptx
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOSTEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
TEMA 13 ESPAÑA EN DEMOCRACIA:DISTINTOS GOBIERNOS
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdfResolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
Resolucion de Problemas en Educacion Inicial 5 años ED-2024 Ccesa007.pdf
 
EXPECTATIVAS vs PERSPECTIVA en la vida.
EXPECTATIVAS vs PERSPECTIVA  en la vida.EXPECTATIVAS vs PERSPECTIVA  en la vida.
EXPECTATIVAS vs PERSPECTIVA en la vida.
 

Programa UML- Clase 1

  • 2. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 2 Proceso de Desarrollo  ¿Qué es?  Un proceso de desarrollo de software describe un enfoque para construir, instalar y mantener sistemas de software  ¿Por qué necesitamos uno?  Es necesario conocer de antemano qué actividades debemos realizar
  • 3. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 3 Algunas Actividades 1. Entrar en contexto con la realidad del problema 2. Obtener una descripción de lo que se espera del producto 3. Comprender qué se debe hacer 4. Determinar cómo se debe hacer 5. Hacerlo 6. Probar que esté bien hecho 7. Entregar el producto 8. Hacerle retoques varios 9. Mantenerlo
  • 4. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 4 Pero Hay Más…  Realizar estimaciones de tiempo, de costos, de recursos  Planificar  Asegurarse que las cosas se hagan:  En el tiempo previsto  De la forma establecida  Administrar las diferentes versiones de lo que se va produciendo  Montar y mantener los ambientes de desarrollo y prueba
  • 5. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 5 Un Modelo de Proceso  Cascada: Relevamiento Análisis Diseño Implementación Testeo Liberación Mantenimiento
  • 6. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 6 Problemas…  Cada actividad se realiza en secuencia y luego de finalizar la anterior  Para problemas grandes y complejos no resulta una estrategia adecuada:  Errores en etapas tempranas se descubren tardíamente  No hay visibilidad hasta muy avanzado el proyecto
  • 7. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 7 Otro Modelo  Iterativo e Incremental (I&I): Relevamiento Liberación Mantenimiento Construcción
  • 8. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 8 Características  Se divide el problema en varios subproblemas  Las iteraciones se producen en “Construcción”  Se itera sobre una “mini cascada” donde se resuelve cada subproblema: for each (sp:Subproblema) { analisis(sp); diseño(sp); implementacion(sp); testeo(sp); }  En la iteración i se resuelve spi llevándose resueltos los subproblemas: sp1, sp2, … , spi-1
  • 9. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 9 Nuestro Proceso  Para poder realizar un proceso I&I es necesario conocer un proceso en cascada  Nos concentraremos en algunas actividades dentro de la “cascada” de Construcción:  Análisis  Diseño  Implementación  Los pasos concretos a realizar en estas actividades depende del paradigma de desarrollo a seguir
  • 10. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 10 Nuestro Proceso (2)  Los requerimientos vendrán dados por Casos de Uso y descripciones generales del sistema  Un Caso de Uso narra la historia completa (junto a todas sus variantes) de un conjunto de actores mientras usan el sistema
  • 11. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 11 Caso de Estudio  Gestión de cuentas en bancos a través de ATMs (cajeros automáticos):  A través de una red de ATMs, los clientes acceden a sus cuentas sobre las cuales realizan transacciones (depósitos y retiros)  Las cuentas pueden ser compartidas por más de un cliente
  • 12. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 12 Caso de Estudio Caso de Uso Nombre Retiro de Cuenta Actores Cliente Sinopsis El caso de uso comienza cuando el cliente inserta su tarjeta en el cajero e ingresa su clave de usuario. Tras validar al cliente, el sistema recibe el nombre del banco y el número de cuenta para iniciar la transacción de retiro correspondiente. El cliente ingresa el monto que desea retirar de la cuenta y el sistema realiza el débito. Finalmente, el cliente retira su tarjeta.
  • 13. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 13 Orientación a Objetos  Enfoque diferente al tradicional  Puede ser entendida como:  Una forma de pensar basada en abstracciones de conceptos existentes en el mundo real  Organizar el software como una colaboración de objetos que interactúan entre sí por medio de mensajes
  • 14. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 14 Enfoque Tradicional  Una aplicación implementada con un enfoque tradicional presenta la siguiente estructura general: type T = … f1(T t) {…} … fn() {…} main() { //invocaciones a fi }
  • 15. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 15 Enfoque Orientado a Objetos  Una aplicación orientada a objetos es el resultado de la codificación en un lenguaje de programación orientado a objetos del siguiente esquema: o1 o2 o4 o5 o3 m1 m2 m3 m4 m
  • 16. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 16 Desarrollo OO  Los pasos generales de desarrollo se mantienen en el enfoque orientado a objetos  Pero las actividades que constituyen algunos de ellos son particulares:  Análisis  Análisis Orientado a Objetos  Diseño  Diseño Orientado a Objetos  Implem.  Implem. Orientada a Objetos
  • 17. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 17 Desarrollo OO (2)  Ciertas actividades son demasiado complejas para realizarlas mentalmente en el desarrollo de una aplicación de mediano porte en adelante
  • 18. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 18 Desarrollo OO (3)  Es necesaria una herramienta (conceptual) que permita a la vez:  Servir de ayuda para el desarrollo de la tarea (uno mismo)  Visualizar lo hecho hasta el momento (uno mismo)  Comunicar el avance obtenido (el cliente y el equipo de desarrollo)  Documentar el desarrollo de la aplicación (el equipo de desarrollo)
  • 19. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 19 Desarrollo OO (4)  UML es el estándar para modelado de software  Es un lenguaje que puede ser aplicado cualquiera sea el método particular de desarrollar software orientado a objetos  Utilizaremos algunos de sus diagramas para asistir nuestro desarrollo
  • 20. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 20 Análisis Orientado a Objetos  Considerar el dominio de la aplicación y su solución lógica en términos de conceptos (cosas, entidades)  Concepto clave: abstracción  Objetivo: encontrar y describir los conceptos en el dominio de la aplicación:  Esto permite comprender mejor la realidad y el problema
  • 21. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 21 Análisis Orientado a Objetos (2)  Estos conceptos pueden entenderse como una primera aproximación a la solución al problema  En un sistema de software orientado a objetos (bien modelado) existe un isomorfismo entre estos conceptos y los elementos que participan en el problema en la vida real
  • 22. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 22 Análisis Orientado a Objetos (3) Modelo Realidad Casa Casa Juan Juan Auto Auto
  • 23. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 23 Análisis OO :: Actividades  Modelado de Dominio  Modelar el dominio para comprender mejor el contexto del problema  Herramienta: Diagrama de Clases  Especificación del Comportamiento  contar con una descripción más precisa de qué es lo que se espera del sistema  Herramientas: Diagramas de Secuencia del Sistema y Contratos
  • 24. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 24 Análisis OO :: Dominio  Un Modelo de Dominio contiene los conceptos y sus relaciones que sean significativos en el dominio del problema  La información es provista principalmente por los Casos de Uso  Se incluyen además las restricciones a las cuales está sujeto el dominio
  • 25. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 25 Caso de Estudio Modelo de Dominio numero : int saldo : float Cuenta nombre : string Banco numero : int ATM fecha : Date hora : int importe : float terminada : bool Transaccion Retiro Deposito codigo : string Cliente * * 1 * registra > 1 * operacon> 1..* 1..* Cuenta-Cliente * 1 < realizada sobre *1..* trabaja con >
  • 26. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 26 Análisis OO :: Comportamiento  Los Diagramas de Secuencia del Sistema ilustran la forma en que los actores realizan “invocaciones” sobre el sistema  Los diferentes escenarios de uso son los definidos en los Casos de Uso  El efecto de cada mensaje es especificado en forma precisa por medio de un Contrato
  • 27. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 27 Caso de Estudio Diagrama de Secuencia Cliente Sistema autenticarCliente(codCliente:String) : bool ingresarCuenta(nroCuenta:int, nomBanco:String) ingresarMonto(monto:float) finalizar() El sistema recuerda al Cliente (en el primer mensaje) y la cuenta (en el segundo mensaje)
  • 28. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 28 Caso de Estudio Contrato Operación ingresarCuenta(nroCuenta:int,nomBanco:String) Descripción Obtiene la cuenta nroCuenta del banco nomBanco sobre la cual se realizará la transacción. Pre- condiciones 1. Existe una cuenta de número nroCuenta 2. Existe un banco de nombre nomBanco 3. Existe un cliente autenticado Post- condiciones El sistema selecciona y recuerda la cuenta
  • 29. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 29 Diseño Orientado a Objetos  Objetivo: definir objetos lógicos (de software) y la forma de comunicación entre ellos para una posterior programación  En base a los “conceptos candidatos” encontrados durante el análisis y por medio de ciertos principios y técnicas, se debe decidir:  Cuáles de éstos serán los objetos que participarán en la solución  Cómo se comunican entre ellos para obtener el resultado deseado
  • 30. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 30 Diseño Orientado a Objetos (2)  Concepto clave: responsabilidades  En esta transición:  No todos los conceptos necesariamente participarán de la solución  Puede ser necesario “reflotar” conceptos inicialmente dejados de lado  Será necesario fabricar “ayudantes” (también objetos) para que los objetos puedan llevar a cabo su tarea
  • 31. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 31 Diseño OO :: Actividades  Diseño de Interacciones  definir cómo se comunican los objetos para resolver las operaciones del sistema  Herramienta: Diagrama de Comunicación  Diseño de Estructura  especificar la estructura necesaria para que todas las interacciones puedan ocurrir  Herramienta: Diagrama de Clases de Diseño
  • 32. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 32 Diseño OO :: Interacciones  Se realiza un Diagrama de Comunicación por operación del sistema  Los objetos protagonistas aparecen “sugeridos” en el Modelo de Dominio  El resultado esperado es el especificado en el contrato de la operación a diseñar
  • 33. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 33 Caso de Estudio Diagramas de Comunicación : ATM : Cliente ok := autenticarCliente(codCliente) 1: ok := member(codCLiente) : Banco : Cuenta 2: c := cuenta(nroCuenta) 2.1: c := find(nroCuenta) : ATM ingresarCuenta(nroCuenta,nomBanco) Banco 1: b := find(nomBanco) ATM recuerda la cuenta "c"
  • 34. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 34 Diseño OO :: Estructura  Se resume la información provista por los Diagramas de Comunicación  La estructura está guiada por el Modelo de Dominio  Generalmente se realiza un único Diagrama de Clases que resume toda la información
  • 35. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 35 Caso de Estudio Diagrama de Clases de Diseño asignarCuenta(Integer,Retiro)() nombre : String Banco identificacion(Integer,String)() seleccionarCuenta(Integer)() ingresarMonto(Integer)() salir() numero : Integer ATM fecha : Date hora : Time importe : Integer terminada : Boolean Transaccion debitar(Integer)() numero : Integer saldo : Real Cuenta codigo : String Cliente asignarCliente(Cliente)() asignarCuenta(Cuenta)() ingresarMonto(Integer)() finalizar() Retiro *1 *1 1..* * 1 1..* *1 1 1 *1 finalizadas actual
  • 36. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 36 Implementación OO  Su objetivo es codificar en un lenguaje de programación orientado a objetos las construcciones definidas en el diseño  La definición de los objetos y el intercambio de mensajes requieren construcciones particulares en el lenguaje a utilizar
  • 37. Programación Avanzada | Desarrollo Orientado a Objetos basado en UML 37 Resumen Esc. Típico Casos de Uso Esc. Alternat. 1 Esc. Alternat. n . . . : Sistema : Cajero iniciarVenta() agregarProducto(id,cant) terminarVenta() realizarPago(monto) descripcion, subtotal * [mas productos] total con impuestos cambio, recibo : Sistema : Cajero iniciarVenta() agregarProducto(id,cant) terminarVenta() realizarPago(monto) descripcion, subtotal * [mas productos] total con impuestos cambio, recibo : Sistema : Cajero iniciarVenta() agregarProducto(id,cant) terminarVenta() realizarPago(monto) descripcion, subtotal * [mas productos] total con impuestos cambio, recibo -atr1 Class1 Class2 -atr2 Class3 -atr3 -atr4 Class4** Association1 * * Association2 Cont. 1 Cont. 2 Cont. 1 Cont. 3 Cont. 1 Cont. 4 Object1 Object2 Message1 Object3 Message2 Object1 Object2 Message1 Object3 Message2 Object1 Object2 Message1 Object3 Message2 Object1 Object2 Message1 Object3 Message2 +oper1() -atr1 Class1 +oper2() +oper3() Class2 +oper4() -atr2 Class3 +operacion1() +operacion2() +oper5() -atr3 -atr4 Class4 ** Association1 * * Association2