Ministerio de Cultura y Educación Universidad Nacional de San Luis Facultad de Ciencias Físico Matemáticas y Naturales Departamento: Informatica Área: Area IV: Pr. y Met. de Des. del Soft. |
I - Oferta Académica | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
II - Equipo Docente | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
III - Características del Curso | |||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
IV - Fundamentación |
---|
Se introduce al estudiante en el desarrollo de software como una actividad ingenieril y al trabajo en equipo en el contexto de la Teoría General de Sistemas.
Se pretende que el estudiante aprenda los fundamentos básicos de cada una de las etapas que comprende el proceso de desarrollo de software así como las distintas técnicas y metodologías aplicables, conocimientos de los principios de diseño y las principales técnicas de validación y verificación del software. |
V - Objetivos / Resultados de Aprendizaje |
---|
Al finalizar esta asignatura se espera:
- Preparar al estudiante para su desempeño en la Industria del Software con un enfoque Sistémico. - Que el estudiante asimile los conceptos de procesos de desarrollo de software, desde su inicio, hasta su verificación y validación. - Que el estudiante tome conocimiento de conceptos básicos de ingeniería de software desde un punto de vista de la automatización de procesos de desarrollo de software. Para cubrir dichos objetivos se integrarán conceptos, modelos y métodos en un proyecto integrador. Durante el dictado de la asignatura se abordan los siguientes ejes transversales: - Identificación, formulación y resolución de problemas de informática - Concepción, diseño y desarrollo de proyectos de informática - Utilización de técnicas y herramientas de aplicación en la informática - Fundamentos para el desempeño en equipos de trabajo - Fundamentos para la comunicación efectiva - Fundamentos para evaluar y actuar en relación con el impacto social de su actividad en el contexto global y local - Fundamentos para el aprendizaje continuo |
VI - Contenidos |
---|
Teoría General de los Sistemas. Finalidad, Naturaleza y Características de los Sistemas de Información. El proceso de software: Ciclos de vida, herramientas. Introducción a los métodos formales. Modelado Estático y Modelado Dinámico. Verificación y Validación de software. Conceptos, Herramientas y Estándares de Calidad de Software del Producto.
Estos contenidos mínimos se desglosan en las siguientes unidades: Unidad I: Teoría General de los Sistemas Del Enfoque Analítico, la Teoría General de los Sistemas. El Enfoque de Sistema. Concepto de Sistema. Características de los Sistemas. Elementos constitutivos de un Sistema. Clasificación de los Sistemas. Sistemas de Información. Elementos constitutivos de un Sistema de Información. Criterios de clasificación de los Sistemas de Información. Ejemplos de distintos tipos de Sistemas de Información. Unidad II: Ingeniería de software Ingeniería de Software. Dominio de la IS. Aspectos fundamentales. Características del software. Procesos, metodologías y herramientas de software. Modelos de procesos de desarrollo de software. Ciclos de vida. Evolución de las metodologías de desarrollo de sistemas de software. Ingeniería de la Información. Unidad III: Modelos UML Modelado en UML. Introducción. Modelos y diagramas. Importancia de los modelos. Diagramas estructurales. Clases: atributos, operaciones y responsabilidades. Relaciones: dependencia, generalización y asociación. Diagramas de Clases y Diagramas de Objetos. Diagramas de comportamiento. Diagramas de Secuencia y Comunicación. Diagramas de Casos de Usos. Unidad IV: Proceso de software Proceso de Desarrollo. Análisis, diseño, implementación, pruebas y mantenimiento de software. Modelos del Análisis. Modelo de Casos de Usos del sistema. Modelo conceptual o del dominio. Modelos del Diseño. Unidad V: Metodologías Ágiles Metodologías Ágiles. Conceptos. Principios. Manifiesto. Ventajas y desventajas de las metodologías ágiles. Estudio de utilización concreta de las metodologías ágiles en la industria del software, Unidad VI: Validación, Verificación y Calidad. Validación y Verificación. Pruebas de errores del software. Estrategias de prueba. Técnicas de prueba: prueba estructural y prueba funcional. Prueba Unitaria. Calidad del Software. Aseguramiento de la calidad del software. Medidas de fiabilidad y disponibilidad. Gestión de Configuración del Software. Conceptos. Control. Garantía. |
VII - Plan de Trabajos Prácticos |
---|
Para cada unidad se deja disponible el material correspondiente a los contenidos de la unidad, las diapositivas de clase, el apunte teórico y su correspondiente trabajo práctico en el repositorio digital.
Práctico 1: La Ingeniería de Software y los modelos de ciclo de vida del software. Práctico 2 - UML: Diagramas de clase y de objetos Práctico 3 - UML: Diagramas de casos de uso Práctico 4 - UML: Diagramas de secuencia y comunicación. Práctico 5: Prueba estructural. Práctico 6: Prueba funcional. Laboratorio integrador: Se solicita la ejecución de un proyecto para llevar adelante un caso de estudio donde se cubran algunos de los aspectos fundamentales de la Ingeniería de Software, empleando herramientas automatizadas que den soporte a las diversas actividades llevadas a cabo durante el proceso de desarrollo. A continuación, se describe cómo se abordan y cómo se evalúan los ejes transversales trabajados en la asignatura: Eje: Identificación, formulación y resolución de problemas de informática Cómo se aborda: Se aborda a partir de la unidad 2 mediante el desarrollo de trabajos prácticos, guiadas por clases teóricas, diapositivas de clase, apuntes teóricos, prácticos de aula y consultas grupales e individuales. Cómo se evalúa: Mediante un seguimiento continuo de parte de los docentes. Control de ejercicios en el pizarrón. Además, mediante una evaluación parcial en las fechas predeterminadas en el cronograma de la materia, cada evaluación posee su respectiva recuperación. Eje: Concepción, diseño y desarrollo de proyectos de informática Cómo se aborda: El estudiante debe trabajar sobre el proyecto integrador de diseño e implementación de un sistema acotado. Para ello se trabajará de manera incremental, primero el desarrollo de los modelos correspondientes, para luego llegar al código y posteriormente las pruebas. Cómo se evalúa: A través de la presentación de los modelos, luego la ejecución del sistema y por ultimo y una presentación oral del mismo. Eje: Utilización de técnicas y herramientas de aplicación en la informática Cómo se aborda: El estudiante debe modelar utilizando herramientas de modelados específicas, y la programación se desarrolla en el lenguaje Java. Cómo se evalúa: A través de la presentación de los modelos, luego en la presentación oral del mismo se observa el código fuente del sistema desarrollado. Eje: Fundamentos para el desempeño en equipos de trabajo Cómo se aborda: El proyecto Integrador se realiza conformando equipos de trabajo de 2 personas. Cómo se evalúa: A lo largo de las entregas parciales del proyecto integrador se verifica que cada integrante del grupo pueda explicar la tarea realizada. Eje: Fundamentos para la comunicación efectiva Cómo se aborda: Expresión oral: Se realiza una exposición del Proyecto Integrador mostrando los modelos y el sistema en ejecución, además, se socializa con compañeros y docentes. Expresión escrita: Se realiza un informe del Proyecto Integrador. Cómo se evalúa: Expresión oral: Se observa la exposición y se va informando de las mejoras que pueden realizar para ir obteniendo esa habilidad. Expresión escrita: En las correcciones informadas se hace hincapié no sólo en lo disciplinar sino también en cuestiones de redacción. Eje: Fundamentos para evaluar y actuar en relación con el impacto social de su actividad en el contexto global y local Cómo se aborda: Desde el inicio se fomentará una actitud crítica que les permita evaluar el impacto social que tendrá el sistema a desarrollar. Como se evalúa: Cada entrega del proyecto integrador posee un análisis sobre el impacto social que tendrá el sistema. Eje: Fundamentos para el aprendizaje continuo Cómo se aborda: Todas las unidades tienen actividades prácticas para que los estudiantes respondan participando de las clases teóricas y clases prácticas. En cada práctico se hace un seguimiento de los ejercicios realizados por el estudiante. Cómo se evalúa: Cada entrega/consulta tiene una corrección informada. |
VIII - Regimen de Aprobación |
---|
La materia se desarrolla con la modalidad de promoción sin examen final.
Existen dos niveles: a) Regularización: Para regularizar la materia se deberá: 1.- Tener como mínimo un 70% de asistencia a clases. 2.- Presentación y aprobación del proyecto integrador de laboratorio con nota mayor o igual a 6 (seis). 3.- Aprobar dos evaluaciones parciales con una nota mayor o igual a 6 (seis). Cada evaluación parcial posee dos recuperaciones. En caso de no aprobar una evaluación parcial, deberá aprobar alguno de sus recuperatorios con nota mayor o igual a 6 (seis). b) Promoción sin examen final: Para regularizar y aprobar la materia se deberá: 1.- Tener como mínimo un 80% de asistencia a clases. 2.- Presentación y aprobación del proyecto integrador de laboratorio con nota mayor o igual a 7 (siete). 3.- Aprobar dos evaluaciones parciales con una nota mayor o igual a 7 (siete). Cada evaluación parcial posee dos recuperaciones. En caso de no aprobar un parcial, deberá aprobar alguno de sus recuperatorios con nota mayor o igual a 7 (siete). 4.- Aprobar un coloquio de carácter integrador oral o escrito con una nota mayor o igual a 7 (siete). Aquellos estudiantes que sólo regularicen la materia deberán rendir un examen final, en los turnos establecidos. Estudiantes Libres: Por las características propias del proyecto de laboratorio a desarrollarse durante todo el cuatrimestre, no se aceptan estudiantes libres. |
IX - Bibliografía Básica |
---|
[1] Pressman, Roger; "Ingeniería del Software - Un enfoque práctico", Mc Graw Hill, 6ta Edición. 2006.
[2] Booch, Rumbaugh, Jacobson. The Unified Modeling Language User Guide, 2nd Edition. Addison-Wesley, 2005 [3] Booch, Rumbaugh, Jacobson. The Unified Modeling Language Reference Manual, 2nd Edition. Addison-Wesley, 2005. [4] J. O’ Brien & G. Marakas, “Introduction to Information Systems”, 15 th edition. [5] Pankaj Jalote; An Integrated Approach to Software Engineering, 3ra edición. Springer. 2005. [6] Ghezzi, Carlo y otros "Fundamentals of Software Engineering", Prentice Hall, 1991. [7] Jorgensen, Paul C.; “Software Testing, a Craftsman’s Approach”, CRC Press, 1995. [8] Daniel Bolaños y otros; “Pruebas de software y JUnit”, Prentice-Hall, 2008. [9] Martín Fowler, The New Methodology, http://www.martinfowler.com/articles/newMethodology.html [10] Kent Beck, “Extreme Programming Explained”, 1ra edición, 1999. [11] Scott Ambler, “Agile Modeling: Effective practices for Extreme Programming and the Unified Process”, John Wiley & Sons, 2002. [12] Daniel Jackson; “Software Abstractions”, The MIT Press, 2012. [13] Apuntes de la Cátedra. |
X - Bibliografia Complementaria |
---|
[1] Booch, Grady. Object-Oriented analysis and design with applications. The Benjamin/Cummings Publishing Company Inc. 1994.
[2] Stephen Schach. "Ingeniería de Sofware Clásica y Orientada a Objetos, 6ta ed.", Mc Graw Hill, 2005. [3] Sommerville, Ian; “Software Engineering”, Addison-Wesley, 6ta Edición. 2002. [4] Beck, Kent. Test-driven development by example. Pearson Education, 2003. [5] Scott Ambler, “Agile Modeling and the Unified Process”, http://www.agilemodeling.com/essays/agileModelingRUP.htm, 2002. [6] Pekka Abrahamsson, Outi Salo, Jussi Ronkainen & Juhani Warsta, “Agile Software Development Methods: Review and Analysis”, VTT, 2002. [7] "Extreme Programming: A gentle introduction", http://www.extremeprogramming.org/ [8] Página Web del Instituto de Ingeniería de Software (CMU). http://www.cmu.edu, |
XI - Resumen de Objetivos |
---|
Asimilar los conceptos de procesos de desarrollo de software, desde su especificación, modelado, implementación, hasta su verificación y validación, incorporando conceptos de calidad del software.
|
XII - Resumen del Programa |
---|
Teoría General de los Sistemas. Sistemas de Información. El Producto de Software integrado en un Sistema de Información. El proceso de software: Ciclos de vida, herramientas. Modelado, implementación, verificación, validación y mantenimiento de software. Conceptos de calidad de software.
|
XIII - Imprevistos |
---|
|
XIV - Otros |
---|
|