a importância da análise de requisitos no desenvolvimento de softwares ( by swellen)

13
UNIVERSIDADE VEIGA DE ALMEIDA SWELLEN POLIDE DEZERBELLES A IMPORTÂNCIA DA ANÁLISE DE REQUISITOS NO DESENVOLVIMENTO DE SOFTWARES

Upload: dezerbelles

Post on 11-Jun-2015

4.535 views

Category:

Documents


2 download

DESCRIPTION

Este trabalho tem como principal objetivo mostrar o quão difícil e importante é a atividade do profissional que lida com o desenvolvimento de softwares, mais precisamente aquele que lida com a análise de requisitos. Para isso boa parte dessa atividade de análise será abordada ao decorrer do paper, os requisitos funcionais e não-funcionais serão explicados e os chamados softwares “Fast food” serão analisados, será que rapidez é a chave para o sucesso ou o ditado popular tem realmente razão ao dizer que “apressado como cru”?

TRANSCRIPT

Page 1: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

UNIVERSIDADE VEIGA DE ALMEIDA

SWELLEN POLIDE DEZERBELLES

A IMPORTÂNCIA DA ANÁLISE DE REQUISITOS NO

DESENVOLVIMENTO DE SOFTWARES

Cabo Frio

2008.02

Page 2: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

SWELLEN POLIDE DEZERBELLES

A IMPORTÂNCIA DA ANÁLISE DE REQUISITOS NO

DESENVOLVIMENTO DE SOFTWARES

Trabalho apresentado à Profª.: Ms. Patrícia

Ribeiro Corado como meio de avaliação

parcial da disciplina Metodologia Científica.

Cabo Frio

Page 3: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

2008.02

Sinopse

Este trabalho tem como principal objetivo mostrar o quão difícil e importante é a atividade do profissional que lida com o desenvolvimento de softwares, mais precisamente aquele que lida com a análise de requisitos. Para isso boa parte dessa atividade de análise será abordada ao decorrer do paper, os requisitos funcionais e não-funcionais serão explicados e os chamados softwares “Fast food” serão analisados, será que rapidez é a chave para o sucesso ou o ditado popular tem realmente razão ao dizer que “apressado como cru”?

Page 4: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

1. Introdução

Obter qualidade nos processos e produtos de engenharia de software não é uma tarefa

fácil. Vários fatores dificultam atingir os objetivos de qualidade. No entanto, nada é mais

decepcionante do que produzir um programa que não satisfaça as necessidades dos clientes.

Grandes volumes de recursos são gastos, mas em muitos casos ocorre uma grande frustração

por parte dos clientes diante da forma final apresentada pelo software encomendado.

Experiências indicam que muitos desses problemas são derivados da falta de atenção na hora

de definir e acompanhar a evolução dos requisitos durante o processo de construção do

software.

Este trabalho trata exatamente da questão da engenharia de requisitos e sua importância,

por meio de uma pesquisa bibliográfica cujo tema A importância da análise de requisitos no

desenvolvimento de softwares será abordado de uma forma objetiva, podendo assim esclarecer

pontos relevantes a todo desenvolvimento de software.

2. Análise de requisitos do sistema

A análise de requisitos tem por objetivo tratar do processo de definição dos requisitos de

software. Para isso, todas as atividades de desenvolvimento precisam ser criteriosamente

elaboradas e desenvolvidas, é essencial que a equipe de desenvolvimento compreenda

exatamente o que é esperado do aplicativo a ser construído e também o que o não é. Isso pode

parecer óbvio, mas nem sempre fica claro para todos os envolvidos do projeto qual será o

alcance da aplicação.

A equipe também deve preocupar-se com o desempenho e com a interface exigidos pelo

cliente. Esse processo deve lidar com diferentes pontos de vista e usar uma combinação de

métodos, ferramentas e pessoal, para assim elicitar, analisar e modelar o programa a ser

desenvolvido. Os requisitos, tanto para o sistema como para o software, devem ser

documentados e revistos com o cliente.

Os requisitos, de modo geral, podem ser classificados em dois grandes grupos: requisitos

funcionais e não-funcionais.

2.1 Requisitos funcionais

Os requisitos funcionais são aqueles que descrevem o comportamento do sistema, suas

ações para cada entrada, ou seja, é aquele que descreve as funcionalidades as quais se espera

Page 5: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

que o sistema forneça. Eles dependem do tipo de software que está sendo desenvolvido e dos

usuários de software que se espera atingir.

2.2. Requisitos não funcionais

Os requisitos não-funcionais não estão ligados diretamente com as funções fornecidas

pelo sistema. Em geral se preocupam com padrões de qualidade como confiabilidade,

desempenho, robustez, segurança, usabilidade, portabilidade, legibilidade, qualidade,

manutenibilidade, entre outros. São muito importantes, pois definem se o sistema será

eficiente para a tarefa que se propõe a fazer. Um sistema ineficiente certamente não será

usado.

3. Softwares “fast food”

Atualmente com o rápido desenvolvimento das tecnologias e com as várias facilidades

que encontramos para a comunicação, empresas de todos os portes acreditam que quanto mais

rápido o software estiver pronto para ser usado, melhor. É aí que eles se enganam, softwares

“fast food” podem dar a impressão de estar agilizando o trabalho, mas os problemas logo

aparecem.

Softwares não são feitos da noite para o dia. Eles englobam muito mais que linhas de

código. Horas de testes, manuais, documentação e treinamento fazem parte de um sistema

bem desenvolvido. Se o cliente exige um prazo absurdamente curto, é melhor nem começar o

desenvolvimento. O software desenvolvido dessa maneira terá tanto problema no futuro que o

que pedir para fazê-lo não valerá a pena. Percebemos isso claramente no trecho a seguir:

Interessante ver que as grandes conquistas não são feitas a toque de caixa. Dias atrás reli o livro 100 dias entre o céu e o mar de Amyr Klink onde ele narra não somente sua travessia pelo Atlântico em um barco a remo, mas principalmente os anos de preparativos para a empreitada. Não é a toa que Klink é um dos melhores palestrantes brasileiros quando se deseja conhecer estratégia e pés no chão. Ele sabe o que faz e principalmente que tempo não é uma questão de dinheiro; é uma questão de coerência. O tempo que se ganha agora pode-se perder pouco depois.

(Amyr Klink apud Paulino Michelazzo - On-line)

Em primeiro lugar, é importante identificar o que não contribui para o fracasso nesse tipo

de software. Jim Johnson, do The Standish Group, afirma que "quando um projeto falha,

raramente a causa é técnica". Com isso pode-se afirmar que o problema não é se o .NET, Java

ou outras tecnologias e ferramentas sejam instrumentos limitados para a construção de

Page 6: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

softwares. A raiz da maioria das falhas está na (ausência de) utilização de metodologias de

desenvolvimento adequadas e como elas interagem com os stakeholders em um projeto de

software.

Se a metodologia adotada não for seguida corretamente é certo que o produto final sofrerá

as conseqüências.

Um dos piores problemas que a utilização de uma metodologia pode apresentar é ignorar

o cliente e o usuário final em um projeto. A falta de envolvimento de ambos durante todo o

desenvolvimento está diretamente relacionada ao fracasso, pois serão o cliente e o usuário

final que saberão especificamente o que o sistema deverá realizar. Por melhor preparados que

os desenvolvedores estejam, não saberão ao certo quais funcionalidades deverão estar

habilitadas nesse software.

Somente muita comunicação entre os desenvolvedores, cliente e usuário final trará as

informações necessárias para que se possa começar o desenvolvimento do sistema. Embora

esta comunicação não seja fácil, também não é impossível. O grande problema é que o cliente

nem sempre sabe como expressar suas idéias e exigências, muitas vezes ele até sabe o que

quer do sistema, mas tem uma idéia distorcida do que o software pode fazer por ele.

4. Atividades do processo de análise de requisitos

Empresas distintas lidam de formas diferentes com a análise de requisitos. Uma

companhia aeroespacial não utiliza o mesmo processo de análise que uma outra companhia

que desenvolve produtos de consumo para desktops, pois as funcionalidades e objetivos de

cada um desses programas serão bastante diferentes. Essas diferenças encontram-se

geralmente no nível de detalhe dos processos.

As atividades do processo de análise de requisitos podem ser divididas nas seguintes

àreas:

Levantamento de requisitos – Nessa etapa, os membros da equipe de desenvolvimento

trabalham juntamente com o cliente e os usuários finais do sistema, afim de descobrir

informações sobre o domínio da aplicação, que serviços o sistema deve fornecer, o

desempenho exigido do sistema, as restrições de hardware, entre outros. Além de

consultas aos stakeholders, pode-se também obter informações através de

documentação do sistema e estudos do mercado.

Page 7: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

Análise e negociação de requisitos - Os requisitos são analisados em detalhe e os

diferentes stakeholders negociam para decidirem que requisitos serão utilizados no

desenvolvimento do software. Este processo é necessário, pois sempre aparecem

conflitos entre requisitos de diferentes fontes, as informações podem não ser

completas ou então os requisitos podem ser incompatíveis com o orçamento

disponível para o desenvolvimento do sistema.

Documentação de requisitos – Os requisitos especificados durante o processo de

negociação são documentados e detalhados nessa etapa. Esses requisitos devem ser

detalhados utilizando linguagem natural e diagramas, para que sejam compreendidos

por todos os stakeholders.

O fato de se ter uma boa documentação do software, traz várias vantagens para o

desenvolvedor na hora de prestar manutenção a esse programa, pois através dos

detalhes mostrados nesse documento é mais fácil entender o problema e modificá-lo.

Validação de requisitos – Se preocupa em mostrar se os requisitos levantados

realmente definem o sistema que o cliente solicitou e também analisa esses requisitos

afim de descobrir qualquer problema que comprometa a funcionalidade do software.

Esta validação é importante porque a ocorrência de erros no documento de

requisitos pode levar a grandes custos relacionados ao retrabalho, quando esses erros

são descobertos durante o desenvolvimento ou depois que o sistema estiver em

operação. O custo de fazer uma modificação no sistema, resultante de um problema de

requisito, é muito maior do que reparar erros de projeto ou de codificação. Qualquer

mudança nos requisitos implica em uma boa mudança no projeto, na implementação

do software, e é claro haverá a necessidade da realização de um novo teste no sistema.

Pode- se afirmar que essas atividades do processo de análise de requisitos não são

realizadas numa ordem rigorosa, pois o cliente sempre tem uma sugestão ou uma exigência a

fazer durante toda a evolução do projeto. Sendo assim a análise continua durante a definição e

especificação, com isso novos requisitos surgem no decorrer do desenvolvimento.

Page 8: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

5. Conclusão

Depois dessas informações, pode-se afirmar que realmente “apressado como cru”, afinal

softwares não são feitos da noite para o dia. Eles requerem muito mais que linhas de código,

necessitam que todas as etapas do processo de análise de requisitos sejam seguidas

corretamente.

O trabalho do analista de sistemas é árduo e requer muita atenção, deve-se definir desde

as reuniões iniciais uma metodologia a ser seguida, é possível afirmar que sem uma correta

definição da metodologia a ser utilizada e uma boa gestão dos requisitos do aplicativo é certo

que o projeto terá o seu sucesso comprometido, frustrando as expectativas do cliente e

comprometendo as metas e planos da empresa contratante.

Page 9: A importância da análise de requisitos no desenvolvimento de Softwares ( by Swellen)

Referências Bibliográficas

CORDEIRO, Marco Aurélio. A Importância da Engenharia de Requisitos. Disponível em:

http://www.pr.gov.br/batebyte/edicoes/2000/bb98/requisitos.htm. Acesso realizado em:

15/09/2008

DA ROCHA, Ana Regina Cavalcanti et all (org.). Qualidade de software: Teoria e prática.

São Paulo: Pearson, 2004

FURTADO, André. Pontas do iceberg do Caos no Desenvolvimento de Software. Disponível

em http://www.microsoft.com/brasil/msdn/Tecnologias/Carreira/DesenvolvimentoSoftware.

Acesso realizado em 01/11/2008

GIMENEZ, Itana. Processos de desenvolvimento. In: DA ROCHA, Ana Regina Cavalcanti,

MALDONADO,José Carlos, WEBER,Kival Chaves (org.). Qualidade de software: Teoria e

prática. São Paulo: Pearson, 2004

MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.0. 2 ed. Rio de Janeiro:

Brasport, 2004

MICHELAZZO, Paulino. Softwares “fast food”. Disponível em

http://www.linhadecodigo.com.br/Artigo.aspx?id=1892. Acesso realizado em 01/11/2008

PRESSMAN, Roger. Engenharia de software. São Paulo: Pearson,2006

SILVA, Márcio Andrade. A importância do levantamento de requisitos no sucesso dos

projetos de software. Disponível em: http://www.linhadecodigo.com.br/Artigo.aspx?id=1685.

Acesso realizado em: 01/11/2008