ingenieria de software avanzadarossainz/ingsw_cuatrimestral/2_diapositivas... · ingeniería de...

Post on 24-Feb-2020

7 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INGENIERIA DE

SOFTWARE

Dr. Mario Rossainz López

Fac. de Cs. de la Computación

Benemérita Universidad Autónoma de Puebla

Primavera 2020

Ingeniería de Software OO

CONCEPTOS:

En general, dentro de un Desarrollo OO se distinguen tres fases

tradicionales:

La fase del Análisis Orientado a Objetos denotada por AOO (que

se ocupa del que???, es decir, de entender el dominio del

problema).

La fase del Diseño Orientado a Objetos denotada por DOO (que

responde al como??? y se centra en el espacio de la solución)

La fase de Programación Orientada a Objetos denotada por POO

(y que es la fase en la que se implementa o se adapta la solución en

un entorno de programación).

AOO + DOO + POO = Producto Software

Ingeniería de Software OO

CONCEPTOS:

El paso de la fase del análisis a la de diseño se distingue por dos

aproximaciones distintas:

La aproximación de la elaboración: en la cual el modelo de

análisis se va completando con información de diseño hasta que se

encuentre listo para ser codificado.

La aproximación de la transformación: consistente en aplicar unas

reglas para transformar un análisis en diseño.

Ingeniería de Software OO

CONCEPTOS:En cuanto al enfoque que se emplea en el proceso de desarrollo, se

distinguen dos grandes corrientes:

1. Metodologías dirigidas por datos (data-driven) como FUSION

(Coleman 1994) o bien OMT (Rumbaugh 1991) las cuales se basan

en la parte estructural de los objetos y son una extensión del

modelado conceptual E-R.

2. Metodologías dirigidas por responsabilidades (responsability-

driven) como RDD (Wirfs-Brock 1990) u OBA, que representan el

enfoque más puro de la orientación a objetos y se centran en las

responsabilidades de éstos, es decir, las acciones que pueden

llevar a cabo dichos objetos.

3. Existen otro tipo de metodologías como Objectory (Jacobson 1992)

que están dirigidas a las formas de uso ( use-case-driven).

Ingeniería de Software OO

CONCEPTOS:

Sin embargo, a pesar de estas diferencias el proceso de desarrollo de

un producto software orientado a objetos se puede generalizar (en

base a las ideas de Booch 1993) de la siguiente forma:

1. Se identifican las clases y objetos en un nivel dado de abstracción

(descripción)

2. Se identifica la semántica de cada una de estas clases y objetos

(atributos y servicios)

3. Se identifican las relaciones entre clases y objetos (herencia y

paso de mensajes)

4. Se especifica la interfaz y la implementación de estas clases y

objetos (ventanas, menús, mecanismos de control, etc).

Ingeniería de Software OO

EL MODELO DE OBJETO:

Definición de Objeto:

Es un tipo de dato que encapsula con el mismo nombre,

estructuras de datos y las operaciones que manipulan esos datos.

Objeto FOCO:

Datos: filamento, bombilla, rosca

Operaciones: EncenderFoco();

ApagarFoco()

Ingeniería de Software OO

EL MODELO DE OBJETO:

Definición de Objeto:

Los objetos son las entidades fundamentales de un programa

orientado a objetos y las clases son conjuntos de objetos

LA CLASE TRANSPORTES

Ingeniería de Software OO

Propiedades más importantes del modelo de Objeto:

La Abstracción

La Encapsulación

La Modularidad

La Jerarquía

El Polimorfismo

EL MODELO DE OBJETO:

Ingeniería de Software OO

Propiedades más importantes del modelo de Objeto:

La Abstracción

La Encapsulación

La Modularidad

La Jerarquía

El Polimorfismo

EL MODELO DE OBJETO:

El Objeto A no conoce lo que

hace el Objeto B y Viceversa

Ingeniería de Software OO

Propiedades más importantes del modelo de Objeto:

La Abstracción

La Encapsulación

La Modularidad

La Jerarquía

El Polimorfismo

EL MODELO DE OBJETO:

ANIMAL

MAMIFEROREPTIL

La

modularidad

en JAVA se

realiza a través

de clases

Ingeniería de Software OO

Propiedades más importantes del modelo de Objeto:

La Abstracción

La Encapsulación

La Modularidad

La Jerarquía

El Polimorfismo

EL MODELO DE OBJETO:

Animal

Mamífero Reptil...

Canino Felino...

Domestico Lobo...

Perdiguero Caniche...

Ingeniería de Software OO

Propiedades más importantes del modelo de Objeto:

La Abstracción

La Encapsulación

La Modularidad

La Jerarquía

El Polimorfismo

EL MODELO DE OBJETO:

A

R

E

A

Area= Lado X Lado

Area= PI x Radio2

Area= Base x Altura

2

POLIMORFISMO

POLIMORFISMO

Ingeniería de Software OO

Identificación de Clases y Objetos :

el mejor sistema de identificación es leer la definición o descripción de las

especificaciones del problema y localizar nombres o frases con nombre

y verbos o frases con verbos.

nombre = buen indicador de la existencia de objetos

Verbo = candidato a método o función miembro de un objeto

Sin embargo, no todos los nombres identificados son buenos candidatos a

clases.

EL MODELO DE OBJETO:

Ingeniería de Software OO

Identificación de Clases y Objetos :

Problemas potenciales que pueden existir en un sistema:

1. Encontrar demasiados objetos

2. Algunos nombres son variables y no objetos

Criterios a seguir para clasificar objetos:

Cosas tangibles (mesa, coche, base de daos, etc.)

Interacciones (matrimonio, ventas, compras)

Papeles-Roles (director, propietario, cliente)

Incidentes (viaje, transacción, llegada)

Unidades Organizacionales (departamentos, divisiones)

Lugares, posiciones geográficas o físicas (ciudad, camino)

Especificaciones (descripciones estándares)

EL MODELO DE OBJETO:

Ingeniería de Software OO

Asignación de Atributos y Comportamiento :

Una vez identificada una clase, lo siguiente es identificar las

responsabilidades que pudiera tener. Éstas caen dentro de dos

categorías:

1. La información que un objeto de una clase ha de mantener

(atributos)

2. Las operaciones que un objeto puede realizar o se pueden realizar

sobre el mismo (comportamiento).

Atributos = Estado = datos de una clase = Estructuras de datos

Métodos = Comportamiento = Algoritmo

EL MODELO DE OBJETO:

Ingeniería de Software OO

Relaciones entre clases y objetos :

Relación Es-Un: Se presenta cuando una clase es un subtipo de otra

clase. Por ejemplo, un oso es-un mamífero.

EL MODELO DE OBJETO:Mamífero

Hombre

Persona

Emplead

o

Secretari

o

es-un

es-un

es-un

es-un

Ingeniería de Software OO

Relaciones entre clases y objetos :

Relación Tiene-Un o Forma Parte de: Se presenta cuando una clase

contiene otras clases. A esto se le denomina clases compuestas o

agregadas. Por ejemplo, una Pila contiene una clase Array.

EL MODELO DE OBJETO:Avión

Alas

Tren de Aterrizaje

tiene-un

tiene-un

Ingeniería de Software OO

Relaciones entre clases y objetos :

Relación Es-Un: Se presenta cuando una clase es un subtipo de otra

clase. Por ejemplo, un oso es-un mamífero.

Relación Tiene-Un o Forma Parte de: Se presenta cuando una clase

contiene otras clases. A esto se le denomina clases compuestas o

agregadas. Por ejemplo, una Pila contiene una clase Array.

GENERALIZACIÓN

O

ESPECIALIZACIÓN

AGREGACIÓN

O

COMPOSICIÓN

EL MODELO DE OBJETO:

Ingeniería de Software OO

TECNICAS DE DISEÑO Y NOTACIONES OO:

Tarjetas de Clase :

Es una técnica de DOO propuesta por Beck y Cunningham en 1989.

Consiste en elaborar por cada clase una tarjeta o ficha como la que

se muestra a continuación en donde se apuntan las principales

características de la clase:

Nombre

Lista de Superclases

Lista de Subclases

Responsabilidades

Colaboraciones

Ingeniería de Software OO

Tarjetas de Clase :

TECNICAS DE DISEÑO Y NOTACIONES OO:

Clase: Nombre de la clase

Lista de Superclases

Lista de Subclases

Responsabilidad Colaboración

Ingeniería de Software OO

Tarjetas de Clase (Un sistema de Biblioteca):

TECNICAS DE DISEÑO Y NOTACIONES OO:

Clase: Sistema de Biblioteca

Lista de Superclases

Lista de Subclases

Responsabilidad Colaboración

prestarMaterial Material, Socio

devolverMaterial Material, Socio

busquedaMaterial Biblioteca

visualizarInformacion

obtenerInformacion

Clase: Biblioteca

Lista de Superclases

Lista de Subclases

Responsabilidad Colaboración

conocerMateriales Material

Ingeniería de Software OO

Tarjetas de Clase (Un sistema de Biblioteca):

TECNICAS DE DISEÑO Y NOTACIONES OO:

Clase: Socio

Lista de Superclases

Lista de Subclases

Responsabilidad Colaboración

conocerDatos

conocerMaterialPrestado

conocerMultas

Clase: Material

Lista de Superclases

Lista de Subclases: Libro, Proyecto, Revista

Responsabilidad Colaboración

conocerDatos

prestarse

devolverse

calcularFechaDevolucion

calcularMulta

Ingeniería de Software OO

Clase: Libro

Lista de Superclases: Material

Lista de Subclases

Responsabilidad Colaboración

calcularFechaDevolucion

calcularMulta

Clase: Proyecto

Lista de Superclases: Material

Lista de Subclases

Responsabilidad Colaboración

calcularFechaDevolucion

calcularMulta

Clase: Revista

Lista de Superclases: Material

Lista de Subclases

Responsabilidad Colaboración

calcularFechaDevolucion

calcularMulta

Tarjetas de Clase (Un sistema de Biblioteca):

TECNICAS DE DISEÑO Y NOTACIONES OO:

Ingeniería de Software OO

Notaciones Gráficas de Metodologías OO:

TECNICAS DE DISEÑO Y NOTACIONES OO:

Ingeniería de Software OO

Notaciones Gráficas de Metodologías OO: BOOCH

TECNICAS DE DISEÑO Y NOTACIONES OO:

Ingeniería de Software OO

Notaciones Gráficas de Metodologías OO: JOURDON

TECNICAS DE DISEÑO Y NOTACIONES OO:

Ingeniería de Software OO

Notaciones Gráficas de Metodologías OO: RUMBAUGH (OMT)

TECNICAS DE DISEÑO Y NOTACIONES OO:

top related