Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CURSO
PROGRAMACIN ORIENTADA
A
OBJETOS
Prlogo
La necesidad de reducir la brecha existente entre las etapas de aprendizaje en
una institucin educativa del nivel tcnico, tcnico superior universitario y superior
y la de aplicacin productiva en el mercado laboral, llev a la ANIEI y al ILCE a
disear el Modelo Paracurricular, en el que se procura la actualizacin inmediata y
permanente de los profesionistas de las reas de informtica y computacin.
Motivo por el cual la tarea de Formacin de Entrenadores en Tecnologas de
Informacin, se sustenta en el Modelo Paracurricular.
El modelo paracurricular es producto de diversos anlisis y consultas, de las
cuales surgieron las reas de conocimiento a ser consideradas en la formacin o
entrenamiento del capital humano en nuestro pas: Programacin, Calidad,
Sistemas Distribuidos y Desarrollo Empresarial, dichas reas estn incluidas en
los cuatro perfiles del capital humano para la Industria de Software, definidos en el
modelo paracurricular: Emprendedor y Administrador de Proyectos de Software,
Arquitecto de Software, Ingeniero de Software y Desarrollador de Software.
Para la generacin de contenidos de los cursos se capacit a los docentes para
generar y revisar los contenidos de los cursos del modelo paracurricular y tutores
de los mismos, en la modalidad e- learning.
En la primera fase de este subproyecto se inici con el perfil bsico de la
estructura de la industria del software, el Desarrollador de Software , y se atendi
el rea de programacin con el curso Programacin Orientada a Objetos.
El presente material, ha sido diseado para aprender Programacin Orientada a
Objetos; se abordarn tres temas fundamentales que conforman el paradigma
orientado a objetos, los cuales son: abstraccin, herencia y polimorfismo. La
comprensin de estos temas proporcionar las bases para la generacin y
desarrollo de software con diferentes perspectivas, que permitir la solucin o
atencin de servicios demandados por diferentes sectores de la sociedad.
Las etapas que se cubrirn en este curso corresponden al desarrollo de software e
implementacin de proyectos, apoyndose en tcnicas de modelado que utilizan el
Lenguaje Unificado de Modelado (Unified Model Language UML).
Agradecimiento y Reconocimiento
Despus de una ardua tarea de investigacin se ha logrado la creacin de una
obra vasta en conocimiento en el desarrollo de las Tecnologas de la Informacin y
Comunicacin.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
II
Introduccin al curso
Este material fue estructurado con la finalidad de ensear programacin orientada
a objetos y sus conceptos, basndose en los tres temas del paradigma orientada a
objetos: abstraccin, herencia y polimorfismo.
Estos tres temas conformarn una base slida para estructuracin, generacin y
desarrollo de software; dando soluciones y/o servicios que cumplan las
perspectivas de diversos segmentos de la sociedad actual.
A lo largo de este curso quedarn cubiertas, a travs de tcnicas de modelado que
usan Lenguaje Unificado de Modelado UML (Unified Model Language), las
etapas de desarrollo de software e implementacin de proyectos.
En el tema 1 se trata el contexto de desarrollo de software as como los lenguajes
de programacin orientada a objetos.
Para el tema 2 estudiaremos los conceptos fundamentales de la POO.
El tema 3 estudiar los elementos adicionales del lenguaje.
En el tema 4 revisaremos los fundamentos de UML y sus vistas.
Para el tema 5 examinaremos la vista lgica que comprende el modelado del
diseo y el proceso.
III
Intencin educativa:
La importancia de este curso radica principalmente en que permite conocer,
aplicar y desarrollar el paradigma de la POO en el desarrollo de aplicaciones
profesionales para la resolucin de problemas en el campo laboral, utilizando las
ltimas herramientas de software, lo cual facilitar la insercin de los profesionales
en el mercado laboral de desarrollo de software.
Objetivos Generales
Al terminar el curso, el alumno ser capaz de:
Metodologa
Se utilizarn distintos mtodos de aprendizaje para cubrir los contenidos. A
continuacin se describirn dichos mtodos. Adicionalmente, en las actividades de
aprendizaje se encontrarn las indicaciones especficas en relacin con la tcnica
utilizada en cada una de ellas.
IV
Mtodo de Casos
El mtodo de casos difiere de los sistemas de enseanza tradicionales porque
exige que el alumno tome parte activa en el anlisis de los problemas y en la toma
de decisiones para la solucin a situaciones reales muy especficas.
Un aspecto muy importante del mtodo de casos, es el aprender de la experiencia
de otros casos similares para la toma de decisiones en el momento de solucionar
un problema. La solucin de un mayor nmero de casos incrementar la habilidad
para identificar problemas y formular soluciones a problemas reales.
En el mtodo de casos, el proceso que se siga para tomar decisiones y las
decisiones mismas, sustentadas en un anlisis adecuado, son la clave. Este tipo
de ejercicios nos permite aprender a comunicar criterios, defender hechos y
opiniones en debates.
VI
Comprobacin de Lectura
La tcnica de comprobacin de lectura tiene como finalidad fomentar en el alumno
la habilidad de leer, analizar y comprender. La comprensin se comprobar al final
de cada leccin, ya que se presenta una evaluacin por medio de preguntas muy
puntuales acerca de la lectura.
Los materiales que se utilizarn en este mtodo son una recopilacin de diferentes
autores de un tema, para homogenizar los conceptos e ideas referentes al tema.
La tcnica de comprobacin de lectura es una de las ms empleadas en los
procesos de enseanza-aprendizaje y tiene como finalidad conformar conceptos e
ideas propias al alumno, por lo que no pretende que se memoricen los temas
tratados.
VII
Fuentes de Informacin
APRENDIENDO PROGRAMACION
LECCIONES AVANZADAS.
Sintes, Anthony
Pearson
ORIENTADA
OBJETOS
EN
21
Forma de Evaluacin
El alumno deber cumplir con el 100% de asistencia y deber completar todos los
ejercicios y tareas descritos en cada una de las unidades.
La forma de evaluacin de este curso es por medio de las rbricas descritas para
cada una de las unidades, siendo 3 el puntaje ms alto que se pueda alcanzar, los
criterios que se toman para evaluar cada uno de los ejercicios vienen descritos en
las tablas de ls rbricas.
VIII
Contenido
PRLOGO ..........................................................................................................................................................................II
INTRODUCCIN AL CURS O ...................................................................................................................................III
INTENCIN EDUCATIVA:........................................................................................................................................ IV
OBJETIVOS GENERALES ......................................................................................................................................... IV
METODOLOGA ............................................................................................................................................................ IV
FUENTES DE INFORMACIN..............................................................................................................................VIII
FORMA DE EVALUACIN ....................................................................................................................................VIII
CONTENIDO.................................................................................................................................................................... IX
1.1
1.2
2.
2.3. ENCAPSULAMIENTO................................................................................................................................................23
Ejercicio.................................................................................................................................................................... 23
Pginas Electrnicas de Referencia........................................................................................................................23
Gua Tutorial del Profesor......................................................................................................................................27
2.5. POLIMORFISMO........................................................................................................................................................38
Ejercicio..................................................................................................................................................................38
2.6. RELACIN.................................................................................................................................................................43
Ejercicio.................................................................................................................................................................... 43
2.7. PERSISTENCIA ..........................................................................................................................................................48
Ejercicio.................................................................................................................................................................... 48
Gua Tutorial del Profesor......................................................................................................................................49
3.
IX
Ejercicio..................................................................................................................................................................64
Ejercicio.................................................................................................................................................................... 78
3.8 M ULTIHILADO...........................................................................................................................................................78
Ejercicio.................................................................................................................................................................... 78
4.
FUNDAMENTOS DE UML............................................................................................................................... 80
EJERCICIO ........................................................................................................................................................................80
Material 1 .................................................................................................................................................................81
Preguntas I ............................................................................................................................................................... 95
Material II.................................................................................................................................................................96
DOCUMENTACIN...........................................................................................................................................................99
Preguntas II............................................................................................................................................................111
Material III .............................................................................................................................................................113
Preguntas III...........................................................................................................................................................123
5.
6.
1.1
Objetivos Especficos
Ejercicio
1. Observen detalladamente el siguiente video:
Metas de
aprendizaje
No las
incluye
Total
Las incluye,
Las incluye,
pero difieren Las incluye y
pero no
en algunos coinciden con
coinciden con
puntos de el resto del
las del resto del
las del resto
equipo.
equipo
del equipo
No
Responde Les da una
responde
con cierto
respuesta
Respuestas
Responde
de manera
detalle, pero
clara y
a las metas
superficialmente
completa
no
fundamentada
de
y/o sin
todas las
fundamenta
en la
aprendizaje
fundamentos.
metas de
todas sus bibliografa
aprendizaje
respuestas. consultada.
Referencias
bibliogrficas
y ligas de
Internet
No las
incluye
Las incluye
Las incluye,
de manera Las incluye de
pero de manera
completa,
manera
incompleta, ya
pero no con completa y
sea en datos o
el formato
correcta.
en cantidad.
solicitado
TOTAL
Total
Solucin o
explicacin al
problema
Dan una
Dan una
La
El equipo no
solucin/explicacin solucin/explicacin
solucin/explicacin
detallada al
detallada al
proporciona una
del problema es
solucin/explicacin
problema, pero no
problema y con
vaga y sin
al problema.
la fundamentan de
fundamentos
fundamentos.
manera completa.
slidos.
Sntesis de la
informacin con la
cual fundamentan la
solucin/explicacin
No la incluyen.
nicamente
Presentan un
presentan listas de resumen lgico de
datos y/o copia de
la informacin
lo que cada quien
recopilada por
investig, sin darle
todos.
coherencia.
No las incluyen.
Referencias
bibliogrficas y ligas
de Internet
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
TOTAL
Perder mi individualidad?
8. Metas de aprendizaje:
1.2
Ejercicio
1. Antes de empezar con las actividades de est seccin, es importante que
elijas la tecnologa sobre la que quieres trabajar (Java - NetBeans o C# Visual Studio).
Es posible cursar los dos temas, pero habr que realizar tambin
ambas tareas. Se recomienda elegir slo una tecnologa para trabajar
durante el curso.
2. Observa detalladamente el siguiente video sobre la instalacin de NetBeans
IDE o Visual Studio.
Total
Responde con
No responde
Les da una
Responde
cierto detalle,
Respuestas de manera
respuesta clara
superficialmente
pero no
a las
completa a
y fundamentada
y/o sin
fundamenta
preguntas
todas las
en la bibliografa
fundamentos.
todas sus
preguntas.
consultada.
respuestas.
Referencias
bibliogrficas
y ligas de
Internet
No las
incluye.
Las incluye de
Las incluye,
manera
Las incluye de
pero de manera
completa, pero
manera
incompleta, ya
no con el
completa y
sea en datos o
correcta.
formato
en cantidad.
solicitado.
TOTAL
http://www.programacion.com/java/
http://acm.escet.urjc.es/~rocapal/acmlux-doc/index.html
http://www.netbeans.org/index_es.html
EN APLICACIONES DE OFICINA
Las Aplicaciones de oficina estn repletas de objetos que generalmente son vistos
cuando se hace su programacin (generalmente de macros)
OBJETO APPLICATION
Representa la aplicacin completa Microsoft Excel. El objeto Application contiene:
Valores y opciones de toda la aplicacin (por ejemplo, muchas de las opciones del
cuadro de dilogo Opciones, en el men Herramientas).
Mtodos que devuelven objetos de nivel superior, como ActiveCell, ActiveShe et,
etc.
Uso del objeto Application
10
Objetivos Especficos
11
12
Contenido del
reporte
Total
Metas de
aprendizaje
Las incluye,
pero difieren
Las incluye, pero no
Las incluye y
en algunos
No las incluye coinciden con las
coinciden con el
puntos de las
del resto del equipo
resto del equipo.
del resto del
equipo
Respuestas a
las metas de
aprendizaje
No responde
Responde con
Les da una
de manera
cierto detalle,
Responde
respuesta clara y
completa
pero no
superficialmente y/o
fundamentada en
todas las
fundamenta
sin fundamentos.
la bibliografa
metas de
todas sus
consultada.
aprendizaje
respuestas.
Referencias
bibliogrficas
y ligas de
Internet
Las incluye de
Las incluye, pero de
manera
Las incluye de
manera incompleta, completa, pero
No las incluye
manera completa
ya sea en datos o
no con el
y correcta.
en cantidad.
formato
solicitado
TOTAL
13
Contenido del
reporte
Total
Solucin o
explicacin al
problema
Dan una
Dan una
La
El equipo no
solucin/explicacin solucin/explicacin
solucin/explicacin
detallada al
detallada al
proporciona una
del problema es
solucin/explicacin
problema,
pero
no
la
problema
y con
vaga y sin
al problema.
fundamentan de
fundamentos
fundamentos.
manera completa.
slidos.
Sntesis de la
informacin con la
cual fundamentan la
solucin/explicacin
nicamente
Presentan un
presentan listas de
resumen lgico de la
datos y/o copia de lo
informacin
que cada quien
recopilada por
investig, sin darle
todos.
coherencia.
Referencias
bibliogrficas y ligas
de Internet
No la incluyen.
No las incluyen.
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
Las incluyen de
Las incluyen de
manera completa,
manera completa y
pero no con el
correcta.
formato solicitado.
TOTAL
Escenario
Se requiere desarrollar una aplicacin que registre las ventas y realice la
facturacin de una empresa. Se trata de un sistema de tipo personal que debe
incluir las siguientes caractersticas: calidad, reusabilidad, estabilidad,
escalabilidad, etc. T eres un desarrollador de software y has visto la potencialidad
de la POO para el desarrollo de sistemas, qu fundamentos de POO crees que
deberan tener aquellas personas que pretenden desarrollar esta aplicacin?
14
15
8. Metas de aprendizaje:
16
Ejercicio
1. Lee detalladamente el siguiente escenario 2.2.
2. Con base en el escenario 2.2, realicen una serie de preguntas en equipo
sobre qu fundamentos de POO se necesitan para desarrollar la aplicacin
citada. No olviden que las preguntas deben hacerse en el foro de discusin.
Al final de la serie de preguntas, elijan las 10 que consideren ms
relevantes y el secretario del equipo deber colocarlas en el foro bajo el
ttulo "metas de aprendizaje". Una vez que tengan el visto bueno del
profesor sobre sus preguntas, lleven a cabo la investigacin necesaria para
responderlas.
3. Recuerden que como primera tarea, se debe elaborar un reporte individual
que deber incluir las respuestas a sus preguntas individuales hechas en el
foro (metas de aprendizaje). El contenido del reporte debe cumplir con la
siguiente rbrica (Liga rbrica 1).
17
Contenido
del reporte
No la
incluye
La incluye, pero
no coincide con
la del resto del
equipo
La incluye,
pero difiere La incluye y
en algunos coincide con
el resto del
puntos de
las del resto
equipo.
del equipo
Metas de
aprendizaje
No las
incluye
Las incluye,
pero no
coinciden con
las del resto del
equipo
Las incluye,
pero difieren Las incluye y
en algunos coinciden con
puntos de
el resto del
equipo.
las del resto
del equipo
Cdigo
Esqueleto
Con lgica y
compila
Definicin
del problema
Funciona
Total
Hace lo que
tiene que
hacer
Les da una
No
Responde
respuesta
responde de
con cierto
clara y
Respuestas
Responde
manera
detalle, pero fundamentada
a las metas
superficialmente
completa
no
en la
de
y/o sin
todas las
fundamenta bibliografa
aprendizaje metas de
fundamentos.
todas sus
consultada.
aprendizaje
respuestas. Entregar un
cdigo
Referencias
bibliogrficas
No las
incluye
Las incluye
Las incluye,
de manera Las incluye de
pero de manera
completa,
manera
incompleta, ya
completa
y
pero no con
sea en datos o
el formato
correcta.
en cantidad.
solicitado
TOTAL
18
Definicin del
problema
Total
No la incluyen.
La incluyen, pero
no corresponde a
las de los reportes
individuales.
La incluyen, pero
difiere ligeramente
de las de los
reportes
individuales.
La incluyen y
coincide al 100%
con las de los
reportes
individuales.
Solucin o
explicacin al
problema
Dan una
Dan una
La
El equipo no
solucin/explicacin solucin/explicacin
solucin/explicacin
proporciona una
detallada al
detallada al
del problema es
solucin/explicacin
problema, pero no
problema y con
vaga y sin
al problema.
la fundamentan de
fundamentos
fundamentos.
manera completa.
slidos.
Sntesis de la
informacin con la
cual fundamentan
la
solucin/explicacin
No la incluyen.
nicamente
Presentan un
presentan listas de resumen lgico de
datos y/o copia de
la informacin
lo que cada quien
recopilada por
investig, sin darle
todos.
coherencia.
Cdigo
Esqueleto
Referencias
bibliogrficas
No las incluyen.
Con lgica y
compila
Funciona
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
Hace lo que tiene
que hacer
Las incluyen de
manera completa y
correcta.
TOTAL
19
Escenario
A un programador su jefe le entrega los diagramas de una aplicacin de una
calculadora que tiene bsicamente 4 operaciones (suma, resta, multiplicacin y
divisin) y los operandos de estas operaciones; Por otro lado, la calculadora
puede con la que se est trabajando puede variar en el nmero de dgitos y de
teclas. El jefe le dice al programador que una primera fase debe de codificar estos
diagramas utilizando clases. La segunda fase consiste en que debe de instanciar 1
objeto utilizando esta clase y que resuelva la suma (10+20), y la multiplicacin
(30*10). La tercera fase consiste en utilizar una sola referencia para manejar los
objetos e imprimir los resultados de cada uno de los objetos. Todo esto debe estar
listo para maana en la maana sin excusa ni pretexto.
una clase
los permisos de acceso en una clase
los atributos en una clase
el mtodo en una clase
la instanciacin de un objeto
la referencia de un objeto
4.- Escenario:
A un programador su jefe le entrega los diagramas de una aplicacin de una
calculadora que tiene bsicamente 4 operaciones (suma, resta, multiplicacin y
divisin) y los operandos de estas operaciones. El jefe le dice al programador que
una primera fase debe de codificar estos diagramas utilizando clases. La segunda
20
fase consiste en que debe de instanciar 1 objeto utilizando esta clase y que
resuelvan la suma (10+20), y la multiplicacin (30*10). La tercera fase consiste en
utilizar una sola referencia para manejar los objetos e imprimir los resultados de
cada uno de los objetos. Todo esto debe estar listo para maana en la maana sin
excusa ni pretexto.
5.- Posibles trminos que deban clarificarse:
Operandos
6.- Definicin del problema esperado:
Qu es un permiso de acceso?
Qu es la sintaxis de un atributo?
Qu es la sintaxis de un mtodo?
Qu es la Implementacin de un atributo?
Qu es la Implementacin de un mtodo?
21
Implementar un atributo
Implementar un mtodo
Instanciacin de un objeto
22
2.3. Encapsulamiento
El alumno entender el concepto de encapsulamiento, tambin conocido como
ocultamiento de datos, es decir, limita el acceso a los atributos y mtodos de los
objetos que implemente en este captulo, utilizando la tcnica de aprendizaje
basado en problemas.
Ejercicio
1. Lee detalladamente el siguiente escenario 2.3.
2. Con base en el escenario 2.3, realicen una serie de preguntas en equipo
sobre la situacin que en l se presenta. No olviden que las preguntas
deben hacerse en el foro 2.3 de discusin, al final de la serie de preguntas:
a) De todas ellas, elijan la que consideren que mejor representa la
situacin a resolver y colquenla bajo el titulo "definicin del
problema".
b) A partir de dicha definicin, elijan las 10 preguntas que consideren
ms relevantes para poder resolver el problema y colquenlas en el
foro bajo el ttulo "metas de aprendizaje".
Una vez que tengan el visto b ueno del profesor sobre sus preguntas, lleven
a cabo la investigacin necesaria para responderlas. Recuerden que sta
es individual.
3. Recuerden que como primera tarea, se debe elaborar un reporte individual
que deber incluir las respuestas a sus preguntas individuales hechas en el
foro (metas de aprendizaje). El contenido del reporte debe cumplir con la
siguiente rbrica (Liga rbrica 1).
http://www.monografias.com/trabajos/objetos/objetos.shtml
http://www.dcc.uchile.cl/~psalinas/uml/modelo.html#relacion
http://www.inf.udec.cl/~mvaras/estprog/cap41.html#4.4
23
Total
No la
incluye
La incluye,
La incluye, pero pero difiere La incluye y
no coincide con en algunos coincide con
la del resto del puntos de
el resto del
equipo
las del resto
equipo.
del equipo
Metas de
aprendizaje
No las
incluye
Las incluye,
pero no
coinciden con
las del resto del
equipo
Cdigo
Esqueleto
Con lgica y
compila
Definicin
del problema
Las incluye,
pero difieren Las incluye y
en algunos coinciden con
puntos de
el resto del
equipo.
las del resto
del equipo
Funciona
No
Responde
responde de
con cierto
Respuestas
Responde
manera
detalle, pero
a las metas
superficialmente
completa
no
de
y/o s in
todas las
fundamenta
aprendizaje
fundamentos.
metas de
todas sus
aprendizaje
respuestas.
Referencias
bibliogrficas
No las
incluye
Hace lo que
tiene que
hacer
Les da una
respuesta
clara y
fundamentada
en la
bibliografa
consultada.
Entregar un
cdigo
Las incluye
Las incluye,
de manera Las incluye de
pero de manera
completa,
manera
incompleta, ya
pero no con completa y
sea en datos o
correcta.
el formato
en cantidad.
solicitado
TOTAL
24
Definicin del
problema
Solucin o
explicacin al
problema
Sntesis de la
informacin con la
cual fundamentan
la
solucin/explicacin
Cdigo
Referencias
bibliogrficas
Total
No la incluyen.
La incluyen, pero
no corresponde a
las de los reportes
individuales.
La incluyen, pero
difiere ligeramente
de las de los
reportes
individuales.
La incluyen y
coincide al 100%
con las de los
reportes
individuales.
Dan una
Dan una
La
El equipo no
solucin/explicacin
solucin/explicacin
solucin/explicacin
proporciona una
detallada al
detallada al
del problema es
solucin/explicacin
problema,
pero
no
problema
y con
vaga y sin
al problema.
la
fundamentan
de
fundamentos
fundamentos.
manera completa.
slidos.
No la incluyen.
nicamente
presentan listas de
datos y/o copia de
lo que cada quien
investig, sin darle
coherencia.
Presentan un
resumen lgico de
la informacin
recopilada por
todos.
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
Esqueleto
Con lgica y
compila
Funciona
No las incluyen.
Las incluyen de
Las incluyen de
manera completa,
manera completa y
pero no con el
correcta.
formato solicitado.
TOTAL
25
26
Factura
Cobre 15 mm
Cobre 15 mm
Cobre 15 mm
Cobre 15 mm
Subtotal
10250
10447
10268
10943
Carrete 150 mm
Carrete 150 mm
Carrete 150 mm
Carrete 150 mm
Subtotal
10264
10565
10746
10847
Unidades
(UM)
Estado
Importe
2
3
3
3
Kg
Kg
Kg
Kg
11
Pagada
Pagada
Pedido
Pedido
300.00
450.00
450.00
450.00
1,650.00
2
3.34
5
3
13.34
pz
pz
pz
pz
Pagada
Pagada
Pedido
Pagada
200.00
-300.00
500.00
300.00
700.00
27
28
6.
7.
8.
Qu debo hacer?
Metas de aprendizaje:
29
Contenido
del reporte
Total
La incluye,
La incluye, pero pero difiere La incluye y
no coincide con en algunos coincide con
Definicin del
No la incluye
la del resto del puntos de las el resto del
problema
equipo
del resto del
equipo.
equipo
Metas de
aprendizaje
Cdigo
No las
incluye
Esqueleto
Las incluye,
Las incluye,
pero difieren Las incluye y
pero no
en algunos coinciden con
coinciden con
puntos de las el resto del
las del resto del
del resto del
equipo.
equipo
equipo
Con lgica
compila
y Funciona
Funciona,
estructuracin
legible
y
documentados
Les da una
Responde
respuesta
No responde
con
cierto clara
y
Respuestas de manera Responde
detalle, pero fundamentada
a las metas completa
superficialmente
no
en
la
todas
las y/o
de
sin
fundamenta bibliografa
aprendizaje metas
de fundamentos.
todas
sus consultada.
aprendizaje
respuestas. Entregar
un
cdigo
Referencias No
bibliogrficas incluye
Las incluye
Las
incluye,
de manera Las incluye de
pero de manera
manera
las incompleta, ya completa,
pero no con completa
y
sea en datos o
el
formato correcta.
en cantidad.
solicitado
TOTAL
30
Rbrica para evaluar el reporte final de ABP (en equipo) por parte del tutor.
Mximo 12 puntos.
Contenido del
reporte
Definicin
problema
Solucin
explicacin
problema
del
No la incluyen.
Total
La incluyen, pero La
incluyen
y
La incluyen, pero
difiere ligeramente coincide al 100%
no corresponde a
de las de los con las de los
las de los reportes
reportes
reportes
individuales.
individuales.
individuales.
Dan
una Dan
una
La
El
equipo
no
solucin/explicacin solucin/explicacin
o
solucin/explicacin
proporciona
una
detallada
al detallada
al
al
del problema es
solucin/explicacin
problema, pero no problema y con
vaga
y
sin
al problema.
la fundamentan de fundamentos
fundamentos.
manera completa. slidos.
Sntesis
de
la
informacin con la
cual fundamentan No la incluyen.
la
solucin/explicacin
nicamente
Sintetizan
de
Presentan
un
presentan listas de
manera lgica y
resumen lgico de
datos y/o copia de
coherente
la
la
informacin
lo que cada quien
informacin
recopilada
por
investig, sin darle
investigada
por
todos.
coherencia.
todos.
Cdigo
Esqueleto
Con
lgica
compila
No las incluyen.
Referencias
bibliogrficas
Funciona
TOTAL
31
2.4. Herencia
El alumno entender el concepto de herencia y como una clase puede pasar a
otra clase algunas de sus caractersticas a otra mediante la tcnica de aprendizaje
basado en problemas.
Ejercicio
1. Lee detalladamente el siguiente escenario 2.4.
2. Con base en el escenario 2.4. realicen una serie de preguntas en equipo
sobre la situacin que en l se presenta. No olviden que las preguntas
deben hacerse en el foro 2.4. al final de la serie de preguntas:
a) De todas ellas, elijan la que consideren que mejor representa la
situacin a resolver y colquenla bajo el titulo "definicion del
problema".
b) A partir de dicha definicin, elijan las 10 preguntas que consideren
ms relevantes para poder resolver el problema y colquenlas en el
foro bajo el ttulo "metas de aprendizaje".
Una vez que tengan el visto bueno del profesor sobre sus preguntas, lleven
a cabo la investigacin necesaria para responderlas. Recuerden que sta
es individual.
3. Recuerden que como primera tarea, se debe elaborar un reporte individual
que deber incluir las respuestas a sus preguntas individuales hechas en el
foro (metas de aprendizaje). El contenido del reporte debe cumplir con la
siguiente rbrica (Liga rbrica 1).
32
No la
incluye
La incluye, pero
no coincide con
la del resto del
equipo
La incluye,
pero difiere La incluye y
en algunos coincide con
el resto del
puntos de
las del resto
equipo.
del equipo
Metas de
aprendizaje
No las
incluye
Las incluye,
pero no
coinciden con
las del resto del
equipo
Las incluye,
pero difieren Las incluye y
en algunos coinciden con
puntos de
el resto del
equipo.
las del resto
del equipo
Cdigo
Esqueleto
Con lgica y
compila
Definicin
del proble ma
Funciona
Total
Hace lo que
tiene que
hacer
Les da una
No
Responde
respuesta
responde de
con cierto
clara y
Respuestas
Responde
manera
detalle, pero fundamentada
a las metas
superficialmente
completa
no
en la
de
y/o sin
todas las
fundamenta bibliografa
aprendizaje
fundamentos.
metas de
todas sus
consultada.
aprendizaje
respuestas. Entregar un
cdigo
Referencias
bibliogrficas
No las
incluye
Las incluye
Las incluye,
de manera Las incluye de
pero de manera
completa,
manera
incompleta, ya
completa
y
pero no con
sea en datos o
el formato
correcta.
en cantidad.
solicitado
TOTAL
33
Contenido del
reporte
Definicin del
problema
Solucin o
explicacin al
problema
Sntesis de la
informacin con la
cual fundamentan
la
solucin/explicacin
Cdigo
Referencias
bibliogrficas
Total
No la incluyen.
La incluyen, pero
no corresponde a
las de los reportes
indivi duales.
La incluyen, pero
difiere ligeramente
de las de los
reportes
individuales.
La incluyen y
coincide al 100%
con las de los
reportes
individuales.
Dan una
Dan una
La
El equipo no
solucin/explicacin solucin/explicacin
solucin/explicacin
proporciona una
detallada al
detallada al
del problema es
solucin/explicacin
problema, pero no
problema y con
vaga y sin
al problema.
la fundamentan de
fundamentos
fundamentos.
manera completa.
slidos.
No la incluyen.
nicamente
presentan listas de
datos y/o copia de
lo que cada quien
investig, sin darle
coherencia.
Presentan un
resumen lgico de
la informacin
recopilada por
todos.
Sintetizan de
manera lgica y
coherente la
informacin
investigada por
todos.
Esqueleto
Con lgica y
compila
Funciona
No las incluyen.
Las incluyen de
Las incluyen de
manera completa,
manera completa y
pero no con el
correcta.
formato solicitado.
TOTAL
34
Escenario 2.4.
Programadores distintos modelaron una clase de una figura geomtrica cada uno.
Las figuras geomtricas fueron cuadrado, crculo, rectngulo y tringulo. Sus
propuestas se tomaran como ideas iniciales para comenzar el anlisis de un
editor grfico que utiliza figuras geomtricas bajo un criterio uniforme. Al reunirse
se dieron cuenta de una situacin a nivel de atributos y mtodos que poda
solucionarse al crear una nueva clase llamada Figura Geomtrica. Qu
situacin descubrieron? Cmo la solucionaron?
35
Escenario A
Programadores distintos modelaron una clase de una figura geomtrica cada uno.
Las figuras geomtricas fueron cuadrado, crculo, rectngulo y tringulo. Sus
propuestas se tomaran como ideas iniciales para comenzar el anlisis de un
editor grfico que utiliza figuras geomtricas bajo un criterio uniforme. Al reunirse
se dieron cuenta de una situacin a nivel de atributos y mtodos que poda
solucionarse al crear una nueva clase llamada Figura Geomtrica. Qu
situacin descubrieron? Cmo la solucionaron?
Posibles trminos que deban clarificarse
Definicin esperada del problema
Evidencias de Aprendizaje
36
o Java
Metas de aprendizaje
37
2.5. Polimorfismo
El alumno comprender que este concepto se refiere a cuando dentro de una
clase pueden contener mtodos con el mismo nombre pero se diferencian entre
ellos por medio de su definicin dentro de la clase por medio de la tcnica de
aprendizaje basado en problemas.
Ejercicio
1. Lee detalladamente el siguiente escenario 2.5.
2. Con base en el escenario 2.5, realicen una serie de preguntas en equipo
sobre el problema a resolver. No olviden que las preguntas deben hacerse
en el foro de discusin.
Al final de la serie de preguntas, elijan las 10 que consideren ms
relevantes y el secretario del equipo deber colocarlas en el foro bajo el
ttulo "metas de aprendizaje". Una vez que tengan el visto bueno del
profesor sobre sus preguntas, lleven a cabo la investigacin necesaria para
responderlas.
3. Recuerden que como primera tarea, se debe elaborar un reporte individual
que deber incluir las respuestas a sus preguntas individuales hechas en el
foro (metas de aprendizaje). El contenido del reporte debe cumplir con la
siguiente rbrica (Liga rbrica 1 Misma del tema 2.4).
No olviden que deben colocar su reporte en la seccin de Tarea individual
2.5.
4. Como segunda tarea, y con base en los reportes individuales de los
integrantes de cada equipo, debern elaborar una propuesta de solucin al
problema, adems de incluir en su reporte una sntesis de las respuestas a
sus preguntas relevantes finales hechas en el foro (metas de aprendizaje).
El contenido del reporte debe cumplir con la siguiente rbrica (Liga rbrica 2
Misma del tema 2.4).
No olviden que deben colocar su reporte final en la seccin de Tarea en
equipo 2.5.
38
ESCENARIO
La programacin de un editor grfico que maneja figuras geomtricas (cuadrado,
crculo, rectngulo, tringulo) se ha complicado ya que la clase base a todas ellas
FiguraGeomtrica tiene mtodos que se heredan (redibujar, posicionar,
redimensionar, rotar, calcularArea); sin embargo cada vez que se agrega una
figura geomtrica distinta, como por ejemplo rombo, tiene que modificarse el
contenido de estos mtodos conforme al tipo de figura, ya que varias de ellas se
dibujan en forma distinta. El problema se agrav cuando la clase AreaGrafica
cuenta con un mtodo que requiere redibujar las figuras geomtricas de un dibujo
independientemente del tipo de figura geomtrica de que se trate en particular y
para tal efecto no se desea estar modificando el cdigo dentro de los mtodos de
AreaGrafica y FiguraGeometrica cada vez que se agrega una nueva clase
representando a un nuevo tipo de figura geomtrica. El editor grfico trabaja tanto
con pixeles como con centmetros; y en cuanto a ngulos, tanto con grados como
con radianes. Se cuenta con un diagrama de clases. Son conscientes que ms
adelante incluirn otro tipo de figuras geomtricas.
Se proporciona el cdigo fuente ineficiente; que tiene a nivel base una cadena de
condicionantes por tipo de clase.(LIGA A CODIGO FUENTE)
39
40
para
alterar
el
Evidencias de aprendizaje
Mtodos que puedan utilizar clases actuales y futuras que heredan caractersticas
y comportamiento.
41
o La misma clase
Utilizar diagramas de UML
Utilizar la palabra reservada (permiso de acceso) protected
Utilizar lenguaje de programacin
o C#
o Java
Metas de aprendizaje
42
2.6. Relacin
El alumno comprender el concepto de relacin e identificar las partes de una
relacin de clases, tales como nombre, roles, multiplicidad.
Ejercicio
1. Trabaje con el siguiente ejercicio 2.6 interactivo.
NOTA: La aplicacin interactiva arroja una evaluacin como resultado
de los datos que se introduzcan. Se puede realizar el ejercicio
interactivo el nmero de veces que se desee. Realcelo hasta obtener
una calificacin aceptable.
2. Utilice el foro 2.6 de discusin para intercambiar impresiones y comentarios.
3. Complete el recuadro del ejercicio 2.6.
Nombre de Relacin
Dibujo
Descripcin
43
Una situacin
Tipos de relacin
Comentarios
44
Agregacin
o Declarar atributos o variables miembro como objetos
Dependencia
o Utilizar referencias a clases a travs de parmetros y
variables locales
o Vislumbrar al alumno que es necesario, en ciertas
ocasiones, crear un atributo que almacene la clave del
objeto
45
46
Metas de aprendizaje
47
2.7. Persistencia
Ejercicio
1. Lee detalladamente el siguiente escenario 2.7.
2. Con base en el escenario 2.7, realicen una serie de preguntas en equipo
sobre el problema a resolver. No olviden que las preguntas deben hacerse
en el foro de discusin.
Al final de la serie de preguntas, elijan las 10 que consideren ms
relevantes y el secretario del equipo deber colocarlas en el foro bajo el
ttulo "metas de aprendizaje". Una vez que tengan el visto bueno del
profesor sobre sus preguntas, lleven a cabo la investigacin necesaria para
responderlas.
3. Recuerden que como primera tarea, se debe elaborar un reporte individual
que deber incluir las respuestas a sus preguntas individuales hechas en el
foro (metas de aprendizaje). El contenido del reporte debe cumplir con la
siguiente rbrica (Liga rbrica 1 Misma del tema 2.5).
No olviden que deben colocar su reporte en la seccin de Tarea Individual
2.7.
4. Como segunda tarea, y con base en los reportes individuales de los
integrantes de cada equipo, debern elaborar una propuesta de solucin al
problema, adems de incluir en su reporte una sntesis de las respuestas a
sus preguntas relevantes finales hechas en el foro (metas de aprendizaje).
El contenido del reporte debe cumplir con la siguiente rbrica (Liga rbrica 2
Misma del tema 2.5).
No olviden que deben colocar su reporte final en la seccin de Tarea en
Equipo 2.7.
48
ESCENARIO
Tienes un amigo(a) que tiene ms de 3000 discos compactos diversos de audio y
video (CD y DVD). Te pide que le hagas un pequeo programa en el que pueda
registrar sus discos compactos tanto actuales como los que vaya comprando. Y
por otro lado, tu amigo(a) los presta a todos sus amigos, y desea poder registrar a
quin se los presta; as como hacer consultas de quin le debe que disco
compacto por diversos criterios de bsqueda (por persona, por tipo de disco
compacto audio o video - , categora, fecha de prstamo, cantidad de discos
prestados a una persona), as como, la combinacin de algunos de estos criterios.
Cmo le haras si lo quieres hacer con un lenguaje orientado a objetos?
en lenguajes OO
Escenario
Escenario A
Tienes un amigo(a) que tiene ms de 3000 discos compactos diversos de audio y
video (CD y DVD). Te pide que le hagas un pequeo programa en el que pueda
registrar sus discos compactos tanto actuales como los que vaya comprando. Y
por otro lado, tu amigo(a) los presta a todos sus amigos, y desea poder registrar a
quin se los presta; as como hacer consultas de quin le debe que disco
compacto por diversos criterios de bsqueda (por persona, por tipo de disco
compacto audio o video - , categora, fecha de prstamo, cantidad de discos
prestados a una persona), as como, la combinacin de algunos de estos criterios.
Cmo le haras si lo quieres hacer con un lenguaje orientado a objetos?
49
Escenario B
Se desea implementar las altas, bajas, cambios y consultas del mdulo de
pedidos, facturas, entradas y salidas de almacn.
Posibles trminos que deban clarificarse
Categora
Definicin esperada del problema
Utilizar SQL?
Qu es un recordset o resultset?
de
seguridad
50
C#
Uso de ADO.NET
Uso de JDBC
Java
Metas de aprendizaje
Qu es la Persistencia en la POO?
51
52
53
PROBLEMA 1
Cuando se barajea un mazo de cartas, se toma el mazo completo y se divide en
dos, posteriormente se juntan los dos montones en un nuevo mazo poniendo una
carta del primer montn, y una carta del segundo, y as posteriormente hasta que
no quede ninguna carta en ninguno de los montones. Cuando se barajean datos
se hace de la misma forma, se toma la lista de datos y se divide en dos,
posteriormente se juntan de nuevo pero poniendo el primer dato de la primera
mitad y luego el primer dato de la segunda, y as hasta terminar los datos en las
dos mitades.
Escribe un programa que barajee la lista de datos que se encuentra en las
localidades de memoria de la primera columna de la 0 al 9 y escriba la lista
barajeada de la segunda columna 0 al 9. Tu programa debe barajear los datos
en la forma antes descrita puede utilizar las columnas adicionales que desea.
Los datos de entrada son x el valor de datos a leer entre uno 1<=x<=10, un
nmero de n indicando el numero de barajeadas 1<=n<=5
EJEMPLO:
x=7
n=1
54
Localidad
0
1
2
3
4
5
Inicial
7
8
9
10
12
13
Final
7
10
8
12
9
13
Metas de
aprendizaje
No las
incluye
Total
Las incluye,
Las incluye,
pero difieren Las incluye y
pero no
en algunos coinciden con
coinciden con
puntos de las el resto del
las del resto del
equipo.
del resto del
equipo
equipo
Responde
Les da una
No responde
con cierto
respuesta
Respuestas de manera
Responde
detalle, pero
clara y
a las metas completa superficialmente
no
fundamentada
de
todas las
y/o sin
fundamenta
en la
aprendizaje metas de
fundamentos.
todas sus
bibliografa
aprendizaje
respuestas. consultada.
Referencias
bibliogrficas
No las
incluye
Las incluye,
pero de manera
incompleta, ya
sea en datos o
en cantidad.
Las incluye
de manera Las incluye de
manera
completa,
pero no con completa y
el formato
correcta.
solicitado
TOTAL
55
Resumen
Mximo una
hoja y un
programa
Participacin
Foro
No incluye
No participo o
participo con
ok, esta
bien , estoy
de acuerdo
Incluye definiciones
Incluye los tipos
y ejemplos de
de arreglos
cdigo
Participo con
ideas del
concepto
Total
Incluye,
definiciones y
ejemplos de
programas
ejecutables
Participo con ideas
de posibles
escenarios a
utilizar
Programas
Los programas
Programas
funcionan
funcionan
adecuadamente
El programa adecuadamente y estn auto
No entrego
funciona
y tiene una
documentados
estructuracin (comentarios
legible
significativos al
programa)
Referencias
bibliogrficas
TOTAL
56
57
PROBLEMA 1
CODIFICACIN DE DICCIONARIO DINMICO
Un mtodo comn de comprensin de dato, es remplazar palabras dentro de un
texto, por nmeros indicando su posicin en un diccionario. En la codificacin de
diccionario esttico, el diccionario es conocido previamente, y puede ser
problemtica ya que es necesario tener el diccionario para entender el cdigo. La
codificacin de diccionario dinmico elimina este problema derivando el diccionario
a partir del texto a comprimir. El texto es procesado del inicio al final, iniciando con
un diccionario vaco. Cuando encontramos una palabra que ya est en el
diccionario, es reemplazada por el nmero indicando la posicin de sta. Cuando
una se encuentra una palabra que no est en el diccionario, aparece tal y como es
en el texto y se agrega al diccionario.
ENTRADA:
Cada caso consiste de varis lneas de texto formado tan slo por letras minsculas
y espacios. Puedes asumir que ninguna palabra es mas larga de 20 letras y que
ninguna lnea de entrada es ms larga de 80 caracteres y que no hay ms de 100
lneas de entrada. Los casos de prueba estn separados por una lnea en blanco,
y se deben comprimir cada uno por separado.
SALIDA:
El archivo de salida debe contener los casos de prueba comprimidos, utilizando el
mtodo de codificacin por diccionario dinmico. Los fines de lnea y los espacios
deben de ser preservados tal y cono en el archivo de entrada, con los diferentes
casos de prueba separados por una lnea en blanco.
EJEMPLO:
ENTRADA
el gato persegua a el ratn mientras
el perro persegua a el gato dentro de la casa del ratn
SALIDA
el gato persegua a 1 ratn mientras
1 perro 3 4 1 2 dentro de la casa del 5
58
3.3 Interfaces
Ejercicio
1. Lea la siguiente informacin del escenario que define un caso de estudio
3.3.
2. Analice el cdigo fuente del escenario y elabore el Reporte de Preparacin
Individual con base en el siguiente formato.
Rbrica de Evaluacin
Contenido del
reporte
Anlisis de
Informacin
Aspectos
bsicos del
caso
Alternativas de
Solucin,
Evaluacin,
Seleccin e
Implantacin.
Referencias
bibliogrficas
y ligas de
Internet
No la incluye
No las
presenta
Obtiene la
informacin
relevante del
caso.
Total
Organiza la
Obtiene
informacin a
informacin
travs de una
relevante a partir
herrami enta
conceptual (mapa del anlisis de la
informacin
mental, diagrama
bsica.
de Ishikawa, etc)
Adicionalmente
Obtiene
Presenta algunos establece una
aspectos
aspectos, pero no
jerarqua de
adicionales a
son relevantes
aspectos o un partir del anlisis
para la solucin
conjunto de
de aspectos
del caso.
relaciones entre
inmediatos y
estos
bsicos.
Presenta ms de
una alternativa,
as como las
No presenta
variables de
ninguna
evaluaciones
alternativa. O
son claras y
slo una de
medibles
ellas.
mediante un
mtodo o criterio
bien establecido.
Presenta todos
los elementos
Adicionalmente
del reporte
realiza la
individual; as
evaluacin y
como la
seleccin de la
explicacin de
alternativa ms una implantacin
viable.
pertinente de la
solucin.
TOTAL
59
Funcionalidad
Usabilidad
Documentacin
No es posible
apreciar su
funcionalidad
Es posible
apreciar la lgica
de programacin
en forma concreta
para lograr el
objeivo
El programa
El programa
funciona, pero
cumple
con su
los resultados
son parciales o objetivo sin ningn
problema.
funciona slo
para un caso.
El programa
presenta
informacin
apropiada para
ejecutarlo.
El programa es
fcil de usar, con
El programa es
validaciones
fcil de usar
apropiadas, con
pero presenta
ejemplos y ayudas
problemas al
pertinentes para
probar varios
que el usuario
casos.
pueda utilizarlo
rpidamente
El programa no
cuenta con la
informacin y
presentacin
apropiada para
poder ejecutarlo.
Total
Se utilizan
No cuenta con
Se cuenta con
estndares de
documentacin,
documentacin o documentacin
Se documentan
es tan general general del cdigo
as como,
adems, lneas
que no es posible fuente, cmo de
posiblemente
o secciones de
directivas que
determinar con
los diversos
cdigo
faciliten el uso de
mayor precisin mdulos, clases,
importantes
informacin del
mtodos,
herramientas
cdigo
atributos, etc.
automatizadas de
documentacin
TOTAL
60
CASO DE ESTUDIO
La compaa Diseo Unificado y Especializado de Software S.A. de C.V. (DEUS)
construy un sistema para la administracin de la capacitacin llamado Platn a
un centro de capacitacin de lneas areas del pas. Platn tiene la facultad de
asignar recursos como computadora, can de proyeccin, saln, simulador, etc.
a cada uno de los cursos programados. El centro de capacitacin manifest en el
mes de agosto del 2001, la necesidad futura de poder asignar un nmero de
cuenta contable a cada uno de estos recursos; as como, las reglas para obtener
dinmicamente el nmero de cuenta contable de cada recurso. Para tal efecto, le
fue solicitado a DEUS un preanlisis de la solucin a esta situacin.
A Mauricio Hidalgo, Director de Operaciones de DEUS, le es encomendada la
tarea de elaborar el preanlisis. Como primer paso a realizar, se le solicita
presentar un programa prototipo para la implementacin de CuentaContable a las
clases que heredan de la clase Recurso en el Sistema Platn. Originalmente, por
razones de diseo, no es posible hacerlo mediante la aplicacin del concepto de
herencia, puesto que la clase Recurso no puede ser modificada ya que es
utilizada en otros sistemas en los cuales no se requiere tal modificacin. Es
necesaria la implementacin de CuentaContable de tal forma que en un futuro,
puedan realizarse sobre clases que heredan o no de Recurso.
Mauricio consider que la utilizacin del concepto de interfaz (en ingls interface)
es el concepto adecuado a aplicar; realiz un diagrama de clases de la solucin, el
cual fue el siguiente:
61
62
63
3.5 Archivos
Ejercicio
1. Vea detenidamente
explicacin.
la
siguiente
animacin
su
correspondiente
64
Rbrica de Evaluacin:
Aspectos del
Programa
Total
Funcionalidad
No es posible
apreciar su
funcionalidad
El programa
Es posible apreciar la
funciona,
pero los El programa cumple
lgica de
resultados son
programacin en
con su objetivo sin
parciales o
ningn problema.
forma concreta para
funciona slo para
lograr el objeivo
un caso.
Usabilidad
El programa no
cuenta con la
informacin y
presentacin
apropiada para
poder ejecutarlo.
El programa es fcil
El programa es
de usar, con
El programa presenta fcil de usar pero
validaciones
informacin
apropiadas, con
presenta
apropiada para
problemas al
ejemplos y ayudas
ejecutarlo.
probar varios
pertinentes para que
casos.
el usuario pueda
utilizarlo rpidamente
No cuenta con
documentacin o es
tan general que no
es posible
determinar con
mayor precisin
informacin del
cdigo
Se utilizan estndares
Se cuenta con
de documentacin,
documentacin
as como,
general e indentacin Se documentan
posiblemente
del cdigo fuente, as adems, lneas o
directivas que faciliten
cmo de los diversos
secciones de
el uso de
mdulos, clases, cdigo importantes
herramientas
mtodos, atributos,
automatizadas de
etc.
documentacin
Documentacin
de Cdigo
TOTAL
6. Transcriba el siguiente programa
7. Conteste el siguiente cuestionario:
a. Elabore un diagrama de clases conteniendo las clases necesarias
para utilizar archivos tanto texto como en forma binaria.
b. Cules son las diferencias bsicas entre la utilizacin de archivos
binarios y de texto?
c. Qu otros tipos de streams se pueden utilizar a travs del lenguaje
de programacin que utilizas?
8. Elabore un programa que analice un archivo de cdigo fuente (texto) que
reporte los siguientes resultados:
65
a. Lneas de Cdigo
i. Totales
ii. Comentarios (de lnea y multilnea, no hay anidacin de
comentarios)
iii. No vacas
b. Instrucciones del lenguaje de programacin (por ejemplo: if-else son
una sla instruccin)
c. Mtodos (Opcional, segn indicacin del docente o tutor)
i. Nmero promedio de mtodos por clase
ii. Totales
Rbrica de Evaluacin (por programa):
Aspectos del
Programa
Funcionalidad
No es posible
apreciar su
funcionalidad
Usabilidad
El programa no
cuenta con la
informacin y
presentacin
apropiada para
poder ejecutarlo.
Documentacin
No cuenta con
documentacin o
es tan general que
no es posible
determinar con
mayor precisin
informacin del
cdigo
Total
Es posible apreciar
El programa
la lgica de
funciona, pero los El programa cumple
programacin en
resultados son
con su objetivo sin
forma concreta
parciales o
ningn problema.
para lograr el
funciona slo
objeivo
para un caso.
El programa
presenta
informacin
apropiada para
ejecutarlo.
El programa es fcil
de usar, con
El programa es
validaciones
fcil de usar pero apropiadas, con
presenta
ejemplos y ayudas
problemas al
pertinentes para
probar varios
que el usuario
casos.
pueda utilizarlo
rpidamente
Se utilizan
Se cuenta con
estndares de
Se documentan documentacin, as
documentacin
general del cdigo adems, lneas o como, posiblemente
fuente, cmo de los secciones de
directivas que
diversos mdulos,
cdigo
faciliten el uso de
importantes
clases, mtodos,
herramientas
atributos, etc.
automatizadas de
documentacin
TOTAL
66
3.6 Eventos
Ejercicio
1. Analice el siguiente caso
Material 3.6
2. Con base en la alternativa propuesta en el caso transcriba el cdigo fuente
y realice pruebas de ejecucin
3. Conteste el siguiente cuestionario
a. Qu es un delegado y cmo se define en el lenguaje de
programacin?
b. Por qu se utilizan delegados para implantar el control de eventos?
c. Qu es un manejador de eventos?
d. Qu es la programacin asncrona?
e. Qu ventajas ofrece la programacin asncrona contra la sncrona?
f. Cundo no se recomienda utilizar la programacin sncrona?
4. (Opcional) Elabore un programa que genere una orden de compra al llegar
al inventario mnimo sobre un producto que es elegido para surtir un pedido.
Aspectos del
Programa
Funcionalidad
Usabilidad
No es posible
apreciar su
funcionalidad
El programa no
cuenta con la
informacin y
presentacin
apropiada para
poder ejecutarlo.
Es posible apreciar
El programa
la lgica de
funciona, pero
programacin en
los resultados
forma concreta
son parciales o
para lograr el
funciona slo
objeivo
para un caso.
El programa
presenta
informacin
apropiada para
ejecutarlo.
Total
El programa
cumple con su
objetivo sin ningn
problema.
El programa es fcil
de usar, con
El programa es
validaciones
fcil de usar
apropiadas, con
pero presenta
ejemplos y ayudas
problemas al
pertinentes para
probar varios
que el usuario
casos.
pueda utilizarlo
rpidamente
67
Documentacin
Se utilizan
No cuenta con
Se cuenta con
estndares de
documentacin o documentacin
documentacin, as
Se documentan
es tan general general del cdigo
como,
adems, lneas o
que no es posible fuente, cmo de
posiblemente
secciones de
determinar con
los diversos
directivas que
cdigo
mayor precisin mdulos, clases,
faciliten
el uso de
importantes
informacin del mtodos, atributos,
herramientas
cdigo
etc.
automatizadas de
documentacin
TOTAL
Material 3.6.
Creacin y Utilizacin de Delegados
Los delegados permiten escribir cdigo que dinmicamente cambien los mtodos
que son llamados. Esta es una caracterstica flexible que permite a un mtodo
variar independientemente del cdigo que lo invoca.
En esta leccin analizar un escenario donde el uso de delegados es til, as
como, ser capaz de definir y utilizar delegados.
Escenario: La Planta de Energa Nuclear
Para entender cmo utilizar delegados, considere el ejemplo de una planta de
energa nuclear para la cual la utilizacin de delegados es una solucin adecuada.
El Problema
En una planta de energa nuclear, la temperatura de un reactor nuclear debe
mantenerse por debajo de un temperatura crtica. Pruebas internas del ncleo
constantemente monitorean la temperatura. Si la temperatura se eleva
significativamente, varias bombas necesitarn encenderse para incrementar el
flujo de refrigerante a travs del ncleo. El software que controla el trabajo del
reactor nuclear debe comenzar con las bombas apropiadas en el momento
apropiado.
Posibles Soluciones
El software de control puede ser diseado de varias maneras de tal forma que
cumpla con estos requerimientos, dos de estas formas pueden ser:
68
69
70
71
Consideraciones futuras
Utilizar la estructura como ha sido descrita tiene serios inconvenientes. Si un
nuevo tipo de bomba es instalada posteriormente, necesitar cambiar el mtodo
EncenderTodasLasBombas para incorporar la nueva bomba. Esto implicara que
todo el cdigo volviera a ser probado, con factores de costo y tiempos fuera
asociados dado que es una pieza crucial del softwa re.
Una Solucin
Para resolver este problema, puede utilizarse un mecanismo referido como
delegado. El mtodo EncenderTodasLasBombas puede usar el delegado para
invocar el mtodo apropiado para encender cada bomba inclusive sin la necesidad
de determinar el tipo de bomba.
Creacin de Delegados
Un delegado contiene una referencia a un mtodo ms que a un nombre de
mtodo. Al utilizar delegados, puede invocarse a un mtodo sin conocer su
nombre. Invocando a un delegado verdaderamente se ejecutar el mtodo
referenciado.
En el ejemplo de la planta de energa nuclear, en lugar que el ArrayList tenga
objetos tipo bomba, puedes utilizarlo para contener delegados que apunten a los
mtodos requeridos para cada tipo de bomba.
Un delegado es similar a una interfaz. Especifica un contrato entre el llamador y el
implementador. Un delegado asociado a un nombre con la especificacin de un
mtodo. Una implementacin de un mtodo puede ser referida a este nombre, y
un componente puede llamar al mtodo a travs de l. El requerimiento primario
de implementar mtodos consiste en que deben tener la misma firma y regresar el
mismo tipo de parmetros. En el caso del escenario de la planta de energa
nuclear, los mtodos IniciarEjecucionBombaElectrica y Encender ambos son
de tipo void y no tienen parmetros.
Para utilizar un delegado, debe primero definirlo y despus instanciarlo.
72
Definir Delegados
Un delegado especifica un tipo de regreso y parmetros que cada mtodo debe
proveer. Se utiliza la siguiente sintaxis para de finir a un delegado.
public delegate void EncenderBombaCallback( );
Advierta que la sintaxis para definir un delegado es similar a la sintaxis para definir
un mtodo. En este ejemplo se define un delegado EncenderBombaCallBack
como si fuera un mtodo que no regresa valor (void) y no tiene parmetros. Esto
coincide
con
las
especificaciones
de
los
mtodos
IniciarEjecucionBombaElectrica y Encender en los dos tipos de controladores
de bombas.
Instanciar Delegados
Despus que se han definido los delegados, debe instanciarse y hacerse
referencia a un mtodo. Para instanciar un delegado, utilice un constructor de
delegado para proveer el mtodo del objeto que debe invocar cuando sea llamado.
En el siguiente ejemplo, un ControladorBombaElectrica, ed1, se crea, y
posteriormente un delegado, callback, se instanca, referenciado como el mtodo
IniciarEjecucionBombaElectrica de ed1:
public delegate void EncenderBombaCallback( );
void Ejemplo()
{
ControladorBombaElectrica ed1 =
new ControladorBombaElectrica( );
IniciarBombaCallback callback;
callback =
new IniciarBombaCallback
(ed1.IniciarEjecucionBombaElectrica);
...
}
73
Utilizar Delegados
Un delegado es una variable que invoca un mtodo. Se invoca de la misma
manera que un mtodo, excepto que un delegado reemplaza el nombre del
mtodo. Ejemplo :
A continuacin se muestra la forma de definir, crear e invocar delegados para
usarse por la planta de energa nuclear. Se utiliza un ArrayList llamado callbacks
con instancias de los delegados que hacen referencia a los mtodos utilizados
para encender cada bomba. El mtodo EncenderTodasLasBombas itera a
travs del ArrayList e invoca al delegado en turno. Con delegados, el mtodo no
requiere verificar tipos de dato; siendo esto, mucho ms sencillo que la solucin
anterior.
public delegate void EncenderBombasCallback( );
public class MonitorTempNucleo2
{
public void Add(EncenderBombasCallback callback)
{
callbacks.Add(callback);
}
public void EncenderTodasLasBombas( )
{
foreach(EncenderBombasCallback callback in callbacks)
{
callback( );
}
}
private ArrayList callbacks = new ArrayList( );
}
class Ejemplo
{
public static void Main( )
{
MonitorTempNucleo2 ctm = new MonitorTempNucleo2( );
ControladorBombaElectrica ed1 =
new ControladorBombaElectrica( );
ctm.Add(
new EncenderBombasCallback(
74
ed1.IniciarEjecucionBombaElectrica)
);
ControladorBombaNeumatica pd1 =
new ControladorBombaNeumatica( );
ctm.Add(
new EncenderBombasCallback(pd1.Encender)
);
ctm.EncenderTodasLasBombas( );
}
}
Definir y Utilizar Eventos
En el ejemplo de la planta de energa nuclear, se emple el concepto de delegado
para resolver el problema de cmo encender los diferentes tipos de bombas en
forma genrica. Sin embargo, el componente de software que monitorea la
temperatura del ncleo del reactor es todava responsable de notificar a cada una
de las bombas en turno que necesitan encenderse. Una variante para resolver
este aspecto de notificacin mediante el uso de eventos.
Los eventos permiten a un objeto notificar asncronamente otro u otros objetos
que un cambio ha ocurrido en el sistema. Los otros objetos pueden registrar un
inters en un evento, y ser notificados cuando el evento ocurra.
Forma de Operacin de los Eventos
Los eventos permiten a los objetos registrar un inters en cambios en el sistema
hacia otros objeto s. En otras palabras, los eventos permiten a los objetos que
requieren ser notificados acerca de los cambios a otros objetos. Los eventos
utilizan el modelo Editor-Suscriptor.
Editor
Un editor es un objeto que mantiene su estado interno. Sin embargo, cuando su
estado cambia, puede disparar un evento para alertar a otros objetos interesados
acerca del cambio.
Suscriptor
Un suscriptor es un objeto que registra un inters en un evento. Es alertado
cuando los editores disparan un evento. Un evento puede tener 0 ms
suscriptores.
Los eventos pueden ser muy complejos. Para facilitar su entendimiento y
mantenimiento hay guas que lo permiten.
75
Programacin de Eventos
Los eventos utilizan delegados para invocar mtodos de objetos suscritos. Son
punto-multipunto. Esto significa que cuando un editor dispara un evento, puede
resultar que varios delegados son
invocados. Sin embargo, no puede
establecerse con precisin el orden en que los delegados son invocados. Si uno
de los delegados provoca una excepcin, podra colapsar el procesamiento de
rdenes, provocando que los delegados restantes por ejecutar no sean invocados.
Definir un Evento
Para definir un evento, un editor primero define un delegado y establece el evento
sobre
ste.
El
siguiente
cdigo
define
un
delegado
llamado
EncenderBombasCallback y un evento llamado SobreCalentamientoNucleo
que invoca al delegado EncenderBombasCallback cuando se dispara:
public delegate void EncenderBombasCallback( );
private event EncenderBombasCallback SobreCalentamiento Nucleo;
Suscribir a un evento
Al suscribir objetos se especifica un mtodo a ser llamado cuando un evento se
dispara. Si el evento no ha sido instanciado, al suscribir objetos se especifica un
delegado que hace referencia al mtodo cuando se crea el evento. Si el evento
existe, al suscribir objetos se agrega un delegado que invoca al mtodo cuando el
evento se dispara.
Por ejemplo, en el escenario de la estacin de potencia, se crean dos
controladores
de
bombas
y
tenerlos
suscritos
en
el
evento
SobreCalentamientoNucleo:
ControladorBombaElectrica ed1 = new ControladorBombaElectrica( );
ControladorBombaNeumatica pd1 = new ControladorBombaNeumatica( );
...
SobreCalentamientoNucleo = new EncenderBombasCallback(
ed1.IniciarEjecucionBombaElectrica);
SobreCalentamientoNucleo += new EncenderBombasCallback(pd1.Encender);
Nota: Deben declararse los delegados (y mtodos) que son utilizados para suscribirse a un
evento como void. Esta restriccin no aplica cuando un delegado se utiliza sin un evento.
76
77
3.8 Multihilado
Ejercicio
1. Transcriba el siguiente cdigo y elabore pruebas de ejecucin
using System;
using System.Threading;
class Sum
{
public Sum(int op1, int op2)
{
Console.WriteLine("[Sum.Sum] Instantiated with " +
"values of {0} and {1}", op1, op2);
this.op1 = op1;
this.op2 = op2;
}
int op1;
int op2;
int result;
public int Result{ get { return result; } }
public void Add()
{
// Simulate work
Thread.Sleep(5000);
result = op1 + op2;
78
}
};
class ThreadData
{
static void Main()
{
Console.WriteLine("[Main] Instantiating the Sum " +
"object and passing it the values to add");
Sum sum = new Sum(6, 42);
Console.WriteLine("[Main] Starting a thread using " +
"a Sum delegate");
Thread thread = new Thread(new ThreadStart(sum.Add));
thread.Start();
// Here we're simulating doing some work before
// blocking on the Add method's completion.
Console.Write("[Main] Doing other work");
for (int i = 0; i < 10; i++)
{
Thread.Sleep(200);
Console.Write(".");
}
Console.WriteLine("\n[Main] Waiting for Add to finish");
thread.Join();
Console.WriteLine("[Main] The result is {0}",
sum.Result);
Console.ReadLine();
}
}
79
4. Fundamentos de UML
Ejercicio
1. Lee detalladamente el siguiente material que se encuentra divido en tres
secciones.
4.1 UML (Unified Modeling Language - Lenguaje Unificado de Modelado).
4.2. Diagramas de UML 1a. parte.
4.3. Diagramas de UML 2a. parte.
2. Con base a lo que leste, se hacen una serie de preguntas que debes
contestar con tus propias palabras y de manera individual al trmino de
cada seccin. El contenido del reporte debe cumplir con la siguiente rbrica
Rbrica para evaluar el cuestionario de investigacin individual
Mximo 9 puntos.
Contenido
del reporte
Total
Les da una
No responde
Responde con
Responde
respuesta clara
de manera
cierto detalle,
superficialmente
y fundamentada
completa a
pero no
y/o sin
en la
Respuestas todas las
fundamenta
fundamentos,
bibliografa
a las
preguntas y
todas sus
adems no
consultada,
preguntas no responde
respuestas o no
responde con
adems de
con sus
responde con
sus propias
responder con
propias
sus propias
palabras.
sus propias
palabras.
palabras.
palabras.
TOTAL
80
Material 1
UML (Unified Modeling Language)
1. Introduccin
81
82
Por qu modelamos?
La razn fundamental es que construimos modelos para comprender mejor el
sistema que estamos desarrollando.
A travs del modelado, conseguimos cuatro objetivos:
1. Ayudan a visualizar cmo es que queremos que sea un sistema.
2. Permiten especificar la estructura o el comportamiento de un sistema.
3. Proporcionan plantillas que nos guan en la construccin de un sistema.
4. Documentan las decisiones que hemos adoptado.
El modelado no es slo para los grandes sistemas. Incluso el equivalente un
software muy pequeo puede be neficiarse del modelado. Sin embargo, es
absolutamente cierto que, cuanto ms grande y complejo es el sistema, el
modelado se hace ms importante, por una simple razn:
Construimos modelos de sistemas complejos porque no podemos comprender el
sistema en su totalidad.
A travs del modelado, se reduce el problema que se est estudiando,
centrndose slo en un aspecto a la vez. Acometer un problema difcil dividindolo
en una serie de subproblemas ms pequeos que se pueden resolver.
El uso del modelado tiene una historia interesante en todas las disciplinas de
ingeniera. Esa experiencia sugiere cuatro principios bsicos de modelado:
1. La eleccin de qu modelos crear tiene una profunda influencia sobre cmo se
acomete un problema y cmo se da forma a una solucin.
2. Todo modelo puede ser expresado a diferentes niveles de precisin.
3. Los mejores modelos estn ligados a la realidad.
4. Un nico modelo no es suficiente. Cualquier sistema no trivial se aborda mejor
a travs de un pequeo conjunto de modelos casi independientes.
1.2. Modelado Orientado a Objetos
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
83
84
* Una regla del negocio es una expresin que define o restringe algn
aspecto estructural o dinmico de una organizacin.
2. UML
UML es un lenguaje para visualizar, especificar, construir y documentar los
artefactos de un sistema con gran cantidad de software.
2.1. UML es un lenguaje
Un lenguaje proporciona un vocabulario y las reglas para combinar palabras de
ese vocabulario con el objetivo de posibilitar la comunicacin. Un lenguaje de
modelado es un lenguaje cuyo vocabulario y reglas se centran en la
representacin conceptual y fsica de un sistema. Un lenguaje de modelado como
UML es por tanto un lenguaje estndar para los planos del software.
85
86
Requisitos.
Arquitectura.
Diseo.
Cdigo fuente.
Planificacin de proyectos.
Pruebas.
Prototipos.
Versiones.
Telecomunicaciones.
Transporte.
87
Comercio.
Electrnica mdica.
mbito cientfico.
88
3. Evolucin de UML
Existen algunas herramientas CASE que emplean UML que son Racional Rose
[1] y Visio [2].
89
4. Elementos de UML
Como lenguaje, UML tiene una sintaxis y una semntica bien definidas. La parte
ms visible de la sintaxis de UML es su notacin grfica.
4.1. Elementos
Elementos estructurales
Los elementos estructurales son los nombres de los modelos de UML. Estos
incluyen clases, interfaces, colaboraciones, casos de uso, clases activas,
componentes y nodos.
Elementos de comportamiento
90
Elementos de agrupacin
Elementos de anotacin
Los elementos de anotacin son las partes explicativas de los modelos de UML.
Estos incluyen las notas.
91
4.2. Relaciones
Dependencia
FIGURA 5. Dependencia.
Asociacin
FIGURA 6. Asociacin.
Agregacin
92
FIGURA 7. Agregacin.
Generalizacin
FIGURA 8. Generalizacin.
93
5. Modelos (Vistas)
94
Preguntas I
Responde las siguientes preguntas de forma individual y con tus propias palabras.
La Tarea debe cumplir con la rbrica indicada por el tutor.
1. Cul es el propsito de utilizar UML?
2. Qu es un modelo?
3. Por qu modelamos?
4. Cules son los objetivos del modelado?
5. Cules son los principios del modelado?
6. Por qu UML es considerado un lenguaje?
7. Por qu UML es considerado un lenguaje para visualizar?
8. Por qu UML es considerado un lenguaje para especificar?
9. Por qu UML es considerado un lenguaje para construir?
10. Por qu UML es considerado un lenguaje para documentar?
11. Dnde puede utilizarse UML?
12. Dibuje la simbologa que emplea UML para representar una clase, un objeto
y un componente?
13. Dibuje la simbologa que emplea UML para representar un paquete, una
asociacin, una agregacin y una dependencia?
14. Cules son las vistas que componen un modelo en UML y describa cada una
de ellas?
95
Material II
6. Diagramas en UML
Un diagrama es una representacin grfica de un conjunto de elementos,
visualizando la mayora de las veces como un grafo conexo de nodos (elementos)
y arcos (relaciones). Los diagramas se dibujan para visualizar un sistema de
diferentes perspectivas, de forma que un diagrama es una proyeccin de un
sistema. Para todos los sistemas, excepto los ms triviales, un diagrama
representa una vista resumida de los elementos que constituyen un sistema. Por
esta razn, UML incluye nueve de estos diagramas:
1. Diagrama de clases.
2. Diagrama de objetos.
3. Diagrama de casos de uso.
4. Diagrama de secuencia.
5. Diagrama de colaboracin.
6. Diagrama de estados (statechart).
7. Diagrama de actividades.
8. Diagrama de componentes.
9. Diagrama de despliegue.
Cuando se modelan sistemas reales, sea cual sea el dominio del problema se
puede dividir en dos partes: esttica y dinmica. Muchas veces se dibujan los
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
96
97
98
Documentacin
Uno de los problemas con el mantenimiento de la documentacin es que cuand o
un solo requerimiento cambia, este puede afectar muchos lugares en el texto de la
especificacin funcional. Por lo tanto, algunas veces el costo de la redundancia de
la informacin en una especificacin funcional puede ser muy alto, causando
problemas de mantenimiento significativos. La meta de los casos de uso y sus
relaciones es para administrar las descripciones textuales con una especificacin
funcional. Mediante la estructuracin los casos de uso y propiamente sus
relaciones, podemos crear especificaciones funcionales que nunca necesitan ser
cambiadas en mas de un lugar. Para proyectos muy grandes, esto puede ser una
ganancia significativa.
99
100
mensajes que pueden ser enviados entre ellos. Los diagramas de interaccin
cubren la vista dinmica de un sistema. Los diagramas de secuencia y de
colaboracin describen el flujo de los mensajes entre objetos, se enfocan en el
orden en que los mensajes son enviados. Estos son muy tiles para la descripcin
del flujo procedural a travs de varios objetos. Tambin son muy tiles para
encontrar condiciones de competencia en los sistemas concurrentes. Los
diagramas de secuencia tienen dos caractersticas que los distinguen de los
diagramas de colaboracin.
En primer lugar, est la lnea de vida. La lnea de vida de un objeto es la lnea
discontinua vertical que representa la existencia de un objeto a lo largo de un
perodo de tiempo. La mayora de los objetos que aparecen en un diagrama de
interaccin existirn mientras dure la interaccin, as que los objetos se colocan en
la parte superior del diagrama, con sus lneas de vida dibujadas desde arriba
hasta abajo. Pueden crearse objetos durante la interaccin. Sus lneas de vida
comienzan con la recepcin del mensaje estereotipado como create. Los objetos
pueden destruirse durante la interaccin. Sus lneas de vida acaban con la
recepcin del mensaje estereotipado como destroy (adems se muestra la seal
visual de una gran X que marca el final de sus vidas). Vase el siguiente
diagrama.
101
102
La
secuencia
comienza
(descolgarAuricular)
al
cuando
objeto
un
Central.
Interlocutor
A
su
vez,
(a)
la
emite
una
Central
seal
llama
el
mensaje
descolgarAuricular.
Entonces,
el
objeto
Conversacin indica a la Central que debe conectar la llamada, y luego a los dos
objetos Interlocutor que pueden conectar, tras lo cual pueden intercambiar
informacin, como se indica en la nota adjunta.
103
FIGURA 11. Diagrama de secuencia que muestra el flujo de control de una llamada telefnica.
104
105
de
clases
muestra
un
conjunto
de
clases,
interfaces
106
otros
elementos
que
colaboran
para
proporcionar
un
107
108
Para cada mecanismo, hay que identificar las clases, interfaces y otros
Hay que mostrar el estado y valores de los atributos de cada uno de esos
Anlogamente, hay que mostrar los enlaces entre esos objetos, que
109
Como indica el diagrama, un objeto representa al propio robot (r, una instancia de
Robot), y r se encuentra actualmente en estado de movimiento. Este objeto tiene
un enlace con m, una instancia de Mundo, que representa una abstraccin del
modelo del mundo del robot. Este objeto tiene un enlace con un multiobjeto que
consiste en instancias de Elemento, que representa entidades que el robot ha
identificado, pero an no ha asignado en su vista del mundo. Estos elementos se
marcan como parte del estado global del robot.
En ese instante, m est enlazado a dos instancias de Area. Una de ellas (a2) se
muestra con sus propios enlaces a tres objetos Pared y un objeto Puerta. Cada
una de estas paredes est etiquetada con su anchura actual cada, y cada una se
muestra enlazada a sus paredes vecinas. Como sugiere este diagrama de objetos,
el robot ha reconocido el rea que lo contiene, que tiene paredes en tres lados y
una puerta en el cuarto.
110
Preguntas II
Responde las siguientes preguntas de forma individual y con tus propias palabras.
La Tarea debe cumplir con la rbrica indicada por el tutor.
15. Qu es un diagrama en UML?
16. Qu es y para qu se emplea un diagrama de casos de uso?
17. Describe el siguiente diagrama de casos de uso.
111
112
Material III
6.6. Diagrama de estados
Un diagrama de estados muestra una mquina de estados, que consta de
estados, transiciones, eventos y actividades. Los diagramas de estados cubren la
vista dinmica de un sistema. Son especialmente importantes en el modelado del
comportamiento de una interfaz, una clase o una colaboracin y resaltan el
comportamiento dirigido por eventos de un objeto, lo cual es especialmente til en
el modelado de sistemas reactivos.
113
114
Partiendo del estado inicial el fax est en estado de espera hasta que se enva o
se recibe info rmacin. Si se recibe un fax, se activa un sonido y empieza el
proceso de recepcin. Primero se realiza la conexin tanto del fax transmisor
como del receptor. Enseguida se lee el encabezado del fax, seguido por el cuerpo
del mensaje y se imprimen ambos. Si la recepcin fue exitosa, se enva un
mensaje de recibido al fax transmisor y se corta la conexin.
Si se quiere enviar un fax, se descuelga el auricular, se coloca el papel con el
mensaje en el rodillo, se marca el nmero del fax receptor, se enva la informacin
y se cuelga el auricular. Si el envo fue exitoso se recibe un mensaje de
confirmacin y se corta la conexin.
6.7. Diagrama de actividades
Un diagrama de actividades es un tipo especial de diagrama de estados que
muestra el flujo de actividades dentro de un sistema. Los diagramas de
actividades cubren la vista dinmica de un sistema. Son especialmente
115
Los diagramas de actividades no son slo importantes para modelar los aspectos
dinmicos de un sistema, sino tambin para construir sistemas ejecutables a
travs de ingeniera directa e inversa.
Un diagrama de flujo muestra el flujo de actividades. Una actividad es una
ejecucin atmica en curso, dentro de una mquina de estados. Las actividades
producen finalmente alguna accin, que est compuesta de computadoras
atmicas ejecutables que producen un cambio en el estado del sistema o la
devolucin de un valor. Las acciones incluyen llamadas a otras operaciones, envo
116
117
Modelar bases de datos fsicas. Una base de datos fsica puede ser vista como
la realizacin concreta de un esquema, y que pertenece al mundo de los bits.
Los esquemas ofrecen un API para la informacin persistente; el modelo de
una base de datos fsica representa el almacenamiento de esa informacin en
las tablas de una base de datos relacional o las pginas de una base de datos
118
119
FIGURA 20. Diagrama de componentes de una BD que contiene la informacin de una Institucin
educativa.
120
121
122
Preguntas III
Responde las siguientes preguntas de forma individual y con tus propias palabras.
La Tarea debe cumplir con la rbrica indicada por el tutor.
24. Qu es y para qu se emplea un diagrama de estados?
25. Describe el siguiente diagrama de estados.
123
124
125
126
127
5.
Modelo de Diseo
Objetivos Especficos:
Escenario
128
Usuario
UsuarioID
Password
Cliente
(from Use Case View)
ClienteClave
Nombre
Domicilio
RFC
Telefono
DomicilioFiscal
CorreoElectronico
Estado
Cliente()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
BuscarPorRango()
BuscarPorNombre()
...
BuscarTodos()
SiguiienteClave()
Usuario()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Vendedor
(from Use Case View)
VendedorClave
Nombre
Estado
Vendedor()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
SiguienteClave()
Cajero
CajeroClave
Nombre
Estado
Cajero()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
SiguienteClave()
Factura
FacturaClave
PedidoClave
ClienteClave
VendedorClave
CajeroClave
FacturaDetalles
Fecha
FormaPagoClave
Subtotal
IVA
Total
Estado
Pedido
CarritoDeCompras
ClienteClave
VendedorClave
CarritoDetallles
Subtotal
IVA
Total
Carrito()
DarAltaPedido()
CalcularTotal()
PedidoClave
ClienteClave
VendedorClave
PedidoDetalles
Fecha
Subtotal
IVA
Total
Estado
Pedido()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
BuscarPorRango()
BuscarPorCliente()
...
Imprimir()
CalcularTotal()
SiguienteClave()
CalcularFlete()
Factura()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
BuscarPorRango()
BuscarPorPedido()
BuscarPorCliente()
Imprimir()
CalcularTotal()
CantidadEnLetra()
SiguienteClave()
CarritoDetalle
LineaNumero
Cantidad
ProductoClave
ProductoDescripcion
PrecioUnitario
Subtotal
CarritoDetalle()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
SiguienteLinea()
SalidaAlmacen
PedidoDetalle
Producto
PedidoClave
LineaNumero
Cantidad
ProductoClave
PrecioUnitario
Subtotal
ProductoClave
Descripcion
Precio
Estado
PedidoDetalle()
DarAlta()
Modificar()
Eliminar()
Seleccionar()
SiguienteLinea()
SalidaAlmacenDetalle
SalidaAlmacenClave
PedidoClave
Fecha
SalidaAlmacenDetalles
SalidaAlmacenClave
LineaNumero
Cantidad
ProductoClave
SalidaAlmacen()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
BuscarPorPedido()
BuscarPorFecha()
SiguienteClave()
Imprimir()
SalidaAlmacenDetalle()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
SiguienteLinea()
Producto()
DarAlta()
Modificar()
DarBaja()
Descatalogar()
Seleccionar()
Buscar()
SiguienteClave()
FormaPago
FormaPagoClave
Alias
Descripcion
FormaPago()
DarAlta()
Modificar()
DarBaja()
Seleccionar()
Buscar()
SiguienteClave()
FacturaDetalle
FacturaClave
LineaNumero
Cantidad
ProductoClave
PrecioUnitario
Subtotal
FacturaDetalle()
DarAlta()
Modificar()
Eliminar()
Seleccionar()
SiguienteLinea()
Inventario
ProductoClave
Cantidad
Inventario()
DarAlta()
Modificar()
DarBaja()
DarSalidaAProducto()
Seleccionar()
Buscar()
SurtirProductos()
Imprimir()
129
Escenario
: Usuario
: Cliente
: Producto
: CarritoDeCompras
: CarritoDetalle
Autenticar( )
Seleccionar( )
[Cliente No Existe] DarAlta( )
Buscar( )
Seleccionar( )
Carrito( )
CarritoDetalle( )
DarAlta( )
Buscar( )
Seleccionar( )
DarAlta( )
DarAltaPedido( )
130
: Usuario
: CarritoDeCompras
: Pedido
: PedidoDetalle
: Inventario
: Factura
DarAltaPedido( )
Pedido( )
*PedidoDetalle( )
DarAlta( )
SiguienteClave( )
CalcularFlete( )
CalcularTotal( )
DarAlta( )
SurtirProductos( )
Factura( )
DarAlta( )
: Pedido
: Inventario
: SalidaAlmacen
: SalidaAlmacenDetalle
SurtirProductos( )
SalidaAlmacen( )
SalidaAlmacenDetalle( )
DarAlta( )
DarSalidaAProducto( )
131
: Pedido
: Factura
: FacturaDetalle
: FormaPago
Factura( )
*FacturaDetalle( )
DarAlta( )
Seleccionar( )
SiguienteClave( )
CalcularTotal( )
CantidadEnLetra( )
DarAlta( )
Imprimir( )
132
ESCENARIO
PRODUCTO
Activo
Inactivo
Descatalogado
Baja
133
PEDIDO
Pendiente
Cancelado
Completado
FACTURA
Activa
Cancelada
134
Ejercicio
1. Interprete el diagrama dado por el escenario
2. Si el tutor se lo solicita, realice la programacin asociada al diagrama.
ESCENARIO
5: SiguienteClave( )
6: CalcularFlete( )
7: CalcularTotal( )
8: DarAlta( )
1: DarAltaPedido( )
: Usuario
2: Pedido( )
:
CarritoDeCompras
: Pedido
10: Factura( )
4: DarAlta( )
9: SurtirProductos( )
11: DarAlta( )
3: *PedidoDetalle( )
:
PedidoDetalle
: Inventario
: Factura
135
1: Autenticar( )
2: Seleccionar( )
: Usuario
: Cliente
4: Buscar( )
5: Seleccionar( )
9: Buscar( )
10: Seleccionar( )
12: DarAltaPedido( )
:
CarritoDeCompras
:
Producto
6: Carrito( )
7: CarritoDetalle( )
8: DarAlta( )
11: DarAlta( )
: CarritoDetalle
5: DarSalidaAProducto( )
: Inventario
: Pedido
1: SurtirProductos( )
4: DarAlta( )
2: SalidaAlmacen( )
3: SalidaAlmacenDetalle( )
: SalidaAlmacen
:
SalidaAlmacenDetalle
136
5: SiguienteClave( )
6: CalcularTotal( )
7: CantidadEnLetra( )
8: DarAlta( )
9: Imprimir( )
: Pedido
1: Factura( )
: Factura
3: DarAlta( )
4: Seleccionar( )
2: *FacturaDetalle( )
: FacturaDetalle
: FormaPago
137
Ejercicio
Interprete el diagrama dado p or el escenario. Modele el proceso de
venta y facturacin a travs de flujos de trabajo con diagramas de
actividad.
138
6.
Modelo
Distribucin
de
Implantacin
Objetivo Especfico:
139
140
141
componente contenga una sola clase y por tanto exponga una sola interfaz; pero
no siempre es as, un componente puede contener varias clases y por tanto
exponer varias interfaces.
142
143
144
145
146
147
148
149
150
Se cuenta con una forma de expresar las interfaces que implementa con
componente en cuestin.
151
152
En el ejemplo, se modela una red de rea local, los servidores dentro de sta y su
conexin a Internet. Todos estos elementos son modelados como nodos.
Modelo Paracurricular Desarrollador de Software 2004 V.1.0.0.
153
154
155
156
157
El rect ngulo frontal puede drsele el tratamiento como el utilizado en una clase u
objeto, por lo que pueden expresarse atributos y operaciones. La seccin de
Deploys es la cuarta seccin cuando esto se hace.
158
159