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.
3. Clases Y Objetos
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
Trabajo enviado por:
Josi C