Recent Posts

O que é Regra de Negócio?

Deduzo que antes do lançamento do microcomputador o termo regra de negócio era algo interpretado totalmente isolado dos softwares empresariais, ou talvez nem fosse um termo conhecido pelas pessoas.

Nos tempos atuais é difícil encontrar alguém que entende regra de negócio como algo isolado do software. Quando se fala “regra de negócio”, praticamente “sempre” é no contexto de um sistema.

É possível uma empresa mais arcaica viver sem software, mas não consegue viver sem regras de negócio.
(more…)

O que é Requisito Funcional

O que é um Requisito Funcional? Vamos primeiro ao que é Requisito. Requisito é uma exigência, solicitação, desejo, necessidade.

Quando falamos de um Requisito Funcional estamos nos referindo à requisição de uma função que um software deverá atender/realizar. Ou seja, exigência, solicitação, desejo, necessidade, que um software deverá materializar.

Um Requisito Funcional é um Requisito de Software.

O que é Requisito Funcional - Relacionamento entre Requisitos

É comum os profissionais de engenharia de software associarem a ideia de um requisito funcional a uma tela, uma rotina, que no fim serão as funcionalidades de fato de um sistema.

Mas é necessário entender que uma funcionalidade não necessariamente realizará apenas um Requisito Funcional. 

Uma funcionalidade pode realizar vários Requisitos Funcionais – significa que em uma funcionalidade um ou mais Requisitos Funcionais podem ser atendidos, não necessariamente apenas um. Se pensarmos em multiplicidade, uma funcionalidade pode realizar um ou muitos Requisitos Funcionais (1.. *).
(more…)

Porque os projetos dão errado?

titanic-fracasso-projetos-de-software

Antes de começarmos: projetos não falham. Pessoas falham. Mas pessoas não gostam de assumir culpa sobre seus erros, então é usual falar que “o projeto deu errado”, “o projeto falhou”.

Nos últimos quatro anos conheci uma figura que repetia semanalmente para os seus superiores: “o projeto é complexo demais, precisamos de mais tempo, mais dinheiro, o sistema é muito complicado”.

Isso durante quatro anos. O projeto ainda não acabou, está indo para o quinto ano. Agora ele fala que o problema é que o cliente foi omisso durante os quatro anos, e deixou o projeto solto. Esta figura não faz bem seu trabalho, mas não reconhece isso.
(more…)

Sintaxe e Semântica – Forma e conteúdo na produção de software

Sintaxe e Semântica - Forma e conteúdo na produção de software

Sintaxe e Semântica

Tudo na vida possui forma e conteúdo. Mas um bom conteúdo com forma ruim é problema, e uma forma bacana com conteúdo ruim, pior ainda.

Projetar software é lidar com isso toda hora. Modelos, especificações, código: precisam de uma boa forma (sintaxe) e um bom conteúdo (semântica). Entender como ter qualidade na sintaxe e na semântica é fundamental!

Na Engenharia de Software quando falamos de sintaxe geralmente nos referimos à forma de escrever código fonte (palavras reservadas, comandos, recursos diversos).

Aprendemos na escola que sintaxe é algo sobre regras para escrever em linguagem natural na produção de textos, então é natural tal “analogia”; mas é pobre.
(more…)

Entendendo definitivamente o que é um Caso de Uso

O que seria um “caso de polícia”? Seria uma estória que descreveria uma cena policial, um crime ou investigação, por exemplo.

O que seria um “caso de novela”? Seria uma estória que descreveria uma trama, por exemplo, que se passa numa novela. Quando alguém quer contar alguma coisa a alguém, nos detalhes necessários, é comum dizer: “vou lhe contar um caso”.

O que é Caso de Uso? Vai na mesma linha. Tem como objetivo “contar a alguém”, descrever como será o uso de uma funcionalidade de um sistema.

A diferença é que, para contar este caso, existe um padrão para fazê-lo, um conjunto de regrinhas que serve para padronizar o “conto”, de maneira que o leitor da “estória que está sendo contada” – que poderá ser o programador do sistema que utilizará o caso de uso para codificar a funcionalidade ou o usuário que utilizará o caso de uso para validar a funcionalidade ou outro profissional – entenda a funcionalidade de uma maneira única, seguindo um padrão específico.
(more…)

Exemplos de Requisitos Não Funcionais

Após a publicação do post O que é um Requisito Não Funcional vários leitores solicitaram exemplos de Requisitos Não Funcionais especificados. Sem dúvida que ver a especificação produzida ajuda muito a entender o que deve ser feito.

Neste post temos um exemplos de Requisitos Não Funcionais para cada uma das categorias existentes para este tipo de requisito. Observem o nível de detalhe de cada requisito especificado, isso é um dos fatores mais importante neste trabalho.
(more…)

O que é um Requisito Não-Funcional

O que é um Requisito Não-Funcional? Como o próprio nome diz, é uma “não funcionalidade”, ou seja, trata-se de algo que não é uma funcionalidade, mas que precisa ser realizado para que o software atenda seu propósito.

Existe uma definição propagada na literatura de Engenharia de Software que afirma que um Requisito Funcional define o que o sistema fará, e o Requisito Não-Funcional define como o sistema fará.

Alguns afirmam que um Requisito Não-Funcional especifica como um Requisito Funcional será implementado; também não é uma boa definição, pois uma funcionalidade teoricamente pode ser implementada sem nenhum Requisito Não-Funcional no projeto e isso não gerar ônus nenhum.

Acho que nenhuma dessas definições é suficiente, não dá para entender muito bem; tem outra que diz que requisitos não funcionais são atributos de qualidade para o sistema, essa eu já acho melhor, mas ainda um pouco subjetiva.

(more…)

Priorização de Requisitos

Priorização de Requisitos
Só não há a necessidade de realizar a Priorização de Requisitos em projetos onde os recursos são ilimitados.

Mas projetos com recursos ilimitados existem?

Não, obviamente.

E por esta realidade que precisamos escolher o que será “feito primeiro” e o que será “feito depois”.

Não é possível todos os requisitos terem a mesma prioridade.

Em projetos em que se acredita que sim, todos tem a mesma prioridade, observe e verá que a probabilidade de sucesso é muito baixa.

Requisitos e Escopo

Quando falamos em escopo do sistema (não escopo do projeto), estamos falando de requisitos (tanto funcionais quanto não funcionais, e também regras de negócio)

Obs.: para entender a diferença entre requisito e regra de negócio, veja este post).

A grosso modo, vamos entender como requisito tudo aquilo que deve ser feito no sistema, que compõe o escopo do sistema. Se quiser saber mais sobre Requisito de Software, veja mais aqui.
(more…)

Design Pattern Facade

Façade

Façade

Façade (ou Fachada, em português) é um termo muito oriundo da área de Arquitetura.

A grosso modo, podemos entender como a parte de fora de uma construção, que isola o mundo exterior o mundo interior.

Quando levamos o conceito para a Engenharia de Software, focando a arquitetura/estrutura de um sistema, do ponto de vista de semântica, a ideia é a semelhante.

Estruturalmente falando, isolamos partes do sistema (sub-sistema) com o uso de uma fachada (façade) e somente através dela (passando por ela) é que temos acesso ao sub-sistema.

/* Quando me refiro a “sub-sistema” pode se tratar de várias coisas: uma classe/objeto, um conjunto de classes/objetos [biblioteca, framework, API etc.], um módulo de um sistema, um conjunto de webservices etc. Neste post vamos nos referir sempre a sub-sistema, para padronizar o uso do termo no texto e facilitar o entendimento. */
(more…)

Valor do Ponto de Função

Valor do Ponto de Função

Unidades de Medida e Composição de Preço do Software

Precificar um produto ou serviço é uma tarefa relativamente simples.

Basicamente, trata-se de somar custos de produção + impostos + margem de lucro e o valor final é o preço a ser cobrado pelo produto ou serviço.
(more…)

Mensagens de Sistema

Mensagens de Sistema

Mensagens de sistema é algo extremamente importante, mas quase sempre relegado a “perfumaria”.

Do ponto de vista de orientação do usuário e até mesmo do desenvolvedor, é uma bussola! (more…)