engenharia
Saiba seu significado e para que serve
magazine
de software
Edição Especial
Especial Processos
Melhore seus processos através da Veja como integrar conceitos de Veja como integrar o Processo
análise de risco e conformidade Modelos Tradicionais e Ágeis Unificado ao desenvolvimento Web
Atendimento ao Leitor
engenharia
magazine
A DevMedia conta com um departamento exclusivo para o atendimento ao
leitor. Se você tiver algum problema no recebimento do seu exemplar ou
de software
precisar de algum esclarecimento sobre assinaturas, exemplares anteriores,
endereço de bancas de jornal, entre outros, entre em contato com:
Colaboradores Publicidade
Rodrigo Oliveira Spínola Para informações sobre veiculação de anúncio na revista ou no site entre
rodrigo@sqlmagazine.com.br em contato com:
Apoio Parceiros:
ÍNDICE
ÍNDICE
04 - Alguns Fundamentos da Engenharia de Software
Wilson de Pádua Paula Filho
10 - Melhorando Processos Através da Análise de Risco e Conformidade
Rafael Espinha, João Sousa
38 - Arquitetura de Software
Antonio Mendes da Silva Filho
60 - Gestão de defeitos
Cristiano Caetano
68 - Introdução à Inspeção de Software
Marcos Kalinowski e Rodrigo Oliveira Spínola
Alguns Fundamentos da Engenharia de
Software
Ciência - Conjunto organizado de conheci- tes das Belas Artes, e valorizam critérios tosos, e, em certos casos, até riscos à vida
mentos relativos a um determinado objeto, es- estéticos na criação de seus programas. humana; muitas vezes empreendimentos
pecialmente os obtidos mediante a observação, a Isso pode ter conseqüências boas e ruins, de software são afetados por um contexto
experiência dos fatos e um método próprio. do ponto de vista de gerar valor. Por um econômico, político ou social.
Engenharia - Arte de aplicar conhecimen- lado, a busca da elegância pode levar
tos científicos e empíricos e certas habilitações à economia e simplicidade de formas, Produtos e Ciclos de Vida
específicas à criação de estruturas, dispositi- fazendo com que resultados de melhor A íntima relação entre a Engenharia de
vos e processos que se utilizam para converter qualidade sejam obtidos de maneira mais Software e a noção de valor significa que
recursos naturais em formas adequadas ao produtiva. E, principalmente, levando essa profissão trata o software como pro-
atendimento das necessidades humanas. a escrever programas que possam ser duto. Estão fora do escopo da Engenharia
mais facilmente reutilizados, mantidos e de Software programas que são feitos
Vê-se que, pelas definições acima, a expandidos. Por outro lado, a auto-satisfa- com objetivo exclusivamente lúdico: a
Ciência focaliza acumulação do conheci- ção do programador pode ter como preço diversão do programador. Estão fora de
mento através do método científico, com
base em experimentos e observações. Já
a Engenharia aplica esses conhecimen-
tos “ao atendimento das necessidades A íntima relação entre a Engenharia de Software e a noção
humanas”. Embora o conhecimento seja
certamente uma necessidade humana, de valor significa que essa profissão trata o software como
trata-se de uma entre várias outras,
sejam necessidades materiais, como produto.
alimentação, moradia, segurança, ou
imateriais, como afeição ou auto-estima.
A tudo aquilo que satisfaz a necessidades,
atribui-se um valor. A Engenharia está, os interesses de quem está pagando pelo seu escopo também pequenos programas
portanto, ligada à noção de valor, e a En- trabalho dele, ou de quem o usará. Seja, descartáveis, feitos por alguém apenas
genharia de Software busca gerar valor por exemplo, produzindo programas que para resolver um problema dessa pessoa,
com o processamento de informação. A ninguém entende, senão o próprio autor e que não serão utilizados por outros.
noção de valor tem muitas conseqüên- (e, depois de certo tempo, nem ele mesmo). Mas, se um desses programas interessar
cias práticas importantes, e, de fato, a Seja, como outro exemplo, introduzindo a outras pessoas, e assim passar a ter va-
teoria conhecida como “Engenharia de funções que o autor achou interessantes, lor, aparecerão demandas para melhorar
Software Baseada em Valor” representa mas não são realmente necessárias, nem suas qualidades, aumentar suas funções,
uma importante escola de pensamento foram solicitadas. prolongar sua vida. E aparecerá quem
dentro da área. E muito próxima de “Arte” está a esteja disposto a investir nisso, com a
palavra “Artesanato”, que lembra pro- expectativa de ganhar dinheiro. Nesse
Arte, Técnica, Artesanato, Indústria? dução caseira, em pequena escala, sem momento, o programa entrou no escopo
Outros termos constantes da definição a utilização de métodos industriais, que da Engenharia de Software e se tornou um
de Engenharia podem ser explorados são caracterizados pela padronização e produto. Muitos dos produtos de software
de várias formas, com conseqüências pela repetição. E, realmente, parece mais mais usados seguiram esse caminho.
interessantes. Por exemplo, é usada a difícil aplicar esses métodos industriais Todo produto tem usuários: aqueles que
palavra “Arte”, que o mesmo dicionário na confecção de software, do que nos efetivamente usam o produto. Alguns
define como a “capacidade que tem o ramos da engenharia do mundo material. produtos são feitos por encomenda de um
homem de pôr em prática uma idéia, Nestes, as leis físicas impõem limites cliente: aquele que pagará por sua produ-
valendo-se da faculdade de dominar a claramente visíveis ao que pode ser feito. ção. Outros, chamados de produtos de
matéria”, ou “a utilização de tal capa- Na Engenharia de Software, a criativida- prateleira, são vendidos no mercado aber-
cidade, com vistas a um resultado que de não é limitada por leis físicas, e sim to, a quem se interessar. Neste caso, quem
pode ser obtido por meios diferentes”. pela capacidade humana de entender e faz o papel do cliente é quem define que
Na Engenharia de Software, a matéria dominar a complexidade. recursos e funções se esperam do produto;
dominada pelas faculdades humanas Mas não se pode escapar do fato de que a talvez um departamento de vendas, ou de
consiste em máquinas de processamento Engenharia de Software tem que resolver marketing, ou de definição de produtos de
da informação, devidamente configura- muitos problemas de ordem industrial. uma organização, ou até, para produtos
das e programadas. Nesse sentido, os Raramente é possível construir software menores, os próprios desenvolvedores, co-
conceitos de “Arte” e “Técnica” são bem profissional sem envolver equipes, às ve- locando o chapéu de investidores de risco.
próximos; aliás, a palavra grega techné zes de dezenas ou até centenas de pessoas; E existem todos os casos intermediários,
significa, exatamente, Arte. raramente é possível trabalhar na área em que um produto parcialmente pronto
O termo “Arte” abre outras discussões. sem a pressão de prazos e orçamentos é completado, adaptado ou incrementado,
Não poucos programadores se conside- apertados; freqüentemente defeitos de por encomenda de um cliente.
ram como artistas, no sentido de pratican- software podem acarretar prejuízos vul- Como todo produto industrial, o produ-
a ser executado pela equipe do projeto, na Engenharia de Software é o CMMI Projeto - Conjunto gerido de recursos
para atingir os objetivos do projeto e (Capability Maturity Model Integration), que inter-relacionados, que entrega um ou mais
criar as entregas necessárias. Estruturas foi formulado pelo Software Engineering produtos a um cliente ou usuário, com início
analíticas de projeto podem ser apresen- Institute da Carnegie-Mellon University. O definido e que, tipicamente, opera conforme
tadas de muitas maneiras. Diagramas de CMMI foi encomendado e patrocinado um plano.
atividade são uma das representações pelo Departamento de Defesa ameri- Estrutura analítica do projeto - Um ar-
mais usadas atualmente. Outro tipo cano, popularmente conhecido como ranjo dos elementos do trabalho e dos relaciona-
de representação usual é fornecida por Pentágono, que o utiliza para avaliação mentos deles entre si e com o produto final.
planilhas e cronogramas, como aqueles da capacidade de seus fornecedores de
que são produzidos pela ferramenta Mi- software. Sendo o Pentágono provavel- Ao contrário do PMBOK, o CMMI não
crosoft Project (Figura 2). mente a maior organização compradora se limita aos conhecimentos sobre gestão
de software do mundo, o CMMI tem de projetos. Cobre também áreas técni-
Modelos de Referência e Fatores de grande aceitação da indústria americana cas, e focaliza principalmente a aplicação
Produção de software, e considerável influência no dos processos ao desenvolvimento de
O PMBOK é um exemplo de modelo de resto do mundo. A rigor, suas práticas não produtos. Um processo, segundo o IEEE,
referência: uma estrutura de conheci- são restritas à indústria de software, po- é uma seqüência de passos executados
mento que organiza conceitos, práticas dendo ser aplicadas ao desenvolvimento com um determinado objetivo; segundo
e padrões de uma área. No caso do de outros tipos de produtos. o PMBOK, é um conjunto de ações e
PMBOK, a área focalizada é a gestão de Os conceitos do CMMI têm raízes em atividades inter-relacionadas, realizadas
projetos de qualquer natureza, cobrindo comum com o PMBOK, como se pode para obter um conjunto especificado de
assuntos como integração, escopo, tempo, observar pela similaridade das definições produtos, resultados ou serviços.
custos, qualidade, recursos humanos, que adota: Um projeto representa a execução de
comunicações, riscos e aquisições. Produto - Resultado que se pretende entre- um processo, e um processo é uma receita
Outro modelo de referência importante gar a um cliente ou usuário. que é seguida durante a realização um
erros e, por isso, podem até se tornarem seu investimento está tendo o retorno
Treinamento e Consultoria
em Engenharia de Software
kalisoftware.com | info@kalisoftware.com
Melhorando Processos Através da Análise de
Risco e Conformidade
U
m dos fatores importantes para ISO/IEC 15504 e 12207 definem um con-
a construção de um software junto de boas práticas e características
de qualidade é o processo de que devem estar presentes em um pro-
desenvolvimento utilizado e como este é cesso para que este possa ser gerenciado
implantado na organização. A inexistên- e resulte na entrega de produtos de qua-
cia ou a não utilização de processos bem lidade. Entretanto, como têm o objetivo
definidos e de boas práticas de desen- de serem aplicáveis a quase todo tipo de
volvimento, mesmo que informais, faz organização, estes modelos ou normas
Rafael Espinha com que o desenvolvimento de software muitas vezes não definem como estas
rafael.espinha@primeup.com.br seja realizado de forma ad-hoc, ficando boas práticas e características devem ser
É Engenheiro de Computação e Mestre em altamente dependente da experiência e implementadas e implantadas. Uma das
Engenharia de Software pela PUC-Rio. Foi
do conhecimento das pessoas envolvidas. maiores dificuldades de organizações
pesquisador do Laboratório de Engenharia a
de Software da PUC-Rio e atualmente é con- Este cenário resulta na realização de pro- que iniciam um programa de melhoria
sultor e diretor da PrimeUp, onde desenvolve jetos cujos resultados são imprevisíveis, de processos enfrentam é a dificuldade
projetos na área de melhoria de processos e onde cada um realiza as suas atividades de adaptar este conjunto de boas práticas
qualidade de software. Possui cursos e certifi- da forma que lhe convém, e dificulta a para a sua realidade, identificando quais
cações em CMMI e MPS.BR.
reutilização de boas práticas e de lições áreas são mais relevantes e devem ser
aprendidas. abordadas com maior urgência. Cada or-
João Sousa
joaomss@primeup.com.br Com a crescente demanda por qualida- ganização possui políticas, crenças e uma
É Bacharel em Informática pela UERJ e pós- de dos produtos de software, a adoção cultura específica, que deve ser levada em
graduado pela UFRJ. Possui mais de 15 anos de modelos de maturidade, normas de conta para que as melhorias sejam bem
de experiência no desenvolvimento de sis- qualidade e guias de boas práticas na aceitas e realmente contribuam com um
temas e melhoria de processos. Atualmente
definição de processos tem se tornado desenvolvimento mais eficiente.
é consultor da PrimeUp, onde desenvolve
projetos na área de melhoria de processos e cada vez mais freqüente. Modelos como Para orientar a necessidade de adapta-
qualidade de software. CMMI-DEV e MPS.BR e normas como a ção apresentada acima, utilizamos o con-
ceito de risco associado à não utilização tunidades de melhoria. Em geral, nesta A próxima seção apresenta alguns
das boas práticas de desenvolvimento fase é realizado um estudo no qual um conceitos básicos sobre riscos e como
de software nos projetos e processos da cenário esperado é definido e o cenário este conceito é utilizado neste domínio.
organização. Consideramos também que atual é avaliado segundo algum critério Em seguida a estratégia e a ferramenta
a qualidade do produto (software) está de qualidade (“Gap Analysis”). O cenário que compõem a abordagem serão apre-
diretamente relacionada à qualidade dos esperado pode ser definido a partir de um sentadas e um exemplo da sua utilização
processos utilizados na sua produção e ou mais modelos ou normas de referência, será discutido.
ao conhecimento técnico que os usuários como, CMMI-DEV 1.2 ou ISO 9001:2000.
deste processo têm sobre as práticas de- Dessa forma, obtém-se a diferença entre Análise de Risco
finidas (institucionalização do processo). o que se espera dos processos da organi- Risco é a “exposição à chance de perdas
Partindo-se destas premissas pode-se zação e onde eles realmente estão. A partir ou danos”. Embora exista também uma
concluir que qualquer risco à qualidade e daí, elaboram-se planos de ação para que chance de alguma coisa sair melhor do
à institucionalização do processo se refle- esta distância seja diminuída ou elimina- que o esperado, o risco geralmente cos-
te em riscos na qualidade do produto que da, a partir da priorização e seleção dos tuma ser associado a possíveis perdas ou
será entregue e, consequentemente, em planos de ação que serão implantados danos. O conceito de risco resulta da incer-
riscos para a organização. Sendo assim, (fase de Estabelecimento). teza quanto a eventos futuros e é parte de
ações de gerência de risco nos processos
podem contribuir diretamente com a
garantia da qualidade do produto final
e fornecem dados que permitem identi- Por mais controlada e precisa que seja a execução de uma
ficar quais ações devem ser tomadas com
maior urgência. atividade de desenvolvimento, sempre existe o risco, mes-
Neste artigo apresentamos uma abor-
dagem de análise de processos na qual é mo que muito remoto, de algo dar errado.
identificado de forma customizada tanto
o nível de conformidade (quantidade de
recomendações do modelo de referência A abordagem que apresentaremos todas as atividades de desenvolvimento.
implementadas nos processos da organi- facilita a realização das fases de Diag- Um processo de desenvolvimento bem
zação) quanto o nível de risco (quantidade nóstico e Estabelecimento de um ciclo de definido e institucionalizado visa reduzir
de riscos presentes no processo de desen- melhoria contínua, identificando clara- a chance de ocorrência de ameaças (perdas
volvimento devido às recomendações não mente os riscos associados aos processos ou danos). Toda oportunidade de sucesso
implementadas) em cada área de processo. definidos (Diagnóstico) e fornecendo um sempre carrega consigo uma possibilidade
Dessa maneira, uma análise dos processos critério de priorização destes riscos (Es- de falha, cabendo a cada empresa avaliar
da organização fornece duas classes de tabelecimento). Para isso, são utilizadas a relação risco versus retorno e determinar
dados para a tomada de decisão e dire- uma estratégia de avaliação e atividades se “estar” sujeito a esta perda é aceitável,
cionamento de recursos, indicando o que de avaliação e melhoria de processos se este evento é muito grave, ou ainda
deve ser feito para melhorar o processo de desenvolvimento de software. A se o procedimento para a mitigação não
(conformidade) e quais ações devem ser avaliação verifica tanto a dimensão de oferece um retorno satisfatório.
tomadas primeiro (risco). conformidade entre o processo e modelos Por mais controlada e precisa que seja a
Uma das formas mais indicadas para a de maturidade ou normas de qualidade, execução de uma atividade de desenvol-
definição e implantação de processos de quanto à dimensão dos riscos que a não vimento, sempre existe o risco, mesmo
maneira eficiente é a utilização de um utilização das boas práticas definidas que muito remoto, de algo dar errado.
ciclo de melhoria contínua. Esta forma nestas referências oferecem à qualidade Este fato decorre do grande número de
pode ser comparada ao desenvolvimento do produto desenvolvido pela organiza- variáveis que podem influenciar no resul-
iterativo de um sistema, onde o processo é ção e aos seus objetivos de negócio. Esta tado final e da sua natureza muitas vezes
definido e implantado na organização em ferramenta também indica como estes imprevisível. A partir desse cenário,
fases direcionadas pelas necessidades e pontos podem ser solucionados de forma torna-se necessário aprender a conviver
características da organização. O modelo que a organização obtenha uma maior com riscos, minimizando suas possíveis
IDEAL, desenvolvido pelo Software Engi- qualidade ou resultados a partir deste conseqüências negativas.
neering Institute (SEI), ilustra a utilização ciclo. O diferencial desta abordagem é a As principais atividades da disciplina
deste conceito. A implantação deste ciclo utilização da análise de risco como um de gerência de riscos são:
de melhoria faz com que os processos de instrumento de priorização das ações que • Identificação corresponde à identifi-
uma organização sejam constantemente devem ser tomadas pelas empresas para cação dos riscos inerentes a uma etapa do
avaliados e melhorados. mitigar (reduzir as chances de ocorrên- desenvolvimento (fase, processo, itera-
No modelo IDEAL destacam-se duas cia) os riscos identificados durante a fase ção). Isto é feito através do levantamento
fases: Diagnóstico e Estabelecimento. A de diagnóstico fornecendo um critério das ameaças presentes e do impacto que
fase de Diagnóstico consiste em avaliar o concreto para definição do escopo de podem provocar caso se realizem.
ambiente produtivo e identificar as opor- cada ciclo de melhoria. • Análise corresponde à reflexão so-
A grande maioria realiza inspeções e de quando a avaliação foi realizada, a capacidade esperada e a avaliada, qual
análises rigorosas, que abrangem todo o tornando obsoletos os dados relativos às deve receber os recursos?). A utilização
modelo de referência e geram relatórios áreas de processos e as oportunidades de uma análise de risco oferece um cri-
com uma grande quantidade de informa- de melhoria que não foram abordadas. tério de desempate ou uma opção para a
ções sobre diversas áreas da engenharia A utilização de uma estratégia em duas priorização de investimentos.
de software mas, na maioria dos casos, etapas permite identificar, através de
outra grande quantidade de informações uma análise menos elaborada, as áreas Ferramenta de apoio à avaliação
é desperdiçada. Uma avaliação indica mais relevantes e realizar uma análise Para auxiliar a realização da avalia-
o estado atual da organização e aponta mais elaborada apenas nestas áreas. ção dos processos de uma organização
as oportunidades de melhoria na im- Finalmente, o quarto princípio tem utilizamos uma ferramenta de apoio à
plementação das diretivas do modelo como objetivo oferecer dados de um ní- execução de avaliações.
de maturidade ou norma de qualidade vel de abstração menos granular para a A metodologia de análise de risco
utilizada como referência. Entretanto, tomada de decisão. Embora a utilização implementada pela ferramenta se baseia
devido a restrições de orçamento e ao da capacidade de processo e do nível de na avaliação de características de ativos
impacto que elas representam no am- maturidade seja o parâmetro mais utili- da organização, que podem representar
biente produtivo, apenas uma pequena zado no direcionamento de recursos na pessoas da organização, processos uti-
parte destas recomendações pode ser área de desenvolvimento de software, lizados, tecnologias e características do
implementada na próxima iteração do estes conceitos são um tanto abstratos ambiente de desenvolvimento. Cada ativo
programa de melhoria. Após a implemen- e em muitos casos dificultam esta ativi- é mapeado em componentes de negócio
tação da primeira iteração de melhoria, o dade (se vários processos apresentam a (para o contexto de desenvolvimento de
estado da organização já não é o mesmo mesma capacidade e o mesmo gap entre software foram utilizados objetivos do
Controle Processo - CMMI – Gerência de Configuração – Prática 3.1 - 2 - As versões anteriores de um item de configuração devem ser passíveis de recuperação.
Uma versão anterior de um item de configuração deve ser recuperada caso uma modificação não seja corretamente implementada, caso os arquivos atuais (na nova configuração
Justificativa do software) estejam corrompidos, caso seja efetuada uma junção (merge) incorretamente entre um ramo (linha temporária de desenvolvimento) e a linha principal de
desenvolvimento. Nestas situações, pode ser apropriado restaurar uma versão anterior para que esta se torne a atual.
Probabilidade 4 Severidade 3
Std 1042 - IEEE Guide to Software Configuration Management, Institute of Electrical and Electronics Engineers, 1987.
ISO/IEC 12207 - Information technology - Software life cycle processes, International Organization for Standardization, 1995.
ISO/IEC 15504 - Information technology - Process Assessment, International Organization for Standardization, 2004.
Referências
CMMI-Dev: Área de Processo: Gerência de Configuração
Bibliografia de apoio:
H. R. Berlack, Software Configuration Management. New York: John Wiley & Sons, 1992.
Baixa manutenibilidade
Ameaças
Perda de controle de solicitações de mudança
mentação de características espalhadas de um processo padrão para a área de ganização, das pessoas, dos fornecedores
em vários checklists. processo de definida em algum modelo ou do projeto ao qual ele pertence. Sendo
ou norma de referência, como Gerência assim, chegou-se a seguinte taxonomia
A Tabela 1 apresenta um exemplo de de Configuração e Solução Técnica do para os ativos:
controle de uma prática de gerência de CMMI, ou grupo de áreas de processo, • Processos representam fluxos de tra-
configuração. que será utilizado como base para a balho, áreas de processo ou disciplinas da
A avaliação consiste em responder aos elaboração das recomendações de im- organização. Cada checklists associado
checklists associados aos ativos e sele- plementação de controles. Esta atividade a este tipo de ativo possui o escopo de
cionados na configuração do projeto de possui tarefas de elaboração e revisão uma área de processo do modelo de
avaliação. Estes podem ser respondidos de conteúdo e aderência aos modelos ou maturidade ou norma de qualidade. A
diretamente ou através de questionários normas de qualidade utilizadas como utilização destes ativos define uma di-
enviados via WEB, onde o conteúdo dos referência. Em seguida, atividades de mensão da avaliação onde os processos
controles pode ser interpretado para um geração e revisão de arquitetura dos che- são o principal fator para o alcance dos
domínio específico, por exemplo, para cklists são executadas de forma iterativa objetivos da organização e, consequen-
os diversos papéis de uma organização. e concorrente, até que um produto com temente, a principal fonte de evidências
A utilização dos questionários permite
um ganho de escala e de cobertura da
avaliação, ao mesmo tempo em que di-
minui o impacto da avaliação e aumenta
A arquitetura do checklist consiste da identificação dos
a aceitação das melhorias no processo de
desenvolvimento uma vez que todos se
controles que serão desenvolvidos e dos questionários que
sentem parte da avaliação e podem con-
tribuir com comentários e sugestões.
serão utilizados como coletores automáticos de dados.
Após a coleta dos dados, é gerado um
conjunto de relatórios contendo tabelas e
gráficos que indicam o estado da imple- qualidade assegurada seja desenvolvido. da implementação do modelo ou norma
mentação das boas práticas e os riscos A arquitetura do checklist consiste da de referência.
presentes na organização e fornecem identificação dos controles que serão • Pessoa representa os atores da orga-
dados para a tomada de decisão (o que e desenvolvidos e dos questionários que nização. Os checklists associados a este
como deve ser feito). Cada controle não serão utilizados como coletores automá- tipo de ativo verificam as diretivas da
implementado ou implementado parcial- ticos de dados. norma relativas a um papel da organi-
mente, contribui com um índice de risco Tendo um conjunto revisado dos contro- zação (desenvolvedor, gerente, analista
(PSR) que é obtido pela multiplicação da les que devem ser implementados e um de requisitos, etc.) que é assumido pela
relevância do ativo avaliado (R), da pro- questionário que interpreta e responde pessoa que é referenciada pelo ativo. A
babilidade da concretização das ameaças estes controles do checklist através de utilização de ativos do tipo Pessoa defi-
possíveis (P) e da severidade desta con- uma lógica bem definida para as suas ne uma dimensão da avaliação onde as
cretização (S) . Além do PSR, os seguintes perguntas, inicia-se uma nova etapa de pessoas e os papéis que elas executam
indicadores são utilizados: implementação e revisão dos controles, são o principal fator para o alcance dos
onde o conteúdo dos controles iden- objetivos da organização e, consequen-
Índice de PSR controles (elemento) tificados é elaborado e o questionário temente, a principal fonte de evidências
Segurança = implementados
PSR (Total)
desenvolvido é refinado. Finalmente, os da implementação do modelo ou norma
checklists são homologados e adiciona- de referência.
dos à ferramenta. • Ambiente representam o ambiente
Índice de
€ Num.Controles Im plementados
Tendo um guia para a elaboração dos organizacional, caracterizado pelas
Conformidade = Num.ControlesTotal checklists, o segundo passo é a identifica- acomodações, aspectos inter-pessoais,
ção dos checklists que seriam utilizados política motivacional e outros fatores
A partir destes índices, pode-se gerar para a realização das avaliações. Como que afetam indiretamente a execução dos
um grande número de interpretações, os checklists são associados aos ativos da processos. Os checklists associados a este
através da filtragem e agrupamento de organização, através dos componentes, tipo de ativo verificam as características
dados das áreas de processo, ativos, esta atividade foi realizada utilizando gerais da organização e como ela contri-
ameaças, departamentos ou objetivos como parâmetro os tipos de ativos. bui ou não com o alcance dos objetivos
de negócio. A ferramenta define quatro tipos de da organização.
ativo para a realização das avaliações: • Tecnologia representa a estrutura
Utilizando a Abordagem “Pessoa”, “Processo”, “Ambiente” e “Tec- tecnológica da organização, definida por
Para utilização desta abordagem em nologia”. Para o domínio de processos de suas máquinas e ferramentas. Os che-
uma avaliação, utilizamos um conjunto desenvolvimento, definiu-se que cada cklists associados a este tipo de ativo ve-
de atividades. ativo funciona como uma dimensão de rificam características da infra-estrutura
A primeira atividade consiste na criação coleta de dados sobre os processos da or- referenciada pelo ativo, como segurança
foi totalmente atendido, este deve ser os controles parcialmente implementados de desenvolvedor, portanto o peso das
preenchido como “Não implementado”. contribuirão com menos risco do que os áreas técnicas do modelo será maior que
Utilizando a premissa de que um controle controles do mesmo tipo classificados o peso das áreas de gestão ou das áreas
parcialmente implementado possui uma como não implementados. organizacionais. Além disso, nesta etapa,
probabilidade menor de causar danos do os objetivos do negócio da organização
que um controle não implementado, foi Utilizando a abordagem não foram identificados e mapeados nos
determinado que, para cada nível de im- Para demonstrar a aplicabilidade da ativos de software.
plementação atingido pelo controle, a sua abordagem proposta, foram realizados Abaixo são apresentados os resultados
probabilidade será diminuída em uma vários estudos de caso, nos quais o da avaliação:
unidade, até chegar ao valor mínimo 1. processo utilizado por equipes de desen- Conforme apresentado na Tabela 3 e
Para exemplificar a abordagem, consi- volvimento de software de organizações na Figura 3, as áreas de Planejamento
dere um controle cuja probabilidade seja distintas foi avaliado. A seguir, é apre- de Projetos, Solução Técnica e Defini-
quatro. Em uma avaliação que utiliza sentado um resumo de uma das avalia- ção do Processo Organizacional têm o
o modelo CMMI como referência, um ções realizadas onde se realizou apenas maior índice de Segurança indicando que
controle classificado como parcialmente a etapa de Abrangência. Para preservar a maior parte das práticas destas áreas
implementado será preenchido como Não a confidencialidade, as informações estão implementadas. Ao contrário, as
Implementado e a sua probabilidade será apresentadas foram descaracterizadas áreas de Treinamento Organizacional,
alterada para três. O resultado desta abor- (ver Tabela 2). Gerência de Requisitos, Integração
dagem é que, ao final da análise de risco, A avaliação considerou somente o perfil do Produto e Gerência de Configura-
Empresa ABC
Objetivos: Avaliar o processo utilizado no desenvolvimento dos softwares da organização utilizando o modelo CMMI DEV 1.2 como referência e identificar oportunidades de melhoria nas áreas de processo
de maior impacto no desenvolvimento dos softwares.
Fase de Abrangência
Projetos de desenvolvimento de - 9 Desenvolvedores do Setor 1 Áreas de níveis 2 e 3 do CMMI DEV 1.2, exceto : Garantia da Qualidade, Gerencia de Fornecedores,
16/4
sistemas internos da organização - 9 Desenvolvedores do Setor 2 Gerência de Risco, Gerenciamento Integrado e Análise de Decisões e Resoluções
Planejamento de Projetos
Solução Técnica
Definição do Processo Organizacional
Medição e Análise
Monitoramento e Controle de Projetos
Avaliação e Melhoria do Processo
Segurança
Validação
Conformidade
Desenvolvimento de Requisitos
Verificação
Gerência de Configuração
Integração do Produto
Gerência de Requisitos
Treinamento Organizacional
0 20 40 60 80 100
%
Figura 3. Resultados da avaliação em Abrangência – Gráfico de Índices de conformidade e segurança para cada área de Processo (Ordenação decrescente
pelas áreas de maior índice de Segurança)
Gerência de Configuração
Verificação
Integração do Produto
Desenvolvimento de Requisitos
Gerência de Requisitos
Solução Técnica
Monitoramento e Controle de Projetos
Validação
Treinamento Organizacional
Medição e Análise
Planejamento de Projetos
Avaliação e Melhoria do Processo
Definição do Processo Organizacional
Figura 4. Resultados da avaliação em Abrangência – Gráfico de PSR por área de Processo (Ordenação decrescente pelas áreas de maior PSR)
Gerência de Configuração
Solução Técnica
Integração do Produto
Verificação
Desenvolvimento de Requisitos
Gerência de Requisitos
Monitoramento e Controle de Projetos
Validação
Treinamento Organizacional
Medição e Análise
Avaliação e Melhoria do Processo
Planejamento de Projetos
Definição do Processo Organizacional
Figura 5. Resultados da avaliação em Abrangência – Gráfico de PSR do Setor 1 por Processo (Ordenação decrescente pelas áreas de maior PSR)
Verificação
Desenvolvimento de Requisitos
Gerência de Configuração
Integração do Produto
Gerência de Requisitos
Monitoramento e Controle de Projetos
Validação
Solução Técnica
Treinamento Organizacional
Planejamento de Projetos
Avaliação e Melhoria do Processo
Medição e Análise
Definição do Processo Organizacional
Figura 6. Resultados da avaliação em Abrangência – Gráfico de PSR do Setor 2 por Processo (Ordenação decrescente pelas áreas de maior PSR)
Setor 1 Setor 2
PSR Controles PSR Controles Não PSR Controles PSR Controles Não
Área de Processo PSR Total PSR Total
Implementados Implementados Implementados Implementados
Q
uando os modelos CMMI e RUP zando uma perda contínua de agilidade
foram popularizados, as empre- para seus clientes e o mercado.
sas convenceram-se de que, para O movimento ágil foi o ressurgimento
gerenciar a crescente complexidade do de um ponto de vista que foi esquecido
setor de TI, seria fundamental ampliar o pela TI, quando abraçamos tão fortemen-
nível do controle operacional sobre todos te os processos e controles operacionais
os projetos existentes. e negligenciamos a agilidade de nossos
Apesar de muitas empresas seguirem projetos.
à risca a cartilha do CMMI, formalizan- O modelo ágil orienta empresas, pro-
do seus processos, padronizando seus fissionais e metodologistas a pensarem
artefatos e reduzindo as flutuações de na TI como uma organização veloz,
qualidade e incertezas dos projetos, onde o tempo de resposta não pode ser
muitas delas não obtiveram os resulta- sacrificado. Quanto mais rápida uma
dos financeiros desejados. Suas receitas empresa, mais entregas são realizadas
Alexandre Bartie financeiras e lucros operacionais foram em um menor espaço de tempo, gerando
alexandre_bartie@hotmail.com reduzidos em função do aumento dos mais oportunidades de faturamento, o
Atua há 17 anos no gerenciamento de pro- custos e a crescente dilatação dos prazos que reverte imediatamente em maior
cessos voltados à Qualidade e Engenharia de
de entrega. rentabilidade nos negócios.
Software. Pós-Graduado em Capacitação Ge-
rencial pela FEA-USP e em Gestão Empresarial Infelizmente, as empresas e profissio- Porém, a ênfase na agilidade também
pelo Instituto Trevisan. É Bacharel em Admi- nais deram apenas ênfase ao controle possui suas restrições - ser rápido leva
nistração de Empresas pela Fundação Santo operacional, implementando cada vez inevitavelmente a um novo limite opera-
André. Diretor de Inovação da ALATS (Associa- mais artefatos, controles e procedimen- cional. Somente com controles gerenciais
ção Latino-Americana de Teste de Software)
tos internos. Desta forma, os processos bem implementados, poderemos ultra-
e Engenheiro de Software responsável pelo
Framework X-Zone. Autor do Livro Garantia da tornaram-se mais pesados, provocando passar estes limites sem provocarmos
Qualidade de Software. uma grande lentidão operacional, sinali- um colapso nos serviços da TI.
Desta forma, o grande desafio das ência do período delicado que muitas Ressalva Importante
organizações do futuro é conseguir con- organizações estão passando. Nunca o Antes de prosseguirmos com o artigo, é
ciliar agilidade e controle operacional momento foi tão favorável a investimen- fundamental compreender que as abor-
simultaneamente, possibilitando a área tos de TI, porém o excesso de alternativas dagens citadas estão sendo apresentadas
de TI operar com o máximo de qualidade estão gerando um alto nível de incertezas de forma resumida, não explorando
e produtividade. em nossos executivos, o que provoca uma todos os aspectos, contextos e formatos
O objetivo deste artigo é justamente paralisação nestes investimentos. existentes.
apresentar um modelo que combine Desta forma, elaborei um modelo de O método de classificação emprega-
agilidade e controle operacional numa gestão de TI que respeitasse as aborda- do foi pelo critério de prioridades que
única abordagem, viabilizando o que gens em andamento, chamado aqui de cada abordagem possui. Modelos ágeis
chamo de Organizações TI de Alto Modelo Controlado, e permitisse uma priorizam a agilidade, enquanto que mo-
Desempenho.
C
om o propósito de auxiliar os for- sendo ele estruturado, sem que perca
necedores de soluções de softwa- suas características básicas. Ele utiliza
re que utilizam como plataforma alguns princípios modernos (compo-
a internet, este artigo objetiva formalizar nentização, revisões, etc) na área de
idéias práticas, explicando como o de- engenharia de software.
senvolvimento de sistemas Web pode Algumas características básicas do
ser integrado ao Processo Unificado. Processo Unificado são:
Serão apresentados alguns artefatos para • Direcionado por casos de uso: O iní-
controlar o desenvolvimento de um Web cio do processo deve ser marcado pela
Site, além das vantagens e os cuidados utilização dos casos de uso, a fim de se
a tomar com a integração de forma a definir uma linguagem entre os usuários
facilitar a entrega. Serão apresentados e o sistema, facilitando a especificação
também alguns pontos relacionados com dos requisitos.
a gerência e o plano de execução. • Centrado na arquitetura: O processo
Rodrigo S. Prudente de Aquino Além disso, explica-se como o Processo procura modelar uma arquitetura através
rodrigo@wpage.com.br Unificado pode ser configurado de acor- dos aspectos estáticos e dinâmicos de um
É bacharel em Ciência da Computação pela
do com o tempo que uma empresa possui projeto, que podem ser obtidos junto a
PUC-SP e MBA em Engenharia de Software
pela USP. Foi analista de sistema na Petrobras para desenvolver um projeto voltado para um estudo direcionado pelos casos de
e trabalhou como Gerente de Tecnologia Web internet. uso mais significativos.
em uma das maiores agências de marketing • É iterativo e incremental: Uma das
direto do Brasil. Escritor de artigos e pales- Processo Unificado práticas do processo é dividir grandes
trante em universidades, Rodrigo S. Prudente
O Processo Unificado é um processo projetos em mini-projetos. Cada mini-
de Aquino é autor do livro WPage - Padro-
nizando o Desenvolvimento de Web Sites de desenvolvimento fortemente ligado projeto possui uma iteração, que quase
(www.wpage.com.br). Atualmente, trabalha à orientação a objetos, porém, pode-se sempre abrange todo o fluxo de trabalho.
como Líder de Projeto no Grupo Totvs. utilizá-lo em qualquer projeto mesmo Olhando como um todo, essa iteração
resulta em um incremento para o projeto. do ambiente, a conclusão do manual Análise e Projeto: No início desse fluxo
É válido lembrar que as iterações são pla- do usuário, identificação e correção de de trabalho, desenvolve-se uma visão
nejadas de acordo com os casos de uso. defeitos. No final dessa fase deve-se tirar “arquitetural”, incluindo os artefatos
uma conclusão geral do projeto, obtendo significativos para o modelo de projeto.
O Processo Unificado visa tornar clara os pontos positivos e negativos os quais O objetivo aqui é compreender os casos
a necessidade de atribuições de tarefas devem ser utilizados durante a concepção de uso mais importantes, que serão
a grupos ou indivíduos envolvidos di- de projetos futuros. insumos para a elaboração de alguns
retamente no desenvolvimento de um artefatos, como: um diagrama de classes,
projeto. Além disso, deve-se definir o Em relação aos fluxos de trabalho, ou de estado, de iteração, de seqüência, de
quanto antes, quais as etapas (iterações) e disciplinas, tem-se os seguintes escla- colaboração, etc. É válido lembrar que
os artefatos que serão envolvidos durante recimentos. não é necessária a utilização de todos os
o processo. Com essas características, Modelo do negócio: O objetivo princi- artefatos, mas apenas aqueles que sejam
conclui-se que o Processo Unificado é pal desse fluxo é que o fornecedor enten- relevantes a fim de que o cliente entenda
um modelo configurável, ou seja, deve da muito bem o problema a ser resolvido, perfeitamente o que será construído. Com
ser ajustado de acordo com os tipos de elaborando se necessário uma análise de artefatos bem elaborados, a equipe de
projeto que se necessita desenvolver. risco e de viabilidade para o projeto como desenvolvimento terá grandes facilidades
A Figura 1 apresenta a relação entre as um todo. Neste momento, existe uma em realizar a implementação. No início
fases, iterações e os fluxos de trabalho grande interação entre o fornecedor e o deste fluxo encontra-se, caso necessário,
dentro do Processo Unificado. cliente. A fim de que possam ser gerados protótipos de funcionalidade e de inter-
Concepção ou iniciação: Essa fase tem os casos de uso e consequentemente face, como também uma descrição da
como objetivo verificar a viabilidade do a extração dos requisitos. Entender o arquitetura básica do sistema. Durante
projeto, bem como os riscos e um dos modelo de negócio do cliente é peça fun- o desenvolvimento do projeto alguns
fatores não menos importantes: definir damental antes que um requisito possa artefatos poderão sofrer ajustes de acordo
os casos de uso mais críticos obtendo ser definido. com as implementações realizadas.
as funções chave do sistema. É através Requisitos: Nesse fluxo procura-se Implementação: No início desse flu-
do tipo do projeto, dos casos de uso e extrair os requisitos do sistema a ser de- xo, os desenvolvedores poderão bus-
consequentemente dos requisitos, que senvolvido. A grande dificuldade nesta car componentes (funções) que foram
se realizará o ajuste de quantas iterações etapa e no desenvolvimento de software é utilizados em outro sistema. Ainda
o processo terá. De acordo com os casos capturar requisitos de forma que os clien- na fase de concepção, pode-se ter um
de uso, pode-se definir também quais as tes possam entender claramente o que o protótipo de funcionalidade como um
etapas exigirão maior cuidado. sistema se propõe a fazer. A base para isso produto final em primeira instância. No
Elaboração: Durante essa fase, a maio- é que o fornecedor entenda o domínio do decorrer deste fluxo, procura-se ter um
ria dos casos de uso são especificados e problema e consequentemente construa sistema executável a cada iteração, além
detalhados. A arquitetura do sistema é um bom modelo de casos de uso. A ex- da implementação baseada nos artefatos
projetada utilizando artefatos que po- tração dos requisitos, através dos casos criados no modelo de análise e projeto.
dem ser estáticos ou dinâmicos. Neste de uso, irá compor um artefato que será O conceito de componentização deve ser
instante são apresentados, o Baseline evoluído durante todo o projeto. sempre levado em consideração, com o
completo do projeto, os componentes
que formarão a equipe de desenvolvi-
mento, etc. No final dessa fase os envol-
vidos devem estar aptos a planejar a fase
de construção em detalhes.
Construção: A fusão de vários artefatos
de software ocorre neste momento, pos-
sibilitando que o sistema seja implemen-
tado quase que completamente. Tem-se
uma visão geral de como o Baseline do
projeto está sendo seguido. No final dessa
fase, o sistema deve estar totalmente pre-
parado para a transição ao usuário.
Transição: O objetivo dessa fase é
garantir que todos os requisitos do pro-
jeto foram atendidos e implementados
corretamente. O produto final pode ser
liberado em uma versão beta. Existem
ainda outras atividades que, de acordo
com o projeto, podem ocorrer de manei-
ra paralela, por exemplo, a preparação Figura 1. Overview do Processo Unificado
Planilha de requisitos podendo ser baixa, média ou alta. do sistema com as áreas ou páginas de
Para elaborar um sistema Web, é neces- • Atendido: Representa o status do uma aplicação. Cada página receberá um
sário um levantamento dos requisitos. requisito, indicando se o mesmo foi ou código, que por sua vez será relacionado
Neste contexto, precisa-se de um arte- não implementado no sistema. com nenhum, um ou mais requisitos.
fato para armazenar estas informações. • Comentários: Fornece informações Através deste documento bus-
Utilizaremos neste artigo uma planilha sobre o requisito, dizendo, por exemplo, ca-se um maior controle do sistema,
Excel como artefato, de forma a explicar o motivo que um determinado requisito pois se houver quaisquer modificações
simplificadamente a organização dos ainda não foi implementado (indicando nos requisitos o fornecedor saberá
requisitos. A planilha Excel terá as carac- mais especificamente, quais são as difi- quais áreas devem sofrer mudança. Este
terísticas representadas na Figura 2. culdades). também é um artefato “vivo” e deve ser
Nesta planilha temos: incorporado ao fluxo de trabalho de ge-
• Código: Identifica unicamente um A planilha de requisitos é um artefato rência de configuração e mudança (SCM
requisito a fim de que se possa controlá-lo “vivo” no ciclo de vida do projeto e deve - Software Configured Management). A
através do projeto. ser incorporado à área de SCM (Software Figura 3 apresenta um exemplo de como
• Descrição: Nesta coluna descreve-se Configured Management) do Processo seria uma simples representação de um
o requisito. Unificado. A expressão artefato “vivo” Projeto Linear, mostrando algumas áreas
• Categoria: Indica qual é o tipo do indica que a planilha está apta a sofrer do site, com seus respectivos requisitos
requisito (ver Tabela 1). alterações no decorrer do projeto. relacionados.
• Prioridade: Indica o nível de impor-
tância que o requisito possui para o sis- Projeto Linear Web Content
tema em geral, podendo ser baixa, média Além da planilha de requisitos, esse é O Web Content é um artefato de sof-
ou alta. um dos artefatos mais importantes para tware responsável pelo armazenamento
• Dificuldade: Indica o nível de difi- o desenvolvimento de um sistema Web. de todo o conteúdo textual utilizado
culdade para implementar este requisito, Nele poderão ser mapeados os requisitos em um site. Não existe um documento
Requisitos Funcionais
Requisitos Estáveis: São aqueles que derivam da atividade fim da organização e são relativos diretamente ao domínio do sistema.
Requisitos Voláteis: São requisitos que mudam ao longo do desenvolvimento ou após o início da operação. Dentro dele, existem:
Requisitos Mutáveis: São requisitos que se alteram em razão das mudanças no ambiente no qual está operando.
Requisitos Emergentes: São requisitos que não podem ser completamente definidos quando o sistema está em desenvolvimento.
Requisitos Conseqüentes: São requisitos baseados em premissas de como o sistema será usado. Quando o sistema é colocado em operação, ocorrem mudanças.
Requisitos de Produto: São aqueles específicos do comportamento do produto. Dentro dele, existem:
Requisitos de usabilidade
Requisitos de eficiência
Requisitos de disponibilidade
Requisitos de portabilidade
Requisitos de confiabilidade
Requisitos Organizacionais: São aqueles derivados de políticas e procedimentos organizacionais do cliente e dos desenvolvedores. Existem os seguintes tipos de requisitos organizacionais:
Requisitos de versão: definindo o produto e quais os documentos são necessários para liberar uma versão para o usuário.
Requisitos Externos: São aqueles derivados de fatores externos ao sistema e ao seu processo de desenvolvimento.
Requisitos étnicos: assegurando que o sistema será aceito pelos usuários e pelo público em geral.
Requisitos de legislação: devem ser seguidos para assegurar que o sistema vai operar de acordo com normas vigentes. Pode ser dividido em: requisito de privacidade e requisito de segurança.
Protótipo de interface
O protótipo pode ser uma parte da apli-
cação implementada, protótipo de fun-
cionalidade, ou uma proposta de layout,
protótipo de interface, feita pelo designer
e aprovada pelo cliente. Este item fornece
algumas informações apenas sobre o
protótipo de interface. Para chegar até o
protótipo, o designer precisa utilizar o
FDD ou pelo menos uma parte dele para
Figura 3. Projeto Linear e requisitos ter noções de como será a divisão do site.
A principal função deste artefato é forne-
cer ao cliente quais serão as cores básicas
da aplicação, uma parte da arquitetura de conhecimento da visão de negócio do artefatos que ainda sofrerão algum tipo
informação e como ficarão disponibiliza- cliente e do sistema a ser desenvolvido de alteração no decorrer do desenvolvi-
das as informações aos usuários dentro como um todo, pode-se, por exemplo, mento do projeto.
do site. A vantagem na utilização deste dividir as fases do projeto conforme Modelo de negócio: Neste fluxo, se o
artefato é direcionar totalmente a equipe apresentado na Tabela 2. fornecedor achar necessário, pode-se re-
de análise e projeto, bem como a equipe É importante destacar que a Tabela 2 é alizar um documento indicando a análise
de implementação. apenas um exemplo baseado na ilustra- de viabilidade e de risco do projeto. Caso
ção do Processo Unificado, presente no esteja difícil para o fornecedor entender
O Processo Unificado integrado ao segundo tópico deste artigo. A quantida- o domínio do problema, deve-se elaborar
desenvolvimento Web de de tempo e iterações que um sistema um diagrama de casos de uso do negócio,
Neste item, explica-se como configurar
o Processo Unificado de acordo com o
sistema a ser desenvolvido, obtendo uma
determinada quantidade de iterações.
“ Ao ser definido o prazo de entrega, o processo começa a
Além disso, descreve-se o esforço gasto
para construir cada artefato Web em
ser modelado à medida que o Baseline é construído. ”
razão das fases do processo.
Configurando o Processo Unificado terá irá variar muito em razão do tipo bem como sua descrição, ficando mais
Antes de iniciar o desenvolvimento de do projeto, do número de profissionais fácil chegar ao domínio da solução. Os
qualquer projeto utilizando o Processo envolvidos, do prazo de entrega, das casos de uso do negócio darão suporte
Unificado, é necessário determinar os flu- funcionalidades, etc. O tempo de experi- ao diagrama e a descrição de casos de
xos de trabalho mais utilizados, o número ência da equipe de desenvolvimento é um uso do sistema. Nesse fluxo, o Baseline
e o tempo de cada iteração dentro das fator importante, de forma a identificar do projeto começa a ser construído,
fases. Para um sistema Web, normalmente e combater os pontos críticos durante a contemplando custos, prazos, cargos e
consideram-se todos os fluxos de trabalho implementação da aplicação. número de pessoas envolvidas. É válido
do processo, ou seja, modelo de negócios, A Tabela 3 apresenta uma aproximação destacar que às vezes, o Baseline pode ser
requisitos, análise e projeto, implementa- da quantidade de esforço gasto em cada modificado de acordo com as iterações
ção, teste e implantação. Com o objetivo artefato de software voltado para Web, do processo. Um cliente pró-ativo em
de esclarecer melhor a configuração do relacionando-os ao Processo Unificado. resolver as dúvidas do fornecedor, con-
Processo Unificado imagina-se, para este segue diminuir as chances de impactar
artigo, o desenvolvimento de um Web Site Relacionando artefatos, fases do o desenvolvimento de algumas partes
contendo um prazo de três meses. processo e fluxos de trabalho do projeto, como também uma possível
Ao ser definido o prazo de entrega, Descreve-se detalhadamente neste item, alteração no Baseline.
o processo começa a ser modelado à o que deve ser feito em todos os fluxos de Requisitos: A extração dos requisitos
medida que o Baseline é construído. trabalho, através do número de iterações deve ser feita à medida que os casos de
Considerando que o fornecedor tenha definidas na configuração do processo uso do sistema são realizados e validados.
unificado. Conclui-se que a montagem da planilha
de requisitos aumenta à medida que os
Fases Tempo Iterações Fase Concepção - 1ª. Iteração casos de uso são aprovados pelo cliente.
Concepção 1 semana 1 A 1ª iteração ocorre praticamente depois Mesmo sem a arquitetura de informação
de toda a fase de concepção do projeto, do site, o próprio cliente, por exemplo,
Elaboração 2,5 semanas 1
tendo como referência a Figura 1. No já pode obter informações sobre o que
Construção 6 semanas 2 final dessa iteração, deixa-se claro quais deseja, em relação ao conteúdo que será
os artefatos farão parte da gerência de apresentado em sua aplicação.
Transição 2,5 semanas 1
configuração e mudança, ou seja, aqueles Análise e Projeto: Este fluxo utilizará
Tabela 2. Divisão das fases do projeto até o momento, todos os requisitos cons-
truídos e aprovados dentro da planilha.
Artefatos Concepção Elaboração Construção Transição A arquitetura de informação descrita
no Projeto Linear já pode ser montada
Planilha de requisitos 30% 50% 15% 5% se baseando nos requisitos. É no Projeto
Projeto Linear 20% 70% 10% 0% Linear que serão mapeados os códigos
de cada página do site, a descrição da
Web Content 15% 70% 15% 0%
área e a identificação dos requisitos. Note
FDD (Wireframes) 10% 60% 30% 0% que uma página do site poderá estar
Protótipo de Interface 100% 0% 0% 0%
relacionada a nenhum, um ou a vários
requisitos. Com este artefato garante-se
Tabela 3. Mensuração de esforço X fases mais tarde a rastreabilidade. A estru-
base para a quase completa formação do requisitos são extraídos (área em cinza uma nova característica para o projeto e
Projeto Linear, do Web Content e conse- mais escura em relação às da Figura que os gerentes julguem a necessidade
quentemente do FDD. A Figura 1 fornece 6, indicando que mais requisitos estão de construção para melhor entender o
uma idéia da quantidade de esforço sendo extraídos). problema.
gasto para construir cada artefato. Como No final desta iteração, os artefatos Requisitos: Os requisitos ainda conti-
explicado anteriormente, o Web Content estarão quase que totalmente concluídos. nuam sendo extraídos dos casos de uso
e o Projeto Linear são documentos que Eventuais ajustes podem ocorrer na Ba- e compondo a planilha. No final dessa
possuem forte ligação com o FDD, e este seline e devem ser feitos pelo gerente do iteração, tem-se em torno de 95% dos
depende muito das informações dos dois projeto. A RTF é construída avaliando e requisitos já documentados e aprovados
primeiros artefatos, a fim de que seja cor- formalizando toda a iteração, servindo de pelo cliente. Dessa forma, o FDD, o Web
retamente construído. Alguns artefatos aprendizado e preparando os envolvidos Content e o Projeto Linear, estarão tam-
da UML poderão ser desenvolvidos nessa para a próxima fase do projeto. bém, quase completamente elaborados.
fase, com o objetivo de ajudar o cliente a Análise e Projeto: Alguns artefatos da
entender o sistema. Fase Construção - 3ª e 4ª Iteração UML, escolhidos para melhor representar
Implementação: Inicia-se a junção de Neste contexto, a 3ª e 4ª iterações irão as características do sistema, serão fina-
todas as funções e componentes pes- compor toda a fase de construção do pro- lizados durante essas iterações. É válido
quisados no início do projeto, com os jeto. Mais especificamente, a 3ª iteração lembrar que, exatamente nesse momento,
artefatos desenvolvidos até o momento. indica o meio da fase de construção, en- o desenvolvedor poderá necessitar de
Os desenvolvedores precisam estar aptos quanto que a 4ª, marca o final dessa fase. algum outro artefato da UML o qual
a entender não só os artefatos como o Eventuais ajustes nos artefatos surgirão não havia escolhido anteriormente para
FDD, Web Content e o Projeto Linear, em razão da implementação. representar alguma parte do sistema.
mas também os possíveis diagramas da Modelo de negócio: As análises de Normalmente, essas escolhas são feitas
UML e, principalmente os requisitos ge- viabilidade e de risco diminuem e ser- devido a alguns requisitos críticos.
rados até o instante. Deve-se ter cuidado vem agora apenas para pequenas tarefas Implementação: Os programadores de-
com padrões, de forma que o código seja realizadas no decorrer do projeto. Dificil- verão possuir um suporte quase completo
construído seguindo o conceito de com- mente, durante essas iterações, tem-se de dos artefatos Web citados anteriormente.
ponentização, para que seja facilmente reconstruir um modelo de casos de uso A maioria dos esforços do projeto são
reutilizado mais tarde. do negócio, a não ser que o cliente solicite voltados agora para implementação e
Teste: Esse fluxo pode apresentar
alterações no plano de teste devido ao
número de requisitos já extraídos. Em
conjunto com a fase de implementação,
são realizados testes de módulos, com
objetivo de verificar o que está sendo
feito. É importante lembrar que estes
testes não irão validar um requisito, mas
apenas verificar se ele foi implementado
corretamente.
Implantação: De forma a verificar se o
que está sendo feito em relação à codifi-
cação irá funcionar do lado do cliente, no
final dessa iteração, tem-se a implantação
do que já foi codificado até o momento.
De acordo com o resultado, algumas fun-
ções poderão exigir um cuidado especial
e serem modificadas. Durante esse fluxo,
poderão surgir alguns requisitos não
funcionais, não encontrados durante a
análise do sistema.
A Figura 7 mostra que o objetivo agora
não é mais entregar o protótipo de inter-
face e sim, finalizar os documentos para
que a equipe de desenvolvimento possa
codificar o sistema de maneira rápida e
correta. As linhas tracejadas, com menos
espaços em relação às linhas da Figura 6,
representam que os artefatos estão quase
completos. Isso ocorre à medida que os Figura 7. Overview da 2ª iteração
como o armazenamento dos componentes alteração de funcionalidade envolve o senvolvimento de projetos Web, podem
desenvolvidos nos seus respectivos diretó- desenvolvedor desde o início, que terá ser usados durante a construção de um
rios. Uma boa documentação é importan- uma visão de como essa alteração deverá sistema baseado no Processo Unificado.
te, de forma a facilitar a recuperação dos ser implementada. Com isso, consegue- Além disso, mostrou-se um exemplo prá-
componentes para projetos futuros. se maior controle para que outras partes tico indicando como o processo pode ser
do sistema continuem se comunicando e ajustado de acordo com o tipo e tamanho
Um requisito mudou, e agora? funcionando normalmente. de um projeto. A configuração do pro-
Uma das grandes preocupações do ge- cesso a cada projeto mostra um acumulo
rente do projeto é saber exatamente o que Conclusão de conhecimento armazenado durante a
fazer quando um requisito é alterado pelo Neste artigo, procurou-se mostrar como entrega de cada sistema, fazendo parte
cliente. Explica-se a seguir, o comporta- artefatos específicos, utilizados no de- de uma melhoria contínua.
mento dos artefatos quando um requisito
sofre alguma modificação. A planilha de
requisitos e o modelo de casos de uso são
os primeiros artefatos que o gerente terá
de verificar e se necessário, fazer a alte-
ração imediata. É na planilha que estão
todos os requisitos do sistema, bem como
seus respectivos códigos indicadores. O
código que indica o requisito alterado
precisa ser identificado pelo gerente, que
em seguida, deve abrir o Projeto Linear
e verificar quais as áreas do site usam o
requisito modificado. Dessa maneira, ele
poderá obter os códigos de várias áreas
da aplicação. Utilizando os códigos iden-
tificadores de cada área do site, o gerente
deve pesquisar no Web Content, a fim
de saber quais páginas do site sofrerão
alteração. Perceba que não é objetivo do
gerente de projeto efetuar as alterações,
mas identificar o impacto que as solicita-
ções de alteração podem causar.
Caso o projeto sofra uma mudança no
conteúdo, essa identificação será feita
facilmente. Em relação a uma mudança
de funcionalidade, esta deverá impactar
também na alteração de outros artefatos,
como o digrama de classes, diagrama
de componentes, diagrama de seqü-
ência ou qualquer outro diagrama no
qual esteja sendo usado no projeto. A Figura 9. Overview da 5ª iteração
S
oftware, de modo genérico, é uma Arquitetura de software
entidade que se encontra em quase Quase cinco décadas atrás software
constante estado de mudança. As constituía uma insignificante parte
mudanças ocorrem por necessidade de dos sistemas existentes e seu custo de
corrigir erros existentes no software desenvolvimento e manutenção eram
ou de adicionar novos recursos e fun- desprezíveis. Para perceber isso, basta
cionalidades. Igualmente, os sistemas olharmos para a história da indústria do
Antonio Mendes da Silva Filho computacionais (isto é, aqueles que têm software (ver seção Links). Encontramos
antoniom.silvafilho@gmail.com software como um de seus elementos) o uso do software numa ampla variedade
Professor e consultor em área de tecnologia também sofrem mudanças frequente- de aplicações tais como sistemas de ma-
da informação e comunicação com mais de 20 mente. Essa necessidade evolutiva do nufatura, software científico, software
anos de experiência profissional, é autor dos
sistema de software o torna ‘não confi- embarcado, robótica e aplicações Web,
livros Arquitetura de Software e Programando
com XML, ambos pela Editora Campus/Else- ável’ e predisposto a defeitos, atraso na dentre tantas. Paralelamente, observou-
vier, tem mais de 30 artigos publicados em entrega e com custos acima do estimado. se o surgimento de várias técnicas de
eventos nacionais e internacionais, colunista Concomitante com esses fatos, o cres- modelagem e projeto bem como de lin-
para Ciência e Tecnologia pela Revista Espaço cimento em tamanho e complexidade guagens de programação. Perceba que o
Acadêmico com mais de 60 artigos publicados,
dos sistemas de software exige que os cenário existente, décadas atrás, mudou
tendo feitos palestras em eventos nacionais e
exterior. Foi Professor Visitante da University profissionais da área raciocinem, proje- completamente.
of Texas at Dallas e da University of Ottawa. tem, codifiquem e se comuniquem por Antigamente, os projetos de sistemas
Formado em Engenharia Elétrica pela Uni- meio de componentes de software. Como alocavam pequena parcela ao software.
versidade de Pernambuco, com Mestrado em resultado, qualquer concepção ou solu- Os componentes de hardware, por outro
Engenharia Elétrica pela Universidade Federal
ção de sistema passa então para o nível lado, eram analisados e testados quase
da Paraíba (Campina Grande), Mestrado em
Engenharia da Computação pela University of arquitetural, onde o foco recai sobre os exaustivamente, o que permitia a pro-
Waterloo e Doutor em Ciência da Computação componentes e relacionamentos entre dução rápida de grandes quantidades de
pela Univesidade Federal de Pernambuco. eles num sistema de software. subsistemas e implicava em raros erros de
projetos. Entretanto, a facilidade de mo- computação. Ou seja, projetar a arquite- arquitetura de software (caracterizada,
dificar o software, comparativamente ao tura (ou estrutura geral) do sistema emer- por exemplo, pelo estilo em camadas) e
hardware, tem servido como motivador ge como um problema novo. Questões arquitetura ‘clássica’ (relativa à constru-
para seu uso. Além disso, a intensificação arquiteturais englobam organização e ção de edificações), podemos observar
do uso do software numa larga variedade estrutura geral de controle, protocolos de que o projeto arquitetural é determinante
de aplicações o fez crescer em tamanho comunicação, sincronização, alocação de para o sucesso do sistema.
e complexidade. Isto tornou proibitivo funcionalidade a componentes e seleção A Tabela 2 destaca aspectos da re-
analisá-lo e testá-lo exaustivamente, além de alternativas de projeto. Por exemplo, presentação de projeto que captura
de impactar no custo de manutenção. nos sistemas Web, uma solução que tem elementos característicos da arquite-
Um reflexo dessa situação é que as téc- sido empregada faz uso de múltiplas tura enquanto que as restrições estão
nicas de abstração utilizadas até o final camadas separando componentes clien- associadas a atributos de qualidade e,
da década de 1980 (como decomposição te, servidores de aplicações, servidores portanto, servem como determinantes
modular, linguagens de programação de Web e outras aplicações (que possam ter nas decisões do projeto arquitetural.
alto nível e tipos de dados abstratos) já acesso a esse sistema). Essa estruturação Por exemplo, embora o uso de múltiplas
não são mais suficientes para lidar com em camadas objetiva facilitar a alocação camadas facilite a manutenção de um
essa necessidade. da funcionalidade aos componentes. O sistema de software, também contribui
Diferentemente do uso de técnicas que uso de camadas oferece suporte à flexi- para degradar o desempenho do sistema.
empregam algoritmos e estruturas de bilidade e portabilidade, o que resulta em Uma tática tem sido reduzir o nível de
dados e das linguagens de programação facilidade de manutenção. Outro aspecto acoplamento entre componentes para não
que implementam tais estruturas, o cres- a destacar da arquitetura em camadas é comprometer o desempenho do sistema.
cimento dos sistemas de software deman- o uso de interfaces padrões visando faci- Dessa forma, se adotarmos uma redução
da notações para conectar componentes litar reuso e manutenção. Interfaces bem no nível de acoplamento dos compo-
(módulos) e descrever mecanismos de definidas encapsulam componentes (com nentes, eles terão menor necessidade de
interação, além de técnicas para geren- funcionalidades definidas) já testados, comunicação entre si, o que resulta num
ciar configurações e controlar versões. prática que permite o reuso e também melhor desempenho.
A Tabela 1 apresenta o contexto da ar- auxilia na manutenção, já que toda e Hoje em dia, os processos de engenharia
quitetura de software. Na programação qualquer alteração necessária estaria de software requerem o projeto arquite-
estruturada, é feito uso de estruturas de confinada àquele componente. tural de software. Por quê?
seqüência, decisões e repetições como • É importante poder reconhecer as
‘padrões’ de controle nos programas. Já Importância da Arquitetura de estruturas comuns existentes de modo
a ocultação de informações é um recurso software que arquitetos de software (ou enge-
do paradigma orientado a objetos que Todos esses fatores compreendem o nheiros de software realizando o papel
permite ao programador, por exemplo, projeto no nível arquitetural e estão de arquiteto de software – conforme
ocultar dados tornando-os seguros de diretamente relacionados com a orga- Tabela 3) possam entender as relações
qualquer alteração acidental. Além disso, nização do sistema e, portanto, afetam existentes nos sistemas em uso e utilizar
na programação orientada a objetos, da- os atributos de qualidade (também esse conhecimento no desenvolvimento
dos e funções podem ser ‘encapsulados’ chamados de requisitos não funcionais) de novos sistemas.
numa entidade denominada objeto, o que como desempenho, portabilidade, con- • O entendimento das arquiteturas per-
resulta em mais simplicidade e facilidade fiabilidade, disponibilidade, entre ou- mite aos engenheiros tomarem decisões
na manutenção de programas. Por outro tros. Se fizermos uma comparação entre sobre alternativas de projeto.
lado, os estilos arquiteturais capturam o
‘padrão’ de organização dos componen-
tes de software num programa, caracte- Abordagem Foco Padrões
rizando a forma na qual os componentes Programação estruturada Sistemas de pequeno porte Estruturas de controle
comunicam-se entre si.
Encapsulamento e ocultação de
Perceba que a categorização, apresenta- Abstração e modularização Sistemas de médio porte
informações
da na Tabela 1, teve o objetivo de capturar
uma visão geral de abordagens aplicadas Componentes e conectores Sistemas de grande porte Estilos arquiteturais
a sistemas de software. Nada impede, por
Tabela 1. Contexto da arquitetura de software.
exemplo, o uso da programação estru-
turada em sistemas de grande porte ou Categorias arquiteturais Representações de projeto Restrições
da ênfase de um estilo arquitetural num
sistema de pequeno porte. Entretanto, Modelos, desenhos, planos, elevações e Padrão de circulação, acústica, iluminação e
Arquitetura Clássica
essa prática não é comum. perspectivas ventilação
Note que à medida que tamanho e com-
Desempenho, confiabilidade, escalonamento e
plexidade dos sistemas de software au- Arquitetura de Software Modelos para diferentes papéis, múltiplas visões
manutenibilidade
mentam, o problema de projeto extrapola
as estruturas de dados e algoritmos de Tabela 2. Comparação de aspectos arquiteturais.
meio da troca de mensagens constitui tilo (isto é a classe de organização do sis- de todos os usuários que se encontram
uma forma através da qual os componen- tema) terá sobre atributos de qualidade. conectados (a um servidor específico)
tes de software interagem entre si. Adicionalmente, facilita a comunicação naquele momento, enquanto que o pro-
• Identificação de propriedades – o do projeto, além do reuso da arquitetura grama sort ordena essa lista de usuários
arquiteto pode analisar as propriedades (da solução). em ordem alfabética (de login).
oferecidas por cada estilo baseado na or- A caracterização e existência de estilos Outro exemplo compreende a arqui-
ganização dos componentes e nos meca- arquiteturais constituem sinais de ama- tetura básica de um compilador como
nismos de interação, conforme discutido durecimento da engenharia de software, ilustrado na Figura 2. Observe que cada
abaixo. uma vez que permite ao engenheiro or- etapa do processo de compilação é reali-
ganizar e expressar o conhecimento de zada separadamente por um componente
O estilo arquitetural considera o sistema um projeto de modo sistemático e útil. (ou seja, um filtro).
por completo, permitindo o engenheiro Note que uma forma de codificar conhe-
ou arquiteto de software determinar cimento é dispor de um vocabulário de Um compilador tem duas funções bási-
como o sistema está organizado, ca- um conjunto de conceitos (terminologia, cas: análise e síntese. A função de análise
racterizando os componentes e suas propriedades, restrições), estruturas é implementada por três componentes:
interações. Em outras palavras, ele (componentes e conectores) e padrões analisadores léxico, sintático e semân-
determina uma estrutura para todos de uso existentes. Conectores são empre- tico. Já a função de síntese compreende
os componentes do sistema. O estilo gados na interação entre componentes os componentes de otimização e geração
arquitetural compreende o vocabulário como, tubo (pipe) no estilo tubos e filtros, de código. Observe que essa arquitetura
de componentes e conectores, além da e mensagens no estilo de objetos. oferece suporte à portabilidade e reuso.
topologia empregada. Mas, você pode Entretanto, essa arquitetura evoluiu
estar se questionando: Por que saber o Exemplificando o estilo pipes com a introdução de um componente ge-
estilo arquitetural é importante? (tubos) e filtros rador intermediário de código, conforme
Os sistemas de grande porte exigem O estilo arquitetural de tubos e filtros ilustrado na Figura 3, a fim de tornar a
níveis de abstração mais elevados (justa- considera a existência de uma rede arquitetura do compilador ‘mais portá-
mente onde se têm os estilos) que servem através da qual dados fluem de uma vel’ a várias plataformas com o objetivo
de apoio à compreensão do projeto e extremidade à outra. O fluxo de dados de reduzir custos no desenvolvimento de
comunicação entre os participantes do se dá através tubos e os dados sofrem diferentes produtos, ou seja, compilado-
projeto. Ele é determinante no entendi- transformações quando são processados res para diferentes plataformas.
mento da organização de um sistema de nos filtros. Uma nova evolução da arquitetura de
software. O tubo provê uma forma unidirecional do compiladores a fim de atender a necessi-
Mas, o que se ganha em saber o estilo fluxo de dados uma vez que ele atua como dade de integração (do compilador) com
arquitetural? Ele oferece: uma espécie de ‘condutor’ para o fluxo de outras ferramentas, tais como editor e
• Suporte a atributos de qualidade (ou dados entre a fonte até um destino. O exem- depurador, resultou na arquitetura mos-
requisitos não funcionais); plo mais comumente conhecido do estilo trada na Figura 4.
• Diferenciação entre arquiteturas; tubos e filtros é aquele usado no sistema É importante salientar que a evolução
• Menos esforço para entender um projeto; operacional Unix, isto é: who | sort da arquitetura de compilador foi resul-
• Reuso de arquitetura e conhecimento tado, principalmente, da necessidade de
em novos projetos. A linha de comando acima executa o co- dar suporte ao requisito de portabilidade.
mando who (uma única vez) e encaminha Nesse sentido, pode-se destacar como
Conhecer o estilo arquitetural permite sua saída ao programa sort, conforme vantagens:
ao engenheiro antecipar, por meio da ilustrado na Figura 1. O resultado da • Problema ou sistema pode ser decom-
análise (arquitetural), o impacto que o es- execução do programa who é uma lista posto de forma hierárquica;
• Função do sistema é vista como com- por meio da passagem de mensagens, a interface define os eventos de entrada
posição de filtros; invocação implícita requer que compo- e saída permitidos. Conectores são
• Facilidade de reuso, manutenção nentes interessados em receber ou divul- implementados através do ‘binding’
e extensão, que emprega abordagem gar eventos se registrem para receber ou evento-procedimento. Assim, eventos
caixa preta, onde cada componente tem enviar. Um exemplo de sistema empre- são registrados junto com eventos e os
funcionalidade e interface bem definida, gando mensagens são listas de notícias componentes interagem entre si atra-
facilitando alterações nos mesmos; e fórum que possuem componentes de vés do envio de eventos. Dessa forma,
• Desempenho pode ser incrementado registro de novos usuários acoplados quando um evento é recebido, o(s)
através do processamento paralelo de ao componente de autenticação. Perceba procedimento(s) associado(s) a este even-
filtros, já que a ativação e uso do com- que esse tipo de sistema apenas permite to é(são) invocado(s). Um interessante
ponente ocorre com o fluxo de dados, que o usuário tenha acesso ao conteúdo exemplo deste estilo são jogos online,
permit i ndo que componentes com se este for devidamente autenticado e como discutido na seção seguinte.
funcionalidades independentes sejam registrado. • Quadro negro (ou Blackboard) – esse
executados de forma concorrente. • (Sistemas orientados a) Eventos – trata- estilo faz uso de um repositório central
se de um estilo no qual os componentes de dados circundado por um conjunto de
Apesar das vantagens acima apontadas, podem ser objetos ou processos e a componentes (ou células) de informações.
o estilo de tubos e filtros coloca ênfase no
modo ‘batch’, tornando difícil seu uso em
aplicações interativas e em situações que
exija ordenação de filtros. Outra questão
técnica a ser observada é a possibilidade
de haver deadlock com o uso de buffers
finitos (para armazenamento temporário
de dados). Esse estilo arquitetural tem
sido empregado em razão das vantagens
anteriormente destacadas.
Exemplos de outros estilos arquiteturais
compreendem:
• Camadas – a arquitetura do sistema de
software é organizada num conjunto de
camadas, oferecendo maior flexibilidade
e suporte a portabilidade. A identificação
do nível de abstração nem sempre é evi-
dente e perde-se desempenho à medida
que o número de camadas cresce. Exem-
plo desse estilo compreende os sistemas Figura 5. Combinação de estilos.
Web de múltiplas camadas que separa
cliente, servidores de aplicação, servido-
res Web e outros clientes Web.
• Objetos – essa arquitetura combina
dados com funções numa única entidade
(objeto), facilitando a decomposição do
problema, manutenção e reuso. É comum
utilizar a arquitetura orientada a objetos
em sistemas de informação como siste-
mas de consulta e empréstimos online de
bibliotecas de instituições de ensino que
dispõem de componentes de cadastro de
usuários e componentes de autenticação
de usuários. Note que componentes
similares existem em outros sistemas de
informações, tais como sites de conteúdos
(jornais e revistas) que exigem cadastro
e autenticação de qualquer usuário antes
de disponibilizar o conteúdo.
• Invocação implícita – diferentemente do
estilo baseado em objetos, no qual um
componente invoca outro diretamente Figura 6. Jogo Connect4.
Conclusão
Embora arquitetura de software seja
um tema relevante no contexto atual para
desenvolvimento de sistemas de software
que têm seu foco no reuso e, portanto,
consideram tanto o aspecto econômico
quanto a produtividade, sua incorpora-
ção nos processos de desenvolvimento de
software tem sido observada apenas em
empresas de grande porte e em poucas
de médio porte. Entretanto, esse cenário
começa a mudar dada a crescente necessi-
dade de integração de sistemas a qual tem
D
esenvolver software é uma ati- desenvolvimento. Uma recente matéria
vidade complexa por natureza. publicada na revista Exame relata o
Uma das razões para esta afir- crescimento do número de empresas que
mação é que não existe uma única solução atingiram níveis de maturidade conside-
para cada cenário de desenvolvimento. rando modelos como MPS.BR e CMMI.
Além disso, lidamos o tempo todo com Este resultado é um forte indicador de
Ana Luiza Ávila pessoas, o que torna o sucesso do projeto que as empresas nacionais estão se pre-
analuizaavila@yahoo.com.br bastante relacionado à competência da ocupando com a qualidade dos serviços
É bacharel em Ciências da Computação pela equipe e à forma como trabalham, e, para que oferecem, conseguindo, dessa forma,
Universidade Salvador (UNIFACS) e Mestre dificultar ainda mais, muitas vezes não uma inserção maior no mercado interna-
em Ciências da Computação pela PUC-Rio na cional de desenvolvimento de software.
fazemos uso de um processo bem defini-
linha de Engenharia de Software.
do para apoiar as atividades do projeto. Neste artigo, faremos uma introdução
Rodrigo Oliveira Spínola Entende-se por processo, neste contexto, à Engenharia de Requisitos, atividade
rodrigo@sqlmagazine.com.br como sendo um conjunto de atividades base para as demais tarefas associadas
Doutorando em Engenharia de Sistemas e bem definidas com os respectivos res- ao desenvolvimento de software.
Computação (COPPE/UFRJ). Mestre em En- ponsáveis por execução, ferramentas de
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Ciências da Computação (UNI-
apoio e artefatos produzidos. Ou seja, Engenharia de Software e
FACS, 2001). Colaborador da Kali Software define-se como a equipe deverá trabalhar Requisitos
(www.kalisoftware.com), tendo ministrado para alcançar o objetivo: desenvolver sof- Vimos na introdução que se busca cada
cursos na área de Qualidade de Produtos e tware com qualidade dentro de prazos, vez mais o apoio dos fundamentos da en-
Processos de Software, Requisitos e Desen- custos e requisitos definidos. genharia de software no desenvolvimen-
volvimento Orientado a Objetos. Consultor
A boa notícia é que muitas empresas to de sistemas. Entendemos engenharia
para implementação do MPS.BR. Atua como
Gerente de Projeto em projetos de consulto- estão se movimentando no sentido de de software como sendo, de acordo com
ria na COPPE/UFRJ. É colaborador da Enge- definirem detalhadamente seus proces- o IEEE, a aplicação de uma abordagem
nharia de Software Magazine. sos para apoiarem suas atividades de sistemática, disciplinada e quantificável
no desenvolvimento, operação e ma- mite concluir que é importante que seja dos principais fatores estão relacionados
nutenção de software. Sistemática por dada maior importância às atividades às atividades de requisitos: (1) Requisitos
que parte do princípio de que existe um relacionadas à especificação dos requi- Incompletos; (2) Falta de Envolvimento
processo de desenvolvimento definindo sitos do software. do Usuário; (6) Mudança de Requisitos e
as atividades que deverão ser executadas. Reforçando a importância que as ativi- Especificações.
Disciplinada por que parte do princípio dades relacionadas a requisitos devem Neste ponto, sabemos que um trabalho
de que os processos definidos serão possuir na indústria de software, estudo mais criterioso na área de requisitos é
seguidos. Quantificável por que se deve realizado pelo Standish Group, conside- fundamental para o sucesso de projetos
definir um conjunto de medidas a serem rando 350 companhias e 8.000 projetos de software. A partir da próxima seção
extraídas do processo durante o desen- de software, em 1995 revelou que (ver conheceremos a definição de requisitos e
volvimento de forma que as tomadas de Figura 1): algumas de suas definições relacionadas
decisão relacionadas ao desenvolvimento • 16,2% dos projetos são finalizados com antes de discutirmos mais profundamen-
do software (por exemplo, melhoria de sucesso, ou seja, cobre todas as funcio- te a engenharia de requisitos.
processo) sejam embasadas em dados nalidades em tempo e dentro do custo
reais, e não em “achismos”. Alguns de previsto; Fatores Críticos %
seus principais objetivos são: • 52.7% dos projetos são considerados
• Qualidade de software; problemáticos, ou seja, não cobre todas 1. Requisitos Incompletos 13.1%
• Produtividade no desenvolvimento, as funcionalidades exigidas, custo au- 2. Falta de Envolvimento do Usuário 12.4%
operação e manutenção de software; mentado e está atrasado.
3. Falta de Recursos 10,6%
• Permitir que profissionais tenham • 31,1% dos projetos fracassam, ou seja,
controle sobre o desenvolvimento de o projeto é cancelado durante o desenvol- 4. Expectativas Irreais 9,9%
software dentro de custos, prazos e níveis vimento.
5. Falta de Apoio Executivo 9,3%
de qualidade desejados.
O Standish Group ainda fez uma aná- 6. Mudança de Requisitos e Especificações 8,7%
Entretanto, o cenário de desenvolvimen- lise sobre os fatores críticos para sucesso 7. Falta de Planejamento 8,1%
to de software atual e o cenário idealiza- dos projetos de software. O resultado
8. Sistema não mais necessário 7,5%
do junto à engenharia de software ainda dos dez mais lembrados pode ser visto
estão distantes. Vários fatores contribuem na Tabela 2. Podemos perceber que três Tabela 2. Fatores críticos do sucesso.
para isso, podemos citar dois:
• O não uso dos fundamentos da en-
genharia de software para apoiar as
atividades do desenvolvimento;
• O mau uso dos fundamentos da
engenharia de software para apoiar as
atividades do desenvolvimento.
Verificação
Esta atividade examina a especificação
do software, de forma a assegurar que
todos os requisitos foram definidos sem
ambigüidades, inconsistências ou omis-
sões, detectando e corrigindo possíveis
problemas ainda durante a fase de defi-
nição dos requisitos.
Neste contexto, sabe-se que o custo da
correção de defeitos aumenta na medida
Figura 5. Fases da tecnica para levantamento de requisitos JAD. em que o processo de desenvolvimento
progride. Revisões de artefatos de sof- aparentemente simples, esta atividade faz com que as economias de curto prazo
tware têm se mostrado uma abordagem pode ser bastante dificultada pelo cliente sejam logo suplantadas pelas despesas no
eficiente e de baixo custo para encontrar ou mesmo por um processo de validação longo prazo, verificadas com superação de
defeitos logo após terem sido introdu- inadequado utilizado pela empresa. custo e prazo nos projetos conduzidos.
zidos, reduzindo o retrabalho e melho- Veremos a partir de agora algumas das
rando a qualidade dos produtos. Não é Gerência de Requisitos atividades que devem ser consideradas
em vão que modelos de maturidade de Requisitos são por natureza voláteis. durante a gerência dos requisitos.
processo de software, como o CMMI e o Diversos fatores contribuem para sua
MPS BR exigem a condução de revisões. instabilidade ao longo do tempo. Mudan- Controle de Mudanças
Um tipo particular de revisão de softwa- ças externas no ambiente (mudanças de Conforme foi citado anteriormente, os
re são as inspeções. Inspeções possuem legislação, mudanças no mercado, mu- requisitos são voláteis e, portanto sofrem
um processo de detecção de defeitos dança no posicionamento estratégico da mudanças ao logo do tempo, para condu-
rigoroso e bem definido. Os benefícios empresa), erros incorridos no processo de zir estas mudanças recomenda-se pre-
de se aplicar inspeções são maiores para requisitos, entre outros. Todos esses fato- paro e planejamento. Uma das maneiras
artefatos desenvolvidos no início do pro- res fazem com que seja necessário alterar bastante utilizadas para organizar estas
cesso, como o documento de requisitos. os requisitos. Tais alterações precisam ser mudanças é a “baseline” de requisitos
Conheceremos um pouco mais sobre conduzidas de forma ordenada para que que nos permite diferenciar o que era o
inspeção de software em um segundo não se perca controle sobre o prazo e o requisito original, o que foi introduzido
artigo a ser publicado na segunda edição custo do desenvolvimento. e o que foi descartado. Além disto, é inte-
da Engenharia de Software Magazine. Denominamos a atividade de adminis- ressante estabelecer um único canal para
trar os requisitos ao longo do tempo de controle de mudanças, bem como utilizar
Validação gerenciamento de requisitos. Os bene- um sistema para este controle.
A validação representa a atividade fícios desta atividade são percebidos no Apresentamos a seguir uma sugestão
em que obtemos o aceite do cliente sob médio prazo, sendo que são necessários de passos que devem ser seguidos para
determinado artefato. No cenário de investimentos no curto prazo. Assim, a um processo de controle de mudança:
engenharia de requisitos, esta atividade atividade é, muitas vezes, tida como um • Checar validade da solicitação de
significa aprovar junto ao cliente os re- fardo desnecessário à condução do pro- mudança;
quisitos que foram especificados. Embora cesso. Contudo, sua não implementação • Identificar os requisitos diretamente
T
este de software é o processo de desta tarefa é revelar o número máximo
execução de um produto para de falhas dispondo do mínimo de esforço,
determinar se ele atingiu suas es- ou seja, mostrar aos que desenvolvem se
pecificações e funcionou corretamente no os resultados estão ou não de acordo com
ambiente para o qual foi projetado. O seu os padrões estabelecidos.
objetivo é revelar falhas em um produto, Ao longo deste artigo, iremos discutir
para que as causas dessas falhas sejam os principais conceitos relacionados às
identificadas e possam ser corrigidas pela atividades de teste, as principais técnicas
equipe de desenvolvimento antes da en- e critérios de teste que podem ser utiliza-
trega final. Por conta dessa característica dos para verificação ou validação de um
das atividades de teste, dizemos que sua produto, assim como exemplos práticos
natureza é “destrutiva”, e não “construti- da aplicação de cada tipo de técnica ou
va”, pois visa ao aumento da confiança de critério de teste.
um produto através da exposição de seus
problemas, porém antes de sua entrega Conceitos básicos associados
Arilo Cláudio Dias Neto ao usuário final. a Teste de Software
(ariloclaudio@gmail.com)
O conceito de teste de software pode Antes de iniciarmos uma discussão
É Bacharel em Ciência da Computação for-
mado na Universidade Federal do Amazonas, ser compreendido através de uma visão sobre teste de software precisamos es-
Mestre em Engenharia de Sistemas e Compu- intuitiva ou mesmo de uma maneira clarecer alguns conceitos relacionados a
tação formado na COPPE/UFRJ, e atualmente formal. Existem atualmente várias defi- essa atividade. Inicialmente, precisamos
está cursando doutorado na área de Engenha- nições para esse conceito. De uma forma conhecer a diferença entre Defeitos, Er-
ria de Software da COPPE/UFRJ. Possui 5 anos
simples, testar um software significa veri- ros e Falhas. As definições que iremos
de experiência em análise, desenvolvimento e
teste de software. É editor técnico das Revis- ficar através de uma execução controlada usar aqui seguem a terminologia padrão
tas SQL Magazine e WebMobile, gerenciadas se o seu comportamento corre de acordo para Engenharia de Software do IEEE
pelo Grupo DevMedia. com o especificado. O objetivo principal – Institute of Electrical and Electronics
Figura 2. Diferentes Interpretações ao longo do ciclo de desenvolvimento de um software Já a execução ocorre no sentido inverso.
Conhecidos os diferentes níveis de teste,
a partir da próxima seção descreveremos
as principais técnicas de teste de software
existentes que podemos aplicar nos dife-
rentes níveis abordados.
/* 01 */ {
/* 01 */ char achar;
/* 01 */ int length, valid_id;
/* 01 */ length = 0;
/* 01 */ printf (“Digite um possível identificador\n”);
/* 01 */ printf (“seguido por <ENTER>: “);
/* 01 */ achar = fgetc (stdin);
/* 01 */ valid_id = valid_starter (achar);
/* 01 */ if (valid_id)
/* 02 */ length = 1;
/* 03 */ achar = fgetc (stdin);
/* 04 */ while (achar != ‘\n’)
/* 05 */ {
/* 05 */ if (!(valid_follower (achar)))
/* 06 */ valid_id = 0;
/* 07 */ length++;
/* 07 */ achar = fgetc (stdin);
/* 07 */ }
/* 08 */ if (valid_id && (length >= 1) && (length < 6) )
/* 09 */ printf (“Valido\n”);
/* 10 */ else
/* 10 */ printf (“Invalido\n”);
/* 11 */ }
Tabela 2. Tabela de decisão para o programa de compra pela Internet. Aplicando o teste de valor limite
convenc iona l serão obt idos ca- resultado esperado) = {(61,2,“frete requisitos
grá- gerenciamento e análise de resultados.
s o s de t e st e s e me l h a nt e s a e st e: tis”); (61,3,“cobrar frete”); (60, qualquer Apoio ferramental para qualquer ativi-
{-1,0,12,13,18,19,21,22,24,25}. quantidade,“cobrar frete”)}. dade do processo de teste é importante
como mecanismo para redução de esforço
Grafo de causa-efeito Outras técnicas associado à tarefa em questão, seja ela
Esse critério de teste verifica o efeito Outras técnicas de teste podem e devem planejamento, projeto ou execução dos
combinado de dados de entrada. As ser utilizadas de acordo com necessidades testes. Após ter sua estratégia de teste
causas (condições de entrada) e os efeitos de negócio ou restrições tecnológicas. definida, tente buscar por ferramentas
(ações) são identificados e combinados Destacam-se as seguintes técnicas: teste de que se encaixem na sua estratégia. Isso
em um grafo a partir do qual é montada desempenho, teste de usabilidade, teste de pode reduzir significantemente o esforço
uma tabela de decisão, e a partir desta, carga, teste de stress, teste de confiabilida- de tal tarefa.
são derivados os casos de teste e as saídas de e teste de recuperação. Alguns autores Além disso, é importante ressaltar que
(ROCHA et al., 2001). chegam a definir uma técnica de teste diferentes tipos de aplicações possuem
Esse critério é baseado em quatro pas- caixa cinza, que seria um mesclado do uso diferentes técnicas de teste a serem
sos, que exemplificaremos utilizando o das técnicas de caixa preta e caixa branca, aplicadas, ou seja, testar uma aplicação
exemplo, também extraído de (BARBOSA mas, como toda execução de trabalho web envolve passos diferenciados em
et al., 2000): relacionado à atividade de teste utilizará comparação aos testes de um sistema
simultaneamente mais de uma técnica embarcado. Cada tipo de aplicação possui
“Em um programa de compras pela de teste, é recomendável que se fixem os características especificas que devem ser
Internet, a cobrança ou não do frete é conceitos primários de cada técnica. consideradas no momento da realização
definida seguindo tal regra: Se o valor dos testes. O conjunto de técnicas apre-
da compra for maior que R$ 60,00 e fo- Conclusões sentado neste artigo cobre diversas carac-
ram comprados menos que 3 produtos, O teste de software é uma das atividades terísticas comuns a muitas categorias de
o frete é gratuito. Caso contrário, o frete mais custosas do processo de desenvol- software, mas não é completo.
deverá ser cobrado.” vimento de software, pois pode envolver Para finalizar, podemos destacar ou-
uma quantidade significativa dos recursos tros pontos importantes relacionados às
1. Para cada módulo, Causas (condições de um projeto. O rigor e o custo associado atividades de teste que podemos abordar
de entrada) e efeitos (ações realizadas às a esta atividade dependem principalmente em próximos artigos, tais como processo
diferentes condições de entrada) são rela- da criticalidade da aplicação a ser desenvol- de teste de software, planejamento e con-
cionados, atribuindo-se um identificador vida. Diferentes categorias de aplicações trole dos testes e teste de software para
para cada um. requerem uma preocupação diferenciada categorias específicas de software, como
• Causa: valor da compra > 60 e #pro- com as atividades de teste. aplicações web. Até a próxima!
dutos < 3 Um ponto bastante importante para
• Efeito: frete grátis a viabilização da aplicação de teste de Agradecimentos
2. Em seguida, um grafo de causa- software é a utilização de uma infra- Agradecemos aos professores José Carlos
efeito (árvore de decisão) é desenhado estrutura adequada. Realizar testes Maldonado e Ellen Barbosa por terem
(Figura 7). não consiste simplesmente na geração gentilmente autorizado a publicação deste
3. Neste ponto, transforma-se o grafo e execução de casos de teste, mas envol- material, cujos exemplos utilizados estão
numa tabela de decisão (Tabela 2). vem também questões de planejamento, fundamentados em seus trabalhos.
4. As regras da tabela de decisão são,
então, convertidas em casos de teste. Referências
BARBOSA, E.; MALDONADO, J.C.; VINCENZI, A.M.R.; DELAMARO, M.E; SOUZA, S.R.S. e JINO, M..
Para a elaboração dos casos de teste,
“Introdução ao Teste de Software. XIV Simpósio Brasileiro de Engenharia de Software”, 2000.
devemos seguir todas as regras extraídas
da tabela. Esse critério deve ser combi- CRAIG, R.D., JASKIEL, S. P., “Systematic Software Testing”, Artech House Publishers, Boston, 2002.
nado com os dois outros já apresentados IEEE Standard 610-1990: IEEE Standard Glossary of Software Engineering Terminology, IEEE Press.
neste artigo para a criação de casos de
teste válidos (extraídos das regras) e PFLEEGER, S. L., “Engenharia de Software: Teoria e Prática”, Prentice Hall- Cap. 08, 2004.
inválidos (valores foras da faixa defini- PRESSMAN, R. S.,“Software Engineering: A Practitioner’s Approach”, McGraw-Hill, 6th ed, Nova York,
da). Os casos de teste definidos a seguir NY, 2005.
refletem somente as regras extraídas da RAPPS, S., WEYUKER, E.J., “Data Flow analysis techniques for test data selection”, In: International
tabela de decisão. Fica como exercício Conference on Software Engineering, p. 272-278, Tokio, Sep. 1982.
pensar nos casos de teste inválidos para
ROCHA, A. R. C., MALDONADO, J. C., WEBER, K. C. et al., “Qualidade de software – Teoria e prática”,
este problema.
Prentice Hall, São Paulo, 2001.
• Casos de Teste (valor, qtd produtos,
O
principal objetivo do teste de Neste artigo, você conhecerá os con-
software é medir o nível de ceitos, atividades e terminologia de um
qualidade de um sistema, seja a processo de gestão de defeitos. Também
aplicação executável ou os artefatos utili- será apresentado um exemplo prático uti-
zados na sua construção. A qualidade de lizando o Mantis, ferramenta Open Sour-
um sistema pode ser medida, essencial- ce para gestão de defeitos. E, por fim,
mente, pelo número de falhas encontra- serão apresentadas outras alternativas
das durante a execução dos testes. Open Source e comerciais caso o Mantis
Falha, nesse contexto, é a conseqüência de não atenda as suas necessidades.
um erro, defeito ou engano. Ou seja, é o des-
vio entre o que foi solicitado pelo usuário Processo de Gestão de defeitos
Cristiano Caetano por meio dos requisitos e o comportamento Um processo de gestão de defeitos tem o
c_caetano@hotmail.com
É certificado CBTS pela ALATS. Consultor de
apresentado pela aplicação executável. Em objetivo de definir práticas para prevenir
teste de software sênior com mais de 10 virtude da complexidade e tamanho de um os defeitos e minimizar os riscos de um
anos de experiência, já trabalhou na área de sistema ou para atender normas de quali- projeto. A utilização de uma ferramenta
qualidade e teste de software para grandes dade ou processos de maturidade, se faz automatizada, além de oferecer uma base
empresas como Zero G, DELL e HP Invent. É necessário utilizar um processo de gestão comum para a entrada de informações,
colunista na área de Teste e Qualidade de
software do site linhadecodigo.com.br e au-
de defeitos integrado ao ciclo de vida de também oferece um meio para fomentar
tor dos livros "CVS: Controle de Versões e De- desenvolvimento e teste. a integração entre o time de desenvolvi-
senvolvimento Colaborativo de Software" e Neste contexto, entender as atividades mento e o time de testes. Além disso, por
"Automação e Gerenciamento de Testes: Au- de um processo de gestão de defeitos meio dos relatórios de gestão e métricas
mentando a Produtividade com as Principais e escolher a ferramenta adequada para geradas por essas ferramentas, os gestores
Soluções Open Source e Gratuitas". O autor
mantém um blog sobre testes e qualidade
automatizar a gestão do ciclo de vida do projeto poderão promover a melhoria
de software, confira no seguinte endereço: de um defeito são tarefas fundamentais, contínua do processo estabelecido.
http://spaces.msn.com/softwarequality/. como veremos mais adiante. Genericamente, o termo Erro (Error)
é utilizado para indicar uma diferença rios com dados relevantes para acompa- não especificado no requisito.
entre valor computado, observado ou me- nhar o progresso dos testes e a qualidade
dido em relação ao esperado. No entanto, do sistema, assim como, a geração de Uma vez que o defeito for encontrado,
o padrão IEEE 610.12-1990 (IEEE Standard métricas para alimentar a atividade de seja por intenção ou por acidente, o
Glossary of Software Engineering Ter- melhoria do processo. próximo passo deverá ser o relato (ou
minology) distingue a terminologia da reporte) desse defeito por meio de algum
seguinte forma: Ciclo de vida de um defeito mecanismo estabelecido no processo de
• Defeito (Fault): Passo, processo ou de- Como discutimos anteriormente, a gestão de defeitos.
finição de dados incorretos. Por exemplo, qualidade de um sistema pode ser me- Este mecanismo poderá ser, desde uma
uma instrução incorreta no código ou dida, essencialmente, pelo número de simples planilha, até uma ferramenta
uma falta num artefato estático; defeitos encontrados durante a execução automatizada. Por motivos óbvios, uma
• Engano (Mistake): Ação humana que dos testes. ferramenta automatizada e construída
produz um resultado incorreto, como por Podemos afirmar que os defeitos são para esse propósito será, sem sombra de
exemplo, uma ação incorreta tomada pelo encontrados por meio da execução formal dúvida, muito mais eficiente do que uma
desenvolvedor ou analista; dos testes (testes estruturais ou funcio- simples planilha ou solução alternativa.
• Falha (Failure): Desvio entre o resul- nais), durante a utilização do sistema em De qualquer forma, tão logo o defeito
tado/comportamento apresentado pela produção ou, até mesmo, por acidente. A seja relatado, ele deverá ser submetido a
aplicação em relação aos requisitos. A priori, podemos classificar os defeitos nas um ciclo de vida pré-definido pelo pro-
falha ocorre em conseqüência de um erro, seguintes categorias: cesso de gestão de defeitos. Este ciclo de
defeito ou engano gerando um compor- • Faltante (Missing): O defeito ocorre em vida define os fluxos que o defeito deverá
tamento incorreto da aplicação. virtude da falta parcial ou total de um percorrer até o seu fechamento.
requisito; A Figura 2 descreve genericamente um
Neste artigo, o termo defeito será usado • Errado (Wrong): O defeito ocorre ciclo de vida de um defeito aderente ao
de forma genérica, podendo representar porque o requisito foi implementado processo de gestão de defeitos apresen-
um erro, engano, defeito ou falha. Se- incorretamente; tado anteriormente. Devemos lembrar
gundo o livro, “Base de Conhecimento • Acréscimo (Extra): O defeito ocorre que esse é um exemplo didático, existem
do CSTE” do QAI, os elementos chave em virtude de um comportamento ou fluxos alternativos e papéis que não estão
de um processo de gestão de defeitos elemento que foi implementado, mas foi presentes nesta figura.
são (Figura 1):
• Prevenção de defeitos: Com base
nos levantamento dos riscos críticos do
projeto, devem ser promovidas ações de
prevenção e planejamento de contingên-
cias para minimizar o impacto caso os
riscos tornem-se problemas;
• Linha base entregável: Estabeleci-
mento formal de linhas base (baselines)
por meio da Gerência de Configuração
de Software. Cada linha base deve de- Figura 1. Elementos chave de um processo de gestão de defeitos.
terminar quais requisitos/artefatos serão
liberados e submetidos ao teste;
• Identificação do defeito: Definição
das técnicas necessárias para encontrar,
reportar e classificar os defeitos, assim
como, os critérios para reconhecê-los;
• Solução do defeito: Definição das
atividades para a correção e posterior
notificação da resolução do defeito. Mui-
tas destas atividades são definidas pela
Gerência de Configuração de Software
para garantir o histórico e rastreamento
das modificações por meio do controle
de versões;
• Melhoria do processo: Análise das mé-
tricas e relatórios de gestão para entender
a causa raiz dos problemas e promover a
melhoria contínua do processo;
• Relatório de gestão: Geração de relató- Figura 2. Ciclo de vida de um defeito genérico.
Mantis
O Mantis é uma ferramenta Open
Source automatizada escrita em PHP
cujo principal objetivo é dar suporte ao
processo de gestão de defeitos. O Mantis
controla o ciclo de vida de um defeito,
desde o seu relato até o seu fechamento,
por meio de fluxos (workflows) persona-
lizáveis, como pode ser observado na
Figura 3.
O endereço do site do Mantis está
disponível na seção Links. Caso você
tenha interesse de conhecê-lo com maior
Figura 3. Página inicial do Mantis. profundidade, os passos para a instalação
Métricas e relatórios de gestão Figura 7. Consolidação dos defeitos associados ao usuário logado.
A norma IEEE Std 829-1998 (IEEE Stan-
dard for Software Test Documentation)
define a documentação e relatórios ne-
cessários para a execução de um projeto
de teste de software. Dentre os relatórios
sugeridos, existe um relatório chamado
“Relatório de Incidente de Teste”. Este re-
latório registra e consolida as ocorrências
que precisam de algum tipo de investi-
gação. Ele é normalmente utilizado para
registrar os defeitos encontrados durante
a execução dos testes.
Ferramentas automatizadas de gestão
de defeitos, tais como o Mantis, geram di-
versos relatórios e gráficos com métricas
que poderão fornecer dados para alimen-
tar o Relatório de Incidente de Teste.
O Mantis, além de oferecer um relató-
rio com o resumo consolidado de todos
os defeitos relatados (Figura 10), também
permite a visualização de gráficos com
as principais métricas utilizadas na
gestão de defeitos (Figura 11). Na lista-
gem a seguir, são apresentadas diversas
sugestões de indicadores e métricas de
um processo de gestão de defeitos eficaz,
afinal, você não pode gerenciar o que
Figura 8. Reporte da correção de um defeito.
você não pode medir:
Links
Comparação entre ferramentas de gestão de defeitos
Figura 10. Resumo consolidado de todos os defeitos relatados. http://en.wikipedia.org/wiki/Comparison_of_issue_tracking_systems
Website do Mantis
http://www.mantisbt.org
Gauging Software Readiness With Defect Tracking
http://www.stevemcconnell.com/ieeesoftware/bp09.htm
Microsoft Solutions Framework (Zero Bug Bouce e
Bug Convergence)
http://www.microsoft.com/technet/solutionaccelerators/msf/
default.mspx
Marcos Kalinowski
N
mk@kalisoftware.com
Doutorando em Engenharia de Sistemas e a engenharia de software, assim roso e bem definido. A Figura 1 ilustra a
Computação (COPPE/UFRJ). Mestre em En-
como em outras disciplinas de possibilidade de se realizar inspeções nos
genharia de Software (COPPE/UFRJ, 2004).
Bacharel em Ciências da Computação (UFRJ, engenharia, é necessário consi- diferentes artefatos de software.
2001). Diretor executivo e instrutor da Kali derar variáveis como esforço, produtivi- De forma resumida, o processo tradicio-
Software (www.kalisoftware.com), empresa dade, tempo e custo de desenvolvimento. nal de inspeção envolve o planejamento
de consultoria e treinamento em Engenharia Essas variáveis são afetadas negativa- da inspeção, indivíduos revisando um
de Software. Professor e pesquisador do curso
mente quando artefatos defeituosos são determinado artefato, um encontro em
de Ciência da Computação do Centro Univer-
sitário Metodista Bennett, ministrando disci- produzidos, devido ao retrabalho para equipe para discutir e registrar os de-
plinas de Engenharia de Software. Consultor corrigir defeitos. Sabe-se, ainda, que o feitos, a passagem dos defeitos para o
para implementação e avaliação do MPS.BR custo do retrabalho para correção de autor do artefato para que possam ser
tendo colaborado na elaboração do guia geral defeitos aumenta na medida em que o corrigidos e uma avaliação final sobre a
e do guia de implementação deste modelo.
processo de desenvolvimento progride. necessidade de uma nova inspeção.
Desta forma, iniciativas devem ser reali- A importância de inspeções na redução
Rodrigo Oliveira Spínola
rodrigo@sqlmagazine.com.br
zadas no sentido de encontrar e corrigir do retrabalho e na garantia da qualidade
Doutorando em Engenharia de Sistemas e defeitos tão logo sejam introduzidos. Uma de software está bem documentada na
Computação (COPPE/UFRJ). Mestre em En- abordagem que tem se mostrado eficiente literatura e é discutida em maiores neste
genharia de Software (COPPE/UFRJ, 2004). e de baixo custo para encontrar defeitos, artigo. A seção seguinte apresenta a
Bacharel em Ciências da Computação (UNI-
reduzindo o retrabalho e melhorando a definição de alguns conceitos utilizados
FACS, 2001). Colaborador da Kali Software
(www.kalisoftware.com), tendo ministrado qualidade dos produtos é a revisão dos ao longo deste trabalho. Veremos ainda
cursos na área de Qualidade de Produtos e artefatos produzidos ao longo do processo neste artigo alguns benefícios de se rea-
Processos de Software, Requisitos e Desen- de desenvolvimento de software. lizar inspeções em artefatos produzidos
volvimento Orientado a Objetos. Consultor Inspeção de software é um tipo parti- ao longo do processo de desenvolvimento
para implementação do MPS.BR. Atua como
cular de revisão que pode ser aplicado a de software são descritos; conceitos
Gerente de Projeto em projetos de consulto-
ria na COPPE/UFRJ. É colaborador da Enge- todos os artefatos de software e possui sobre técnicas de leitura para detecção
nharia de Software Magazine. um processo de detecção de defeitos rigo- de defeitos em artefatos de software;
o processo de inspeção de software e tos constituiria um tipo de defeito. Assim, É importante ressaltar que estas classes
suas características, e; o estado atual da a seguinte taxonomia foi definida: genéricas de defeitos podem ser dividi-
utilização de inspeções na prática e do • Omissão: (1) Algum requisito im- das em classes mais específicas, depen-
suporte ferramental existente. portante relacionado à funcionalidade, dendo da necessidade. Além disto, esta
ao desempenho, às restrições de projeto, classificação não pretende ser definitiva
Definição dos Conceitos ao atributo, ou à interface externa não foi e cada organização pode acrescentar
O termo defeito muitas vezes é utilizado incluído; (2) não está definida a resposta mais tipos de defeito de acordo com suas
de forma genérica. No entanto, é importante do software para todas as possíveis si- necessidades.
ter em mente que sua interpretação depen- tuações de entrada de dados; (3) faltam
derá do contexto em que ele for utilizado. seções na especificação de requisitos; (4) Benefícios da Aplicação de
Defeitos encontrados através de revisões faltam referências de figuras, tabelas, e Inspeções de Software
estarão relacionados às faltas no artefato diagramas; (5) falta definição de termos Esforço, Produtividade, Tempo e Custo
sendo revisado. Quando um defeito se e unidades de medidas. O esforço gasto por organizações de
manifesta através de atividades de teste, • Ambigüidade: Um requisito tem software com retrabalho pode variar em
por sua vez, estaremos lidando com uma várias interpretações devido a diferentes média entre 40% e 50% do esforço total
falha no software. Estas definições seguem termos utilizados para uma mesma ca- do desenvolvimento de um projeto. Uma
a terminologia padrão para Engenharia de racterística ou vários significados de um estimativa da distribuição do retrabalho
Software do IEEE (IEEE 610.12, 1990): termo para um contexto em particular. pelas atividades de desenvolvimento de
• Erro: É um defeito cometido por • Inconsistência: Dois ou mais requi- software está ilustrada na Figura 2.
um indivíduo ao tentar entender uma sitos são conflitantes. Analisando a Figura 2, é possível veri-
determinada informação, resolver um • Fato Incorreto: Um requisito des- ficar que o retrabalho tende a aumentar
problema ou utilizar um método ou uma creve um fato que não é verdadeiro, na medida em que o desenvolvimento
ferramenta. considerando as condições solicitas para progride. Uma das razões para isto é o
• Defeito (ou Falta): É uma manifes- o sistema. aumento no esforço para corrigir defei-
tação concreta de um erro num artefato • Informação Estranha: As informa- tos nas atividades finais do processo de
de software. Um erro pode resultar em ções fornecidas no requisito não são desenvolvimento. Através da análise de
diversos defeitos. necessárias ou mesmo usadas. 63 projetos, BOEHM (1981) apresenta o
• Falha: É o comportamento operacio- • Outros: Outros defeitos como a inclu- custo relativo da correção de defeitos
nal do software diferente do esperado são de um requisito numa seção errada encontrados em cada uma das atividades
pelo usuário. Uma falha pode ter sido do documento. de desenvolvimento (Figura 3).
causada por diversas faltas e algumas
faltas podem nunca causar uma falha.
evitem a sua ocorrência. inspeção continue no próximo dia. SAUER et al., (2000) propuseram uma
• Produtos mais inteligíveis. Os auto- • Retrabalho. O autor corrige os defeitos reorganização do processo tradicional
res dos diversos artefatos, sabendo que encontrados pelos inspetores e confirma- de inspeção. Essa reorganização visa
estes serão inspecionados, passarão a dos pelo moderador. a adequação do processo tradicional a
produzir artefatos de uma forma que sua • Continuação. O material corrigido inspeções com reuniões assíncronas e
compreensão seja facilitada. A produção pelos autores é repassado para o mode- equipes geograficamente distribuídas.
de artefatos mais inteligíveis, além de rador, que faz uma análise da inspeção Assim, mudanças para reduzir o custo e o
facilitar a inspeção, trará benefícios para como um todo e re-avalia a qualidade do tempo total para a realização deste tipo de
as fases seguintes do processo de desen- artefato inspecionado. Ele tem a liberda- inspeção foram introduzidas. Este projeto
volvimento, incluindo principalmente a de de decidir se uma nova inspeção deve alternativo para inspeções de software
fase de manutenção. ocorrer ou não. mantém a estrutura rígida e os aspectos
• Dados defeituosos ajudam a melhorar o colaborativos do processo tradicional e
processo de software do projeto. Analisando A forma como estas atividades se re- consiste basicamente em substituir as
a causa dos defeitos encontrados é possível lacionam no processo de inspeção está atividades de preparação e de reunião do
fazer ajustes no processo para evitar a ocor- ilustrada na Figura 5. Note que a ativi- processo tradicional por três novas ativi-
rência de defeitos deste mesmo tipo. dade de apresentação, opcional, não está dades seqüenciais: detecção de defeitos,
representada na figura. coleção de defeitos e discriminação de
O Processo de Inspeção de Software Entre as características deste processo, defeitos. Estas atividades podem ser des-
FAGAN (1976) desenvolveu o processo temos que ele pode ser aplicado a todos critas da seguinte forma:
tradicional de inspeção de software, os artefatos produzidos ao longo do • Detecção de Defeitos. Cada um dos
uma forma detalhada de se realizar uma processo de desenvolvimento, permi- inspetores selecionados pelo moderador
revisão. Neste processo, existem seis tindo a utilização de técnicas de leitura no planejamento realizará uma atividade
atividades principais: de artefatos específicos na atividade de de detecção de defeitos. A principal tarefa
• Planejamento. Um usuário, desem- preparação individual. Além disto, ele desta atividade consiste em buscar defeitos
penhando o papel de moderador da possui uma estrutura rígida, com aspec- no documento a ser inspecionado e assim
inspeção, define o contexto da inspeção tos colaborativos, onde papéis, atividades produzir uma lista de discrepâncias.
(descrição da inspeção, técnica a ser utili- e os relacionamentos entre atividades • Coleção de Defeitos. O moderador
zada na detecção de defeitos, documento estão bem definidos. agrupa as listas de discrepâncias dos ins-
a ser inspecionado, autor do documento, petores. Esta atividade envolve eliminar
entre outros), seleciona os inspetores e A Reorganização do Processo discrepâncias repetidas (encontradas por
distribui o material a ser inspecionado. de Inspeção mais de um inspetor), mantendo só um
• Apresentação. Os autores dos artefatos Baseados em diversos estudos expe- registro para cada discrepância.
a serem inspecionados apresentam as rimentais sobre inspeções de software • Discriminação de Defeitos. O modera-
características destes. Esta fase pode ser
omitida se os inspetores possuem conhe-
cimento sobre o projeto e os artefatos que
devem ser inspecionados.
• Preparação. Os inspetores estudam
os artefatos individualmente, e even-
tualmente fazem anotações sobre estes
produzindo uma lista de discrepâncias.
O fornecimento de técnicas de leitura
pode facilitar a execução desta tarefa.
• Reunião. Uma reunião em equipe
ocorre, envolvendo o moderador, os
inspetores e os autores do documento.
Discrepâncias são discutidas, e classi-
ficadas como defeito ou falso positivos.
A decisão final sobre a classificação de
uma discrepância sendo discutida é
do moderador. A solução dos defeitos
não é discutida durante a reunião, que
não deve exceder duas horas, uma vez
que após este tempo a concentração e
a capacidade de análise dos inspetores
costuma reduzir drasticamente. No caso
em que uma reunião precisar de mais de
duas horas, é sugerido que o trabalho de Figura 5. Processo de inspeção de software, conforme definido em (adaptado de FAGAN, 1976).
Figura 7. Distribuição do Uso de Inspeção nos Diferentes Artefatos. Adaptado de Figura 8. Cobertura de defeitos estimada para as organizações
(LAITENBERGER e DEBAUD, 2000). participantes do survey. Adaptado de (CIOLKOWSKI et al., 2003).
requisitos e 30% inspeções em código. não fornece apoio a técnicas específicas das técnicas ad-hoc e de checklists. Na
• (2) Muitas vezes a atividade de detecção de detecção de defeitos, apenas ad-hoc. reunião de inspeção desta proposta as
de defeitos não é realizada sistematica- Uma taxonomia é fornecida junto com o discrepâncias encontradas na detecção
mente. Cerca de 60% das organizações artefato a ser inspecionado. Os elementos de defeitos são tratadas como tópicos
responderam não conduzir uma atividade desta taxonomia representam, de forma de discussão, onde mensagens podem
de detecção de defeitos regularmente. hierárquica, os tópicos abordados no arte- ser acrescentadas e o moderador pode
• (3) Organizações raramente utilizam fato a ser inspecionado. As discrepâncias realizar a classificação das discrepâncias
revisões de software no contexto de um dos inspetores são então agrupadas de como defeito ou falso positivo. IBIS não
programa sistemático de avaliação e acordo com os elementos da taxonomia. fornece apoio aos pontos de tomada de
melhoria do processo. Mais da metade Assim, uma discrepância na descrição do decisão do processo de inspeção, sendo as
das empresas participantes do survey caso de uso Mantendo Usuário poderia ser atividades de planejamento e de continu-
respondeu não coletar dados (40%) ou co- adicionada utilizando a seguinte navega- ação do processo tratadas como simples
letar dados e não os utilizar para realizar ção pela taxonomia: Requisitos Funcionais cadastros, sem apoio para a realização
uma análise (18%). > Casos de Uso > Mantendo Usuário > de suas tarefas. IBIS tem sido utilizada
Descrição. Os artefatos em si são lidos na em estudos experimentais recentes para
A utilização pouco sistematizada de ferramenta mais conveniente ao inspetor. obter conhecimento na área de inspeções
revisões na prática tem sido um fator de Desta forma, GRIP é capaz de lidar com de software e para avaliar aspectos da
confusão entre os resultados esperados diferentes tipos de artefato, bastando que reorganização do processo de inspeção. A
e os obtidos através de sua aplicação. A uma taxonomia para o artefato seja criada Figura 9 ilustra o apoio de IBIS ao registro
Figura 8 ilustra a cobertura de defeitos descrevendo sua estrutura. Na reunião de discrepâncias na atividade de detecção
estimada das revisões realizadas pelas GRIP fornece apoio para a classificação de defeitos utilizando um checklist.
organizações participantes do survey. das discrepâncias que de acordo com um • ISPIS (KALINOWSKI e TRAVASSOS,
Visando apoiar a realização de revisões estudo experimental, mostrou reduzir o 2004). Esta ferramenta também visa
na prática de forma mais sistemática esforço da reunião e apoiar a classificação apoiar a reorganização do processo de
foram elaboradas propostas de apoio fer- correta de discrepâncias; inspeção proposta em SAUER et al. (2000).
ramental. Algumas destas propostas se • IBIS (LANUBILE et al., 2003). Utiliza Entretanto, ISPIS foi desenvolvida utili-
encontram descritas na sessão seguinte. a web em conjunto com notificações por zando uma metodologia experimental,
e-mail para apoiar inspeções assíncronas levando em consideração conhecimento a
Ferramentas de Apoio ao Processo de com equipes geograficamente distribu- respeito de inspeções de software selecio-
Inspeção ídas. IBIS visa explicitamente apoiar a nado criteriosamente, dando preferência
Entre as ferramentas que apóiam a reorganização do processo de inspeção a conhecimento efetivamente avaliado.
coordenação e as diversas atividades proposta em SAUER et al. (2000) e permi- ISPIS é a única ferramenta que possibilita
do processo de inspeção que tem sido tir a sua realização de forma sistematiza- o uso automatizado deste conhecimento
efetivamente avaliadas e utilizadas re- da. IBIS não limita o tipo de artefato a ser sem que a equipe de inspeção precise
centemente na indústria de software des- inspecionado e na detecção de defeitos adquiri-lo através de revisões bibliográ-
tacamos as seguintes: GRIP (GRoupware atualmente permite apenas a utilização ficas e aplicá-lo manualmente. Assim, os
supported Inspection Process), IBIS (In-
ternet Based Inspection System) e ISPIS
(Infra-estrutura de Suporte ao Processo
de Inspeção de Software). Esta última
sendo tecnologia nacional desenvolvida
na COPPE/UFRJ, em processo de regis-
tro junto ao INPI. Uma descrição destas
ferramentas se encontra a seguir:
• GRIP (Grünbacher et al., 2003). Nasceu
da iniciativa de se adaptar um sistema
COTS (Comercial Off The Shelf) de apoio
a trabalho colaborativo (GSS) (Groupware
Support System) para realizar inspeções
em requisitos de software. Assim, GRIP
fornece um framework e ferramentas co-
laborativas para a realização de inspeções
assíncronas com equipes geograficamente
distribuídas. GRIP fornece suporte a
um processo próprio de inspeção que
envolve quatro atividades: planejamento,
inspeção individual, reunião assíncrona, Figura 9. Apoio de IBIS ao registro de discrepâncias na atividade de detecção de
e avaliação da inspeção. A ferramenta defeitos (LANUBILE et al., 2003).