[plantuml.com/es/archimate-diagram](https://plantuml.com/es/archimate-diagram) [ArchiMate](https://en.wikipedia.org/wiki/ArchiMate) is an open and independent **enterprise architecture modeling language** that supports the description, analysis, and visualization of architecture within and across business domains. An **ArchiMate Diagram** provides a structured representation of the various components of an enterprise, their **interrelationships**, and their integration with **IT infrastructure**. While both [ArchiMate](https://en.wikipedia.org/wiki/ArchiMate) and [UML](https://en.wikipedia.org/wiki/Unified_Modeling_Language) are modeling languages, they serve different purposes. UML is primarily used for software design and system modeling, focusing on the structural and behavioral aspects of systems. In contrast, **ArchiMate** is tailored for **enterprise architecture**, offering a holistic view of the organizational, informational, and technical layers of an enterprise. ```plantuml @startuml listsprite @enduml ``` ```plantuml @startuml listfont @enduml ``` ### Ejemplo simple: ```plantuml @startuml skinparam rectangle {   FontSize 10   Padding 4   Margin 5 } skinparam defaultTextAlignment center ' Usamos el sprite de Proceso de Negocio (estilo ArchiMate simple) sprite $bProcess jar:archimate/application-service sprite $aOperator jar:archimate/actor sprite $aMaintOp jar:archimate/technology-device sprite $aEvent jar:archimate/event sprite $aColaboration jar:archimate/communication-path ' === BLOQUES === rectangle "Tanque de Henkel\nllega a 5 pies de líquido" as A <<$aEvent>> #ff0000 rectangle "Operador Henkel avisa\npor radio a Alpla para recoger\nformulario de cambio" as B <<$aColaboration>> #8CD96B rectangle "Tanque de Henkel se vacía" as C <<$aEvent>> #ff0000 rectangle "Operador Henkel llama\npara poner TLO en manual" as D <<$aOperator>> #ff0000 rectangle "Henkel se queda sin producto\nen la línea" as E <<$aEvent>> #ff0000 rectangle "Operador Alpla mueve\npilas sobrantes manualmente" as F <<$aOperator>> #8CD96B rectangle "Operador cambia AVID\ny pide nuevas pilas" as G <<$aOperator>> #8CD96B rectangle "Operador llama a mantenimiento\npara ajustar Vetro al nuevo formato" as H <<$aColaboration>> #8CD96B rectangle "Operador acepta nuevo AVID\nen giradores 1 y 2" as I <> #8CD96B rectangle "Operador cambia partes de formato\nen giradores 1 y 2" as J <<$aOperator>> #8CD96B rectangle "Operador avisa por radio que\nHenkel Alpla está listo" as K <<$aOperator>> #8CD96B rectangle "Operador pone la línea en automático\na pedido de Henkel" as L <<$aMaintOp>> #8CD96B rectangle "Mantenimiento inicia cambio\ntransportadores Vetro" as M <<$aMaintOp>> #FFC933 rectangle "Mantenimiento cambia\ncámara Keyence" as N <<$aMaintOp>> #FFC933 rectangle "Mantenimiento verifica cambio\ncompleto de transportadores" as O <<$aMaintOp>> #FFC933 ' === FLUJO HASTA E (left->right por defecto) === A -right-> B B -right-> C C -down-> D D -left-> E ' === DESDE E: FORZAR TOP-DOWN === E -down-> F F -left-> G G -left-> H H -down-> I I -down-> J J -down-> K K -down-> L ' === MANTENIMIENTO: rama lateral y vertical === H -down-> M M -down-> N N -down-> O @enduml ``` ### Sequence Diagram **** ```plantuml @startuml title Changeover hide footbox skinparam ArrowHeadColor none skinparam NoteBackgroundColor #F0F0F0 skinparam NoteBorderColor #999999 skinparam ParticipantPadding 100 skinparam BoxPadding 6 skinparam WrapWidth 250 legend right Agreed: - **AV** (must be forwared to Autefa, must be shown on your HMI’s) - **AV Desc** (must be shown on you HMI’s) - **Product Family** (must be used by Vetro to select right Recipe) - **Customer article Number** (used by Vetro to find matching AV) endlegend ' ==== Estilos reutilizables ==== !define VAR(x) x !define SIG(x) x !definelong Nota($donde, $text) note over $donde $text end note !enddefinelong !definelong NotaParalela($donde, $text) / note over $donde $text end note !enddefinelong !definelong Variable($donde, $text) hnote right $donde #AAFFFF $text end note !enddefinelong !definelong VariableCentro($donde, $text) hnote over $donde #AAFFFF $text end note !enddefinelong !definelong VariableParalelo($donde, $text) / hnote right $donde #AAFFFF $text end note !enddefinelong participant HENKEL as H participant Alpla as A participant Vetromeccanica as V participant AUTEFA as U == Before Changeover == Nota(H,Send VAR(IDH_BTL_NEXT) number to be validated) == Data_To_EbConvey[38] == Nota(H,Validate VAR(IDH_BTL_NEXT) and send acknowledge) Variable(H,Data_From_EbConvey[0].2) == Step 1 == Nota(H,Operator manually selects "Line Clearance" (?) and send signal "0" on VAR(CalculatedBottlesRemainingToFill).) Variable(H,Data_To_EbConvey[23]) == Step 2 == Nota(A,Stops taking bottles out of trays and sends what is already on the tables and conveyors.) NotaParalela(V,Emptying Merger and Line) NotaParalela(U,Stops taking bottles out of trays and sends what is already on the tables and conveyors.) Variable(V,TG10 Send 0 in Bottles for Actual Batch) == Step 3 == Nota(H,Operator verifies line is empty and sends "changeover request" signal after last bottle goes through filler.) Variable(H,Data_To_EbConvey[0].0) == Step 4 == Nota(A,'Operator verifies line is empty and sends "line is busy with changeover",confirming on Popup screen') Variable(A,Data_From_EbConvey[0].0) == Step 5 == Nota(V,Starts changeover) NotaParalela(U,Starts changeover) Variable(V,Data_From_EbConvey[0].0) VariableParalelo(U,Data_From_EbConvey[0].0) == Step 6 == Nota(V,Ends changeover. Sends signal "Changeover is finished and ready.") NotaParalela(U,Ends changeover. Sends signal "Changeover is finished and ready.") Variable(V,Data_From_EbConvey[0].1) VariableParalelo(U,Data_From_EbConvey[0].1) == Step 7 == Nota(H,Send Reset counters signal) NotaParalela(V,Reset Counters) Variable(H,Data_To_EbConvey[0].1) == Step 8 == Nota(H,Send new value on VAR(CalculatedBottlesRemainingToFill)) Variable(H,Data_To_EbConvey[23]) == Step 9 == Nota(H,Send Changeover Complete. To be considered "Production Ready") NotaParalela(A,Starts conveying bottles.) NotaParalela(V,Finish Changeover Cycle) Variable(H,Data_To_EbConvey[0].2) @enduml ```