JMPtesis. Uml

download JMPtesis. Uml

of 408

Transcript of JMPtesis. Uml

  • 8/9/2019 JMPtesis. Uml

    1/407

    Universidad de CantabriaDepartamento de Electrnica y Computadores

    Metodologa y Herramientas UML

    para el Modelado y Anlisis de Sistemas deTiempo Real Orientados a Objetos

    TESIS DOCTORALJulio Luis Medina Pasaje

    Santander, junio de 2005

  • 8/9/2019 JMPtesis. Uml

    2/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    3/407

    Universidad de Cantabria i

    Universidad de CantabriaDepartamento de

    Electrnica y Computadores

    Metodologa y Herramientas UML

    para el Modelado y Anlisis de Sistemas deTiempo Real Orientados a Objetos

    MEMORIAPresentada para optar al grado deDOCTOR INGENIERO DETELECOMUNICACIN por Julio Luis Medina Pasaje

    Ingeniero de Telecomunicacin

  • 8/9/2019 JMPtesis. Uml

    4/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    ii Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    5/407

    Universidad de Cantabria iii

    Universidad de CantabriaDepartamento de

    Electrnica y Computadores

    Metodologa y Herramientas UMLpara el Modelado y Anlisis de Sistemas de

    Tiempo Real Orientados a Objetos

    MEMORIA presentada para optar al grado de Doctor Ingeniero de Telecomunicacin por elIngeniero de Telecomunicacin

    Julio Luis Medina Pasaje

    El Director,

    Dr. Jos Mara Drake MoyanoCatedrtico de Universidad

    DECLARO:Que el presente trabajo ha sido realizadoen el Departamento de Electrnica y

    Computadores de la Universidad deCantabria, bajo mi direccin y rene lascondiciones exigidas a los trabajos deDoctorado.

    Santander, 16 de junio de 2005

    Fdo. Julio Luis Medina Pasaje Fdo. Jos Mara Drake Moyano

  • 8/9/2019 JMPtesis. Uml

    6/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    iv Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    7/407

    Universidad de Cantabria v

    A la memoria de Josefa y Jos Antonio, a Julio y Rafael, aquella maravillosa familia que deb dejar al empezar el camino que me ha llevado aeste empeo, y a Luz, Almudena y Julio Luis, lamaravillosa familia que tengo al terminarlo.

  • 8/9/2019 JMPtesis. Uml

    8/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    vi Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    9/407

    Universidad de Cantabria vii

    Unas pocas pero sentidas palabras para agradecer a quienes de una u otra manerahan contribuido a llevar a cabo el desarrollo de este trabajo.

    Sea mi agradecimiento ms sincero y vivaz en primer lugar para Jos Mara Drake, por el infatigable apoyo y el empuje constante que ha tenido para conmigo, por elesfuerzo y paciencia que este empeo le ha requerido a lo largo de los aos en quehemos trabajado juntos y por confiar en mi para llevarlo a cabo. Su tenacidad ylucidez han puesto orden y concierto en el maremagnum de propsitos, ideas,diagramas y verbos que han acompaado nuestras discusiones. De su ilusin por cada concepto he aprendido ms de lo que soy capaz de recordar.

    Agradezco nuevamente a Jos Mara y con l a Michael Gonzlez, no slo por susenseanzas formativas, su buena disposicin y su continuo apoyo acadmico y profesional, sino por los diversos contratos y becas con los que me han honrado,logrando as mantener mi vinculacin con la actividad investigadora en launiversidad, a la vez que permitirme ganar el pan que llevar a mi mesa.

    A Luz, por las muchas....muchas ausencias, la inmensa paciencia y ese invaluabley continuo apoyo vital. A Almudena y Julio Luis, mis otras dos tesis, por tantasvacaciones en el despacho de pap y el sueo que no les pude velar.

    A mi padres y hermanos, los que estn y los que se han ido, por la fe, el sentido

    comn, el nimo y el valor de seguir adelante que desde siempre me han infundido.A mis compaeros y amigos, en el Departamento de Electrnica, en la Facultad deCiencias, en la Biblioteca, en general en la Universidad y muy especialmente a misamigos del Grupo de Computadores y Tiempo Real, los de ahora, los de antes y losde siempre, por el apoyo, el nimo y el empuje infundidos y tambin, como no, por la alegra de cada caf, de cada e-mail, por las charlas, las comidas, las cenas, lascopas, los das de campo, los partidos, los viajes, los proyectos, en definitiva por ese compartir de a poquitos la vida, por las mil y una dudas que atendieron y todasesas extraas palabras que me han sabido (o me han tenido que:-) ) aguantar.

    A mi familia y amigos a ambos lados del Atlntico, los de antao, que algunoqueda, como los del colegio, los de mi barrio, los del Jess Mara 92, de la UNI odel IPEN, y otros ms recientes, como los de Viesgo en el UIIMPC y los partnersdel FIRST, aquellos que sabiendo o sin saber de lo que trata esta memoria, me hananimado a culminarla.

    A todos ellos y a quienes sin mi permiso se queden escondidos por entre losvericuetos de mi memoria,

    Muchas gracias.

  • 8/9/2019 JMPtesis. Uml

    10/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    viii Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    11/407

    Universidad de Cantabria ix

    La presente Memoria de Tesis Doctoral, ha sido desarrollada en el marco de los siguientes proyectos de investigacin:

    Metodologa para el anlisis y diseo orientado a objetos de sistemas distribuidosde tiempo real estricto. Proyecto del Plan Nacional de Investigacin en TecnologasAvanzadas de la Produccin, 1FD 1997-1799 (TAP).

    Diseo integrado de sistemas de tiempo real embarcados. Plan Nacional deInvestigacin en Tecnologas de la Informacin y las Comunicaciones, TIC99-1043-C03-03.

    Han contribuido tambin:

    La Agencia Espaola de Cooperacin Internacional, mediante una beca MUTIS para realizar estudios de doctorado.

    La Comisin de las Comunidades Europeas a travs del proyecto FIRST: FlexibleIntegrated Real-time Scheduling Technologies, IST-2001-34140.

  • 8/9/2019 JMPtesis. Uml

    12/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    x Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    13/407

    ndice de contenidos

    Universidad de Cantabria xi

    ndice de contenidos

    ndice de contenidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiLista de figuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xixResumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii

    1. Sistemas de tiempo real orientados a objetos . . . . . . . . . . . . . . . . . . . . . .11.1. Sistemas de tiempo real y metodologas de diseo orientadas a objeto . . . . . . . . . . .1

    1.1.1. La abstraccin frente al desafo de la complejidad . . . . . . . . . . . . . . . . . . . . . . .31.1.2. La orientacin a objetos y su representacin en UML . . . . . . . . . . . . . . . . . . . . .41.1.3. Metodologas de diseo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9

    1.2. Modelos y herramientas de anlisis de tiempo real para sistemas orientadosa objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10

    1.2.1. Modelo de referencia de sistema distribuido de tiempo real . . . . . . . . . . . . . . .111.2.2. Marco conceptual de las tcnicas RMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131.2.3. Herramientas de anlisis RMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161.2.4. Modelo de anlisis para la metodologa ROOM . . . . . . . . . . . . . . . . . . . . . . . .191.2.5. Sincronizacin y paso de mensajes en el modelo transaccional . . . . . . . . . . . .191.2.6. Otras formas de anlisis de sistemas distribuidos . . . . . . . . . . . . . . . . . . . . . . .201.2.7. Modelo de anlisis de MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21

    1.3. Perfil sobre planificabilidad, respuesta y tiempo del Object Management Group . .221.3.1. Generalidades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231.3.2. Estructura del perfil SPT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241.3.3. El paradigma del procesamiento de modelos . . . . . . . . . . . . . . . . . . . . . . . . . . .261.3.4. El sub-perfil de anlisis de planificabilidad: SAprofile . . . . . . . . . . . . . . . . . . .27

    1.4. Software de tiempo real basado en componentes . . . . . . . . . . . . . . . . . . . . . . . . . . .281.5. Entorno abierto MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311.6. Objetivos y planteamiento de la Tesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32

    2. Modelo de tiempo real de sistemas orientados a objetos . . . . . . . . . . . .37

  • 8/9/2019 JMPtesis. Uml

    14/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xii Grupo de Computadores y Tiempo Real

    2.1. Secciones del modelo de tiempo real de un sistema orientado a objeto . . . . . . . . . .382.2. Modelo de tiempo real de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40

    2.2.1. Recursos de procesamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .412.2.1.1. Procesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .422.2.1.2. Redes de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44

    2.2.1.3. Dispositivos fsicos de propsito especfico . . . . . . . . . . . . . . . . . . . . . . . . .472.2.2. Servidores, polticas y parmetros de planificacin . . . . . . . . . . . . . . . . . . . . . .482.2.3. Recursos compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .50

    2.3. Modelo de tiempo real de los componentes lgicos . . . . . . . . . . . . . . . . . . . . . . . . .522.3.1. Modelo de las operaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .54

    2.3.1.1. Operaciones compuestas y descritas con parmetros . . . . . . . . . . . . . . . . . .562.3.1.2. Uso de Lock y Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .58

    2.3.2. Modelo de las tareas parametrizables: Jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . .592.3.2.1. Descripcin del modelo de actividad del Job . . . . . . . . . . . . . . . . . . . . . . . .622.3.2.2. Modelado de la concurrencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .642.3.2.3. Las actividades: la invocacin de operaciones . . . . . . . . . . . . . . . . . . . . . . .652.3.2.4. Estados de referencia en el modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .682.3.2.5. Modelo de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .692.3.2.6. Estados de retardo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .702.3.2.7. Estados de control de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .722.3.2.8. Parmetros asignables a un Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .73

    2.3.3. Diferencia entre Jobsy operaciones compuestas . . . . . . . . . . . . . . . . . . . . . . . . 742.4. Modelo de las situaciones de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .75

    2.4.1. Modelo de transacciones de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .762.4.2. Caracterizacin de los eventos externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .792.4.3. Requerimientos temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80

    2.5. Gua del proceso de modelado de un sistema de tiempo real . . . . . . . . . . . . . . . . . .812.5.1. El mbito de modelado: una vista de tiempo real . . . . . . . . . . . . . . . . . . . . . . .822.5.2. Modelos de tiempo real en el proceso de desarrollo . . . . . . . . . . . . . . . . . . . . .832.5.3. Componentes de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .842.5.4. Componentes de aplicacin: estructura de clases y descomposicin funcional .86

    2.5.4.1. Modelado puramente funcional o algortmico . . . . . . . . . . . . . . . . . . . . . . .872.5.4.2. Modelado funcional estructurado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .902.5.4.3. Modelado orientado a objetos I: clases y objetos . . . . . . . . . . . . . . . . . . . . .912.5.4.4. Modelado orientado a objetos II: jerarqua de clases . . . . . . . . . . . . . . . . . .932.5.4.5. Modelado orientado a objetos III: las colaboraciones . . . . . . . . . . . . . . . . .942.5.4.6. Otros paradigmas: patrones, aspectos, componentes . . . . . . . . . . . . . . . . . .95

    2.5.5. Situaciones de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .952.5.5.1. Identificacin de transacciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .962.5.6. Principios clave de RMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .97

    2.5.6.1. Aperiodic events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .972.5.6.2. Deadlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .972.5.6.3. Deferred execution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.4. Delays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.5. Distributed Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.6. FIFO queues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.7. Interrupts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.8. Operating systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .982.5.6.9. Performance tracking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .992.5.6.10. Priority inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99

  • 8/9/2019 JMPtesis. Uml

    15/407

    ndice de contenidos

    Universidad de Cantabria xiii

    2.5.6.11. Priority inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .992.5.6.12. Suspension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .992.5.6.13. System resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .992.5.6.14. Unbounded priority inversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002.5.6.15. Utilization and schedulability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

    2.5.6.16. Utilization and spare capacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002.6. Ejemplo de modelado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1002.6.1. Software para un robot teleoperado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100

    2.6.1.1. Descripcin de la aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1012.6.1.2. Arquitectura del software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1012.6.1.3. Casos de uso identificados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104

    Execute_Command: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104Control_Servos_Trans: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105Report_Process: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106

    2.6.1.4. Componentes de la aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1072.6.2. Modelo de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107

    2.6.2.1. Modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1082.6.2.2. Modelo de los componentes lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112

    Clase Display_Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112Clase Command_Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114Clase Display_Refresher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114Clase Station_Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115Clase Controller_Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116Objeto protegido Servos_Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117Command_Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117Clase Reporter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118Servos_Controller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119Mensajes a transmitir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119

    2.6.2.3. Modelo de las situaciones de tiempo real. . . . . . . . . . . . . . . . . . . . . . . . . .120Transaccin Execute_command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120Transaccin Report_Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .121Transaccin Control_Servos_Trans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122

    2.6.2.4. Abstraccin de patrones de interaccin . . . . . . . . . . . . . . . . . . . . . . . . . . .1232.7. Conformidad del modelo UML-MAST con el perfil SPT del OMG . . . . . . . . . . . .124

    2.7.1. Dominios del perfil SPT empleados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1242.7.2. Limitaciones y propuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .126

    2.7.2.1. Definicin de ExecutionEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

    Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127

    2.7.2.2. Relacin entreSchedulingJob, Trigger y Response . . . . . . . . . . . . . . . . . .128Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130

    2.7.2.3. Encadenamiento deSAction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

    2.7.2.4. Relacin entreSActiony SchedulableResource . . . . . . . . . . . . . . . . . . . . .131Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131

  • 8/9/2019 JMPtesis. Uml

    16/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xiv Grupo de Computadores y Tiempo Real

    Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132

    2.7.2.5. Duracin de unaSAction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .133

    Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1332.7.2.6. Modelado de secuencias optativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135

    2.7.2.7. Soporte para especificacin de requerimientos temporales . . . . . . . . . . . .135Limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Anlisis de la limitacin: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135Propuesta: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136

    3. Representacin UML del modelo de tiempo real: MAST_RT_View .1373.1. Estrategias de representacin de la vista de tiempo real con elementos de UML . .1393.2. Estructura de la vista de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .141

    3.2.1. Conceptos y estereotipos en el RT_Platform_Model . . . . . . . . . . . . . . . . . . . .1423.2.1.1. Modelado de procesadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .144 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

    3.2.1.2. Modelado de las unidades de concurrencia . . . . . . . . . . . . . . . . . . . . . . . .145 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

    3.2.1.3. Modelado de redes de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .150

    3.2.1.4. Tratamiento automatizado del modelo de la plataforma . . . . . . . . . . . . . .1513.2.2. Conceptos y estereotipos en el RT_Logical_Model . . . . . . . . . . . . . . . . . . . . .153

    3.2.2.1. Modelado de operaciones secuenciales y recursos compartidos . . . . . . . .155 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .155 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157Operation_Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157Lock y Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .158 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .159Operation_Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161

    3.2.2.2. Modelado parametrizable del flujo de actividad y la concurrencia . . . . . .161 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .161Job_Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

  • 8/9/2019 JMPtesis. Uml

    17/407

    ndice de contenidos

    Universidad de Cantabria xv

    Initial_State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164Return_State . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165Job_Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166, , y

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167 y . . . . . . . . . . . . . . . . . . . . . . .168 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168 y . . . . . . . . . . . . . . . . . . . . . . . . . .168Scheduling_Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169

    3.2.2.3. Tratamiento automatizado del modelo de los componentes lgicos . . . . .1693.2.3. Conceptos y estereotipos en el RT_Situations_Model . . . . . . . . . . . . . . . . . . .172

    3.2.3.1. Contenedor de la situacin de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . .174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174

    3.2.3.2. Modelo declarativo de las transacciones . . . . . . . . . . . . . . . . . . . . . . . . . .174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .178 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .180

    3.2.3.3. Modelado del flujo de actividad y la concurrencia . . . . . . . . . . . . . . . . . . .1803.2.3.4. Tratamiento automatizado del modelo de una situacin de tiempo real . .1813.2.4. Compendio de tipos bsicos y nomenclatura empleados . . . . . . . . . . . . . . . . .183

    3.3. Declaracin y descripcin de componentes del modelo de tiempo real . . . . . . . . .1853.3.1. Elementos declarados estticamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1863.3.2. Elementos que incluyen modelos dinmicos . . . . . . . . . . . . . . . . . . . . . . . . . .1863.3.3. Elementos contenedores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .187

    3.4. Ejemplo de vista de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1883.4.1. Modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1893.4.2. Modelo de los componentes lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1913.4.3. Situacin de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192

    3.5. Conformidad de la forma de representacin en UML con el perfil SPT del OMG .1943.5.1. Formas de representacin propuestas por el perfil SPT . . . . . . . . . . . . . . . . . .194

  • 8/9/2019 JMPtesis. Uml

    18/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xvi Grupo de Computadores y Tiempo Real

    3.5.2. Ventajas del modelado conceptual en la vista de tiempo real . . . . . . . . . . . . .195

    4. Entorno para el anlisis de sistemas de tiempo real en una herramientaCASE UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

    4.1. Procesamiento del modelo de tiempo real de un sistema orientado a objetos . . . . .1974.2. Funcionalidad del entorno de procesado dentro de la herramienta CASE UML . .2004.2.1. Servicios adicionales para el procesado de la MAST_RT_View . . . . . . . . . . .2004.2.2. Niveles de implementacin para soportar la MAST_RT_View . . . . . . . . . . .2014.2.3. Criterios de adaptacin a la herramienta . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201

    4.3. Arquitectura del software para el procesamiento del modelo de tiempo real . . . . .2044.3.1. Descripcin de los servicios implementados . . . . . . . . . . . . . . . . . . . . . . . . . .204

    4.3.1.1. Framework de inicio y estereotipos predefinidos . . . . . . . . . . . . . . . . . . . .2044.3.1.2. Wizard y mens de ayuda a la creacin de modelos . . . . . . . . . . . . . . . . .2064.3.1.3. Opciones para la gestin de las herramientas adicionales . . . . . . . . . . . . .208

    4.3.2. Servicios de ayuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2094.3.3. Algoritmo y diseo funcional del software de transformacin . . . . . . . . . . . .2104.3.4. Detalles de la implementacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .211

    4.4. Ejemplo de representacin y anlisis de la vista de tiempo real en la herramienta .2124.4.1. Creacin e introduccin del modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2134.4.2. Verificacin del modelo y obtencin del fichero MAST . . . . . . . . . . . . . . . . .2164.4.3. Clculo de valores de diseo y anlisis de una situacin de tiempo real . . . . .2174.4.4. Visualizacin y recuperacin de resultados . . . . . . . . . . . . . . . . . . . . . . . . . . .218

    4.5. Conformidad de la forma de procesamiento del modelo con el perfil SPT delOMG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219

    4.5.1. Formato de intercambio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220

    4.5.2. La forma de expresar los parmetros a procesar . . . . . . . . . . . . . . . . . . . . . . .2204.5.3. Naturaleza de los elementos de configuracin . . . . . . . . . . . . . . . . . . . . . . . . .2204.5.4. Configuracin experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220

    5. Perfiles de extensin: componentes de tiempo real y aplicacionesAda 95 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221

    5.1. Perfiles de extensin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2225.2. Modelos de tiempo real orientados a la componibilidad . . . . . . . . . . . . . . . . . . . . .223

    5.2.1. Conceptos bsicos: modelos-descriptor y modelos-instancia . . . . . . . . . . . . .2255.2.2. Ncleo del metamodelo CBSE-MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226

    5.2.2.1. CBSE-Mast_Element_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228Atributoname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228Atributotie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .228Relacinancestor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229RelacindeclaredParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229RelacinassignedParameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229

    5.2.2.2. CBSE-Mast_Value_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2295.2.2.3. CBSE-Mast_Usage_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230

    CBSE-Mast_Interface_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2305.2.2.4. CBSE-Mast_Resource_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231

    5.2.2.5. CBSE-Mast_Component_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231Atributolocator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232

  • 8/9/2019 JMPtesis. Uml

    19/407

    ndice de contenidos

    Universidad de Cantabria xvii

    5.2.3. Modelo de tiempo real de una aplicacin con CBSE-MAST . . . . . . . . . . . . .2335.2.3.1. Component_Repository . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2335.2.3.2. CBSE_Mast_Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2335.2.3.3. CBSE_Mast_Component_Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2345.2.3.4. CBSE_Mast_RT_Situation_Instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234

    Relacin platformModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234Relacin logicalModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234Relacin transactionList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .234

    5.2.4. Implementacin de los modelos CBSE-MAST . . . . . . . . . . . . . . . . . . . . . . . .2345.2.5. Ejemplos de uso de CBSE-MAST en el modelo de un sistema de tiempo real241

    5.2.5.1. Modelos de recursos para plataformas tipo PC con sistema operativoMaRTE OS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242Modelo "Node_MarteOS_PC_750MH" . . . . . . . . . . . . . . . . . . . . . . . . . . .242Modelo "Ethernet_100MH_PC_MarteOS" . . . . . . . . . . . . . . . . . . . . . . . .243Driver RTEP_Marte_OS_Base_Driver . . . . . . . . . . . . . . . . . . . . . . . . . . .246

    5.2.5.2. Modelos de tiempo real de comunicacin a travs de RT-GLADE . . . . . .246Componente Ada_Proc_Rsrc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247Componente APC_Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247Componente RPC_Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248

    5.2.5.3. Modelos de tiempo real del componente software C_ADQ_9111 . . . . . . .248Recursos comunes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251Modelo de la operacin DI_Read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251Modelo de la operacin DO_Write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254Modelo de la operacin Set_Blinking: . . . . . . . . . . . . . . . . . . . . . . . . . . . .254

    5.2.5.4. Modelo de tiempo real de una aplicacin que hace uso de componentes .255Modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256Modelo de los elementos lgicos de la aplicacin . . . . . . . . . . . . . . . . . . .256Lista de transacciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259

    5.3. Modelado y anlisis de aplicaciones Ada de tiempo real . . . . . . . . . . . . . . . . . . . .2605.3.1. Antecedentes, herramientas y tcnicas de soporte . . . . . . . . . . . . . . . . . . . . . .2615.3.2. Metamodelo de la vista de tiempo real con Ada-MAST . . . . . . . . . . . . . . . . .262

    5.3.2.1. Modelo de la plataforma en Ada-MAST . . . . . . . . . . . . . . . . . . . . . . . . . .2625.3.2.2. Modelo de los componentes lgicos en Ada-MAST . . . . . . . . . . . . . . . . .2635.3.2.3. Modelo de las situaciones de tiempo real en Ada-MAST . . . . . . . . . . . . .265

    5.3.3. Modelo de tiempo real de los componentes Ada . . . . . . . . . . . . . . . . . . . . . . .2665.3.3.1. El modelo se adapta a la estructura de las aplicaciones Ada . . . . . . . . . . .2665.3.3.2. Modela la concurrencia que introducen las tareas Ada . . . . . . . . . . . . . . .267

    5.3.3.3. Modela los bloqueos que introduce el acceso a objetos protegidos . . . . . .2685.3.3.4. Modela la comunicacin de tiempo real entre particiones Ada distribuidas2705.3.4. Ejemplo de aplicacin de la metodologa . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271

    5.3.4.1. Diseo lgico de la aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2725.3.4.2. Vista de tiempo real de la Mquina Herramienta Teleoperada . . . . . . . . .273

    Modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273Modelo de tiempo real de los componentes lgicos . . . . . . . . . . . . . . . . . .275Modelo de las situaciones de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . .276

    5.3.4.3. Anlisis de tiempo real y diseo de la planificabilidad del sistema . . . . . .2775.4. Extensiones al perfil SPT del OMG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277

    5.4.1. La dualidad descriptor-instancia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2785.4.2. Instanciacin y parametrizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2785.4.3. Sintona entre las vistas lgica y de despliegue frente a la de tiempo real . . . .278

  • 8/9/2019 JMPtesis. Uml

    20/407

  • 8/9/2019 JMPtesis. Uml

    21/407

    Universidad de Cantabria xix

    Lista de figuras

    1.1 Elementos fundamentales del modelo conceptual de UML . . . . . . . . . . . . . . . . . . . . . 71.2 Formas de uso del perfil SPT [SPT] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241.3 Estructura del perfil SPT [SPT] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251.4 Procesamiento de modelos con el perfil SPT [SPT] . . . . . . . . . . . . . . . . . . . . . . . . . . 261.5 Modelo fundamental del sub-perfil de anlisis de planificabilidad [SPT] . . . . . . . . . 271.6 Formas de uso y usuarios del entorno MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312.1 Secciones del modelo de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392.2 Metamodelo de alto nivel de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

    2.3 Extracto del metamodelo de un procesador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432.4 Metamodelo de una red de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.5 Modelo de los Driversde una red de comunicacin . . . . . . . . . . . . . . . . . . . . . . . . . . 462.6 metamodelo del componente de modelado Device . . . . . . . . . . . . . . . . . . . . . . . . . . .482.7 Parmetros y polticas de planificacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492.8 Metamodelo de los recursos compartidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.9 metamodelo de alto nivel de los componentes lgicos . . . . . . . . . . . . . . . . . . . . . . . . 522.10 metamodelo de las operaciones del modelo lgico . . . . . . . . . . . . . . . . . . . . . . . . . . . 552.11 Parmetros de planificacin impuestos por las operaciones . . . . . . . . . . . . . . . . . . . . 562.12 Parmetros asignables a las operaciones compuestas . . . . . . . . . . . . . . . . . . . . . . . . . 57

    2.13 Modelo interno de las operaciones compuestas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582.14 Metamodelo de la invocacin de Lock y Unlock . . . . . . . . . . . . . . . . . . . . . . . . . . . .592.15 metamodelo que describe el concepto de Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .602.16 Relacin de un Job_Model con el metamodelo de UML . . . . . . . . . . . . . . . . . . . . . . 612.17 Descripcin de un Job_Model como unaStateMachinede UML . . . . . . . . . . . . . . . 632.18 Tipos de elementos constitutivos de un Job_Model . . . . . . . . . . . . . . . . . . . . . . . . . .632.19 Forma de expresar la concurrencia en un Job_Model . . . . . . . . . . . . . . . . . . . . . . . .642.20 Metamodelo de lasMAST_Activitiesen el modelo de un Job. . . . . . . . . . . . . . . . . . . 652.21 Metamodelo de la invocacin de Jobsy operaciones . . . . . . . . . . . . . . . . . . . . . . . . . 672.22 Metamodelo de los estados relevantes en el modelo de un Job . . . . . . . . . . . . . . . . .68

    2.23 Metamodelo de los eventos que intervienen en el modelo de un Job . . . . . . . . . . . . .702.24 Estados temporizados en el modelo de un Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .71

  • 8/9/2019 JMPtesis. Uml

    22/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xx Grupo de Computadores y Tiempo Real

    2.25 Estados de control de flujo en el modelo de un Job . . . . . . . . . . . . . . . . . . . . . . . . . .722.26 Parmetros asignables a un Job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .742.27 Metamodelo de una situacin de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762.28 Modelo de actividad de unaTransaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .772.29 Metamodelo de las clases de eventos externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792.30 Metamodelo de los requisitos temporales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812.31 Primera aproximacin al modelo de una seccin de cdigo . . . . . . . . . . . . . . . . . . . . 882.32 Variantes de un modelo en funcin de la herramienta a utilizar . . . . . . . . . . . . . . . . . 892.33 Seccin crtica simple modelada en forma de recurso protegido . . . . . . . . . . . . . . . . 902.34 Modelado de cdigo estructurado por descomposicin funcional . . . . . . . . . . . . . . . 912.35 Modelado de cdigo que invoca mtodos polimrficos . . . . . . . . . . . . . . . . . . . . . . . 932.36 Diagrama de despliegue del robot teleoperado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1012.37 Arquitectura del software del robot teleoperado . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022.38 Diagrama de secuencias de la interaccin Execute_Command . . . . . . . . . . . . . . . . 1052.39 Diagrama de secuencias de la interaccin Control_Servos_Trans . . . . . . . . . . . . . . 1062.40 Diagrama de secuencias de la interaccin Report_Process . . . . . . . . . . . . . . . . . . . 1072.41 Diagramas de componentes para las particiones del robot teleoperado . . . . . . . . . . 1082.42 Modelo de tiempo real del procesador Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1092.43 Modelo de tiempo real del procesador Controller . . . . . . . . . . . . . . . . . . . . . . . . . . 1102.44 Modelo de tiempo real del Bus_CAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112.45 Modelo de tiempo real de la clase pasiva Display_Data . . . . . . . . . . . . . . . . . . . . . 1132.46 Modelo de tiempo real del uso de una operacin protegida . . . . . . . . . . . . . . . . . . . 1132.47 Modelo de la clase Command_Interpreter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142.48 Modelo de los componentes lgicos de la clase Display_Refresher . . . . . . . . . . . . 1152.49 Modelos de Station_Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.50 Modelo de Controller_Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1162.51 Modelo del objeto protegido Servos_Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172.52 Modelo de anlisis de la clase Command_Manager . . . . . . . . . . . . . . . . . . . . . . . . . 1182.53 Modelo de los componentes de la clase Reporter . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182.54 Modelo de tiempo real de los mtodos de la clase Servos_Controller . . . . . . . . . . . 1192.55 Modelo de las operaciones de transferencia de mensajes . . . . . . . . . . . . . . . . . . . . . 1202.56 Modelo de la transaccin Execute_Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212.57 Modelo de la transaccin Report_Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.58 Modelo de la transaccin Control_Servos_Trans . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222.59 Modelo de un Job y su invocacin en la transaccin Report_Process . . . . . . . . . . . 1232.60 Modelo de ExecutionEngineen la versin 1.0 del perfil SPT . . . . . . . . . . . . . . . . . 1272.61 Redefinicin de ExecutionEnginepara el anlisis de sistemas distribuidos . . . . . . . 1282.62 Ajuste de la relacin entreSchedulingJob, Trigger y Response . . . . . . . . . . . . . . . .1292.63 Scenarioy ActionExecutionen el modelo de uso dinmico de recursos . . . . . . . . . 1302.64 Propuesta para habilitar el encadenamiento entreSActions . . . . . . . . . . . . . . . . . . .1312.65 Relacin entreSchedulableResourcey SAction . . . . . . . . . . . . . . . . . . . . . . . . . . . .1322.66 Atributo de temporizacin deSAction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1322.67 Propuesta de asociacin que generaliza los tipos de parmetros de temporizacin tiles

    enSAction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1332.68 Propuesta del EstimativeTimeInterval como forma de estimacin del tiempo empleado

    en la utilizacin de un recurso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

  • 8/9/2019 JMPtesis. Uml

    23/407

    Universidad de Cantabria xxi

    2.69 Lista de EstimativeTimeInterval asociada aTimedAction . . . . . . . . . . . . . . . . . . . .1343.1 Organizacin de la arquitectura de un sistema en el modelo de 4+1 vistas . . . . . . . 1383.2 Sinopsis de los estereotipos empleados en el modelado de procesadores . . . . . . . . 1443.3 Estereotipos empleados en el modelado de las unidades de concurrencia . . . . . . . . 1463.4 Estereotipos empleados en el modelado de las redes de comunicacin . . . . . . . . . . 1493.5 Estereotipos para el modelado de operaciones y recursos protegidos . . . . . . . . . . . 1563.6 Representacin del modelo de actividad de operaciones compuestas . . . . . . . . . . . 1603.7 Ejemplo de declaracin de un Job con parmetros . . . . . . . . . . . . . . . . . . . . . . . . . . 1633.8 Ejemplo que presenta elementos del modelo de actividad del Job . . . . . . . . . . . . . . 1643.9 Estereotipos empleados en el modelado de transacciones . . . . . . . . . . . . . . . . . . . . 1753.10 Estructura de vistas y paquetes en que se aloja el modelo de tiempo real . . . . . . . . 1893.11 Contenido del modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1903.12 Contenido del modelo de la plataforma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1913.13 Contenido del modelo de la situacin de tiempo real a analizar . . . . . . . . . . . . . . . . 1933.14 Declaracin de las transacciones en el diagrama Control_Teleoperado . . . . . . . . . . 1934.1 Esquema de principios para el procesado de modelos . . . . . . . . . . . . . . . . . . . . . . . 1984.2 Extensin del entorno MAST con la vista de tiempo real . . . . . . . . . . . . . . . . . . . . 1994.3 Notaciones alternativas para especificar los Scheduling Servers,

    a falta de swim lanes en diagramas de actividad . . . . . . . . . . . . . . . . . . . . . . . . . . . 2034.4 Seleccin del entorno de inicio para la edicin de un nuevo modelo con la herramienta

    CASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2044.5 Wizard para la configuracin e insercin de componentes del modelo del tiempo

    real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2064.6 Men para la insercin de componentes en el modelo del tiempo real . . . . . . . . . . 2074.7 Men para la invocacin de herramientas para el procesamiento del modelo de tiempo

    real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2094.8 Men de ayuda con la documentacin de las herramientas para el procesamiento del

    modelo de tiempo real . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2104.9 Algoritmo principal para la extraccin de los modelos MAST a partir de la

    MAST_RT_View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2114.10 Fases del procesamiento de la vista de tiempo real que se describen para el ejemplo de

    aplicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2134.11 La herramienta con un modelo nuevo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2144.12 Edicin del Fixed_priority_processor Station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2154.13 Apertura del modelo de actividad asociado a una clase . . . . . . . . . . . . . . . . . . . . . . 2164.14 Informacin de salida del programa de extraccin de modelos MAST . . . . . . . . . . 2174.15 Ventanas para la utilizacin del entorno MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2184.16 Recuperacin de resultados en la vista de tiempo real . . . . . . . . . . . . . . . . . . . . . . . 2195.1 Herramientas asociadas al procesamiento de un perfil . . . . . . . . . . . . . . . . . . . . . . . 2225.2 Heterogeneidad de los mdulos considerados como componentes . . . . . . . . . . . . . 2235.3 Dependencias entre CBSE-MAST, UML-MAST y MAST . . . . . . . . . . . . . . . . . . . 2245.4 Dualidad descriptor-instancia en los elementos de CBSE-MAST . . . . . . . . . . . . . . 2275.5 Clases races del perfil CBSE-MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2285.6 Tipos de valores simples declarables mediante

    CBSE-Mast_Value_Descriptor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295.7 Clases de usos de recursos que son representables utilizando

  • 8/9/2019 JMPtesis. Uml

    24/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xxii Grupo de Computadores y Tiempo Real

    CBSE-Mast_Usage_Descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2305.8 Clases de modelos de recursos que son representables utilizando

    CBSE-Mast_Resource_Descriptor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2315.9 Formas de especificacin de la ubicacin de un componente . . . . . . . . . . . . . . . . . 2325.10 Modelo de tiempo real de un sistema o aplicacin en CBSE-MAST . . . . . . . . . . . . 2335.11 Gestin de ficheros en el anlisis de una aplicacin con CBSE-MAST . . . . . . . . . . 2355.12 Dependencias entre ficheros documentos y schemas . . . . . . . . . . . . . . . . . . . . . . . . 2365.13 Dependencias entre los componentes CBSE-MAST de ejemplo . . . . . . . . . . . . . . . 2425.14 Elementos de la aplicacin de ejemplo AlarmPolling . . . . . . . . . . . . . . . . . . . . . . . 2555.15 Procesamiento de modelos con el perfil Ada-MAST . . . . . . . . . . . . . . . . . . . . . . . . 2625.16 Seccin del metamodelo que describe el modelo de la plataforma . . . . . . . . . . . . . 2635.17 Seccin del metamodelo de componentes lgicos de Ada-MAST . . . . . . . . . . . . . . 2635.18 Jerarqua de operaciones que modelan la interfaz de componentes . . . . . . . . . . . . . 2645.19 Metamodelo del modelo de situaciones de tiempo real de Ada-MAST . . . . . . . . . . 2655.20 Modelo lgico de un componente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2675.21 Composicin estructurada de una transaccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2685.22 Modelado de un recurso protegido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2695.23 APC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2705.24 Diagrama de despliegue de la Mquina Herramienta Teleoperada . . . . . . . . . . . . . 2725.25 Diagrama de secuencia que describe la transaccin Report_Process . . . . . . . . . . . . 2735.26 Visin parcial del modelo de la plataforma de la Mquina Herramienta

    Teleoperada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2745.27 Extracto de la descripcin del componente MAST_Reporter . . . . . . . . . . . . . . . . . 2755.28 Transaccin Report_Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2765.29 Marco conceptual de un metamodelo para una metodologa de modelado escalable

    y basada en componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2806.1 La metodologa de modelado UML-MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282A.1 Estructura del Metamodelo UML-MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289A.2 Paquetes troncales del Metamodelo UML-MAST . . . . . . . . . . . . . . . . . . . . . . . . . . 290B.1 Esquema de conjunto de Real-time Perspective

    (realizado a partir de [MC00a]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .343B.2 Estructura genrica de una aplicacin en ACCORD/UML (reproducida a partir

    de [GTT02]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347C.1 Arquitectura del entorno MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351C.2 Ejemplo de transacciones en el modelo MAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353C.3 Elementos con los que se describe una actividad ([MASTd]) . . . . . . . . . . . . . . . . . 354C.4 Clases de gestores de eventos ([MASTd]) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360C.5 Secuencias tpica de pasos en el anlisis de modelos MAST . . . . . . . . . . . . . . . . . . 365

  • 8/9/2019 JMPtesis. Uml

    25/407

    Universidad de Cantabria xxiii

    Resumen

    El objetivo central de este trabajo es definir la metodologa UML-MAST para la representaciny anlisis del comportamiento de tiempo real de sistemas que han sido diseados utilizando el paradigma de orientacin a objetos.

    La metodologa que se propone concilia la disparidad de concepcin de los sistemas en tiempo

    real desde la perspectiva del diseador de sistemas orientados a objetos, que los concibe comoestructuras constituidas por objetos en los que se agrupan atributos y operaciones utilizandocriterios de dominio, y desde el punto de vista del diseador de tiempo real que los consideracomo sistemas reactivos constituidos por un conjunto de transacciones concurrentes que seejecutan como respuesta a eventos que proceden del entorno o de la temporizacin. A tal fin, seha definido un nivel de abstraccin adecuado para los elementos de modelado delcomportamiento de tiempo real, que permite formular modelos con una estructura paralela a laarquitectura lgica del sistema y as mismo, establecer asociaciones explcitas entre loselementos del modelo de tiempo real y los del modelo lgico. La semntica de modelado que seha utilizado sigue las recomendaciones del perfil UML para planificabilidad, rendimiento y

    tiempo (SPT) que ha sido propuesto por el OMG (Object Management Group), y del que UML-MAST puede considerase una implementacin.

    La metodologa de modelado de tiempo real que se propone ha sido formulada utilizando UML(Unified Modeling Language) a fin de integrarla conceptualmente con las representacionesfuncional, de despliegue y realizacin para sistemas orientados a objetos que tienen estelenguaje como estndar de representacin, y as mismo ser soportada por herramientascomunes. El lenguaje UML se ha utilizado en dos sentidos. En primer lugar, se ha utilizado paradefinir conceptualmente los elementos de modelado a travs de un metamodelo formal, del queel modelo de cualquier sistema es una instancia, y en segundo lugar se ha utilizado comolenguaje con el que se formulan estos ltimos modelos.

    La metodologa que se propone se ha definido como una parte del entorno de anlisis y diseode sistemas de tiempo real MAST (Modeling and Analysis Suite for Real-Time Applications) yms especficamente como una herramienta de generacin de modelos de tiempo real parasistemas orientados a objetos. Los modelos de tiempo real formulados utilizando UML-MASTse compilan al modelo MAST, son procesados con las herramientas de anlisis y diseodefinidas en l, y los resultados que se obtienen son referenciados al modelo inicial para suinterpretacin por el diseador.

    As mismo, se han definido criterios para la extensin de esta metodologa a otros niveles de

    abstraccin, y como ejemplos, se han formulado la extensin a sistemas basados encomponentes y a sistemas implementados utilizando el lenguaje de programacin Ada 95.

  • 8/9/2019 JMPtesis. Uml

    26/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    xxiv Grupo de Computadores y Tiempo Real

  • 8/9/2019 JMPtesis. Uml

    27/407

    1. Sistemas de tiempo real orientados a objetos

    Universidad de Cantabria 1

    Captulo 1

    Sistemas de tiempo realorientados a objetos

    El objetivo central de este trabajo es definir una metodologa para la representacin y anlisisdel comportamiento de tiempo real de sistemas orientados a objetos, que acerque la concepcinque del mismo tiene el diseador lgico cuando utiliza los mtodos de estructuracin orientadosa objetos a la perspectiva de diseador de tiempo real. A tal fin, en este captulo se analizan lasdiferencias entre ambas concepciones, la necesidad de conciliarlas como forma de abordar lacomplejidad de los sistemas que actualmente se disean, los antecedentes de trabajos que se han

    realizado en este sentido, y por ltimo, se enumeran y analizan los objetivos especficos que se plantean en este trabajo de Tesis.

    1.1. Sistemas de tiempo real y metodologas de diseoorientadas a objetoSon diversas las interpretaciones de lo que es y no es un sistema de tiempo real y ms an sobrelo que pretenden las metodologas que se proponen para su diseo y estudio, hay quienes inclusodenostan el trmino por pretencioso y vago. Existen sin embargo una definicin y un creciente

    cuerpo de conocimiento a su alrededor, segn los cuales quienes los modelan y analizan, pretenden precisamente contribuir a evitar que mtodos tan vagos y poco pretenciosos como losde ensayo y error sean empleados en la tarea de disear e implementar complejos sistemas decontinua interaccin con el mundo real.

    A fin de orientar el espectro de aplicaciones del trmino, y siguiendo la generalizacin que propone Selic en uno de los trabajos ms clarificadores en el tema [Sel99], entendemos en estetrabajo un sistema de tiempo real como un sistema informtico que mantiene una relacininteractiva y temporizada con su entorno.

    Cualesquiera que sean elentornoen el que opera un sistema de tiempo real y la pauta definida

    para el comportamiento esperado del sistema, la caracterstica principal de este tipo de sistemases que sus respuestas no slo sean correctas desde el punto de vista lgico o funcional, que es

  • 8/9/2019 JMPtesis. Uml

    28/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    2 Grupo de Computadores y Tiempo Real

    lo esperable de cualquier sistema informtico, sino que adems estas respuestas se den en unmarco temporal acotado y sea por tanto el sistema claramente predecible desde el punto de vistatemporal. Para el entorno habitual de este tipo de sistemas, una respuesta a destiempo puedellegar a ser catastrfica, eventualmente puede incluso ser peor que simplemente no responder.

    Cuando se dice que existe unarelacin interactivaentre sistema y entorno se entiende que elsistema dispone de las interfaces adecuadas para intercambiar estmulos con l y que estainteraccin es lo suficientemente relevante como para que el estar pendiente de ella constituyasu funcin principal. An cuando ste sea responsable adems de recibir, procesar y retornar informacin, se entiende que tanto su arquitectura como los criterios de diseo que lecondicionan, se definen influenciados en mayor medida por su carcter reactivo que por lanaturaleza de los algoritmos que deba implementar. Frecuentemente este tipo de sistemasoperan de manera continua, o por periodos de muy larga duracin, lo que adems de imponerlesun mayor ndice de fiabilidad, aumenta la necesidad de contar con un grafo de estados internosms rico, por cuanto a menudo deben adems llevar cuenta del estado esperado de su entorno.

    La naturalezatemporizadade esta interaccin implica la exigencia por parte del entorno de queel tiempo de respuestadel sistema, ante cada estmulo que de aquel recibe, satisfaga un plazo predeterminado. As como la identificacin y caracterizacin de los estmulos y la descripcinde las correspondientes respuestas esperadas, constituyen la especificacin de requerimientosfuncionales habitual de un sistema, la cuantificacin y cualificacin de sus plazos se constituyeen la especificacin de losrequisitos temporalesdel sistema. Cumplir los plazos que tieneestablecidos, es la esencia de todo sistema de tiempo real.

    La clasificacin ms habitual de estos requisitos, que lleva incluso a tipificar los propiossistemas de tiempo real, distingue entre plazosestrictos y plazos laxos. As cuando la

    satisfaccin de tales requisitos condiciona la viabilidad o el correcto funcionamiento delsistema, se dice que los plazos son estrictos y se especifican directamente en unidades detiempo, por lo general medido de forma relativa a la ocurrencia del estmulo que desencadenala respuesta. Si en cambio su potencial incumplimiento constituye tan slo una degradacin delas prestaciones del sistema o de su hipottico ndice de calidad de servicio, se dice que los plazos son laxos y se suelen especificar de manera estadstica.

    Adems del carcter reactivo y temporizado que define a los sistemas de tiempo real, esfrecuente que stos incorporen en mayor o menor grado otras caractersticas que afectan algrado de complejidad de estos sistemas [SGW94]. A continuacin se apuntan stas brevemente.

    Una vez analizado el entorno real del que proceden las condiciones del problema, a menudoresulta conveniente reflejar en la arquitectura o en el diseo del sistema informtico, laconcurrencia natural que se halla en la dinmica de los fenmenos reales a los que se pretenderesponder. Cuando esto es posible, se plantean las soluciones como procedimientosindependientes o parcialmente conexos, que tienen un propio flujo de control y que resultan asmucho ms sencillas de implementar y mantener. Este es el caso de los sistemasconcurrentes,en los que se definen distintosthreads o hilos de control al interior de los procesadores delsistema y se divide entre ellos la responsabilidad de resolver y llevar adelante las distintas tareasque el sistema tiene encomendadas. Si bien en este tipo de sistemas, la codificacin y laidentificacin de responsabilidades es mucho ms clara, se aade tambin el problema desincronizar y/o comunicar los threads cuando stos lo requieren y a la vez evitar los conflictosque en su caso se pueden llegar a generar y que son ampliamente conocidos [Gom93].

  • 8/9/2019 JMPtesis. Uml

    29/407

    1. Sistemas de tiempo real orientados a objetos

    Universidad de Cantabria 3

    De manera similar un sistema de tiempo realdistribuidoresponde a un entorno de naturalezadistribuida, bien sea sto por razones de potencia de clculo o por la propia distribucin espacialdel entorno, sin embargo sus requisitos funcionales y temporales suelen venir dados de maneraglobalizada. Los problemas que aparecen en este tipo de sistemas, no devienen slo de suestructura intrnsecamente concurrente, si no que aparecen otros asociados a la fiabilidad ylatencia de las comunicaciones, as como a la tambin distribuida probabilidad de fallo.Una ltima caracterstica a mencionar que se puede observar en sistemas de tiempo real, y quelos complica muy particularmente, es la necesidad de que suestructura internaseadinmica;con ello se alude bsicamente a aquellos sistemas en los que por efecto de algn estmuloexterno el sistema debe cambiar su modo de configuracin e incorpora al efecto algnmecanismo para la destruccin y generacin de objetos software en tiempo de ejecucin. Es elcaso tpico de los sistemas tolerantes a fallos.

    1.1.1. La abstraccin frente al desafo de la complejidad

    En base a las caractersticas mencionadas, se puede decir que el factor comn de los sistemasde tiempo real, al menos de los de tamao medio para arriba, es su elevada complejidad. Estaobservacin es ampliamente aceptada por la comunidad de software y con diversos matices seencuentra en la introduccin de prcticamente toda la bibliografa que se ha revisado y sereferencia en esta memoria. Incluso considerndolas por separado, tales caractersticascomplican ya significativamente la comprensin, el diseo y la verificacin del sistema, peroconsideradas de manera combinada, hacen cualquiera de estas labores extremadamentecompleja y demandan por tanto mayores recursos, ingenio y tiempo para llevarlos adelante.

    El mayor aporte a la complejidad en el diseo de un sistema de tiempo real sin embargo, esta

    dado justamente por la propia realidad a la que se enfrenta, no es posible controlar el tiempo,cuando mucho medirlo. Por otra parte como al resto del software, el ansia humana por lasofisticacin y la competitividad, hacen su ciclo de desarrollo girar y girar en busca de ms ymejor funcionalidad, lo cual aade a los meros requisitos funcionales, los habituales demantenibilidad, reutilizacin, etc.

    Ante cualquier problema al que se enfrenta la mente humana, lo primero en que se piensa pararesolverlo es en simplificarlo, ello a menudo implica describirlo, representarlo yeventualmente seccionarlo, luego identificar los trozos para los que se tiene ya algunasolucin y reusarla y con los que quedan, bien seguir algn algoritmo o mtodo que le sea de

    aplicacin o ensayar hasta dar con uno, o bien iterar el proceso hasta encontrar larepresentaciny particinadecuadas para obtener las soluciones.

    La clave para que este procedimiento funcione es la capacidad deabstraccin. El mecanismode la abstraccin se basa en la eliminacin de parte de las peculiaridades del ente o fenmeno bajo estudio, a fin de que lo que se retiene de l sea ms fcil de comprender o manejar, peroque a la vez sea lo suficientemente significativo del comportamiento o fenmeno que se quiereestudiar como pararepresentarlocon precisin a los efectos del tema en estudio.

    Cuando lasabstraccionesde todos los elementos en que se ha particionadoun problema, serealizan con un tema de estudio comn y de manera consistente, la combinacin de todas ellas

    constituye unmodelode ese sistema dentro del dominio de estudio elegido. No existe un modelo

  • 8/9/2019 JMPtesis. Uml

    30/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    4 Grupo de Computadores y Tiempo Real

    nico, ni correcto de una determinada situacin, slo modelos adecuados o no a un cierto fin, pues toda abstraccin es por definicin incompleta [RBP+91].

    El modelado, como herramienta de abstraccin y simplificacin de la realidad, es pues unatcnica extremadamente til para enfrentarse a la complejidad, al facilitar tanto la comprensin

    como la resolucin de los problemas. Los sistemas de informacin en general y las aplicacionessoftware de tiempo real en particular, precisamente por la complejidad que les caracteriza, sonun caso paradigmtico de esta afirmacin.

    El trminomodelorecibe muy diversos significados en funcin de su entorno de aplicacin yde su forma de representacin, incluso dentro de las reas tcnicas, as se pueden encontrar modelos matemticos, mecnicos, electrnicos, modelos de datos, etc. El ms prximo al casoque nos ocupa sin embargo, es elmodelo conceptual , su mbito de estudio proviene de lasciencias del conocimiento. A continuacin se presenta una traduccin de la definicin que se daen [BMW82]:

    ... tal modelo consiste en un nmero de estructuras de smbolos y manipuladores deestructuras de smbolos, los cuales, de acuerdo a una digamos que simple filosofa deaceptacin de la cualidad creadora e interpretativa de la mente, se supone que corresponden aconceptualizaciones del mundo realizadas por observadores humanos... 1

    La creacin de modelos conceptuales se ve auxiliada por tcnicas de abstraccin cuyas racesestn descritas tambin en mtodos epistemolgicos para la organizacin del conocimiento yentre ellas destacan laclasificacin, la agregaciny la generalizacin[BMW82], formas deabstraccin que han probado ser tiles en la descripcin de modelos complejos, al punto de queactualmente son la base de la tecnologa de conceptualizacin de sistemas orientada a objetos.

    Otras estrategias de modelado conceptual basadas en la abstraccin (o las mismas pero vistasde manera distinta), han sido identificadas como herramientas para enfrentar la complejidad, en[SGW94] se describen: larecursividad , elmodelado incremental y lareutilizacin, en [Boo94]se destacan preeminentemente junto a la abstraccin, ladescomposicin(divide y vencers) yla jerarquizacin(como forma avanzada de clasificacin y generalizacin).

    1.1.2. La orientacin a objetos y su representacin en UMLLos sistemas informticos, an los que se expresan directamente en un lenguaje de programacin, son modelos del mundo real o del entorno del problema real en que operan,

    modelos que estn orientados a satisfacer el conjunto de requisitos que le definen. En cuantomayor sea el nivel de abstraccin con el que stos son expresados, mayores sern las posibilidades de tales modelos de ser tiles a su propsito en el tiempo. Es decir de adaptarseante los cambios potenciales en la realidad de la que provienen.

    La evolucin histrica [Boo94] tanto de los lenguajes de programacin como de las estrategiasde descomposicin y conceptualizacin del entorno real de los sistemas y consecuentemente delas estrategias de anlisis y diseo de sistemas, ha ido transformando casi de formadarwiniana la actividad del desarrollo de software: de simplemente definir lo que tiene que

    1. Traducido del siguiente texto original en Ingls:...such a model consists of a number of symbol structures and symbol structure manipulators which, according to a rather naive menthalistic philosophy, are supposed to correspond to the conceptualizations of the world by human observers.

  • 8/9/2019 JMPtesis. Uml

    31/407

    1. Sistemas de tiempo real orientados a objetos

    Universidad de Cantabria 5

    hacer el ordenador, a encontrar cuales son las abstracciones esenciales del dominio del problema y la forma ms fidedigna de modelarlo. Y la estrategia de abstraccin y modelado quems xito ha tenido en el terreno del software en el curso de los ltimos 20 aos es el desarrolloorientado a objetos. (Las sucesivas batallas por la supremaca del mtodo estn muygrficamente descritas en [Dou00a]).

    El paradigma de orientacin a objetos tiene una larga lista de ventajas [Dou99] sobre su ms prximo antecesor, el desarrolloestructurado por descomposicin funcional , pero la ms claraest en la estabilidad del modelo conceptual del sistema frente a las siempre cambiantesnecesidades del mundo que le rodea. Al modelar un sistema de tiempo real, lo importante en esarelacin reactiva que sostiene con su entorno, es decir lo persistente en ella, no es la forma derespuesta esperada del sistema, que es el criterio de abstraccin esencial de la aproximacinfuncional, lo persistente es el sistema en si [Sel99]. De esta manera la atencin del modelador se centra en la estructura del sistema y no en la de su comportamiento, que es tanto mssusceptible de cambiar cuanto ms complejo sea el sistema. Por su parte, puesto que la

    estructura del sistema sigue la estructura fundamental del entorno real en que debe operar, susnecesidades de adaptacin dependern de la naturaleza esencial de esa realidad, que se entiendecambia a un paso relativamente menor.

    Una aplicacin en la que los mtodos de programacin orientada a objetos han tenido un xitoconsiderable por ejemplo ha sido la definicin de interfaces de usuario, en la que se gestionany relacionan multitud de propiedades en jerarquas y clases de objetos tales como ventanas, botones, barras de desplazamiento, listas, etc., a pesar de que stos no son reales, sin embargoobsrvese que casi todos estos objetos son metforas ms o menos logradas tomadas de objetosreales, para los cuales el usuario tiene ya asumida una semntica y una forma de uso esperada.

    Cuando un sistema se disea siguiendo una metodologa orientada a objetos, el esfuerzo dediseo se encauza por tanto hacia modularizar la arquitectura del sistema en funcin decomponentes (clases y objetos) definidos ms por su propia consistencia conceptual, que por el papel que juegan en la funcionalidad global del sistema. Algunas caractersticas fundamentalesde las arquitecturas orientadas a objetos son:

    Los mdulos estructurales bsicos son las clases y objetos que se conciben y se describenestticamente y dinmicamente por s y con independencia del sistema del que forman parte.

    Los mdulos se agrupan en estructuras jerarquizadas por relaciones asemejables al paradigma cliente-servidor, de modo que la funcionalidad que ofrece una clase u objetoes consecuencia de la funcionalidad que recibe de otras clases u objetos de las que escliente.

    La funcionalidad que ofrece un objeto es habitualmente utilizada dentro del sistema atravs de diferentes vas y en diferentes instantes de tiempo. Si el objeto es concebido para ser reusado, su funcionalidad podr ser utilizada tambin en otros sistemas.

    De acuerdo con [Boo94], el marco conceptual en el que se basa el paradigma de programacinorientado a objetos, es un modelo de objetos en el que se conjugan al menos los principios deabstraccin, encapsulamiento, modularidad y jerarquizacin, todas ellas tcnicas tanimportantes como tiles en la gestin de la complejidad. Otros elementos conceptuales o principios de abstraccin y modelado que se definen en el modelo de objetos, como eltipadoy

  • 8/9/2019 JMPtesis. Uml

    32/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    6 Grupo de Computadores y Tiempo Real

    la persistencia[Boo94] o el polimorfismo[Mul97], son tambin importantes pero ms biendesde el punto de vista de la programacin orientada a objetos, no tanto as desde la perspectivadel modelado conceptual en general.

    Por otra parte tanto el trabajo de [RBP+91] fundamentado en la definicin de los modelos

    estructural , dinmicoy funcional como visiones ortogonales del sistema, como el de [Boo94]que tiene un predicamento terico y prctico muy slido, definen metodologas y notaciones para la elaboracin de modelos de software orientado a objetos basadas en tcnicas yherramientas similares y adems previamente conocidas. Tales metodologas (OMT y Booch)entre otras formaron en muchos desarrolladores un cuerpo de conocimiento comn y losuficientemente rico como para que la propuesta de un lenguaje unificado de modelado UML[UML1.4][BRJ99][RJB99] iniciada por Rational Software Corporation, discutida por unamplio grupo de metodologistas y adoptada como estndar por el Object Management Group(OMG, http://www.omg.org) en 1997 haya sido tan bien aceptada por la industria del software.El aporte de los modelos decasos de uso[JBR99] con el que se especifican los requisitos del

    sistema, vino a completar el UML en este aspecto.UML es un lenguaje y como tal tiene unvocabularioy una gramticadeterminados. Comolenguaje de modelado, su gramtica, es decir el conjunto de reglas para la vinculacin de susvocablos, est organizada para la representacin de un conjunto acotado de patrones meta-conceptuales, que constituyen los modelos de representacin de conceptos propuestos en lastres metodologas que estn en su origen.

    De forma anloga, la semntica con que se define su vocabulario, tiene su origen en estosmodelos de representacin ya conocidos y aceptados por la comunidad de ingeniera delsoftware. Sin embargo de cara a su formalizacin, UML define para su propia descripcin un

    subconjunto mnimo del lenguaje con el cual modelar y por tanto describir los conceptos quefundamentan el propio lenguaje. Se origina as elmetamodelo UMLdel lenguaje, con l[UML1.4] [MOF] se describen el ncleo central y gran parte de los conceptos constitutivos deUML. En lafigura 1.1se muestran estos conceptos organizados en un cuadro sinptico hechoa partir del modelo conceptual de UML que se enuncia en [BRJ99]. De manera similar a lacategorizacin de los modelos en esttico dinmico y funcional que se establecen en el mtodoOMT, [Mul97] propone los siguientes modelos UML como unidades bsicas del desarrollo desoftware y como subconjuntos semnticos del sistema que se asocian a las distintas fases del proceso de desarrollo que se decida seguir:

    Modelo de clases para capturar la estructura esttica.

    Modelo de estados para expresar el comportamiento dinmico de los objetos.

    Modelo de casos de uso para describir las necesidades de los usuarios.

    Modelo de interaccin para representar los escenarios y flujos de mensajes.

    Modelo de realizacin para asentar las unidades de trabajo.

    Modelo de despliegue para precisar el reparto de procesos.

    En general UML se ha convertido en el estndar de facto para la representacin de software

    orientado a objetos durante todo el ciclo de desarrollo, tanto como forma de documentacin

  • 8/9/2019 JMPtesis. Uml

    33/407

    1. Sistemas de tiempo real orientados a objetos

    Universidad de Cantabria 7

    como para la especificacin e incluso para la generacin automtica de cdigo. Ello a pesar deque hay an varios puntos por mejorar en l a ese respecto [SG98].

    La utilizacin de las tcnicas orientadas a objetos, en la conceptualizacin, anlisis, diseo ysobretodo en la implementacin de sistemas de tiempo real, por sobre el resto de aplicacionesinformticas, ha sufrido un cierto retraso, quiz debido a la secular creencia de que la tecnologa

    Figura 1.1: Elementos fundamentales del modelo conceptual de UML

    Bloquesconstitutivos .....

    Reglassemnticas.........

    Mecanismoscomunes deaplicacin general

    Elementos ..........

    Relaciones ............

    Diagramas .............

    NombresAmbitoVisibilidadIntegridadEjecucin

    EspecificacinAparienciaCategorizacin

    comn ................

    Mecanismos deextensibilidad ......

    Estructura .............

    Comportamiento ...

    Agrupacin ............

    Anotacin ..............

    DependenciaAsociacinGeneralizacinRealizacin

    ClasesObjetosCasos de UsoSecuenciasColaboracinEstadosActividadComponentesDespliegue

    Clasificacin/Instancia

    Interface/Implementacin

    EstereotiposValores EtiquetadosRestricciones

    ClasesInterfacesColaboracionesCasos de UsoClases activasComponentes Nodos

    Interacciones .........

    Mquinas de estados

    Paquetes ..............

    Notas ...................

    MensajesSecuencias de accionesEnlaces

    EstadosTransicionesEventosActividades

    FrameworksModelosSubsistemas

    RestriccionesComentariosRequisitos

    {{{ {

    {

    {

    {

    {

    {

    {{

    {

    {

  • 8/9/2019 JMPtesis. Uml

    34/407

    Metodologa y herramientas UML para el modelado y anlisis de sistemas de tiempo real orientados a objetos

    8 Grupo de Computadores y Tiempo Real

    de objetos trae aparejada sobrecarga en el uso de memoria y degradacin en el rendimiento delsistema. Estos posibles efectos, cobran cada vez menos importancia con el avance en lacapacidad de las plataformas actuales, y viene siendo creciente su aceptacin y el inters en suutilizacin en aplicaciones tradicionales de sistemas de tiempo real [CTBG98].

    De hecho existen diversas metodologas para el desarrollo de sistemas de tiempo real basadasen la tecnologa de objetos y una muestra significativa del inters de la industria en este sentidola constituye la especificacin, recientemente aprobada por el OMG, para un perfil UML queincorpora aspectos necesarios para la representacin de sistemas con requisitos de tiempo real[SPT]. En el apartado1.3se describen diversos aspectos de este perfil.

    Otra posible causa de la lenta incursin de las tcnicas orientadas a objetos en la comunidad dedesarrolladores de sistemas embebidos1 de tiempo real, que apunta [MC00], es el deficientesoporte que ofrecen la mayora de herramientas comerciales para solventar apropiadamente lasnecesidades particulares del desarrollo de este tipo de sistemas, y entre otros factores el questas usualmente apuntan slo al diseo software del mismo sin hacer una visin a nivel desistema. As mismo entre las carencias de UML para describir modelos de sistemas de tiemporeal orientados a objetos, [MC00] apunta la falta de elementos especficos predefinidos en ellenguaje para representar otros conceptos estrechamente relacionados con el diseo de losmismos, tales como: componentes de hardware especficos y sus caractersticas, tareasconcurrentes y los mecanismos de comunicacin entre ellas o restricciones temporalesespecificadas bien a nivel de objetos, de tareas o incluso de hardware.

    Desde el lado positivo, algunas caractersticas que presenta el uso de UML para modelar sistemas complejos y que le hacen adems particularmente til para los sistemas embebidos detiempo real, son enunciadas a continuacin y se desarrollan con cierta amplitud en [Dou00]:

    Constituye por definicin un modelo orientado a objetos.

    Modela los casos de uso y escenarios del sistema.

    Facilita modelos de comportamiento mediante diagramas de estados.

    Facilita diversos niveles de empaquetamiento.

    Representa las actividades concurrentes y la sincronizacin entre ellas.

    Permite hacer modelos de la topologa de los componentes del sistema.

    Permite hacer modelos para la organizacin del cdigo de la aplicacin final. Soporta la representacin de patrones orientados a objetos.

    En otros trabajos se ha explorado con mayor o menor rigor la adecuacin de UML pararepresentar de manera formal los sistemas de informacin [LE99] [AMDK98] y msconcretamente la especificacin de las particularidades de los sistemas de tiempo real [EW99],con el propsito de obtener modelos formales de especificacin [RKT+00], validacin[LQV00] e incluso simulacin [SD01] a partir de modelos UML.

    1. El uso de este trmino proviene de la palabra en inglsembedded . Si bien su traduccin ms directa esempotradoy as se les suele llamar, el vocablo castellanoembebidoes ms adecuado en el contexto enque se emplea, menos propio an aunque tambin utilizado es el trminoembarcado.

  • 8/9/2019 JMPtesis. Uml

    35/407

    1. Sistemas de tiempo real orientados a objetos

    Universidad de Cantabria 9

    Sobre propuestas similares a las de [Dou00] para representar los requisitos temporales,[GHK00] considera tambin til UML y propone una forma de refinamiento del modelo a partir de diagramas de estados y de colaboracin con anotaciones temporales, que transforma elmodelo UML en una especificacin formal basada en una variante de TLA [Lam94] que facilitala verificacin de algunas propiedades temporales del modelo. Una aproximacin similar aunque con tcnicas distintas para la anotacin y evaluacin ofrece [AM00].Una conclusin general [EW99] que se puede extraer de estos esfuerzos es que UML puede ser considerado un lenguaje de especificacin formal siempre que se enriquezca con una semnticams precisa, que se caractericen las formas prcticas de refinamiento de modelos y seencuentren las transformaciones bsicas que permiten dirimir la consistencia entre vistas nocompletamente ortogonales del sistema.

    La gran dificultad de todos los retos que as se proponen, y las discrepancias manifiestas sobrelo que debe o no estar en el lenguaje, responden al hecho de que UML tan slo define unanotacin, un conjunto de conceptos bsicos y una serie de diagramas y tcnicas derepresentacin que si bien son tiles para expresar los modelos mencionados anteriormente[Mul97], no les acompaa as mismo una metodologa que alinee esos modelos, ni un procesode desarrollo de software que los haga significativos en contextos semnticos acotados o fasesclaramente delimitadas, y desde luego aunque incorpora los mecanismos de extensibilidadadecuados, est orientado en particular a la representacin del software y ms concretamente desoftware orientado a objetos.

    Y aqu reside quiz el xito que ha tenido UML, en el hecho de que cada cual hace con l lo quele hace falta y en que por ello, tanto las metodologas existentes antes de su aparicin como lasque se van generando, encuentran en l una forma de expresin que, con los naturales matices,

    les da un aire de universalidad y les facilita una amplia cobertura de herramientas para suautomatizacin, o al menos un marco de uso prctico preconcebido para su construccin.

    1.1.3. Metodologas de diseoSobre la base del modelo de objetos, se han desarrollado diversas metodologas de aplicacinespecfica al diseo de sistemas de tiempo real. Como parte de este trabajo se ha realizado unarevisin de stas y en el Apndice B se apuntan algunos detalles que describen de manerasucinta aquellas que en general han recibido mayor atencin, as como algunas otras que aunqueno tan conocidas siguen una aproximacin cercana al trabajo que aqu se presenta.

    Segn [SGW94] una metodologa para el desarrollo de sistemas, entendida en su sentido msamplio, se compone de una combinacin completa y coherente de tres elementos: un lenguajede modelado, una serie de heursticas o pautas de modelado y una forma de organizar el trabajoa seguir. Un cuarto elemento que no es esencial pero que se hace ms que til necesario en todaslas fases y niveles del proceso de desarrollo, y que est ntimamente relacionado con lametodologa a seguir, es la ayuda de una herramienta o grupo de ellas que faciliten laautomatizacin, el seguimi