1 / 38

UML Lenguaje Unificado de Construcción de Modelos

UML Lenguaje Unificado de Construcción de Modelos. Programación Orientada a Objetos Análisis y Diseño Orientado a Objetos Notación: Usando UML. Semana de Sistemas e Informática 2004 Ing. Jorge Maranto Iglecias. Programación Orientada a Objetos. Origenes Qué es la POO Ventajas de la POO

luka
Download Presentation

UML Lenguaje Unificado de Construcción de Modelos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. UML Lenguaje Unificado de Construcción de Modelos • Programación Orientada a Objetos • Análisis y Diseño Orientado a Objetos • Notación: Usando UML Semana de Sistemas e Informática 2004 Ing. Jorge Maranto Iglecias

  2. Programación Orientada a Objetos • Origenes • Qué es la POO • Ventajas de la POO • Necesidad de documentación estándar para la POO

  3. UML: Lenguaje Unificado de Construcción de Modelos • Notación para el análisis y diseño • Booch, OMT, OOSE • Origen de UML • Rational y el grupo OMG • Grady Booch, James Rumbaugh e Ivar Jacobson

  4. UML es un lenguaje para desarrollar la especificación, visualización, construcción y documentación de los artefactos de sistemas de software, así como el modelado de negocios y otros sistemas no de software.

  5. UML: Lenguaje Unificado de Construcción de Modelos • Enfoque de UML • Artefactos de UML • Cuatro niveles de diseño • Meta-MetaModelo • MetaModelo • Modelo • Objetos de usuario

  6. UML: Lenguaje Unificado de Construcción de Modelos • Paquetes de UML • Diagramas de vistas de un modelo • Casos (Use case) • Diagrama de clases • Diagramas de comportamiento (diagramas de estado, de actividad, de secuencia y de colaboraciones)

  7. Los paquetes se definen en los siguientes términos: • Sintaxis abstracta • Reglas formales • Semántica

  8. // Fig. 7.41: elevador.h // Definición de la clase Elevador. #ifndef ELEVADOR_H #define ELEVADOR_H #include "botonElevador.h" #include "puerta.h" #include "campana.h" class Piso; // declaración forward class Persona; // declaración forward class Elevador { public: Elevador( Piso &, Piso & ); // constructor ~Elevador(); // destructor void llamaElevador( int ); // solicitud de servicio al piso void preparaParaPartir( bool ); // prepara para partir void tiempoProceso( int ); // indica el tiempo actual al elevador void pasajeroEntra( Persona * const ); // aborda un pasajero void pasajeroSale(); // sale un pasaero // elevador.h // Definición de la clase Elevador. #ifndef ELEVADOR_H #define ELEVADOR_H #include "botonElevador.h" #include "puerta.h" #include "campana.h" class Piso; // declaración forward class Persona; // declaración forward class Elevador { public: Elevador( Piso &, Piso & ); // constructor ~Elevador(); // destructor void llamaElevador( int ); // solicitud de servicio al piso void preparaParaPartir( bool ); // prepara para partir void tiempoProceso( int ); // indica el tiempo actual al elevador void pasajeroEntra( Persona * const ); // aborda un pasajero void pasajeroSale(); // sale un pasaero

  9. private: // funciones de utilidad void procesaPosibleLlegada(); void procesaPosiblePartida(); void llegaAlPiso( Piso & ); void mover(); // constantes estáticas que representan el tiempo requerido para viajar // entre los pisos y las direcciones del elevador static const int TIEMPO_VIAJE_ELEVADOR; static const int ARRIBA; static const int ABAJO; // datos miembros int tiempoActualRelojDelEdificio; // tiempo actual bool enMovimiento; // estado del elevador int direccion; // dirección actual int pisoActual; // ubicación actual int tiempoLlegada; // tiempo de llegada al piso bool piso1NecesitaServicio; // bandera de servicio del piso1 bool piso2NecesitaServicio; // bandera de servicio del piso1 Piso &refPiso1; // referencia al piso 1 Piso &refPiso2; // referencia al piso 2 Persona *ptrPasajero; Puerta puerta; // objeto puerta Campana campana; // objeto campana }; // fin de la clase Elevador #endif // ELEVADOR_H

  10. // elevador.cpp // Definición de las funciones miembro para la clase Elevador. #include <iostream> using std::cout; using std::endl; #include "elevador.h" // definición de la clase Elevador #include "persona.h" // definición de la clase Persona #include "piso.h" // definición de la clase Piso // constantes que representan el tiempo que se requiere para viajar // entre pisos y direcciones del elevador const int Elevador::TIEMPO_VIAJE_ELEVADOR = 5; const int Elevador::ARRIBA = 0; const int Elevador::ABAJO = 1; // constructor Elevador::Elevador( Piso &primerPiso, Piso &segundoPiso ) : botonElevador( *this ), tiempoActualRelojDelEdificio( 0 ), enMovimiento( false ), direccion( ARRIBA ), pisoActual( Piso::PISO1 ), tiempoLlegada( 0 ), piso1NecesitaServicio( false ), piso2NecesitaServicio( false ), refPiso1( primerPiso ), refPiso2( segundoPiso ), ptrPasajero( 0 )

  11. { cout << "elevador construido" << endl; } // fin del constructor Elevador // destructor Elevador::~Elevador() { delete ptrPasajero; cout << "elevador destruido" << endl; } // fin del destructor ~Elevador // da tiempo al elevador void Elevador::tiempoProceso( int tiempo ) { tiempoActualRelojDelEdificio = tiempo; if ( enMovimiento ) // elevador en movimiento procesaPosibleLlegada(); else // elevador detenido procesaPosiblePartida(); if ( !enMovimiento ) cout << "el elevador descansa en el piso " << pisoActual << endl; } // fin de la función tiempoProceso

  12. Recursos UML en internet • www.omg.org/uml • www.rational.com/uml • www.therationaledge.com • www.platinum.com/corp/uml/uml.htm • www.methods-tools.com/cgi-bin/DiscussionUML.cgi • www.celignet.com/uml • www.embarcadero.com/downloads • www.jguru.com/faq

More Related