3115 Construcción de Software Pa3
3115 Construcción de Software Pa3
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.
3|Página
CASO: SOFTWARE “RESTAURANTE”
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
6|Página
I.2. Diseño de la Base de Datos
a. SQL Server
b. Diseño Físico
7|Página
c. Script – Caso Restaurante
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.
);
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
3. Estrategia de Pruebas
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.
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.
12 | P á g i n a
13 | P á g i n a
5. Reutilización
6. Calidad de Construcción
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