Está en la página 1de 24

FACULTAD DE INGENIERIA

CARRERA DE INGENIERIA DE SISTEMAS


COMPUTACIONALES

SISTEMAS DE INFORMACIÓN PARA LA


ADMINISTRACIÓN EFICIENTE DE LOS
REGISTROS DE VENTAS E INVENTARIO DE LA
BODEGA “MULTISERVICIO LUCYANA”

Universidad: Universidad Privada del Norte


Autores:
 ARROYO CARRASCO, ÁLVARO IVÁN
 ALCANTARA BALDEÓN, POLY GABRIEL
 CHIUYARE GUILLEN, CARLO ANDRE
 SANTIAGO CARAZA, LUIS MIGUEL

Docente:
TARMEÑO JUSCAMAITA, ESTHER

Año: 2023 Lima - Perú


FACULTAD DE INGENIERÍA

INTRODUCCIÓN

Hoy en día la tecnología está presente en nuestra vida cotidiana y en todos los
campos laborales. Las empresas o grandes negocios actualmente utilizan sistemas
informáticos, para que les proporcione información sobre las ventas, ganancias, etc. Y
con ello tomar decisiones y hacer estrategias para la mejora del negocio. Agregando
también que estos sistemas son prácticos, sencillos y muy útiles para hacer la gestión y
la administración de los productos y las ventas para cualquier tipo de negocio. En
consecuencia, un sistema de información es muy importante para hacer crecer un
negocio, ya sea grande como una empresa internacional o pequeña como una bodega.
Por lo contrario, si un negocio no apuesta a este tipo de estructura informática estaría
en desventaja frente a la competencia.

EL propósito de este proyecto es desarrollar e implementar un sistema


informático para gestionar de manera eficiente los registros de ventas como también los
registros de inventario en la bodega “Multiservicio Lucyana”, y con esto conseguir la
reducción del tiempo de administración, resolver los problemas de la cantidad productos
que hay en stock, cuáles son los productos más demandados y la cantidad del monto a
invertir en los productos de acuerdo con las ganancias.

Para la realización de este proyecto se realizó la búsqueda de otros similares


como la tesis titulada “Implementación de una aplicación web progresiva basado en
inteligencia de negocios para la administración de ventas minoristas de una bodega, en
el distrito de Mi Perú, 2022” (Córdova, 2022), este proyecto tiene como objetivo
implementar un programa informático en la tecnología web progresiva, el cual
comprende automatizar la compra de productos a proveedores, el control y manejo del
stock, el ciclo del proceso de ventas al cliente y el módulo de reportes el cual se apoya
en la inteligencia de negocios para el soporte de decisión. La metodología que se
empleó el autor fue de tipo aplicada y tecnológica, con perspectiva cuantitativa, con
método de diseño preexperimental de nivel explicativo. Para el recojo de datos empleó
la observación usando el instrumento guía de observación.

La importancia de la implementación del proyecto presente consiste en hacer


que la administración de los registros de ventas y del inventario de la bodega
“Multiservicios Lucyana” sea eficiente para que de esta manera el cliente tome
decisiones y haga estrategias para el crecimiento de su negocio.

[Fecha] 1
FACULTAD DE INGENIERÍA

Por consiguiente, se ha decidido desarrollar un sistema de información a nivel


de escritorio cuyo lenguaje programación es java, además se utilizará el paradigma de
programación orientada a objetos (POO) para que la construcción del programa sea
sencilla, duradera en el tiempo y sea fácil de modificar, y de esta manera optimizar los
procesos de administración y por consecuencia generar el crecimiento económico de la
bodega. Además, este programa será sencillo de utilizar para el cliente o cualquier
personal de la bodega.

PRESENTACIÓN

De acuerdo con el presente informe se define la organización del contenido: En


el primer apartado se muestra el título del proyecto, la descripción de la bodega y su
organigrama el cual permite una compresión más sencilla de las áreas internas de la
bodega, también se contempla la misión y visión del negocio. El segundo apartado se
define la problemática que hay la bodega “Multiservicio Lucyana” y sus problemas
específicos, además se muestran los objetivos a conseguir al finalizar el proyecto. La
tercera sección se muestra el marco teórico con las definiciones de los conceptos de
nuestro trabajo para una mejor compresión general de nuestro presente proyecto.

CAPITULO I
1. GENERALIDADES
1.1. Título de la Práctica de campo

Sistema de información para la administración eficiente de los registros de venta


e inventario de la bodega “Multiservicio Lucyana”.

1.2. Descripción del negocio

La bodega “Multiservicio Lucyana” es un negocio que ofrece abarrotes,


unos cuantos productos perecibles como frutas, vegetales, arroz, huevos,
productos de limpieza y además ofrecen materiales de uso escolar que
normalmente se ve en una librería. La bodega solamente atiende una
trabajadora que a su vez es la dueña de la tienda. La tienda es muy frecuentada
porque está ubicado a lado de un colegio de primaria y secundaria, y además
está ubicado en una residencial donde la mayoría de los vecinos van a comprar
a dicha tienda. En consecuencia, es una bodega que se considera muy
demandada por el público de la urbanización residencial de Carabayllo.

[Fecha] 2
FACULTAD DE INGENIERÍA

1.3. Misión y Visión del negocio

1.3.1. Misión
Alcanzar un crecimiento económicamente mayor a la que ya se
tiene para posteriormente abrir nuevas bodegas a nivel residencial.
Usando como herramientas tecnologías de información para el registro
de las ventas e inventario.

1.3.2. Visión
Proporcionar al cliente un servicio de registro ventas e inventario
más eficiente para la administración de la tienda, permitiéndole de esta
manera desarrollar estrategias de negocio.

1.4. Organigrama

CAPITULO II
2. PROBLEMÁTICA
2.1. Planteamiento del problema y descripción
2.1.1. Problema General
Hoy en día, aún hay demasiados negocios pequeños que siguen
implementando una administración inadecuada, poco práctica, tedioso de
realizar y además requiere de mucho tiempo. Por estas razones, se
requiere implementar un sistema de información que ayude tener
facilidad y rapidez al cliente a la hora de querer gestionar y administrar
su negocio.

La bodega “Multiservicio Lucyana” se dedica a la venta de


abarrotes, productos de limpieza y materiales de uso escolar. El negocio
actualmente tiene un déficit administrativo en hacer los registros de venta
e inventario, ya que el sistema de información que usa el cliente es muy
arcaico, obsoleto e ineficiente. En consecuencia, esto genera un excesivo
tiempo empleado en la administración del negocio, no tener la certeza
qué productos hay en stock, no saber qué productos son los más
demandado y cuanto será el monto a invertir con respecto a las
ganancias, y por consiguiente ocasionando un impacto económico
negativo a la bodega.

De acuerdo problemas mencionados, hemos decidido como


solución para la bodega “Multiservicio Lucyana” desarrollar e implementar
un sistema de información para los registros de venta e inventario, el cual

[Fecha] 3
FACULTAD DE INGENIERÍA

se empleará para optimizar de manera eficiente la administración del


negocio del cliente.

2.1.2. Problemas específicos

❖ Administración ineficiente de los registros de venta e inventario


❖ Cantidad de tiempo excesivo en la administración del negocio
❖ Problemas en saber qué productos se están agotando o se
agotaron.
❖ No saber que cantidad de monto a invertir

2.2. Objetivos
2.2.1. Objetivo General

Desarrollar e implementar un sistema informático para la


administración eficiente de los registros de venta e inventario.

2.2.2. Objetivos Específicos

• Implementar un correcto registro de contabilización de los


productos en stock.
• Reducir el tiempo de administración del negocio.
• Llevar a cabo un eficiente y práctico registro de ventas.
• Garantizar información confiable de la administración del
negocio.

CAPITULO III
3. MARCO TEÓRICO DE REFERENCIA
3.1. Programación Orientada a Objetos (POO)
Para Kay (1970), “La programación orientada a objetos es un
estilo de programación en el que los programas se organizan en términos
de objetos, cada uno de los cuales representa una instancia de alguna
clase, y cuyas clases son todas miembros de una jerarquía única”.
Mientras que para Meyer (1980), “La programación orientada a objetos
es una técnica para diseñar y construir programas grandes y complejos
que se compone de muchas partes pequeñas que cooperan unas con
otras”.

3.2. Sistemas de información

[Fecha] 4
FACULTAD DE INGENIERÍA

De acuerdo con O’Brien (1980), “Un sistema de información es un conjunto


organizado de personas, hardware, software, comunicaciones de red y recursos
de datos que recopilan, transforma y difunde información en una organización”.

Por otro lado, para los Laudon (1990), “Un sistema de información es un
conjunto de componentes interrelacionados que recopilan, procesan, almacenan
y distribuyen información para apoyar la toma de decisiones, la coordinación y el
control en una organización”.

3.3. Metodología SCRUM

En la década del siglo 20, Mike Cohn (autor y experto en Scrum), mencionó:
“Scrum es un proceso en el que se aplican las prácticas ágiles de desarrollo de
software. Es un enfoque en el que se pueden entregar productos de alta calidad de
manera rápida y constante”.

Además, aproximadamente en el 2010, Ken Schwaber y Jeff


Sutherland (cofundadores de Scrum), dijeron: “Scrum es un marco de
trabajo que permite a las personas resolver problemas complejos y
adaptarse rápidamente a los cambios. Scrum se basa en los valores de
compromiso, coraje, enfoque, apertura y respeto, y consta de roles,
eventos, artefactos y reglas.”

3.4. Artefactos SCRUM

3.4.1. Product Backlog

Dentro de la metodología SCRUM, el Product Backlog (o Pila de Producto)


en un proyecto SCRUM consiste en una lista con todos los requerimientos iniciales
del producto que se va a desarrollar. Se trata de una lista dinámica, que irá
evolucionando a medida que lo hace el producto y el entorno del proyecto. La
finalidad de crear esta lista no es otra que identificar las necesidades del producto
para lograr su máxima utilidad. EALDE Business School (2010 - 2015).

[Fecha] 5
FACULTAD DE INGENIERÍA

3.4.2. Sprint Backlog

Es básicamente una lista de tareas identificadas por el SCRUM team; ésta


deberá ser completada durante cada sprint (los sprints son periodos de tiempo
durante el cual el trabajo tiene que ser completado).

Es representado a través de un tablero de tareas; hace visible todo el


trabajo necesario para alcanzar el compromiso que se hizo con el producto owner
para el sprint. Permite ver las tareas donde el equipo está teniendo problemas y
no avanza, para tomar decisiones al respecto. Integrait (2010 - 2015).

3.4.3. Incremento
En la metodología SCRUM, el incremento es la suma de todos los
elementos del Product Backlog completados durante el Sprint presente y el valor
de los incrementos de todos los sprints anteriores. Siendo así, un paso más hacia
la realización del Producto Goal (objetivos de producto). Scrumio (2010 - 2015).

3.5. NetBeans
NeatBeans es una IDE (Integrated Development Environment) o entorno
de desarrollo integrado, que es gratuito y de código abierto. Se debe destacar
que sirve para el desarrollo de aplicaciones web, corporativas, de escritorio y
móviles que utilizan plataformas como Java y HTML5, entre otras.

Facilita el proceso de diseño de aplicaciones de escritorio, web o móviles.


Crehana; Juliana Fantino (2021).

3.6. Proceso de Venta

Según Stanton, Etzel y Walker, autores del libro “Fundamentos de


Marketing”, definen el proceso de ventas como una secuencia lógica de 4 pasos
que emprende el vendedor para tratar con un comprador potencial y que tiene por
objetivo producir alguna reacción deseada en el cliente (usualmente en la
compra).

[Fecha] 6
FACULTAD DE INGENIERÍA

3.7. Proceso de Registro

El redactor y miembro de Economipedia, Guillermo Westreicher, define el


proceso de registro como un espacio físico o virtual donde se deja constancia de
un hecho, o el acto de hacer lo mismo. Esto, con el fin de que terceras personas
y las autoridades competentes estén informadas al respecto.

3.8. Proceso de Inventario

Para Contreras (2018), los inventarios representar el aprovisionamiento de


materias primas, elementos o productos en proceso como terminados que se
encuentran en el canal de producción y también en la logística de una
organización.

3.9. Java

Java es un lenguaje de programación que fue creada por Sun


Microsystems por primera vez en 1995. Desde sus inicios, Java ha
evolucionado para adaptarse a una gran parte del mundo digital actual,
proporcionando una plataforma confiable sobre la cual se construyen
muchos servicios y aplicaciones. Java sigue siendo esencial para los
productos y servicios digitales nuevos e innovadores que se desarrollarán
en el futuro.

“Java es un lenguaje de programación orientado a objetos y una


plataforma de software ampliamente utilizado que se ejecuta en miles de
millones de dispositivos, que incluyen computadoras portátiles,
dispositivos móviles, consolas de juegos, dispositivos médicos y muchos
otros. Las reglas y la sintaxis de Java se basan en los lenguajes C y C++.”
(IBM, s.f.)

“Entre sus principales características: es un lenguaje


independiente de la plataforma. Eso quiere decir que, si hacemos un
programa en Java, podrá funcionar en cualquier computadora del
mercado. Esto es una ventaja significativa para los desarrolladores de

[Fecha] 7
FACULTAD DE INGENIERÍA

software, pues antes tenían que crear un programa para cada sistema
operativo, como Windows, Linux, IOS, etcétera.” (Arroyo Díaz, C., 2019,
p. 6)

3.10. Colecciones en Java

Las colecciones son estructuras de datos utilizadas en Java que


permiten almacenar, organizar y manipular grupos de objetos de manera
eficiente y adaptable. Las colecciones pueden contener objetos de
diferentes tipos y, a diferencia de las matrices, tienen un tamaño
dinámico.En Java, las colecciones están diseñadas para facilitar tareas
comunes como agregar y eliminar elementos, buscar elementos
específicos, ordenar elementos y realizar otras operaciones de
manipulación de datos. "Un objeto ″collection″, también llamado
contenedor, es un objeto que agrupa múltiples elementos en una sola
unidad1. Las colecciones se usan para almacenar, recuperar, manipular
y comunicar datos agregados."2 (Corcuera, P., s.f., p. 4)
Se implementan a través de una variedad de interfaces y clases como
List, Set y Map y son parte de la API de Java.

3.10.1. Set

En Java, Set es una interfaz del marco de colecciones de


Java que representa una colección de elementos únicos, es decir,
no se permiten duplicados. Dentro de esta interfaz, existen varias
implementaciones, incluyendo HashSet, TreeSet y
LinkedHashSet.

3.10.1.1. HashSet

Esta es la implementación más común de la interfaz Set.


Utiliza una tabla hash para almacenar elementos, lo que permite
operaciones de inserción, eliminación y búsqueda de tiempo
constante en el caso promedio. Sin embargo, HashSet no
garantiza ningún orden específico de sus elementos.
Set<String> hashSet = new HashSet<String>();

[Fecha] 8
FACULTAD DE INGENIERÍA

hashSet.add("elemento1"); // Añadir un elemento


hashSet.add("elemento2");
boolean existe = hashSet.contains("elemento1"); // Buscar
un elemento
hashSet.remove("elemento1"); // Eliminar un elemento

3.10.1.2. TreeSet
Esta implementación de Set utiliza un árbol para
almacenar elementos, lo que permite operaciones de inserción,
eliminación y búsqueda en tiempo logarítmico. A diferencia de
HashSet, TreeSet mantiene sus elementos en un orden
ascendente.
Set<String> treeSet = new TreeSet<String>();
treeSet.add("elemento1"); // Añadir un elemento
treeSet.add("elemento2");
boolean existe = treeSet.contains("elemento1"); // Buscar
un elemento
treeSet.remove("elemento1"); // Eliminar un elemento

3.10.1.3. LinkedHashSet

Esta implementación es casi idéntica a HashSet, pero


tiene una característica adicional: mantiene el orden de inserción
de los elementos. Esto significa que cuando iteras sobre un
LinkedHashSet, los elementos aparecerán en el orden en que
fueron insertados.
List<String> linkedList = new LinkedList<String>();
linkedList.add("elemento1"); // Añadir un elemento
linkedList.add("elemento2");
boolean existe = linkedList.contains("elemento1"); //Buscar
un elemento
linkedList.remove("elemento1"); // Eliminar un elemento

[Fecha] 9
FACULTAD DE INGENIERÍA

3.10.2. List
En Java, List es una interfaz del marco de colecciones que
representa una colección ordenada de elementos. A diferencia de
Set, List permite duplicados, lo que significa que puedes tener el
mismo elemento más de una vez en una lista. esta permite tener
acceso a la posición, búsqueda e iteración de elementos.
Adicional a esto, también permite realizar operaciones sobre
rangos de elementos dentro de la misma lista. Dentro de este tipo,
existen 2 implementaciones dentro de Java.

3.10.2.1. ArrayList

Esta es la implementación más común de la interfaz List.


Utiliza un arreglo dinámico para almacenar los elementos. Esto
significa que el tamaño de la lista puede cambiar dinámicamente
a medida que agregas o eliminas elementos. ArrayList es
excelente para las operaciones de acceso aleatorio, ya que
puedes obtener cualquier elemento de la lista en tiempo
constante.
List<String> arrayList = new ArrayList<String>();
arrayList.add("elemento1"); // Añadir un elemento
arrayList.add("elemento2");
boolean existe = arrayList.contains("elemento1"); // Buscar
un elemento
arrayList.remove("elemento1"); // Eliminar un elemento

3.10.2.2. LinkedList

Esta implementación de List utiliza una lista doblemente


enlazada para almacenar los elementos. En una LinkedList, cada
elemento tiene un enlace al elemento anterior y al siguiente en la
lista. Esto hace que las operaciones de inserción y eliminación
sean muy eficientes, incluso en el medio de la lista, ya que sólo
necesitas cambiar algunos enlaces. Sin embargo, las operaciones
de acceso aleatorio pueden ser más lentas que en un ArrayList,

[Fecha] 10
FACULTAD DE INGENIERÍA

ya que es posible que tengas que recorrer varios elementos para


llegar al elemento deseado.
List<String> linkedList = new LinkedList<String>();
linkedList.add("elemento1"); // Añadir un elemento
linkedList.add("elemento2");
boolean existe = linkedList.contains("elemento1"); //
Buscar un elemento
linkedList.remove("elemento1"); // Eliminar un elemento

3.10.3. Map

En Java, Map es una interfaz del marco de colecciones que


representa una estructura de datos en la que los elementos se
almacenan en pares clave-valor. Cada clave es única y se utiliza
para obtener el valor correspondiente. Esto es útil cuando quieres
asociar un valor con una clave única, como un número de
identificación con un nombre de usuario.

3.10.3.1. HashMap

Esta es la implementación más común de la interfaz Map.


Utiliza una tabla hash para almacenar los pares clave-valor, lo que
permite operaciones de inserción, eliminación y búsqueda de
tiempo constante en el caso promedio. Sin embargo, HashMap no
garantiza ningún orden específico de sus elementos.
Map<String, Integer> hashMap = new HashMap<String,
Integer>();
hashMap.put("clave1", 1); // Añadir un par clave-valor
hashMap.put("clave2", 2);
boolean existe = hashMap.containsKey("clave1"); //
Buscar una clave
hashMap.remove("clave1"); // Eliminar una clave y su valor
asociado

3.10.3.2. TreeMap

[Fecha] 11
FACULTAD DE INGENIERÍA

Esta implementación de Map utiliza un árbol rojo-negro


(una forma de árbol binario de búsqueda equilibrado) para
almacenar los pares clave-valor. Esto permite operaciones de
inserción, eliminación y búsqueda en tiempo logarítmico. A
diferencia de HashMap, TreeMap mantiene sus claves en un
orden ascendente.

Set<String> treeSet = new TreeSet<String>(); // Crear un


TreeSet
treeSet.add("elemento1"); // Añadir un elemento
treeSet.add("elemento2");
boolean existe = treeSet.contains("elemento1"); // Buscar
un elemento
treeSet.remove("elemento1"); // Eliminar un elemento

3.10.3.3. LinkedHashMap

Es otra implementación de la interfaz Map en Java. Al igual


que HashMap, utiliza una tabla hash para almacenar los pares
clave-valor, lo que permite operaciones de inserción, eliminación
y búsqueda de tiempo constante en el caso promedio. Sin
embargo, a diferencia de HashMap, LinkedHashMap mantiene el
orden de inserción de los elementos.
Map<String, Integer> treeMap = new TreeMap<String,
Integer>();
treeMap.put("clave1", 1); // Añadir un par clave-valor
treeMap.put("clave2", 2);
boolean existe = treeMap.containsKey("clave1"); // Buscar
una clave
treeMap.remove("clave1"); // Eliminar una clave y su valor
asociado

[Fecha] 12
FACULTAD DE INGENIERÍA

3.11. Archivos en Java


3.11.1. Concepto de Archivo

Un archivo en Java es una estructura que permite


almacenar información de manera permanente y que se compone
de una secuencia de bytes que representan los datos guardados
en el archivo. En Java, los archivos se pueden categorizar en
diferentes tipos, como archivos de texto, archivos binarios o
archivos de acceso aleatorio.

Según lo indicado por International Business Machines


(IBM, 2021), “Los archivos de clase Java son archivos continuos
que se producen cuando el compilador Java compila un archivo
fuente.”

Los archivos de texto contienen datos legibles introducidos


por una persona y se pueden abrir y editar con un editor de texto,
mientras que los archivos binarios contienen datos en un formato
específico y generalmente se utilizan para almacenar información
compleja, como imágenes o videos. Mientras que los archivos de
acceso aleatorio son más flexibles, ya que permiten leer o escribir
datos en cualquier posición dentro del archivo.

3.11.2. Archivos desde Java

Los archivos son una parte esencial de la programación


en Java. Se utilizan para almacenar datos de forma permanente,
lo que permite a los programas recuperarlos y utilizarlos en el
futuro.

Como detalla International Business Machines


(IBM,2021), El archivo de la clase contiene información
detallada sobre cada uno de los campos y métodos que
se usan en la misma. Además, también incluye el

[Fecha] 13
FACULTAD DE INGENIERÍA

bytecode de cada método, datos estáticos y descripciones


que se emplean para representar los objetos Java.

En Java, la API de archivos se encuentra en el paquete


java.io; la cual nos ofrece una variedad de clases y métodos para
leer, escribir, crear y modificar archivos. Siendo sus clases
principales:
• File: Representa un archivo o directorio en el
sistema de archivos.
• InputStream: Representa un flujo de datos de
entrada.
• OutputStream: Representa un flujo de datos de
salida.

3.11.2.1. Tratamiento simplificado de excepciones

Durante la ejecución de un programa, pueden presentarse


situaciones excepcionales que requieren ser manejadas y
controladas.

Así mismo, como lo define Oracle Documentation


(Oracle, 2022), “una excepción es un evento que ocurre
durante la ejecución de un programa y que interrumpe el
flujo normal de las instrucciones del programa.”

Para ello, se utiliza una técnica conocida como tratamiento


simplificado de excepciones. Ayudando a mejorar la confiabilidad
del programa al ofrecer una manera organizada y efectiva de
manejar errores y situaciones excepcionales.
Para prevenir inconvenientes como que el programa se
bloquee o se cierre abruptamente debido a errores, se recurre al
uso de bloques try-catch-finally.
• El bloque try, contiene el código que permite
generar la excepción

[Fecha] 14
FACULTAD DE INGENIERÍA

• El bloque catch maneja las excepciones en caso


ocurra, según el tipo
• El finally ayuda a que el código siempre se ejecute,
independientemente de si se produce una excepción o no

3.11.3. Lectura de archivos secuenciales de texto

Para acceder y procesar información almacenada en


archivos de texto de manera eficiente en Java, se utiliza una
técnica llamada lectura de archivos secuenciales de texto. Útil
para acceder y procesar datos almacenados de manera
ordenada, especialmente cuando se necesita trabajar con
grandes volúmenes de información.
Siendo sus principales clases:
• El FileReader; el cual abrirá el archivo y
creará un flujo de entrada que permite leer los caracteres
del archivo.
• El BufferedReader; donde permitirá leer
líneas completas o caracteres individuales del archivo.

3.11.4. Escritura de archivos secuenciales de texto

La escritura de archivos secuenciales de texto hace


referencia al proceso de guardar información en un archivo de
texto de manera secuencial, es decir, línea por línea. Este
proceso permite a las aplicaciones leer y escribir información en
archivos de texto. Gracias al uso de las clases:
• FileWriter, el cual nos permite abrir el
archivo según su ruta y dar paso a la escritura.
• BufferedWriter, nos permite escribir en el
archivo líneas completas o caracteres individuales.

3.11.4.1. El concepto de Buffering


El bufeering hace referencia al almacenamiento temporal
de datos en un área de memoria dedicada, conocida como búfer,

[Fecha] 15
FACULTAD DE INGENIERÍA

antes de que sean procesados o transmitidos a su destino final. El


tamaño del búfer implica en el rendimiento del sistema; ya que, de
ser mayor o menor a los requerimientos del programa, el mismo
se puede ralentizar o generar retrasos.

En ese sentido, según se explica Oracle


Documentation (Oracle, 2022), “esto puede hacer que un
programa sea mucho menos eficiente, porque cada
solicitud de este tipo a menudo desencadena acceso al
disco, actividad de red o alguna otra operación que es
relativamente costosa.”

El objetivo del Buffering es minimizar las operaciones de


lectura en el dispositivo, para evitar que sea un proceso lento y
costoso en recursos, al momento de la ejecución; mediante sus
clases:
• BufferedReader, permite leer y procesar
datos en bloques más grandes, agilizando significativa el
rendimiento de la lectura de datos.
• BufferedWriter, permite escribir datos de
forma eficiente en un flujo de salida de caracteres, como
un archivo de texto.

3.11.5. Operaciones de Serialización


La serialización es un proceso que permite convertir un objeto en una
secuencia de bytes, permitiéndole almacenarse en un archivo o
transmitirse a través de una red.

Igualmente, tal como se menciona Oracle Documentation


(Oracle, 2022), “Serializar un objeto significa convertir su
estado en un flujo de bytes para que el flujo de bytes
pueda revertirse nuevamente a una copia del objeto”

La serialización se implementa a través de la interfaz Serializable;


utilizando sus clases y métodos:

[Fecha] 16
FACULTAD DE INGENIERÍA

• Para serializar un objeto, se aplica el método writeObject()


que se encuentra en la clase ObjectOutputStream. Este
método escribe la secuencia de bytes del objeto en un flujo
de salida.
• Para deserializar un objeto, se utiliza el método
readObject() de la clase ObjectInputStream. Este método
lee la secuencia de bytes del objeto de un flujo de entrada
y lo reconstruye.

3.11.6. Archivos binarios de acceso directo


Los archivos binarios de acceso directo son un tipo de
archivo que permite acceder a los datos de forma directa, sin
tener que leer el archivo completo. Esto los hace ideales para
aplicaciones que necesitan acceder a datos específicos de forma
rápida y eficiente.
En el caso de Java, los archivos binarios de acceso directo
se implementan a través de la clase y sus métodos:
• RandomAccessFile, la cual nos proporciona
métodos para leer y escribir datos en una posición
específica del archivo.
• El seek() ayuda a establecer la posición del
puntero del archivo en una posición específica.
• El read() se utiliza para leer un byte, según
el tipo; desde la posición del puntero del archivo.
• El write() nos permite escribir un byte,
dependiendo del tipo de variable, en la posición del
puntero del archivo.

3.12. Librerías Gráficas


Las librerías gráficas permiten la creación de interfaces gráficas;
proporcionan una capa de abstracción con una amplia gama de funciones
y componentes para crear y manipular elementos visuales, como

[Fecha] 17
FACULTAD DE INGENIERÍA

ventanas, botones, gráficos, imágenes y animaciones. Permitiendo a los


desarrolladores centrarse en la lógica de la aplicación.

3.12.1. Swing
Es una librería gráfica estándar de Java, basándose en un
modelo de componentes gráficos que es independiente del
sistema operativo, que le permite tener una apariencia nativa y
personalizable.

3.12.1.1. Contenedores

Los contenedores Swing; valga, la redundancia son


elementos que pueden contener otros componentes. Pueden ser:
• Contenedores de alto nivel: Estos
contenedores se utilizan para generar ventanas, cuadros
de diálogo y otros elementos en la interfaz gráfica.
• Contenedores de bajo nivel: Estos
contenedores se emplean para organizar componentes
dentro de otros contenedores.

3.12.1.2. Componentes

Los componentes Swing son elementos individuales,


permiten una forma de interactuar con el usuario y de mostrar
datos. Pueden ser:
• Componentes de entrada: Estos
componentes se usan para recopilar datos del usuario.
• Componentes de salida: Estos
componentes se emplean para mostrar datos al usuario.

[Fecha] 18
FACULTAD DE INGENIERÍA

3.12.2. AWT

Es la librería gráfica más antigua que proporciona un


conjunto básico de componentes y funciones para la creación de
interfaces gráficas en Java. Sin embargo, también puede ser más
complejo de usar que Swing.

CAPITULO IV
4. DESARROLLO ÁGIL DEL PRODUCTO
4.1. HISTORIAS DE USUARIO
4.1.1. Historia de Usuario N° 1:

➢ Descripción:
Como dueña de la bodega “Multiservicio Lucyana”, quiero poder
hacer registros de mis ventas diarias y saber cuantos productos aún
tengo sin tener que ir a buscarlos para tener un control administrativo
más adecuado.

5. REFERENCIAS

IBM documentation. (2021). Archivos JAR y de clase Java. Recuperado el septiembre, 20,
2023, de https://www.ibm.com/docs/es/i/7.1?topic=platform-java-jar-class-files.

IBM documentation. (2021). Archivos JAR y de clase Java. Recuperado el septiembre, 20,
2023, de https://www.ibm.com/docs/es/i/7.1?topic=platform-java-jar-class-files.

Java Documentation. (2022). What Is an Exception?. Recuperado el septiembre, 20, 2023, de


https://docs.oracle.com/javase%2Ftutorial%2F/essential/exceptions/definition.html

Java Documentation. (2022). Buffered Streams. Recuperado el septiembre, 20, 2023, de


https://docs.oracle.com/javase/tutorial/essential/io/buffers.html

[Fecha] 19
FACULTAD DE INGENIERÍA

Java Documentation. (2022). Serializable Objects. Recuperado el septiembre, 20, 2023, de


https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html

[Fecha] 20
FACULTAD DE INGENIERÍA

[Fecha] 21
FACULTAD DE INGENIERÍA

[Fecha] 22
FACULTAD DE INGENIERÍA

[Fecha] 23

También podría gustarte