Está en la página 1de 24

Sistema de Información para

Optimizar el Proceso de Inventario y


Ventas en el negocio “Tineo”.

Curso:
Técnicas de Programación
Orientada a objetos

Docente:
Tarmeño Juscamaita,
Esther

Integrantes:
2 • Cabrera Tello Christian Juan
• Donayre Ortiz Gianfranco
0 • Vargas Mallqui Frank Maicol
• Lipa Muñoz Andre Gianpierre
2 • Chavez Astochado Yohan Yanpier

3 Lima-Perú
FACULTAD DE INGENIERÍA

INTRODUCCIÓN

Para empezar las empresas buscan una mejor optimización de procesos se convierte en un factor crítico
para el éxito sostenible de cualquier organización. Deben adaptarse un nuevo cambio de métodos y
estrategias para el registro de la información para fluir mejor la empresa. En este contexto, nos complace
presentar el Sistema de Información diseñado específicamente para el negocio “Tineo”, para desarrollar
una solución innovadora y estratégica que tiene como objetivo revolucionar la gestión de inventario y ventas
en la empresa.

“La Tecnología ha transformado la forma en que gestionamos el inventario y ventas. Los negocios que
adoptan sistemas avanzados tienen una ventaja competitiva significativa” (Jobs,1984). Brindar la calidad
de sus productos, para alcanzar la eficiencia y rentabilidad, es esencial adoptar herramientas que permitan
una toma de decisiones más precisa y ágil. Para lo cual se empleó la metodología SCRUM, debido a que
este mismo se adecua y agiliza el desarrollo del software, permitiendo que se pueda contar con plantillas
que proporcionarán una ayuda en cada fase de estructura del proyecto.

La importancia de aplicar un control preciso del inventario que permita una mejor coordinación con etapas
de verificación del estado de “stock lleno” o “stock vacío”, se verá reforzada mediante las herramientas
digitales. Esto contribuirá a la reducción de costos y la alineación de las ventas, lo que resultará en una
toma de decisiones a través de un análisis de datos para certificar con eficacia la organización del sistema
de información de lenguaje de Java con técnicas de programación orientada a objetos. Por lo tanto, generará
ganancias de los productos administrados por la empresa, cumpliendo los objetivos establecidos por la
pastelería. Además, se anticipa que esta aplicación también facilitará una gestión empresarial eficaz y tendrá
un impacto positivo en la atención al cliente, mejorando la calidad del servicio brindado.

Página 1
FACULTAD DE INGENIERÍA

PRESENTACIÓN

En esta sección actual, es fundamental establecer una estructura organizativa para el contenido. En la
primera parte del informe, se presenta el título del proyecto, se describe la pastelería e incluye un
organigrama que brindará una comprensión más completa de las áreas internas del negocio. Además, se
aborda la misión y visión de la empresa. En la segunda sección, se aborda la problemática que afecta la
pastelería “Tineo” junto con sus problemas específicos y se establecen los objetivos que se pretenden
alcanzar al concluir el proyecto. La tercera sección se dedica al marco teórico, donde se proporcionan
definiciones de los conceptos utilizados durante el desarrollo del proyecto, comenzando por una explicación
de lo que implica un sistema de información. También se explica la metodología que se utilizará en el
proyecto y las técnicas de programación seleccionadas, como la programación orientada a objetos (POO),
así como el lenguaje de programación que se empleará para desarrollar el sistema mencionado. Se menciona
el entorno de desarrollo en el que se trabajará en el código. En la cuarta sección, que abarca el desarrollo
ágil del producto, se inicia con la definición de las historias de usuario y la creación de una matriz de
impacto para establecer prioridades. Luego, se describe el desarrollo del Product Backlog y el Product
Backlog priorizado. El primero incluye requisitos funcionales junto con historias de usuarios asociados,
estimaciones de tiempo, prioridades y puntos estimados. La segunda muestra los requisitos organizados
según su prioridad. Además, se presentan los requisitos agrupados para sprint en la sección llamada
entregables de sprint. También se muestra el plan de trabajo, que contiene un cronograma de actividades a
seguir durante el proceso de desarrollo del producto. Se proporciona una visualización del diagrama y un
organizador visual de las clases de proyecto, se explica el uso de ArrayList en el desarrollo y se incluyen
referencias y anexos. Esta última sección muestra el rol de cada miembro del grupo involucrado en el
desarrollo del proyecto, junto con la figura del Product Owner.

Página 2
FACULTAD DE INGENIERÍA

ÍNDICE:
NEGOCIO “TINEO”

INTRODUCCIÓN.............................................................................................1
PRESENTACIÓN ........................................................................................... 2
CAPÍTULO I …………................................................................................... 6
1. GENERALIDADES.....................................................................................6
1.1. Título de la Práctica de campo..............................................................6
1.2. Descripción del negocio .......................................................................6
1.3. Misión y Visión del negocio ................................................................6
1.4. Organigrama ........................................................................................7
CAPÍTULO II ...................................................................................................7
2. PROBLEMÁTICA ......................................................................................7
2.1. Planteamiento del problema y descripción..........................................7
2.1.1. Problema General ......................................................................7
2.1.2. Problemas específicos................................................................8
2.2. Objetivos.............................................................................................8
2.2.1. Objetivo General .......................................................................8
2.2.2. Objetivos Específicos.................................................................8

Página 3
FACULTAD DE INGENIERÍA

CAPÍTULO III ...................................................................................................8

3. MARCO TEÓRICO DE REFERENCIA ......................................................8


3.1. Programación Orientada a Objetos (POO)...........................................8
3.2. Sistema de información .......................................................................9
3.3. Metodología SCRUM..........................................................................9
3.4. Artefactos SCRUM..............................................................................9
3.4.1. Product Backlog .........................................................................9
3.4.2. Sprint backlog.............................................................................10
3.4.3. Incremento..................................................................................10
3.5. NetBeans..............................................................................................10
3.6. Proceso de Venta ................................................................................11
3.7. Proceso de Registro ............................................................................11
3.8. Proceso de Inventario..........................................................................12
3.9. Java .....................................................................................................13
3.10. Colecciones en Java ..........................................................................13
3.10.1. Set ..........................................................................................13
3.10.1.1. HashSet .........................................................13
3.10.1.2. TreeSet...........................................................13
3.10.1.3. LinkedHashSet...............................................13
3.10.2. List...........................................................................................14
3.10.2.1. ArrayList ........................................................14
3.10.2.2. LinkedList ......................................................14

Página 4
FACULTAD DE INGENIERÍA

3.10.3. Map ................................................................................15


3.10.3.1. HashMap ..........................................................15
3.10.3.2. TreeMap............................................................15
3.10.3.3. LinkedHashMap................................................15
3.11. Archivos en Java.................................................................................15
3.11.1. Concepto de Archivo............................................................16
3.11.2. Archivos desde Java ............................................................16
3.11.2.1. Tratamiento simplificado de excepciones .........16
3.11.3. Lectura de archivos secuenciales de texto............................16
3.11.4. Escritura de archivos secuenciales de texto..........................16
3.11.4.1. El concepto de Buffering....................................17
3.11.5. Operaciones de Serialización ..............................................17
3.11.6. Archivos binarios de acceso directo.....................................17
3.12. Librerías Graficas ...............................................................................18
3.12.1. Swing ....................................................................................18
3.12.1.1. Contenedores.........................................................18
3.12.1.2. Componentes.........................................................19
3.12.2.AWT.......................................................................................19
CAPÍTULO IV........................................................................................................20
4. DESARROLLO ÁGIL DEL PRODUCTO........................................................20
4.1.HISTORIAS DE USUARIO....................................................................20
CAPÍTULO V…………………………………………………………………….23
5.Referencias Bibliográficas……………………………………………………..23

Página 5
FACULTAD DE INGENIERÍA

CAPITULO I:
1. GENERALIDADES
1.1 Título de la Práctica de campo
Sistema de Información para Optimizar el Proceso de Inventario y Ventas en el negocio “Tineo”.

1.2 Descripción del negocio


La Pastelería “Tineo” es un negocio centrado de manera particular a la venta de pasteles;
proporcionando productos de alta calidad para el consumo del cliente, esta pastelería cuenta con un
equipo de empleados enfocado en brindar atención al cliente, todo ello bajo la supervisión del área
administrativa del negocio. Como resultado, la pastelería se destaca como una de las más destacas por
pasteles con decoración.

1.3 Misión y Visión del negocio


1.3.1 Misión:
Facilitar la gestión eficiente de inventario y ventas en el negocio "Tineo" a través de un Sistema de
Información innovador y personalizado. Se proporciona las herramientas y datos precisos en tiempo
real que permitan tomar decisiones informadas, optimizar la disponibilidad de productos, aumentar la
eficiencia operativa y mejorar la satisfacción del cliente. Buscamos simplificar los procesos de
seguimiento de inventario, pronósticos de demanda y gestión de ventas para contribuir al crecimiento
sostenible de "Tineo".

1.3.2 Visión:
Convertirnos en el referente indiscutible de innovación y eficiencia en la gestión de inventario y
ventas para "Tineo" y ser reconocidos como un socio estratégico indispensable en su éxito comercial.
Lograr un sistema de información altamente inteligente y adaptable, una tecnología innovadora, como
el análisis de datos, para ofrecer soluciones que superen las expectativas de nuestros clientes.

Página 6
FACULTAD DE INGENIERÍA

1.4 Organigrama

Gerente

Dpto. Dpto.
Administrativo Especialistas

Área de Área de Área de Área de


Información Calidad Inventario Ventas

Jefe de Analisis Supervisor de Supervisor de


Jefe de Calidad
de Datos Inventario Vnetas

CAPITULO II:
2. PROBLEMÁTICA
2.1 Planteamiento del problema y descripción
2.1.1 Problema General
En medio de esta era tecnológica que avanza a pasos agigantados y en un mundo en constante
evolución, donde la tecnología ha transformado la manera en que vivimos y nos conectamos,
muchos negocios no han logrado actualizarse, es por ello por lo que se debe implementar un
sistema de información para así poder mejorar en las áreas donde se encuentra una ineficiencia.

La pastelería Tineo una empresa centrada en los postres, tiene una gran trayectoria llena de
increíbles y admirables logros, utilizando ingredientes de la más alta calidad y técnicas
transmitidas de generación en generación pero los años pasan y pasan y no han logrado adaptarse
a estos tiempos donde la tecnología se ha vuelto tan indispensable para muchos tanto en lo
personal como en lo profesional, lastimosamente ellos carecen de tecnologías de la información,
se enfrenta a desafíos significativos en su proceso de inventario y ventas como la rapidez y la
organización.

Página 7
FACULTAD DE INGENIERÍA

Por dichas razones ya mencionadas, en Tineo, están emocionados de abrazar la era tecnológica
mientras mantienen viva su pasión por los postres artesanales. Nuestra implementación de un
sistema de información moderno es un paso hacia adelante para mejorar, manteniendo la calidad
y autenticidad que siempre los han caracterizado.

2.1.2 Problema Específicos


• Falta de un software de venta e inventario.
• Tiempo para encontrar y despachar un producto.
• Mala organización.

2.2 Objetivos
2.2.1 Objetivo General
Optimizar el proceso de venta y almacenamiento de inventario.

2.2.1 Objetivos Específicos


• Mejorar los tiempos de venta y almacenamiento.
• Encontrar productos al instante.
• Mejorar el desempeño de la empresa.

CAPITULO III:
3. MARCO TEÓRICO DE REFERENCIA
3.1Programación Orientada a Objetos (POO):
El concepto de programación orientada a objetos, conocido como POO, describe un programa como
una colección de entidades llamadas objetos que trabajan juntos para llevar a cabo diversas tareas [4].
Un objeto se define como una representación de una entidad, elemento o elemento presente en
situaciones del mundo real, compuesto por datos que representan su estructura y métodos que definen
las operaciones que pueden realizarse en esos datos [5]. Estos objetos se agrupan abstractamente en
clases, las cuales comparten una estructura y comportamiento similares, siendo las clases algo así como
moldes que determinan la forma de los objetos. En esencia, un objeto se considera una instancia de una
clase específica. Además, la programación orientada a objetos incorpora conceptos clave como el
encapsulamiento, la herencia y el polimorfismo.
Dentro de los lenguajes que respaldan el enfoque de programación orientada a objetos se encuentran
Smalltalk, C++, Delphi (Object Pascal), Java y C#. Estos lenguajes han entrado en el mercado y han

Página 8
FACULTAD DE INGENIERÍA

evolucionado gradualmente a lo largo del tiempo, adoptando y abandonando características de otros


lenguajes que no lograron perdurar durante su desarrollo.

3.2 Sistema de Información:


Los sistemas de información en línea representan ejemplos de aplicaciones web que han experimentado
una transformación, pasando de simples páginas web interactivas a sistemas de información que hacen
uso de bases de datos. En otros lugares del mundo, se observa una tendencia en la educación superior
hacia la creación de programas académicos destinados a cultivar habilidades que antes eran poco
comunes. Un ejemplo de dichos programas es la Ingeniería en Información y Control de Gestión, que
se centra en el desarrollo de competencias en áreas como la ciencia de la información, la administración
de empresas y el control de gestión.

3.3 Metodología Ágil de Scrum:


Para decidir la metodología de trabajo, se evaluaron diferentes opciones y se optó por utilizar la
metodología ágil SCRUM. Esta metodología combina prácticas efectivas con un enfoque de trabajo en
equipo colaborativo, con el objetivo de lograr resultados superiores mediante la contribución de un
equipo altamente competente. En SCRUM, se realizan entregas parciales del proyecto que se priorizan
en función de su contribución al proyecto y se valoran según las necesidades y expectativas de los
usuarios finales.
SCRUM se aconseja en proyectos caracterizados por su complejidad, cambios frecuentes en los
requisitos y la necesidad de obtener resultados de manera rápida. En estos proyectos, la innovación, la
flexibilidad y la productividad son elementos esenciales.

3.4 Artefactos SCRUM


3.4.1 Product Backlog
Scrum utiliza el backlog del producto (PB) para mantener varios aspectos, incluyendo las necesidades
de las partes interesadas y los requisitos del producto, que normalmente se expresan en forma de
historias de usuario . Estas historias de usuario son descripciones breves de los requisitos y cómo
tienen la intención de satisfacer las necesidades de partes interesadas específicas. El PB es, además,
una lista ordenada que incluye historias de usuario y otros elementos como características o
problemas. Dado que el Propietario del Producto (PO) es el responsable de gestionar el PB, su función
principal es organizar estos elementos en el orden adecuado de acuerdo con su prioridad, con el fin
de "maximizar el valor del producto resultante". Para lograr una comprensión compartida, es esencial
que las decisiones del PO sean respetadas por las partes interesadas y que estas decisiones se reflejen
en el PB. Por lo tanto, una de las principales responsabilidades del PO es mantener la priorización

Página 9
FACULTAD DE INGENIERÍA

continua del PB, lo que implica la constante consolidación, incorporación y evaluación de la


información relevante de las partes interesadas.

3.4.2 Sprint Backlog


Scrum emplea el backlog del producto (PB) para abordar diversos aspectos, que abarcan desde las
necesidades de las partes interesadas hasta los requisitos del producto, generalmente presentados en
forma de historias de usuario [11]. Estas historias de usuario son breves descripciones de los requisitos
y de cómo están diseñadas para satisfacer las necesidades de partes interesadas específicas. El PB, por
su parte, se compone de una lista organizada que engloba historias de usuario y otros elementos, como
características o problemas. Dado que el Propietario del Producto (PO) tiene la responsabilidad de
gestionar el PB, su función principal consiste en ordenar estos elementos de acuerdo con su prioridad,
con el objetivo de "optimizar el valor del producto resultante". Para establecer una comprensión común,
es fundamental que las decisiones tomadas por el PO sean respetadas por las partes interesadas y que
estas decisiones se reflejen en el PB. Por lo tanto, una de las principales tareas del PO es mantener una
priorización continua del PB, lo que implica una constante consolidación, incorporación y evaluación
de la información pertinente proporcionada por las partes interesadas.

3.4.3 Increment
Un Incremento representa un paso específico hacia el logro del objetivo del producto. Cada Incremento
se agrega a todos los Incrementos previos y se somete a una exhaustiva verificación para asegurarse de
que todos los Incrementos funcionen en conjunto. Para ser valioso, el Incremento debe ser
completamente funcional y utilizable.

3.5 Netbeans
NetBeans es una herramienta que facilita el desarrollo de diversos tipos de software en todas sus etapas.
Para los programadores, representa una plataforma que les ayuda en la creación, compilación y detección
de errores en programas escritos en varios lenguajes.
Además, es efectivo para la ejecución de programas en una variedad de dispositivos electrónicos, ya sean
móviles o computadoras personales. También ofrece la capacidad de marcar líneas de código para futuras
modificaciones a través de la función de Bookmarking.
Por otro lado, NetBeans proporciona una biblioteca visual que ofrece una amplia gama de widgets y
facilita una gestión eficiente del almacenamiento de datos.

Página 10
FACULTAD DE INGENIERÍA

3.6 Proceso de Venta


El proceso de venta es una serie de pasos que un vendedor sigue para convertir a un prospecto en un cliente.
Este proceso puede variar según la industria, el producto o servicio que se esté vendiendo y las estrategias
específicas de la empresa. A continuación, te presento una descripción general de los pasos comunes en un
proceso de venta:

• Prospectar: En esta etapa, el vendedor busca clientes potenciales o prospectos


Establecer contacto: Una vez que se identifican prospectos interesados, se inicia el proceso de establecer
contacto con ellos
• Calificar al prospecto: Es importante determinar si el prospecto tiene un interés real en el producto
o servicio y si tiene la capacidad financiera para comprarlo
• Presentar el producto o servicio: En esta etapa, el vendedor presenta el producto o servicio al
prospecto, destacando sus características y beneficios.
• Manejar objeciones: Los prospectos a menudo plantean objeciones o preocupaciones.
• Cerrar la venta: Una vez que el prospecto está convencido y todas las objeciones se han resuelto,
se procede a cerrar la venta.
• Seguimiento postventa: Después de completar la venta, es importante mantener una relación con
el cliente.
• Generar referencias y recompras: Los clientes satisfechos son una fuente valiosa de referencias
y pueden convertirse en compradores recurrentes.
• Evaluación y mejora: Los equipos de ventas suelen revisar y evaluar su proceso de ventas para
identificar áreas de mejora
• Automatización: En la actualidad, muchas empresas utilizan herramientas de automatización de
ventas, como sistemas de gestión de relaciones con el cliente (CRM), para gestionar y optimizar su
proceso de ventas.

3.7 Proceso de Registro

El proceso de registro se refiere a la acción de inscribir, ingresar o anotar información de manera formal en
un sistema, base de datos, registro o lista. Este proceso es comúnmente utilizado en una variedad de
contextos y puede tener diferentes propósitos, dependiendo de la situación. Aquí hay un concepto general
del proceso de registro:

• Ingreso de Datos: En primer lugar, el proceso de registro implica la entrada de datos o información
relevante en un sistema o registro. Estos datos pueden incluir información personal, detalles de una
transacción, datos médicos, números de identificación, etc.

Página 11
FACULTAD DE INGENIERÍA

• Validación: Una vez que los datos se ingresan, a menudo se verifica su precisión y validez. Esto
puede implicar comprobar si los campos obligatorios están completos, si los datos son coherentes y
si cumplen con ciertos criterios.

• Almacenamiento: Después de que los datos se han validado, se almacenan de manera segura en el
sistema o registro correspondiente. Esto asegura que la información esté disponible para su uso
futuro.

• Generación de un Registro: En muchos casos, el proceso de registro implica la creación de un


registro único o una entrada en una base de datos que permite el seguimiento y la recuperación de
la información.

• Confirmación: En algunos casos, se puede proporcionar una confirmación al usuario o al solicitante


de que su registro se ha completado con éxito. Esto puede ser importante para garantizar la
transparencia y la confianza en el proceso.

• Acceso y Uso de la Información: Una vez que los datos se han registrado, pueden ser utilizados
para varios fines, como mantener registros de clientes, llevar un seguimiento de transacciones,
realizar análisis de datos, proporcionar servicios personalizados, entre otros.

El proceso de registro es esencial en una amplia variedad de industrias y actividades, desde la inscripción
en una escuela o universidad hasta el registro de pacientes en un hospital, el registro de usuarios en sitios
web y aplicaciones, y la inscripción en eventos, por mencionar algunos ejemplos. La eficiencia y la
seguridad en el proceso de registro son fundamentales para garantizar la integridad de los datos y la
satisfacción de los usuarios.

3.8 Proceso de Inventario


El proceso de inventario se refiere a las actividades y procedimientos que una empresa o entidad lleva a
cabo para rastrear, contabilizar y registrar la cantidad y el valor de sus existencias de productos, materiales
o activos en un momento dado. El inventario puede incluir una variedad de elementos, como productos
terminados listos para la venta, materias primas, suministros, activos fijos y más, dependiendo del tipo de
negocio.
El proceso de inventario generalmente implica las siguientes etapas:

Página 12
FACULTAD DE INGENIERÍA

• Conteo físico: Se lleva a cabo un recuento físico de todos los elementos de inventario en un
almacén, ubicación o área específica. Esto implica contar manualmente o utilizando sistemas de
escaneo de códigos de barras para verificar la cantidad de cada artículo.
• Registro de datos: Los resultados del conteo físico se registran meticulosamente. Esto incluye
información sobre la cantidad, el valor, la ubicación y otros detalles relevantes de cada elemento de
inventario.
• Valoración del inventario: Se calcula el valor total del inventario utilizando métodos de -
valoración, como el costo promedio, el costo FIFO (primero en entrar, primero en salir), el costo
LIFO (último en entrar, primero en salir) o el costo específico, según las políticas de contabilidad
de la empresa.
• Conciliación y ajustes: Se comparan los resultados del recuento físico con los registros en el
sistema de inventario de la empresa. Cualquier discrepancia se investiga y se realizan ajustes en los
registros para reflejar con precisión la cantidad y el valor del inventario.
• Informes y análisis: Se generan informes y análisis para proporcionar información sobre el estado
del inventario, su valor actual y cualquier variación significativa. Estos informes son útiles para la
toma de decisiones, la planificación de compras y la gestión de existencias.
• Gestión de inventario: Con base en la información obtenida del proceso de inventario, se toman
decisiones sobre la gestión de existencias, como la reposición de productos agotados, la eliminación
de productos obsoletos y la optimización de niveles de inventario para reducir costos y maximizar
la eficiencia operativa.

3.9 Java
Java es un lenguaje de programación de alto nivel y una plataforma de desarrollo que fue creado por Sun
Microsystems (ahora propiedad de Oracle Corporation) a mediados de la década de 1990. Java se destaca
por su capacidad de ser utilizado en una amplia variedad de aplicaciones, desde aplicaciones de escritorio
hasta aplicaciones web y móviles.
En resumen, Java es un lenguaje de programación y una plataforma de desarrollo que se destaca por su
portabilidad, seguridad y versatilidad en una variedad de aplicaciones informáticas.

3.10 Colecciones en Java


En Java, hay varias colecciones de datos disponibles en la API estándar que puedes utilizar para diferentes
propósitos en la generación de informes. Estas colecciones proporcionan formas eficientes de almacenar,
acceder y manipular datos.

Página 13
FACULTAD DE INGENIERÍA

3.10.1 Set
Contiene los métodos heredados de Colección, pero con la restricción de que los elementos
duplicados están prohibidos. Adicional a esto, es importante que dichos elementos cuenten con los
métodos equals y hashCode. Dentro de este tipo, existen 3 tipos de implementaciones dentro de
Java:
3.10.1.1. Hash Set
es una implementación de la interfaz Set que almacena elementos únicos sin un orden
específico. Es útil cuando necesitas mantener una colección de elementos distintos.
3.10.1.2. Tree Set
puede ser adecuado para organizar y gestionar la información de un informe cuando deseas
mantener un orden específico de los elementos.
3.10.1.3. LinkedHashSet
Esta implementación almacena dichos elementos en función de su orden de integración. Es
más costosa que HashSet.

3.10.2 List
La interfaz List, a comparación de Set, sí incluye elementos duplicados. Se define como una sucesión
de elementos. La cual 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 Array List
Es la más usada, es un array redimensionarle que aumenta su tamaño según la cantidad de
elementos agregados. En muchas ocasiones, es muy útil.
3.10.2.2 LinkedList
Esta implementación mejora el rendimiento dependiendo de la condición. Es una
implementación de lista/cola doblemente enlazada, que contiene una matriz de valores y
un contador para determinar el tamaño

Página 14
FACULTAD DE INGENIERÍA

3.10.3 Map
La interfaz Map asocia claves a valores, las cuales no pueden contener duplicados. Adicional a esto,
solo puede tener asociado como máximo a un valor. Dentro de este tipo, existen 3
implementaciones en Java:
3.10.3.1 HashMap
Almacena las claves en una tabla hash. Los valores se almacenan en un mapa formando un
par clave-valor. En este caso, es imposible utilizar tipos de datos primitivos como double o
int, ya que solo almacena referencia de objetos
3.10.3.2 TreeMap
TreeMap es otra implementación de la interfaz Map que almacena datos en pares clave-
valor, pero mantiene las claves ordenadas en orden natural o según un comparador
personalizado.
3.10.3.3 LinkedHashMap
Almacena las claves en función al orden de inserción, combina la implementación de
HashTable y LinkedList.

3.11 Archivo en Java

3.11.1 Concepto de Archivo:


Los archivos son componentes esenciales en la mayoría de las aplicaciones informáticas, ya
que permiten el almacenamiento, la lectura y la escritura de datos de manera persistente
en un sistema de archivos. En el contexto de Java, un archivo se refiere a un recurso o
entidad que representa información almacenada en un sistema de archivos local o remoto.
Los archivos pueden ser de diferentes tipos, como archivos de texto, archivos binarios,
imágenes, videos, datos XML, JSON, entre otros. Java proporciona un conjunto de clases y
bibliotecas para trabajar con archivos de manera efectiva y segura.

3.11.2 Archivo desde Java:


En Java, los ficheros son diferenciados por las clases usadas. Dichas clases pertenecen a la
biblioteca predeterminada de JAVA. Este diseño es dirigido para uso industrial, es por eso
que su uso es más complejo. Dichas clases están ubicadas en el paquete java.io, por lo que
se deben importar. Además, para ejecutar el código que utilizar archivos se deben de
considerar muchas cosas: el archivo puede estar dañado, no existe más espacio para
almacenar, es un disco extraíble, etc. Debido a eso, dentro del mecanismo de Java, se debe
hablar sobre los errores que pueden presentarse en los programas: las excepciones.

Página 15
FACULTAD DE INGENIERÍA

3.11.2.1 Tratamiento simplificado de excepciones


Debido a la complejidad de las excepciones, veremos un tratamiento muy
simplificado de estas, haciendo el proceso de corrección de nuestros programas lo
más corto posible, para así el programa se ejecute correctamente. Para ello, el
código debe tener la siguiente estructura:
La base de esta construcción es try(intenta), ejecuta dichas instrucciones y si se
produce un error, se lanza una IOException, el cual va dentro del catch(atrapa),
quien captura ese error y ejecuta las instrucciones del código dentro de las llaves.
Usualmente, dentro del código el cual trata el error, se ingresa un mensaje que se
emitirá cuando el código lo detecte.

3.11.3 Lectura de archivos secuenciales de texto:


Respecto a la lectura de este tipo de archivos podemos dar uso de la instancia FileReader
que nos permitirá leer la información que se encuentra dentro del fichero o archivo de
texto, asimismo,previo a ello tenemos que generar la creación o formación del archivo
junto a la dirección a la cual queremos que se ubique y laclase java.io.File, sin embargo,
puede variar el nombre del fichero dependiendo al sistema operativo que estemos dando
uso, por ejemplo en el caso de un sistema de tipo Unix tendríamos que seguir la siguiente
estructura: /User/jmgimeno/Prog2/FileExample/src/Main.java. Cabe mencionar que
existen otros métodos de FileReader tales como: int read(char[] buf, int offset, int length)
que nos permitirá la leer como máximo hasta length caracteres del archivo y los colocará
en el voctor buf a partir de la posición offset y este a su vez devuelve el número de
caracteres leído. También podemos encontrar int read(char[] buf) , el cual es similar al
anterior pero usando 0 como offset y buf.length como length

3.11.4 Escritura de archivos secuenciales de texto:


Ahora la clase de fichero es FileWriter, es decir, ahora escribimos. El método FileWriter
tendrá que ir con 2 parámetros, uno es la ruta en la cual el archivo será escrito, indicando
también el tipo de archivo que es, y el otro parámetro es para confirmar si se añaden o no
los ficheros. Existen una variedad de métodos interesantes de FileWriter, aquí
nombraremos los más relevantes: . new FileWriter(String name, boolean append) : Si
tenemos un archivo de nombre name, si el append es cierto ( true ), los nuevos caracteres
se añaden al fichero desde el final. Si no fuese así, se crea el archivo vacío y añade desde el
principio. . void write(char[] cbuf, int off,int len) : Escribe los caracteres de un vector (cbuf)

Página 16
FACULTAD DE INGENIERÍA

a partir de la posición (off) del archivo. . void write(char[] cbuf): Es similar a la anterior pero
reemplazando el off con 0 y la longitud del vector como len. . void write(String str,int
off,inte len): Similar al anterior, pero en vez de utilizar un vector, se utiliza un String. . void
write(String str): Como la anterior pero en vez de off, usar 0 y reemplazar la longitud de str
como len.

3.11.4.1 El concepto de Buffering


La clase buffer proporciona un contenedor para fragmentos de datos de tipos primitivos
específicos. El concepto de Buffering es explicado detalladamente en este párrafo, extraído
del libro Head First Java: Si no hubiera buffers, sería como comprar sin un carrito: debería
llevar los productos uno a uno hasta la caja. Los buffers te dan un lugar en el que dejar
temporalmente las cosas hasta que está lleno. Por ello has de hacer menos viajes cuando
usas el carrito. El precio de la operación que accede a una memoria externa siempre es
algo, es por eso por lo que las operaciones de lectura o escritura para los ficheros siempre
debe ser reducida al máximo. Adicional a esto, también permite realizar otras operaciones
un poco más completas.

3.11.5 Operaciones de Serialización:


En líneas generales, cuando se desea enviar un objeto a través de un flujo de datos,
deberemos convertirlo en una serie de bytes.Esto se le conoce como serialización de
objetos que nos permitirála lectura y escritura de los objetos de forma directa. Asimismo,
podemos usar objetos como ObjectInputStream y ObjectOutputStream, que incorporan a
su vez métodos como readObject y writeObject, esto tal y como se puede deducir a través
de los nombres de estos métodos, estos permitirán la lectura y escritura de estos. Por otro
lado, tenemos que implementar la interfaz Serializable para que nuestros objetos sean
serializables.

3.11.6 Archivos binarios de acceso directo:


Dichos archivos están representados por la clase java.io.RandomAccessFile, que permite:
Abrir un archivo en solo lectura (“r”) o tanto para lectura y escritura (modo (“rw”).
- Para leer existen dos operaciones:
• Int read(byte [] buff, int off, int len)
• Int read(byte[] buff)

Página 17
FACULTAD DE INGENIERÍA

- Para escribir existen dos operaciones:


• Void write(byte[] buff, int off, int lean)
• Void write(byte[] buff)
- La operación que caracteriza a este tipo de archivos es:
• Void seek(long pos)
Quien coloca la posición de lectura/escritura en la posición pos del archivo, declarada en
el método seek. Así, la siguiente vez que se ejecute la lectura, en vez de usar la posición
dejada en la última operación, se utilizará la posición pos como inicio de la lectura. Los
archivos binarios permiten mezclar operaciones de escritura y lectura, y también acceder
a una posición concreta del archivo. El uso principal de los archivos es similar a los arrays,
pero con la diferencia de que esta tiene una memoria secundaria.

3.12 Librerías en Java:


Sabemos que Java proporciona dos bibliotecas de clases con el objetivo de generar interfaces
graficas de usuario, de las cuales podemos encontrar AWT y Swing. A continuación, describiremos
más a detalle ambas bibliotecas.

3.12.1 Swing:
Según la Universitat Jaime I (2013), señala que Swing es una de las bibliotecas de clases que
permite la creación de interfaces graficas de usuario en Java, la cual se caracteriza por tener
un número de clases muy grande. Esta se encuentra orientado a objetos y usa el patrón de
diseño Observador/Observable para informar de las interacciones que el usuario da en
relación con la interfaz gráfica. Dentro de esta podemos encontrar dos elementos básicos
3.12.1.1 Contenedores:
Lo podemos definir como aquellos elementos que son capaces de albergar otros
elementos. Los contenedores más importantes que podemos encontrar serían
JFrame, JDialog y JApplet; los cuales nos permitirán llevar a cabo el diseño de
nuestro formulario, dentro de estos se encuentran los TextField, TextArea, Label,
Button, entre otras más herramientas que nos permitirán diseñar a nuestra propia
creatividad nuestro formulario.

Página 18
FACULTAD DE INGENIERÍA

3.12.1.2 Componentes:
Lo podemos definir como aquellos elementos que se añaden a los contenedores, estos
usualmente se caracterizan por tener un aspecto gráfico. Ya que Swing nos ofrece gestores
de aspecto capaces de organizar, de forma automática, la posición y el tamaño de los
componentes dentro de los contenedores

3.12.2 AWT:
Según el Departamento de informática y Sistemas (2012), señala que, “Es un kit de
herramientas de gráficos, interfaz de usuario, y sistema de ventanas independiente de la
plataforma original de Java.”. Los cuales tienen componentes más rápidos y los buscadores
soportan las clases de este tipo de biblioteca, sin necesidad de un Java plugin. Asimismo,
reflejan mejor la interfaz propia del sistema. Sin embargo, varias empresas de desarrollo se
basan en el uso de la biblioteca Swing en lo que respecta al desarrollo de sus proyectos,
además, los componentes de este tipo de biblioteca no soportan las características tales
como iconos y tips.

Página 19
FACULTAD DE INGENIERÍA

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

Descripción:
Prioridad:
Como responsable del Departamento Administrativo, quiero poder de
ingresar, consultar y eliminar los registros de los empleados, con el fin
de mantener un seguimiento a las personas laborando en esta empresa.
1

Criterios de Aceptación: Tiempo


Estimado:
• El encargado de este departamento tendrá el privilegio
exclusivo de llevar a cabo a cabo las siguientes acciones:
ingresar, consultar y eliminar los datos de los empleados en 3 días
la empresa.
• Se añadirá un campo que permitirá tanto el registro como la
visualización de la información de cualquier empleado, ya
sea ingresando su nombre o su número de DNI.
• Se establecerá una validación para garantizar que la
información ingresada al registrador un nuevo trabajador no Puntos
coincide con ningún registro existente en la lista de Estimados:
empleados.
• Al concluir con éxito cualquier operación, se mostrará un
mensaje que variará dependiendo de la acción realizada,
indicando "Operación Exitosa" o "Registro Exitoso". 75

Página 20
FACULTAD DE INGENIERÍA

Prioridad:
Descripción:
Como responsable del Departamento de Especialistas, quiero poder realizar
la capacidad de incluir los artículos solicitados por el cliente en una lista de y 3
en el almacén. Al mismo tiempo, queremos generar un recibo de pago una
vez que se haya completado la incorporación de productos. Este recibo
también deberá incluir opciones para especificar si se puede seguir agregando
productos, finalizará el proceso de agregación de productos o si la transacción
no es válida en el sistema. Tiempo
Estimado:
Criterios de Aceptación:
• Los empleados del Departamento de Especialistas, así como el
5 días
usuario, tendrán acceso a una interfaz gráfica que les permitirá
ingresar los detalles de la lista.
• Una vez que se haya ingresado la lista, habrá opciones disponibles
para indicar si se considera completa, si se desea agregar más Puntos
productos o si se debe cancelar la lista. Cada una de estas acciones Estimados:
se realizará mediante la activación de botones específicos.
• Se implementarán cajas de texto, botones y TextArea para poder
emitir dicho comprobante de pago con la información requerida. 40

Prioridad:
Descripción:
Como Jefe de Análisis de Datos, quiero poder de verificar los
registros de los clientes, con el fin de mantener un seguimiento de los 2
clientes para una optimización del negocio.

Tiempo
Estimado:
Criterios de Aceptación:
• Debe posibilitar la introducción de los datos del cliente en el
3 días
sistema.
• Una vez ingresados los datos del cliente, se generará
automáticamente un recibo de pago.
• El recibo de pago deberá mostrar de manera clara la información Puntos
recopilada y el importado correspondiente al pago de los productos Estimados:
adquiridos.

60

Página 21
FACULTAD DE INGENIERÍA

4.2 MATRIZ DE IMPACTO


Tabla 1: Matriz de Impacto de Prioridades

PRIORIDAD

ALTA 1

MEDIA 2

BAJA 3

Página 22
FACULTAD DE INGENIERÍA

CAPÍTULO V:

REFERENCIA BIBLIOGRÁFICA

• Pérez Montero, E. L. ., & Hernández Pérez, F. de M. . (2019). Object-oriented programming: easy


to create. I+ T+ C- Research, Technology and Science, 1(13), 96–100. Retrieved from
https://revistas.unicomfacauca.edu.co/ojs/index.php/itc/article/view/itc2019_pag_96_100

• Vidal-Silva, Cristian L., Sánchez-Ortiz, Aurora, Serrano, Jorge, & Rubio, José M.. (2021).
Experiencia académica en desarrollo rápido de sistemas de información web con Python y
Django. Formación universitaria, 14(5), 85-94. https://dx.doi.org/10.4067/S0718-
50062021000500085

• Ramírez, M. R., Soto, M. D. C. S., Moreno, H. B. R., Rojas, E. M., Millán, N. D. C. O., &
Cisneros, R. F. R. (2019). Metodología SCRUM y desarrollo de Repositorio Digital. Revista
Ibérica De Sistemas e Tecnologias De Informação, (E17), 1062-1072.
https://www.proquest.com/openview/7635ce5360bdb82d0c42c815e17f8323/1?pq-
origsite=gscholar&cbl=1006393

• Schwaber, K., & Sutherland, J. (2020). La guía definitiva de Scrum: las reglas del juego.
https://repositorio.uvm.edu.ve/handle/123456789/59

• ¿Qué es NetBeans? Ventajas y usos. (s/f). Immune Technology Institute. Recuperado el 21 de


septiembre de 2023, de https://immune.institute/blog/que-es-netbeans/

• Gosling, J. (2017, 15 de mayo). Historia de Java. Manual web.


https://www.manualweb.net/java/historia-java/

Página 23

También podría gustarte