Tema 1. Introducción a la Tema 1. Introducción a la Ingeniería del Software y la Ingeniería del Software y la
Tecnología de ObjetosTecnología de Objetos
Departamento de Lenguajes y Ciencias de la Computación
E.T.S. de Ingenieros en Informática
Universidad de Málaga
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
22
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
ProgramaPrograma
1. Introducción a la Ingeniería del Software– Sistemas Software complejos.– Ciclo de vida del software.– Evolución de la Ingeniería del Software.
• Análisis clásico.• Análisis estructurado.• Introducción al AOO.
2. Introducción a la Tecnología de Objetos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
33
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Definición y características del SWDefinición y características del SW
Software: (1) instrucciones de ordenador que cuando se ejecutan cumplen una función y tienen un comportamiento deseados, (2) estructuras de datos que facilitan a los programadores la adecuada manipulación de la información, y (3) documentos que describen la operación y el uso de los programas.
Características del software: El software se desarrolla, no se fabrica en sentido estricto. El software no se estropea. La mayoría del software se construye a medida.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
44
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Influencia de los costes de ingenieríaInfluencia de los costes de ingeniería
Ingeniería
Producción o Desarrollo
Coste unitario / 100 unidades
Coste unitario / 100.000 unidades
Hardware 1000 50 c.u. 60 50.01
Software 1000 2000 30 0.03
20 300200100
2000
10000
20000
8000
4000
18000
16000
14000
12000
6000
Costes totales Costes U nitarios
500
1000
100
20 300200100
Hardware Software
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
55
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Curvas de fallosCurvas de fallos
índice de fallo
tiempo
índice de fallo
tiempo
índice de fallo
tiempo
HW SW
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
66
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Aplicaciones del softwareAplicaciones del software
Software de sistemas.Software de tiempo real.Software de gestión.Software científico y de ingeniería.Software de ordenadores
personales.Software empotrado.Software de inteligencia artificial.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
77
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
La Ingeniería del SoftwareLa Ingeniería del Software
Problemas del software.– La planificación y la estimación de costes son muy imprecisas.– La productividad es baja.– La calidad es mala.– El cliente queda insatisfecho.
Ingeniería del software: Establecimiento y uso de principios de ingeniería robustos, orientados a garantizar la obtención de software económico, fiable y eficiente sobre máquinas reales.
Métodos Herramientas Procedimientos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
88
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ciclos de vida: clásico (en cascada)Ciclos de vida: clásico (en cascada)
Ingeniería del
Sistema
Análisis
Diseño
Codificación
Prueba
Utilización
Mantenimiento
Sustitución
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
99
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ciclos de vida: contractualCiclos de vida: contractual
Cliente Proveedor
Análisis Usuario Analista
Diseño Analista Diseñador
Codificación Diseñador Programador
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1010
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ciclos de vida: tecn. de 4ª generaciónCiclos de vida: tecn. de 4ª generación
Recolección derequisitos
Utilización
Mantenimiento
Sustitución
Generación de
código
Prueba
Diseño
Estrategia de
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1111
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ciclos de vida: construcción de Ciclos de vida: construcción de prototiposprototipos
Recolección yrefinamientode requisitos
Diseñorápido
Construcción de prototipos
Evaluación
Desarrollo delproducto final
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1212
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ciclos de vida: en espiralCiclos de vida: en espiral
Planificación/Recogida Análisis de riesgos yde requisitos viabilidad
Evaluación Ingeniería/Desarrollo
ObjetivoPlanificación
inicial
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1313
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Visión genérica de la Ingeniería del Visión genérica de la Ingeniería del Software.Software.
Definición. ¿Qué?– Análisis del sistema.
• Establecer el ámbito del software.
– Análisis de requisitos del sistema software.
• Definición detallada de la función del software.
– Planificación.• Análisis de riesgos.• Asignación de recursos.• Definición de tareas.• Estimación de costes.
Desarrollo. ¿Cómo?– Diseño.
• Arquitectura de la aplicación.• Estructura de los datos.• Estructura interna de los
programas.• Diseño de las interfaces.
– Codificación.– Pruebas.
Mantenimiento. El cambio.– Corrección de errores.– Cambios en el entorno.– Cambios en los requisitos.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1414
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Análisis Clásico vs. Análisis Análisis Clásico vs. Análisis EstructuradoEstructurado
Especificaciones utilizando análisis clásico.– Monolíticas.
– Redundantes.
– Ambiguas.
– Imposibles de mantener o modificar.
Especificaciones utilizando análisis estructurado.– Gráficas.
– Particionadas.
– Mínimamente redundantes.
– Transparentes.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1515
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Análisis Estructurado: ModelosAnálisis Estructurado: Modelos
Punto de vista del proceso:
Diagramas de Flujo de Datos.
Especificaciones de Proceso.
Punto de vista de los datos:
Diagramas de Entidad/Relación.
Punto de vista del comportamiento:
Diagramas de Flujo de Control.
Especificaciones de Control.
Diagramas de Estados.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1616
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Diagramas de Flujo de DatosDiagramas de Flujo de Datos
leertemp
leerpresion
calcularflujo
leerconcentracion
sistemacontrol
controlusuario
abrirvalvula
alarma
Datos Flujo
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1717
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Análisis Estructurado: Elementos Análisis Estructurado: Elementos básicosbásicos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1818
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Metodología del análisis estructuradoMetodología del análisis estructurado
Fases.
Creación del modelo de procesos.
DFDs y PSPECs
Creación del modelo de control.
DFCs CSPECs y DEs
Creación del modelo de datos.
DERs El problema de la consistencia entre los modelos.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
1919
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Modelos del sistemaModelos del sistema
Modelo esencial (o lógico) del sistema: representa lo que el sistema debe hacer con objeto de satisfacer los requisitos del usuario. Tiene que estar (al menos idealmente) completamente libre de detalles de implementación. Errores comunes incluyen:
– Secuenciar de forma arbitraria las funciones de los DFDs. – Utilizar ficheros temporales o de backup.– Utilizar información redundante o derivada.
Modelo de implementación: versión revisada y anotada del modelo esencial, donde se especifican detalles como:
– Elección de dispositivos de entrada y salida.– Elección de los dispositivos de almacenamiento.– Formato de las entradas y salidas. – Secuencia de operaciones de entrada y salida. – Volumen de datos.– Tiempo de respuesta. – Copias de seguridad y descarga de datos del sistema.– Seguridad.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2020
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Deficiencias del análisis estructuradoDeficiencias del análisis estructurado
Descomposición funcional. – Requiere traducir el dominio del problema en una serie de funciones y
subfunciones.– El analista debe comprender primero el dominio del problema y a continuación
documentar las funciones y subfunciones que debe proporcionar el sistema.– No existe un mecanismo para comprobar si la especificación del sistema
expresa con exactitud los requisitos del sistema.
Flujo de datos. – Este enfoque se adapta bien al uso de sistemas informáticos para implementar
el sistema, pero no es nuestra forma habitual de pensar.
Modelo de datos. – La relación entre los modelos es muy débil, y hay muy poca influencia de un
modelo en otro.– En la práctica, los modelos de procesos y de datos de un mismo sistema se
parecen muy poco. En muchos casos son visiones irreconciliables, no del mismo sistema, sino de dos puntos de vista totalmente diferentes de organizar la solución.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2121
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ventajas del AOO (1)Ventajas del AOO (1)
Dominio del problema.– El paradigma OO es más que una forma de programar. Es una forma
de pensar acerca de un problema en términos del mundo real en vez de en términos de un ordenador. El AOO permite analizar mejor el dominio del problema, sin pensar en términos de implementar el sistema en un ordenador. El AOO permite pasar directamente el dominio del problema al modelo del sistema.
Comunicación. – El concepto OO es más simple y está menos relacionado con la
informática que el concepto de flujo de datos. Esto permite una mejor comunicación entre el analista y el experto en el dominio del problema (es decir, el cliente).
Consistencia. – Los objetos encapsulan tanto atributos como operaciones. Debido a
esto, el AOO reduce la distancia entre el punto de vista de los datos y el punto de vista del proceso, dejando menos lugar a inconsistencias o disparidades entre ambos modelos.
El término dominio del problema o dominio de aplicación es uno de los más usados en el paradigma orientado a objetos. Se refiere al campo de aplicación del sistema, es decir, a qué es el sistema, entendido desde su propio campo de aplicación, más que a su descripción en términos de una implementación en ordenador.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2222
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Ventajas del AOO (2)Ventajas del AOO (2)
Expresión de características comunes.– La herencia expresa explícitamente las características comunes de una
serie de objetos que en otros enfoques quedan escondidas y llevan a duplicar entidades en el análisis y código en los programas. El paradigma OO proporciona mecanismos que permiten reutilizar aquello que es común, sin impedir por ello describir las diferencias.
Resistencia al cambio.– Los cambios en los requisitos afectan notablemente a la funcionalidad
de un sistema y por tanto al software desarrollado con métodos estructurados. Los objetos que componen o maneja el sistema son mucho más estables. Las modificaciones necesarias para adaptar una aplicación basada en objetos a un cambio de requisitos suelen estar mucho más localizadas.
Reutilización.– Aparte de la reutilización interna, el paradigma OO desarrolla modelos
mucho más próximos al mundo real, con lo que aumentan las posibilidades de reutilización. Es probable que en futuras aplicaciones nos encontremos con objetos iguales o similares a los de la actual.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2323
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Introducción al AOOIntroducción al AOO
Aparición: Comienzos de la década de los 80
Evolución: Lenguajes-Diseño-Análisis
Análisis: Coad/Yourdon, Jacobson, Booch, OMT (Rumbaugh) y finalmente UML (los tres amigos) .
El Análisis Orientado a Objetos (AOO) se basa en conceptos sencillos: objetos y atributos, el todo y las partes, clases y miembros.
Este enfoque pretende conseguir modelos que se ajusten mejor al problema real, a partir del conocimiento del llamado dominio del problema, evitando que influyan en el análisis consideraciones de que estamos analizando un sistema para implementarlo en un ordenador.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2424
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
En resumen...En resumen...
Cada vez es más evidente la necesidad de aplicar métodos de ingeniería al proceso de desarrollo de software.
Los métodos aplicados en otras industrias no son adecuados debido a las especiales características de los productos sw.
La Ingeniería del Software ha tenido una evolución paralela a la de los lenguajes y técnicas de programación (aunque con retraso).
El enfoque orientado a objetos aporta una serie de ventajas importantes como– la familiaridad con los conceptos (que facilita la comunicación con
el cliente),
– la facilidad para representar sistemas sin la influencia de las características de implementación en el ordenador,
– la integración con los métodos de diseño e implementación y
– la consistencia entre las diferentes vistas de un sistema.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2525
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
ProgramaPrograma
1.2. Introducción a la Tecnología de Objetos– Historia e introducción.– Conceptos básicos.
– Aplicación de los conceptos en lenguajes de
programación y métodos de análisis.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2626
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Evolución HistóricaEvolución HistóricaABSTRACCIÓN
OPERACIONAL
ABSTRACCIÓN
DE
DATOS
LenguajesMáquina /
Ensamblador
Cód.Inst.Simb.Macros
Id = Dir Mem.Manip.Total de
Datos
FORTRANSubrutinasFunciones
Id. Simb.Tipos
Oper. restring.
PASCALAnidamientoSubprogramas
RegistrosTipos definidosGest. Din. Mem
MODULA-2ADA
Encapsulam.Octult. Inform.
Espec - Impl
TipoAbstracto de
Datos
LenguajesOrientados a
Objetos
ObjetosMétodosMensajes
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2727
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Evolución HistóricaEvolución Histórica
COMPONENTES
ABSTRACCIÓN
OPERACIONAL
ABSTRACCIÓN
DE
DATOS
LenguajesMáquina /
Ensamblador
Cód.Inst.Simb.Macros
Id = Dir Mem.Manip.Total de
Datos
FORTRANSubrutinasFunciones
Id. Simb.Tipos
Oper. restring.
PASCALAnidamientoSubprogramas
RegistrosTipos definidosGest. Din. Mem
MODULA-2ADA
Encapsulam.Octult. Inform.
Espec - Impl
TipoAbstracto de
Datos
LenguajesOrientados a
Objetos
MétodosMensajes Objetos
EventosInvocación remota
Componentes
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2828
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
IntroducciónIntroducción
Razones para la crisis del software– ¿Hacer un lápiz es difícil?
– ¿La industria del software se parece más a ...• la fabricación de armas?• la fontanería?
Tecnología / objetivo.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
2929
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
ProgramaPrograma
El Paradigma Orientado a Objetos– Historia e introducción.
– Conceptos básicos.
– Aplicación de los conceptos en lenguajes de programación y métodos de análisis.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3030
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
¿Qué es la Orientación a Objetos?¿Qué es la Orientación a Objetos?
El concepto surge en los lenguajes de programación– Se organiza el software como una colección de objetos
discretos que encapsulan• Estructuras de Datos y• Comportamiento.
– Un sistema OO funciona mediante la colaboración entre los objetos que se comunican entre sí.
El concepto se extiende a los métodos de análisis y diseño– Se utilizan los objetos del mundo real como base para
construir modelos– Los elementos que forman los sistemas del mundo real se
corresponden con objetos software
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3131
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Vehículo
Punto
Figura
Animal
(1,3)
(2,2)
(2,1)
(5,2.5)
Las clases y los objetos están en todas Las clases y los objetos están en todas partespartes
Platero:Animal
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3232
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: CLASES y OBJETOSConceptos básicos: CLASES y OBJETOS
CLASE– Atributos– Operaciones– Comportamiento
Lavadora
marcamodelocapacidad: integer...
ProgramarPonerRopaCerrarPuertaLavar OBJETO
– Valores de los atributos– Estado– Identidad
ID:Lavadora
marca=“Lapava”capacidad=5estado=centrifugando
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3333
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: PASO DE MENSAJESConceptos básicos: PASO DE MENSAJES
:MandoADistancia :Televisor
Conectar()
Canal(4)
Invocación de métodos Medio de colaboración
entre objetos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3434
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: ENCAPSULACIÓNConceptos básicos: ENCAPSULACIÓN
Ocultación de detalles Concepto de Interfaz Independencia
Vol+
Sens3 => Vol++=> DAC31.out=2.1=> Amp27.gain=1.3=> OSD, Pref, ...
Sens3 => Vol++=> DAC31.out=2.1=> Amp27.gain=1.3=> OSD, Pref, ...
Sens => VolUp =>=> Settings.vol++=> DAC23.out=0.7=> Amp02.gain=1.7=> OSD, Pref, ...
Sens => VolUp =>=> Settings.vol++=> DAC23.out=0.7=> Amp02.gain=1.7=> OSD, Pref, ...
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3535
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: HERENCIAConceptos básicos: HERENCIA
Generalización / Especialización Los objetos “heredan” las características de la clase. Las clases pueden heredar de otras clases.
– Extensión.– Restricción.– Modificación.
Utilidad:– Abstracción.– Reutilización.
Hormiga PlanchaTelevisor
ElectrodomésticotensiónconsumoConectarDesconectar
Lavadoracapacidad numCanales vapor
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3636
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: POLIMORFISMOConceptos básicos: POLIMORFISMO
Ej: Operación “Abrir”
Permite al modelador hablar el lenguaje del cliente. Evita asignar identificadores artificiosos para
distinguir las operaciones. Contribuye a la reutilización de código. Ej: Operación “Enchufar”
Puerta PlazoPuertoCuenta
Abrir()Abrir() Abrir()Abrir()
TomaDeCorrientetensión
Enchufar(e:Electrodoméstico)
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3737
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Conceptos básicos: ASOCIACIONConceptos básicos: ASOCIACION
Modela la relación entre objetos (necesaria para que se comuniquen y colaboren)
Asociación-Clase / Enlace-Objeto Tipos básicos:
– Asociación– Herencia– Agregación / Composición (agregación fuerte)
Coche Motor Árbol Hoja
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3838
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Hasta aquí deberíamos tener claro ...Hasta aquí deberíamos tener claro ...
Cómo surge el enfoque OO. Cómo funciona un sistema OO. El concepto y la representación de:
Asociación– Agregación– Herencia
Polimorfismo Paso de mensajes Encapsulación
Clase y Objeto– Atributos– Operaciones– Comportamiento– Identidad
Interfaz
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
3939
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
ProgramaPrograma
El Paradigma Orientado a Objetos– Historia e introducción.
– Conceptos básicos.
– Aplicación de los conceptos en lenguajes de programación y métodos de análisis.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4040
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Clases y ObjetosClases y Objetos
CLASE = MODULO + TIPO
• Criterio de Modularización• Estado + Comportamiento• Entidad estática (en general)
OBJETO = Instancia de una CLASE• Objeto (Clase) Valor (Tipo)
• Identidad• Entidad dinámica• Cada objeto tiene su propio estado• Objetos de una clase comparten su comportamiento
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4141
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Métodos: definen el comportamiento de una clase
Invocación de métodos: Paso de Mensajesobj.mens(args) mens(obj,args)
Métodos y MensajesMétodos y Mensajes
Punto
x,y: float
trasladar(a,b)distancia(pto)
Estado e identidad
Comportamiento
trasladar(1,-1)P1:Punto
X=2Y=2
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4242
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
ClasesClases
Estructuras que encapsulan datos y funciones
class Punto{ public:
Punto();float x,y;void trasladar(float, float);void cambiar_x(float a)
{x=a;};void cambiar_y(float b)
{y=b;};float distancia(Punto);
};
“Pun
to.h
pp”
VARIABLES DE ESTADO(DATOS MIEMBRO)
MÉTODOS(FUNCIONES MIEMBRO)
CONSTRUCTOR
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4343
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Colaboración entre objetosColaboración entre objetos
Los objetos (clases) colaboran para resolver problemas.
La forma en que los objetos (clases) colaboran puede ser muy variada:– Asociación simple– Herencia– Agregación– Composición– ...
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4444
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
class Segmento { private Punto inicio,final;
public Segmento(Punto p){inicio = Punto();
final = p;}
public float longitud(){return inicio.distancia(final);}
public void trasladar(float a,float b){inicio.trasladar(a,b); final.trasladar(a,b);}
}
Agregación de objetosAgregación de objetos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4545
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
public class Habitacion {private int numHabitacion;private int numCamas;
// declaración de métodos...}
public class Hotel1 {Habitacion h1;Habitacion h2;
// resto declaraciones...h1 = new Habitacion( 222 );}
Composición de objetosComposición de objetos
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
4646
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Construcción y DestrucciónConstrucción y Destrucción
Diferentes mecanismos para la creación y la eliminación de objetos, dependiendo del lenguaje.
Construcción de objetos (reservar memoria):– Constructores (C++, Eiffel, Java)– Métodos de clase (Smalltalk)
Eliminación de objetos (liberar memoria):– Destructores (C++)– Recolección automática de memoria –garbage
collection- (Smalltalk, Eiffel, Java)
Detalles
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5050
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
HerenciaHerencia
Posibilidad de reutilizar código Algo más que incluir ficheros o importar
módulos Distintos tipos de herencia:
– simple / múltiple– de implementación/de interfaz
Limitaciones Problemas
Figura
Polígono Elipse
CírculoIrregularRegular
Detalles
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5252
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
HerenciaHerencia
Extensión y Reutilización de códigoUna clase derivada hereda el
comportamiento de su clase padreRedefinición de métodosClases abstractasHerencia múltiple / Herencia repetida
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5353
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
PolimorfismoPolimorfismo
Una variable puede referirse a objetos de una clase distinta de la que se ha declarado
Tipo Dinámico vs. Tipo Estático Polimorfismo de objetos / de mensajes Restricción en base a la herencia
puntero a objeto en C++
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5454
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
EncapsulaciónEncapsulación
Las clases ocultan los detalles de realización de los métodos.
Los “usuarios” (los objetos que invocan esos métodos) conocen el interfaz y la semántica. No tienen que preocuparse de los detalles.
El concepto de interfaz puede ampliarse. Contribuye a la reusabilidad del código.
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5555
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
Al fin del tema debemos tener claro ...Al fin del tema debemos tener claro ...
Cómo surge y evoluciona el concepto OO. Cuáles son los elementos y características
básicas de este enfoque. Cómo se plasma el enfoque OO en los
lenguajes de programación. Las particularidades que se introducen
sobre los conceptos básicos al aplicarlos en sistemas reales
Tema 1. Sistemas Software complejosTema 1. Sistemas Software complejos
5656
Ingeniería del Software. Especificación
Departamento de Lenguajes y Ciencias de la Computación.Universidad de Málaga
A continuación ...A continuación ...
El Lenguaje de Modelado Unificado.– Introduciremos UML, y– veremos cómo realizar
• Modelado estructural
• Modelado del comportamiento
• Modelado arquitectónico Preparación:
– Tema 3. El Lenguaje de Modelado Unificado.
http://polaris.lcc.uma.es/~amg/ISE/Tema3.zip– Caps. 1,3,4,5. Schmuller. Teach yourself UML in 24 hours.– Cap, 1. “Los 3 amigos”, The Unified Modeling Language. – Probar/Jugar con Rational Rose y MagicDraw UML.
Top Related