DOCUMENTO DE DISEÑO DEL SOFTWARE (ADD)
Proyecto:Programa para gestionar el alquiler de maquinaria agrícola
Autor: Aaron Guardiola
Fecha:
Documento: GesAMA
CONTENIDO
[Link]
1.1 Objetivo
1.2 Ámbito
1.3 Definiciones, siglas y abreviaturas
2. PANORÁMICA DEL SISTEMA
3. CONTEXTO DEL SISTEMA
4. DISEÑO DEL SISTEMA
4.1 Metodología de diseño de alto nivel
4.2 Descomposicion del sistema
5. DESCRIPCIÓN DE COMPONENTES
6. VIABILIDAD Y RECURSOS ESTIMADOS
[Link]
1.1 Objetivo
-Uso=alquiler de maquinas
-Min 10 cosechadoras
-Hasta 20 fincas
Las operaciones del programa serán las siguientes:
x Editar Máquina
x Editar Finca
x Listar Máquinas
x Estado Fincas
x Alquilar Máquina
x Plan Mensual de Máquina
1.2 Ámbito
x Teclado estándar
x pantalla
Este constara de una version simple con una interfaz hombre-maquina para pantalla
alfanumerica y teclado.
1.3 Definiciones, siglas y abreviaturas
Una redacción tan escueta carece de utilidad.
2. PANORÁMICA DEL SISTEMA
2.1 Objetivo y funciones
x Programa de gestion de alquiler de maquinas cosechadoras
GesAMA: Gestión de Alquiler de Máquinas Agrícolas(Funciones)
Editar Máquina (Pulsar M)
Editar Finca (Pulsar F)
Listar Máquinas (Pulsar L)
Estado Fincas (Pulsar E)
Alquiler Máquina (Pulsar A)
Plan Mensual Máquina (Pulsar P)
Salir (Pulsar S)
2.2 Descripcion funcional
El programa estara dotado de una interfaz simple la cual expone todas las opciones de
las que se dispone
GesAMA: Gestión de Alquiler de Máquinas Agrícolas
Editar Máquina (Pulsar M)
Editar Finca (Pulsar F)
Listar Máquinas (Pulsar L)
Estado Fincas (Pulsar E)
Alquiler Máquina (Pulsar A)
Plan Mensual Máquina (Pulsar P)
Salir (Pulsar S)
Teclear una opción válida (M|F|L|E|A|P|S)?
1.- La opción “Editar Máquina” permite introducir los datos de una de las 10 máquinas.
Esta opción debe avisar del previo borrado de todos los datos de la máquina con ese
mismo identificador. La capacidad de la cosechadora se dará en hectáreas/día.
Editar Máquina:
Identificador (número entre 1 y 10)? 3
Nombre (entre 1 y 20 caracteres)?
Apolo Tipo (G-Grano, U-Uva, A-Aceituna, B-Borrar)?G
Capacidad (hectáreas/día)?7
Ubicación inicial (Latitud)? 37.755
Ubicación inicial (Longitud)?-4.467
IMPORTANTE: Esta opción borra los datos anteriores. Son correctos los nuevos datos
(S/N)? S
2.- La opción “Editar Finca” permite introducir los datos de una de las 20 fincas. Esta
opción debe avisar del borrado previo de todos los datos de la finca con ese
identificador. Cuando se elige el tipo B – Borrar, la finca con ese identificador se
elimina de la lista de fincas.
Editar Finca:
Identificador (número entre 1 y 20)? 5
Nombre (entre 1 y 20 caracteres)? Espartal
Tipo (G-Grano, U-Uva, A-Aceituna, B-Borrar)?G
Tamaño (Hectáreas)?75 Ubicación (Latitud)? 42.454
Ubicación (Longitud)?-4.059
IMPORTANTE: Esta opción borra los datos ante
3.- La opción “Listar Máquinas” permite conocer todas las máquinas disponibles
(opción T) o bien sólo las del tipo seleccionado (opciones G, U, A). Esta opción tendrá
el siguiente formato:
Tipo de máquinas a listar (G-Grano, U-Uva, A-Aceituna, T-Todas)?G
Id Nombre Tipo Capacidad
1 Insignia Grano 10 hectáreas/día
3 Apolo Grano 7 hectáreas/día
7 Alondra Grano 5 hectáreas/día
4.- La opción “Estado Fincas” permite conocer el estado de todas las fincas o bien sólo
las del tipo seleccionado. Esta opción tendrá el siguiente formato:
Estado de fincas a listar (G-Grano, U-Uva, A- Aceituna, T- Todas)?T
Id Nombre Tipo Tamaño Latitud Longitud
2 Bercial Grano 94 hectáreas 38.231 -2.567
5 Espartal Grano 75 hectáreas 42.454 -4.059
11 Gamonal Uva 58 hectáreas 40.221 -3.234
15 Zorzal Aceituna 106 hectáreas 39.111 0.675
19 Sotillo Grano 132 hectáreas 41.003 -1.345
5.- La opción “Alquiler Máquina” permite planificar el alquiler de una máquina para
realizar la cosecha de una determinada finca. Esta opción tendrá el siguiente formato:
Alquiler Máquina:
Fecha comienzo cosecha: Día?9
Fecha comienzo cosecha: Mes?7
Fecha comienzo cosecha: Año?2024
Identificador de finca (número entre 1 y 20)? 5
Identificador de máquina (número entre 1 y 10)?3
Resumen alquiler:
Máquina alquilada: Apolo (Id = 3)
Finca a cosechar: Espartal (Id = 5)
Traslado desde: finca Bercial (Id = 2)
Distancia entre fincas: 493 km en línea recta
Tiempo de traslado: 8/7/2024 (1 día)
Fecha comienzo: 9/7/2024
Duración cosecha: 11 días
Fecha finalización: 19/7/2024
Es correcta la operación (S/N)? S
6.- La opción de “Plan mensual Máquina” solicita el identificador de la máquina, el mes
y el año del que se quiere el plan y tendrá el siguiente formato:
Plan mensual Máquina:
Identificador máquina? 3
Selección
Mes? 7
Selección Año? 2024
Plan Máquina: Apolo
Julio 2024
L M X J V S D
C1 C1 C1 C1 C1 06 07
Tr C2 C2 C2 C2 C2 C2
C2 C2 C2 C2 C2 20 21
22 Tr C3 C3 C3 C3 C3
C3 C3 C3
Tiempo de traslados (Tr): 2 días
Tiempo de esperas: 5 días
Cosecha C1: finca Bercial
Cosecha C2: finca Espartal
Cosecha C3: finca Sotillo
Tiempo total de cosechas (C#): 24 días
Mostrar otro mes (S/N)? N
3. CONTEXTO DEL SISTEMA
No hay conexion con otros sistemas
No hay análisis: no existe una especificación de los requisitos funcionales más allá de las indicaciones
sobre la E/S esperada.
4. DISEÑO DEL SISTEMA
4.1 Metodología de diseño de alto nivel. Se utiliza la metodología de diseño
estructurado, basada en la descomposición funcional del sistema
4.2 Descomposición del sistema. La estructura modular del sistema aparece
representada en el diagrama de clase del UML adjunto.
5. DESCRIPCIÓN DE COMPONENTES
5.1 Módulo: SISTEMA DE ALQUILAR
5.1.1. Tipo: Base de datos grafica
5.1.2. Objetivo
Mostrar la pantalla principal con las diferentes opciones de selección
5.1.3. Función
Mostrar las diferentes opciones y controlar la ejecucion de estas
5.1.4. Subordinados: MAQUINA, FINCA, LISTA, ESTADO FINCAS, ALQUILER, PLAN MES
MAQUINA, SALIR
5.1.5. Dependencias: Ninguna
5.1.6. Interfases: Tablas de datos anteriormente introducidos
No se entiende qué uso se da al término 'Interfaz' ni a qué se refieren los elementos que se enumeran a continuación
Lista de maquinas(G-Grano, U-Uva, A-Aceituna, T-Todas)
Id Nombre Tipo Capacidad
Estado de fincas:
Id Nombre Tipo Tamaño Latitud Longitud
Alquiler
Id-maquina Finca Tiempo
5.1.7. Recursos: Ninguno
5.1.8. Referencias: Ninguno
5.1.9. Proceso: Indicar 'algo parecido' a la E/S no equivale a describir el funcionamiento de nada: ni de un
'proceso' ni del código que lo debería realizar.
Iniciar
REPETIR- Presentar menú principal
Elegir opción
Presionar M
Mandar a modulo MAQUINA
Presionar F
Mandar a modulo FINCA
Presionar L
Mandar a modulo LISTA
Presionar E
Mandar a modulo ESTADO FINCAS
Presionar A
Mandar a modulo ALQUILER
Presionar P
Mandar a modulo PLAN MES MAQUINA
Presionar S
Salir del programa
5.2. Módulo: MAQUINA
5.2.1. Tipo: Base de datos grafica
5.2.2. Objetivo
Registrar datos nuevos de una maquina
5.2.3. Función
Registrar datos nuevos de una maquina y guardar los datos ademas de dar la opcion de
cancelarlo
5.2.4. Subordinados: Ninguno
5.2.5. Dependencias: SISTEMA DE ALQUILAR
5.2.6. Interfases: Ninguno
5.2.7. Recursos: Ninguno
5.2.8. Referencias: Ninguno
5.2.9. Proceso:
Inicio
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Si S entonces
Actualizar lista Lista de maquinas
Salir del programa
5.3 Módulo: FINCA
5.3.1. Tipo: Base de datos grafica
5.3.2. Objetivo
Registrar datos nuevos de una finca
5.3.3. Función
Registrar datos nuevos de una finca y guardar los datos ademas de dar la opcion de
cancelarlo
5.3.4. Subordinados: Ninguno
5.3.5. Dependencias: SISTEMA DE ALQUILAR
5.3.6. Interfases: Ninguno
5.3.7. Recursos: Ninguno
5.3.8. Referencias: Ninguno
5.3.9. Proceso:
Inicio
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Si S entonces
Actualizar lista Estado de fincas
Salir del programa
5.4 Módulo: LISTA
5.4.1. Tipo: Base de datos grafica
5.4.2. Objetivo
Mostrar los datos de las maquinas
5.4.3. Función
Mostrar los datos de la lista Lista de maquinas
5.4.4. Subordinados: Ninguno
5.4.5. Dependencias: SISTEMA DE ALQUILAR
5.4.6. Interfases: Ninguno
5.4.7. Recursos: Ninguno
5.4.8. Referencias: Ninguno
5.4.9. Proceso:
Inicio
Mostrar Lista de maquinas
5.5 Módulo: LISTA
5.5.1. Tipo: Base de datos grafica
5.5.2. Objetivo
Registrar datos nuevos de una maquina
5.5.3. Función
Mostrar datos de la tabla Estado de Fincas
5.5.4. Subordinados: Ninguno
5.5.5. Dependencias: SISTEMA DE ALQUILAR
5.5.6. Interfases: Ninguno
5.5.7. Recursos: Ninguno
5.5.8. Referencias: Ninguno
5.5.9. Proceso:
Inicio
Mostrar Estado de Fincas
5.6 Módulo: Alquiler maquina
5.6.1. Tipo: Base de datos grafica
5.6.2. Objetivo
Registrar datos nuevos de una maquina
5.6.3. Función
Registrar datos nuevos de una maquina y guardar los datos además de dar la opción de
no hacerlo
5.6.4. Subordinados: Ninguno
5.6.5. Dependencias: SISTEMA DE ALQUILAR
5.6.6. Interfases: Ninguno
5.6.7. Recursos: Ninguno
5.6.8. Referencias: Ninguno
5.6.9. Proceso:
Inicio
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Si S entonces
Actualizar lista ALQUILER
Salir del programa
5.7 Módulo: PLAN MES MAQUINA
5.7.1. Tipo: Base de datos grafica
5.7.2. Objetivo
Registrar datos nuevos de el alquiler de una maquina, como su tiempo de alquiler,etc
5.7.3. Función
Registrar datos nuevos del alquiler de una maquina y guardar los datos
5.7.4. Subordinados: Ninguno
5.7.5. Dependencias: SISTEMA DE ALQUILAR
5.7.6. Interfases: Ninguno
5.7.7. Recursos: Ninguno
5.7.8. Referencias: Ninguno
5.7.9. Proceso:
Inicio
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Pregunta
Entrada:
Si S entonces
Actualizar lista ALQUILER
Salir del programa
6. VIABILIDAD Y RECURSOS ESTIMADOS
El programa puede ejecutarse en una maquina tipo PC de gama baja. Las
especificaciones no están definidos al momento de la escritura del documento, pero
por el tipo se estima que será:
Procesador: x32 mínimo con 500mhz y un núcleo o lo mínimo del sistema operativo
Memoria: la mínima requerida por el sistema
Sistema operativo: capaz de ejecutar el programa
Pantalla: Modo texto, puede ser monocromo o a color
Disco duro: Mínimo sistema operativo
En general, el diseño es bastante deficiente.
ANÁLISIS
Si el diseño es la especificación del funcionamiento de un código que se comporta de acuerdo a un conjunto de requisitos
funcionales, estos últimos no se definen en ninguna parte del trabajo (la E/S NO SON los requisitos funcionales ni evidencian
el comportamiento deseado). Es más, restringir la atención a la E/S, exclusivamente, provoca la elaboración de software 'ad
hoc', sin generalización y carente de las cualidades que se propugnan en esta asignatura.
El Diagrama de Casos de Uso (UML) es una representación 'de planteamiento' (análisis) que se refiere a la funcionalidad
esperada en el software que se pretende construir. Por tanto, es un primer paso en la obtención de los requisitos funcionales
buscados. Los modelos y diagramas DEBEN INCLUIRSE en la redacción de la memoria, NO EN OTRA APLICACIÓN O
HERRAMIENTA. Aún así, el Diagrama de Casos de Uso aportado no se corresponde con el significado de este tipo de
diagrama: no es ni un diagrama de flujo ni uno de transición de estados, como lo que parece representar en él. No tiene
utilidad.
DISEÑO
Se utiliza un Diagrama de Clases con el que se pretende describir una estructura arquitectónica del funcionamiento: 6 clases
que dependen de otra 'principal' o 'de gobierno'.
En primer lugar, ni la flexibilidad ni la independencia funcional se pueden alcanzar centrando el funcionamiento del código en
esas 6 clases. Para expresar la arquitectura del funcionamiento debería utilizar un Diagrama de Componentes, donde cada
componente contiene un conjunto de clases que implementa su funcionamiento particular.
Por otro lado, esas 6 Clases-Componentes tampoco son las adecuadas para realizar las funciones de GESAMA con
independencia funcional (cohesión alta y acoplamiento débil) y flexibilidad, ni por la información que, necesariamente, deben
manejar (los objetos que deberían contener y sus correspondientes operaciones) ni, en algunos casos, por el nombre o la
tarea que supuestamente hacen. Los Componentes funcionales NO SON LOS CASOS DE USO, en general:
- MÁQUINA: Debería contener los objetos (Clases) cuya función es manejar la información que corresponde,
exclusivamente, a las máquinas (cómo se organiza, qué se hace con esa información y cómo).
- FINCA: Debería contener los objetos (Clases) cuya función es manejar la información que corresponde, exclusivamente, a
las fincas (cómo se organiza, qué se hace con esa información y cómo).
- ESTADO FINCAS: No hay descripción del módulo, aunque parece que su objetivo es recuperar la información de la
colección de fincas registradas. Si solo se maneja esa información (la de las fincas) esta operación debería estar incluida en
el módulo FINCA.
- LISTA: El nombre es ambiguo. Por su 'Objetivo', parece que su función es recuperar la información de la colección de
máquinas registradas. Si solo se maneja esa información (la de las máquinas) esta operación debería estar incluida en el
módulo MÁQUINA.
- ALQUILER: El nombre es ambiguo. Se 'renombra' como 'Alquiler máquina', aunque su 'Objetivo', «Registrar datos nuevos
de una maquina», parece similar a la edición de los datos de una máquina. No se evidencia en qué consiste el servicio de
cosecha prestado por una máquina, en una finca y en un período temporal (registro de alquiler), qué información involucra ni
qué hay que hacer con ella, ni se diferencia de la planificación temporal de esos servicios (todo esto hay que definirlo en el
análisis para poder implementar su funcionamiento con código -Diseño-).
- PLAN MES MÁQUINA: El nombre es ambiguo. Por su 'Objetivo', parece que su función es modificar la información de un
elemento de la colección de máquinas registradas. Si se refiere a una consulta de la planificación de los servicios de una
máquina, no se indica la información de qué objetos se requiere para ello.
La descripción de los elementos de código, y de su funcionamiento (diseño), se realiza verbalmente, por lo que resulta poco
significativo y carece de utilidad para la implementación del sistema.
En definitiva: ni está bien analizado el comportamiento que se busca en las funciones de GESAMA, ni se especifica cómo lo
hace el código.