Escolar Documentos
Profissional Documentos
Cultura Documentos
INSTITUTO DE COMPUTAO
BACHARELADO EM SISTEMAS DE INFORMAO
ENGENHARIA DE SOFTWARE
Macei
2016
SUMRIO
1. INTRODUO
03
2. A ENGENHARIA DE SOFTWARE
04
04
05
07
07
07
08
6.1. O Waze
08
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
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
Fevereiro de 2011, verso 2.6 Criao de chats em grupo, limitado a cinco pessoas.
Janeiro de 2015 Lanada a verso WhatsApp Web como extenso do aplicativo para
smartphone.
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.
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.
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.
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:
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-
Tech
Crunch.
19
out.
2015.
Disponvel
em:
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:
13