Engenharia de Software: Engenharia de Requisitos

Artigo da Série Engenharia de Software.

O tema de hoje: Engenharia de Requisitos.

Engenharia de Requisitos é o processo de definir, documentar e manter os requisitos em Engenharia de Software.

Quais as principais atividades?

Antes de mostrar quais as atividades estão envolvidas na Engenharia de Requisitos, é importante fazer um Estudo de Viabilidade com as partes interessadas, para saber se a solução a ser implementada agrega valor ao negócio, se tem orçamento, se tem integração e se já não existe uma solução pronta de mercado.

Após o estudo teremos:

  • Levantamento (Elicitação)

Analistas e Stakeholders se reunem para levantar necessidades. Aqui podemos fazer uso de técnicas como: Entrevistas, Questionários, Workshops de Requisitos, Cenários, Prototipagem e Etnografias (vivenciar na prática a situação, semelhante aos Laboratórios que atores realizam pra montar uma personagem).

  • Análise/Negociação de Requisitos

Aqui classificamos, resolvemos conflitos ( inclusive políticos), priorizamos e confirmamos os requisitos.

  • Especificação

Esta é a atividade de documentação e modelagem. Definimos requisitos para os usuários, requisitos de sistema, o design da aplicação. Estes requisitos classificamos como requisitos funcionas (RF) e requisitos não funcionais (RNF). Criamos Casos de Usos, e outros diagramas presentes na UML.

  • Validação

Com a documentação em mãos, o analista de requisitos verifica e valida se o sistema atende ao clientes. Algumas técnicas usadas são Revisão, Prototipação, Criação de Casos de Testes.

  • Gestão de Requisitos

A gestão de requisitos faz o controle de mudanças para atender à dinâmica dos negócios, visão do usuário, ….

Leia também:

Engenharia de Software: Teste de Software

Artigo da Série Engenharia de Software.

O tema de hoje: Teste de Software.

Teste de Software é o processo de investigar o Software em busca de defeitos críticos e para a validação de requisitos. E tem por finalidade aumentar a qualidade do mesmo e evitar transtornos ou prejuízos para as pessoas e/ou empresas envolvidas.

Quais são as fases:

  • Teste Unitário

    Nesta fase quem participa é o desenvolvedor. Ele será responsável por criar os testes unitários, e verificar a funcionalidade de classes e metódos.

  • Teste de Integração

    Nesta fase os desenvolvedores de diferentes partes do sistema, testa como cada parte interage entre si.

  • Teste de Sistema

    Nesta fase o desenvolvedor e usuário testam o sistema.

  • Teste de Aceitação

    Os usuários que vão utilizar o Sistema vão dar o OK, para colocar o sistema em produção.

  • Teste de Operação

    O Administrador do Sistema faz a validação da Administração do Sistema

Algumas técnicas:

  • Caixa Preta (Teste Funcional)

Verifica a entrada e saída, não olha o código. Não é preciso conhecer a arquitetura ou tecnologia.

  • Caixa Branca

Aqui olhamos o código, é um teste voltado a lógica de programa. Fazemos o uso de ferramentas como o junit.

  • Teste baseado em Erros

Testa-se erros conhecidos em Computação. Por exemplo: Divisão por Zero.

  • Teste de Regressão

Aplica-se a cada nova versão do Software, os testes que forma aplicados na versão anterior, afim de verificar a nova versão não comprometeu os requisitos inalterados.

  • Teste de Estresse

Verifica a carga suportada pelo software. A quantidade de usuários que serão atendidos, ….

Quais são os ciclos:

  • Planejamento
  • Preparação
  • Especificação
  • Execução
  • Entrega

O que é critério de teste?

Estabelece uma exigência ou nível para a aceitação do programa, isto é:

Se o software não atender a 80% das nossas necessidades então abortamos o projeto.  🙁

Leia também:

Engenharia de Software: Gerência de Configuração de Software

Artigo da Série Engenharia de Software.

O tema de hoje: Gerência de Configuração de Software.

O desenvolvimento de Software é uma atividade dinâmica. Mudanças são inevitáveis. Mudam as regras de negócio, muda a visão do usuário sobre o sistema.

A Gerência de Configuração de Software (GCS) é uma área da Engenhar de Software, que atua sobre essas mudanças/modificações afim de manter a consistência e a integridade do Software com as especificações, minimizando problemas durante o desenvolvimento e controlando sistematicamente essas modificações.

As atividades e ferramentas da GCS são:

  • Controlar e acompanhar mudanças (Controle de Mudança)
    • Ferramentas: GitHub, Jira, BugZilla
  • Registrar a evolução do projeto (Controle de Versão)
    • Ferramentas: Git, SubVersion
  • Estabelecer a integridade do Sistema (Integração Contínua)
    • Ferramentas: Jenkins, IBM Urban Code

Vale lembrar, que em cada fase do ciclo de desenvolvimento um conjunto bem definido de itens de configuração é definido, este conjunto é chamado de Baseline.

Leia também:

Calendários de Treinamentos 2013 da IBM Brasil

O Calendário de Treinamentos 2013 da IBM já está disponível. É uma boa dica para quer conhecer ou se aprimorar nas tecnologias da IBM.

Se você ganhou um calendário em papel. Parabéns, senão o ideal é acessar o site no endereço Treinamentos IBM. Para ver as turmas abertas em Software veja Calendário 2013 – turmas abertas SWG (PDF, 208KB).

Outra dica é seguir pelo twitter de educação da IBM Brasil: @ibmtrainingBR

Leia também: