Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
sobre e
dor (UNIFACS) onde atualmente cursa o mestrado em Sistemas e Computação na Dê seu voto sobre este artigo, através do link:
linha de Engenharia de Software, sendo membro do GESA (Grupo de Engenharia
s
ta
e
de Software e Aplicações). www.devmedia.com.br/esmag/feedback d i çã o
Caro Leitor,
Para esta edição, temos um conjunto de 7 vídeo aulas. Estas vídeo Software Magazine e certamente trarão uma significativa contribuição
aulas estão disponíveis para download no Portal da Engenharia de para seu aprendizado. A lista de aulas publicadas pode ser vista abaixo:
01 – Planejamento 04 – Projeto
Título: Análise de Pontos de Função Título: Introdução à Construção de Diagrama de Classes da UML – Parte 8
Autor: Marco Antônio Pereira Araújo Autor: Rodrigo Oliveira Spínola
Mini-Resumo: Medições em software são boas ferramentas para a redução de riscos nas Mini-Resumo: Esta vídeo aula dá continuidade à elaboração do diagrama de classes para
estimativas para construção de sistemas. Esta vídeo-aula apresenta a técnica de Análise o sistema de locadora de veículos. Em particular, são elaboradas as classes identificadas
de Pontos de Função com o objetivo de dimensionar o tamanho de aplicações a serem no diagrama de classes.
construídas ou mantidas, auxiliando no processo de estimativa de desenvolvimento. 05 – Projeto
Título: Introdução à Construção de Diagrama de Classes da UML – Parte 9
02 – Projeto
Autor: Rodrigo Oliveira Spínola
Título: Controle de versões com Subclipse
Mini-Resumo: Esta vídeo aula dá continuidade à elaboração do diagrama de classes para
Autor: Marco Antônio Pereira Araújo
o sistema de locadora de veículos. Em particular, os atributos identificados são atribuídos
Mini-Resumo: A utilização de sistemas de controle de versão é uma boa prática no
às suas respectivas classes e acrescentados ao diagrama de classes.
gerenciamento de projetos de software, principalmente em seu processo de manutenção.
Esta vídeo-aula apresenta a ferramenta SubVersion (SVN) para gerenciamento de versões 06 – Projeto
através do plug-in Subclipse, para a IDE Eclipse. Título: Introdução à Construção de Diagrama de Classes da UML – Parte 10
Autor: Rodrigo Oliveira Spínola
03 – Projeto Mini-Resumo: Esta vídeo aula dá continuidade à elaboração do diagrama de classes para
Título: Persistência de Objetos com o SGBDOO Jade o sistema de locadora de veículos. Em particular, são identificadas as operações que deverão
Autor: Marco Antônio Pereira Araújo estar contempladas no diagrama de classes.
Mini-Resumo: A persistência é sempre um fator de discussão quando se trata de desen-
07 – Projeto
volvimento orientado a objetos. Dentre as diversas alternativas, sistemas de gerenciamento
Título: Introdução à Construção de Diagrama de Classes da UML – Parte 11
de bancos de dados orientados a objetos podem ser uma alternativa mais natural para este
Autor: Rodrigo Oliveira Spínola
processo. Esta vídeo-aula apresenta o Jade, um SGBDOO para persistência de objetos, com
Mini-Resumo: Esta vídeo aula dá continuidade à elaboração do diagrama de classes para
o objetivo de demonstrar este tipo de persistência. o sistema de locadora de veículos. Em particular, as operações identificadas na aula anterior
são atribuídas às suas respectivas classes e são acrescentadas ao diagrama de classes.
Atendimento ao Leitor
A DevMedia conta com um departamento exclusivo para o atendi-
ÍNDICE
mento ao leitor. Se você tiver algum problema no recebimento do
seu exemplar ou precisar de algum esclarecimento sobre assinaturas, 8 – Planejamento Ágil de Projetos
exemplares anteriores, endereço de bancas de jornal, entre outros, Dairton Bassi
entre em contato com:
Carmelita Mulin – Atendimento ao Leitor 14 – Desenvolvimento de Software Centrado em Arquitetura
www.devmedia.com.br/central/default.asp
(21) 2220-5375 Vinicius Lourenço de Sousa
Kaline Dolabella
Gerente de Marketing e Atendimento 20 – Conceitos de orientação a objetos e UML
kalined@terra.com.br
(21) 2220-5375 Ana Cristina Melo
26 – Confiabilidade de Software
Publicidade Antonio Mendes da Silva Filho
Para informações sobre veiculação de anúncio na revista ou no site entre
em contato com: 32 – Maturidade em Gerenciamento de Projetos
Kaline Dolabella
Luciana Leal ; Cristine Gusmão; Hermano Perrelli
publicidade@devmedia.com.br
38 – Avaliação Independente de Garantia da Qualidade
Fale com o Editor! É muito importante para a equipe saber o que você está Isabel Albertuni; Josiane Brietzke Porto
achando da revista: que tipo de artigo você gostaria de ler, que artigo você
mais gostou e qual artigo você menos gostou. Fique a vontade para entrar 44 – Testes de Mutação com o plug-in MuClipse
em contato com os editores e dar a sua sugestão!
Se você estiver interessado em publicar um artigo na revista ou no site SQL Ma- Victor Vidigal Ribeiro; Marco Antônio Pereira Araújo
gazine, entre em contato com os editores, informando o título e mini-resumo
do tema que você gostaria de publicar: 52 – Testes Automatizados de Software em Web Services
Rodrigo Oliveira Spínola - Colaborador Marcelo Santos Daibert; Jenifer Vieira Toledo; Marco Antônio Pereira Araújo
editor@sqlmagazine.com.br
Planejamento Ágil de Projetos
N
os últimos anos, o uso de méto- seguida, mostraremos como os planos
dos ágeis tem chamado a atenção são tratados por Metodologias Ágeis de
da indústria de software em todo desenvolvimento de software.
o mundo. Essas metodologias têm ganha-
do destaque e gerado muita discussão na Para que serve:
comunidade de Engenharia de Software. O planejamento e o desenvolvimento
Graças a isso, muitas empresas estão se de um software sob o paradigma ágil
interessando em entender como os mé- oferecem mais flexibilidade do que os
todos ágeis funcionam e se eles poderão modelos tradicionais para a condução
ajudá-las a resolver seus problemas com de projetos de software que possuem
desenvolvimento de software ou mesmo incerteza ou instabilidade.
melhorar a sua produtividade.
Em que situação o tema útil:
Esta é a primeira parte de uma série sobre
Além de ser um modelo que permite
planejamento e gestão ágil de projetos. Ao
a criação de planos flexíveis, as técnicas
longo da série repensaremos alguns dos
conceitos largamente usados pela indús- ágeis evitam desperdícios de tempo e
tria de software e apresentaremos soluções esforços, pois focam em alcançar rapida-
Dairton Bassi baseadas em métodos ágeis que visam a mente meios de validar as características
dbassi@gmail.com melhorar o desempenho das equipes e do produto em desenvolvimento e de
Mestre em Engenharia de Software com foco em avaliar a evolução do projeto.
simplificar o gerenciamento do projeto.
Métodos Ágeis pelo IME-USP. Bacharel em Ciência
da Computação pelo IME-USP. Membro-fundador Neste artigo, veremos os impactos
da AgilCoop e criador do Encontro Ágil (www.en- causados por estratégias e processos
controagil.com.br). Especialista em implantação inadequados para o desenvolvimento de Planos, Processos e Fracassos
de metodologias ágeis. Ministra cursos e palestras software e como as metodologias ágeis Tradicionalmente, durante o planeja-
sobre métodos ágeis. Atuou como programador, tratam o planejamento e os requisitos de mento de desenvolvimento de software,
líder de desenvolvimento e consultor em diversas
instituições do setor público e privado. um projeto de software. são definidos prazos, custos, recursos
s
vedores, os próprios desenvolvedores um método ágil exige uma mudança de
Dê
tem que ser feita ao seu gosto.
sobre e
podem planejar a implementação de uma paradigma, e, portanto, de valores que
Para isso, precisamos saber o que você,
iteração considerando as questões técnicas a equipe e a empresa precisam estar dis-
s
ta
leitor, acha da revista! edição
Referências
[1] Albert L. Lederer and Jayesh Prasad. Nine management guidelines for better cost estimating. Commun. ACM, 35(2):51–59, 1992.
[2] Standish Group. The CHAOS Report, 1994. http://www.standishgroup.com/sample\_research/chaos\_1994\_1.php.
[3] Jim Johnson. ROI, it‘s your job. In Keynote Speech at 3rd International Conference on eXtreme Programming and Agile Processes in Software Engineering (XP’2002), May 2002.
[4] PMI Chapters Brasileiros. Estudo de benchmarking em gerenciamento de projetos brasil. Technical report, www.pmi.org.br, 2007.
[5] W. W. Royce. Managing the development of large software systems: concepts and techniques. In ICSE ’87: Proceedings of the 9th international conference on Software Engineering, pages 328–338, Los
Alamitos, CA, USA, 1987. IEEE Computer Society Press.
[6] Barry Boehm. A spiral model of software development and enhancement. ACM SIGSOFT Software Engineering Notes, 11(4):14–24, 1986.
[7] Manifesto for Agile Software Development, 2001, http://www.agilemanifesto.org.
[8] Dairton Bassi. Experiências com desenvolvimento Ágil. Master’s thesis,
Instituto de Matemática e Estatística da Universidade de São Paulo -
IME/USP, 2008.
[9] Mike Cohn. Agile Estimating and Planning. Prentice Hall, 2006.
A
tualmente, o cenário de desenvol-
vimento de software tem se mos- demonstrar a compreensão e a organi-
trado em uma tentativa fervorosa zação do software para os envolvidos
de aproximar a parte tecnológica da parte do projeto.
de negócio. Isto se deve à grande deman- Para que serve:
da dos sistemas estarem cada vez mais Fornecer um meio de tornar partes do
integrados e serem flexíveis às mudanças software reutilizável, flexíveis a ponto
no negócio das empresas em geral. Cada de responder as mudanças do software
vez mais ouvimos falar sobre sistemas rapidamente e encapsular as dependên-
construídos sob a ótica de disponibilizar cias do sistema. Também serve como
serviços corporativos e controlar o pro- forma de comunicação entre os envol-
cesso de negócio. Estou falando de SOA vidos do projeto, sejam eles gerentes,
Vinicius Lourenço de Sousa
(Arquitetura Orientada a Serviços) e BPM desenvolvedores ou clientes.
vinicius.lourenco.sousa@gmail.com
Atua no ramo de desenvolvimento de software (Gerenciamento de Processo de Negócio). Em que situação o tema é útil:
há mais de 10 anos, é autor de diversos artigos Estas duas siglas se tornaram obrigatórias Útil para o desenvolvimento de
publicados pelas revistas ClubeDelphi e SQL Ma-
no vocabulário de equipes de desenvolvi- software quando está se pensando em
gazine. É Graduado em Tecnologia da Informação
pela ABEU Faculdades Integradas e Pós-Graduado mento, gerentes de projetos e analistas de reuso, flexibilidade, escalabilidade e
em Análise, Projeto e Gerência de Sistemas pela áreas de negócio dos mais variados tipos quando queremos comunicar como está
PUC-RJ, IBM Certified: Especialista Rational de segmentos de mercado. a organização do software em termos de
Unified Process e instrutor de UML, Análise OO e
Com o uso de SOA e BPM, o desenvol- camadas, classes, componentes e etc.
Java. Atualmente trabalha na CPM Braxis como
Especialista nas áreas de arquitetura, especificação vimento de software não só alcançou um
de requisitos, levantamento e modelagem de novo nível como também teve que adotar mas legados para serem integrados com
processo de negócio e projetista de software novas estratégias para a construção do os novos sistemas e de reuso de regras de
em soluções com componentes de negócio, SOA
software. Dessa forma, foi possível obter negócios através dos componentes e servi-
e BPM. Mantém seu blog pessoal em http://
viniciuslourenco.wordpress.com. o máximo de reaproveitamento de siste- ços de negócios. Enfim, os sistemas estão
ficando cada vez mais aderentes ao negó- Arquitetura de Software podemos ter uma base corporativa onde
cio e respondendo de forma mais rápida Responsável pela integração entre a par- todos os projetos podem utilizar dessa
às mudanças exigidas pelo mercado. te de negócio e a parte tecnológica. É a re- arquitetura, ou seja, as complexidades
Entretanto, para se alcançar um nível de presentação das estruturas do sistema, na de TI estarão todas transparentes para os
desenvolvimento desse tipo, com reuso qual consistem componentes de software, clientes dessa arquitetura.
ao extremo e bastante flexibilidade, é as propriedades visíveis externamente • Melhorar a extensibilidade do sistema
preciso que a equipe de desenvolvimento desses componentes e o relacionamento Um sistema centrado em arquitetura tem
crie uma arquitetura adequada que possa entre eles. O perfil Arquiteto de Software como grande característica a capacidade
exatamente servir como pilar para o reuso tem como foco entender o modelo de de adicionar novos componentes e com
e flexibilidade às mudanças, ou seja, o negócio e transformá-lo em projeto de isso crescer de forma fácil e rápida sem
desenvolvimento deve ser centrado em software, isto é, pensar em integração das perder a coesão e o baixo acoplamento,
arquitetura. Neste artigo apresentaremos camadas, integração entre sistemas, reuso, mantendo a complexidade do sistema
as características do desenvolvimento componentização, procurando minimizar controlada.
de software centrado em arquitetura, os riscos tecnológicos. Em muitos casos, o • Encapsula as dependências do sis-
como suas práticas, benefícios e visões Arquiteto de Software e o Arquiteto de Siste- tema
arquiteturais de uma maneira ampla, sem mas podem ser a mesma pessoa. Encapsulando suas dependências, o
aprofundar muito na parte técnica. sistema torna-se muito menos acoplado,
Arquitetura de Negócio
Totalmente voltada para a parte de mais coeso e com isso com maior grau
O que é Desenvolvimento Centrado de reuso. Em resumo, o sistema terá uma
negócio da empresa. O perfil Arquiteto
em Arquitetura? de negócio tem como foco as seguintes compreensão bem melhor e em caso de
Um desenvolvimento de software cen- manutenção também será de extrema fa-
atividades:
trado em arquitetura não diz respeito cilidade as alterações sem os impactos que
• Avaliar a situação da organização onde
apenas ao código fonte da aplicação ou poderiam ocorrer com tudo acoplado.
os sistemas serão entregues;
qual linguagem de programação será uti-
• Entender os requisitos dos usuários,
lizada. Podemos dizer que a arquitetura Arquitetura em Camadas
suas estratégias e seus objetivos de ne-
é o “universo” em que o ciclo de vida do Uma das grandes características de uma
software vive, ou seja, em um desenvolvi- gócio;
boa arquitetura no desenvolvimento de
mento centrado em arquitetura teremos o • Facilitar a modelagem do processo de
software é a divisão da aplicação em
código que é o artefato mais primário, a negócio da organização; camadas. A divisão em camadas pode
divisão entre as camadas arquiteturais, a • Entender o lado técnico do conjunto proporcionar ao software um alto grau de
divisão entre os componentes de negócio, de soluções. escalabilidade, flexibilidade, alta coesão,
regras de integração entre as camadas, Em muitos casos o Arquiteto de Negócio e baixo acoplamento e com isso teremos
componentes e entre os sistemas (novos e o Analista de Negócio (ler Nota 1) podem reuso dos componentes do software. Na
legados). É importante ter em mente que ser a mesma pessoa. arquitetura das aplicações existem dois
a arquitetura de um sistema não serve tipos de camadas:
apenas para a codificação, mas também
Benefícios do Desenvolvimento Camada Física (Tier)
para o direcionamento de todo o desenvol- Centrado em Arquitetura Este tipo de camada é representado pela
vimento do software. Tanto que existem Abaixo veremos alguns benefícios que
parte física ou estrutural dos componentes
temos com o uso dessa abordagem:
tipos de arquitetura e perfis de arquitetos de infra-estrutura da arquitetura que vão
• É uma efetiva base para reuso em
diferenciados para cada foco e momento desde o hardware, o sistema operacional,
larga escala
do projeto, como apresentado abaixo. os serviços, até os servidores, isto é, são
Com uma arquitetura bem robusta,
Arquitetura de Sistemas os nós de processamento distribuídos no
estável e com interfaces bem definidas,
Responsável pela parte tecnológica. É a parque de TI da corporação. Ao longo dos
representação de um sistema na qual existe anos foram utilizadas diversas arquiteturas
um mapeamento de funcionalidades sobre da camada física, onde o intuito era criar
componentes de software e hardware, um Nota 1. Analista de negócio uma infra-estrutura capaz de suportar
mapeamento sobre arquitetura de hardwa- toda a complexidade (regras de negócio,
re e software, e interações humanas com O Analista de Negócio lidera e coordena o esforço componentes distribuídos, plataformas
esses componentes. Nesta arquitetura, o de modelagem de negócio da empresa do cliente. heterogêneas e etc.) que os sistemas tinham.
perfil Arquiteto de Sistemas além de conhecer Ele deve ser um facilitador e ter uma excelente Veja abaixo os tipos de arquiteturas com
profundamente a linguagem de programa- habilidade de comunicação, conhecimento do do- camadas físicas existentes:
ção, tem como foco a integração entre os mínio do negócio e estar preparado para avaliar a 2 Camadas
frameworks que o sistema utiliza, sejam situação da organização alvo onde o sistema será Arquitetura de 2 Camadas (também co-
eles já existentes no mercado ou criado pela entregue; entender os clientes e seus requisitos, nhecida como Cliente/Servidor) foi muito
própria equipe de desenvolvimento, e a suas estratégias e seus objetivos; e executar a análise utilizada, onde tínhamos o sistema sendo
utilização de qualquer solução tecnológica, de custo/benefício para cada mudança sugerida na executado no lado cliente com o executá-
como por exemplo: EJB, JPA, JAAS, Struts, organização alvo. vel da aplicação e regras de negócio e no
Spring, Corba e etc. lado servidor ficava o banco de dados que
Visões Arquiteturais
Quando desenvolvemos software pen-
sando em arquitetura devemos sempre
Figura 6. Envio de dados para plataformas diferentes. estar atentos para as visões que nossa ar-
quitetura oferece para que o sistema possa
camada de Apresentação envia e recebe Domínio
ser compreendido com maior exatidão.
dados da camada de Aplicação. Esta camada é responsável por conter in-
Uma visão arquitetural é uma janela para
Aplicação formações sobre o domínio do negócio do
o sistema em uma perspectiva particular
Esta camada é responsável por disponi- sistema, o estado dos objetos de negócio e que serve como comunicação entre os en-
bilizar os dados para a camada de Apre- suas regras, ou seja, o coração do negócio volvidos no sistema e é expressa em texto
sentação e enviar os dados para a camada do software. Nesta camada é onde criamos e diagramas UML. As visões arquiteturais
de Domínio. A camada de Aplicação tam- nossos componentes de negócios através são muito utilizadas no processo unificado
bém pode fazer alguns tratamentos nos de decomposição funcional para encapsu- de desenvolvimento de software, mais
dados caso seja necessário. Podemos citar lar todas as regras de negócio. especificamente pelo Rational Unified
dois exemplos importantes da camada de
Aplicação:
1. Efetuar a transformação dos dados
recebidos da camada de Apresentação que
em aplicações distribuídas vem na forma
de estruturas “desorganizadas” (os cha-
mados Transfer Objects) para os objetos
de domínio que representam o negócio
da aplicação. Veja a Figura 5.
2. Em aplicações onde os dados devem
ser disponibilizados em plataformas hete-
rogêneas ao mesmo tempo, como na Web e
no Celular. Sabemos que nos dispositivos
móveis existe uma limitação de dados que
podem ser trafegados, portanto, a camada
de Aplicação tem como objetivo filtrar a
quantidade de dados enviados por causa
do limite de tráfego que a plataforma
suporta. Veja a Figura 6. Figura 7. Visões arquiteturais do Rational Unified Process.
s
envolvidos no projeto para entendermos
Dê
é aplicada, tais como autenticação HTTP, tem que ser feita ao seu gosto.
sobre e
o software sem ambigüidades. O desen-
autenticação de banco de dados, autenti- Para isso, precisamos saber o que você,
volvimento de software centrado em ar-
s
ta
leitor, acha da revista! edição
cação de usuários e outros. quitetura tem muito mais a ser discutido,
Visão de Implementação porém isso ficará para outros artigos Dê seu voto sobre este artigo, através do link:
É responsável pelo modelo de imple- www.devmedia.com.br/esmag/feedback
mentação que diferente dos outros mode-
los que possuem diagramas e/ou textos, é
o próprio código fonte e seus executáveis.
Neste modelo todo o sistema é organizado
para identificarmos sua estrutura, por
exemplo: pacotes java, componentes, ar-
quivos JAR e EAR e etc. (Figura 11).
Na Figura 11 vemos os componentes que
são acionados quando um Caixa Eletrôni-
co, que também é um componente, é utili-
zado. Temos o componente que valida se
o cartão do banco é válido, temos o leitor
de cartões que irá ler os dados de agência,
conta e dados pessoais do cliente a partir
do próprio cartão e temos o componente
que é o dispensador de dinheiro para
quando o cliente for efetuar um saque.
Visão de Desenvolvimento
É responsável por resumir informações Figura 10. Visão de Deployment.
aos desenvolvedores para que eles possam
conhecer as configurações do ambiente
de desenvolvimento. Por exemplo, como
todos os arquivos estão organizados em
termos de diretórios e por quê? Como
efetuar um build e executar os testes au-
tomatizados e qual o controle de versão
utilizado.
Visão de Caso de Uso
Além de dirigir quase todas as demais
visões, essa visão é responsável por ma-
pear todos os casos de uso arquitetural-
mente significantes e seus requisitos não
funcionais.
Conclusão
Neste artigo foi apresentada a grande
importância da arquitetura no desen-
volvimento de software e como ela pode
Figura 11. Diagrama de Componentes da Visão de Implementação.
E
ste artigo inicia mostrando como
evoluímos até o paradigma atual apresentados os conceitos da orientação
da orientação a objetos. Em segui- a objetos, sua aplicabilidade em diversas
da, conceituaremos a base da orientação a fases do desenvolvimento de sistemas,
objetos, com sua demonstração por meio e conclui com a apresentação da UML
de exemplos. Será apresentada uma visão como modelo utilizado para desenvol-
vimento de sistemas OO.
geral da aplicabilidade em diversas fases
do desenvolvimento de sistemas: levanta- Para que serve:
mento, análise, projeto de banco de dados Fornecer aos desenvolvedores ou
e implementação. E por fim, evidenciare- estudantes da área de sistemas a base
mos a proposta da UML como linguagem necessária ao contexto de desenvolvi-
de modelagem, com a apresentação dos mento atual – o paradigma de orientação
diagramas da versão atual. a objetos.
Em que situação o tema é útil:
O começo de tudo Atualmente há uma disseminação
A história da computação teve início de sistemas desenvolvidos sob o pa-
na necessidade do homem em conseguir radigma orientado a objetos, sem que
Ana Cristina Melo realizar cálculos. O caminho foi longo, alguns desenvolvedores tenham uma
informatica@anacristinamelo.com.br iniciado com o ábaco, muitos anos antes da completa visão da importância de toda
É especialista em Análise de Sistemas e professora a base de conceitos OO e da modelagem
era cristã. A primeira máquina de calcular
de graduação e pós-graduação da Universidade
que apenas somava e subtraía vem surgir em UML.
Estácio de Sá. Atua em análise e programação há
21 anos. Autora do livro ”Desenvolvendo aplica- apenas em 1642, desenvolvida por Blaise
ções com UML – do conceitual à implementação”, Pascal. Em 1694, Gottfried Von Leibniz 1822, o matemático inglês Charles Babbage
na segunda edição, e “Exercitando modelagem em
constrói a primeira calculadora que podia estabelecia os princípios do funcionamento
UML”. Palestrante em alguns eventos, entre eles,
Congresso Fenasoft, OD e Sepai. executar as quatro operações básicas, e em dos computadores eletrônicos no projeto
de sua máquina diferencial, capaz de rea- que esse paradigma ainda não era a solução diga OO. Sendo assim, se um desses
lizar os cálculos necessários para elaborar para a velha crise de software. conceitos não for atendido, não podemos
uma tabela de logaritmos. A partir daí, Naturalmente, logo se pensa que a afirmar que determinada tecnologia
outras invenções abriram caminhos para o orientação a objetos surgiu após a análise possa ser nomeada como orientada a
que temos hoje. O marco inicial se dá com o estruturada, como uma evolução dessa objetos. Isso aconteceu com a linguagem
primeiro computador eletrônico, o ENIAC metodologia, buscando-se as soluções Visual Basic, que antes da sua versão .net
(Eletrical Numerical Integrator and Calcula- necessárias para um projeto confiável e de não implementava todos os conceitos de
tor), surgido em 1945, e pesando cerca de manutenção fácil. É correto imaginar que o orientação a objetos.
30 toneladas. Até hoje os computadores paradigma da orientação a objetos tornou- Vejamos então esses conceitos:
ainda utilizam a arquitetura proposta por se a solução para acompanhar a demanda Objeto: um objeto é qualquer coisa
Von Neumann. Em 1951, surgia o primeiro cada vez maior e freqüente do mercado, existente no mundo real, em formato
computador fabricado comercialmente: o mas o erro está no posicionamento histó- concreto ou abstrato, ou seja, que exista
UNIVAC I, usado no censo americano por rico do conceito de orientação a objetos, fisicamente ou apenas conceitualmente,
12 anos seguidos. pois este surgiu muito antes do conceito e o qual se pode caracterizar e identificar
A partir da década de 40, descobre-se a da programação estruturada. comportamentos.
importância da computação, e essa passa Em 1962, Ole-Johan Dahl e Kristen Ny- Podemos afirmar que um objeto é uma
a fazer parte da nossa história. Contudo, gaard criaram uma linguagem chamada caixa-preta que recebe e envia mensagens,
numa primeira fase ninguém pensava em Simula, baseada na linguagem Algol 60. ou seja, num sistema orientado a objetos,
software. Os esforços estavam voltados à O diferencial residia em seu objetivo: os objetos trocam informações por meio
evolução do hardware, buscando-se redu- permitir o projeto de simulações. Surgia de mensagens.
zir os problemas das primeiras máquinas. a primeira linguagem orientada a objetos, Num sistema orientado a objetos não
Assim, da primeira geração de computa- apresentando os conceitos de classe e modelamos apenas objetos de negócio.
dores à válvula, passamos para a segunda herança. Essa foi a semente que inspirou Muitas vezes, de acordo com a arquitetura
geração, utilizando transistores. o desenvolvimento de uma nova lingua- utilizada, modelamos objetos computacio-
A primeira linguagem de programação gem, a primeira totalmente orientada a nais, visuais ou não.
surgida foi a linguagem de máquina, na objetos —o SmallTalk. Nela, não existem Exemplo: ao levantarmos os requisitos
década de 50 — o Assembly. Nesse mo- tipos primitivos, tudo é representado para informatizar uma concessionária,
mento, a preocupação era restrita aos co- em forma de objeto: números, caracteres encontraremos o objeto automovel (físico),
mandos, nem se pensava em análise, mui- etc. Disponibilizada ao público no início da mesma forma que podemos modelar o
to menos em modelagem de requisitos. A dos anos 80, SmallTalk solidificou para a objeto venda (conceitual).
partir de então, surgem as linguagens de comunidade os conceitos de classe, ob- Atributo: as características associadas aos
alto nível, como Fortran, Algol e Cobol. jeto, atributo, método, encapsulamento, objetos são chamadas de atributos. Para os
Um rápido aumento na complexidade herança e mensagem. A partir daí, novas objetos de negócio, é comum usarmos o
das demandas por software e a falta de linguagens surgiram, como o C++ (versão conceito de atributo. Para os objetos visuais,
técnicas para definição de novos sistemas OO da linguagem C), Object Pascal (ver- utilizamos o conceito de propriedade.
culminaram em diversos problemas, são OO do Pascal), Eiffel e Java (criado a Exemplo: atributos da classe Cargo:
entre eles: estouro de orçamento e prazo, partir do C++). descricao e salario. Atributos da classe
softwares de baixa qualidade, requisitos Automovel: modelo, cor, numeroPortas, ano,
não atendidos e código de manutenção Conceitos fundamentais de placa etc.
difícil. Estava definida a crise de software. orientação a objetos Operação x Método: o comportamento
A solução para contornar a crise veio com Os conceitos da orientação a objetos dos objetos é representado pelas opera-
o conceito da Engenharia de Software, em surgiram da necessidade em se enfatizar ções. Contudo, a operação para um objeto
1968. Objetivava-se trazer os princípios da unidades discretas, e obter a reutilização representa apenas a definição do serviço
Engenharia, com todo o seu planejamento de código, mantendo-se a qualidade do que ele oferece a outras estruturas. Quan-
e modelagem, para se resolver os proble- software. O núcleo do pensamento OO do tratamos da implementação dessa
mas da área ainda imatura. No mesmo ano predomina num foco sobre os dados, em operação, ou seja, da sua representação
de 68, Dijkstra escreve sobre a programa- vez dos processos, compondo módulos em código, estamos nos referindo ao seu
ção estruturada; tinha início o marco do auto-suficientes — os objetos —, encerran- método. Os métodos de uma classe ma-
primeiro paradigma de desenvolvimento do em sua estrutura todo o conhecimento nipulam somente as estruturas de dados
de sistemas. dos dados e dos processos para manipu- daquela classe, ou seja, para se ter acesso
Mas enquanto novas linguagens surgiam lação desses dados. aos dados de outra classe, isso deve ser
—Pascal, C —, ainda não se tinha a defini- O que se obtém de principal na modela- feito por meio de mensagens.
ção de uma metodologia de desenvolvi- gem orientada a objetos é a possibilidade Exemplo: operações da classe Cargo: cadas-
mento de sistemas, até 1978, quando Tom de se abstrair diretamente os conceitos trar() e reajustarSalario(percentual: float).
DeMarco escreve seu livro sobre análise do mundo real, sem subterfúgios para se Ao modelarmos uma classe precisamos
estruturada. Contudo, a dificuldade de chegar à solução computacional. sempre considerar o contexto. Se não fosse
manutenção dos diversos modelos gerados Os conceitos fundamentais de orientação isso, bastaria um famoso metodologista
na fase de análise e projeto, fez com que se a objetos são o contrato que estabelece publicar as soluções para todas as classes
percebesse, nas duas décadas seguintes, toda e qualquer implementação que se de negócio.
aquela diversidade de métodos, propôs ao • Diagrama de objetos (Object Dia- Versão da Publicação Tipo de revisão
mercado a união das metodologias, o que gram) – apresenta objetos e valores de
UML
foi rechaçado pela maioria. Pouco depois, dados. Corresponde a uma instância do
James Rumbaugh abandonou a General diagrama de classes, mostrando o estado 1.1 Novembro de 1997 Estrutural
Electric e se juntou à Booch na Rational de um sistema em um determinado ponto 1.2 Julho de 1998 Somente conteúdo
Software, produzindo o método unificado, do tempo. 1.3 Março de 2000 Somente conteúdo
na sua versão 0.8. Jacobson, ao perceber a • Diagrama de componentes (Compo-
1.4 Maio de 2001 Estrutural
similaridade do seu método com o méto- nent Diagram) – mostra as dependências
do unificado, logo se uniu a eles. O que entre componentes de software, apresen- 1.5 Março de 2003 Somente conteúdo
nasceu ainda como um método, teve a tando suas interfaces. 2.0 Julho de 2005 Estrutural
mudança de perspectiva, passando a ser • Diagrama de estrutura composta
2.1.1 Agosto de 2007 Somente conteúdo
uma linguagem de modelagem, desaco- (Composite Structure Diagram) – usado para
plando o processo de desenvolvimento. mostrar a composição de uma estrutura. 2.1.2 Novembro de 2007 Somente conteúdo
Nascia a UML – Unified Modeling Language Útil em estruturas compostas de estrutu- Tabela 3. Histórico das versões da UML
na sua versão 0.9. ras complexas ou em projetos baseados
Em 1996, a UML já era vista pelas orga- em componentes – uma variação do diagrama de ati-
nizações como uma ótima estratégia para • Diagrama de pacotes (Package Diagram) vidades que mostra de uma forma
seus negócios. A OMG (Object Management – usado para organizar elementos de mode- geral o fluxo de controle dentro de
Group) emitiu uma RFP (Request for Pro- lo e mostrar dependências entre eles um sistema ou processo de negó-
posals), que objetivava receber propostas • Diagrama de implantação (Deploy- cios. Cada nó ou atividade dentro
de padronização para uma metodologia ment Diagram) – mostra a arquitetura do do diagrama pode representar outro
de desenvolvimento orientado a objetos. sistema em tempo de execução, as plata- diagrama de interação.
Respostas foram recebidas da comunidade formas de hardware, artefatos de software Podemos afirmar que é possível se com-
de engenharia de software e de grandes em- e ambientes de software (como sistemas pletar a modelagem de um sistema de
presas (Digital, HP, IBM, Microsoft, Oracle e operacionais e máquinas virtuais) pequeno ou médio porte, com sucesso,
Unisys, entre outras) fortalecendo a propos- Diagramas comportamentais (dinâmi- com apenas três diagramas (casos de uso,
ta da UML. Em janeiro de 1997, a Rational cos): classes e seqüências), tendo o suporte,
lançou a versão 1.0 da UML como proposta • Diagrama de casos de uso (Use Case dependendo do contexto, de três outros
para padronização na OMG. Entre janeiro e Diagram) – mostra os casos de uso, atores diagramas (objetos, atividades e máquina
julho novas contribuições foram recebidas, e e seus relacionamentos que expressam a de estados).
em 14 de novembro de 1997, a UML 1.1 era funcionalidade de um sistema. O paradigma da orientação a objetos veio
adotada como padrão pelo OMG. • Diagrama de atividades (Activity definitivamente ocupar um espaço que há
A manutenção da UML passou a ser Diagram) – representa a execução de ações muito se necessitava no mercado de de-
responsabilidade da RTF (Revision Task ou atividades e os fluxos que são dispa- senvolvimento. Cabe aos desenvolvedores
Forces), pertencente à OMG, sob a direção rados pela conclusão de outras ações ou entenderem a importância de se respeitar
de Cris Kobryn, centralizando os comentá- atividades. todos os seus conceitos, para que se obte-
rios e pedidos de revisão da comunidade. • Diagrama de máquina de estados nha o melhor do que ele nos propõe.
Novas versões foram publicadas a partir (Statechart Diagram) – representa as ações
daí, conforme a Tabela 3. ocorridas em resposta ao recebimento de
eventos. Links
Diagramas da UML • Diagramas de interação:
O que há de mais relevante na UML é o Diagrama de seqüências (Se- UML Site
fato de que a linguagem de modelagem quence Diagram) – mostra as inte- www.uml.org
nos oferece diversas ferramentas, ficando rações que correspondem a um Artigo “What is Object-Oriented Software?”, escrito
sob nossa responsabilidade a forma e a conjunto de mensagens trocadas por Terry Montlick
ordem como elas serão utilizadas. Além entre objetos e a ordem que essas http://www.softwaredesign.com/objects.html
disso, a UML possui mecanismos de mensagens acontecem. ODMG Site
extensibilidade, que permitem a adequa- Diagrama de comunicação www.odmg.org
ção da linguagem aos diversos sistemas (Communication Diagram) – é o an-
existentes no mercado, sem que se perca tigo diagrama de colaboração, que
o entendimento comum ao se usar um mostra objetos, seus inter-relacio-
mesmo modelo. namentos e o fluxo de mensagens
A versão atual da UML contempla 13 dia- Dê seu feedback sobre esta edição!
entre eles Feedback
eu
gramas, divididos em duas categorias: Diagrama temporal (Timing A Engenharia de Software Magazine
s
Dê
Diagramas estruturais (estáticos): Diagram) – mostra a mudança de tem que ser feita ao seu gosto.
sobre e
• Diagrama de classes (Class Diagram) estado de um objeto numa pas- Para isso, precisamos saber o que você,
s
ta
– apresenta classes conectadas por relacio- leitor, acha da revista! edição
sagem de tempo, em resposta a
namentos. Usado para exibir entidades do eventos externos. Dê seu voto sobre este artigo, através do link:
mundo real, além de elementos de análise Diagrama de visão geral de inte- www.devmedia.com.br/esmag/feedback
e projeto. ração (Interaction-Overview Diagram)
S
oftware é um produto que permeia Discute a necessidade de considerá-
nosso cotidiano e tem sido compa- la durante fases de desenvolvimen-
nheiro meu, seu e de quase todas as to e operacional de um sistema de
pessoas em uma gama enorme de aplica- software.
ções. No dia-a-dia, podemos encontrar
Para que serve:
software embutido em forno microondas,
Informar a necessidade de se conside-
nos jogos de computador ou celular bem
rar a confiabilidade de software no de-
como no controle de aeronaves e sistemas
senvolvimento de produtos de software
de telecomunicações, só para citar alguns
devido ao fato dela ser uma característi-
Antonio Mendes da Silva Filho exemplos.
antoniom.silvafilho@gmail.com ca perceptível pelos usuários.
Há, contudo, um atributo de qualidade
Professor e consultor em área de tecnologia da
associado ao software de suma importân- Em que situação o tema é útil:
informação e comunicação com mais de 20 anos
de experiência profissional, é autor do livros cia para qualquer produto: confiabilidade. Trata-se de uma prática de engenharia
Arquitetura de Software e Programando com XML, Isto vem da real necessidade de utilizar de software considerar a confiabilidade
ambos pela Editora Campus/Elsevier, tem mais um produto ou sistema de software sem de software durante e após o desen-
de 30 artigos publicados em eventos nacionais e
receio de qualquer falha operacional. Este volvimento de um sistema de software.
internacionais, colunista para Ciência e Tecnologia
pela Revista Espaço Acadêmico com mais de 60 artigo trata dos fundamentos e importân- Permite ao engenheiro de software uma
artigos publicados, tendo feitos palestras em cia da confiabilidade de software. avaliação preliminar do produto.
eventos nacionais e exterior. Foi Professor Visitante
da University of Texas at Dallas e da University of
Ottawa. Formado em Engenharia Elétrica pela
Necessidade de Sistemas Confiáveis ção do software como um elemento cada
Universidade de Pernambuco, com Mestrado em Há aproximadamente cinco décadas vez maior nos sistemas computacionais
Engenharia Elétrica pela Universidade Federal atrás, o software constituía uma insignifi- (ou seja, aqueles sistemas que têm sof-
da Paraíba (Campina Grande), Mestrado em cante parte dos sistemas existentes e havia tware como componente). Antigamente, a
Engenharia da Computação pela University of
pouca preocupação com sua qualidade. maioria das funcionalidades implementa-
Waterloo e Doutor em Ciência da Computação pela
Univesidade Federal de Pernambuco. Esse cenário começou a mudar com inser- das nos sistemas era composta de compo-
nentes de hardware que exercia o controle Fundamentos da Confiabilidade de genérico defeito para se referir à falta
sobre a operação dos sistemas. Software ou falha.
Um exemplo de poucas décadas atrás Vale ressaltar que uma falha poderia ser
Ter o software como elemento essencial
era o sistema telefônico. Antigamente, as causada, não apenas por uma falta, mas
dos sistemas coloca sobre ele a neces-
centrais telefônicas tinham seu controle e também por um erro humano ou falha de
sidade de assegurar qualidade e, mais
operação feitos à base de relés (isto é, um hardware. Observe ainda que nem toda
especificamente, sua capacidade de não
dispositivo de comutação) que possibili- falta pode causar uma falha de software.
apresentar falhas quando em uso. As-
tava a comutação entre linhas telefônicas. Isso pode acontecer apenas se o compo-
sociado com o software, há um atributo
Os sistemas mais antigos tinham a telefo- nente (parte do software) que implementa
determinante da qualidade de qualquer
nista (ser humano) como uma profissional uma determinada funcionalidade for utili-
produto: confiabilidade. A confiabilidade
encarregada de realizar a comutação zado durante a operação do sistema. Se o
de software é definida como a probabili-
entre dois assinantes. Hoje em dia, essa componente não é utilizado num cenário
dade do software operar sem ocorrência
funcionalidade é feita por um subsistema de uso do sistema, a falha não se manifesta
de falhas durante um período especificado
de software que identifica o assinante que e a falta permanece (oculta) no software já
de tempo em um determinado ambiente.
origina a ligação telefônica, processa o nú- que nenhuma falha foi observada. Toda-
Num contexto mais amplo, a qualidade
mero discado por ele e, por fim, realiza a via, se o componente que possui uma falta
de software é uma propriedade multidi-
comutação com o assinante chamado. é utilizado, ele irá apresentar um compor-
mensional que inclui, além da confiabilida-
Agora, se considerarmos a história da tamento incorreto, resultando numa falha
de, outros fatores de satisfação do cliente
indústria do software (ver seção Links), (observável).
como funcionalidade, usabilidade, desem-
Já o termo erro pode se originar em duas
encontra-se o uso do software numa am- penho, habilidade de prestação de servi-
situações:
pla variedade de aplicações tais como sis- ço, manutenibilidade e documentação. • Erro humano (como causador da falha) –
temas de manufatura, software científico, Todavia, a confiabilidade é, comumente, que pode resultar numa falha observável
software embarcado, robótica e aplicações aceita como um fator chave da qualidade ao usuário. Isto ocorre quando um erro
Web, dentre tantas. Como resultado disso, de software, uma vez que a confiabilidade humano motiva a falha, ou seja, ele pode
as funcionalidades e controle operacional pode quantificar as falhas de software (que desenvolver um produto contendo uma
dos sistemas computacionais se tornaram são percebidas pelo usuário). ou mais faltas como, por exemplo, especi-
mais dependentes do software. No entanto, existem alguns termos que ficando um sistema de forma inconsistente
E, concomitante a este fato, houve são utilizados no cotidiano das pessoas, ou incompleta, bem como implementan-
crescimento no uso de computadores, mas que do ponto de vista da engenharia do-o de modo incorreto.
principalmente, os de uso pessoal como o de software, têm significados específicos • Discrepância de valores – entre o valor
PC, além da descentralização dos grandes que precisam ser definidos para que haja observado ou computado e o valor (ou
sistemas. Esses fatores, juntamente com entendimento e uso correto dos mesmos. condição) contido na especificação.
a redução gradativa dos custos dos com- Inicialmente, há o termo falha que deno- É importante observar que ter o software
putadores, contribuíram para aumentar mina um evento observado pelo usuário como elemento essencial dos sistemas co-
o uso do software numa ampla variedade (ou algum mecanismo de detecção de loca sobre ele a necessidade de assegurar
de aplicações. O resultado de tudo isso foi falhas). Assim, durante a execução de qualidade e, mais especificamente, sua
o crescimento do software em termos de um sistema de software, se um dado de capacidade de não apresentar falhas quan-
tamanho e complexidade. saída está incorreto, então isto resulta do em uso. A confiabilidade de software
Os projetos de sistemas computacionais ser uma falha. Em outras palavras, uma se torna uma propriedade determinante
mais antigos eram compostos de pequena falha acontece quando o usuário percebe para o produto porque ela é observável
parcela de software. Já os componentes que um determinado programa deixa de pelos usuários.
de hardware, que eram a maior parte dos prover o serviço ou funcionalidade por Outro atributo importante dos sistemas
sistemas, eram analisados e testados quase ele esperada. Portanto, uma falha é uma de software é a disponibilidade, que com-
exaustivamente, o que permitia a produ- conseqüência de uma determinada falta preende a probabilidade de, em qualquer
ção rápida de grandes quantidades de que foi deixada no software. instante de tempo, um sistema funcionar
componentes e implicava em raros erros Por outro lado, diz-se que um sistema satisfatoriamente num determinado
de projetos e falhas nos sistemas. Note possui uma falta se, para algum dado de ambiente. Em outras palavras, é a proba-
que a facilidade de modificar o software, entrada, o comportamento do sistema está bilidade de um sistema estar disponível
comparativamente ao hardware, foi e tem incorreto, isto é, seu comportamento é di- quando necessário. A disponibilidade
servido como motivador para seu uso. ferente daquele descrito na especificação pode ser determinada pela relação:
A intensificação do uso do software do software. Portanto, uma falta é uma Disponibilidade = ((MTTF) / (MTTF +
numa larga variedade de aplicações re- causa identificada da falha de software MTTR)) x 100%
sultou no seu crescimento em tamanho ou erro interno do sistema, o qual é co- onde:
e complexidade. Como conseqüência, mumente denominado de bug. • MTTF (Mean Time to Failure) é o tempo
isto tornou proibitivo analisá-lo e testá- Agora, quando a distinção entre falta médio até a ocorrência de falha.
lo exaustivamente, além de impactar no (causa da falha) e falha (o efeito obser- • MTTR (Mean Time to Repair) é o tempo
custo de manutenção. vável) não é critica, utiliza-se o termo médio de reparo.
de de software durante a fase operacional algoritmo para calcular a raiz quadrada de É importante observar que as capacida-
do software. um número real. Em tal situação, um teste des de retração de falhas dos programas
O quadro apresentado na Tabela 1 carac- de aceitação adequado pode ser obtido, auditores são limitadas. Na maioria
teriza essas quatro técnicas de melhoria comparando-se o quadrado do resultado dos casos, após a detecção de um erro,
da confiabilidade de software na fase com o valor original da entrada. Se há mais o programa auditor é apenas capaz de
operacional, categorizando-as em função de um algoritmo para implementar essa “resetar” o software para um estado de
da capacidade de supressão de falhas e da funcionalidade, uma forma de verificar segurança ao invés de retratar o erro, ou
granulosidade da aplicação. seu uso seria baseada na eficiência. Se o seja, de levar o software para o último
N-version programming (NVP ou Pro- mais eficiente falhar, então o software iria estado válido. Embora isto limite a apli-
gramação N-versões) tenta compensar recorrer a um algoritmo imediatamente cabilidade de programas auditores, eles
os erros introduzidos durante a fase de menos eficiente. têm sido usados em software de sistemas
desenvolvimento. A suposição fundamen- Adicionalmente, a eficiência desta téc- de telecomunicações.
tal é que a probabilidade de duas ou mais nica depende do teste de aceitação, que A técnica que temos investigado é deno-
equipes de desenvolvimento produzirem pode ser difícil de ser desenvolvido ou até minada de Supervisão de Software e com-
o mesmo erro em uma parte do software mesmo envolver um algoritmo complexo, preende um sistema supervisionado (SS)
é muito pequena. também sujeito a erros. Vale ressaltar que por um supervisor. SS recebe os sinais de
Esta técnica consiste em desenvolver, o problema econômico de desenvolver e entrada do ambiente e responde gerando
separadamente, N projetos e implemen- manter as diversas versões de software são sinais de saída. O supervisor monitora
tações de um software a partir de uma es- similares aos mencionados para N-version os sinais de entrada e saída e, baseado
pecificação de requisitos. Para essa técnica programming. Isto acontece devido ao fato na especificação do SS, determina se eles
ser efetiva, cada uma das versões deveria de ser necessário produzir várias versões constituem comportamentos válidos. Em
ser produzida por uma equipe separada, de uma mesma funcionalidade com o outras palavras, a função do supervisor é
com pouca ou nenhuma interação entre objetivo de assegurar que o software irá comparar as entradas e saídas para o sis-
funcionar de modo correto durante um tema supervisionado com a especificação
elas. Todas as versões do software são
período de tempo maior e, portanto, pro- deste e, caso seja produzida uma saída que
executadas de modo concorrente geran-
vendo uma maior confiabilidade. não está em conformidade com a especi-
do saídas em função de um conjunto de
Uma outra abordagem é Software Audits ficação, então o supervisor irá detectar e
entradas. Em tal situação, um algoritmo
(SA ou Auditores de software) na qual relatar uma falha. Perceba que qualquer
de votação decide qual saída de uma das
erros de software são detectados e, pos- comportamento inválido (ou seja, não
implementações deveria ser utilizada
sivelmente, corrigidos através de progra- contido na especificação) do SS detectado
como saída do sistema. É comum utilizar
mas auditores. Estes programas auditores pelo supervisor é relatado como falha.
uma estratégia de selecionar aquela versão
consistem de software adicional os quais A vantagem desta técnica é que diversas
que tem a maioria na votação.
têm acesso às estruturas de dados do pro- versões idênticas de software não pre-
Embora N-version programming tenha
grama principal. Tipicamente, programas cisam ser produzidas. Adicionalmente,
mostrado ser efetiva quanto à redução
auditores executam em um nível mais eleva-se a disponibilidade operacional do
de falhas de software, ela se depara com
baixo de prioridade comparado ao pro- sistema, pois quando qualquer falha é de-
algumas dificuldades. Resultados expe-
grama principal e, apenas periodicamente tectada pelo supervisor, ele prontamente
rimentais mostram que uma cobertura
checam erros nas estruturas de dados. Três relatará o ocorrido e permitirá que manu-
completa dos erros, em geral, não pode ser tipos de erros que podem ser detectados tenção seja imediatamente realizada.
garantida por esta abordagem. Isto ocorre por programas auditores compreendem: A técnica de supervisão de software tem
porque diferentes implementações estarão • Erros de comparação direta – detectar sido empregada em sistemas de telecomu-
cobrindo diferentes erros, mas não sua esse tipo de erro exige que uma cópia nicações e, principalmente, em centrais
totalidade como discutido acima. Embora dos dados seja mantida. Por exemplo, em telefônicas. O objetivo é ter um supervisor
a diversidade de versões contribua para estruturas estáticas, uma cópia pode ser de software monitorando o processamento
cobrir uma quantidade maior de erros e mantida na memória. de ligações telefônicas feitas pelo software
melhorar a confiabilidade do software, • Comparação por erros de associação – de controle da central e, quando o sistema
os custos que advém dessa abordagem, comparação por associação requer que supervisionado (ou seja, a central telefôni-
devido à necessidade de manter N equipes informação redundante seja mantida entre ca) fornece uma saída inválida, dado que
de desenvolvimento e fazer manutenção diferentes estruturas de dados ou campos a saída não está em conformidade com a
em N versões do programa, tornam sua de uma estrutura de dados. Assim, a de- especificação, então o supervisor observa o
aplicabilidade um tanto limitada. tecção de inconsistência se torna possível comportamento incorreto e o detecta com
Recovery Blocks (RB ou Blocos repara- baseada nesta informação redundante. uma falha. Isto é registrado em relatório.
dores) é similar a N-version programming, • Erros de comparação de formatos – a Se várias falhas são detectadas, seu relato
uma vez que várias versões são utilizadas. comparação de formatos assegura que contínuo e imediato faz com que opera-
Contudo, ela difere no fato que versões dos dados das estruturas de dados sejam dores possam tomar a atitude corretiva
adicionais são usadas apenas se a atual é (praticamente) corretos. Verificação de o mais cedo possível antes que haja uma
suspeita de estar produzindo resultados limite de dados é o exemplo mais intuitivo degradação na qualidade do serviço ofe-
incorretos. Considere a necessidade de um de comparação de formatos. recido pelo sistema.
s
um software pode executar juntamente dade como fator importante do desenvolvi-
Dê
tem que ser feita ao seu gosto.
sobre e
com a probabilidade na qual elas ocorrem mento de software é obrigatório, e também
Para isso, precisamos saber o que você,
do sistema de software (supervisionado), considerá-la na fase operacional é essencial
s
ta
leitor, acha da revista! edição
que retrata como ele é utilizado no está- para sistemas de grande porte. O próximo
gio operacional, será possível especificar artigo apresentará exemplos baseados nos Dê seu voto sobre este artigo, através do link:
categorias de entradas para o sistema e a conceitos introduzidos neste artigo. www.devmedia.com.br/esmag/feedback
probabilidade de suas ocorrências. Isto
permitirá uma avaliação mais adequada
Links
do novo padrão de uso do sistema de
software (supervisionado) no estágio História da Indústria de Software
operacional. www.softwarehistory.org
Software Reliability Engineering: A Roadmap
Comentários Finais http://csse.usc.edu/classes/cs589_2007/Reliability.pdf
Software permeia nosso cotidiano e é The 19th IEEE International Symposium on Software Reliability Engineering (ISSRE)
provavelmente uma das entidades quase http://www.csc2.ncsu.edu/conferences/issre/2008/
onipresentes nos sistemas atuais e, portan- Software Metrics and Reliability
to, essencial para atividades das pessoas e http://satc.gsfc.nasa.gov/support/ISSRE_NOV98/software_metrics_and_reliability.html
das empresas. Este artigo apresentou um Software Quality
dos atributos de qualidade essencial aos http://en.wikipedia.org/wiki/Software_quality
sistemas de software: a confiabilidade de Reliability Engineering
software. Sua necessidade e importância http://en.wikipedia.org/wiki/Reliable_system_design
N
os dias atuais, a execução de
pela Universidade Federal de Pernambuco. Gradu- Para que serve:
projetos está se tornando comum
ada em Ciência da Computação pela Universidade Fornecer uma visão geral sobre ma-
Federal da Paraíba e tecnóloga em Telemática e remete ao desafio de gerenciar
turidade às organizações que desejam
pelo Centro Federal de Educação Tecnológica da projetos com eficiência. O uso efetivo de
Paraíba. melhorar o gerenciamento de projetos.
tecnologias durante esta atividade pode
Cristine Gusmão determinar o sucesso de qualquer negócio Em que situação o tema é útil:
cristine@dsc.upe.br e satisfazer as expectativas dos clientes. Maturidade em gerenciamento de
Professora Assistente do Departamento de Contudo, em busca do sucesso, o uso projetos é um assunto que vem sendo
Sistemas e Computação da Escola Politécnica
adequado destas tecnologias é crucial. É bastante explorado. Assim, este artigo
da Universidade de Pernambuco (POLI UPE),
onde leciona várias disciplinas na graduação e possível observar uma crescente busca esclarece alguns pontos a respeito do
pós-graduação (especialização e mestrado) e por melhoria de processos relacionados, tema no sentido de auxiliar organizações
das Faculdades Integradas Barros Melo. Dou- principalmente, à gerência de projetos e à na escolha de um modelo que avalie seu
tora e Mestre em Ciência da Computação pela
engenharia de software em várias organi- nível de maturidade e apresentar um co-
Universidade Federal de Pernambuco. Graduada
em Engenharia Elétrica Eletrotécnica pela zações de Tecnologia da Informação (TI). nhecimento inicial para profissionais na
Universidade Federal de Pernambuco. Segundo diversos autores, o conceito área de gerenciamento e interessados
Hermano Perrelli de sucesso encontra-se atrelado ao de
hermano@cin.ufpe.br maturidade, podendo-se observar que
Atualmente é professor Adjunto e Vice-Diretor do os fatores determinantes para o sucesso ciamento de projetos e uma visão compa-
Centro de Informática da Universidade Federal de de um projeto estão ligados ao grau de rativa de alguns dos modelos que estão
Pernambuco. Consultor e instrutor da Qualiti em evidência.
maturidade da organização em que ele é
Software Processes. Certificado PMP - Pro-
ject Management Professional pelo PMI. PhD In desenvolvido.
Computing Science pela University of Dentro deste contexto, este artigo tem Fatores que Levam ao Sucesso de
Glasgow, mestre em Informática pela Univer- o objetivo de apresentar os fatores que um Projeto
sidade Federal de Pernambuco e graduado em Diversos autores definem sucesso e
levam ao sucesso de projetos, conceitos
Engenharia Eletrônica pela Universidade Federal
de Pernambuco. básicos da área de maturidade em geren- fracasso para melhor entender o desempe-
nho de projetos. Uma definição simplista dores internos, os KPIs. Estes indicadores Maturidade em Gerenciamento de
diz que o sucesso ocorre quando se atin- podem ser revisitados periodicamente ao
Projetos
gem as metas originais de custo, prazo e longo do ciclo de vida do projeto, e in-
O estudo da maturidade em gerencia-
qualidade. Mas é fato que existem outros cluem utilização da metodologia de gestão mento, assim como o estudo do próprio
fatores que o influenciam, por exemplo, de projetos, estabelecimento dos processos gerenciamento de projetos, é assunto que
a percepção que os stakeholders têm do de controle, uso de indicadores interinos, vem sendo discutido há pouco tempo, mas
desempenho do projeto. qualidade de recursos aplicados versus tem ocupado lugar de destaque.
Neste contexto, podemos visualizar uma planejados e envolvimento do cliente. Maturidade pode ser definida como o
sutil distinção entre sucesso do projeto e Prado e Archibald (2007), de acordo com desenvolvimento de sistemas e processos
sucesso da gestão de projetos. O sucesso pesquisa realizada em 2006, indicam al- que são, por natureza, repetitivos e garan-
do projeto está relacionado à aceitação do guns fatores determinantes do sucesso de tem uma alta probabilidade de que cada
produto por parte do mercado e o sucesso projetos de TI: (i) Complexidade dos pro- um deles seja um sucesso [Kerzner 2000].
da gestão de projetos se caracteriza por as- jetos (dificuldades intrínsecas da carteira Contudo, processos e sistemas repetitivos
pectos clássicos: custo, prazos, qualidade de projetos); (ii) Motivação da equipe; (iii) não são por si só, garantia de sucesso, ape-
e satisfação do cliente. Nível de competência técnica da equipe nas aumentam sua probabilidade. Assim,
Existe uma definição de sucesso que con- para as necessidades da carteira de proje- podemos observar que a maturidade em
sidera na sua concepção aspectos externos tos; (iv) Cenário de clientes/concorrência/ gestão de projetos está ligada a quão hábil
e internos, onde os primeiros estão mais pressão dos negócios/fatores externos; (v) uma organização está no exercício de ge-
próximos do gerente e equipe, os últimos Nível de maturidade em gerenciamento de renciar seus projetos [Prado 2008].
estão mais ligados ao comportamento dos projetos do setor. Ainda dentro da mesma Kerzner (2000) classifica em cinco as fa-
clientes. Esses aspectos internos são: custo, pesquisa, os autores afirmam que, para ses do ciclo de vida para a maturidade em
prazo e qualidade e os aspectos externos: uma amostra suficientemente ampla de gestão de projetos: Embrionária, Aceitação
uso, satisfação e eficácia. Com base nesta empresas, a soma dos quatro primeiros pela gerência executiva, Aceitação pelos
definição, é possível dizer que o sucesso fatores (fatores de contingência) tem a gerentes da área, Crescimento e Maturi-
da gestão de projetos tende a influenciar mesma contribuição média apesar de apre- dade. O autor ainda afirma que é possível
positivamente o sucesso do produto. sentarem uma forte dispersão. E concluem observar que as empresas que almejam
Outra linha de pensamento acredita que que, caso o terceiro fator esteja incluído no desenvolver-se e chegar a níveis de matu-
não existe esta distinção de sucesso, mas quinto, é possível supor uma correlação ridade maiores já passaram ou ainda estão
que ele possui características multidimen- positiva entre sucesso e maturidade. passando por algumas destas fases.
sionais e que cada uma destas dimensões Atualmente existem vários modelos de
pode variar com o tempo, sendo algumas A Relação entre Sucesso e maturidade que possuem forte fundamen-
delas: eficiência do projeto, impacto no Maturidade tação em conceitos de gerenciamento da
consumidor, cumprimento de metas do O grande interesse sobre maturidade qualidade, como, por exemplo, os mode-
projeto, satisfação com a qualidade téc- nos tempos atuais pode ser explicado pela los baseados em cinco níveis incrementais
nica do produto, e sucesso do negócio, estreita relação existente entre maturidade de maturidade ou ainda as práticas para o
entre outras. Mas apesar dos fatores e sucesso. As pesquisas realizadas no as- melhoramento contínuo dos processos de
apresentados, convém lembrar que, para sunto apresentam o nível de maturidade gerenciamento.
que o gerente e sua equipe possam tratar de uma organização como um dos fatores
adequadamente os fatores condicionan- determinantes para se chegar ao sucesso Modelos de Maturidade
tes de sucesso, é necessário que haja um em projetos. As organizações a cada dia têm aumenta-
consenso sobre os critérios de sucesso Prado e Archibald (2007) apontam como do a sua preocupação com os projetos que
utilizados no projeto e que estes critérios positiva a relação entre os dois conceitos. desenvolvem. É notório o investimento em
estejam bem definidos. O Project Manager Competency Development, ferramentas, técnicas, treinamento e capa-
Algumas empresas definem sucesso em do PMI, associa sucesso à maturidade, a citação em gerenciamento de projetos, que
termos de fatores críticos (CSFs – Critical fatores contingenciais e a competência do tem aumentado de forma considerável.
Success Factors) e de indicadores-chave de gerente de projetos. Kerzner (2000) tam- Modelos de maturidade são mecanismos
desempenho (KPIs – Key Performance Indi- bém fala da relação sucesso-maturidade, capazes de quantificar numericamente a
cators) [Kerzner 2000]. Os CSFs atendem além de outros autores. maturidade. Estes modelos auxiliam a ela-
às necessidades dos clientes e medem o Os resultados positivos encontrados boração de processos, indicam melhores
resultado final do projeto. Dentre os mais nestas pesquisas aumentam o esforço das práticas e fazem com que as organizações
utilizados podem ser citados: cumpri- organizações a fim de evoluir dentro de se desenvolvam de forma constante.
mento do cronograma, atendimento do níveis de maturidade, motivadas pelo A partir da década de 90, surgiram di-
orçamento, concretização da qualidade, desejo de aumento do sucesso na execução versos modelos para avaliar a maturidade
conveniência e oportunidade da assinatu- de projetos. As empresas estão cada vez das organizações em gerenciamento de
ra do contrato, cumprimento do processo mais conscientes tanto da importância projetos, quase todos inspirados no modelo
de controle de mudança e aditivos do do gerenciamento de projetos, para con- de maturidade em desenvolvimento de
contrato. A qualidade do processo interno cretizar suas estratégias, como de que o software SW-CMM, que é voltado princi-
utilizado para alcançar os resultados finais amadurecimento pode levar à excelência palmente para aspectos técnicos do proces-
dos projetos é medida através dos indica- [Prado 2008]. so de desenvolvimento [Prado 2008].
Níveis de Maturidade
Nível 1 Nível 2 Nível 3 Nível 4 Nível 5
Inicial Repetível Definido Gerenciado Otimizado
O comitê executivo reconhece A organização consegue assegurar A organização tem o controle A organização possui e mantém A organização consegue executar
programas e executa uma lista que em cada programa e/ou centralizado dos programas/ avaliações do desempenho de melhoria de processo contínua
informal dos seus investimentos projeto no portfólio/programa os projetos e consegue seus portfólio/ com reação pró-ativa aos
em programas e projetos. processos e procedimentos estão individualmente adaptar os programas/projetos problemas e gerenciamento da
A organização consegue sendo executados de acordo com processos de forma a se ajustar a e executa gerenciamento de tecnologia para os portfólio/
reconhecer programas e os um padrão mínimo especificado um projeto específico qualidade organizacional para programas/
executa de forma diferente para melhor predizer o desempenho projetos a fim de melhorar
cada projeto. futuro sua habilidade de descrever o
A organização consegue desempenho e otimizar processos
reconhecer projetos e os executa
de forma diferente para cada
negócio.
Tabela 1. Níveis de Maturidade no P3M3
Seguindo a estrutura do CMM, o P3M3 nejamento, gerenciamento da informação, de proporcionar maiores detalhes sobre o
usa um framework de cinco níveis de ma- e treinamento e desenvolvimento. suporte a decisões e planos de melhoria.
turidade para cada um dos modelos indi- As organizações podem avaliar seu ní- Uma dimensão envolve visualizar melho-
viduais, sendo cada um composto pelos vel de maturidade pelo P3M3 através do res práticas em termos de suas associações
níveis: 1 - Inicial, 2 - Repetível, 3 - Definido, questionário de auto-avaliação disponível com os estágios progressivos de melhoria
4 - Gerenciado e 5 - Otimizado. A Tabela 1 no site www.p3m3-officialsite.com ou no processo: padronização, medição, con-
apresenta os níveis sumarizados para cada através de revisão formal. trole e melhora contínua. Outra dimensão
um dos modelos individuais. OPM3 - Organizational Project Mana- envolve o progresso de melhores práticas
Os níveis de maturidade do P3M3 indi- gement Maturity Model associado com cada domínio, primeiro en-
cam como áreas de processo-chave (KPAs Após seis anos de pesquisa e desenvol- dereçando o Gerenciamento de Projeto, de-
– Key Process Areas) podem ser estrutura- vimento, em 2003 o Project Management pois o Gerenciamento de Programa e, final-
das hierarquicamente para definir uma Institute - PMI apresentou o modelo OPM3 mente, o Gerenciamento de Portfólio. Cada
progressão de capacidade, ou aumento (Organizational Project Management Matu- uma dessas progressões é um contínuo ao
de maturidade, que a organização pode rity Model). Através de uma pesquisa rea- longo do qual a maioria das organizações
utilizar a fim de alcançar seus objetivos e lizada com mais de 30.000 profissionais, aspira chegar. Dentro dessas duas dimen-
planejar melhoria. foram analisados os pontos fortes e fracos sões está a progressão das capacidades que
Existem sete perspectivas de processo dos modelos contemporâneos de maturi- leva às melhores práticas. Por último, o
dentro do P3M3 que definem as caracte- dade em gerenciamento de projetos. De OPM3 também categoriza habilidades em
rísticas chave de uma organização madu- acordo com o PMI (2003), foram avaliados termos de suas associações com os cinco
ra. Estas perspectivas se aplicam aos três mais de 27 modelos de maturidade em grupos de processo de gerenciamento de
modelos individuais e a todos os níveis de organizações de 35 países. projeto: Iniciação, Planejamento, Execução,
maturidade. Cada perspectiva descreve os O OPM3 surge não apenas como um Controle e Conclusão.
processos e práticas que devem ser implan- modelo organizacional, mas oferece uma Capacidade é definida como uma com-
tados em um dado nível e maturidade. grande base de dados de melhores prá- petência específica que deve existir em
Para cada uma das perspectivas existe um ticas e indicadores de capacidade. Essas uma organização para que ela execute
conjunto de atributos que são comuns aos informações permitem que se localize a processos de gerenciamento de projeto e
níveis de maturidade. Atributos descrevem organização em relação às práticas aplica- entregue produtos e serviços. Capacida-
o perfil pretendido para cada perspectiva das por ela e permite que seja comparada des são, portanto, passos incrementais que
em cada nível de maturidade, e, além disso, com o padrão proposto. levam a uma ou mais melhores práticas.
os tópicos, processos e práticas que serão O modelo foi intencionalmente projetado Para se utilizar por completo o conteúdo
desenvolvidos e sofrerão mudanças quan- sem níveis de maturidade. Estabelecer do modelo, seus diretórios são essenciais.
do o nível de maturidade muda. níveis específicos de maturidade pode ser Os diretórios de (i) Melhores Práticas,
O P3M3 possui dois tipos de atributos: relativamente simples se a progressão da (ii) Capacidades e (iii) Planejamento de
atributos específicos e atributos genéricos. maturidade é unidimensional, contudo o Melhorias são utilizados para se avaliar
Atributos específicos se relacionam com OPM3 acredita que esta progressão é mul- uma organização diante do OPM3 e para
uma perspectiva de processo particular. tidimensional. Múltiplas perspectivas para se avaliar o escopo e a seqüência dos pos-
Atributos genéricos são utilizados em avaliar a maturidade permitem flexibilida- síveis melhoramentos.
todas as perspectivas de processo em um de para aplicar o modelo, de acordo com A avaliação pode ser realizada através de
dado nível de maturidade e incluem: pla- as necessidades de uma organização, além 151 questões que fazem parte do modelo.
Destes quatro, apenas o OPM3 utiliza • Domínios: Projeto, Programa e Por- ciado ao amadurecimento da organização.
valores percentuais ou um contínuo de tfólio. Tendo em vista esta afirmação, diversos
maturidade ao invés da classificação em • Dimensões da Maturidade: Corpora- modelos foram desenvolvidos para auxi-
níveis sugerida pelo CMM. É um modelo tiva ou Setorial. liar organizações a alcançarem sucesso no
mais robusto e possui uma forma de ava- • Avaliação do Nível de Maturidade: gerenciamento de seus projetos.
liação diferente dos demais. Vem sendo formato da avaliação. Os modelos apresentados neste artigo
bastante utilizado e, de acordo com PMI • Medição da Avaliação: medida uti- são competitivos entre si. São boas opções
(2008), é adotado por 39% das empresas lizada pelos modelos (Percentual ou para a avaliação e para o planejamento
brasileiras que participaram do benchma- Numérica). de melhorias que, se aplicadas, levam a
rking de 2007. Apresenta um questionário • Simplicidade de uso: facilidade de maiores níveis de maturidade. Assim, es-
para uma avaliação preliminar do nível aplicação. tes modelos contribuem para o sucesso e,
de maturidade, e um número razoável de • Universalidade: o modelo pode ser em longo prazo, para que as organizações
melhores práticas a serem implementadas. utilizado por diferentes tipos de projetos. possam caminhar rumo à excelência
Estas características fazem dele um mode- • Plano de Melhorias: orientações para
lo mais difícil de utilizar, pelo menos num o desenvolvimento de um plano de me-
primeiro momento. lhorias após a realização da avaliação.
Com o intuito de sintetizar os modelos A seguir, a Tabela 2 apresenta os qua- Dê seu feedback sobre esta edição!
Feedback
apresentados, algumas características tro modelos de maturidade discutidos, eu
A Engenharia de Software Magazine
s
Dê
foram observadas por se acreditar que resumindo as principais características tem que ser feita ao seu gosto.
sobre e
elas descrevem um bom modelo de ma- de cada um. Para isso, precisamos saber o que você,
s
ta
turidade: leitor, acha da revista! edição
• Conceitos em Gerenciamento de Pro- Considerações Finais Dê seu voto sobre este artigo, através do link:
jetos: a base de conceitos em gerenciamen- Segundo alguns pesquisadores, o suces-
www.devmedia.com.br/esmag/feedback
to de projetos utilizada pelo modelo. so na execução de projetos pode ser asso-
Referências
[Kerzner 2000] Kerzner, H. (2000), “Gestão de Projetos: As Melhores Práticas”. John Wiley & Sons.
[Kerzner 2001] Kerzner, H. (2001) “Strategic Planning for Project Management using a Project Management Maturity Model” 1ª ed. John Wiley & Sons.
[OGC 2008] OGC (2008) “Portfolio, Programme & Project Management Maturity Model (P3M3)”. P3M3 Public Consutation Draft Versão 1.0, Junho.
[PMI 2003] PMI – Project Management Institute - USA (2003) “Organizational Project Management Maturity Model (OPM3)”, Knowledge Foundation.
[PMI 2008] PMI – Project Management Institute – Brasil (2008) “Estudo de Benchmarking em Gerenciamento de Projetos Brasil 2007”, http://ww.pmi.org.br, Agosto.
[Prado e Archibald 2007] Prado, D.; Archibald, R. (2007) “Pesquisa sobre Maturidade e Sucesso em T.I. – Relatório Anual 2006”, disponível em: http://www.maturityresearch.com/
[Prado 2008] Prado, D. (2008) ”Maturidade em Gerenciamento de Projetos” – Série Gerência de Projetos – Volume 7 INDG Tecs.
[SEI 2001] SEI - Software Engineering Institute. (2001) CMMI - Capability Maturity Model Integration version 1.1 Pittsburgh, PA. Software Engineering Institute, Carnegie Mellon University. USA.
A
Isabel Albertuni Garantia da Qualidade visa ava- Qualidade com base no MPS.BR nível F,
ialbertuni@gmail.com liar a aderência das atividades por que é necessário a realização de uma
Graduada em Análise de Sistemas pela FARGS em executadas e dos produtos de avaliação independente de Garantia da
2008. Autora de artigos na área de qualidade de
software (SBQS 2007 e W6-MPS.BR). Experiência trabalho gerados a padrões, processos, Qualidade e fatores críticos de sucesso.
de mais de 6 anos na área de TI atuando em procedimentos e requisitos estabelecidos
Para que serve:
desenvolvimento de software e de 3 anos na área e aplicáveis, fornecendo uma visão objeti-
de qualidade e melhoria de processos. Integrante Serve para esclarecimento e melhor en-
va e independente, tanto para atividades
desde 2008 do Comitê Setorial de Informática tendimento do tema por profissionais da
- Programa Qualidade RS. Atua desde 2006 na de processo quanto de produto, em rela-
área de qualidade e pelas organizações
Qualità Informática em projetos de melhoria de ção a desvios e pontos de melhoria, de
que pretendem implementar Garantia
processos baseados em MPS.BR e PGQP. forma a assegurar que a qualidade plane-
da Qualidade.
jada não será comprometida [Magalhães,
Josiane Brietzke Porto
2006]. Além de verificar se o processo Em que situação o tema é útil:
josiane_brietzke@hotmail.com
Pós-graduada em Melhoria de Processos de está adequado, sendo seguido e traba- A Garantia da Qualidade serve para
Software pela UFLA em 2008. Bacharel em lhando a favor da organização (evitando apoiar a gestão e execução dos pro-
Ciência da Computação pelo UNILASALLE em retrabalho, melhorando custos e prazos), jetos, proporcionando uma avaliação
2005. Autora de artigos na área de qualidade de
busca-se identificar desvios o quanto objetiva dos produtos de trabalho e
software (ASSE 2005, WIS 2005, CLEI Eletronic
Journal, W2–MPSBR, SBQS 2007 e W6-MPS. antes e acompanhar a sua resolução até dos processos em relação aos padrões e
BR). Experiência de mais de 5 anos na área de TI que seja concluído [Salviano, 2005]. A procedimentos estabelecidos. Além de
atuando em desenvolvimento de software e de garantia da qualidade fornece suporte ao apoiar a implementação dos processos
mais de 4 anos na área de qualidade e melhoria de
controle da qualidade por meio de evidên- na organização.
processos. Implementadora MR-MPS desde 2004,
Certified Quality Improvement Associate (CQIA) cia e confiança na habilidade do processo
desde 2006 e integrante desde 2008 do Comitê empregado em produzir um produto de
Setorial de Informática - Programa Qualidade software que atenda aos requisitos espe- lidade incluem auditorias (de produtos
RS. Atua desde 2005 na Qualità Informática em ou processos) e avaliações (appraisals ou
cificados [Salviano, 2005]. Ferramentas e
projetos de melhoria de processos baseados em
MPS.BR e PGQP. técnicas utilizadas pela garantia da qua- assessments) [Kasse, 2004].
GQA 1 - A aderência dos produtos de atendimento. Neste resultado é importan- para os pontos fortes, salientar o que a
trabalho aos padrões, procedimentos e re- te verificar em que status estão todas não- organização faz além do esperado, que
quisitos aplicáveis é avaliada objetivamen- conformidades apontadas, para avaliar se supera as expectativas deste processo,
te, antes dos produtos serem entregues ao estão sendo acompanhadas até sua con- apresentando os pontos positivos e não
cliente e em marcos predefinidos ao longo clusão. Quando o auditor identificar que somente os problemas encontrados. Os
do ciclo de vida do projeto. existem não-conformidades pendentes de pontos fracos, melhorias e problemas en-
• Isto pode ser verificado a partir dos resolução, este deve certificar que estas contrados na execução das atividades do
planos de Qualidade e do Projeto, no não-conformidades foram escalonadas, processo também devem ser apontados.
qual devem expressar as atividades de ou seja, seu tratamento foi encaminhado Apresentar para organização os pontos
qualidade em marcos predefinido e antes para o superior imediato do responsável necessários para o sucesso na aplicação de
de entregas. Os registros de realização por seu fechamento. Garantia da Qualidade. Não é necessário
de avaliações (instancias de checklists Além de verificar os resultados espera- apresentar o que fazer, mas identificar
aplicados, entrevistas, questionários, etc) dos de GQA, uma avaliação independente práticas para que a organização defina a
também são evidências para assegurar a também poderá avaliar os atributos de melhor forma e o que pode ser aplicado
obtenção deste resultado. processos. Neles, resultados como defi- para sua empresa.
GQA 2 - A aderência dos processos nição de política organizacional para a • Saber ouvir: Item muito importante em
executados às descrições de processo, realização de avaliações objetivas podem casos de entrevistas. É necessário saber
padrões e procedimentos é avaliada ob- ser identificados, entre outras. ouvir o que os entrevistados têm a dizer,
jetivamente. A avaliação independente de Garantia de forma neutra, concentrada, não ficar
• Na avaliação realizada, o auditor veri- da Qualidade deve estar sob total apli- pensando em outras coisas enquanto o
fica se os processos definidos e seu aparato cação pelo auditor externo (ou auditor entrevistado fala durante a entrevista,
necessário para seu atendimento estão independente) para não ter influência no pois informações importantes podem ser
sendo aplicados e avaliados nos projetos resultado. Neste caso, desde o questio- perdidas em um momento de descon-
da organização. São encontradas evidên- nário à condução de entrevistas devem tração e fica deselegante solicitar que o
cias para esta prática também no método ser planejados e realizados pelo auditor entrevistado repita o que acabou de dizer
utilizado para a avaliação (auditorias por externo. A equipe envolvida não poderá a todo instante.
meios de checklists, questionários, etc). exigir aplicação de um questionário/che- • Neutralidade: Ao realizar uma avalia-
Deve ficar evidente a avaliação da aplica- cklist desenvolvido internamente para ção independente, é necessário desligar-se
ção dos padrões, procedimentos, métodos sua avaliação, desta forma a organização das atividades e práticas que são feitas
definidos para os projetos. garantirá sua objetividade sem influências pelo auditor, ou da forma que o auditor
GQA3 - Os problemas e as não-confor- e/ou tendências. realizaria. Cada empresa/organização
midades são identificados, registrados e
define e realiza as atividades de acordo
comunicados Fatores críticos de sucesso com seu perfil, e neste momento deve ser
• Deve haver um registro das não-con- Abaixo, são apresentados os principais
avaliado se os resultados propostos de Ga-
formidades e tratamento para as mesmas, fatores críticos para o sucesso de uma
rantia da Qualidade estão sendo atendi-
desde seu registro, motivo, comunicação avaliação independente de Garantia da
dos, e não a maneira que são feitos. Claro
para os responsáveis para conhecimento Qualidade na visão do auditor externo e
que se a prática pode ser prejudicada em
do problema encontrado. também com relação à Organização:
alguma etapa, o auditor poderá apontar
GQA 4 - Ações corretivas para não- Para o Auditor:
como ponto de atenção ou oportunidade
conformidades são estabelecidas e acom- • Independência: Total independência
panhadas até as suas efetivas conclusões. para acesso ao repositório do projeto e de melhoria.
Quando necessário, o escalonamento das todos os artefatos relacionados à Garantia • Boa Interpretação: saber interpretar os
ações corretivas para níveis superiores da Qualidade, bem como documentos de fluxos, processos definidos, templates da
é realizado, de forma a garantir sua apoio para a realização das atividades de organização, mantendo a neutralidade,
solução. um auditor interno. Para isso, a empresa conseguindo compreender com facilidade
• Não basta identificar, registrar e co- pode providenciar com antecedência um o processo definido para a organização.
municar uma não-conformidade. Para acordo de confidencialidade entre o audi- • Clareza ao expor: Críticas nem sempre
sua completeza é necessário que planos tor (que terá acesso a dados de projetos e são bem-vindas e neste caso, a maneira e
de ações tenham sido definidos e acom- de seus processos) como forma de preven- a clareza ao expor os problemas encon-
panhados até seu fechamento. Neste caso, ção pelo uso de informações inadequadas trados deve ser de forma cuidadosa, bem
o auditor deve verificar se para todas as e antiéticas. como no esclarecimento de dúvidas.
não-conformidades apontadas há um pla- • Transparência e crítica: Se o auditor • Acesso ao processo com antecedência:
no de ação para resolução das mesmas. O identificar problemas ou pontos de aten- quando possível, solicitar documenta-
plano de ação deve ser composto por ação ção em determinada atividade, este deve ção de processos e projetos que serão
de correção (e também de prevenção), expor para tratamento antes que se torne avaliados para melhor entendimento do
responsável pelo tratamento e prazo para um ponto fraco. O mesmo pode ser feito contexto da organização. Desta forma é
para esclarecer dúvidas. Falhas nestes são necessárias certas habilidades interpes-
Links
pontos podem resultar em má interpre- soais e um profundo conhecimento da nor-
tação pela organização no momento de ma ou modelo de referência adotado como MPS.BR: Site Oficial
atender os problemas apresentados. base na organização, além de seus proces- www.softex.br/mpsbr/_home/default.asp
sos organizacionais. Também se deve levar
Conclusão em consideração os fatos e as evidências
Qualquer que seja a organização, a missão identificadas, buscando o consenso de
da garantia da qualidade e do auditor é todos os envolvidos antes de prover julga- Dê seu feedback sobre esta edição!
Feedback
deixar o ambiente melhor do que encon- mentos e resultados da avaliação. eu
A Engenharia de Software Magazine
s
Dê
trou. Seja qual for o nível de maturidade de Pode-se concluir também que uma tem que ser feita ao seu gosto.
sobre e
uma organização, a garantia da qualidade avaliação independente de garantia da Para isso, precisamos saber o que você,
s
ta
é essencial para o sucesso de um programa qualidade é considerada bem sucedida leitor, acha da revista! edição
de melhoria [Magalhães, 2006]. quando se percebe uma coerência entre os Dê seu voto sobre este artigo, através do link:
Sendo assim, para conduzir uma avalia- resultados apresentados com a realidade www.devmedia.com.br/esmag/feedback
ção independente de garantia da qualidade atual da empresa
Referências
Albertuni, Isabel. Implantação da Avaliação e Melhoria do Processo Organizacional Alinhado com Critério Processos (PGQP). Relátório de Estágio Supervisionado. Graduação em Administração com
Habilitação em Análise de Sistemas, Faculdades Rio-Grandenses (FARGS), Porto Alegre, 2008.
ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO (SOFTEX). MPS.BR – Guia Geral (Versão 1.2), http://www.softex.br/mpsbr/_guias/MPS.BR_Guia_Geral_V1.2.pdf, 2007a.
ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO (SOFTEX). MPS.BR – Guia de Implementação – Parte 3: Nível E (Versão 1.1), http://www.softex.br/mpsbr/_guias/MPS.BR_Guia_
de_Implementacao_Parte_3_v1.1.pdf, 2007b.
ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO (SOFTEX). MPS.BR – Guia de Implementação – Parte 2: Nível F (Versão 1.1), http://www.softex.br/portal/mpsbr/_guias/MPS.
BR_Guia_de_Implementacao_Parte_2_V1.1.pdf, 2007c.
Biondo, Aline. Uma Ferramenta para Garantia da Qualidade Aplicada na Implementação de Sistemas. Graduação em Sistemas de Informação, Universidade Luterana do Brasil (ULBRA), Canoas, 2007.
ISO/IEC 12207:1995 - The International Organization for Standardization and the International Electrotechnical Commission. ISO/IEC 12207: Information technology – Software life cycle processes, Geneve:
ISO, 1995.
Kasse, Tim. “Practical Insight into CMMI”. Artech House Computing Library, 2004.
Magalhães, Ana Liddy Cenni de Castro. A Garantia da Qualidade e o SQA: Sujeito Que Ajuda e Sujeito Que Atrapalha – ProQualiti Vol.2, N.2, novembro 2006.
IEEE Std 610.12, 1990 - IEEE Standard Glossary of Software Engineering Terminology, Institute of Electrical and Electronics Engineers, 1990
Salviano, C. F.; Tsukumo, A. N. Coop-MPS: Um método para projetos cooperativos de melhoria de processo de software e sua aplicação com o Modelo MPS.BR – ProQualiti Vol.1, N.2, novembro 2005.
SEI - SOFTWARE ENGINEERING INSTITUTE.CMMI for Development (CMMI-DEV), Version 1.2, Technical report CMU/SEI-2006-TR-008. Pittsburgh, PA: Software Engineering Institute, Carnegie Mellon
University, 2006.