Vous êtes sur la page 1sur 76

UNIVERSIDAD SEÑOR

DE SIPAN
FACULTAD DE INGENIERÍA ARQUITECTURA Y
URBANISMO
ESCUELA ACADÉMICO PROFESIONAL DE INGENIERÍA
DE SISTEMAS

CURSO: INGENIERÍA DE LA INFORMACIÓN

CICLO: V

PROFESOR: INGº DENNY J. FUENTES ADRIANZÉN

CICLO 2011 - I
Ingeniería de Software Orientado a
Objetos
En esta unidad proporcionaremos un panorama
general de la Ingeniería de Software y la importancia
que tiene en el desarrollo organizacional. Además
conoceremos los principios y conceptos básicos del
Paradigma Orientado a Objetos, que realizar una
correcta aplicación en el desarrollo de un Sistema
Informático.
Además estudiaremos la utilidad que tiene el
modelado para el desarrollo de un Sistema
Informático, y la necesidad de contar con la
Arquitectura de Software.

Ingº Denny J. Fuentes Adrianzén


Unidad 02: Ingeniería de Software
Orientado a Objetos

PRESENTACION

Ultimamente hemos escuchado los términos


OBJETOS, POO, AOO, DOO, BDOO. Donde ya la
industria informática esta migrando al Modelo
Orientado a Objetos.
Además agregamos de que la proyección del
desarrollo de aplicaciones para Internet, denominados
Intranets, Extranets y otros, usando esta tecnología.

Ingº Denny J. Fuentes Adrianzén


INTRODUCCION

El Modelo Orientado a Objetos es un nuevo


enfoque sobre la manera de organizar las diferentes
piezas que componen un sistema de información
(software), como en el hardware (equipo físico), la
base de datos e incluso, en organizaciones todas estas
piezas se denominan “objetos, los cuale son
pequenos subsistemas independientes con datos
propios sobre estos elementos, sus clases y tipos.
Rigen tales propiedades como herencia,
comunicación con lenguajes, polimorfismos y otros
que en conjunto nos permiten obtener ventajas
prácticas.
con esto, nos hemos referido a la Tecnología
Orientada a Objetos aplicada a Software.
Ingº Denny J. Fuentes Adrianzén
RESEÑA HISTÓRICA
La TOO data de los años 60, cuando surge la
necesidad de describir y simular fenómenos como
sistemas de comunicación, redes neuronales, sistemas
administrativos, etc.
En 1961 Krystin Nygaard con la idea de
desarrollar un lenguaje con doble propósito
(descripción de sistema y simulación programable)
crea SIMULA I. Los usuarios descubrieron que también
proveía de nuevas y poderosas facilidades cuando era
usado para otros propósitos, aparte de la simulación,
tales como el prototipeo y aplicaciones.
En 1967 se creó SIMULA 67, y en él se
implementaron por primera vez los conceptos de
Clase, Objeto y Herencia, que en adelante serían
elementos centrales en los LOO.
Ingº Denny J. Fuentes Adrianzén
El desarrollo de la estructura del pensamiento y
la construcción del conocimiento

Los seres humanos a partir de la experiencia de


la observación y captación de cosas y hechos del
mundo que nos rodea, construimos conceptos
“concretos”. Estos nos permiten ser consistentes y
razonar.
Por ejemplo: Fido es un elemento del mundo real
que es conceptualizado con Fido. En él almacenamos
sus caracterísitcas (DATOS), por ejemplo: tiene pelos,
cuatro patas, dos orejas, etc.
junto con los datos también almacenamos sus
acciones (COMPORTAMIENTO), es decir, lo que puede o
no hacer (ladrar, correr, saltar, comer, etc.).

Ingº Denny J. Fuentes Adrianzén


El desarrollo de la estructura del pensamiento y
la construcción del conocimiento (Cont...)
Como consecuencia de este hecho
(almacenamiento de los datos y comportamiento en
una sola unidad conceptual), entre las muchas
operaciones de nuestra mente, podemos razonar que
Fido no tiene alas, ni plumas, ni puede volar.
A las acciones que, cualquier elemento del
mundo real, realiza como reacción frente a un estímulo
las denominamos Operaciones. Algunos
comportamientos complejos son el resultado de la
interacción o sucesión de varias operaciones, a éstos
los denominaremos Procesos.
El hombre construye Sistemas y aún Teorías
como producto del raciocinio de Hipótesis (propuestas
de solución.).
Ingº Denny J. Fuentes Adrianzén
El desarrollo de la estructura del pensamiento y
la construcción del conocimiento (Cont...)
Un sistema es un conjunto de componentes
(conceptos y modelos, y aún de otros sistemas) que
interactúan en distintos planos, entre sí para alcanzar
objetivos específicos. Cada Sistema construído es una
manera de solucionar los diferentes problemas que
enfrenta el hombre a lo largo de su existencia, por
ejemplo el Lenguaje, uno de los sistemas más
elaborados, permite satisfacer la necesidad vital de
comunicación.
En sintesís construímos Conceptos, Modelos y
Sistemas. Es la forma en que captamos el mundo real
y operamos en él. El Modelo de Objetos intenta
simular este hecho y sus fundamentos se sostienen en
él.
Ingº Denny J. Fuentes Adrianzén
Ingeniería de Software Orientado a Objetos

La Ingeniería de Software (IS) es una disciplina


que integra métodos, herramientas y procedimientos
para el desarrollo del software de computadoras.
Se han propuesto varios paradigmas, entre ellos
podemos mencionar: Estructurado, Orientado a
Objetos, Sala limpia (nuevo método de estructurado),
Cliente/Servidor, reutilización del software,
reingeniería del software, software asistido por
computadoras, etc.
El software se ha convertido en el elemento
clave de la evolución de los sistemas y productos
informáticos.

Ingº Denny J. Fuentes Adrianzén


Importancia de Ingeniería de Software

En las pasadas cuatro décadas, el software ha


pasado de ser una resolución de problemas
especializados y una herramienta de análisis de
información, a ser una industria por sí misma.

Pero la temprana cultura e historia de la


programación ha creado un conjunto de programas
que persisten hasta hoy.

El software se ha convertido en un factor que


limita la evolución de los Sistemas Informáticos.

Ingº Denny J. Fuentes Adrianzén


En resumen la OO:
Abstracción
de la realidad Conceptos
Objetos
Clases
Estructuras jerárquicas
Orientado Métodos
En función Operaciones
Servicios

Y que Abstracción
mediante Encapsulamiento
Objetos Herencia
Polimorfismo
Mensaje
Identidad
Permite
Asociación
manejar la
complejidad

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos

Los conceptos en que se fundamenta la OO, son


muy variados y dependen del punto de vista, pero
entre las principales a considerar son las siguientes:

• Concepto
• Objeto
• Clase
• Atributos
• Estructuras Jerárquicas
• Generalización / Especialización
• Método / Operación / Servicios

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)

Concepto
Un concepto es una idea o noción compartida
que se aplica a determinados objetos en forma
consciente.
Es un conjunto compartido de proposiciones
generales que podemos aplicar a los objetos de
nuestra conciencia.

Objeto
Definimos a un objeto como un concepto,
abstracción o cosa con significado dentro del dominio
del problema.
un objeto es sinónimo de instancia, tipo. Un
objeto es cualquier cosa, real o abstracta, acerca del
Ingº Denny J. Fuentes Adrianzén
Conceptos Básicos (Cont...)

Objeto (Cont...)
cual se almacena datos y métodos que controlan
dichos datos.
Tiene estructura y comportamiento bien
definidos. Modela parte de la realidad.

Un objeto queda definido a través de:


• Estructura (Atributos)
• Comportamiento (Métodos)

AUTOMÖVIL

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)

Clase
Un número de personas o cosas agrupadas a
causa semejante en ciertas características comúnes.
Una clase es una implementación de un tipo de
objeto. Especifica una estructura de datos y los
métodos operativos permisibles que se le aplica a cada
uno de sus objetos.
Conjunto de objetos que comparten una
estructura y comportamiento común.
Nombre
Atributos Dirección
FechaNac
Persona

Métodos Dame Edad


Dame Nombre
Dame Dirección
Ingº Denny J. Fuentes Adrianzén
Conceptos Básicos (Cont...)

Clase (Cont...)
Los objetos en la clase tienen los mismos
modelos de comportamiento y atributos.
Los objetos y clases suelen aparecer como
sustantivos en las descripciones de problemas.

Atributos
Un atributo es un valor de un dato que esta
almacenado en los objetos de una clase.
El nombre del atributo es único dentro de la
clase. Las instancias distintas de un cierto objeto
pueden tener el mismo valor o valores distintos para
un atributo dado.

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)

Estructuras Jerárquicas
Una estructura jerárquica es una manera de
organización.
La estructura jerárquica es una expresión de la
complejidad de un problema, pertinente del sistema de
responsabilidades.
Este término se usa como un término total,
describiendo el siguiente tipo de estructura
Generalización/Especialización (estrctura de clasificación) y
estructura todo/parte (estructura de ensamble o composición).

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)

Generalización / Especialización
La Generalización es el acto o el resultado de
distinguir un concepto que es más general que otro.
La Generalización y la Herencia son potentes
abstracciones para compartir similitudes entre clases
al mismo tiempo que se mantienen sus diferencias.
La Generalización es la relación entre una clase y
una o más versiones refinadas de esa misma clase.
Ejemplo: En un banco, es de esperarse que los
Empleados y los Clientes tengan ciertos atributos
comunes como RUC, nombre, dirección y teléfono, sin
embargo los Empleados podrían tener un atributo
exclusivo, como salario mientras que los Clientes
tendrán atributos como tasa de crédito.
Ingº Denny J. Fuentes Adrianzén
Conceptos Básicos (Cont...)

Generalización / Especialización (Cont...)

Aquí los empleados y los clientes pueden ser


representados por especializaciones de una clase
Persona.

Los atributos y los métodos específicos para


Empleado se asocian a la clase Empleado, en forma
análoga, se actúa para los clientes. Los atributos y
métodos comunes para empleados y clientes se
asocian a la clase Persona.

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)

Generalización/Especialización (Cont...)

Persona

Empleado Cliente

Emp 1 Emp 2 Emp 3 Clie 1 Clie 2

Ingº Denny J. Fuentes Adrianzén


Conceptos Básicos (Cont...)
Generalización/Especialización (Cont...)

Vehículo
es_un es_un

Vehículo de
Vehículo
pasajeros
es_un es_un

Vehículo de Vehículo de
Pasajeros sin Pasajeros con es_un Tren
motor motor psajaeros
es_un es_un es_un

Bicicleta Bus Coche


es_un
es_un es_un es_un

Microbus AutoBus Familiar Deportivo


es_un

Ingº Denny J. Fuentes Adrianzén Toyota


Conceptos Básicos (Cont...)

Método/Operación/Servicio

Un Método es la especificación de una


operación.
Es el procedimiento que ejecuta un objeto para dar
respuesta a un servicio solicitado a través de un
mensaje.
Una Operación es un proceso que se puede
solicitar como una unidad.
Un Servicio es un comportamiento específico
que un objeto se responsabiliza.
Un objeto es entonces una cosa cuyas
propiedades están representadas por tipos de datos y
su comportamiento por métodos.
Ingº Denny J. Fuentes Adrianzén
Principios Básicos

Los principios sobre el que basa la OO. Son muy


variados y dependen del punto de vista, pero antre los
principales a considerar son los siguientes:

• Abstracción
• Encapsulamiento
• Herencia
• Polimorfismo
• Mensaje
• Identidad
• Asociación
• Agregación

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Abstracción
Es el principio de ignorar esos aspectos de un
tema que no vienen al caso con el propósito actual a
fin de concentrarse más totalmente sobre el asunto de
interés. Comprende dos aspectos:
Abstracción de procesos y de datos.

La abstracción es el acto o resultado de eliminar


diferencias entre los objetos, de modo que podamos
ver los aspectos comunes.
Este proceso natural en los seres humanos,
compuesto por diversas operaciones tales como
observar, captar, fijar, comparar, conceptualizar y otros
es denominado abstracción.
Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Abstracción (Cont...)
La abstracción es un proceso mental que se
aplica al seleccionar algunas características y
propiedades de un conjunto de objetos y excluir otras
no necesarias.

Encapsulamiento

Empaquetar datos y operaciones en forma


conjunta se llama ENCAPSULACION.
La encapsulación es el resultado (o acto) de
ocultar, al usuario los detalles de la implementación de
un objeto. El objeto oculta sus datos a otros objetos y
sólo permite accesar a sus datos vía sus propios
Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Encapsulamiento (Cont...)

métodos mediante mensajes específicos, es decir, se


crea una “caja negra” que solo el constructor del
objeto conoce.
A esto se llama ocultamiento de información. La
encapsulación protege los datos de un objeto de la
corrupción. Si todos los programas pudieran accesar a
los datos (como actualmente sucede con la tecnología
estructurada), fácilmente puede corromperse o
perderse. La encapsulación protege los datos del
objeto del uso arbitrario y no intencionado. Así la
creación está protegida y la competencia garantizada.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Herencia
La herencia es un mecanismo para la similitud
expresada entre clases, simplificando la definición de
clases parecidas a uno anteriormente definido.
Retrata la generalización y la especialización, al
hacer que atributos comunes atiendan en forma
explícita dentro de una jerarquía de clases.
Existen dos tipos de herencias: La Herencia
Simple y la Herencia Múltiple.
Ejemplo: Vamos a analizar la clase Música de
Colombia es la clase padre de las clases hija Vallenato
y Salsa. En otras palabras las Clases Vallenato y Salsa
son derivadas de la clase Música de Colombia. Ellas
heredan todas las propiedades de su padre.
Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Herencia (Cont...)
Clase padre: Música de Colombia.
Atributos: Tipo de ritmo, tipo de instrumentos,
músicos.
Métodos: bailada, cantada, tomada.

Clase hija Vallenato (hereda las propiedades de la


clase padre).
Atributos: Tipo de ritmo, tipo de instrumentos,
músicos.
Métodos: bailada, cantada. El nuevo método incluye el
tocar un instrumento.

Para la clase hija Salsa, procederiamos de igual forma.


Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Herencia (Cont...)
Otro ejemplo: El hijo hereda las caracterísiticas del
padre, pero tiene otras propias y mejora o empeora,
algunas características del papá.

Animal

Insecto Mamífero Pájaro

Persona

Hombre Mujer
Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Tipos de Herencia
Herencia Simple: En esta jerarquía cada clase tiene
como máximo una sola superclase. La herencia simple
permite que una clase herede las propiedades de su
superclase en una cadena jerárquica.
Ejemplo:

Vehículo

Auto Camión Bus

Camioneta Remolque Trailer

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Tipos de Herencia
Herencia Múltiple: Es aquella en la que cada clase
puede heredar métodos y variables de cualquier
número de superclase. En la siguiente figura, la clase
C tiene dos superclases A y D. Por consiguiente, la
Clase C hereda las propiedades de la clases A y D.
Ejemplo:

A D

B C F

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Tipos de Herencia
Herencia Múltiple (Cont...)
Ejemplo:
Atributos: Estudiante Empleado Atributos:
Nombre Nombre
Dirección Dirección
Campus Estudios
Curso_Año Salario
Dias_Vacaciones
Atributos Heredados: Trabajador_est Métodos:
Nombre Aumento_salario
Dirección Métodos Heredados:
Campus Aumento_salario
Curso_Año
Estudios
Salario
Dias_Vacaciones

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Tipos de Herencia
Herencia Múltiple (Cont...)
Ejemplo:

Persona

Estudiante Empleado

Trabajador_est

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Polimorfismo
El término polimorfismo proviene de la biología y
significa, literalmente, muchas formas. Los biólogos
definen el polimorfismo como la variación en forma y
función que se encuentren entre los miembros de una
especie común.

El polimorfismo ocurre cuando métodos


distintos, llevan a cabo el mismo propósito operativo.
Esta palabra se aplica a una operación que adopta
varias formas de implementación.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Polimorfismo (Cont...)

Ejemplo:
Una clase figura puede aceptar los mensajes
dibujar, borrar y mover, cualquier tipo derivado de una
figura es un tipo de figura y puede recibir el mismo
mensaje, cuando se envie un mensaje por ejemplo;
dibujar, esta tarea será distinta según que clase sea un
triángulo, un cuadrado, círculo, o una elipse (osea
depende del llamado).

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Mensaje
Para que un objeto haga algo, le enviamos una
solicitud. Esta ahce que se produzca una operación.

La operación ejecuta el método apropiado, y de


manera opcional, produce una respuesta.

El mensaje que constituye la solicitud contiene el


nombre del objeto, el nombre de una operación, y a
veces, un grupo de parámetros.

Un mensaje es una solicitud para que se lleve a


cabo la operación indicada y se produzca el resultado.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Identidad

La identidad es la facilidad para que cada objeto


(sin considerar su clase o el estado actual) puede
identificarse y tratarse como una entidad distinta.

La identidad de objetos, o clases, es cuando


tiene identidades únicas a lo largo de sus vidas.

El uso de la identidad hace singularmente la


identificación del objeto.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Asociación

Una asociación describe un grupo de enlaces con


estructuras y semánticas comúnes.

La asociación define la forma en que se pueden


enlazar o conectar los objetos de distintos tipos.

Un enlace es una instancia de una asociación.

Las asociaciones son inherentemente


bidireccionales.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Agregación

La Composición o agregación es el acto o el


resultado de formar un objeto configurando mediante
sus partes componentes.
Una agregación es una relación “parte-todo” o
“una parte de” en la cual los objetos que representan
los componentes de algo se asocian a un objeto que
representan el ensamblaje completo.
Un ensamblaje con muchas clases de
componentes se corresponde con muchas relaciones
de agregación.

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Agregación (Cont...)
Ejemplo:

Auto

Parte de
Parte de
Parte de

Sistema de
Motor Llantas
frenos

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Agregación (Cont...)
Ejemplo:

Casa

Parte de Parte de

Habitación Tejados

Parte de Parte de

Parte de

Puertas Ventanas Paredes

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Agregación frente a Generalización
Ejemplo:

Avión

es_un
es_un es_un parte_de
parte_de parte_de

Avión de Avión Avión de


Alas Motor Cabina
carga militar pasajeros

es_un es_un

Boing Jumbo

Ingº Denny J. Fuentes Adrianzén


Principios Básicos (Cont...)
Asociación
Un enlace es una conexión física o conceptual
entre los objetos.
Una asociación describe un conjunto de enlaces
que tiene una estructura y un significado común entre
las clases.
Notación: Las asociaciones se muestran conectando
dos o más objetos/clases con una línea, el nombre es
colocado sobre la linea que los une.

enseña
Curso Profesor

enseña
Profesor Curso
Ingº Denny J. Fuentes Adrianzén
Principios Básicos (Cont...)
Asociación (Cont...)
Enlaces o asociaciones son inherentemente
bidireccionales, es decir, el nombre es leído de
izquierda a derecha. Los nombre son elegidos como
verbos activos. Un triángulo de dirección o
Multiplicidad
1 1
Uno a uno

1 *
Uno a muchos (cero, uno o más)

1 0..*
Uno a cero o más

1 1..*
Uno a uno o más

Ingº Denny J. Fuentes Adrianzén


¿Cuál es la diferencia entre Clase y Objeto?

Un Objeto es un simple elemento, no importa lo


complejo que puede ser. Una Clase, por el contrario,
describe una familia de elementos similares. En la
práctica, una clase es como un esquema o plantilla
que se utiliza para definir o crear objetos.

A partir de una clase se pueden definir un


número determinado de objetos. Cada uno de éstos
objetos tendrá un estado particular propio (una pluma
puede estar llena, otra puede estar medio llena y otra
totalmente vacía) y otras características (como su
color), aunque comparten algunas operaciones
comúnes (como <<escribir>> o <<llenar su depósito
de tinta>>).
Ingº Denny J. Fuentes Adrianzén
Tecnología Orientada a Objetos (TOO)
La génesis de la TOO data de principios de los
años sesenta. Surgió de la necesidad de describir y
simular fenómenos, como las redes neuronales, los
sistemas de comunicación, el flujo de tráfico, los
sistemas de producción, los sistemas administrativos e
incluso los sistemas sociales.
Definición de la TOO
La TOO, una de las más recientes técnicas de
desarrollo de sistemas y se basa en la OO; cuenta con
cuatro bases fundamentales:
• Análisis Orientado a Objetos (AOO).
• Diseño Orientado a Objetos (DOO).
• Programación Orientada a Objetos (POO).
• Base de Datos Orientada a Objetos (BDOO).
Ingº Denny J. Fuentes Adrianzén
Análisis Orientado a Objetos (AOO)

Con el Análisis Orientado a Objetos, las formas


de modelar la realidad difiere del análisis convencional.
Modelamos el mundo en términos de objetos y lo que
le ocurre a éstos.

Los modelos que construimos en AOO reflejan la


realidad de modo más natural que los del Análisis
tradicional de sistemas.

AOO es una fusión de disciplinas tal como se


aprecia en la siguiente ilustración:

Ingº Denny J. Fuentes Adrianzén


MODELO
ORIENTADO A OBJETOS
ENTIDAD - RELACIÓN
LENGUAJES DE PROGRAMACIÓN
SISTEMAS BASADOS EN
CONOCIMIENTOS
MODELO
SEMÁNTICO DE DATOS ATRIBUTOS Y
SERVICIOS
ATRIBUTO EXCLUSIVOS
CONEXIONES E COMUNICACIÓN
INSTANCIAS CON MENSAJES
GENERALIZACIÓN- POLIMORFISMO
ESPECIALIZACIÓN HERENCIA
TODO - PARTE

ANALISIS ORIENTADO A OBJETOS

Ingº Denny J. Fuentes Adrianzén


Diseño Orientado a Objetos (DOO)

El DOO presenta una posibilidad, en la cual los


datos y los procedimientos se tratan simultáneamente
como pensamiento subsidiarios dentro de un concepto
central, el objeto.

El diseñador construye un diseño, basado en el


modelo del análisis pero conteniendo detalle de
implementación.

Ingº Denny J. Fuentes Adrianzén


Programación Orientada a Objetos (POO)

La Programación Orientada a Objetos es una


forma de diseño modular en la que con frecuencia, el
mundo se piensa en términos de objetos, operaciones,
métodos y mensajes que se transfieren entre tales
objetos.

La POO no consiste simplemente en unas


cuantas características nuevas añadidas a los
lenguajes de programación.

Más bien en una nueva forma de pensar acerca


del proceso de descomposición de problemas y
desarrollo de soluciones de programación.

Ingº Denny J. Fuentes Adrianzén


Base de Datos Orientada a Objetos (BDOO)

Una BD tradicional solo almacena datos, sin


procesarlos, de modo que resulten independiente de
los procedimientos. Los datos son accesibles a
diferentes usuarios, con diversos propósitos.

Por lo contrario, una Base de Datos Orientada a


Objetos almacena Objetos. Los datos se almacenan
junto con los métodos que procesan dichos datos.

La BDOO es producto de un conjunto de


necesidades producidas por otras, tal como se aprecia
en la siguiente ilustración:

Ingº Denny J. Fuentes Adrianzén


Situación Actual en la TOO

Más Calidad
Tecnología Reutilizar el Más Productividad
Orientada a Código Menos Costo
Objetos

Tecnología Tecnología Tecnología


Orientada a Orientada a Orientada a
Objetos Objetos Objetos

Ingº Denny J. Fuentes Adrianzén


Beneficios de la Tecnología Orientada a
Objetos
• Reusabilidad.
• Las clases son diseñadas de tal manera que ellas
puedan ser utilizadas en muchos sistemas. Para
maximizar el reuso las clases deben ser
construidas de manera que puedan ser
personalizadas. Un repositorio debería ser cargado
con una colección de clases reusables.
• Estabilidad.
• Las clases diseñadas para el reuso repetido, llegan
a ser estables de la misma manera que los
microprocesadores y otros chips que son bastante
estables. Las aplicaciones serán construidas
utilizando chips de software.

Ingº Denny J. Fuentes Adrianzén


Beneficios de la Tecnología Orientada a
Objetos (Cont...)
• El diseñador piensa de Comportamiento de Objeto,
no en Niveles de Detalle.
• El encapsulamiento oculta los detalles y hace fácil
el uso de clases complejas. Las clases son
semejantes a las cajas negras. El desarrollador
utiliza la caja negra sin mirar su interior. El tiene un
entendimiento del comportamiento de la caja negra
y cómo comunicarse con ella.
• Construcción de objetos con complejidad creciente.
• Los objetos se construyen fuera de los objetos. Una
buena manera de fabricar es construir formando
una lista de materiales de partes y subpartes
existentes. Esto posibilita construir componentes
de software complejos y los mismos
Ingº Denny J. Fuentes Adrianzén
Beneficios de la Tecnología Orientada a
Objetos (Cont...)
se utilizarán para construir otros bloques de
software más complejos.
• Confiabilidad.
• El software construido a partir de una Librería de
Clases estables, es probable que se encuentre libre
de errores, respecto a construir software desde el
inicio. Cada método en una clase es en si mismo
simple y diseñado para ser confiable.
• Diseño Rápido.
• Las aplicaciones son creadas tomando
componentes preexistentes. Muchos componentes
son construidos de tal forma que, pueden ser
observados, personalizados, para un diseño
particular.
Ingº Denny J. Fuentes Adrianzén
Beneficios de la Tecnología Orientada a
Objetos (Cont...)

Los componentes pueden ser vistos, customizados


y enlazados en la pantalla de la herramienta CASE.
• Fácil Mantenimiento.
• Los programas de mantenimiento generalmente
cambiarán los métodos correspondientes a una
clase. Cada clase realiza operaciones
independientemente de otras clases.
• Mejor comunicación entre Profesionales de
Informática y los usuarios finales.
• Los usuarios finales entienden mejor el Paradigma
Orientado a Objetos. Ellos piensan en términos de
eventos, objetos y políticas de negocios que
describen el comportamiento de los objetos.
Ingº Denny J. Fuentes Adrianzén
Beneficios de la Tecnología Orientada a
Objetos (Cont...)
• Las Metodologias Orientadas a Objetos estimulan el
mejor entendimiento, cuando el usuario final y los
desarrolladores comparten un método común.

Ingº Denny J. Fuentes Adrianzén


Método, Metodología y Proceso en el Desarrollo
de Software (DS)

Un Método es la aplicacíón particular de una


metodología de Desarrollo de Software (DS) pero que
no abarca el ciclo de vida de DS ni cuenta con
herramientas tecnológicas de soporte.

Una Metodología es un marco general basado


en un paradigma que sirve de base para el Desarrollo
de Software y que abarca todo el ciclo de vida.

Un proceso de Desarrollo de Software esta


basado en una metodología, abarca todo el ciclo de
vida y provee herramientas tecnológicas de soporte.

Ingº Denny J. Fuentes Adrianzén


Problemas en el Desarrollo de Software (DS)

• Retrazos en los plazos.


• Proyectos cancelados.
• Rápido deterioro del sistema instalado.
• Tasa de defectos o fallos.
• Requisitos mal comprendidos.
• Cambios frecuentes en el dominio del problema.
• Muchas de las interesantes características del
software no proporcionan beneficios al cliente.
• Buenos programadores se cansan y dejan el equipo.

Ingº Denny J. Fuentes Adrianzén


El Modelado

• El modelado es una técnica de ingeniería probada y


bien aceptada.
• El modelado no sólo es parte de la industria de la
construcción.
• Un modelo es una abstracción del sistema,
especificando el sistema desde un cierto punto de
vista y en un determinado nivel de abstracción.
• Un modelo es una simplificación de la realidad.

Ingº Denny J. Fuentes Adrianzén


¿Por qué las empresas no hacen modelado?

• La mayor parte de las empresas de software no


realizan ningún modelado.
• El modelado requiere:
- Aplicar un proceso de desarrollo.
- Formación del equipo en las técnicas.
- ¿Tiempo?
• ¿Se obtienen beneficios con el modelado?.

Ingº Denny J. Fuentes Adrianzén


¿Por qué modelamos?

• Los modelos:
- Ayudan a visualizar como es o queremos que
sea el sistema.
- Especifican la estructura o comportamiento de
un sistema.
- Proporcionan la plantilla que nos guía en la
construcción de un sistema.
- Documentan las decisiones que hemos
adoptado.

Construimos moelos para comprender mejor el


sistema que estamos desarrollando.

Ingº Denny J. Fuentes Adrianzén


Principios de Modelado

• La elección de que modelos crear tiene una


profunda influencia sobre como se definen un
problema y como se da forma a una solución.
• Todo modelo puede ser expresado a diferentes
niveles de expresión.
• Los mejores modelos están ligados a la realidad.
• Un único modelo no es suficiente.
• El modelado no es sólo para los grandes sistemas.

Ingº Denny J. Fuentes Adrianzén


Utilidad del modelado

¿Escribimos código directamente?

• Se facilita la comunicación entre el equipo al existir


un lenguaje común.
• Se dispone de documentación que trasciende al
proyecto.
• Hay estructuras que trascienden lo representable
en un Lenguaje de Programación.

Ingº Denny J. Fuentes Adrianzén


Modelado Visual

“El modelado captura


Procesos del la parte esencial de un
Negocio sistema”
Dr. James Rumbaugh

Sistema de
Computo

El modelado visual es
un modelamiento usando
notaciones gráficas
Estándares.

Ingº Denny J. Fuentes Adrianzén


Arquitectura del Software (AS)
• 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 de un sistema es quizás el artefacto
más importante que puede emplearse para
manejar estos diferentes puntos de vista y
controlar el desarrollo iterativo e incremental.
• La AS no tiene que ver solamente con la estructura
y el comportamiento, sino también con el uso, la
funcionalidad, el rendimiento, la capacidad de
adaptación, la reutilización, la capacidad de ser
comprendido, las restricciones económicas y de
tecnología y los compromisos entre alternativas,
así como de aspectos estáticos.
Ingº Denny J. Fuentes Adrianzén
Por qué es necesaria la Arquitectura
• Un sistema de software grande y complejo requiere
una arquitectura para que los desarrolladores
puedan progresar hasta tener una visión común.

• Se necesita una arquitectura para:


- Comprender el sistema.
- Organizar el desarrollo.
- Fomentar la reutilización.
- Hacer evolucionar el sistema.

Ingº Denny J. Fuentes Adrianzén


Unified Modeling Language (UML)
• UML es un lenguaje estándar para la visualización,
especificación, construcción y documentación de
artefactos de un sistema.
• UML combina lo mejor de:
- Modelamiento conceptual de datos (DER).
- Modelamiento del flujo de actividades.
- Modelamiento de objetos.
- Modelamiento de componentes.
• UML significa Lenguaje Unificado de Modelado. Un
lenguaje de modelado es un lenguaje cuyo
vocabulario y reglas se centra en la representación
conceptual y física de un sistema.
• UML consiste en reglas de simbología que se
Ingº Denny J. Fuentes Adrianzén
Unified Modeling Language (UML)
aplican a cualquier tipo de modelo hecho bajo este
lenguaje.
• UML es un Lenguaje estándar para escribir planos o
modelos de software.
• UML tiene una sintaxis y una semántica bien
definida. La parte más visible de UML es su
notación gráfica.
• Puede utilizarse con todos los procesos y a lo largo
del ciclo de vida del desarrollo de software, y con
diferentes tecnologías de implementación.
• UML puede utilizarse para:

Ingº Denny J. Fuentes Adrianzén


Unified Modeling Language (UML)

• Visualizar el límite de un sistema y sus funciones


importantes.
• Ilustrar realizaciones de un sistema.
• Representar la estructura estática de un sistema.
• Modelar el comportamiento de objetos.
• Conocer la arquitectura física de la
implementación.
• Extender su funcionalidad con estereotipos.

• El vocabulario y las reglas de un lenguaje como


UML indican como crear y leer modelos bien
formados, pero no dicen “que” ni “cuando” éstos
modelos se deben crear.

Ingº Denny J. Fuentes Adrianzén


Unified Modeling Language (UML)

• UML es sólo un Lenguaje y por lo tanto están sólo


una parte de un método de Desarrollo de Software.
UML es independiente del proceso.
• Un proceso bien definido guiará a sus usuarios a
decidir que artefactos producir, que actividades y
que personal emplear para crearlo y gestionarlo.
• Un artefacto es una pieza de información que es
utilizada o producida por un proceso de desarrollo
de software.

Ingº Denny J. Fuentes Adrianzén


Antecedentes de UML

• Originalmente desarrollado por Rational, Grady


Booch y James Rumbaugh.
• Posteriormente se tiene la contribución de Ivar
Jacobson.
• Esta aceptada por OMG (Object Managment
Group).
• UML se ha publicado en las siguientes versiones:
0.8, 0.9, 0.91, 1.0, 1.1, 1.2, 1.3, ...

Ingº Denny J. Fuentes Adrianzén


Los tres amigos (y otros)

• Ivar Jacobson: Objectory and use cases.


• Jim Rumbaugh: OMT and UML.
• Grady Booch: BoochMethod and UML.
• Hewlett-Packard, Texas Instruments, Oracle.
• Microsoft: Repository, VisualModeling.
• Platinum: Open Modeling Language.
• IBM/ObjectTime: OCL/ROOM.

Ingº Denny J. Fuentes Adrianzén


Donde puede utilizarse UML

• UML esta pensando principalmente para sistemas


de gran cantidad de software.

• UML es apropiado para modelar desde sistemas de


información en empresas hasta aplicaciones
distribuidas basadas en Web, e incluso para
sistemas empotrados de tiempo real muy
exigentes.

• UML no esta limitado al modelado de software, es lo


suficientemente expresivo para modelar sistemas
que no son software.

Ingº Denny J. Fuentes Adrianzén


Utilidad de UML

• Permite especificar todas las decisiones de análisis,


diseño e implementación, construyéndose modelos
precisos, no ambiguos y completos.

• UML puede conectarse a lenguajes de


programación:

• Ingeniería directa e inversa.

• Permite documentar todos los artefactos de un


proceso de desarrollo (requisitos, arquitectura,
pruebas, versiones, ...).

Ingº Denny J. Fuentes Adrianzén


Metamodelo UML

• ¿Cómo se expresa la semántica del modelo?

• Informalmente
• Formalmente

• El metamodelo UML define la notación de un modo


riguroso, a través de diagramas de la propia
notación y con OCL (Lenguaje Conceptual de
Objetos).

Ingº Denny J. Fuentes Adrianzén

Vous aimerez peut-être aussi