[[TOC(heading=This section pages, WikiStart, noheading, AnalisisDominio, PropuestaDesarrollo, PlanProyecto, EstandaresDesarrollo, IdentificacionFuncionalidades, Codificacion, AnalisisyDiseno, Pruebas, Liberacion, heading=Tabla de Contenido)]] = Especificación de Funcionalidades = == Requisitos Funcionales == === 1.- Cargar Matriz === {{{ #!plantuml @startuml title Cargar Matriz de Contabilidad Social left to right direction Sistema -- (Solicitar parámetros de la matriz) note right of (Solicitar parámetros de la matriz) nro. de cuenta, ruta del archivo, delimitador, año, país. end note Sistema -- (Leer archivos .csv) (Leer archivos .csv) --> (cargar información\n contenida en el archivo) Sistema -- (Mostrar Matriz Cargada) @enduml }}} ||'''''Nombre del caso de uso:'''''[[BR]]||Cargar Matriz de Contabilidad Social|| ||'''''Actores participantes:'''''[[BR]]||Usuario|| ||'''''Condiciones de entrada:'''''[[BR]]||El usuario cuenta con archivo .csv donde se encuentra tanto los nombres de las columnas como los valores de cada una de las celdas|| ||'''''Condiciones de salida:'''''[[BR]]||Es sistema muestra en la interfaz la matriz cargada|| ||'''''Flujo de básico:'''''[[BR]]||1.- El usuario hace click sobre el menú archivo.\\ 2.- El sistema despliega tres opciones: Cargar Matriz, Exportar Matriz y Salir. \\ 3.- El Usuario selecciona '''Cargar Matriz'''\\ 4.- El sistema despliega una ventana solicitando:Número de cuentas, delimitador, año, país y lugar donde se encuentra ubicado el archivo .csv \\ 5.- El Usuario introduce datos solicitados\\ 6.- El Sistema verifica validez de los datos. \\ 7.- Sistema carga archivo .csv \\8.- El Sistema identifica la primera fila del archivo. \\9.- El sistema duplica y traspone dicha fila y la coloca en la primera columna \\10.- El Sistema solicita nombre de la cuenta y número de filas que la conforman. \\11.- El Usuario introduce los datos solicitados. \\ 12.- El sistema muestra la matriz con división de las cuentas, tanto en las filas como columnas || ||'''''Flujos alternativos:'''''[[BR]]|| || ||'''''Requisitos especiales:'''''||El archivo .csv debe tener el nombre de las filas(y columnas) sólo en la primera fila, estos nombres se replicaran y se colocaran por el lado de la columna. || === 2.- Cálculos Básicos de Matrices === {{{ #!plantuml @startuml title Cálculos Básicos de Matrices left to right direction Sistema --(Construir Matriz Identidad) Sistema -- (Restar Matrices) Sistema -- (Calcular Matriz Inversa) Sistema -- (Multiplicar Matriz por Matriz) Sistema -- (Multiplicar Matriz por Vector) Sistema -- (Multiplicar elementos de la matriz) @enduml }}} === 3.- Coeficientes Técnicos === {{{ #!plantuml @startuml title Coeficientes Técnicos left to right direction Usuario -- (Seleccionar Operación) note right of (Seleccionar Operación) Coeficientes técnicos verticales u horizontales. end note (Seleccionar Operación) --> (Seleccionar Cuentas) Sistema -- (Sumar total de\n Columna o fila) (Sumar total de\n Columna o fila) --> (Dividir cada elemento\n de la matriz con el\n total correspondiente a la columan o fila) Sistema --(Mostrar en otra pestaña\n los resultados obtenidos) Sistema -- (Descargar resultados\n en archivo .csv) @enduml }}} ||'''''Nombre del caso de uso:'''''[[BR]]||Cálculos de Coeficientes Técnicos|| ||'''''Actores participantes:'''''[[BR]]||Usuario|| ||'''''Condiciones de entrada:'''''[[BR]]||Ya debe estar cargada la matriz base|| ||'''''Condiciones de salida:'''''[[BR]]||Es sistema muestra en la interfaz la matriz de coeficientes técnicos|| ||'''''Flujo de básico:'''''[[BR]]||1.- El usuario hace click en el menú '''herramienta'''\\ 2.- El usuario selecciona una de las opciones '''Coeficientes técnicos verticales''' '''Coeficientes técnicos horizontales''' \\ 3.- El sistema solicita las cuentas a utilizar.\\ 4.- El usuario selecciona las cuentas\\ 5.- El sistema calcula el total por fila o columna según sea el caso.\\ 6.- El sistema divide cada uno de los elementos de la matriz por columna o fila de acuerdo caso. \\ 7.- El sistema valida que los coeficientes sean menor a uno (1)\\8.- El Sistema verifica que el total de la columna o fila sea igual a (1) de acuerdo al caso. \\9.- El Sistema muestra los resultados en una pestaña. \\10.- El Sistema activa en el menú archivo la opción '''Exportar a .csv'''.|| ||'''''Flujos alternativos:'''''[[BR]]||7.1 Si el coeficiente es negativo o mayor a uno, el Sistema debe mostrar un aviso de error y/o señalar en rojo la celda donde están dichos coeficientes. || ||'''''Requisitos especiales:'''''|||| === 4.- Modelo de Multiplicadores de MCS === {{{ #!plantuml @startuml title Modelo de Multiplicadores de MCS left to right direction Sistema -- (Solicitar Cuentas Endógenas) (Solicitar Cuentas Endógenas)--> (Dividir cada elemento de la Matriz\n Base entre el total de la columna An) (Solicitar Cuentas Endógenas)--> (Construir Matriz Identidad I) note right of (Construir Matriz Identidad I) Con las mismas dimensiones de Sub-matriz Endógenas-Endógenas end note (Dividir cada elemento de la Matriz\n Base entre el total de la columna An)--> (Restar I-An) (Restar I-An)--> (Estimar la inversa de I-An) Sistema --(Mostrar las distintas matrices) note right of (Mostrar las distintas matrices) - Matriz Base: debe distinguir por colores y/o avisos las sub-matrices (Endógena-Endógena, Endógena-Exógena, Exógena-Endógena y Exógena-Exógena ) - Matriz An: Matriz de propensiones medias al gasto. - Matriz Ma: Matriz de multiplicadores de Leontief end note Usuario -- (Seleccionar Modelo de Multiplicadores) (Seleccionar Modelo de Multiplicadores)--> (Seleccionar Cuentas Endógenas) @enduml }}} ||'''''Nombre del caso de uso:'''''[[BR]]||Modelo de Multiplicadores de MCS|| ||'''''Actores participantes:'''''[[BR]]||Usuario|| ||'''''Condiciones de entrada:'''''[[BR]]||Ya debe estar cargada la matriz base|| ||'''''Condiciones de salida:'''''[[BR]]||Se presentarán dos pestañas, en una se mostrará las propensiones medias al gasto y en la otra los Multiplicadores de Leontief|| ||'''''Flujo de básico:'''''[[BR]]||1.- El Usuario hace click en el Menú '''Herramientas'''\\2.- El Sistema despliega el menú.\\3.- El Usuario hace click sobre la opción Modelo de Multiplicadores de MCS.\\ 4.- Es Sistema solicita que defina las cuentas (y partidas en caso de existir) que sean endógenas.\\5.- El Usuario Presiona el Botón Aceptar.\\ 6.- El Sistema divide la matriz base en cuatro sub-matrices:\\ a.- Endógena-Endógena\\ b.- Endógena-Exógena\\ c.- Exógena-Endógena\\ d.- Exógena-Exógena\\7.- El sistema divide cada elemento de la sub-matriz '''Endógena-Endógena''' entre el total de la columna.\\ 8.- El Sistema almacena los resultados en la matriz '''An'''\\ 9.- El Sistema construye una matriz identidad ('''I''') con las mismas dimensiones que la matriz '''An'''\\ 10.- El Sistema resta las matrices '''(I-An)'''\\ 11.- El Sistema estima la inversa de la matriz resultante de la resta.\\ 12.- El Sistema almacena el resultado en la Matriz '''Ma'''. (Representa los Multiplicadores de Leontief).\\ 13.- El Sistema muestra los resultados en dos pestañas\\ a.- Matriz An: Propensiones medias al gasto. \\ b.- Matriz Ma: Multiplicadores de Leontief. || ||'''''Flujos alternativos:'''''[[BR]]||5.Opcional: El Usuario puede presionar el botón '''Limpiar''' para borrar la selección|| ||'''''Requisitos especiales:'''''||Si la determinante de la matriz es nula, está no tendrá inversa.|| === 5.- Evaluación de Escenarios (MMC) === {{{ #!plantuml @startuml title Evaluación de Escenarios con el Modelo de Multiplicadores de Leontief. left to right direction Usuario -- (Presionar Botón) Usuario -- (Introducir porcentaje de cambio\n en la matriz Base Endógena-Exógena) Sistema -- (Mostrar Sub-Matriz\n Base Endógena-Exógena) Sistema -- (Estimar los nuevos valores\n de la matriz Base Endógena-Exógena) (Estimar los nuevos valores\n de la matriz Base Endógena-Exógena) --> (Totalizar las filas de la\n matriz Base Endógena-Exógena) (Totalizar las filas de la\n matriz Base Endógena-Exógena)--> (Almacenar resultados en\n vector columna Escenarios) Sistema --(Multiplicar una Matriz Ma \n por el vector columna Escenarios) Sistema -- (Mostrar Resultados) @enduml }}} ||'''''Nombre del caso de uso:'''''[[BR]]||Evaluar Escenarios con el Modelo de Multiplicadores|| ||'''''Actores participantes:'''''[[BR]]||Usuario|| ||'''''Condiciones de entrada:'''''[[BR]]||El sistema debe tener cargada la matriz '''Ma'''|| ||'''''Condiciones de salida:'''''[[BR]]|| || ||'''''Flujo de básico:'''''[[BR]]||1.- El usuario presiona el icono de '''Evaluar Escenarios'''. \\ 2.- El Sistema muestra una nueva pestaña denominada '''Escenario''', en ella una matriz con el mismo marco de la sub-matriz Endógena-Exógena pero con los campos vacíos.\\ 3.- El Usuario introduce en porcentaje (%), la variación de una(s) partida(s).\\ 4.- El Usuario presiona el botón '''Evaluar'''.\\ 5.- El Sistema estima una nueva sub-matriz Endógena-Exógena' de acuerdo a los cambios introducidos por el usuario.\\ 6.- El Sistema Suma cada una de las filas de la sub-matriz Endógena-Exógena'.\\ 8.- El sistema almacena el vector columna obtenido en el punto '''7.-''' bajo el nombre de '''v_Escenario'''.\\ 9.- El Sistema multiplica la matriz '''Ma''' por el vector columna '''v_Escenario'''.\\ 10.- El Sistema almacena los resultados obtenidos en el vector '''Resultados'''.\\ 11.- El Sistema estima el porcentaje de variación entre el vector '''Resultados''' y '''vector base''' (Sumatoria de las filas de la Sub-matriz Endógena-Endógena).\\ 12.- Mostrar los resultados.|| ||'''''Flujos alternativos:'''''[[BR]]|| || ||'''''Requisitos especiales:'''''|| || === 6.- Clasificar Cuentas (Técnica de Rasmussen) === {{{ #!plantuml @startuml title Clasificar Cuentas left to right direction Sistema -- (Sumar Filas de la Matriz Ma) (Sumar Filas de la Matriz Ma) --> (Almacenar resultado en\n vector columna ea) (Sumar Filas de la Matriz Ma) --> (Totalizar el valor obtenido\n por cada cuenta del vector columna ea) (Totalizar el valor obtenido\n por cada cuenta del vector columna ea)--> (Almacenar en vector\n columna ea-agregado) (Sumar Filas de la Matriz Ma)--> (Dividir cada elemento\n del vector columna ea \n entre la sumantoria de todos los\n elementos del vector) (Dividir cada elemento\n del vector columna ea \n entre la sumantoria de todos los\n elementos del vector) --> (Almacenar elementos en un vector columna Ui) Sistema -- (Sumar Columnas de la Matriz Ma) (Sumar Columnas de la Matriz Ma) --> (Almacenar resultado en\n vector fila ed) (Sumar Columnas de la Matriz Ma) --> (Totalizar el valor obtenido\n por cada cuenta del vector fila ed) (Totalizar el valor obtenido\n por cada cuenta del vector fila ed)--> (Almacenar en vector\n fila ed-agregado) (Sumar Columnas de la Matriz Ma) --> (Dividir cada elemento\n del vector fila ed \n entre la sumantoria de todos los\n elementos del vector) (Dividir cada elemento\n del vector fila ed \n entre la sumantoria de todos los\n elementos del vector) --> (Almacenar elementos en un vector fila Uj) Sistema -- (Clasificar cuentas de acuerdo a los valores Uj y Ui) Sistema -- (Mostrar resultados) note right of (Mostrar resultados) Presentar los resultados en tres pestañas: 1.- Vector columna ea. Vector fila ed. Totales de las cuentas de los vectores columna y fila (ea y ed respectivamente) 2.- Vector columna Ui Vector Fila Uj 3.- Clasificador end note Usuario -- (Presiona botón) @enduml }}} ||'''''Nombre del caso de uso:'''''[[BR]]||Clasificar Cuentas|| ||'''''Actores participantes:'''''[[BR]]||Usuario|| ||'''''Condiciones de entrada:'''''[[BR]]||El sistema debe tener cargada la matriz '''Ma'''|| ||'''''Condiciones de salida:'''''[[BR]]|| || ||'''''Flujo de básico:'''''[[BR]]||1.- El Usuario presiona el icono '''Clasificador de Cuentas'''.\\ 2.- El sistema suma cada una de las filas de la matriz '''Ma'''.\\ 3.- El sistema almacena los resultados en un vector columna '''ea''' (efecto absorción). \\ 4.- El sistema suma cada una de las columnas de la matriz '''Ma'''.\\ 5.- El sistema almacena los resultados en un vector fila '''ed''' (efecto difusión).\\ 6.- El sistema suma los valores (tanto del vector '''ea''' como '''ed''') de las partidas que conforman cada una de las cuentas.\\7.- El sistema divide cada uno de los valores obtenidos en el vector columna '''ea''' entre la suma de cada uno de los elementos que componen el vector.\\ 8.- El sistema almacena cada uno de los valores en el vector columna '''Ui'''.\\ 9.- El sistema divide cada uno de los valores obtenidos en el vector fila '''ed''' entre la suma de cada uno de los elementos que componen el vector.\\ 10.- El sistema almacena cada uno de los valores en el vector fila '''Uj'''.\\ 11.- El sistema clasifica las cuentas de acuerdo a los valores obtenidos en '''Ui''' y '''Uj'''\\ a.- uj<1 - ui<1 -- Sector Independiente.\\b.- uj>1 - ui<1 -- Sector Impulsor de la Economía. \\ c.- uj<1 - Ui>1 -- Sector Base.\\ d.- uj>1 - ui>1 -- Sector Clave \\ 12.- Mostrar resultados:\\ a.- Resultados de los vectores ea y ed.\\ b.- Clasificador de cuentas.|| ||'''''Flujos alternativos:'''''[[BR]]|| || ||'''''Requisitos especiales:'''''|| ||