Curriculum Vitae

- Si quieres saber mi estado civil, año de nacimiento, ver mi foto y demás información que se suelen incluir en el currículum podesdescargarlo en formato word (curriculumvitae.doc), o también
pueden
ver el curriculum vitae online haciendoclick aca.

agregame
marcosgabrielcravero@hotmail.com

Aplicaciones Web usando UML y métodos formales

Metodologías

Los lenguajes y herramientas orientadas a objeto no son una panacea para construir sistemas orientados a objetos.Por ejemplo un problema es el incremento en la complejidad del sistema debido a la fuerte interacción de los objetos. Un proceso de desarrollo de software correcto ayuda a producir un buen producto. La metodología nos brinda una preselección de las técnicas a usar en cada etapa del desarrollo de software (especificación, diseño arquitectónico, detallado e implementación):

  • COMET(Desarrollo de aplicaciones concurrentes, distribuidas y de tiempo real usando UML).
    Usaremos esta metodología en un ejemplo interesante y practico: en todas las aplicaciones donde tenemos que buscar un conjunto de registros de una base de datos y mostrarlos en el browser, tenemos que paginarlos para mostrarlos en varias paginas. Por ejemplo el buzón de correo de hotmail o el buscador google, no muestra todos los resultado encontrados en una pagina, muestra n registros por paginas, y botones siguientes y anterior.
    Especificare usando casos de uso este ejemplo y del análisis de los casos de uso encontramos los objetos que necesitaremos. Luego se desarrollara el diagrama de colaboración consolidado, a partir de este se hará el diagrama de clases y mostraremos la lógica de eventos de las tareas.
    Mediré el nivel de acoplamiento y cohesión que tiene el sistema, pues esta medida influye en las siguientes cualidades: manteniblidad, entendibilidad y modificabilidad
    Por ultimo se implementara en ASP.NET(c#) y sql-server(transact-sql)



    Ver todo el desarrollo con la especificación, diseño arquitectónico, detallado y código asp.net.

  • Métodos formales
    Mostrare esta metodología con un ejemplo: en muchas aplicaciones el usuario ingrese datos y tenemos que mostrarlos ordenados. Aunque la mayoría de los lenguajes tienen funciones para ordenarlos, generalmente no conocemos que procedimiento de ordenación implementa el lenguaje, ni mucho menos su complejidad temporal. Por esto es interesante implementar nuestro propio algoritmo de ordenación y demostrar que propiedades tiene.
    Escribo una especificación formal de un vector ordenado, usando expresiones cuantificadas y Ternas de Hoare. A partir de esta especificación derivo usando axiomas y reglas de calculo de programas dos algoritmos de distinta complejidad temporal y espacial.
    Como uno de los algoritmos usa una pila, defino el tipo de dato pila usando especificación algebraica y escribiendo una función de abstracción implemento una pila con un vector. La corrección formal de los dos algoritmos obtenidos con respecto a la especificación formal puede asegurarse por la forma en que fueron construidos.
    Por ultimo implemento ambos algoritmos en una pagina DHTML usando JavaScript.



    Ver la derivación completa del ejemplo detallando todos los axiomas y reglas aplicadas en cada paso y la implementación en JavaScript
    Mas rápido es descargar la derivación completa en formato para word (metodosFormales.doc)

  • Modelo relacional
    Todo sistema almacena y usa información. Mostraremos que información mantenemos en el portal de contactos para buscar pareja. Primero definiremos todos los atributos y las dependencias funcionales, usando reglas de inferencia obtendremos un cubrimiento reducido y mínimo. De esta manera evitamos mantener información redúndate y potenciales insconsistencias que podrían surgir al modificar o actualizar los datos. Implementaremos los esquemas y las consultas en sqlserver y mysql.


  • Desarrollo de aplicaciones web pensando en el cambio
    Ahora son muy comunes las interfaz de usuario grafica en flash, al comienzo solo se usaba html. Muestro como desarrolle un foro de discucion con una interfaz en html. Luego cambiando la implementacion de un metodo de una clase interfaz tendremos el foro en flash. Implemento el foro en php, mysql y la interfaz la escribo primero en html y luego en actionscript.
    Muestro los diagramas de clase usando UML. Lo implemento usando PHP, mysql y la interfaz en DHTML.
    Luego para ver como se comporta comporta con los cambio, lo implemento en Flash con ActionScript Flash con ActionScript



    Ver el desarrollo y codigo en php y ActionScript del foro de discucion.


Presiona el botón editar para ver el código fuente.
Con el menú del costado izquierdoselecciona el ejemplo: Paginación (desarrollado con COMET) u Ordenación (desarrollado usando métodos formales).
El código fuente lo podes ver presionado el botón editar, que esta en el menú superior.
Luego también en el menú superior podes seleccionar: .cs te muestra el código c#, si seleccionas.js te muestra el código JavaScript y si seleccionas .aspx te muestra los tag html.
En el ejemplo Paginación, el código interesante esta en la ventana .cs (c#)
En el ejemplo Ordenación, el código desarrollado esta en la ventana .js (JavaScript)
Para ejecutar el ejemplo presiona el botón probar.



Trabajos y proyectos realizados

Usando UML y métodos formales desarrolle los siguientes proyectos

  • Actores. Aplicacion con videos, fotos y curriculum
    Como administrador podes ver todo de actores, actrices, directores y conductores, o seleccionar ver solo los actores, o las actrices o directores o conductores. Un actor puede ser conductor o director, pero no actriz, en cuyo caso aparecerá en los listados correspondientes.
    Los listados son paginados en 3 filas por 4 columnas. En cada ítems del listado se muestra un campo para seleccionarlo/deseleccionarlo, una foto pequeña y el nombre. Puede haber 2 ítems distintos del listado con el mismo nombre.
    Al final del listado hay un botón borrar que borra todos los que están seleccionados y un botón siguiente anterior.
    Haciendo clic en el nombre entras a la ficha personal. En la ficha se muestra lo siguientes datos: el nombre, si es mujer u hombre y si es actor, director o conductor. el texto del curricululm con formato (negrita, cursiva, letras de color)
    Una cantidad libre de videos con su titulo, que se puede reproducir on-line, haciendo clic sobre el titulo del video. Puede haber 2 videos con el mismo titulo. 1 foto grande que se cambia por cualquiera de 3 fotos que se muestran abajo.
    Toda la ficha se puede editar o modificar:
    - Se puede cambiar el nombre, si es hombre o mujer, y si es actor, director o conductor.
    - se puede editar el texto del currículo con formato, agregar, borrar, cambiar de formato, color. - se puede cambiar el titulo del video, cambiar el archivo del video por otro, borrar videos y agregar videos.
    - se puede agregar borrar fotos.

    Entre en el sitio
    Vaya a administrador.
    nombre de usuario: admin
    password: actor
    agregue un actor: escriba un nombre y los lugares donde trabajo, suba
    foto y videos.
    busque el actor en el listado
    modifique el currículo: el nombre y los lugares donde trabajo.
    Cambie los títulos de los videos, suba más videos, borre un video.
    Suba mas fotos y borrelas
    Seleccione el actor y borrelo.

  • Modelar y simular una aplicación Web
    La aplicación puede atender a 1000 usuarios simultáneamente, con más usuario se cae. Los usuarios llegan al sistema con una media de 2 por hora y su función de masa de probabilidad esta dada por:

    El 70% de los usuarios que ingresan son hombres y el resto mujeres. Esto es importante porque el tiem
    po que el usuario permanece en el sistema también es una variable aleatoria y depende del sexo. Si es hombre la media es de 30 minutos, y su función de distribución esta dada por:

    Si es mujer la media es de 45 minutos y su función de distribución esta dada por:

    Por simulación obtendremos la probabilidad de que la aplicación se caiga en un 24hs de funcionamiento. Estimaremos p mediante un intervalo de confianza del 95% y 1.96, con un nivel de confianza del 96% y

    Descargar el codigo.

  • Aplicación de contactos, búsqueda de parejas y podes votar la fotos de los usuarios
    El usuario se inscribe creando un perfil con un nick, contraseña, presentación, descripción, preferencias sexuales, lugar de residencia y puede subir fotos, todo esto lo puede modificar cuando entra a su cuenta. Cuando finaliza la inscripción se le envía un email con sus datos de ingreso.
    El usuario ingresa a su cuenta con su nick y contraseña. Puede modificar sus datos, subir y borrar fotos, buscar perfiles y enviar mensajes o email escribiendo el nick del destinatario o si la conoce su dirección de correo. También podes votar a los otros perfiles dándole un puntaje entre 0 y 10. Cada cuenta tiene un buzón de mensaje. Los mensajes se pueden leer, reenviar, responder o borrar.
    En la portada de la pagina se muestran los nick de los 50 últimos inscriptos, el perfil con la presentación y descripción de los 4 perfiles mas votados y una cita aleatoria. También podes buscar desde la portada y sin estar inscritos perfiles por lugar de residencia y preferencias sexuales. Además en la portada tiene un link para el foro y la revista. Si no estas inscrito y entras a algunos de los submenú (buscar, foro, revista o ver el perfil), cuando queres enviar un mensaje o ir a otro menú te lleva a la pagina de inscripción.
    La aplicación registra cuantos email y mensajes a enviado y recibido cada usuario.
    Esta aplicación la descompusimos en 25 módulos: lista de usuarios, de mensajes, foro, modificar presentación, foto, descripción.
    Cada modulo esta compuesto por varias clases, por ejemplo el modulo lista de usuarios (esta detallado en el apartado anterior COMET), tiene las siguientes clases: interfaz de entrada, salida, entity.DataBase y entity.Estado
    Implementado en asp.net y sql-server
    Ver la aplicación.

  • Listas de distribución de email
    El usuario puede crear una lista de distribución escribiendo el nombre de la lista, una contraseña y una descripción sobre los temas que va a tratar la lista. La gente puede ver el nombre de todas las listas y las descripciones de las listas. Cuando la gente se suscribe ingresa el nombre de una lista y se le envía un email que tiene que confirmar dentro de las 24hs siguiendo un link único.
    Cuando ingresa con el nombre de la lista y la contraseña puedes cargar un archivo con una lista de email, la aplicación reconoce cada email y le envía confirmaciones a todas las direcciones que hay en el archivo.
    Puedes enviar email a todos los suscritos en formato html o texto. Cada email enviado se puede consultar también on-line ingresando el nombre de la lista que se quiere consultar los mensajes que fueron enviados.
    Esta aplicación fue descompuesta en 12 módulos, cada modulo con varias clases. Fue implementada en asp.net(c#) y sql-server(t-sql)
    Ver proyecto.

  • Foros
    El usuario se inscribe y puede poner una foto. Luego puede empezar a escribir en el foro. Cada mensaje que escribe es acompañado por el nombre de usuario y la foto. Haciendo click en la foto o en el nombre se puede ver el perfil del usuario. Ver el sitio Web
  • Chat
    Se ejecuta como servidor o cliente dependiendo de los parámetros pasados. Si no le pasamos ningún parámetro se ejecuta como servidor, si le pasamos como parámetro una dirección ip, actúa como cliente y se conecta con el servidor en la dirección ip pasada como parámetro. Implementado en Java y usando datagramas. Descargar el codigo

  • Lenguajes
    En muchas ocasiones necesitamos traducir de un lenguaje a otro. Por ejemplo migrar de asp a asp.net, y pasar de visual Basic a Visual Basic.Net. Para esto tenemos que tener un analizados sintáctico (Parseador) que analiza una porción de texto y determina su estructura lógica.
    Analizador sintáctico implementado en Huskell y Java. Descargar el codigo

  • Herramienta de desarrollo de aplicaciones Web on-line
    Similar a FontPage, o WebMatrix pero On-line. Luego de inscribirte te crea un directorio con tu nombre de usuario. En este directorio creas, abrir, guardas editas y ejecutas tus proyectos en forma remota.
    Para casa nombre de archivo tenes 3 ventanas de edición. En una ventana editas el código c#, en la otra el código JavaScript y en la ultima los tag html. Luego podes ejecutar el proyecto y ver en funcionamiento la aplicación que creaste.
    Ver pagina

  • Memoria asociativa y aprendizaje supervisado
    El usuario ingresa p patrones (imágenes de NxK) y la aplicación los almacena. Luego cuando se presenta otro patrón , la aplicación responde con el patrón almacenado mas parecido a .

    Implementado en c++. Descargar el codigo.
    Se compara la salida de la red con la respuesta correcta y la red recibe un feedback. Luego de ser entrenada la red aprende las respuestas correcta a cualquier input.

    Implementado en c++. Descargar el codigo




    Contactos y trabajos freelance o part-time.


    Envíame un email desde esta pagina html, recuerda poner en el cuerpo tu email, tel o alguna forma de contactarte.
    Envíame un correo a:
    marcosgabrielcravero@gmail.com o agregame al msn
    marcosgabrielcravero@hotmail.com
    nuevo cel: (54-11) 1559628735

    Sign in  |  Recent Site Activity  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites