Materia Práctica Profesional

logo ISBP

Instituto Superior Tecnológico Blaise Pascal

Materia: Práctica Profesional
Carrera: Tecnicatura Superior en Análisis de Sistemas - Resolución Nº5817/03
Carrera: Tecnicatura Superior en Redes Informáticas - Resolución Nº6164/03
Nivel: Terciario - Modalidad: Presencial
Curso: Tercer Año
Carga horaria: 196 hs anuales (6 hs semanales)
Docente: Mariano A. Reingart / Luz Medina
Provincia de Buenos Aires - Dirección General de Cultura y Educación
Dirección Provincial de Educación de Gestión Privada - DIPREGEP N° 6131

PROPÓSITOS DEL PROYECTO:


Se propone en el espacio de la Práctica Profesional, el desarrollo íntegro de un Sistema de Información Orientado a Web por parte de los alumnos, que les permita canalizar los conocimientos adquiridos a lo largo de la Carrera de la Tecnicatura en Análisis de Sistemas.

Esta materia se inscribe en el Proyecto Curricular Institucional orientado al software libre, por lo que los proyectos finales de la carrera serán desarrollados como software libre de código abierto.

Funciones de la Cátedra:

  • Facilitar los conceptos para el desarrollo de software bajo metodologías ágiles, un lenguaje de programación dinámico y  herramientas libres que permitan una futura inserción laboral
  • Facilitar el entendimiento, el desarrollo y la comprensión de la ejecución de programas de diferente complejidad desarrollados bajo este lenguaje y mediante estas metodologías y herramientas
  • Facilitar las técnicas y habilidades interpersonales necesarias para el desarrollo de aplicaciones de alta calidad y bajo costo, pudiendo completar proyectos grupales en tiempo y forma, de manera colaborativa trabajando en equipo.

Justificación


El análisis y diseño de sistemas informáticos determina las características del sistema de software desarrollado, y en este sentido, se facilitará al futuro analista de sistemas de los siguientes conceptos:
  • las metodologías flexibles iterativas e incrementales, con Scrum como caso de estudio, para un desarrollo más acelerado ajustado a los tiempos actuales y requisitos cambiantes de los proyectos web y comunidades virtuales
  • el proceso de software disciplinado (P.S.P.), encauzando las dificultades frecuentemente encontradas por usar metodologías ligeras, tendiente a ejercitar una mejora continua en la calidad de los productos desarrollados y la estimación de plazos y recursos
  • la programación usando un lenguaje simple (de rápido aprendizaje y fácil mantenimiento), moderno y bajo múltiples paradigmas -estructurados, orientado a objetos y funcional- (Python, complementado con el marco de trabajo web2py).
La elección del modelo de Software Libre por encima el propietario, llevará a nuestros analistas de sistemas a desarrollar sistemas de información de manera abierta y participativa, interactuando con la comunidad (retroalimentándose con comentarios y experiencias útiles en la futura vida profesional del estudiante) y en definitiva, aportando nuevo conocimiento a la sociedad publicando proyectos concretos y útiles. Se busca una mejora en la eficiencia del proceso con un resultado más robusto y diverso, además de la ya conocida ventaja de este tipo de software respecto de las licencias y costos (que evita las barreras económicas y legales más frecuentes de acceso y adopción a estas tecnologías).

Se utiliza Python como lenguaje de programación. Dado que es un lenguaje interpretado de alto nivel, con una sintaxis simple y clara y una amplia biblioteca estándar, permite enfocarse en el desarrollo de los sistemas de manera ágil y dinámica. Se complementa con el marco de trabajo web2py, que ofrece las características necesarias para construir aplicaciones modernas web 2.0, y también ha sido diseñado para ser usado tanto en la educación como en ambientes empresariales, promoviendo buenas prácticas profesionales.
Para la base de datos se utiliza PostgreSQL por su robustez, amplias funcionalidades y cumplimiento de estándares SQL y similares.
Para el sistema operativo se utiliza Debian GNU/Linux o derivados.

Por otra parte, el desarrollo de sistemas orientados a web, aportará al futuro analista de sistemas los conocimientos necesarios para atacar el problema del  vertiginoso crecimiento de las aplicaciones para las redes de comunicación y la correspondiente globalización de la información.

En definitiva, los futuros analistas de sistemas no sólo se capacitan en técnicas, paradigmas y lenguajes de programación de aceptación en el mercado, sino también con la más alta expectativa de crecimiento futuro.

PROGRAMA ANUAL:

Unidad 1. Fundamentos de las metodologías ágiles

Ingeniería de Software. Herramientas. Métodos. Procesos. Calidad. Ciclo de vida tradicional en cascada. Desarrollo evolutivo. WIN-WIN. Concurrencia. Manifiesto Ágil. XP y Scrum.

Unidad 2. Herramientas de Gestión Proyectos Libres (googlecode)

Documentación. Formato Wiki. Adjuntos. Linea de tiempo. Edición colaborativa. Usuarios. Temas o Incidentes (tickets). Hitos (milestones). Hoja de ruta (roadmap). Repositorio de código. Reportes.

Unidad 3. Gestión de la configuración del software.  Control de versiones y cambios (mercurial)

Linea Base. Comandos básicos svn/hg: obtener (init / clone o checkout), agregar (add), borrar (delete), diferencia (diff), comprometer (commit), revertir (revert), actualizar (update). Repositorios distribuidos: pull,  push, merge.  Integración con Trac, GoogleCode o similar

Unidad 4.  El Proceso de Software Personal

Introducción. Fases: Planificación, Diseño, Codificación, Revisión, Compilación, Pruebas, Postmortem. Estándares de codificación, conteo y clasificación de errores. Métodos estadísticos de estimación de recursos. Reportes e índices de rendimiento y calidad.

Unidad 5. Desarrollo del Proyecto web

Planificación de Sprints
Patrón MVC: modelo (base de datos), vista (páginas web), controlador (lógica del negocio). Interfaz de usuario web moderna: HTML5, CSS y  JavaScript (interactividad c/ AJAX)
Seguridad: Usuarios, Grupos y Autenticación.
Revisión y Verificación. Pruebas. Despliegue. Demo de cada entregable. Reunión de retrospectiva.

Unidad 6. Aspectos legales y económicos del Software Libre 

Derechos de autor. Licencias de Software. Cesiones y Obligaciones. Garantías y Responsabilidades. Patentes. Marcas. Secretos industriales y Confidencialidad. Modelos de negocio. Regulaciones de Seguridad. Consideraciones sobre Datos Personales y Privacidad. Ética Profesional.

BIBLIOGRAFÍA


Libros y materiales de consulta obligatoria:
  1. Ingeniería del software en entornos del software libre. Segunda edición: febrero 2007, Barcelona - España. Fundació per a la Universitat Oberta de Catalunya. Autores: Jordi Mas, David Aycart Pérez, Marc Gibert Ginestà, Martín Hernández Matías.
    http://cv.uoc.es/cdocent/APK5H8_0MRUMW3K7YJKJ.pdf
  2. Henrik Kniberg. SCRUM Y XP DESDE LAS TRINCHERAS. Traducción al castellano: Ángel Medinilla. ISBN: 978-1-4303-2264-1
    http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las-trincheras.pdf
  3. Juan Palacio. Flexibilidad con Scrum. Principios de diseño e implantación con Scrum. Apuntes, conceptos y principios para diseñar, implantar y gestionar proyectos ágiles y equipos multidisciplinares. Noviembre 2007
    http://www.navegapolis.net/files/Flexibilidad_con_Scrum.pdf
  4. The Official web2py Book. Autor: Massimo Di Pierro. 5ta Edición 2013. ISBN: 978-0-578-12021-8 http://www.web2py.com/book/default/index?_language=es Traducción al español por Latinux Press (beta): http://www.latinuxpress.com/books/drafts/web2py/  
  5. Entity relationship modeling with UML. Davor Gornik. IBM. 23 de Julio de 2005 (publicado inicialmente el 25 de Noviembre de 2003)
    http://www.ibm.com/developerworks/rational/library/content/03July/2500/2785/2785_uml.pdf
  6. PSP (Proceso de Software Personal): Materiales para estudio autodidacta. Instituto de Ingeniería del Software. Universidad Carnegie Mellon. http://www.sei.cmu.edu/tsp/tools/student/
Libros y materiales de consulta opcional:
  1. Licencias de Software Libre. Malcolm Bain, Manuel Gallego, Manuel Martínez Ribas, Judit Rius.  © 2010, FUOC.
    http://materials.cv.uoc.edu/cdocent/7KGG_PXVTI02TTHUFMBU.pdf
  2. Modelos de Negocios con Software Libre. Irene Fernández Monsalve. © 2009, FUOC.
    http://cv.uoc.edu/autors/MostraPDFMaterialAction.do?id=145049
Referencias documentales adicionales:
  1. Desarrollo de aplicaciones web. Primera edición: marzo de 2004. Barcelona, España. Fundació per a la Universitat Oberta de Catalunya. Autores: Carles Mateu.    
    http://cv.uoc.es/cdocent/NCF24UBLAGGISIWI3UC9.pdf
     
  2. El Mitico Hombre Mes. Ensayos sobre ingeniería de Software. Fred Brooks. Edición 20ª Aniversario. Addison Wesley, 1995. ISBN 0-201-83595-9. "No hay bala de plata: lo esencial y accidental en la ingeniería del Software:" http://barrapunto.com/~pacoescriba/journal/29784 
  3. Ian Sommeville. Ingeniería del Software. 7° Edición. Pearson - Addison Wesley. Madrid - España. 2005. ISBN: 84-7829-074-5
  4. Aprenda a pensar como un programador con Python. Allen Downey - Jerey Elkner - Chris Meyers. 2002, Wellesley, Massachusetts
  5. Python para todos. González Duque, Raúl. 2002, Wellesley, Massachusetts.
  6. Guido van Rossum.  Guía de aprendizaje de Python. 11 de septiembre de 2005. Python Software Foundation
  7. Ingeniería del Software. Autor: Pfleeger Lawrence. Editorial Pearson. Traducción de: Elvira Quiroga
  8. Fundamentos de Sistemas de Bases de Datos. Autor: Elmasri Navathe. Editorial Addison Wesley.
  9. Análisis Estructurado Moderno. Autor: Edward Yourdon. Editorial: Prentice – Hall.
  10. El Lenguaje Unificado de Modelado. Autores: Grady Booch, James Rambaugh, Ivar Jacobson. ISBN 8478290370

    EVALUACIÓN


    Si bien la evaluación se dará de manera continua durante todo el año, están planificadas dos instancias de evaluación, al finalizar cada uno de los dos cuatrimestres del año.
    Los alumnos que alcancen el porcentaje obligatorio de asistencia, y que además cumplan con las consignas hechas por el docente durante la etapa de seguimiento y evaluación continua, accederán a dichas instancias de evaluación.
    Las evaluaciones serán escritas con contenidos teóricos y prácticos, en las que se deba aplicar las metodologías estudiadas durante el año y que el alumno deba poner de manifiesto la internalización de los conceptos de distintos temas, adjuntando documentación sobre los trabajos prácticos pertinentes.
    Aprobadas dichas instancias de evaluación, el alumno obtendrá la regularidad de la materia en carácter de cursada, debiendo realizar una exposición con las mismas características en fecha de examen final, ya que esta materia carece de características promocionales.

      Modelos de Examen

      • 1° Parcial (evaluación de acreditación cuatrimestral)
      • 2° Parcial (evaluación de acreditación cuatrimestral)
      El examen final es una defensa oral y se debe presentar toda la documentación técnica del proyecto, incluyendo el código fuente completo, diagramas D.E.R., D.F.D., U.M.L. y manuales de usuario que pudieran corresponder. Ver Trabajo de Campo "911" a modo de ejemplo.

      Ser recomienda la redacción de un artículo a mode de resumen, de 15 a 20 hojas, acompañado de una presentación de hasta 10 diapositivas (máx. 15 minutos). La entrega final debe hacerse impresa y en CD, y el sistema debe estar correctamente instalado y en funcionamiento, con suficientes datos de prueba cargados y no presentar errores ni fallas insalvables.

      Esta materia tiene un régimen de aprobación especial por lo que no puede rendirse en condición de alumno libre.

      Consultas Técnicas (Python):

      Incribirse y realizar preguntas técnicas sobre Python a las listas de correo de la comunidad Python Argentina. Ver instrucciones Más información en Grupo de Usuarios de Python Argentina

      Consultas Técnicas (Web2Py):

      Incribirse y realizar preguntas técnicas sobre Web2Py a las listas de correo de la comunidad Web2Py en Español. Ver instrucciones Más información en Grupo de Usuarios de Web2Py en español

      IMPORTANTE: Integrar los grupos de usuarios, presentar el proyecto en conferencias y/o publicar artículos en los congresos o revistas relacionadas, seguramente será evaluado positivamente en la presentación del día del examen final (de acuerdo al nivel de participación que tengan).

      Repositorio de código y seguimiento de proyectos:


      No hay comentarios:

      Publicar un comentario en la entrada

      Licencia y Aviso Legal

      CC BY-SACopyright (C) 2009 - 2013 Mariano Reingart reingart@gmail.com - Visite el sitio http://reingart.blogspot.com/ para novedades. Salvo indicación contraria, el texto de esta página está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0 Unported; podrían ser aplicables cláusulas adicionales.

      Se solicita mantener el aviso de copyright (enlazando al texto original), compartir las obras derivadas bajo la misma licencia, y si es, posible comunicando al autor cualquier mejora. No utilizar logotipos ni marcas sin la debida autorización de sus titulares.

      Toda información es proporcionada a Titulo Informativo y se entrega como está, sin garantías explícitas ni implicitas de ningún tipo, incluyendo sin limitación, pérdida de ganancias, interrupción de negocios, pérdida de programas u otros datos en sistemas de computación o cualquier otro reclamo. Al usarla acepta hacerlo bajo su propia responsabilidad, conociendo la normativa y reglamentaciones existentes. En caso de controversias respecto del presente, usted acepta presentarlas y resolverlas exclusivamente en la jurisdicción de los Tribunales Ordinarios Civiles y Comerciales del Departamento Judicial de Morón, Provincia de Buenos Aires, Argentina, renunciando expresamente a cualquier otro fuero que pudiere corresponder.