De que se trata o artigo: Consideramos de fundamental importância para um processo de engenharia de requisitos que ele seja capaz de lidar com dificuldades e problemas relacionados a requisitos que possam surgir durante o desenvolvimento de software na prática. Uma iniciativa rumo ao levantamento destas dificuldades e problemas e de maneiras de estruturar um processo para lidar com estes problemas encontra-se neste artigo.
Para que serve: Existem diferentes maneiras de estruturar um processo com atividades relacionadas à engenharia de requisitos em empresas desenvolvedoras de software. Acreditamos que modelos de maturidade, como o MPS, possam servir como um arcabouço para a definição deste processo. As exigências relacionadas à engenharia de requisitos no modelo MPS podem ser encontradas em (SOFTEX, 2007a) e maneiras de implementar estas exigências podem ser encontradas em (SOFTEX, 2007b). Este artigo complementa este material através da descrição de problemas práticos associados à engenharia de requisitos e soluções concretas para os problemas apresentados.
Em que situação o tema é útil: O intuito deste artigo é servir como instrumento para trazer conhecimento a respeito de engenharia de requisitos para a prática, discutindo como o conhecimento na área pode ser aplicado para resolver problemas práticos reais. Desta forma, o artigo pode ainda ser utilizado como complemento ao Guia de Implementação do MPS (SOFTEX, 2007b), auxiliando organizações na estruturação de um processo de engenharia de requisitos capaz de lidar com diferentes tipos de problemas.
Atualmente muitas empresas estão se movimentando no sentido de definir detalhadamente seus processos para apoiar suas atividades de desenvolvimento. O cenário da crescente adoção de modelos de maturidade como MPS (SOFTEX, 2007a) e CMMI (SEI, 2006) é um indicador de que as empresas nacionais estão se preocupando com a qualidade dos serviços que oferecem, conseguindo, dessa forma, uma inserção maior no mercado internacional de desenvolvimento de software. Adicionalmente, pesquisas como a encomendada pela SOFTEX (Travassos e Kalinowski, 2008) apontam diversos benefícios obtidos por empresas que investiram na melhoria de seus processos.
Os modelos de maturidade exigem a implementação de diversos processos e boas práticas da engenharia de software. Uma das atividades fundamentais da engenharia de software exigidas desde os níveis iniciais dos modelos é a engenharia de requisitos (Campos et al., 2008 – artigo publicado na edição 7 da Engenharia de Software Magazine). A importância dos requisitos e alguns conceitos iniciais relacionados à engenharia de requisitos do software são destacados em (Ávila e Spínola, 2008 – artigo publicado na edição 1 da Engenharia de Software Magazine).
Existem diferentes maneiras de estruturar um processo com atividades relacionadas à engenharia de requisitos em empresas desenvolvedoras de software. Acreditamos que modelos de maturidade, como o MPS, possam servir como um arcabouço para a definição deste processo. As exigências relacionadas à engenharia de requisitos no modelo MPS podem ser encontradas em (SOFTEX, 2007a) e maneiras de implementar estas exigências podem ser encontradas em (SOFTEX, 2007b). Além disso, consideramos de fundamental importância para um processo de engenharia de requisitos que ele seja capaz de lidar com dificuldades e problemas relacionados a requisitos que possam surgir durante o desenvolvimento de software na prática. Uma iniciativa rumo ao levantamento destas dificuldades e problemas e de maneiras de estruturar um processo para lidar com estes problemas encontra-se neste artigo.
O restante deste artigo está organizado da seguinte maneira. A seção 2 define a engenharia de requisitos e descreve suas principais atividades. A seção 3 representa um levantamento de dificuldades e problemas por atividade do processo de engenharia de requisitos, além da descrição de possíveis soluções. Por fim, a seção 4 apresenta as considerações finais deste artigo.
Engenharia de Requisitos
Podemos entender requisitos como sendo o conjunto de necessidades explicitadas pelo cliente que deverão ser atendidas para solucionar um determinado problema do negócio no qual o cliente faz parte. De forma genérica, requisitos podem ser dos seguintes tipos:
- Requisitos funcionais - São requisitos diretamente ligados a funcionalidade do software, descrevem as funções que o software deve executar.
- Requisitos não funcionais - São requisitos que expressam condições que o software deve atender ou qualidades específicas que o software deve ter. Em vez de informar o que o sistema fará, os requisitos não-funcionais colocam restrições no sistema.
- Requisitos de domínio - São requisitos derivados do domínio da aplicação e descrevem características do sistema e qualidades que refletem o domínio. Podem ser requisitos funcionais novos, restrições sobre requisitos existentes ou computações específicas.
O refinamento funcional dos requisitos é freqüentemente realizado utilizando a notação de casos de uso, que descrevem a interação entre entidades externas e o sistema. Mais informações sobre casos de uso podem ser encontradas em (Cockburn, 2007).
A engenharia de requisitos compreende as atividades relacionadas à produção (levantamento, registro, validação e verificação) e gerência (controle de mudanças, gerência de configuração, rastreabilidade, gerência de qualidade dos requisitos) de requisitos. A Figura 1 representa estas atividades. Maiores detalhes sobre estas atividades podem ser obtidos em (Ávila e Spínola, 2008).
Desta forma, os dois conceitos base (produção e gerência) devem ser considerados em conjunto ao se definir estratégias de trabalho com requisitos nas organizações (ver Figura 2). A produção dos requisitos fornece um conjunto inicial de requisitos para que possa ser gerenciado. A gerência de requisitos, por sua vez, assegura que mudanças nos requisitos sejam tratadas de forma adequada durante o processo de desenvolvimento. Desta maneira, ter um processo de gerência de requisitos estabelecido representa capacidade de lidar com mudanças.
De uma maneira geral, entre os objetivos da engenharia de requisitos destacamos (Pfleeger, 2004):
- estabelecer uma visão comum entre o cliente e a equipe de projeto em relação aos requisitos que serão atendidos pelo projeto de software;
- registrar e acompanhar requisitos ao longo de todo o processo de desenvolvimento; ...
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
Confira outros conteúdos:
Teste de Acessibilidade de Software
Boas Práticas em TDD
Principais Anomalias Arquiteturais de...
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.