]> git.llucax.com Git - z.facultad/75.06/emufs.git/blob - doc/gui.lyx
* bugfixes
[z.facultad/75.06/emufs.git] / doc / gui.lyx
1 #LyX 1.3 created this file. For more info see http://www.lyx.org/
2 \lyxformat 221
3 \textclass article
4 \language spanish
5 \inputencoding auto
6 \fontscheme palatino
7 \graphics default
8 \paperfontsize 10
9 \spacing single 
10 \papersize Default
11 \paperpackage a4
12 \use_geometry 1
13 \use_amsmath 0
14 \use_natbib 0
15 \use_numerical_citations 0
16 \paperorientation portrait
17 \leftmargin 2cm
18 \topmargin 1cm
19 \rightmargin 1cm
20 \bottommargin 2cm
21 \secnumdepth 3
22 \tocdepth 3
23 \paragraph_separation indent
24 \defskip medskip
25 \quotes_language english
26 \quotes_times 2
27 \papercolumns 1
28 \papersides 1
29 \paperpagestyle default
30 \bullet 1
31         0
32         24
33         -1
34 \end_bullet
35
36 \layout Title
37
38 EMUFS Viewer
39 \layout Section
40
41 Introducción
42 \layout Standard
43
44 La interfaz de visualización de EMUFS permite interactuar con los distintos
45  tipos de archivos para cada conjunto de datos almacenado (ya sean facturas,
46  articulos, o notas de facturas).
47 \layout Section
48
49 Instalación
50 \layout Standard
51
52 Para poder correr la interfaz gráfica necesitará previamente compilarla
53  (así como compilar los programas auxiliares), para ello necesitará cumplir
54  con los siguiente requisitos:
55 \layout Enumerate
56
57 Compilador gcc versión 3.3.x preferentemente.
58  No podemos garantizar la compatibilidad con otras versiones debido a cambios
59  drásticos que sufrieron las versiones anteriores
60 \layout Enumerate
61
62 Parser XML libxml2 versión 2.6.x .
63  Versiones 2.5 y anteriores con incompatibles en la API y no funcionarán.
64 \layout Enumerate
65
66 libncurses version 5 o superior
67 \layout Enumerate
68
69 GNU Make
70 \layout Subsection
71
72 Compilar GUI
73 \layout Standard
74
75 Para compilar la GUI solo debe ejecutar el comando make dentro del directorio
76  raíz del proyecto.
77  Esto compilará primero una biblioteca estática con los manejadores de los
78  3 tipos de archivo y luego compilará la GUI.
79 \layout LyX-Code
80
81 #~/emufs/> make
82 \layout Subsection
83
84 Preparar el banco de pruebas
85 \layout Standard
86
87 Antes de comenzar a utilizar la GUI deberá generar los archivo XML desde
88  donde serán leídos los datos para generar los archivos que luego se utilizará.
89  Para ello el proceso de compilación creará 2 ejecutable : generar_fact
90  y generar_art, que se ubicarán en la carpeta generar dentro de emufs_gui.
91 \layout Standard
92
93 Estos programas generan facturas y artículos respectivamente en forma aleatorio,
94  utilizando diccionarios de datos para llenar los campos.
95  Primero deberá ejecutar generar_art, ya que éste último crea un diccionario
96  de artículos que luego utilizará generar_fact para los items de las facturas.
97 \layout Standard
98
99 Ambos programas reciben 2 parámetros : el nombre de archivo de salida y
100  la cantidad de entradas a generar.
101 \layout Section
102
103 Línea de comandos
104 \layout Standard
105
106 El programa acepta varios parámetros, algunos de ellos opcionales, otros
107  obligatorios dependiendo de las elecciones realizadas.
108 \layout Standard
109
110 Para obtener una completa descripción de los parámetros el programa acepta
111  
112 \begin_inset Quotes eld
113 \end_inset 
114
115 -h
116 \begin_inset Quotes erd
117 \end_inset 
118
119  o 
120 \begin_inset Quotes eld
121 \end_inset 
122
123 --help
124 \begin_inset Quotes erd
125 \end_inset 
126
127  para mostrar una ayuda en línea.
128 \layout Standard
129
130 Si el programa es ejecutado sin parámetros tratará de recuperar los artículos
131  y las facturas desde archivo previamente creados.
132 \layout Standard
133
134 Para crear un archivo de artículos a partir de un archivo XML bien formado,
135  se debe ejecutar el programa con la opción 
136 \begin_inset Quotes eld
137 \end_inset 
138
139 -a
140 \begin_inset Quotes erd
141 \end_inset 
142
143 .
144  Dicha opción espera que el siguiente parámetro sea el nombre del archivo
145  a leer, y que éste útimo tenga extensión xml (notar que es solo minúsculas).
146  A continuación espera encontrar el tipo de archivo que se quiere crear,
147  pudiendo ser éste último 1, 2 ó 3.
148  De ser el tipo de archivo con bloques, se le exigirá que ingrese como último
149  parámetro el tamaño del mismo.
150 \layout Standard
151
152 Para crear el archivo de facturas es el mismo procedimiento, solo que utilizando
153  el parámetro 
154 \begin_inset Quotes eld
155 \end_inset 
156
157 -f
158 \begin_inset Quotes erd
159 \end_inset 
160
161 .
162  El archivo de notas es creado por el sistema de tipo 2 por defecto y no
163  puede ser cambiado desde la línea de comandos.
164  Para ello puede utilizar la opción correspondiente del menú mantenimiento.
165 \layout Standard
166
167 Debe saber que estos parámetros no son mutuamente excluyentes, por lo que
168  podrá utilizarlos al mismo tiempo.
169 \layout Section
170
171 Características
172 \layout Standard
173
174 A continuación se da una lista detallada de las operaciones que son posibles
175  hacerse desde esta interfaz :
176 \layout Itemize
177
178 Alta, baja y modificación de Artículos.
179  Para ello se abrirá una ventana donde se podrá editar comodamente los datos.
180 \layout Itemize
181
182 Alta, baja y modificación
183 \begin_inset Foot
184 collapsed true
185
186 \layout Standard
187
188 En la modificación de una factura no se podrán cambiar ni la cantidad de
189  items y los datos de los mismo!.
190  La nota si podrá ser modificada.
191 \end_inset 
192
193  de Facturas.
194 \layout Itemize
195
196 Ver registros.
197  Ver fisicamente los registros de cualquiera de los archivos sin importar
198  el tipo al que pertenezcan.
199  Desde aquí podrá tambien eliminar, agregar o modificar el registro actual.
200 \layout Itemize
201
202 Ver Bloques.
203  Para aquellos archivos que hallan sido creados con un tipo con bloques,
204  podrá verlos fisicamente, viendo el bloque actual y los anteriores/posteriores.
205 \layout Itemize
206
207 Ver las estadísticas de cada archivo según su tipo, para realizar comparativas
208 \layout Itemize
209
210 Cambiar el formato de cualquier tipo o parametros de archivo.
211 \layout Itemize
212
213 Compactar los archivos.
214 \layout Section
215
216 Decisiones de Diseño
217 \layout Standard
218
219 Durante el desarrollo se han tomado ciertas decisiones en el diseño o restriccio
220 nes.
221  En este punto nos centraremos en las especificas tomadas por la interfaz
222  de visualización, y no tomaremos en cuenta las que ponen los tipos de archivo
223  por si solos.
224 \layout Enumerate
225
226 La cantidad de items por factura es igual a 10 para archivos de registro
227  de longitud fija y bloque parametrizado (TIPO 3).
228  Esta decición fue tomada por poner un valor típico de items que puede haber
229  en una factura, evaluando un caso de un comercio chico.
230  Como el tipo de archivo permite cortar un registro y guardarlo en varios
231  bloques consecutivos, la restricción de cantidad solo es un hecho de elección,
232  y así pusieramos 100, 1000, 10000 no habría diferencia, ya que el tipo
233  de archivo lo guardaría sin problemas.
234 \layout Enumerate
235
236 Si el archivo es de TIPO 3 y se agregan más de 10 items estos son truncados
237  y descartados sin aviso al usuario.
238  Esta fue una desición basada en el tiempo del proyecto.
239  De tener que validar y consultar al usuario se hubiera perdido tiempo de
240  mucho valor para completar objetivos más importantes del TP.
241 \layout Enumerate
242
243 Los campos son delimitados por el caracter nulo (en caso de los strings)
244  y por la longitud del tipo de dato en caso de los campos numéricos.
245  De esta forma se aprovechan las características de manejo de string en
246  C.
247 \layout Section
248
249 Vista de Registros
250 \layout Standard
251
252 Un ejemplo de vista de registros es la que se observa a continuación :
253 \layout Standard
254
255
256 \begin_inset Graphics
257         filename /home/share/programacion/FIUBA/Datos/emufs/doc/gui_ver_registros.eps
258         scale 95
259         keepAspectRatio
260
261 \end_inset 
262
263
264 \layout Standard
265
266 Como puede verse el registro actual se ve resaltado respecto de los demás.
267  También se puede observar que en este caso (el bloque es de 2000 bytes)
268  no entra toda la información en pantalla, pero es posible desplazar utilizando
269  las teclas A y Z.
270 \layout Standard
271
272 Los datos binarios son convertidos a texto para ser mostrados, siendo la
273  representación elegida :
274 \layout Itemize
275
276 (XXX) : Representa un ID.
277  En el caso de las facturas también aparece en los datos el número de índice
278  de la nota asociada con esta representación.
279 \layout Itemize
280
281 {XXX} : Representa el tamaño de los datos.
282  Esto siempre y cuando el registro sea de longitud variable (TIPO1 y TIPO2).
283 \layout Standard
284
285 También es posible ejecutar acciones de edición sobre el registro seleccioado,
286  así como buscar por ID de registro.
287 \layout Standard
288
289 Cuando se procesa la información en crudo (es decir, el area de datos) algunos
290  bytes son modificados para evitar errores visuales.
291  Un caso es cuando el bytes es compuesto por 8 bits de valor 0 (caracter
292  
293 \backslash 
294 0).
295  Lo que se hace es cambiarlo por un caracter que tenga representacion visual
296  (en este caso un *).
297  Lo mismo suscede para los caracteres de control (
298 \backslash 
299
300 \backslash 
301
302 \backslash 
303 r por ejemplo) y los espacion.
304  Esta política fue tomada ya que estos caracteres modifican la salida en
305  pantalla, y de no evitar su envío a la pantalla, producirían resultados
306  inesperados en la visualización.
307 \layout Section
308
309 Bugs conocidos
310 \layout Standard
311
312 A continuación se enumera los errores que sabemos que existen, que no hemos
313  tenido tiempo de corregir, pero que no hacen al TP en sí :
314 \layout Enumerate
315
316 Si la consola o terminal cambia de tamaño la GUI no sigue el nuevo tamaño,
317  pudiendose producir defectos visuales.
318  Esto es debido a que se debe capturar una señal que envia el SO, pero no
319  pudimos hacer que funciones con todas las terminales bajo X, por lo que
320  se decidio dejarlo para cuando tengamos tiempo.
321 \layout Enumerate
322
323 Si la GUI fue compilada con -DDEBUG y no se utiliza un PIPE para redirigir
324  la salida de error estandar, es posible que algun componente del programa
325  emita un mensaje de debug o warning y esta cause defectos de visualización
326  o el programa deje directamente de funcionar.
327  Esto es un defecto de la biblioteca NCurses.
328 \the_end