Beruflich Dokumente
Kultur Dokumente
Objetos.
I
El Enfoque Orientado a Objeto se basa en cuatro principios que constituyen la base
de todo desarrollo orientado a objetos. Estos principios son: la Abstraccin, el
Encapsulamiento, la Modularidad y la Herencia.
Fundamento 1: Abstraccin
objetos son agrupados en una clase de nivel superior (Superclase), donde las semejanzas de
las clases constituyentes (Subclases) son enfatizadas, y las diferencias entre ellas son
ignoradas. En consecuencia, a travs de la generalizacin, la superclase almacena datos
generales de las subclases, y las subclases almacenan slo datos particulares.La
especializacin es lo contrario de la generalizacin. Por ejemplo; La clase Mdico es una
especializacin de la clase Persona, y a su vez, la clase Pediatra es una especializacin de la
superclase Mdico.
La agregacin es el mecanismo de abstraccin por el cual una clase de objeto es definida a
partir de sus partes (otras clases de objetos). Mediante agregacin se puede definir por
ejemplo un computador, por descomponerse en: la CPU, la ULA, la memoria y los dispositivos
perifricos. El contrario de agregacin es la descomposicin.
La clasificacin consiste en la definicin de una clase a partir de un conjunto de objetos que
Fundamento 2: Encapsulamiento
Es la propiedad del EOO que permite ocultar al mundo exterior la representacin interna
del objeto. Esto quiere decir que el objeto puede ser utilizado, pero los datos esenciales del
mismo no son conocidos fuera de l. La idea central del encapsulamiento es esconder los
detalles y mostrar lo relevante. Permite el ocultamiento de la informacin separando el
aspecto correspondiente a la especificacin de la implementacin; de esta forma, distingue el
"qu hacer" del "cmo hacer". La especificacin es visible al usuario, mientras que la
implementacin se le oculta. El encapsulamiento en un sistema orientado a objeto se
representa en cada clase u objeto, definiendo sus atributos y mtodos con los
siguientes modos de acceso:
Pblico (+): Atributos o Mtodos que son accesibles fuera de la clase. Pueden ser llamados
clase.
Protegido (#): Atributos o Mtodos que son accesibles para la propia clase y sus clases hijas
(subclases).
Los atributos y los mtodos que son pblicos constituyen la interfaz de la clase, es
decir, lo que el mundo exterior conoce de la misma.Normalmente lo usual es que se oculten
los atributos de la clase y solo sean visibles los mtodos, incluyendo entonces algunos de
consulta para ver los valores de los atributos. El mtodo constructor (Nuevo, New) siempre es
Pblico.
Fundamento 3: Modularidad
Es la propiedad que permite tener independencia entre las diferentes partes de un
sistema. La modularidad consiste en dividir un programa en mdulos o partes, que pueden ser
compilados separadamente, pero que tienen conexiones con otros mdulos. En un mismo
mdulo se suele colocar clases y objetos que guarden una estrecha relacin. El sentido de
modularidad est muy relacionado con el ocultamiento de informacin.
Fundamento 4: Herencia
Es el proceso mediante el cual un objeto de una clase adquiere propiedades definidas
en otra clase que lo preceda en una jerarqua de clasificaciones. Permite la definicin de un
nuevo objeto a partir de otros, agregando las diferencias entre ellos (Programacin
Diferencial), evitando repeticin de cdigo y permitiendo la reusabilidad.
Las clases heredan los datos y mtodos de la superclase. Un mtodo heredado puede
ser sustituido por uno propio si ambos tienen el mismo nombre. La herencia puede ser simple
(cada clase tiene slo una superclase) o mltiple (cada clase puede tener asociada varias
superclases). La clase Docente y la clase Estudiante heredan las propiedades de la clase
pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar
la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el
principio de ocultacin, principalmente porque se suelen emplear conjuntamente.
en partes ms pequeas (llamadas mdulos), cada una de las cuales debe ser tan
independiente como sea posible de la aplicacin en s y de las restantes partes. Estos
mdulos se pueden compilar por separado, pero tienen conexiones con otros mdulos. Al
igual que la encapsulacin, los lenguajes soportan la Modularidad de diversas formas.
Principio de ocultacin: Cada objeto est aislado del exterior, es un mdulo natural, y cada
tipo de objeto expone una interfaz a otros objetos que especfica cmo pueden interactuar con
los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su
modificacin por quien no tenga derecho a acceder a ellas, solamente los propios mtodos
internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden
cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos
secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un
acceso directo a los datos internos del objeto de una manera controlada y limitando el grado
de abstraccin. La aplicacin entera se reduce a un agregado o rompecabezas de objetos.
Herencia: Las clases no estn aisladas, sino que se relacionan entre s, formando una
clase D hereda en ella cada uno de los atributos y operaciones de C, como si esos atributos y
operaciones hubiesen sido definidos por la misma D. Por lo tanto, puede usar los mismos
mtodos y variables publicas declaradas en C. Los componentes registrados como "privados"
(private) tambin se heredan, pero como no pertenecen a la clase, se mantienen escondidos
al programador y slo pueden ser accedidos a travs de otros mtodos pblicos. Esto es as
para mantener hegemnico el ideal de OOP.
Evento: Es un suceso en el sistema (tal como una interaccin del usuario con la mquina, o un
mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado
al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede
desencadenar un objeto, es decir la accin que genera.
Mensaje: Una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus
mtodos con ciertos parmetros asociados al evento que lo gener.
Estado interno: Es una variable que se declara privada, que puede ser nicamente accedida
y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles
para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de
la clase.
Identificacin de un objeto: Un objeto se representa por medio de una tabla o entidad que
est compuesta por sus atributos y funciones correspondientes.
Reusabilidad de componentes.
Una vez que una clase ha sido escrita, creada y depurada, se puede distribuir a otros
programadores para utilizar en sus propios programas. Esta propiedad se llama reusabilidad
o reutilizacin. Su concepto es similar a las funciones incluidas en las bibliotecas de funciones
de un lenguaje procedimental como C que se pueden incorporar en diferentes programas. En
C++, el concepto de herencia proporciona una extensin o ampliacin al concepto de
reusabilidad.
Un programador puede considerar una clase existente y sin modificarla, aadir
competencias y propiedades adicionales a ella. Esto se consigue derivando una nueva clase
de una ya existente. La nueva clase heredar las caractersticas de la clase antigua, pero es
libre de aadir nuevas caractersticas propias.
La facilidad de reutilizar o rehusar el software existente es uno de los grandes
beneficios de la POO: muchas empresas consiguen con la reutilizacin de clase en nuevos
proyectos la reduccin de los costes de inversin en sus presupuestos de programacin. Las
propiedades comunes de varias clases slo necesitan ser implementadas una vez y slo
necesitan modificarse una vez si es necesario
Metodologa Empleada
El modelo y diseo orientado a objetos u OMT( tcnica de modelado de objetos ) se
extiende desde el anlisis hasta la implementacin pasando por el diseo . Actualmente es
una de las metodologas mas implantadas.
Los propios objetos se pueden constituir a partir de otros , que a su vez pueden estar
formados por otros objetos .Esto nos recuerda a una maquina compleja construida por partes ,
subpartes y sub-subpartes,etc.
Por eso, este curso revisa los conceptos ms importantes que se encuentran en las
distintas etapas del desarrollo de software orientado a objetos.
Fases y Disciplinas:
Fase de Inicio: Esta fase tiene como propsito definir y acordar el alcance del proyecto
con los patrocinadores, identificar los riesgos asociados al proyecto, proponer una
visin muy general de la arquitectura de software y producir el plan de las fases y el de
iteraciones posteriores
Fase de Cierre: El propsito de esta fase es asegurar que el software est disponible
para los usuarios finales, ajustar los errores y defectos encontrados en las pruebas de
aceptacin, capacitar a los usuarios y proveer el soporte tcnico necesario. Se debe
verificar que el producto cumpla con las especificaciones entregadas por las personas
involucradas en el proyecto.
El Proceso Unificado es un proceso de software genrico que puede ser utilizado para
una gran cantidad de tipos de sistemas de software, para diferentes reas de aplicacin,
diferentes tipos de organizaciones, diferentes niveles de competencia y diferentes tamaos de
proyectos.
Provee un enfoque disciplinado en la asignacin de tareas y resposabilidades dentro
de una organizacin de desarrollo. Su meta es asegurar la produccin de software de muy alta
calidad que satisfaga las necesidades de los usuarios finales, dentro de un calendario y
presupuesto predecible.
Un eje horizontal que representa el tiempo y muestra los aspectos del ciclo de vida
del proceso a lo largo de su desenvolvimiento
Un eje vertical que representa las disciplinas, las cuales agrupan actividades de
una manera lgica de acuerdo a su naturaleza.
1. La fase de concepcin o inicio tiene por finalidad definir la visin, los objetivos y el
alcance del proyecto, tanto desde el punto de vista funcional como del tcnico,
obtenindose como uno de los principales resultados una lista de los casos de uso y
una lista de los factores de riesgo del proyecto. El principal esfuerzo est radicado en
Cada una de estas iteraciones se divide a su vez en una serie de disciplinas que
recuerdan a las definidas en el ciclo de vida clsico o en cascada: Anlisis de requisitos,
Diseo, Implementacin y Prueba. Aunque todas las iteraciones suelen incluir trabajo en casi
todas las disciplinas, el grado de esfuerzo dentro de cada una de ellas vara a lo largo del
proyecto.
Un sistema de software se crea para servir a sus usuarios. Por lo tanto, para construir un
sistema exitoso se debe conocer qu es lo que quieren y necesitan los usuarios prospectos.
El trmino usuario se refiere no solamente a los usuarios humanos, sino a otros sistemas.
En este contexto, el trmino usuario representa algo o alguien que interacta con el sistema
por desarrollar.
An y cuando los casos de uso dirigen el proceso, no son elegidos de manera aislada. Son
desarrollados a la par con la arquitectura del sistema, esto es, los casos de uso dirigen la
arquitectura del sistema y la arquitectura del sistema influencia la eleccin de los casos de
uso. Por lo tanto, al arquitectura del sistema y los casos de uso maduran conforme avanza el
ciclo de vida.
Centrado en la arquitectura
Cmo se relacionan los casos de uso con la arquitectura? Cada producto tiene funcin y
forma. Uno slo de los dos no es suficiente. Estas dos fuerzas deben estar balanceadas para
obtener un producto exitoso. En este caso funcin corresponde a los casos de uso y forma a
la arquitectura. Existe la necesidad de intercalar entre casos de uso y arquitectura. Es un
problema del huevo y la gallina. Por una parte, los casos de uso deben, cuando son
realizados, acomodarse en la arquitectura. Por otra parte, la arquitectura debe proveer
espacio para la realizacin de todos los casos de uso, hoy y en el futuro. En la realidad,
ambos arquitectura y casos de uso deben evolucionar en paralelo.
Introduccin al Modelado
Lenguaje Unificado de Modelado (LUM o UML, por sus siglas en ingls, Unified Modeling
Language) es el lenguaje de modelado de sistemas de software ms conocido y utilizado en la
actualidad; est respaldado por el OMG (Object Management Group). Es un lenguaje grfico
para visualizar, especificar, construir y documentar un sistema. UML ofrece un estndar para
describir un "plano" del sistema (modelo), incluyendo aspectos conceptuales tales como
procesos de negocio, funciones del sistema, y aspectos concretos como expresiones de
lenguajes de programacin, esquemas de bases de datos y componentes reutilizables.
los mismos
Un mtodo incluye
Proceso: Son los pasos que se aconsejan dar para realizar un diseo.
Diagramas
- Casos de Uso
- Clases
- Objetos
- Secuencia
- Colaboracin
- Estados
- Actividades
- Componentes
- Despliegues
Smbolos y Notacin
Herramientas Case
los errores ms comunes es escoger una herramienta CASE que apoye un mtodo
desconocido para los diseadores".
Las herramientas CASE abarcan cada etapa del proceso de ingeniera y cada actividad
que se desarrolla a lo largo del mismo. CASE est formado por un conjunto de bloques que
comienzan en el nivel del hardware y del sistema operativo y acaban en cada una de las
herramientas.
Las herramientas CASE pueden clasificarse por su funcin, su papel como instrumentos
para administradores o personal tcnico, por su utilizacin en los distintos pasos del proceso
de ingeniera del software, la arquitectura de entorno (hardware y software) que les presta su
apoyo, o incluso por su origen o su coste. En muchos casos, las nicas herramientas
disponibles para el ingeniero del software eran compiladores y editores de texto. Estas
herramientas abarcan solo la codificacin, actividad que no debera de ocupar mas del 20%
del proceso global del software.
- Las fases del ciclo de vida del desarrollo de sistemas que cubren.
- Su funcionalidad.
ciclo de vida completo. El producto final aportado por ellas es un sistema en cdigo ejecutable
y su documentacin.
Una segunda clasificacin es teniendo en cuenta las fases (y/o tareas) del ciclo de vida que
automatizan:
"Herramientas CASE"