Mas afinal, quais as diferenças entre a notação de dependência e associação no diagrama de classes UML ?
Estive pesquisando mais a fundo a notação UML, em fontes como StackOverflow, Blogs, e até a própria especificação oficial na versão 2.5.1, e acabei ficando mais confuso do que entendendo de fato.
Minha princípal dúvida foi qual a diferença da notação de dependência:
classDiagram
classA <.. classB
Para notação de associação:
classDiagram
classC <-- classD
Sei que agregação e composição são tipos de associação, e que na associção a dependência é implícita, porém ainda não estou seguro sobre essa diferença entre associação e dependência. Não sei quando utilizar uma ou outra notação.
UML me parece algo por vezes abstrato, que sofre ligeiras variações de definição entre a comunidade, até mesmo a última versão da especificação (2.5.1) existe possíveis "inconsistências" apontada por usuários, além de ter uma lista gigante de problemas abertos
Digam vocês, como vocês utilizam UML no dia a dia e com qual profundidade? o quão UML se torna uma ferramenta útil pra vocês e em qual nível de detalhe? Qual é a efetividade da UML?
Fonte:
Tem uma pergunta no stackoverflow, e nessa pergunta, outros usuários apontam outras diversas fontes, muitas repostas são distintas apesar de ter algumas semelhanças.