Desenvolver software � uma atividade complexa por natureza. Uma das raz�es para esta afirma��o � que n�o existe uma �nica solu��o para cada cen�rio de desenvolvimento. Al�m disso, lidamos o tempo todo com pessoas, o que torna o sucesso do projeto bastante relacionado � compet�ncia da equipe e � forma como trabalham, e, para dificultar ainda mais, muitas vezes n�o fazemos uso de um processo bem definido para apoiar as atividades do projeto. Show
Guia do artigo:
Entende-se por processo, neste contexto, como sendo um conjunto de atividades bem definidas com os respectivos respons�veis por execu��o, ferramentas de apoio e artefatos produzidos. Ou seja, define-se como a equipe dever� trabalhar para alcan�ar o objetivo: desenvolver software com qualidade dentro de prazos, custos e requisitos definidos. A boa not�cia � que muitas empresas est�o se movimentando no sentido de definirem detalhadamente seus processos para apoiarem suas atividades de desenvolvimento. Uma recente mat�ria publicada na revista Exame relata o crescimento do n�mero de empresas que atingiram n�veis de maturidade considerando modelos como MPS.BR e CMMI. Este resultado � um forte 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. Neste artigo, faremos uma introdu��o � Engenharia de Requisitos, atividade base para as demais tarefas associadas ao desenvolvimento de software. Relacionado: Curso de Engenharia de Software Engenharia de Software e RequisitosVimos na introdu��o que se busca cada vez mais o apoio dos fundamentos da engenharia de software no desenvolvimento de sistemas. Entendemos engenharia de software como sendo, de acordo com o IEEE, a aplica��o de uma abordagem sistem�tica, disciplinada e quantific�vel no desenvolvimento, opera��o e manuten��o de software. Sistem�tica por que parte do princ�pio de que existe um processo de desenvolvimento definindo as atividades que dever�o ser executadas. Disciplinada por que parte do princ�pio de que os processos definidos ser�o seguidos. Quantific�vel por que se deve definir um conjunto de medidas a serem extra�das do processo durante o desenvolvimento de forma que as tomadas de decis�o relacionadas ao desenvolvimento do software (por exemplo, melhoria de processo) sejam embasadas em dados reais, e n�o em �achismos�. Alguns de seus principais objetivos s�o:
Entretanto, o cen�rio de desenvolvimento de software atual e o cen�rio idealizado junto � engenharia de software ainda est�o distantes. V�rios fatores contribuem para isso, podemos citar dois:
Isso tem diversas conseq��ncias. Gostar�amos de destacar neste artigo o crescente custo com manuten��o dos sistemas. Consideramos como manuten��o neste artigo como sendo qualquer retrabalho (em n�vel de requisitos, projeto, codifica��o, teste) causado por uma defini��o do dom�nio do problema mal elaborada nas fases iniciais do desenvolvimento. Neste ponto, � importante analisamos os dados da Tabela 1. Perceba que o custo das atividades relacionadas � an�lise de requisitos � baixo. Por outro lado, � nesta fase que grande parte dos defeitos s�o inseridos. Podemos perceber ainda analisando a primeira linha que o custo de corre��o destes problemas nesta fase � baixo. Continuando a an�lise, percebemos que estes defeitos n�o s�o tratados no momento devido, o que pode aumentar bastante o custo com o projeto. Embora simples, esta an�lise nos permite concluir que � importante que seja dada maior import�ncia �s atividades relacionadas � especifica��o dos requisitos do software. Refor�ando a import�ncia que as atividades relacionadas a requisitos devem possuir na ind�stria de software, estudo realizado pelo Standish Group, considerando 350 companhias e 8.000 projetos de software, em 1995 revelou que (ver Figura 1):
O Standish Group ainda fez uma an�lise sobre os fatores cr�ticos para sucesso dos projetos de software. O resultado dos dez mais lembrados pode ser visto na Tabela 2. Podemos perceber que tr�s dos principais fatores est�o relacionados �s atividades de requisitos: (1) Requisitos Incompletos; (2) Falta de Envolvimento do Usu�rio; (6) Mudan�a de Requisitos e Especifica��es.
Tabela 2. Fatores cr�ticos do sucesso Neste ponto, sabemos que um trabalho mais criterioso na �rea de requisitos � fundamental para o sucesso de projetos de software. A partir da pr�xima se��o conheceremos a defini��o de requisitos e algumas de suas defini��es relacionadas antes de discutirmos mais profundamente a engenharia de requisitos. RequisitosExistem diferentes defini��es encontradas na literatura t�cnica para requisitos:
Percebe-se que as cita��es encontradas definem o mesmo conceito sob diferentes perspectivas. 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. � importante estar atento para esta defini��o: embora o requisito seja definido pelo cliente, nem sempre o que o cliente quer � o que o neg�cio precisa. Cabe � equipe de consultores identificar a real necessidade do neg�cio. Neste contexto, requisitos s�o importantes para:
Entendida a defini��o de requisitos, � preciso conhecer seus tipos. Requisitos funcionaisS�o requisitos diretamente ligados a funcionalidade do software, descrevem as fun��es que o software deve executar. Alguns exemplos s�o:
Requisitos n�o funcionaisS�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. Alguns exemplos s�o:
Requisitos de dom�nioS�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. Dois exemplos de requisitos do dom�nio s�o:
A partir da pr�xima se��o apresentaremos os conceitos envolvidos na engenharia de requisitos. Engenharia de RequisitosExistem diferentes defini��es encontradas na literatura t�cnica para engenharia de requisitos:
Embora coerentes, estas defini��es podem ser melhoradas. Perceba que elas referem-se apenas �s atividades relacionadas � produ��o de requisitos. Entretanto, nada � dito a respeito da ger�ncia destas atividades, tamb�m conhecida como ger�ncia de requisitos. Com isto em mente, podemos evoluir a defini��o de engenharia de requisitos para: termo usado para descrever 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 3 representa essa defini��o. 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 4). Neste ponto podemos citar alguns dos principais objetivos da engenharia de requisitos:
Para apoiar o alcance destes objetivos, � importante que se tenha um processo de engenharia de requisitos bem definido. Um processo de engenharia de requisitos � um conjunto estruturado de atividades a serem seguidas para criar, validar e manter um documento de requisitos. Poucas organiza��es t�m um processo de ER explicitamente definido e padronizado. Entretanto, sugere-se que cada organiza��o deva desenvolver um processo adequado � sua realidade. A Figura 5 apresenta um modelo gen�rico de atividades que pode descrever a maioria dos processos de engenharia de requisitos. Perceba que ele est� concentrado nas atividades de produ��o dos requisitos. Apesar do aparente fluxo entre as atividades, n�o existe uma fronteira expl�cita elas. Na pr�tica existe muita sobreposi��o e intera��o entre uma atividade e outra. Como entradas para o processo s�o consideradas:
Em paralelo � execu��o das atividades definidas no processo da Figura 5, est� o processo de ger�ncia dos requisitos, voltado ao endere�amento de modifica��es nos requisitos. Os aspectos relacionados �s atividades de ger�ncia podem ser vistos na Figura 3. A partir de agora conheceremos cada um dos conceitos que, em conjunto, definem a engenharia de requisitos. Produ��o de RequisitosA cada fase do ciclo de vida do software produzimos um documento contendo uma representa��o distinta do software a ser constru�do. Cada um desses documentos representa o software em um determinado n�vel de abstra��o. A tend�ncia � diminuirmos o n�vel de abstra��o atrav�s da inclus�o de mais e mais detalhes, at� que, sua �ltima representa��o seja o c�digo fonte na linguagem escolhida. Um dos artefatos produzidos no in�cio do processo de desenvolvimento de software � a sua especifica��o de requisitos. Ele � base para as demais atividades de desenvolvimento e sua qualidade � fundamental para o sucesso do projeto. Uma especifica��o de requisitos bem elaborada � pr�-requisito para um software de qualidade, embora n�o seja garantia disso. Desta forma, durante a produ��o de requisitos devemos possuir, al�m das atividades essenciais de levantamento e especifica��o, atividades relacionadas � garantia da qualidade. Conheceremos nesta se��o as quatro atividades base relacionadas com a produ��o de requisitos. LevantamentoEsta atividade relaciona-se � obten��o dos requisitos do software. Para isto, analistas e engenheiros de software trabalham com clientes e usu�rios finais para descobrir o problema a ser resolvido, os servi�os do sistema, o desempenho necess�rio, restri��es de hardware e outras informa��es. Existem algumas t�cnicas que apoiam as atividades de levantamento de requisitos. Uma breve descri��o de algumas delas �:
Algumas das desvantagens da prototipa��o s�o os custos de aprendizagem e os custos de desenvolvimento.
Esta t�cnica deve ser utilizada nos casos onde existe a necessidade de consenso entre diversos usu�rios, pois possibilita a todos os envolvidos ter uma vis�o global do sistema, ajudando a consolidar interesses de diversos usu�rios quanto ao sistema a ser desenvolvido. O objetivo desta t�cnica � aumentar o comprometimento e participa��o do usu�rio e obter subs�dios para elaborar o documento de Especifica��o de Requisitos para o sistema com consenso de todos de forma a ser uma valida��o formal dos requisitos do sistema. O JAD � divido quem quatro fases. A Figura 6 apresenta estas fases e os artefatos produzidos por cada uma delas. A atividade de levantamento de requisitos n�o � trivial. Existe um conjunto grande e variado de fatores que a tornam complexa, por exemplo:
RegistroUma vez identificados e negociados, os requisitos devem ser documentados para que possam servir de base para o restante do processo de desenvolvimento. Entre os muitos problemas que enfrentamos na documenta��o de requisitos, certamente, administrar o grande volume de informa��es gerado pelo processo de requisitos � um dos principais. Os requisitos s�o documentados em um n�vel apropriado de detalhe. Em geral � produzido um documento de especifica��o de requisitos, de forma que todos os stakeholders possam entend�-lo. O registro dos requisitos num documento pr�prio facilita o controle de altera��es de todos os envolvidos na manuten��o dos requisitos, bem como a gera��o de vers�es do documento e a facilidade de acesso por todos os envolvidos. Verifica��oEsta atividade examina a especifica��o do software, de forma a assegurar que todos os requisitos foram definidos sem ambiguidades, inconsist�ncias ou omiss�es, detectando e corrigindo poss�veis problemas ainda durante a fase de defini��o dos requisitos. Neste contexto, sabe-se que o custo da corre��o de defeitos aumenta na medida em que o processo de desenvolvimento progride. Revis�es de artefatos de software t�m se mostrado uma abordagem eficiente e de baixo custo para encontrar defeitos logo ap�s terem sido introduzidos, reduzindo o retrabalho e melhorando a qualidade dos produtos. N�o � em v�o que modelos de maturidade de processo de software, como o CMMI e o MPS BR exigem a condu��o de revis�es. Um tipo particular de revis�o de software s�o as inspe��es. Inspe��es possuem um processo de detec��o de defeitos rigoroso e bem definido. Os benef�cios de se aplicar inspe��es s�o maiores para artefatos desenvolvidos no in�cio do processo, como o documento de requisitos. Conheceremos um pouco mais sobre inspe��o de software em um segundo artigo a ser publicado na segunda edi��o da Engenharia de Software Magazine. Valida��oA valida��o representa a atividade em que obtemos o aceite do cliente sob determinado artefato. No cen�rio de engenharia de requisitos, esta atividade significa aprovar junto ao cliente os requisitos que foram especificados. Embora aparentemente simples, esta atividade pode ser bastante dificultada pelo cliente ou mesmo por um processo de valida��o inadequado utilizado pela empresa. Ger�ncia de RequisitosRequisitos s�o por natureza vol�teis. Diversos fatores contribuem para sua instabilidade ao longo do tempo. Mudan�as externas no ambiente (mudan�as de legisla��o, mudan�as no mercado, mudan�a no posicionamento estrat�gico da empresa), erros incorridos no processo de requisitos, entre outros. Todos esses fatores fazem com que seja necess�rio alterar os requisitos. Tais altera��es precisam ser conduzidas de forma ordenada para que n�o se perca controle sobre o prazo e o custo do desenvolvimento. Denominamos a atividade de administrar os requisitos ao longo do tempo de gerenciamento de requisitos. Os benef�cios desta atividade s�o percebidos no m�dio prazo, sendo que s�o necess�rios investimentos no curto prazo. Assim, a atividade �, muitas vezes, tida como um fardo desnecess�rio � condu��o do processo. Contudo, sua n�o implementa��o faz com que as economias de curto prazo sejam logo suplantadas pelas despesas no longo prazo, verificadas com supera��o de custo e prazo nos projetos conduzidos. Veremos a partir de agora algumas das atividades que devem ser consideradas durante a ger�ncia dos requisitos. Controle de Mudan�asConforme foi citado anteriormente, os requisitos s�o vol�teis e, portanto sofrem mudan�as ao logo do tempo, para conduzir estas mudan�as recomenda-se preparo e planejamento. Uma das maneiras bastante utilizadas para organizar estas mudan�as � a �baseline� de requisitos que nos permite diferenciar o que era o requisito original, o que foi introduzido e o que foi descartado. Al�m disto, � interessante estabelecer um �nico canal para controle de mudan�as, bem como utilizar um sistema para este controle. Apresentamos a seguir uma sugest�o de passos que devem ser seguidos para um processo de controle de mudan�a:
Ap�s a realiza��o desta an�lise, podemos aceitar ou rejeitar a mudan�a, conforme os impactos e custos que ela pode ter no sistema. Ger�ncia de Configura��oDurante o ciclo de vida do desenvolvimento, o software passa por uma s�rie de modifica��es, desde a especifica��o dos requisitos at� a implanta��o do sistema. A ger�ncia de configura��o de software existe no intuito de definir crit�rios que permitam realizar tais modifica��es mantendo-se a consist�ncia e a integridade do software com as especifica��es, minimizando problemas decorrentes ao processo de desenvolvimento, atrav�s de um controle sistem�tico sobre as modifica��es. A cria��o de um plano de ger�ncia de configura��o consiste em estabelecer normas, ferramentas e templates que permitam gerenciar de maneira satisfat�ria os itens de configura��o de um sistema, que s�o definidos por Pressman como: �cada um dos elementos de informa��o que s�o criados durante o desenvolvimento de um produto de software, ou que para este desenvolvimento sejam necess�rios, que s�o identificados de maneira �nica e cuja evolu��o � pass�vel de rastreamento�. Em cada fase do processo de desenvolvimento, um conjunto bem definido de itens de configura��o deve ser estabelecido. A este conjunto � dado o nome de baselines. Estas baselines servem como marco no processo de desenvolvimento, pois ao final de cada fase � estabelecida uma nova baseline e, portanto, todos os itens de configura��o est�o sob total controle de seus desenvolvedores. Desta forma, nesta baseline � guardada �uma foto� dos artefatos criados at� aquele momento:
RastreabilidadeNo centro da atividade de gerenciamento de requisitos est� a rastreabilidade. Esta � definida como a habilidade de se acompanhar a vida de um requisito em ambas as dire��es (por exemplo: partindo de requisitos e chegando a projeto ou, partindo de projeto e chegando a requisitos) do processo de software e durante todo o seu ciclo de vida. A dificuldade envolvida com a rastreabilidade est� no grande volume de informa��es gerado. As informa��es do processo de requisitos devem ser catalogadas e associadas aos outros elementos de forma que possam ser referenciadas atrav�s dos diversos itens de informa��o registrados. � um trabalho extenso que, sem o aux�lio de ferramentas adequadas, muito provavelmente n�o poder� ser feito Para implementar a rastreabilidade, usualmente � confeccionado em conjunto com a especifica��o de requisitos um artefato chamado matriz de rastreabilidade, que tem como objetivo mapear os rastros dos requisitos descritos na especifica��o. Os rastros dos requisitos podem ser de dois tipos:
Ger�ncia de Qualidade de RequisitosSegundo o padr�o IEEE 830, devemos considerar alguns crit�rios de qualidade ao trabalharmos com requisitos:
A ger�ncia, neste cen�rio, � respons�vel por manter uma infra-estrutura necess�ria para atividades de verifica��o que tornem poss�vel investigarmos a qualidade dos requisitos que estamos definindo. Conclus�oA engenharia de requisitos define, sem d�vida, um dos mais importantes conjuntos de atividades a serem realizadas em projetos de desenvolvimento de software. Embora n�o garanta a qualidade dos produtos gerados, � um pr�-requisitos b�sico para que obtenhamos sucesso no desenvolvimento do projeto. Este artigo � apenas uma breve introdu��o ao tema, que dever� ser bastante explorado em edi��es futuras da Engenharia de Software Magazine. Confira tamb�m
Confira outros conte�dos:
Por Rodrigo Em 2008 Quais são os princípios fundamentais da engenharia de software?Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantindo suas qualidades.
Quais são as etapas da engenharia de software?As etapas de desenvolvimento de software são:. Fase de diagnóstico.. Concepção.. Levantamento e análise de requisitos.. Fase de desenvolvimento.. Etapa de manutenção.. Quais são os princípios de comunicação das práticas de engenharia de software?Princípio 1: Entenda o escopo do projeto ❑ O escopo fornece à equipe de software um roteiro a seguir. Princípio 2: Envolva o cliente na atividade de planejamento ❑ O engenheiro de software precisa negociar com o cliente ordem de entrega, prazos e outros itens do projeto.
Quais as principais características da engenharia de software?A Engenharia de Software capacita as pessoas com a utilização de teorias, técnicas e ferramentas da Ciência da Computação para produção e desenvolvimento de sistemas. Por meio da análise, coleta e processamento de dados, ainda identificam potenciais falhas nesses produtos e criam soluções de alta performance.
|