Mostrando las entradas con la etiqueta utn. Mostrar todas las entradas
Mostrando las entradas con la etiqueta utn. Mostrar todas las entradas

jueves, noviembre 04, 2010

Charla de Cloud en APIT - Gracias Santi!

Esta semana en APIT, el Ing. Santi Cardarelli nos honró con su presencia para contarnos su experiencia en todos los tipos de Cloud, sus beneficios y como integrar las clouds dentro de las empresas.
Obviamente cuando uno lee revistas, noticias y blogs, por lo menos cloud es algo que se escucha muy a menudo y de alguna manera esto hizo que se deje de hablar taaaaanto de SOA (buzzword), la diferencia clave es que por lo menos cloud tiene implementaciones reales y cuando hablamos de SOA siempre fue todo muy teórico, está claro que son dos cosas distintas uno es para integrar (SOA) y el otro es un concepto más de infraestructura (Cloud). En fin, algunas cosas que generaron discusiones durante la charla fueron:
1) Performance. Está claro que cloud está basado arriba de Virtualización, y obviamente puede traer algunos inconvenientes a la hora de esperar cierto tiempo de respuesta ya que todo está corriendo sobre el mismo fierro, ejemplo una aplicación Online (Web) necesita procesar un pedido y hay un Batch de otra aplicación consumiendo muchísimo, como para todo eso es tan transparente es dificil lidiar, obviamente creo que la tecnología está cada vez más cerca de solucionarlo, ya sea migrando procesos de un fierro a otro (más ocioso) de una manera transparente, pero creo que falta un poco.
2) Seguridad. Este es un tema que yo considero importante pero no me preocupa, hace 10 años nadie ponia su tarjeta de crédito en ningún sitio web, ya pasó eso, ahora hay bancos virtuales como Paypal.
3) PaaS como modelo seguro de desarrollo? Es un tema, crear aplicaciones sobre force o GAE es realmente interesan? No terminaría casándome con una empresa y tengo que lidiar de por vida con eso, como les pasó a las empresas con los Mainframes de IBM, por ejemplo. Nose, creo que startups, aplicaciones pequeñas pueden tener un muy buen uso de los PaaS sin tener que contratar a un arquitecto :)
4) Escalabilidad: Este creo que es uno de los puntos fundamentales (posiblemente junto al costo) creo que pensándolo arquitecturalmente tiene mucho peso.
Aca les dejo la presentación que uso Santiago:

viernes, septiembre 24, 2010

Tengo diez minutos

... antes de tomar finales, estoy en al buffet de la UTN y quería contarles en que estoy.
Obviamente muchas cosas cambian, pase de ser una familia paqueña a una multitud (de 3 a 4), obviamente cada día estoy más enamorado de mi familia y Mecha tiene mucho que ver en esto, su tranquilidad y organización me dejan disfrutar de todo esto y también poner mucho foco en el trabajo y universidad.
Con respecto a Red Hat, cada día voy poniendome más a tono, visitando clientes, haciendo presentaciones y aprendiendo productos. Actualmente estoy trabajando mucho con:
  • BRMS (motor de reglas que viene de Drools)
  • Relevando y planificando migraciones de tecnologías y al Application Server empresarial de JBoss (el que tiene soporte)
  • Pensando estrategias de disponibilización de información (a gran escala) con grids de datos.
Esto último fue lo más interesante que estuve viendo, sobre todo con este proyecto que les recomiendo a todos de pegarle una mirada, se llama Infinispan, y plantea ir al próximo paso de los repositorios de información distribuidos, escalables, con tolerancia a fallo y extremada performance. Lo que me pareció muy interesante es el concepto de distribuir (y no replicar) datos en diferentes nodos y ganar performance alocando los objetos en los nodos donde más se están usando. En el sitio hay varios ejemplos, videos y la semana pasada DZone sacó una refcard.

En la facu, comenzamos un nuevo cuatrimestre donde seguimos los mismos docentes pero con la presencia de Coco en todas las clases. Esteban Lorenzano está viajando por Europa y demostrando sus conocimientos y pasión por Smalltalk en la ESUG. Pero hay mucha pila y la gente de la catedra es muy grosa, cuatrimestre a cuatrimestre vamos incorporando cosas nuevas (este cuatrimestre vamos a tener temas nuevos de Arquitecturas Móviles, Infraestructura y DB NonSQL).

En fin, fue un post muy cortito pero que de alguna manera resume mis experiencias en el último més.

jueves, febrero 05, 2009

Meyer Confirmado

Este es el abstract
Teaching programming faces a host of challenges, due in particular to the unprecedented variety of student backgrounds and to the demands of the IT industry. Techniques that worked well in the seventies do not scale up to today's context. The "concepts or skills?" debate is more relevant than ever, especially in the ever more globalized world of software development.

For the past 6 years, we have taught introductory programming at ETH, based on an "outside-in" approach that makes it possible to introduce the reality of large software while emphasizing the principles of sound software development. This approach has resulted
in a forthcoming textbook ("Touch of Class: An Introduction to Programming Well
With Objects and Contracts", Springer-Verlag, May 2009). I will present the result of our experience, including metrics that we have systematically collected along the way, and draw conclusions regarding how to teach programming today. I will argue the task consists of
teaching twenty-six seminal concepts, and will explore one of them in depth.

lunes, enero 19, 2009

Bertrand Meyer en la Argentina!!!!!

Si, como leen, Bertrand alias "Design by Contract" o "Eiffel" Meyer estará en Febrero por la Argentina, primero paseando por Buenos Aires, donde estamos trando que de una conferencia en la UTN y luego en Rio Cuarto (Cba.) para participar de la 16ª Escuela de Verano de Ciencias Informáticas.
Realmente no tengo más que decir, sino esperar con muchas ansias para que se defina la fecha (una vez que la facu abra) y repasar un poco de Eiffel que justo estabamos hablando en el laburo de comenzar a verlo, sin saber que venía Meyer... realmente es una señal.

sábado, noviembre 29, 2008

Otro cuatrimestre, otro parcial

Como todos los cuatrimestres, aca está el parcial que tomamos en APIT, fue algo parecido al parcial del cuatrimestre pasado pero esta vez, utilizamos un BPM (simplificado) como base para tomar las decisiones arquitectónicas.

Obviamente el objetivo de este parcial es poder hacer pensar a los estudiantes como un arquitecto sin tener que estudiar de memoria, cosa que detesto. Está claro que fue complicado ya que con una sola clase de SOA e Integración, el BPM es uno de los conceptos más complicados.
Como pueden ver pudimos lograr unificar todos las unidades de la materia, el único tema que quedó afuera fueron las metodolgías que realmente son un punto fundamental en la materia.
Asi que comentearios, sugerencias?

domingo, agosto 31, 2008

Me casé con una nerd - Segunda Entrega

Si bien tengo muchos hechos que lo demuestran, voy entregando de a poco....
Este es un chat que tenía por el Sametime con Mecha, obviamente junto con otros 20 y una call de por medio, aca se la ve enojada por que no le contesto o no la endiendo (vaya a saber que).

Eso si, se nota que está estudiando para Sistemas Operativos :)

sábado, julio 05, 2008

Parcial de Arquitectura (APIT) esta vez le tocó al Broker

El martes pasado tomamos el parcial de la materia. A diferencias de casi todas las materias de la UTN, nuestro parcial apunta a que los alumnos piensen como Arquitectos dada ciertas restricciones y puedan tomar las decisiones justificando correctamente, realmente cada una de las pregunta tiene infinitas respuestas como así también sus justificaciones. Estamos muy conformes (al igual que los alumnos de años anteriores) con esta metodología, ya que estudies lo que estudies, si no conceptualizaron los elementos de la Arquitectura de Software que enseñamos en la materia, es dificil que aprueben, es más permitimos apuntes, presentas... o sea carpeta abierta que realmente no sirve para mucho si no estás dispuesto a pensar.
Aca les dejo una copia y ojala yo hubiese tenido más parciales de estos en aquellos años felices como estudiante :)

Voy a ver si a lo largo del finde escribo algunas respuestas que podrían haber sido correctas :) todavía estoy corrigiendo los parciales.

domingo, abril 06, 2008

Charla de Haskell

Ayer, Sábado tuve la oportunidad de participar de una charla que dio Nicolas Passerini sobre Haskell en la UTN, junto a otros docentes de diferentes materias como Paradigmas de Programación, Técnicas Avanzadas de Programación y APIT.
La verdad que estuvo muy buena y fue muy al grano, hace tiempo que tenías ganas de cursar algunas clases de la materia PDP pero nunca pude coordinar con Nico para ir a los días de Funcional. Un par de cosas que me quedaron:
  • La verdad que hacía mucho que la cabeza no me funcionaba de esa manera, me hizo acordar a mis días en la facu con la pizarra totalmente llena y tratando de entender e interiorizar los conceptos, por momentos parecía AM2. La diferencia que aca no anotaba con lo cual no perdía el tiempo y podía seguir mucho mejor la clase.
  • El lenguaje en general me pareció bastante similar al Prolog, sobre todo en la separación de los predicados y las consultas, como también el manejo de listas y la recursividad.
  • Me gustó mucho la idea de no hay que abusar de la recursividad en el paradigma, no es que la recursividad es mala, pero en este tipo de ambiente, hay otras técnicas que permiten resolver los mismos problemas que la recursividad.
  • Me sorprendió gratamente el lenguaje como maneja la definición de listas por comprensión. Aca hay un par de ejemplos, seguramente me meta un poco más adelante.
  • Sin duda lo más interesante del lenguaje (o paradigma, no estoy muy seguro) es el manejo de Lazy Evaluation (evaluación perezosa), Composición de Funciones (esto es zarpado) y las Funciones de Orden Superior (esto no me provocó mucha sopresa, ya que de alguna manera lo vengo usando). Lo que si realmente me sorprendió fue el uso y potencia que pueden tener los dos primeros puntos.
  • Realmente también me quedé fascinado con la relación que tiene el lenguaje con las matemáticas, Nico comentó que fue diseñado por matemáticos, pero lo llevaron a un punto muy extremo. Ya saben que a mi los extremos no me gustan, y tampoco la matemática me agrada del todo, no me resultó complicada, pero definitivamente no me gusta.... y debe ser por eso que me considero un programador mediocre.
  • Otro temita que me quedó fue cuando preguntamos por TDD, y la respuesta ensayada fue algo como que la metáfora (esto lo agregué yo) que tienen en Haskell es poder demostrar que el programa va a funcionar gracias a la especificación / lenguaje formal que este tiene. Con lo cual el mismo código te demuestra que funciona. Sería lindo tener algo parecido en el mundo objetos, no? Igualmente IMHO algo para TDD es necesaria.
Sinceramente es un tema que voy a seguir, no se en que momento, pero me resultó muy muy interesante, no solo como Arquitecto y las posibles integraciones que podría llegar a haber entre plataformas como Java y Haskell, uno de los asistentes, Claudio Cancinos, comentó que se puede generar una DLL y llamarla, si no también como programador, muchas de las maneras de pensar y solucionar problemas (parecidas al Tell don't Ask) se pueden llevar con ciertos truquitos a Java o Ruby.
Aca les dejo algunos links que fui recolectando...
http://tadp.no-ip.org/paradigmas/uploads/Introduccion_al_lenguaje_Haskell.pdf
http://tadp.no-ip.org/paradigmas/uploads/ParadigmaFuncional2007-complemento.doc
Un libro que me recomendo la nerd de mi mujer. Introduction Functional Programming usin Haskell
Un Eclipse para Haskell

martes, abril 01, 2008

Y arrancó un nuevo cuatrimestre en APIT

Un día bastante atípico en el cual a las 5 de la tarde parecía de noche y caía una cantidad de agua increible, y yo en el medio de una call con un colega de Brasil hablando en ingles (patético), se pasaba el tiempo y no podía salir para la facu, donde hoy era el primer cuatrimestre... el tema fue que recien a las 18:30 partimos para la facu y era un diluvio, no menos de 3 choques se pudieron observar en las 20km que tengo que recorrer por panamericana, gral paz y lugones para llegar a la facultad, lo bueno, venía con dos de mis dos nerds preferidos de IBM en el auto (Gona y Andres), lo cual lo hizo bastante ameno el viaje, salieron temas como metodologías ágiles e ingeniería en software en general, justo el tema que dábamos hoy en la materia.

La cosa es que llegué bastante tarde a la clase y Nico ya había arrancada con la presentación de la materia, y lo primero que me encuentro es un curso repleto y cuando entro al aula de repente un fuerte aplauso por haber llegado (tarde obvio) partio de las manos de Nico y seguido por todo el curso, en fin linda recibida :)

Tengo todas las expectativas para este cuatrimestre ya que en el último tiempo, tuve bastantes nuevos desafíos laborales y que quiero compartir como ejemplo a lo largo de la teoría que exponemos en la materia. Con respecto al cronograma y tp, la verdad que no cambia demasiado, seguimos repitiendo un poco todo, que es lo que nos viene dando muy buenos resultados. Un poco la diferencia de este cuatrimestre es que no lo tenemos más al Lic. Carlos Leone, como representante formal, sino que a partir de ahora yo soy el Profesor Adjunto de la materia, obviamente falta un poco de papelerío pero todo parece indicar que sale. Así que todo la parte administrativa, ahora es mía... es pero que no me coma mucho tiempo.

Como todos los años elegimos los topicos de los papers a ser desarrollados y nos quedó algo asi:
  • RIA Offline, es posible?
  • Métricas de Arquitectura
  • Domain Specific Languages
  • Lenguajes Dinámicos
  • Arquitectura en metodologías ágiles
  • Software as a Service (SaaS)
  • Arquitectura de Aplicacions Móbiles
Donde yo probablemente me incline a tutorear los temas de RIA (que original no?), Métricas de Arquitecturas y SaaS.

No me quiero olvidar de decir que se nos unió a la catedra Santiago Blanco, un excelente alumno del cuatrimestre pasado y con mucha experiencia, acá pueden conocer un poco más de el.

Esto es todo.

miércoles, agosto 15, 2007

Web Semántica - Seminario Athenas - 21 de Agosto



La agenda es la siguiente:
19:00 hs: Presentación.
19:05 hs: Grandes personajes de la historia: Tim Berners-Lee.
19:20 hs: Cómo funciona internet hoy
19:35 hs: Qué es la web semántica (metadatos, XML y RDF)
20:15 hs: Coffee break.
20:30 hs: Qué es una ontología y para qué sirve
20:45 hs: Ejemplos de OWL
20:55 hs: Cómo integramos todo esto: webservices
21:10 hs: Cómo funcionará internet mañana.
21:30 hs: Cierre


Hace un tiempo que vengo tratando de seguir el tema, escuché un podcast de
Tim Berners-Lee, en el cual dijo que el actualmente está trabajando en esto y tambien escuché un par de comentarios de compañeros de trabajo como Fernando Sanabria y Gona, aunque todavía no lo pude conceptualizar. Creo que va a ser muy interesante.

martes, junio 19, 2007

Metodologías Agiles - Seminario Athenas - 25 de Junio


Abstract
Luego de 30 años desarrollando software, la industria sigue teniendo muchos problemas para terminar los proyectos en tiempo y forma. Durante ese tiempo evolucionaron tanto las tecnologías que utilizamos como los tipos de sistemas que construimos, sin embargo las metodologías parecen no haber sufrido grandes modificaciones. Con esa perspectiva, a partir de finales de los '90 surgieron algunas ideas que proponen renovar la forma en que construimos software y hoy comienzan a popularizarse a nivel mundial.
El objetivo de este seminario es introducir los conceptos que guían estas nuevas metodologías "ágiles", haciendo foco en dos de sus representantes más reconocidos: eXtreme Programming y Scrum.

La agenda es la siguiente:
19:00 hs: Presentación.
19:05 hs: Grandes personajes de la historia: Donald Knuth.
19:20 hs: Teoría e historia de las metodologías ágiles.
20:00 hs: Coffee break.
20:10 hs: eXtreme Programming. Conceptos y casos exitosos.
20:50 hs: Scrum. Conceptos y casos exitosos.
21:30 hs: Conclusiones y cierre


lunes, abril 30, 2007

APIT en el SEI!

La semana pasada tuvimos un intercambio de mails con Paul Clements y uno de los primeros resultados de esto fue incluir, en la lista de (http://www.sei.cmu.edu/architecture/educators.html) Universidades que enseñan Arquitectura de Software, nuestra materia (APIT).

El segundo resultado estará por venir, pero les puedo adelantar que Paul se encontró interesado en el contenido de una de nuestras clases, la de "Rol del Arquitecto de Software", si bien el 40% del material no es nuestro el resto si lo es, por lo tanto creo que puede haber mucho fruto en el futuro.

lunes, abril 16, 2007

Hoy empiezan los seminarios athenas 2007 con un disertante de lujo

Venia notando hace tiempo que al seminario athena le estaba faltando un poquito más de difusión, por lo tanto doy mi granito de arena para que se conozca un poco más esta iniciativa que tuvo en estos últimos meses excelentes charlas y este año están planificadas muchas más.
Hoy arranca con Luciano Bello, alias "el taliban del software libre", sobrenombre puesto por Flavio Fernandez (alto groso del labsistemas también), la descripción de la charla la pueden encontrar acá.

miércoles, marzo 21, 2007

APIT - Primer Cuatrimestre 2007

Mañana, Jueves 22 de Marzo, empieza el primer cuatrimestre del 2007, no tengo idea cuanta gente se habrá anotado pero por lo que me vienen comentando hay varios, espero que así sea, cuanta más gente haya en el curso más divertido se pone.
Con respecto al programa, finalmente, hicimos una mezcla entre las supuestas dos materias y quedó algo como esto:

1-Metodologías Iterativas de Desarrollo

  • Introducción a las metodologías orientadas a Iteraciones
  • Metodologías Ágiles de Desarrollo
  • Buenas prácticas para el desarrollo de software y la Arquitectura

2-Arquitectura de Software

  • Concepto de Arquitectura de Software
  • Tipos de Arquitectura y Ciclos de Generación de Arquitecturas
  • Modelado y Vistas de Arquitecturas
  • Principios de Arquitectura
  • Requerimientos Funcionales, Restricciones y No Funcionales.
  • Análisis de Atributos de Calidad y QAW (Método del SEI)
  • Influencias de la Arquitectura
  • Primera solución técnica y primera percepción de la arquitectura.

3-Creación de Arquitecturas de Software

  • Tácticas para la lograr los Atributos de Calidad
  • Estilos Arquitectónicos y Patrones de Arquitectura (POSA)
  • Método de Creación de Arquitecturas ADD (Método del SEI)
  • Organización de la Lógica de Negocio (Arquitectura no Intrusiva, Domain Driven Design, Transaction Script, Workflows, Aspectos y Declaratividad)
  • Presentación (Tipos de Dispositivos y Clientes, Control y Navegabilidad, Integración con el Dominio o Lógica de Negocio, Clientes Pesados, Clientes Livianos – Web y Rich Internet Application)
  • Persistencia (Mecanismos de Persistencia, Archivos, Base de Datos, Base de Objetos, Prevalencia, Frameworks de Persistencia y Impedance Mismatch)
  • Integración (Business Integration, Point-to-Point, EAI, SOA, Colas, Web Services, ESB, Coreografia de Procesos)

4-Comunicación de la Arquitectura

  • Concepto de Comunicación y Entendimiento de Arquitectura
  • StakeHolders y Preocupaciones. ViewPoints, Views y Modelos IEEE 1470
  • Workproducts y Deliverables de la Arquitectura
  • Frameworks y Roadmap de Arquitecturas (Model View 4.1, The Open Group Architecture Framework)
  • Armado del SAD
  • Características de la documentación de la Arquitectura

5-Evaluación y Viabilidad de Arquitecturas

  • En que consiste la evaluación
  • Cuando y Por que.
  • Riesgos
  • Costos y Beneficios
  • Métodos de Evaluación de Arquitecturas, ATAM (Método del SEI)

6-Implementación de Arquitectura y Rol del Arquitecto de Software

  • Responsabilidades del Arquitecto.
  • Rasgos y Características del Arquitecto
  • Liderazgo y Mentoring
  • Responsabilidades y Aseguramiento de la calidad del Arquitecto
  • Propuesta de Solución y Evaluación Técnica incluyendo Estimaciones y Métricas
  • Procesos de Construcción de Software
  • Mantenimiento de Software.
  • SCM
Como pueden ver, al programa es más o menos lo mismo que venimos dando, excepto que :
- sacamos un par de temas de metodologías, solo vamos a dar metodologías iterativas y ágiles
- agregamos el QAW, en la intro a Arquitectura, una manera muy interesante para relevar y priorizar los Atributos de Calidad
- vamos a dar el método del SEI, ADD (Architecture Driven Desing) como para guiar la creación de la arquitectura, voy a ver de invitar a alguien con experiencia utilizando dicho método.
- sacamos la clase de Arquitectura de Seguridad, debido a que vamos a hablar de seguridad como algo ortogonal a lo largo de toda la materia.
- Agregamos SCM
Con respecto a los integrantes de la cátedra, hemos perdido a una mente celebre como Hernan Liendo, ya que va a dedicarle a full a TADP y no va a poder dedicarle tiempo a APIT, por otro lado hemos un posible nuevo ingreso de Leo Gassman, de TADP, fue alumno en el 2005 cuando empezamos.
Con respecto a los TP, seguimos manteniendo el Paper, una investigación, y el TP Cuatrimestral en donde el grupo debe crear a implementar en código una arquitectura.
Para quien esté interesado de participar de oyente, vamos a dar clases todos los jueves en Medrano, pueden ver el calendario en el siguiente link, ahí lo vamos a tener actualizado.
Estoy muy contento debido a que en dos años de la materia ya nos estamos sintiendo cómodos en como va quedando y siento que estamos cumpliendo los objetivos que tuvimos cuando empezamos. Está claro que mucho tuvo que ver la incorporación grandes mentes como Nicolas Passerini, Gastón Coco, Juan Arias y Hernan Liendo.

domingo, noviembre 05, 2006

Arquitectura de Software I (ex-APIT)

Como comenté en el post APIT, a partir del año que viene la idea es dividir la materia en dos, una para el primer cuatrimestre de quinto y otra para la segunda, o sea, Arquitectura de Software I y II. Ambas en calidad de materia electiva y donde la uno la voy a seguir un poco más yo y la otra Nicolas Passerini.
Esta semana presentamos la primera de ellas formalmente, siguiendo el nuevo procedimiento.
Aca muestro el programa de lo que se viene para AS1... no me gusta esa sigla, me parece que la voy a seguir llamando APIT ;)

PROGRAMA ANALITICO

  1. Introducción y Repaso de Ingeniería en Software
    1. Project Management
    2. SCM (Software Configuration Management)
      1. Baseline
      2. Change Management
      3. Defect Management
      4. Release Management
    3. Análisis de Riesgo
    4. Testing
    5. Introducción a Métricas
    6. QA
  2. Metodologías de Desarrollo
    1. Introducción a las metodologías orientadas a Iteraciones
    2. Proceso Unificado
    3. Metodologías Ágiles de Desarrollo
      1. XP - eXtreme Programming
      2. Scrum
      3. Test Driven Development
    4. Buenas prácticas para el desarrollo de software y la Arquitectura
      1. Diferentes puntos de vistas según el rol en la Metodología
  3. Arquitectura de Software
    1. Concepto de Arquitectura de Software
      1. Tipos de Arquitectura y Ciclos de Generación de Arquitecturas
      2. Modelado y Vistas de Arquitecturas
      3. Principios de Arquitectura
    2. Atributos de Calidad. Requerimientos Funcionales y No Funcionales.
    3. Restricciones
    4. Capacidad y Volumetría
    5. Influencias de la Arquitectura
    6. Entorno Técnico y Estándares
    7. Primera solución técnica y primera percepción de la arquitectura.
  4. Creación de Arquitecturas de Software
    1. Implementar Atributos de Calidad
    2. Definir el Esqueleto de la arquitectura.
    3. Definir o seleccionar los Módulos, Componentes, Interacciones e Interfaces.
    4. Estilos Arquitectónicos y Patrones de Arquitectura (POSA)
    5. Definir nodos, tipos de nodo, conexiones y zonas de redes
    6. Definir y Alocar los módulos y componentes en unidades físicas.
  5. Frameworks de Arquitectura
    1. La importancia de la reutilización
    2. Frameworks y Roadmap de Arquitecturas
      1. Model View 4.1
      2. The Open Group Architecture Framework
      3. Zatchman Framework
    3. Software Product Lines
  6. Comunicación de la Arquitectura
    1. Concepto de Comunicación y Entendimiento de Arquitectura
      1. Comunicar la Arquitectura
      2. StakeHolders y Preocupaciones
      3. ViewPoints, Views y Modelos
      4. IEEE 1470
    2. Workproducts y Deliverables de la Arquitectura
    3. Metodologia de Documentación (Patricio)
    4. Armado del SAD
    5. Características de la documentación de la Arquitectura
  7. Evaluación de Arquitecturas
    1. En que consiste la evaluación
    2. Cuando y Por que.
    3. Riesgos, Costos y Beneficios de las evaluaciones
    4. Métodos de Evaluación de Arquitecturas
      1. Ejemplo ATAM
  8. Rol del Arquitecto de Software
    1. Diferentes niveles y tipos de Arquitectos
    2. Responsabilidades del Arquitecto.
    3. Rasgos y Características del Arquitecto
      1. Liderazgo y Mentoring
      2. Responsabilidades y Aseguramiento de la calidad del Arquitecto
    4. Tareas del Arquitecto a los largo del Desarrollo de Software
      1. Propuesta de Solución y Evaluación Técnica incluyendo Estimaciones y Métricas
      2. Procesos de Construcción de Software
      3. Mantenimiento de Software.
Cualquier comentario será muy bien recibido...

martes, octubre 24, 2006

Seminario de "Prototype Oriented Programming"

Hace varios días que no posteo nada... estuve un poco entretenido con la compra de la casa, participando en seminarios/cursos y obviamente disfrutando de mi hijo.
El Martes 17 de Octubre, la gente de APIT me invitó a un seminario de "Programación Orientada a Prototipos", todos los martes nos juntamos para discutir temas de la materia, pero como justo ese martes caia el seminario del grupo athenas.
Quien dió el seminario, fue el Lic. Hernan Wilkinson, muchas veces habia escuchado hablar de el en IBM, si hablas con la gente es casi un dios, todos los que están hace mas de 8 años lo conocen como un excelente arquitecto y evangelizador del eXtreme Programming y Smalltalk. Lamentablemente no tuve la oportunidad de conocerlo. y apenas estoy hace 3 años.

Con respecto a la charla, sinceramente, estuvo muy buena, casualmente el mismo día, sin saber que a la noche iba a ir al seminario, lo estuve charlando con Gona sobre el tema, el me estuvo explicando de que se trataba.
Lo que realmente me interesó fue la comparación que hizo entre la Filosofía y la Programación Orientada a Objetos, verdaderamente yo no estaba al tanto el mapeo que habia entre lo que Platon y luego Aristoteles que encaja perfectamente con la POO, con clases. No es una rebundancia decir "POO con Clases"?? NO, para nada, la POO no expecifica que tienen que existir clasificaciones de objetos, ahi viene la mayor diferenciación entre lo que todos conocemos por POO (Smalltalk/Java/C# etc) y la POO Orientada a Prototipos. En pocas palabras se puede decir que la Programación Orientada a Prototipos es un sub-grupo de la POO, que utiliza las mismas herramientas pero sin clasificar a los objetos, cada objeto tiene su propio comportamiento, que puede variar a lo largo de la ejecución. Si entiende más o menos el concepto (cualquier cosa UTFW)??
Si bien, no es la manera en la que nos enseñaron a programar, tiene cierto sentido pensar de esta manera. Si lo vemos desde el punto de vista del modelado y el aprendizaje de cierto dominio de una aplicación, tiene más sentido empezar a utilizar objetos especificos y concretos para ir prototipando e ir entendiendo el dominio de la aplicación que estamos desarrollando, que clasificar o abstraer antes de aprender o entender el dominio???
Actualmente trabajamos de esa manera, primero abstraemos para aprender un dominio, no digo que esté mal, pero tambien creo que deberiamos incorporar algunos conceptos de Prototype Oriented Programming. En el seminario se mostraron ejemplos de este paradigma, con Self y con JavaScript.

Basicamente eso es lo que me quedó del seminario... hubo una pregunta interesante sobre las desventajas que tiene esto, y obviamente la respuesta de alguna manera dió algunas pistas de por que no es usado y ampliamente extendido. Ya que una vez que entendemos y aprendemos del dominio ya estamos capacitados para clasificar/abstraer/jerarquizar los objetos por lo tanto los prototipos no son tan necesitamos como al principio del aprendizaje/modelado, es aqui donde falla, no hay herramientas para poder pasar de un modelo en prototipos a clases...

Algo interesante que podemos destacar de Ruby es que permite ambos paradigmas de objeto, tanto con clases como prototipos... es probable que con el crecimiento de este lenguaje dinámico se pueda solucionar la falencia de los lenguajes orientados a prototipos.

El disertante (Hernan) comentó que si bien Ruby permite ambas cosas tiene un problema de que este es críptico....

Realmente piensan que Ruby puede ser el lenguaje para utilizar este paradigma?? Que es criptico ;) ?

domingo, septiembre 03, 2006

Arrancó otro cuatrimestre de APIT

Este es un post un poco tardío, ya que arrancamos hace 3 semanas aprox. Tenemos varias novedades:
  • Nicolas Passerini va a liderar la materia, yo no voy a poder dedicarle el tiempo que le venia haciendo debido a mi nuevo rol de papa :)
  • Tuvimos tres excelentes ingresos:
    • Prof. Jorge Bodoc, ya he mencionado su posible inclusión, trabajamos juntos en un proyecto que estaba incendiado y tuvimos muy buena onda, el era algo asi como el arquitecto del framework. Trabaja hace treinta años desarrollando software, toda una reliquia.
    • Ing. Hernan Liendo, le habia escuchado nombrar muchas veces y muy buenos comentarios, trabajó en cubika como arquitecto en un proyecto enorme con chile, ademas participó en la materia TADP
    • Lic. Gastón Coco, viene de la excelente universidad de tandil y la verdad que hubo muy buena onda, trabaja como Arquitecto en Cubika. Es increible lo que sabe, y lo que lee.
  • Nicolas Rossi, nos deja, debido a su emprendimiento personal, su nueva empresa llamada Identicum, Mucha Suerte!! estoy seguro que no la vas a necesitar...
  • Patricio Echagüe y Sei Wan Roh, debido a sus viajes personales/laborales tampoco van a poder participar.
  • La materia va a ser los Jueves en cambio de los viernes
  • Agregamos un TP en donde, aparte de crear una arquitectura, van a tener que codificar parte del sistema.
Con respecto al programa, es un poco lo que expliqué en otro post, la idea es dar algo mas técnico, lo que en algún momento vamos a dar en APIT 2. Describo un poco las clases:
  1. Introducción a Arq. de SW
  2. Metodologias
  3. Atributos de Calidad. Estilos Arquitectónicos
  4. Tacticas para lograr Attr. de Calidad
  5. Organización de la lógica de negocio
  6. Intefaz de Usuario (UI)
  7. Integración de Aplicaciones (EAI/SOA)
  8. Persistencia
  9. Testing
  10. Software Configuration Management
  11. Delirio (La idea es romper el estado del arte actual y pensar en lo que puede venir a futuro)
Con respecto a los papers de investigación, se pusieron temas bastante interesantes, la unica diferencia, es que el Tutor del paper va a participar de manera activa y va a ser parte del paper, estos son los temas que quedaron:
  • Automatización de Tests de Integracion
  • Por que Arquitecturas en Capas?
  • Cuando conviene RIA?
  • Clusterizacion de aplicaciones con GNU
  • Adaptive SOA
Tambien estamos viendo de mejorar la comunicación y hemos levantado un wiki en el lab de sistemas, pero como la red de la UTN está cada vez más descuidada... increible, quien lidera el Depto de Sistemas es Jefe de Catedra de Redes, sin palabras...

viernes, agosto 18, 2006

Gracias Centro de Estudiante!

No soy de meterme en política, menos en lo que a la UTN refiere, prefiero sumar por otros lados (lab y docencia), pero lo que me enteré la semana pasada a través de un mail, me dejó realmente muy mal... y es la renuncia de las principales cabezas del cuerpo docentes y ayudantes de la materia Sistemas Operativos de segundo año de Ing. en Sistemas de Información.
Todos sabemos el valor agregado que esta materia da a los estudiantes de la UTN es increíble, no solo, lo viví en carne propia, sino también lo viví desde el otro lado staffeando gente, cualquier estudiante que haya cursado y aprobado dicha materia es muy superior a cualquier otro estudiante a ese nivel de cualquier universidad. Es más creo que Sistemas Operativos (junto con otras) es la materia diferenciadora en cuanto a calidad educativa y formación de profesionales.
Sinceramente estoy muy dolido por que sin gente como Adrian, Diego, Maximo y Rosario a la cabeza nose si van a poder seguir tal excelencia. Yo pude ver desde muy cerca el esfuerzo que le ponen día a día a la calidad educativa y me saco el sombrero. Que tenían/tienen muchas cosas por mejorar, seguro, pero puedo poner mis manos en el fuego que Adrian se ocupó siempre de eso.
Solo quiero apoyar a la gente que lideró esta materia y cuenten conmigo para lo que sea, les debo mucho y creo que esto no se tiene que cortar.

Y por que del titulo del post? Debido a que la actitud que venían teniendo con esta cátedra era lamentable (incluido el jefe del depto), en vez de ocuparse de la calidad educativa y valor agregado en la industria, como otras veces doy fe que lo hacen, se ocuparon de agredir de diferentes maneras, espero muchachos que mejoren, no podemos seguir perdiendo la identidad.

jueves, julio 06, 2006

APIT

Un poco de Historia
Como algunos saben, estoy dando en la UTN, con un conjunto de profesionales increíbles, una materia sobre Arquitectura de Software. Se llama, Arquitectura de Proyectos de IT. Digamos que vengo luchando con esta materia desde el 2003, cuando todavía no estaba recibido, andaba por 3 o 4 año de la carrera. El grupo de profesionales con el cual encaramos la encaramos mas o menos siempre fue el mismo, casi todos terminamos el mismo año. Fue mutando desde una materia práctica de java a lo que tenemos ahora, en donde encaramos los diferentes aspecto del rol del arquitecto de software de una aplicación. Costó mucho llegar a esto, horas y horas de lectura, investigación, discusión, pruebas y errores, etc. Despues de todo... creo que la materia hoy en día está bastante encaminada, todavía le falta limar muchas asperezas pero considero que la visión la tenemos bien definida. Por supuesto, nuestro trabajo de día a día en nuestras empresas, como arquitecto o líderes técnicos, nos permitió darle mucho más valor agregado del que podiamos obtener de la teoría, pudiendo relacionarnos con otros profesionales y la resolucion de problemas diarios. Basicamente la visión es brindar herramientas a los futuros ingenieros de la UTN, para poder crear, documentar, evaluar y comunicar arquitecturas y por supuesto formarse como arquitectos de software, ya sea de Aplicación como de Integración o Empresarial. Vamos pasando desde los temas más conceptuales y teoricos a la tecnología actual o estado del arte. Como asi tambien dejando un breve espacio para el delirio, o sea, lo que se viene. En lo que va de la cursada, hemos incorporado a 3 profesionales, dos ex-alumnos de la materia, Patricio Echagüe y Juan Arias. Luego este año se nos incorporó y aportó mucho de su experiencia, el Ing. Nicolas Passerini, la verdad que hay mucha química y gracias a su aporte y fuerza hemos hecho crecer la materia.
Presente
Actualmente estamos respetando el programa, pero en el primer cuatrimestre le damos más importancia a la parte conceptual (ver lo que viene) y en el segundo a la tecnología (ver lo que viene). Somos un conjunto de 7 prof/ayudantes. Estamos haciendo dos TP muy interesante, en uno estamos ayudando a crear una arquitectura desde cero, TP Cuatrimestral y el otro es una investigación sobre un tópico particular actual, en donde deben investigar y plasmar en un paper sus conclusiones.
Lo que viene, lo que viene...
Estamos pensando en dividir la materia en dos, una para el primer cuatrimestre y otra para el segundo, APIT1 y 2. La idea es dejar para la primer materia los conceptos mas abstractos y conceptuales para la 1 (lo que no cambia, iteratividad, estilos, attr. de calidad, etc) y para la 2, dedicarnos a la creacion de arquitecturas implementando la tecnología y los estandares actuales. Tambien estoy pensando en agregar temas de Enterprise Architecture, que como algunos saben es de lo que yo quiero laburar en el futuro, es mi visión como profesional. Tambien quiero incorporar a un excelente profesional que conocí trabajando en Telefonica, Jorge Bodoc que ya nos estuvo ayudando el año pasado, tambien al reciente recibido el Ing. Juan Tula, que está tomando unos meses sabaticos y por otro lado tambien ya tengo detectados dos o tres alumnos de este y el otro cuatrmiestre a los cuales voy a invitar a colaborar con la este proyecto al cual le estoy poniendo mucho esfuerzo y sobre todo huevo!, siento que por el momento está resultando y la gente que la cursa sale con herramienta suficiente para al menos saber que es una arquitectura, que entra y que sale, que hace un arquitecto y que tecnologías para los diferentes concerns de una aplicación se están utilizando.