9
Análise do Processo de Desenvolvimento do Software Sustentável Ana Carolina Dias Silva, Gilmara Alves Batista de Souza, Jéssica Correia Ribeiro, Reinaldo dos Santos Conceição. Departamento de Engenharia da Computação Centro Universitário FIEO Av. Franz Voegeli, 300 06020-190 Osasco SP Brasil. {09106654, 09110310, 09110751, 08205087}@unifieo.edu.br Abstract. This article reports a study to examine the Sustainable Software Development Process, with a look at some technical processes and methods that are used for preparing a green software. Resumo. Este artigo relata um estudo destinado a analisar o Processo de Desenvolvimento Software Sustentável, lançando um olhar técnico em alguns processos e métodos que são utilizados na elaboração de um software verde. Palavras-chave: software verde, processos de desenvolvimento, ISO 14000, sustentabilidade. 1. Introdução Segundo Ricardo de Almeida Falbo, Professor Doutor da Universidade Federal do Espírito Santo, UFES, Processos de software definem o conjunto de atividades conduzidas no contexto do projeto, tais como análise de requisitos, projeto, codificação, teste, instalação etc., os recursos (software, hardware e pessoas) necessários e os procedimentos a serem adotados na realização de cada uma das atividades. Sendo que essas atividades são compostas por outras atividades, podem se comunicar entre si e operam sobre artefatos de entrada para produzir artefatos de saída. De acordo com IEEE (Institute of Electrical and Electronics Engineers), Engenharia de Software é: “Aplicação de uma abordagem sistemática disciplinada e quantificável para o desenvolvimento, operação e manutenção do software, isto é, a aplicação da engenharia ao software”. Sustentabilidade é um termo usado para definir ações humanas que visam suprir as necessidades atuais dos seres humanos, sem comprometer o futuro das próximas gerações. Um software sustentável é nada menos do que um software feito para maximizar os componentes físicos de um computador, tornando-o mais eficiente e sustentável.

Artigo Tecnico Software Sustentavel

Embed Size (px)

Citation preview

Page 1: Artigo Tecnico Software Sustentavel

Análise do Processo de Desenvolvimento do Software

Sustentável

Ana Carolina Dias Silva, Gilmara Alves Batista de Souza, Jéssica Correia Ribeiro,

Reinaldo dos Santos Conceição.

Departamento de Engenharia da Computação

Centro Universitário FIEO

Av. Franz Voegeli, 300 06020-190 Osasco – SP – Brasil.

{09106654, 09110310, 09110751, 08205087}@unifieo.edu.br

Abstract. This article reports a study to examine the Sustainable Software Development

Process, with a look at some technical processes and methods that are used for preparing a

green software.

Resumo. Este artigo relata um estudo destinado a analisar o Processo de Desenvolvimento

Software Sustentável, lançando um olhar técnico em alguns processos e métodos que são

utilizados na elaboração de um software verde.

Palavras-chave: software verde, processos de desenvolvimento, ISO 14000, sustentabilidade.

1. Introdução

Segundo Ricardo de Almeida Falbo, Professor Doutor da Universidade Federal do Espírito Santo,

UFES, Processos de software definem o conjunto de atividades conduzidas no contexto do projeto, tais

como análise de requisitos, projeto, codificação, teste, instalação etc., os recursos (software, hardware e

pessoas) necessários e os procedimentos a serem adotados na realização de cada uma das atividades.

Sendo que essas atividades são compostas por outras atividades, podem se comunicar entre si e

operam sobre artefatos de entrada para produzir artefatos de saída.

De acordo com IEEE (Institute of Electrical and Electronics Engineers), Engenharia de Software é:

“Aplicação de uma abordagem sistemática disciplinada e quantificável para o desenvolvimento,

operação e manutenção do software, isto é, a aplicação da engenharia ao software”.

Sustentabilidade é um termo usado para definir ações humanas que visam suprir as necessidades

atuais dos seres humanos, sem comprometer o futuro das próximas gerações.

Um software sustentável é nada menos do que um software feito para maximizar os componentes

físicos de um computador, tornando-o mais eficiente e sustentável.

Page 2: Artigo Tecnico Software Sustentavel

O processo de desenvolvimento do software sustentável, apesar do grande avanço da Engenharia de

Software, ainda é pouco conhecido porém, vem sendo bastante utilizado por empresas que adotam a

ideia do “ecologicamente correto”.

Segundo Pressman (2006, pag. 19) a Engenharia de Software pode ser dividida em quatro camadas,

sendo elas:

Ferramentas: Dão o suporte necessário para os métodos e os processos.

Métodos: Fornecem a técnica do “como fazer”, responsável pelas tarefas (modelagem,

construção, testes, manutenção).

Processos: É considerado o alicerce da Engenharia de Software visando a qualidade do

software a ser desenvolvido.

Foco na qualidade: Utilizam os processos para que haja sempre a evolução no quesito

qualidade em todas as fases do desenvolvimento.

Avaliaremos parte da estrutura de um processo de software, analisando os critérios que são

aplicáveis a todos os projetos de softwares sustentáveis, independentemente de seu tamanho e

complexidade. Como principais critérios, Pressman define:

Comunicação: Primeira fase do processo de desenvolvimento do software, utilizada

para levantamento dos requisitos necessários.

Planejamento: Dá origem ao plano do projeto ao cronograma e ao levantamento dos

riscos e dos custos que o projeto terá.

Modelagem: Tem como objetivo modelar os requisitos para que se possa entender

melhor se esses requisitos alcançarão o objetivo do software.

Construção: Combina a geração do código-fonte com os testes necessários para

descobrir possíveis erros no mesmo com relação a desempenho e comportamento do software.

Implantação: Entrega do produto final ao cliente, tem como resultado a avaliação do

cliente a cerca do produto assim como também sua avaliação com relação a desempenho e atendimento

dos requisitos.

Segundo Sommervile (2000 cap.3) os softwares normalmente precisam evoluir, e isso acontece

por vários motivos, entre os quais o surgimento de novas tecnologias de software e hardware

ocasionando sistemas cada vez mais complexos. Diante disso, faremos um estudo de como o

desenvolvimento do software sustentável se enquadrou em alguns dos modelos de processo de software

chamados de evolucionários, por serem os mais evoluídos e mais utilizados atualmente, utilizaremos os

modelos: incremental, espiral e desenvolvimento concorrente, modelos de processos estes utilizados no

desenvolvimento de aplicações de alta complexidade.

Por fim, analisaremos como o processo de desenvolvimento do software sustentável se

enquadra nas exigências do Certificado ISO 14000, entre as quais: política ambiental, aspectos

ambientais, programa de gestão ambiental, dentre outras.

2. Conceito de sustentabilidade

Como vimos anteriormente sustentabilidade pode ser definida como um conjunto de ações

humanas que podem e devem ser tomadas para minimizar os efeitos do desenvolvimento de produtos e

serviços no ambiente em que vivemos.

A palavra sustentável, segundo o Dicionário Aurélio da Língua Portuguesa significa, “que pode

sustentar; capaz de se manter mais ou menos constante ou estável por longo período”. Já quando

utilizamos o conceito de sustentabilidade no meio científico estamos nos referindo à continuidade dos

aspectos econômicos, sociais, culturais e ambientais necessários para o crescimento constante da

sociedade humana.

Page 3: Artigo Tecnico Software Sustentavel

Na Tecnologia da Informação nos deparamos com um conceito moderno, que vem sendo

estudado há pouco tempo, chamado de “TI verde”, que, segundo Pablo Hess (editor da Linux

Magazine), nada mais é do que um conjunto de práticas que visam tornar mais sustentável e menos

prejudicial o uso da computação. Essas práticas demonstram a capacidade de uma empresa em

gerenciar seus ativos tecnológicos de forma eficiente, sempre mantendo o equilíbrio entre a sociedade e

o meio ambiente.

È visível que a preocupação das grandes empresas de Tecnologia da Informação não é pura e

simplesmente a redução do impacto de suas ações ao meio ambiente, mas sim o ganho financeiro que

terão em vários aspectos ao introduzir os conceitos difundidos pela “TI verde”, também

internacionalmente conhecida como “Green computing”.

Os conceitos utilizados nos projetos de TI verde têm sido gerenciados e padronizados por um

dos órgãos de padronização mais bem reconhecidos no mundo o IEEE (Institute of Electrical and

Electronics Engineers), Instituto dos Engenheiros Eletricistas e Eletrônicos, criando um departamento

chamado TCSC (Technical Committee on Scalable Computing), Comitê Técnico de Escalabilidade na

Computação.

O TCSC visa estabelecer padrões para o que chamam de escalabilidade, adaptando os novos

modelos de desenvolvimento de hardware e software com o intuito de melhorar a utilização de ativos,

mantendo o desempenho alcançado pelos mesmos.

Figura 1 – objetivos do desenvolvimento sustentável.

3. Os processos utilizados no desenvolvimento de softwares verdes

Como definido anteriormente, processo no desenvolvimento de softwares é um arcabouço de

tarefas que são necessárias para construir um software de alta qualidade. Um processo de software

define a abordagem que é adotada quando o software é elaborado.

Podemos citar algumas outras características para relatarmos a importância dos processos no

desenvolvimento de softwares. Como já visto, os processos fazem parte da terceira camada da

engenharia de software e são responsáveis pela eficiência das demais. Vários modelos de processos

Page 4: Artigo Tecnico Software Sustentavel

foram desenvolvidos seguindo esses conceitos e são uma representação abstrata dos processos. Sua

aplicação evolui no decorrer do desenvolvimento dos processos e são de fundamental importância para

o desenvolvimento de sistemas de grande escala, como é o caso dos softwares sustentáveis.

Temos como padrão para a utilização dos processos, um arcabouço que contém, na maioria das

vezes, as seguintes características:

Figura 2 – Arcabouço de processo de software

Analisaremos alguns dos modelos de processos utilizados no desenvolvimento dos softwares

sustentáveis:

Modelo de processo Espiral:

O modelo Espiral foi sugerido por Boehm em 1988, e tinha como objetivo propor a

integração de diversos outros modelos existentes na época, utilizando somente os pontos

fortes de cada um eliminando assim as falhas. Esse modelo de processo assume que o

desenvolvimento deve ocorrer em ciclos, onde cada ciclo deve conter um período de

avaliação e planejamento.

Cada um dos ciclos utilizados nesse modelo possui quatro tarefas fundamentais, sendo

essas:

Determinação dos objetivos, alternativas e restrições;

Avaliação de alternativas, identificação e solução de riscos;

Desenvolvimento do produto propriamente dito e

Avaliação do produto final.

Por se tratar de um modelo em que, ao fim de cada ciclo, se obtém um protótipo executável do

projeto, os testes necessários são efetuados para averiguar se o software em desenvolvimento alcança o

nível desejado de desempenho e promove a economia dos recursos computacionais em sua execução.

Modelo de processo Incremental e Iterativo

Tem o objetivo de desenvolver o software através de incrementos sucessivos no âmbito

do sistema, é como se o sistema criado fosse alargado progressivamente, essa

abordagem é utilizada principalmente na resolução de problemas complexos, como são

os propostos pelos conceitos que estudamos de software sustentável. É considerado uma

extensão do modelo Espiral, porém é mais rigoroso no quesito controle de falhas e ações

efetivas para conter riscos.

Page 5: Artigo Tecnico Software Sustentavel

Esse modelo consiste em dividir o problema em várias partes efetuando assim iterações

em paralelo para resolução do mesmo. Cada conjunto de iterações solicitará a aplicação

de outro conjunto de incrementações ao passo em que o cronograma do projeto é

seguido.

Aplicado ao desenvolvimento de softwares sustentáveis podemos observar nesse modelo as

seguintes vantagens:

Possibilita a avaliação dos riscos cada vez mais cedo em pontos críticos do projeto, e

identifica medidas para eliminá-los ou controlá-los;

Reduz os riscos de custo caso as alterações a serrem efetuadas tenham sido identificadas

somente após a inclusão de um incremento, perde-se somente o trabalho aplicado na

ultima iteração;

Permite um gerenciamento mais democrático das funções de cada um dos membros da

equipe envolvidos no projeto.

Modelo de desenvolvimento concorrente

Assim como visto nos modelos anteriores, o modelo de desenvolvimento concorrente,

segundo Pressman (2002 cap.2), também aplica a estratégia de divisão e conquista,

dividindo problemas complexos em menores a fim de criar a solução em várias diretivas

onde a soma das soluções menores resultarão na solução do problema inicial. Nesse

modelo é definida uma série de eventos que irão iniciar transições de estado para estado,

de acordo com cada uma das atividades, por ter seu planejamento voltado a uma rede de

atividades a serem efetuadas podemos a qualquer instante termos uma visão exata de

qual o status do projeto em execução.

Nesse modelo de processo conseguimos visualizar de forma clara a utilização do

arcabouço de processo contendo além dos tópicos comunicação, planejamento,

modelagem, construção e implantação; alguns estados intermediários.

Ex: Na fase de comunicação, acrescentou-se o estado aguardando modificações; a

modelagem fica sendo utilizada com estados de nenhum ou em desenvolvimento, essa

última ainda, dependendo das alterações, pode receber o estado de aguardando

modificações ou em revisão.

O fato é que o desenvolvimento de softwares sustentáveis trata de problemas que são

paradigmas, onde ainda não se tem uma solução específica a ser considerada como mais eficiente,

dessa forma os modelos que se utilizam de soluções parciais ou utilização de protótipos durante o

processo de desenvolvimento, podem ser utilizados como forma de adquirir informações de forma a

permitir que o software possa ser aperfeiçoado durante toda a aplicação do modelo de processo.

4. ISO 14000 utilizada no desenvolvimento de softwares sustentáveis

Segundo a International Organization for Standardization (ISO), a ISO 14000 nada mais é do que

um Sistema de Gestão Ambiental com Especificações em Guia para Uso alem disso é constituída por

19 documentos, alguns deles ainda em fase de elaboração. É tipo por profissionais especializados em

Page 6: Artigo Tecnico Software Sustentavel

Gestão Ambiental como a base fundamental para empresas que desejam iniciar um SGA (Sistema de

Gestão Ambiental) e alcançar a certificação do órgão certificador.

A ISO 14000 Estabelece requisitos para que as empresas possam gerenciar seus produtos e

processos de forma a não agredir o meio ambiente. Dessa maneira, a comunidade não sofre com os

resíduos gerados sendo beneficiada num amplo aspecto.

Dessa forma os processos de desenvolvimento de software já estudados, quando aplicados aos

softwares sustentáveis, levam em consideração algumas das exigências, descritas abaixo:

Política Ambiental: A gestão do projeto do software deve elaborar uma Politica Ambiental que

represente seus produtos e serviços, que seja divulgada entre os funcionários e a comunidade. È

importante que esta esteja comprometida com o cumprimento dessas políticas. Deve-se obter o

cumprimento legal e buscar o melhoramento continuo do desempenho ambiental do produto. O

comprimento dessa política pode ser visualizado no arcabouço dos processos no âmbito da

comunicação, que como defina por Pressman é responsável por todo o levantamento de requisitos do

projeto, ou seja, o objetivo a ser alcançado pelo mesmo, no caso do software verde alcançar e cumprir a

Política Ambiental adota pela empresa.

Aspectos Ambientais: A organização precisa ter procedimentos que permitam identificar,

conhecer, administrar e controlar os resíduos que ela gera durante o processamento e uso do produto. O

aspecto ambiental levado em consideração no desenvolvimento do software verde é a economia de

energia, de forma a permitir a expansão das aplicações sem comprometer com isso a Política Ambiental

adotada pela empresa nesse quesito. A economia de energia deve ser o principal tópico abordado no

levantamento dos requisitos e deve ser priorizado também em todas as etapas seguintes no

desenvolvimento do software garantindo aquilo que Sommervile define como evolução constante dos

softwares.

Documentação do Sistema de Gestão Ambiental: O projeto do software assim como todo o

Programa de Gestão Ambiental utilizado pela empresa deve obrigatoriamente documentado, no

arcabouço do processo de desenvolvimento identificamos a necessidade de que cada etapa do projeto

esteja devidamente documentada, os processos já estudados adotam a documentação do software como

um dos produtos finais do projeto. a documentação do software somada ao um Manual do Sistema de

Gerenciamento Ambiental contendo as exigências ambientais descritas na norma, garantem o

comprimento dessa exigência.

Registros: A organização precisa arquivar todos os resultados de auditorias, análises críticas

relativas a questões ambientais. O objetivo de ter esses registros é mostrar e provar, a quem quer que

seja, que o Programa de Gestão Ambiental possui um SGA conforme o que é exigido pela norma, a

utilização desses registros é de fundamental importância para que a empresa obtenha a certificação

referente a ISO 14000, não sendo essa norma uma exceção.

Análise crítica do sistema de Gestão Ambiental (SGA): Baseado nos resultados da auditória do

SGA, a organização deve fazer uma análise crítica do Sistema de Gestão Ambiental e as devidas

alterações, para que atenda as exigências do mercado, clientes, fornecedores e aspectos legais, na busca

da melhoria contínua. Essa análise critica quando aplicada ao software sustentável se utiliza da quarta

camada estudada na Engenharia de Software chamada de Foco na Qualidade, que como definida por

Pressman toma ações durante todo o processo de desenvolvimento garantindo que o produto final ao

ser avaliado para averiguação e garantia dos requisitos levantados inicialmente esteja de acordo com o

que foi proposto para se enquadrar as exigências da norma.

Page 7: Artigo Tecnico Software Sustentavel

5. Conclusão

O software sustentável foi criado para maximizar os componentes de um computador, tornando-o

mais eficiente e sustentável, em sua execução proporciona sempre um ganho financeiro a quem utilizá-

lo, já que o software “verde” tem em seu processo de desenvolvimento o objetivo de consumir menos

recursos dos equipamentos, as particularidades tratadas durante o processo garantem que esse objetivo

seja atingido, essa preocupação não é foco da construção dos softwares “comuns”.

Devemos ressaltar a extrema importância da utilização de um modelo de processo para a elaboração

de um software, já que este é o responsável pela eficiência do mesmo antes durante e depois de sua

construção dos demais, utilizamos de três dos modelos de processo mais utilizados Espiral, Incremental

e de desenvolvimento concorrente, analisando como a abordagem desses processos é feita na

construção de softwares considerados verdes.

Nota-se que o desenvolvimento do software sustentável que o mesmo é aperfeiçoado durante toda a

aplicação do modelo de processo, é por esse motivo que os modelos de processo mais utilizados nesses

softwares tem em comum a característica de gerar produtos parciais, alguns utilizando o conceito de

divisão e conquista, outro o conceito de prototipagem, a maior dificuldade está em ainda não se ter um

modelo a ser considerado “o mais eficiente” para a elaboração desse tipo de software.

Analisamos como os modelos de processo utilizados nos softwares sustentáveis se enquadram as

exigências da norma 14000, tendo em suma toda a base necessária para o levantamento dos requisitos e

garantia de que o resultado será satisfatório e estará de acordo com as exigências da mesma, quando um

software construído gera um produto final que atende as essas exigências, esse é considerado um

software verde.

Referências Bibliográficas

UNIVERSIDADE FEDERAL DE CAMPINA GRANDE. O Processo de Desenvolvimento de

Software. Disponível em: <http://www.dsc.ufcg.edu.br/~jacques/cursos/map/html/intro/processo.htm>.

Acesso em: 14 de set. 2011.

NUNES, Demetrius. Processo e Qualidade em Engenharia de Software. Disponível em:

<http://www.demetriusnunes.com/resources/qualidade_software.pdf>. Acesso em: 14 de set. 2011.

PACTO GLOBAL-CREA-PR. ISO 14000. Disponível em:

<http://pactoglobalcreapr.files.wordpress.com/2010/10/iso-14000-sist-gerenc-ambiental.pdf>. Acesso

em: 14 de set. 2011.

Desenvolvimento Sustentável. Disponível em: <http://pt.scribd.com/doc/52895252/Desenvolvimento-

Sustentavel>. Acesso em: 14 de set. 2011.

GONÇALVES, Daniel Bertoll. Ambiente e Desenvolvimento Sustentável – Apostila Básica.

Disponível em: <http://pt.scribd.com/doc/61151915/Apostila-Ambiente-e-Desenv-Sustentavel-Final>.

Acesso em: 14 de set. 2011.

SANTOS, Ronnie Edson de Souza; de MAGALHÃES, Cleyton Vanut Cordeiro; NETO. Jorge Da

Silva Correia. Green Computing: Práticas Benéficas ao Meio Ambiente e Vantajosas para as Empresas.

Page 8: Artigo Tecnico Software Sustentavel

Disponível em: <http://pt.scribd.com/doc/33473087/Green-Computing-Praticas-Beneficas-Ao-Meio-

Ambiente-e-Vantajosas-Para-as-Empresas>. Acesso em: 14 de set. 2011.

HESS, Pablo. TI verde com Linux e Software Verde. Disponível em:

<https://www.ibm.com/developerworks/mydeveloperworks/blogs/752a690f-8e93-4948-b7a3-

c060117e8665/entry/ti_verde_com_linux_e_software_livre41?lang=en>. Acesso em: 25 de ago. 2011.

DA SILVA, Manoel R. P.; ZANETI, Gislaine B.; de SOUZA, ZAGO, Maria G.; N., André. TI Verde –

Princípios e Práticas Sustentáveis para Aplicação em Universidades. Disponível em:

<http://www.labplan.ufsc.br/congressos/III%20SBSE%20-%202010/PDF/SBSE2010-0085.PDF>.

Acesso em 25 de ago. 2011.

RASMUSSEN, Michael. Desenvolvendo um programa sustentável e econômico de conformidade com

TI. Disponível em:

<http://www.rsa.com/solutions/compliance/wp/9767_DSCE_IT_Com_Prog_WP_0408_BR.pdf>.

Acesso em: 25 de ago. 2011.

FACOM - Faculdade de Computação, UFMS - Universidade Federal do Mato Grosso do Sul. A TI

Verde no contexto de Desenvolvimento de Software. Disponível em:

<http://tiverde.50webs.com/tiverde.html>. Acesso em: 11 de Out. de 2011.

GONÇALVES, Marcelo Benites; JÚNIOR, Orlando Zotelli; PAIVAL, Débora M. Barroso.

Sustentabilidade em Empresas de Tecnologia da Informação. Disponível em:

<http://www.dct.ufms.br/gestor/titan.php?target=openFile&fileId=303>. Acesso em: 11 de Out. de

2011.

MARTINS, Paula Cristina Ventura. Processo incremental e iterativo. Disponível em:

<http://w3.ualg.pt/~pventura/ep/aulas_tp/t1_g8.pdf>. Acesso em: 11 de Out. de 2011.

ROCHA, Vera; SANTOS, Marta. Modelo em espiral. Disponível em:

<http://www.cin.ufpe.br/~cadcn/files/Monitoria/Monitoria%20-

%20Gradua%E7%E3o/material%20de%20apoio/esperial.pdf>. Acesso em: 11 de Out. de 2011.

LESSA, Rafael Orivaldo; JUNIOR, Edson Orivaldo Lessa. Modelos de Processos de Engenharia de

Software. Disponível em: <http://xps-project.googlecode.com/svn-

history/r43/trunk/outros/02_Artigo.pdf>. Acesso em: 11 de O0 de 2011.

SOLEDADE, Maria das Graças Moreno; FILHO, Luciano Angelo Francisco Karel Nápravník;

SANTOS, Jair Nascimento; da SILVA, Mônica de Aguiar Mac-Allister. ISO 14000 e a Gestão

Ambiental: uma Reflexão das Práticas Ambientais Corporativas. Disponível em:

<http://engema.up.edu.br/arquivos/engema/pdf/PAP0435.pdf>. Acesso em: 11 de Out. de 2011.

PRADO, Alex. Sustentabilidade em TI: indo além da “TI Verde”. Disponível em:

<http://www.profissionaisti.com.br/2009/01/sustentabilidade-em-ti-indo-alem-da-ti-verde/>. Acesso

em: 11 de Out. de 2011.

FALBO, Ricardo de Almeida. Processo de Software. Disponível em:

<http://www.inf.ufes.br/~falbo/files/ProcessoSoftware.pdf>. Acesso em: 24 de Out. de 2011.

Page 9: Artigo Tecnico Software Sustentavel

PORTELLA, Cristiano R. R.. Conceitos Introdutórios de Engenharia de Software. Disponível em:

<http://www.cesarkallas.net/arquivos/faculdade/engenharia_de_software/03-

Conceitos%20introdut%A2rios/Conceitos%20Introdut%A2rios.pdf>. Acesso em: 24 de Out. de 2011.