Indice
1. El
paradigma orientado a objeto
2. Conceptos y principios orientados a
objetos
3. Clases Y Objetos
4. Identificación de los elementos
de un modelo de objeto
5. Gestión de proyectos de
software orientado a objeto
6. Seguimiento Del Progreso En Un
Proyecto Orientado A Objeto
7. Planificación de recursos
empresariales (enterprise resource planning)
1. El paradigma
orientado a objeto
Un paradigma de programación es una colección de
modelos
conceptuales que juntos modelan el proceso de
diseño
y determinan la estructura de
un programa.
Tipos de Paradigmas de
Programación
- Que soportan técnicas
de programación de bajo nivel - Que soportan métodos
de diseño de algoritmos - Que soportan soluciones
de programación de alto nivel - Basado para el desarrollo
de sistemas
expertos - De programación lógica
- De programación funcional
- De programación heurística
- Orientado al objeto
Diferentes lenguajes de
programación que soportan cada una de estas
categorías de paradigmas
- Solución procedimental u
operacional - Solución demostrativa
- Solución declarativa
Paradigmas Procedimentales u Operacionales: secuencia
computacional realizada etapa a etapa para resolver el problema.
Su mayor dificultad reside en determinar si el valor
computado es una solución correcta del problema
Paradigmas Demostrativos: Cuando se programa bajo un paradigma
demostrativo (también llamada programación por
ejemplos), el programador no especifica procedimentalmente
cómo construir una solución sino que presentan
soluciones de problemas
similares.
Paradigmas Declarativos: se construye señalando hechos,
reglas, restricciones, ecuaciones,
transformaciones y otras propiedades derivadas del
conjunto de valores que
configuran la solución.
Paradigmas Imperativo: modelo
abstracto que consiste en un gran almacenamiento de
memoria donde
la computadora
almacena una representación codificada de un cálculo y
ejecuta una secuencia de comandos que
modifican el contenido de ese almacenamiento. Algoritmos +
Estructura de
Datos = Programa.
Paradigmas Funcional: modelo matemático de
composición funcional donde el resultado de un
cálculo es la entrada del siguiente, y así
sucesivamente hasta que una composición produce el valor
deseado.
Paradigma Orientado a Objeto: disciplina de
ingeniería de desarrollo y modelado de
software que permite construir más fácilmente
sistemas complejos a partir de componentes individuales. Objetos
+ Mensajes = Programa.
Características del OO
- Identidad: Los datos
están cuantificados en entidades discretas y
distinguibles llamadas objetos. - Clasificación: Significa que los objetos con
la misma estructura de datos (atributos) y comportamiento (operaciones) se
agrupa para formar una clase. - Polimorfismo: Significa que una misma
operación puede comportarse de modos distintos en
distintas clases. - Herencia: Compartir atributos y operaciones entre
clases tomando como base una relación
jerárquica.
Paradigma Heurístico: Define un modelo de
resolución de problemas en el que se incorpora alguna
componente heurística sobre la base de una
representación más apropiada de la estructura del
problema para su resolución con técnicas
heurísticas.
Como se entiende la tecnología orientada
a objeto
Los informáticos en comparación con una persona ciega no
busca más allá de lo que piensa esta viendo,
limitándose a solo lo que esta palpando en ese momento sin
darse cuenta que lo que esta investigando es mucho más
grande de lo que aparenta.
Como se aprovecha la tecnología orientada a
objeto
- Operaciones bancarias
- Telecomunicaciones
- Televisión de cable
- Lenguajes de programación
- Las metodologías de desarrollo
- La gestión de proyectos
Orientados a Objetos - Hardware de computadora
- Ayuda en el diseño de
Software.
2. Conceptos y principios
orientados a objetos
Un objeto encapsula datos, operaciones, otros objetos,
constantes y otra información relacionada.
Una clase es un concepto OO que
encapsula las abstracciones de datos y procedimientos
que se requieren para describir el contenido y comportamiento de
alguna entidad del mundo Una clase es una descripción generalizada que describe una
colección de objetos similares. Todos los objetos que
existen dentro de una heredan sus atributos y las operaciones
disponibles para la manipulación de los atributos. Una
superclase es una colección de clases y una instancia de
una clase.
Los Atributos están asociados a clases y objetos, ellos
describen la clase y el objeto de alguna manera. Un atributo
puede tomar un valor definido por un dominio
enumerado. En la mayoría de los casos, un dominio es
simplemente un conjunto de valores específicos. En
situaciones más complejas el dominio puede ser un conjunto
de clases.
Los mensajes son el medio a través del cual los objetos
intercalan. Un mensaje estimula la ocurrencia de cierto
comportamiento en el objeto receptor. El comportamiento se
realiza cuando se ejecuta una operación.
El encapsulamiento significa que toda la información de un
objeto se encuentra empaquetada bajo un nombre y puede
reutilizarse como una especificación o componente de un
programa.
La herencia funciona
de la siguiente forma: Una SubClase hereda todos los Atributos y
operaciones asociadas con su superclase.
El polimorfismo permite que un numero de operaciones diferentes
tengan el mismo nombre. Esto reduce el acoplamiento entre
objetos, haciendo a cada uno más independiente.
Identificación de Clases y Objetos
Los objetos se determinan subrayando cada nombre o
cláusula nominal e introduciéndola en una simple.
Pueden ser: Entidades Externas, Ocurrencias o eventos, papeles
o roles, unidades organizacionales, lugares, estructuras.
Existen cinco características que deben ser usadas para
incluir o un objeto en el modelo de análisis:
1) información retenida, 2) servicios
necesarios, 3) atributos múltiples, 4) atributos comunes,
5)requisitos esenciales. NOTA: El objeto debe cumplir todas o
casi todas de las características anteriores para ser
considerado un objeto válido.
Especificación de Atributos
Para desarrollar un conjunto de atributos el analista puede
estudiar la narrativa de proceso para el problema y seleccionar
aquellos elementos que razonablemente pertenecen al objeto. Para
cada objeto responderse la siguiente pregunta: ¿Qué
elementos definen completamente el objeto en el contexto del
problema actual?
Definición de Operaciones
Las operaciones definen el comportamiento de un objeto y cambian,
de alguna manera, los atributos de dicho objeto. Mas
correctamente, una operación cambia valores de uno o
más atributos contenidos en el objeto. Aunque existen
muchos tipos diferentes de operaciones, estas pueden clasificarse
en tres grandes categorías: 1) Operaciones que manipulan,
de alguna manera, datos, 2) operaciones que realizan algún
calculo y 3)operaciones que motorizan un objeto frente a la
ocurrencia de un suceso de control.
Fin de la definición de objetos
La definición de operaciones es él ultimo paso para
completar la especificación del objeto. Las operaciones
adicionales pueden determinarse considerando la "historia de la vida" de un
objeto y los mensajes que se pasan entre objetos definidos por el
sistema.
La historia de la vida genérica de un objeto puede
definirse reconociendo que dicho objeto debe ser creado,
modificado, manipulado o leído de manera diferente, y
posiblemente borrado.
Marco de proceso común para OO
Un marco de proceso común(MPC) define un enfoque
organizado para el desarrollo y mantenimiento
de software. El MPC efectivo para proyectos OO no es un modelo
inicial secuencial. El marco de proceso común usado para
dirigir un proyecto OO debe
ser por naturaleza
evolutivo.
Métricas y estimaciones en proyectos orientado a
objetos
Números de guiones de escenario: Un guión de
escenario es una secuencia detallada de pasos que describen la
interacción entre el usuario y la aplicación.
Numero de clases claves: Las clases claves son las componentes
altamente independientes, definidas inicialmente en al AOO.
Número de clases soportes: Las clases de soportes son
necesarias para implementar el sistema, pero no están
directamente relacionadas con el dominio del problema.
Numero promedio de clases de soporte por clase clave: En general
las clases claves son conocidas en las primeras etapas del
proyecto. Las clases de soporte se definen a lo largo de
este.
Numero de subsistencia: Un subsistema es una agregación de
clases que dan soporte a una función
visible al usuario final del sistema.
Una clase es un concepto OO que encapsula las
abstracciones de datos y procedimientos que se requieren para
describir el contenido y comportamiento de alguna entidad del
mundo real. Por definición, todos los objetos que existen
dentro de una clase heredan sus atributos y las operaciones
disponibles para la manipulación de los atributos.
Atributos: Son los que están asociados a clases y objetos,
y que ellos describen la clase o el objeto de alguna manera. Un
atributo puede tomar un valor definido por un dominio enumerado.
Un dominio es simplemente un conjunto de valores
específicos.
Operaciones, Métodos Y Servicios: Un objeto encapsula
datos y los algoritmos que procesan estos datos. Estos algoritmos
son llamados Operaciones, métodos o servicios y pueden ser
vistos como módulos en un sentido convencional. Cada una
de las operaciones encapsuladas por un objeto proporciona una
representación de uno de los comportamientos del
objeto.
Mensajes: Los mensajes son el medio a través del cual los
objetos interactúan. Usando la terminología
introducida en la sección precedente, un mensaje estimula
la ocurrencia de ciertos comportamientos en el objeto
receptor.
Encapsulamiento, Herencia Y Polimorfismo
Las clases OO y los objetos derivados de ella encapsulan los
datos y las operaciones que trabajan sobre estos en un
único paquete. Estos proporcionan importantes
beneficios:
- Detalles de implementación interna de
datos - Procedimientos están ocultos al mundo
exterior
Las Estructuras de datos y las operaciones que las
manipulan están mezcladas en una entidad sencilla: La
clase.
Las Interfaces entre objetos encapsulados están
simplificadas.
La Herencia es una de las diferencias clave entre sistemas
convencionales y sistemas OO. La reutilización se realiza
directamente. Cualquier cambio en los
datos u operaciones contenidas dentro de una superclase se hereda
inmediatamente por todas las subclases que se derivan de la
superclase.
El Polimorfismo es una característica que reduce en gran
medida el esfuerzo necesario para extender un sistema OO. Para
entender el polimorfismo, considere una aplicación
convencional que debe dibujar cuatro tipos diferentes de gráficos: Gráficos de líneas,
Gráficos de Tarta, Histograma y Diagramas de
Kiviat.
4. Identificación
de los elementos de un modelo de objeto
Existen diferentes directrices informales para
identificar los elementos de un modelo de objetos. Podemos
identificar objetos examinando el planteamiento del
problema a la función que desempeña aquel
objeto. Por ejemplo, si implemente una solución formara
parte del espacio solución. Los objetos pueden ser de
diferentes tipos:
- Entidades Externas (dispositivos, personas) que
maneja informaciones a usar por sistema
computacional. - Ocurrencias o eventos (transformaciones de una serie
de movimientos) que ocurren dentro del contexto de
operación del sistema - Papeles o roles (Ing. Vendedor) desempeñados
por personas que interactúan con el sistema - Cosas (Partes del dominio del problema)
- Lugares (Establece el contexto del problema y la
función general del sistema)
Para ser considerado como valido n objeto debe de tener
las siguiente características:
- Información retenida
- Servicio necesario
- Atributos múltiples
- Atributos comunes
- Operaciones comunes
- Requisitos esenciales
Un atributo es aquel objeto que ha sido seleccionado
para ser incluido en el modelo de análisis. Tiene por
objetivo
definir a los objetos.
Las operaciones indican el comportamiento del objeto dentro del
sistema, cambia uno o más atributos contenidos en el
sistema.
Pueden ser clasificados entre tres grandes
categorías
- Operaciones que manipulan datos
- Operaciones que realizan algún
Calculo - Operaciones que monitorizan un objeto frente a la
ocurrencia de un sistema de control
El ciclo de vida
de un objeto puede resumirse de la siguiente manera:
- Crear el objeto
- Modificarlo
- Manipulación
- Borrar
Las actividades conocidas que ocurren durante su ciclo
de vida son:
- Asignación de Tarea
- Panel de control
- Alarma audible
5. Gestión de
proyectos de software orientado a objeto
Las técnicas modernas de gestión de
proyectos de software se pueden dividir e as siguientes
actividades:
- Establecimiento de un marco de proceso común
para el proyecto. - Uso del marco y de métricas
históricas. - Especificación de productos de
trabajo y avances. - Definición de puntos de
comprobación. - Gestión de los cambios que ocurren
invariablemente. - Seguimiento.
Para aplicar estas actividades hay que tomar en cuenta
que todas hay que enfocarlas usando un modelo propio.
Marco de proceso común para OO. (orientado a objeto)
Este tópico define un enfoque organizativo para el
desarrollo y mantenimiento del software. Identifica el paradigma
de Ing. De software aplicado para construir y mantener software.
Tiene la cualidad de ser adaptable, de forma que cumpla con las
necesidades individuales del equipo de proyecto.
Para el desarrollo de proyectos de esta naturaleza no se pueden
aplicar modelos lineales (ciclo de vida), sino que es necesario
aplicar un modelo que contemple un desarrollo iterativo.
Iterativo significa que el software evolucione a través de
un numero de ciclos. El software OO debe ser evolutivo por
naturaleza. Existen autores que sugieren un modelo
recursivo/paralelo para el desarrollo orientado a
objeto.
Este modelo sugiere:
- Realizar los análisis suficientes para aislar
las clases de problemas y las conexiones más
importantes. - Realizar un pequeño diseño para
determinar si las clases y pueden ser implementadas de forma
practica. - Extraer objetos reutilizables.
- Conducir alguna prueba para descubrir
errores. - Obtener retroalimentación del cliente.
- Modificar el modelo de análisis
basándose en lo que se ha aprendido. - Refinar el diseño.
- Construir objetos especiales.
- Ensamblar un nuevo prototipo.
- Realizar pruebas para
descubrir errores del prototipo - Obtener retroalimentación del
cliente.
El progreso en este modelo se va obteniendo
iterativamente, por consiguiente por cada iteración se
ajusta la agenda para acomodar los cambios asociados con la
iteración precedente.
Métricas y Estimación en Proyectos OO
Como el objetivo principal de los proyectos OO es la
reutilización, las estimaciones hay que realizarlas no
partiendo de líneas de código
ni un punto de fusión
como controlador principal de la estimación. El punto de
fusión puede ayudar en alguna media al proceso, pero no es
lo mas optimo.
Un enfoque OO para estimación y Planificación.
Para realizar las estimaciones hay que tomar en
consideración un conjunto de medidas y técnicas.
Sé podría realizar estimaciones respecto al
esfuerzo y la duración usadas en el desarrollo del
software. Pero lo que más se adapta al enfoque Orientado a
objeto requiere de técnicas como la siguiente:
- Desarrollo de estimaciones usando
descomposición de esfuerzos. - Desarrollar guiones de escenario y determinar una
cuenta. - Determinar la cantidad de clases clave usando
AOO. - Clasificar el tipo de interfaz para la
aplicación y desarrollar un multiplicador para las
clases de soporte. - Multiplicar clases (clave + soportes)
6. Seguimiento Del
Progreso En Un Proyecto Orientado A Objeto
Aunque el modelo de proceso recursivo/paralelo es el
mejor marco de trabajo para un proyecto OO, el paralelismo de
tareas dificulta el seguimiento del proyecto. El jefe del
proyecto puede tener dificultades estableciendo hitos
significados en un proyecto OO debido a que cierto numero de
cosas están ocurriendo a la vez. En general, los
siguientes hitos pueden (completados) (Terminados) al cumplirse
los criterios mostrado:
Hitos técnico: Análisis OO
terminado
- Toda clase y la jerarquía de clases que son
definidas y revisadas - Los atributos de clases y las operaciones asociadas a
una clase sean definidos y revisado - Las relaciones entre clases (se han establecido y
revisado) - Se ha creado y revisado un modelo de
comportamiento - Se ha marcado clase reutilizable
Hitos técnico: Diseño OO
terminado
- El conjunto de subsistema se ha definido y
revisado - Las clases sean asignado a su subsistema que han sido
revisada - Se han establecido y revisado la asignación de
tareas - Se ha identificado responsabilidades y
colaboraciones - Se han diseñado y revisado los atributos y
opresiones - El modelo de mensajería se ha creado y
revisado
Hitos técnico: Programación OO
terminada
- Cada nueva clase ha sido implementada en
código a partir del modelo del diseño - Las clases extraídas (de una biblioteca
de reutilización) se han integrado - Se ha construido un prototipo o
incrementos
Conceptos y principios orientados a objetos
- Se han diseñado casos de prueba y ejecutado
pruebas a nivel de clases para cada clase - Se han diseñado casos de prueba y completado
pruebas de agrupamientos y las clases sean
integrados - Las pruebas a nivel de sistema se han
terminado
Recordando el modelo recursivo/paralelo examinado
anteriormente este, es importante destacar que cada uno de estos
hitos puede visitado nuevamente al integrar diferentes
incrementos al usuario
7. Planificación de
recursos
empresariales (enterprise resource planning)
Es un sistema manejador de negocios que
integra todas las facetas dentro de una empresa. Es
un término industrial para el amplio escenario de
actividades soportadas por el software de
aplicación multi-módulos que ayuda a manufactura u
otro negocio a manejar la parte importante de su negocio,
incluyendo planeación
de producto,
compra de piezas, mantenimiento de inventario,
interacción con suplidores, suministrando servicio al
cliente y rastreando ordenes. ERP puede
también incluir módulos de aplicación para
los aspectos de finanzas y
recursos
humanos de un negocio. El despliegue de un sistema ERP puede
envolver análisis de procesos de
negocios considerables, entrenamiento de
empleomania y nuevos procedimientos de trabajo.
Origen
Los orígenes del software ERP los podríamos
encontrar como derivación del MRP o
Manufacturing Resource Planning. El MRP es una técnica
utilizada para planificar la producción, y por tanto el software MRP
pretendía proporcionar una solución al
departamento de producción. De la misma forma el software
ERP pretende solucionar la gestión integral de toda
la empresa. Es
por tanto normal encontrar que el software ERP que elijamos sea
una derivación de su anterior solución del software
MRP y presente una fuerte consolidación de su
módulo logístico.
Un software ERP se podría definir como una
aplicación de gestión
empresarial diseñada para cubrir todas las
áreas funcionales de la empresa. Se trata
de un conjunto o paquete de aplicaciones, cada uno
diseñado para cubrir las exigencias de cada área
funcional de la empresa, de tal manera que crea un flujo de
trabajo (Workflow) entre los distintos usuarios. Además, y
muy importante a considerar, la información que el
usuario puede disponer es en tiempo real.
Una ERP puede estar compuesta por un determinado número de
módulos funcionales. Estos se pueden catalogar
principalmente en tres tipos:
- Módulos básicos: suelen ser
módulos obligatorios a adquirir - Módulos opcionales: módulos no
obligatorios. Incorporan nuevas funcionalidades al paquete
ERP. - Módulos verticales: módulos opcionales
diseñados específicamente para resolver las
funcionalidades de un sector específico
La mayoría del software ERP que existente en el
mercado, se trata
de aplicaciones para ser utilizadas en entornos cliente/servidor.
El empleo de la
tecnología cliente/servidor hace que sea escalable y
permite configuraciones óptimas en hardware, gestión de
base de datos
y sistemas abiertos. Este sistema de arquitectura
abierta facilita a las compañías el elegir
los equipos informáticos y los sistemas
operativos de tal manera que se pueda aprovechar al
máximo los avances en la tecnología.
¿Por qué utilizar un ERP?
Existen tres razones fundamentales por las cuales una empresa se
interesa en implantar una solución ERP: aumentar su
competitividad, controlar mejor sus operaciones e
integrar su información.
Aumentar su competitividad: Las empresas
requieren continuas optimizaciones de sus costos, ya se de
producción, comercialización o administración; por otro lado, deben
incrementar constantemente su productividad.
Controlar mejor sus operaciones: Varias empresas tienen un manejo
aislado de la información generada en los distintos
departamentos y requieren de una solución global que
integre y organice los datos para que en forma accesible apoye la
toma de
decisiones.
Integrar su información: Es importante integrar la
información en las áreas vitales de la empresa como
Finanzas, distribución y manufactura.
Es indispensable considerar los beneficios que traerá la
implantación de un Sistema ERP:
- Integración de los procesos de
información entre las diferentes
áreas - Información disponible e inmediata para la
toma de decisiones - Incremento en la productividad Mejora en los tiempos
de respuesta - Rápida adaptación a los cambios
Escalabilidad del sistema - Integridad de los datos Seguridad
definida por el usuario - Reducción en los costos
Autor:
Josi C