I am creating a sequence diagram that shows the interaction between various components. I would like to be able to split the sequence diagram into two and be able to combine them, so I get the same effect as having developed only one. This is useful for maintainability, because one of the two diagrams can be used by more diagrams.
Example let's say that there is a frontend and backend component with the following interactions. Ideally, I would like to have two UMLs with FE and BE and being able to generate one unified, so whenever I change the BE internal processes the unified can be updated (after a regeneration of course)
Is there any way to do this with puml ?
http://www.plantuml.com/plantuml/png/RPB1xg8m4CRlFCN44tjO7u33nks2MHDFctWcbKwqMMYnqwhxzbigynTYJoBp-xxo6zYHbyw7eI-yzZr27ORXNt6sJzZicqq10316G7TwbCPFD-5qs80as3VRqo4B_B8E6Pck2pGAOkMhLkHgHGD_yFPR6jMZIrdHRDztie4JeViP_9Ln_f-5HI3I1edWQ2-wuumuPkbQC52B17mfoE2j2SCPNP4M0Dz_i2PKuB13VSVMuIqW-L9-AtWOkPLI1NVPQoKzJjHgDBFiyoRRGEXAkPr-KeQHEL4BgE22Vit9tiDq1SeYWR4UyAd99wyKIWv9fW9qpheocB_6FapxAi2Ua6a-ySC7gdH8A-CGJToczAZA63OgQoUECJ4wso7HSbzfjFHnA5KRxMN9myy2da-gsgHrGUfaJSwjDMUKZsTJ3cJUcKCQhI4iPTwCluMAZs_d9qIr_1ZuIIgWgtsqozPTh0r3_ny0
@startuml
title Dummy
box "FE"
participant "FE UI" as FE.UI
participant "FE Core" as FE.Core
end box
box "BE"
participant "BE ReqHandler" as BE.ReqHandler
participant "BE UserAuth" as BE.UserAuth
participant "BE Bussiness Logic" as BE.BL
participant "BE DB" as BE.DB
end box
autonumber
FE.UI -> FE.Core : receive_request(a)
FE.Core -> BE.ReqHandler: validate(a)
BE.ReqHandler -> BE.UserAuth: validate_user(a.user)
BE.UserAuth -> BE.DB : get_user(a.user)
alt user does not exist
BE.DB -> FE.UI : error(unknown_user)
else
BE.UserAuth -> BE.ReqHandler : user_authenticated()
end
BE.ReqHandler -> BE.BL : process_request(a)
BE.BL -> BE.DB : read_data()
BE.BL -> BE.BL : process_data()
alt invalid request
BE.BL -> FE.UI : error(invalid_request)
else
BE.BL -> BE.ReqHandler: response(a)
end
BE.ReqHandler -> FE.Core: request_processed(a)
FE.Core -> FE.UI: show_response(a)
@enduml