Chamadas de fluxograma e método

11

Estou fazendo alguns fluxogramas e estou me perguntando se estou abordando isso corretamente. Em essência, tenho várias chamadas de método e estou fazendo um fluxograma de cada uma separadamente. No entanto, vários desses métodos chamam um método para obter algumas informações e, em seguida, continuam. Veja este exemplo:

insira a descrição da imagem aqui

Eu tenho três outros métodos que também chamam GetQueue () e estou me perguntando se estou representando isso corretamente. O fluxo AddQueue () visualmente parece que está quebrado.

NOTA: Alterações feitas no meu fluxograma:

insira a descrição da imagem aqui

Keith Barrows
fonte
Esse nível de detalhe pictórico é realmente necessário? Eu sei que, ao mesmo tempo, fluxogramas como esse eram populares, mas hoje parecem desvalorizados por muitas razões ... Essencialmente, são uma forma redundante de documentação; você deve mantê-los atualizados e o código já deve representar adequadamente o que é mostrado no fluxograma de qualquer maneira (o que significa: é melhor gastar o tempo produzindo mais código).
Robert Harvey
Foi solicitado antes de eu passar para outro cliente.
Keith Barrows
@ Robert Harvey: Os fluxogramas eram úteis antigamente, quando as pessoas escreviam códigos de máquinas ou montadoras diretamente. Eles podem ter sido úteis para os primeiros programadores do FORTRAN e do BASIC, que não tinham uma boa variedade de estruturas de controle. Hoje em dia, bem, a única razão pela qual eu os faria é se um cliente os quisesse como entrega e estivesse disposto a me pagar adequadamente.
David Thornley 12/05
Ao desenvolvê-los do zero, achei muito útil usar adesivos amarelos, girando os 90 graus para decisões. Isso permite movê-los e inserir processos entre eles. Quando todos estiverem donos, insira-os no seu software.
Michael Riley - AKA Gunny
Eu ainda uso fluxogramas ocasionalmente, apesar de achar que o teste de unidade geralmente é melhor para o mesmo objetivo. Eles não são entregas, no entanto; Eu os uso para obter um fluxo de controle direto na minha cabeça.
Michael K

Respostas:

2

Recentemente, fiz alguns gráficos de fluxo e lutei com o mesmo problema, como apresentar chamadas de sub-rotina, ou talvez chamadas de método e função, como você pode chamá-las atualmente.

Eu estabeleci uma convenção que separo as sub-rotinas CHAMADAS das sub-rotinas REFERENCES. Para o primeiro, uso um retângulo comum que mostra a chamada com argumentos sendo feitos, usando as variáveis ​​que estão em vigor naquele momento na execução do programa.

Eu uso o retângulo de "processo predefinido" duplamente lados simplesmente como referência a outro fluxograma que contém a definição dessa função ou sub-rotina. O retângulo da sub-rotina não precisa mostrar os argumentos da sub-rotina, uma vez que isso faz parte do fluxograma de definição da sub-rotina em questão, mas pode ser útil adicioná-los já na referência para que quem o ler possa veja o significado dos argumentos reais usados ​​em uma chamada.

Isso aumenta o número de retângulos, mas torna mais claro que esses outros fluxogramas existem para procurar a definição de algumas das funções chamadas. Frequentemente, se uma função é simples, não criarei um diagrama separado para ela, mas apenas a documento verbalmente.

Também uso o símbolo "documento" para dizer que os detalhes devem ser consultados na listagem de códigos.

O objetivo de um fluxograma para mim não é criar um programa, mas facilitar a compreensão de um programa por outras pessoas. Eu acho que a ajuda como uma visão panorâmica e que o objetivo deles deve ser lembrado. Eles não são para descrever visualmente TODOS os detalhes do seu programa, os detalhes são visíveis no código quando necessário. O fluxograma é apenas uma imagem do seu programa do ponto de vista de alto nível.

Manter os fluxogramas em alto nível também significa que há menos necessidade de mantê-los atualizados à medida que o código é modificado.

São fotos. Como qualquer boa documentação de software de história, também deve haver imagens que dêem um ponto de vista alternativo ao código.

Panu Logic
fonte