Alfredo Juarez

Web Design and Development

Publicado por: alfredojv
23 October 2009 11:10 AM

Simon brown ha publicado un articulo con el que estoy muy de acuerdo; se trata del por qué es bueno documentar la arquitectura del software, ya que los comentarios en el código fuente no nos ayudan a entender del todo como funciona el sistema.

Una lectura ampliamente recomendable.

Link: Coding The Architecture

Publicado por: alfredojv
3 September 2008 10:09 AM

97 things es un proyecto que busca reunir 97 cosas que un arquitecto debe saber.

La idea de esta lista es reunir experiencias publicadas por diferentes arquitectos, si logras hacer que publiquen un contenido tuyo te conviertes en autor. Al final O’reilly publicará un libro con los 97 axiomas que un arquitecto debe conocer.

Hasta el momento llevan 82 y siguen subiendo.

(Via)

Publicado por: alfredojv
27 May 2008 11:05 AM

Es un modelo de arquitectura de software, algo similar al modelo-vista-controlador (MVC). PAC se utiliza como una estructura jerárquica de los agentes, cada uno de ellos consistente en una tríada de presentación, la abstracción y el control de partes. Los agentes (o tríadas) se comunican entre sí sólo a través del control de parte de cada tríada. También difiere de MVC en que dentro de cada tríada, se aísla por completo la presentación (vista en MVC) y la abstracción (modelo en MVC), Este ofrece separar el modelo y la vista, lo cuál, da al usuario una experiencia de usuario por los cortos periodos, de cómo la interfaz (presentación) puede ser mostrada antes que la abstracción este completamente inicializada.

El control es algo similar al Controlador en la arquitectura MVC. Este procesa eventos externos y actualiza el modelo. También se actualiza directamente la parte de presentación. Sin embargo, es diferente del controlador en MVC en la medida en que éste pasa los cambios que se están realizando a su componente padre.

La Abstracción contiene los datos, al igual que en MVC. Sin embargo, puede ser sólo una parte de la estructura de datos completa de la aplicación, y no desempeñar un papel activo en la notificación de cambios.

La presentación es exactamente igual que la vista en el MVC. Muestra la información desde la abstracción.

Como funciona

El control padre crea los elementos de su hijo PAC, ya sea en el arranque del programa, o dinámicamente en tiempo de ejecución.
Cuando el control de un PAC recibe un evento de usuario (1), este debe actualizar su presentación (2a) y/o su abstracción (2b). A continuación, se envía un evento de cambio a su padre (3). El padre actualiza sus hijos (pero no al nodo donde surgió el cambio) (5), por lo que todos actualizan su Presentación (6a) y/o abstracción (6b). Después que los nodos han sido actualizados, el padre se actualiza (7). Esto termina cuando todos los elementos PAC necesarios han sido actualizados.

Los hijos y padres pueden enviar eventos muy concretos para actualizar a sus vecinos. De esta forma, los elementos PAC podrán decidir la extensión del efecto del cambio. Pequeños cambios no tienen por qué ser propagados a través de toda la jerarquía.

Problemas

Las actuales herramientas de programación visual tienen algo relacionado con esta arquitectura, pero tienen todo tipo de peculiaridades y excepciones. Así que se puede tratar de reconocer la arquitectura en herramientas visuales, pero no son tan exactos. Además, la mayoría de herramientas dicen basarse en la arquitectura MVC, lo que tampoco es completamente cierto.

Técnicas de implementación

El Control es modelado por el patrón de diseño Mediator.
La presentación es modelada por el patrón de diseño Strategy.

Start Slide Show with PicLens Lite PicLens
Publicado por: alfredojv
3 May 2008 04:05 PM
La arquitectura es un concepto ampliamente utilizado dentro del desarrollo de software. Aunque todavía es muy difícil de definir con exactitud, de hecho, cambia de dominio en dominio, de una compañía a otra, de un proyecto a otro e incluso de empleado a empleado.

Hacia una definición de la arquitectura

El término “arquitectura” debe distinguirse de otros dominios diferentes al desarrollo de software. Por ejemplo, la industria de la construcción es el hogar natural del título de “arquitecto”, hasta tal punto que las leyes locales pueden limitar su uso a certificados o acreditados profesionales de esa industria. La intención de esas restricciones suele ser evitar que una persona que se cree capaz de construir un edificio lo haga, pero hay quienes critican a los profesionales de la industria del software por robar el término1.

La arquitectura ayuda a completar los requisitos

Una visión simple de la arquitectura es considerar la razón por la que existe: la arquitectura es uno de los medios para que un proyecto cumpla los requisitos.

Por supuesto, hay numerosos aspectos de desarrollo de software que contribuyen a que los requisitos se cumplan. La arquitectura ofrece la estructura para el desarrollo, mejorar el control, por lo que el proyecto puede ser entregado con una mayor seguridad. La arquitectura se basa también en mejores prácticas de la industria y crea un plan de aplicación para reducir el riesgo y el costo inherente del proyecto.

La arquitectura logra muchos de sus objetivos mediante lo que se suele denominar “diseño”. Por lo tanto, es importante entender lo que es el “diseño” y cómo se relaciona con la arquitectura.
Como un sustantivo, el diseño es la llamada (aunque no siempre se puede) estructura o comportamiento de un sistema cuya presencia se resuelve o contribuye a la resolución de una fuerza o fuerzas en el sistema. Un diseño por lo tanto, representa un punto en un potencial espacio de decisión. Un diseño puede ser singular (lo que representa una hoja de decisión) o puede ser colectiva (lo que representa un conjunto de otras decisiones). [Grady Booch]
Aunque todavia no es definitivo, Booch hace hincapié en algunas de las principales características de diseño.

En primer lugar, existe el diseño para resolver una fuerza en el sistema. Fuerzas pueden ser el costo, el alcance, recursos, plazos, requisitos – cualquier cosa que usted desee tomar en consideración como parte del diseño. Es decir, que el diseño debe tener un propósito. Como veremos, esto es un aspecto importante de la arquitectura de software.

En segundo lugar, un diseño es una de muchas posibles opciones para resolver una determinada fuerza en el sistema. Hacer la elección correcta es naturalmente importante, sobre todo si la arquitectura es para resolver las fuerzas sobre el sistema de manera efectiva y. El diseño no es peculiar de la arquitectura, sin embargo. Hay fuerzas en todos los aspectos de desarrollo de software y muchos medios para resolverlos. Por lo tanto, debemos considerar como se relaciona el diseño con la arquitectura.
Toda arquitectura es diseño, pero no todo diseño es arquitectura. Ésta representa las decisiones de diseño significativas que dan forma a un sistema, donde lo significativo es medido por el costo del cambio. [Grady Booch].
Entonces, se puede concluir que las decisiones de diseño arquitecturales solo están separadas de otras decisiones de diseño por el hecho de que tan caro puede costar un error. Sin embargo, la arquitectura requiere de más experiencia, así como una selección mas rigurosa para evitar esos costos potenciales derivados de los errores.
Fragmento traducido del libro sobre arquitectura de software de “Coding the Architecture“.

 

 

March 2010
S M T W T F S
« Feb    
 123456
78910111213
14151617181920
21222324252627
28293031  

Categorias

Alfredo Juarez is Digg proof thanks to caching by WP Super Cache