Tesis Inventarios Refacciones

127

Click here to load reader

description

Se aplica la gestión de inventarios al análisis de una empresa de refacciones mexicana

Transcript of Tesis Inventarios Refacciones

  • INSTITUTO POLITCNICO NACIONAL

    UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERA Y CIENCIAS SOCIALES Y

    ADMINISTRATIVAS

    OPTIMIZACIN DE LA TOMA DE INVENTARIO FSICO DE UN ALMACN DE REFACCIONES

    T E S I N A

    Q U E P A R A O B T E N E R E L T T U L O D E : LI C EN CI ADO EN C I ENCI AS D E L A I N FOR M TI C A

    P R E S E N T A N :

    G U I L L E RMO I B A R RA H E RN ND E Z

    F A B I O L A M A R T N E Z M O N T E S

    F E R N A N D O P R E Z R E Y E S

    I V N P R E Z R I V E R O

    A L I C I A P AO LA S A LDAA C A S T I L LO

    MXICO. D.F. 2009

  • NDICE

    Resumen

    Introduccin

    CAPTULO I: Marco Metodolgico

    1.1 Planteamiento del problema

    1.2 Objetivos

    1.3 Tcnicas de la investigacin

    1.4 Universo y muestra

    1.5 Justificacin

    CAPTULO II: Marco Terico y Referencial

    2.1 Introduccin a la Programacin Orientada a Objetos

    2.2 Origen

    2.3 Conceptos Fundamentales

    2.3.1 Clase

    2.3.2 Herencia

    2.3.3 Objeto

    2.3.4 Mtodo

    2.3.5 Evento

    2.3.6 Mensaje

    2.3.7 Propiedad / atributo

    2.3.8 Estado interno

    2.4 Anlisis orientado a objetos

    2.4.1 UML

    2.4.2 Casos de uso

    i

    iv

    1

    1

    1

    1

    2

    2

    3

    3

    7

    9

    9

    10

    11

    13

    14

    16

    16

    16

    16

    17

    19

  • 2.5 Diseo orientado a objetos

    2.6 Programacin Orientada a Objetos

    2.6.1 Abstraccin

    2.6.2 Encapsulamiento

    2.6.3 Principio de ocultacin

    2.6.4 Polimorfismo

    2.6.5 Herencia

    2.6.6 Recoleccin de basura

    2.7 Lenguajes orientados a objetos

    2.8 Cdigo de barras

    2.9 Historia del cdigo de barras

    2.10 Que es EDI?

    2.10.1 Captura, transferencia y gestin de datos en tiempo real

    2.10.2 Flexibilidad, rendimiento y capacidad sin precedentes

    2.10.3 Rendimiento y fiabilidad en condiciones variables

    2.10.4 MC3000 y Microsoft Windows CE

    CAPTULO III: Procesamiento y anlisis de la informacin

    3.1 Estructura de la empresa

    3.2 Proceso actual

    3.3 Anlisis y diseo de la entrevista

    3.3.1 Mtricas a evaluar

    3.3.2 Propuesta de entrevista

    3.4 Aplicacin de entrevista

    3.4.1 Resultados preliminares

    3.4.2 Grficas de resultados

    3.5 Diagnstico y Evaluacin de Resultados

    21

    22

    23

    23

    24

    24

    25

    26

    26

    26

    27

    32

    32

    34

    34

    34

    36

    36

    39

    43

    45

    45

    46

    48

    48

    52

  • CAPTULO IV. Propuesta

    4.1 Anlisis

    4.1.1 Requerimientos

    4.1.2 Definicin de Casos de Uso

    4.2 Diseo

    4.2.1 Diseo de base de datos

    4.2.2 Diseo de clases

    4.2.3 Diagramas de Secuencia

    4.2.4 Diseo de interfaces grficas

    4.3 Desarrollo

    4.3.1 Desarrollo de base de datos

    4.3.2 Desarrollo de Interfaces Graficas

    4.3.3 Desarrollo de Clases

    Conclusiones

    Bibliografa

    Anexos

    53

    53

    53

    56

    60

    60

    64

    69

    73

    78

    78

    80

    85

    87

    89

    90

  • ndice de Imgenes Imagen 1. Ejemplificacin de un objeto y sus caractersticas 6 Imagen 2. Evolucin de los lenguajes de programacin con la POO 8 Imagen 3. Ejemplificacin de herencia 10 Imagen 4. Estructura interna del objeto 14 Imagen 5. Jerarqua de los Diagramas de UML 19

    Imagen 6. Representacin de un actor 20

    Imagen 7. Representacin de un caso de uso 20

    Imagen 8. Ejemplo de diagrama de caso de uso 21 Imagen 9. Estructura del cdigo de barras 28

    Imagen 10. Cdigo 128 29

    Imagen 11. Cdigo 11 29

    Imagen 12. Cdigo PDF417 30

    Imagen 13. MC 3000 34

    Imagen 14. Organigrama Grupo Autofin 38

    Imagen 15. Diagrama de caso de uso del gerente administrativo para crear el periodo de apertura de inventario 57

    Imagen 16. Diagrama de caso de uso del gerente administrativo para dar de alta al personal 58

    Imagen 17. Diagrama de casos de uso del gerente administrativo para operaciones de asignacin de ubicacin, parejas de conteo y cierre de inventario 58 Imagen 18. Diagrama de casos de uso del gerente de refacciones para aplicar inventario y solicitar aclaracin 59

    Imagen 19. Diagrama de casos de uso de auxiliar administrativo de conteo 59

    Imagen 20. Modelado de la base de datos 61

    Imagen 21. Diagrama de clase de JSPLogin 65

    Imagen 22. Diagrama de clase de JSPIINVC Mesa 66

    Imagen 23. Diagrama de clase de JSPIINVC Inventario 67

    Imagen 24. Diagrama de clase de JSPIINVC Cierreinv 68

    Imagen 25. Diagrama general de clases 69

    Imagen 26. Diagrama de secuencia de autentificacin de usuarios 70

    Imagen 27. Diagrama de secuencia de apertura de mesa de control 71

  • Imagen 28. Diagrama de secuencia de conteo del inventario 72

    Imagen 29. Diagrama de secuencia de cierre de inventario 73

    Imagen 30. Diagrama de procesos 74

    Imagen 31. Pantalla de autenticacin de usuario 75

    Imagen 32. Pantalla propuesta para apertura de periodo 76

    Imagen 33. Pantalla propuesta para conteo de inventario 76

    Imagen 34. Pantalla propuesta para asignacin de parejas de conteo 77 Imagen 35. Pantalla propuesta para mesa de control 77

    Imagen 36. Pantalla propuesta para el cierre de inventario 78

    Imagen 37. Esquema del modelo Vista-Controlador 81

    Imagen 38. Pantalla alta de estatus de periodo 82

    Imagen 39. Pantalla alta de periodo 82

    Imagen 40. Pantalla alta de personal 83

    Imagen 41. Pantalla Consulta de perfiles 83

    Imagen 42. Pantalla apertura de mesa de control 84

    Imagen 43. Pantalla de cierre de inventario 84

    Imagen 44. Fragmento de la clase JSPIINVC Mesa en lenguaje java 86

    ndice de Tablas Tabla 1. Caractersticas de MC 3000 35

    Tabla 2. Descripcin de las tablas del sistema 62

    Tabla 3. Diccionario de datos de la tabla usuarios 63

    Tabla 4. Diccionario de datos de la tabla mesa de control 63

    Tabla 5. Diccionario de datos de la tabla perfiles 64

    Tabla 6. Campos de control 64

  • ndice de Grficas Grafica 1. Percepcin del tiempo de toma de inventario 49

    Grafica 2. Percepcin de frecuencia de errores 49

    Grafica 3. Percepcin de confiabilidad de la toma de inventario 50

    Grafica 4. Percepcin de la eficiencia de la toma de inventario 50

    Grafica 5. Percepcin del impacto en la empresa 51

    Grafica 6. Percepcin de la mejora del proceso a travs de un conteo electrnico 51

  • i

    Resumen

    Grupo Autofin Mxico es una empresa que naci en 1978 como autofinanciamiento para automviles, siendo los primeros en comercializar todas las marcas y tipos de autos nuevos a travs del sistema de autofinanciamiento. Opera aproximadamente 210 puntos de venta propios en toda la repblica mexicana, y tambin tiene agencias automotrices asociadas; las cuales a su vez manejan su almacn de refacciones.

    En este trabajo de investigacin se ha tomado el rea de almacn precisamente la toma de inventario que se realiza como objeto de estudio ante la siguiente problemtica:

    Actualmente en los almacenes de refacciones, la toma de inventarios se realiza de forma manual, es decir, se colocan marbetes en cada producto y se elige al personal por parejas para asignarles las ubicaciones de los productos a contar; se proporciona un listado de control de productos; se realiza el primer conteo y posteriormente se intercambian las parejas para continuar con el segundo conteo, al termino de los conteos se revisa si existieron diferencias y se procede a ubicar las piezas y contar nuevamente hasta que cuadre la informacin para que sea ingresada al sistema, de esta forma se cierra la toma de inventario y los gerentes firman el reporte. Sin embargo, muchas de la ocasiones se presentan detalles en los conteos, tales como: la perdida de piezas, mala ubicacin del producto en los anaqueles correspondientes, es decir, la pieza se encuentra pero en otro lugar, errores de captura y que en suma provocan perdida de tiempo para obtener resultados veraces y confiables.

    El objetivo del presente es: optimizar el proceso de toma de inventario fsico de refacciones, reducir el tiempo de captura y aumentar el grado de confiabilidad y certeza de la informacin. Evaluar el funcionamiento de la toma de inventario fsico de refacciones de una agencia automotriz. Realizar el anlisis, diseo y programacin de una aplicacin web mediante la metodologa orientada a objetos, la cual nos permitir realizar los siguientes procesos: autentificar el control de acceso de usuarios autorizados a la aplicacin, levantamiento de la mesa de control la cual tendr como objetivo asignar las ubicaciones a contar. Realizar el primer y segundo conteo mediante la lectora de cdigo de barras con la lectora Symbol MC-3000. Impresin de reportes para anlisis y revisin de resultados.

    Para el desarrollo de la investigacin se utiliz la entrevista semiestructurada como instrumento de recopilacin de datos con el fin de evaluar el tiempo en el proceso de conteo de piezas, confiabilidad y certeza de la informacin y frecuencia de errores. Las entrevistas se aplicaron solamente a nivel gerencial por lo tanto la muestra se manejo fcilmente y se realizo en su totalidad a los gerentes administrativos, gerentes de refacciones, y auxiliares de conteo: auxiliares de refacciones y administrativos.

  • ii

    Los resultados obtenidos de la entrevista mostraron que el tiempo de la toma de inventario es excesiva y debera de ser menor; debido a la frecuencia de errores como son: de captura y mala ubicacin de las piezas, la confiabilidad se considera baja ya que no se proporcionan datos precisos ni concretos y la eficiencia es mala, en conclusin el impacto en la empresa es negativo, ya que genera dificultades y desventajas a la productividad de la empresa y empleados.

    En el captulo destinado al desarrollo de la propuesta, se muestran casos de uso correspondientes para el proceso que lleva a cabo cada uno de los actores, se realiza el diseo de la base de datos, hecha en MySQL , los diagramas de secuencia que ejemplifican la interaccin entre los actores y los objetos involucrados, el diseo de interfases grficas para visualizar el modelo mas amigable que tendr la aplicacin con el usuario durante el proceso de toma de inventario, hacindolo ms eficaz y proporcionado mejoras en los puntos clave.

    Se propone crear un sistema bajo la programacin orientada a objetos en Java ya que es el lenguaje que proporciona diversas ventajas como son: uniformidad ya que es la representacin de los objetos lleva implica tanto el anlisis como el diseo y la codificacin de los mismos. Flexibilidad: al tener relacionados los procedimientos que manipulan los datos con los datos a tratar, cualquier cambio que se realice sobre ellos quedar reflejado automticamente en cualquier lugar donde estos datos aparezcan. Estabilidad: dado que permite un tratamiento diferenciado de aquellos objetos que permanecen constantes en el tiempo sobre aquellos que cambian con frecuencia permite aislar las partes del programa que permanecen inalterables en el tiempo.

    Como se vera adelante, en un programa orientado a objetos tendremos a un conjunto de objetos colaborando entre ellos. La orientacin a objetos es el paradigma que tiene un gran auge para el desarrollo de software actualmente y se basa principalmente en la creacin de objetos; un objeto es una abstraccin conceptual del mundo real que posee caractersticas y comportamientos, y de la misma manera, un objeto del mundo del software tiene variables y mtodos. Los objetos tambin son llamados instancias de la Clase y se comunican entre ellos usando los mensajes. Un mensaje es la invocacin de un mtodo del objeto.

    La orientacin a objetos requiere de una metodologa que integre el proceso de desarrollo y un lenguaje de modelamiento con herramientas y tcnicas adecuadas.

    Dicha programacin, nos permitir hacer el conteo mediante la lectura de un cdigo de barras, que es un cdigo basado en la representacin mediante un conjunto de lneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada informacin. De este modo, el cdigo de barras permite reconocer rpidamente un artculo.

    Cuando el dispositivo ptico lee esta informacin puede enviarla hacia una computadora como si la informacin se hubiera tecleado.

  • iii

    Entre sus mltiples beneficios destaca que no existe retraso entre la lectura de la informacin y el momento en que puede procesarse, adems de eliminar los errores de captura y con ello ahorra horas-hombre; permite llevar un control ms rpido y eficiente, y permite programar aplicaciones que procesen la informacin automticamente y generar los reportes necesarios de dicha informacin.

    Por lo tanto el intercambio de esta informacin directamente al sistema de la empresa para llevar en tiempo real el conteo que realicen las parejas dentro del almacn, proporcionara los beneficios antes citados.

    Se opto la lectora MC-3000: este sistema de Symbol, fue designado ya que proporciona un sistema operativo Windows CE que cuenta con procesamiento en tiempo real, mayor velocidad y rendimiento, avanzadas prestaciones multimedia y de exploracin Web.

    Es por todo lo anterior que se decidi utilizar como mtodo de recoleccin de informacin el cdigo de barras as como el sistema MC 3000 de Symbol; de esta manera los puntos dbiles detectados en la investigacin se vern ampliamente sobrepasados para optimizar el proceso y traer los beneficios esperados .

  • iv

    Introduccin

    Actualmente la informacin es la principal fuente de recursos que poseen las empresas para la toma de decisiones adecuadas y para enfrentar un mercado cambiante y competitivo. La manera en que se tiene acceso a informacin oportuna y al intercambio de dicha informacin dentro de la misma empresa as como al exterior con clientes y proveedores es de vital importancia para poder competir, evitar prdidas y principalmente mantenerse como una empresa rentable que ofrece servicios y/o productos de calidad.

    En el rubro de manejo de informacin interna de la empresa es importante mencionar que frecuentemente se generan perdidas para la empresa al haber mal manejo de dicha informacin por los procedimientos que se tienen actualmente implementados.

    La empresa en la que se pretende generar llevar a cabo este proyecto es Grupo Autofin Mxico, una empresa que naci para el autofinanciamiento de automviles, siendo los primeros en comercializar todas las marcas y tipos de autos nuevos a travs del sistema de autofinanciamiento. Tiene aproximadamente 210 puntos de ventas en toda la Repblica Mexicana junto con otras agencias automotrices asociadas.

    Cada uno de los puntos de venta y agencias, manejan un almacn de refacciones que es el rea principal donde este proyecto se desarrollara; directamente en la toma de inventario que se hace del almacn. Actualmente el proceso se realiza de manera manual, el conteo de las refacciones se divide por ubicacin y se asigna a parejas de contadores y se hace entrega de formatos listado de control; posteriormente se cambian las parejas de ubicacin fsica y se realiza un segundo conteo; al terminar se pasan los resultados de los listados para que sean capturados dentro del sistema y que ambos conteos se comparen. Si existe diferencia se hacen aclaraciones, si no, el conteo queda finalizado y la toma de inventario se cierra y los gerentes firman el reporte.

    Sin embargo, la mayora de las veces se presentan detalles dentro de los conteos, tales como: la perdida de piezas, la mala ubicacin fsica dentro de los anaqueles correspondientes, es decir, que la pieza si se encuentra pero no en su lugar; los errores de captura dentro del sistema y que en suma provocan retrasos considerables de tiempo para obtener resultados veraces y confiables.

    Este trabajo nos muestra el diagnostico realizado a travs de entrevistas y encuestas a los gerentes de varias agencias, que consideran que este proceso de conteo requiere demasiado tiempo y es poco conveniente para la empresa por su falta de fiabilidad. Con los resultados obtenidos se determinan los puntos claves para atacar este problema, confiabilidad, reduccin de tiempo y veracidad de informacin.

  • v

    En el captulo 4 se desarrolla la propuesta para el proceso de toma de inventario, hacindolo ms eficaz y proporcionado mejoras en los puntos clave.

    Se propone crear un sistema bajo la programacin orientada a objetos en Java ya que es el lenguaje que proporciona diversas ventajas, que nos permitir hacer el conteo mediante un lector de cdigo de barras, en especifico con la lectora MC-3000 y el intercambio de esta informacin directamente al sistema de la empresa para llevar en tiempo real el conteo que realicen las parejas dentro del almacn, evitando errores de captura y manejando aclaraciones de piezas fuera de su lugar.

    Las ventajas que proporcionara este sistema se vern reflejadas en la reduccin del tiempo de toma de inventario, mejor manejo de la informacin sobre las piezas existentes en los almacenes de refacciones de cada agencia y mejor toma de decisiones con la informacin actualizada, veraz y concreta.

  • 1

    CAPTULO I: MARCO METODOLOGICO 1.1 Planteamiento del problema

    Una agencia automotriz para el control de su almacn de refacciones tiene que realizar el proceso de conteo fsico del inventario, este conlleva que se tenga que realizar el conteo pieza por pieza de forma manual, registrar la existencia en un listado de control y por ultimo ingresar al sistema esta informacin, esto hace que el proceso se vuelva lento, ineficiente y exista un alto ndice de error en la captura, por lo cual se necesita una herramienta que optimice y agilice el proceso de inventario fsico, reduzca tiempo y tenga un alto grado de confiabilidad y certeza en la informacin.

    1.2 Objetivos

    Objetivo General

    Optimizar el proceso de toma de inventario fsico de refacciones, reducir el tiempo de captura y aumentar el grado de confiabilidad y certeza de la informacin.

    Objetivos Especficos

    Evaluar el funcionamiento de la toma de inventario fsico de refacciones de una agencia automotriz.

    Realizar el anlisis, diseo y programacin de una aplicacin web mediante la metodologa orientada a objetos, la cual nos permitir realizar los siguientes procesos:

    Autentificar el control de acceso de usuarios autorizados a la aplicacin, Levantamiento de la mesa de control la cual tendr como objetivo asignar las ubicaciones

    a contar.

    Realizar el primer y segundo conteo mediante la lectora de cdigo de barras Symbol MC3000.

    Impresin de reportes para anlisis y revisin de resultados

    1.3 Tcnicas de la investigacin

    La tcnica de investigacin que emplearemos para la recopilacin de informacin ser la entrevista y la encuesta ya que sern aplicadas a los responsables directos de la gerencia administrativa y la gerencia de refacciones.

    El tipo de entrevista a aplicar ser semiestructurada ya que nos permitir recaudar informacin sobre los aspectos que queremos explorar.

  • 2

    Las preguntas y el desarrollo de la entrevista sern planificadas previamente, lo que nos permitir tener cierta libertad para ir abordando temas que puedan ir surgiendo a lo largo de la entrevista.

    1.4 Universo y muestra

    El universo est definido por todas las agencias automotrices que conforman la divisin automotriz del Grupo Autofin Mxico en todo el pas. Para este trabajo solamente determinaremos como universo las que se encuentran en el rea metropolitana.

    Las entrevistas se aplicaran solamente a nivel gerencial por lo tanto la muestra se podr manejar fcilmente y se har en su totalidad a los gerentes administrativos, gerente de refacciones, y auxiliares de conteo: auxiliares administrativo y de refacciones.

    1.5 Justificacin

    En el rea de almacn de una agencia automotriz, se realiza el proceso de toma de inventario fsico el cual consiste en contar manualmente todas y cada una de las refacciones, desde un enorme motor hasta una diminuta rondana, esto permite detectar faltantes antes de que estos se vuelvan peligrosos, adems inhibe los hurtos hormiga de material de alta rotacin y bajo costo.

    El realizar el proceso de toma de inventario nos lleva a tener una reduccin de costos, ya que con la informacin que se obtiene se puede tener un nivel ptimo de inventario, una mejor proyeccin de compras e informacin confiable y oportuna para la toma de decisiones.

    Como todo proceso que se realiza manualmente existe un alto grado de error, tanto al momento de contar como al de ingresar la informacin al sistema.

    Con base en nuestro perfil como licenciados en ciencias de la informtica, buscamos de forma innovadora que este trabajo sea una oportunidad a nivel de administracin de almacenes para realizar una propuesta profesional en la optimizacin, confiabilidad y certeza de la informacin que se obtiene del proceso de toma de inventario. Los beneficios que aportar a la empresa la optimizacin del proceso de toma de inventario son:

    Reduccin de tiempo en el proceso de conteo de piezas Aumento en la confiabilidad y certeza de la informacin, reduccin de costos Actualizacin de la informacin en lnea para toma de decisiones. Aumento del control del almacn Contar con una herramienta con tecnologa de punta la cual ya que se enlaza a travs de Internet.

  • 3

    CAPITULO II: MARCO TEORICO Y REFERENCIAL 2.1 Introduccin a la Programacin Orientada a Objetos

    Antes de que Java apareciera, por ejemplo C era un lenguaje extremadamente popular entre los programadores y pareca que era el lenguaje de programacin perfecto, combinando los mejores elementos de los lenguajes de bajo y alto nivel en un lenguaje de programacin que se ajustaba a la arquitectura del ordenador y que se gustaba a los programadores.

    Sin embargo, el lenguaje C tena limitaciones, al igual que los lenguajes de programacin anteriores. Cuando los programas crecan, los programas C se hacan inmanejables porque no haba forma fcil de acotarlo. Esto quiere decir que el cdigo de la primera lnea de un programa largo podra interferir con el cdigo de la ltima lnea, y el programador tendra que recordar todo el cdigo mientras programaba.

    La programacin orientada a objetos se hizo popular por ser capaz de dividir programas largos en unidades semiautnomas. El lema de la programacin orientada a objetos es divide y vencers. En otras palabras, un programa se puede dividir en partes fcilmente identificables. Por ejemplo, supongamos que para mantener fresca la comida usando un termmetro, y cuando la temperatura fuera lo suficientemente alta, activara un interruptor que arrancara el compresor e hiciera funcionar las vlvulas para que el fro circulara; luego arrancara un ventilador que moviera el aire. Esa es una forma de hacerlo. Sin embargo, otra consiste en coordinar todas esas operaciones de forma que sean automticas, cubriendo todo con una cantidad sencilla, un refrigerador. Ahora las interioridades no se ven y lo nico que hay que hacer es introducir o sacar comida del refrigerador.

    As funcionan los objetos: ocultan los detalles de la programacin el resto del programa C e inicializando una interfaz bien definida y controlable que mantiene la conexin entre el objeto y el resto del cdigo. As usted puede pensar en el objeto como algo fcil, por ejemplo, puede tener un objeto que gestiona toda la interaccin con la pantalla, un objeto al que le llame pantalla. Despus de crear ese objeto, sabe que la pantalla es gestionada por ese objeto y puede tenerlo en mente, pero en ninguna otra parte del cdigo tendr que gestionar el manejo de la pantalla, podr usar en su lugar el objeto pantalla que ha creado.

    Cuando se aade al lenguaje C la programacin orientada a objetos, naci C++, y los programadores tuvieron un nuevo aliciente. C++ permite a los programadores tratar grandes programas, y el cdigo orientado a objeto ayud a resolver tambin muchos de los otros problemas. Por ejemplo, el hecho de soportar objetos lo haca ms fcil para los fabricantes que

  • 4

    suministraban software con mucho cdigo reutilizable, preparado para su uso. Para crear un objeto, utiliza una clase que acta como una plantilla o creador de patrones para ese objeto.

    Se puede pensar en una clase como un tipo de objeto, al igual que una variable puede ser de tipo entero.

    Como C++ soporta clases, los proveedores de software pueden proporcionarle enormes libreras de clases, a partir de las cuales se puede empezar a crear objetos. Por ejemplo, una de las libreras de clase de C++ ms populares es la librera Microsoft Foundation Class (MFC) que viene con Visual C++ de Microsoft, y en ella los programadores encontraron una mejora tremenda respecto a los tiempos pasados. Cuando se escriba un programa Windows en C, se necesitaban aproximadamente cinco pginas de cdigo para visualizar una ventana vaca. Sin embargo, utilizando una clase de la librera MFC, simplemente haba que crear un objeto del tipo de ventana que se quisiera usar: con o sin borde, como un cuadro de dialogo, etc. El objeto ya tenia toda la funcionalidad del tipo de ventana que quera crear, por lo que para crear una ventana solo era necesaria una lnea de cdigo, la lnea en la que se creaba el nuevo objeto ventana de la clase que se haba seleccionado. Ms impresionante todava era el hecho de que se poda usar una clase MFC como clase base para las clases propias, aadiendo la funcionalidad que se quisiera por medio de la herencia de la programacin orientada a objetos. Por ejemplo, supongamos que quiere que su ventana tena una barra de mens; entonces puede derivar su propia clase de una ventana simple de MFC, aadiendo a esa clase una barra de mens para crear la clase nueva. De esta forma, aadiendo unas cuantas lneas de cdigo a las de los programadores de Microsoft, puede construir su propia clase.

    Todo esto pareca fabuloso a los programadores y C++ llego muy lejos. Pareca que el lenguaje de programacin perfecto haba llegado. Qu poda haber mejor? Sin embargo, el mismo entorno de programacin iba a verse sometido a un gran cambio con la popularizacin de lo que equivale a un nuevo e inmenso entorno de programacin: la red Internet. Y eso es lo que hizo que Java fuera tan popular.

    La programacin orientada a objetos como ya lo vimos es, realmente, implementar el famoso dicho de la programacin: divide y vencers. La idea es encapsular datos y mtodos en objetos, de forma que cada objeto sea semiautnomo, encerrando mtodos y datos privados (es decir, internos) y salvndolos del desorden general que les rodea. As, el objeto puede interactuar con el resto del programa por medio de una interfaz bien definida por sus mtodos pblicos (es decir, se les puede invocar desde fuera).

  • 5

    La programacin orientada a objetos fue creada para gestionar programas ms grandes y descomponerlos en unidades funcionales. Esto nos lleva al siguiente paso, que consiste en dividir un programa en subrutinas, ya que los objeto pueden contener mltiples subrutinas y datos. El resultado de encapsular partes de un programa en un objeto es que es concebido como un elemento sencillo y no hay que tratar todo lo que el objeto hace internamente.

    Como ya se vio en el ejemplo anterior, suponga que su cocina esta llena de tuberas, bombas, un compresor y todo tipo de interruptores para mantener la temperatura ideal de la comida. Cada vez que esta temperatura sea demasiado alta, habr que encender el compresor, abrir las vlvulas y empezar a mover bombas manualmente. Ahora bien, toda esa funcionalidad se puede cubrir con un objeto, un frigorfico, en el que todas esas operaciones se gestionan internamente, realimentndose todas las partes de su interior de forma automtica.

    Esta es la idea que hay detrs de la encapsulacin: parte de un sistema complejo que necesita mucha atencin y lo convierte en un objeto que gestiona todo internamente con su propio trabajo y puede ser fcilmente, concebido, como un refrigerador. Si el primer principio de la programacin orientada a objetos es divide y vencers, el segundo es fuera de la vista, fuera de la mente.

    En Java, la programacin orientada a objetos gira sobre algunos conceptos clave: clases, objetos, miembros de datos, mtodos y herencia. De forma rpida ya que posteriormente los abordaremos ms a fondo, estos trminos significan:

    Una clase es una plantilla desde la que se pueden crear objetos. La definicin de una clase incluye especificaciones formales para la clase y cualquier dato y mtodos incluidos en ella.

    Un objeto es una instancia de una clase, al igual que una variable es una instancia de un tipo de dato. Se puede pensar en una clase como el tipo de un objeto y se puede pensar en el objeto como una instancia de una clase. Los objetos encapsulan mtodos y variables de instancia.

    Los miembros de datos son esas variables que forman parte de una clase y en ellas se almacenan los datos que usa el objeto. El objeto soporta variables de instancia, cuyos valores son especficos del objeto, y variables de clase, cuyos valores son compartidos entre los objetos de esa clase.

    Un mtodo es una funcin construida en una clase u objeto, Se pueden tener mtodos de instancia y mtodos de clase. Con objetos, se usan los mtodos de instancia, pero se puede usar un mtodo de clase haciendo referencia, simplemente, a la clase por su nombre, sin requerir ningn objeto.

  • 6

    Herencia es el proceso que consiste en derivar una clase, llamada clase derivada, de otra, llamada clase base, y se pueden utilizar los mtodos de la clase base en la clase derivada.

    La programacin orientada a objeto (POO) es un modelo de programacin que utiliza objetos, ligados mediante mensajes, para la solucin de problemas. Puede considerarse como una extensin natural de la programacin estructurada en un intento de potenciar los conceptos de modularidad y reutilizacin del cdigo.

    A qu objetos nos referimos? Si nos paramos a pensar en un determinado problema que intentamos resolver podremos identificar entidades de inters, las cuales pueden ser objetos potenciales que poseen un conjunto de propiedades o atributos, y un conjunto de mtodos mediante los cuales muestran su comportamiento. Y no solo eso, tambin podremos ver, a poco que nos fijemos, un conjunto de interrelaciones entre ellos conducidas por mensajes a los que responden mediante mtodos.

    Como ejemplo podemos el dibujo siguiente, considerando a una entidad como un ave. Pues bien, un ave puede verse como un objeto que tiene unos atributos, nombre, peso, altura, color, ancho, etc. y un conjunto de mtodos como comer, dormir, descansar, graznar, etc. As como tambin ver los eventos que pueden suceder de acuerdo al objeto ave como celo, hambre, peligro. etc.

    Imagen 1. Ejemplificacin de un objeto y sus caractersticas

  • 7

    2.2 Origen

    Los conceptos de la programacin orientada a objetos tienen origen en Simula 67, un lenguaje diseado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cmputo Noruego en Oslo. Al parecer, en este centro, trabajaban en simulaciones de naves, y fueron confundidos por la explosin combinatoria de cmo las diversas cualidades de diversas naves podan afectar unas a las otras.

    La idea ocurri para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento. Fueron refinados ms tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (y cuya primera versin fue escrita sobre Basic) pero diseado para ser un sistema completamente dinmico en el cual los objetos se podran crear y modificar "en marcha" en lugar de tener un sistema basado en programas estticos.

    La programacin orientada a objetos tom posicin como el estilo de programacin dominante a mediados de los aos ochenta, en gran parte debido a la influencia de C++, una extensin del lenguaje de programacin C. Su dominacin fue consolidada gracias al auge de las Interfaces grficas de usuario, para las cuales la programacin orientada a objetos est particularmente bien adaptada. En este caso, se habla tambin de programacin dirigida por eventos.

    Las caractersticas de orientacin a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo Ada, BASIC, Lisp, Pascal, entre otros. La adicin de estas caractersticas a los lenguajes que no fueron diseados inicialmente para ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mantenimiento del cdigo. Los lenguajes orientados a objetos "puros", por otra parte, carecan de las caractersticas de las cuales muchos programadores haban venido a depender. Para saltar este obstculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en mtodos orientados a objetos, pero permitiendo algunas caractersticas imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparicin de Internet, y a la implementacin de la mquina virtual de Java en la mayora de navegadores. PHP en su versin 5 se ha ido modificando y soporta una orientacin completa a objetos, cumpliendo todas las caractersticas propias de la orientacin a objetos. El desarrollo de la Programacin Orientada a Objetos empieza tomar en cuenta la programacin estructurada, a la que se engloba y dotando al programador de nuevos elementos para el anlisis y desarrollo de software.

  • 8

    Imagen 2. Evolucin de los lenguajes de programacin con la POO

    Bsicamente la POO permite a los programadores escribir software, de forma que est organizado en la misma manera que el problema que trata de modelizar. Los lenguajes de programacin convencionales son poco ms que una lista de acciones a realizar sobre un conjunto de datos en una determinada secuencia. Si en algn punto del programa modificamos la estructura de los datos o la accin realizada sobre ellos, el programa cambia.

    La POO aporta un enfoque nuevo, convirtiendo la estructura de datos en el centro sobre el que pivotan las operaciones. De esta forma, cualquier modificacin de la estructura de datos tiene efecto inmediato sobre las acciones a realizar sobre ella, siendo esta una de las diferencias radicales respecto a la programacin estructurada.

    Las ventajas fundamentales que nos aporta la Programacin Orientada a Objetos son:

    Fomentar la reutilizacin y extensin de cdigo Permite crear sistemas mas complejos Relacionar el sistema al mundo real Facilita la creacin de programas visuales Construccin de prototipos Agiliza el desarrollo de software Facilita el trabajo en equipo Facilita el mantenimiento de software

  • 9

    2.3 Conceptos Fundamentales

    2.3.1 Clase

    En la programacin orientada a objetos, las clases proporcionan una especie de plantilla para los objetos. Es decir, si se piensa en una clase como un molde de galletas, los objetos que se crean a partir de ella, son las galletas. Se puede considerar que una clase es un tipo de objeto; se usa una clase para crear un objeto y luego se puede llamar a los mtodos del objeto desde este cdigo.

    Para crear un objeto, se invoca al constructor de una clase, que es un mtodo que se llama igual que la clase. Este constructor crea un nuevo mtodo objeto de la clase. Cada vez que se crea un programa Java, se necesita una clase. Por ejemplo, veamos el cdigo necesario para crear una clase llamada aplicacin, que se almacena en un fichero llamado aplicacin.java (esta clase crea una aplicacin Java):

    public class aplicacin

    {

    public static void main(String args[])

    {

    System.out.println(Hola desde Java!);

    }

    }

    Cuando se utiliza el compilador de Java, este fichero, aplicacin.java, se convierte en el fichero de bytecode aplicacin.class, que gestiona toda la especificacin de la clase aplicacin.

    Las caractersticas de una clase son las siguientes:

    1) Todas las variables y funciones de Java deben pertenecer a una clase. 2) Si una clase deriva de otra (extends), hereda todas sus variables y mtodos. 3) Java tiene una jerarqua de clases estndar de la que pueden derivar las clases que crean

    los usuarios. 4) En Java no hay herencia mltiple.

  • 10

    5) En un fichero se pueden definir varias clases, pero en un fichero no puede haber ms que una clase public.

    6) Si una clase contenida en un fichero no es public, no es necesario que el fichero se llame como la clase.

    7) Los mtodos de una clase pueden referirse de modo global al objeto de esa clase al que se aplican por medio de la referencia this.

    8) Las clases se pueden agrupar en packages, introduciendo una lnea al comienzo del fichero (package packageName;).

    2.3.2 Herencia

    La herencia es un tema muy importante en la programacin con lenguaje Java. Usando la herencia se puede derivar una clase, llamada clase derivada o subclase, de otra, llamada clase base o superclase. Se trata de aadir lo que se quiera a la nueva clase para darle mayor funcionalidad que a la clase original. Por medio de la herencia, puede basar sus clases en otras clases reutilizando y aadiendo cdigo. Se puede usar o redefinir los miembros de la superclase como guste, personalizando esa clase para su propio uso. De hecho, se pueden crear clases que deban ser tratadas como superclases. Con la herencia todas las clases estn clasificadas en una jerarqua estricta.

    Imagen 3. Ejemplificacin de herencia

    Las clases que estn en la parte inferior en la jerarqua se dice que heredan de las clases que estn en la parte superior en la jerarqua.

  • 11

    El termino heredar significa que las subclases disponen de todos los mtodos y propiedades de su superclase. Este mecanismo proporciona una forma rpida y cmoda de extender la funcionalidad de una clase.

    En Java cada clase solo puede tener una superclase, lo que se denomina herencia simple. En otros lenguajes orientados a objetos, como C++, las clases pueden tener ms de una superclase, lo que se conoce como herencia mltiple.

    En este caso, una clase comparte los mtodos y propiedades de varias clases. Esta caracterstica, proporciona un poder enorme a la hora de crear clases, pero implica excesivamente la programacin, por lo que es de escasa o nula utilizacin. Java, intentando facilitar las cosas, soluciona este problema de comportamiento compartido utilizando interfaces.

    Una interfaz es una coleccin de nombres de mtodos, sin incluir sus definiciones, que puede ser aadida a cualquier clase para proporcionarle compartimientos adicionales no incluidos en los mtodos propios o heredados.

    2.3.3 Objeto

    Primeramente entendamos lo que es un objeto en el mundo real: es cualquier cosa que vemos a nuestro alrededor como un libro, una computadora, etc. Cada objeto tiene caractersticas y comportamientos. Como lo vimos anteriormente nombramos a un objeto ave, sus caractersticas son su nombre, color, altura, peso, etc. y sus comportamientos son comer, dormir, descansar, etc.

    En Java, a un objeto se le llama instancia de una clase. Para crear un objeto, se llama al constructor de una clase, que tiene el mismo nombre que ella. He aqu un ejemplo en el que se crea un objeto de la clase String, pasando la cadena que se quiere incluir en ese objeto al constructor de la clase String:

    String s = new String(Hola desde Java!);

    Qu se hace con un objeto cuando se dispone de otro? Se puede interactuar con l usando miembros de datos y mtodos.

    Podemos entender al objeto como una encapsulacin genrica de datos y de los mtodos para manipularlos. Dicho de otra forma, un objeto es una entidad que tiene unos atributos particulares, las propiedades y unas formas de operar sobre ellos, los mtodos.

  • 12

    Por ejemplo, una ventada de una aplicacin Windows es un objeto. El color de fondo, la anchura, la altura, etc, son propiedades. Las rutinas lgicamente transparentes al usuario, que permiten maximizar la ventana, minimizarla, etc. son mtodos.

    Miembros de datos

    Los miembros de datos de un objeto se llaman miembros de datos de instancia o variables de instancia. Los elementos de datos compartidos por todos los objetos de una clase se llaman miembros de datos de clase o variables de clase. Los miembros de datos pueden hacerse accesibles desde fuera de un objeto, o se pueden hacer que sean internos al objeto para usar, de forma privada, los mtodos del interior del objeto.

    Esto es un ejemplo en el que se muestra como se deberan utilizar los miembros de datos de un objeto. Supongamos que se tiene una clase llamada Data_class, y se crea un objeto de esa clase llamado data1:

    Data_class data1 = new Data_class(Hola desde Java!);

    Si Data_class define un miembro de dato que es accesible pblicamente llamado data, se puede hacer referencia al miembro de dato de ata1 usando el operador punto (.), como sigue:

    Data1.data

    Esto significa que se pueden meter los datos en data1, de la siguiente forma:

    Data_class data1 = new Data_class(Hola desde Java!);

    System.out.println(data1.data);

    De esta forma, se puede hacer referencia a los miembros de datos de un objeto que lo hace accesible pblicamente.

    Por otro lado, el poder invocar esos datos ocultos es una de las motivaciones de la programacin orientada a objetos, y dar acceso a los datos internos de un objeto desde un cdigo externo al mismo no es buena idea. En su lugar, muchas veces se da acceso a los datos de un objeto aun cdigo externo solo a travs de los mtodos del objeto (lo que significa que se puede controlar la interfaz del objeto para el resto del programa, comprobando los valores de los datos antes de que esos valores sean almacenados en los miembros de datos del objeto).

  • 13

    2.3.4 Mtodo

    Los mtodos son funciones de una clase. Generalmente los mtodos se dividen en aquellos que se usan internamente en la clase, llamados mtodos privados (private), los que se usan fuera de la clase, llamados mtodos pblicos (public) y los que son usados por la clase y sus derivados, llamados mtodos protegidos (protected).

    Los mtodos privados son, generalmente, llamados en el interior del objeto por otras partes del mismo, en el ejemplo del refrigerador que propusimos al principio, el termostato puede invocar a un mtodo interno llamado iniciar _ compresor cuando llegue el momento de enfriar.

    Una vez que se tiene un objeto que soporta mtodos, se pueden usar los mtodos de esos objetos. En el ejemplo siguiente, se usa el mtodo calcular para trabajar con los dos valores de operando1 y operando2 y almacenar el resultado del clculo en resultado:

    Calculador cal1 = new Calculador();

    resultado = calc1.calcular(operando1, operando2);

    Java soporta dos tipos de mtodos: mtodos de clase y mtodos de instancia. Los mtodos de instancia, como en el ejemplo calcular, son invocados en objetos (es decir, los objetos son instancias de una clase). Los mtodos de clase, por otro lado, son invocados en una clase. Por ejemplo, la clase java.lang.Math tiene un mtodo de clase llamado sqrt que calcula una raz cuadrada, y se puede usar como sigue (no es necesario un objeto):

    public class app { public static void main(String args[]) { double value = 4, sqrt; sqrt = Math.sqrt(value); System.out.println(La raz cuadrada de + value + = + sqrt); } }

    Esto es lo que se puede ver cuando se ejecuta el cdigo:

    C:\>java app La raz cuadrada de 4.0 = 2.0

  • 14

    Otra definicin para los mtodos es que un mtodo se implementa en una clase de objetos y determina como tiene que actuar el objeto cuando se recibe un mensaje vinculado con ese mtodo. A su vez, un mtodo puede tambin enviar mensajes a otros objetos solicitando una accin o informacin.

    En adicin, las propiedades (atributos) definidas en la clase permitirn almacenar informacin para dicho objeto.

    Cuando se disea una clase de objetos, la estructura ms interna del objeto se oculta a los usuarios que lo vayan a utilizar, manteniendo como nica conexin con el exterior, los mensajes. Esto es, los datos que estn dentro de un objeto solamente podrn ser manipulados por los mtodos asociados al propio objeto.

    Imagen 4. Estructura interna del objeto

    Segn lo expuesto, podemos decir que la ejecucin de un programa orientado a objetos realiza fundamentalmente tres cosas:

    1. Crea los objetos necesarios. 2. Los mensajes enviados a unos y a otros objetos dan lugar a que se procese

    internamente la informacin. 3. Finalmente, cuando los objetos no son necesarios, son borrados, liberando la

    memoria ocupada por los mismos.

    2.3.5 Evento

    El evento es un suceso en el sistema tal como una interaccin del usuario con la mquina, o un mensaje enviado por un objeto.

  • 15

    El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. Tambin se puede definir como evento, a la reaccin que puede desencadenar un objeto, es decir la accin que genera.

    Los componentes bsicos de los programas actuales son los objetos, que representan abstracciones y tienen dos tipos de componentes: propiedades y mtodos. Las propiedades representan magnitudes que representan a su vez "propiedades" del objeto (valga la redundancia). Por ejemplo, una propiedad puede representar el color de fondo de una ventana; el saldo de una cuenta, o el estado de una lnea de comunicacin. Por su parte los mtodos representan "acciones" que se ejecutan sobre el objeto, cuyo resultado puede ser de cualquier tipo, incluyendo devolver un valor. Por ejemplo, devolver el valor de una propiedad (saldo de una cuenta), alterarlo (cambiar el color del fondo de una ventana) o cerrar un dispositivo de comunicacin.

    En general la sucesin de acciones (invocacin de mtodos) que se realiza a lo largo de un programa, viene determinada por la estructura de su cdigo. Pero la totalidad de los programas que corren en un sistema moderno son interactivos, en el sentido que su comportamiento puede ser influido desde el exterior. El exterior inmediato del programa est representado por el Sistema Operativo que lo alberga. El exterior lejano puede ser el operador que acta sobre el Sistema a travs de un dispositivo (un teclado o un ratn) o un dispositivo que acta sin intervencin de ningn operador. Por ejemplo, una lnea de comunicaciones que cambia de estado.

    En el lenguaje de los Sistemas Operativos a estos sucesos captados por el sistema se los denomina eventos. Segn su tipo los eventos pueden ser procesados ntegramente por el SO o trasladados a los programas que corren bajo su control en forma de mensajes. Estos mensajes son interpretados por el programa como una peticin para que ejecute algunos de sus mtodos. Precisamente la estructura de un programa Windows moderno se basa en un bucle en el que el programa interroga constantemente al Sistema a la espera de mensajes, y en una larga cadena de sentencias condicionales (del tipo if - else) en la que toma diversas acciones segn el mensaje recibido.

    Segn su origen, los eventos se dividen en dos grandes categoras:

    Eventos de usuario

    Los eventos de usuario son acciones que tienen su origen en el usuario del programa. Ejemplos de este tipo son OnClick (el usuario pulsa el botn del ratn), OnKeyPress (el usuario pulsa una tecla del teclado) y OnDblClick (el usuario pulsa dos veces el botn del ratn), Etc. Este tipo de eventos estn siempre relacionados con alguna accin del usuario.

  • 16

    Evento de Sistema

    Este tipo de eventos son aquellos que se inician en el Sistema Operativo. Por ejemplo, OnTimer (el temporizador puede generar uno de estos eventos a intervalos de tiempo determinados), el evento OnCreate (un componente ha sido creado), OnPaint (un componente o ventana necesita ser redibujado), Etc. Por lo general los eventos de Sistema no tienen su origen directo en ninguna accin del usuario.

    2.3.6 Mensaje

    Un mensaje en un objeto es la accin de efectuar una llamada a un mtodo. Por ejemplo, cuando le decimos a un objeto coche que se ponga en marcha estamos pasndole el mensaje ponte en marcha. Para mandar mensajes a los objetos utilizamos el operador punto, seguido del mtodo que deseamos invocar.

    miCoche.ponerseEnMarcha()

    En este ejemplo pasamos el mensaje ponerseEnMarcha(). Hay que colocar parntesis igual que cualquier llamada a una funcin, dentro iran los parmetros.

    2.3.7 Propiedad / atributo

    La propiedad o atributo es el contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus caractersticas predeterminadas, y cuyo valor puede ser alterado por la ejecucin de algn mtodo.

    Como lo vimos en el ejemplo del objeto ave, sus propiedades o atributos seria: su nombre, cu tamao, su peso, su altura, su color, etc.

    2.3.8 Estado interno

    El estado interno es una variable que se declara privada, que puede ser nicamente accedida y alterada por un mtodo del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.

    2.4 Anlisis orientado a objetos

    El anlisis se define como la distincin y separacin completa de las partes de un todo hasta llegar a conocer sus principios o elementos, por lo que podemos decir que el anlisis orientado a objetos se considera como una separacin de actividades del negocio para facilitar su comprensin.

  • 17

    Segn los iniciadores de este enfoque es un mtodo de anlisis que examina los requisitos desde la perspectiva de las clases y objetos que se encuentran el vocabulario del dominio del problema.

    Para realizar el anlisis se elaboran diferentes documentos que nos permiten obtener informacin necesaria para la creacin del sistema. Los documentos de anlisis contienen la informacin que aporta el cliente que utilizara el sistema o aplicacin. Tambin contiene las actas de las reuniones de trabajo del grupo de anlisis aprobadas en cada reunin. La especificacin de requerimientos puede decirse tambin que es la captura de requisitos cuando se averigua, normalmente en circunstancias difciles, lo que se debe hacer.

    Es muy importante codificar esos requisitos para poder seguirlos a lo largo del proceso de desarrollo del software; para facilitar esta tarea se puede utilizar una especificacin jerrquica. Tambin es necesario identificar los usuarios y sus roles, obtener datos de los usuarios, evaluar la informacin y validar con estos y contra la arquitectura de la empresa.

    Este enfoque como se le puede llamar es un proceso iterativo e incremental, es decir, a travs de las diferentes fases se pueden pulir los detalles del proyecto.

    2.4.1 UML

    El UML o Unified Modeling Language o el lenguaje unificado de modelado, es un lenguaje grafico estndar para escribir planos de software; puede utilizarse para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una cantidad de software. Ofrece un estndar para describir aspectos conceptuales tales como procesos de negocio y funciones del sistema, y de aspectos concretos como expresiones de lenguajes de programacin, esquema de bases de datos y componentes reutilizables.

    UML es un lenguaje muy expresivo, que cubre todas las vistas necesarias para desarrollar y luego desplegar tales sistemas. Fomenta un proceso guiado por casos de uso centrado en la arquitectura, iterativo e incremental.

    UML consta de diagramas o tcnicas para el modelado de sistemas mismos que se presentan de manera breve en el siguiente diagrama.

    Los diagramas de estructura enfatizan en los elementos que deben existir en el sistema modelado.

    Diagrama de clases: Muestra un conjunto de clases, interfaces y colaboraciones, as como sus relaciones; cubren la vista de diseo esttica de un sistema.

  • 18

    Diagrama de componentes: Muestra la organizacin, las dependencias entre un conjunto de componentes; cubren la vista de implementacin esttica de un sistema.

    Diagrama de objetos: Muestra un conjunto de objetos y sus relaciones; representan instantneas de instancias de los elementos encontrados en los diagramas de clase y cubren la vista de diseo esttica.

    Diagrama de despliegue: Muestra la configuracin de nodos de procesamiento en tiempo de ejecucin y los componentes que residen en ellos; cubren la vista de despliegue esttica de una arquitectura.

    Diagrama de paquetes: Muestra como un sistema esta dividido en agrupaciones lgicas mostrando las dependencias entre estas agrupaciones; suministran una descomposicin de la jerarqua lgica de un sistema.

    Los diagramas de comportamiento enfatizan en lo que debe suceder en el sistema modelado.

    Diagrama de actividades: Muestra los flujos de trabajo paso a paso del negocio y operacionales de los componentes de un sistemas.

    Diagrama de casos de uso: Muestra los casos de uso y actores y sus relaciones; cubren la vista de casos de uso esttica de un sistema.

    Los diagramas de interaccin son un subtipo de diagramas de comportamiento, que enfatizan sobre el flujo de control y de datos entre los elementos del sistema modelado.

    Diagrama de secuencia: Resalta la ordenacin temporal de los mensajes Diagrama de comunicacin: Modela las interacciones entre objetos o partes en trminos de

    mensajes de secuencia ms simplificado que el diagrama de colaboracin. Diagrama de tiempos: Es una grafica de forma de ondas digitales que muestra la relacin

    temporal entre varias seales, y como vara cada seal en relacin con las dems. Diagrama global de interacciones o de vista de interaccin: Muestra una cierta vista sobre

    los aspectos dinmicos de los sistemas modelados.

  • 19

    Imagen 5. Jerarqua de los Diagramas de UML

    2.4.2 Casos de uso

    Una de las herramientas mas utilizadas para obtener una mayor comprensin del problema y los requerimientos son los de casos de uso.

    Los casos de uso son escenarios en los cuales el usuario interacta con el sistema que se esta definiendo para lograr cierto objetivo especifico o realizar alguna tarea particular

    Dicho en otras palabras podemos decir que son una tcnica para la captura de requisitos potenciales de un sistema nuevo o una actualizacin de software. Cada caso de uso proporciona uno o ms escenarios que indican como debera interactuar el sistema con el usuario o con otro sistema para conseguir un objetivo especfico.

    Para la ejemplificacin se utilizan los diagramas de caso de uso y consta de los siguientes elementos:

    Actor: es un rol que un usuario juega con respecto al sistema; cabe sealar que el uso de la palabra rol es importante ya que el actor no necesariamente representa a una persona en particular, sino ms bien la labor que realiza frente al sistema.

  • 20

    Imagen 6. Representacin de un actor

    Casos de uso: Es una operacin o tarea especifica que se desarrolla por los actores y por el sistema en un dialogo entre ellos mismo.

    Imagen 7. Representacin de un caso de uso

    Relaciones de uso: Asociacin: Es el tipo de relacin mas bsica que indica la invocacin desde un

    actor o caso de uso a otra operacin, la cual es representada por una flecha. Inclusin: Tipo en el que una instancia del caso de uso origen incluye tambin el

    comportamiento descrito por el Caso de Uso destino. Dependencia o Instanciacin: Es una forma particular de la relacin entre clases,

    en la cual una clase depende de la otra, es decir, se instancia; y es representada con una flecha punteada.

    Generalizacin: Esta relacin es de las ms utilizadas y solamente estn orientadas exclusivamente a los casos de uso y no para los actores, cumple una doble funcin dependiendo de su tipo: cuando hereda un caso de uso similar a otro; o se usa, es decir, cuando se tiene un conjunto de caractersticas que son similares en mas de un caso de uso y no se desean mantener copiada la descripcin de las mismas.

  • 21

    Imagen 8. Ejemplo de diagrama de caso de uso

    2.5 Diseo orientado a objetos

    El diseo orientado a objetos es un enfoque de la ingeniera de software que modela un sistema como un grupo de objetos que interactan entre s.

    Este enfoque representa un dominio en trminos de conceptos compuestos por verbos y sustantivos, clasificados de acuerdo a su dependencia funcional.

    En ste mtodo se crea un conjunto de modelos utilizando la notacin antes mencionada, el lenguaje unificado de modelado (UML).

    Aplica tcnicas de modelado de objetos para analizar los requerimientos para un contexto - por ejemplo, un sistema de negocio, un conjunto de mdulos de software - y para disear una solucin para mejorar los procesos involucrados. No est restringido al diseo de programas de computadora, sino que cubre sistemas enteros de distinto tipo. Las metodologas de anlisis y diseo ms modernas son casos de uso guiados a travs de requerimientos, diseo, implementacin, pruebas, y despliegue.

    El lenguaje unificado de modelado se ha vuelto el lenguaje de modelado estndar usado en anlisis y diseo orientado a objetos.

  • 22

    2.6 Programacin Orientada a Objetos

    Como ya se comento anteriormente la programacin maneja diversos puntos caractersticos; sin embargo, existe un desacuerdo sobre las caractersticas de un lenguaje orientado a objetos, pero de manera general impera un consenso general sobre estas, y son:

    La abstraccin: que denota las caractersticas esenciales de un objeto, donde se capturan sus comportamientos. 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.

    El encapsulamiento: que significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstraccin. Esto permite aumentar la cohesin de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultacin, principalmente porque se suelen emplear conjuntamente.

    El polimorfismo que son comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizar el comportamiento correspondiente al objeto que se est usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocacin de un comportamiento en una referencia producir el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecucin", esta ltima caracterstica se llama asignacin tarda o asignacin dinmica.

    Algunos lenguajes proporcionan medios ms estticos (en "tiempo de compilacin") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.

    La herencia: es decir, las clases no estn aisladas, sino que se relacionan entre s, formando una jerarqua de clasificacin. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en rboles o enrejados que reflejan un comportamiento comn. Cuando un objeto hereda de ms de una clase se dice que hay herencia mltiple.

  • 23

    2.6.1 Abstraccin

    La abstraccin consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompaan. El comn denominador en la evolucin de los lenguajes de programacin, desde los clsicos o imperativos hasta los orientados a objetos, ha sido el nivel de abstraccin del que cada uno de ellos hace uso.

    Los lenguajes de programacin son las herramientas mediante las cuales los diseadores de lenguajes pueden implementar los modelos abstractos. La abstraccin ofrecida por los lenguajes de programacin se puede dividir en dos categoras: abstraccin de datos (pertenecientes a los datos) y abstraccin de control (perteneciente a las estructuras de control).

    Los diferentes paradigmas de programacin han aumentado su nivel de abstraccin, comenzando desde los lenguajes mquina, lo ms prximo al ordenador y ms lejano a la comprensin humana; pasando por los lenguajes de comandos, los imperativos, la orientacin a objetos (OO), la programacin Orientada a Aspectos (POA); u otros paradigmas como la programacin declarativa, etc.

    La abstraccin encarada desde el punto de vista de la programacin orientada a objetos expresa las caractersticas esenciales de un objeto, las cuales distinguen al objeto de los dems. Adems de distinguir entre los objetos provee lmites conceptuales. Entonces se puede decir que la encapsulacin separa las caractersticas esenciales de las no esenciales dentro de un objeto. Si un objeto tiene ms caractersticas de las necesarias los mismos resultarn difciles de usar, modificar, construir y comprender.

    2.6.2 Encapsulamiento

    Se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro, de un objeto de manera que slo se puede cambiar mediante las operaciones definidas para ese objeto.

    Cada objeto est aislado del exterior, es un mdulo natural, y la aplicacin entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados a un objeto contra su modificacin por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.

    De esta forma el usuario de la clase puede obviar la implementacin de los mtodos y propiedades para concentrarse slo en cmo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

  • 24

    2.6.3 Principio de ocultacin

    Es la capacidad de ocultar los detalles internos del comportamiento de una Clase y exponer slo los detalles que sean necesarios para el resto del sistema.

    El ocultamiento permite 2 cosas: restringir y controlar el uso de la clase. Restringir porque habr cierto comportamiento privado de la clase que no podr ser accedido por otras clases. Y controlar porque daremos ciertos mecanismos para modificar el estado de nuestra clase y es en estos mecanismos dnde se validarn que algunas condiciones se cumplan. En Java el ocultamiento se logra usando las palabras reservadas: public, private y protected delante de las variables y mtodos.

    2.6.4 Polimorfismo

    Se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en funcin de los parmetros utilizados durante su invocacin. Un objeto polimrfico es una entidad que puede contener valores de diferentes tipos durante la ejecucin del programa.

    En la prctica esto quiere decir que un puntero a un tipo puede contener varios tipos diferentes, no solo el creado. De esta forma podemos tener un puntero a un objeto de la clase Trabajador, pero este puntero puede estar apuntando a un objeto subclase de la anterior como podra ser Mrketing, Ventas o Recepcionistas (todas ellas deberan ser subclase de Trabajador).

    El concepto de polimorfismo se puede aplicar tanto a funciones como a tipos de datos. As nacen los conceptos de funciones polimrficas y tipos polimrficos. Las primeras son aquellas funciones que pueden evaluarse o ser aplicadas a diferentes tipos de datos de forma indistinta; los tipos polimrficos, por su parte, son aquellos tipos de datos que contienen al menos un elemento cuyo tipo no est especificado.

    Clasificacin

    Se puede clasificar el polimorfismo en dos grandes clases:

    Polimorfismo dinmico (o polimorfismo paramtrico) es aqul en el que el cdigo no incluye ningn tipo de especificacin sobre el tipo de datos sobre el que se trabaja. As, puede ser utilizado a todo tipo de datos compatible.

  • 25

    Polimorfismo esttico (o polimorfismo ad hoc) es aqul en el que los tipos a los que se aplica el polimorfismo deben ser explicitados y declarados uno por uno antes de poder ser utilizados.

    El polimorfismo dinmico unido a la herencia es lo que en ocasiones se conoce como programacin genrica.

    Tambin se clasifica en herencia por redefinicin de mtodos abstractos y por mtodo sobrecargado. El segundo hace referencia al mismo mtodo con diferentes parmetros.

    Otra clasificacin agrupa los polimorfismo en dos tipos: Ad-Hoc que incluye a su vez sobrecarga de operadores y coercin, Universal (inclusin o controlado por la herencia, paramtrico o genericidad).

    2.6.5 Herencia

    La herencia es una propiedad que permite que los objetos sean creados a partir de otros ya existentes, obteniendo caractersticas (mtodos y atributos) similares a los ya existentes. Es la relacin entre una clase general y otra clase ms especfica. Es un mecanismo que nos permite crear clases derivadas a partir de clase base, que nos permite compartir automticamente mtodos y datos entre clases subclases y objetos.

    Por ejemplo: Si declaramos una clase prrafo derivada de una clase texto, todos los mtodos y variables asociadas con la clase texto, son automticamente heredados por la subclase prrafo.

    La herencia es uno de los mecanismos de la programacin orientada a objetos, por medio del cual una clase se deriva de otra, llamada entonces superclase, de manera que extiende su funcionalidad. Una de sus funciones ms importantes es la de proveer Polimorfismo. La idea es la de partir de las situaciones ms generales e ir derivando hacia las ms particulares, creando categoras, de la misma forma en que piensa el ser humano.

    Estereotipos de herencia

    Herencia simple: Un objeto puede extender las caractersticas de otro objeto y de ningn otro, es decir, que solo puede heredar o tomar atributos de un solo padre o de una sola clase.

    Herencia mltiple: Un objeto puede extender las caractersticas de uno o ms objetos, es decir, puede tener varios padres.

  • 26

    2.6.6 Recoleccin de basura

    La recoleccin de basura o Garbage Collection es la tcnica por la cual el ambiente de objetos se encarga de destruir automticamente, y por tanto des-asignar de la memoria, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignacin o liberacin de memoria, ya que el entorno la asignar al crear un nuevo objeto y la liberar cuando nadie lo est usando. En la mayora de los lenguajes hbridos que se extendieron para soportar el paradigma de programacin orientada a objetos como C++ u Object Pascal, esta caracterstica no existe y la memoria debe des-asignarse manualmente.

    2.7 Lenguajes orientados a objetos

    Debido a las caractersticas y beneficios que anteriormente hemos descrito sobre la programacin orientada a objetos es importante mencionar que conjunto con ellos tuvieron que desarrollarse lenguajes de programacin tales como JAVA que apareci en 1995 desarrollado por la empresa Sun Mycrosystems y hereda conceptos de C++.

    En 1985, E. Stroustrup extendi el lenguaje de programacin C a C++, es decir C con conceptos de clases y objetos, tambin por esas fechas se creo desde sus bases el lenguaje EIFFEL.

    En 1995 apareci el ms reciente lenguaje OO, Java desarrollado por SUN, que hereda conceptos de C++. El lenguaje de desarrollo ms extendido para aplicaciones Web, el PHP 5, trae todas las caractersticas necesarias para desarrollar software orientado a objetos. Adems de otros lenguajes que fueron evolucionando, como el Pascal a Delphi.

    Finalmente tambin otros lenguajes script como el ActionScript que si bien no es totalmente orientado a objetos pero s posee las caractersticas.

    2.8 Cdigo de barras

    El cdigo de barras es un cdigo basado en la representacin mediante un conjunto de lneas paralelas verticales de distinto grosor y espaciado que en su conjunto contienen una determinada informacin.

    De este modo, el cdigo de barras permite reconocer rpidamente un artculo en un punto de la cadena logstica y as poder realizar inventario o consultar sus caractersticas asociadas.

    Cuando un dispositivo ptico lee esta informacin puede enviarla hacia una computadora como si la informacin se hubiera tecleado.

  • 27

    Entre sus mltiples beneficios destaca que prcticamente no existe retraso entre la lectura de la informacin y el momento en que puede procesarse, adems de eliminar los errores de captura y contar con una excelente flexibilidad para crecimiento, modificacin o mejora.

    La identificacin de artculos por cdigo de barras permite llevar un control ms rpido y eficiente, ahorra horas-hombre al eliminar los tiempos de captura y permite programar aplicaciones que procesen la informacin automticamente y generar los reportes necesarios de dicha informacin.

    La correspondencia o mapeo entre la informacin y el cdigo que la representa se denomina simbologa. Estas simbologas pueden ser clasificadas en dos grupos atendiendo a dos criterios diferentes:

    Continua o discreta: los caracteres en las simbologas continuas comienzan con un espacio y en el siguiente comienzan con una barra (o viceversa). Sin embargo, en los caracteres en las simbologas discretas, stos comienzan y terminan con barras y el espacio entre caracteres es ignorado, ya que no es lo suficientemente ancho.

    Bidimensional o multidimensional: las barras en las simbologas bidimensionales pueden ser anchas o estrechas. Sin embargo, las barras en las simbologas multidimensionales son mltiplos de una anchura determinada (X). De esta forma, se emplean barras con anchura X, 2X, 3X, y 4X.

    2.9 Historia del cdigo de barras

    La primera patente de cdigo de barras fue registrada en octubre de 1952 (US Patent #2, 612,994), por los inventores Joseph Woodland, Jordin Johanson y Bernard Silver en Estados Unidos. La implementacin fue posible gracias al trabajo de los Ingenieros Raymond Alexander y Frank Stietz, el resultado de su trabajo fue un mtodo para identificar los vagones del ferrocarril utilizando un sistema de automtico.

    Nomenclatura bsica

    Mdulo: Es la unidad mnima o bsica de un cdigo. Las barras y espacios estn formados por un conjunto de mdulos.

    Barra: El elemento (oscuro) dentro del cdigo. Se hace corresponder con el valor binario 1.

    Espacio: El elemento (claro) dentro del cdigo. Se hace corresponder con el valor binario 0.

  • 28

    Carcter: Formado por barras y espacios. Normalmente se corresponde con un carcter alfanumrico.

    Imagen 9. Estructura del cdigo de barras

    La informacin se procesa y almacena con base en un sistema digital binario donde todo se resume a sucesiones de unos y ceros. La memoria y central de decisiones lgicas es una computadora de tipo estndar, disponible ya en muchas empresas comerciales y generalmente compatible con las distintas marcas y modelos en cada pas. Estos equipos permiten tambin interconectar entre s distintas sucursales o distribuidores centralizando toda la informacin.

    Ahora el distribuidor puede conocer mejor los parmetros dinmicos de sus circuitos comerciales, permitindole mejorar el rendimiento y la toma de decisiones, ya que conocer con exactitud y al instante toda la informacin proveniente de los puntos de venta.

    Los cdigos de barras se imprimen en los envases, embalajes o etiquetas de los productos. Entre sus requisitos bsicos se encuentran la visibilidad y fcil legibilidad por lo que es imprescindible un adecuado contraste de colores. En este sentido, el negro sobre fondo blanco es el ms habitual encontrando tambin azul sobre blanco o negro sobre marrn en las cajas de cartn ondulado. El cdigo de barras lo imprimen los fabricantes y en algunas ocasiones, los distribuidores.

    Para no entorpecer la imagen del producto y sus mensajes promocionales, se recomienda imprimir el cdigo de barras en lugares discretos tales como los laterales o la parte trasera del envase.

    Tipos de cdigos de barras

    Los cdigos de barras se dividen en dos grandes grupos: los cdigos de barras lineales y los cdigos de barras de dos dimensiones.

  • 29

    Cdigos de barras lineales

    EA

    Cdigo 128

    Imagen 10

    Cdigo 39

    Imagen 11

    Cdigo 93 Codabar

    Cdigos de barras bi-dimensionales

    PDF417. Es un cdigo multifilas, continuo, de longitud variable, que tiene alta capacidad de almacenamiento de datos. El cdigo consiste en un patrn de marcas (17,4), los subjuegos estn definidos en trminos de valores particulares de una funcin discriminadora, cada subjuego incluye 929 codewords (925 para datos, 1 para los descriptores de longitud y por lo menos 2 para la correccin de error) disponibles y tiene un mtodo de dos pasos para decodificar los datos escaneados. Es un archivo porttil de datos (Portable Data File), tiene una capacidad de hasta 1800 caracteres numricos, alfanumricos y especiales. El cdigo contiene toda la informacin, no se requiere consultar a un archivo.

  • 30

    Cuenta con mecanismos de deteccin y correccin de errores: 9 niveles de seguridad lo que permite la lectura y decodificacin exitosa aun cuando el dao del cdigo llegue hasta un 40%.

    Imagen 12. Cdigo PDF417

    Datamatrix, Est hecho por mdulos cuadrados organizados dentro de un modelo descubridor de permetro. Cada smbolo tiene regiones de datos, que contienen un juego de mdulos cuadrados nominales en un arreglo regular. En grandes smbolos ECC 200, las regiones de datos estn separadas por patrones de alineamiento. Puede codificar hasta 2335 caracteres en una superficie muy pequea.

    Cdigo QR (Quick Response), Es un cdigo bidimensional con una matriz de propsito general diseada para un escaneo rpido de informacin. QR es eficiente para codificar caracteres Kanji, es una simbologa muy popular en Japn. El cdigo QR es de forma cuadrada y puede ser fcilmente identificado por su patrn de cuadros oscuros y claros en tres de las esquinas del smbolo.

    Ventajas del cdigo de barras

    Entre las primeras justificaciones de la implantacin del cdigo de barras se encontraron la necesidad de agilizar la lectura de los artculos en las cajas y la de evitar errores de digitacin.

    Otras ventajas que se pueden destacar de este sistema son:

    o Agilidad en etiquetar precios pues no es necesario hacerlo sobre el artculo sino simplemente en el lineal.

    o Rpido control del stock de mercancas. o Estadsticas comerciales. El cdigo de barras permite conocer las referencias vendidas en

    cada momento pudiendo extraer conclusiones de mercadotecnia. o El consumidor obtiene una relacin de artculos en el ticket de compra lo que permite su

    comprobacin y eventual reclamacin.

  • 31

    Entre las pocas desventajas que se le atribuyen se encuentra la imposibilidad de recordar el precio del producto una vez apartado del lineal.

    Se llega a esta conclusin, ya que el cdigo de barra o barcode es simplemente un smbolo matemticamente ordenado de lneas verticales. Es un arreglo paralelo de barras y espacios de variada anchura. El orden estructural o separacin de estas lneas, que es relativo a un grupo especfico de parmetros, puede hacerse para representar el nmero de identificacin de un producto.

    El cdigo universal del producto, mejor conocido por UPC o barcode, se ha puesto para este uso desde 1973, habiendo sido adoptado por la industria detallista en 1972.

    Una tpica impresin de la versin-A del smbolo de UPC contiene 30 lneas negras verticales conocidas como barras. Un par de estas lneas equivalen a un solo dgito o nmero. En otras palabras, este sistema de cdigo requiere que dos lneas equivalgan a un nmero.

    El cdigo de barras actual es uno de diez dgitos: los primeros cinco dgitos representan al fabricante del producto, y los siguientes cinco dgitos son el cdigo de identificacin del producto. Este cdigo de 10 dgitos es entonces precedido con un dgito del sistema de nmeros y al final le sigue un dgito de cotejo transposicional (por sus siglas en ingls: TCD), para verificar si cualquiera de los once dgitos que preceden han sido transpuestos.

    A cada lado y al centro de esta serie de lneas, cuidadosamente separadas entre s, hay tres pares de lneas ms largas que se extienden un poco ms abajo de las dems lneas. Estos tres pares de lneas son especiales y se les conoce como barras guardas o barras guardianes. Estas barras guardas proveen puntos de referencia a los aparatos de lectura electrnica o escners, separando las lneas del lado izquierdo del cdigo de las lneas del lado derecho. Esto es necesario porque las lneas de la parte izquierda poseen un mensaje diferente al de las lneas de la parte derecha, y deben ser ledas de manera diferente por el escner.

    Las barras guardas de la posicin central del UPC son usadas para dividir el cdigo en dos partes e informarle al escner qu es lo que necesita conocer para as reajustar su programa, de modo que interprete adecuadamente la otra parte restante del cdigo.

    2.10 Que es EDI?

    El EDI o Electronic Data Interchange es intercambio electrnico de datos de computadora a computadora entre Socios Comerciales o cadenas, con la finalidad de ahorrar tiempo al eliminar los tradicionales mtodos de preparacin y envo de documentos a travs de mensajera.

  • 32

    A la vez, tiene la ventaja de ser un mtodo ms seguro y confiable para el manejo de informacin.

    Entre las transacciones disponibles actualmente se encuentran entre otras:

    Reporte de ventas e inventarios Ordenes de compra Catalogo de precios de venta Aviso anticipado de embarque Programas de entrega, etc.

    Ventajas de EDI

    1. Reduccin del tiempo en el ciclo recepcin de orden/embarque. 2. Mejor planeacin de la produccin. 3. Un mejor manejo de inventarios. 4. Menores situaciones de urgencia. 5. La mercanca estar a tiempo en el piso de ventas. 6. Agilizacin en la recepcin de la mercanca al ir sta previamente etiquetada. 7. Reduccin de llamadas telefnicas y el envo de cartas, formas, faxes, etc. 8. Optimizacin del tiempo para el Grupo de Ventas. 9. Mejor informacin sobre el estado de la orden.

    2.10.1 Captura, transferencia y gestin de datos en tiempo real

    Las tendencias de las grandes empresas en la actualidad es la de optimizar y simplificar todas las operaciones de su empresa; para lograr esto, tiene que adoptarse mtodos modernos de administracin, produccin, control y comunicacin, como ya lo hemos comentado EDI es la alternativa ideal.

    A travs del EDI, las partes involucradas cooperan sobre la base de un entendimiento claro y predefinido acerca de un negocio comn, que se lleva a cabo mediante la transmisin de datos electrnicos estructurados.

    En el EDI, las interacciones entre las partes tienen lugar por medio de aplicaciones informticas que actan a modo de interfaz con los datos locales y pueden intercambiar informacin comercial estructurada. El EDI establece cmo se estructuran, para su posterior transmisin, los datos de los documentos electrnicos y define el significado comercial de cada elemento de datos. Para transmitir la informacin necesita un servicio de transporte adicional.

  • 33

    Debe destacarse que el EDI respeta la autonoma de las partes involucradas, no impone restriccin alguna en el procesamiento interno de la informacin intercambiada o en los mecanismos de transmisin.

    Los campos de aplicacin del EDI son el intercambio de informacin industrial, comercial, financiera, mdica, administrativa, fabril o cualquier otro tipo similar de informacin estructurada. Esta informacin, con independencia de su tipo concreto, se estructura en unos formatos que pueden ser procesados por las aplicaciones informticas. Ejemplos de datos EDI son las facturas, rdenes de compra, declaraciones de aduanas, etc.

    La automatizacin de las interacciones por medio del EDI minimiza las transacciones sobre papel y la intervencin humana, reducindose las tareas relativas a la reintroduccin de datos, impresin, envo de documentos va correo o va fax. A travs del EDI, pueden incrementar la eficiencia de las operaciones diarias y mejorar las relaciones con agentes externos como empresas, instituciones econmicas y financieras, etc.

    Normas de sintaxis

    Bsicamente, las normas EDI proporcionan las reglas de sintaxis que definen los documentos electrnicos estructurados (llamados mensajes EDI) y un nmero cada vez mayor de mensajes EDI acordados internacionalmente.

    El mdulo ephos sobre EDI se basa en las normas y documentos desarrollados por las Naciones Unidas y recogidos en "ISO 9735 - Intercambio Electrnico de Datos para la Administracin, Comercio y Transporte (EDIFACT) - Reglas de aplicacin de la sintaxis" misma que es la nica sintaxis normalizada.

    Para este trabajo se propone trabajar con el sistema MC3000 de Symbol Technologies que es un equipo mvil ligero y resistente, ideal para aplicaciones de trabajo intensivo en las que se necesita una captura de datos de alta calidad en todo el mbito de la empresa. Su ergonoma superior y la flexibilidad de su configuracin agilizan la toma de decisiones.

    2.10.2 Flexibilidad, rendimiento y capacidad sin precedentes

    Con el sistema MC3000 se proporciona una amplia gama de opciones, entre las que se incluyen la posibilidad de lectura lser unidimensional (1D) y de imgenes 2D, pantalla en color o monocroma, comunicaciones por lotes (batch) o inalmbrica y tres configuraciones de teclado posibles.

  • 34

    Y, para una mayor comodidad y productividad, la configuracin del lector lser est equipada con un cabezal de lectura giratorio que permite tres posiciones: izquierda, derecha y frontal.

    2.10.3 Rendimiento y fiabilidad en condiciones variables

    Por su diseo resistente y un sellado conforme a la norma IP54, el sistema MC3000 garantiza un uso ininterrumpido y el mximo tiempo productivo al margen del polvo, la humedad y las temperaturas extremas. El sistema MC3000 est diseado tanto para aplicaciones de interior como de exterior; resiste cadas desde 1,2 m sobre hormign y permite trabajar con temperaturas muy dispares, lo que supone un ahorro en equipos y en mantenimiento.

    2.10.4 MC3000 y Microsoft Windows CE

    El sistema MC3000 de Symbol, que lleva la informtica mvil de prxima generacin, est basada en el sistema operativo Windows CE. Con procesamiento en tiempo real, mayor velocidad y rendimiento, avanzadas prestaciones multimedia y de exploracin Web, su organizacin puede ser realmente "mvil", con interoperabilidad entre PC, etc.

    Imagen 13. MC 3000

  • 35

    Caractersticas Beneficios

    Diseo ligero y ergonmico

    Reduce la fatiga del usuario y aumenta la productividad en aplicaciones que requieren un uso intensivo

    Cabezal de lectura ajustable con tres posiciones: izquierda, derecha y frontal

    El usuario puede ajustar las posiciones de lectura para conseguir la mxima comodidad y productividad

    Pantalla monocroma/color a 320 x 320 de resolucin (con retroiluminacin)

    Resolucin un 30% superior a la de 1/4 VGA. Facilita la visualizacin en numerosos entornos, lo que contribuye a una mayor precisin.

    Conectividad de LAN inalmbrica 802.11b/g

    Permite el intercambio de datos en tiempo real, para una mxima productividad

    Diseo resistente Sellado conforme a la norma IP54

    Diseado para soportar varias cadas desde 1,2 m sobre hormign y hasta 500 rodamientos.

    Procesador Intel XScale PXA270 y sistema operativo Microsoft Windows CE

    Proteccin contra agua y polvo para un rendimiento fiable en condiciones ambientales difciles

    Opciones de teclado de 28, 38 y 48 teclas

    Aprovechamiento del rendimiento de la CPU a travs de interfaces muy conocidas y compatibilidad con una amplia gama de aplicaciones de software

    Gestin de dispositivos con la plataforma de servicios de movilidad (Mobility Services Platform, MSP)

    Ofrece varios modos de entrada de datos para aumentar al mximo la eficiencia Permite la supervisin en tiempo real de parmetros crticos de la infraestructura inalmbrica y de los equipos mviles

    Tabla 1. Caractersticas de MC 3000

  • 36

    CAPITULO III: PROCESAMIENTO Y ANALISIS DE LA INFORMACION 3.1 Estructura de la empresa

    Grupo Autofin como toda empresa esta dividido para su mejor manejo y control; para ubicarnos dentro de l es necesario conocer de manera breve su estructura y composicin mediante el organigrama, y saber exactamente donde nos encontramos y en que rea trabajaremos.

    Grupo Autofin es una empresa que naci 1978 como autofinanciamiento para automviles, siendo los primeros en comercializar todas las marcas y tipos de autos nuevos a travs del sistema de autofinanciamiento; opera aproximadamente 210 puntos de venta propios en toda la repblica mexicana. En la imagen podemos observar el diagrama de la estructura de Grupo Autofin que esta conformado por seis divisiones: autofinanciamiento, automotriz, financiera, turismo, inmobiliaria y otros negocios.

    Autofinanciamiento.- Es una empresa que ofrece una de las mejores opciones para adquirir un auto, comprar, construir, remodelar o ampliar cualquier bien inmueble, obtener una motocicleta o adquirir equipos de audio y video por la viabilidad de sus sistemas de autofinanciamiento.

    Automotriz.- Esta divisin de Grupo Autofin comercializa a travs de sus agencias autorizadas las marcas: Volkswagen, Nissan, Chevrolet, Ford, Chrysler, Dodge, Jeep, Audi, Mitsubishi, Seat, Mazda, Pontiac, GMC y Renault.

    Financiera.- Esta divisin cuenta con Arrendamovil que es la compaa que ofrece servicios de arrendamiento puro de vehculos, venta directa, as como la administracin de flotillas empresariales.

    Turismo.- Esta conformada por Mundo Imperial que es un concepto de turismo de alto nivel respaldado por el espritu de atencin y servicio que distingue al Grupo Autofin. Y Potro Viajes una agencia de viajes con veinte aos de experiencia para ofrecer a los viajeros del pas una gran variedad de servicios tursticos.

    Bienes Races.- Conformada por Autofin Bienes Races dedicada a la compra-venta de inmuebles a travs de una asesoria profesional; y Grupo Inmobiliario empresa administradora de los mas de 180 inmuebles que conforma Grupo Autofin.

    Otros Negocios.- Divisin que integran mltiples negocios tales como:

  • 37

    Autoexplora primera empresa mexicana multimedios especializada en contenido automotriz difundido por radio, televisin, revista e Internet para que el pblico para encontrar el auto para su estilo de vida.

    Centro de Impresin y Diseo ofrece los servicios de produccin impresa con altos estndares de calidad grafica,