Comunidades Virtuales de Aprendizaje Caracteristicas.pptx
Equipo 1 UML y la Programacion
1. Instituto tecnológico superior de
villa la venta
CARRERA:
INGENIERÍA EN SISTEMAS COMPUTACIONALES
PROFESOR:
MARLENE MIJANGOS ROMERO
MATERIA:
FUNDAMENTOS DE SISTEMAS
TEMA:
EL UML Y LA PROGRAMACIÓN
NOMBRE DE LOS ALUMNOS:
ELIZABETH GARCIA JIMENEZ
ISAIAS OSORIO HERNANDEZ
GEIELY CORDOVA DE DIOS
3. ¿CÓMO UTILIZA UN PROGRAMADOR EL UML, COMO PARTE DEL
DURO TRABAJO COTIDIANO DE LA PROGRAMACIÓN?
Imaginemos un sistema de computo diseñado para reunir información
sobre los pacientes de un hospital .
Este sistemas simple permite que cualquiera pueda obtener la
información incluida en tales observaciones y agregar observaciones
nuevas.
Este es un ejemplo tan simple que no tiene mas que un solo caso de
uso , llamado “revisar y añadir observaciones sobre el paciente”.
preguntar por el ultimo ritmo cardiaco de un paciente
Preguntar por el grupo sanguíneo de un paciente
Actualizar el nivel del conciencia de un paciente
Poner al día el ritmo cardiaco de un paciente. El sistema marca el ritmo como
lento, normal o acelerado, de acuerdo con los intervalos interconstruidos en el
sistemas
4. El primer paso en le proceso es escoger un modelo conceptual
describa los conceptos de este dominio. No se refiere a trabajar con
el software; únicamente se interesa sabré como organizar los
conceptos que hay en los médicos y enfermeras. Comenzara con
un modelo que se basa con varios patrones analítico de fowler.
OBSERVACIÓN DEL PACIENTE : MODELO DE DOMINIO
Muestra el modelo de un dominio inicial para nuestro sistema
Comienza con los conceptos simples de cantidad, unidad e intervalo.
Cantidad representa un valor que tiene una dimensión
Ejemplo;
5. De tal forma que una medida de 1.8 metros para Martin
fowler se representaría como una instancia de mediación.
Asociada con esta medición esta la cantidad de 1.8 metros, el
tipo de fenómeno “altura” y el paciente llamado Martin fowler.
Los tipos de fenómenos representan las cosas que se
pueden medir, altura, peso, ritmo cardiaco,
A continuación veras un modelo de dominio de observación de
paciente
6. Tipo de fenómeno Fenómeno
*
0.1
1
*
Medición Observación Observación de
categoría
Cifra: Cantidad
categoría
medición
<<dinámica>
1
*
paciente
Cantidad unidad Intervalo
Cifra: Numero Superior: Magnitud
Unidad: Unidad Inferior :Magnitud
Figura 11.1: MODELO DE DOMINIO DE OBSERVACIÓN DE PACIENTE
7. La observación de que el tipo de sangre de Martin
fowler es O se representaría como una Categoría
de Observación cuyo fenómeno asociado es el “tipo
de sangre O “, este fenómeno esta vinculado al Tipo
de fenómeno “grupo sanguíneo”.
El siguiente diagrama nos muestra la observación
del paciente
8. Grupo sanguíneo
A: Fenómeno
Grupo sanguíneo:
Tipo de fenómeno
Altura:
Tipo de fenómeno
Grupo sanguíneo
O; fenómeno
Una Medición
Una Observación
cifra=1.8 metros
de categoría
Martin fowler;
paciente
figura 11.2: diagrama de objeto de observación de paciente
9. El diagrama nos muestra que podemos hacer que una
Observación sirva al definir que una medición de “90 latidos
por minuto” también puede ser una observación de categoría
cuyo fenómeno asociado es “ritmo cardiaco
Estos modelos conceptuales fueron construidos por un par de
médicos y una enfermera.
Para hacer el traslado a un programa orientado a objetos, para
manejar el cuadro conceptual del termino del software. Para
este problema escogimos el lenguaje de programación de
JAVA.
10. Un intervalo
Superior=80 Imp.
Inferior=60 Imp.
Un intervalo
superior = infinito
Inferior=80 Imp.
Ritmo cardiaco
Rápido:
fenómeno Ritmo cardiaco
normal; Fenómeno
Ritmo cardiaco:
Tipo de
Fenómeno
Medición y
observación de
categoría cifra=70
Imp.
Martin Fowler;
Paciente
11.3.-Diagrama del objeto de observación del paciente
11. El siguiente diagrama figura 11.4 refleja las modificaciones que hice
al modelo de dominio para tomar en cuenta algunos de los factores
asociados con un lenguaje de implementación.
Muestra las interfaces de las clases, en lugar de las clases misma.
El paciente necesita ver todas sus observaciones, determinar cuales
son las medidas del tipo fenómeno “ritmo cardiaco” y encontrar la
ultima cifra.
12. Tipo de Fenómeno 1 * Medición.
0.1
*
Fenómeno.
0.1 *
Observación
Intervalo: Intervalo
cantidad
*
1
Paciente
Figura 11.4 modelo de especificación de observación del paciente
13. La figura 11.5 muestra las muestra las operaciones que he añadido a
Paciente para representarlas.
Es necesario crear una nueva observación del fenómeno apropiado.
Al hacer esto, el usuario preferirá generalmente seleccionar un
fenómeno de una lista desplegable de cierta clase.
Esto se puede manejar asociando los objetos fenómeno con un tipo de
fenómeno en particular, en tanto que esta responsabilidad esta implícita
en la asociación entre dos.
14. Tipo de fenómeno 1 *
Medición
0.1
*
Fenómeno *
1 Observación
Intervalo: intervalo-
cantidad
*
1
paciente
ultimaCantidadDe(Tipo de fenómeno) :
cantidad fenomenoDe(tipo de fenómeno) :
fenómeno
Figura 11.5 operaciones de observación de pacientes
15. GENERACIÓN DE CÓDIGOS
Iniciaremos con el tipo de fenómeno y el fenómeno, ya
que ambos están estrechamente vinculados.
Lo primero que hay que considerar es la asociación entre
ambos: ya que ambas direcciones son valiosas y, en
ambos casos, son conceptos estrechamente vinculados .
Implementando la asociación con apuntadores en ambas
direcciones. Se hará una asociación inmutable, ya que se
trata de objetos que se establecen y luego se dejan solos,
no se modifican frecuentemente y cuando sucede podemos
crearlos de nuevo.
16. Ritmo cardiaca Ritmo cardiaco
Ritmo cardiaco :
Una Medición lento: Fenómeno normal: Fenómeno
Tipo de fenómeno
Encuentra el
fenómeno() Incluye (cantidad)
falso
Incluye (cantidad)
verdadero
Ritmo cardiaco
normal
Figura 11.6 diagrama de secuencia de observación del paciente
17. Algunas personas tienen problemas con los vínculos de doble
sentido,
Veamos algunas declaraciones.
19. La operación persist() almacena el tipo de fenómeno
(phenomenonType) en un objeto de registro, de modo que se pueda
volver a tomarlo después con un método estadístico get().
A continuación, Ingreso el código que añade observaciones a un
paciente.
Hago que el paciente se cuelgue de un conjunto de observaciones,
ya que las observaciones se usan en el contexto de un paciente
import java.io.*;
import javax.swing.JOptionPane;
public class observation{
public class observation extends DomainObjecto{
public observacion(phenomenon relevantphenomenon,
patient patient, Date whenObserved) {
-phenomenon = relevantphenomenon;
patient.ObservationsAdd (this);
_whenObserved = whenObserved;
};
20. private Phenomenon _phenomenon;
privete Date _whenObserved;
}
{
public class patient extends DomainObject {
public patient (String name) {
super (name);
};
void observationsAdd (Observation newObs){
_observations.addElemt (newObs);
};
private vector _observations = new vector ();
}
21. con el programa anterior podemos crear las observaciones.
new patient ("Adams").persiste();
new Observation (phenomenonType.get ("gender").
phenomenonNamed ("male"), patient.get ("Adams"),
new Date (96,3,1));
class phenomenontype {
public phenomenon phenomenonNamed (string neme){
Enumeration e = phenomena ();
while (e.hasMoreElements ())}
{
phenomenos each = (phenomnon) e.nextElement()
if (each.name() == name)
return each;
};
return null;
}
}
}
}
22. Después creamos las observaciones, necesitamos encontrar el fenómeno
Mas reciente
class patient
public phenomenonOf
(phenomenonType phenomenonType)
{
retur (latestObservation (phenomenonType) ==
null ? new Nullphenomenon() :
latestObservation (phenomenonType).phenomenon());
}
private Observation
latestObservation (PhenomenonType value) {
return latestObservationIn (observationsOf (value) );
}
private Enumeration
observationsOf (phenomenonType value) {
vector result = new vector ();
Enumeration e = observations ();
while (e.hasMoreElements ())
{
23. observation each = (observation) e.nextElement();
if (each. phenomenonType () == value)
result.addElement (each);
};
return result.elements ();
}
private observation latestObservationIn
(Enumeration observationEnum) {
if (!observation Enum.hasMoreElements () }
return null;
observation result =
(odservation) observationEnum.nextElement ();
if (!observationEnum.hasMoreElements ())
return result;
do
24. {
observation each =
(observation) observationEnum.nextElement ();
if (each.whenObserved ().
after (result.whenObserved () ) )
result = each:
}
while (observationEnum.hasMoreElements () );
return result;
}
class observation
public phenomenonType phenomenonType () {
retur _phenomenon.phenomononType ();
}
25. Observa este diagrama podemos ver que la única diferencia
entre Medición (Measurement) y Observacion (Observation) es
que la Medición tiene una cantidad. Podríamos eliminar la clase
Medición del modelo de especificación permitido que cualquier
observacion tenga una cantidad (potencialmente null)
Primero necesitamos añadir una llamada de método al constructor de
medición.
class measurement
public Measurement (Quantity amount),
phenomenonType PhenomenonType,
patient patient, Date whenObserved)
initialize (ptient,whenObserved);
_amount = amount;
_phenomenonType = phenomenonType;
_phenomenon = calculatephenomenonFor (_amount);
26. Tipo de fenómeno 1 Medición
Cifra: Cantidad
cadena
0.1
0.1
*
Observación
Fenómeno
Marca de tiempo
Intervelo:Intervalo *
0.1
cantidad
*
1
paciente
ultimaCantidadDe(Tipo de fenómeno):
Cantidad fenomenoDe(Tipo de fenómeno):
fenómeno
27. Esto solicita cada fenómeno a su vez
Class measurement
public phenomenon calculatephenomenonfor (Quantity arg)
{
retur _phenomenonType _phenomenonIncluding (arg);
}
Esto solicita cada fenómeno a su vez.
class phenomenonType
public phenomenon phenomenonIncludig (Quantity arg) {
enumeration e = phenomena ();
while (e. hasMoreElements ())
{
phenomenon each = (phenomenon) e.nextElement();
if (each. includes (arg))
return each;
};
28. return null;
}
class phenomenon
public boolen includes (Quantity arg)}
retur (_range == null ? false:_range.includes (arg));
}
}
El código con naturalidad del diagrama de secuencia.
Este es un ejemplo de como utilizar UML con un
lenguaje de programación.
Un diseño con un diagrama de clases y con un
diagrama de interacción le puede ayudar a poner en
orden sus pensamientos y a facilitarle la codificación
29. Biografía
UML
GOTA A GOTA
MARTIN FOWLER
CON KENDALL SCOTT
ACTUALIZADO PARA CUBRIR
LA VERSION 1,2 OMG UML standard