TÍTULO. Desarrollo de un software basada en programación orientada a objetos para el manejo de la facturación de ventas de la empresa Patito S.A. de C.V. de dedicada a la elaboración de patos de hule. INTRODUCCIÓN. La empresa Patito S.A. de C.V. presenta la necesidad de agilizar y optimizar su proceso de facturación mediante un software que le permita dar de baja los productos de sus inventarios, tener registro de a quién se vendió la mercancía así como generar los reportes correspondientes para la contabilidad y otras cuestiones fiscales. Gracias a la base de datos con la que cuenta el sistema, el usuario podrá consultar registros de clientes, su historial de compras, así como otros datos importantes como dirección, teléfonos, RFC, etc. En el equipo, nos hemos encargado de investigar otros sistemas de facturación ya existentes en el mercado, esto para saber que módulos son los que ofrece un software de este tipo así como para tener una idea global acerca de que servicios del mismo software pueden ser mejorados. PLANTEAMIENTO DEL PROBLEMA. El principal problema identificado en el caso particular de la empresa Patito S.A. de C.V. es el servicio otorgado a los clientes, ya que el proceso de facturación se realiza de manera mecánica, por lo tanto es lento, enredoso y tedioso para los clientes. Objetivo General. Otorgar a los clientes un servicio de facturación mucho más ágil, así como ofrecer a la empresa un mejor control de sus inventarios y manejo de su cartera de clientes. Objetivos Particulares. Alimentar el sistema con los datos más actuales de los clientes para tener una base de datos confiable, además también iniciar con el proceso de captura de la mercancía con la que cuenta la empresa para un correcto manejo de las entradas y salidas de los inventarios. El expediente para los clientes será integrado por los siguientes datos. Nombre de la empresa RFC Dirección Teléfonos Correo electrónico Ciudad, Estado y municipio Clave de facturación (esta clave servirá exclusivamente para realizar búsquedas más rápidas dentro del sistema) Entre otros datos que se obtengan en la revisión de requisitos. Se busca que el sistema sea flexible y fácil de usar para que cualquier usuario, empleado de la compañía, con un mínimo de conocimientos y capacitación sea capaz de manipularlo. Las búsquedas se harán por medio de la clave de facturación que será otorgada al cliente a la hora de realizar su registro, en el caso de que éste no recuerde la clave, el sistema ofrece búsquedas por nombre de compañía o RFC. Por lo delicado de la información se tiene planeado que el sistema maneje diferentes niveles de acceso para los usuarios, habrá usuarios con permisos para realizar cambios en datos de clientes, hacer cancelaciones de facturas entre otros movimientos importantes que no cualquiera de los involucrados podrán realizar, también es importante recalcar que todos estos cambios serán almacenados en un historial de movimientos conteniendo la fecha de realización de la operación, el tipo de modificación y la persona que la realizó. JUSTIFICACIÓN. El desarrollo de una aplicación estable y de fácil uso para el cliente, agilizar los procesos de atención al cliente es el principal objetivo a cubrir así como mantener una base de datos con información confiable. El paradigma orientado a objetos es la metodología que mejor se acopla para el planteamiento del desarrollo de este software, dado que nos permite realizar un análisis más apropiado, la correcta abstracción de los procedimientos nos permitirá un mejor diseño de clases y una programación mas clara logrando que el futuro mantenimiento y cambios en la aplicación sean mas sencillos de realizar. ANTECEDENTES. Se buscaron distintos sistemas que ya existiesen en el mercado para realizar un comparativo y como ya se había mencionado antes, explotar en nuestro sistema las desventajas que otros tienen, los datos encontrados en distintos sitios de Internet se presentan a continuación en la tabla 1.1 Nombre del Producto “Truck Driver” v1.0 Ventajas de dicfis.com Ofrece Desventajas control compras y de ventas Generación interfaz usuario para los clientes La es de muy simple. de La navegación entre reportes generales e módulos, así como individuales captura búsquedas y son lentas “Codeka” Ofrece una navegación rápida Las interfaces Genera a y medianas empresas son reportes enfocado pequeñas atractivas. Está Maneja euros. y códigos de barras. MARCO TEÓRICO REFERENCIAL Para desarrollar este proyecto, se eligió el paradigma orientado a objetos, ya que son entidades que combinan atributos y métodos, este conjunto de objetos colaboran para realizar tareas, así pues esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar. De entre las diversas metodologías que existen para el desarrollo de ciclo de vida del software se eligieron dos: construcción de prototipos e incremental. Algunas características que resultaron importantes para haberlas seleccionado son: La realización de un prototipo inicial del software, identificar a corto plazo con mayor claridad las necesidades del cliente y realización de entregas constantes de mejoras en funcionalidad del sistema. HIPÓTESIS. Es posible desarrollar un software que sea capaz de controlar compras, ventas, crear registros de movimientos, generar reportes y llevar un control apropiado de los clientes y sus compras. Para el desarrollo de este sistema se propone la utilización del paradigma orientado a objetos, que nos servirá de apoyo ya que está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento y así se permite hacer una abstracción del mundo real y los objetos de interés, para definirlos y usarlos en el sistema. METODOLOGÍAS Existe una gran cantidad de metodologías disponibles para ser empleadas en la elaboración del software. De acuerdo a la naturaleza del proyecto se seleccionaron los siguientes modelos los cuales se consideraron apropiados para la supervisión constante en el desarrollo. Modelo de prototipos Se comenzará con la recolección de requisitos donde junto con el terapeuta se encontrarán y se definirán los objetivos globales para el software. El prototipo será evaluado por el terapeuta y usando su información se refinarán los requisitos del software para el siguiente prototipo. Se hará uso de fragmentos de un programa ya existente para generar código y componentes. Modelo Incremental Es similar al modelo de prototipos. De manera inicial se entregará un software con características básicas y limitadas, pero lo suficiente para que el cliente empiece a hacer uso de ellas de manera inmediata. A medida que se avance, se irán entregando nuevas funcionalidades (o incrementos) que irán siendo utilizadas inmediatamente por el terapeuta, quien a su vez dará una retroalimentación respecto a la entrega. Repitiéndose en incrementos o versiones, hasta llegar a la entrega final. Procedimientos Para el desarrollo del sistema se requerirán elegir algunos estándares que aseguren la calidad del software a desarrollar. Se eligieron los siguientes: Estándar IEEE 830-1998 (Obtención de requerimientos) Servirá para la obtención de una buena especificación de requisitos, auxiliará a los terapeutas a describir claramente lo que desean obtener mediante este software, ayudará a los desarrolladores a entender qué quieren exactamente los terapeutas, reduciendo el esfuerzo en el desarrollo. Constituye una buena base para la estimación de costes y planificación e identificación de posibles mejoras en los procesos analizados. Estándar IEEE 1016-1998 (Diseño del sistema) Presenta diversas vistas de los elementos del software, también llamados entidades. Estas vistas permitirán observar de manera simplificada las diferentes estructuras de nuestro sistema. Estándar IEEE 829-1998 (Documentación de pruebas) Servirá para identificar y planear las pruebas que se harán a las entidades del software. Intervendrán el programador, tester y el usuario final. Ello permitirá tener un control sobre los resultados esperados que el sistema debe lanzar. Herramientas. Para el desarrollo de la aplicación se utilizará la aplicación netbeans proporcionado por Sun el cual está construido para su utilización con el lenguaje de programación JAVA. Esta herramienta cuenta ya con un controlador de versiones llamado subversión, el cual se conectará con una página web destinada para subir los archivos del proyecto en el sitio de code.google.com