Beruflich Dokumente
Kultur Dokumente
Esta informacin esta documentada en este capitulo de tal forma que pueda servir
como base al lector para ampliar sobre algunos fundamentos sobre los cuales se ha
desarrollado el presente proyecto.
Sin embargo, es hasta la segunda mitad de los aos 80 que la orientacin de objetos
se generaliza, convirtindose en el estndar predominante en los aos 90, con
lenguajes tales como C++ y Java. Su xito ha sido impulsado por la difusin de otras
tecnologas (como la interfaz grfica o las arquitecturas distribuidas) que son ms
Pgina 15 de 190
Maestra en Informtica Aplicada a Redes
Pgina 16 de 190
Maestra en Informtica Aplicada a Redes
3.1.2 Ventajas de la OO
Pgina 17 de 190
Maestra en Informtica Aplicada a Redes
La identidad expresa que aunque dos objetos sean exactamente iguales en sus
atributos, son distintos entre s. De esta forma incluso una serie de Objetos vehiculo,
recin fabricados son distintos los unos de los otros.
3.1.1.2 Abstraccin
Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede
realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en
el sistema sin revelar cmo se implementan estas caractersticas. Los procesos, las
funciones o los mtodos pueden tambin ser abstrados y cuando lo estn, una
variedad de tcnicas son requeridas para ampliar una abstraccin
3.1.1.3 Clasificacin
Con la clasificacin comienza la verdadera programacin orientada a objetos. Ellos
nos obliga a una abstraccin del concepto de objeto denominada clase.
Pgina 18 de 190
Maestra en Informtica Aplicada a Redes
Externa La que necesitan el resto de los objetos para interactuar con el objeto
que definimos . Estas propiedades se denominan pblicas y corresponde a la
informacin que necesitan conocer los restantes objetos de la aplicacin
respecto del objeto definido para poder operar.
Pgina 19 de 190
Maestra en Informtica Aplicada a Redes
El trmino encapsulacin indica la capacidad que tienen los objetos de construir una
cpsula a su alrededor, ocultando la informacin que contienen (aqulla que es
necesaria para su funcionamiento interno, pero innecesaria para los dems objetos)
a las otras clases que componen la aplicacin.
Pgina 20 de 190
Maestra en Informtica Aplicada a Redes
las operaciones dentro de la clase que el objeto funcin bien dentro de una
aplicacin, con una correcta encapsulacin el objeto podr funcionar en cualquier
otra.
Otra de las ventajas de la encapsulacin, es que al definir el objeto como una caja
negra con entradas y salida asociadas, en cualquier momento podemos cambiar el
contenido de las operaciones del objeto, de manera que no afecte al funcionamiento
general del programa.
3.1.1.5 Mantenibilidad
Cualidad que indica que un programa o sistema debe ser fcilmente modificable. Es
decir que los cambios en las condiciones externas (como la definicin de una nueva
variable) implicarn modificaciones pequeas en el programa / sistema. El concepto
de mantenibilidad implica que un programa, al igual que un ser vivo debe ser capaz
de adaptarse a un medio ambiente siempre cambiante.
3.1.1.6 Reusabilidad
Cualidad que nos indica que partes del programa ( en este caso objetos) pueden ser
reutilizados en la confeccin de otros programas. Ello implica que los objetos
definidos en un programa pueden ser extrados del mismo e implantados en otro sin
tener que realizar modificaciones importantes en el cdigo del objeto.
Pgina 21 de 190
Maestra en Informtica Aplicada a Redes
3.1.1.7 Poliformismo
Ya est habituado al operador <<suma>> que est presente en todos los lenguajes
de programacin. Sin embargo, los operadores <<suma de fracciones>> y <<suma
de nmeros complejos>> no existen en casi ningn lenguaje de programacin.
Los lenguajes OOP permiten definir un operador <<suma>> tal que reconozca que
tipo de objeto se le est aplicando, a travs de operaciones de objetos. Previamente
deber definir la fraccin y el nmero complejo como una clase y la operacin suma
como una operacin de una clase.
3.1.1.8 Herencia
Pgina 22 de 190
Maestra en Informtica Aplicada a Redes
Introduce, por tanto, una posibilidad de refinamiento sucesivo del concepto de clase.
Nos permite definir una clase principal y , a travs de sucesivas aproximaciones,
cualquier caracterstica de los objetos. A partir de ahora definiremos como sub-clases
todas aquellas clases obtenidas mediante refinamiento de una (o varias) clases
principales.
3.1.1.9 Conclusin.
Pgina 23 de 190
Maestra en Informtica Aplicada a Redes
Los patrones son soluciones de sentido comn que deberan formar parte del
conocimiento de un diseador experto. Adems facilitan la comunicacin entre
diseadores, pues establecen un marco de referencia (terminologa, justificacin).
Los patrones son una manera de resolver problemas del desarrollo del software, fruto
de la experiencia acumulada de muchos desarrolladores. Esto garantiza que el
patrn no es simplemente una abstraccin terica, sino que realmente soluciona el
problema planteado y ha sido probado miles y miles de veces por lo que es
altamente fiable y estable para la solucin del problema especifico.
Pgina 24 de 190
Maestra en Informtica Aplicada a Redes
3.2.1 Historia
El reciente inters del mundo del software por los patrones tiene su origen, a partir de
1995, tras la aparicin y el xito del libro "Design Patterns: Elements of Reusable
Object-Oriented Software" de la banda de los cuatro. Ellos, Erich Gamma, Richar
Helm, Ralph Johnson y John Vlissides, se dedicaron a recopilar una serie de
patrones (23) aplicados habitualmente por expertos diseadores de software
orientado a objetos, y al hacerlos pblicos.
Pgina 25 de 190
Maestra en Informtica Aplicada a Redes
Podemos mencionar otros autores que han contribuido a este tema como Craig
Larman, quien ha definido de los patrones GRASP (patrones generales de software
para asignar responsabilidades
Resulta difcil hablar de patrones de diseo, sin retomar dos trminos que son un
objetivo permanente del diseo orientado a objetos, como son la cohesin y el
acoplamiento.
Pgina 26 de 190
Maestra en Informtica Aplicada a Redes
La banda de los cuatro (GoF) defini tres tipos distintos de patrones fundamentales:
patrones de creacin.
patrones estructurales.
patrones de comportamiento
Los patrones de creacin son las soluciones aceptadas como "buenas" a los
problemas de creacin de instancias de objetos. Los programas orientados a objetos
crean decenas, cientos o incluso miles de instancias de objetos, es por ello, que esta
no es una tarea que se puede realizar a la ligera.
Adems, en muchos casos, puede ocurrir que el objeto concreto que necesitemos en
un momento concreto dependa del estado de nuestra aplicacin en tiempo de
ejecucin. Por ejemplo, puede ocurrir que en un momento tengamos que dibujar un
crculo o un cuadrado, pero no por ello tenemos que llenar nuestro software de
sentencias if. El crear clases especiales que abstraen el proceso de creacin de
instancias hace que nuestro software sea ms flexible y general.
Patrn Factora
Patrn Factora Abstracta
Patrn Singleton (Instancia nica)
Patrn Prototipo
Pgina 27 de 190
Maestra en Informtica Aplicada a Redes
Destacan entre este tipo de patrones, el patrn adaptador (adapter pattern, GoF), el
patrn fachada (facade pattern, GoF), el patrn proxy (proxy pattern, GoF) y el patrn
puente (bridge pattern, GoF).
Los patrones de comportamiento estudian las relaciones entre llamadas entre los
diferentes objetos, normalmente ligados con la dimensin temporal
Pgina 28 de 190
Maestra en Informtica Aplicada a Redes
Asi como los patrones de diseo, implementan soluciones a problemas comunes, los
patrones de acceso a datos tienen un rol similar en el campo del acceso a datos.
Estos patrones, describen una abstraccin comn a problemas a soluciones que
pueden ser aplicadas directamente a problemas relacionados con la obtencin y
persistencia de la informacin. Algunos de estos patrones son aplicados o utilizados
ampliamente en una variedad de productos comerciales como en los casos de los
patrones Resource pool y Object/Relational Map. Otros de estos patrones, son
menos utilizados o conocidos, de igual forma ofrecen una amplia gama de soluciones
a problemas relacionados con los datos.
Pgina 29 de 190
Maestra en Informtica Aplicada a Redes
o Resource Descriptor
o Retraer
Input/output patterns: Describen patrones que simplifican las operaciones
de entrada y salida, usando una tranlacin consistente en informacin
relacional y la representacin de los Domain objects. Entre estos patrones
tenemos:
o Selection Factory
o Domain Object Factory
o Update Factory
o Domain Object Assembler
o Paging Iterator
Cache Patterns: brindan soluciones que reducen la frecuencia de las
operaciones de acceso a datos, almacenado informacion comun en cache.
Estos patrones generalmente almacenan Domain object mas que informacin
relacional. Entre estos patrones tenemos:
o Cache Accessor
o Demand Cache
o Primed Cache
o Cache Search Sequence
o Cache Collector
o Cache Replicator
o Cache Statistics
Concurrency Patterns: ofrecen soluciones para el acceso multiple o
concurrente a informacin comun en una base datos. La mayoria de base de
datos ofrecen operaciones de locking para permitir y ayudar con este
problema, sin embargo la utilizacin de cdigo que maneje este problema
desde la aplicacin, puede ser tuneado para necesidades especificas. Algunos
patrones representantivos de este grupo son:
o Transaction
o Optimistic Lock
Pgina 30 de 190
Maestra en Informtica Aplicada a Redes
o Pessimistic Lock
o Compensating
Este patrn asegura que slo una instancia de la clase es creada. Todos los objetos
que usan una instancia de esa clase, usan la misma instancia.
Algunas clases deben tener exactamente una instancia. Estas clases usualmente
involucran la administracin centralizada de algn recurso. Por ejemplo, si se
necesita escribir una clase que un applet pueda usar para asegurar que no ms de
un clip de audio sea ejecutado al mismo tiempo. Para evitar que dos clips de audio
sean ejecutados al mismo tiempo, la clase que usted escribe debe dejar de ejecutar
un clip de audio antes de empezar a ejecutar el siguiente. Una forma de lograr esto,
es asegurar que solamente exista una instancia de la clase, compartida por todos los
objetos que usan la clase. La siguiente figura muestra el diagrama de clases.
Se debe de recordar que "+" significa que la caracterstica es pblica, y "-" significa
que la caracterstica es privada. Una caracterstica subrayada indica que es esttica.
Pgina 31 de 190
Maestra en Informtica Aplicada a Redes
Pgina 32 de 190
Maestra en Informtica Aplicada a Redes
Lo que no queda claro aun, es cmo un objeto Application puede crear instancias de
clases de documentos especficos para esa aplicacin, sin ser ella misma una
aplicacin especfica. Para lograr esto, se puede encapsular la lgica e instanciar
subclases de la clase Document especficas a la aplicacin en una interfaz. La
siguiente figura muestra esta nueva organizacin.
Pgina 33 de 190
Maestra en Informtica Aplicada a Redes
Los roles que las clases e interfaz de la figura anterior juegan son los siguientes:
Pgina 34 de 190
Maestra en Informtica Aplicada a Redes
Este patrn es tambin conocido como Kit o Toolkit. Dado un conjunto de clases
relacionadas, el patrn Fbrica Abstracta provee una forma de crear instancias de
estas clases desde un conjunto acoplado de subclases concretas.
Pgina 35 de 190
Maestra en Informtica Aplicada a Redes
Client. Las clases en el rol del cliente (Client) usan varias clases de objetos (widgets)
para solicitar servicios del producto con el que el cliente est trabajando. Las clases
cliente solamente conocen las clases de objetos (widgets) abstractos, y no necesitan
conocer las clases concretas.
AbstractFactory. Las clases AbstractFactory definen mtodos abstractos para crear
instancias de clases de objetos concretas. Tienen un mtodo esttico getFactory el
cual es llamado por los objetos Client para tener una instancia de una fbrica
concreta, apropiada para crear widgets que trabajan con un producto particular.
ConcreteFactory1, ConcreteFactory2. Estas clases implementan los mtodos
definidos por la superclase de la fbrica abstracta, para crear instancias de widgets
concretos. Las clases cliente que llaman estos mtodos no necesitan tener
Pgina 36 de 190
Maestra en Informtica Aplicada a Redes
El patrn Data Accessor encapsula los detalles del acceso fsico a datos en una
componente simple, exponiendo nicamente las operaciones lgicas vitales. El
cdigo de la aplicacin debe mantener el conocimiento del modelo de datos pero, es
separado a traves del uso de este patron, de cualquier responsabilidad de acceso a
datos. La estructura esttica de este patrn, es mostrada en la siguiente figura:
Pgina 37 de 190
Maestra en Informtica Aplicada a Redes
Pgina 38 de 190
Maestra en Informtica Aplicada a Redes
Utilizar un Data Access Object (DAO) para abstraer y encapsular todos los accesos a
la fuente de datos. El DAO maneja la conexin con la fuente de datos para obtener y
almacenar datos.
La siguiente figura muestra el diagrama de clases que representa las relaciones para
el patrn DAO:
Pgina 39 de 190
Maestra en Informtica Aplicada a Redes
Pgina 40 de 190
Maestra en Informtica Aplicada a Redes
Pgina 41 de 190
Maestra en Informtica Aplicada a Redes
Los modelos de bases de datos tradicionales (relacional, red y jerrquico) han sido
capaces de satisfacer con xito las necesidades, en cuanto a bases de datos, de las
aplicaciones de gestin tradicionales. Sin embargo, presentan algunas deficiencias
cuando se trata de aplicaciones ms complejas o sofisticadas como, por ejemplo, el
diseo y fabricacin en ingeniera (CAD/CAM, CIM), los experimentos cientficos, los
sistemas de informacin geogrfica o los sistemas multimedia. Los requerimientos y
las caractersticas de estas nuevas aplicaciones difieren en gran medida de las
tpicas aplicaciones de gestin la estructura de los objetos es ms compleja, las
transacciones son de larga duracin, se necesitan nuevos tipos de datos para
almacenar imgenes y textos, y hace falta definir operaciones no estndar,
especficas para cada aplicacin.
Pgina 42 de 190
Maestra en Informtica Aplicada a Redes
Las bases de datos orientadas a objetos se crearon para tratar de satisfacer las
necesidades de estas nuevas aplicaciones. La orientacin a objetos ofrece
flexibilidad para manejar algunos de estos requisitos y no est limitada por los tipos
de datos y los lenguajes de consulta de los sistemas de bases de datos tradicionales.
Una caracterstica clave de las bases de datos orientadas a objetos es la potencia
que proporcionan al diseador al permitirle especificar tanto la estructura de objetos
complejos, como las operaciones que se pueden aplicar sobre dichos objetos.
3
Este es el nombre que recibe el estndar. En ocasiones se cita como SQL3 porque as se llamaba el
proyecto que lo desarroll. Tambin se cita como SQL99, por ser un nombre similar al de la versin anterior,
SQL92; sin embargo, este ltimo nombre no se ha utilizado en esta ocasin porque se quiere evitar el efecto
2000 en el nombre de futuras versiones.
Pgina 43 de 190
Maestra en Informtica Aplicada a Redes
Pgina 44 de 190
Maestra en Informtica Aplicada a Redes
Por otra parte, las bases de datos orientadas a objetos son navegacionales: el
acceso a los datos es a travs de las relaciones, que se almacenan con los mismos
datos. Esto se considera un paso atrs. Las bases de datos orientadas a objetos no
son apropiadas para realizar consultas ad hoc, al contrario que las bases de datos
relacionales, aunque normalmente las soportan. La naturaleza navegacional de las
bases de datos orientadas a objetos implica que las consultas deben seguir
relaciones predefinidas y que no pueden insertarse nuevas relaciones al vuelo.
No parece que las bases de datos orientadas a objetos vayan a reemplazar a las
bases de datos relacionales en todas las aplicaciones del mismo modo en que stas
reemplazaron a sus predecesoras.
Pgina 45 de 190
Maestra en Informtica Aplicada a Redes
3.3.2.1 Relaciones
Las bases de datos relacionales representan las relaciones mediante las claves
ajenas.
No tienen estructuras de datos que formen parte de la base de datos y que
representen estos enlaces entre tablas. Las relaciones se utilizan para hacer
concatenaciones (join) de tablas. Por el contrario, las bases de datos orientadas a
objetos implementan sus relaciones incluyendo en cada objeto los identificadores de
los objetos con los que se relaciona.
Pgina 46 de 190
Maestra en Informtica Aplicada a Redes
Hay dos aspectos importantes a destacar sobre este mtodo de representar las
relaciones
entre datos:
Las nicas relaciones que se pueden utilizar para consultar la base de datos
son aquellas que se han predefinido almacenando en atributos los
identificadores de los objetos relacionados. Por lo tanto, una base de datos
orientada a objetos pura es navegacional, como los modelos prerrelacinales
(el modelo jerrquico y el modelo de red). De este modo se limita la flexibilidad
del programador/usuario a aquellas relaciones predefinidas, pero los accesos
que siguen estas relaciones presentan mejores prestaciones que en las bases
de datos relacionales porque es ms rpido seguir los identificadores de los
objetos que hacer operaciones de concatenacin (join).
Pgina 47 de 190
Maestra en Informtica Aplicada a Redes
Pgina 48 de 190
Maestra en Informtica Aplicada a Redes
aplicaciones permitindoles escribir slo una vez los mtodos que tienen en comn
las dos subclases (sern los mtodos que se sitan en la clase Empleado).
En teora, una base de datos orientada a objetos debe soportar dos tipos de
herencia: la relacin es un y la relacin extiende. La relacin es un, que tambin
se conoce como generalizacinespecializacin, crea una jerarqua donde las
subclases son tipos especficos de las sperclases. Con la relacin extiende, sin
embargo, una clase expande su sperclase en lugar de estrecharla en un tipo ms
especfico. Por ejemplo, en la jerarqua de la clase Empleado, al igual que son
necesarias clases para los empleados que realizan cada trabajo especfico, hace
falta guardar informacin adicional sobre los directores, que son empleados pero que
tambin tienen unas caractersticas especficas. La base de datos incluir una clase
Director con un atributo para los empleados a los que dirige. En este sentido un
director no es un empleado ms especfico sino un empleado con informacin
adicional.
Una de las cosas que es difcil de manejar en las bases de datos relacionales es la
idea de las partes de un todo, como en una base de datos de fabricacin, en la que
hace falta saber qu piezas y qu componentes se utilizan para fabricar un
determinado producto. Sin embargo, una base de datos orientada a objetos puede
aprovechar la relacin denominada todoparte en la que los objetos de una clase
se relacionan con objetos de otras clases que forman parte de l. En el caso de la
base de datos de fabricacin, la clase Producto se relacionar con las clases Pieza y
Componente utilizando una relacin todoparte. Este tipo de relacin es una
relacin de muchos a muchos con un significado especial. Un producto puede estar
hecho de muchas piezas y muchos componentes. Adems, una misma pieza o un
mismo componente se puede utilizar para fabricar distintos productos. El identificar
esta relacin como todoparte permite que el diseo sea ms fcil de entender.
Pgina 49 de 190
Maestra en Informtica Aplicada a Redes
Para que las relaciones funcionen en una base de datos orientada a objetos pura, los
identificadores de los objetos deben corresponderse en ambos extremos de la
relacin. Por ejemplo, si los aparejadores de una empresa de control de calidad se
deben relacionar con las obras de construccin que supervisan, debe haber algn
modo de garantizar que, cuando un identificador de un objeto Obra se incluye en un
objeto Aparejador, el identificador de este mismo objeto Aparejador se debe incluir
en el objeto Obra anterior. Este tipo de integridad de relaciones, que es de algn
modo anlogo a la integridad referencial en las bases de datos relacionales, se
gestiona especificando relaciones inversas.
en la clase Aparejador y:
en la clase Obra.
Pgina 50 de 190
Maestra en Informtica Aplicada a Redes
Modelo de objetos.
Lenguaje de definicin de objetos (ODL).
Lenguaje de consulta de objetos (OQL).
Conexin con los lenguajes C++, Smalltalk y Java.
El modelo de objetos ODMG permite que tanto los diseos, como las
implementaciones, sean portables entre los sistemas que lo soportan. Dispone de las
siguientes primitivas de modelado:
Los componentes bsicos de una base de datos orientada a objetos son los
objetos y los literales. Un objeto es una instancia auto contenida de una
entidad de inters del mundo real. Los objetos tienen algn tipo de
Pgina 51 de 190
Maestra en Informtica Aplicada a Redes
Los objetos y los literales se categorizan en tipos. Cada tipo tiene un dominio
especfico compartido por todos los objetos y literales de ese tipo. Los tipos
tambin pueden tener comportamientos. Cuando un tipo tiene
comportamientos, todos los objetos de ese tipo comparten los mismos
comportamientos. En el sentido prctico, un tipo puede ser una clase de la
que se crea un objeto, una interfase o un tipo de datos para un literal (por
ejemplo, integer). Un objeto se puede pensar como una instancia de un tipo.
Lo que un objeto sabe hacer son sus operaciones. Cada operacin puede
requerir datos de entrada (parmetros de entrada) y puede devolver algn
valor de un tipo conocido.
Los objetos tienen propiedades, que incluyen sus atributos y las relaciones
que tienen con otros objetos. El estado actual de un objeto viene dado por los
valores actuales de sus propiedades.
Pgina 52 de 190
Maestra en Informtica Aplicada a Redes
OQL es un lenguaje declarativo del tipo de SQL que permite realizar consultas de
modo eficiente sobre bases de datos orientadas a objetos, incluyendo primitivas de
alto nivel para conjuntos de objetos y estructuras. Est basado en SQL-92,
proporcionando un sper conjunto de la sintaxis de la sentencia SELECT.
OQL no posee primitivas para modificar el estado de los objetos ya que las
modificaciones
se pueden realizar mediante los mtodos que estos poseen.
La sintaxis bsica de OQL es una estructura SELECT...FROM...WHERE..., como en
SQL.
SELECT d.nombre
FROM d in departamentos
WHERE d.escuela = `Ingeniera';
Pgina 53 de 190
Maestra en Informtica Aplicada a Redes
iteradora que vaya tomando valores en los objetos de la coleccin. Para cada objeto
de la coleccin (slo la forman objetos persistentes) que cumple la condicin (que es
de la escuela de Ingeniera), se muestra el valor del atributo nombre.
El resultado es de tipo bag<string>. Cuando se utiliza SELECT DISTINCT el
resultado es de tipo set ya que se eliminan los duplicados.
El modo en que los objetos han entrado en el mundo de las bases de datos
relacionales es en forma de dominios, actuando como el tipo de datos de una
columna. Hay dos implicaciones muy importantes por el hecho de utilizar una clase
como un dominio:
Pgina 54 de 190
Maestra en Informtica Aplicada a Redes
Toda la informacin de la base de datos esta guardado en los tablas pero algunas
operaciones tabulares pueden tener una estructura de datos abstract data
types(ADTs). Las extensiones son necesarias porque los ORBDMSs debe de
soportar ADT's. El ORDBMS tiene un modelo relacionado porque los datos estn
guardados en forma de tablas con renglones y columnas. SQL es usado como el
lenguaje de bsqueda de informacin. Pero el modelo relacionado tiene que ser
modificado para soportar las caractersticas clsicas de programacin orientada a
objeto. Las caractersticas de ORDBMSs son:
Los ORDBMSs permiten que los usuarios puedan definir los tipos de datos,
funciones y operadores. Como resultado, los ORDBMSs tiene ms funcionalidad y un
mejor desempeo
Pgina 55 de 190
Maestra en Informtica Aplicada a Redes
Pgina 56 de 190
Maestra en Informtica Aplicada a Redes
Pgina 57 de 190
Maestra en Informtica Aplicada a Redes
Datos simples sin Datos simples con Datos complejos sin Datos complejos
queries queries queries con queries
Las cinco opciones de arquitectura por Dr. Stonebraker, estn enlistadas en orden de
practicidad y desempeo:
Pgina 58 de 190
Maestra en Informtica Aplicada a Redes
Las opciones que se basan en imponer un nico modelo terico (un nico formato de
datos) a toda la aplicacin padecen de graves inconvenientes. En el caso de que
toda la aplicacin siga el modelo relacional, se pierden las ventajas de la orientacin
a objetos. En el caso de que toda la aplicacin siga el modelo orientado a objetos, las
bases de datos estn inmaduras y tienen un bajo nivel de estandarizacin.
Se debe encontrar un traductor que sepa traducir de cada idioma al otro. Este
traductor no es ms que un componente de software (concretamente, una capa de
programacin), al que se le dan los nombres de capa de persistencia, capa de
datos, correspondencia O/R (OR mapping) o motor de persistencia.
Pgina 59 de 190
Maestra en Informtica Aplicada a Redes
Pgina 60 de 190
Maestra en Informtica Aplicada a Redes
Es por ello que hay dos opciones a la hora de usar un motor de persistencia:
Pgina 61 de 190
Maestra en Informtica Aplicada a Redes
Pgina 62 de 190
Maestra en Informtica Aplicada a Redes
Pgina 63 de 190
Maestra en Informtica Aplicada a Redes
As es como el modelo CMM establece una medida del progreso conforme avanza,
en niveles de madurez. Cada nivel a su vez cuenta con un nmero de reas de
proceso que deben lograrse. El alcanzar estas reas o estadios se detecta mediante
la satisfaccin o insatisfaccin de varias metas claras y cuantificables. Con la
excepcin del primer Nivel, cada uno de los restantes Niveles de Madurez est
compuesto por un cierto nmero de reas Claves de Proceso, conocidas a travs de
la documentacin del CMM por su sigla inglesa: KPA.
Las prcticas que deben ser realizadas por cada Area Clave de Proceso estn
organizadas en 5 Caractersticas Comunes, las cuales constituyen propiedades que
indican si la implementatcin y la institucionalizacin de un proceso clave es efectivo,
repetible y duradero.
Pgina 64 de 190
Maestra en Informtica Aplicada a Redes
Las organizaciones que utilizan CMM para mejorar sus procesos disponen de una
gua til para orientar sus esfuerzos. Adems, el SEI proporciona formacin a
evaluadores certificados (Lead Assesors) capacitados para evaluar y certificar el
nivel CMM en el que se encuentra una organizacin. Esta certificacin es requerida
por el Departamento de Defensa de los Estados Unidos, pero tambin es utilizada
por multitud de organizaciones de todo el mundo para valorar a sus subcontratistas
de software.
Se considera tpico que una organizacin dedique unos 18 meses para progresar un
nivel, aunque algunas consiguen mejorarlo. En cualquier caso requiere un amplio
esfuerzo y un compromiso intenso de la direccin.
Pgina 65 de 190
Maestra en Informtica Aplicada a Redes
mundial: SW-CMM y CMMI. Esto con la finalidad de que el lector se forme una idea
de la razn de ser de los mismos, la audiencia hacia la cual estn enfocados y los
aspectos que cubren.
Pgina 66 de 190
Maestra en Informtica Aplicada a Redes
Pgina 67 de 190
Maestra en Informtica Aplicada a Redes
Es un nuevo modelo del SEI que fue creado a solicitud del DoD para las
organizaciones con iniciativas de ingeniera de software, ingeniera de sistemas o
industrias que requieran integracin (software + hardware). La intencin de este
nuevo modelo es consolidar y agrupar una familia de modelos que ya estaban siendo
utilizados y reconciliar estos modelos con los estndares y metodologas (como
ISO/IEC/TR 15504).
La base del CMMI est constituida por los modelos SW-CMM, SA-CMM (Software
Acquisition Capability Maturity Model), IPD-CMM (Integrated Product Development
Capability Maturity Model) y SE-CMM(Systems Engineering Capability Maturity
Model).
Pgina 68 de 190
Maestra en Informtica Aplicada a Redes
La versin escalonada del modelo tiene 5 niveles, como el SW-CMM versin 1.1, que
contienen 24 reas de proceso (PAs), con 78 metas que se alcanzan al implantar las
618 prcticas comunes. Para la versin continua del modelo existen 6 niveles de
madurez, que contienen 24 reas de proceso (PAs), con 174 metas que se deben
alcanzar y 455 prcticas comunes.
El modelo del CMMI tiene el propsito de proporcionar una gua unificada para la
mejora de mltiples disciplinas tales como ingeniera de sistemas, ingeniera de
software, etc. Sin embargo, mucho se ha escrito y discutido sobre el tema de que las
empresas que en realidad necesitan una gua de este tipo, son las grandes
organizaciones (proveedores del Departamento de Defensa, principalmente) cuyos
proyectos involucran mltiples disciplinas; mientras que la gran mayora de los
usuarios actuales del modelo SW-CMM son pequeas organizaciones y/o reas de
desarrollo de software, que no utilizan o no necesitan otras disciplinas mas que la de
ingeniera de software y sta es el foco principal del SW-CMM.
La situacin actual del CMMI en el mercado norteamericano, es incierta ya que a
pesar de tener la presin del Departamento de Defensa por adaptar este nuevo
modelo, muchas empresas han comentado que el CMMI no se adapta a sus
necesidades, debido a que hay muchos elementos que resultan sobrados para
empresas pequeas-medianas cuyo negocio principal es el desarrollo de software, y
no la integracin de tecnologa o hardware, que es el enfoque principal del nuevo
modelo. Adicionalmente al esfuerzo requerido para la implantacin de las nuevas
prcticas del CMMI, es necesario considerar el esfuerzo necesario para la
capacitacin y para la evaluacin formal. El mtodo de evaluacin para el nuevo
modelo se denomina SCAMPI (Standard CMMI Assessment Method for Process
Improvement) y para realizar una evaluacin se requieren considerar varios meses
debido a la visin global que refleja el modelo.
Pgina 69 de 190
Maestra en Informtica Aplicada a Redes
El modelo del CMMI no provee guas de ajuste para adaptar el modelo a las
organizaciones pequeas. Esta gua es necesaria, debido a que la estructura del
modelo (diseada para muchos recursos asignados a proyectos, con muchos roles,
proyectos muy largos que pueden durar aos y cuestan millones de dlares). CMMI
se basa en prcticas de organizaciones grandes, y est enfocado para
organizaciones del departamento de defensa o
aeronutica.
CMMI es demasiado grande para que pueda ser manejado en organizaciones
pequeas. El CMM ha sido criticado por tener muchas reas clave, pero CMMI tiene
muchas mas. Esto implica que la documentacin de procesos que cubra las prcticas
del modelo puede ser agobiante para las organizaciones pequeas, y por lo tanto, el
tiempo, costo y recursos para la documentacin pueden crecer exponencialmente.
Pgina 70 de 190
Maestra en Informtica Aplicada a Redes
Podramos seguir listando una serie de elementos que han sido criticados en el
nuevo modelo de CMMI y las inquietudes que existen, incluso en la industria
estadounidense y en el propio SEI, en cuanto a la aceptacin por el modelo. Esto nos
hace reflexionar sobre la dificultad que representa para las empresas mexicanas la
adopcin de este nuevo modelo. Sobre todo para aquellas que no tienen experiencia
anterior con un programa de mejora basado en el SW-CMM.
Actualmente no hay muchas organizaciones que hayan adoptado o estn haciendo
la transicin hacia el nuevo modelo. Incluso los grandes corporativos
norteamericanos tienen que realizar una fuerte inversin para hacer la transicin.
Pgina 71 de 190
Maestra en Informtica Aplicada a Redes
Finalmente, nos gustara comentar que el xito del proyecto no est en la seleccin
de un modelo en particular, sino en establecer un programa de mejora que
establezca nuevas prcticas y disciplinas de trabajo para el desarrollo de software
utilizando un modelo como un marco de referencia que ayude a las organizaciones a
lograr sus objetivos de negocio. Lo recomendable es que ste sea reconocido
mundialmente con el objetivo de ser comparable con otros proveedores en
mercados internacionales.
Los orgenes de RUP se remontan al modelo espiral original de Barry Boehm. Ken
Hartman, uno de los contribuidores claves de RUP colabor con Boehm en la
investigacin. En 1995 Rational Software es comprada por una compaia sueca
llamada Objectory AB. El Rational Unified Process fue el resultado de una
convergencia de Rational Approach y Objectory, proceso desarrollado por el
fundador de Objectory Ivan Jacobson. El primer resultado de esta fusin fue el
Rational Objectory Process, la primera versin de RUP, fue puesta en el mercado en
1998, siendo el arquitecto en jefe Philippe Kruchten.
Pgina 72 de 190
Maestra en Informtica Aplicada a Redes
Pgina 73 de 190
Maestra en Informtica Aplicada a Redes
Pgina 74 de 190
Maestra en Informtica Aplicada a Redes
Pgina 75 de 190
Maestra en Informtica Aplicada a Redes
Pgina 76 de 190
Maestra en Informtica Aplicada a Redes
Por otra parte, .NET representa la evolucin COM (Component Object Model), la
plataforma de desarrollo de Microsoft anterior a .NET y sobre la cual se basaba el
desarrollo de aplicaciones Visual Basic 6.
Pgina 77 de 190
Maestra en Informtica Aplicada a Redes
.NET no es un producto empaquetado que se pueda comprar como tal, sino que
es una plataforma que engloba distintas aplicaciones, servicios y conceptos y que
en conjunto permiten el desarrollo y la ejecucin de aplicaciones.
3.7.1 Caractersticas
Pgina 78 de 190
Maestra en Informtica Aplicada a Redes
Pgina 79 de 190
Maestra en Informtica Aplicada a Redes
NET Compact Framework: esta es una versin reducida del .NET Framework
Redistributable, especialmente pensada para ser instalada en dispositivos
mviles como Pocket PCs y SmartPhones.
En el caso de las aplicaciones Web, el nico requisito del lado del cliente es tener un
navegador y una conexin de red al servidor, el cual debe tener instalado el .NET
Framework.
Para las aplicaciones mviles, que se ejecutan sobre Windows Mobile en algn
dispositivo tipo Pocket PC o SmartPhone, es necesario tener instalado el .NET
Compact Framework en el dispositivo.
Pgina 80 de 190
Maestra en Informtica Aplicada a Redes
Cliente Servidor
Aplicacin de
Escritorio
*
Aplicacin Web
Aplicacin de
Consola
*
Aplicacin .NET Compact Framework
Mvil
La versin 1.0: fue liberada a principios del ao 2002, e inclua la versin 1.0
del .NET Framework, la versin 2002 de Visual Studio y varios lenguajes de
programacin nuevos compatibles con la plataforma (como C#.NET y Visual
Basic.NET)
La versin 1.1: fue liberada en 2003, aproximadamente un ao despus que
su predecesora. Esta versin introdujo el .NET Framework 1.1 junto con Visual
Studio .NET 2003, la primer versin del .NET Compact Framework y un nuevo
lenguaje de programacin llamado J#.NET.
La versin 2.0: fue liberada a finales del ao 2005, esta versin trajo consigo
las versiones 2.0 del .NET Framework y el .NET Compact Framework, as
como tambin una nueva versin de Visual Studio.
Pgina 81 de 190
Maestra en Informtica Aplicada a Redes
Cronologa de .NET
3.7.2 Arquitectura
VB C++ C# J#
Common Language Specification
Class Library
.NET Framework
.NET Framework
.NET Framework SDK
ASP.NET Windows
Redistributable
Forms
ADO.NET y XML
Base Class Library
Common Language Runtime
Pgina 82 de 190
Maestra en Informtica Aplicada a Redes
Pgina 83 de 190
Maestra en Informtica Aplicada a Redes
es ste el que se encarga de su ejecucin y ciclo de vida, sino que .NET provee un
entorno de ejecucin (el CLR) que corre por sobre el sistema operativo y que es el
encargado de ejecutar las aplicaciones y proveerles servicios en tiempo de
ejecucin. A los componentes de software que se ejecutan de esta manera se los
conoce comnmente como componentes manejados, ya que su ejecucin es
controlada por un entorno intermedio.
Una de las principales ventajas de contar con una plataforma virtual es que no estn
atadas de ninguna forma con el sistema operativo y la plataforma de hardware
subyacente. Es sabido que una aplicacin compilada para que utilice directamente
las APIs y servicios expuestos por un sistema operativo x muy difcilmente pueda
ser ejecutada en otro sistema operativo distinto sin ser recompilada. Las aplicaciones
manejadas, en cambio, descansan la tarea de su compilacin a un cdigo de
mquina especfico en el entorno de ejecucin. De esta manera, si existen distintos
entornos de ejecucin intermedia para diferentes Sistemas Operativos, la misma
aplicacin puede ejecutarse en todos ellos si necesidad de recompilarse.
Pgina 84 de 190
Maestra en Informtica Aplicada a Redes
Existen dos formas de que una aplicacin pueda encontrar en tiempo de ejecucin
los assemblies de los que depende:
Pgina 85 de 190
Maestra en Informtica Aplicada a Redes
Uno de los objetivos de diseo de la plataforma .NET fue el ser independiente del
lenguaje de programacin elegido para el desarrollo de aplicaciones. Para lograr esto
es que se cre la Especificacin de Lenguaje Comn (o CLS, por sus siglas en
ingls), que define y estandariza un subconjunto de todas las caractersticas
soportadas por el CLR y que son necesarias en la mayora de las aplicaciones.
Todos los componentes desarrollados y compilados de acuerdo con la especificacin
CLS pueden interactuar entre si, independientemente del lenguaje de programacin
de alto nivel en el que fueron escritos.
Esto quiere decir que una aplicacin escrita, por ejemplo, en Visual Basic.NET,
puede incorporar sin problemas nuevas partes escritas en C# o C++ .NET.
La infraestructura de lenguaje comn (Common Language Infrastructure, CLI) es una
especificacin estandarizada que describe un entorno virtual para la ejecucin de
aplicaciones, cuya principal caracterstica es la de permitir que aplicaciones escritas
en distintos lenguajes de alto nivel puedan luego ejecutarse en mltiples plataformas
Pgina 86 de 190
Maestra en Informtica Aplicada a Redes
Si bien el CLI tuvo sus orgenes en Microsoft (en principio se pensaba desarrollar un
entorno de ejecucin compartido para COM con el nombre de Common Object
Runtime, que luego de extendi y generaliz para dar lugar a CLI), sus
especificaciones fueron llevadas ante ECMA (European Computer Manufacturers
Association), una organizacin europea de estndares, para su estandarizacin en
el ao 2000.
Pgina 87 de 190
Maestra en Informtica Aplicada a Redes
Pgina 88 de 190
Maestra en Informtica Aplicada a Redes
Cdigo
Fuente VB.NET C# C++.NET
Compilador JIT
Cdigo Nativo
Pgina 89 de 190
Maestra en Informtica Aplicada a Redes
los recursos del sistema operativo a muy bajo nivel para lograr un rendimiento ptimo
y mayor performance.
System.Data
Common SqlClient
OracleClient OleDb
Odbc SqlTypes
System.Xml
XSLT Serialization
XPath Schema
Pgina 90 de 190
Maestra en Informtica Aplicada a Redes
Data Provider For OLE DB: es el proveedor de acceso a datos que permite
interactuar va el protocolo estndar OLE DB con cualquier repositorio de
datos que lo soporte. Sus clases se encuentran en el namespace
System.Data.OleDb.
Pgina 91 de 190
Maestra en Informtica Aplicada a Redes
En la figura se pueden apreciar las clases ms comunes que componen a todos los
proveedores de acceso a datos de ADO.NET. Ntese que algunos nombres
empiezan con las letras Xxx: esto se debe a que los nombres de esas clases varan
segn el proveedor especfico que se est utilizando. Por ejemplo, la clase que
representa una conexin con la base de datos usando el Data Provider For Sql
Server es SqlConnection, mientras que si usamos el Data Provider For Oracle
podemos obtener la misma funcionalidad de la clase OracleConnection.
Pgina 92 de 190
Maestra en Informtica Aplicada a Redes
ADO.NET provee una arquitectura extensible, posibilitando que terceras partes creen
sus propios proveedores de acceso nativo para aplicaciones .NET. Algunos ejemplos
de esto son:
Pgina 93 de 190
Maestra en Informtica Aplicada a Redes
Pgina 94 de 190
Maestra en Informtica Aplicada a Redes
<X M L
> DocumentNavigator
XmlTextWriter
XmlDocument
XmlReader
La figura ilustra una parte del soporte a XML provisto por el .NET Framework, que va
desde la simple lectura de un documento XML a su navegacin, bsqueda y
transformaciones complejas.
Pgina 95 de 190
Maestra en Informtica Aplicada a Redes
Pgina 96 de 190