Você está na página 1de 39

Tema 3

Desarrollo de Software Orientado a Objetos

Ingeniería del Software


Grado en Ingeniería Informática

Félix Óscar García


Ignacio García
Ficha del Tema
TEMA 3: DESARROLLO DEL SOFTWARE ORIENTADO A OBJETOS

Objetivos
 Recordar los conceptos básicos de la orientación a objetos
 Aprender los conceptos básicos de UML como lenguaje de modelado.

Contenidos
 1. Objetos
 1.1. Introducción
 1.2. Objeto
 1.3. Clase
 1.4. Relaciones entre clases
 1.5. Jerarquías de clases
 1.6. Polimorfismo
 2. UML
 2.1. Introducción a UML
 2.2. Tipos de Diagramas
 2.3. Arquitectura del Software

2
Introducción
 Áreas de Aplicación:
 Lenguajes de programación
 Bases de datos
 Reingeniería de procesos
 CASE
 Inteligencia artificial
 Sistemas operativos
 Interfaces de usuario
 Hardware

 Beneficios Potenciales:
 Mejorar la calidad del software
 Acortar los tiempos de desarrollo
 Aumentar la productividad del programador
 Incrementar la reutilización del software

3
Introducción (ii)
 En el Diseño Estructurado

PROGRAMAS
DATOS
D.F.D.
Mod. E/R

S. Información

• La Orientación a Objetos
...es un paradigma unificador

4
Objeto: Concepto

 Unidad atómica formada


por la unión de estado y
Comportamiento
comportamiento. visible
 La encapsulación
proporciona una cohesión
interna fuerte y un OBJETO
acoplamiento externo
débil.
 Para manipular los objetos Estado interno
se utilizan los mensajes.

Objeto = Estado + Comportamiento + Identidad

5
Objeto: estado de un objeto
 Contiene los valores de sus atributos (variables) cuya
información cualifica al objeto.

 Existe un rango de valores para los atributos

 El estado en un instante dado corresponde a una selección de


valores de entre todos los posibles en cada atributo.

Automóvil

Automóvil
50 litros

Verde Recorrido de
150 Km.

120 CV
Automóvil

1000 Kg. 30 litros


6
Objeto: comportamiento
 Describe las acciones y reacciones de los objetos.
 Cada operación es un átomo de comportamiento.
 Las operaciones se desencadenan por estímulos externos
(mensajes), enviados por otros objetos.
 El estado y el comportamiento están relacionados.

Mensaje
Segundo
Primer O bjeto
O bjeto

M étodo 1 M étodo 2 ....... M étodo n

7
Objeto: identidad
 Caracteriza la existencia de un objeto.

 Le distingue de los demás de manera no ambigua


independientemente de su estado
 Dos objetos se pueden distinguir a pesar de tener atributos
idénticos

 En el modelado no se representa la identidad de manera


específica.

 El concepto de identidad es independiente del de estado.

8
Objeto: Encapsulamiento

Interfaz pública (qué)


Mundo

Públicos

Atributos
Privados

Representación privada
(cómo)

Métodos Privados

Públicos

9
Clase
 La clase “Persona”
 Atributos
› Nombre: string
› Fecha de nacimiento: fecha
› Color del pelo: (negro, blanco, pelirrojo, rubio)
 Métodos
› Nacer
› Crecer
› Morir
Persona

Ana Paco Andrés ….


23 19 40
rubio negro blanco
Objetos de la Clase Persona

10
Relaciones entre clases (i)
 Los enlaces particulares que relacionan los objetos pueden verse
de manera abstracta en el mundo de las clases:

 A cada familia de enlaces entre objetos corresponde una relación


entre las clase de estos mismos objetos

 Existen dos tipos de relaciones entre clases:


› La asociación
› La agregación

11
Relaciones entre clases (ii)
 La Asociación:
 Expresa una conexión semántica bidireccional entre clases.
 Es una abstracción de los enlaces que existen entre los objetos
instancias de esas clases.
 Se representan como los enlaces y se diferencian por el contexto
del diagrama. enlaces
Pepe: Estudiante
e1
e2
D.E. de Sistemas Antonio: Estudiante
e3

Sara: Estudiante

Pepe: Estudiante
e1

Ing. Programación e2 Isabel: Estudiante

Asignatura Estudiante

asociación
12
Relaciones entre clases (iii)
 Asociación:

Trabaja en >
Persona Compañía

< Emplea a
Persona Compañía

Trabaja en >
Persona Compañía
1..* 1

Alumnos Asignaturas
1..* 1..*

13
Relaciones entre clases (iv)

 La Agregación: 1
Agregado componentes
 Es una forma particular de
*
asociación pero con
acoplamiento fuerte y
1
asimétrico
coche motor
 Una de las clases cumple 1
una función más
Flotas Barcos
*
importante que la otra.

 Permite representar
*
asociaciones *

amo/esclavo, Equipo Persona


todo/partes, compuestos
/ componentes.
14
Relaciones entre clases (v)
 La Agregación:

Coche
marca:String
modelo:String Rueda
cilindrada:entero anchura:entero
diámetro:entero
r1, r2, r3, r4:
inflar()
desinflar()

15
Relaciones entre clases (vi)
 La Composición:

*
Texto

* Cuadro de
texto
Contiene
Ventana
*
Botón

*
M enu

16
Las jerarquías de clases (i)
 Las jerarquías de clases o clasificaciones permiten gestionar la
complejidad ordenando los objetos dentro de árboles de clases
 La Generalización:
› Consiste en factorizar los elementos comunes (atributos, operaciones y
restricciones) de un conjunto de clases en una clase más general llamada
superclase

Abstracciones más generales


Vehículo

Vehículo terrestre Vehículo aéreo

Coche Camión Avión Helicóptero

17
Las jerarquías de clases (ii)
 Las jerarquías de clases o clasificaciones permiten gestionar la
complejidad ordenando los objetos dentro de árboles de clases

 La Especialización:
› Permite capturar particularidades de un conjunto de objetos no
discriminados por las clases ya identificadas. Las nuevas características se
representan por una nueva clase, subclase de una de las clases existentes.
Transmisión

Continua Discreta

Cambio Embrague Caja de Cambios

Extensión por especialización

18
Las jerarquías de clases (iii)
 Herencia/Generalización/Especialización
 Las subclases heredan las propiedades y métodos de las
superclases
 Las subclases especializan a la superclase
 La superclase es una definición generalista de las subclases

•Las subclases pueden... Superclase


 Añadir a1, a2, a3
 Inhibir m1, m2, m3
 Redefinir

Subclase 1 Subclase 2
a1, a2, a3, a3, a7 a1, a2, a3, a4, a5
m1, m2, m3, m3, m5 m1, m2, m3, m3, m4

19
Polimorfismo
 Capacidad de una operación de tener más de una interpretación
en más de una clase.
 Facultad de un método de poder aplicarse a objetos de clases
diferentes
 En OO se emplean dos formas de polimorfismo
 De subclases
 De sobrecarga Animal
Zoo

 Vinculación estática 1 * Dormir()

 Vinculación dinámica,
retardada o postergada: León Tigre Oso

 el sistema selecciona el
método más específico.
› Decidir si la acción es Dorir() Dormir()
Dormir()
válida. {Sobre el {Sobre la {En un árbol}
› Comprobación de vientre} espalda}
consistencia de tipos.

20
Introducción a UML

 UML es un lenguaje de modelado que sirve para


visualizar, especificar , construir y documentar
un sistema software.
 Lenguaje Modelado = Notación + Reglas (Sintácticas,
Semánticas) para modelar (representar, comprender) un
sistema

 UML es apropiado para modelar diversos sistemas


 desde SI en empresas hasta aplicaciones distribuidas
basadas en la Web, sistemas empotrados de tiempo real
muy exigentes, etc.
Introducción a UML

 Lenguaje muy expresivo que cubre las distintas


vistas necesarias para el desarrollo de sistemas

 Aprender a aplicar UML de modo eficaz


comienza por crear un modelo conceptual de
lenguaje, lo cual requiere aprender tres
elementos:

 Bloques básicos de construcción de UML


 Reglas que dictan cómo pueden combinarse esos
bloques
 Mecanismos comunes que se aplican a lo largo del
lenguaje
Introducción a UML
 UML es sólo un lenguaje

 Independiente del Proceso


 Uso óptimo con procesos dirigidos por casos de uso, centrados en
la arquitectura, iterativos e incrementales

 Lenguaje para:

 Visualizar
 Especificar
 Construir y
 Documentar
Introducción a UML

 Lenguaje de modelado estándar:


 Vocabulario y reglas centradas en la representación
conceptual y física de un sistema

 Para la descripción de los planos del software

 Cubre las diferentes vistas de la arquitectura de un sistema


mientras evoluciona a través del ciclo de vida del
desarrollo de software
› Vistas Software (estáticas, dinámicas, etc..)  Son como los
distintos planos de una casa (fontanería, electricidad, etc..)
Introducción a UML

 UML para especificar:

 Especificar es equivalente a construir modelos que


cumplan las condiciones de

› no ambigüedad y
› completitud.

 UML cubre la especificación del análisis, diseño e


implementación de un sistema software.
Introducción a UML

UML para construir

 Es posible hacer
corresponder con
los lenguajes de Ingeniería Directa
programación
(Java, C++, Modelo
CÓDIGO
B.Datos, etc.). UML

Ingeniería Inversa
Introducción a UML
 UML cubre la documentación de un sistema:

– Requisitos
– Arquitectura
– Diseño
– Código fuente
– Planificación
– Pruebas
– Prototipos
– Versiones
Introducción a UML

 Usos o ámbitos de aplicación:


 Empresas
 Bancos
 Telecomunicaciones
 Transporte
 Defensa
 Comercio
 Electrónica
 Web, y también, sistemas que no son software
Tipos de Diagramas

 13 tipos de Diagramas divididos en 2


categorías:

 Estructurales  De Comportamiento
(ESTÁTICA) (DINÁMICA)
 Clases  Casos de Uso
 Objetos  Estados
 Componentes  Actividades
 Despliegue  Interacción
 Paquetes  Secuencia
 Estructura Compuesta  Comunicación
 Tiempos
 Revisión de
Interacciones
Tipos de Diagramas

 Diagrama de Casos de Uso:


Ca l cu l a r Nó m i n a
Usu a ri o

 Muestra un conjunto de casos de uso y actores y sus


relaciones.
 Cubren la vista de casos de uso estática de un sistema.
 Son importantes en el modelado y organización del
comportamiento de un sistema. E mpleado

 Diagrama de Clases: Fi jo Temporal

 Muestra un conjunto de clases, interfaces y


colaboraciones, así como sus relaciones.
 Cubren la vista de diseño estática de un sistema.
Tipos de Diagramas
 Diagrama de Objetos:
 Muestra un conjunto de objetos y
sus relaciones.
 Representan instantáneas de
instancias de los elementos
encontrados en los diagramas de
clases.
 Diagrama de Secuencia:
 Es un diagrama de interacción que C lase 1 C las e2

resalta la ordenación temporal de LLamada()


los mensajes.
 Diagrama de Comunicación:
 Es un diagrama de interacción que
resalta la organización estructural
de los objetos que envían y reciben
mensajes. Clas e 1
llamada()
Clas e 2

 Muestran objetos, enlaces entre


ellos y mensajes.
Tipos de Diagramas
 Diagrama de Estados:
 Máquinas de estados, que constan de:
› estados, transiciones, eventos y actividades.
 Cubren la vista dinámica de un sistema.
 Especialmente importantes en el
modelado del comportamiento de:
› una interfaz, una clase o una colaboración
 Resaltan el comportamiento dirigido
por eventos de un objeto

 Diagramas de Actividades: Es tad o inicial

 Tipo especial de diagramas de estado Actividad

 Muestra el flujo de actividades dentro entry/ Hac erTalCosa()


do/ Es cribirM ilPrim eros Prim os ()

de un sistema. ex it/ LeerHora()

 Cubren la vista dinámica de un sistema. [ Hora< 13 ]


Dar s aludo m atutino

 Especialmente importantes al modelar entry / Mo s trar("Buenos días")

el funcionamiento de un sistema [ H o ra >=13 ]

 Resaltan el flujo de control entre Dar s aludo vespertino


Es ta do fin al

objetos. entry/ M ostrar("B uenas tardes")


Tipos de Diagramas
 Diagrama de Componentes:
S ervidor
 Muestran la organización y
las dependencias entre un
conjunto de componentes. FS ervidor.java S ervidor.java C liente.java
 Cubren la vista de implementación
estática de un sistema.

 Diagramas de Despliegue:
 Muestra la configuración de nodos
de procesamiento en tiempo de
ejecución y los componentes que
residen en ellos.
 Cubren la vista de despliegue
estática de una arquitectura.
Tipos de Diagramas
 Diagrama de Paquetes:
 Muestran la descomposición del propio
modelo en unidades organizativas
(paquetes) y sus dependencias.
 Sirven para simplificar los diagramas de
clases complejos, permitiendo el
agrupamiento de los clasificadores en
paquetes.

 Diagramas de Estructura Compuesta:


 Muestra la estructura interna
(incluyendo partes y conectores) de un
clasificador estructurado o una
colaboración.
 Similar a los diagramas de
componentes.
Tipos de Diagramas
 Diagrama de Tiempos:
 Muestra los tiempos reales en la
interacción entre diferentes objetos o
roles.
› Comportamiento de los objetos en un
periodo determinado de tiempo.
 Forma especial de diagrama de
secuencia

 Diagramas de Revisión de
Interacciones:
 Aportan una visión general del flujo
de control de las interacciones.
 Híbrido entre diagrama de actividad
y diagrama de secuencia.
 También se denominana «Visión
Global de Interacciones»
Arquitectura de un Sistema
 La visualización, especificación, construcción y documentación
de un sistema con gran cantidad de software requiere que el
sistema sea visto desde varias perspectivas

 La arquitectura es el mejor artefacto que puede emplearse


para:
 Manejar los diferentes puntos de vista
 Controlar el desarrollo iterativo e incremental de un sistema a
lo largo de su ciclo de vida
Arquitectura de un Sistema
 La arquitectura es el conjunto de decisiones significativas
sobre:
 La organización de un sistema software
 La selección de elementos estructurales y sus interfaces
a través de los cuáles se constituye el sistema
 Su comportamiento, como se especifica en las
colaboraciones entre esos elementos
 La composición de esos elementos estructurales y de
comportamiento en subsistemas progresivamente más
grandes
 El estilo arquitectónico que guía esta organización:
› los elementos estáticos y dinámicos y sus interfaces, sus
colaboraciones y su composición
Arquitectura de un Sistema
MODELADO DE LA ARQUITECTURA DE UN
SISTEMA
Vocabulario, Ensamblado del sistema,
funcionalidad gestión de configuraciones

Vista de diseño Vista de


implementación
Vista de
comportamiento casos
de uso
Vista de Vista de
procesos despliegue

Funcionamiento, capacidad Topología del sistema,


de crecimiento, rendimiento distribución, entrega, instalación
Bibliografía y actividades recomendadas

TEMA 3: DESARROLLO DE SOFTWARE ORIENTADO A OBJETOS

Lecturas recomendadas
 Schach, S.R. (2004) Classical and Object-Oriented Software Engineering. McGraw Hill
 Pressman, R. S. (2005) Ingeniería del Software: Un enfoque práctico. McGraw-Hill. ISBN:
9789701054734
 Sitio Web de OMG para UML, con información del estándar y otros recursos
(http://www.uml.org/)
Actividades recomendadas
 Realizar un esquema con las características de las clases y relaciones en desarrollo OO.
 Identificar los elementos de UML con los que modelar los conceptos y aspectos
semánticos sobre OO presentados en esta lección.

39

Você também pode gostar