Na modelagem UML, é possível utilizar um relacionamento de extensão para especificar que um caso de uso (extensão) estende o comportamento de outro caso de uso (base). Esse tipo de relacionamento revela detalhes sobre um sistema ou aplicativo que normalmente estão ocultos em um caso de uso.
O relacionamento de extensão especifica que a incorporação do caso de uso de extensão depende do que acontece quando o caso de uso base é executado. O caso de uso de extensão possui o relacionamento de extensão. É possível especificar vários relacionamentos de extensão para um único caso de uso base.
Enquanto o caso de uso base é definido independentemente e é significativo por si próprio, o caso de uso de extensão não é. O caso de uso de extensão consiste em uma ou várias seqüências de comportamento (segmentos) que descrevem o comportamento adicional que pode aumentar de forma gradativa o comportamento do caso de uso base. Cada segmento pode ser inserido no caso de uso base em um ponto diferente, denominado um ponto de extensão.
O caso de uso de extensão pode acessar e modificar os atributos do caso de uso base; no entanto, o caso de uso base não está ciente do caso de uso de extensão e, assim, não pode acessar nem modificar os atributos e operações do caso de uso de extensão.
É possível incluir relacionamentos de extensão em um modelo para mostrar as seguintes situações:
Os relacionamentos de extensão não possuem nomes.
Como a figura a seguir ilustra, um relacionamento de extensão é exibido no editor de diagrama como uma linha tracejada com uma seta aberta que aponta do caso de uso de extensão para o caso de uso base. A seta é rotulada com a palavra-chave «extend».
Você está desenvolvendo um sistema de e-commerce no qual possui um caso de uso base denominado Place Online Order que possui um caso de uso de extensão denominado Specify Shipping Instructions. Um relacionamento de extensão aponta do caso de uso Specify Shipping Instructions para o caso de uso Place Online Order para indicar que os comportamentos no caso de uso Specify Shipping Instructions são opcionais e ocorrem apenas sob determinadas circunstâncias.