Está en la página 1de 54

Tcnica de Anlisis y Diseo Orientada a Objetos

Preparado por Lic. Oscar Aguilar Gemio

Anlisis y Diseo Orientado a Objetos

Anlisis y Diseo Orientado a Objetos

El diseo orientado a objetos

Diseo estructurado

requieren responder a una pregunta Un problema desarrollado con tcnicas orientadas a objetos

Cuales son los objetos del programa ?

Anlisis y Diseo Orientado a Objetos


Como los objetos son instancias de las clases

La primera etapa en un desarrollo orientado a objetos exige la identificacin de las clases


Luego la identificacin de atributos y mtodos Las relaciones entre clases Posteriormente la implementacin en un lenguaje de programacin Orientado a Objetos

Anlisis y Diseo Orientado a Objetos


El desarrollo de un programa orientado a objeto,

se compone de las siguientes etapas:


Anlisis orientado a objetos
Que Hace ?

Diseo orientado a objetos


Como lo hace ?

Implementacin orientada a objetos


5

Anlisis Orientado a Objetos


Se describe
Problema de programacion

Conjunto de Especificaciones

Detalles que constituyen el problema real

Anlisis Orientado a Objetos


Durante la fase de anlisis se piensa en las especificaciones del problema en trminos intuitivos y con independencia del lenguaje y de la maquina

Deducir los tipos de objetos Obtener los atributos de estos objetos Determinando su comportamiento (mtodos) e interacciones
7

Analisis O O

Diseo orientado a objetos


Durante el diseo se comienza a crear un modelo de computadora basado en el anlisis, que realice la tarea especifica

Se piensa en objetos del mundo real representados como objetos del mundo informtico

Diseo O O

Se especifican los objetos con mayor precisin y detalle Describir con prudencia sus interacciones
8

Diseo orientado a objetos


Durante la fase de diseo se puede encontrar
Atributos tiles adicionales

Comportamiento de los objetos que no aparecieron en el anlisis o no estaban definidos con claridad

Implementacin Orientada a objetos

Implementacion OO

Traducir el diseo en un cdigo real en un lenguaje de programacin orientado a objetos

Llamada tambien Programacion orientada a objetos

10

Identificacion de Objetos

11

Identificacion de Objetos
Diferentes enfoques para la identificacin de

objetos

Enfoque clasico (Categorizacion) Analisis del comportamiento Analisis de dominios Analisis de casos de uso Fichas CRC (Clases/Responsabilidades/colaboradores) Analisis Estructurado Descripcion Informal en espaol

12

Descripcion Informal en Espaol:

Identificacion de Objetos
La identificacin de objetos se obtiene

Examinando la descripcin del problema

Realizando anlisis gramatical del enunciado o descripcin del problema

Localizar los nombres o clusulas nominales


Los nombres y sus sinnimos se escriben en una tabla Deducir los objetos reales

13

Descripcion Informal en Espaol:

Identificacion de Atributos
Utilizar el concepto de Atributo

Los atributos describen abstracciones de caractersticas individuales que poseen todos los objetos

La Identificacin de atributos se obtiene


Examinando la descripcin del problema Localizar los nombres o clusulas nominales

Que no han sido identificados como objetos reales

Deducir los atributos de los objetos reales identificados

14

Descripcion Informal en Espaol:

Identificacion de Metodos
Utilizar el concepto de mtodo

Los mtodos cambian el objeto

Su comportamiento Sus valores de sus atributos

Los metodos son

operaciones, acciones que se asocian con el objeto


Acciones que realiza el objeto o acciones que se realiza sobre el objeto

15

Descripcion Informal en Espaol:

Identificacion de Metodos
La identificacin de mtodos se realiza

Examinando la descripcin del problema

Realizando anlisis gramatical del enunciado o descripcin del problema

Localizar los verbos del texto Deducir las operaciones de los objetos reales identificados

Estas operaciones deben estar dentro de las tres grupos de mtodos

16

Descripcion Informal en Espaol:

Identificacion de Metodos
Los mtodos se dividen en tres grupos

Operaciones que manipulan los datos de alguna forma especifica


Operaciones que realizan un calculo o proceso Operaciones que comprueban un objeto o la ocurrencia de algn suceso de control sobre el objeto

17

Ejemplo de Analisis y Diseo Orientado a Objetos

18

Programacion Orientada a Objetos

Lic. Oscar Aguilar Gemio

Tcnica de Anlisis y Diseo Orientado a Objetos

Los pasos para realizar Anlisis y Diseo Orientado a Objetos son


i. ii. iii. iv. v. vi. vii. viii.

Definicin del problema Resolucin manual Identificacin de objetos, atributos y mtodos Descripcin y prueba de objetos Descripcin de las clases Relaciones entre clases Declaracin y definicin de las clases en pseudocodigo Uso de las clases (Programa principal Orientado a Objetos )
19

Tcnica de Anlisis y Diseo Orientado a Objetos

Definicion del problema


Datos de entrada

Que datos o informacin se nos proporciona en el problema?

Datos de salida

Que resultados se debe obtener

Condiciones

Que condiciones relacionan los datos de entrada con los datos de salida? Que condiciones se necesitan para resolver el problema
20

Ejemplo ADOO

i. Definicion del problema

Problema Dado dos numero enteros, obtener como resultado la suma de ambos nmeros Definicin del problema Datos de entrada:

i.

Dos nmeros enteros

Datos de Salida:

Un numero que es el resultado de la suma de los dos nmeros de entrada

Condiciones:

Entrada y salida nmeros enteros Utilizar operacin de suma

21

Tcnica de Anlisis y Diseo Orientado a Objetos

Resolucin Manual
Utilizando la definicin del problema y su conocimiento se

resuelve el problema con lpiz y papel


La resolucin requiere la realizacin de por lo menos tres

ejemplos con datos de prueba normales y crticos


Por lo general en esta etapa, la mayor parte del trabajo se

realiza mentalmente

22

Ejemplo ADOO

ii. Resolucion manual

Ejemplo 1 DE: 2, 3 DS: 5 Ejemplo 2 DE: -48, 12 DS: -36

2+3=5

-48 + 12 = -36

Ejemplo 3 DE: 4568, 0 4568 + 0 = 4568 DS: 4568


23

Tcnica de Anlisis y Diseo Orientado a Objetos

Identificacion de Objetos, Atributos y Metodos


La identificacin de objetos requiere

Anlisis gramatical de la descripcin del problema encontrar clusulas nominales o nombres Categorizacin de objetos

La identificacin de atributos requiere


Concepto de atributo Anlisis gramatical de la descripcin del problema encontrar clusulas nominales o nombres

La identificacin de mtodos requiere


Concepto de mtodo Anlisis gramatical de la descripcin del problema encontrar verbos Categorizacin de los mtodos identificados
24

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos

Descripcion del problema

Dado dos numero enteros, obtener como resultado la suma de ambos numeros.

Objetos

Clausulas nominales Numero entero Resultado Suma

25

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos

Descripcin del problema

Dado dos numero enteros, obtener como resultado la suma de ambos nmeros.

Objetos

Clusulas nominales Numero entero (objeto) Resultado ( se refiere a numero entero) Suma ( mtodo ) Objetos reales Numero entero

26

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Atributos

Signo Valor Absoluto

- 458
Digitos
27

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Atributos Objeto real : Numero entero

Atributos:

Valor (valor absoluto y signo)

- 458
Valor
28

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Metodos Descripcion del problema

Dado dos numero enteros, obtener como resultado la suma de ambos numeros.

Verbos del texto

Dar numero
(leer un numero desde teclado o asignar un numero)

Obtener resultado
(mostrar el numero entero que es el resultado)

Obtener suma de numeros

29

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Metodos Acciones sobre el objeto

leer Numero
mostrar
Numero

30

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Metodos Acciones sobre el objeto

leer Numero

Numero

Numero

mostrar

31

Ejemplo ADOO
iii. Identificacion de Objetos, Atributos y Metodos
Metodos Objeto real : numero_entero Metodos reales Leer_Numero Asignar_numero Sumar_numero Mostrar_Numero

32

Tcnica de Anlisis y Diseo Orientado a Objetos

Descripcion y Prueba de Objetos


Utilizando la notacin UML se describe cada uno

de los objetos identificados


Uno por cada clase de objetos La descripcin incluye:


identificador del objeto Atributos Mtodos

Utilizando los ejemplos de la resolucin manual

se prueban los objetos, mediante el envi de mensajes adecuados

los mensajes enviados a cada objeto son los mensajes que resuelvan el problema 33

Ejemplo ADOO

iv. Descripcion y Prueba de Objetos


Obj_NumeroEntero :
Valor Leer_numero ( ) Asignar_numero ( ) Sumar_numero ( ) Mostrar_numero ( )

34

Ejemplo ADOO

iv. Descripcion y Prueba de Objetos


ObjA :
Valor = 2

ObjB :
Valor = 3

ObjC :
Valor = 5

1 3

Leer_numero ( ) Asignar_numero ( ) Sumar_numero ( ) Mostrar_numero ( )

Leer_numero ( ) Asignar_numero ( ) Sumar_numero ( ) Mostrar_numero ( )

4 5

Leer_numero ( ) Asignar_numero ( ) Sumar_numero ( ) Mostrar_numero ( )

35

Ejemplo 1 ADOO

iv. Descripcion y Prueba de Objetos


Secuencia de Mensajes

. (2) objB.leer_numero()
(1) objA leer_numero() (3)

. (5) objC.mostrar_numero

(4) objC asignar_numero( objA sumar_numero( objB ) )

36

Ejemplo 2 ADOO

iv. Descripcion y Prueba de Objetos


Secuencia de Mensajes

. (2) objB.asignar_numero( 4 )
(1) objA asignar_numero( 3 ) (3)

. (5) objC.mostrar_numero

(4) objC asignar_numero( objA sumar_numero( objB ) )

37

Ejemplo 3 ADOO

iv. Descripcion y Prueba de Objetos


Secuencia de Mensajes

(1) objA asignar_numero( 3 ) (2)

. (4) objC.mostrar_numero

(3) objC asignar_numero( objA sumar_numero( 7 ) )

38

Tcnica de Anlisis y Diseo Orientado a Objetos

Descripcion de las clases


Utilizando la notacin UML describir cada una de

las clases
La descripcin de clases incluye:

El nombre de la clase Los atributos junto con sus tipos de datos Los mtodos con sus parmetros

especificando si son funciones o procedimientos

La descripcin de clase tambin debe incluir en

notacin UML :

Si la clase es abstracta Los mtodos virtuales Los mtodos de clase


39

Ejemplo ADOO

v. Descripcion de Clases
CNEntero Valor : entero

Constructor ( ) Destructor ( ) Leer_numero ( ) Asignar_numero ( n : entero ) Asignar_numero ( objnum : CNEntero ) Mostrar_numero ( ) Sumar_numero ( n : entero ) : CNEntero Sumar_numero ( objnum : CNEntero ) : CNEntero
40

Tcnica de Anlisis y Diseo Orientado a Objetos

Relaciones entre clases


Identificacin de las relaciones entre clase

Asociacin Agregacin Generalizacin/Especializacin

Describir cada una de las relaciones identificadas

utilizando notacin UML


Si en el proceso de identificacin de relaciones

se deducen nuevas clase, estas se deben describir en UML

41

Ejemplo ADOO

vi. Relaciones entre Clases


CNReal CNComplejo

CNEntero

CNRacional

CNEnteroPos

CNEnteroNeg

42

Tcnica de Anlisis y Diseo Orientado a Objetos

Declaracion y Definicion de clase


En la declaracin de la clase se describe:

El nombre de la clase Los atributos de la clase junto con sus tipos de datos Las cabeceras de los mtodos incluyendo sus parmetros

Especificar si es procedimiento o funcin

En la definicin de clase se describe

El algoritmo de cada uno de los mtodos de la clase

43

Ejemplo ADOO
vii. Declaracion y Definicion de las Clases
Declaracion de Clase
clase: CNEntero Atributos entero: Valor Metodos Constructor() Destructor() Procedimiento Leer_numero() Procedimiento Asignar_numero(entero: n) Procedimiento Asignar_numero(CNEntero: objnum) Procedimiento Mostrar_numero() CNEntero: Funcion Sumar_numero(entero: n) CNEntero: Funcion Sumar_numero(CNEntero: objnum) 44 fin_clase

Ejemplo ADOO
vii. Declaracion y Definicion de las Clases
Definicion de clase

//-------------------------------------------CNEntero.Constructor() Inicio valor 0 fin //-------------------------------------------CNEntero.Destructor() Incio escribir( Destructor de CNEntero ) fin
45

Ejemplo ADOO
vii. Declaracion y Definicion de las Clases
//---------------------------------------------Procedimiento CNEntero.Leer_numero() Inicio escribir (Digite un numero:) leer ( valor ) fin

//------------------------------------------Procedimiento CNEntero.Mostrar_numero() Inicio escribir ( valor ) fin

46

Ejemplo ADOO
vii. Declaracion y Definicion de las Clases
//--------------------------------------------------Procedimiento CNEntero.Asignar_numero(CNEntero: Incio valor objnum.valor Fin

objnum)

//--------------------------------------------------Procedimiento CNEntero.Asignar_numero(entero: Incio valor n Fin

n)

47

Ejemplo ADOO
vii. Declaracion y Definicion de las Clases
//-------------------------------------------------------CNEntero: funcion CNEntero.Sumar_numero (CNEntero: objnum) Var CNEntero: temp Inicio temp.valor valor + objnum.valor devolver(temp) Fin
//-------------------------------------------------------CNEntero: funcion CNEntero.Sumar_numero (entero: n) Var CNEntero: temp Inicio temp.valor valor + n devolver(temp) fin

48

Tcnica de Anlisis y Diseo Orientado a Objetos

Uso de clases
Es el programa principal orientado a objetos que

utiliza los objetos de clase para resolver el problema


En el uso de clases se realiza:

La creacin objetos El envi de mensaje a los objetos

La creacin de objetos se realiza generalmente en la

parte de declaracin de variables de un programa


El envi de mensajes se realiza en el cuerpo del

programa
El uso de clases requiere la utilizacin de la

programacin estructurada
49

Ejemplo ADOO

viii. Uso de las Clases (POO)


Programa Suma_dos_numeros_con_CNEntero Var CNEntero: a, b, c Inicio BORRAR_PANTALLA a.Leer_numero() b.Leer_numero() c.Asignar_numero( a.Sumar_numero( b )) escribir(El resultado de la suma es:) c.Mostrar_numero() Fin
50

Ejemplo ADOO

viii. Uso de las Clases (POO)


CNEntero

A :CNentero
Valor = 2
Leer_numero ( ) Asignar_numero ( ) Mostrar_numero ( ) Sumar_numero ( )

B :CNEntero
Valor = 3
Leer_numero ( ) Asignar_numero ( ) Mostrar_numero ( ) Sumar_numero ( )

C :CNEntero
Valor = 5
Leer_numero ( ) Asignar_numero ( ) Mostrar_numero ( ) Sumar_numero ( )
51

Ejemplo 2 ADOO

viii. Uso de las Clases (POO)


Programa Suma_dos_numeros_con_CNEntero Var CNEntero: a, b, c Inicio BORRAR_PANTALLA a.Asignar_numero(3) b.Asignar_numero(4) c.Asignar_numero( a.Sumar_numero( b )) escribir(El resultado de la suma es:) c.Mostrar_numero() Fin
52

Ejemplo 3 ADOO

viii. Uso de las Clases (POO)


Programa Suma_dos_numeros_con_CNEntero Var CNEntero: a, b, c Inicio BORRAR_PANTALLA a.Asignar_numero(3) c.Asignar_numero( a.Sumar_numero(7) ) escribir(El resultado de la suma es:) c.Mostrar_numero() Fin

53

FIN

54