View
375
Download
2
Embed Size (px)
DESCRIPTION
Trabajo por Isaias, Geiely y Ely.
Citation preview
Instituto tecnológico superior de villa la
ventaCARRERA:
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 JIMENEZISAIAS OSORIO HERNANDEZGEIELY CORDOVA DE DIOS
EL UML Y LA PROGRAMACIÓN
¿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 pacientePreguntar por el grupo sanguíneo de un pacienteActualizar el nivel del conciencia de un pacientePoner 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
OBSERVACIÓN DEL PACIENTE : MODELO DE DOMINIO
Muestra el modelo de un dominio inicial para nuestro sistemaComienza con los conceptos simples de cantidad, unidad e intervalo. Cantidad representa un valor que tiene una dimensión Ejemplo;
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.
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
Tipo de fenómeno
Medición
Cantidad
Observación
paciente
unidad
Fenómeno
Observación de categoría
Intervalo
0.1
1
*
1
*
*
medición categoría<<dinámica>
Cifra: Numero Unidad: Unidad
Cifra: Cantidad
Superior: MagnitudInferior :Magnitud
Figura 11.1: MODELO DE DOMINIO DE OBSERVACIÓN DE PACIENTE
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
Altura:Tipo de fenómeno
Grupo sanguíneo:Tipo de fenómeno
Martin fowler;paciente
Una Observación de categoría
Grupo sanguíneo O; fenómeno
Grupo sanguíneo A: Fenómeno
Una Medición cifra=1.8 metros
figura 11.2: diagrama de objeto de observación de paciente
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.
Ritmo cardiaco normal; Fenómeno
Ritmo cardiacoRápido:fenómeno
Ritmo cardiaco:Tipo de Fenómeno
Un intervalo Superior=80 Imp.Inferior=60 Imp.
Martin Fowler;Paciente
Medición y observación de categoría cifra=70 Imp.
Un intervalo superior = infinitoInferior=80 Imp.
11.3.-Diagrama del objeto de observación del paciente
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.
Tipo de Fenómeno
Fenómeno.
Medición.
Observación
Paciente
0.1
1 *
*0.1
1
*
*
Intervalo: Intervalo cantidad
Figura 11.4 modelo de especificación de observación del paciente
La figura 11.5 muestra las muestra las operaciones que he añadido aPaciente 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.
Tipo de fenómeno
Fenómeno
paciente
Observación
Medición
Intervalo: intervalo- cantidad
ultimaCantidadDe(Tipo de fenómeno) : cantidad fenomenoDe(tipo de fenómeno) : fenómeno
1
1 *
*
*
0.1
1
*
Figura 11.5 operaciones de observación de pacientes
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.
Una Medición Ritmo cardiaco : Tipo de fenómeno
Ritmo cardiaco normal: Fenómeno
Ritmo cardiaca lento: Fenómeno
Encuentra el fenómeno() Incluye (cantidad)
falso
Incluye (cantidad)
Ritmo cardiaco normal
verdadero
Figura 11.6 diagrama de secuencia de observación del paciente
Algunas personas tienen problemas con los vínculos de doble sentido,Veamos algunas declaraciones.
Aplicar la convención de añadir un guion bajo antes de todos los campos.
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;};
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 ();}
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; } } } }
con el programa anterior podemos crear las observaciones.
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 ()) {
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
{ 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 (); }
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);
0.1
cadena
0.1*
1
*
1
*
0.1
Tipo de fenómeno
Fenómeno Observación
Medición
Cifra: Cantidad
paciente
ultimaCantidadDe(Tipo de fenómeno):Cantidad fenomenoDe(Tipo de fenómeno): fenómeno
Marca de tiempoIntervelo:Intervalo cantidad
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; };
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
Biografía
UMLGOTA A GOTA
MARTIN FOWLERCON KENDALL SCOTT
ACTUALIZADO PARA CUBRIRLA VERSION 1,2 OMG UML standard