Documentos de Académico
Documentos de Profesional
Documentos de Cultura
”
CARRERA: SISTEMAS INFORMÁTICOS
RESOLUCIÓN
RATIFICADA N°
221/2012
Cochabamba – Bolivia
2018
DEDICATORIA
RESUMEN
ÍNDICE
INTRODUCCIÓN..................................................................................................................1
CAPÍTULO I
PROBLEMA DE INVESTIGACIÓN....................................................................................3
1.1 Antecedentes............................................................................................................3
1.2 El Problema..............................................................................................................5
1.3 Objetivos..................................................................................................................6
1.4 Alcance.....................................................................................................................6
1.5 Limites......................................................................................................................7
1.6 Justificación..............................................................................................................7
CAPÍTULO II
MARCO TEÓRICO..............................................................................................................16
2.1 Modelado de Negocio......................................................................................16
2.2 tecnologías.......................................................................................................20
2.6.1 Actor.....................................................................................................................41
2.7.2 Html5...................................................................................................................47
2.7.3 CSS3.....................................................................................................................48
2.7.4 JavaScript.............................................................................................................49
2.7.5 Ajax......................................................................................................................50
2.7.6 JQuery..................................................................................................................52
2.7.8 Bootstrap..............................................................................................................54
2.7.9 Plantilla Admin LTE............................................................................................56
2.7.10 Xampp................................................................................................................58
2.9.1 NetBeans..............................................................................................................68
2.9.2 PHPStorm.............................................................................................................68
2.9.3 Eclipse..................................................................................................................68
2.9.4 Atom.....................................................................................................................69
CAPÍTULO III
MARCO PRÁCTICO...........................................................................................................73
3.1 Modelado de Negocio......................................................................................73
BIBLIOGRAFÍA..................................................................................................................85
ANEXOS..............................................................................................................................88
ÍNDICE DE FIGURAS
Figura # 1: Diagrama de Flujo.........................................................................................16
Figura # 2: Modelado de Negocio....................................................................................18
Figura # 3: Capas de Ingeniería de software....................................................................22
Figura # 4: Dimensiones del Proceso unificado...............................................................25
Figura # 5: Modelo de equipo de MSF.............................................................................27
Figura # 6: Programación Extrema..................................................................................30
Figura # 7: Ciclo de vida AUP.........................................................................................32
Figura # 8: Modelo Incremental o Iterativo.....................................................................34
Figura # 9: Explicación de patrón MVC..........................................................................38
Figura # 10: Actor administrador del sistema..................................................................42
Figura # 11: Tipos de Relaciones de casos de uso...........................................................42
Figura # 12: Diagrama de clase........................................................................................45
Figura # 13: Sublime Text 3.............................................................................................69
Figura # 14: Modelado de Negocio Actual......................................................................74
Figura # 15: Modelado de Negocio Alternativo...............................................................75
Figura # 16: Base de Datos Relacional del Sistema.........................................................76
Figura # 17: Listado de Categorías...................................................................................77
Figura # 18: Nueva Categoría..........................................................................................77
Figura # 19: Listado de Artículos.....................................................................................77
Figura # 20: Nuevo Artículo............................................................................................78
Figura # 21: Listado de compras......................................................................................79
Figura # 22: Nueva Compra.............................................................................................79
Figura # 23: Listado de Proveedores................................................................................80
Figura # 24: Nuevo Proveedor.........................................................................................81
Figura # 25: Nuevo Proveedor Registrado.......................................................................81
Figura # 26: Listado de usuarios......................................................................................82
Figura # 27: Nuevo Usuario.............................................................................................83
Figura # 28: Nuevo Usuario Registrado...........................................................................83
Figura # 29: Inicio de Sesión............................................................................................84
Figura # 30: Vista Frontal de la Ferretería Ardaya..........................................................90
Figura # 31: Productos de la Ferretería Ardaya...............................................................91
Figura # 32: Mi persona en la Ferretería..........................................................................92
INTRODUCCIÓN
El desarrollo de un sistema web evoluciona continuamente para adaptarse a las
tecnologías de la información y las comunicaciones. El auge de internet y de la web ha
influido notablemente en el desarrollo de sistema Web durante los últimos años.
Actualmente la interfaz de los sistemas de información se implementa utilizando
tecnologías web que ofrecen numerosas ventajas tales como el uso de una interfaz
uniforme y la mejora del mantenimiento del sistema que ayuda a tener una mejor
experiencia al usuario.
El Capítulo III especifica la ingeniería del proyecto y la proyección del desarrollo del
Software en base a la metodología incremental, donde se describe el desarrollo de cada
incremento para la realización del proyecto.
1
CAPÍTULO I
2
PROBLEMA DE INVESTIGACIÓN
1.1 ANTECEDENTES
1.1.1 Antecedentes Organizacionales.
La Ferretería “Ardaya” está ubicado en Quillacollo - Cochabamba, dirección Av. Martin
Cárdenas entre la calle 18 de mayo y calle 12 de enero, no tiene sucursales, es
catalogado con el nivel de microempresa.
Las ventas al contado de productos son para todo el público en general, la parte de
ventas está encargada por el segundo administrador.
Esta venta consta de las necesidades del cliente, el cual se aproxima a los ambientes de
la Ferretería. Para solicitar verbalmente los productos, el administrador procede a la
estimación de costo mental, cuando el cliente no solicita la nota de venta.
3
En caso de que el administrador no encuentra el producto que el cliente solicitó, el
cliente se retira de los ambientes de la Ferretería en busca de su producto. Los productos
que no existen en los ambientes de la Ferretería, no se determinan si fueron vendidos o
fueron robados.
Cuando el cliente solicita una nota de venta, se realiza el registro manualmente con el
nombre del cliente, fecha de venta, lista de productos que son: nombre producto,
cantidad del producto, precio y el total a pagar.
Para determinar las ganancias que tuvo la Ferretería durante el periodo de un mes, el
administrador realiza el cálculo respectivo de todas las ventas que se realizaron, esta
elaboración de cálculos puede tardar entre 2 a 3 horas en ser realizados.
CEYS software que tiene la facilidad de controlar las entradas, salidas de productos,
crédito. Es un sistema que puede adecuarse a diferentes Microempresas que quieran
controlar su inventario.
1.1.2.2 Softwares de Pago.
Existen empresas que se dedican a desarrollar programas que requiera el cliente, pero el
desarrollo de estos softwares es con un costo dependiendo de los módulos que requiera
el cliente. A continuación, se describirá las empresas de desarrollo de software que
existen en Cochabamba.
1.2 EL PROBLEMA
A continuación, se definirá la situación problemática que se tiene para luego formular un
problema principal.
1.3 OBJETIVOS
A continuación, se definirá el objetivo general del proyecto y posteriormente se
desglosará los objetivos específicos de manera detallada y comprensible.
Programar un módulo de venta de productos para gestionar las ventas del sistema.
Programar un módulo para la gestión de accesos de usuarios según el rol que ejerce.
1.4 ALCANCE
Los alcances del proyecto son:
1.5 LIMITES
En la implementación del proyecto se toman en cuenta los siguientes límites:
1.6 JUSTIFICACIÓN
El desarrollo del siguiente proyecto se justifica ampliamente tomando en consideración
los siguientes puntos de vista tales como:
Este sistema reducirá los errores más comunes tanto en el llenado como en la
elaboración de informes, de esta manera se disminuirá los gastos destinados a los
materiales de escritorio, así como el tiempo que se emplea para su realización.
Además, se contará con el hardware necesario para implantar este sistema, por lo cual no
significará un problema.
La implementación del sistema se realizará con software libre, lo que reducirá el costo
de desarrollo notablemente, al no comprar licencias.
1.6.2 Justificación social.
Con el desarrollo de este proyecto, los empleados de la ferretería podrán realizar sus
tareas con mayor comodidad y facilidad, posibilitando una mayor eficiencia de estos.
Consideremos las actividades o tareas que un agente humano cualquiera llega a realizar:
buscar información de un tema determinado por un usuario, revisar el estatus de ventas,
generar una lista de los productos más requeridos por un cliente, entre muchas otras.
Todas estas tareas y muchas otras más pueden automatizarse de manera que se realicen
incluso sin interacción con los usuarios en ciertos casos.
AJAX
LIBRERÍA J QUERY
SERVIDOR XAMPP
FRAMEWORK BOOTSTRAP
JAVASCRIPT
Sin embargo, se describen los precios del lector de código de barras y la impresora:
1.8.3.1 La Entrevista.
Es una técnica de recopilación de información mediante contacto directo con las
personas, a través de una conversación interpersonal, preparada bajo una dinámica de
preguntas y respuestas, donde se dialoga sobre un tópico relacionado con la
problemática de investigación. La interacción verbal es inmediata y personal, donde una
parte es el entrevistador, quien formula las preguntas, y la otra persona es el
entrevistado. La entrevista permite estar al tanto de la postura del o los informantes ante
una situación determinada (Bernal C, 2006, pág. 30).
INSTRUMENTOS
Existen diversos tipos de entrevista, entre las que se pueden citar: las de trabajo, de
selección de personal, las entrevistas periodísticas, entre otras. La entrevista, pensada
como una técnica de investigación ofrece información relevante para abordar un
problema y lograr los objetivos de la investigación. La clasificación más común refiere
las entrevistas estructuradas, semiestructuradas y las no estructuradas.
1.8.3.2 El Cuestionario.
El cuestionario es un instrumento básico de la observación en la encuesta y en la
entrevista. En el cuestionario se formula una serie de preguntas que permiten medir una
o más variables. Posibilita observar los hechos a través de la valoración que hace de los
mismos el encuestado o entrevistado, limitándose la investigación a las valoraciones
subjetivas de éste.
Los beneficios que nos proporciona esta metodología sería la gestión de las expectativas
del cliente de manera regular y tomar decisiones en cada iteración, realizando cambios a
corto plazo para cumplir con las peticiones del cliente.
CAPÍTULO II
MARCO TEÓRICO
2.1 MODELADO DE NEGOCIO
El modelo de negocios es el estudio de la organización.
Introducción al UML
La metodología se define como la disciplina que indicará qué métodos y técnicas hay
que usar en cada fase del ciclo de vida del desarrollo del proyecto (Booch & Jacobson,
2004).
Por el hecho de que el modelo de procesos de negocio normalmente es más amplio que
la parte de sistema computacional considerada también permite al analista identificar
claramente qué está dentro del alcance del sistema propuesto y qué se implementará de
otras formas (por ejemplo: un proceso manual).
organización.
Crea algún tipo de valor para el cliente. Los clientes pueden ser internos o externos.
2.1.1.3 Elección del Modelado de Negocio.
Para la realización del modelado de negocio se ha optado por los diagramas de flujo, en
su plenitud, es un lenguaje gráfico muy completo con el cual se puede construir
numerosos tipos de diagramas las cuales serán empleados en el proyecto y su correcta
utilización.
2.2 TECNOLOGÍAS
2.2.1 Código de barras
Los códigos de barras y el sistema estándar GS1 de identificación y transmisión de datos
mediante códigos de barras, supone en hoy en día una herramienta básica para poder
operar logística y comercialmente con los interlocutores comerciales, ya sean
proveedores o clientes.
Codificación
NOTA: Dos unidades comerciales distintas no pueden identificarse con el mismo código
GTIN y una misma unidad no puede identificarse con más de un GTIN.
Simbología
Simbología GTIN-13
Simbología GTIN-14
Simbología GS1-128
2.2.1.1 JsBarcode.
JsBarcode es un generador de código de barras escrito en JavaScript. Admite múltiples
formatos de código de barras y funciona en navegadores y con Node.js. No tiene
dependencias cuando se usa para la web, pero funciona con jQuery si estas familiarizado
con este.
Este Plugin será aplicado y utilizado dentro del desarrollo del sistema para facilitar el
proceso de lectura de datos al momento de realizar las ventas de los artículos.
Sin embargo, Pressman, afirma que la ingeniería de software es una tecnología con
varias capas. Como se aprecia en la figura #3, cualquier enfoque de Ingeniería (incluso
la de software) debe basarse en un compromiso organizacional con la calidad.
Sin embargo, la ingeniería del software va mucho más allá. Se trata del proceso cuya
finalidad es desarrollar productos o soluciones para un cliente o mercado en particular,
teniendo en cuenta factores como los costes, la planificación, la calidad y las dificultades
asociadas. A todo esto, es a lo que denominamos metodologías de desarrollo de
software. Es decir, se trata del proceso que se suele seguir a la hora de diseñar una
solución o un programa específico. Tiene que ver, por tanto, con la comunicación, la
manipulación de modelos y el intercambio de información y datos entre las partes
involucradas. O para ser más precisos, las metodologías de desarrollo de software son
enfoques de carácter estructurado y estratégico que permiten el desarrollo de programas
con base a modelos de sistemas, reglas, sugerencias de diseño y guías. Las
metodologías de desarrollo se pueden dividir en dos grupos de acuerdo con sus
características y los objetivos que persiguen: ágiles y robustas.
Fases
Concepción
Elaboración
Construcción
Transición
Ventajas
Desventajas
Estamos poniendo a nuestro cliente en una situación que puede ser muy incómoda
para él.
Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle
para poder acordar un alcance del proyecto con él.
Visión y Alcances.
Planificación.
Desarrollo.
Estabilización.
Implantación.
Visión y Alcances: La fase de visión y alcances trata uno de los requisitos más
fundamentales para el éxito del proyecto, la unificación del equipo detrás de una
visión común. El equipo debe tener una visión clara de lo que quisiera lograr para el
cliente y ser capaz de indicarlo en términos que motivarán a todo el equipo y al cliente.
Se definen los líderes y responsables del proyecto, adicionalmente se identifican las
metas y objetivos a alcanzar; estas últimas se deben respetar durante la ejecución del
proyecto en su totalidad, y se realiza la evaluación inicial de riesgos del proyecto.
Estabilización: En esta fase se conducen pruebas sobre la solución, las pruebas de esta
etapa enfatizan el uso y operación bajo condiciones realistas. El equipo se enfoca
en priorizar y resolver errores y preparar la solución para el lanzamiento.
El modelo de equipos de MSF (MSF team model) fue desarrollado para compensar
algunas de las desventajas impuestas por las estructuras jerárquicas de los equipos en
los proyectos tradicionales. Los equipos organizados bajo este modelo son pequeños y
multidisciplinarios, en los cuales los miembros comparten responsabilidades y
balancean las destrezas del equipo para mantenerse enfocados en el proyecto
que están desarrollando. Comparten una visión común del proyecto y se enfocan en
implementar la solución, con altos estándares de calidad y deseos de aprender. El
modelo de equipos de MSF tiene seis roles que corresponden a las metas
principales de un proyecto y son responsables por las mismas. Cada rol puede
estar compuestos por una o más personas, la estructura circular del modelo, con óvalos
del mismo tamaño para todos los roles, muestra que no es un modelo jerárquico y que
cada todos los roles son igualmente importantes en su aporte al proyecto. Aunque los
roles pueden tener diferentes niveles de actividad durante las diversas etapas del
proyecto, ninguno puede ser omitido. La comunicación se pone en el centro del
círculo para mostrar que está integrada en la estructura y fluye en todas direcciones. El
modelo apoya la comunicación efectiva y es esencial para el funcionamiento de este.
2.4.2 Metodologías Ágiles
Luego de varias opiniones tanto a favor como en contra de las metodologías
tradicionales se genera un nuevo enfoque denominado, métodos ágiles, que
nace como respuesta a los problemas detallados anteriormente y se basa en dos
aspectos puntuales, el retrasar las decisiones y la planificación adaptativa; permitiendo
potencia aún más el desarrollo de software a gran escala.
Como resultado de esta nueva teoría se crea un Manifiesto Ágil cuyas principales ideas
son:
Los individuos y las interacciones entre ellos son más importantes que las
herramientas y los procesos empleados.
Corrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas
frecuentes.
Refactorización del código, es decir, reescribir ciertas partes del código para
aumentar su 6 Extreme Porgramming (XP). Disponible en
www.XProgramming.comlegibilidad y mantenibilidad, pero sin modificar su
comportamiento. Las pruebas han de garantizar que en la refactorización no se
ha introducido ningún fallo.
El Proceso Unificado Ágil (AUP, del inglés Agile Unified Process) es una versión
simplificada del Proceso Unificado de Rational (Rational Unified Process, RUP)
desarrollada por Scott Ambler, que describe una aproximación al desarrollo de
aplicaciones que combina conceptos propios del proceso unificado tradicional con
técnicas ágiles, con el objetivo de mejorar la productividad.
En el otro lado está el Proceso Unificado de Rational, cuya gestión resulta realmente
sencilla pero que los desarrolladores suelen temer debido al gran número de artefactos
que requiere. Esto también resulta desafortunado porque el Proceso Unificado tiene
mucho que ofrecer, y puede ser adaptado y recortado hasta conseguir algo más o menos
práctico (que es exactamente lo que IBM Rational recomienda). El Proceso Unificado
Ágil, pues, se haya entre ambos, adoptando algunas de las técnicas ágiles de XP y otros
procesos ágiles, pero reteniendo parte de la formalidad del Proceso Unificado de
Rational.
El Proceso Unificado Ágil consta de cuatro fases que el proyecto atraviesa de forma
secuencial. Dichas fases son, al igual que en el Proceso Unificado de Rational:
Este enfoque, que se usó inicialmente para proyectos de software, aunque más tarde se
aplicó a otros sectores, establece entregas parciales mediante un calendario de plazos. En
cada una de ellas, el producto debe mostrar una evolución con respecto a la fecha
anterior; nunca puede ser igual.
Una de las claves para que esto se haga efectivo es la evaluación de las etapas. Los
responsables del proyecto deben analizar si los resultados parciales son los esperados y
si, sobre todo, apuntan al objetivo principal. De no ser así, deberán intervenir en él e
Una forma de reducir el riesgo es desarrollar el sistema de forma incremental. Esto es:
dividir el proyecto en fases y desarrollar una parte de los requerimientos en cada fase
(Tapias, 2014).
El modelo incremental fue propuesto por Harlan Mills en el año 1980. Surgió el enfoque
incremental de desarrollo como una forma de reducir la repetición del trabajo en el
proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los
requisitos hasta adquirir experiencia con el sistema. Este modelo se conoce también bajo
las siguientes denominaciones:
Definición de las tareas y las iteraciones: teniendo en cuenta lo que se busca, el siguiente
paso es hacer una lista de tareas y agruparlas en las iteraciones que tendrá el proyecto.
Esta agrupación no puede ser aleatoria. Cada una debe perseguir objetivos específicos
que la definan como tal.
Diseño de los incrementos: establecidas las iteraciones, es preciso definir cuál será la
evolución del producto en cada una de ellas. Cada iteración debe superar a la que le ha
precedido. Esto es lo que se denomina incremento.
Desarrollo del incremento: posteriormente se realizan las tareas previstas y se
desarrollan los incrementos establecidos en la etapa anterior.
Integración de incrementos: una vez son validados, los incrementos dan forma a lo que
se denomina línea incremental o evolución del proyecto en su conjunto. Cada
incremento ha contribuido al resultado final.
Ventajas
Entre las ventajas que puede proporcionar un modelo de este tipo encontramos las
siguientes:
Este concepto, al cual está dedicado el presente libro, ha cobrado una importancia cada
vez mayor en la última década (Velasco Elizondo, 2015).
Para poder funcionar con éxito, la arquitectura de software debe ser sintonizada con los
restantes factores del proyecto de software. Una arquitectura de software bien
configurada facilita a los usuarios y desarrolladores la comprensión del sistema. Factores
importantes que influyen la aptitud de la arquitectura de software son la planificación de
proyectos, el análisis de riesgo, la organización, el proceso de desarrollo, los ciclos de
trabajo, el hardware, la garantía de calidad y los requerimientos.
Entender el patrón arquitectónico MVC en su forma clásica para poder realizar una
aplicación del mismo resulta, entre otras cosas, de entender los patrones que lo
componen El MVC o Modelo-Vista-Controlador es un patrón de arquitectura de
software que, utilizando 3 componentes (Vistas, Modelos y Controladores) separa la
lógica de la aplicación de la lógica de la vista en una aplicación. Es una arquitectura
Una analogía.
La explicación
Los puntos anteriores so sólo para proveer background, y que ojalá puedas utilizar las
referencias ahora que vamos a explicar qué es.
Antes que nada, me gustaría mencionar por qué se utiliza el MVC, la razón es que nos
permite separar los componentes de nuestra aplicación dependiendo de la
responsabilidad que tienen, esto significa que cuando hacemos un cambio en alguna
parte de nuestro código, esto no afecte otra parte del mismo. Por ejemplo, si
modificamos nuestra Base de Datos, sólo deberíamos modificar el modelo que es quién
se encarga de los datos y el resto de la aplicación debería permanecer intacta. Esto
respeta el principio de la responsabilidad única. Es decir, una parte de tu código no debe
de saber qué es lo que hace toda la aplicación, sólo debe de tener una responsabilidad.
En web, el MVC funcionaría así. Cuando el usuario manda una petición al navegador,
digamos quiere ver el curso de AngularJS, el controlador responde a la solicitud, porque
él es el que controla la lógica de la app, una vez que el controlador nota que el usuario
solicitó el curso de Angular, le pide al modelo la información del curso.
El modelo, que se encarga de los datos de la app, consulta la base de datos y digamos,
obtiene todos los vídeos del curso de AngularJS, la información del curso y el título, el
modelo responde al controlador con los datos que pidió (nota como en la imagen las
flechas van en ambos sentidos, porque el controlador pide datos, y el modelo responde
con los datos solicitados).
Una vez el controlador tiene los datos del curso de AngularJS, se los manda a la vista, la
vista aplica los estilos, organiza la información y construye la página que vez en el
navegador.
Modelo
Controlador
Se encarga de... controlar, recibe las órdenes del usuario y se encarga de solicitar los
datos al modelo y de comunicárselos a la vista.
Vistas
Son la representación visual de los datos, todo lo que tenga que ver con la interfaz
gráfica va aquí. Ni el modelo ni el controlador se preocupan de cómo se verán los datos,
esa responsabilidad es únicamente de la vista.
2.6.1 Actor
Booch, menciona que un Actor es una idealización de un rol desempañado por una
persona externa, un proceso o cosa que interactúe con el sistema, subsistemas o clase.
Un actor caracteriza la interacción que una clase de usuarios externos puede tener con el
sistema.
Cada actor participa en uno o más casos de uso. Interactúa con el caso de uso (con el
sistema o clase que posee el caso de uso) mediante el intercambio de mensajes.
Y sin embargo para Podeswa, describe al Actor como usuarios y sistemas externos que
van a interactuar con el sistema informático propuesto.
Tanto Booch, consideran al actor como aquel elemento que va a interactuar con el
sistema.
Sin embargo, el autor Booch dice que lo diagramas de caso de uso modelan la
funcionalidad del Software tal como lo perciben los agentes externos, denominados
actores, que interactúan con el Software desde un punto de visa particular. Un caso de
uso es una unidad de funcionalidad expresada como una transacción entre los actores y
el Software. El comportamiento de los casos de uso se expresa mediante las vistas
dinámicas, especialmente la vista de interacción.
A continuación, en la Figura #12 se muestra los tipos de relaciones que tienen los casos
El propósito es de:
Indicar como deben colaborar los objetos del sistema para llevar a cabo una
operación.
También menciona que, de manera holgada, una clase de objeto se considera como una
definición general de un tipo de objeto del Sistema. Una asociación es un vínculo entre
clases, que indica que hay una relación entre dichas clases. En consecuencia, cada clase
puede tener algún conocimiento de esta clase asociada.
Las clases se pueden describir con distintos niveles de detalle y de concreción. En las
primeras etapas del diseño, el modelo captura los aspectos más lógicos del problema. En
las últimas etapas, el modelo también captura las decisiones de diseño y los detalles de
implementación.
La palabra “hipertexto” significa que PHP realiza cambios antes de que el contenido
(como la página HTML) es creado. Esto permite a desarrolladores crear potentes
aplicaciones que publiquen blogs, controlen hardware remotamente o ejecuten potentes
sitios Web.
2..8.1.2 Java
El lenguaje de programación en Java es un lenguaje orientada a objeto, de una
plataforma independiente, y tiene muchas similitudes con el lenguaje C y C++.
Es una tecnología similar a los Servlets que ofrece una conveniente forma de agregar
contenido dinámico a un archivo HTML por utilizar código escrito en Java dentro del
archivo utilizando tags especiales que son procesados por el servidor Web antes de
enviarlos al cliente. La posibilidad de usar APIs de Java hacen de JSP una poderosa
herramienta de desarrollo ya que se obtiene la ventaja de la programación orientada al
objeto como creación de clases especiales llamadas componente o Java Beans,
independencia de la plataforma propia de la programación en Java, etc.
2.8.1.3 C#
Microsoft C# es un lenguaje de programación diseñado para crear un amplio número de
aplicaciones empresariales, que se ejecutan en .NET Framework. Supone una evolución
de Microsoft C y Microsoft C++, es sencillo, moderno, proporciona seguridad de tipos y
está orientado a objetos. El código creado mediante C# se compila como código
administrado, lo cual significa que se beneficia de los servicios de Common Language
Runtime. Estos servicios incluyen interoperabilidad entre lenguajes, recolección de
elementos no utilizados, mejora de la seguridad y mayor compatibilidad entre versiones.
2.7.2 Html5
Definiéndolo de forma sencilla, "HTML es el lenguaje que se utiliza para crear las
páginas web a las que se accede mediante internet". Más concretamente, HTML es el
lenguaje con el que se "escriben" la mayoría de las páginas web.
Los diseñadores utilizan el lenguaje HTML para crear páginas web, los programas que
se emplean generan páginas escritas en HTML y los navegadores que utilizamos (por
ejemplo, Google Chrome, Opera o Mozilla Firefox) muestran las páginas web después
de leer e interpretar su contenido HTML.
Aunque HTML es un lenguaje que utilizan los ordenadores y los programas de diseño de
páginas web, es muy fácil de entender y escribir por parte de las personas. En realidad,
HTML son las siglas de HyperText Markup Language y más adelante se verá el
significado de cada una de estas palabras. El lenguaje HTML es un estándar reconocido
en todo el mundo y cuyas normas define un organismo sin ánimo de lucro llamado
World Wide Web Consortium, más conocido como W3C. Como se trata de un estándar
reconocido por todas las empresas relacionadas con el mundo de internet, una misma
página escrita en HTML se visualizará de forma muy similar en cualquier navegador
bajo distintos sistemas operativos.
El propio W3C define el lenguaje HTML como "un lenguaje reconocido universalmente
y que permite publicar información de forma global". Desde su creación, el lenguaje
HTML ha pasado de ser un lenguaje utilizado exclusivamente para crear documentos
electrónicos a emplearse en diversas aplicaciones electrónicas especializadas como
buscadores, tiendas "en línea" y banca electrónica.
2.7.3 CSS3
El nombre hojas de estilo en cascada viene del inglés Cascading Style Sheets, del que
toma sus siglas. CSS es un lenguaje usado para definir la presentación de un documento
estructurado escrito en HTML o XML (y por extensión en XHTML). El W3C (World
Wide Web Consortium) es el encargado de formular la especificación de las hojas de
estilo que servirán de estándar para los agentes de usuario o navegadores.
El CSS sirve para definir la estética de un sitio web en un documento externo y eso
mismo permite que modificando ese documento (la hoja CSS) podamos cambiar la
estética entera de un sitio web, el mismo sitio web puede variar totalmente de estética
cambiando solo la CSS, sin tocar para nada los documentos HTML o jsp o asp que lo
componen.
CSS es un lenguaje utilizado para dar estética a un documento HTML (colores, tamaños
de las fuentes, tamaños de elemento, con css podemos establecer diferentes reglas que
indicarán como debe presentarse un documento. Podemos indicar propiedades como el
color, el tamaño de la letra, el tipo de letra, si es negrita, si es itálica, también se puede
dar forma a otras cosas que no sean letras, como colores de fondo de una página,
tamaños de un elemento (por ejemplo, el alto y el ancho de una tabla.
2.7.4 JavaScript
JavaScript un lenguaje de programación que comenzó a ser utilizado para dar
dinamismo a las páginas web, era un lenguaje sencillo. Cuando hablábamos de
JavaScript, hace un par de años pensábamos en usarlo solo para dar efectos a nuestra
web, validar formularios, manipular los elementos HTML y estilos CSS como nosotros
quisiéramos, hoy en día tenemos JavaScript para muchas cosas.
Con JS, podemos desarrollar sitios web, video juegos, aplicaciones de escritorio,
aplicaciones móviles, domótica. Podemos usar JS para abarcar muchas necesidades de
algún desarrollo de software que tengamos en mente.
Como ya se mencionó, este lenguaje de programación, función del lado del cliente.
JavaScript sirve especialmente para las mejoras en las interfaces de usuario y, para la
implementación en páginas web dinámicas.
Por otro lado, en el uso de aplicaciones externas como por ejemplo documentos PDF, JS,
es un lenguaje muy importante. Además de lado del servidor, otras tecnologías como
AJAX, permite que se trabaje muy bien.
Lo mejor de todo es que JavaScript en cada uno de estos ambientes sigue siendo el
mismo JavaScript, la sintaxis es la igual implementada en cada ambiente de desarrollo.
Así mismo, JavaScript nos proporciona muchos paradigmas de programación es decir
muchas maneras de escribir código.
2.7.5 Ajax
En la actualidad, la navegación por la red ha cambiado bastante y ahora cuando se
realiza una solicitud, el cliente no debe esperar a que ésta termine para seguir operando,
es decir, se reproduce de manera asíncrona. Es a partir de este concepto de donde nace
las siglas de AJAX, o JavaScript y XML Asíncrono. Con esta tecnología podemos
cargar en segundo plano varias solicitudes, como comentaba, sin que afecten a la
visualización ni comportamiento de la página.
Antes de indagar un poco más en todo esto, debemos entender cómo funciona la
comunicación entre un cliente y un servidor web. En nuestras máquinas, el navegador
actúa como un cliente en una tienda, haciendo peticiones a quien nos atiende para cubrir
una necesidad que tengamos. El dependiente en cuestión sería el servidor web.
Imaginemos ahora esta situación de un modo más tecnológico y cercano al uso diario.
Tomemos por ejemplo Facebook o Instagram. ¿Lo visualizáis? Bien, como ya sabemos,
en estas redes sociales hay galerías de fotos, las cuales se cargan únicamente en un
porcentaje de su total; en esta situación, sin AJAX, cada vez que queremos ver más
fotos, el servidor debería mandarnos toda la página de nuevo para cargarla en nuestro
navegador. Es evidente que esto es una práctica incorrecta e innecesaria: estamos
solicitando más recursos de los que necesitamos ya que la gran mayoría los tenemos ya
con nosotros. Con AJAX lo que logramos es que se mande únicamente lo que estamos
pidiendo, de forma totalmente independiente al resto de la página, es por eso que
podemos ver cómo se van cargando las fotos a medida que hacemos scroll, por ejemplo.
Esto se observa también con los posts de un blog, y en realidad en cualquier ámbito web
actual.
Sabiendo esto ya podemos comprender qué significa asíncrono, y es que el cliente puede
hacer peticiones al servidor sin necesidad de recargar. Se acabó eso de machacar el F5
para saber si hay cambios nuevos como sucedía antaño. Esto puede ser disparado por un
evento, tal como presionar un botón, pasar el ratón por encima de una miniatura de una
galería, ponernos encima de un texto...lo que nosotros deseemos. Pero ¿necesitamos un
lenguaje para programar esto, ¿verdad? Aquí entra JavaScript, el lenguaje web de moda,
usado para bases de datos, actividad en servidores o realizar peticiones asíncronas. JS
realiza la petición a través de una tecnología llamada XHR, o XMLHttpRequest...vale,
no se ha entendido, ¿verdad? Digamos que es un idioma usado entre JavaScript y el
servidor para indicarle que necesitamos algo. Es por ello por lo que, por lo general,
aparte de nuestro código html, lo tenemos todo bien identificado para poder pasar estos
parámetros a un script que posteriormente realiza los cambios necesarios. Sin este enlace
por identificadores no sería posible hacer todos estos cambios en caliente.
Como podemos observar aquí hay varios agentes involucrados: XML, JavaScript, XHR,
la navegación web por HTML... ¿por qué? AJAX es un conjunto de tecnologías
trabajando de forma cooperativa para hacer las páginas dinámicas, y cualquier web
moderna necesita de ello para operar. Tal es la situación que frameworks de desarrollo
de aplicaciones lo usan, como Apache Córdova, IONIC o incluso Appcelerator. Pensad
que sin las respuestas asíncronas muchas de nuestras operaciones diarias con la
tecnología sería un dolor de cabeza. Imaginad tener que recargar cada vez que hacéis
scroll hasta el final de la página de Facebook...un momento, pero eso ya ocurre en
algunas webs, ¿no? ¿Alguna vez en una tienda online se os ha dividido el stock por
páginas? Eso es debido a que AJAX no está presente para cargar los productos, de lo
contrario podríamos lograr cargar todos los productos a medida que hacemos scroll,
como ocurre con las galerías en Tumblr.
De modo que, si deseamos ser desarrolladores web, AJAX es algo que debemos tener en
nuestro arsenal para poder tener más cartas en nuestra manga a la hora de presentarnos
en alguna empresa.
2.7.6 JQuery
jQuery nos da la posibilidad de añadir funcionalidades complejas y dinamismo a nuestra
web de una manera muy sencilla.
¿Qué es jQuery?
jQuery es una librería ampliamente utilizada, con una gran aceptación y con una gran
comunidad de usuarios activos. Esto permite que exista un gran soporte y mucha
información sobre la misma. Además, esa amplia comunidad hace que haya muchos
desarrolladores dedicados a la creación de plugins para esta librearía, los que nos
permitirá añadir funcionalidades como galerías dinámicas, calendarios, sistemas de
votación y muchas otras de forma sencilla.
Otra razón importante es que es gratuita y de código abierto, con lo que puede ser
modificada y adaptada a nuestras necesidades, siempre teniendo en cuenta y respetando
las políticas de las licencias.
2.8.7 Xampp
XAMPP incluye además servidores de bases de datos como MySQL y SQLite con sus
respectivos gestores phpMyAdmin y phpSQLiteAdmin. Incorpora también el intérprete
de PHP, el intérprete de Perl, servidores de FTP como ProFTPD o FileZilla FTP Serve,
etc. entre muchas cosas más.
Si alguna vez has intentado instalar Apache, sabes que no es una tarea fácil, sin
embargo, con XAMPP todo es diferente. Una de las ventajas de usar XAMPP es que su
instalación es de lo más sencilla, basta descargarlo, extraerlo y comenzar a usarlo.
Si eres un desarrollador que recién está comenzando, tampoco debes preocuparte sobre
las configuraciones ya que XAMPP te provee de una configuración totalmente funcional
desde el momento que lo instalas (básicamente lo extraes). Sin embargo, es bueno acotar
que la seguridad de datos no es su punto fuerte, por lo cual no es suficientemente seguro
para ambientes grandes o de producción.
Paquetes básicos:
2.7.8 Bootstrap
Es un framework desarrollado y liberado por Twitter que tiene como objetivo facilitar el
diseño web. Permite crear de forma sencilla webs de diseño adaptable, es decir, que se
ajusten a cualquier dispositivo y tamaño de pantalla y siempre se vean igual de bien. Es
Open Source o código abierto, por lo que lo podemos usar de forma gratuita y sin
restricciones.
¿Por qué nos gusta?
Puedes tener una web bien organizada de forma visual rápidamente: la curva de
aprendizaje hace que su manejo sea asequible y rápido si ya sabes maquetar.
Sea lo que sea que creemos, el diseño será adaptable, no importa el dispositivo, la
escala o resolución.
El grid system: maquetar por columnas nunca fue tan fácil. Además, son muy
configurables.
El haber sido creado por Twitter nos da ciertas garantías: está muy pensado y hay
mucho trabajo ya hecho. Por lo tanto, hay una comunidad muy activa creando,
arreglando cosas, ofreciendo plugins y mucho más...
Nos permite usar Less, para enriquecer aún más los estilos de la web.
2.7.9 Plantilla Admin LTE
Se que la mayoría de los desarrolladores web en algún momento necesita algún tipo de
template para un dashboard o un sistema de gestión que esté basado en bootstrap y sobre
todo que sea gratuito y sin restricciones de ningún tipo. Bueno en esta ocasión te
presento un template que me ha gustado mucho y no sólo por el diseño que está bastante
agradable, sino porque contiene muchas características importantes y que siempre
buscamos.
1. Licenciamiento
2. Archivos fuente.
Algo sumamente interesante es que el template nos ofrece la descarga con los archivos
fuente, esto significa que tendremos disponible los archivos LESS para que podamos
modificar el diseño de forma estructurada y ordenada. La carpeta que se descarga
contiene el siguiente árbol de archivos.
3. Skins.
El template viene con la posibilidad de utilizar 12 tipos de skins, lo cual nos permitirá
customizar de forma rápida con estilos predeterminados.
skin-blue
skin-blue-light
skin-yellow
skin-yellow-light
skin-green
skin-green-light
skin-purple
skin-purple-light
skin-red
skin-red-light
skin-black
skin-black-light
4. Basado en bootsrap.
¿Quién no conoce bootstrap? creo que está demás explicar la ventaja de este punto, sin
embargo, hago la mención ya que vale la pena que sepas que está basado en el sistema
de grid que maneja Bootstrap y todos sus componentes, estilos y js.
5. Plugins precargados.
Este template contiene una serie de plugins js ya "precargados" que puedes utilizar desde
que descargas, eso nos reduce el tiempo de búsqueda de plugins para acciones genéricas
como validaciones de formularios, calendario, etc.
6. Documentación.
AdminLTE contiene una documentación bastante buena en donde te explica de forma
detallada cómo empezar y cómo hacer las configuraciones necesarias para que puedas
implementar en tu sitio.
7. Ejemplos
AdminLTE nos ofrece muchos HTML de ejemplo que se descargan junto con la plantilla
así que podrás ver como se utilizan todos los plugins que trae y además de que puedes
tomarlos como ejemplo para aprender a maquetar con Bootstrap.
Para mí AdminLTE es uno de los mejores templetes open source que he probado ya que
te da mucha flexibilidad en cuanto a personalización y sobre todo por que integra la
tecnología LESS que permite tener todo el estilo en orden y sobre todo permite agilizar
cualquier cambio que se requiera.
2.7.10 Xampp
Xampp es un paquete de instalación de software libre que consiste en un sistema de
gestión de base de datos MARIADB y de servidor Apache, así como de intérpretes de
lenguajes PHP y Perl. De ahí que el nombre sea un acrónimo de X (refiriéndose a todos
los lenguajes), Apache, MariaDB, PHP y Perl.
Si alguna vez has intentado instalar Apache, sabes que no es una tarea fácil, sin
embargo, con XAMPP todo es diferente. Una de las ventajas de usar XAMPP es que su
instalación es de lo más sencilla, basta descargarlo, extraerlo y comenzar a usarlo.
Xampp es una herramienta de desarrollo que te permite probar tu trabajo (páginas web o
programación, por ejemplo) en tu propio ordenador sin necesidad de tener que acceder a
internet.
En resumen, es una herramienta idónea para convertir nuestro pc en un servidor Apache
y MariaDB, convirtiendo nuestro equipo en un componente perfecto para el desarrollo
de páginas web, o para la ejecución de cualquier software que requiera cualquiera de los
componentes mencionados en las líneas anteriores.
El programa está liberado bajo la licencia GNU y actúa como un servidor Web libre,
fácil de usar y capaz de interpretar páginas dinámicas.
Paquetes básicos:
Paquetes gráficos:
FreeTDS: una librería de base de datos que da a los programas de Linux y UNIX la
habilidad de comunicarse con Microsoft SQL y Sybase.
Paquetes XML:
Paquetes PHP:
gettext: un conjunto de herramientas que asiste a los paquetes GNU para producir
mensajes multilinguales.
Construir la base de datos: guardar los datos en algún medio controlado por el
mismo SGBD.
DBMS MARIADB
¿Qué es MariaDB?
Mecanismos de almacenamiento
Sequence (10.0.3)
Mejoras de velocidad
Facilidad de uso
Mejora la facilidad de uso e introduce actualizaciones del progreso en acciones como
ALTER TABLE y LOAD DATA INFILE. Comandos como FLUSH y SHOW disponen
de opciones para identificar la causa en la carga del SGBD. Y columnas dinámicas, que
proporcionan al usuario columnas virtuales en las tablas.
DBMS PostgreSQL
PostgreSQL es una de las opciones más interesantes en bases de datos relacionales open-
source. Michael Stonebraker inició el proyecto bajo el nombre Post Ingres a mediados
de los 80’s con la idea de solucionar problemas existentes en las bases de datos en esa
época.
Es gratuito y libre, además de que hoy nos ofrece una gran cantidad de opciones
avanzadas. De hecho, es considerado el motor de base de datos más avanzado en la
actualidad.
En Postgres no se requiere usar bloqueos de lectura al realizar una transacción lo que nos
brinda una mayor escalabilidad. También PostgreSQL tiene Hot-Standby. Este permite
que los clientes hagan búsquedas (sólo de lectura) en los servidores mientras están en
modo de recuperación o espera. Así podemos hacer tareas de mantenimiento o
recuperación sin bloquear completamente el sistema.
PostgreSQL aporta mucha flexibilidad a nuestros proyectos. Por ejemplo, nos permite
definir funciones personalizadas por medio de varios lenguajes. Algunos son:
PL/pgSQL
PL/Tcl
PL/Perl
PL/Python
PL/PHP
PL/Ruby
PL/Java
Otra ventaja de PostgreSQL es que está disponible para muchas plataformas y ofrece el
código fuente desde el sitio oficial. Algunos de los builds oficiales son:
Mac OS X
Windows
Solaris
Red Hat
Debian
Ubuntu
Una herramienta muy útil de pgAdmin es el Query Tool. Este te permite ejecutar
comandos SQL y además nos da la opción de analizar nuestra base de datos de forma
gráfica.
Es considerada como una de las bases de datos más seguras del mundo, por no decir la
mejor, y su sistema de almacenamiento permite un rendimiento en las consultas muy
superior al habitual. Todos los procesos de análisis, consulta, limpieza, formateo de
datos y acceso se realizan a una velocidad que le sorprenderá.
Con la edición Standard podrá cubrir todas las necesidades que surjan al trabajar en un
servidor con menos prestaciones. Tendrá acceso a las funciones Business Intelligence y
a una administración de datos básica, que requieran de pocos recursos TI.
También dispondrá de una edición gratuita, llamada Express. Con ella podrá desarrollar
e impulsar aplicaciones de web y de escritorio, así como otras sencillas de servidor.
Certificación SAP, lo que garantiza éxito en el trabajo con cargas muy pesadas.
Máxima flexibilidad para que pueda trabajar tanto en la nube como en un entorno
local. El paso de uno a otro se da de una manera realmente sencilla, para que
pueda aprovechar todas las ventajas de ambos ámbitos de trabajo.
Aun así, el mundo de los editores de texto es una enorme jungla. Algunos cuentan con
interfaces gráficas elaboradas, que resultan más intuitivas y que permiten trabajar en
grandes proyectos (aquí entrarían los grandes entornos de desarrollo integrado o IDEs).
Por otra parte, hay otros que son minimalistas y básicos en su concepción, que
recompensarán a aquellos que tengan la paciencia de vérselas con una curva de
aprendizaje elevada.
2.9.2 PHPStorm
Si no es considerado el número 1 de la lista es principalmente porque muchas de sus
utilidades son de pago. La versión gratuita, aun así, es una herramienta con enorme
potencial. Desarrollado por JetBrains, PHPStorm funciona muy bien con los principales
frameworks (Symfony, Zend Framework, Yii, CakePHP, Laravel) y con los principales
sistemas CMS como Drupal, Magento y Wordpress. Pero no solo destaca en la parte
back. Este IDE ofrece edición en directo con tecnologías como CSS, HTML5,
JavaScript o TypeScript. La popularidad de PHPStorm se puede medir por el hecho de
que grandes marcas como Expedia, Yahoo, Cisco, Salesforce y wikipedia también
utilizan PHPStorm como su editor de código.
2.9.3 Eclipse
Eclipse PDT (PHP Development Tools) es otra de las opciones open source con mayor
recorrido y fiabilidad. Posee una enorme comunidad de desarrolladores que trabajan en
todo tipo de plugins necesarios para poner a Eclipse a la altura de otros IDE de primera
clase como PHPStorms, NetBeans y Zend studio. La configuración inicial no es sencilla,
por lo que habrá que dedicarle tiempo para configurarlo al gusto de cada usuario. Como
aspecto negativo, hay que destacar que algunos desarrolladores se quejan de que es
lento. Sin embargo, esto ha dejado de ser un problema, ya que los ordenadores con los
que se trabaja en estos días son suficientemente potentes como para no notar diferencia
de rendimiento con otros IDE’s. Algunas de las características clave incluyen el
resaltado de sintaxis, ayuda de código, formateador de código, refactorización, plantillas
2.9.4 Atom
La gran sorpresa de los últimos tiempos y el editor favorito para cada vez más usuarios.
Su diseño sencillo y su gran potencial hace que el IDE de Github vaya ganando adeptos
a pasos agigantados. Cuenta con una gran comunidad detrás de él y cientos de
complementos y paquetes disponibles para ampliar su funcionalidad. Atom es hackable,
por lo que lo puedes convertir en tu editor perfecto gracias a la capacidad de
personalización. Para convertir Atom en un verdadero editor de PHP, puedes buscar los
hyperclick-php, php-cs-fixer, php-integrador-base, linter-php, atom-autocomplete-php,
entre otros.
Sublime Text permite tener varios documentos abiertos mediante pestañas, e incluso
emplear varios paneles para aquellos que utilicen más de un monitor. Dispone de modo
de pantalla completa, para aprovechar al máximo el espacio visual disponible de la
pantalla.
Para una mejor gestión de de la ferretería, el sistema agilizara y automatizara todas las
tareas que se presentan dentro del negocio.
Figura # 15: Modelado de Negocio Alternativo
3.2 DESARROLLO DEL PROYECTO
3.2.1 Método Iterativo e Incremental
3.2.1.1 Primer Incremento
Para el desarrollo del primer incremento o iteración se determinaron las siguientes
tareas:
77
artículos, actualizarlas y eliminarlas.
Gestión del módulo de compras para poder listar las compras, crear nuevas
compras, visualizarlas y anularlas.
78
Figura # 21: Listado de compras
Gestión del módulo de proveedores para poder listar los proveedores, crear
nuevos proveedores, actualizarlas y eliminarlas.
79
Figura # 23: Listado de Proveedores
Figura # 24: Nuevo Proveedor
Gestión del módulo de usuarios para poder gestionar los accesos y permisos de
usuario, realizando el listado de usuarios, crear nuevos usuarios, actualizarlas y
eliminarlas.
83
Gestión del acceso de usuarios al sistema, verificando los permisos y los tipos
de roles que existen, con los cuales se realizará el Inicio de Sesión.
84
BIBLIOGRAFÍA
Abrue, J. L. (Diciembre 2014). El Método de la Investigación.
BIBLIOGRAFÍA WEB
Albert Miró. (2017). JavaScript asíncrono y XML (AJAX). Deusto Formación.
Recuperado de https://www.deustoformacion.com/blog/programacion-diseno-
web/que-es-para-que-sirve-ajax
https://cacharrerosdelaweb.com/2018/02/que-es-javascript-y-para-que-
sirve.html
Carlos Costa. (2013). Librería JQuery. Agencia la nave. Recuperado de
https://blog.agencialanave.com/jquery-que-es-y-para-que-sirve/
https://www.genbeta.com/herramientas/sublime-text-un-sofisticado-editor-de-
codigo-multiplataforma
https://mantenimientosdeunapc.blogspot.com/2011/11/que-es-xampp-y-
para- que-sirve.html
https://puntoabierto.net/blog/que-es-bootstrap-y-cuales-son-sus-ventajas
edu.com/es/blog-project-management/metodologia-agile/que-son-las-
metodologias-de-desarrollo-de-software
https://www.researchgate.net/publication/299506242_METODOLOGIAS_TRA
DICIONALES_VS_METODOLOGIAS_AGILES
https://www.genbeta.com/a-fondo/ides-y-editores-que-diferencias-hay-entre-
ellos-a-la-hora-de-escribir-codigo
Sergio Ríos. (2011). Modelado De Negocio (BPMN). SlideShare. Recuperado de
https://www.slideshare.net/SergioRios/unidad-3-modelo-de-negocio
https://www.nerion.es/soporte/tutoriales/que-es-mariadb-y-mejoras-sobre-mysql/
it/6/codigos-de-barras
view-controller-explicado
ANEXOS
ENTREVISTA
OBJETIVO:
2) ¿Cuál es la forma o manera en que se maneja la información del control de las ventas
en la ferretería?
8) ¿Cuánto tiempo invierte en las verificaciones periódicas de modo manual del stock de
los productos y las condiciones en que se encuentra?
Normalmente me lleva alrededor de 30, 40 minutos hasta una hora muchas veces, ya que
Sí, porque así podría ofrecer una mejor atención a mis clientes ofreciéndoles los
productos que realmente tengo en la ferretería y mejorar mis ventas sin problemas.
10) ¿Cree usted que automatizando el sistema le permitirá obtener información
actualizada sobre la gestión de compras, ventas y control de stock de los productos
mejorando la atención ágil y eficiente a sus clientes?
Si, para mí y mi negocio es muy importante tener toda la información bajo control tanto
de las ventas, las compras y la cantidad de productos que tengo en el momento.