Você está na página 1de 13

UNIVERSIDADE FEDERAL DE ALAGOAS

INSTITUTO DE COMPUTAO
BACHARELADO EM SISTEMAS DE INFORMAO
ENGENHARIA DE SOFTWARE

FERNANDO ANTNIO VASCO DE SOUZA

A manuteno perfectiva como atividade da Engenharia de Software


Os casos WhatsApp Messenger e Waze

Macei
2016

SUMRIO

1. INTRODUO

03

2. A ENGENHARIA DE SOFTWARE

04

3. A MANUTENO COMO ATIVIDADE DA ENGENHARIA DE


SOFTWARE

04

4. OS TIPOS DE MANUTENO NA ENGENHARIA DE SOFTWARE

05

5. A MANUTENO PERFECTIVA E O WHATSAPP MESSENGER

07

5.1. O WhatsApp Messenger

07

5.2. As mudanas como manuteno perfectiva no WhatsApp

07

6. A MANUTENO PERFECTIVA E O WAZE

08

6.1. O Waze

08

6.2. As mudanas como manuteno perfectiva no Waze

09

7. CONCLUSO

10

8. REFERNCIAS BIBLIOGRFICAS

11

1 INTRODUO
O presente trabalho se prope a demonstrar como a engenharia de software pde ser
til em dois casos de softwares de sucesso: WhatsApp e Waze.
Inicialmente, so apresentados conceitos bsicos do que vem a ser a engenharia de
software, no sentido de rea do conhecimento e seus princpios, assim como na definio dela
nos estgios de desenvolvimento dos softwares. Na sequncia, feita uma demonstrao de
como a atividade de manuteno de sistemas pode ser considerada parte da engenharia de
software, estando inclusa no ciclo de vida deste.
Em seguida, demonstrado que tais manutenes no se resumem a correes de
problemas, mas tambm as de adequao ao ambiente externo, as preventivas e, como ideia
central do trabalho, as perfectivas, ou seja, as de acrscimos de novos recursos de
funcionalidades ao software, estas representando a maioria do custo total do software para o
desenvolvedor.
Por fim, nos quarto e quinto tpicos, aps uma breve descrio de cada um dos
aplicativos, retratado como este tipo de manuteno foi utilizado no WhatsApp Messenger e
Waze, dois dos mais importantes e utilizados do mercado. Para isso, foram relacionadas
diversas mudanas ao longo da evoluo de ambos os softwares, mencionando ainda
caractersticas presentes no desenvolvimento deles.

2 A ENGENHARIA DE SOFTWARE
A engenharia de software uma rea do conhecimento que busca utilizar princpios
relacionados engenharia na criao de softwares, aumentando a qualidade, reduzindo riscos
e custos, bem como criando processos teis ao desenvolvimento e manuteno daqueles
sistemas.
Seu conceito engloba os significados de criao, construo, anlise, desenvolvimento
e manuteno. Na definio de Friedrich Bauer, na conferncia Software Engineering (1969),
engenharia de software a criao e a utilizao de slidos princpios de engenharia a fim de
obter software de maneira econmica, que seja confivel e que trabalhe eficientemente em
mquinas reais.
Sommerville (2007), tambm a definiu, desta feita como uma disciplina de engenharia
relacionada com todos os aspectos de produo de software, desde os estgios iniciais de
especificao do sistema at a sua manuteno, ou seja, mesmo depois que este entrar em
operao.
Se nos dizeres de Bauer temos que um software desenvolvido a partir dos princpios de
engenharia deva ser econmico, confivel e eficiente, a definio de Sommerville mais til
ao que esse trabalho prope. A partir dela, associamos a engenharia de software no somente
criao de um sistema, mas tambm alcanamos todas as fases do seu ciclo de vida, inclusive
a manuteno.
3 A MANUTENO COMO ATIVIDADE DA ENGENHARIA DE SOFTWARE
Um sistema, pode-se assim dizer, possui um ciclo de vida. Este, inicia-se na definio
dos requisitos, encerrando-se no trmino do seu uso. A NBR ISO/IEC 12207:1998 estabelece
uma estrutura comum para os processos de ciclo de vida de softwares, contendo processos,
atividades e tarefas que servem para ser aplicadas durante a aquisio de um sistema que
contm software, de um produto de software independente ou de um servio de software, e
durante o fornecimento, desenvolvimento, operao e manuteno de produtos de software.
Conforme a norma citada, o ciclo de vida do software possui atividades agrupadas em
cinco processos fundamentais, oito processos de apoio e quatro processos organizacionais.
Dentre tais atividades, importa ao nosso trabalho, neste momento, um dos processos
fundamentais, o de manuteno. Este processo realizado quando o software submetido a
modificaes no cdigo e na documentao associada em razo de um problema ou por
4

necessidade de melhora ou adaptao. Preserva-se a integridade do produto, mas modificandoo.


O processo de manuteno define que o mantenedor, organizao que realiza o servio
de manuteno do produto de software, aquele responsvel por gerenciar as modificaes do
produto de forma a mant-lo tanto atualizado como operante. Para Barros (2015), a manuteno
de software pode ser percebida como um processo evolutivo do software em que a Engenharia
de Software se desdobra na atividade que procura aperfeioar ou somar qualidades ao produto
de software, alm de corrigir falhas ou brechas de segurana.
Assim, preciso ter em mente que a manuteno no deve ser vista apenas como um
processo responsvel por solucionar algo defeituoso, mas sim como um processo que tambm
ocorre na necessidade de melhora ou adaptao. Bhatt, et al. (2004), considera a manuteno
de software dotada de imprevisibilidade, o que est relacionado influncia de fatores externos
sofrida pelo software. Estes fatores externos so naturalmente imprevisveis, sendo que sua
ocorrncia eleva o esforo despedindo com a atividade de manuteno (figura 1).
Figura 1 curva de esforo para manuteno de software (adaptao de Bhatt, et al. 2004)

Com mudanas no ambiente, tem-se a necessidade de considera-las e prev-las para a


manuteno, demandando um esforo diretamente proporcional s alteraes na estabilidade
do contexto. So essas alteraes que influenciam a realizao de atividades de suporte de
usurios, ajustes e melhorias na aplicao.
4 OS TIPOS DE MANUTENO NA ENGENHARIA DE SOFTWARE
Lientz e Swanson (1980) classificaram as aes de manuteno de software em trs
tipos: corretivas, adaptativas e perfectivas.

Manutenes do tipo corretivas buscam corrigir defeitos relacionados funcionalidade,


incluindo aqui aes emergenciais.

Manutenes do tipo adaptativas pretendem adequar a aplicao ao ambiente externo.

Manutenes do tipo perfectivas visam acrescentar novos recursos de funcionalidades


ao software.
Pressman (2006), alm de considerar as anteriores, ainda acrescenta mais uma entre os

tipos de atividades de manuteno:

Manutenes do tipo preventivas procuram evitar defeitos futuros, identificando


previamente possveis fontes de problemas.
Para o Information Technology Research Institute, ELTIS-project, o custo do software

relacionado com a manuteno e evoluo vem crescendo exponencialmente, representando


atualmente cerca de 90% do custo total (tabela 1).
Tabela 1 Custo proporcional de manuteno de software (adaptao de Engholm Jr., 2010)
Ano

Proporo de custos de
manuteno de software

2000

>90%

1993

0,75

1990

>90%

1990

60-70%

1988

60-70%

1984

65-75%

1981

>50%

1979

0,67

Definio
Custo de software relacionado manuteno e
evoluo de sistemas/custo total de software
Manuteno de software/oramento de sistemas de
informao (em 1000 empresas)
Custo de software relacionado manuteno e
evoluo de sistemas/custo total de software
Manuteno de software/oramento total de
operao de sistemas da informao (Management
Information Systems MIS)
Manuteno de software/oramento operacional
do total de sistemas de informao gerencial
(Management Information Systems MIS)
Esforo gasto na manuteno de sistemas/total
disponvel relacionado a engenharia de software
Tempo gasto pela equipe de manuteno/tempo
total (em 487 organizaes)
Custo de manuteno/custo total de software

E ainda, na conhecida pesquisa de Lientz e Swanson (1980) que buscou aferir a maneira
como as organizaes tratavam a manuteno de software, concluiu-se que mais de 50% delas,
no ambiente de 487 empresas, eram consideradas manutenes perfectivas. Alm disso, outros
estudos, citados por Engholm Jr. (2010) estimam que cerca de 75% dos custos de manuteno
so relativos a fornecer evoluo ao software, de maneira adaptativa e evolutiva.
Podemos compreender, portanto, estatisticamente, que o tipo de manuteno de
software mais comum, no sentido de utilizao, aquele que busca melhorar a qualidade do

software. No prevista no documento de requisitos original, ela procura dar um desempenho


mais eficiente, acrescentando novas funcionalidades.
5 A MANUTENO PERFECTIVA E O WHATSAPP MESSENGER
5.1 O WhatsApp Messenger
Concebido em 2010 nos Estados Unidos como um aplicativo multiplataforma destinado
a smartphones, o WhatsApp Messenger usa a internet para enviar atualmente mensagens de
texto e voz, documentos, imagens, vdeo e localizao para outros usurios, j com utilizao
de criptografia.
Desde a sua aquisio pelo Facebook em 2014, por 19 bilhes de dlares, o software
passou de 450 milhes de usurios para a marca de um bilho de usurios ativos em fevereiro
de 2016, podendo ser considerado o mais popular aplicativo do tipo.
No entanto, o comunicador no foi criado assim, com todas essas funcionalidades.
Desde o seu lanamento ele foi agregando mudanas para melhorar do layout segurana,
graas a fatores externos que influenciavam essas necessidades.
5.2 As mudanas como manuteno perfectiva no WhatsApp
Considerando as manutenes do tipo perfectivas como aquelas que visam acrescentar
novos recursos de funcionalidades ao software, o WhatsApp, quando ainda se tratava de um
exclusivo da plataforma iOS, comeava a ganhar as alteraes que hoje utilizamos de forma
comum:

Dezembro de 2009, verso 2.3 Transferncia de udio e imagens passou a ser


permitida. Dependendo da verso do sistema operacional, tambm era possvel
transferir vdeos. Alm disso, passou a existir a confirmao de entrega das mensagens,
que era feita por meio de uma letra vermelha, indicando o status desconhecido, enviado
ou entregue.

Novembro de 2010, verso 2.5.12 Busca no histrico de conversas, encaminhamento


de mensagens, pr-visualizao de vdeos.

Fevereiro de 2011, verso 2.6 Criao de chats em grupo, limitado a cinco pessoas.

Maro de 2012 J era possvel compartilhar a localizao.

Agosto de 2013 Foi lanada a mensagem de voz para o aplicativo.

Janeiro de 2015 Lanada a verso WhatsApp Web como extenso do aplicativo para
smartphone.

Abril de 2016 Utilizao de criptografia de ponta-a-ponta.


Mesmo com uma base de um bilho de usurios ativos, a impressionante escala de

sucesso do aplicativo foi alcanada por uma pequena equipe. Quando adquirida pelo Facebook,
tinha apenas trinta e cinco engenheiros. Atualmente, emprega cerca de cinquenta engenheiros
de software.
Curiosamente, a companhia construiu seu servio usando Erlang como linguagem de
programao e FreeBSD como sistema operacional. Apesar de no ser a mais popular, Erlang
pode ser considerada adequada para estabelecer a comunicao de um grande nmero de
usurios. Diante da escassez de mo de obra para esse tipo de linguagem, Jamshid Mahdavi,
engenheiro de software da companhia, alega que o recrutamento se d no em busca de
especialistas na rea, mas de engenheiros capazes de se adaptar rapidamente a arquitetura
utilizada.
6 A MANUTENO PERFECTIVA E O WAZE
6.1 O Waze
Com origem em 2006 como um projeto de criao comunitria de um mapa de Israel,
tornou-se Waze em 2008 e hoje o maior aplicativo de trnsito e navegao do mundo, com
cerca de 50 milhes de usurios ativos mensais, segundo a companhia.
Misturando geolocalizao com redes sociais, nele possvel trocar informaes sobre
rotas alternativas, pontos de interesse no mapa e acidentes de trnsito. No entanto, sua principal
qualidade est na participao da comunidade de usurios na edio dos mapas. Ele assim
diferencia-se dos demais aplicativos de navegao por coletar informaes e aprender com seus
prprios usurios. Estes podem reportar acidentes, congestionamentos, operaes policiais,
postos de combustveis, entre outros dados necessrios aos condutores.
Seu crescimento chamou a ateno de empresas como o Facebook, que chegou perto
de comprar a companhia por cerca de um bilho de dlares em 2013. No entanto, foi a Google
que em junho do mesmo ano adquiriu o aplicativo por um pouco mais de um bilho de dlares.

6.2 As mudanas como manuteno perfectiva no Waze


No mesmo sentido de mudanas perfectivas apresentado anteriormente como aquelas
que buscam o acrscimo de novos recursos e funcionalidades ao aplicativo, o Waze vem sendo
incrementado a cada verso lanada para suas verses disponveis para Android, BlackBerry,
iOS, Windows Phone, Symbian e Maemo:

Setembro de 2014 Foi possvel aos usurios acrescentar informaes sobre empresas
e residncias, como fotos, detalhes do lugar, entre outros dados. Tambm passou a ser
possvel adicionar lembretes automticos de estacionamento, a fim de memorizar o
local onde o veculo foi deixado.

Novembro de 2014 Foi lanada atualizao para informar sobre enchentes ou excesso
de gelo na pista, alm de informaes sobre o trnsito j na escolha do destino.

Dezembro de 2014 Adicionada opo de aviso sobre alagamento e enchentes na


estrada, depois de mais de 15 milhes de avisos de riscos climticos s nos Estados
Unidos, em um ano.

Maro de 2015 Aplicativo passou a ser at 85% mais rpido. Foi adicionada barra de
informao que prev o tempo de durao de um congestionamento.

Abril de 2015 Passou a dar informaes sobre trnsito pelo Twitter, em So Paulo e
no Rio de Janeiro.

Agosto de 2015 O aplicativo passou a informar sobre a melhor rota a se seguir diante
do rodzio de veculos na cidade de So Paulo.

Outubro de 2015 Renovao do design, tornando-o mais limpo e de acesso mais fcil.
Adio de lembretes de sada de acordo com os eventos do calendrio do celular.
Reduo no consumo de bateria do smartphone.

Maro de 2016 Adicionada a funo de exibio do limite de velocidade, onde o


aplicativo informa o limite daquela via junto com a velocidade do veculo.
Na poca de sua aquisio pela Google, a empresa possua pouco menos de cem

funcionrios, a maioria em Ra'anana, Israel, e o restante em Palo Alto, California. Atualmente,


o perfil da empresa no site LinkedIn informa que a mesma possui entre 51 e 200 funcionrios.
O incremento de funcionalidades do Waze se d de acordo com sua utilizao. Ao se
manter o aplicativo aberto, ele coleta dados de cada trecho percorrido. Ou seja, tem-se uma
importante participao dos usurios na manuteno perfectiva.

7 CONCLUSO
A verificao das principais mudanas nos softwares WhatsApp Messenger e Waze,
dois dos mais importantes do mercado de comunicadores e navegadores por GPS,
respectivamente, permitem um entendimento prtico de como a engenharia de software pode
ser aplicada no desenvolvimento de um aplicativo.
O destaque para a aplicao da manuteno perfectiva nesses dois softwares mostra que
o acrscimo de novos recursos e funcionalidades acabam por aumentar o tempo de vida dos
aplicativos, dando no somente flego a eles, mas tambm mantendo e at aumentando o
nmero de usurios, como o caso do WhatsApp Messenger, que superou a casa de um bilho
de usurios ativos.
O processo evolutivo do desenvolvimento desses aplicativos guiado pela engenharia
de software, que por meio dela puderam atender demandas de seus usurios que buscavam o
aperfeioamento de funcionalidades e a implantao de novos requisitos, tornando assim a
manuteno do software uma das atividades mais importantes.
Por fim, entendeu-se que, para esse tipo de atividade, a participao dos prprios
usurios essencial, uma vez que a evoluo do produto passa pelo feedback fornecido, mesmo
que de forma passiva, como o caso do Waze. Tais modificaes perfectivas tornam a
experincia do usurio mais agradvel, a quem o produto final destinado, dependendo
bastante de tais mudanas para que venha a permanecer em utilizao, ou seja, que ele continue
sendo usurio daquele software.

10

8 REFERNCIAS BIBLIOGRFICAS
ARAJO,

R.

Estudo

sobre

engenharia

de

software.

Disponvel

em:

<http://imasters.com.br/artigo/7909/linguagens/estudo-sobre-engenharia-de-software/>.
Acesso em: 9 abr. 2016.
ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. ABNT NBR ISO/IEC 12207:
tecnologia de informao: processos de ciclo de vida de software. Rio de Janeiro, 1998.
BARDIN, N. Blog do Waze [Blog Internet]. Consultado em 9 abr. 2016. Disponvel em:
<http://blog-pt.waze.com/>.
BARROS, D. A. M. A engenharia de software no desenvolvimento de um sistema de software
bem sucedido: caso Google Chrome. Macei, 2015. 11 p. Trabalho no publicado.
BHATT, P., SHROFF, G., MISRA, A.K. Dynamics of Software Maintenance. ACM
SIGSOFT Software Engineering Notes, v. 29, n. 5. 2004.
BOURQUE, P. FAIRLEY, R. E. SWEBOK: guide of the software engeneering body of
knowledge.

3.

ed.

IEEE

Computer

Society,

2014.

Disponvel

em:

<https://www.computer.org/web/swebok>. Acesso em: 9 abr. 2016.


ENGHOLM JR., H. Engenharia de software na prtica. Novatec, 2010.
HARDAWAR, D. Facebook's Waze acquisition talks hit the brakes. Venture Beat. 29 mai.
2013. Disponvel em: <http://venturebeat.com/2013/05/29/facebooks-waze-acquisition-talkshit-the-brakes-report/>. Acesso em 10 abr. 2016.
KOUM, J. ACTON, B. Blog do WhatsApp [Blog Internet]. Consultado em 9 abr. 2016.
Disponvel em: <http://blog.whatsapp.com/>.
LIENTZ, B. P. SWANSON, E. B. Software maintenance management. Reading, MA:
Addison-Wesley, 1980.
MACDO, A. B. L. SPINOLA, R. Ciclos de vida do software. Disponvel em:
<http://www.devmedia.com.br/ciclos-de-vida-do-software-artigo-revista-engenharia-desoftware-magazine-36/21099>. Acesso em 9. abr. 2016.
MEDEIROS,

H.

Princpios

da

engenharia

de

software.

Disponvel

em:

<http://www.devmedia.com.br/principios-da-engenharia-de-software/29630>. Acesso em 9.
Abr. 2016.
11

METZ, C. Why WhatsApp only needs 50 engineers for its 900m users. Wired. 15 set. 2015.
Disponvel

em:

<http://www.wired.com/2015/09/whatsapp-serves-900-million-users-50-

engineers/>. Acesso em 10 abr. 2016.


PADUELLI, M. M. Manuteno de software: problemas tpicos e diretrizes para uma
disciplina especfica. 2007. Dissertao (Mestrado em Cincias de Computao e Matemtica
Computacional) Universidade de So Paulo, So Paulo, SP, 2007.
PARDO, D. Por que o Waze faz tanto sucesso? BBC Brasil. 7 jun. 2015. Disponvel em:
<http://www.bbc.com/portuguese/noticias/2015/06/150606_waze_economia_tempo_rb>.
Acesso em 10 abr. 2016.
PEREZ, S. Navigation app Waze gets a huge redesign now less cluttered, but still needs
improvement.

Tech

Crunch.

19

out.

2015.

Disponvel

em:

<http://techcrunch.com/2015/10/19/navigation-app-waze-gets-a-huge-redesign-now-lesscluttered-but-still-needs-improvement/>. Acesso em 10 abr. 2016.


PRESSMAN, R. S. Engenharia de software. 6. ed. McGraw-Hill, 2006.
________. Engenharia de software: uma abordagem profissional. 7. ed. Porto Alegre:
AMGH, 2011.
REIS,

L.

M.

T.

Tipos

de

manuteno

de

software.

Disponvel

em:

<http://www.leandromtr.com/tecnologia-informacao/tipos-de-manutencao-de-software/>.
Acesso em 10 abr. 2016.
SILVA, L. S. P. A essencialidade da engenharia de software. Disponvel em:
<http://www.devmedia.com.br/a-essencialidade-da-engenharia-de-software/24833>. Acesso
em 9 abr. 2016.
SPINOLA, R. Manuteno de software: definies e dificuldades. Disponvel em:
<http://www.devmedia.com.br/manutencao-de-software-definicoes-e-dificuldades-artigorevista-sql-magazine-86/20402>. Acesso em 9 abr. 2016.
SOFTWARE ENGINEERING. 1968. Garmisch, Alemanha. Report on a conference
sponsored by the Nato Science Committee. Bruxelas, Blgica: Nato, 1969. 231 p.
SOMMERVILLE, I. Engenharia de software. 8. ed. So Paulo: Pearson Addison-Wesley,
2007.

12

STATT, N. WhatsApp has grown to 1 billion users. The Verge. 1 fev. 2016. Disponvel em:
<http://www.theverge.com/2016/2/1/10889534/whats-app-1-billion-users-facebook-markzuckerberg>. Acesso em 10 abr. 2016.
WAGNER, J. Padres de projeto de software baseado em componentes aplicados a um sistema
java para academia de musculao. Disponvel em: <http://www.devmedia.com.br/padroes-deprojeto-de-software-baseado-em-componentes-aplicados-a-um-sistema-java-para-academiade-musculacao/19138>. Acesso em 10 abr. 2016.
WAZE.

In:

LINKEDIN.

2016.

Disponvel

em:

<https://www.linkedin.com/company/waze?trk=tyah>. Acesso em: 10 abr. 2016.


WAZE. In: WIKIPEDIA, the free encyclopedia. Flrida: Wikimedia Foundation, 2016.
Disponvel em: <https://en.wikipedia.org/wiki/Waze>. Acesso em: 10 abr. 2016.
WHATSAPP. In: WIKIPEDIA, the free encyclopedia. Flrida: Wikimedia Foundation, 2016.
Disponvel em: <https://en.wikipedia.org/wiki/WhatsApp>. Acesso em: 10 abr. 2016.

13