Вы находитесь на странице: 1из 24

Tecnolgico de Costa Rica

Escuela de Computacin

Programacin orientada a objetos




Profesor: Mauricio Avils Cisneros


Estudiantes:
Joel Barrantes Garro
Edisson Lpez Daz


Martes 27 de mayo
I Semestre del 2014

1
NDICE

Introduccin..3
Diagramadecasosdeuso.4
Descripcindeloscasosdeuso5
Diagramadeclases19
Diagramadeactividad...20
Diagramadesecuencia
Recomendaciones..23
Conclusiones....23
Referencias..24

2
INTRODUCCIN

En este proyecto se describi un modelo computacional basado en UML. El


problema a resolver consisti en una variante del juego ajedrez, llamada El maharaj y
los cipayos. Esta variante se diferencia del ajedrez comn en el sentido que el ejrcito de
las piezas negras tienen la formacin comn del ajedrez (ocho peones, dos torres, dos
caballos, dos alfiles, una reina y un rey) y el ejrcito de los blancos esta compuesto por
una sola pieza, llamada el maharaj, el cual se puede mover como una reina o como un
caballo.

En el proyecto se incluyen varios diagramas que ayudan a la comprensin del modelo


desarrollado. Los diagramas han sido desarrollados usando UML . Los diagramas
incluidos son: diagrama de clases, diagrama de casos de uso ( junto con la descripcin
de cada caso de uso), diagrama de secuencia de los casos de uso y diagrama de
actividaddelosmtodosdelasclasesusadas.

Todo el proyecto formar parte de esta documentacin, donde se podr distinguir y


analizarcadaparteporseparado.

Finalmente, en las ltimas pginas de este texto, se mostrarn algunas recomendaciones,


que ayudarn a personas que intenten desarrollar y resolver un problema similar, y se
mostrarntambinlasconclusionesqueobtuvimostraseldesarrollodelproyecto.

3
DiagramadeCasosdeUso

4
Descripciondecasosdeuso
SetMaharaja
Objetivo Situar el maharaja en una posicin
disponibleeneltablero
Precondiciones El maharaja no ha sido colocado en el
tableroan.
Condicindeterminacinexitosa El maharaja ha sido colocado en una
casilladeltablero
Condicindeterminacinfallida No fue posible colocar el maharaja en una
posicindeterminadadeltablero
Actoresprincipales Player1
Actoressecundarios Ninguno
Desencadenador El player1 proceder a colocar el
maharajaeneltablero
Flujoprincipal 1. El player1 indica la posicin en
dondecolocarelmaharaja.
2. Se verifica que la posicion no este
ocupada por alguna pieza del
ejercitonegro.
3. se coloca el maharaja en tablero en
laposicionindicada.
4. se envia un mensaje al player1 para
indicarle que el maharja ha sido
colocadoenlaposicionindicada
Extensiones 2.1. El sistema determina que la
posicion indicada esta ocupada por
otrapieza
2.2. El sistema rechaza la solicitud
delplayer1
2.3. Se envia un mensaje al player1
indicando que no fue posible
colocar el maharaja en la posicion
indicada

5
MoverMaharaja
Objetivo Desplazar el maharaja a una posicion
diferenteeneltablero
Precondiciones Eselturnodelplayer1
Condicindeterminacinexitosa El maharaja ha sido movido a una casilla
diferentedeltablero
Condicindeterminacinfallida No fue posible mover el maharaja a otra
casilla
Actoresprincipales Player1
Actoressecundarios Player2
Desencadenador El player1 solicita mover el maharaja para
haceralgunajugadaypasardeturno
Flujoprincipal 1. El player1 indica la posicin en
dondemoverelmaharaja.
2. Se verifica si la casilla destino esta
siendoocupadaporotrapieza
3. Se mueve el maharaja a la posicin
indicada.
4. include::Evaluarjaquealiado
5. Include::Evaluarjaqueenemigo
6. Se enva un mensaje al player1
para indicarle que el maharaja ha
sidomovidoenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player1 que realizo un
movimientoinvalido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
2.1. include::CapturarPieza
4.1. El movimiento es rechazado por
elsistema
4.2. Se solicita al player1 realizar
nuevamenteelmovimiento
5.1. Se enva un mensaje al player2
indicando que esta en estado de
jaque
6
MoverTorre
Objetivo Desplazar una torre a una posicion
diferenteeneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa La torre indicada ha sido movida a una
casilladiferentedeltablero
Condicindeterminacinfallida Nofueposiblemoverlatorreaotracasilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover una torre para
haceralgunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverlatorre.
2. Se mueve la torre a la posicin
indicada.
3. include::Evaluarjaquealiado
4. Include::Evaluarjaqueenemigo
5. Se enva un mensaje al player2
para indicarle que la torre ha sido
movidaenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.1. Se enva un mensaje al player1
indicando que esta en estado de
jaque

7
MoverCaballo
Objetivo Desplazar un caballo a una posicion
diferenteeneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa El caballo indicado ha sido movida a una
casilladiferentedeltablero
Condicindeterminacinfallida No fue posible mover el caballo a otra
casilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover un caballo para
haceralgunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverelcaballo.
2. Se mueve el caballo a la posicin
indicada.
3. include::Evaluarjaquealiado
4. Include::Evaluarjaqueenemigo
5. Se enva un mensaje al player2
para indicarle que el caballo ha
sidomovidoenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.1. Se enva un mensaje al player1
indicando que esta en estado de
jaque

8
MoverAlfil
Objetivo Desplazar un alfil a una posicion diferente
eneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa el alfil indicado ha sido movido a una
casilladiferentedeltablero
Condicindeterminacinfallida Nofueposiblemoverelalfilaotracasilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover el alfil para hacer
algunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverelalfil.
2. Se mueve el alfil a la posicin
indicada.
3. include::Evaluarjaquealiado
4. Include::Evaluarjaqueenemigo
5. Se enva un mensaje al player2
para indicarle que el alfil ha sido
movidoenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.1. Se enva un mensaje al player1
indicando que esta en estado de
jaque

9
MoverPeon
Objetivo Desplazar un peon a una posicion
diferenteeneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa el peon indicado ha sido movido a una
casilladiferentedeltablero
Condicindeterminacinfallida Nofueposiblemoverelpeonaotracasilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover un peon para
haceralgunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverelpeon.
2. Se verifica si la casilla destino esta
siendoocupadaporelmaharaja
3. Se mueve el peon a la posicin
indicada.
4. include::Evaluarjaquealiado
5. Include::Evaluarjaqueenemigo
6. Se enva un mensaje al player2
para indicarle que el peon ha sido
movidoenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
2.1. El sistema rechaza el
movimiento.
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.2. Se enva un mensaje al player1
indicando que esta en estado de
jaque
10
MoverReina
Objetivo Desplazar la reina a una posicion diferente
eneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa la reina ha sido movida a una casilla
diferentedeltablero
Condicindeterminacinfallida Nofueposiblemoverlareinaaotracasilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover la reina para
haceralgunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverlareina.
2. Se mueve la reina a la posicin
indicada.
3. include::Evaluarjaquealiado
4. Include::Evaluarjaqueenemigo
5. Se enva un mensaje al player2
para indicarle que la reina ha sido
movidaenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.1. Se enva un mensaje al player1
indicando que esta en estado de
jaque

11
MoverRey
Objetivo Desplazar el rey a una posicion diferente
eneltablero
Precondiciones Eselturnodelplayer2
Condicindeterminacinexitosa el rey ha sido movido a una casilla
diferentedeltablero
Condicindeterminacinfallida Nofueposiblemoverelreyaotracasilla
Actoresprincipales Player2
Actoressecundarios Player1
Desencadenador El player2 solicita mover el rey para hacer
algunajugadaypasardeturno
Flujoprincipal 1. El player2 indica la posicin en
dondemoverelrey.
2. Se mueve el rey a la posicin
indicada.
3. include::Evaluarjaquealiado
4. Include::Evaluarjaqueenemigo
5. Se enva un mensaje al player2
para indicarle que el rey ha sido
movidoenlaposicinindicada
Extensiones 1.1. Se enva un mensaje de error
indicando al player2 que realiz un
movimientoinvlido
1.2. Se solicita al player2 realizar
nuevamenteelmovimiento
3.1. El movimiento es rechazado por
elsistema
3.2. Se solicita al player2 realizar
nuevamenteelmovimiento
4.1. Se enva un mensaje al player1
indicando que esta en estado de
jaque

12
EvaluarJaqueAliado

Objetivo Determinar si el ultimo movimiento puso a


sujugadorenjaque
Precondiciones Serealizoelmovimientodeunapieza
Condiciondeterminacionexitosa El movimiento no puso en jaque al jugador
querealizoelmovimiento
CondiciondeterminacionFallida El movimiento puso en jaque al jugador
querealizoelmovimiento
ActoresPrincipales Player1,Player2
ActoresSecundarios Ninguno
Desencadenador Un movimiento provoco que se evaluara el
estadodejaquealiado
Flujoprincipal 1. Se evala el rango de ataque de las
piezas del jugador que no realiz el
movimiento
2. Se comunica al jugador que realiz
el movimiento que la jugada no lo
pusoenjaque
3. Lajugadaseconsideravlida
Extensiones 1.1. Se le indica al jugador que la
jugadaquerealizlopusoenjaque
1.2. Lajugadaseconsiderainvlida

13
EvaluarJaqueContrincante

Objetivo Determinar si el ultimo movimiento puso a


eljugadorenemigoenjaque
Precondiciones Serealizoelmovimientodeunapieza
Condiciondeterminacionexitosa El movimiento puso en jaque al jugador
enemigo
CondiciondeterminacionFallida El movimiento no puso en jaque al jugador
enemigo
ActoresPrincipales Player1,Player2
ActoresSecundarios Ninguno
Desencadenador Un movimiento provoco que se evaluara el
estadodejaquecontrincante
Flujoprincipal 1. Se evala el rango de ataque de las
piezas del jugador realiz el
movimiento
2. Se comunica al jugador que realiz
el movimiento que la jugada puso
enjaquealenemigo
3. Lajugadaseconsideravlida
Extensiones 1.1. Se le indica al jugador enemigo
que la jugada no lo puso en estado
dejaque
1.2. el movimiento se considera
vlido.

14
CapturarPieza

Objetivo El maharaja eliminara una pieza del


ejercitonegro
Precondiciones EselturnodelPlayer1
Condiciondeterminacionexitosa El maharaja elimino la pieza que se
encontrabadondesequeriamover
Condiciondeterminacionfallida El maharaja no logro comerse ninguna
pieza
ActoresPrincipales Player1
ActoresSecundarios Player2
Desencadenador El maharaja intento moverse a una casilla
ocupadaporunapiezanegra
Flujoprincipal 1. La pieza que se encuentra en la
casilla destino del maharaja es
eliminada
2. include::evaluarjaqueAliado
3. include::evaluarjaqueEnemigo
4. La nueva ubicacion del maharaja es
la casilla ocupada por la pieza
eliminada
extensiones 2.1. La jugada es considerada
invalida
2.2. La pieza eliminada es
recuperada
2.3. Se solicita hacer otro
movimiento

15
AbandonarPartida

Objetivo Terminarlapartidaydeclararunganador
Precondiciones Haberempezadounapartida
Condiciondeterminacionexitosa La partida ha sido finalizada y se declara
unganador
Condiciondeterminacionfallida Lapartidanosepudofinalizar
ActoresPrincipales Player1,Player2
ActoresSecundarios Ninguno
Desencadenador Unjugadorsolicitabandonarlapartida
Flujoprincipal 1. El sistema reincia a los valores
antesdeempezarlapartida
2. El jugador que solicita abandonar la
partidaesdeclaradoperdedor
3. el jugador contrario es declarado
ganador
4. el sistema ofrece empezar otra
partida
extensiones

16
VerTablero

Objetivo Mostrar a los jugadores el estado actual


delapartida
Precondiciones haberempezadounapartida
Condiciondeterminacionexitosa el sistema muestra a los jugadores el
tablerodejuego
Condiciondeterminacionfallida El sistema no pudo mostrar el estado del
juegoasusjugadores
ActoresPrincipales Player1,Player2
ActoresSecundarios Ninguno
Desencadenador Unjugadorsolicitaverelestadodeljuego
FlujoPrincial 1. El sistema dibujara un tablero de
8x8
2. Las piezas del tablero se dibujaran
en las casillas correspondientes a
suposicion
3. El sistema indicara cual es el
jugador poseedor del turno
actualmente.
Extensiones

17
DeclararTablas

Objetivo Terminar una partida sin declarar un


ganador
Precondiciones Haberunapartidainiciada
Condiciondeterminacionexitosa La partida termino y los jugadores se
declaranempatados
Condiciondeterminacionfallida Noesposibleterminarlapartida
ActoresPrincipales Player1,Player2
ActoresSecundarios Ninguno
Desencadenador Un jugador solicita al otro jugador declarar
lapartidaempatada
Flujoprincipal 1. Un jugador solicita al sistema
declararunapartidacomotablas
2. El jugador contrario acepta las
condiciones
3. Los partida es declarada un
empate
4. El sistema reinicia los valores
predeterminados para poder iniciar
unapartidanueva.
Extensiones 2.1. El jugador contrario no acepta
lascondiciones
2.2. lapartidasiguesucurso

18
Diagramadeclases

19
DiagramadeactividadMoverpieza

20
DiagramadeactividadEvaluarJaque

21
DiagramadeActividadCrearPartida

22
CONCLUSIONES

Paramsfacilidadalmodelar,sepuedehacerusodesoftwareespecializadoen
modeladoUML,comovisualparadigm,starUML,entreotros

Elmodeladodeunproyectoconsumegranpartedeltiempoaunquenoloparezca.
Unmodelocompletoconsisteengrancantidaddediagramas,cadaunoconsu
gradodedificultad

Elmodeladodelproyectopuedeparecerintil,peroesnecesariounbuendiseo
parapoderllevaracabounproyectocongrancantidaddetrabajo,paraquesea
posibleidentificarlaspartesimportantes

RECOMENDACIONES

Alhacerundiagramadeclases,paramsfacilidadenelreconocimientodelas
clases,sepuedensubrayarlossustantivosdelenunciadoytratardemodelarel
diagramaenbaseaestossustantivos

Seocupaorganizarbieneltiempoylasactividadesparapoderlograrlosobjetivos
propuestosenunproyecto.Sinunabuenaorganizacin,eltrabajosepuedehacer
mslargodeloprevistoylasactividadesnopuedensercompletadas.
23
BIBLIOGRAFIA

Zapata,M.(2009).Diseodelcomportamiento:Diagramadeactividades[Internet].
Recuperadoel26deabrildel2014desde:
http://ocw.unizar.es/cienciasexperimentales/modelosmatematicosenbasesdedatos/u
ml/02UML_DiagramaActividades.pdf

ALTOVA(PginaOficial).DiagramasdesecuenciaUML[Internet].Recuperadoel26de
abrildel2014desde:http://www.altova.com/es/umodel/sequencediagrams.html

24

Вам также может понравиться