UNIVERSIDAD DEL VALLE - FACULTAD DE INGENIERÍA ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN Curso: Código: Créditos: Intensidad Horaria: Habilitable: Validable: Prerrequisitos: Desarrollo de Software I 750091M 3 3 horas semanales NO SI (750085M) Programación Interactiva OBJETIVOS Objetivo General Proporcionar al estudiante las bases metodológicas necesarias para llevar a cabo el desarrollo de un producto de software, a lo largo del ciclo de vida, utilizando el enfoque orientado a objetos. Objetivos Específicos Al final del curso, el estudiante deberá ser capaz de: Entender todas las etapas del ciclo de vida de desarrollo de software. Utilizar una metodología de desarrollo orientado a objetos para desarrollar un producto de software. Utilizar un lenguaje de especificación visual (UML) para documentar cada una de las etapas del proceso de desarrollo de software. CONTENIDO Conceptos generales El proceso de desarrollo de software: Ciclo de vida de desarrollo del software; modelos de ciclo de vida del software: modelo de codificar y corregir, modelo de cascada en una y dos dimensiones, modelo de prototipos y modelo en espiral. Conceptos básicos del enfoque orientado a objetos: objeto, clase, atributos, operaciones, métodos, mensajes, herencia, encapsulamiento, polimorfismo, sobrecarga, abstracción y persistencia. El lenguaje de especificación UML Introducción a UML: aspectos generales del lenguaje; elementos, relaciones y diagramas de UML; y presentación de los artefactos más utilizados en el desarrollo de productos de software(casos de uso, diagramas de casos de uso, clases, diagramas de clase, diagramas de interacción, diagramas de actividades). El proceso de realización del producto de software usando el enfoque orientado a objetos Desarrollo de aplicaciones Orientadas a Objetos(OO). Metodología RUP: flujos de trabajo del proceso y fases. Visión general de las actividades y productos resultantes en el proceso de desarrollo. Aplicando la metodología de desarrollo - Flujos de trabajo del Proceso Procesos del negocio Identificación de procesos, de actores y sus roles. Casos de Uso. Diagramas de Casos de Uso y Descripción de los Casos de Uso. Representación y descripción de casos de uso del negocio. Planificación del proyecto y delimitación de su alcance, estimación de recursos y plan de fases. Análisis de Requerimientos Definición del problema, características del usuario, requerimientos funcionales y no funcionales(de desempeño, de manejo de errores, de interfaz, restricciones). Refinamiento del plan de fases (Plan de desarrollo). Casos de Uso del sistema: representación y descripción. Definición de la arquitectura del software: Arquitectura por capas. Bosquejo preliminar de las interfaces (de hardware, de software y de comunicación). Modelo conceptual del dominio: identificación de los objetos del dominio, atributos, asociaciones y representación mediante un diagrama de clase preliminar. Diseño Operaciones para cada caso de uso. Diagramas de interacción: de secuencia y de colaboración. Notación. Diagramas de clases. Almacenamiento persistente, mapeo de tablas a clases y viceversa. Implementación Mapeo de los diseños para codificación METODOLOGÍA Clases Se trabajará con el sistema de clases participativas donde los estudiantes, a través de actividades guiadas por el profesor, discutirán los temas fundamentales del curso, con base en las lecturas asignadas previamente y las exposiciones del profesor. También desarrollarán ejercicios de aplicación. Asignaciones Se asignarán lecturas de artículos en español y en inglés que amplien los temas expuestos en clase. Proyecto Los estudiantes organizados en grupos (de cuatro o cinco), desarrollarán a lo largo del curso un proyecto donde apliquen los conceptos y técnicas de desarrollo de Software vistos. Deberán hacer presentaciones de los avances del proyecto, según el plan de entregas establecido por el(la) profesor(a). Evaluación 2 Exámenes 50% , Tareas, lecturas y exposiciones 10%, 1 Proyecto 40% (documentación de desarrollo 20%, implementación 20%) BIBLIOGRAFÍA 1. Braude Eric. Ingeniería de Software. Una perspectiva orientada a objetos. Alfaomega Grupo Editor S.A. 2003. 2. Booch G; Rumbaugh J; Jacobson I. The Unified Modeling Language User Guide. Addison Wesley. 1999. 3. Booch G; Rumbaugh J; Jacobson I. The Unified Modeling Language Reference Manual. Addison Wesley. 1996. 4. Booch G; Rumbaugh J; Jacobson I. The Unified Software Development Process. Addison Wesley. 1999. 5. Larman Craig. UML y Patrones. Prentice Hall. 2003. 6. McConnell Steve. Rapid Development. Microsoft Press. 1996 7. Meyer Beltrand. Construcción de software Orientado a Objetos. Segunda Edición. Prentice Hall. 1999. Martin F; Kendall S. UML Destilled. Addison Wesley. 1997. 8. Pressman Roger S. Ingeniería del Software. Un enfoque práctico. Mc Graw Hill. 5a. Edición. 2002. 9. Winbland A; Edwards S; King David R. Software Orientado a Objetos. Addison - Wesley Iberoamericana S.A. 1993. PÁGINA WEB http://eisc.univalle.edu.co/materias/ds1