Professional Documents
Culture Documents
+ , em que
(Alfa) = custo marginal por KLOC (1000 linhas de cdigo), que repre-
senta o custo adicional para 1000 linhas de cdigo;
(Beta) = expoente que refete a no-linearidade do relacionamento.
Valores de beta maiores do que 1 signifcam que o custo por KLOC au-
menta medida que o tamanho do projeto aumenta. Isso signifca uma
economia de escala ao inverso. Se o valor de beta menor do que 1, isso
refete uma economia de escala. Foram encontrados em estudos tanto
valores maiores quanto valores menores do que 1 para beta.
(Gama) = refete o custo fxo de qualquer projeto. Estudos encontra-
ram valores positivos e o valor zero para gama.
O exemplo a seguir tem como objetivo calcular o esforo necessrio
para um projeto novo de 50 KLOC.
Exemplo: A companhia LMN armazenou os seguintes dados de projeto
s anteriores. Estime os parmetros para a frmula de estimativa de cus-
to e quanto esforo ser necessrio para um novo projeto de 30 KLOC.
(Veja Tabela 6.2).
Captulo 6
75
Engenharia de Software
Projeto Tamanho (KLOC) Esforo (PM)
1 50 120
2 80 192
3 40 96
4 10 24
5 20 48
Tabela 6.2 Dados Histricos
Analisando ou traando o grfco desses dados, ser mostrado um rela-
cionamento linear entre tamanho e esforo. O coefciente de inclinao
da linha 2,4 (basta dividir o valor do esforo pelo tamanho nos dados
da tabela para chegar a este coefciente). Esse valor ser alfa () na fr-
mula de estimativa de custo baseada em LOC. J que a linha reta, o
valor de beta () ser 1. O valor de gama deve ser zero. Dessa forma,
para um projeto de tamanho 30 KLOC o esforo ser de 72 PM.
3. Constructive Cost Model (COCOMO): COCOMO uma frmula
de estimativa de custo criada por Barry Boehm na dcada de 70. Bo-
ehm usou milhares de instrues de cdigo prontas thousands deli-
vered source instructions (KDSI) como unidade de tamanho (KDSI
equivalente a KLOC). Sua unidade de esforo dada em progra-
mador/ms (PM). Boehm dividiu dados histricos do projeto em trs
tipos de projeto:
1. Programas aplicativos (Ex: processadores de texto);
2. Programas utilitrios (Ex: compiladores);
3. Programas de sistemas (embarcados).
Ele identifcou os valores de parmetros para determinao do esforo:
1. Programas aplicativos: PM = 2,4 * (KDSI)1,05
2. Programas utilitrios: PM = 3,0 * (KDSI)1,12
3. Programas de sistemas: PM = 3,6 * (KDSI)1,20
Exemplo: Calcule o esforo do programador para projetos de 5 a 50
KDSI. Veja Tabela 6.3.
Gerenciamento de Projeto de Software
76
Tecnologia em Anlise e Desenvolvimento de Sistemas
Tamanho Apl til Sist
5K 13,0 18,2 24,8
10K 26,9 39,5 57,1
15K 41,2 62,2 92,8
20K 55,8 86,0 131,1
25K 70,5 110,4 171,3
30K 85,3 135,3 213,2
35K 100,3 160,8 256,6
40K 115,4 186,8 301,1
45K 130,6 213,2 346,9
50K 145,9 239,9 393,6
Tabela 6.3 Esforo COCOMO
Boehm tambm determinou que em seus dados de projeto existisse
um tempo de desenvolvimento padro baseado no tipo e tamanho do
projeto. As frmulas a seguir determinam o tempo de desenvolvimento
(TDEV) em programador/ms (PM):
1. Programas aplicativos: TDEV = 2,5 * (PM)
0,38
2. Programas utilitrios: TDEV = 2,5 * (PM)
0,35
3. Programas de sistemas: TDEV = 2,5 * (PM)
0,32
Exemplo: Calcule o padro TDEV usando as frmulas COCOMO para
projetos de 5 a 50 KDSI (Veja Tabela 6.4).
Tamanho Apl til Sist
5K 6,63 6,90 6,99
10K 8,74 9,06 9,12
15K 10,27 10,62 10,66
20K 11,52 11,88 11,90
25K 12,60 12,97 12,96
30K 13,55 13,93 13,91
35K 14,40 14,80 14,75
40K 15,19 15,59 15,53
45K 15,92 16,33 16,25
50K 16,61 17,02 16,92
Tabela 6.4 Tempo de Desenvolvimento COCOMO
Captulo 6
77
Engenharia de Software
6.3.2. Anlise de Ponto de Funo
A contagem de pontos de funo o exemplo mais conhecido de mtrica
que tem como objetivo possibilitar a realizao de estimativas de tama-
nho logo no incio do processo de sofware e sem os problemas de depen-
dncia em relao tecnologia. A contagem de pontos de funo busca
medir as funcionalidades do sistema requisitadas pelo usurio, indepen-
dentemente da tecnologia usada na implementao. A anlise de pontos
de funo um mtodo-padro para a medio do desenvolvimento, ma-
nuteno ou tamanho de uma aplicao de sofware, visando estabelecer
uma medida de tamanho de sofware em Pontos de Funo (PF), com
base na quantifcao da funcionalidade solicitada ou fornecida, sob o
ponto de vista do usurio. Os objetivos da anlise de pontos de funo so
medir as funcionalidades do sistema (solicitadas e recebidas pelos usu-
rios) e medir projetos de desenvolvimento e manuteno de sofware, sem
a preocupao com a tecnologia que ser usada na implementao. Ou
seja, pontos de funo so usados para identifcar e quantifcar as funcio-
nalidades requeridas para um projeto. A idia central contar elementos
no comportamento que iro requerer processamento. Gustafson (2003)
nos apresenta os itens clssicos de contagem:
Requisitos: so pares de solicitao-resposta que no mudam os dados
internos. Por exemplo, a solicitao do endereo de um funcionrio espe-
cfco um requisito. Toda a sequncia de perguntar e preencher o nome
e o endereo de um funcionrio ser contada como um nico requisito;
Entradas: so itens da aplicao de dados suprida pelo programa. A
entrada lgica geralmente considerada um item e os campos individu-
ais no so contados separadamente. Por exemplo, a entrada de dados
pessoais para um funcionrio pode ser considerada uma entrada;
Sadas: so os dados da aplicao exibidos. Pode ser um relatrio, uma
tela ou uma mensagem de erro. Os campos individuais tambm no
so considerados sadas separadas. Se um relatrio tem mltiplas linhas,
por exemplo, uma linha para cada funcionrio de um departamento, es-
sas linhas sero consideradas como uma nica sada. Entretanto, alguns
contam linhas sumrias como sadas separadas;
Arquivos Internos: so arquivos lgicos que o usurio entende que de-
vem ser mantidos pelo sistema. Um arquivo que contenha 1.000 entradas
de dados pessoais provavelmente ser contado como um nico arquivo.
No entanto, se um arquivo contm dados pessoais, dados sumrios de
um departamento, e outros dados do departamento, para o propsito de
pontos de funo, provavelmente esses arquivos seriam contados como
trs arquivos separados;
Gerenciamento de Projeto de Software
78
Tecnologia em Anlise e Desenvolvimento de Sistemas
Interfaces Externas: so dados que so compartilhados com outros
programas. Um arquivo pessoal, por exemplo, pode ser usado pelo
departamento de recursos humanos para promoo ou folha de paga-
mento. Assim, esse arquivo pode ser considerado uma interface com
ambos os sistemas.
Falbo (2005) nos apresenta os sete passos compreendidos no processo
de contagem de pontos de funo, ilustrados na fgura 6.1 e descritos de
forma sucinta logo a seguir:
Figura 6-2: Passos do Processo de contagem dos Pontos de Funo
Fonte: Falbo, 2005
Passo 1: Determinar o tipo de contagem dos pontos de funo: este
o primeiro passo no processo de contagem dos pontos de funo, sendo
que existem trs tipos de contagem: contagem de PF de projeto de de-
senvolvimento, de aplicaes instaladas e de projetos de manuteno.
Captulo 6
79
Engenharia de Software
Passo 2: Identifcar o escopo de contagem e a fronteira da aplicao:
neste passo, so defnidas as funcionalidades que sero includas em
uma contagem de Pontos de funo especfca. Tambm defnida a
fronteira da aplicao, estabelecendo um limite lgico entre a aplicao
que est sendo medida, o usurio e outras aplicaes. O escopo de con-
tagem defne a parte do sistema (funcionalidades) a ser contada.
Passo 3: Determinar a contagem de pontos de funo no ajustados:
os pontos de funo no ajustados refetem as funcionalidades forneci-
das pelo sistema para o usurio. Essa contagem leva em conta dois tipos
de funo: funes de dados e funes transacionais, e tambm se a
complexidade simples, mdia ou complexa.
Passo 4: Contagem das funes de dados: as funes de dados repre-
sentam as funcionalidades relativas aos requisitos de dados internos e
externos aplicao, que so os arquivos lgicos internos e os arquivos
de interface externa. Ambos so grupos de dados logicamente relacio-
nados ou informaes de controle que foram identifcados pelo usurio.
A diferena est no fato de um Arquivo Lgico Interno (ALI) ser man-
tido dentro da fronteira da aplicao, isto , armazenar os dados manti-
dos atravs de um ou mais processos elementares da aplicao, enquan-
to um Arquivo de Interface Externa (AIE) apenas referenciado pela
aplicao, ou seja, ele mantido dentro da fronteira de outra aplicao.
Assim, o objetivo de um AIE armazenar os dados referenciados por
um ou mais processos elementares da aplicao sendo contada, mas que
so mantidos por outras aplicaes.
Passo 5: Contagem das funes transacionais: as funes transacio-
nais representam as funcionalidades de processamento de dados do sis-
tema fornecidas para o usurio, tais como as entradas externas, as sadas
externas e as consultas externas. As Entradas Externas (EE) so proces-
sos elementares que processam dados (ou informaes de controle) que
entram pela fronteira da aplicao. O objetivo principal de uma EE
manter um ou mais ALI ou alterar o comportamento do sistema. As Sa-
das Externas (SE) so processos elementares que enviam dados (ou in-
formaes de controle) para fora da fronteira da aplicao. Seu objetivo
mostrar informaes recuperadas atravs de um processamento lgico
(isto , que envolva clculos ou criao de dados derivados) e no ape-
nas uma simples recuperao de dados. Uma SE pode, tambm, manter
um ALI ou alterar o comportamento do sistema. J uma Consulta Ex-
terna (CE) , assim como uma SE, um processo elementar que envia
dados (ou informaes de controle) para fora da fronteira da aplicao,
mas sem a realizao de clculos nem a criao de dados derivados. Seu
objetivo apresentar informao para o usurio, por meio apenas de
uma recuperao das informaes. Nenhum ALI mantido durante sua
realizao, nem o comportamento do sistema alterado.
Gerenciamento de Projeto de Software
80
Tecnologia em Anlise e Desenvolvimento de Sistemas
Passo 6: Determinar o valor do fator de ajuste: o fator de ajuste ba-
seado em quatorze caractersticas gerais de sistemas, que avaliam a fun-
cionalidade geral da aplicao que est sendo contada e seus nveis de
infuncia. O nvel de infuncia de uma caracterstica determinado
com base em uma escala de 0 a 5, em que 0 signifca nenhuma infuncia
e 5 signifca forte infuncia. O objetivo do fator de ajuste ajustar os
pontos de funo no ajustados em 35%.
Passo 7: Calcular os pontos de funo ajustados: neste ltimo passo,
os pontos de funo ajustados so calculados, considerando-se o tipo de
contagem defnido no primeiro passo.
6.4. Elaborao de Cronograma
possvel estimar o tempo cronolgico (durao) de cada atividade
e, consequentemente, do projeto como um todo, assim que tiverem
sido feitas as estimativas de esforo, realizando, em paralelo, a alo-
cao de recursos.
Estimativas de esforo buscam medir o esforo necessrio para com-
pletar o projeto ou cada uma de suas atividades. Estimativas de esforo
podem ser obtidas diretamente pelo julgamento de especialistas, tipica-
mente usando tcnicas de decomposio, ou podem ser computadas a
partir de dados de tamanho ou de dados histricos.
J a Alocao de recursos diz respeito a estimar os recursos necess-
rios para realizar o esforo de desenvolvimento. Quando falamos em
recursos, estamos englobando pessoas, hardware e sofware. No caso de
sofware, devemos pensar em ferramentas de sofware, tais como ferra-
mentas CASE ou sofware de infra-estrutura (por exemplo, um sistema
operacional), bem como componentes de sofware a serem reutilizados
no desenvolvimento, tais como bibliotecas de interface ou uma camada
de persistncia de dados.
Se a estimativa de esforo tiver sido realizada para o projeto como um
todo, ento ela dever ser distribuda pelas atividades do projeto. Dados
histricos de projetos j concludos na organizao so uma boa base
para se fazer essa distribuio.
No entanto, muitas vezes uma organizao no tem ainda esses dados
histricos disponveis. Embora as caractersticas do projeto sejam deter-
minantes para a distribuio do esforo, uma diretriz inicial til consiste
em considerar a distribuio mostrada na Tabela 6.5 (Falbo, 2005).
Captulo 6
81
Engenharia de Software
Tabela 6.5 - Distribuio de Esforo pelas Principais Atividades do Processo
de Software.
Como dissemos, feita a distribuio do esforo por atividade e, parale-
lamente, realizando a alocao de recursos, pode-se criar uma rede de
tarefas com o esforo associado a cada uma das atividades. A partir des-
sa rede, pode-se estabelecer qual o caminho crtico do projeto, isto ,
qual o conjunto de atividades que determina a durao do projeto. Um
atraso em uma dessas atividades provocar atraso no projeto como um
todo. Finalmente, a partir da rede de tarefas, deve-se elaborar um Grf-
co de Tempo (tambm chamado grfco de Gantt), estabelecendo o cro-
nograma do projeto. Uma rede de tarefas, tambm chamada de rede de
atividades, uma representao grfca do fuxo de tarefas de um pro-
jeto. Algumas vezes a rede de tarefas usada como um mecanismo por
meio do qual a sequncia e as dependncias de tarefas so alimentadas
em uma ferramenta automtica de cronogramao de projeto. Grfcos
de Tempo podem ser elaborados para o projeto como um todo (crono-
grama do projeto), para um conjunto de atividades, para um mdulo
especfco ou mesmo para um membro da equipe do projeto.
As Figuras 6.3, 6.4 e 6.5 apresentam, respectivamente, uma rede de tarefas
para desenvolvimento conceitual, um exemplo de grfco de tempo (que
mostra uma parte de um cronograma de projeto que enfatiza a determina-
o do escopo conceitual para um produto de sofware de processamento
de texto) e um exemplo de tabela de projeto, que uma listagem tabular de
todas as tarefas do projeto, de suas datas iniciais e fnais (planejadas e reais) e
vrias outras informaes relacionadas (Pressman, 2006).
Figura 6-3: Uma rede de tarefas para desenvolvimento conceitual
Fonte: Pressman, 2006
Gerenciamento de Projeto de Software
82
Tecnologia em Anlise e Desenvolvimento de Sistemas
Figura 6-4: Um exemplo de grfico de tempo
Fonte: Pressman, 2006
Figura 6-5: Um exemplo de Tabela de Projeto
Fonte: Pressman, 2006
A seguir, apresentamos dois modelos de planos de projeto de sofware:
Modelo 1
1. Introduo
1. Escopo e propsito do documento
2. Objetivos do Projeto
1. Objetivos
2. Funes Principais
3. Questes de desempenho
4. Restries tcnicas e administrativas
Captulo 6
83
Engenharia de Software
2. Especifcao dos Requisitos
1. Especifcao dos Casos de Uso
2. Diagramas de Atividades e Tarefas
3. Diagramas de Classes e Objetos
3. Recursos humanos
1. Relao do pessoal envolvido (formao tcnica, disponibilida-
de, experincia)
2. Estrutura da equipe
3. Distribuio das tarefas (pode ser colocado junto com o
cronograma)
4. Estimativas de Projeto
1. Dados histricos
2. Tcnicas de estimativas
3. Estimativas
5. Riscos do projeto
1. Identifcao dos Riscos
2. Anlise dos riscos
1. Estimativas e probabilidade da ocorrncia de cada risco
2. Impacto no projeto
3. Prioridade (probabilidade x impacto)
3. Gerenciamento dos riscos
1. Aes a serem tomadas para reduzir a ocorrncia dos riscos
2. Aes para reduzir o impacto, casos os riscos venham a
ocorrer
6. Cronograma
1. Rede de tarefas
2. Grfco de linha-de-tempo (timeline)
3. Tabela de recursos
Gerenciamento de Projeto de Software
84
Tecnologia em Anlise e Desenvolvimento de Sistemas
7. Recursos materiais
1. Ferramentas de sofware para desenvolvimento
2. Ferramentas de sofware para operao
3. Hardware para desenvolvimento
4. Hardware para operao
5. Outros materiais (energia, material de escritrio, etc.)
8. Mecanismos de rastreamento e controle
9. Oramento
1. Gastos com recursos materiais
2. Gastos com recursos humanos
3. Outros gastos
Modelo 2
Modelo de Documento Plano de Projeto
Ttulo: Plano de Projeto
Dados Gerais:
Projeto: <<Nome do Projeto>>
Verso: <<Nmero da Verso do Plano de Projeto>>
Responsveis: <<Nome dos Responsveis>>
Sees do Documento e Instrues para seu preenchimento:
1. Introduo
Texto livre introdutrio descrevendo o documento.
2. Escopo do Projeto
Texto introdutrio sobre o problema a ser tratado, seguido de uma iden-
tifcao de subsistemas e mdulos/macro-funes que o sistema dever
tratar, apresentada na forma de diagramas de casos de uso e descries
sucintas dos mesmos.
Captulo 6
85
Engenharia de Software
3. Processo de Sofware do Projeto
Indicar o processo padro / especializado usado como base (quando
aplicvel) e o modelo de ciclo de vida adotado, com uma breve justifca-
tiva para sua escolha. A seguir, apresentar o processo de desenvolvimen-
to no seguinte formato:
Processo de Desenvolvimento
<<Nome da Atividade>>
Preatividades: <<Nomes das preaatividades>>
Subatividades: <<Nomes das subatividades>>
Artefatos Insumo: <<Artefatos requeridos pela atividade>>
Artefatos Produzidos: <<Artefatos produzidos pela atividade>>
Recursos Necessrios:
Recursos Humanos: <<Papis necessrios para realizar a
atividade>>
Ferramentas de Sofware: <<Tipos de Ferramentas
necessrias>>
Hardware: <<Equipamentos necessrios para realizar a
atividade>>
Procedimentos: <<Procedimentos a serem adotados>>
Tecer comentrios sobre os demais processos, sobretudo quando
houver mudanas em relao ao processo padro.
4. Equipe do Projeto
Apresentar a equipe do projeto, identifcando as pessoas e os papis que
as mesmas vo desempenhar no projeto.
5. Estimativas
5.1 Estimativa de Tamanho
Apresentar a estimativa e a base de clculo para se chegar a ela, infor-
mando o procedimento utilizado em sua elaborao.
5.2 Estimativa de Esforo
Apresentar a estimativa e a base de clculo para se chegar a ela, infor-
mando o procedimento utilizado em sua elaborao.
Gerenciamento de Projeto de Software
86
Tecnologia em Anlise e Desenvolvimento de Sistemas
5.3 Alocao de Recursos
Apresentar a alocao de recursos para as atividades do processo.
5.4 Estimativa de Durao
Apresentar uma rede de tarefas, apontando o caminho crtico do proje-
to e um grfco de tempo para o projeto como um todo (cronograma).
5.5 Estimativa de Custo
Apresentar a estimativa de custo e a base de clculo para se chegar
a ela, informando o procedimento utilizado em sua elaborao,
quando couber.
6. Plano de Riscos
Anexar o plano de riscos, desenvolvido segundo o modelo de pla-
no de riscos.
Alm da bibliografa bsica usada neste captulo, e referenciada
em seu fnal, voc pode consultar as seguintes fontes para mais
informaes sobre gerncia de projetos de sofware.
- PRESSMAN, R. S. Engenharia de Sofware. 5. ed.,Rio de Janei-
ro: McGraw Hill, 2002.
O captulo 3 d uma viso geral da gerncia de projetos de sof-
tware, com discusses sobre pessoal e formao de equipes (se-
o 3.2), defnio do escopo do sofware (seo 3.3), estrutura
de diviso do trabalho (seo 3.4). O captulo 4 aborda o tema de
medio e mtricas nas sees 4.1 e 4.3. O captulo 5 trata com
mais detalhes do planejamento do projeto, com destaque para a
determinao do escopo (seo 5.3), estimativas (sees 5.1, 5.5,
5.6 e 5.7) e recursos (seo 5.4). O captulo 6 trata da gerncia de
riscos. Finalmente, o captulo 7 aborda a elaborao e o acompa-
nhamento do cronograma.
- SOMMERVILLE, I. Engenharia de Sofware. 6. ed. So Paulo:
Addison-Wesley, 2003.
O captulo 4 proporciona uma viso geral da gerncia de projetos de
sofware, abordando atividades da gerncia (seo 4.1), planejamento
do projeto (seo 4.2), elaborao do cronograma (seo 4.3) e gern-
cia de riscos (seo 4.4). Alm disso, h dois captulos (22 e 23) dedica-
dos, respectivamente, gerncia de pessoal e s estimativas.
Captulo 6
87
Engenharia de Software
- PFLEEGER, S.L. Engenharia de Sofware: Teoria e Prtica. 2.
ed. So Paulo: Prentice Hall, 2004.
O captulo 3 dedicado ao planejamento e gerncia de proje-
tos de sofware. A seo 3.1 trata do escopo, estrutura de diviso
do trabalho e elaborao do cronograma. Na seo 3.2, h uma
discusso acerca do pessoal necessrio para o projeto e formao
de equipes. As sees 3.3, 3.4 e 3.5 discutem, respectivamente, os
temas estimativas, gerncia de riscos e plano de projeto.
- VIEIRA, M.F. Gerenciamento de Projetos de Tecnologia da
Informao. Rio de Janeiro: Editora Elsevier/ Campus, 2003.
- MARTINS,J.C.C. Gerenciando Projetos de Desenvolvimento
de Sofware com PMI, RUP e UML, 2. ed. revisada, Rio de Janei-
ro : Brasport, 2005.
- VAZQUEZ,C.E., SIMES,G.S. & ALBERT,R.M. Anlise de
Pontos de Funo: Medio, Estimativas e Gerenciamento de
Projetos de Sofware, 3. ed., So Paulo : Editora rica, 2005.
Este livro traz uma apresentao bastante detalhada do mtodo
da Anlise de Pontos de Funo, explorando a importncia da
medio (captulo 1), uma viso geral do processo de contagem
(captulo 3), detalhamento desse processo (captulos 4, 5, 6 e 7) e
estimativas (captulo 9).
Atividades
1. Tanto a estimativa de linha de cdigo (LOC), quanto a anlise
de pontos de funo (APF), so estimativas do tamanho do sof-
tware. A anlise de pontos de funo tambm tem como objetivo
medir o desenvolvimento e a manuteno de uma aplicao de
sofware. Descreva com suas palavras cada uma dessas estimati-
vas, destacando as caractersticas principais de cada uma delas, e
as principais diferenas.
2. Em relao medio do tamanho de uma aplicao de sof-
tware, na sua opinio, qual das estimativas citadas na Atividade
1 a melhor?
3. Compare os dois modelos de plano de projeto apresentados na
seo 6.4 e registre suas observaes. Qual dos modelos voc con-
sidera ser o melhor? Descreva os motivos da escolha.
Gerenciamento de Projeto de Software
88
Tecnologia em Anlise e Desenvolvimento de Sistemas
[1] FALBO, R.A., Notas de Aula: Engenharia de Sofware.
Disponvel em http://www.inf.ufes.br/~falbo, 2005.
[2] GUSTAFSON, DAVID A. Teoria a problemas de engenha-
ria de sofware. Porto alegre: Bookman, 2003. (Coleo Schaum).
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Captulo 6
89
Engenharia de Software
Prezado aluno,
Neste captulo discutiremos mtricas de sofware no contexto de
produto, processo e projeto.
Bom estudo!
7.1. Mtricas de Software
Segundo a Wikipdia, Medio a atividade de comparar uma quanti-
dade com um padro pr-defnido. Atravs da medio o homem pode
expressar numericamente qualidades de um objeto ou fenmeno. Sem
a medio, o homem fca refm de conceitos como grande/pequeno,
forte/fraco, largo/fno, etc; porm, com a medio, o homem pode
raciocinar com mais preciso acerca das referidas qualidades.
O ato de medir envolve essencialmente a existncia de unidades de me-
dida, que so os comparativos usados na medio. Envolve tambm a
existncia de instrumentos de medio que, graduados de acordo com
a unidade de medida em questo, fornecem com variados graus de pre-
ciso a medida desejada.
Apesar dos termos medida, medio e mtrica serem frequentemente
usados num mesmo contexto, eles contm diferenas sutis que so im-
portantes de serem observadas. A palavra medida pode ser usada tanto
como substantivo quanto como verbo, tornando a defnio do termo
confusa. No contexto da engenharia de sofware, uma medida nos d
uma indicao quantitativa de da extenso, quantidade, dimenso, ca-
pacidade ou tamanho de algum atributo de um produto ou processo.
Medio o ato de determinar uma medida. J mtrica defnida pela
IEE standard Glossary como uma medida quantitativa do grau em que
um sistema, componente ou processo possui um determinado atributo.
J um indicador uma mtrica ou combinao de mtricas que forne-
ce profundidade na viso do processo de sofware, projeto de sofware
ou produto em si (Pressman, 2006). Para saber mais sobre a diferena
entre medida, medio e indicadores, visite o link: http://www.sinfc.pt/
SinfcNewsletter/sinfc/Newsletter50/Dossier2.html
MTRICAS DE SOFTWARE
90
Tecnologia em Anlise e Desenvolvimento de Sistemas
O texto a seguir vai ajud-lo a entender mais sobre medida, medi-
o e mtrica.
Quando se trata de avaliao quantitativa, quatro conceitos, mui-
tas vezes usados equivocadamente com o mesmo sentido, so im-
portantes: medida, medio, mtrica e indicador.
Uma medida fornece uma indicao quantitativa da extenso,
quantidade, dimenso, capacidade ou tamanho de um atributo de
um produto ou de um processo. Quando os dados de um nico
ponto so coletados, uma medida estabelecida (p.ex., quantida-
de de erros descobertos em uma reviso).
Medio o ato de medir, isto , de determinar uma medida. J
uma mtrica procura relacionar medidas individuais com o obje-
tivo de se ter uma idia da efccia do processo, do projeto ou do
produto sendo medido. Por fm, desenvolvem-se mtricas para se
obter indicadores, isto , para se ter uma compreenso do proces-
so, produto ou projeto sendo medido.
Seja o seguinte exemplo: deseja-se saber se uma pessoa est com
seu peso ideal ou no. Para tal, duas medidas so importantes: al-
tura (H) e peso (P). Ao medir essas dimenses, est-se efetuando
uma medio. A mtrica ndice de massa corporal (IMC) cal-
culada segundo a seguinte frmula: IMC = P / H2. A partir dessa
mtrica, a Organizao Mundial de Sade estabeleceu indicado-
res que apontam se um adulto est acima do peso, se est obeso ou
abaixo do peso ideal considerado saudvel, conforme a seguir:
Se IMC < 18,5, ento o indivduo est abaixo do peso ideal consi-
derado saudvel;
Se 18,5 <= IMC < 25, ento o indivduo est com o peso normal;
Se 25 <= IMC <= 30, ento o indivduo est acima do peso;
Se IMC > 30, ento o indivduo est obeso.
Realizando medies, uma pessoa pode obter suas medidas para
altura e peso. A partir delas, pode calcular a mtrica IMC e ter um
indicador se est abaixo do peso, no peso ideal, acima do peso ou
obeso. Conhecendo esse indicador, a pessoa pode ajustar seu pro-
cesso de alimentao, obtendo melhorias reais para sua sade.
Fonte: Captulo 4 Gerncia da Qualidade Medio e M-
tricas (Falbo, 2005).
Captulo 7
91
Engenharia de Software
O texto a seguir vai ajud-lo a entender mais sobre mtricas de sofware.
A cincia baseada em medidas. Melhorar o processo requer a
compreenso dos relacionamentos e isso requer medidas.
Medida de sofware o mapeamento de smbolos para objetos. O
propsito qualifcar alguns atributos dos objetos, por exemplo,
a medida do tamanho do projeto de sofware. Adicionalmente, o
objetivo pode ser predizer alguns atributos que no so aparente-
mente mensurveis, tais como o esforo necessrio para desenvol-
ver um projeto de sofware.
Nem todos os mapeamentos de smbolos para objetos so aplic-
veis. Uma questo importante a validao das mtricas; entre-
tanto, a validao est relacionada ao uso da mtrica. Um exemplo
a altura de uma pessoa. A altura importante para predizer a
habilidade da pessoa passar por uma porta sem bater a cabea. Ter
uma correlao entre a medida e um atributo no sufciente para
validar uma medida. Por exemplo, o tamanho do p de uma pes-
soa altamente relacionado com a altura dela; entretanto, normal-
mente no aceito como medida para a altura de uma pessoa.
Os seguintes critrios so vlidos para mtricas:
1. Uma mtrica deve permitir a distino entre diferentes entidades.
2. Uma mtrica deve obedecer a uma condio de representao.
3. Cada unidade do atributo deve contribuir com a mesma quan-
tidade para a mtrica.
4. Entidades diferentes podem ter o mesmo valor do atributo.
Muitas vezes, o interesse do atributo no diretamente mensur-
vel; nesse caso, uma medida indireta usada. Uma medida indi-
reta envolve a medida e a forma de predio. Por exemplo, densi-
dade no uma medida direta. Ela calculada a partir da massa
e do volume, que so medidas diretas. Na cincia da computao,
muitos atributos (mantenibilidade, facilidade de leitura, texta-
bilidade, qualidade, complexidade, etc.) no podem ser medidos
diretamente, e medidas indiretas para esses atributos o objetivo
de muitas mtricas de programas.
Os seguintes critrios so vlidos para mtricas indiretas:
1. O modelo deve ser explicitamente defnido.
2. O modelo deve ser dimensionalmente consistente.
3. No deve haver descontinuidade inesperada.
4. Unidades e tipos de escala devem ser corretos.
Fonte: Gustafson, 2003.
Mtricas de Software
92
Tecnologia em Anlise e Desenvolvimento de Sistemas
Mas para que serve a medio no contexto da engenharia de sofware?
A medio pode ser aplicada em trs contextos diferentes:
1. Pode ser aplicada ao processo de sofware com o objetivo de
melhor-lo de forma contnua;
2. Pode ser usada ao longo de um projeto de software para
auxiliar em:
a. Estimativa
b. Controle da Qualidade
c. Avaliao de Produtividade
d. Controle do Projeto
3. Pode ser usada para ajudar a avaliar a qualidade dos produtos
do trabalho e auxiliar na tomada de decises tticas medida
que o projeto evolui.
Esses trs contextos sero discutidos a seguir:
7.2. Mtricas de Processo
O objetivo das mtricas de processo fornecer um conjunto do que
chamamos de indicadores de processo, que leva a aperfeioamentos do
processo de sofware a longo prazo. Mtricas de processo so coletadas
no decorrer de todos os projetos e durante longos perodos de tempo.
Segundo Pressman (2006), as mtricas de sofware nos permitem:
4. Avaliar o estado de um projeto em andamento;
5. Acompanhar riscos potenciais;
6. Descobrir reas-problema antes que elas se tornem reas crticas;
7. Ajustar o fuxo de trabalho ou tarefas;
8. Avaliar a capacidade da equipe de projeto em controlar a qua-
lidade dos produtos de sofware.
Captulo 7
93
Engenharia de Software
As mtricas de processo (como tambm as mtricas de projeto) so me-
didas quantitativas que nos permitem ter ideia da efccia do processo de
sofware. So coletados dados bsicos de qualidade e produtividade, que
so analisados, comparados com mtricas anteriores e avaliados para
determinar se ocorreram melhorias de qualidade e produtividade. Ou
seja, o objetivo das mtricas de processo exatamente melhorar a quali-
dade do processo de desenvolvimento de sofware de forma contnua.
Como exemplo de mtricas de processo, apresentaremos a produtividade
(Gustafson, 2003). Ela calculada pela diviso do total de linhas do c-
digo-fonte entregues pelos programadores/dia atribudos ao projeto. As
unidades de medida normalmente so dadas em LOC/programador/dia.
Exemplo: Um projeto totalizou 100 KLOC. Trabalharam no projeto 20
programadores por ano. Esse ano inclui o esforo total para requisitos,
projeto, implementao, testes e fases de entrega. Assuma que existam
aproximadamente 240 dias de trabalho no ano (20 dias ao ms por 12
meses, sem frias). A produtividade dada ento por:
100.000 LOC / 20 programadores * 240 dias = 100.000 LOC / 4800 dias
= 20,8 LOC/programador/dia.
7.3. Mtricas de Projeto
Podemos dizer que as mtricas de processo so usadas com fnalida-
des estratgias, visando melhorar o processo de sofware de forma
contnua. J as mtricas de projeto so tticas. Elas podem ser usa-
das ao longo de um projeto para auxiliar na estimativa, no controle
de qualidade, na avaliao de produtividade e no controle do projeto.
Tal como as mtricas de processo, as mtricas de projeto so medidas
quantitativas que nos permitem ter a idia da efccia dos projetos que
so conduzidos usando o processo de sofware como arcabouo. Elas
so usadas pelo gerente de projeto para adaptar o fuxo de trabalho e
as atividades tcnicas do projeto.
O objetivo das mtricas de projeto duplo. Elas so usadas para:
1. Minimizar o cronograma de desenvolvimento (ou pelo menos
permitir que ele no estoure), fazendo os ajustes necessrios
para evitar atrasos, problemas e riscos em potencial;
2. Avaliar a qualidade do produto de sofware durante sua evo-
luo e, quando necessrio, modifcar a abordagem tcnica para
aperfeioar a qualidade.
Mtricas de Software
94
Tecnologia em Anlise e Desenvolvimento de Sistemas
Geralmente, a primeira aplicao das mtricas de projeto ocorre du-
rante as estimativas (veja seo 6.3). Mtricas coletadas de projetos an-
teriores so usadas como base, a partir da qual estimativas de esforo e
tempo so feitas para o projeto atual. Conforme o projeto evolui, medi-
das de esforo e tempo despendidos so comparadas com as estimativas
originais e com o cronograma do projeto. Esses dados so usados para
monitorao e controle do progresso do projeto.
Quando o trabalho tcnico se inicia, outras mtricas comeam a ser im-
portantes, tais como a taxa de produo representada em termos de mo-
delos criados, horas de reviso (veja exerccios resolvidos do captulo 8),
pontos por funo (veja seo 6.3.2) e linhas de cdigo-fonte entregue
(veja seo 6.3.1), etc. Alm disso, so registrados os erros descobertos
durante cada tarefa de engenharia de sofware.
medida que o sofware evolui da especifcao ao projeto, mtricas
tcnicas so coletadas para avaliar a qualidade do projeto e fornecer in-
dicadores que iro infuenciar a abordagem adotada para gerao de
cdigo e teste.
7.4. Mtricas de Produto
As mtricas de produto so mtricas que podem ser calculadas para a
documentao de um produto de sofware, independentemente da for-
ma como ele foi produzido, e geralmente esto relacionadas ao cdigo
fonte, podendo ser defnidas a partir de outros documentos.
Como exemplo, podemos citar que uma mtrica possvel seria o nme-
ro de pargrafos que consistem na especifcao de requisitos.
Existem muitas taxonomias propostas para mtricas de produto. A se-
guir apresentaremos as apresentadas por Pressman (2006).
Mtricas para o Modelo de anlise: tratam de vrios aspectos do mo-
delo de anlise, entre eles:
Funcionalidade
entregue
Fornece uma medida indireta da funcionalidade
que empacotada com o sofware.
Tamanho do
sistema
Mede o tamanho global do sistema defnido em ter-
mos de informao disponvel como parte do mo-
delo de anlise.
Qualidade da
especifcao
Fornece uma indicao da especifcidade e comple-
teza de uma especifcao de requisitos.
Captulo 7
95
Engenharia de Software
Mtricas para o Modelo de projeto: essas mtricas quantifcam atri-
butos do projeto de um modo que permita ao engenheiro de sofware
avaliar a qualidade do projeto. A mtrica inclui:
Mtrica arquitetural Fornece uma indicao da qualidade do proje-
to arquitetural.
Mtrica no nvel de
componente
Mede a complexidade dos componentes de
sofware e outras caractersticas que tm infu-
ncia em sua qualidade.
Mtricas de projeto
de interface
Focalizam principalmente a usabilidade.
Mtricas especializa-
das em projeto OO
Medem caractersticas de classes e suas carac-
tersticas de comunicao e colaborao.
Mtricas para cdigo-fonte: medem o cdigo-fonte e podem ser usa-
das para avaliar sua complexidade, manutebilidade e testabilidade, entre
outras caractersticas.
Mtricas de Halstead Embora controversas, fornecem medidas sin-
gulares de um programa de computador.
Mtricas de
complexidade
Medem a complexidade lgica do cdigo-fonte
(podem tambm ser consideradas como m-
tricas de projeto no nvel do componente).
Mtricas de
comprimento
Fornecem uma indicao do tamanho do
sofware.
Mtricas de teste: ajudam o projeto de casos de teste efetivos e avaliam
a efccia do teste. Podem ser:
Mtricas de cober-
tura de comando e
desvio
Levam ao projeto casos de teste efetivos e ava-
liam a efccia do teste.
Mtricas relaciona-
das a defeito
Enfocam erros encontrados, em vez dos testes
em si.
Efetividade de teste Fornece uma indicao em tempo real da efeti-
vidade dos testes que foram conduzidos.
Mtricas em
processo
Mtricas relacionadas a processo que po-
dem ser determinadas medida que o teste
conduzido.
Em muitos casos, algumas dessas mtricas podem ser usadas em ativi-
dades posteriores de engenharia de sofware, por exemplo, mtricas de
modelo de projeto podem ser usadas para estimar o esforo necessrio
para gerar cdigo-fonte.
Mtricas de Software
96
Tecnologia em Anlise e Desenvolvimento de Sistemas
Atividades
1. Aps ler o captulo, pesquise mais sobre o tema e fale com suas
prprias palavras sobre o que so:
Mtricas de Processo t
Mtricas de Projeto t
Mtricas de Produto t
2. Fale sobre as diferenas bsicas entre esses trs tipos de mtricas.
[1] FALBO, R.A., Notas de Aula: Engenharia de Sofware.
Disponvel em http://www.inf.ufes.br/~falbo, 2005.
[2] PRESSMAN, R.S., Engenharia de Sofware. So Paulo:
McGraw-Hill, 6 Edio, 2006.
[3] GUSTAFSON, DAVID A. Teoria a problemas de engenha-
ria de sofware. Porto alegre: Bookman, 2003. (Coleo Schaum).
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Captulo 7
97
Engenharia de Software
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Mtricas de Software
98
Tecnologia em Anlise e Desenvolvimento de Sistemas
Captulo 7
99
Engenharia de Software
Prezado aluno,
Neste captulo vamos abordar a rea de anlise e gerenciamento de
risco.. Falaremos sobre identifcao de risco, estimativa de risco,
exposio de risco, mitigao de risco e sobre planos de gerencia-
mento de risco (Gustafson, 2003).
Bom estudo!
8.1. Introduo
Podemos considerar um risco como a possibilidade de um evento inde-
sejvel acontecer. Esse desejo indesejvel chamado de evento de risco.
Os riscos envolvem incertezas e perdas. No so considerados riscos
eventos que certamente ocorrero ou eventos que no afetam negativa-
mente o projeto.
Existe uma certa discordncia sobre quais riscos devem ser gerencia-
dos. Alguns especialistas sugerem que riscos comuns a vrios projetos
devem ser incorporados ao processo do sofware, devendo apenas ser
gerenciados os riscos que so nicos a um projeto corrente.
Segundo Pressman (2006), a anlise e gesto de riscos so uma srie de
passos que ajudam uma equipe de sofware a entender e administrar as
incertezas do projeto. Muitos problemas podem perturbar um projeto
de sofware, mas um risco um problema em potencial pois, como o
prprio nome diz, um risco um risco, e, portanto, pode ou no ocorrer.
No entanto, independentemente do resultado, importante identifcar
riscos, avaliar a probabilidade de eles ocorrerem, estimar seu impacto,
estabelecer um plano de contingncia no caso do problema efetivamen-
te ocorrer e monitorar os riscos.
ANLISE E GERENCIAMENTO
DE RISCO
100
Tecnologia em Anlise e Desenvolvimento de Sistemas
8.2. Identificao de risco
A identifcao de risco, como o prprio nome diz, um processo que
identifca possveis riscos. Os ricos podem sem classifcados como:
Riscos de Projeto: t riscos que afetam o plano de projeto;
Riscos Tcnicos: t riscos que afetam a qualidade do projeto;
Riscos de Negcio: t riscos que afetam a viabilidade do projeto.
O exemplo a seguir, retirado de Gustafson (2003), vai ajud-lo a en-
tender a identifcao de alguns tipos de riscos. Devemos lembrar que
alguns especialistas consideram apenas os riscos que no so comuns a
todos os projetos. Esses riscos mais comuns so considerados por eles
como parte do planejamento do projeto padro da organizao.
Exemplo: Considere um projeto que envolve a tentativa de desenvolver
um sofware de segurana crtica para corte de equipamento. Liste os
riscos e classifque-os como sendo de projeto, tcnico ou de negcio, e
como comum a todos os projetos ou especial a este projeto.
Risco Projeto Tcnico Negcio Comum Especial
Equipamento no-
disponvel
X X
Requisitos
incompletos
X X
Uso de metodolo-
gias Especializadas
X X
Problemas na busca
da confabilidade
requerida
X X
Reteno de
pessoas-chave
X X
Subestimativa do
esforo requerido
X X
Desistncia do
nico cliente em
potencial
X X
Tabela 8.1 Tipos de Riscos
Um mtodo de identifcar riscos criar um checklist (veja seo 9.2).
Abaixo segue uma categorizao para riscos de sofware, que esto
associados a:
Captulo 8
101
Engenharia de Software
- Tamanho do projeto.
Os riscos do projeto so diretamente proporcionais ao tama-
nho do projeto.
- Impacto nos negcios.
Aspectos comerciais muitas vezes vo de encontro realidade tcnica.
Custo (impacto) associado com atrasos na entrega do produto fnal.
- Caractersticas do usurio fnal.
Nmero de pessoas que usaro o sistema.
Nvel de sofsticao do usurio.
- Caractersticas do cliente.
J trabalhou com este cliente antes?
O cliente mostra-se acessvel e disposto a gastar tempo em reunies?
O cliente tem conhecimento (treinamento) de processos de de-
senvolvimento de sofware?
- Defnio do processo (maturidade do processo)
A empresa possui um processo de desenvolvimento de sofware
bem defnido (CMM por exemplo veja seo 9.5)?
O grupo est acostumado (treinado) a usar processos de desen-
volvimento de sofware?
Haver um processo de desenvolvimento bem definido para
o projeto?
- Ambiente de desenvolvimento.
H ferramentas adequadas para dar suporte a todas as fases do
desenvolvimento do projeto?
- Complexidade do produto (quantidade de tecnologia que
ser empregada na construo do produto).
A tecnologia que ser usada para desenvolver o projeto nova
para a empresa ou para o grupo?
H requisitos muito fortes de performance para o produto fnal?
Mais de 90% do cdigo ser escrito em uma linguagem de alto nvel?
- Tamanho e experincia da equipe.
A equipe possui todas as habilidades necessrias para cons-
truir o produto?
H pessoal sufciente para o projeto?
Assim que identifcamos os possveis riscos de um projeto, devemos es-
tabelecer planos de mitigao (evitar ou minimizar os riscos seo
8.5) e de contingncia (o que fazer caso o risco acontea seo 8.6).
Para isso podemos montar a seguinte tabela:
Anlise e Gerenciamento de Risco
102
Tecnologia em Anlise e Desenvolvimento de Sistemas
Risco Probabilidade Impacto
Plano de
gerncia de
riscos
Tamanho estima-
do pode ser muito
menor que o real
baixa crtico
Equipe inexperiente mdia catastrfco
Troca de membros
da equipe
alta crtico
Complexidade da
tecnologia muito
maior que a prevista
baixa marginal
Cliente pouco
disponvel
alta negligencivel
... ... ... ...
Tabela 8.2 Tabela de probabilidade, impacto e plano de gerencia de riscos
8.3. Estimativa de risco
A estimativa de risco envolve duas tarefas: estimar a probabilidade da
ocorrncia do risco, tambm chamada de probabilidade do risco; e es-
timar o custo de acontecer o evento de risco, geralmente chamado de
impacto do risco. A tarefa de estimar a probabilidade da ocorrncia do
risco uma tarefa muito difcil. Os riscos conhecidos so mais fceis de
gerenciar, porque se tornam parte do processo de sofware. Os riscos
mais importantes de gerenciar so os novos riscos, nicos para o projeto
corrente. J o custo de um risco pode ser mais fcil de gerenciar, depen-
dendo da experincia adquirida em projetos interrompidos.
8.4. Exposio de risco
A exposio de risco o valor esperado do evento de risco. Esse valor
calculado multiplicando-se a probabilidade do risco pelo custo do even-
to de risco. Veja o exemplo a seguir:
Exemplo: Considere um jogo de dados com dois dados. Considere tam-
bm uma jogada de 7 como um evento indesejvel, que lhe faria perder
R$ 60,00. Calcule a probabilidade do risco e o impacto do risco de acon-
tecer uma jogada de 7. Calcule a exposio do risco.
Captulo 8
103
Engenharia de Software
A probabilidade do risco de 6 dentre as 36 combinaes possveis, ou
seja, 1/6. O impacto do risco de R$ 60,00 (custo de o risco acontecer).
Assim, a exposio do risco dada pela multiplicao de 1/6 por R$
60,00, dando um valor de R$ 10,00.
8.5. Mitigao de risco
Mitigao diz respeito ao de aliviar. Ou seja, mitigao de risco
a estratgia de encontrar maneiras de se diminuir a probabilidade da
ocorrncia do risco ou diminuir o impacto da sua ocorrncia. No exis-
tem maneiras mgicas de se reduzir riscos. No entanto, consenso que,
quanto mais cedo se tentar resolver os riscos, melhor. Por exemplo, se
existe uma preocupao sobre um sistema particular que precisa ser
usado, quanto mais cedo se investigar esses sistemas, melhor. Se o siste-
ma a ser construdo precisa se comunicar com um sistema legado, por
exemplo, importante que logo no incio do projeto essa comunicao
seja testada, mesmo que seja por meio de um prottipo simples que
teste essa comunicao. Geralmente um prottipo pode ser construdo
para ajudar a identifcar os problemas antecipadamente.
Existe um termo chamado anlise e gesto de riscos (veja captulo 25
do livro do Pressman (2006) para mais informaes) que designa uma
srie de passos que ajudam uma equipe de sofware a entender e admi-
nistrar a incerteza inerente ao risco. Como dito anteriormente, riscos
envolvem incertezas e perdas. Muitos problemas podem perturbar um
projeto de sofware, e um risco um problema em potencial, que pode
ou no ocorrer, mas independentemente se ele vai ou no ocorrer,
muito importante identifcar os riscos, avaliar a probabilidade de eles
ocorrerem, estimar seu impacto e estabelecer um plano de contingncia,
no caso do problema efetivamente ocorrer. O exemplo abaixo, retirado
de Gustafson (2003) e adaptado, vai ajud-lo a pensar em abordagens
para diminuir tanto a probabilidade quanto o impacto de riscos.
Exemplo: Considere os riscos identifcados na Tabela 8.1. Sugira uma
abordagem para diminuir a probabilidade e o impacto, ou ambos, de
cada risco.
Anlise e Gerenciamento de Risco
104
Tecnologia em Anlise e Desenvolvimento de Sistemas
Risco
Diminuir
Probabilidade
Diminuir Impacto
Equipamento no-
disponvel
Acelerar o desenvolvi-
mento do hardware
Construir simulador
Requisitos
incompletos
Ampliar reviso dos
requisitos
Uso de metodologias
Especializadas
Aumentar treinamen-
tos da equipe, consul-
tar especialistas.
Problemas na busca
da confabilidade
requerida
Projetar para
confabilidade
Reteno de
pessoas-chave
Pagar mais
Empregar pessoal
adicional
Subestimativa do
esforo requerido
Contratar especialista
externo
Desenvolver no
tempo estimado, re-
estimar sempre
Desistncia do nico
cliente em potencial
Ter avaliao externa
da rea
Identifcar outros
potenciais clientes
Tabela 8.3 Abordagens para diminuio de probabilidade e impacto de riscos
8.6. Planos de gerenciamento de risco
Na gerncia de riscos, todos os aspectos envolvidos devem ser docu-
mentados em um plano de riscos, indicando os riscos que compem o
perfl de riscos do projeto, as avaliaes dos riscos, a defnio dos riscos
a serem gerenciados e as aes para evit-los ou para minimizar seus
impactos, caso venham a ocorrer (Falbo, 2005).
Um plano de riscos deve envolver alguns elementos, dentre eles:
1. Identifcador do risco
2. Descrio do risco
3. Estimativa de probabilidade do risco
4. Estimativa do impacto do risco
5. Lista de estratgias de mitigao dos riscos
6. Planos de contingncia
7. Marcos de risco
8. Indivduos responsveis (equipe)
Ainda no falamos sobre marcos de risco. Os marcos de risco servem
para identifcar quando os planos de contingncia devem ser ativados.
Captulo 8
105
Engenharia de Software
bom ressaltar que outros campos podem ser adicionados ao plano
de riscos. Esta apenas uma sugesto de modelo de plano de riscos. A
seguir apresentaremos um exemplo simples de um plano de risco, rela-
cionado a um risco apenas. (Gustafson, 2003).
Exemplo: Desenvolva um formulrio para gerenciamento de risco e in-
sira dados de exemplo.
Risco: 1-010-77 Probabilidade: 10% Impacto: muito alto
Descrio: hardware especializado pode no estar disponvel
Estratgia de Mitigao: construir simulador, acelerar desenvolvi-
mento do hardware
Marco do risco: hardware estragar uma semana ou mais aps calendrio
Plano de Contingncia: ter desenvolvimento externo de hardware
como backup, implantar sistemas em um simulador
Status/data/responsvel:
Criao 01/jan/08 Marcos Silva
Simulao Completada 10/fev/08 Flvio Carvalho.
8.7. Monitoramento de riscos
O monitoramento de riscos uma atividade que realizada durante o
acompanhamento do progresso do projeto. medida que o projeto pro-
gride, os riscos tm de ser monitorados para se verifcar se os problemas
esto se tornando realidade ou no. Novos riscos podem ser identif-
cados, o grau de exposio de um risco pode mudar e algumas aes
podem precisar ser tomadas.
Atividades
1. Depois de ler todo este captulo, descreva com suas prprias pala-
vras se voc acha importante o gerenciamento de risco e por qu.
2. Quando o gerenciamento de risco deve ser feito dentro do pro-
cesso de desenvolvimento de sofware? Por qu?
3. Considere que voc esteja indo ao aeroporto para viajar por
uma companhia que voc nunca usou antes. Descreva quais os
riscos que voc considera serem nicos para essa viagem (risco
especial) e quais devem ser gerenciados como riscos comuns a
qualquer viagem (risco comum).
Fonte: Adaptado de Gustafson, 2003;
Anlise e Gerenciamento de Risco
106
Tecnologia em Anlise e Desenvolvimento de Sistemas
Exerccios Resolvidos
1. Descreva alguns riscos normais que podem acontecer em qual-
quer projeto de sofware.
2. Considere um projeto que tem 0.5% de probabilidade de
uma falta no-detectada causar companhia um prejuzo de R$
100.000,00. Calcule a exposio do risco.
3. Considere o uso de uma reviso adicional para o problema 2
que custaria R$ 100,00, mas eliminaria tal falta em 50% das vezes.
Calcule essa nova exposio de risco usando a reviso adicional.
A abordagem de reviso adicional melhor?
4. O que mudaria na Atividade 3 se uma reviso adicional fosse
efetiva em 10% das vezes?
5. A companhia X possui dados histricos que mostram que a m-
dia de erros normais de 0,0036 erros por KLOC. Uma nova tc-
nica de reviso custa R$ 1000,00 por 100 KLOC e decresce o n-
mero de erros em 50%. Assuma que cada erro custe companhia
uma mdia de R$ 10.000,00. O projeto em andamento estimado
em 50 KLOC. Calcule a exposio do risco de cada abordagem. A
nova tcnica de reviso efciente?
Fonte: Adaptado de Gustafson, 2003;
Respostas dos Exerccios
1. Riscos comuns e normais a todos os projetos de sofware so, por
exemplo: no entendimento dos desejos e necessidades dos usurios,
falta de comunicao ou comunicao falha com o usurio, problemas
com o hardware do usurio, o projeto ultrapassar o custo, atraso no pro-
jeto, entre outros.
2. A exposio do risco calculada multiplicando-se a probabilidade
do risco pelo custo do evento de risco. A exposio do risco dada pela
soma da exposio do risco para cada possibilidade:
0,005 * 100.000,00 + 0,995 * 0 = R$ 500,00.
Note que em ambos os clculos da exposio do risco, os custos
foram acrescentados em R$ 100,00.
3. A nova exposio do risco dada por:
0,025 * 100.100,00 + 0,9975 * 100 = R$ 250,25 + 99,75 = R$ 350,00.
Captulo 8
107
Engenharia de Software
Observe que para este novo clculo devemos diminuir a probabilidade
da falta em 50%, indo para 25% e que o custo do projeto aumenta em R$
100,00, indo para R$ 100.100,00
A abordagem de reviso adicional melhor.
4. A nova exposio do risco dada por:
0,0045 * 100.100,00 + 0,9955 * 100 = R$ 450,45 + 99,55 = R$ 350,00.
Observe que este novo clculo foi feito diminuindo 10% da probabilida-
de do risco, que de
0,5% (0,005). Desta forma, 10% a menos de 0,005 d 0.0045.
5. Caso 1 Nenhuma reviso
O clculo de exposio do risco dado por:
0,0036 * 50 KLOC * R$ 10.000,00 = R$ 1.800,00
Caso 2 Com reviso
O clculo de exposio do risco dado por:
0,0018 * 50 KLOC * R$ 10.000,00 + R$ 500,00 = R$ 1.400,00
Note que a mdia de erros caiu em 50% (de 00,36 para 00,18) do caso 1
para o caso 2, que foi adicionado ao caso 2 o valor de R$ 500,00, j que o
custo da reviso de 1.000 por 100 KLOC e o projeto est estimado em
50 KLOC (metade do custo de reviso).
[1] GUSTAFSON, DAVID A. Teoria a problemas de engenha-
ria de sofware. Porto alegre: Bookman, 2003. (Coleo Schaum).
[2] PRESSMAN, R.S. Engenharia de Sofware. So Paulo:
McGraw-Hill, 6 Edio, 2006.
Anlise e Gerenciamento de Risco
108
Tecnologia em Anlise e Desenvolvimento de Sistemas
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
____________________________________________________
Captulo 8
109
Engenharia de Software
Prezado aluno,
Produzir software de qualidade uma das principais metas da
engenharia de software. Neste captulo iremos discutir alguns
assuntos mais comuns relacionados garantia da qualidade
de software, tais como inspeo formal e tcnicas de reviso,
confiabilidade do software, garantia estatstica de qualidade
de software e normas e modelos de qualidade de processo de
software.
Bom estudo!
9.1. Introduo
Como vimos em vrios momentos deste material, construir sofware de
qualidade uma das principais metas da engenharia de sofware. No en-
tanto, qualidade no se consegue de forma espontnea. Muito mais do
que isso, a qualidade deve ser construda em um produto de sofware.
Mas o que seria um sofware de qualidade? Podemos considerar um
sofware de qualidade aquele que faz o que se espera que ele faa, e uma
das formas mais fceis de defnir se um sofware ou no de qualidade
olhar para a satisfao do usurio. Para se medir a satisfao do usurio,
a maneira usual o relatrio de defeitos. Por esse motivo, para se alcan-
ar qualidade, a tcnica principal ainda a reviso de sofware, que tem
por objetivo encontrar erros. (Gustafson, 2003).
Abordagens Formais para alcanar a qualidade de sofware tm de-
monstrado serem mais efcientes que abordagens informais. Na prxi-
ma seo discutiremos sobre revises tcnicas formais.
9.2. Revises Tcnicas Formais
Segundo Pressman (2006), uma Reviso Tcnica Formal uma ativida-
de de garantia da qualidade de sofware realizada por engenheiros de
sofware (e outros). Os objetivos das Revises Tcnicas Formais so:
GARANTIA DE QUALIDADE DE
SOFTWARE
110
Tecnologia em Anlise e Desenvolvimento de Sistemas
1. Descobrir erros na funo, lgica ou implementao, para qual-
quer representao do sofware;
2. Verifcar se o sofware sob reviso satisfaz seus requisitos;
3. Garantir que o sofware tenha sido representado de acordo com
padres pr-defnidos;
4. Conseguir sofware que seja desenvolvido uniformemente;
5. Tornar os projetos mais administrveis.
Durante uma reviso tcnica, um revisor registra todos os tpicos le-
vantados. Ao fnal da reunio esses tpicos so resumidos e registrados
numa lista de tpicos de reviso. Alm disso, deve ser realizado um
relatrio resumido da reviso tcnica, que responda s questes abaixo:
1. O que foi revisado?
2. Quem fez a reviso?
3. Quais foram as descobertas e concluses?
A lista de questes de reviso serve para identifcar reas problemticas
no produto e servir como checklist de itens de ao, orientando o desen-
volvedor de sofware medida que as correes so efetuadas. Geral-
mente a reviso tcnica se incorpora ao registro histrico do projeto.
Checlists
Um checkist uma lista de itens que devem ser verifcados durante
uma reviso tcnica. Algumas vezes os itens so colocados como
questes que devem ser respondidas. A vantagem de uma checklist
focar a ateno do revisor nos problemas potenciais. Qualquer
falha encontrada deve ser analisada para verifcar se o item da lista
garante o foco no problema detectado. Itens de uma checklist que
no so efcientes em encontrar erros durante a inspeo devem
ser removidos, pois uma quantidade grande de itens na checklist
ir prejudicar a efcincia da inspeo.
Fonte: Gustafson, 2003.
9.3. Confiabilidade do Software
A qualidade, portanto, uma propriedade multidimensional que inclui,
alm da confabilidade de sofware, outros fatores de satisfao do clien-
te como funcionalidade, usabilidade, desempenho, habilidade de pres-
tao de servio, manutenibilidade e documentao.
Captulo 9
111
Engenharia de Software
Na verdade, a confabilidade um atributo de qualidade de suma im-
portncia para qualquer produto. Em relao a sofware, este atributo
geralmente defnido como a probabilidade do sofware operar sem
ocorrncia de falhas durante um perodo especifcado de tempo em um
determinado ambiente.
Segundo Gustafson (2003), a confabilidade de sofware a medida
de quo frequentemente o sofware encontra uma entrada de dados
ou outra condio que no processa corretamente para produzir a res-
posta certa. A ocorrncia de falhas do sofware no tem relao com o
seu uso demasiado.
Geralmente a confabilidade denominada por R(n), onde n um n-
mero de unidade de tempo como, por exemplo, dia, ms, ano etc. Se
a unidade de tempo dada em dias, R(1) signifca a probabilidade do
sofware no falhar em 1 dia. A probabilidade de falha em um perodo
de tempo especifcado (dada por f(n)) 1 menos a confabilidade para
o mesmo perodo de tempo, ou seja, F(n) = 1 R(n) (Gustafson, 2003).
9.4. Garantia Estatstica de Qualidade de
Software
Tambm chamada de Garantia da Qualidade Estatstica (SQA Statisti-
cal Quality Assurence), esse termo diz respeito ao uso da estatstica para
estimar a qualidade de sofware. Por exemplo, executar o cdigo com
um pequeno conjunto de casos de testes randmicos nos dar resulta-
dos que podem ser usados para estimar a qualidade (esse procedimento
algumas vezes chamado de prova de sofware). A mdia de erros na
amostra aleatria pode ser usada como uma estimativa para a mdia de
erros no projeto fnal. Se a porcentagem de execues corretas alta,
ento o desenvolvimento est indo bem. Caso contrrio, ou seja, se
baixa, ento possvel que seja necessria a tomada de algumas aes de
remediao para o processo de desenvolvimento (Gustafson, 2003).
A Garantia da Qualidade Estatstica, ou ainda, Garantia Estatstica
da Qualidade, refete uma tendncia crescente em toda a indstria em
tornar-se cada vez mais quantitativa a respeito da qualidade. Em rela-
o a sofware, a garantia estattica de qualidade implica os seguintes
passos (Pressman, 2006):
1. So coletadas informaes sobre defeitos de sofware, que de-
pois so categorizadas;
2. feita uma tentativa de rastrear cada defeito at a sua causa
subjacente (por exemplo, no conformidade com as especifca
Garantia de Qualidade de Software
112
Tecnologia em Anlise e Desenvolvimento de Sistemas
es, erro do projeto, violao de normas, pouca comunicao
com o cliente);
3. Usando o princpio de Pareto, que diz que 80% dos defeitos po-
dem ser rastreados at 20% de todas as causas possveis, isola-se
os 20% (os pouco vitais);
4. Depois de identifcadas as poucas causas vitais, devemos tentar
corrigir os problemas que causaram os defeitos.
O exemplo a seguir, extrado de Pressman (2006), ilustra o uso de mto-
dos estatsticos no trabalho de engenharia de sofware.
Exemplo: Considere que uma organizao de engenharia de sofware
coleta informao sobre defeitos durante um perodo de um ano. Alguns
dos defeitos so descobertos medida que o sofware desenvolvido.
Outros so encontrados depois que o sofware foi entregue a seus usu-
rios fnais. Apesar de centenas de diferentes erros serem descobertos,
todos podem ser rastreados at uma (ou mais) das seguintes causas:
Especifcaes incompletas ou errneas (Incomplete or Erroneous t
Specifcations IES);
M interpretao da comunicao com o cliente (Misinterpretation t
of Customer Communication MCC);
Desvio intencional das especifcaes (Intentional Deviation Speci- t
fcations IDS);
Violao das normas de programao (Violation of Programming t
Standards VPS);
Erro na representao dos dados (Error in Data Representation t
IDR);
Interface de componente inconsistente (Inconsistent Component t
Interface ICI);
Erro na lgica do projeto (Error em Design Logic EDL); t
Teste incompleto ou errneo (Incomplete or Erroneous Testing t
IET);
Documentao imprecisa ou inclompleta (Inaccurate or Incomplete t
Documentation IID);
Erro na traduo do projeto para a linguagem de programao (Er- t
ror in Programming Language Translation of Design PLT);
Captulo 9
113
Engenharia de Software
Interface homem-computador ambgua ou inconsistente (Ambi- t
guous or Inconsistent Human/Computer Interface HCI);
Miscelnia (MIScellaneous, MIS). t
Para aplicar SQA estatstica, a tabela da Figura 9.1 foi construda. A ta-
bela indica que IES, MCC e EDR so as poucas causas vitais que corres-
pondem a 53% de todos os erros. Deve-se notar, todavia, que IES, EDR,
PLT e EDL seriam selecionadas como as poucas causas vitais, se ape-
nas fossem considerados erros srios. Uma vez determinadas as pou-
cas causas vitais, a organizao de engenharia de sofware pode iniciar
ao corretiva. Por exemplo, para corrigir MCC, o desenvolvedor de
sofware poderia implementar tcnicas facilitadas de coleta de requi-
sitos para aperfeioar a qualidade das especifcaes e da comunicao
com o cliente. Para aperfeioar EDR, o desenvolvedor poderia adquirir
ferramentas para a modelagem de dados e realizar revises mais estritas
do projeto dos dados.
importante notar que a ao corretiva focaliza principalmente as pou-
cas causas vitais. medida que as poucas causas vitais so corrigidas,
novas candidatas despontam no topo da pilha.
Tem sido mostrado que as tcnicas de garantia estatstica de qualidade
de sofware propiciam aperfeioamentos substanciais qualidade. Em al-
guns casos, organizaes de sofware conseguiram uma reduo de 50%
dos defeitos por ano, depois de aplicar essas tcnicas.
A aplicao da SQA estatstica e do princpio de Pareto pode ser resu-
mida em uma nica sentena: gaste seu tempo focalizando as coisas que
realmente importam, mas primeiro esteja certo de que voc compreende o
que realmente importa!
Figura 9-1: coleta de dados para SQA estatstica
Fonte: Pressman, 2006
Garantia de Qualidade de Software
114
Tecnologia em Anlise e Desenvolvimento de Sistemas
9.5. Normas e Modelos de Qualidade de Proces-
so de Software
Conforme visto no captulo 4, os modelos de ciclo de vida consistem
em uma seqncia de diferentes atividades bsicas que so executa-
das durante o desenvolvimento de sofware. Os modelos de ciclo de
vida constituem um importante ponto de partida para a defnio de
processos. No entanto, eles no so sufcientes; afnal, um processo
de sofware um conjunto de processos, em que podemos destacar o
processo de desenvolvimento.
H outros processos, tais como o processo de gerncia de projetos e o
processo de garantia da qualidade. No entanto, para o sucesso na def-
nio e melhoria dos processos de sofware fundamental que vrios
aspectos sejam considerados. nesse momento que entram as Nor-
mas e Modelos de Qualidade de Processo. Tais normas e modelos tm
surgido exatamente com o objetivo de apoiar a busca por processos de
maior qualidade. Eles apontam os principais aspectos que um processo
de qualidade deve considerar.
Dentre as principais normas e modelos podemos citar as normas NBR
ISO 2001, NBR ISO 9000:2000, NBR ISO/IEC 12207, ISO/IEC 15504,
SGQTEC, ISO/IEC 9126 e os modelos CMMI e MPS-BR.
9.5.1 As Normas de Qualidade ISO 9000
Um sistema de garantia de qualidade pode ser defnido como a estrutura
organizacional, responsabilidades, procedimentos, processos e recursos
para implementar a gesto da qualidade. Tais sistemas so criados para
ajudar as organizaes a garantir que seus produtos e/ou servios satis-
faam as expectativas dos clientes, estando em conformidade com suas
especifcaes.
A ISO 9000 possui vrios modelos de sistemas de garantia de quali-
dade. Ela descreve os elementos de garantia de qualidade em termos
genricos, que podem ser aplicados a qualquer negcio, independente-
mente dos produtos ou servios oferecidos. Para o registro em um dos
modelos de sistema de garantia de qualidade contidos na ISO 9000, o
sistema e operaes de qualidade da empresa so analisados e avaliados
por auditores externos que verifcam o atendimento das normas e da
efetividade da operao. Aps o registro bem sucedido, a empresa rece-
be um certifcado de um corpo de registro representado pelos auditores
(Pressman, 2006).
Captulo 9
115
Engenharia de Software
ISO a sigla da Organizao Internacional de Normalizao (In-
ternational Organization for Standardization), que tem sede em
Genebra, Sua e que cuida da normalizao (ou normatizao)
em nvel mundial. A ISO cria normas nos mais diferentes seg-
mentos, variando de normas e especifcaes de produtos, ma-
trias-primas, em todas as reas. A ISO fcou popularizada pela
srie 9000, ou seja, as normas que tratam de Sistemas para Gesto
e Garantia da Qualidade nas empresas.
Em 1987, a ISO editou a srie 9000 com o objetivo de estabelecer
critrios para implantao de Sistemas de Garantia da Qualidade.
A primeira verso criou uma estrutura de trs normas sujeitas
certifcao, a ISO 9001, 9002 e 9003, alm da ISO 9000, que era
uma espcie de guia para seleo da norma mais adequada ao tipo
de organizao. Com trs anos de atraso, a ABNT emitiu a pri-
meira verso (traduo) da srie no Brasil. A mesma foi nomeada
srie NBR 19000. Em 1994, a srie foi revisada, porm sem gran-
des modifcaes, apenas com uma pequena ampliao e alguns
esclarecimentos em seus requisitos, mantendo a mesma estrutura,
ou seja, trs normas sujeitas certifcao; em paralelo, a ABNT
revisou as normas brasileiras, adotando o nome srie NBR ISO
9000, alinhando-se com o resto do mundo, que j adotava no-
menclatura similar para suas verses nacionais. Em Dezembro de
2000, a srie foi totalmente revisada; alm das alteraes em sua
estrutura, tendo apenas a ISO 9001 sujeita certifcao.
Fonte: http://www.comexito.com.br/ISO9001/sobre_a_ISO9001.doc
Acesso em: 07/03/2009.
A srie NBR ISO 9000:2000
As normas da famlia NBR 9000 foram desenvolvidas para apoiar or-
ganizaes de todos os tipos e tamanhos na implementao e operao
de sistemas efcazes de gesto da qualidade. As normas que compem a
srie ISO 9000:2000 so (Falbo, 2005):
NBR ISO 9000: t descreve os fundamentos de sistemas de gesto
da qualidade e estabelece a terminologia para esses sistemas;
NBR ISO 9001: t especifca os requisitos para um sistema de ges-
to da qualidade com enfoque na satisfao do cliente. Para uma or-
ganizao ser certifcada ISO 9001, ela precisa demonstrar sua capa-
cidade para fornecer produtos que atendam aos requisitos do cliente
(explcitos e implcitos) e os requisitos regulamentares aplicveis;
Garantia de Qualidade de Software
116
Tecnologia em Anlise e Desenvolvimento de Sistemas
NBR ISO 9004: t fornece diretrizes que consideram tanto a efc-
cia como a efcincia do sistema de gesto da qualidade. Seu objetivo
melhorar o desempenho da organizao e a satisfao dos clientes
e das demais partes interessadas;
NBR ISO 19011: t fornece diretrizes sobre auditoria de sistemas
de gesto da qualidade e ambiental.
A ISO 9000 de carter geral, ou seja, no se destina especi-
ficamente indstria de software e estabelece requisitos mni-
mos da garantia da qualidade que devem ser atendidos pelos
fornecedores de produtos ou servios. Ela uma norma certi-
ficadora. Essa certificao, mundialmente reconhecida, feita
por organismos certificadores, em geral, credenciados por or-
ganismos nacionais de acreditao, no caso do Brasil, o INME-
TRO. Assim, a conquista da certificao ISO 9000 por uma em-
presa significa que a mesma alcanou um padro internacional
de qualidade em seus processos.
O principal problema para se adotar essa norma precisamente o
fato de ela ser geral. Assim, quando aplicada ao contexto da inds-
tria de sofware, muitos problemas surgem pela falta de diretrizes
mais focadas nas caractersticas de processos de sofware. De ma-
neira geral, outras normas e modelos de qualidade so usadas por
organizaes de sofware para apoiar uma certifcao ISO 9000,
com destaque para a norma NBR ISO/IEC 12207.
Fonte: Falbo, 2005.
Atividades
Pesquise sobre as normas NBR ISO 2001, NBR ISO 9000:2000,
NBR ISO/IEC 12207, ISO/IEC 15504, SGQTEC, ISO/IEC 9126 e
os modelos CMMI e MPS-BR e discuta com seus colegas no f-
rum Normas e Modelos de Qualidade de Processo de Sofware.
Para saber mais sobre as Normas da Srie ISO 9000 visite o link:
http://allchemy.iq.usp.br/sedimentando/iso.htm
Acesso em 07/03/2009.
Captulo 9
117
Engenharia de Software
[1] FALBO, R.A., Notas de Aula: Engenharia de Sofware.
Disponvel em http://www.inf.ufes.br/~falbo, 2005.
[2] PRESSMAN, R.S., Engenharia de Sofware. So Paulo:
McGraw-Hill, 6 Edio, 2006.
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
___________________________________________________
Garantia de Qualidade de Software
118
Tecnologia em Anlise e Desenvolvimento de Sistemas
Captulo 9
119
Engenharia de Software
FALBO, Ricardo de Almeida. Notas de Aula: Engenharia de Sof-
tware. Disponvel em http://www.inf.ufes.br/~falbo, 2005.
GUSTAFSON, David A. Teoria a problemas de engenharia de
sofware. Porto alegre: Bookman, 2003. (Coleo Schaum).
PRESSMAN, Roger S. Engenharia de Sofware. 6 ed. So Paulo:
McGraw-Hill, 2006.
SOMMERVILLE, Ian. Engenharia de Sofware. 6 ed. So Paulo:
Pearson Addison Wesley, 2003.
PAULA FILHO, Wilson de Pdua. Engenharia de Sofware: fun-
damentos, mtodos e padres. 2 ed. Rio de Janeiro: LTC, 2003.
120
Tecnologia em Anlise e Desenvolvimento de Sistemas
121
Engenharia de Software
Projeto Loja Vitria
Documento de Especifcao de Anlise
1. Introduo
Este documento contm a especifcao de anlise para o projeto de
informatizao da Loja Vitria. Essa atividade foi desenvolvida em duas
etapas principais, a primeira focando a estrutura de informao do sis-
tema (classes, atributos e associaes), a segunda, seu comportamento
(operaes e trocas de mensagem entre objetos). Na seo 2, so apre-
sentados os produtos da primeira etapa, a saber: Diagrama de Pacotes e
Diagramas de Classes (um para cada pacote). Na seo 3, so apresen-
tados os produtos da segunda etapa: Diagramas de Transio de Esta-
dos (para as classes com comportamento varivel ao longo do tempo)
e Diagramas de Sequncia (agrupados por casos de uso), fechando o
conjunto de produtos gerados na fase de anlise.
2. Modelo de Classes
A modelagem de classes envolve a identifcao de classes, atributos,
relacionamentos e operaes, bem como o agrupamento de classes em
subsistemas ou pacotes. Uma vez que, muitas vezes, difcil identif-
car todos os atributos e, principalmente, todas as operaes atravs da
modelagem de classes, foram construdos modelos de comportamento,
apresentados na seo 3. importante ressaltar que os modelos apre-
sentados nesta seo, contudo, j espelham os resultados obtidos com a
modelagem do comportamento.
ANEXO A
122
Tecnologia em Anlise e Desenvolvimento de Sistemas
2.1 Diagrama de Pacotes
O propsito de um diagrama de pacotes prover uma viso de nvel
mais alto do sistema, mostrando sua decomposio em subsistemas. O
ponto de partida para essa decomposio o domnio do problema e,
portanto, a decomposio utilizada no modelo de casos de uso foi trans-
posta para o modelo de classes, como mostra a fgura A.1.
Figura A.1 Diagrama de Pacotes
O diagrama da fgura A.1 mostra a dependncia principal entre os subsis-
temas, indicando que o pacote ControleNotaFiscal solicita servios do
pacote ControleInterno para poder cumprir suas responsabilidades.
Na prxima seo, so apresentados os diagramas de classes para cada
um desses pacotes.
2.2 Diagramas de Classes
A fgura A.2 apresenta o Diagrama de Classes referente ao pacote
ControleInterno.
Figura A.2 Diagrama de Classes do Pacote ControleInterno.
No foram representadas no diagrama as operaes bsicas para criar e
destruir instncias de uma classe, para estabelecer e navegar associaes
e para obter e atribuir valores para atributos.
ANEXOS
123
Engenharia de Software
A fgura A.3 apresenta o Diagrama de Classes referente ao pacote Contro-
leNotaFiscal. As classes Produto, Cliente e Fornecedor, oriundas do pa-
cote ControleInterno, mostram a integrao entre esses subsistemas.
Figura A.3 Diagrama de Classes do Pacote ControleNotaFiscal.
Assim como para o Diagrama de Classes do pacote ControleInterno,
no foram representadas no diagrama as operaes bsicas.
3. Modelo Comportamental
A modelagem do comportamento dos objetos visa apoiar a identifca-
o de atributos e operaes de classes. Nesta seo, so apresentados os
Diagramas de Estados, os Diagramas de Sequncia e as descries das
operaes das classes.
3.1 Diagramas de Transio de Estados
3.1.1 Classe Cliente do Pacote ControleInterno
A fgura A.4 mostra o diagrama de estados da classe Cliente. Os even-
tos mostrados dizem respeito realizao dos casos de uso ou eventos
dos mesmos. Esse diagrama deu origem ao atributo estado da classe
ANEXO A
124
Tecnologia em Anlise e Desenvolvimento de Sistemas
Cliente, que indica o estado de um objeto dessa classe em um determi-
nado momento. Um cliente criado no estado Prospectado, indican-
do que ainda no realizou nenhuma compra. A partir do momento em
que so emitidas notas fscais para esse cliente, o evento Ativar Cliente
altera seu estado para Ativo, caso o total de compras seja inferior a R$
2.000,00; ou para Preferencial, caso o total seja superior a R$ 2.000,00.
Alm disso, se for desejado, o evento Desativar Cliente modifca o es-
tado de clientes ativos ou preferenciais para Inativo, sendo essa uma
operao reversvel.
Figura A.4 Diagrama de Estados da Classe Cliente do Pacote ControleInterno.
3.2 Diagramas de Seqncia
A seguir, so apresentados os Diagramas de Sequncia construdos nes-
te projeto. Apenas os cursos normais dos casos de uso / cenrios foram
considerados para a elaborao desses diagramas e, portanto, na ativi-
dade de Projeto Detalhado das Operaes (Projeto de Objetos) da fase
de Projeto, os cursos alternativos devem ser incorporados.
ANEXOS
125
Engenharia de Software
Caso de Uso Cadastrar Cliente / Evento Incluir Novo Cliente
Caso de Uso Cadastrar Cliente / Evento Ativar Cliente
ANEXO A
126
Tecnologia em Anlise e Desenvolvimento de Sistemas
Caso de Uso Cadastrar Cliente / Evento Excluir Cliente
Caso de Uso Controlar Nota Fiscal de Sada / Evento Emitir Nota Fiscal
ANEXOS
127
Engenharia de Software
Caso de Uso Emitir Relatrio / Evento Listar Notas Fiscais de Sada
ANEXO A
128
Tecnologia em Anlise e Desenvolvimento de Sistemas
ANEXOS
129
Engenharia de Software
Projeto Loja Vitria
Documento de Especifcao de Projeto
1. Introduo
Este documento contm a Especifcao de Projeto para o sistema da
Loja Vitria. Esta atividade foi desenvolvida em duas etapas principais,
a primeira focando na arquitetura do sistema, produzindo diagramas
de pacotes e os respectivos diagramas de classes para os componen-
tes identifcados, a segunda tratando do projeto detalhado das classes
identifcadas anteriormente (projeto de operaes e estruturas de dados
internas). A seo 2 discute a plataforma de implementao conside-
rada. Na seo 3, apresentada a arquitetura do sistema, na forma de
Diagramas de Pacotes. As sees 4, 5, e 6 apresentam os Diagramas de
Classes para cada um dos subsistemas identifcados, organizados por
esteretipos, quando necessrio. Para as Componentes de Gerncia de
Dados, so apresentados, ainda, os Diagramas Relacionais correspon-
dentes, tendo em vista o uso de bancos de dados relacionais para a per-
sistncia de objetos.
2. Plataforma de Implementao
O sistema proposto ser implementado usando a linguagem de pro-
gramao Java. Alm disso, a persistncia dos objetos ser feita em um
banco de dados relacional.
3. Arquitetura do Sistema
A organizao de classes em pacotes deve ser o ponto de partida para
a defnio da arquitetura do sistema, j que um meio de estabelecer
nveis de abstrao para o modelo. Esses nveis de abstrao podem ser
ANEXO B
130
Tecnologia em Anlise e Desenvolvimento de Sistemas
organizados em camadas e, assim, tratados separadamente durante a
fase de projeto. A organizao de classes em pacotes til tambm para
permitir a produo de componentes para reuso.
Neste trabalho, foram utilizadas duas formas complementares de agru-
pamento de classes em pacotes: primeiramente pelo domnio do proble-
ma, aproveitando os subsistemas defnidos na fase de anlise, e depois
por esteretipos, tendo sido utilizados os esteretipos propostos por
Coad e Yourdon [Coad93]. Sendo assim, o diagrama de pacotes de nvel
mais alto, mostrado na fgura B.1, praticamente o mesmo da fase de
anlise, exceto pela introduo do pacote Utilitario, que trata classes
reutilizveis em outros contextos.
O diagrama da fgura B.1 mostra as dependncias entre os subsistemas,
indicando que os pacotes ControleInterno e ControleNotaFiscal soli-
citam servios ao pacote Utilitario. Mantendo a coerncia com o dia-
grama da fase de anlise, o pacote ControleNotaFiscal solicita servios
do pacote ControleInterno.
Os pacotes ControleInterno e ControleNotaFiscal foram decompos-
tos em outros pacotes segundo os esteretipos, dando origem a novos
diagramas de pacotes, a serem discutidos nas prximas sees.
Figura B.1 Diagrama de Pacotes
4. O Pacote Controle Interno
Este pacote foi decomposto no diagrama de pacotes da fgura B.1, agora
tomando por base os esteretipos.
ANEXOS
131
Engenharia de Software
Figura B.2 Diagrama de Pacotes do Pacote Controle Interno
4.1. Pacote CDP do ControleInterno
A fgura B.3 apresenta o Diagrama de Classes referente Componente do
Domnio do Problema do pacote ControleInterno. O diagrama conside-
ra os tipos dos atributos e a navegabilidade existente entre as classes.
Figura B.3 Diagrama de Classes do Pacote CDP do ControleInterno
importante realar que as alteraes introduzidas em relao ao mo-
delo de anlise dizem respeito a requisitos no funcionais importantes
para o sistema, tais como:
ANEXO B
132
Tecnologia em Anlise e Desenvolvimento de Sistemas
Reusabilidade: t visando construir classes reutilizveis em
domnios diversos, optou-se por desenvolver uma hierar-
quia de Pessoa (pacote Utilitario.Pessoa). Essa hierarquia
foi utilizada como base de herana para as classes Fornece-
dor e Cliente. Como clientes podem ser pessoas fsicas ou ju-
rdicas (podendo estas ainda ser fornecedores), foi adotada
a herana por composio para garantir a Cliente o compor-
tamento desejado.
Facilidade de Uso: t como forma de separar parte da funciona-
lidade de Cliente, foi criada a classe EstadoCliente, respons-
vel pelos estados que um cliente pode assumir.
t
4.2. Pacote CGT do ControleInterno
A fgura B.4 apresenta o Diagrama de Classes referente Componente
de Gerncia de Tarefas do pacote ControleInterno.
Figura B.4 Diagrama de Classes do Pacote CGT do ControleInterno
No pacote ControleInterno foi criada apenas uma classe de aplicao,
responsvel pelos casos de uso Cadastrar Cliente, Cadastrar Fornecedor
e Cadastrar Produto. Essa classe est relacionada aplicao principal
do ambiente, criada no pacote ControleNotaFiscal.
ANEXOS
133
Engenharia de Software
4.3. Pacote CIH do ControleInterno
A fgura B.5 apresenta o Diagrama de Classes (parcial) referente Com-
ponente de Interao Humana do pacote ControleInterno.
Figura B.5 Diagrama de Classes do Pacote CIH do ControleInterno
4.4. Pacote CGD do ControleInterno
Como a persistncia dos objetos ser realizada em um BD relacional,
interessante procurar minimizar os impactos da tecnologia de BDs
sobre o sistema. Optou-se, portanto, por trabalhar com classes-sombra
responsveis pela interao direta com o BD relacional e, consequen-
temente, com conhecimento de JDBC e SQL. Para tal, foi utilizada a
camada de persistncia apresentada na seo 6.4. Nessa infra-estrutura,
para cada classe a ser persistida que possua uma tabela correspondente
no BD deve ser criada uma classe-sombra, responsvel pela interao
com a base de dados relacional, como mostra a fgura B.6.
Figura B.6 Diagrama de Classes do Pacote CGD do ControleInterno
ANEXO B
134
Tecnologia em Anlise e Desenvolvimento de Sistemas
Uma caracterstica marcante dessa abordagem a necessidade de se es-
tabelecer identifcadores nicos para os objetos (IDOs) a serem persis-
tidos. Usando a camada de persistncia, todas as classes cujos objetos
tm de ser persistentes passam a herdar de ClasseBasePersistencia, que
responsvel pelos IDOs.
Alm disso, foi necessrio construir um Diagrama Relacional, mape-
ando as classes e objetos em tabelas e linhas. O Diagrama Relacional
referente ao pacote ControleInterno apresentado na fgura B.7.
Figura B.7 Diagrama Relacional do Pacote CGD do ControleInterno
No pacote ControleInterno, para cada classe persistente foi criada uma
tabela correspondente. As tabelas Pessoa e Telefone tm origem no pa-
cote Utilitario e a tabela Fornecimento surgiu do relacionamento N x N
existente entre Produto e Fornecedor.
5. O Pacote Controle Nota Fiscal
Este pacote foi decomposto no diagrama de pacotes da fgura B.8, agora
tomando por base os esteretipos.
ANEXOS
135
Engenharia de Software
Figura B.8 Diagrama de Pacotes do Pacote Controle Nota Fiscal
5.1. Pacote CDP do ControleNotaFiscal
A fgura B.9 apresenta o Diagrama de Classes referente Componente do
Domnio do Problema do pacote ControleNotaFiscal. O diagrama con-
sidera os tipos dos atributos e a navegabilidade existente entre as classes.
Figura B.9 Diagrama de Classes do Pacote CDP do ControleNotaFiscal
importante realar que as alteraes introduzidas em relao ao mo-
delo de anlise dizem respeito a requisitos no funcionais importantes
para o sistema, tais como o desempenho. Neste exemplo, como forma
de evitar a soma dos valores de todos os itens de uma nota fscal para
que se saiba o seu valor total, foi introduzido o atributo valor na classe
NotaFiscalSada, para armazenar esse dado, evitando operaes desne-
cessrias. 5.2. Pacote CGT do ControleNotaFiscal
ANEXO B
136
Tecnologia em Anlise e Desenvolvimento de Sistemas
A fgura B.10 apresenta o Diagrama de Classes referente Componente
de Gerncia de Tarefas do pacote ControleNotaFiscal.
Figura B.10 Diagrama de Classes do Pacote CGT do ControleNotaFiscal
No pacote ControleNotaFiscal foram criadas as seguintes classes de aplicao:
- AplControlarNotaFiscal: que agrupa as funcionalidades des-
critas nos casos de uso Registrar Nota Fiscal e Emitir Nota Fiscal;
- AplEmitirRelatorio: responsvel pela criao de relatrios (caso
de uso Emitir Relatrio);
- AplPrincipal: que a aplicao principal do sistema, respons-
vel por gerenciar as outras aplicaes.
5.3. Pacote CIH do ControleNotaFiscal
A fgura B.11 apresenta o Diagrama de Classes (parcial) referente
Componente de Interao Humana do pacote ControleNotaFiscal.
Figura B.11 Diagrama de Classes do Pacote CIH do ControleNotaFiscal
ANEXOS
137
Engenharia de Software
A classe JanPrincipal janela de abertura do sistema e contm os menus de
acesso s funcionalidades, a classe JanRelatorio possui uma srie de subclas-
ses responsveis pela exibio dos relatrios especfcos, e a classe JanFiltro
funciona como auxiliar para seleo de dados na emisso de relatrios.
5.4. Pacote CGD do ControleNotaFiscal
Conforme discutido na seo 4.4, a persistncia dos objetos ser realiza-
da atravs da camada de persistncia e de classes-sombra. Vale lembrar
que, para cada classe a ser persistida que possua uma tabela correspon-
dente no BD, deve ser criada uma classe-sombra, responsvel pela inte-
rao com o BD, como mostra a fgura B.12.
Figura B.12 Diagrama de Classes do Pacote CGD do ControleNotaFiscal
Alm das classes sombra, e necessrio construir um Diagrama Relacional,
mapeando as classes e objetos em tabelas e linhas. O Diagrama Relacional
referente ao pacote ControleNotaFiscal apresentado na fgura B.13.
Figura B.13 Diagrama Relacional do Pacote CGD do ControleNotaFiscal
ANEXO B
138
Tecnologia em Anlise e Desenvolvimento de Sistemas
No pacote ControleNotaFiscal, para cada classe persistente foi criada
uma tabela correspondente. Para a hierarquia de notas fscais foi ado-
tada a abordagem de criao de uma tabela por classe, dando origem
s tabelas NotaFiscal, NotaFiscalEntrada e NotaFiscalSada. Vale realar
que, quando h relacionamento entre tabelas originado de herana entre
classes, os IDOs dos registros na hierarquia devem ser idnticos, dado
que um objeto deve possuir um nico identifcador. As tabelas Cliente,
Fornecedor e Produto tm origem no pacote ControleInterno.
6. O Pacote Utilitrio
Este pacote contm vrios pacotes de utilitrios, que podem ser teis
em diversos sistemas. Nesta seo so apresentados somente os pacotes
utilizados neste sistema.
6.1 Pacote Pessoa
Este pacote contm classes para tratar aspectos gerais de pessoas fsicas
e jurdicas, comuns a vrios sistemas, como mostra a fgura B.14a.
A fgura B.14b exibe as classes-sombra deste pacote. H apenas uma clas-
se-sombra responsvel pela hierarquia de pessoa, dado ao fato da utiliza-
o da abordagem de criao de uma nica tabela para toda a hierarquia.
Figura B.14a - Diagrama de Classes do Pacote Utilitario.Pessoal
ANEXOS
139
Engenharia de Software
Figura B.14b - Diagrama de Classes-Sombra do Pacote Utilitario.Pessoal
6.2. Pacote Geral
Este pacote possui classes de cunho geral para o sistema, assim como
para manipulao de listas, iteradores, comparadores, datas etc. A fgura
B.15 mostra a classe Data utilizada neste sistema.
Figura B.15 Classe Data
6.3. Pacote InterfaceUsuario
Este pacote contm classes para tratar de aspectos gerais de interfaces
grfcas, comuns a vrios sistemas, como mostra a fgura B.16.
Figura B.16 Diagrama de Classes Pacote Utilitario.
InterfaceUsuario
ANEXO B
140
Tecnologia em Anlise e Desenvolvimento de Sistemas
PainelCadastroTabela: t classe abstrata que representa o painel
de cadastro utilizado em situaes em que necessrio o ca-
dastro de objeto.
JanDados: t janela abstrata utilizada como receptora dos dados
de objetos durante um cadastro.
PainelSelecao: t classe que possui duas listas de objetos, das quais
podem ser selecionados e transferidos de uma lista para outra.
JanRelatorio: t janela abstrata utilizada tipicamente para exibi-
o de listagens.
6.4. Pacote Persistncia
Este pacote contm a camada de persistncia, responsvel por tratar
aspectos gerais de gerncia de dados, comuns a vrios sistemas, como
mostra a fgura B.17.
Figura B.17 Diagrama de Classes da Camada de Persistncia
ClasseBasePersistencia a classe abstrata da qual todas as classes a se-
rem persistidas, tipicamente da CDP, devem herdar. Ela possui um rela-
cionamento com FabricaIDOs, de que obtm os novos identifcadores, e
o atributo IDO que se mantm encapsulado e isolado das subclasses do
domnio. As operaes de persistncia de objetos apresentam-se genera-
lizadas e utilizam as classes-sombra para obter, salvar ou excluir objetos.
A classe abstrata ClasseBaseSombra a superclasse de todas as classes-
sombra. Essa classe possui diversas operaes de persistncia, possibi-
litando que as classes-sombra sejam o mais simples possvel. A classe
associa-se com a Conexao utilizada para acessar o banco; um Registro,
que guarda informaes a respeito de objetos e das tabelas nas quais
so persistidos, e com o Bufer, que armazena objetos para melhorar o
desempenho das aplicaes.
ANEXOS