equipo 1 uml y la programacion

29
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

Upload: instituto-tecnologico-superior-de-la-venta-isc-a

Post on 24-Jun-2015

375 views

Category:

Education


2 download

DESCRIPTION

Trabajo por Isaias, Geiely y Ely.

TRANSCRIPT

Page 1: Equipo 1 UML y la Programacion

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

Page 2: Equipo 1 UML y la Programacion

EL UML Y LA PROGRAMACIÓN

Page 3: Equipo 1 UML y la Programacion

¿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

Page 4: Equipo 1 UML y la Programacion

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.

Page 5: Equipo 1 UML y la Programacion

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

Page 6: Equipo 1 UML y la Programacion

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

Page 7: Equipo 1 UML y la Programacion

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

Page 8: Equipo 1 UML y la Programacion

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

Page 9: Equipo 1 UML y la Programacion

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.

Page 10: Equipo 1 UML y la Programacion

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

Page 11: Equipo 1 UML y la Programacion

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.

Page 12: Equipo 1 UML y la Programacion

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

Page 13: Equipo 1 UML y la Programacion

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.

Page 14: Equipo 1 UML y la Programacion

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

Page 15: Equipo 1 UML y la Programacion

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.

Page 16: Equipo 1 UML y la Programacion

 

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

Page 17: Equipo 1 UML y la Programacion

Algunas personas tienen problemas con los vínculos de doble sentido,Veamos algunas declaraciones.

Page 18: Equipo 1 UML y la Programacion

Aplicar la convención de añadir un guion bajo antes de todos los campos.

Page 19: Equipo 1 UML y la Programacion

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;};

Page 20: Equipo 1 UML y la Programacion

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 ();}

Page 21: Equipo 1 UML y la Programacion

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.

Page 22: Equipo 1 UML y la Programacion

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 ()) {

Page 23: Equipo 1 UML y la Programacion

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

Page 24: Equipo 1 UML y la Programacion

{ 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 (); }

Page 25: Equipo 1 UML y la Programacion

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);

Page 26: Equipo 1 UML y la Programacion

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

Page 27: Equipo 1 UML y la Programacion

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; };

Page 28: Equipo 1 UML y la Programacion

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

Page 29: Equipo 1 UML y la Programacion

Biografía

UMLGOTA A GOTA

MARTIN FOWLERCON KENDALL SCOTT

ACTUALIZADO PARA CUBRIRLA VERSION 1,2 OMG UML standard