Arquitecturas De Software

Que tal comunidad:

Tengo una pregunta que hacerles para aquellos que son Arquitectos de software para que me compartan su opinión.

Para la elección de los conceptos de Diseño Arquitectónico, como tácticas, patrones y Frameworks, que metodología
utilizan o cual es su manera de seleccionarlos ????

Para un Arquitecto novato seria irse a los libros (catálogos de patrones) y en base a los atributos de calidad
seleccionar el patrón que mas les convenga, pero como lo hace un arquitecto con mas experiencia ????

Espero a ver sido claro y que compartan sus Experiencia.

Saludos !!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de beto.bateria

No me considero un arquitecto

No me considero un arquitecto de software, pero ya tiene mas de 6 años que manejo la OOP, desde mi punto de vista lo mas importante es la asignacion de tareas a las clases, para que puedas tener una base de esto te recomiendo estudies los patrones GRASP, Alta cohesión y Bajo acoplamiento son dos muy importantes.

Obviamente para que puedas asignar tareas tienes que tener una idea exacta de los requerimientos de sistema que vas a crear (funcional y no funcional), te puedo comentar que en una ocasion trabaje para una empresa que tenia en un estado de la republica sus oficinas, y en otro estado las bases de datos, y se conectaban por un enlace dedicado, asi que un requerimiento era hacer optimas las consultas.

Una buena tarea seria estudiar los patrones GRASP, y despues analizar los patrones GOF considerando las pautas de los GRASP.

Cualquier duda, preguntale a Google.

Curso

Que tal, lamento no poder ayudarte ya que no me considero arquitecto de software, pero si estas en la ciudad de México puedes tomar un curso de arquitectura de software que sera impartido por uno de los miembros de esta comunidad: @MachinesAreUs. Conozco personalmente al instructor y te recomiendo el curso. Los detalles de éste están en el siguiente link:

Wooooo @MachinesAreUs va a

Wooooo @MachinesAreUs va a dar este curso? Super recomendado.

Yo creo que él mismo no se llamaría "Arquitecto" de software pero si, se ve que esta muy bueno el tema.

Lo que yo he podido ver ( obvio yo menos me llamaría Arq. de Software ) es dependiendo de la necesidad que haya elegir los componentes que conformarán la solución y las responsabilidades de cada uno. Ejemplo, una base de datos? O varias? Que hará cada una? Etc. Lo mismo para los servidores, se leerá de un lado? Tendrá toda la información en línea etc. Este tipo de cosas van muy de la mano de lo que se quiera cubrir.

Una cosa "extra" que podrías hacer ( además de atender al curso de @MachinesAreUs ) es leerte todo lo que te interese del bliki de Martin Fowler ( ) y luego leer todo lo demás que no te interesó en la primera pasada.

:)

Si alguien tiene más links de este tipo que los comparta ahora!

Saludos

Imagen de CesarAlducin

Buenos Comentario

Que tal muchas gracias por los comentarios, primero que nada les comento que este post lo escribí porque ando Estudiando
Sobre Arquitecturas De Software.

Primero gracias por la recomendación de los 2 patrones @beto.bateria hasta el momento he estudiado los patrones de Diseño del libro Head First Design Pattners.

también encontré buenos libros, que como comenta @OscarRyz uno de los autores que mas me han recomendado es Martín Fowler.

Iré escribiendo en este mismo post la información que vaya trabajando.

Muchas Gracias por la recomendación del curso @cuauhpilli aunque por el momento no lo podre tomar si en un futuro y si lo vuelven a ofertar ahí estaré para compartir la experiencia que vaya adquiriendo.

Para mi la Arquitectura De Software es algo que no conocía mucho, si bien la había escuchado hablar se me hace interesante como la podemos trabajar durante la etapa de requerimientos y como tenemos que diseñarla de acuerdo a los objetivos del negocio.

Como aplicamos conceptos como atributos de calidad, y como a partir de los requerimientos no funcionales podemos diseñar una Arquitectura como lo comento @cuauhpilli el requerimiento no funcional de optimizar las consultas.

Una pregunta continuando con este Tema, Ademas de los Patrones SOA que son Arquitectonicos que otros nos podemos encontrar ????
o mejor dicho con que otros han trabajado.

Les dejo 2 link de paginas que encontre que hablan sobre Patrones De Diseño.

Si tienen mas links Compartalos

Saludos !!!!

Imagen de bferro

Arquitectura de Software en serio

Uno de los sitios más "serios" sobre arquitectura de software es el sitio del SEI Software Architecture. Lo de serio del sitio se ve cuando se empieza a consumir todo lo que se tiene ahí. Hay decenas de reportes técnicos sobre las diversas técnicas para documentar ( no es escribir documentos) la arquitectura de software de un sistema, y otras cosas muy interesantes.
Pueden revisar también el sitio de Google Scholar de Nenad Medvidovic para leer algunos buenos papers sobre el tema, que no es fácil pero digerible si se tiene el deseo de aprender.

Imagen de CesarAlducin

Buen Aporte

Definitivamente 2 Sitios Serios

Saludos !!!! @bferro

si tienes tiempo comentanos que experiencia tienes en el diseño de Arquitecturas De Software.

Hablando de esto, acabo de

Hablando de esto, acabo de encontrar el link a dos libros sobre el tema:

Architectures of OpenSource Applications

Imagen de Sr. Negativo

(+1) OscarRyz

Muy buen link :D !!

Imagen de beto.bateria

Un consejo: La primera vez

Un consejo:

La primera vez que hagas una asignacion de tareas en un proyecto, "olvidate" de detalles de programación, por ejemplo, si necesitas una clase que obtenga la informacion estructurada en forma de arbol (algo muy fumado), solo asignale la tarea: "esta clase con el nombre tiene la tarea de obtener un arbol de tal informacion", no trates de crear el algoritmo en ese momento, considera bien los requerimientos funcionales y no funcionales.

En ese momento, tambien, toma en consideracion los patrones GRASP.

Imagen de echan

Yo recomiendo la serie de

Yo recomiendo la serie de articulos y videos de infoq sobre el tema , todos son casos practicos de alta calidad y contados primera mano por pesonas trabajando en sistemas muy influyentes.


y por su puesto las caracteristicas de un arquitecto van mas alla de las cuestiones tecnicas

Imagen de CesarAlducin

Gracias por los aportes

Que tal !!!!

Les agradezco los comentarios y los links sobre Arquitectura De Software, por el momento estoy leyendo algunos capítulos del libro
Software Architecture Practice" Para comprender de una manera mas formal este concepto. Por el tipo de investigación que estoy
haciendo me enfocare mucho en los Patrones Arquitectónicos.

Un libro que me recomendaron para Patrones Arquitectónicos es: Pattern-Oriented Software Architecture

Alguien sabe de uno mas ?????

Tengo duda si los patrones GRASP son Arquitectonicos, ya que lo poco que he leido son Patrones para asignar responsabilidades a las clases y que clases son las que seran diseñadas.

Saludos y continuamos con este Post.

!!!!

Imagen de beto.bateria

Un libro que explica bien los

Un libro que explica bien los patrones GRASP es UML y Patrones Introducción al Análisis y Diseño Orientado a Objetos por Craig Larman.

Ese libro me gustó mucho por

Ese libro me gustó mucho por la forma en la que se puede estructurar un proyecto. Sin embargo me aburrió tremendamente, creo que cuando lo leí no tenía idea de muchas cosas, voy a buscarlo y darle otra ojeada :)

Imagen de beto.bateria

Cuando lo leí no tenia idea

Cuando lo leí no tenia idea de la OOP, ni de los procesos interactivos, tuve que leer varias veces los primeros capítulos para entenderlo, un quebradero de cabeza en aquel tiempo.

Imagen de 043h68

Scrum Manager. En busca de la excelencia del Código

Ya todo lo que pudieron haber puesto sobre información de patrones lo han dicho, pero quiero recomendar un libro que a mi parecer es necesario, no solo para el arquitecto si no también para el programador.

"Scrum Manager. En busca de la excelencia del Código "

Imagen de paranoid_android

Depende del contexto de Arquitectura

Depende de la empresa donde trabajes un arquitecto tiene funciones distintas.

a) Arquitectos Corporativos de ecosistemas que su función es agrupar sistemas relacionados, establecer tecnologías comunes o definir frameworks comunes y datos que deben viajar entre sistemas. Este tipo de arquitectos son para cosas muy grandes. Por ejemplo garantizarían que el CURP se use en todos los sistemas de gobierno y el RFC se deje de usar.

b) Arquitectos de tecnologías (Hardware y Software) escogen que tecnologías y equipos se deben usar a nivel general para darle consistencia a los sistemas sin entrar a detalle de librerías. Por ejemplo Java Web, Oracle pero no entrar a detalle de un pdf lo generas con X librería. También garantizan el grado de transaccionalidad y crecimiento de los sistemas.

c) Arquitectos de software que escogen a detalle librerías, frameworks, patrones de diseño pero de modo general para toda la aplicación sin entrar a detalle de tal función la diseñas con este patrón, en general definen paquetes, soportan la tecnología escogida cuando existe un problema o un algo desconocido ellos deben dar solución.

Imagen de CesarAlducin

Metodos de Diseño de Arquitecturas de Software

Hablemos un poco de los métodos para el diseño de una arquitectura de Software.

Yo encontré que hay 2, uno de ellos es ADD (diseño dirigido por atributos) y si no mal entiendo estos atributos son los que tienen que ver con la calidad del sistema como :

Availability
Modifiability
Performance
Security
Testability
Usability

También existen atributos de calidad del negocio pero esos los mencionare en otro momento.

Y MDA (Arquitectura basada en modelos)

Si alguien tiene links o quiere comentar al respecto bienvenido !!!!

Saludos !!!!

Imagen de bferro

Resumen de ADD

En este reporte técnico ADD, Version 2.0 se brinda un resumen de los pasos del método ADD.