Plan de contenidos: Metodología y Técnicas de Programación II
De Computacion
Tabla de contenidos |
Plan de Asignatura
Información general
|
Asignatura |
Metodología y Tecnología de la Programación II |
||
|
Periodo académico |
Abril 2009 – Agosto 2009 |
Ciclo: |
Segundo |
|
Profesor: |
Ing. Patricio Abad Espinoza |
||
|
Horas totales de la asignatura: |
4
|
||
|
Horario de tutoría: |
Martes y Miércoles de 16:30:00 a 18:30 |
||
|
Correo electrónico: |
mpabad@utpl.edu.ec |
||
|
Correo Gmail: |
mpabad@gmail.com |
||
|
Cuenta Skype: |
Mpabad |
||
|
Cuenta Del.icio.us: |
del.icio.us/mpabad |
||
Bibliografía
Texto Base
• BOOCH, G.; RUMBAUGH, J. & JACOBSON, I. (2006), El lenguaje unificado de modelado, Addison Wesley. Segunda Edición.
Bibliografía adicional
Bibliografía impresa
1. [2] RUMBAUGH, J., BLAHA, M., PREMERLANI, W., EDDY, F. Y LORENESEN, W. (1996): Modelado y Diseño Orientados a Objetos. Madrid. Ed. Prentice Hall.
Este texto es de vital importancia para estudiar el fundamento de la filosofía orientada a objetos, en este texto presenta la metodología OMT, una de las que dio origen a la lenguaje unificado de modelado.
2. [3] ECKEL, B. (2002), Piensa en Java, Prentice Hall.
El título original en inglés es Thinking in Java, actualmente existen 4 ediciones del libro, las cuales han sido reconocidas por la manera como enseñan a programar en el lenguaje java, y más importante que eso, ha sido dispuesta a disposición de manera gratuita por parte de su autor, aunque también se vende la edición impresa por Prentice-Hall. Se puede descargar el texto completo de www.mindview.net/books . Para obtener una versión en formato PDF, debe ir a: http://www.plantepdf.com/developer/article.asp?ContentID=6632 Este texto sirve para estudiar la parte introductoria a la programación orientada a objetos, cuyo extracto se encuentra en el anexo 2, y en todos los capítulos para estudiar como codificar en java los modelos UML.
3. [4] REYNOSO, C. (2004), 'Introducción a la Arquitectura de Software', Documento de la Universidad de Buenos Aires. Descargado de http://www.willydev.net/descargas/prev/IntroArq.pdf 21/01/2009
Material introductorio a la arquitectura de software, que se lo puede obtener desde el vínculo indicado, sirve para complementar el capítulo 6 de la guía.
Bibliografía Internet (direcciones)
• http://www.digilife.be/quickreferences/indexe.html En esta página puede descargar libros en formato digital sobre programación en java y temas afines a la programación orientada a objetos. Además encontrará muchos papers e información relaciona a programación en objetos.
• http://www.stepanovpapers.com/ Encontrará una serie de artículos, apuntes y otro tipo de información relacionada con programación y modelado de software.
• http://www-306.ibm.com/software/rational/uml/ Centro oficial de recursos UML de IBM Rational. Aquí encontrará tanto papers como especificaciones del lenguaje e incluso herramientas para descargar de IBM.
• http://www-128.ibm.com/developerworks/rational Herramientas y recursos para desarrolladores IBM.
• http://www.rspa.com/spi/ Página web de Roger Pressman, autor de libro de Ingeniería del Software, con recursos en el tema de Ingeniería del Software.
• http://www-128.ibm.com/developerworks/rational/library/content/RationalEdge/archives/uml.html Centro de recursos UML de IBM. Colección de muchos papers y documentos relativos a procesos de desarrollo, modelado y estrategias de desarrollo.
• http://www.objectsbydesign.com/tools/umltools_byCompany.html En esta dirección se puede encontrar links para comprar o descargar herramientas CASE para el modelado con UML.
• http://www.dsic.upv.es/~uml/ Curso de desarrollo de software orientado de objetos de la Universidad de Valencia, España, en Español.
• http://www.omg.org/uml/ Página web de Object Management Group, organización encargada de establecer los estándares en la programación orientada a objetos.
• http://www.dsic.upv.es/asignaturas/facultad/lsi/ejemplorup/ En este link encontrará un ejemplo de desarrollo completo utilizando RUP.
Plan de Contenidos
Capítulo 1
1. Modelado de software
1.1. La necesidad de modelar
1.2. Principios del modelado
1.3. Modelado orientado a objetos
1.4. Introducción a UML
Capítulo 2
2. Modelado estructural básico
2.1. Clases
2.2. Relaciones
2.3. Diagramas de clases
Capítulo 3
3. Modelado estructural avanzado
3.1. Modelado avanzado de de clases
3.2. Modelado avanzado de relaciones
3.3. Interfaces, tipos y roles
3.4. Paquetes
3.5. Modelado de instancias
3.6. Componentes
Capítulo 4
4. Modelado de casos de uso
4.1. Casos de uso
4.2. Diagramas de casos de uso
4.3. Especificación de casos de uso
Capítulo 5
5. Modelado de interacciones.
5.1. Interacciones
5.2. Diagramas de interacción
5.3. Diagramas de actividades
Capítulo 6
6. Procesos de desarrollo guiados por casos de uso.
6.1. El proceso unificado de desarrollo Rational
6.2. UML en la captura de requisitos
6.3. UML en la fase de diseño
6.4. UML en la fase de implantación.
Mapeo de capítulos y semanas de estudio
PRIMER BIMESTRE
|
Tema 1: Modelado de Software
|
|
|
1.1 La necesidad de modelar |
Se realiza un análisis sobre la importancia del modelado como técnica para comprender y resolver problemas en los diferentes ámbitos del conocimiento humano, se compara la construcción de software con el proceso de construcción de viviendas y edificios, lo cual permite reflejar los diferentes niveles de complejidad que se deben resolver cuando se intenta construir algo. |
|
1.2. Principios del modelado |
El modelado como técnica universal para la solución de problemas de diferente naturaleza y disciplina, tiene cuatro principios que se constituyen en su fundamento, estos principios se analizan en este apartado y nos dan la pauta para entender porqué es importante el modelado y utilizarlo como un mecanismo de especificación y comunicación, de modo que se eviten ambigüedades |
|
1.3 Modelado orientado a objetos. |
El modelado orientado a objetos se caracteriza porque concibelos componentes de software en la misma forma como se encuentran en el mundo real, realizando abstracciones que le permiten representar de manera simple lo sistemas complejos, dando una gran ventaja a los desarrolladores, además de que muchos de los principios de la Programación orientada a objetos se sustentan aquí en la forma de comportarse de los objetos en el mundo real, lo cual facilita grandemente la comprensión de los requisitos, además este modelo es altamente escalable y muy superior a la programación algorítmica. |
|
1.4 Introducción a UML |
En los inicios de la programación orientada a objetos, hubieron varias metodologías y técnicas de análisis y diseño orientado a objetos, entre las más destacadas tenemos el modelo de Booch, OMT de Rumbaugh y OOSE de Jacobson, quienes decidieron unirse para crear lo que hoy conocemos como el Lenguaje de Modelado Unificado. Este lenguaje permite especificar modelos que pueden traducirse a código en un lenguaje orientado a objetos como Java o C++. Además sus autores consideran que este lenguaje es independientes del proceso de desarrollo de software, aunque funciona mejor con procesos dirigidos por casos de uso y centrados en la arquitectura. Dado que UML es un lenguaje, es importante comenzar escribiendo modelos en él, y más importante aún es relacionar estos modelos con código en lenguajes orientados a objetos, el capítulo 3 ofrece un gran inicio para aprender UML. |
|
Tema 2: Modelado estructural básico
|
|
|
2.1 Clases. |
En este apartado se hace una introducción a la manera de identificar las clases en el mundo real y cómo abstraerlas hacia un modelo de software. Por otra parte las técnicas comunes de modelado nos dan pautas de cómo identificar las clases partiendo del vocabulario del sistema. |
|
2.2 Relaciones |
Las relaciones podemos entenderlas como la conexiones entre los diferentes elementos del modelo, sin ellas el sistema no funcionaría, es necesario que los diferentes componentes tales como las clases se asocien con otras clases de modo que compartan el trabajo. En UML se distinguen diferentes tipos de relaciones las cuales se van a estudiar en este apartado. |
|
2.3. Diagramas de clases. |
Como habrá notado, antes de desarrollar cualquier tipo de diagrama, es necesario identificar sus componentes y también las características del lenguaje UML que hacen posible su representación en el modelo. En este apartado vamos a estudiar los elementos de notación del lenguaje para representar los modelos estructurales del sistema. Recuerde que si comparamos el proceso de construcción de software con la industria de la construcción, estamos frente a los planos estructurales del edificio o vivienda en cuestión. Si bien el diagrama ayuda a visualizar la estructura del sistema, no se pueden especificar todos los detalles necesarios para que alguien pudiera construir un sistema, por ello es importante que estos modelos se documenten de alguna forma. |
|
Tema 3: Modelado estructural avanzado
|
|
|
3.1 Modelado avanzado de clases. |
UML es muy rico para especificar detalles de los modelos de clases, los cuales son los elementos más importantes del software, entre los temas que se abordan tenemos los clasificadores, la visibilidad, clases abstractas y polimorfismo, multiplicidad y además se ahonda en el tema de la definición de atributos y operaciones. |
|
3.2 Modelado avanzado de las relaciones. |
Las relaciones entre clases no siempre son fáciles de identificar y mucho menos especificar a detalle, en este apartado se discute cuáles son las características avanzadas de estas relaciones y se determinan algunas pautas para identificar y aplicar los elementos de notación más complejos. |
|
3.3 Interfaces, tipos y roles. |
Muchos mecanismos se pueden usar para estandarizar la manera como se relaciones los componentes de un modelo en UML, uno de ellos son las interfaces que proporcionan un mecanismo para establecer una especie de mascarilla que les permite a las clases y realizar cambios en las mismas sin necesidad de cambiar la manera como se comunican. |
|
3.4 Paquetes |
Los paquetes son elementos UML que permiten simplificar las vistas mediante la organización en carpetas de partes del modelo, de forma tal que aplicando el segundo principio de modelado se pueden lograr diferentes niveles de profundidad. |
|
3.5 Modelado de Instancias. |
Todas las abstracciones realizadas en UML, tales como las clases y asociaciones que representan definiciones de elementos que se usarán en el programa en ejecución son instanciables. En este apartado vamos a revisar lo que son las instancias de diferentes elementos de UML y cómo se pueden representar en los diagramas de objetos. Cuando se empieza a comprender un sistema resulta adecuado comenzar haciendo un diagrama de objetos, puesto que aún no se conoce todas las características que este tendrá. |
|
3.6 Componentes. |
Los componentes son unidades lógicas del sistema que pueden utilizarse o reemplazarse, es importante que estos se encuentren bien diseñados y con interfaces bien definidas para incrementar la posibilidad de reutilización. Entre los componentes podemos encontrar librerías DLL, programas ejecutables, bibliotecas de clases, etc. |
|
Tema 4: Modelado de casos de uso
|
|
|
4.1 Casos de uso. |
Los casos de uso son una técnica para capturar la funcionalidad que se espera del sistema, por tanto el primer gran reto en este contexto es identificar los casos de uso, luego establecer las relaciones con sus actores y otros casos de uso para poder desarrollar el diagrama y por último es importante documentar los casos de uso. No sirve de nada un modelo de casos de uso sin la respectiva documentación. |
|
4.2 Diagramas de casos de uso |
Los diagramas de casos de uso sirven para visualizar los las funcionalidades del sistema por ende obtener una comprensión más clara del mismo |
|
4.3 Especificación de casos de uso. |
Los diagramas de casos de uso sin la debida documentación se vuelve inútiles, puesto que si solo se puede visualizar los titulares de lo que se quiere que haga el sistema sin conocer los detalles, estos no cumplen su propósito. La especificación de los casos de uso sirve a los analistas, diseñadores y programadores para fundamentar sus decisiones de diseño y al equipo de aseguramiento de calidad para establecer los escenarios de prueba. |
|
Tema 5: Modelado de interacciones
|
|
|
5.1 Interacciones. |
En esta sección se estudia los fundamentos de las interacciones, por lo cual se constituye en un apartado básico para entender el modelado del sistema. Las interacciones normalmente se dan a nivel de instancias, no a nivel de clasificadores, por lo tanto para entender los modelos aquí explicados es necesario ubicarse en este contexto. |
|
5.2 Diagramas de interacción |
Los diagramas de interacción son modelos proporcionados por UML para representar el flujo de mensajes entre objetos requerido para cumplir con una de sus funciones, los diagramas de interacción son de dos tipos semánticamente equivalentes aunque muestran puntos de vista diferentes de una interacción: los diagramas de comunicación, en los diagramas de secuencia se muestra principalmente el orden secuencial en que suceden los mensajes y el diagrama de comunicación se caracteriza por mostrar la organización estructural de los objetos. Los diagramas de comunicación suelen ser importantes para ayudar a detectar inconsistencias en los diagramas de clases, puesto que si requiere pasar un mensaje a un objeto que no tiene un enlace con objeto que lo origina, este mensaje no podría pasarse, por lo que sería necesario actualizar el diagrama de clases agregando la asociación o relación faltante. |
|
5.3 Diagramas de actividades |
Los diagramas de actividades son herramientas útiles para documentar la implementación de una operación o el desarrollo de ciertas operaciones en los procesos de negocio, su utilidad es trascendente también para usar herramientas de ingeniería inversa. |
|
Tema 6: Procesos de desarrollo guiados por casos de uso
|
|
|
6.1 El proceso Unificado de Desarrollo Rational. |
En este apartado realizaremos una descripción rápida del proceso unificado de desarrollo rational con el ánimo de familiarizarnos con el modelo y establecer los usos de UML. |
|
5.2 UML en la captura de requisitos. |
Como habrá notado en la sección anterior la captura de requisitos es uno de los procesos más importantes en un proyecto de desarrollo de software, sin ellos no se puede hacer prácticamente nada, en RUP la gestión de los requerimientos se constituye en una disciplina que se ejecuta desde inicio hasta el fin (véase la figura B.1, página 490). En UML la captura de requisitos se hace principalmente mediante los modelos de casos de uso, complementada con documentos como el glosario de términos y un documento de especificaciones suplementarias. Además se usan los diagramas de actividades para especificar la realización de un caso de uso. |
|
5.3 UML en las fase de diseño. |
La disciplina de análisis y diseño en el rup también se constituye en una disciplina que se desarrolla durante todas las fases del proyecto, en este sentido el apoyo de UML se da para los denominados modelos de diseño, modelo de datos y modelo de arquitectura. El modelo de diseño incluye los diagramas de clases para el sistema, el modelo de arquitectura se refiere a la organización de componentes adecuada para el desarrollo del proyecto. |
|
5.4 UML en la fase de implantación. |
UML ofrece modelos para especificar la manera como se va a implantar el sistema, para ello se vale de los denominados diagramas de implantación que sirven para especificar cuál será la configuración del sistema. |
Planificación de la asignatura
Capitulo 1: Modelado de softwre |
|||
|
Duración (Horas) |
12 |
1.1. Breve revisión de la Ingeniería de Software |
Capítulo 1 |
|
Objetivos · Estudiar los conceptos y herramientas de la Ingeniería de Software como una ciencia para el desarrollo de software de alta calidad. · Introducir al estudiante en la terminología de la programación orientada a objetos basada en componentes como herramienta de modelado y diseño de soluciones de software. |
|||
|
Foros Previstos para interactividad en el Campus Virtual · Investigar sobre los diferentes tipos de actividades que se realiza en otras industrias como la Aeronáutica, Construcción, etc. Compararla con la Construcción de Software y establecer similitudes y diferencias. Esto se debe presentar en el primer foro del curso, previsto para tercera semana de abril de 2008. · Participar en la primera evaluación en línea sobre el primer capítulo el 15 de abril. Bibliografía adicional · Documentos de apoyo disponibles en el EVA · Documentos de apoyo disponibles en el EVA | |||
Capitulo 2: Modelado de clases |
|||
|
Duración (Horas) |
16 |
2.1 Identificación de objetos y
clases |
Capítulo 5 y 6 |
|
Objetivos · Aprender la estructura y sintaxis del lenguaje de modelado unificado UML, como herramienta para la representación de los modelos funcional, estático y dinámico del software. |
|||
|
Foros Previstos para interactividad en el Campus Virtual · A partir del problema planteado en el tema, participar en el foro indicando cuáles serían los objetos que formaría parte de la aplicación y plantear un modelo de clases candidato. Este foro estará disponible a partir de la primera semana de mayo. · Participar en la evaluación en línea del segundo capítulo. El 9 de mayo Bibliografía adicional · Consultas a Bases de Datos Online disponibles en UTPLONLINE | |||
Capitulo 3: Modelado de casos de uso |
|||
|
Duración (Horas) |
16 |
3.1 Fundamentos del modelo de
casos de uso. |
Capítulo 7 y 8 |
|
Objetivos • Definir la funcionalidad esperada del sistema desde el punto de vista del usuario expresada a través de los diagramas y especificación de casos de uso. |
|||
|
Foros Previstos para interactividad en el Campus Virtual • Planteamiento de un problema en el entorno del cual deberán proponer y especificar los casos de uso encontrados en el mismo, cada estudiante revisará el problema y propondrá respuestas a las preguntas planteadas en el EVA. 10 de mayo de 2008. • Evaluación en línea del bimestre 25 de mayo de 2007. Bibliografía adicional • Consultas a Bases de Datos Online disponibles en UTPLONLINE • Artículos y papers cargados en el EVA | |||
Capitulo 4: Diagramas de Interacción |
|||
|
Duración (Horas) |
16 |
4.1 Fundamentos de los
diagramas de interacción. |
Capítulo 9 y 10 |
|
Objetivos • Identificar y modelar el comportamiento dinámico de los objetos representando sus interacciones mediante diagramas de colaboración y diagramas de secuencia. |
|||
|
Foros Previstos para interactividad en el Campus Virtual • Foro sobre el comportamiento dinámico de los sistemas. Se deberá elaborar las preguntas planteadas en el foro del 19 al 22 de junio. Bibliografía adicional • Consultas a Bases de Datos Online disponibles en UTPLONLINE • Artículos y papers cargados en el EVA | |||
Capitulo 5: Diagramas de estado y actividad |
|||
|
Duración (Horas) |
16 |
5.1 Fundamentos de los
diagramas de estado y actividad. |
Capítulo 13 y 14 |
|
Objetivos • Aprender a capturar el comportamiento interno de los objetos identificando aspectos esenciales para el modelado e implementación del sistema. |
|||
|
Foros Previstos para interactividad en el Campus Virtual • Ejercicio a través del foro donde se deben proponer modelos en UML para los problemas propuestos. La discusión se genera a partir de las inquietudes generadas por cada participante. Del 1 al 5 de julio. Bibliografía adicional • Consultas a Bases de Datos Online disponibles en UTPLONLINE • Artículos y papers cargados en el EVA | |||
Capitulo 6: Diagramas de implementación y Diagramas de componentes |
|||
|
Duración (Horas) |
16 |
6.1 Diagramas de
implementación. |
Capítulo 7 y 8 |
|
Objetivos • Establecer elementos de arquitectura de sistemas que permitan tanto a desarrolladores como arquitectos de software establecer componentes y modelos de implementación. |
|||
|
Foros Previstos para interactividad en el Campus Virtual • Foro sobre cómo colabora el modelado de sistemas con el proceso de desarrollo de software. • Evaluación en línea del bimestre 25 de julio de 2008. Bibliografía adicional • Consultas a Bases de Datos Online disponibles en UTPLONLINE • Artículos y papers cargados en el EVA | |||
