Está en la página 1de 5

CAPÍTULO IV

Desarrollo del Sistema

4.1 Análisis

En este capítulo se describen los pasos seguidos durante el análisis y desarrollo del
sistema.

4.1.1 modelo conceptual

La librería se limitará a la Inyección de Dependencias mediante la resolución del árbol


de dependencias a partir de un archivo de configuración. Para poder utilizar la librería, el
proyecto en el cual se usará, deberá de aplicar el concepto de inversión de control a sus
dependencias, de tal manera que los módulos no dependan de tipos concretos sino de
abstracciones.

Los módulos que componen al sistema, previamente definidos en el capítulo 1 son:


contexto, inyector, mapa de tipos y archivo de configuración.

4.1.2 casos de uso

El usuario deberá utilizar la librería para inyectar las dependencias necesarias, para lo
cual el código debería estar preparado siguiendo el método de inversión de control. Lo
anterior significa que los módulos deberán de interactuar con abstracciones en lugar de tipos
concretos.

17
Figura 3 Casos de uso

4.2 Diseño

4.2.1 Diseño arquitectónico

La librería utilizará una arquitectura simple y modular que nos permitirá utilizar más
fácilmente pruebas unitarias para probar su correcto funcionamiento.

4.2.2 Diseño de módulo y componentes

El componente principal se encargará de tener un mapa de contextos para evitar que


se cree más de un contexto para una sola configuración y será de tipo singleton.

Los objetos de tipo Contexto por su parte se almacenarán en un mapa de contextos


una vez creados y serán instancias ya que cada uno tendrá propiedades propias de acuerdo
al archivo de configuración a partir del cual fueron creados.
18
Figura 4 Diagrama de clases del prototipo

Los objetos de tipo Inyector igualmente serán instancias contenidas dentro de los
objetos tipo Contexto y estos tendrán un mapa en el cual guardará aquellas dependencias de
tipo singleton para, de esta manera, asegurar que siempre haya una sola instancia de los
mismos.

Se creará un modelo para mapear las configuraciones de los archivos de


configuración y poder utilizarlos para resolver el árbol de dependencias.

4.2.3 Diseño de interfaces

La interfaz será sencilla, el usuario solo tendrá que importar la librería y utilizar el
método Context para crear un nuevo contexto. Una vez teniendo un objeto de tipo Contexto
se podrá utilizar el método Get sobre él, para obtener el objeto ya con sus dependencias.

La interfaz es muy simple ya que mucha de la complejidad se lleva a cabo en el


archivo de configuración.
19
4.2.4 Diseño de la base de datos

La librería no utiliza una base de datos para funcionar, pero si utiliza un archivo de
configuración para almacenar las configuraciones para cada contexto.

4.3 Implementación

4.3.1 Programación de módulos y componentes

En la sección 1.4 fueron descritos los módulos que componen la librería, a


continuación se describen sus interacciones:

Figura 5 Interacción de módulos

Tal y como se muestra en la figura 5, primero el manejador de contextos lee los datos
del archivo de configuración y, con dichos datos, crea un contexto. Después de creado el

20
contexto, este se guarda en una cache de contextos, de tal manera que si se vuelve a
requerir dicho contexto, no tenga que ser creado de nuevo, sino que se regresará el mismo.

El contexto contiene un inyector, el cual se encargará de resolver el árbol de


dependencias. A su vez el inyector tendrá una cache de singletons para guardar las
referencias de aquellas dependencias marcadas como singletons.

Finalmente, el contexto retorna el objeto final ya con todas sus referencias.

4.3.2 Implementación de interfaces

Al ser una librería, carece de algún tipo de interfaz gráfica. La librería ofrece una
manera de utilización fácil y sencilla, ya que el programador como un usuario de la misma
solo tendrá que escribir las configuraciones necesarias en el archivo de configuración, crear
un contexto para dicho archivo, y después solo llamar al método Get del contexto para
obtener la instancia solicitada con sus dependencias.

4.3.3 Programación de la base de datos

La librería carece de una conexión a una base de datos, todos los datos necesarios
para la creación de contextos se escribe directamente por parte del usuario en archivos de
configuración.

21

También podría gustarte