41
Profesora: María Carolina Chamorro Fundamentos de Ingeniería de Software Desarrollo OO Ilustración de un método simplificado

FINGESO PPT1

Embed Size (px)

DESCRIPTION

PPTS eseseeses ese

Citation preview

Page 1: FINGESO PPT1

Profesora: María Carolina Chamorro

Fundamentos de Ingeniería de Software

Desarrollo OO

Ilustración de un método simplificado

Page 2: FINGESO PPT1

Introducción

� Información para desarrollar software OO está disponible para quién desee estudiarla

� La compañías no pueden abordar estos estudios por largos periodos de tiempo.

� Las compañías necesitan maneras simples y efectivas para desarrollar sus primeros sistemas OO.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 3: FINGESO PPT1

Introducción

� Una metodología puede llegar a ser muy usada si es simple, pequeña y claramente efectiva.

� Muchos métodos OO son demasiado grandes y complejos para ser usados en proyectos reales.

� Se necesitan métodos OO prácticos, con notaciones claras y modelos de proceso claros.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 4: FINGESO PPT1

Requisitos para una metodología

� Guía todo el desarrollo de un sistema desde los requerimientos hasta las pruebas

� Incluye notaciones y modelos de proceso� Especifica los productos de las fases� Permite su extensión� Es fácil de aprender y usar

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 5: FINGESO PPT1

Apoyos que debe dar una metodología OO

� Modelar la funcionalidad del sistema� Modelar los objetos que constituyen el sistema y

sus relaciones� Provee ayudas para descubrir los objetos y

refinar el modelo de objetos� Permite modelar el cómo los objetos colaboran

para proveer la funcionalidad deseada

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 6: FINGESO PPT1

Notación

Incluye principalmente los siguientes elementos:

• Descripciones en lenguaje natural: El lenguaje

natural es la principal herramienta para capturar

requisitos

• Diagramas de clases: provee una vista estática de los

objetos relacionados con el sistema en varias fases del

proceso

• Diagramas de secuencia: provee una vista funcional

de los objetos mostrando la cooperación entre los

objetosFundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 7: FINGESO PPT1

Ejemplos de notación

Propietario

nombre

Automóvil

precio

Conducir

Estacionar

Motor

tamaño

Iniciar

Detener

Sedán Cupé

dueño_de *

Diagramas de clases (UML)

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 8: FINGESO PPT1

Diagramas de secuencia (UML)

Descripción: El Propietario comienza a conducir su auto

Precondiciones: El Automóvil está estacionado

Poscondiciones: El Propietario conduce su Automóvil

Propietario Automóvil Motor

Motor en marcha

Conducir()

Iniciar()

Excepciones: El Motor no puede funcionar

Ejemplos de notación

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 9: FINGESO PPT1

Introducción a OMT++

OMT++

OMT+

OMT OOSE FUSION

Bases de Datos Interfaz

de UsuarioComunicación

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 10: FINGESO PPT1

Rutas en el proceso de OMT++

Requisitos Sistemacompleto

Ruta Estática

Ruta Funcional

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 11: FINGESO PPT1

Proceso de OMT++ simplificado

Captura derequisitos

R equis itos

C aso de uso A

C aso de uso B

C aso de uso C

O tros R eqs

... L is ta deoperac iones

O perac ión 1

O perac ión 2

O peración 3

O peración 4

...

D iagram a deC lases de l

Aná lis is

D iagram a de C lasesdel D iseño

X

A tributo1A tributo2

YAtributo3

Func ion2Func ion6

Func ion3Func ion5

ZA tributo3

Func ion1Func ion4

D iagram as deSecuencia

ZU suario X

Funcion1

Y

Funcion2

Func ion3

ZU suario X

Funcion4

Y

F uncion5

Func ion6

A nálisis D iseño Program ación

C lass Y {Funcion3();Funcion5();X x;

};

Y ::Funcion5 {Funcion6();

};

C asos deprueba

C aso de uso A

C aso de uso B

C aso de uso C

O tros R eqs

...Im p lem ent.

D ec larac iones

Pruebas

X

Atributo3

Y

A tributo1A tributo2

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 12: FINGESO PPT1

Captura de requisitos y análisis

Captura derequisitos

Requisitos

Caso de uso A

Caso de uso B

Caso de uso C

Otros Reqs

... Lista deoperaciones

Operación 1

Operación 2

Operación 3

Operación 4

...

Diagrama deClases del

Análisis

Análisis

X

Atributo3

Y

Atributo1Atributo2

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 13: FINGESO PPT1

Análisis y diseño

L is ta d eo p e ra c io n e s

O p e ra c ió n 1

O p e r a c ió n 2

O p e ra c ió n 3

O p e ra c ió n 4

. . .

D ia g r a m a d eC la s e s d e l

A n á l is is

D ia g r a m a d e C la s e sd e l D is e ñ o

X

A t r ib u to 1A t r ib u to 2

YA t r ib u to 3

F u n c io n 2F u n c io n 6

F u n c io n 3F u n c io n 5

ZA t r ib u to 3

F u n c io n 1F u n c io n 4

D ia g r a m a s d eS e c u e n c ia

ZU s u a r io X

F u n c io n 1

Y

F u n c io n 2

F u n c io n 3

ZU s u a r io X

F u n c io n 4

Y

F u n c io n 5

F u n c io n 6

A n á lis is D is e ñ o

X

A t r ib u to 3

Y

A t r ib u to 1A t r ib u to 2

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 14: FINGESO PPT1

Diseño y programación

D ia g ra m a d e C la s e sd e l D is e ñ o

X

A tr ib u to 1A tr ib u to 2

YA tr ib u to 3

F u n c io n 2F u n c io n 6

F u n c io n 3F u n c io n 5

ZA tr ib u to 3

F u n c io n 1F u n c io n 4

D ia g ra m a s d eS e c u e n c ia

ZU s u a r io X

F u n c io n 1

Y

F u n c io n 2

F u n c io n 3

ZU s u a r io X

F u n c io n 4

Y

F u n c io n 5

F u n c io n 6

D is e ñ o P ro g ra m a c ió n

C la s s Y {F u n c io n 3 ();F u n c io n 5 ();X x ;

} ;

Y ::F u n c io n 5 {F u n c io n 6 ();

} ;

Im lp e m e n t.

D e c la ra c io n e s

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 15: FINGESO PPT1

Programación y pruebas

Programación

Class Y {Funcion3();Funcion5();X x;

};

Y::Funcion5 {Funcion6();

};

Casos deprueba

Caso de uso A

Caso de uso B

Caso de uso C

Otros Reqs

...Código

Declaraciones

Pruebas

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 16: FINGESO PPT1

• Propósitos de esta fase:

• comunicarse con los usuarios finales y

• documentar los requisitos

• Los requisitos se dividen en:

• funcionales y

• no-funcionales

Captura de requisitos

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 17: FINGESO PPT1

Especifican qué debería hacer el sistema

• En OMT++ se usan casos de uso para recolectar requisitos

funcionales.

• Un caso de uso es una historia breve que describe el uso de

un futuro sistema.

• Un caso de uso describe cómo el sistema en conjunto con el

usuario final podrían hacer "una cosa".

• La descripción se hace en un alto nivel de abstracción.

Requisitos funcionales

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 18: FINGESO PPT1

Ejemplo de requisito funcional:

"El sistema permite imprimir un informe".

Un caso de uso analiza este requisito

definiendo algo así como lo siguiente:

"Primero el usuario selecciona la información a ser incluida

en el informe. Luego él selecciona el tipo de informe...".

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 19: FINGESO PPT1

• Hay otros tipos de requisitos, tales como los

técnicos y los financieros, los cuales no se pueden

manejar con casos de uso. Sin embargo, los casos

de uso pueden ser una fuente de tales requisitos.

• Los otros requisitos se documentan como una

lista numerada.

• Todos los requisitos deberían ser exactos y

mesurables.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 20: FINGESO PPT1

Ejemplo para ilustrar captura de requisitos:

• Se desea construir una aplicación que permita a un estudiante componer tonadas musicales simples.

• La aplicación es llamada "Compositor básico".

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 21: FINGESO PPT1

Un estudiante inicia la aplicación que le muestra un

pentagrama vacío y una selección de posibles tipos de notas.

El estudiante selecciona un tipo de nota, por ejemplo, una

negra, una blanca, o una corchea. Luego él indica un lugar en

el pentagrama donde él desea que el tipo de nota

seleccionada aparezca. Seleccionando tipos de notas e

indicando posiciones en el pentagrama él construye una

tonada. El estudiante toca una tonada y la guarda en un

disco. Finalmente, él cierra la aplicación.

Caso de uso # 1

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 22: FINGESO PPT1

El estudiante inicia la aplicación. A continuación él carga

desde un disco el archivo con la tonada que él desea

escuchar. Todas las notas de la tonada seleccionada

aparecen en el pentagrama. Después el estudiante toca la

tonada. Finalmente, él cierra la aplicación.

Caso de uso # 2

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 23: FINGESO PPT1

Requisitos no-funcionales:

• #1: La aplicación soporta la escala Sol mayor y las

siguientes notas: semicorchea, corchea, negra y blanca.

• #2: La longitud máxima de una tonada es de 20 notas.

• #3: Las tonadas son almacenadas como archivos ASCII.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 24: FINGESO PPT1

• Los requisitos se discuten con el usuario final. Si es

posible, el usuario debería participar en la escritura

de los casos de uso.

• Bosquejos de la interfaz de usuario pueden hacer

que los casos de uso sean más concretos.

• Una vez que los casos de uso y los requisitos han

sido documentados y acordados con el cliente, ellos

forman la base para las siguientes fases del

desarrollo de la aplicación.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 25: FINGESO PPT1

Análisis OO

• Propósito: comprender el dominio del problema y el sistema a implementar

• Se basa en los casos de uso y los requisitoscolectados

• Incluye dos tareas: – Análisis de objetos y

– Análisis de comportamiento

Pareciera que esta fase es difícil de dominar. Se sugiere que sea hecho por un equipo formado por expertos en análisis de objetos y expertos en el dominio del problema.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 26: FINGESO PPT1

Análisis de Objetos

• El análisis de objetos lleva a identificar y especificar todos los

conceptos claves del dominio del problema del sistema a

desarrollar.

• Esta tarea produce un modelo de objetos del análisis. Este

modelo documenta los conceptos claves del dominio de

problema y la relación entre ellos.

• Se describe mediante diagramas de clases.

• Provee la base para desarrollar los demás modelos del sistema.

• El modelo de objetos del análisis no incluye conceptos de

implementación.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 27: FINGESO PPT1

Análisis de Objetos

• Los objetos se obtienen identificando objetos

concretos del mundo real y que sean importantes para

la aplicación.

• Se pueden encontrar objetos buscando sustantivos en

los casos de uso, en los requisitos o analizando la

terminología usada por los usuarios finales.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 28: FINGESO PPT1

Modelo de objetos del

compositor básico

Tonada

nombre

Pentagrama

llave

Nota

duración

tono

Blanca Corchea

Escrita_en

Negra Semicorchea

*

*1

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 29: FINGESO PPT1

Análisis de Comportamiento

• El análisis de comportamiento define las operaciones que el

usuario ejecuta con el sistema.

• Este modela sólo la funcionalidad externa del sistema y

produce una lista de operaciones.

• El sistema final debe soportar todas las operaciones de la

lista.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 30: FINGESO PPT1

Modelo de comportamiento del

compositor básico

Produce una lista de operaciones , la cual se construye sobre la base de casos de uso.

1) Iniciar la aplicación2) Seleccionar un tipo de nota3) Colocar una nota musical en el pentagrama4) Tocar una tonada5) Guardar una tonada6) Cargar una tonada7) Cerrar la aplicación.

Las operaciones 1-5 y 7 se encuentran en el c.u. #1.Las operaciones 1, 4, 6 y 7 se encuentran en el c.u. #2.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 31: FINGESO PPT1

Análisis OO

Waiting for your selection...

Elementary Composer

File Edit Play

Messages

Notes Your Tune

Ventana Principal de la aplicación de ejemplo

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 32: FINGESO PPT1

Tonada

nombre

Pentagrama

llave

Nota

duracióntono

Blanca Corchea

Escrita_en

Negra Semicorchea

*

*1

Ventana Ppalload: menuplay: menu...noteTypes: figurepentagrama: figuremessage: text

DialogoFile

Diseño OOPrimera versión del diagrama de clases del diseño

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 33: FINGESO PPT1

Diseño OO

Especificación del comportamiento de una operación

Operación: Agregando una nota en el pentagrama (la nota puede ser de cualquier tipo de las que están disponibles).

Precondiciones : El tipo de la nota a agregar está seleccionado.

Excepciones: El pentagrama contiene el número máximo de notas permitido, no se puede agregar una nueva nota: un mensaje de error se muestra en el campo mensaje.

Postcondiciones: Hay una nueva nota en el pentagrama.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 34: FINGESO PPT1

Diseño OO

Usuario Ventana Ppal Pentagrama Corchea

ClickEnPenta(x,y)

DemeNotas()

Crear(tono)

OK

Calcula eltono, i.e.altura

notas

Hace click enpentagrama

AgregarNota(TipoSelec, tono)

OK

Redibujar(notas)

Diagrama de secuencia “Agregando una nota en el pen tagrama”: .

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 35: FINGESO PPT1

Diseño OO

Tonada

nombre

Pentagrama

llave

AgregarNota(tipoSel:tono):OKDemeNotas():notas

Nota

duracióntono

Crear(tono){Abstract}Escrita_en *

*1

Ventana Ppalload: menuplay: menu...notaTipo: figurepentagrama: figuremensaje: text

ClickEnPenta(x,y)Redibujar(notas)

DialogoFile

maneja1

1

Semicorchea

Crear(tono)

Blanca

Crear(tono)

Negra

Crear(tono)

Corchea

Crear(tono)

Segunda versión del diagrama de clases del

diseño

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 36: FINGESO PPT1

Diseño OO

Especifición de otra operación

Operación: Tocando una tonada.

Precondiciones : Hay una tonada en el pentagrama.

Excepciones: No se puede tocar la tonada, hay problemas con los controladores de sonido. Un mensaje de error se muestra en el campo de mensajes.

Postcondiciones: La tonada ha sido tocada.

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 37: FINGESO PPT1

Diseño OO

Usuario VentanaPpal

Pentagrama Corchea

PlayClick()

Play()

Hace click enbotón Play

Play() Ciclo: para cada nota hacer:

Fin del ciclo

Diagrama de secuencia “Tocando una tonada”: .

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 38: FINGESO PPT1

Diseño OOTercera versión del

diagrama de clases del diseño

Tonada

nombre

Pentagrama

llave

AgregarNota(tipoSel:tono):OKDemeNotas():notasPlay()

Nota

duracióntono

Crear(tono){abstract}Play(){abstract}

Escrita_en *

*1

Ventana Ppalload: menuplay: menu...notaTipo: figurepentagrama: figuremensaje: text

ClickEnPenta(x,y)Redibujar(notas)PlayClick()

DialogoFile

maneja1

1

Semicorchea

Crear(tono)Play()

Blanca

Crear(tono)Play()

Negra

Crear(tono)Play()

Corchea

Crear(tono)Play()

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 39: FINGESO PPT1

TipoNotas=array[0..20] of ^Nota;

Pentagrama =

class

private llave: integer;

notas: TipoNotas;

public function AgregarNotas(TipoSel: integer; tono:integer):

boolean;

function DemeNotas: PChar;

procedure Play;

end;

Programación OODeclaraciones

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 40: FINGESO PPT1

procedure VentanaPpal.ClickEnPenta(...X,Y:integer)

var tono:integer;

ok:boolean;

notas: Pchar:

begin {Calcula el tono basado en el parámetro Y}

...

ok:=miPentagrama.AgregarNota(TipoSel, tono)

if not(ok) then

Mensaje.texto:=‘¡No puede agregar más notas!’;

notas:=miPentagrama.DemeNotas;

Redibuje(notas)

end;

Programación OOImplementación

Fundamentos de Ingeniería de Software Profesora: María Carolina Chamorro

Page 41: FINGESO PPT1

Profesora: María Carolina Chamorro

Fundamentos de Ingeniería de Software

Desarrollo OO

Ilustración de un método simplificado