/syllabus-2

Repositorio para material de la sección 2 del curso.

Primary LanguageRuby

IIC2143 — Ingeniería de Software - Sección 2

Tabla de contenidos


Programa del curso

Equipo

Profesor

Nombre Sección GitHub Email
Yadran Eterovic 2 @yadran yadran@ing.puc.cl

Ayudantes

Nombre GitHub Email
Isaac Carrera @ifcarrera ifcarrera@uc.cl
Verner Codoceo @vacodoceo vacodoceo@uc.cl
Cristián Cortés @criscv94 cacortes1@uc.cl
Benjamín Earle @MrEarle biearle@uc.cl
Catalina Herrera @cataherrera cfherrera@uc.cl
Harold Müller @haroldmuller hlmuller@uc.cl
Jerónimo Salazar @jerosalazar jcsalazar@uc.cl
Joaquín Tagle @jtagle2 jtagle2@uc.cl
Jaime Yañez @JaimePata jsyanez@uc.cl

Objetivos

Al finalizar el curso, el estudiante estará capacitado para:

  • Llevar a cabo el desarrollo de un sistema de una manera metódica, comenzando por la formulación de los requisitos del sistema, desarrollando un diseño modular, refinando este diseño en una implementación que identifique y minimice los riesgos, codificando de manera que se pueda integrar con el trabajo de un equipo, y usando métodos para identificar y prevenir fallas.
  • Desarrollar requisitos claros, concisos y precisos para el desarrollo de un nuevo producto de software (sistema), basados en las necesidades de los usuarios y otros interesados.
  • Aplicar principios y patrones al diseñar un sistema y al evaluar el diseño de un sistema: abstracción, descomposición, ocultación de información, acoplamiento, cohesión, etc.
  • Crear diagramas de clases en UML que modelen el dominio de un problema y la arquitectura de software de un sistema.
  • Crear diagramas de secuencia, de estados, y de actividades en UML que modelen los casos de uso y, más en general, el comportamiento de un sistema.
  • Aplicar técnicas de testing simples a distintos niveles de un producto de software; por ejemplo, escribir pruebas de caja negra básicas para clases y métodos

Contenidos

  1. Motivación
  2. Proceso
  3. Requisitos
  4. Diseño
  5. Arquitectura
  6. Gestión del Proyecto
  7. Aseguramiento de Calidad (QA)
  8. Métodos Estadísticos en Ingeniería de Software

Metodología

El curso se desarrolla en base a clases expositivas y prácticas por una parte, y desarrollo de un proyecto por otro. El material no necesariamente es presentado en forma lineal (de acuerdo a contenidos) sino en forma iterativa pasando más de una vez por algunos temas. Las clases teóricas presentan los contenidos del curso desde una perspectiva de explicación y aplicación de los conceptos a problemas prácticos. Las clases prácticas en horario de ayudantía tienen como objetivo complementar la clase con aspectos prácticos de la plataforma de software, uso de herramientas y ejemplos de aplicación de los conceptos. El desarrollo del proyecto en grupos permite vivir la experiencia de desarrollo utilizando un proceso ágil en una aplicación web.

El canal oficial para la adquisición de los contenidos evaluados en el curso es la cátedra. Si bien se proveerán ejemplos y las slides usadas, estas no reemplazan la asistencia a clases puesto que ellas están orientadas a ser un complemento a la clase.

Evaluación

Ver programa del curso para más detalles.

Interrogaciones

El curso contará con 3 interrogaciones a lo largo del semestre. Su hora de inicio será las 18:30, en las siguientes fechas:

Interrogación ¿Cuándo?
Interrogación #1 lunes 10 de septiembre
Interrogación #2 jueves 11 de octubre
Interrogación #3 viernes 9 de noviembre

Examen

El curso contará con un examen obligatorio el día viernes 30 de noviembre.

Bibliografía

  • D. Bell, Software Engineering for Students, 4th Ed, Addison-Wesley 2005
  • P. Jalote, Concise Introduction to Software Engineering, Springer-Verlag 2008
  • J. Loeliger and M. McCullough, Version Control with GIT, 2nd Ed, O´Reilly 2012
  • K. Rubin, Essential Scrum, Addison-Wesley 2013
  • A. Pham amd P. Pham, Scrum in Action, Course Technology PTR 2012
  • R. Miles and K. Hamilton, Learning UML 2.0, O´Reilly 2006
  • C. Lasater, Design Patterns, Wordware Publishing 2007
  • M. Hartl, Ruby on Rails Tutorial 3rd Ed, Addison Wesley 2015
  • R. Olsen, Design Patterns in Ruby, Addison Wesley 2007
  • D. Chelimsky, The RSpec Book, Pragmatic Bookshelf 2012
  • M. Wynne and A. Hellesoy, The Cucumber Book, Pragmatic Bookshelf 2012

Wiki

Tendremos mucha información útil en la wiki del curso, la cual pueden encontrar en el menú superior de este repositorio.

Política de integridad académica

Los alumnos de la Escuela de Ingeniería de la Pontificia Universidad Católica de Chile deben mantener un comportamiento acorde a la Declaración de Principios de la Universidad. En particular, se espera que mantengan altos estándares de honestidad académica. Cualquier acto deshonesto o fraude académico está prohibido; los alumnos que incurran en este tipo de acciones se exponen a un Procedimiento Sumario. Es responsabilidad de cada alumno conocer y respetar el documento sobre Integridad Académica publicado por la Dirección de Docencia de la Escuela de Ingeniería (disponible en SIDING).

Específicamente, para los cursos del Departamento de Ciencia de la Computación, rige obligatoriamente la siguiente política de integridad académica. Todo trabajo presentado por un alumno para los efectos de la evaluación de un curso debe ser hecho individualmente por el alumno, sin apoyo en material de terceros. Por trabajo se entiende en general las interrogaciones escritas, las tareas de programación u otras, los trabajos de laboratorio, los proyectos, el examen, entre otros.

En particular, si un alumno copia un trabajo, o si a un alumno se le prueba que compró o intentó comprar un trabajo, obtendrá nota final 1.1 en el curso y se solicitará a la Dirección de Docencia de la Escuela de Ingeniería que no le permita retirar el curso de la carga académica semestral.

Por copia se entiende incluir en el trabajo presentado como propio, partes hechas por otra persona. En caso que corresponda a copia a otros alumnos, la sanción anterior se aplicará a todos los involucrados. En todos los casos, se informará a la Dirección de Docencia de la Escuela de Ingeniería para que tome sanciones adicionales si lo estima conveniente.

Obviamente, está permitido usar material disponible públicamente, por ejemplo, libros o contenidos tomados de Internet, siempre y cuando se incluya la referencia correspondiente.

Lo anterior se entiende como complemento al Reglamento del Alumno de la Pontificia Universidad Católica de Chile. Por ello, es posible pedir a la Universidad la aplicación de sanciones adicionales especificadas en dicho reglamento.