equipo 1 uml y la programacion

Post on 24-Jun-2015

378 Views

Category:

Education

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Trabajo por Isaias, Geiely y Ely.

TRANSCRIPT

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

top related