Sistema de Gestion de Inventarios-Proyecto Archivos
Sistema de Gestion de Inventarios-Proyecto Archivos
Sistema de Gestion de Inventarios-Proyecto Archivos
Autor(es)
Trujillo - 2018
i
ANÁLISIS, DISEÑO E IMPLEMENTACIÓN DE UN SISTEMA DE
CONTROL DE INVENTARIOS UTILIZANDO LAS
OPERACIONES FUNDAMENTALES DE LOS ARCHIVOS PARA
LOS MINIMARKET
ii
TABLA DE CONTENIDO
INTRODUCCION .................................................................................................................................. iv
RESUMEN ............................................................................................................................................v
1. PLANTEAMIENTO DEL PROBLEMA ............................................................................................. vi
2. FORMULACION PROBLEMA....................................................................................................... vii
3. JUSTIFICACIÓN DEL PROBLEMA ................................................................................................ vii
4. OBJETIVOS ................................................................................................................................ viii
4.1. OBJETIVO GENERAL ............................................................................................................... viii
4.2. OBJETIVOS ESPECIFICOS ........................................................................................................ viii
5. ANTECEDENTES .......................................................................................................................... ix
5.1. PRIMER ANTECEDENTE ........................................................................................................... ix
5.2. SEGUNDO ANTECEDENTE........................................................................................................ ix
5.3. TERCER ANTECEDENTE ............................................................................................................ ix
5.4. CUARTO ANTECEDENTE .......................................................................................................... ix
6. FUNDAMENTO TEÓRICO .............................................................................................................x
6.1. MATERIAL Y METODOS ............................................................................................................x
¿En qué consiste la Metodología SCRUM? .................................................................................x
¿Cuándo se utiliza SCRUM? ........................................................................................................ xi
Proceso de la Metodología SCRUM............................................................................................ xi
Herramientas de SCRUM .......................................................................................................... xiii
Beneficios de Usar SCRUM ....................................................................................................... xiv
Principales Razones por las que se Eligió SCRUM para el Presente Proyecto ......................... xiv
6.2. MARCO CONCEPTUAL ............................................................................................................ xv
6.2.1. CONCEPTOS ..................................................................................................................... xv
7. RESULTADOS ............................................................................................................................. xx
8. DISCUCIONES........................................................................................................................... xxv
9. CONCLUSIONES ...................................................................................................................... xxvi
10. REFERENCIAS BIBLIOGRÁFICAS ......................................................................................... xxvii
Bibliografía .................................................................................................................................... xxvii
11. ANEXOS ............................................................................................................................ xxviii
iii
INTRODUCCION
iv
RESUMEN
Dado el problema Actual, de que cualquier negocio (en el caso de este proyecto nos
centraremos en los minimarket) compite por ser el mejor, ofrecer un servicio rápido, de
calidad, fiable y con el menor coste posible. Dentro de esta ecuación, la correcta gestión
del inventario juega un papel fundamental para lograrlo. Una rotura de stocks o cualquier
otra incidencia pueden significar la pérdida de una venta.
En el proceso, se realizó un repaso sobre la teoría estudiada en el trascurso del
presente ciclo, la cual fue de gran ayuda en la elaboración de nuestro proyecto que utilizo
muchas estructuras y funciones propias del lenguaje de programación utilizado, lo cual
fue visto en clase.
Cada avance fue realizado correctamente y verificado por el profesor, el cual también
nos ayudó en la elaboración del proyecto, dándonos las pautas necesarias y corrigiendo
algunos detalles.
Una vez construido el sistema fue verificado y comprobado por los dueños de 3
Minimarkets, los cuales quedaron satisfechos con la Aplicación.
Por tanto, concluimos que el Sistema de Control de Inventarios, baca brindara
información satisfactoriamente para los reportes utilizados de acuerdo a los datos de la
presente investigación busca obtener una considerable mejora en el control de sus
procesos de ventas analizando la problemática actual e identificando las causales y
estableciendo objetivos que permitan superar las debilidades del proceso.
Esperemos que esté presente proyecto sea de agrado y fácil manejo para los usuarios.
v
1. PLANTEAMIENTO DEL PROBLEMA
vi
2. FORMULACION DEL PROBLEMA
vii
4. OBJETIVOS
viii
5. ANTECEDENTES
5.1. PRIMER ANTECEDENTE
TITULO: Estudio e implementación de un sistema de gestión de almacén y logística en una
PYME Española
AÑO: septiembre de 2012
AUTOR: Víctor Manuel de Haro Martínez
RESUMEN: Este proyecto tiene un fin de carrera, el cual es llevar a cabo el análisis de la
gestión del área de Almacén y Logística de una Pyme a través de herramientas
informáticas basadas en el concepto de Sistemas de Control de Gestión.
ix
6. FUNDAMENTO TEÓRICO
x
completo, un incremento de producto final que sea susceptible de ser entregado con el
mínimo esfuerzo al cliente cuando lo solicite.
Entre las ventajas se encuentran la productividad, calidad y que se realiza un seguimiento
diario de los avances del proyecto, logrando que los integrantes estén unidos, comunicados
y que el cliente vaya viendo los avances.
Equipos pequeños: cuando en tus proyectos los equipos de trabajo no superan las
8 personas. Aunque existen casos de empresas que la han utilizado con éxito en
equipos más grandes, no es recomendable.
Poca necesidad de documentación: si el cliente te exige que todo el proyecto esté
muy bien documentado desde el principio (fases de consultoría y de tomas de
requerimientos largas) SCRUM no es tu metodología. Sin embargo, si sus
expectativas son las entregas rápidas y tener mucho control sobre el proyecto, el
SCRUM te resultará muy útil porque se enfoca precisamente en este aspecto.
Proyectos con riesgos de cambios durante el proceso: como la metodología SCRUM
ejecuta el proyecto en fases cortas de dos a cuatro semanas, permite mucha
flexibilidad a la hora de acometer cambios a mitad del proyecto, ya que tras cada
fase se replantean las tareas y los objetivos.
Confianza en la metodología: serás el encargado de velar que se cumpla, por lo
tanto, antes de trabajar en un proyecto con SCRUM debes aprender bien cuáles son
sus principios y maneras de operar y sentirte cómodo con ellos, para poder
traspasar esa confianza al resto de los actores de tu proyecto.
xi
Selección de requisitos (4 horas máximo). El cliente presenta al equipo la lista de requisitos
priorizada del producto o proyecto. El equipo pregunta al cliente las dudas que surgen y
selecciona los requisitos más prioritarios que se compromete a completar en la iteración,
de manera que puedan ser entregados si el cliente lo solicita. (Albaladejo, 2016)
Planificación de la iteración (4 horas máximo). El equipo elabora la lista de tareas de la
iteración necesarias para desarrollar los requisitos a que se ha comprometido. La
estimación de esfuerzo se hace de manera conjunta y los miembros del equipo se
autoasignan las tareas.
Ejecución de la iteración ( Sprint)
Cada día el equipo realiza una reunión de sincronización o SCRUM Daily Meeting (15
minutos máximo), normalmente delante de un tablero físico o pizarra (Scrum Taskboard).
Cada miembro del equipo inspecciona el trabajo que el resto está realizando (dependencias
entre tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden impedir este
objetivo) para poder hacer las adaptaciones necesarias que permitan cumplir con el
compromiso adquirido. En la reunión cada miembro del equipo responde a tres preguntas:
¿Qué he hecho desde la última reunión de sincronización?
¿Qué voy a hacer a partir de este momento?
¿Qué impedimentos tengo o voy a tener?
Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo pueda
cumplir con su compromiso y de que no se merme su productividad.
Elimina los obstáculos que el equipo no puede resolver por sí mismo.
Protege al equipo de interrupciones externas que puedan afectar su compromiso o su
productividad.
Durante la iteración, el cliente junto con el equipo refinan la lista de requisitos (para
prepararlos para las siguientes iteraciones) y, si es necesario, cambian o replanifican los
objetivos del proyecto para maximizar la utilidad de lo que se desarrolla y el retorno de
inversión.
Inspección y adaptación
El último día de la iteración se realiza la reunión de revisión de la iteración. Tiene dos partes:
Demostración o Sprint Review (4 horas máximo). El equipo presenta al cliente los
requisitos completados en la iteración, en forma de incremento de producto preparado
para ser entregado con el mínimo esfuerzo. En función de los resultados mostrados y de
los cambios que haya habido en el contexto del proyecto, el cliente realiza las adaptaciones
necesarias de manera objetiva, ya desde la primera iteración, replanificando el proyecto.
Retrospectiva o Sprint Retrospective (4 horas máximo). El equipo analiza cómo ha sido su
manera de trabajar y cuáles son los problemas que podrían impedirle progresar
xii
adecuadamente, mejorando de manera continua su productividad. El Facilitador se
encargará de ir eliminando los obstáculos identificados.
Herramientas de SCRUM
Lista de requisitos priorizada (Product Backlog)
Esta lista permite ver las tareas donde el equipo está teniendo problemas y no
avanza, con lo que le permite tomar decisiones al respecto.
xiii
Beneficios de Usar SCRUM
Cumplimento de expectativas: El cliente establece sus expectativas indicando el
valor que le aporta cada requisito / historia del proyecto, el equipo los estima y con
esta información el Product Owner establece su prioridad. De manera regular, en
las demos de Sprint el Product Owner comprueba que efectivamente los requisitos
se han cumplido y transmite se feedback al equipo.
Flexibilidad a cambios: Alta capacidad de reacción ante los cambios de
requerimientos generados por necesidades del cliente o evoluciones del mercado.
La metodología está diseñada para adaptarse a los cambios de requerimientos que
conllevan los proyectos complejos.
Reducción del Time to Market: El cliente puede empezar a utilizar las
funcionalidades más importantes del proyecto antes de que esté finalizado por
completo.
Mayor calidad del software: La metódica de trabajo y la necesidad de obtener una
versión funcional después de cada iteración, ayuda a la obtención de un software
de calidad superior.
Mayor productividad: Se consigue entre otras razones, gracias a la eliminación de
la burocracia y a la motivación del equipo que proporciona el hecho de que sean
autónomos para organizarse.
Maximiza el retorno de la inversión (ROI): Producción de software únicamente con
las prestaciones que aportan mayor valor de negocio gracias a la priorización por
retorno de inversión.
Predicciones de tiempos: Mediante esta metodología se conoce la velocidad media
del equipo por sprint (los llamados puntos historia), con lo que consecuentemente,
es posible estimar fácilmente para cuando se dispondrá de una determinada
funcionalidad que todavía está en el Backlog.
Reducción de riesgos: El hecho de llevar a cabo las funcionalidades de más valor en
primer lugar y de conocer la velocidad con que el equipo avanza en el proyecto,
permite despejar riesgos eficazmente de manera anticipada.
Principales Razones por las que se Eligió SCRUM para el Presente Proyecto
1. El equipo de desarrollo del proyecto es pequeño (6 integrantes).
2. Existe poca necesidad de documentación en el presente proyecto.
3. Existe un elevado riesgo de cambios en el desarrollo de la tienda virtual (cambios
de diseño, almacenamiento y funcionales).
4. Facilita un mayor grado de cumplimiento de expectativas dado el tiempo dado para
la entrega de la aplicación.
5. Se consigue un mayor grado de productividad gracias a la motivación sincronizada
del equipo.
6. Plantea una política de reducción de riesgos ya que se llevan a cabo las
funcionalidades de más valor en primer lugar.
7. Permite conocer la velocidad con que el equipo avanza en el proyecto.
xiv
6.2. MARCO CONCEPTUAL
6.2.1. CONCEPTOS
Igual que la consola se asocia a unos streams llamados cin y cout, se pueden
asociar funciones de lectura y escritura a un : para ficheros. El fichero o archivo es un
espacio de disco donde se almacena información de forma secuencial bajo un nombre.
Para trabajar con ficheros es necesario el archivo de cabecera <fstream.h> el cual incluye
a <iostream.h>.
Debe destacarse que en el disco duro aparecerá el nombre del fichero, pero el
programa utiliza el archivo a través del stream que le hayamos asociado. Esto se observa
claramente donde el fichero se llama myfle.txt, mientras que el stream se maneja bajo la
variable WriteFile. (Paszniuk, 2013)
Las operaciones que se pueden hacer sobre un fichero son: creación, apertura,
lectura, escritura y desplazamiento a lo largo de la información que contiene. El uso de
ficheros es muy importante para facilitar tanto la lectura de datos como la escritura de
resultados. Sin embargo, el acceso a los datos de grandes ficheros puede producir una
notable disminución en la velocidad de ejecución del programa, por ello se recomienda
usar los ficheros con inteligencia. Las operaciones básicas sobre un fichero son: (Veredas,
2015)
Abrir archivo:
Se abre un fichero de nombre mnfile.txt. El fichero se abre con un tipo ofstream
(output file stream); por lo tanto, la intención es escribir datos en él. Por el
contrario, más adelante se define un tipo ifstream (input file stream); por lo tanto,
sólo se desea leer datos de él; en este último caso, el archivo se abre en esa línea
bajo el nombre de myfile.txt que es el fichero que ya se había creado antes.
Cerrar un archivo:
Si un fichero no se usa, es importante cerrarlo porque son recursos que ocupan al
sistema y puede producir errores en tiempo de ejecución, si el programa pretende
volver a abrirlo. Para cerrar un fichero basta con ejecutar un close.
Escritura y Lectura de un Fichero:
Para leer y escribir basta con utilizar los operadores» y « que ya se presentaron en el
apartado de la consola.
Ahora veamos cómo se realiza lo mismo en el ANSI C ó C estándar.
xv
Desplazamiento de Archivos:
Secuencial:
cada vez que se realiza una operación de lectura o escritura de un elemento del
fichero, la ventana avanza una posición para colocarse sobre el elemento
siguiente de la estructura. De esta forma, todos los elementos del fichero se van
leyendo o escribiendo automáticamente uno detrás de otro, en secuencia. Un
caso particular de los ficheros secuenciales son los ficheros de texto, cuyos
elementos son caracteres imprimibles y para los que la mayoría de compiladores
ofrecen funciones de tratamiento especiales como, por ejemplo, la de detección
de final de línea, que vale verdadero cuando el último carácter leído es el último
de una línea de texto, es decir, cuando la ventana se encuentra sobre un carácter
de “retorno de carro” (<CR>).
De Acceso Aleatorio:
Son aquéllos en los que el programador realiza manualmente el desplazamiento
de la ventana sobre los elementos del fichero, es decir, controlado directamente
por el algoritmo. Este modo de acceso permite emplear los ficheros como los
vectores, leyendo o escribiendo datos en sus elementos en cualquier orden,
aleatoriamente.
Cuando declaramos un fichero, en realidad estamos declarando una variable
estructurada, en la que se almacenan todos los datos necesarios para acceder al
fichero (nombre de éste, situación de la ventana, operaciones permitidas, etc.).
Entre éstos se encuentra un campo del tipo de los elementos del fichero, que el
sistema de gestión de ficheros del ordenador asociará a la ventana de
comunicación entre nuestro programa y el fichero. Esta asociación se realiza
mediante una instrucción de apertura del fichero, tras la cual podremos operar
con los elementos de éste, a través de la ventana, hasta que realicemos la
operación complementaria de cierre del fichero, que disocia la variable y el
fichero.
Funcionamiento:
ABRIR:
Asocia una variable del algoritmo a un fichero del ordenador. Además de estos dos
parámetros, con esta operación debemos indicar el tipo de acciones que vamos a
realizar sobre los elementos del fichero:
Lectura: Abrir (< IdFichero >, l , ‘ < NombreFichero > ” ),
< IdFichero >, identificador lógico del fichero, es el nombre de la variable que lo
representa en el algoritmo, a través de la cual accedemos al buffer (ventana) del
fichero.
l, indica que el fichero se abre para leer su contenido. En algunos casos, si el
fichero no existe nos dará un error.
< NombreFichero >, es el nombre completo del fichero que queremos abrir,
incluyendo el nombre del dispositivo (disco) en el que se encuentra, y el camino
de acceso al subdirectorio en el que se encuentre, de no coincidir con los valores
por defecto en el momento de ejecutarse el programa.
xvi
Escritura: Abrir ( < IdFichero >, e, ” < NombreFichero >” ),
e, indica que el fichero se abre para escribir en él. Si existe un fichero
<NombreFichero>, destruye su contenido, para empezar a escribirlo desde el
primer elemento.
Añadido: Abrir ( < IdFichero >, a, “< NombreFichero>” >
a, indica que el fichero se abre para escribir en él, pero a partir del último dato que
contenga, con lo cual, si ya existía, no se borra su contenido.
En C la traducción es directa:
< IdFichero > = fopen (“< NombreFichero >”,<modo> ) donde <modo> indica el
modo de acceso:
rb = lectura.
r = lectura de texto.
wb = escritura.
w = escritura de texto. r+b = lectura/escritura.
r+ = lectura/escritura texto sin borrar el contenido previo.
w+ = lectura/escritura texto borrando el contenido previo.
a+b = añadido.
a = añadido de texto.
FILE *archi; //define el archivo
float var; //lo uso tanto para leer o escribir
int pos; //lo utilizo para ir a un registro determinado
CERRAR:
Disocia el <IdFichero> del fichero <NombreFichero>. Después de esta operación
ya no se podrán realizar operaciones de lectura o escritura sobre
<NombreFichero>. Esta operación tiene la forma:
Cerrar (<IdFichero> )
La traducción de esta acción a C es inmediata: close (<idFichero> )
Close(archi);
LEER:
Copia el contenido del registro del fichero sobre el que se encuentra la ventana
(buffer) a la variable que le pasemos como parámetro.
xvii
leer ( <IdFichero>, <variable> )
La traducción a C es un poco más compleja, pues como en la declaración de la variable de
tipo fichero no se ha indicado el tipo de sus elementos, hay que indicar su tamaño al
acceder a ellos (sizeof(<var>)). Además, el procedimiento permite leer más de un
elemento (< NúmeroElementos > ) de una vez:
fread (&< var >, sizeof ( <var> ), <NúmeroElementos>, <IdFichero>)
fread(&var,sizeof(float),1,archi);
ESCRIBIR:
copia el contenido de la variable que le pasemos como parámetro al registro
del fichero sobre el que se encuentra la ventana, a través del buffer.
xviii
LEERPOS (< IdFichero > , < pos > , < var > ):
En C tiene la forma:
fseek (< IdFichero > , sizeof (< var >) * (< pos > – 1 ) , SEEK_SET) ;
fseek(archi,sizeof(float)*(pos-1));
fread (&< var > , sizeof ( < var >) , < NúmeroElementos > , < IdFlchero > )
ESCRIBIRPOS (< IdFichero > , < pos > , < var > )
En C tiene la forma:
fseek ( < IdFichero > , sizeof ( < var > ) * (< pos > – 1) , SEEK_SET) ;
fwrite ( &< var > , sizeof (< var >) , < NúmeroEiementos > , < IdFichero > )
CÓDIGO:
#include "stdio.h"
main()
{
FILE *fp;
char stuff[25];
int index;
fp = fopen("TENLINES.TXT","w"); /* abre para escritura */
strcpy(stuff,"Una línea de ejemplo.");
xix
7. RESULTADOS
Figura N° 2 – Menú
xx
Figura N° 3 – Registro de Producto
xxi
Figura N° 5 – Reporte de Productos Registrados
xxii
Figura N° 7 – Reporte de Clientes
xxiii
Figura N° 9 – Reporte de Vendedor
xxiv
8. DISCUCIONES
Encontramos que los propietarios de tiendas no hacen uso adecuado del manejo
de sus inventarios puesto que lo único que utilizan algunos de ellos son un papel,
lápiz y una calculadora de mesa.
Mejor Clasificación y Organización para con los productos del minimarket a través
de un almacén organizador.
Acceso sencillo y rápido a los diferentes productos dentro del almacén y que
pertenecen a dicho minimarket.
Uso de menos recursos tal cual sean: Tiempo, velocidad y espacio de memoria.
xxv
9. CONCLUSIONES
xxvi
10. REFERENCIAS BIBLIOGRÁFICAS
Bibliografía
Albaladejo, X. (2016). Planificación de la iteración (Sprint Planning). Madrid: Proyectos Agiles.
Martínez, E. (2013). Cómo utilizar la metodología Scrum para acometer proyectos complejos.
España: iebschool. Obtenido de http://www.iebschool.com/blog/metodologia-scrum-
agile-scrum/
xxvii
11. ANEXOS
ENCUESTA AL USUARIO
1. ¿Qué opina sobre nuestra aplicación?
Es un sistema atractivo, pues optimizara la empresa en varios aspectos.
xxviii