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
1.2. Conceptos de POO
1.3. El Proceso de desarrollo de software
El modelado
1.5. El lenguaje de modelado unificado.

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
2.2 Atributos, operaciones y relaciones.
2.3. Generalización.
2.4 Documentación de 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.
3.2 Relaciones y otros componentes 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.
4.2 Diagramas de interacción a fondo.

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.
5.2 Más sobre 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.
6.2 Paquetes, modelo y subsistemas.

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


Descargar Proyecto

Herramientas personales
Sitios UTPL