0% encontró este documento útil (0 votos)
39 vistas15 páginas

3115 Construcción de Software Pa3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
39 vistas15 páginas

3115 Construcción de Software Pa3

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 15

“AÑO DEL BICENTENARIO, DE LA CONSOLIDACIÓN DE

NUESTRA INDEPENDENCIA, Y DE LA CONMEMORACIÓN


DE LAS HEROICAS BATALLAS DE JUNÍN Y AYACUCHO”

CONSTRUCCIÓN DE
SOFTWARE
INGENIERIA DE SISTEMAS E
INFORMÁTICA
PRODUCTO ACADÉMICO N° 03
ESTUDIANTE:
 CIRO FERNANDEZ CASTILLO
DOCENTE:
 XXXXXXXXXXXXXX

PERÚ - 2024

1|Página
2|Página
Criterio Detalle
Temas Prácticas de Código Completo y Código Limpio
Resultado de Al finalizar la unidad, el estudiante será capaz de aplicar las buenas
aprendizaje de prácticas de código completo y código limpio en la construcción del
la unidad software.
Tipo de
producto Proyecto
académico
Enunciado 1) Para el desarrollo grupal seguir las instrucciones contenidas en este
/Consigna documento.
2) Repasa los temas desarrollados en la unidad previo al desarrollo
del producto académico.
3) Da lectura al caso: Software “Restaurante” tomando especial
atención a todos los requerimientos solicitados y a lo desarrollado
en el Producto Académico N° 01 y 02.
4) Implementar dos módulos identificados en los Productos
Académicos 01 y 02, teniendo en cuenta lo siguiente:
 Diseño de Construcción
 Lenguajes de Construcción
 Estrategia de Pruebas
 Herramientas de Pruebas de Construcción
 Reutilización
 Calidad de Construcción
5) Desarrollar el documento de despliegue de software, que deberá
considerar todas las instrucciones para desplegar los componentes
del software (módulos) desarrollado en un ambiente de pruebas.
Recursos de  Beohar, H., & Mousavi, M. R. (2016). Input–output conformance
aprendizaje testing for software product lines. Journal of Logical and Algebraic
obligatorios Methods in Programming, 85(6), 1131–
1153. doi:10.1016/j.jlamp.2016.09.007
 IEEE Computer Society (2014). Software Engineering Body of
Knowledge v3.0.
 Martin, C. (2009). Clean code: a handbook of agile software
craftsmanship. Upper Saddle River, NJ, Prentice Hall.
 McConnell, S. (2004). Code Complete. (2.a ed.). Washington,
Estados Unidos: Microsoft Press.

Carácter de la El desarrollo del producto académico es grupal. Cada grupo estará


actividad conformado por 4 alumnos.

Formato de  Utilice un procesador de texto (*.doc) para la elaboración de la


presentación presente actividad. El tipo de letra a utilizar debe ser Arial,
tamaño 12.
 El nombre del archivo debe ser grabado de la siguiente forma:
PA1_Apellido1_Apellido2_Apellido3_Apellido4.doc

3|Página
CASO: SOFTWARE “RESTAURANTE”

El software consiste en gestionar el servicio de un restaurante. Todos los dispositivos


de hardware que soportan al sistema están conectados en red local mediante
tecnología inalámbrica. El sistema debe tener las siguientes funciones:

 Presentación de menús a comensales: Los camareros utilizan Tablet PC’s para


presentar en las mesas los menús y platos que ofrece el restaurante a los clientes,
incluyendo sus precios. Cada camarero gestiona un grupo de mesas,
numeradas de 1 a n. El gerente utiliza el sistema para configurar cada semana,
el número de mesas y la asignación de camareros a éstas. La información de los
camareros (DNI, apellidos y nombres) es obtenida del subsistema de recursos
humanos. El gerente puede realizar consultas para obtener una lista ordenada
por mesas en la que se indica el resumen de ventas en dicha mesa y los
camareros asignados en un determinado periodo de tiempo.
 Recepción de peticiones en las mesas: Utilizando este mismo dispositivo los
camareros anotan las peticiones de los clientes, y se calcula un presupuesto
inicial que se le indica a los comensales. El sistema almacena la hora de la
petición.
 Gestión en cocina de solicitudes, elaboración de platos y avisos de fin de
elaboración de platos: Estas peticiones son visualizadas en la cocina utilizando
una pizarra interactiva conectada a un PC. Esta pizarra muestra los platos
solicitados ordenados por hora y mesa. Sobre ella, interaccionando con un
dedo, los cocineros indican los platos ya listos para ser servidos una vez los han
terminado de cocinar. El sistema tiene que recoger la hora de finalización de un
plato.
 Entrega de platos: Los camareros consultan en su Tablet PC, si los platos están
terminados y los recogen en la cocina para llevárselos a los comensales. Los
platos que no requieren elaboración en cocina (bebidas, pan, algunos postres)
son recogidos directamente por el camarero en el almacén de la cocina.
 Facturación: Las boletas y facturas son emitidas directamente por los camareros
desde sus Tablet PC’s, utilizando una impresora común conectada “sin cables”.
Las boletas y facturas se emiten cuando los clientes piden la cuenta.

A continuación, se describen los requerimientos del software:

Tipo de Requerimiento Requerimiento (s)


Requerimiento de Negocio El restaurante requiere automatizar la
gestión del servicio al cliente.
Requerimiento de Usuario 1. El camarero debe atender al
cliente
Requerimiento de Sistema 1.1. El sistema debe permitir

4|Página
Tipo de Requerimiento Requerimiento (s)
mostrar el menú y platos.
1.2. El sistema debe permitir tomar
pedidos de los clientes.
1.3. El sistema debe permitir
consultar los platos ya
terminados.
1.4. El sistema debe emitir
comprobantes de pago
Requerimiento de Usuario 2. El gerente debe administrar
mesas y camareros
Requerimiento de Sistema 2.1. El sistema debe permitir
configurar mesas y
camareros.
2.2. El sistema debe mostrar
estadísticas de mesas y
camareros.
Requerimiento de Usuario 3. El cocinero debe seleccionar
platos ya listos.
Requerimiento de Sistema 3.1. El sistema debe permitir
seleccionar platos ya listos.

5|Página
I. Implementar dos módulos identificados en los Productos Académicos 01 y 02, teniendo
en cuenta lo siguiente:
1. Diseño de Construcción
I.1. Diseño de la Arquitectura

Para la arquitectura del sistema de software para el restaurante, optaremos


por una arquitectura cliente-servidor. Esta elección se basa en la necesidad de
separar las responsabilidades entre los dispositivos de los camareros (clientes)
y el servidor central que gestionará la lógica de negocio y la base de datos. La
arquitectura cliente-servidor es adecuada para este tipo de aplicaciones
distribuidas donde múltiples dispositivos (clientes) necesitan acceder y
actualizar datos de manera centralizada a través de un servidor.

6|Página
I.2. Diseño de la Base de Datos
a. SQL Server

Se ha elegido SQL Server como el sistema de gestión de base de datos para


el proyecto del software de restaurante debido a su robustez, escalabilidad
y capacidades avanzadas de administración. SQL Server es conocido por su
capacidad para manejar eficientemente grandes volúmenes de datos y
múltiples transacciones simultáneas, lo cual es esencial para un entorno de
restaurante con un alto flujo de operaciones. Además, ofrece
características de seguridad avanzadas para proteger la información
confidencial de los clientes y transacciones financieras. La amplia
compatibilidad de SQL Server con diferentes tecnologías y lenguajes de
programación facilitará la integración del sistema de restaurante con otras
aplicaciones y servicios, asegurando un sistema sólido y eficiente para
automatizar la gestión del servicio al cliente en el restaurante.

b. Diseño Físico

7|Página
c. Script – Caso Restaurante

CREATE DATABASE RestauranteDB;


GO

USE RestauranteDB;
GO
-- Tabla para los camareros
CREATE TABLE Camareros (
CamareroID INT PRIMARY KEY,
DNI NVARCHAR(20) NOT NULL,
Apellidos NVARCHAR(50) NOT NULL,
Nombres NVARCHAR(50) NOT NULL
);
-- Tabla para las mesas
CREATE TABLE Mesas (
MesaID INT PRIMARY KEY,
CamareroID INT FOREIGN KEY REFERENCES Camareros(CamareroID),
Capacidad INT NOT NULL
);
-- Tabla para los platos del menú
CREATE TABLE Platos (
PlatoID INT PRIMARY KEY,
Nombre NVARCHAR(100) NOT NULL,
Precio DECIMAL(10, 2) NOT NULL
);
-- Tabla para las órdenes de los clientes
CREATE TABLE Ordenes (
OrdenID INT PRIMARY KEY,
MesaID INT FOREIGN KEY REFERENCES Mesas(MesaID),
HoraPedido DATETIME NOT NULL,
Total DECIMAL(10, 2) NOT NULL
);
-- Tabla para los detalles de las órdenes (relaciona platos con
órdenes)
CREATE TABLE DetallesOrden (
DetalleID INT PRIMARY KEY,
OrdenID INT FOREIGN KEY REFERENCES Ordenes(OrdenID),
PlatoID INT FOREIGN KEY REFERENCES Platos(PlatoID),
Cantidad INT NOT NULL,
Estado NVARCHAR(20) -- Puede ser 'En proceso', 'Listo', etc.
);

-- Tabla para registrar la cocina y el estado de los platos


CREATE TABLE Cocina (
PlatoID INT FOREIGN KEY REFERENCES Platos(PlatoID),
HoraInicio DATETIME NOT NULL,
HoraFin DATETIME,
Estado NVARCHAR(20) -- Puede ser 'En proceso', 'Listo', etc.
);

-- Tabla para facturación


CREATE TABLE Facturas (
FacturaID INT PRIMARY KEY,
OrdenID INT FOREIGN KEY REFERENCES Ordenes(OrdenID),
Total DECIMAL(10, 2) NOT NULL,
FechaEmision DATETIME DEFAULT GETDATE()
);

8|Página
I.3. Diseño de las Interfaces
a. Entrega de Platos:

En este módulo, los camareros utilizan sus Tablet PC para verificar el estado
de los platos en la cocina. El sistema permite a los camareros consultar qué
platos están listos para ser servidos a los comensales. Los platos que
requieren preparación en la cocina son recogidos por el camarero una vez
estén listos, mientras que las bebidas, pan y algunos postres que no necesitan
elaboración en cocina son obtenidos directamente por el camarero desde el
almacén de la cocina. Esta funcionalidad agiliza el proceso de entrega de
alimentos y asegura que los platos sean servidos de manera oportuna y
eficiente a los clientes en sus mesas.

9|Página
b. Facturación: En el módulo de facturación, los camareros pueden emitir
boletas y facturas directamente desde sus Tablet PC cuando los clientes
solicitan la cuenta. Utilizando una impresora conectada de forma
inalámbrica, las boletas y facturas son impresas de manera instantánea y
entregadas a los clientes. Este proceso automatizado simplifica la gestión
de cuentas y transacciones en el restaurante, permitiendo un servicio ágil y
profesional. La integración con la impresora inalámbrica elimina la
necesidad de manipular documentos en papel, contribuyendo a una
experiencia de facturación moderna y eficiente.

10 | P á g i n a
2. Lenguajes de Construcción

Se ha decidido utilizar Java como lenguaje de construcción para el proyecto del


software de restaurante debido a varias razones fundamentales. En primer lugar, Java
es un lenguaje de programación ampliamente utilizado y altamente compatible que
ofrece portabilidad a través de diferentes sistemas operativos. Esto significa que el
software desarrollado en Java puede ejecutarse en una variedad de plataformas, lo
cual es beneficioso para un entorno de restaurante que puede requerir flexibilidad en
los dispositivos utilizados por el personal, como tabletas o PC.

Java es conocido por su robustez y seguridad. Proporciona características de manejo


de errores sólidas y un sistema de recolección de basura automático que ayuda a
prevenir problemas comunes como fugas de memoria. En un entorno crítico como la
gestión de un restaurante, donde la estabilidad y la seguridad son primordiales, Java
ofrece una base sólida para desarrollar un software confiable y seguro.

3. Estrategia de Pruebas

i.Pruebas de Integración: Este enfoque consiste en probar la interacción entre los


diferentes componentes del sistema para garantizar que funcionen de manera
conjunta de manera adecuada. En el contexto del restaurante, esto implica
verificar que las tabletas de los camareros se comuniquen correctamente con el
servidor de la base de datos, que las órdenes enviadas desde las tabletas sean
registradas correctamente en la base de datos y que los cambios en la
configuración de mesas y camareros se reflejen correctamente en todas las partes
del sistema.

ii.Pruebas de Usabilidad: Dado que el software será utilizado por camareros y personal
del restaurante en su día a día, es fundamental realizar pruebas de usabilidad para

11 | P á g i n a
garantizar que la interfaz de usuario sea intuitiva y fácil de usar. Esto implica
evaluar la facilidad con la que los camareros pueden navegar por los menús, tomar
pedidos, consultar el estado de las órdenes y realizar funciones administrativas
como configurar mesas. Las pruebas de usabilidad ayudarán a identificar posibles
puntos de fricción o áreas de mejora en la interfaz, asegurando una experiencia
fluida para los usuarios finales.

4. Herramientas de Pruebas de Construcción

i. JUnit: JUnit es un framework de pruebas unitarias para Java que facilita la creación
y ejecución de pruebas automatizadas a nivel de componente o unidad. Con JUnit,
se pueden escribir pruebas para verificar el comportamiento esperado de clases y
métodos individualmente. Esto es útil para validar la lógica interna de diversas
funciones del sistema, como el cálculo de precios, la gestión de órdenes y la
interacción con la base de datos. JUnit proporciona anotaciones y aserciones
simples que simplifican la escritura y ejecución de pruebas, lo que contribuye a un
desarrollo más robusto y libre de errores.

ii. Selenium: Selenium es una herramienta de automatización de pruebas funcional


diseñada específicamente para pruebas de interfaces web. Dado que el software
de restaurante probablemente incluya una interfaz de usuario para camareros y
gerentes en forma de aplicaciones web o interfaces basadas en navegador,
Selenium puede ser utilizado para automatizar pruebas de extremo a extremo que
simulan las acciones de un usuario real. Con Selenium, se pueden crear scripts que
naveguen por la aplicación, interactúen con elementos de la interfaz y verifiquen
el comportamiento esperado, como la realización de pedidos, la consulta de
menús y la emisión de facturas. Esta herramienta es valiosa para detectar
problemas de usabilidad y funcionalidad en la aplicación desde la perspectiva del
usuario.

12 | P á g i n a
13 | P á g i n a
5. Reutilización

La reutilización es fundamental para mejorar la eficiencia del desarrollo, reducir la


duplicación de código y mantener un sistema coherente y fácil de mantener.

i. Uso de Bibliotecas y Frameworks: Java cuenta con una amplia variedad de


bibliotecas y frameworks de código abierto que pueden ser utilizados para
resolver problemas comunes y tareas repetitivas en el desarrollo de software.
Se pueden utilizar frameworks como Spring o Hibernate para simplificar el
manejo de la capa de persistencia y la inyección de dependencias. Estos
frameworks proporcionan componentes listos para usar que pueden integrarse
fácilmente en el sistema del restaurante, evitando la necesidad de reinventar
la rueda y acelerando el proceso de desarrollo.

ii. Diseño Orientado a Objetos y Patrones de Diseño: Aplicar principios de diseño


orientado a objetos y utilizar patrones de diseño como el patrón Singleton, el
patrón Factory o el patrón Strategy puede facilitar la reutilización de código.
Estos patrones permiten encapsular comportamientos comunes en clases y
componentes reutilizables, lo que facilita su integración en diferentes partes
del sistema. Se puede diseñar una clase genérica para manejar la conexión con
la base de datos que pueda ser utilizada en varios módulos del software.

6. Calidad de Construcción

Para asegurar la calidad de construcción en el desarrollo del software de restaurante,


se pueden utilizar estándares reconocidos internacionalmente como referencia. Dos
marcos de referencia ampliamente utilizados son ISO/IEC 25010 y COBIT.

i. ISO/IEC 25010 - Sistema de Calidad del Producto de Software: Esta norma


proporciona un marco para la evaluación de la calidad del producto de
software. Define un conjunto de características de calidad y subcaracterísticas
que pueden ser utilizadas para especificar, medir y evaluar la calidad del
software. Algunas de las características incluidas en ISO/IEC 25010 son la
funcionalidad, la usabilidad, la fiabilidad, la eficiencia y la mantenibilidad.
Establece criterios y métricas que permiten evaluar el grado en que un

14 | P á g i n a
software cumple con estas características, lo que ayuda a garantizar que el
software de restaurante sea robusto, fácil de usar, fiable y eficiente.

ii. COBIT (Control Objectives for Information and Related Technologies): COBIT es
un marco de referencia ampliamente utilizado para la gobernanza y gestión de
tecnología de la información (TI). Si bien COBIT no se centra exclusivamente en
la calidad del software, proporciona directrices y controles que pueden ser
aplicados para asegurar la calidad en la construcción y mantenimiento de
sistemas de información, incluyendo aplicaciones de software como el
software de restaurante. COBIT aborda aspectos como la gestión de riesgos, el
control interno, la seguridad y la conformidad, que son fundamentales para
garantizar la calidad general de un sistema de software en un entorno
empresarial.

15 | P á g i n a

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy