Imprimir

Programa

CURSO      : INGENIERIA DE SOFTWARE
TRADUCCION : SOFTWARE ENGINEERING
SIGLA      : IIC2143
CRÉDITOS   : 10
MÓDULOS    : 03
CARÁCTER   : MINIMO
DISCIPLINA : INGENIERIA


I.DESCRIPCION

Este curso ense?a tecnicas para llevar a cabo un verdadero proyecto de desarrollo de software, desde el descubrimiento y la especificacion de los requisitos, al interactuar con el cliente y/o usuarios, a la aplicacion, experimentacion y demostracion de una solicitud que cumple los requisitos.


II.OBJETIVOS

Al finalizar el curso el alumno sera capaz de:

1. Llevar a cabo el desarrollo de un sistema de una manera metodica, comenzando por la formulacion de los requisitos del sistema, desarrollando un dise?o modular, refinando este dise?o en una implementacion que identifique y minimice los riesgos, codificando de manera que se pueda integrar con el trabajo de un equipo, y usando metodos para identificar y prevenir fallas.
2. 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.
3. Aplicar principios y patrones al dise?ar un sistema y al evaluar el dise?o de un sistema: abstraccion, descomposicion, ocultacion de informacion, acoplamiento, cohesion, etc.
4. Crear diagramas de clases en UML que modelen el dominio de un problema y la arquitectura de software de un sistema.
5. Crear diagramas de secuencia, de estados, y de actividades en UML que modelen los casos de uso y, mas en general, el comportamiento de un sistema.
6. Aplicar tecnicas de testing simples a distintos niveles de un producto de software; por ejemplo, escribir pruebas de caja negra basicas para clases y metodos.


III.CONTENIDOS

1. Introduccion. La ingenieria de software y su lugar como una disciplina de ingenieria. Revision de los principios de la orientacion a objetos. El proceso de desarrollo de software.

2. Analisis. Analisis de requisitos; casos de uso y dise?o centrado en el usuario. Analisis orientado a objetos y diagramas de clases en UML; introduccion al modelamiento formal usando OCL; ejemplos de construccion de diagramas de clases para modelar varios dominios.

3. Dise?o. Representacion del comportamiento del software: diagramas de secuencia, de estados, y de actividades. Principios generales de dise?o de software: creador, experto en informacion, bajo acoplamiento, controlador, alta cohesion, polimorfismo, fabricacion pura, indireccion, variaciones protegidas. Patrones de dise?o: adaptador, fabrica, singleton, estrategia, compuesto, fachada, observador, proxy. Arquitectura de software: arquitecturas distribuidas, tubos y filtros, model-view-controller, etc.

4. Testing. Calidad de software. Testing sin ejecucion: "caminatas", inspecciones. Testing basado en ejecucion: utilidad, confiabilidad, robustez, desempe?o, correccion.


IV.METODOLOGIA

Modulos semanales:
- Catedras: 2
- Ayudantias: 1

El curso se realiza utilizando metodologias de ense?anza centradas en el alumno que permitan a los estudiantes desarrollar las competencias definidas en los objetivos del curso.
Este curso esta dise?ado de forma tal que el alumno dedique al estudio personal un promedio de 6 hrs. a la semana.


V.EVALUACION

Las evaluaciones pueden ser por medio de pruebas, proyectos y/o tareas.


VI.BIBLIOGRAFIA


Textos Minimos

Larman, Craig. Applying UML and Patterns, 2nd edition. Prentice Hall.


Textos Complementarios

Freeman, Freeman, Sierra y Bates. Head First Design Patterns. O'Reilly, 2004.



PONTIFICIA UNIVERSIDAD CATOLICA DE CHILE
FACULTAD DE INGENIERIA / MAYO 2009