Eu gosto de pensar que tudo ao nosso redor pode ser representado, de uma maneira ou de outra, através de um diagrama. Mesmo que seja apenas um diagrama linear que representa a transição entre os estados de um objeto em particular ao longo do tempo (como um ser vivo, passando por vários estados, do nascimento à morte). Uso diagramas para apresentar meus pensamentos e idéias para a implementação real. Eu improviso bastante.
Portanto, meus diagramas estão na maioria das vezes em um nível muito alto e parecem mapas mentais .
Para citar alguns exemplos, este é realmente um mapa de herança de classe (um que foi cortado) no meu jogo em que Objeto Interativo é o tipo base.
Este é um FSM ( máquina de estado finito diagrama) para uma armadilha spikes (aquelas armadilhas impressionante em que você pisa e woosh picos de mostrar-se a partir do solo).
Este é um diagrama do manual (denominado dessa maneira porque se destina a ser um diagrama de retorno frequente ) que desenhei recentemente. Ele descreve os componentes de um jogo e também ajuda na coleta dos recursos necessários, pois você pode ver imediatamente o que é necessário e o que não é. Eu os recomendo em pequenos projetos, pois eles são enormes nos grandes. Eles podem ser ampliados ainda mais, para que possam consertar as coisas.
Quando eu vou para um nível mais baixo, geralmente é porque eu preciso planejar os aspectos mais complexos da minha arquitetura, e geralmente lido com a UML lá. Eu nunca me concentro em produzir UML absolutamente limpo e correto. Adotei o que mais gostei na convenção UML e a transformei em uma boa UML de mindmap-ish. É simples e faz o trabalho para mim, mas eu não aceitaria isso em um ambiente em que a UML real é esperada, por razões óbvias.
Outra situação em que tenho que ir para um nível mais baixo é quando tenho que descrever algoritmos reais. Eu uso o que chamo de diagramas de fluxo . É um formato inspirado nos diagramas usados nos testes de caixa branca .
Uma amostra da armadilha de espigões que eu desenhei agora seria assim:
Normalmente, essa é a camada final entre diagramas e implementações reais de algoritmos. Se houver necessidade, detalho mais os diagramas de fluxo (com instruções extra executadas), deduzo ou estimo a complexidade e construo casos de teste precisos. Também prefiro diagramas do que pseudocódigo.
Não relacionado ao desenvolvimento de jogos, também tenho um bom formato para descrever as telas em um aplicativo com várias telas, a funcionalidade que o usuário pode acionar em cada tela e o relacionamento entre as telas. Normalmente, eu as construo antes de iniciar o desenvolvimento real e elas agem como um mapa durante todo o processo de desenvolvimento. Se for para um cliente, o diagrama da tela é ainda mais útil! Isso me ajuda a percorrer todo o projeto, do começo ao começo, e levar em consideração todas as funcionalidades necessárias. Portanto, é inestimável fornecer uma estimativa precisa de custo e tempo.
Então sim, eu definitivamente diagrama tudo e tudo. Se eu tiver uma idéia, eu posso e definitivamente vou desenhar um diagrama para ela. Se, de alguma forma, começo um projeto sem pelo menos um diagrama muito amplo para me apoiar, sinto-me aleijado.