|
Guía de aprendizaje
Introducción
Objetivos
Contenidos
Planificación
del aprendizaje
Actividades
Ejercicios
de autoevaluación
Bibliografía
Introducción
Como ya sabemos, muchas de las ramas
de la tecnología informática hace décadas que evolucionan
de manera rápida y este proceso no parece detenerse, lo cual obliga
a los profesionales de la informática a ponerse al día cada
pocos años. Uno de los campos en los que esto se acentúa
más es el de la ingeniería de software, sobre todo
como consecuencia del hecho de que es una disciplina relativamente joven,
que todavía está lejos de haber alcanzado una madurez y una
estabilidad comparables a las de otras ingenierías.
Dentro de la ingeniería de software,
el desarrollo de las técnicas orientadas a objetos ha supuesto una
revolución realmente profunda, de un alcance que en el futuro puede
que se compare con el de la aparición del concepto de programación
estructurada, si bien el hecho de haberse desarrollado y extendido lentamente
hace más difícil que nos demos cuenta de su importancia.
Esto hace que sea muy conveniente para todos aquellos profesionales del
desarrollo y del mantenimiento de software que se hayan formado
en épocas anteriores, formarse en la tecnología orientada
a objetos. Y ahora es un buen momento para hacerlo, porque en estos últimos
años se ha producido un hecho importante en esta tecnología:
se ha pasado de una situación en la que había decenas de
modelos y notaciones orientadas a objetos diferentes a otra en la que se
ha desarrollado un modelo ampliamente aceptado y que se ha convertido en
un estándar oficial: el UML. Aunque la evolución de esta
tecnología sin duda continuará, muy probablemente durante
unos cuantos años tendrá lugar ya dentro del marco de la
UML (del cual también irán apareciendo nuevas versiones,
pero probablemente aportarán más extensiones que cambios
en los conceptos básicos). Por lo tanto, todo hace pensar que el
UML será un modelo casi imprescindible para los profesionales del
software
en el futuro próximo.

Objetivos
Al final del programa, los participantes
tienen que ser capaces de:
-
Analizar y diseñar en orientación
a objetos (OO) aplicando el nuevo estándar de representación
gráfica UML y utilizando herramientas CASE adecuadas.
-
Entender con claridad la arquitectura
que tiene un sistema desarrollado en OO y las alternativas del ciclo de
vida que existen.
-
Combinar el modelo relacional de bases
de datos con el modelo OO.
-
Ejercer las habilidades de reutilización,
motivación principal del uso del OO.
-
Gestionar la reutilización desde
sus dos vertientes: diseñar para reutilizar y reutilizar para diseñar.
Contenidos
Los contenidos de los módulos
didácticos que componen este curso son los siguientes:
Módulo didáctico 1
Introducción a la ingeniería
de software orientada a objetos
0,3 créditos
Objetivos
-
Entender qué es la ingeniería
de software y saber qué la diferencia de otras ingenierías.
-
Hacerse una primera idea de los principales
problemas de la ingeniería de software actualmente: la calidad
y la productividad.
-
Conocer el modelo de ciclo de vida que
ha tenido más impacto hasta la llegada de la orientación
a objetos y también los principales modelos posteriores.
-
Adquirir el concepto de herramienta CASE
en general y especialmente en entornos orientados a objetos.
-
Conocer un poco el origen de UML, el modelo
orientado a objetos que ha pasado a ser un estándar mundial.
Contenidos
-
Qué es la ingeniería de
software
-
El ciclo de vida del software
-
Desarrollo estructurado y desarrollo orientado
a objetos
-
Las herramientas CASE
-
El OMG y el UML
Módulo didáctico 2
UML (I): el modelo estático
0,8 créditos
Objetivos
-
Profundizar en el concepto de clase, especialmente
en lo que concierne a los diferentes tipos de clases y conceptos relacionados,
y familiarizarse con las notaciones respectivas.
-
Entender los tipos más frecuentes
de relaciones entre clases y saberlos identificar.
-
Conocer los principales elementos complementarios
de UML aplicables al diagrama estático.
Contenidos
-
Concepto de modelo estático y diagrama
de clases
-
Clasificadores
-
Paquetes
-
Clase y conceptos afines
-
Representación de los objetos
-
Relaciones entre clases
-
Comentarios y restricciones
Módulo didáctico 3
UML (II): el modelo dinámico
y de implementación
0,8 créditos
Objetivos
-
Aprender el diagrama de estados.
-
Adquirir los conceptos de caso de uso
y de actor, y saber identificar los diferentes casos de relaciones entre
casos de uso.
-
Aprender a describir las interacciones
mediante diagramas de colaboración y de secuencia y saberlos aplicar
a la descripción de casos de uso y de operaciones complejas.
-
Aprender qué es un diagrama de
actividades y entender las diferencias entre éste y el diagrama
de estados.
-
Aprender a interpretar y utilizar los
diagramas de componentes y de despliegue.
Contenidos
-
El diagrama de estados
-
El diagrama de casos de uso
-
Los diagramas de interacción
-
El diagrama de actividades
-
Los diagramas de implementación
Módulo didáctico 4
Recogida y documentación
de requisitos
0,6 créditos
Objetivos
-
Entender el papel de los requisitos descritos
en forma de casos de uso dentro del proceso de desarrollo de software.
-
Aprender a recoger la información
sobre los casos de uso.
-
Aprender a identificar los actores.
-
Aprender a documentar los casos de uso.
-
Aprender a determinar y a documentar las
relaciones entre casos de uso.
-
Aprender a recoger dentro de la documentación
de los casos de uso los requisitos en lo que concierne a la interfaz de
usuario.
Contenidos
-
Los requisitos
-
Fuentes de información
-
Pasos de la recogida y documentación
de información
-
La recogida y documentación de
requisitos de la interfaz de usuario
-
Ejemplo
Módulo didáctico 5
Análisis orientado a objetos
1,5 créditos
Objetivos
-
Entender el papel del análisis
y las diferencias con la etapa anterior –la recogida y documentación
de requisitos– y la siguiente –el diseño.
-
Comprender las diferencias entre los tres
tipos de clases que se consideran en el análisis.
-
Aprender a elaborar el diagrama estático
de análisis.
-
Saber formalizar los casos de uso mediante
diagramas de interacción y otros.
-
Aprender a hacer el análisis de
la interfaz de usuario.
Contenidos
-
El papel del análisis
-
Paquetes de análisis y paquetes
de servicios
-
Revisión de los casos de uso
-
Especificación de las clases de
análisis
-
Especificación formal de los casos
de uso
-
Análisis de la interfaz de usuario
-
Ejemplo
Módulo didáctico 6
Diseño orientado a objetos
1,5 créditos
Objetivos
-
Entender el papel del diseño y
las diferencias con la etapa anterior –el análisis– y la siguiente
–la realización.
-
Entender las opciones de reutilización
existentes y cómo se emplean.
-
Saber especificar la implementación
de los casos de uso descritos en el modelo de análisis.
-
Aprender a elaborar el diagrama estático
de diseño.
-
Aprender a diseñar la interfaz
de usuario.
Contenidos
-
El papel del diseño
-
La reutilización
-
El diseño arquitectónico
-
El diseño de los casos de uso
-
Revisión del diagrama estático
de diseño
-
Diseño de la persistencia
-
Diseño de la interfaz gráfica
de usuario
-
Diseño de los subsistemas
-
Ejemplo
Módulo didáctico 7
Desarrollo de software orientado
a objetos
0,5 créditos
Objetivos
-
Entender la necesidad de un ciclo de vida
específico para el desarrollo y mantenimiento de la librería
de reutilización.
-
Conocer el ciclo de vida conocido como
iterativo e incremental, que es el más extendido en centros de desarrollo
que se basan en la orientación a objetos.
-
Comprender los motivos de la aplicación
de un desarrollo basado en prototipos cuando la situación lo requiera.
-
Saber cómo afecta la reutilización
a los informáticos desde el punto de vista profesional, por lo que
respecta a las nuevas funciones y a la manera de evaluar la productividad.
-
Conocer la puesta a punto del software
orientado a objetos.
-
Adquirir los conceptos de la calidad del
software que son específicos del software orientado a objetos.
Contenidos
-
Introducción
-
Los ciclos de vida
-
La reutilización
-
La productividad
-
Puesta a punto de sistemas OO
-
Calidad en sistemas orientados a objetos
Planificación del aprendizaje
Aquí tenéis una planificación
de vuestro aprendizaje módulo a módulo. Para cada módulo,
se describen las actividades que tenéis que realizar, al mismo tiempo
que se da la información siguiente para cada una:
-
Columna de objetivos. Objetivos a los
que se encamina la actividad, entre los objetivos indicados con anterioridad
para el módulo didáctico en cuestión.
-
Columna de contenidos. Apartados del módulo
didáctico afectados por la actividad.
-
Columna de materiales. Materiales utilizados
en la actividad.
-
Columna de actividades. Se proponen los
tipos de actividades siguientes:
-
Estudio
-
Autoevaluación
-
Ejercicios prácticos
-
Cuestionarios
-
Columna de tiempo. Duración
aproximada de la actividad en condiciones normales. Merece la pena tener
en cuenta que la duración efectiva puede tener variaciones importantes
dependiendo de las personas y de las condiciones en las que desarrollen
la actividad.
Módulo didáctico 1. Introducción
a la ingeniería de software orientada a objetos
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Entender
qué es la ingeniería de software y saber qué
la diferencia de otras ingenierías. |
Apartado
1 |
Texto
del módulo |
Estudio |
15
min |
Hacerse
una primera idea de los problemas principales de la ingeniería de
software
actualmente: la calidad y la productividad. |
Apartado
1 |
Texto
del módulo |
Estudio |
15
min |
Conocer
el modelo de ciclo de vida que ha tenido más impacto hasta la llegada
de la orientación a objetos y también los principales modelos
posteriores. |
Apartado
2 |
Texto
del módulo |
Estudio |
1
h 30 min |
Adquirir
el concepto de herramienta CASE en general y especialmente en entornos
orientados a objetos. |
Apartado
4 |
Texto
del módulo |
Estudio |
15
min |
Conocer
un poco el origen de UML, el modelo orientado a objetos que ha llegado
a ser un estándar mundial. |
Apartado
5 |
Texto
del módulo |
Estudio |
30
min |
Todos. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
1
h |
Todos. |
Todo
el módulo |
Cuestionario
enviado por el consultor |
Parte
de Actividad 1 |
30
min |
Módulo didáctico 2.
UML (I): el modelo estático
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Profundizar
en el concepto de clase, especialmente en lo que concierne a los diferentes
tipos de clases y conceptos relacionados, y familiarizarse con las notaciones
respectivas. |
Apartados
del 1 al 5 |
Texto
del módulo; Rose; texto de introducción a Rose |
Estudio;
autoaprendizaje de Rose |
4
h |
Entender
los tipos más frecuentes de relaciones entre clases y saberlos identificar. |
Apartado
6 |
Texto
del módulo; Rose; texto de introducción a Rose |
Estudio;
autoaprendizaje de Rose |
3
h |
Conocer
los principales elementos complementarios de UML aplicables al diagrama
estático. |
Apartado
7 |
Texto
del módulo; Rose; texto de introducción a Rose |
Estudio;
autoaprendizaje de Rose |
1
h |
Todos. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
1
h 30 min |
Todos. |
Todo
el módulo |
Herramienta
CASE; enunciado enviado por el consultor |
Parte
de Actividad 1 |
2
h |
Módulo didáctico 3.
UML (II): el módelo dinámico y de implementación
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Aprender
el diagrama de estados. |
Apartado
1 |
Texto
del módulo; Rose |
Estudio |
2
h 30 min |
Adquirir
los conceptos de caso de uso y de actor y saber identificar los diferentes
casos de relaciones entre casos de uso. |
Apartado
2 |
Texto
del módulo; Rose |
Estudio |
1
h 30 min |
Aprender
a describir las interacciones mediante diagramas de colaboración
y de secuencia y saberlos aplicar a la descripción de casos de uso
y de operaciones complejas. |
Apartado
3 |
Texto
del módulo; Rose |
Estudio |
2
h |
Aprender
qué es un diagrama de actividades y entender las diferencias entre
éste y el diagrama de estados. |
Apartado
4 |
Texto
del módulo |
Estudio |
1
h 30 min |
Aprender
a interpretar y utilizar los diagramas de componentes y de despliegue. |
Apartado
5 |
Texto
del módulo |
Estudio |
30
min |
Todos. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
30
min |
Todos. |
Todo
el módulo |
Herramienta
CASE; enunciado enviado por el consultor |
Parte
de Actividad 1 |
2
h |
Módulo didáctico 4.
Recogida y documentación de requisitos
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Entender
el papel de los requisitos descritos en forma de casos de uso en el proceso
de desarrollo de software. |
Apartado
1 |
Texto
del módulo |
Estudio |
30
min |
Aprender
a recoger la información sobre los casos de uso. |
Apartados
2 y 3 |
Texto
del módulo |
Estudio |
1
h |
Aprender
a identificar los actores. |
Apartados
3 y 5 |
Texto
del módulo |
Estudio |
30
min |
Aprender
a documentar los casos de uso. |
Apartados
3 y 5 |
Texto
del módulo |
Estudio |
1
h 30 min |
Aprender
a determinar y documentar las relaciones entre casos de uso. |
Apartados
3 y 5 |
Texto
del módulo |
Estudio |
1
h |
Aprender
a recoger dentro de la documentación de los casos de uso los requisitos
referidos a la interfaz de usuario. |
Apartado
4 |
Texto
del módulo |
Estudio |
1
h |
Todos
los anteriores. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
1
h 30 min |
Desarrollar
un caso práctico. |
Todo
el módulo |
Herramienta
CASE; texto del módulo; enunciado enviado por el consultor |
Actividad
2 y parte de Actividad 5 |
4
h 30 min |
Módulo didáctico 5.
Análisis orientado a objetos
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Entender
el papel del análisis y las diferencias con la etapa anterior –la
recogida y documentación de requisitos– y la siguiente –el diseño. |
Apartado
1 |
Texto
del módulo |
Estudio |
30
min |
Comprender
las diferencias entre los tres tipos de clases que se consideran en el
análisis. |
Apartado
4 |
Texto
del módulo |
Estudio |
1
h |
Aprender
a elaborar el diagrama estático de análisis. |
Apartados
4 y 7 |
Texto
del módulo |
Estudio |
1
h |
Saber
formalizar los casos de uso mediante diagramas de interacción y
otros. |
Apartados
5 y 7 |
Texto
del módulo |
Estudio |
1
h 30 min |
Aprender
a hacer el análisis de la interfaz de usuario. |
Apartados
6 y 7 |
Texto
del módulo |
Estudio |
1
h |
Todos
los anteriores. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
1
h 30 min |
Desarrollar
un caso práctico. |
Todo
el módulo |
Herramienta
CASE; texto del módulo; enunciado enviado por el consultor |
Actividad
3 y parte de Actividad 5 |
4
h 30 min |
Módulo didáctico 6.
Diseño orientado a objetos
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Entender
el papel del diseño y las diferencias con la etapa anterior –el
análisis– y la siguiente –la realización. |
Apartado
1 |
Texto
del módulo |
Estudio |
30
min |
Entender
las opciones de reutilización existentes y cómo se emplean. |
Apartado
2 |
Texto
del módulo |
Estudio |
1h
30 min |
Saber
especificar la implementación de los casos de uso descritos en el
modelo de análisis. |
Apartados
3, 4 y 8 |
Texto
del módulo |
Estudio |
2h
30 min |
Aprender
a elaborar el diagrama estático de diseño. |
Apartados
5, 7 y 8 |
Texto
del módulo |
Estudio |
1h
30 min |
Aprender
a diseñar la interfaz de usuario. |
Apartados
7 y 8 |
Texto
del módulo |
Estudio |
1
h |
Todos
los anteriores. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Ejercicios
de autoevaluación |
1
h |
Desarrollar
un caso práctico. |
Todo
el módulo |
Texto
del módulo; enunciado enviado por el consultor |
Actividad
4 y parte de Actividad 5 |
4
h 30 min |
Módulo didáctico 7.
Desarrollo de software orientado a objetos
Objetivos |
Contenidos |
Materiales |
Actividades |
Tiempo |
Entender
la necesidad de un ciclo de vida específico para el desarrollo y
mantenimiento de la librería de reutilización. |
Apartado
2.1 |
Texto
del módulo |
Estudio |
15
min |
Conocer
el ciclo de vida que se denomina iterativo e incremental, que es el más
extendido en centros de desarrollo que se basan en la orientación
a objetos. |
Apartado
2.2 |
Texto
del módulo |
Estudio |
15
min |
Comprender
los motivos de la aplicación de un desarrollo basado en prototipos
cuando la situación lo requiera. |
Apartado
2.3 |
Texto
del módulo |
Estudio |
15
min |
Saber
cómo afecta la reutilización a los informáticos desde
el punto de vista profesional, por lo que respecta a las nuevas funciones
y a la manera de evaluar la productividad. |
Apartados
3.2 y 4 |
Texto
del módulo |
Estudio |
30
min |
Conocer
la puesta a punto del software orientado a objetos. |
Apartado
5 |
Texto
del módulo |
Estudio |
15
min |
Adquirir
los conceptos de la calidad del software que son específicos del
software orientado a objetos. |
Apartado
6 |
Texto
del módulo |
Estudio |
30
min |
Todos. |
Todo
el módulo |
Preguntas
de autoevaluación, sus respuestas y el texto del módulo |
Autoevaluación |
1
h 30 min |
Todos. |
Todo
el módulo |
Cuestionario
enviado por el consultor |
Cuestionario
Q6 |
1
h 30 min |

Actividades
Estudio
Es el estudio convencional del texto
de los módulos: memorización de los conceptos y lectura atenta
de los ejemplos. El tiempo que se da comprende tanto la primera lectura
como el repaso posterior, y está calculado suponiendo un grado elevado
de atención.
Autoevaluación
Consiste en que el participante, una
vez completado el estudio de un módulo, intenta responder a sus
preguntas o ejercicios de autoevaluación y, posteriormente, compara
sus respuestas con las soluciones contenidas en el material.
Actividades
Después de realizar la autoevaluación
de cada módulo didáctico, los participantes tendrán
que responder al enunciado de la actividad correspondiente, que puede abarcar
varios módulos; una vez completada la actividad, deberán
enviar sus respuestas a la misma en forma de uno o más ficheros
compactados dentro de un único fichero .zip adjunto a un mensaje
transmitido, dentro del plazo establecido, al consultor, el cual las puntuará
y comunicará a cada participante su puntuación, así
como la solución. Cuando la actividad incluye un cuestionario, se
recomienda realizarlo sin mirar el texto, y una vez resuelto, comprobar
las respuestas con el texto de los módulos y corregirlas si es necesario.
Los participantes se pueden pedir ayuda
entre ellos por medio del foro del curso, pero está prohibido que
se pasen ficheros con soluciones totales o parciales.
Ejercicios de autoevaluación
Las preguntas y ejercicios de autoevaluación
están incluidos dentro del texto de cada módulo, y también
–por separado– las soluciones respectivas.
Bibliografía
Bibliografía básica
Booch, G.; Rumbaugh, J.; Jacobson,
I. (1999). UML. El lenguaje de modelado unificado. Guía del
Usuario. Addison-Wesley.
Cockburn,
A. (2001). Writing Effective Use Cases. Addison-Wesley.
Jacobson, I.; Booch, G.; Rumbaugh,
J. (2000). El proceso unificado de desarrollo de software. Addison-Wesley.
Kruchten, P. (2000). The Rational
Unified Process. An Introduction (2.ª ed.). Addison-Wesley.
Larman, C. (2003). UML y Patrones.
Una introducción al análisis y diseño orientado a
objetos y al proceso unificado. Prentice-Hall.
Richter, C. (1999). Designing
Flexible Object-Oriented Systems with UML. Indianápolis: MacMillan.
Rosenberg, D.; Scott, K. (1999).
Use Case Driven Object Modeling with UML: A Practical Approach. Addison-Wesley.
Rumbaugh, J.; Jacobson, I.;
Booch, G. (2000). UML. El lenguaje de modelado unificado. Manual
de referencia. Addison-Wesley.
Weinschenk, S.; Jamar, P.; Yeo,
S.C. (1997). GUI Design Essentials. John Wiley & Sons.
Bibliografía complementaria
Buschmann, F.; Meunier, R.; Rohnert,
H.; Sommerlad, P.; Stal, M. (1996). A System of Patterns. Pattern-Oriented
Software Architecture. Addison-Wesley.
D'Souza,
D.F., i Willis, A.C.(1999).
Objects, Components and Frameworks with UML. Addison-Wesley.
Fowler, M.; Scott, K. (1999).
UML gota a gota. Prentice Hall.
Gamma, E.; Helm, R.; Johnson, R.;
Vlissides, J. (1995). Design Patterns. Addison-Wesley.
Meyer, B. (1999). Construcción
de software orientado a objetos (2.ª ed.). Prentice-Hall.
Newkirk,
J., i Martin, R.C.
(2002). La Programación Extrema en la Práctica. Addison-Wesley.
Page-Jones,
M.
(2000). Fundamentals of Object-Oriented Design. Addison-Wesley,
.
Notas personales
Al comenzar el curso, el consultor
enviará a los participantes un calendario del curso que indicará
los plazos de las diferentes actividades, los cuales, no obstante, se podrán
cambiar después si las circunstancias lo exigen, siempre con el
aviso previo del consultor.
|