Indice1. 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