Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pgina 1 de 154
Pgina 2 de 154
Saludos.
Pgina 3 de 154
Pgina 4 de 154
Pgina 5 de 154
Pgina 6 de 154
Pgina 8 de 154
Pgina 10 de 154
Pgina 12 de 154
1
http://es.wikipedia.org/wiki/Metodolog%C3%ADa
Pgina 13 de 154
Anlisis de Sistemas.
Diseo del sistema.
Diseo de los objetos.
Implementacin.
Pgina 14 de 154
Pgina 15 de 154
Pgina 16 de 154
Pgina 17 de 154
Pgina 18 de 154
Pgina 19 de 154
Pgina 21 de 154
Pgina 22 de 154
2
http://es.wikipedia.org/wiki/Jeanne_Calment
Pgina 23 de 154
Entrada Salida
Medio ambiente
Sistema 2
Pgina 24 de 154
Pgina 25 de 154
3
UML y Patrones, Capitulo 18. Craig Larman. Prentice Hall.
4
http://es.wikipedia.org/wiki/Patr%C3%B3n_de_dise%C3%B1o
Pgina 27 de 154
5
Se opt por mantener el nombre del patrn tal cual como fue definido para evitar la confusin al leer otros apuntes.
Pgina 28 de 154
Pgina 29 de 154
Pgina 30 de 154
Pgina 31 de 154
1) 22 jugadores
2) Pelota
3) Marcador
4) arbitro
Jugador
Pelota
Marcador
arbitro
Jugador
Dorsal (nmero de la camiseta)
Nombre
Posicin
Goles anotados
Pases dados
Recuperaciones
Pie con que juega
Pgina 33 de 154
Marcador
Goles del local
Goles del visita
Arbitro
Nacionalidad
Jugador
Dar pase
Hacer gol
Recuperar el baln
Pelota
Rodar
Rebotar
Arbitro
Dar tarjeta amarilla
Pgina 34 de 154
Definicin de UML
UML, cuya sigla significa lenguaje unificado de modelado, es un
lenguaje visual (basado en diagramas), que nos sirve para
visualizar y documentar el software que deseamos construir y
colaborar con la documentacin de todo el conocimiento de los
sistemas que deseamos construir, existen en UML distintos tipos
de diagramas, el objetivo de cada uno de ellos es presentar de
distintos puntos de vista una parte de un sistema, esto quiere
decir que por ejemplo una misma situacin puede ser diagramada
(dibujada) varias veces y con ms de un tipo de diagrama, donde
cada uno de ellos nos entrega un enfoque de la misma situacin
pero resaltando factores como el tiempo o el orden en el que
ocurren, sin embargo uno de los mayores beneficios es
proporcionar a todas las partes integrantes del equipo un lenguaje
comn, UML consta de una semntica y un conjunto de notaciones
que hacen que todos leamos y entendamos lo mismo de un
diagrama UML.
Fase de inicio
Fase de elaboracin
Fase de construccin
Fase de transicin
Pgina 37 de 154
6
Se entiende por contexto del negocio al contexto del problema a analizar, se trata de una actividad cualquiera que no
necesariamente tiene lucro de por medio.
Pgina 38 de 154
Pgina 39 de 154
Diagrama de clases
En el paradigma de programacin orientada a objeto (POO) todos
los componentes de un software son llamados objetos, por
ejemplo, en un software que registra las notas de un curso algunos
objetos sern, el objeto nota, el curso, el alumno y la asignatura,
no te sientas mal por que se haya tratado al alumno como un
objeto, pero en orientacin a objeto todo lo construido en un
software recibe esa denominacin, cada uno de estos objetos tiene
un conjunto de caractersticas (atributos), estados y
comportamientos que debemos conocer con anticipacin antes de
construir el software, con el fin de no cometer errores, de esta
forma lo ms adecuado es generar un plano, que indique qu
atributos, estados y comportamientos tienen cada uno (acciones
que realizan), a este plano es el que en informtica conocemos
como clase, donde tendremos que crear una clase para cada
objeto que deseamos construir, al conjunto de todas las clases se
le denomina diagrama de clases.
Una vez todas las clases han sido construidas debemos proseguir
con el paso nmero dos, el cual identificamos las asociaciones que
existen entre ellos, por ejemplo, en el ejemplo anterior una
asignatura puede contener de cero a muchos cursos (o secciones)
y cada curso puede tener entre 15 (el mnimo) y hasta 34 (el
mximo) alumnos, a su vez un alumno puede tener desde 3 a 8
notas, de aqu se desprenden dos conceptos, el primero llamado
asociacin que es la vinculacin de dos o ms clases y la
multiplicidad, que dice con cuantos objetos se asociar.
Pgina 41 de 154
Pgina 42 de 154
Pgina 44 de 154
Asociaciones.
Un diagrama se dice que presenta las relaciones estticas entre las
clases con el fin de establecer qu clases se relacionarn y cual
ser su multiplicidad, en el caso anterior por ejemplo, el vehculo
no es lo nico que debemos considerar para que podamos decir
que construimos un software que permita gestionar una carrera,
as tambin tendremos que crear la clase pista con sus respectivos
atributos y comportamientos siguiendo la misma tcnica anterior,
pero si construyo ambos objetos a partir de estas clases serviran
por separado?, pues no si lo queremos realizar es una carrera, es
Pgina 45 de 154
Pgina 46 de 154
Pgina 47 de 154
Pgina 48 de 154
Pgina 49 de 154
Pgina 50 de 154
Pgina 51 de 154
Pgina 52 de 154
Pgina 53 de 154
Pgina 54 de 154
Pgina 55 de 154
Pgina 56 de 154
Diagrama de despliegue.
El diagrama de despliegue es un diagrama que permite mostrar la
relacin fsica que tendrn los componentes de software y
hardware de un sistema, la mayora de los programas de hoy
estn distribuidos en ms de un computador, un buen ejemplo es
el Windows Live Messenger o Gtalk, estos software presentan ante
el usuario una ventana para que stos puedan escribir un mensaje
y enviarlo a otros usuarios, pero has pensado que sucede al
presionar el botn enviar?, pues al hacerlo los datos son tomados
y son enviados a otra aplicacin, la cual posiblemente est incluso
en otro pas, este software es el encargado por medio de una
interfaz de recibir tu mensaje, ubicar al destinatario y envirselo
para que lo pueda leer. Como puedes ver la aplicacin que instalas
en tu computador de poco servira sin la otra, la cual es la que
hace posible que cientos de miles de personas se comuniquen, ese
equipo que presta el servicio de comunicar se le denomina
Pgina 57 de 154
Pgina 58 de 154
Pgina 60 de 154
Pgina 61 de 154
Actor1
Pgina 62 de 154
Agregar Contacto
Buscar contacto
Actor1
Pgina 63 de 154
Pgina 65 de 154
Diagrama de actividad.
Este diagrama es muy similar al diagrama de mquinas de estado,
la diferencia principal es que en el diagrama de actividad no
muestra los estados de los objetos si no que modela cmputos y
flujos de trabajo, especificando el orden en el que se llevan a cabo,
adems se asume que no existen interrupciones externas para
dichos flujos, de ser as ser mejor modelar utilizando el diagrama
de maquina de estados visto previamente.
Pgina 66 de 154
Pgina 67 de 154
Diagramas de Interaccin.
Diagrama de secuencias.
El diagrama de secuencia es un diagrama que muestra la forma en
la que interactan los objetos dentro de un software agregando el
factor tiempo, de esta forma se puede visualizar el orden en el que
se ejecutan las llamadas en forma ordenada a partir de una
peticin, la mayora de las veces con un diagrama de caso de uso
es suficiente para comprender como interactan las partes, sin
embargo hay algunos casos en los que el proceso puede ser ms
complejo o requiera una explicacin mayor, es por ello que el
diagrama de secuencias viene casi siempre a partir de un caso de
uso especifico.
Pgina 68 de 154
Diagrama de tiempo.
Este diagrama permite mostrar el cambio de estado o valor de los
elementos a travs del tiempo, prcticamente todos los objetos
durante su vida van cambiando sus valores o estados y muchas
veces estos cambios son producidos por factor que tiene relacin
con el tiempo, antes de continuar es bueno aclarar que el estado
la mayora de las veces tambin produce un cambio en el
valor del objeto, por ejemplo, si tienes un termmetro digital,
Pgina 71 de 154
Con este diagrama puedes mostrar los cambios de estado por los
que pasa un objeto a travs del tiempo, un ejemplo sencillo es el
funcionamiento de una lavadora, ya que, las lavadoras
actualmente se encargan de pasar por varios procesos, determina
el peso de la ropa, llena el tambor con agua, lava, enjuaga y
centrifuga, este proceso por ejemplo esta definido en funcin del
tiempo, para diagramar esto, utilizaremos un grafico con
coordenadas X e Y, donde el eje X representa el tiempo e Y los
estados, as como muestra el siguiente figura:
Pgina 72 de 154
Tcnicas de captura de
requerimientos.
Por lo general las personas que hacemos software nos encanta, es
un entretenido reto que se lleva en conjunto con un equipo de
trabajo, en el cual ponemos todo nuestro esfuerzo en construir un
software que utilice datos provenientes de nuestros clientes, los
procese para luego entregar informacin relevante para ellos, la
cual por lo general va agrupada y ordenada segn ciertos criterios,
sin embargo muchos software tienen defectos y cuando digo esto
no me refiero en particular a que cada cierto rato muestren un
mensaje de error o produzcan una cada en el rendimiento de
nuestro equipo, sino que, muchos software que nacen de una
necesidad del cliente pero que no cumplen con lo que el cliente ha
solicitado, veamos el siguiente ejemplo para ilustrar el concepto,
supongamos que hoy te regalar el auto de tus sueos y lo mejor
de todo es que el vehculo ser como tu lo especifiques, como
muchos que lean este libro sus requerimientos sern mas o menos
as:
Pgina 75 de 154
Pgina 76 de 154
Pgina 77 de 154
Pgina 78 de 154
Entrevista.
La entrevista es posiblemente la forma ms natural y rpida de
comunicacin con una persona, en informtica la entrevista debe ir
enfocada a aquellas personas que ms conocen sobre los procesos
de la organizacin y a las personas que utilizarn el sistema, estas
entrevistas pueden ser individuales o grupales y se recomienda
hacerlas cada cierto tiempo, ya que vers que los requerimientos
van a ir cambiando producto de la falta de entendimiento que los
clientes suelen tener sobre sus propios procesos.
Encuesta.
Las encuestas son documentos que tienen un conjunto de
preguntas relevantes del sistema que se desea construir, de esta
forma podemos obtener informacin ms precisa sobre los puntos
sobre los cuales necesitamos una respuesta cerrada, las preguntas
se hacen de forma verbal al encuestado, siendo el mismo
encargado de marcar la respuesta segn lo que el encuestado
haya dado como respuestas, las encuestas puede llevar preguntas
abiertas o de seleccin mltiple, en la que los encuestados debern
seleccionar una alternativa, esta tcnica es buena cuando lo que
Pgina 79 de 154
Observacin directa.
Esta tcnica consiste en que el encargado de la toma de
requerimientos observa las personas mientras realizan su trabajo,
de esta forma se conoce cules son los procedimientos que se
realizan, quines son los encargados de hacerlos y cul es el orden
en el que se ejecuta.
Definicin de actividades.
Una vez los requerimientos han sido extrados del cliente
pasaremos a una nueva etapa en la cual tomaremos cada uno de
los procesos del cliente y lo dividiremos en actividades ms
pequeas, las cuales juntas y en algn orden en particular dan
como resultado alguna accin que deseamos convertir en software
ms adelante, por ejemplo, si existe un proceso en el que los
clientes compran utilizando el mtodo tradicional y esto lo quieres
llevar a un servicio de pago por internet, debes determinar todas
las actividades que hay que realizar para lograrlo, en este caso las
actividades a realizar comienzan por construir una pgina web con
un catalogo de productos donde el usuario pueda especificar el o
los productos que quiera comprar, luego una interfaz de pago que
permita ingresar el nmero de la tarjeta bancaria con la que se
desea realizar dicho pago, la informacin ingresada deber
enviarse al banco que corresponde, slo si esta habilitada y el
monto disponible para compra supera el valor del producto,
entonces se genera la venta, esta venta es registrada por el
Pgina 80 de 154
Pgina 82 de 154
Pgina 84 de 154
Pgina 85 de 154
Las flechas representan los flujos de datos, los cuales viajan entre
las entidades y los procesos y entre los procesos y los almacenes
de datos.
Pgina 86 de 154
Entidad NO SI NO
Proceso SI SI SI
Almacn NO SI NO
Pgina 87 de 154
Pgina 88 de 154
Pgina 89 de 154
Pgina 90 de 154
Pgina 92 de 154
Pgina 93 de 154
Pgina 94 de 154
Pgina 95 de 154
Pgina 96 de 154
Pgina 97 de 154
Pgina 98 de 154
Como ya sabes que hay que pensar debes hacer que tu cerebro te
obedezca e intente resolver problemas por ti. Para esto lo primero
que debes hacer es recopilar toda la informacin respecto a como
funcionan los sistemas que ests analizando y luego generar un
diagrama que te ayude a ver si lo que pensaste se ajusta o no a la
realidad.
Captura de datos.
Almacenamiento.
Procesamiento.
Entregar de resultados.
Actores.
Los actores se definen en un diagrama de casos de uso como entes
externos que interactan con funciones del sistema. De esta forma
un actor no necesariamente es una persona, puede ser una
entidad o una idea. Lo que sucede es que cuando las
organizaciones son complejas, el software que da soporte a la
organizacin tambin lo es, y ya no hablamos de personas usando
el software sino que de departamentos (que finalmente son un
conjunto de personas), pero que no tienen un rostro visible. En
estos casos el actor no es una persona, sino que una
representacin de varias personas o de ninguna en particular.
Casos de uso.
Un caso de uso se define como una funcin que tiene o debe tener
el sistema y que es utilizada por un usuario. De esta forma los
casos de uso se transforman en las acciones que debe
implementar el sistema, recuerda que en el anlisis de casos de
uso, la vista desde la cual analizamos el problema es como
usuarios del sistema que deben cumplir una serie de tareas que
van asociadas a nuestro rol en un escenario especfico. De esta
forma si analizamos las tareas que debe realizar un vendedor para
poder vender algn artculo en una multitienda (fjate que el
problema se circunscribe a ese escenario en particular), este debe
poder consultar por los precios de los productos, vender uno o ms
De esta forma podemos definir que cada uno de los roles tiene
asociada una serie de tareas que debe realizar para poder aportar
su parte en el proceso. Por ejemplo el tcnico mecnico le podran
eventualmente corresponder realizar ms tareas que las definidas
(recibe las tareas realizadas). Utilizando esta misma lnea de
pensamiento, podemos identificar que existen varios actores
asociados a un rol en particular, en este caso por ejemplo pueden
existir varios clientes y varios mecnicos, adems si te fijas el
cliente puede no slo traer el vehculo, sino que adems en otro
contexto debe pagar por el servicio.
Comunicacin.
Es el tipo de relacin que se establece entre el usuario y el caso de
uso, se define con una lnea continua que une al actor y el caso de
uso.
Inclusin.
La relacin de inclusin nos permite mostrar la forma en que los
casos de uso se complementan con otros casos de uso a los cuales
incluyen para poder realizar una accin. Cuando el caso de uso
incluye a otro, el caso incluido sirve para complementar la accin
del primer caso de uso, vale decir, sin el caos de uso incluido, el
caso de uso inicial no puede completar su tarea.
Flujo Normal.
La seccin del flujo normal pretende que definamos el flujo normal
de actividades que se pueden identificar en un caso de uso, este es
el camino feliz es decir el proceso en su estado ideal en donde
nada falla y todo est como queremos.
Post-condiciones.
Las post-condiciones con estados finales con los cuales termina el
caso de uso y que son obligatorios. Esto significa que el caso de
uso debe terminar su proceso con alguna de las condiciones
definidas en esta seccin.
Actores: Usuario/Administrador
Pre-condiciones:
Flujo Normal:
Post-condiciones:
Excepciones:
7
Ingeniera del Software: Un enfoque prctico, Roger S. Pressman, McGraw-Hill/Interamericana de Espaa, S.A.U. 2002,
ISBN 84-481-3214-9
8
El Lenguaje Unificado de Modelado. Manual de Referencia, Pearson Educacin, S.A. 2000, ISBN 84-7829-037-0
Muy bien, ahora te debes estar preguntando Y que paso con los
grficos del diagrama?, ahora vamos a eso, en UML, la
representacin de las clases, sus atributos y sus mtodos se
realiza mediante una representacin grfica que muestra un
rectngulo dividido en 3 partes, la superior contiene el nombre de
Otra cosa que debes tener presente es que los atributos y los
mtodos poseen niveles de visibilidad que determinan si un
atributo o mtodo es visible desde fuera de la clase, esto es lo que
se denomina como la interfaz de una clase, es decir el conjunto de
atributos y de mtodos con los cuales el objeto se comunica con su
ambiente, el siguiente ejemplo lo puede clarificar.
Nombre_atributo: tipo_dato=valor_inicial
-energiaZombi: Integer=100;
Pgina 135 de 154
NombreMetodo(atributo:tipoDato)
+acelerar(fuerza:Integer)
Liga.
Partidos.
Goles.
Equipo.
Los objetos deben colaborar unos con otros para solicitar a otras
clases que realicen operaciones que ellos por si solos no pueden
realizar, ahora te preguntars Por qu no puedo tener un solo
objeto que haga todo?, la respuesta es simple, los objetos
compuestos son difciles de arreglar cuando estn malos y adems
son muy costosos de producir, piensa en lo siguiente, si se te echa
a perder el monitor de tu computador, cambias el computador
completo o slo el monitor? Si te fijas en este caso, es ms barato
Pgina 144 de 154
Asociacin.
La relacin de asociacin, se define cuando una clase se asocia con
otra para lograr un objetivo, este tipo de relacin es el ms bsico,
en este caso cada una de las clases tiene una instancia de la otra.
El conector puede incluir el nombre del rol en cada uno de los
Pgina 146 de 154
Asociacin calificativa.
Este tipo de asociacin est asociada a la relacin del tipo uno es a
muchos, en el cual se requiere explicitar algn atributo que
definir un identificador nico para una clase y de esta forma
poder diferenciar cada uno de los objetos de la relacin, por
ejemplo cada uno de los buses para un recorrido del Transantiago 9
9
http://es.wikipedia.org/wiki/Transantiago
Pgina 149 de 154
Asociacin reflexiva.
La asociacin reflexiva se da cuando la relacin se establece entre
elementos del mismo tipo, es decir la clase se relaciona consigo
misma, pudiendo establecer el rol para clarificar la relacin, por
ejemplo supongamos que necesitamos establecer la relacin
existente entre los trabajadores sabiendo que uno es el jefe y el
resto son empleados, si te fijas todos son empleados, pero su rol
los diferencia.
Asociacin.
Existen algunos tipos especiales de asociacin que veremos a
continuacin, estos tipos especiales permiten representar
asociaciones ms complejas.
Realizacin.
Una relacin de realizacin esta dada por una clase y una interfaz.
En orientacin a objetos, una clase de interfaz es una clase que
define el comportamiento de una clase pero jams la implementa,
esto que parece tan complejo lo podemos definir como una clase
que es un cascaron sin cdigo por dentro. Te estars preguntando
Y para que quiero tener una clase que no hace nada y que no
tiene cdigo?, la respuesta no es simple pero lo podemos explicar
mediante un ejemplo.
Supongamos que estas creando un video juego y debes crear las
clases de tu juego, si te fijas los objetos de la pantalla se estn
moviendo, pero la nave se mueve en funcin de las teclas que
presiones en el teclado o de los botones del joystick que presiones,
mientras que las balas se desplazan siguiendo una trayectoria que
no se puede cambiar, ambos objetos se desplazan pero lo hacen
de forma distinta, por lo tanto como ambos poseen el mismo
mtodo (mover) pero los dos lo hacen de forma distinta entonces
se crea una clase de interfaz que posea el mtodo y como este
mtodo o comportamiento no se programa, le da la libertad a las
clases que heredan de esta clase de interfaz a que lo implementen
de forma independiente.