Postagens

Mostrando postagens de Março, 2017

Levantamento de requisitos

Hoje o papo é sobre o começo do processo de engenharia de software: os requisitos.

Vou começar com uma analogia que gosto de fazer. Imagine que você não se sentiu bem e foi a um pronto-socorro. Agora, imagine que o médico que o atendeu não examinou direito e já receitou um remédio, mas não era exatamente para o problema que você tinha. Você não melhora, vai a outro médico, que o analisa corretamente, pede exames complementares e dá um diagnóstico mais preciso, encaminhando ao tratamento adequado.

Bem, se você quiser sair fazendo o software, sem fazer o levantamento e a análise dos requisitos, você estará receitando um remédio para um problema que você nem sabe qual é. Não parece nada bom, não é mesmo?

Os requisitos servem para formalizar o domínio do problema. Não que software ou o negócio do seu cliente sejam problemas. É que se chama de problema o desafio que se tem ao preparar um software para apoiar um determinado objetivo, normalmente de algum negócio.

A arquitetura e a codificaç…

Requisitos conflitantes e dilemas no projeto de software

Ah, os trade-offs... Todo projeto nós os encaramos. E temos que tomar decisões. Daquelas importantes, que podem gerar desconforto para algum envolvido.

Antes de mais nada, afinal, o que é esse tal de trade-off? Este termo é utilizado para indicar uma situação que é necessária uma escolha, para resolver um certo conflito. Um exemplo que sempre cito é: um stakeholder solicita que o sistema seja extremamente seguro e quer que seja aplicada uma complexa criptografia em tudo o que se possa imaginar. Legal. Mas outro stakeholder solicita que o software entregue as resposta com o máximo de desempenho possível. Hummm... Aquela criptografia, solicitada pelo primeiro, degrada a performance do sistema. E agora? Eis o tal do trade-off.

Bom, sei que é clichê, mas aqui não tem muito certo ou errado. A dica para lidar com os trade-offs é avaliar cada requisito sob vários aspectos. Julgo que o mais importante é quanto de valor aquele requisito incorpora ao sistema e a quem o solicitou. Quão important…

Rastreabilidade: da necessidade do cliente ao produto pronto

Você já se perguntou de onde veio alguma fórmula mágica que está escrita no código? Ou já se deparou com o desafio de avaliar qual seria o impacto de um requisito que mudou? Para deixar sua vida mais fácil, o que é necessário é que seu projeto tenha rastreabilidade.

E o que é rastreabilidade? É tornar evidente o vínculo entre as etapas e entre os artefatos gerados durante o processo, para saber qual a sua origem ou motivação.

O ideal é que uma necessidade do cliente seja mapeada em um ou mais requisitos. Não basta apenas evoluir o texto da necessidade de forma a gerar os requisitos, tornando-o objetivo e passível de testes. É preciso documentar que a primeira está associada a esses requisitos. A forma de fazer isso pode variar. Há quem crie matrizes de rastreabilidade, que funcionam bem. Também é possível identificar necessidades e requisitos com códigos inteligentes, de modo que uma parte do código dos requisitos seja justamente o da necessidade que o motivou - o que funciona para a …