Sunteți pe pagina 1din 6

Conceptualizacin de tecnologa orientada a objetos

El modelo del proceso de software 1.1 Conceptualizacin de tecnologa orientada a objetos


Conceptos de la Programacin tradicional. Conocida como programacin Estructurada consta
de mltiples datos y funciones globales. Todos los datos o funciones son visibles en todo
el programa Pueden ser llamados desde cualquier ubicacin en la aplicacin. Las
instrucciones de un programa: Estaban en funciones o procedimientos Se ejecutaban por
el procesador de manera secuencial Afectando los datos del programa Los datos se
almacenaban en la memoria. Dos problemas principales: a) La organizacin del programa de
ser de acuerdo a la arquitectura de la computadora b) Los datos se vuelven globalmente
visibles al estar separados de las funciones. Dado esto cualquier cambio en la estructura de
los datos pudiera llegar a requerir la modificacin de todas las funciones del programa
Conceptos de la Programacin Orientada a Objetos Tiene una estructura de ms alto nivel
llamada objeto, que ofrece dos ventajas sobre la tradicional: a) Permite al programador que
organice su programa de acuerdo con abstracciones de ms alto nivel. los objetos son las
unidades de representacin de las aplicaciones Ejemplo: cuentas de bancos, reservaciones
de vuelo, etc. b) Los datos globales y las funciones son parte interna de los objetos. Por lo
tanto los cambio en la estructura de alguno de los datos solo deber afectar las funciones
definidas en ese mismo objeto. Un programa orientado a objetos, se define exclusivamente en
trminos de objetos y sus relaciones. Una Perspectiva Histrica Tradicionalmente, la
programacin fue hecha : Secuencial o lineal: serie de pasos consecutivos con estructuras
consecutivas y bifurcaciones. Esta forma de programacin Tenia el problema ocurre cuando
los sistemas es complejos. programas estilo espaguetti Frente a esta dificultad: Aparece la
programacin estructurada: La idea principal es separar las partes complejas del programa en
mdulos. Diseo modular ( comunicacin entre ellos) Poco a poco este estilo de
programacin fue reemplazando al estilo espaguetti impuesto por la programacin lineal. La
evolucin que se fue dando en la programacin se orientaba siempre a ir descomponiendo
ms el programa Este tipo de descomposicin conduce directamente a la programacin
orientada a objetos. As aparece la Programacin Orientada a Objetos (POO). Viene de la
evolucin de la programacin estructurada; bsicamente simplifica la programacin con la
nueva filosofa y nuevos conceptos que tiene. La POO se basa en la dividir el programa en
pequeas unidades lgicas de cdigo. Objetos. unidades independientes que se comunican
entre ellos mediante mensajes. Cules son las ventajas de un lenguaje orientado a objetos?
Fomenta la reutilizacin y extensin del cdigo. Permite crear sistemas ms
complejos. Relacionar el sistema al mundo real. Facilita la creacin de programas visuales.
Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo
Facilita el mantenimiento del software Conceptos bsicos: Objetos, Clases, Herencia, Envo
de mensajes (mtodos) El modelo Orientado a Objetos Los objetos son entidades que tienen
un determinado comportamiento (mtodo) e identidad. El estado est compuesto de datos
atributos a los que se asignado un valor (datos). El comportamiento est definido por los
mtodos operaciones se pueden realizar con l. La identidad es lo que diferencia del
resto, es su identificador (variable o constante). Caractersticas Un objeto contiene toda la
informacin que permite identificarlo frente a otros objetos Disponen de mecanismos de
interaccin llamados mtodos (comunicacin entre ellos) Esta comunicacin favorece a su vez
el cambio de estado en los propios objetos. Esta caracterstica lleva a tratarlos como unidades
indivisibles, en las que no se separa el estado y el comportamiento Conceptos Fundamentales
POO Para entender este modelo vamos a revisar 4 conceptos bsicos: Objetos Clases
Herencia Envo de mensajes 1.- Objeto: Primero que es un objeto del mundo real: es

cualquier cosa que vemos a nuestro alrededor. Un monitor y una computadora, ambos son
objetos, al igual que nuestro telfono celular, un rbol o un automvil. Analicemos un poco
ms a un objeto del mundo real, como la computadora. una computadora est compuesta
internamente por varios componentes: Tarjeta madre Procesador Disco duro Tarjeta de
video, y otras partes ms. El trabajo en conjunto de todos estos componentes hace operar a
una computadora. Cada componente es una unidad autnoma, y todo lo que necesitamos
saber de adentro es cmo interactan entre. Por ejemplo si el procesador y las memorias
son compatibles con la tarjeta madre, o conocer donde se coloca la tarjeta de video. Cuando
conocemos como interaccionan, podremos armar fcilmente una computadora. La POO
trabaja de esta manera. Todo el programa est construido en base a diferentes componentes
Objetos Que tiene que ver esto con la programacin? Cada uno tiene un rol especfico
Todos los componentes pueden comunicarse entre ellos de formas predefinidas Todo objeto
del mundo real tiene 2 componentes: 1. Caractersticas 2. Comportamiento. Por ejemplo, los
automviles tienen: Caractersticas: marca, modelo, color, velocidad mxima, etc.
Comportamiento: frenar, acelerar, retroceder, llenar combustible, cambiar llantas, etc. Los
Objetos de Software, tambin caractersticas y comportamientos. Sus caractersticas en una
o ms variables Su comportamiento con mtodos tienen Para redondear estas ideas
Imaginemos que tenemos estacionado en nuestra cochera un Ford Focus color azul que corre
hasta 260 km/h. Si pasamos ese objeto del mundo real al mundo del software, tendremos un
objeto Automvil con sus caractersticas predeterminadas: objeto del mundo objeto del mundo
SW Marca = Ford Modelo = Focus Color = Azul Vel_Mx = 260 km/h Cuando a las
caractersticas del objeto le ponemos valores decimos que el objeto tiene estados. Las
variables almacenan los estados de un objeto en un determinado momento. Definicin terica:
Un objeto es una unidad de cdigo compuesto de variables y mtodos relacionados. Entidad
provista de un conjunto de atributos (datos) y de comportamiento (mtodos) los mismos que
consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo
que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
2. Clase En el mundo real, normalmente tenemos muchos objetos del mismo tipo. Por
ejemplo, nuestro celular es slo uno de los miles que hay en el mundo. Si hablamos en
trminos de la POO, podemos decir que nuestro objeto celular es una instancia de una clase
conocida como "celular". Los celulares tienen: Caractersticas marca, modelo, sistema
operativo, pantalla, teclado, etc. Comportamientos hacer y recibir llamadas, enviar mensajes
multimedia, transmisin de datos, etc. Celular +Marca +Modelo +Colgar() +Llamar() Ejemplo
Los fabricantes de celulares Aprovechan que los celulares comparten esas caractersticas
comunes Construyen modelos o plantillas comunes A partir de esas se puedan crear muchos
equipos celulares del mismo modelo. A ese modelo o plantilla le llamamos CLASE, y a los
equipos que sacamos a partir de ella la llamamos OBJETOS. Objeto +Marca: Sagem
+Modelo: X5 +Colgar() +Llamar() Creando un objeto de la clase Objeto +Marca: Sagem
+Modelo: X5 +Colgar() +Llamar() Esto mismo se aplica a los objetos de software, se puede
tener muchos objetos del mismo tipo y mismas caractersticas. Definicin terica: es un
modelo o prototipo que define las variables y mtodos comunes a todos los objetos de cierta
clase. Tambin se puede decir que una clase es una plantilla genrica para un conjunto de
objetos de similares caractersticas. Es la definiciones de las propiedades y comportamiento
de un tipo de objeto La instanciacin es la lectura de estas definiciones y la creacin de un
objeto a partir de ellas. 3. La herencia: consiste en que una clase puede heredar sus variables
y mtodos a varias subclases (la clase que hereda es llamada superclase o clase padre). La
subclase, aparte de los atributos y mtodos propios, tiene incorporados los atributos y
mtodos heredados de la superclase. Jerarqua de Herencia Por ejemplo imaginemos que
estamos haciendo el anlisis de un Sistema para una tienda que vende y repara equipos

celulares. Celular +Marca +Modelo +Llamar() +Colgar() Celular_nuevo +Marca +Modelo


+Precio +Fecha_ingreso +Llamar() +Colgar() Celula_reparar +Marca +Modelo +Motivo
+Dueo +Llamar() +Colgar() En el imagen vemos 2 Clases ms que requerimos nuestro
Sistema. Las cuales se construirn a partir de la Clase Celular existente. De esa forma
utilizamos el comportamiento de la SuperClase. Ejemplo : herencia de la clase C a la clase D
Es la facilidad mediante la cual la 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 (pblicas declaradas en C) Mtodos Variables. Los
componentes "privados" tambin se heredan slo pueden ser accedidos a travs de otros
mtodos pblicos. 4. Envo de Mensajes Un objeto es intil si est aislado. El medio para
interacte con otro son los mensajes invocaciones a los mtodos de los objetos Los
Mensaje: es la comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus
mtodos con ciertos parmetros asociados al evento que lo gener. Propiedad o atributo:
contenedor de un tipo de datos asociados a un objeto, que hace los datos visibles desde fuera
del objeto y esto se define como: Sus caractersticas predeterminadas, y cuyo valor puede ser
alterado por la ejecucin de algn mtodo. 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. Componentes de un objeto:
Atributos Identidad Relaciones Mtodos. Identificacin de un objeto: Se representa por
una tabla compuesta por sus atributos y funciones correspondientes. Caractersticas de la
POO Las caractersticas siguientes son las ms importantes: 1. La abstraccin consiste en
captar las caractersticas esenciales de un objeto, as como su comportamiento. Por ejemplo,
volvamos al ejemplo de los automviles, Qu caractersticas podemos abstraer de los
automviles? Qu caractersticas semejantes tienen todos los automviles? Todos tendrn
atributos : o o o o o o o Marca Modelo Nmero de chasis Peso Llantas Puertas Ventanas, etc.
Y en cuanto a su comportamiento o Acelerar o Frenar o Retroceder, etc. En los lenguajes de
POO, el concepto de Clase es la representacin y el mecanismo por el cual se gestionan las
abstracciones 2. Encapsulamiento Es el mecanismo bsico de la POO para ocultar los detalle
internos del objeto de los damas objetos. Consiste en unir en la Clase las caractersticas y
comportamientos, esto es, los atributos y mtodos. Es tener todo esto es una sola entidad. Es
evidente que el encapsulamiento se logra gracias a la abstraccin y el ocultamiento que
veremos a continuacin La utilidad del encapsulamiento va por la facilidad para manejar la
complejidad, ya que tendremos a las Clases como cajas negras donde slo se conoce el
comportamiento pero no los detalles internos, y esto es conveniente porque nos interesar
ser conocer qu hace la Clase pero no ser necesario saber cmo lo hace. Es evidente que
el encapsulamiento se logra gracias a la abstraccin y el ocultamiento que veremos a
continuacin 3. Ocultamiento Es la capacidad de ocultar los detalles internos del
comportamiento de una Clase y exponer slo los detalles que sean necesarios para el resto
del sistema. El ocultamiento permite 2 cosas: Restringir el uso de la Clase: porque habr
cierto comportamiento privado de la Clase que no podr ser accedido por otras Clases.
Controlar el uso de la Clase: porque daremos ciertos mecanismos para modificar el estado de
nuestra Clase y es en estos mecanismos dnde se validarn que algunas condiciones se
cumplan. Por qu seguimos buscando nuevas tcnicas de desarrollo? Por el aumento de la
complejidad de los sistemas. En un POO tendremos a un conjunto de objetos colaborando
entre ellos. La O. O. es paradigma de que est de moda para el desarrollo de software. En
Resumen Un objeto es una abstraccin conceptual del mundo real que se puede traducir a
un lenguaje de POO Un objeto del mundo real tiene atributos y comportamientos, al igual

que un objeto del mundo del software. Una Clase es una plantilla que define las variables y
mtodos a ser incluidas en un tipo de objeto especfico. Los objetos tambin son llamados
instancias de la Clase. Los objetos slo almacenan su estado. valores en sus variables.
Los objetos se comunican entre ellos usando los mensajes. Un mensaje es la invocacin de
un mtodo del objeto. La O. O. requiere de una metodologa que integre el proceso de
desarrollo y un lenguaje de modelamiento con herramientas y tcnicas adecuadas.
Modularidad: Propiedad que permite subdividir una aplicacin 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. Polimorfismo: En java es la habilidad de una
variable por referencia de cambiar su comportamiento en funcin de que instancia de objeto
posee. Esto permite tratar de la misma manera, como objetos de la superclase, a mltiples
objetos de la subclase, seleccionado en cada caso los mtodos apropiados. Ejemplo: Dada
una clase Vehicular, la caracterstica de polimorfismo habilita al programador para definir
mtodos en sus subclases (por ejemplo: coche, camin y moto). No importa qu tipo de
Vehculo sea ya que si llamamos al mtodo getNumeroruedas() llamara al propio de cada
subclase, pero el objeto deja de ser Vehculo tambin. Recoleccin de basura La garbage
collector es la tcnica por la cual el entorno de objetos se encarga de destruir
automticamente, y por tanto desvincular la memoria asociada, los objetos que hayan
quedado sin ninguna referencia a ellos. Esto significa que el programador no debe
preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear
un nuevo objeto y la liberar cuando nadie lo est usando. 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 la reaccin que puede desencadenar un objeto, es decir la accin que
genera. 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. Lenguajes orientados a objetos ABL Leng de programacin de
OpenEdge de Progress Software Ada C++ Object Pascal (Embarcadero Delphi)
JavaScript (la herencia se realiza por medio de la programacin basada en prototipos)
Lexico (en castellano) Objective-C Visual FoxPro (en su versin 6) Visual Basic 6.0
Visual Objects 1.2. Metodologas emergentes de desarrollo de software. Proceso Define quin
hace qu, cundo y cmo para alcanzar cierto objetivo. Los sistemas de software pueden
llegar a ser muy complejos, para administrar dicha complejidad es necesario contar con
modelos de procesos y tecnologas de software apropiadas. Modelo de proceso Define cmo
solucionar la problemtica del desarrollo de sistemas de software. Para desarrollar software se
requiere resolver ciertas fases de su proceso, las cuales se conocen como el ciclo de vida de
desarrollo de software. U Debe considerar aspectos como: Personas Estructuras
organizacionales Reglas Polticas Actividades Componentes de software Metodologas y
herramientas. No existe un solo modelo de proceso, depende del tipo particular de proyecto:
Primer proyecto de su tipo. Se crea desde cero, requiere de ms tiempo para especificarlo y
analizarlo, la incertidumbre crea riesgos adicionales. Segundo proyecto de su tipo. Se busca
agregar nueva funcionalidad a un o conocido. Variacin de un proyecto. Se extiende un
sistema ya existente, lo cual involucra introducir componentes de software reutilizables como
un marco de trabajo (framework), crear nuevos componentes o simplemente extender la
aplicacin existente mediante nueva funcionalidad. Dependiendo de la estrategia a utilizar, el
modelo del proceso debe variar. Proyecto de reescritura de legado (legacy). Se busca

transformar o hacer una reingeniera de un sistema ya existente, desarrollado bajo tecnologas


anteriores y transformarlo a tecnologas nuevas. Proyecto de creacin de software
reutilizable. Se busca crear uno o ms componentes de software reutilizables, debe ser
diseado de tal manera que se asegure de que el diseo sea lo suficientemente general para
ser til en otras situaciones desconocidas, por ello no hay muchos proyectos as. Proyecto
de mejora de sistema o mantenimiento. Se busca modificar los componentes bsicos de un
sistema para apoyar a una nueva funcionalidad. Son regularmente pequeos y afectan solo a
partes del sistema. Arquitectura. Estructura general de un sistema y vara de acuerdo con el
tipo de sistema a desarrollarse: Transformacin en lote (batch). Sistemas de transformacin
sobre un conjunto de entradas de valor constante, para generar un conjunto de salidas,
ejemplo un compilador. Transformacin contina. Sistemas de transformacin sobre un
conjunto de entradas de valor constante, para generar un conjunto de salidas que difieren en
el tiempo, ejemplo sistema de control de seales. Componentes de un modelo de proceso
Sistemas interactivos. Regidos por interacciones externas, por lo general un usuario, son
controlados por manejadores de eventos, encargados de procesar acontecimientos generados
por el usuario, ejemplo un click o presionar una tecla. Simulacin dinmica. Sistemas que
simulan sistemas del mundo real y evolucionan con el tiempo, ejemplo simuladores de
sistemas financieros, redes neuronales, etc. Sistemas de tiempo real. Regidos por
restricciones estrictas en el tiempo y requieren garantas en el tiempo de respuesta, ejemplos
controladores de procesos industriales y dispositivos de comunicacin. Administracin de
transaccin. Sistemas para interactuar con las bases de datos y que incluyen acceso
concurrente y distribuido de mltiples usuarios, ejemplo reservaciones de vuelo y control de
inventario. Tambin la arquitectura involucra las interfaces (elementos grficos), la
funcionalidad (reglas del negocio), los datos y las funciones (elementos internos de los
objetos) Actividad. Es una unidad o paso bsico de un proceso. En el proceso de software
las actividades definen los pasos necesarios para lograr las metas y los objetivos. Las
actividades bsicas del proceso de desarrollo de software son conocidas como el ciclo de
vida: Requisitos. Para especificar aspectos funcionales del sistema, que describen
cmo interactuara un usuario con la aplicacin, se genera un Modelo de Requisitos. Anlisis.
Para dar al sistema una estructura o arquitectura robusta y extensible, se genera un Modelo
de Anlisis. Diseo. Para adoptar y refinar la arquitectura del sistema y adaptarla sl ambiente
de implementacin, se genera un Modelo de Diseo (de estructuras o de objetos y de
sistema). Implementacin. Para codificar el sistema, se genera un Modelo de Implementacin
(lenguajes de programacin, bases de datos). Integracin. Para combinar componentes del
sistema, se genera un Modelo de Integracin. Pruebas. Para validar y verificar el sistema, se
genera un Modelo de Pruebas (validacin de acuerdo a la especificacin del cliente y
verificacin si el sistema est siendo desarrollado correctamente). Documentacin. Para
describir los diversos aspectos del sistema, se generan los manuales de usuario,
programador, operador, administrador). Mantenimiento. Para extender la funcionalidad del
sistema, es la continuacin del ciclo de vida, una vez concluida la primera versin del sistema.
Mtodos y Metodologas. Los mtodos definen las reglas para las transformaciones
internas de las actividades, mientras que las metodologas definen el conjunto de mtodos. Un
mtodo es un procedimiento que define tareas o acciones a realizar, donde cada tarea incluye
condiciones de entrada y de salida que se deben satisfacer antes y despus de completarse.
Los mtodos deben: Apoyar conceptos bsicos significativos para resolver
problemas. Se deben utilizar en distintos dominios de aplicacin segn las arquitecturas:
secuencial, concurrente, distribuido, en tiempo real. Deben ajustarse al ciclo de vida del
proceso, apoyando a todas las actividades. Deben proveer tcnicas para recopilar
informacin. Deben apoyar su propia extensibilidad, su propia documentacin. Deben permitir

la generacin de modelos a partir de la informacin recopilada por el mtodo. Deben apoyar la


integridad de los modelos generados, verificando y evitando errores de consistencia. Deben
ofrecer entradas y salidas bien definidas que permitan la integracin de varios mtodos.
Deben contar con notaciones especficas y estandarizadas para representar los modelos
desarrollados, los cuales deben incluir elementos grficos, de texto o combinacin de ambos.
Deben tener confianza en los mtodos y las herramientas correspondientes; para lo cual se
debe contemplar que stos se mantendrn en el mercado y, que cuenten con capacitacin y
apoyo tcnico. Existen una gran variedad de mtodos y metodologas en apoyo al proceso
de software, como son las estructuras y orientadas a objetos. Estructuradas: Se enfocan en la
descomposicin funcional de un sistema. El objetivo es lograr una definicin completa del
sistema, estableciendo los datos de entrada y salida. Estas metodologas se conocen como
anlisis y diseo estructurado (SA/SD Structured Analysis and Structured Design) y se basan
en herramientas como: o o Diagramas de flujo de datos. Modelado de transformacin de datos
entre funciones del sistema. Se compone de procesos, flujo de datos, actores, y
almacenamiento de datos (DFD). Diagramas de transicin de estado. Sirven para modelar el
comportamiento a travs del tiempo, describen el efecto de eventos externos en los procesos
y funciones. Diagramas entidad-relacin. Para modelar un almacenamiento de datos.
Orientadas a objetos: Se enfocan en el modelado de un sistema en trminos de objetos. Se
identifican inicialmente los objetos del sistema para luego especificar su comportamiento y
usan las herramientas siguientes: o o o o o o o Diagramas de clase. Describen los
componentes esenciales de la arquitectura de un sistema. A diferencia de los DFD, los de
clases muestran relaciones de asociacin entre clases y no flujo de datos entre ellas.
Diagramas de casos de uso. Especifican un sistema en trminos de su funcionalidad. A
diferencia de las metodologas estructuradas los de casos de uso no son descompuestos en
funciones de programacin. Diagramas de transicin de estado. Describen los cambios de
estado de los objetos. Diagramas de secuencia. Describen los aspectos dinmicos de
sistema, mostrando el flujo de eventos entre objetos en el tiempo. Diagramas de colaboracin.
Describen la comunicacin entre objetos de un sistema. Diagramas de subsistemas. Se usan
para describir agrupaciones de clases en un sistema. Metodologas Emergentes

S-ar putea să vă placă și