Patrones de Casos de Uso 4/9 – Known Object

Continuando con la serie de artículos sobre Patrones de Casos de Uso, hoy quiero hablar sobre el patrón KNOWN OBJECT, creado por Martin Langlands. Este patrón forma parte de la lista de Patrones del Contenido de Casos de Uso presentados en el paper del autor antes mencionado, y es más bien un concepto muy sencillo pero muy importante a la hora de describir este tipo de documentaciones.

Existen casos de uso que son directamente invocados por un actor como por ejemplo los que utilizan patrones como BASIC CREATOR o CRITERIA SEARCH. Estos tipos de casos de uso pueden ser invocados directamente porque no necesitan como pre-requisito una instancia de un objeto existente. Es decir, cuando vamos a crear un objeto, el objeto todavía no existe y cuando lo buscamos, la idea es encontrar una instancia. Por otro lado, existen casos de uso que necesitan de una instancia de un objeto ya existente como para iniciar los flujos, como serían los casos de uso para visualizar un registro, modificarlo o incluso cambiar de estado, lo que es muy común.

Como ejemplo, imaginemos un buscador de personas. Una vez encontrados los registros (objetos) que buscamos, nos dará la posibilidad de realizar acciones sobre ellos. Cada acción, utilizando la idea del patrón OBJECT MANAGER, podrá incluir un caso de uso que ejecute lo necesario. Estos casos de uso que son incluidos son lo que deberán conocer el objeto con el cual trabajar. Así por ejemplo, podemos tomar el caso de visualizar los datos de la persona, modificar sus datos, activar a la persona o inactivarla. Cuatro casos de uso que necesitan, como pre-requisito, saber sobre cuál persona deben realizar sus acciones.

Continue reading →

Patrones de Casos de Uso 3/9 – Property List

Ya hemos visto dos artículos sobre Patrones de Casos de Uso orientados al diseño tomando como referencia el paper publicado por Martin Langlands. En este artículo vamos a hablar sobre el patrón PROPERTY LIST que se trata de como detallar las propiedades de un objeto dentro de los casos de uso que lo necesiten. Es decir que este patrón en realidad no tiene que ver directamente con las acciones de un CRUD, sino que más bien formará parte de varios casos de uso en donde se necesite listar las propiedades de un objeto o los datos que necesitemos.

En resumen, este patrón será utilizado dentro de otros casos de uso que utilicen a su vez los patrones BASIC CREATOR, VIEWER/UPDATER y CRITERIA SEARCH. En estos casos de uso tenemos la necesidad de decir que propiedades queremos que el usuario cargue o modifique para un objeto, como así también cuales son los datos que nos sirven para los filtros de una búsqueda y los datos que necesitaremos mostrar en los resultados de la búsqueda.

Dando un ejemplo claro sobre esto, podríamos imaginar un caso de uso que permita crear una Persona. Cuando llega el momento de definir cuales serán las propiedades de la persona que el actor deberá cargar, necesitamos listar por ejemplo nombre, apellido, documento de identidad, fecha de nacimiento, etc; este es el objetivo del patrón PROPERTY LIST, estandarizar esta forma de listar o detallar cuales serán las propiedades. Esto mismo ocurre cuando existen filtros de búsqueda en un caso de uso Buscar Persona; o incluso cuando tenemos que mostrar información de la persona para que el actor las pueda ver.

Continue reading →

Patrones de Casos de Uso 2/9 – Object Manager

En el artículo anterior hemos visto una introducción a los patrones de contenido de casos de uso presentados por Martin Langlands. Ya vimos brevemente explicados los patrones, por lo tanto a partir de este artículo, comenzaremos a verlos uno por uno, haciendo también algunas traducciones del paper original para mantener la idea de Langlands y dando mi opinión al respecto. Los patrones no serán explicados en el mismo orden que Langlands los presenta en su paper, sino que iré escribiendo los artículos desde otra perspectiva.

El primer patrón que me gustaría tratar es el OBJECT MANAGER. Este patrón, de alguna manera, agrupa a los demás patrones presentados por Langlands, y hay que recordar que estos patrones de casos de uso tratan sobre el contenido de los casos de uso y no así a cómo estructurarlos (lo que sería el concepto descrito en el paper como “Inside the Oval”). Sin embargo, este es el único patrón que trata más bien sobre como organizar los patrones de contenido presentados.

Por lo general, cuando hablamos de sistemas, hablamos de trabajar con una base de datos o alguna forma de almacenamiento de datos. Durante la etapa de análisis, cada objeto que tiene la capacidad de persistir sus propiedades en una base de datos es conocido como una entidad, y este tipo de objetos son con los que más lidiamos a la hora de la descripción de casos de uso.

Continue reading →

Patrones de Casos de Uso 1/9 – Introducción

Es sabido que el mayor porcentaje de esfuerzo para el desarrollo de software se encuentra en las etapas más tempranas del ciclo de vida del mismo. Desde la etapa de relevamiento de requerimientos hasta la etapa de inicio del desarrollo, existe un momento crucial que puede garantizar el éxito o fracaso de un proyecto de software.

Durante las etapas de Análisis y Diseño de los sistemas, se proveen entregables que en la actualidad son tomados muy a la ligera. La documentación deja marcada la idea del software, sus necesidades y sus funcionalidades. Entre estas documentaciones se tienen muchas preguntas sin contestar especialmente con los Casos de Uso.

Aunque existen estándares de codificación para la etapa de desarrollo e inclusive patrones de diseño que ayudan enormemente a marcar la forma de comportamiento y estructura en el código, uno de los principales problemas viene dado por las preguntas ¿cómo realizar correctamente la documentación de los Casos de Uso? y si ¿Existe una manera estandarizada para este tipo de documentación?

Para este tema, escribí un ensayo para la maestría que estoy cursando sobre “La importancia de la estandarización de los Casos de Uso por medio de Patrones”. Esta investigación, después de buscar muchísimo y leer bastante, me llevó a encontrar uno de los mejores artículos que pude leer sobre este tema. El artículo fue escrito por Martin Langlands , y tomando en cuenta el arduo trabajo de investigación, este ensayo será entonces la punta pie inicial para una serie de artículos que quiero escribir sobre estos patrones. Recomiendo ampliamente la lectura del artículo original que se puede encontrar al final de este artículo. A continuación el texto del ensayo.

Continue reading →

Android – Styles & Themes

Logotipo de Android

Hace ya un tiempo que comencé a investigar sobre programación para Android y de toda la información que leí encontré realmente muy poco sobre creación de themes propios para una aplicación. En la documentación oficial se llega a entender bien la parte correspondiente a estilos pero cuando comienza la parte de themes se queda muy corta y al parecer la única manera de aprender es meterse por todos los archivos fuentes de las distintas plataformas de Android y comenzar a ver como lo utilizan para los themes estándares (Theme.Holo, Theme.Holo.Light, Theme.Holo.Light.DarkActionBar).

Después de horas y horas intentando entender los archivos XML haciendo pruebas y cometiendo errores puedo concluir en que realmente sería mucho más sencillo si la documentación oficial explicara al menos lo que voy a intentar explicar en este artículo ya que una vez que se entiende resulta relativamente sencillo. De todas maneras como fanático de Google, entiendo que Android crece días tras día un poco más y confío en que dentro de poco tiempo vayan actualizando la documentación haciéndonos la vida un poco más fácil.

Antes de seguir leyendo te recomiendo que le des una leída a la documentación oficial de Android.

Continue reading →