UNIFACOL - CENTRO UNIVERSITÁRIO FACOL
ISSN 2316-5804S.I.NFORMERevista de Tecnologia da Informa??o do Curso de Sistemas de Informa??oFaculdade Escritor Osman da Costa Lins - FACOLVitória de Santo Ant?o, PE – ANO 3, N?. 3 – dez.2014S.I.nformePublica??o anualRevista do Curso de Sistemas de Informa??o – Bacharelado da Faculdade Escritor Osman da Costa Lins – FacolDiretor da FACOL:Dr. Paulo Roberto de Leite ArrudaVice-Diretor da FACOL:Túlio Albuquerque DuarteDiretor Pedagógico:Prof. Péricles Tavares Austregésilo FilhoCoordenadora Geral Acadêmica:Prof?. Nancy Farias Martins LeiteCoordenador do Curso de Sistemas de Informa??oProf. MSc. Cleyton Mário de Oliveira RodriguesConselho Editorial:Cleyton Mario de Oliveira RodriguesElcias Ferreira da Costa?Péricles Tavares Austregésilo FilhoJosé Procópio da SilveiraGleibson Rodrigo Silva de OliveiraConselho Científico:Prof. MSc. Cleyton Mário de Oliveira RodriguesProf. MSc. Ryan Ribeiro de AzevedoProf?. MSc. Ana Cristina Freitas CesarStefano ToscanoProf?. Esp. Audrey Bezerra de VasconcelosProf. Esp. Iuri Santos SouzaProf?. Msc. Jailze de Oliveira SantosProf?. Esp. Gleibson Rodrigo Silva de OliveiraDiagrama??o:Evandro Bonifácio de Andrade – Departamento de Web Design.Publica??o:Associa??o Vitoriense de Educa??o, Ciências e Cultura, entidade mantenedora da Faculdade Escritor Osman da Costa Lins – FACOL.? CNPJ: 03.391.726/0001-90.Endere?o:Rua do Estudante, 85, Bairro Universitário, Vitória de Santo Ant?o/PE. CEP 55612-650. Tel. (81) 3114-1200 - e-mail: contato@IMPRESS?O:Luci Artes Gráficas Ltdalucigraf@.brREVISTA DE TECNOLOGIA DA INFORMA??O DO CURSO DE SISTEMAS DE INFORMA??O: S.I.nformeVitória de Santo Ant?o, PE: Facol, a. 3, n.3 ___. 2014, ____p. ISSN 2316-5804SUM?RIO TOC \o "3-3" \t "Título 1;1;Título 2;2;SINF TITULO;1" Gera??o Automática de Código Java a partir do Modelo de Dados PAGEREF _Toc428970198 \h 3Minera??o de Dados para Descoberta de Padr?es: Um Estudo de Caso aplicado à Base de Dados da Delegacia Regional do Trabalho PAGEREF _Toc428970199 \h 15Experiências usando Revis?es Sistemáticas em Planejamento Estratégico de SI/TI PAGEREF _Toc428970200 \h 15Benefícios e Desafios encontrados na ado??o de Cloud Computing PAGEREF _Toc428970201 \h 30Classifica??o Dos Fatores de Risco Que Podem Afetar a Implanta??o Da Linha De Produto De Software. PAGEREF _Toc428970202 \h 42Desenvolvimento e Valida??o de Componente Decodificador de Vídeo para o Middleware Ginga PAGEREF _Toc428970203 \h 51Gerenciamento ?gil de Fornecedor de Software: Um paradigma a ser quebrado PAGEREF _Toc428970204 \h 60Klon: Uma Ontologia para o Domínio da Clonagem PAGEREF _Toc428970205 \h 73Scrum-Seg: Uma extens?o da Metodologia Scrum para Aplica??es Seguras PAGEREF _Toc428970206 \h 79Computa??o Forense e as oportunidades oferecidas pela Computa??o em Nuvem PAGEREF _Toc428970207 \h 90EDITORIALGera??o Automática de Código Java a partir do Modelo de DadosJansser Ribeiro, Renato Lima Novais, Thiago Souto MendesGrupo de Informática Aplicada - Instituto Federal da Bahia – Campus Santo Amaro CEP 44.200-000 – Santo Amaro – BA – Brasiljansser_costa@, renatonovais@, tsoutom@Abstract. In software development one has to often realize activities such as insert, update, select and delete of basic entities of the system. Such activities are repetitive and impact on cost and construction time of the software. This paper presents a tool for automating these activities from the data model. A study of function points was conducted to evaluate the impact of using the tool.Resumo. No desenvolvimento de software é recorrente a realiza??o de tarefas de cadastros básicos das entidades do sistema. Tais tarefas s?o repetitivas e impactam nos custos e prazos. O trabalho apresenta uma ferramenta de automatiza??o dessas tarefas a partir do modelo de dados. Um estudo de pontos por fun??o foi realizado para ver o impacto do uso da ferramenta.1. Introdu??oNo contexto de desenvolvimento de software de Sistema de Informa??o (SI), é recorrente a necessidade de implementa??o de cadastros básicos associados aos requisitos funcionais ou regras de negócio [Sommerville 2007, p. 18]. Esses cadastros s?o pré-requisitos para a utiliza??o das principais funcionalidades do sistema. Como por exemplo, um software de venda, que tem como um de seus principais requisitos funcionais a venda de produto, necessita previamente que haja o cadastro de diversas entidades básicas do sistema, como: cliente, fornecedor, produto, bairro, cidade, etc. Para cada uma dessas entidades, é necessário fazer as quatro opera??es básicas que s?o: inclus?o, atualiza??o, listagem e exclus?o.Considerando a abordagem de orienta??o a objetos para a constru??o de SI, devem ser criadas, para cada uma das entidades básicas do sistema, tanto as classes de persistência que manipulam o banco de dados, quanto às classes que implementam as interfaces com o usuário.Essas tarefas básicas consomem um tempo considerável do processo de desenvolvimento de software [Sommerville 2007, p. 281]. Por outro lado, seria interessante se este tempo pudesse ser dedicado principalmente às tarefas de implementa??o das funcionalidades mais importantes dos sistemas. ? possível observar que existe uma repeti??o no desenvolvimento dessas tarefas. Da mesma forma, existe um padr?o de codifica??o das mesmas, permitindo que elas possam ser automatizadas. Isto pode ser feito, baseando-se nas informa??es dos metadados das tabelas, os quais definir?o como ser?o montados os SQLs e as telas das tabelas básicas.Tendo em vista esse contexto, o objetivo deste trabalho é apresentar a ferramenta GEA (Gera??o de Código Automático) que proporciona uma alternativa para automatizar a realiza??o das tarefas de codifica??o citadas anteriormente. Essa ferramenta comunicasse com dois bancos de dados bastante utilizados na atualidade, MySQL [MySQL 2011] e PostgreSQL [PostgreSQL 2011], e recupera os metadados das tabelas. Com posse dos metadados ela gera, de maneira eficiente, eficaz e simples, toda estrutura básica do software na linguagem JAVA. A GEA foi desenvolvida como plugin do Eclipse, uma das IDEs (Integrated Development Environment) mais utilizadas atualmente [Cardoso 2009].Para avaliar a eficiência da ferramenta foi realizado um estudo de caso através da realiza??o da APF (Análise dos Pontos de Fun??o) do sistema e a compara??o do resultados obtidos no desenvolvimento do SIGE (Sistema de Gerenciamentos de Eventos) na vers?o para Desktop. O SIGE é um sistema desenvolvido pelo GIA (Grupo de Informática Aplicada). Atualmente existe uma vers?o web do sistema no endere?o ().Neste artigo, a Se??o 2 apresenta a ferramenta desenvolvida, descrevendo suas funcionalidades gerais, a Se??o 3 apresenta o processo de extra??o de metadados do MySQL e do PostgreSQL. A Se??o 4 apresenta a análise de um estudo de caso e a Contagem de Pontos de Fun??o. A Se??o 5 as vantagens e desvantagens da GEA. A Se??o 6 traz a rela??o dos trabalhos relacionados. Finalmente, conclui-se o artigo com a Se??o 7, apresentando as considera??es finais e os trabalhos futuros.2. A Ferramenta GEAA ferramenta GEA foi desenvolvida utilizando a linguagem Java e integrada ao IDE Eclipse sob a forma de plug-in. Na Figura 1 s?o apresentados os principais passos do funcionamento da ferramenta: primeiramente a ferramenta conecta com o banco de dados escolhido (i), extrai os metadados (ii) e por fim, gera as classes do programa (iii).Figura SEQ Figura \* ARABIC 1 - Funcionamento geral da ferramentaTendo em vista as particularidades estruturais de cada SGBD (Sistema Gerenciador de Banco de Dados) utilizado, procurou-se desenvolver a ferramenta de uma maneira que pudesse ser estendida para outros SGBDs. Para tal, foi utilizado o padr?o de projeto Strategy. A partir disso, foi desenhada primeiramente uma solu??o para os sistemas, MySQL e PostgreSQL, que será detalhada a seguir.2.1. Extra??o de metadados do MySQL e do PostgreSQLPara que um sistema seja desenvolvido a partir de um modelo de dados faz-se necessário o conhecimento dos metadados desse modelo. Através da extra??o dos metadados é possível extrair as informa??es necessárias para a gera??o do código fonte.Nesta ferramenta foi realizada a extra??o dos metadados através da utiliza??o de APIs (Application Programming Interface) do JDBC (Java Database Connectivity). As principais informa??es a serem extraídas pela ferramenta s?o: a) os nomes das tabelas contidas em um banco de dados; b) as colunas de uma determinada tabela e os seus tipos.A extra??o dos metadados foi feita utilizando as classes DatabaseMetaData e a ResultSetMetaData da API JDBC. Tais classes possuem métodos que facilitam a captura de metadados, como por exemplo, o método “getSchemas();” que retorna todos os schemas de um servidor de banco de dados.Cada SGBD possui especificidades que os diferenciam. Como exemplo pode ser citado o MySQL, que identifica um banco de dados como um “catalog”. Por sua vez, o PostgreSQL utiliza o termo “schemas”. Além disso, existem nomenclaturas diferentes para tipos de dados nesses dois SGBDs, as quais devem ser tratadas pela ferramenta. Tais diferen?as v?o influenciar diretamente na implementa??o das APIs do JDBC.2.2. Tipo de dadosUma quest?o fundamental para se desenvolver sistemas de gera??o automática a partir do modelo de dados é o mapeamento dos tipos de dados do SGBD para a linguagem escolhida. A Tabela 1 apresenta um mapeamento dos tipos de dados do MySQL para tipos de dados Java, componentes Swing e ainda componentes HTML.Tabela SEQ Tabela \* ARABIC 1 - Mapeamento dos tipos dos dados do MySQL para os tipos do Java.2.3. Gera??o de códigoApós a extra??o dos metadados, é feita a transforma??o das informa??es extraídas em código-fonte. Para a gera??o automática de código foram utilizadas APIs fornecidas pelo JDT (Java Development Tools), que permitem acessar e manipular código-fonte Java [Vogella 2010]. Uma classe no JDT é chamada de “ICompilationUnit”. A Figura 2 mostra a cria??o de uma classe de maneira programática.Figura SEQ Figura \* ARABIC 2 - Gerando uma classe com JDT.3. Exemplo de usoNesta se??o é apresentado um exemplo de uso da ferramenta. Na Figura 3 s?o apresentadas as telas de configura??o utilizadas para gera??o do código fonte. Na (Figura 3a) tem-se a tela na qual o usuário deve informar os par?metros de configura??o para acesso ao sistema gerenciador banco de dados. Após essa etapa, o usuário deve selecionar o banco de dados (schema) com o qual deseja trabalhar (Figura 3b). Por fim, todas as tabelas do banco de dados selecionado s?o apresentadas (Figura 3c). O usuário ent?o seleciona as tabelas de interesse e clica em “OK”. Passado todas essas etapas, o código fonte será gerado para as tabelas selecionadas.Figura SEQ Figura \* ARABIC 3 - Telas de configura??o do sistema GEA.Na Figura 4 é apresentada da estrutura do projeto Java gerado no Eclipse, mostrando cada uma das classes geradas para a tabela selecionada. S?o geradas classes Beans que representam cada tabela selecionada do banco de dados. No pacote ‘bd’, as classes de manipula??o e acesso ao banco de dados s?o criadas. As classes que implementam as interface com o usuário ficam localizadas no pacote view. ? importante notar que o sistema gerado utiliza o padr?o arquitetural MVC (Model View Controller), e padr?es de projeto, dentre eles, DAO (Data Access Object), Singleton, Facade [Gamma et al. 1995].Figura SEQ Figura \* ARABIC 4 - Classes do programa gerado.Na Figura 5 é possível observar algumas das telas do programa gerado pela ferramenta já em execu??o. A primeira tela – (Figura 5a) – representa a tela principal do sistema. Observe que no menu Iniciar é criado uma op??o para cada tabela gerada. Ao clicar em uma dessas op??es desse menu (‘Configuracoes’, por exemplo), é aberta a tela Inicial de tabela, onde têm-se a listagem dos dados, e as op??es de Inserir, Atualizar, Excluir e Sair (Figura 5b). A tela apresentada na (Figura 5c) representa o formulário utilizado para Inserir/Atualizar os dados da tabela Configuracoes.Figura SEQ Figura \* ARABIC 5- Algumas telas do sistema gerado4. Estudo de Caso4.1. Escopo do Estudo de CasoNa inten??o de validar a ferramenta GEA foi feito um estudo de caso para realizar a medi??o e análise do SIGE. O objetivo do SIGE é apoiar as atividades de gerenciamento dos eventos e acompanhamento das atividades de capacita??o dos servidores de institui??es de ensino.A Tabela 2 apresenta as principais necessidades e funcionalidades do SIGE, retiradas do Documento de Requisitos do projeto elaborado pelo o analista do grupo.Tabela SEQ Tabela \* ARABIC 2- Funcionalidades do Sistema de Gerenciamento de Eventos (SIGE).? importante ressaltar que o SIGE foi desenvolvido através da metodologia de processo de desenvolvimento RUP (Rational Unified Process) [RUP 2011]. Segundo [Silva et al. 2006], o RUP é um processo de engenharia de software bem definido e bem estruturado que define claramente quem é responsável pelo que, como as coisas devem ser feitas e quando fazê-las. O RUP também provê uma estrutura bem definida para o ciclo de vida de um projeto RUP, articulando claramente os marcos essenciais e pontos de decis?o; tornando-se uma maneira de desenvolvimento de software que é iterativa, centrada à arquitetura e guiada por casos de uso. Por fim, o RUP utiliza a UML (Linguagem Unificada de Modelagem) para especificar, modelar e documentar artefatos.Para realizar a medi??o do SIGE elegeu-se a APF que é uma técnica bastante utilizada para medir o tamanho do software, que visa estabelecer uma medida de tamanho do software em Pontos por Fun??o [Vazquez et al. 2005]. Também porque é sugerida para as empresas que pretendem se certificar com MPS.BR (Melhoria de Processos do Software Brasileiro) [Softex 2011].4.2. A Medi??o do SIGE sem a Utiliza??o da GEASegue abaixo na Tabela 3, o detalhamento da contagem estimativa de Pontos de Fun??o do Sistema de Gerenciamento de Eventos SIGE sem considerar a utiliza??o da ferramenta GEA.Tabela SEQ Tabela \* ARABIC 3 - Estimativa de Tamanho do Sistema de Gerenciamento de EventosO total da medi??o do tamanho do SIGE descritas na Tabela 3 resulta em 122 pontos de fun??o n?o ajustados. Após a aplica??o do fator de ajuste no valor de 1,1, tem-se uma estimativa de 134,2 horas a serem gastas no desenvolvimento do base na produtividade histórica dos projetos já realizados pelo grupo de pesquisa GIA será desenvolvido em JAVA por uma equipe com experiência intermediária na plataforma. Assim, o índice de produtividade utilizado é o de 10 Horas/PF. Ent?o, a estimativa de esfor?o é de: 134,2 10 = 1342 HH (Homens\Hora).Levando-se em conta que a equipe de desenvolvedores é formada por 3 estagiários que trabalham 4 Horas/Dia, mas que o trabalham efetivamente 3 horas/dia. E ainda, em média um mês possui 22 dias úteis. O prazo deste projeto será medido por prazo = (Esfor?o em HH) / (Tamanho Equipe*Horas Trabalhadas Dia*Dias ?teis Mês), ou seja, prazo=6,8 meses.Portanto, é possível verificar que foi um sistema que exigiu um tempo de desenvolvimento bem razoável e grande parte do esfor?o foi gasto no desenvolvimento das fun??es de inclus?o, altera??o e exclus?o que poderiam ser facilmente eliminado caso fossem geradas através de uma ferramenta de gera??o automática de código fonte como a GEA.4.3. A Medi??o do SIGE com a Utiliza??o da GEACom o objetivo de validar a utiliza??o da GEA o grupo de pesquisadores utilizou-se o modelo de dados do sistema SIGE para gerar automaticamente as telas de Inclus?o, Altera??o e Exclus?o das tabelas Usuário e Evento, assim as principais telas do sistema foram geradas com pouco esfor?o como se pode observar através da Tabela 4, onde est?o destacadas as funcionalidades que foram eliminadas da contagem de pontos de fun??o.Tabela SEQ Tabela \* ARABIC 4 - Estimativa de Tamanho do Sistema de Gerenciamento de EventosA totaliza??o do tamanho do SIGE descritas na Tabela 4 resultou em 76 pontos de fun??o n?o ajustados. Após a aplica??o de um fator de ajuste no valor de 1,1, tem-se uma estimativa de 83,6, horas a serem gastas no desenvolvimento do SIGE de acordo com as estimativas descritas na se??o 4.3. Ent?o, a estimativa de esfor?o foi de: 83,6 10 = 836 HH (Homens\Hora). Já o prazo do projeto medido foi de 3,2 meses. Porém, o prazo gasto foi maior do que o previsto, no total de 4,0 meses, pois mesm com a utiliza??o da ferramenta GEA foi necessária à realiza??o de ajustes nas telas geradas automaticamente, além da integra??o com as demais telas construídas manualmente.4.3. Resultados ObtidosAtravés da utiliza??o da GEA foi possível gerar as principais telas do sistema rapidamente e eliminar grande parte do esfor?o gasto no desenvolvimento apenas utilizando o modelo de dados. Mesmo sendo necessária a realiza??o de ajustes a ferramenta se mostrou eficiente e de fácil utiliza??o, pois como é possível observar na Tabela 5 a diferen?a do prazo foi de 2,8 meses, por exemplo. Principalmente, no desenvolvimento de funcionalidades básicas de cadastro presentes em praticamente todos os sistemas desenvolvidos e que poderiam ser facilmente geradas.Tabela SEQ Tabela \* ARABIC 5 - Estimativa de Tamanho do Sistema de Gerenciamento de Eventos5. Vantagens e DesvantagensApós o estudo realizado é possível afirmar que a ferramenta traz diversas vantagens e desvantagens, dentre os quais, podem ser citadas: (i) Aumento da produtividade da equipe de desenvolvimento; (ii) Ganho de qualidade interna do projeto, uma vez parte do código fonte é gerado automaticamente; (iii) Garantia de eficácia, pois existe uma redu??o dos erros, pois, por mais que as atividades s?o básicas, desenvolvimento de software sempre está sujeito a inclus?o de defeitos, etc.; (iv) Código com qualidade, uma vez que s?o implementados pela ferramenta e podem ser gerados seguindo as boas práticas de desenvolvimento da empresa;As principais desvantagens e limita??es encontradas foram: (i) A ferramenta n?o gera sistemas web; (ii) ? necessária a cria??o de interfaces de comunica??o com outros SGDBs; (iii) As telas seguem sempre o mesmo formato, fazendo com que os sistemas fiquem sempre com o mesmo template. Servindo assim para família de sistemas. Uma solu??o para isso seria a utiliza??o de diferentes templates de tela. A gera??o seria feita baseado no template escolhido pelo usuário.6. Trabalhos RelacionadosOs trabalhos de pesquisa envolvendo gera??o de código com acesso livre a comunidade acadêmica s?o escassos. A pesquisa revelou que a maioria dos framewoks é desenvolvida pela indústria para atender suas necessidades especificas. O que dificulta a evolu??o dos trabalhos nessa área. Porém, foram encontradas abordagens interessantes sobre o tema que ser?o descritas a seguir e comparadas com a ferramenta GEA.A ferramenta IZCode [Izcode 2010] é um gerador de softwares comerciais de propósito especifico. Isto significa que ele é muito eficiente em gerar sistemas comerciais e se limita a isto. A gera??o de software através IZCode, parte do princípio que todo software comercial segue um padr?o pré-determinado de codifica??o, design de tela e funcionalidades. Através dessa ferramenta é possível gerar códigos em JAVA e .NET. Mas, para ter acesso a todas as funcionalidades do sistema é necessário comprar a ferramenta diferentemente da GEA.O e-Gen [Egen 2010] é uma ferramenta disponibiliza um conjunto de recursos e facilidades que auxiliam a equipe de desenvolvimento e enriquecem a aplica??o gerada. Essa ferramenta disponibiliza um IDE (Integrated Development Environment) que proporciona rapidez no desenvolvimento e garante a robustez das aplica??es. Porém, o suporte a ferramenta é pago e a sua conex?o com o banco de dados só funciona em SGDB comerciais.O FUMIGANT [Adamatti 2006] permite a gera??o de código fonte para a linguagem de programa??o Java. Essa ferramenta permite ganhar rapidez e padr?o no desenvolvimento de atividades repetitivas e produtividade na constru??o de sistemas. O grande problema desta ferramenta é que utiliza diversos frameworks para permitir a gera??o de código o que dificulta a sua implementa??o.Em resumo a ferramenta desenvolvida apresenta três características que a diferenciam dos outros trabalhos encontrados. A ferramenta e os SGDBs s?o abertos comunidade cientifica (i). O código é gerado a partir de um dicionário de dados (ii). A ferramenta gera código para softwares desktop (iii).7. Conclus?oEste trabalho teve como resultado o desenvolvimento de uma ferramenta para gera??o automática de código a partir de um modelo de dados, chamada GEA. Tal resultado foi alcan?ado com êxito, de modo que a ferramenta construída atendeu adequadamente as expectativas.Um ponto a se destacar do trabalho é a integra??o da ferramenta com o IDE Eclipse, um dos mais populares ambientes de desenvolvimento da atualidade, possibilitando a gera??o de código inserida no mesmo ambiente de trabalho, sem a necessidade de utilizar programas externos. A facilidade na adequa??o de outros SGBDS por colaboradores, devido à estrutura na qual a ferramenta foi codificada é outra característica que deve ser enfatizada como um ponto positivo.Através do estudo de caso realizado e a utiliza??o da métrica de Análise de Pontos de Fun??o foi possível verificar as vantagens e desvantagens da utiliza??o da ferramenta.A ferramenta possui algumas limita??es, dentre elas, n?o possuir suporte a chaves estrangeira e tratamento de dados. Como trabalhos futuros pretendem-se estendê-la para suporte as limita??es apresentadas, além de suporte a outros SGBDs. Além disso, realizar novos estudos de caso com sistemas de diferentes domínios de aplica??o.ReferênciasAdamatti, Marcelo, (2006) FUMIGANT: Gerador De Código Java A Partir De Base De Dados, Faculdade Cenecista Nossa Senhora Dos Anjos, Gravataí.Cardoso, Luis, (2009) Desenvolvimento De Um Plug-In Para Extra??o De Estruturas De Código Fonte - Regras de Negócio. UFBA.Eclipse, (2010). Disponível em <;. Acesso em: 20 outubro de 2010.Egen, (2010) E-GEN Developer . Disponível em <http:// .br />. Acesso em: 11 dezembro de 2010.Erich Gamma, Richard Helm , Ralph Johnson , John Vlissides, (1995) Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co., Inc., Boston, MA.Izcode, (2010) IZCode - Gerador de Programas .Net e Java. Disponível em <;. Acesso em: 11 dezembro de 2010.MySQL, (2011) White Paper, MySQL Enterprise Edition: Database. Management. Support., < ;. Acesso em: 21 de maio de 2011.PostgreSQL, (2011) PostgreSQL Global Development Group, Disponível em <;. Acesso em: 21 de maio de 2011.RUP, (2011) White Paper, Rational Unified Process, Best practices for Software Development Teams, Disponível em < ;. Acesso em: 21 de maio de 2011.Santos, Anderson B. (2005), Desenvolvimento De Ferramenta E De Processos Para A Gera??o Automática De Código Java A Partir De Um Dicionário De Dados, Universidade Do Vale Do Rio Dos Sinos Ciência Da Computa??o, S?o Leopoldo.Sommerville, I. (2007) Engenharia de Software, 8a. ed, p.18, p.281, S?o Paulo: Pearson Addison Wesley.Silva, C. C.; Sousa K. F.; Dantas, S. D., (2006) METODES - Metodologia De Desenvolvimento De Software. Faculdade Cenecista de Brasília.Softex, (2011) Associa??o Para Promo??o Da Excelência Do Software Brasileiro – SOFTEX. MPS.BR . Disponível em <softex.br> Acesso em 14 de janeiro 2011.Vazquez, C. E.; Sim?es, G. S; Albert, R. M., (2005) Análise De Pontos De Fun??o – Medi??o, Estimativas E Gerenciamento De Projetos De Software. Editora ?rica, S?o Paulo, 3.ed..Vogella, (2010) Eclipse JDT - Abstract Syntax Tree (AST) and the Java Model – Tutorial. Disponível em: <; Acesso em: 10 de outubro 2010.Minera??o de Dados para Descoberta de Padr?es: Um Estudo de Caso aplicado à Base de Dados da Delegacia Regional do TrabalhoDouglas Gomes de Sousa1, Juliano Lucas Gon?alves1, Anderson Priebe Ferrugem1, Ana Marilza Pernas11Centro de Desenvolvimento Tecnológico – CDTEC Universidade Federal de Pelotas (UFPel) – Pelotas – RS – Brazil{douglasgsousa, julianolg, apferrugem, anamarilza}@Abstract. This work performs data mining process in the database of Delegacia Regional do Trabalho, located in the city of Pelotas, Rio Grande do Sul State, which have data of workers from Rio Grande do Sul used for making worker identifications in the 1930 decade. In the data mining process performed by this work were used clustering techniques, which consists in discovering groups of data that have similar caracteristcs. The clustering algorithms used were the K-means and the Self-Organizing Maps (SOMs). Such algorithms were implemented in a tool developed and used in some of the steps of data mining. The data mining process was performed with each one of the algorithms, in order to compare the results.Resumo. Este trabalho realiza o processo de mineracao na base de dados da Delegacia Regional do Trabalho, localizada na cidade de Pelotas, no estado do Rio Grande do Sul, que contem dados de trabalhadores gauchos utilizados na feitura das carteiras de trabalho na decada de 1930. No processo de mineracao realizado por este trabalho foram utilizadas tecnicas de agrupamento, que consistem na descoberta de grupos de dados que possuam caracteristicas semelhantes. Os algoritmos de agrupamento utilizados foram o K-medias e os Mapas Auto-Organizaveis (SOMs). Tais algoritmos foram implementados em uma ferramenta, desenvolvida e utilizada em algumas das etapas da mineracao. O processo de mineracao foi realizado com cada um dos algoritmos, de modo a comparar os resultados obtidos por estes.1. Introdu??oDesde o advento da tecnologia da computa??o organiza??es utilizam sistemas computacionais para armazenamento, gerencia e interpreta??o de dados. Isso vem ocasionando um aumento substancial no volume de dados mantidos pelas organiza??es, tornando cada vez mais difícil extrair informa??o útil e compreensível desses dados por meio dos métodos operacionais tradicionais. Como forma de contornar esta dificuldade surgiu ent?o o conceito de minera??o de dados. A minera??o de dados é parte de um processo conhecido como DCBD (Descoberta de Conhecimento em Banco de Dados) que, como o próprio nome diz, tem como finalidade auxiliar a descoberta de conhecimento implícito em grandes volumes de dados.Neste escopo, o presente trabalho realiza um estudo de caso sobre os dados antes mantido pela Delegacia Regional do Trabalho (DRT), localizada na cidade de Pelotas, Rio Grande do Sul. Estes dados encontram-se registrados na forma de fichas cadastrais, em papel, geradas para feitura de carteiras de trabalho entre as décadas de 1930 e 1960. Estas fichas foram cedidas pela DRT ao Núcleo de Documenta??o Histórica (NDH) da Universidade Federal de Pelotas (UFPel), para correto manuseio e pesquisa sobre estes dados. Para gerência segura dos dados o NDH conta com um banco de dados a partir do qual é possível armazenar, alterar e consultar os dados da DRT.As consultas a base de dados s?o feitas através de técnicas simples da álgebra relacional, tais como sele??es e jun??es. Entretanto, tais técnicas n?o s?o o suficiente para extrair toda a informa??o potencial existente nos dados. O volume de dados da DRT é grande e aumentará ainda mais à medida que mais dados forem inseridos, gerando uma grande quantidade de informa??o implícita (n?o visível com pesquisas simples). Desta forma, este trabalho procura melhorar o acesso a informa??es contidas nos dados da DRT, estudando uma forma de realizar o cruzamento destes através de técnicas de minera??o de dados, mais apropriadas para um volume grande de dados. Ao final, foi desenvolvida uma ferramenta que aplicasse tais técnicas, sendo utilizada natentativa de resgatar informa??es n?o visíveis apenas com pesquisas simples.Este artigo é organizado da seguinte forma. Na Se??o 2 s?o abordados alguns conceitos sobre minera??o de dados. Na Se??o 3 s?o apresentados os algoritmos de agrupamento utilizados no trabalho. Na Se??o 4 é apresentado o problema da DRT, do qual se originaram os dados utilizados no trabalho. Na Se??o 5 é explicado o processo de minera??o realizado no trabalho. Na Se??o 6 é apresentada a ferramenta utilizada na minera??o. Na Se??o 7, s?o apresentados os resultados obtidos pelo processo de minera??o. Finalmente, na se??o 8 s?o apresentados a conclus?o e os trabalhos futuros.2. Minera??o de DadosNa defini??o de [Fayyad, Piatetsky-Shapiro and Smyth 1996], minera??o de dados é a aplica??o de algoritmos específicos para extrair padr?es de um conjunto de dados. Um padr?o, no ponto de vista deste processo, pode ser definido como um evento ou combina??o de eventos que ocorrem freqüentemente em um banco de dados, onde cada evento é representado por um conjunto de dados. Os padr?es extraídos pelo processo de minera??o podem revelar algum conhecimento útil escondido nos dados. Para tanto esse processo é composto por etapas que ser?o detalhadas na sub-se??o 2.1.2.1 Etapas da minera??oO processo de minera??o de dados é composto por uma série de etapas, podendo envolver intera??o significativa com o usuário e conter itera??es (loops) entre duas etapas [Fayyad, Piatetsky-Shapiro and Smyth 1996].Segundo [Han and Kamber 2006], o processo de minera??o de dados é constituído de sete etapas: limpeza dos dados, integra??o dos dados, sele??o dos dados, transforma??o dos dados, aplica??o do algoritmo de minera??o de dados, avalia??o dos padr?es e representa??o do conhecimento.A etapa de limpeza dos dados consiste em encontrar e corrigir erros existentes nos dados, como um campo importante que n?o possui um valor armazenado ou este está incorreto (apresenta discrep?ncia ou está escrito de forma errada). Tais erros podem prejudicar os resultados da minera??o se n?o forem adequadamente corrigidos.Integra??o dos dados é o processo de combinar dados vindos de várias fontes diferentes em um único e coerente repositório de dados, como um data warehouse. Estas fontes podem incluir diferentes bancos de dados, cubos de dados ou arquivos A etapa de sele??o dos dados consiste em recuperar os dados relevantes para a realiza??o da análise. A relev?ncia ou n?o de determinados dados vai depender do objetivo previamente tra?ado que se deseja atingir com a minera??o. Selecionar apenas os dados relevantes garante um melhor resultado da minera??o de dados, tornando o processo mais rápido e os padr?es encontrados mais fáceis de serem interpretados.Na etapa que antecede a aplica??o do algoritmo de minera??o de dados, os dados s?o transformados e consolidados em um formato apropriado para a minera??o. A transforma??o de dados, segundo [Han and Kamber 2006], pode envolver uma série de opera??es, como suaviza??o, agrega??o, generaliza??o, normaliza??o e constru??o de atributos.A aplica??o do algoritmo de minera??o é a etapa principal do processo, todas as demais etapas s?o realizadas em fun??o desta. O algoritmo de minera??o recebe como entrada os dados pré-processados (pelas etapas anteriores) e gera como saída padr?es que refletem o comportamento dos dados recebidos. A forma como os padr?es s?o gerados e o significado destes apresenta varia??o para cada algoritmo de minera??o de dados. Porém, nem todos os padr?es gerados pela minera??o s?o válidos ou úteis. Assim, na etapa de avalia??o dos padr?es, s?o realizadas medidas de interesse para identificar os padr?es que realmente apresentam alguma utilidade.Uma vez que os padr?es foram encontrados e possivelmente filtrados pela etapa anterior, o último passo é a apresenta??o do conhecimento obtido em uma forma legível ao usuário. Nesta etapa, s?o utilizadas técnicas de visualiza??o e representa??o do conhecimento. Estas técnicas incluem constru??o de regras, árvores de decis?o, representa??o de grupos, tabelas, entre outras.2.2 Algoritmos de minera??o de dadosSegundo [Han and Kamber 2006], os algoritmos de minera??o de dados podem ser classificados quanto ao tipo de banco de dados minerado (relacional, orientado a objetos ou data warehouse), tipo de técnica utilizada (métodos estatísticos, visualiza??o, redes neurais, etc.), aplica??o adaptada (finan?as, telecomunica??es, marketing, análise de DNA, entre outros) e ao tipo de padr?o encontrado (classifica??o, associa??o e agrupamento). Esta última forma de classifica??o dos algoritmos foi adotada como referência por este trabalho, uma vez que o estudo realizado pelo mesmo é focado em um tipo específico de padr?o. Quanto ao tipo de padr?o encontrado, os algoritmos de minera??o de dados podem ser classificados como se segue.Classifica??o: consiste em encontrar descri??es de classes previamente definidas a partir dos dados que lhes s?o fornecidos.Associa??o: constrói regras, denominadas regras de associa??o, que descrevem o comportamento de determinados atributos, associando um valor de um atributo a um valor de outro atributo.Agrupamento: é utilizado quando n?o há uma defini??o prévia das classes a serem descritas. Este algoritmo constrói um número finito de grupos e distribui os objetos do banco de dados em tais grupos baseando-se na similaridade entre estes objetos, de modo que objetos semelhantes fiquem no mesmo grupo e objetos distintos fiquem em grupos diferentes. Cada grupo de objetos pode ser visto como uma classe recém descoberta.Este trabalho realiza um estudo de caso no qual objetiva-se extrair padr?es de dados que n?o possuem classes definidas ou atributos a serem associados, sendo assim necessário utilizar algoritmos de agrupamento. Desta forma, foi dada uma aten??o maior a esta classe, que será abordada de forma mais detalhada na se??o seguinte.3. Minera??o por AgrupamentoO agrupamento é uma das classes de algoritmos de minera??o de dados quanto ao tipo de padr?o encontrado. Técnicas de agrupamento s?o usadas em ocasi?es nas quais se deseja realizar a minera??o de dados em objetos que n?o possuem um rótulo (atributo) especificando sua classe. Em geral, o rotulo n?o existe porque as classes n?o s?o inicialmente conhecidas. Nestes casos, o agrupamento é utilizado para encontrar classes e gerar rótulos para elas, através da forma??o de grupos baseada na similaridade entre os objetos. O objetivo dos algoritmos de grupamento é maximizar a similaridade intragrupal e minimizar a similaridade intergrupal [Quintales 2007]. Cada grupo formado constitui uma classe recém descoberta.Para determinar se dois objetos s?o semelhantes ou distintos utilizam-se, ent?o, medidas de dist?ncia. Quanto menor for dist?ncia entre dois objetos, maior o grau de similaridade entre eles. Existem medidas diferenciadas para atributos numéricos (valores quantitativos) e atributos categóricos (valores qualitativos). Entre as medidas mais comuns, segundo [Louren?o, Lobo and Ba??o 2004], est?o a dist?ncia Euclidiana (para atributos numéricos) e a dist?ncia de Hamming (para atributos categóricos).A seguir é apresentada uma descri??o dos algoritmos de agrupamento K-médias e Mapas Auto-organizáveis, utilizados no trabalho.3.1 K-médiasO algoritmo K- médias é um método de particionamento, apresentado em [MacQueen 1967], que distribui n objetos em k grupos, k ≤ n, de modo que cada objeto fique o mais próximo possível do centróide de seu grupo. No K-médias, o centróide de um grupo é representado pela média dos valores dos objetos que pertencem ao grupo.O algoritmo funciona da maneira como se segue. Inicialmente, k objetos (k definido pelo usuário) s?o selecionados aleatoriamente dentre os n objetos disponíveis. Cada um dos k objetos selecionados será o centróide inicial de um grupo. Depois, cada um dos objetos restantes é atribuído ao grupo cujo centróide é o mais próximo deste objeto. Ent?o, o novo centróide de cada grupo é calculado e os objetos s?o reagrupados de acordo com estes novos centróides. O processo segue de forma iterativa até que os grupos fiquem estáveis, isto é, até que todos os objetos permane?am em seus grupos durante uma itera??o.O algoritmo K-médias descrito acima é restrito a objetos que possuam apenas valores numéricos, uma vez que n?o é possível calcular a média entre valores categóricos. Como forma de contornar esta limita??o, uma nova vers?o do algoritmo K-médias para dados categóricos foi proposta em [Lei, He and Li 2006]. Nesta vers?o, o centróide de cada grupo é representado pela freqüência com que cada categoria ocorre no grupo. O funcionamento do algoritmo, de maneira geral, é o mesmo do K-médias, diferenciando-se apenas na forma??o dos centróides e no cálculo da dist?ncia.3.2 Mapas Auto-organizáveisOs mapas auto-organizáveis (Self-Organizing Maps - SOMs), também conhecidos como Mapas de Kohonen, consistem de uma técnica de visualiza??o de dados criada por Teuvo Kohonen que consiste em representar dados multidimensionais em um espa?o de poucas dimens?es (geralmente uma ou duas) através do uso de redes neurais [Kohonen 2001].A estrutura de um SOM é composta por um número finito e pré-determinado de nodos dispostos de formas variadas, como um quadrado ou um favo de mel. Cada nodo é conectado a um conjunto de vetores de entrada, que constitui o conjunto de treinamento do algoritmo.Cada nodo possui uma posi??o topológica específica (uma coordenada x, y no mapa) e contém um vetor de pesos com o mesmo número de dimens?es dos vetores de entrada. Assim, cada vetor de entrada é representado na forma X = (x1,...,xn) e cada nodo contêm um vetor de pesos W = (w1,...,wn), sendo n o número de dimens?es.Durante o treinamento, os pesos dos nodos s?o ajustados de modo a se assemelharem aos vetores de entrada. Este ajuste ocorre de forma iterativa, formando áreas no mapa que refletem as características dos vetores de entrada. Assim, ao final do treinamento, o SOM constitui um mapeamento dos valores dos dados de entradaO algoritmo de treinamento do SOM, em sua forma convencional, trabalha apenas com valores numéricos, o que acaba limitando o seu uso na minera??o de dados, que muitas vezes envolve dados categóricos. Assim, foi proposta em [Hsu 2006] uma nova vers?o do algoritmo, capaz de realizar o treinamento com tais dados. Este algoritmo implementa uma nova maneira de calcular a similaridade entre objetos, baseada em hierarquias de dist?ncia. Uma hierarquia de dist?ncia é uma árvore composta por nodos contendo valores categóricos, onde os nodos de nível mais alto (mais próximos da raiz) representam valores genéricos enquanto os de nível mais baixo (mais próximos das folhas) representam valores mais específicos.4. Defini??o do ProblemaA DRT (Delegacia Regional do Trabalho) do Estado do Rio Grande do Sul possui em seu acervo inúmeras “fichas de qualifica??o profissional”, geradas entre 1933 e 1968, com os dados necessários para a feitura das carteiras de trabalho dos trabalhadores gaúchos. Este acervo encontra-se atualmente sob a guarda do Núcleo de Documenta??o Histórica (NDH) da Universidade Federal de Pelotas e possui um total de 627.213 fichas, com dados e fotos individuais. O acervo é uma fonte bastante rica, contendo vários dados individuais dos trabalhadores, tais como local de moradia, nível de instru??o, profiss?o e local de origem, além de dados individuais antropométricos (altura, cor, peso, sinais peculiares, cor dos olhos e do cabelo, etc.) e dados culturais e sociais como filia??o, estado civil, número de filhos, grau de instru??o e outros.Desta forma, foi desenvolvido um projeto com objetivo de desenvolver um sistema computacional para que os dados do acervo da DRT fossem mantidos e explorados de forma mais adequada, por meio digital. No projeto desenvolvido, o sistema é responsável por toda gerência, manuten??o e consulta dos dados, para livre uso do pessoal integrante do NDH.O sistema armazena os dados da DRT em um banco de dados operacional, permitindo a modifica??o e a realiza??o de pesquisas nestes dados. A pesquisa e o cruzamento dos dados feitos por este sistema s?o realizados através de técnicas simples da álgebra relacional, tais como sele??es e jun??es, por meio da linguagem SQL. Entretanto, tais técnicas n?o s?o o suficiente para extrair toda a informa??o potencial existente nos dados. O volume de dados da DRT é grande e aumentará ainda mais à medida que mais dados forem inseridos, tornando cada vez mais difícil a compreens?o total destes dados e de enxergar a toda a informa??o contida neles. De forma a contornar este problema, estudou-se a possibilidade de realizar o processo de minera??o de dados sobre a base de dados da DRT, capaz de extrair esta informa??o implícita, que poderia ser muito útil para entender a história dos trabalhadores gaúchos.5. O Processo de Minera??o de Dados da DRTPara obten??o de conhecimento no banco de dados da DRT, realizou-se um processo de minera??o de dados seguindo a seqüência de etapas descrita na subse??o 2.1. Antes de dar início à minera??o, foi realizada uma análise dos dados da DRT a fim de: (i) compreender o domínio de sua aplica??o; (ii) determinar qual classe de algoritmos de minera??o de dados (classifica??o, associa??o ou agrupamento) seria utilizada; (iii) verificar quais campos contidos nestes dados poderiam resultar em padr?es úteis e (iv) verificar se os valores deveriam passar por alguma limpeza ou altera??o.A partir do estudo das diferentes classes de algoritmos de minera??o, constatouse que o problema da DRT se enquadra perfeitamente no problema do agrupamento, pois os registros dos trabalhadores n?o possuem uma classe definida - como ocorre no problema da classifica??o - e n?o existem campos que possam ser associados ao valor de outros campos - como ocorre no problema da associa??o. Assim, o agrupamento seria utilizado para construir grupos de registros que possuam determinadas características em comum.O próximo passo foi observar a estrutura das fichas armazenadas. Cada ficha é composta por 54 campos dentre os quais est?o: identificador da ficha (chave primária), número da carteira de trabalho, nome do trabalhador, sexo, altura, cor da pele, filia??o, data de nascimento, cidade natal, país de nascimento, grau de instru??o, estado civil, residência, profiss?o, salário, nome do sindicato, nome do estabelecimento (empresa), espécie e cidade do estabelecimento, número de beneficiários, cidade e ano onde a carteira foi solicitada e anota??es presentes na ficha.Evidentemente, nem todos estes campos mostraram-se potencialmente úteis para a minera??o. Foi feita, ent?o, uma pré-sele??o de 13 campos que poderiam apresentar alguma utilidade: sexo, altura, cor da pele, ano de nascimento, país de nascimento, estado civil, profiss?o, sindicato, grau de instru??o, nome do estabelecimento, espécie e cidade do estabelecimento e ano de solicita??o da carteira.Outro aspecto observado foi à grande quantidade de erros presentes nestes dados. Ausência de nomes ou nomes escritos de forma errada e valores absurdos para datas e medidas de altura s?o alguns exemplos. Parte destes problemas, segundo os pesquisadores do NDH, deve-se ao fato de muitas fichas n?o estarem em perfeito estado de conserva??o. Algumas estavam rasgadas e outras estavam com o texto apagado. Todos estes problemas foram contornados na medida do possível durante a etapa de limpeza dos a análise dos dados feita, o último passo foi decidir qual algoritmo de agrupamento seria utilizado. Os mapas auto-organizáveis (SOMs) foram escolhidos gra?as à sua capacidade de representar dados de três ou mais dimens?es em um espa?o de apenas duas dimens?es. Assim como a maioria dos bancos de dados, o sistema da DRT possui várias dimens?es (cada dimens?o representando um campo), ent?o esta característica dos SOMs é importante para que os dados da DRT possam ser graficamente representados.Entretanto, [Germano 1999] salienta que esta funcionalidade tem como pre?o um alto custo computacional. Assim, resolveu-se adotar, além dos SOMs, uma alternativa que pudesse apresentar menor custo computacional, como o algoritmo Kmédias. Este algoritmo possui ainda a vantagem de gerar grupos bem definidos, ao contrário dos SOMs, onde muitas vezes n?o se sabe a qual grupo um determinado objeto pertence. Assim, foi realizado o processo de minera??o utilizando ambos os algoritmos de forma a comparar seus resultados e avaliar a rela??o entre custo (processamento) e “benefício” (qualidade da informa??o) destes algoritmos. Devido à existência de muitos valores categóricos presentes nos dados, foram utilizadas varia??es dos SOMs e Kmédias, propostas por [Hsu 2006] e [Lei, He and Li. 2006] respectivamente, que permitem o uso de tais valores.Para realizar as etapas de sele??o dos dados, transforma??o dos dados, extra??o de padr?es (onde o algoritmo de minera??o é aplicado) e representa??o do conhecimento foi construída uma ferramenta de minera??o cujo funcionamento é explicado na se??o 6. A seguir é explicado o que foi feito em cada uma das etapas da minera??o de dados:Limpeza dos dados: algumas fichas apresentavam um valor nulo em campo considerado relevante para a minera??o. A solu??o neste caso, considerada válida por [Han and Kamber 2006], foi descartar as fichas que apresentavam valores nulos no processo de minera??o. O descarte é feito automaticamente pela ferramenta de minera??o desenvolvida. Algumas fichas (em quantidade muito pequena) apresentavam valores numéricos absurdos, como a altura de uma pessoa acima de 5 metros ou um ano de nascimento antes de 1800, provavelmente frutos de erros de digita??o. A solu??o adotada neste caso foi atribuir um valor nulo aos campos com tais defeitos e tratar estes valores como faltantes. Por fim, havia fichas que possuíam nomes redundantes, isto é, nomes com o mesmo significado, mas escritos de uma forma diferente. Por exemplo, valores referentes à espécie do estabelecimento que podiam significar uma fábrica de tecidos eram “fab. tecidos”, “fab. de tecidos”, “f. tecidos” ou ainda “Fábrica de Tecidos”. Este era o problema que mais afetava o banco de dados e que consumiu mais tempo para ser solucionado, já que cada uma das redund?ncias teve que ser manualmente analisada e corrigida.Integra??o dos dados: este processo consiste em reunir dados vindos de diferentes fontes (arquivos, bancos de dados, etc.) e integrá-los em uma única base de dados. No caso da DRT, porém, todas as fichas est?o armazenadas em uma única fonte, n?o havendo necessidade de realizar nenhum procedimento nesta etapa.Sele??o dos dados: nesta etapa, é feita a escolha dos dados considerados relevantes para a minera??o. Realizou-se, ent?o, uma análise para verificar quais campos existentes nas fichas poderiam possuir uma rela??o interessante entre eles. Desta forma, foram feitas algumas escolhas de campos (dentre os 13 préselecionados) listadas abaixo. A etapa de sele??o dos dados e – conseqüentemente – as etapas posteriores foram realizadas várias vezes, escolhendo a cada vez um conjunto pequeno e diferente de campos e extraindo padr?es que possam revelar uma rela??o entre estes campos.a) Profiss?o – Ano de solicita??o da carteira – Sexob) Sexo – Estado Civil – “? estrangeiro?”c) Nacionalidade – Ano de solicita??o da carteira – AlturaTransforma??o dos dados: nesta etapa, opera??es como suaviza??o, agrega??o, generaliza??o, normaliza??o e constru??o de atributos s?o realizadas nos dados. Na ferramenta de minera??o desenvolvida neste trabalho foram implementadas as opera??es de normaliza??o e constru??o de atributos. Assim, a etapa de transforma??o é automatizada pela ferramenta.Aplica??o do algoritmo de minera??o de dados: esta é a etapa onde as fichas, com seus valores já transformados e com os campos selecionados, s?o utilizadas como dados de entrada dos algoritmos K-médias e SOM, implementados na ferramenta, resultando na gera??o de padr?es. Detalhes de como os dados s?o utilizados e da interface destes algoritmos encontram-se na se??o 6.Avalia??o dos padr?es: os padr?es gerados pelos algoritmos receberam uma avalia??o subjetiva, isto é, baseada no conhecimento e nas expectativas do usuário [Han and Kamber 2006]. Para cada conjunto de campos relacionados, foi feita uma compara??o entre os padr?es encontrados pelo SOM e pelo K-médias de modo a verificar qual dos algoritmos apresentou um melhor resultado, no sentido dos padr?es serem interessantes e compreensíveis. Os resultados obtidos e suas compara??es s?o apresentados na se??o 7.Representa??o do conhecimento: uma vez extraídos os padr?es, eles devem ser representados em uma forma visual para que possam ser observados pelo usuário. Tal representa??o é feita por meio da interface fornecida pela ferramenta. Detalhes de como os padr?es s?o visualizados est?o no capítulo 6. Pela defini??o de [Han and Kamber 2006], esta é a última etapa da minera??o de dados. Porém, neste trabalho, a representa??o teve de ser realizada antes da avalia??o dos padr?es (etapa anterior), pois é necessário que o usuário possa visualizar estes padr?es antes de compará-los. Assim, utilizou-se o recurso de itera??o (loop) entre as duas últimas etapas, de modo que fosse possível voltar à penúltima etapa (avalia??o) após a execu??o da última (representa??o).6. Ferramenta para Minera??o de DadosPara realizar a tarefa de minera??o nos dados da DRT, foi desenvolvida uma ferramenta que implementa o processo de extra??o de padr?es por meio do algoritmo K-médias e dos mapas auto-organizáveis. A ferramenta de minera??o foi escrita na linguagem Java e os dados da DRT est?o armazenados em um servidor Mysql. Assim, foi utilizada uma biblioteca de Mysql para Java que permite ao programa conectar-se ao servidor e extrair estes dados para utilizá-los na minera??o.6.1 Desenvolvimento e funcionalidadesA ferramenta desenvolvida é constituída de 16 classes Java, 6 delas para interface e as demais apenas para processamento de dados. Algumas classes de interface, como a “FrameSelecao”, também realizam processamento de dados. As classes utilizadas pela interface herdam características de uma classe Java denominada “JFrame”, que permite a constru??o de janelas com bot?es, caixas de texto, rótulos, etc. A seguir é feita uma descri??o das principais classes da ferramenta.“FramePrincipal”: é a primeira classe a ser executada no funcionamento da ferramenta. Ela apresenta uma janela de login pela qual o usuário deve autenticar sua conex?o com o banco de dados MySQL. Uma vez autenticada, a conex?o é ent?o estabelecida e a próxima classe, a “FrameSelecao”, é instanciada.“FrameSelecao”: esta classe apresenta uma interface ao usuário para que este possa escolher quais campos do banco de dados ser?o utilizados na minera??o, qual algoritmo (SOM ou K-médias) será executado, e ainda se o usuário deseja realizar uma nova minera??o – e gerar um novo mapa – ou apenas visualizar um mapa gerado por um processo de minera??o anteriormente realizado.“FrameSOM”: caso o usuário tenha escolhido o método SOM, esta classe será instanciada e receberá os vetores gerados pela classe “FrameSele??o”. Esta classe apresenta a interface do SOM, com bot?es para iniciar e parar a execu??o do algoritmo e um painel onde os nodos do SOM s?o projetados na tela. A proje??o é feita através da classe “RenderizadorSOM”. Ao receber o comando do usuário para iniciar a execu??o do algoritmo, o programa invoca a classe “SOMTreinador”, na qual está implementado o algoritmo de treinamento do SOM. O mapa a ser treinado possui uma forma quadrada e é um objeto da classe “SOMMapa”, que contém uma matriz 20 x 20 de objetos da classe “SOMNodo”. O “SOMMapa” possui ainda um método para encontrar a BMU (Best Maching Unit, ver [Kohonen 2001]) de um vetor de entrada e um método para inicializar os valores de todos os nodos. Depois de concluído o treinamento do mapa, o algoritmo come?a a inserir cada ficha do conjunto de entrada no nodo que corresponde à sua BMU. Através da interface, o usuário pode visualizar quais fichas de trabalhadores foram inseridas em um determinado nodo. Após a inser??o das fichas, a classe “RenderizadorSOM” é invocada para pintar os nodos do mapa em um tom de cinza de acordo com o número de fichas inseridas neles. Quanto mais fichas forem inseridas, mais escuro é o tom de cinza.“FrameKMedias”: caso o usuário tenha optado pelo método K-médias, esta classe será instanciada e receberá os vetores gerados pela classe “FrameSele??o”. Ela apresenta uma interface ao usuário para que este possa fornecer o número de grupos a serem formados e executar comandos para iniciar e parar a execu??o do algoritmo. Uma vez dado o comando para iniciar a execu??o, a classe “KMedias” é instanciada. Esta classe implementa o algoritmo apresentado na subse??o 3.1 deste artigo e o método que o executa recebe como par?metro o número de grupos a serem formados. . Cada grupo formado pelo algoritmo é um objeto da classe “KGrupo”, que armazena e calcula os dados do centróide e guarda informa??es de todos os objetos que pertencem a aquele grupo.A seguir s?o apresentadas as janelas de login (Figura 1a), sele??o dos campos e do algoritmo (Figura 1b), método SOM (Figura 2a) e do método K-médias (Figura 2b).Figura 1 - Janelas do início da execu??o do programa: janela de login (a) e janela de op??es e sele??o dos campos (b).Figura 2 - Janelas dos algoritmos: SOM (a) e K-médias (b)7. Resultados obtidosPara cada sele??o de campos, descrita na se??o 5, foi realizada a extra??o de padr?es através dos métodos SOM e K-médias. A fase de testes realizada neste trabalho consistiu em comparar, para cada conjunto de dados, os resultados obtidos por estes méo esperado, o K-médias foi executado em um tempo menor que o SOM. Porém, esta diferen?a foi pouco significativa para um número grande de grupos (em torno de 50). Além disso, os grupos formados pelo K-Médias n?o possuem uma representa??o gráfica – é feita apenas uma lista dos mesmos, conforme mostrado na Figura 2b. Como conseqüência, os resultados obtidos pelo K-médias foram mais difíceis de interpretar que os do SOM.7.1 Primeiro testeO primeiro teste foi realizado com os dados dos campos “Profiss?o”, “Ano de solicita??o da carteira” e “Sexo” presentes na fichas da DRT. Ao executar o método SOM com esta sele??o de campos, foi obtido o mapeamento ilustrado na Figura 3 abaixo.Figura 3 - SOM resultante da primeira sele??o de camposNa área da figura destacada pelo contorno vermelho est?o as fichas de trabalhadores do sexo feminino. Fora desta área est?o os trabalhadores do sexo masculino. De modo geral, cada nodo do SOM agrupou fichas de trabalhadores de uma determinada profiss?o. As profiss?es menos abrangentes (que possuíam poucos trabalhadores) ficaram agrupadas em um mesmo nodo. Os nodos mais escuros (e, portanto, com mais fichas) representados no mapa foram os que agruparam mais de uma profiss?o. Na área das fichas do sexo feminino foram encontradas, em maioria, fichas com a profiss?o de servente, costureira, cozinheira, fiandeira e doméstica, entre outras. Estas seriam as profiss?es predominantes do sexo feminino na década de 1930. Percebese também que o número de mulheres com carteira de trabalho era um tanto menor que o de homens.Esta mesma rela??o foi ent?o testada com o método K-médias. Devido à grande quantidade de profiss?es diferentes, optou-se por executar o algoritmo de modo a formar 50 grupos. Como resultado, os grupos formados tiveram um comportamento semelhante aos nodos do SOM, isto é, em cada grupo formado havia fichas de uma determinada profiss?o e as profiss?es menos abrangentes ficaram em um mesmo grupo. Entretanto, ao contrário do que ocorre no SOM, os grupos do K-médias s?o apenas listados, n?o s?o posicionados em um mapa de forma a facilitar sua compreens?o. ? mais difícil, por exemplo, procurar apenas por fichas de trabalhadores do sexo feminino, pois os grupos contendo tais fichas n?o s?o posicionados próximos, como ocorreu no SOM.7.2 Segundo testeNo segundo teste foram utilizados os campos “Sexo” e “Estado Civil” e a cláusula “? estrangeiro?”. S?o variáveis categóricas que apresentam poucos valores diferentes: dois (“m” e “f”) para o sexo, quatro (“solteiro”, “casado”, “separado” e “viúvo”) para o estado civil e dois (“Sim” e ”N?o”) para a cláusula “? estrangeiro?”. A execu??o do algoritmo do SOM resultou no mapa da Figura 4 abaixo.Figura 4 - SOM resultante da terceira sele??o de camposAssim como no teste anterior, cada nodo pintado do mapa resultante agrupou fichas com uma determinada combina??o de valores. Todavia, o número de nodos pintados no mapa foi um tanto menor (um total de 15), uma vez que foram utilizadas variáveis bastante simples. Esta sele??o de variáveis resultou em um agrupamento bem definido, com fichas de brasileiros distribuídas na parte inferior esquerda do mapa e as fichas de estrangeiros na parte superior direita. O nodo que armazenou o maior número de fichas foi o nodo contendo brasileiros solteiros do sexo masculino, localizado no canto inferior direito do mapa, seguido do nodo com brasileiros casados no sexo masculino, no canto superior esquerdo. O terceiro nodo com mais fichas foi o com brasileiros solteiros do sexo feminino, no canto inferior esquerdo.No método K-médias, optou-se por gerar 15 grupos, uma vez que os campos utilizados neste teste apresentavam poucos valores diferentes. Os grupos gerados apresentaram exatamente o mesmo comportamento dos 15 nodos pintados gerados pelo método SOM, ou seja, cada grupo armazenou fichas com uma determinada combina??o de valores (homens solteiros brasileiros em um grupo, homens casados brasileiros em outro grupo e assim por diante). Para esta sele??o de variáveis, tanto o SOM quanto o K-médias realizaram um bom agrupamento.7.3 Terceiro testeOs campos selecionados no terceiro teste foram: “Nacionalidade”, “Ano de solicita??o da carteira” e “Altura”. A Figura 5 abaixo ilustra o SOM resultante.Figura 5 - SOM resultante da quarta sele??o de camposAs regi?es contornadas na figura delimitam os dados dos trabalhadores de cada país. Utilizando um programa de edi??o de imagens foi desenhado em cada nodo um pequeno quadrado cuja cor indica o intervalo dos valores da altura das fichas encontradas naquele nodo. Por exemplo, o quadrado vermelho indica que as fichas existentes no nodo possuem o valor da altura entre 1,60m e 1,79m. Na regi?o com os dados dos trabalhadores brasileiros, percebe-se uma propor??o semelhante entre as áreas de cor laranja, vermelha e marrom. Por outro lado, nas regi?es da maioria dos outros países predomina a cor vermelha. ? possível concluir que entre os imigrantes a altura apresenta uma menor varia??o, estando na maioria das vezes no intervalo entre 1,60m e 1,79m, enquanto que entre os brasileiros há uma maior varia??o da altura, com muitos trabalhadores no intervalo entre 1,40m e 1,59m ou no intervalo entre 1,80m e 1,99m.Na execu??o do K-médias foram gerados 20 grupos. Em alguns grupos foram encontradas apenas fichas de um mesmo país. Em outros, havia dois nomes de países diferentes. Um caso especial foram às fichas de trabalhadores brasileiros, que apareceram em cinco grupos. Estes grupos se diferenciavam basicamente pelo intervalo dos valores da altura encontrados neles: em um dos grupos a altura ficava entre 1,60m e 1,70m, em outro, ficava entre 1,71m e 1,85m e assim por diante. Entretanto, com este agrupamento ficou mais difícil obter algum conhecimento a respeito da altura dos trabalhadores, como foi obtido com o SOM. Novamente, este apresentou um resultado melhor que o K-médias, gra?as à sua capacidade de representar graficamente o agrupamento.7.4 Análise dos resultadosEm cada um dos testes realizados foram obtidos os valores da precis?o da quantiza??o e da soma das diferen?as, calculados respectivamente pelo algoritmo do SOM [Vesanto 1997] e pelo K-médias [Lei, He and Li 2006]. Quanto menor o valor retornado por estes cálculos, maior a qualidade do agrupamento, no sentido de maior semelhan?a entre dados de um mesmo nodo (no caso do SOM) ou grupo (no caso do K-médias). Na Tabela 1 abaixo s?o apresentados os valores obtidos em cada teste. Cabe ressaltar que nesta tabela é feita uma compara??o apenas entre os testes, n?o é feita uma compara??o entre o SOM e o K-médias em um mesmo teste.Tabela 1 - Comparativos das medidas de qualidade.Tanto para SOM quanto para o K-médias, o agrupamento de maior qualidade foi o obtido no segundo teste, enquanto o de pior qualidade foi o do primeiro teste. De modo geral, os algoritmos apresentaram um resultado melhor quando foram utilizadas variáveis categóricas com poucos valores diferentes, como sexo e estado civil, ou variáveis numéricas, como altura. A existência de campos categóricos com muitos valores, como “Profiss?o” e “Nacionalidade”, resultou em um agrupamento de menor qualidade.8. Conclus?o e trabalhos futurosA principal contribui??o deste trabalho foi fornecer um exemplo prático do uso da minera??o de dados, podendo servir como referência para possíveis trabalhos futuros realizados na área da minera??o que, segundo Han e Kamber (2006), é uma área ainda jovem, e ainda há muita pesquisa a ser realizada na mesma.Os resultados obtidos demonstraram a import?ncia de um meio eficiente de visualizar os padr?es extraídos em um processo de minera??o. O método K-médias carece de uma forma melhor de visualiza??o dos dados, fazendo com que seja difícil obter conhecimento a partir dos grupos formados por este método. Os mapas autoorganizáveis (SOMs) mostraram-se melhores neste quesito, fornecendo um meio de visualizar dados de três ou mais dimens?es em um espa?o de duas dimens?es. A sua capacidade de visualiza??o compensa o seu custo de processamento.A principal fun??o dos algoritmos de agrupamento é organizar um conjunto de dados de modo que dados semelhantes fiquem em um mesmo grupo ou posicionados próximos uns dos outros. Os testes realizados com variáveis mais simples – sem os problemas descritos no parágrafo anterior – demonstraram que os algoritmos implementados na ferramenta conseguem de fato realizar o referido agrupamento. Assim, a ferramenta desenvolvida funcionou de forma satisfatóo sugest?o de trabalho futuro, destaca-se a busca por novos algoritmos de minera??o que possam apresentar resultados melhores que os algoritmos utilizados neste trabalho. Conforme demonstrado na se??o 7, algumas imagens resultantes do método SOM foram editadas de forma a melhorar a apresenta??o dos resultados. Esta edi??o poderia ser realizada de forma automática pela ferramenta, baseada nos valores encontrados nas fichas de cada nodo, o que facilitaria a visualiza??o dos dados.Finalmente, o processo de minera??o poderá ser realizado novamente nos dados da DRT quando mais fichas forem inseridas no banco de dados. No momento em que este trabalho foi feito, apenas as fichas da década de 1930 estavam presentes. Quando as fichas das décadas de 1940, 1950 e 1960 forem digitadas, o banco da DRT terá uma quantidade maior de informa??o a ser extraída através da minera??o de dados.AgradecimentosGostaríamos de agradecer ao Núcleo de Documenta??o Histórica da UFPel, em especial à profa. Beatriz Ana Loner, pela parceria no desenvolvimento deste trabalho.ReferênciasFayyad, U., Piatetsky-Shapiro, G. and Smyth, P. (1996) “From Data Mining to Knowledge Discovery: An Overview”, Advances. In: Knowledge Discovery and Data Mining. Menlo Park: AAAI Press, p.11-34.Frawley, W., Piatetsky-Shapiro, G. and Matheus, C. (1992) “Knowledge discovery in databases: An overview”, AI Magazine v.13, n.3, p.57-70.Germano, T. (1999) “Self-Organizing Maps”, , July 2008.Han, J. and Kamber, M. (2006) “Data Mining: Concepts and Techniques”, Morgan Kaufmann, 2nd edition.Hsu, C. (2006) “Generalizing Self-Organizing Map for Categorical Data”, IEEE Transactions on Neural Networks, v.17, n.2, p.294-304.Kohonen T. (2006) “Self-Organizing Maps”, Springer, 3rd edition.Lei, M., He, P. and Li, Z. (2006) “An Improved K-means Algorithm for Clustering Categorical Data”, Journal of Communication and Computer v.13, n.3, p. 20-24, ISSN 1548-7709.Louren?o, F., Lobo, V., Ba??o, F. (2004) “Binary-based similarity measures for categorical data and their application in self-organizing maps”, In: JOCLAD 2004 - XI Jornadas de Classifica??o e Análise de Dados.MacQueen, J. (1967) “Some methods for classification and analysis of multivariate observations”, In: Proc. 5th Berkeley Symp. Math. Statist. Prob.Quintales, L. (2007) “Métodos de Agrupamiento en Minería de Dados”, 41 slides, p&b.Seifert, J. (2005) “Data Mining: an overview”, Congressional Research Service (CRS) Report RL31798.Vesanto, J. (1997) “Data Mining Techniques Based on the Self-Organizing Map”, M.S. Thesis (Science in Engineering), Helsinki University of Technology, Finland.Experiências usando Revis?es Sistemáticas em Planejamento Estratégico de SI/TILeonardo C. Araújo? ?, José Gilson A. Teixeira Filho? ?, ?ria Soares O. Silva??Faculdade de Ciência e Tecnologia de Caruaru - Universidade de Pernambuco (UPE) Rodovia BR 104, Km 32, Nova Caruaru – Caruaru – PE – Brasil?Universidade Federal de Pernambuco (UFPE) – Centro de Informática, Av. Professor Luís Freire s/n, Cidade Universitária, Recife-PE, Brasil.{lca2, jgatf}@cin.ufpe.br, {irinhasoares}@Abstract. Systematic review is a rigorous methodology, which concedes more reliable results in exploratory studies. Applications of systematic reviews to strategic planning of IS/IT was performed on two studies, with different focus. This article main is relate the author’s acquired experiences of two studies conducted by then, when the authors suggests some practices related to systematic review based on your acquired lessons under respected searchers in systematic reviews.Resumo. Revis?o sistemática de literatura é uma metodologia rigorosa, que apresenta resultados mais confiáveis em pesquisas exploratórias. Dois estudos aplicaram revis?es sistemáticas em planejamento estratégico de SI/TI, cada estudo com o seu foco. Assim, este artigo procura relatar as experiências adquiridas pelos autores desses dois estudos, onde os mesmos sugerem algumas práticas a serem aplicadas com base em suas li??es aprendidas e sob a ótica de pesquisadores renomados em revis?es sistemáticas.1. Introdu??oA revis?o sistemática de literatura atua como um meio para identificar, avaliar e interpretar pesquisas sobre uma quest?o específica, tópico ou fen?meno de interesse, fazendo uso de uma metodologia de revis?o que seja confiável, rigorosa e que permita auditagem [Mafra e Travassos 2006]. Além disso, diferentemente de uma revis?o de literatura tradicional, estabelece um processo formal para conduzir a investiga??o, evitando a introdu??o de vieses da revis?o de literatura informal, dando maior credibilidade à pesquisa em andamento [Sousa e Ribeiro 2009], [Sampaio e Mancini 2007].De acordo com [Brumec e Vrcek 2000], o planejamento estratégico de sistemas de informa??o/tecnologia da informa??o (PE-SI/TI), em termos gerais, é o planejamento efetivo da implanta??o e alinhamento dos SI/TI ao planejamento estratégico de negócios da organiza??o, a fim de alcan?ar as metas organizacionais.Algumas revis?es sistemáticas já foram analisadas explicitamente como relatos experimentais de suas aplica??es [Staples e Niazi 2007]. Além disso, algumas revis?es sistemáticas já foram aplicadas e divulgadas no foco de PE-SI/TI [Araújo et al. 2011], [Araújo e Teixeira Filho 2011], [Araújo 2010], [Teixeira Filho 2010].Dessa forma, tomando como base a sugest?o de [Staples e Niazi 2007] para enriquecimento de melhorias no ?mbito de revis?o sistemática de literatura e baseando-se nos resultados das aplica??es dos trabalhos em PE-SI/TI de [Araújo et al. 2010] e [Araújo e Teixeira Filho 2011], este trabalho procura relatar as experiências adquiridas pelos autores e apresentar quais pontos podem ser melhorados para futuras aplica??es do método de revis?o sistemática, especialmente no contexto de PE-SI/TI, fundamentadas sob a ótica de pesquisadores renomados considerados experts em revis?es sistemáticas de literatura.Este trabalho apresenta mais quatro tópicos, além da introdu??o. O tópico dois traz uma breve explica??o dos conceitos de revis?o sistemática de literatura e planejamento estratégico de SI/TI. O tópico três mostra as revis?es sistemáticas realizadas nos dois trabalhos base, inclusive seus resultados. O tópico quatro apresenta o foco deste trabalho, identificando as experiências relatadas nas revis?es sistemáticas e uma tabela sintetizando os resultados das experiências com uma possível motiva??o para cada experiência. Por fim, o tópico cinco fecha com as conclus?es e pontos para trabalhos futuros.2. Revis?o Sistemática de Literatura e Planejamento Estratégico de SI/TISer?o apresentados, sucintamente, conceitos relacionados à revis?o sistemática de literatura e ao planejamento estratégico de sistemas de informa??o/tecnologia da informa??o (PE-SI/TI).2.1 Revis?o Sistemática de LiteraturaA revis?o de literatura é o processo central que apoia todo projeto de pesquisa, permitindo que o conhecimento científico seja identificado de forma a possibilitar uma pesquisa planejada, evitando esfor?os duplicados e repeti??o de erros anteriores [Dyba et al. 2005]. Assim, se a revis?o de literatura n?o for conduzida de uma forma confiável e concisa, os resultados possuir?o pouco valor científico, uma vez que ela pode ter sido guiada por interesses pessoais, ocasionando resultados pouco confiáveis [Mafra e Travassos 2006].A revis?o sistemática de literatura atua como um meio para identificar, avaliar e interpretar pesquisas sobre uma quest?o específica, tópico ou fen?meno de interesse, fazendo uso de uma metodologia de revis?o que seja confiável, rigorosa e que permita auditagem [Mafra e Travassos 2006]. Além disso, diferentemente de uma revis?o de literatura tradicional, estabelece um processo formal para conduzir a investiga??o, evitando a introdu??o de vieses da revis?o de literatura informal, dando maior credibilidade à pesquisa em andamento [Sousa e Ribeiro 2009], [Sampaio e Mancini 2007]. Dessa forma, a revis?o sistemática pode ser compreendida como uma sintetiza??o de resultados obtidos do estado da arte da literatura, sendo um tipo de estudo retrospectivo e secundário, isto é, a revis?o é usualmente desenhada e conduzida após a publica??o de muitos estudos experimentais (primários) sobre o tema [Sampaio e Mancini 2009].O caminho trilhado na revis?o sistemática envolve uma série de atividades importantes, atreladas a um conjunto de fases dentro do processo de condu??o, estabelecidos dentro de um protocolo, que norteará de forma sistematizada todo o processo de condu??o da revis?o. [Biolchini et al. 2005] e [Kitchenham et al. 2007] estabelecem três fases do processo de condu??o: planejamento da revis?o, execu??o da revis?o e análise e divulga??o dos resultados. Outros autores abordam as atividades de forma um pouco diferente, porém convergentes [Littel et al. 2008], [Pai et al 2004]. A tabela 1 sintetiza o processo de condu??o de uma revis?o sistemática.Tabela 1 - Fases, atividades e comparativo do processo de revis?o sistemática e revis?o da literatura comum.2.2 Planejamento Estratégico de Sistemas de Informa??o/Tecnologia da Informa??o (PE-SI/TI)De acordo com [Boar 2001], as organiza??es visam e priorizam cada vez mais o desenvolvimento de estratégias competitivas. Em essência, o planejamento estratégico é o desenvolvimento de uma fórmula ampla para o modo como uma empresa competirá, quais deveriam ser as suas metas e quais as políticas necessárias para levarem-se a cabo essas metas [Porter 2004]. [Kotler e Armstrong 2003] relacionam o planejamento estratégico com a flexibilidade do mercado. [Goodstein et al. 1993] aplica sua defini??o de planejamento estratégico também ao contexto de futuro. Ele diz que o planejamento estratégico é um processo pelo qual os membros de uma organiza??o s?o guiados em desenvolver a??es necessárias para alcan?ar metas futuras.Assim, segundo [Brumec e Vrcek 2000], o planejamento estratégico de SI/TI, em termos gerais e de acordo com as conceitua??es de planejamento estratégico, é o planejamento efetivo da implanta??o e alinhamento dos SI/TI ao planejamento estratégico de negócios da organiza??o, a fim de alcan?ar as metas organizacionais. [Cassidy 2006] imp?e ainda um conceito mais amplo de planejamento estratégico de SI/TI, afirmando que os fatores relacionados aos planos organizacionais, planos de sistemas de informa??o e as metas e objetivos da organiza??o devem ser norteados por um planejamento coerente, consistente e direcionado à excelência operacional e competitividade, através de métricas adquiridas.3. Revis?es Sistemáticas em PE-SI/TIComo premissa para relatar as experiências adquiridas na aplica??o de revis?o sistemática em planejamento estratégico de SI/TI, dois trabalhos ser?o apresentados para exposi??o de críticas e relatos, tal qual Mark Staples e Mahmood Niazi fizeram com um de seus trabalhos [Niazi e Staples 2006] em [Staples e Niazi 2007].O trabalho de [Araújo et al. 2007] abordou a identifica??o de modelos, metodologias e ferramentas em PE-SI/TI. Para isso, os autores utilizaram-se da metodologia de revis?o sistemática de literatura para levantar a maior quantidade de trabalhos possíveis no ?mbito de PE-SI/TI. Após o planejamento, execu??o e elicita??o dos resultados, foram encontrados nove modelos, cinco metodologias e uma ferramenta. Chamaremos este trabalho de T1, pra melhor compreens?o no decorrer deste relato.Já no trabalho de [Araújo e Teixeira Filho, 2011], o foco, com uma aplica??o de revis?o sistemática de literatura, foi identificar quais as práticas mais abordadas no contexto de PE-SI/TI para gerar um conjunto de melhores práticas e validar esse conjunto com a metodologia GQM (Goal Question Metric). Assim, após o processo de revis?o sistemática, foram identificadas 292 práticas, que foram sintetizadas em 32 melhores práticas. Este trabalho será chamado de T2, para melhor compreens?o no decorrer deste relato.Ambos os trabalhos utilizaram-se de um guideline de revis?o sistemática de literatura desenvolvido por [Kitchenham et al. 2007] e adaptado pelas críticas de [Pai et al. 2004] e [Littel et al. 2008] para identifica??o e condu??o de todo o processo. Os protocolos utilizados nos trabalhos foram semelhantes. A fim de evitar um retrabalho, T2 utilizou o protocolo de T1, efetuando apenas algumas altera??es quanto ao foco da revis?o sistemática, conforme descrito na metodologia de T2. A seguir, será descrito o processo de condu??o da revis?o sistemática efetuado em T1 e T2, de forma que ser?o apresentados os detalhes cabíveis a cada trabalho.3.1 Planejamento da Revis?o SistemáticaO processo de revis?o sistemática foi iniciado a partir da cria??o do modelo de protocolo de revis?o. O protocolo foi especificado para identificar os estudos que abordavam o tema planejamento estratégico de SI/TI. Além do mais, também foram desenvolvidos quatro formulários que auxiliaram a aplica??o da revis?o sistemática.O formulário de condu??o da revis?o serviu para a cataloga??o dos trabalhos encontrados durante a execu??o das etapas descritas no processo, juntamente com o formulário de aprova??o dos trabalhos, que serviu para a cataloga??o final dos trabalhos. Os outros dois formulários est?o diretamente ligados ao protocolo de revis?o sistemática. Um deles é o formulário de teste-piloto, adotado para os testes do protocolo de revis?o. Foi através desse formulário que o protocolo p?de ser avaliado antes mesmo de ser aplicado na íntegra. O outro formulário foi o de críticas do avaliador, o qual contribuiu para fichar as críticas construtivas de um avaliador especialista acerca do melhoramento do protocolo. Em [Araújo 2010] podem ser encontrados todos os modelos de formulários utilizados tanto em T1 como em T2.O protocolo, de forma sintetizada, envolveu, em seus passos, alguns pontos a destacar. Com rela??o às palavras-chave, as mesmas foram desenvolvias em cima dos construtos da pergunta de pesquisa de cada trabalho. A principal diferen?a entre T1 e T2 está na substitui??o das palavras, respectivamente, “governo” e “organiza??es públicas” (“government” e “public organizations”) por “ferramentas” e “técnicas” (“tools” e “techniques”). Essa diferen?a e altera??o surgiram devido ao foco da pesquisa em cada trabalho.Outro ponto em destaque no protocolo foi quanto aos critérios de sele??o dos trabalhos pesquisados. Os mesmos restringiam-se a selecionar trabalhos que fossem exclusivamente advindos da internet, exceto os livros que poderiam ser consultados tanto na internet quanto impressos, porém referenciados nos resultados de alguma base. Além disso, os trabalhos deveriam estar disponibilizados em sites web especializados e de relev?ncia científico-acadêmico e disponibilizados por completo. Por fim, os trabalhos deveriam demonstrar algum embasamento científico que comprovasse os seus resultados.Ainda, quanto ao protocolo, outro ponto em destaque foi o processo de sele??o dos trabalhos. O processo em ambos os protocolos foi dividido em cinco etapas. Na etapa 1 foram realizadas pesquisas de acordo com as strings de busca definidas para as pesquisas e registrado os resultados provenientes. Na etapa 2, os trabalhos retornados foram inicialmente avaliados segundo o título, sem a necessidade de fichar no formulário de condu??o da revis?o. Na etapa 3, dos estudos pré-selecionados na primeira etapa, uma nova busca foi conduzida, onde os resultados com esse refinamento foram analisados pela leitura de seus resumos (abstract) e depois selecionados para a próxima etapa e fichados no formulário de condu??o da revis?o. Na etapa 4 foi realizada uma leitura da introdu??o e conclus?o de cada trabalho pré-selecionado na etapa anterior. Na última etapa aprimorou-se a sele??o, principalmente porque os trabalhos foram completamente lidos, analisados e criticados, haja vista a relev?ncia contextual e filtro proporcionado pelas etapas anteriores. Nesta última etapa os trabalhos foram considerados aptos e fichados no formulário de aprova??o dos estudos.Dos resultados obtidos com a aplica??o do teste-piloto e da ficha de críticas do avaliador, foram desenvolvidas quatro vers?es do protocolo. Dentre as altera??es mais relevantes est?o a reformula??o das palavras-chaves e strings de busca, que sofreram diversas mudan?as durante os testes. Além do mais, também ocorreram altera??es nos critérios de inclus?o e exclus?o de fontes de busca, visto que algumas das fontes testadas n?o se apresentaram satisfatórias para a aplica??o do protocolo no tema proposto. Por fim, uma mudan?a muito importante no protocolo ocorreu com rela??o aos critérios de inclus?o e exclus?o dos trabalhos, que precisaram ser revistos principalmente devido à quantidade de trabalhos passíveis de escolha criteriosa.? importante destacar que T2, que utilizou o mesmo protocolo de T1, n?o aplicou teste-piloto em seu protocolo, visto que o mesmo já havia sido feito em T1, conforme descrito. Todavia, foram usados os demais formulários para sua valida??o e aplica??o. O protocolo aplicado em T1 e T2 pode ser encontrado em [Araújo et al. 2010] e as demais adapta??es de T2 em [Araújo e Teixeira Filho 2011].3.2 Condu??o da Revis?o SistemáticaNa fase de execu??o foi realizada a condu??o e análise dos estudos primários. Assim, em T1, no período compreendido entre 25/03/2010 e 30/03/2010, os estudos foram identificados, coletados e organizados em uma lista estruturada. Já em T2, o protocolo foi executado entre os dias 20/09/2010 e 25/09/2010. Após a aplica??o, os resultados ainda passaram por uma reavalia??o para garantir que n?o foram eliminados estudos relevantes. Ao final desse passo, as informa??es foram extraídas somente dos estudos selecionados [Pai et al. 2008], [Kitchenham et al. 2007].Tanto em T1 quanto em T2, na etapa I de sele??o definida no protocolo de pesquisa da revis?o sistemática foram considerados as strings de busca o que retornou um total de 711 estudos. Após as demais etapas de sele??o, T1 considerou 15 trabalhos aptos a responder a sua pergunta de pesquisa. Já T2 selecionou 30 estudos.A leitura e resumo dos trabalhos em T1 iniciaram no dia 02 de abril de 2010 e foram concluídos em 03 de maio de 2010. A maioria dos trabalhos foi lida e resumida no mesmo dia, salvo algumas exce??es. Com rela??o às obras tidas como livros, as três foram analisadas, lidas e fichadas durante todo o período, ou seja, entre 02/04 e 03/05, n?o havendo especificidade de dias de leitura, como ocorrera com os demais trabalhos. Já o processo de leitura, sintetiza??o e levantamento das práticas em T2 durou exatamente trinta e dois dias, entre 02/10/2010 a 03/11/2010.3.3 Análise e Divulga??o dos ResultadosNesta fase os estudos primários que atendiam ao propósito das revis?es sistemáticas em T1 e T2 foram analisados criticamente e sintetizados nos formulários de aprova??o dos trabalhos, através da prepara??o de resumos contendo as discuss?es e observa??es dos autores acerca de cada estudo, além de pontos relevantes sob o aspecto de cada pergunta de pesquisa [Littel et al. 2008], [Kitchenahm et al. 2007].Dessa forma, em T1, dos 15 trabalhos, foram levantados 15 modelos, metodologias e ferramentas. Em T2, dos 30 trabalhos selecionados, no total foram identificadas 292 práticas. Em [Araújo, 2010] e [Teixeira Filho, 2010] pode ser encontrada uma lista sucinta das 292 práticas identificadas em T2.3.4 Síntese dos ResultadosEm T1, os resultados encontrados foram divididos e catalogados em uma tabela específica, onde continha o nome do trabalho selecionado, um pequeno resumo do trabalho e informa??es acerca de cada ferramenta, técnica e modelo identificado. Assim, foram definidos nove modelos, cinco metodologias e uma ferramenta. Já T2 sintetizou os seus resultados e definiu 32 melhores práticas, consolidando-as em uma base específica contendo a descri??o e o objetivo de aplica??o de cada melhor prática.? resumido na Figura 1 todo o processo de desenvolvimento, condu??o, sele??o e cataloga??o nas revis?es sistemáticas adotadas em T1 e T2, com destaque para os pontos em particular sob cada trabalho (T1 e T2).Figura SEQ Figura \* ARABIC 6 - Processo de desenvolvimento e condu??o da revis?o sistemática aplicada aos trabalhos analisados.4. Experiências Relatadas pelos AutoresA necessidade de aplicar o método de revis?o sistemática ao trabalho, embora n?o bem descrito nos trabalhos analisados, mostrou-se, pelos seus resultados, bastante relevante. O PE-SI/TI é uma área que evolui muito, como visto na quantidade de resultados levantados nos trabalhos. Todavia, essa necessidade poderia ter ficado mais clara e objetiva nas descri??es dos trabalhos, onde o próprio guideline sugere que seja explícita a necessidade de aplicar-se uma revis?o sistemática. Além disso, foi elaborada uma pergunta de pesquisa para cada trabalho, que, segundo [Brereton et al. 2005] é o elemento mais crítico de uma revis?o sistemática. Porém, outras perguntas intrínsecas poderiam ser levantadas justamente para dar mais ênfase e embasamento, mesmo apenas uma necessitando ser respondida para os objetivos propostos [Kitchenham 2007].O desenvolvimento do protocolo foi conforme descrito pelo guideline e sugest?es de [Littel et. al. 2008] e [Pai et al. 2004]. Foram definidas as etapas principais para a execu??o e condu??o da revis?o, além de notáveis altera??es efetuadas durante os procedimentos, o que é algo natural, embora n?o tenhamos relatado nos trabalhos [Niazi e Staples 2005]. Um passo importante foi aplicado, conforme sugerido pelo guideline, que foi o piloto do protocolo. Esse piloto, de certa forma, evita problemas de natureza desconcertante, ou seja, vieses aos resultados finais, além de ser um meio para “calibrar” o entendimento do objetivo da pesquisa e de sua condu??o pelos pesquisadores [Kitchenham 2007], [Dyba e Dyngsoir 2008]. Entretanto, esse teste foi aplicado apenas em T1. Em T2 poderiam também ser propostos outros testes-piloto, os quais dariam mais garantia e consistência ao protocolo, além de firmeza na execu??o por parte dos pesquisadores [Staples e Niazi 2007], [Brereton et al. 2005].As fontes de pesquisa, além de terem sido definidas sob critérios de inclus?o e exclus?o, foram ainda testadas com as strings propostas. Porém, n?o deixamos claro como essas fontes foram de fato selecionadas, testadas e quais os resultados obtidos com cada uma, o que deixou uma margem de dúvidas quanto a esse processo de sele??o. Algumas revis?es sistemáticas sugerem uma pesquisa para a sele??o das fontes por afinidade com o tema de pesquisa [Catal e Diri 2009]; [Cai e Card 2008]. Além disso, uma quest?o parece n?o ter sido tratada de forma clara nas revis?es de T1 e T2. Durante o processo de pesquisa, é muito provável que, dentre várias fontes de busca com relev?ncia e abrangência mundial, tenham ocorrido redund?ncias entre publica??es, o que deveria ter sido tratado a fim de evitar-se duplicidade na leitura e, até mesmo, na extra??o dos dados [Niazi e Staples, 2006]. Ainda, um ponto que poderíamos ter definido é quanto ao período de pesquisa. As buscas foram feitas nas bases de um ano X até 2010. Embora tenhamos encontrado trabalhos relevantes da década de 70 [Nolan 1979], uma restri??o de um período é sempre bem-vinda, para n?o deixar a busca aberta de mais a publica??es que provavelmente n?o seriam analisadas [Littel et al. 2008], [Kitchenham 2007].Voltando ao processo de busca, observamos que os mecanismos adotados para as pesquisas parecem ainda n?o estar adaptados a metodologia de revis?o sistemática. O processo de revis?o sistemática exige, como já observado e comentado, rigorosos métodos em alguns casos da busca. Todavia, os mecanismos n?o ajudaram muito, principalmente quanto a exporta??o dos resultados da busca, onde, para armazenar as informa??es sobre títulos e abstracts, o processo foi feito manualmente nas planilhas utilizadas. Isso poderia ter sido evitado se o mecanismo tivesse oferecido op??es de extra??o em massa dessas informa??es prontas para planilhas, como acontece com mecanismos voltados a área de medicina e adjacências.Outro aspecto importante que poderia (ou deveria) ter sido levantado nos trabalhos aplicados é quanto a análise da qualidade dos estudos levantados. Embora a avali??o da qualidade dos estudos possa ser usada como critério de inclus?o/exclus?o dos trabalhos [Kitchenham 2007], seria muito importante que critérios de qualidade fossem elicitados para a avalia??o da qualidade dos trabalhos quanto a validade de seus resultados, onde os resultados da pesquisa em si podem ser contestados à luz dos resultados dos trabalhos embasados, conforme [Staples e Niazi 2007].Já quanto as etapas, o processo, embora claramente apresentado, parece ter ficado demasiado extenso. A etapa 2 compreendeu a leitura dos títulos dos trabalhos retornados na etapa 1, e a etapa 3 definiu a leitura dos abstracts. Na realidade, as etapas 2 e 3 poderiam ter sido agrupadas em uma mesma etapa, visto que durante a leitura dos títulos, os abstracts poderiam ser lidos, onde, havendo a exclus?o, imediatamente os artigos selecionados já estariam aptos para a próxima etapa [Staples e Niazi 2007].A condu??o da revis?o seguiu-se conforme os autores tomados como base. As publica??es e demais materiais selecionados foram lidos dentro de um prazo que apresentamos em ambos os trabalhos por todos os autores. Entretanto, sentimos a necessidade de ler as publica??es de uma forma ainda mais criteriosa, onde poderíamos ter lido, cada pesquisador, pelo menos duas vezes as publica??es, a fim de fundamentar a certeza dos dados extraídos, ou mesmo separar os pesquisadores por leitura e extra??o de dados, devido a quantidade de resultados retornados [Brereton et al. 2005]. Ainda sim a leitura, embora tenha sido feita uma vez por cada autor, fora bastante criteriosa seguindo os rigores da revis?o sistemática. Outra quest?o, ainda quanto a sele??o das publica??es, é quanto ao tipo de estudo avaliado. Os estudos poderiam ter sido mais bem analisados quanto ao tipo de metodologia aplicada aos mesmos, a fim de melhorar a compara??o dos dados obtidos, uma vez que o tipo de metodologia aplicada em uma pesquisa pode influenciar nos resultados advindos de objetivos de estudos iguais ou semelhantes [Easterbrook et al. 2007].Por fim, os autores, observando outros exemplos na literatura, como o de [Niazi e Staples 2005], sentiram a necessidade de desenvolver um relatório técnico, onde o mesmo poderia armazenar informa??es extras e bastante relevantes quanto ao desenvolvimento e condu??o da revis?o sistemática. ? nesse relatório onde as particularidades podem ser relatadas, como mudan?as ocorridas na condu??o, detalhes de altera??es nos testes-piloto entre outras informa??es, o que pode ajudar no embasamento e referência para outros pesquisadores que desejem mais detalhes.Dessa forma, com as li??es adquiridas pelos autores quanto a aplica??o e condu??o de revis?es sistemáticas em planejamento estratégico de SI/TI, a Tabela 2 sintetiza os relatos experimentais, ou seja, as li??es aprendidas, a motiva??o para cada li??o e o(s) autor(es) o(s) qual(is) há fundamenta??o.5. Conclus?es e Trabalhos FuturosEmbora os autores n?o tenham comentado a existência ou n?o de alguma revis?o sistemática focada no planejamento estratégico de SI/TI, a aplica??o do método de revis?o sistemática da literatura para o ?mbito de PE-SI/TI proporcionou bons resultados, principalmente quanto ao levantamento de um histórico de publica??es focadas nessa área. Quanto aos trabalhos T1 e T2, o foco dos mesmos proporcionou resultados bastante coerentes com os propósitos de cada um. Já com rela??o aos aspectos técnicos da revis?o sistemática, os autores inferiram algumas críticas, acertos e melhorias, no que tange aos resultados dos trabalhos analisados e no próprio contexto de PE-SI/TI.Aplicar revis?o sistemática foi um desafio para os autores, visto que essa metodologia, bastante rigorosa quanto ao seu método, exige um empenho singular, se comparado à busca tradicional na literatura. Além disso, esses trabalhos foram os primeiros a serem aplicados pelos autores escolhendo-se esse tipo de metodologia. Seguir um guideline, como aconteceu nos casos apresentados, n?o tornou a tarefa mais fácil, todavia guiou todo o processo, procurando evitar vieses e amea?as aos resultados pretendidos com a revis?o sistemática, aplicando o método sob a ótica de conceituados pesquisadores.Diante das experiências relatadas, embora a pesquisadora Barbara Kitchenham [Kitchenham 2007] esteja empenhada, juntamente com vários outros pesquisadores de conceituadas universidades, em criar um guia de referência para aplica??o de revis?o sistemática na área de engenharia de software, os autores observaram, como maior premissa desse relato experimental de aplica??o de revis?es sistemáticas em PE-SI/TI, a necessidade de criar-se um referencial de melhores práticas voltadas à aplica??o de revis?o sistemática na área de tecnologia da informa??o e administra??o, o que, de certa forma, facilitaria também pesquisas em PE-SI/TI, tal qual o Cochrane Handbook [Higgins e Green 2008].Assim, espera-se que os relatos apresentados com base nas premissas empíricas dos autores fundamentados possam contribuir também para possíveis guias referenciais de revis?o de literatura, principalmente quanto ao PE-SI/TI.ReferênciasAraújo, L. C. (2010) “Elabora??o de uma Base de Melhores Práticas em Planejamento Estratégico de SI/TI”, Disserta??o (Bacharelado em Sistemas de Informa??o) – Universidade de Pernambuco (UPE), Caruaru.Araújo, L. C.; Teixeira Filho, J. G. A.; Silva, I. S. O. (2010) "Metodologias, Modelos e Ferramentas e Planejamento Estratégico de SI/TI: Uma Revis?o Sistemática", Cadernos Nabuco – Revista Eletr?nica da Faculdade Joaquim Nabuco, v. 1, n. 2.Araújo, L. C. e Teixeira Filho, J. G. A. (2011) "An Exploratory Survey on Strategic Planning of IS/IT", 8th CONTECSI - International Conference on Information Systems and Technology Management.Biolchini, J.; Mian, P. G.; Natali, A. C. C.; Travassos, G. H. (2005) "Systematic Review in Software Engineering", Technical Report. PESC - COPPE/UFRJ, 2005.Boar, B. H. (2001) “The Art Of Strategic Planning For Information Technology – Second Edition”, New York: John Wiley & Sons, Inc.Brereton, P., Kitchenham, B., Budgen, D., Turner, D., Khalil, M. 2005 "Employing Systematic Literature Review: An Experience Report". Unpublished draft.Brumec, J. e Vrcek, N. (2000) “Strategic Planning of Information Systems SISP – a Survey of Methodology”, Faculty for Organisation and Informatics, Pavlinska 2, Varazdin, Croatia.Cai, K.; Card, D. (2008) "An analysis of research topics in software engineering", The Journal of Systems and Software, v. 81, p. 1051-1058.Catal, c.; Diri, B. (2009) "A systematic review of software fault prediction studies", Expert Systems with Applications, v. 36, p. 7346-7354.Cassidy, A. (2006) “A Pratical Guide to Information Systems Strategic Planning”, 2. ed. USA: Auerbach Publications.Dyba, T., Kampenes, V., Sjoberg, D. (2005) “A Systematic Review of Statistical Power in Software Engineering Experiments”, Journal of Information and Software Technology, v. 1, n. 11.Dyba, T.; Dingsoyr, T. (2008) “Empirical studies of agile software development: A systematic review”, Information and Software Technology, n. 50, p. 833-859.Easterbrook, S. M.; et al. (2007) “Selecting Empirical Methods for Software Engineering Research”, In F. Shull, J. Singer and D. Sj?berg(eds) Guide to Advanced Empirical Software Engineering, Springer.Goodstein, L D.; Nolan, T. M.; Pfeiffer, J. W. (1993) "Appliend Strategic Planning: a Comprehensive guide", McGraw-Hill, New York.Higgins, P. J., Green, S. (2008) “Cochrane Handbook for Systematic Reviews of Interventions”, England: West Sussex.Kitchenham, B.; Charters, S. (2007) "Guidelines for performing systematic literature reviews in software engineering", Technical Report EBSE-2007-01, School of Computer Science and Mathematics, Keele University.Kotler, P. e Armstrong, G. (2003) "Princípios de Marketing", 9. ed. S?o Paulo: Prentice Hall.Littell J. H., Corcoran J., Pillai, V. (2008) “Systematic Reviews And Meta-Analysis”, Usa: Oxford University Press.Mafra, S. N. e Travassos, G. H. (2006) “Estudos Primários e Secundários Apoiando a Busca por Evidência em Engenharia de Software”, Relatório Técnico Rt-Es-687/06, Programa de Engenharia de Sistemas e Computa??o (PESC), COPPE/UFRJ.Niazi M. e Staples M. (2006) “Systematic Review of Organizational Motivations for Adopting CMM-based SPI”, Technical Report. National ICT Australia, PA005957, February 2006.Nolan, R. L. (1979) “Managing the Crisis in Data Processing”, Harvard Business Review, v. 32, n. 2, p. 115-126.Pai, M., Mcculloch, M., Gorman, J., Pai, N., Enanoria, W., Kennedy, G., Tharyan, P., Colford Jr., J. (2004) “Systematic Reviews And Meta-Analyses: An Illustrated Step-By-Step Guide”, The National Medical Journal Of India, v. 17, n. 2, pp. 86-95.Sousa, M. R. e Ribeiro, A. L. P. (2009) “Systematic Review and Meta-Analysis of Diagnostic and Prognostic Studies: A Tutorial”, Arquivo Brasileiro de Cardiologia, v. 92, n.3, pp. 241-251.Staples M. e Niazi M. (2007) "Experiences using systematic review guidelines", The Journal of Systems and Software, v.80, p.1425-1437.Teixeira Filho, J. G. A. (2010) “MMPE-SI/TI (Gov) - Modelo de Maturidade para Planejamento Estratégico de SI/TI direcionado às Organiza??es Governamentais Brasileiras baseado em Melhores Práticas”, vol. 1 e 2, Tese (Doutorado em Ciências da Computa??o) – Universidade Federal de Pernambuco (UFPE), Recife.Benefícios e Desafios encontrados na ado??o de Cloud ComputingDarlan Florêncio de ArrudaFaculdade de Ciências e Tecnologia de Caruaru (FACITEC) Universidade de Pernambuco (UPE) – Caruaru, PE – Brasil.darlan.arruda@upe.brAbstract. Cloud computing has emerged as a new paradigm in the deployment of applications in which computing resources are provided as a service via a network connection. These services are provided in the form of software, infrastructure and platforms. With the use of these services are offering users information, often confidential in geographically remote servers unknown. This article presents an overview of this technology, its applicability and describes what the main barriers and benefits encountered challenges in adopting this new technology.Keywords: Cloud Computing, Challenges, Adoption, BenefitsResumo. Computa??o em Nuvem surge como um novo paradigma na implanta??o de aplica??es em que os recursos computacionais s?o fornecidos como um servi?o através de uma conex?o de rede. Esses servi?os s?o disponibilizados em forma de software, infraestruturas e plataformas. Com a utiliza??o desses servi?os usuários est?o disponibilizando informa??es, muitas vezes confidenciais em servidores remotos desconhecidos geograficamente. Este artigo apresenta uma vis?o geral desta tecnologia, suas aplicabilidades e descreve quais s?o as principais barreiras, desafios e benefícios encontrados na ado??o dessa nova tecnologia.Palavras-chave: Computa??o em Nuvem, Desafios, Ado??o, Benefícios1. Introdu??oCom o avan?o tecnológico, a idéia de ter, armazenar e distribuir informa??es de forma rápida vem chamando a aten??o de muitos usuários, fazendo com que aumente a busca por esse tipo de servi?o, principalmente em grandes corpora??es. Com o advento da Web 2.0 o uso de servi?o utilizando um conjunto transparente de plataformas computacionais vem ganhando for?a. Independente de onde estejam alocados os recursos e quem os mantém, qualquer pessoa pode acessar seus recursos computacionais, em tempo real, a partir de uma rede integrada de servi?os, aplica??es e dispositivos via Internet, com alta transmiss?o de dados (MCAFEE 2006).Diante disso, a Computa??o em Nuvem surge como um novo paradigma na implanta??o de aplica??es em que os recursos computacionais s?o fornecidos como um servi?o através de uma conex?o de rede. Esses servi?os s?o disponibilizados em forma de software, infraestruturas e plataformas, onde usuários podem adquiri-los sob demanda (Sousa et al., 2009).Mas, como toda nova tecnologia, a Computa??o em Nuvem também preocupa os usuários quanto a diversos pontos relacionados ao gerenciamento e seguran?a dos dados que estar?o armazenados na nuvem. Essas preocupa??es influenciam e contribuem tornando-se barreiras na ado??o da tecnologia de Computa??o em Nuvem por parte de empresas e de usuários de tecnologia.Diante disso, este artigo busca enfatizar os principais desafios e benefícios que s?o encontrados na ado??o de Computa??o em Nuvem. A próxima se??o tratará do conceito de Computa??o em Nuvem, das características essenciais, dos modelos de servi?os e dos modelos de implanta??o. A se??o 3 explanará os principais benefícios encontrados na ado??o de Computa??o em Nuvem. Na se??o 4 ser?o abordados os desafios e das barreiras encontradas na ado??o de Computa??o em Nuvem, e a se??o 5 trará as conclus?es do estudo realizado.2. Computa??o em NuvemA Computa??o em Nuvem é um paradigma que está cada vez mais presente na vida dos usuários e das empresas. Reduzir custos e melhorar o desempenho s?o algumas das necessidades que envolvem a implanta??o de uma nova tecnologia. Existem diversas defini??es de Computa??o em Nuvem de acordo com a vis?o de vários pesquisadores.Segundo Nist (2011), Computa??o em nuvem é um modelo que possibilita acesso, de modo conveniente e sob demanda, a um conjunto de recursos computacionais configuráveis (por exemplo, redes, servidores, armazenamento, aplica??es e servi?os) que podem ser rapidamente adquiridos e liberados com mínimo esfor?o gerencial ou intera??o com o provedor de servi?os. Este modelo de nuvem promove disponibilidade e é composto por cinco características essenciais, três Modelos de Servi?os (SaaS, PaaS e IaaS), e quatro Modelos de Implanta??o (privada, pública, comunitária e híbrida).Já para Taurion (2008), a Computa??o em Nuvem tornou-se evidente em um momento que surgia a necessidade de uma infra-estrutura que pudesse permitir flexibilidade aos negócios tanto quanto a demanda do mercado. Com esse conceito todos os sistemas computacionais de uma organiza??o podem ser compartilhados, criando um grande volume de recursos din?micos.Sousa et al. (2009), refor?a que a Computa??o em Nuvem é uma tendência recente de tecnologia cujo objetivo é proporcionar servi?os de Tecnologia da Informa??o (TI) sob demanda com pagamento baseado no uso.Diante disso, a Computa??o em Nuvem apresenta-se como uma maneira bastante eficiente de maximizar e flexibilizar os recursos computacionais, diante da multiplicidade de servi?os prestados pelos provedores de Computa??o em Nuvem, tais como, armazenamento de dados, desenvolvimento de aplicativos personalizados e gest?o de infraestrutura, por exemplo. Cada parte desta infraestrutura é provida como um servi?o e, estes s?o normalmente alocados em centros de dados, utilizando hardware compartilhado para computa??o e armazenamento (BUYYA et al. 2008).2.1 Características EssenciaisS?o apresentadas abaixo, de acordo com as defini??es do NIST (2011, pag. 2), cinco características consideradas essenciais para o funcionamento do modelo de Computa??o em Nuvem.2.1.1. Self-Service sob demandaO usuário pode adquirir unilateralmente recurso computacional, como tempo de processamento no servidor ou armazenamento na rede, na medida em que necessite e sem precisar de intera??o humana com os provedores de cada servi?o.2.1.2 Amplo acesso à redeRecursos s?o disponibilizados por meio da rede e acessados através de mecanismos padronizados que possibilita o uso por plataformas heterogêneas thin ou thin client, tais como celulares, laptops e PDAs.2.1.3 Pooling de recursosO provedor de recursos de computa??o está reunido para atender vários consumidores através de um modelo multi-tenant, com diferentes recursos físicos e virtuais atribuídos dinamicamente e novamente de acordo com a demanda dos consumidores.Há um senso de independência local em que o cliente geralmente n?o tem nenhum controle ou conhecimento sobre a localiza??o exata dos recursos disponibilizados, mas pode ser capaz de especificar o local em um nível maior de abstra??o (por exemplo, país, estado ou do datacenter). Exemplos de recursos incluem o armazenamento, processamento, memória, largura de banda de rede, e máquinas virtuais.2.1.4 Elasticidade rápidaRecursos podem ser adquiridos de forma rápida e elástica, em alguns casos automaticamente, caso haja a necessidade de escalar com o aumento da demanda, e liberados, na retra??o dessa demanda. Para os usuários, os recursos disponíveis para uso parecem ser ilimitados e podem ser adquiridos em qualquer quantidade e a qualquer momento.2.1.5 Servi?o medidoOs sistemas de gerenciamento utilizados em Nuvem controlam e monitoram automaticamente o uso de recursos por meio de uma capacidade de medi??o. A automa??o é realizada em algum nível de abstra??o apropriado para o tipo de servi?o, tais como armazenamento, processamento, largura de banda e contas dos usuários ativas. O uso de recursos pode ser monitorado e controlado, possibilitando transparência para o provedor e o usuário do servi?o utilizado.2.2 Modelos de Servi?osO ambiente de Computa??o em Nuvem é composto por três modelos de servi?os: SaaS, PaaS e IaaS. A seguir s?o apresentados esses modelos.2.2.1 SaaS (Software as a Service)Segundo Velte et al. (2010), SaaS é uma aplica??o hospedada em um servidor remoto e acessada pela Internet. Esse modelo é uma forma de hospedar aplica??es e disponibilizá-las através de uma conex?o. Nesse modelo de servi?o o software é executado em um servidor, n?o sendo necessário instalar o sistema no computador do cliente, basta acessá-lo por meio da internet (CASTRO, 2010).O Google Docs é um pacote de aplicativos do Google que executa fun??es de escritórios, é compatível com as mais famosas suítes de aplicativos para escritório existente.2.2.2 PaaS (Platform as a Service)Para Castro (2010) esse modelo de servi?o caracteriza-se pela entrega de uma plataforma para desenvolvimento, teste e disponibiliza??o de aplicativos web com a finalidade de facilitar a implanta??o de aplica??es sem os custos e complexidade de gerenciamento do hardware.Um exemplo dessa plataforma é o Google App Engine, uma plataforma para o desenvolvimento de aplica??es web escaláveis executadas na infra-estrutura do Google.2.2.3 IaaS (Infrastructure as a Service)Esse modelo de servi?o refere-se ao fornecimento de infraestrutura computacional (geralmente em ambientes virtualizados) como um servi?o (CASTRO, 2010).De acordo com Sousa et al. (2009), o principal objetivo do IaaS é tornar mais fácil e acessível o fornecimento de recursos, tais como servidores, rede, armazenamento e outros recursos de computa??o fundamentais para construir um ambiente sob demanda, que podem incluir sistemas operacionais e aplicativos.Um exemplo de infraestrutura é o Eucalyptus, fornece infraestrutura computacional para aplicativos Computa??o em Nuvem de forma elástica e aberta.2.3 Modelos de Implanta??oOs Modelos de Implanta??o da Computa??o em Nuvem podem ser divididos em nuvem pública, privada, comunidade e híbrida (NIST, 2011, pag. 3). Tais modelos s?o descritos a seguir.2.3.1 Nuvem PrivadaA infraestrutura de nuvem é operada exclusivamente para uma organiza??o. Pode se gerenciado pela organiza??o ou por terceiros e pode existir localmente ou n?o.2.3.2 Nuvem ComunidadeA infra-estrutura de nuvem é compartilhado por diversas organiza??es e suporta uma determinada comunidade que partilha as preocupa??es (por exemplo, a miss?o, os requisitos de seguran?a, política e considera??es sobre o cumprimento). Pode ser administrado por organiza??es ou por terceiros e podem existir em premissa ou premissa de fora.2.3.3 Nuvem PúblicaA infra-estrutura de nuvem é disponibilizada ao público em geral ou de um grupo grande indústria e é possuído por uma organiza??o de vendas de servi?os em nuvem.2.3.4 Nuvem HíbridaA infra-estrutura de nuvem é uma composi??o de duas ou mais nuvens (privada, da comunidade, ou pública) que permanecem entidades únicas, mas est?o unidos pela tecnologia padronizada ou proprietária que permite a portabilidade de dados e aplicativo (por exemplo, nuvem explodindo de balanceamento de carga entre as nuvens).3. Benefícios encontrados na Ado??o de Computa??o em NuvemDe acordo com uma pesquisa realizada pelo International Data Corporation (IDC) em 2009, os principais benefícios encontrados na ado??o da Computa??o em Nuvem s?o ilustrados na Figura 1.Figura 1 - Benefícios de Ado??o (Fonte: Adaptado do IDC, 2009)P?de-se verificar que a economia é fator mais importante para adotar a tecnologia de Computa??o em Nuvem, pois nesse novo paradigma computacional os softwares s?o ofertados como um servi?o e s?o utilizados sob demanda, ou seja, você paga apenas pelo o que você usa. Outro benefício importante é a facilidade e rapidez na implementa??o de solu??es de Computa??o em Nuvem quando comparado com a implementa??o de solu??es de desktop já conhecidas.Outro benefício importante é o pagamento mensal, já que a computa??o em nuvem possibilita o uso sob demanda de acordo com as necessidades dos usuários, os investimentos podem ser pagos de forma mensal e de acordo com a intensidade de utiliza??o da aplica??o.O incentivo de sistemas desenvolvidos com base em padr?es é mais um benefício citado na pesquisa. Esse incentivo reflete numa crescente sofistica??o na compreens?o dos usuários do modelo de servi?os em nuvem, e como ela pode se aplicar ao seu ambiente (IDC 2009). Ent?o, como a computa??o em nuvem pode ser aplicada aos diversos setores dentro de uma organiza??o, surge à necessidade de criar sistemas padronizados que possa interoperar através de uma interface padr? isso surge muito incentivo para a cria??o de sistemas padr?o de computa??o em nuvem, o que pode ser um atrativo benéfico para a ado??o dessa tecnologia. Outro benefício identificado é o uso menor de pessoal de TI, fazendo com que haja a redu??o com os custos para prestadores de servi?os.Os sistemas de computa??o em Nuvem sempre oferecem novas funcionalidades e a implanta??o dessas funcionalidades é fácil e rápido, tornando-se bastante atrativo para os usuários. A simplicidade no compartilhamento de informa??es é um benefício quando se pensa em adota a Computa??o em Nuvem.Por último aparece como benefício à tendência de a computa??o em nuvem ser a tecnologia do futuro, pois apesar de ser uma tecnologia recente a computa??o em nuvem surge como o paradigma computacional que na vis?o do autor ganhará maior impacto nas aplica??es via internet. A próxima se??o discorre os principais desafios que s?o encontrados na ado??o de Computa??o em Nuvem.4. Desafios Encontrados na Ado??o de Computa??o em NuvemNesta se??o ser?o explanados os principais desafios encontrados na ado??o de Computa??o em Nuvem. De acordo com uma pesquisa realizada pelo International Data Corporation (IDC) em 2009, os principais desafios encontrados na ado??o da Computa??o em Nuvem s?o ilustrados na Figura 2.A partir desta pesquisa verificou-se que os principais desafios encontrados por organiza??es s?o: seguran?a, disponibilidade, desempenho, custo, falta de padr?es de interoperabilidade e dificuldades de integra??o.Além da pesquisa realizada pelo IDC, também podem ser encontrados na literatura os desafios relacionados à portabilidade dos dados e dos aplicativos, controle de gest?o e medi??o e monitoramento. A seguir ser?o descritos os desafios detectados para a ado??o da Computa??o em Nuvem.Figura 2 - Desafios de Ado??o (Fonte: Adaptado do IDC, 2009)4.1 Seguran?aA seguran?a tem tido um papel muito importante no impedimento do desenvolvimento da Computa??o em Nuvem (DILLON, 2010). A percep??o de que a Nuvem é um aglomerado de informa??es pode caracterizá-la como sendo um alvo propício a ataques. Amea?as como estas podem afetar diretamente os pilares da seguran?a da informa??o: disponibilidade, confidencialidade, integridade e n?o-repúdio, e consequentemente comprometer toda a Nuvem (CASTRO, 2011).Muitas organiza??es est?o desconfortáveis com a idéia de armazenar seus dados e aplicativos em sistemas que n?o s?o controlados por ela. A migra??o de cargas de trabalho a uma infra-estrutura compartilhada aumenta o potencial risco para acesso n?o autorizado e a conseqüente exposi??o dos dados. Coerência em torno de autentica??o, as tecnologias de gerenciamento de identidade, o respeito de acesso passará a ser cada vez mais importante. Para tranqüilizar os seus clientes, provedores de Computa??o em Nuvem devem oferecer um elevado grau de transparência em suas opera??es (MANIFESTO 2009).4.2 DisponibilidadeA disponibilidade de servi?os permite aos usuários acessar e utilizar a nuvem onde e quando desejarem. Ao utilizar a Internet pode ocorrer atrasos e indisponibilidade de sistemas, uma vez que a própria arquitetura da Internet n?o foi projetada para oferecer garantia de QoS (Quality of Service). Os ambientes de Computa??o em Nuvem devem prover alta disponibilidade.4.3 DesempenhoApesar de possuir limita??es em termos de redes e de seguran?a, a Computa??o em Nuvem deve fornecer desempenho elevado e deve ser flexível para se adaptar a grandes quantidades de requisi??es. Como os ambientes de Computa??o em Nuvem possuem acesso público, se torna difícil estimar a quantidade de requisi??es realizadas, o que torna mais complexo fazer estimativas e garantias de QoS.4.4 CustoPreocupa??es de custo podem parecer contraditórias, já que a economia mostra-se muito favorável a ado??o da Computa??o em Nuvem, como forma de diminuir custos relacionados à área de TI. Contudo, quest?es como "E se meus usuários finais, habilitado pelo servi?o o modelo de nuvem de auto-provisionamento de recursos, solicitar mais recurso do que eu estou apto a fornecer?", s?o cruciais no planejamento e no or?amento da infra-estrutura de um provedor, que deve ser capaz de atender esta demanda din?mica e imprevisível (IDC 2009).4.5 Dados e interoperabilidade de aplicativos? importante que os dados e aplicativos exibam a interface padr?o. Organiza??es querem ter a flexibilidade para criar novas solu??es ativadas por dados e aplicativos que interajam uns com os outros, independentemente de onde eles residem (nuvens públicas, nuvens privadas que residem dentro do firewall da organiza??o, nos ambientes de TI tradicionais ou alguma combina??o). Provedores de Computa??o em Nuvem necessitam apoiar padr?es de interoperabilidade de modo que as organiza??es possam combinar as capacidades de qualquer prestador de solu??es Cloud (MANIFESTO 2009).4.6 Dificuldades de integra??o internaSem normas, a capacidade de adapta??o dos sistemas internos e a possibilidade de escolher outro fornecedor ser?o limitadas a interfaces proprietárias. Uma vez que uma organiza??o constrói ou migra um sistema para usar em Nuvem, trazer esse sistema de volta para a tecnologia antiga é bastante difícil e custoso (ALTCAST, 2010).4.7 Portabilidade de dados e aplicativosSem normas, a capacidade de adapta??o dos sistemas in-house e a possibilidade de escolher outro fornecedor será limitada por interfaces proprietárias. Uma vez que uma organiza??o constrói ou migra um sistema para usar em nuvem, trazer esse sistema de volta para a tecnologia antiga é difícil e caro (MANIFESTO 2009).4.8 Controle e Gest?oComo os departamentos de TI introduzem novas solu??es em Nuvem no ?mbito de seu datatacenter tradicional, os novos desafios surgem. Mecanismos padronizados para lidar com a gest?o do ciclo de vida, licenciamento e estorno das infra-estruturas Cloud compartilhadas s?o apenas algumas das quest?es de gest?o e controle onde fornecedores devem trabalhar juntos (MANIFESTO 2009).4.9 Medi??o e MonitoramentoOs empresários v?o querer usar vários provedores de Computa??o em Nuvem em suas solu??es de TI e será necessário acompanhar o desempenho do sistema através destas solu??es. Os provedores devem fornecer formatos consistentes para monitorar as aplica??es em Nuvem e a presta??o de servi?os além de torná-las compatíveis com os sistemas de monitora??o existentes (MANIFESTO 2009).5. Conclus?esComputa??o em Nuvem surge como um novo paradigma na implanta??o de aplica??es em que os recursos computacionais s?o fornecidos como um servi?o através de uma conex?o de rede.Este trabalho abordou os principais aspectos e características da computa??o em nuvem, bem como seus Modelos de Servi?os e enfatizou os desafios e os benefícios que s?o encontrados tanto na ado??o desse novo paradigma computacional. P?de-se verificar que a seguran?a é o principal desafio encontrado com a ado??o de Computa??o em Nuvem.A seguran?a, o desempenho, custo, portabilidade e a disponibilidade dos dados nesse ambiente s?o algumas das garantias que os clientes exigem ao contratar os servi?os oferecidos. Através do estudo realizado ficou evidente que apesar de trazer diversos benefícios para quem a usa, a computa??o em nuvem possui muitos desafios que precisam ser superados para atingir o maior nível de eficiência das aplica??es disponibilizadas.Referências BibliográficasALTCAST. Manifesto Open Cloud. Disponível em:<;. Acessado em de novembro de 2010.AMAZON. Amazon Web Services. Disponível em: <;. Acessado em 19 de novembro de 2010.BUYYA, R.; YEO C. S.; VENUGOPAL, S. Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities.Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering. The University of Melbourne, Australia, 2008.CASTRO, Rita de C. C; SOUSA, Ver?nica L.Pimentel de. Seguran?a em Cloud Computing: Governan?a e Gerenciamento de Riscos de Seguran?a. Disponível em: < brasil.inf.br/.../26-05-S5-1-68740-Seguranca%20em%20Cloud.pdf>. Acessado em 10 de fevereiro de 2011.DILLON, Tharam.; CHANG, Chen. Cloud Computing: Issues and Challenges. 24th IEEE International Conference on Advanced Information Networking and Applications, 2010.EUCALYPTUS. Eucalyptus Cloud. Disponível: <>. Acesssado em 20 de fevereiro de 2011.GOOGLE APP ENGINE. Execute os seus aplicativos da web na infraestrutura do Google. Disponível em: < >. Acessado em 20 de dezembro de 2010.IDC. New IDC IT Cloud Services Survey: Top Benefits and Challenges. Disponível em: < >. Acessado em 15 de novembro de 2010.MCAFEE, A. P. “Enterprise 2.0: the dawn of emergent collaboration. Engineering Management Review.” IEEE, v. 34, n. 3, 2006.MANIFESTO, disponível em < > acesso em 20 de fevereiro de 2011.MELL, Peter; GRANCE, Tim. The NIST Definition of Cloud Computing. Information Technology Laboratory, 2011.SOUSA, Flávio R. C et al. Computa??o em Nuvem: Conceitos, Tecnologias, Aplica??es e Desafios. ERCEMAPI. Teresina, 2009.TAURION, Cezar. Cloud Computing - Transformando o mundo da Tecnologia da Informa??o. Brasport, Rio de Janeiro, 2008.VELTE, A. T., VELTE T. J, ELSENPETER R. Cloud computing: a practical approach. New York: McGraw-Hill, 2010.Classifica??o Dos Fatores de Risco Que Podem Afetar a Implanta??o Da Linha De Produto De Software.Danilo M. RibeiroFACITEC - Universidade de Pernambuco (UPE)Universidade de Pernambuco, Campus de Caruaru. Rodovia 104 - Km 62 Nova Caruaru 55024-970 - Caruaru, PE – Brasil, Telefone (81) 3719-9448{danilomonteiroo@.br}Abstract. The use of software product line in industry has been growing in recent years, many companies think of adopting it, however the deployment of the line containing a number of risks for these companies and should be handled with care. This paper proposes the classification of the factors can affect the deployment of the product line of software for enterprises can be better prepared for deployment.Resumo. A utiliza??o de linha de produto de software pela indústria vem crescendo nos últimos anos, várias empresas pensam em adotá-la, contudo a implanta??o da linha contém vários riscos para essas empresas e deve ser feita com cuidado. Este artigo prop?e a classifica??o dos fatores que podem afetar a implanta??o da linha de produto de software para que as empresas possam se preparar melhor para a implanta??o.1. Introdu??oA atividade de desenvolvimento de software enfrenta crescentes desafios em busca da diminui??o de custos, esfor?o e tempo de chegada dos produtos no mercado, contudo os produtos est?o aumentando suas complexidades e tamanhos.De acordo com LAZILHA (2002), a reutiliza??o está entre as técnicas mais relevantes para ajudar a resolver os desafios. Isto vem do princípio que reutilizando partes bem especificadas, desenvolvidas e testadas pode-se construir software em menor tempo e com maior confiabilidade. Buscando atender as novas demandas, têm sido propostas diferentes abordagens que favorecem o reúso de artefatos de software, entre elas a Linha de Produto de Software.Conforme LOBO e RUBIRA (2009) empresas que desenvolvem produtos de software em um determinado domínio de aplica??o podem obter ganhos significativos em termos de redu??o de esfor?o e custos, utilizando o enfoque de linha de produto e desenvolvendo vários produtos similares ao mesmo tempo, ao invés de focar no desenvolvimento de um único produto por vez.Segundo CLEMENTS e NORTHROP (2001), uma Linha de Produto de Software é um conjunto de produtos de software com alto grau de similaridade entre si, que atendem as necessidades específicas de um segmento de mercado ou miss?o e que s?o desenvolvidos de forma prescritiva a partir de um conjunto de artefatos básicos.BOEHM e DEMARCO (1997) afirmam que os riscos no desenvolvimento de software s?o fáceis de reconhecer no abstrato, contudo s?o difíceis de reconhecer em situa??es reais. Portanto, é de suma import?ncia prever e controlar riscos para que se tenha sucesso no desenvolvimento do software.Esse artigo visa classificar em: humanos, técnicos e organizacionais os fatores de risco que podem afetar a implanta??o da linha de produto de software para obter um melhor gerenciamento de risco nas organiza??es que querem aderir à Linha de Produto de Software. Ele está dividido da seguinte maneira: na Se??o 2 encontra-se uma breve contextualiza??o sobre Linha de Produto de Software e os benefícios que ela pode trazer para a organiza??o, na Se??o 3 as caraterísticas de uma implanta??o de Linha de Produto de Software ser?o apresentadas, os principais fatores encontrados na literatura que podem afetar a implata??o da linha de produto aparecer?o na Se??o 4, e finalmente na Se??o 5 a classifica??o proposta será exposta.2. Linha de Produto de SoftwareSegundo CLEMENTS e NORTHROP (2001), uma Linha de Produto de Software (LPS) representa um conjunto de sistemas, que também pode ser chamado de família de produtos, que compartilham características (features) comuns, satisfazendo as necessidades de um segmento particular do mercado. Um conjunto de sistemas é desenvolvido a partir de uma cole??o comum de artefatos da Linha de Produto de Software, ou seja, a Linha de Produto de software define um segmento comum para os softwares desenvolvidos que compartilham características para n?o ser necessário desenvolver os esfor?os novamente.De acordo com LUCENA (2010), uma feature pode ser definida como uma propriedade de um sistema que é relevante para o usuário e que é usada para capturar pontos em comum ou para discriminar entre produtos numa linha de produ??o. Um conjunto de features é importante para caracterizar se os softwares est?o na mesma linha de produto.COHEN (2003) classificou os benefícios da Linha de Produto de Software em duas categorias: (i) Tangíveis, que s?o aqueles que podem ser medidos metricamente; (ii) Intangíveis, que s?o aqueles que se sente o efeito, contudo n?o podem ser medidos diretamente.DURSCKI et al (2004) sugeriram uma adapta??o das tabelas proposta por COHEN (2003) apresentando diversas características das duas categorias, conforme a Tabela 1:Tabela 1 - Benefícios tangíveis e intangíveis de uma LPS por Durscki.A tabela acima classifica os benefícios tangíveis em cinco (Lucratividade, Qualidade, Produtividade, Tempo de integra??o e Desempenho dos produtos) e os benefícios intangíveis em quatro (Menor desgaste de profissionais, Aceitabilidade dos desenvolvedores, Satisfa??o profissional e Satisfa??o do cliente), contudo, existem fatores que podem dificultar o desenvolvimento de uma linha de produ??o de software de acordo com DURSCKI et al (2004), como por exemplo, o processo de implanta??o da Linha de Produto de Software que pode ser muito complexo e levar muito tempo para obten??o das vantagens apresentadas.3. Características da implanta??o da Linha de Produ??o de SoftwareDe acordo com CLEMENTS e NORTHROP (2001), um projeto de implanta??o de uma Linha de Produto de Software pode ser considerado um projeto de inova??o tecnológica, ou uma nova maneira de fazer negócio. Levando em considera??o que as duas classifica??es s?o possíveis, DURSCKI et al (2004) acreditam que existe por isso uma complexidade a mais ao projeto pois, por exemplo, pode se encontrar resistência das pessoas a alguma das classifica??es ou ainda dificuldade do gestor para escolha de alguma das possibilidades.DURSCKI et al (2004) entendem que o projeto para implanta??o da Linha de Produto de Software abrange uma avalia??o organizacional, uma articula??o do estado desejado e um planejamento para atingir este estado, ou seja, a implanta??o de uma LPS requer um auxílio dos tomadores de decis?o da empresa. DURSCKI et al (2004) também afirmam que no caso de linhas de produto, fatores extra-tecnológicos devem ser considerados, como a adaptabilidade das pessoas e o tipo de treinamento necessário. Levando em considera??o esses fatores a implanta??o de uma LPS pode ser ainda mais difícil, pois pode mudar a estrutura da organiza??o. DURSCKI et al (2004) ainda afirmam que o projeto de implanta??o de LPS pode ser definido de duas maneiras distintas:Repentino ou completo: A empresa que escolhe essa abordagem pode interromper ou diminuir consideravelmente sua produ??o para concentrar esfor?os no desenvolvimento de repositórios ativos. Levando em considera??o que a empresa pode até parar o desenvolvimento de produtos, DURSCKI et al (2004) consideram essa abordagem a mais radical e em alguns casos economicamente inviável.Gradual ou incremental: Com essa abordagem a organiza??o escolhe por desenvolver seus produtos normalmente, contudo nas fases dos projetos s?o feitas contribui??es para a estrutura da LPS. Segundo CLEMENTS e NORTHROP (2001), essa abordagem acaba sendo preferida pela indústria, pois as etapas s?o divididas em vários produtos podendo diminuir os riscos, além disso, a empresa n?o precisa parar sua produ??o, porém nesta abordagem o custo para implementa??o é maior e está dividido nos projetos realizados.4. Fatores que podem afetar a Linha de Produ??o de SoftwareOs principais fatores que podem ocasionar problemas para a Linha de Produ??o de Software, levantados por COHEN (2002), s?o:Falta de um líder comprometido: Para o sucesso do processo de ado??o é necessário que se tenha um líder motivando, apoiando e controlando. Essa pessoa deve acreditar no modelo para que a implementa??o ocorra com sucesso.Falta de compromisso da gerência: Assim como o líder, a gerência deve acreditar na possibilidade de que o projeto tenha sucesso, pois caso n?o acredite pode acarretar em perda de foco dos membros e de recursos, trazendo prejuízos para a empresa.Abordagem inadequada: Se ocorrer dos produtos da Linha de Produto de software n?o terem um número significante de features semelhantes para garantir a viabilidade do modelo, a linha poderá trazer prejuízo para empresa.Falta de compromisso da equipe: Semelhante ao problema relatado em falta de compromisso da gerência. Caso a equipe n?o entenda ou ainda n?o queira aplicar o modelo, pode-se ter um fator de risco para a empresa que queira utilizar Linha de Produto de Software.Intera??o insuficiente entre as equipes: Como é necessário que diferentes áreas da organiza??o (Marketing e Desenvolvimento, por exemplo), ou até mesmo equipes diferentes da mesma área se comuniquem, para que se tenha sucesso na implanta??o, esse fator acaba sendo mais um risco a ser analisado pela organiza??o.Padroniza??o desapropriada: Ao se implantar linha de produto de software em uma organiza??o deve se tomar cuidado para que n?o se escolha um padr?o impróprio para a realidade da organiza??o. Falta de Adapta??o: A falta de adapta??o dos componentes pode reduzir o desempenho da equipe e desenvolver problemas para a linha, pois é necessário que os componentes tenham adaptabilidade para serem utilizados em outros produtos.Incapacidade de melhoria contínua: O processo da linha de produto precisa ser revisado periodicamente para garantir qualidade e para que ele n?o utilize práticas obsoletas.Problemas na Dissemina??o: Para que se tenha sucesso na implanta??o de uma linha de produto de software é necessário que se tenha um líder comprometido para que ele tenha a responsabilidade de desenvolver e distribuir as documenta??es para cada nível da organiza??o, treinar os envolvidos e apoiar o processo.Além dos fatores encontrados por COHEN (2002) outros fatores também ser?o levados em considera??o nesse trabalho:Falta de Certifica??es: BIRK e HELLER (2007) acreditam que os artefatos gerados por uma LPS deveriam ser certificados e utilizados em diferentes produtos sem a necessidade de obter outra certifica??o, contudo o que acontece é que a certifica??o apenas acontece quando o produto está completo.Problemas na Defini??o das features: Segundo NORTROP (2002), a modelagem por features é a técnica de modelagem de requisitos que normalmente é utilizada na Linha de Produto de Software. NORTROP (2002) afirma que essa técnica é uma maneira boa e fácil de obter uma vis?o geral das partes da Linha de Produto de Software.Falha na identifica??o de requisitos: LOBATO et al (2010) acredita que a engenharia de requisitos e a gest?o deles s?o consolida??o dos ativos na plataforma e na cria??o de tarefas de desenvolvimento da linha de produto de software. Definir corretamente os requisitos de software é de suma import?ncia para o desenvolvimento da linha de produto.Em uma organiza??o que se predisp?e a implantar Linha de Produto de Software levar em considera??o esses fatores é essencial para seus objetivos, caso eles n?o sejam avaliados e trabalhados a organiza??o pode se prejudicar financeiramente e ter seu cronograma afetado.5. Classifica??o dos fatores que afetam a Linha de Produto de SoftwarePara o desenvolvimento desse trabalho foi considerado que os fatores que afetam a Linha de Produto de Software podem ser divididos em três: organizacional, humano e técnico.(i) Organizacional: Segundo a ISSO/IEC 12207 (2008) s?o fatores que podem ser empregados fora do domínio de projeto se s?o de responsabilidades da gerência geral e da organiza??o. SANDHOF (2004) afirma que esses fatores s?o influenciadores de atividades rotineiras, sejam elas relacionadas a software ou n?o;(ii) Humanos: De acordo com SANDHOF (2004) Os fatores humanos no desenvolvimento de software est?o relacionados, por exemplo, com a motiva??o, treinamento, a dificuldade no desempenho das tarefas e de lideran?a. S?o fatores que diferem de cada indivíduo;(iii) Técnicos: Conforme PALVIA et al (2001), os fatores técnicos abordam a natureza da tarefa/processo a ser executada e as tecnologias de apoio. Os fatores técnicos est?o relacionados a como fazer, por exemplo, a linguagem e o paradigma utilizados, a metodologia escolhida, o tipo de linha de produto de software escolhida, bem como sua implanta??o.De acordo com as características de cada fator, está sendo proposta a classifica??o dos principais fatores que afetam a Linha de Produto de Software, levantados na Se??o três na Tabela 2.Tabela 2 - Classifica??o dos fatores que afetam a LPS.Os fatores classificados como organizacionais foram: (i)A falta de compromisso da gerência; (ii)Falta de Certifica??es; (iii)Incapacidade de melhoria contínua; (iv)Adapta??o insuficiente. Esses fatores foram escolhidos, pois s?o responsabilidades da gerência da organiza??o ter compromisso com a implanta??o da linha de produto, O primeiro fator, a gerência deve acreditar nas vantagens e viabilidade que a implanta??o pode trazer para a organiza??o, já o segundo é de responsabilidade da organiza??o fazer a certifica??o de cada componente para que ao invés de certificar somente o sistema completo, se tenha uma certifica??o de cada componente. A incapacidade de melhoria contínua está ligada aos critérios organizacionais, pois a organiza??o deve prover recursos para que isso aconte?a. A adapta??o deve estar ligada as práticas organizacionais para permitir que se tenha um grau de adaptabilidade aceitável.Foram identificados os seguintes fatores humanos: (i)Falta de um líder comprometido; (ii)Falta de compromisso da equipe; (iii)Intera??o insuficiente entre as equipes;(iv)Problemas na Dissemina??o. Estes fatores foram agrupados nesta classifica??o, pois est?o ligados a problemas vinculados às características humanas, um líder comprometido deve acreditar no modelo, motivar as pessoas e desenvolver uma comunica??o entre os membros, caso as pessoas n?o se sintam motivadas a organiza??o podem enfrentar problemas com o compromisso da equipe, e mesmo que se tenha a motiva??o, a falta de intera??o e problemas na dissemina??o podem causar problemas relacionados ao desenvolvimento, como por exemplo, uma equipe desenvolver um componente muito parecido com outro componente desenvolvido por outra equipe.Os fatores identificados como técnicos s?o apresentados a seguir: (i)Abordagem inadequada; (ii)Padroniza??o desapropriada; (iii)Problemas na defini??o das features; (iv) Falha na identifica??o de requisitos. A utiliza??o da Linha de Produto de Software deve ser um projeto para atingir objetivos corporativos, caso ocorra um erro no processo de planejamento dos produtos da linha, ela pode n?o atingir seus objetivos. A Padroniza??o desapropriada pode ocorrer de problemas relativos à escolha da abordagem que levam a uma diferente da ideal. Problemas de requisito est?o ligados aos métodos e modelos utilizados para obtê-los. Já a defini??o correta das features está ligada diretamente aos métodos escolhidos para conseguir esse objetivo.6. Conclus?oA utiliza??o de Linha de Produto de Software pode ser uma solu??o viável para o desenvolvimento de software, contudo a sua implanta??o deve ser criteriosa para que se tenha sucesso diante dos riscos existentes.Perante o que foi apresentado, podemos concluir que a classifica??o dos fatores que podem afetar a implanta??o da Linha de Produto de Software em técnicos, humanos ou organizacionais se torna algo valioso, pois ajuda no estudo das dificuldades encontradas na empreitada que é a implanta??o da linha. Foi observado também que os problemas existentes têm diversas origens e que a Gest?o de Risco de Software deve observar atentamente diversas vertentes. O trabalho está identificando e classificando os riscos para que posteriormente sejam estudados de forma mais sucinta e consistente, assim no futuro os riscos possam ser tratados e controlados com eficiência e eficácia.A pesquisa apoia o estudo do gerenciamento de risco na linha de produto de software focando e caracterizando no processo, fornecendo sugest?es sobre quais aspectos a organiza??o deve enfatizar. Também é notado que a ado??o da linha de produto por uma organiza??o requer muito esfor?o e modifica??es na estrutura da organiza??o.Reutilizando alguns pontos positivos desenvolvidos em outras pesquisas foi possível caracterizar os tipos de risco existentes na implanta??o da Linha de Produto de forma a atingir o objetivo geral deste estudo que é classificar os riscos envolvidos na ado??o de uma Linha de Produto de software.AgradecimentoAgradecemos ao CNPq/FACEPE pelo apoio financeiro de bolsa de estudo de Inicia??o Científica e a Universidade de Pernambuco (Campus Caruaru) pela infraestrutura disponibilizada. O trabalho correspondente foi realizado ao abrigo do contrato 116120/2010-0 do CNPq/FACEPE.ReferênciasBirk, A.; Heller, G. (2007) “Challenges for Requirements Engineering and Management in Software Product Line Development. Requirements Engineering: Foundation for Software Quality,” 13th International Working Conference, REFSQ 2007, Trondheim, Norway, Proceedings. Volume 4542 of Lecture Notes in Computer Science, pages 300-305.Boehm, B. W. and DeMarco, T.(1997) “Guest Editors Introduction: Software Risk Management. IEEE Software”, 14(3):17-19.Clements, P.; Northrop, L. (2001) “Software product lines: practices and patterns.” 1. ed. Boston: Addison-Wesley.Cohen, Sholom. (2002) “Product Line State of the Practice Report” , Sholom;(2003) “Predicting when Software Product Lines Pays.”: , Mar?o.Durscki, C. R.; Spinola, M. M.; Burnett, C. R.; Reinehr, S.S. (2004)“Linhas de Produto de Software: riscos e vantagens de sua implanta??o” 2004.pdf, Maio.ISO/IEC 12207:1995/Amd 2:2008 (2008)-“The International Organization for Standardization and the International Electrotechnical Commission.”ISO/IEC 12207 Amendment: Information Technology - Amendment 2 to ISO/IEC 12207,Geneve: ISO.Lazilha, R.F; (2002) “Uma proposta de arquitetura de linha de produto para sistemas de gerenciamento de workflow” , Abril.Lobato L.L.; O’Leary Padraig, Almeida de S. E., Meira L.R.S. (2010) “The importance of Documentation, Design and Reuse in Risk Management for SPL” portal.citation.cfm?id=1878475,Abril.Lobo C.E. Ana.;Rubira F.M. Cecília (2009) “Um Estudo para Implanta??o de Linha de Produto de Software baseada em Componentes”ic.unicamp.br/~reltech/2009/09-17.bib, Mar?o.Lucena, P. J.C.; (2010)“A carreira de pesquisador em Engenharia de Software: Princípio conceitos e dire??es”. Clube dos Autores.Northrop, L. M. (2002). “SEI's Software Product Line Tenets.” IEEE Software. 19, 4, 32-40., Abril.Palvia, S.C; Sharma, R.S; Corath, D.W (2001) “A sócio-technical framework fo quality assessment of computer information system.” Industrial management & Data Systems. (IMDS).pdf, Abril.Sandhof, Karen (2004) “Fatores humanos no processo de desenvolvimento de software: um estudo visando qualidade.” , Abril.Desenvolvimento e Valida??o de Componente Decodificador de Vídeo para o Middleware GingaMarco Beckmann1, Tiago H. Trojahn2, Juliano L. Gon?alves1, Luciano V. Agostini1, Leomar S. Da Rosa Junior1, Lisane Brisolara11Universidade Federal de Pelotas, Centro de Desenvolvimento Tecnológico, Grupo de Arquitetura e Circuitos Integrados, Pelotas, Rio Grande do Sul, Brasil.{mbeckmann, juliano, agostini, leomarjr, lisane }@inf.ufpel.edu.br2Universidade de S?o Paulo, Instituto de Ciências Matemáticas e de Computa??o, S?o Carlos, S?o Paulo, Brasil.ttrojahn@icmc.usp.brAbstract. The Brazilian middleware for Digital TV, known as Ginga, is currently divided in two subsystems: the declarative, named Ginga Nested Context Language (Ginga-NCL), and the procedural Ginga-Java (Ginga-J). In this context, there is an effort to create a unique reference implementation of the Ginga middleware, composed by the Ginga-NCL and the Ginga-J environments in a common core named Ginga Common Core (GingaCC), reaching a full and modular version of the middleware. The Media Processing, one of the main components of the GingaCC, is responsible to handle video, audio and subtitles. This work presents an implementation of the Media Processing using the libVLC library and an evaluation of the efficiency of the component. Moreover, a graphical application for vídeo reproduction developed reusing the Media Processing implementation is also presented.Resumo. O middleware brasileiro para a TV Digital, chamado Ginga, está atualmente dividido em dois subsistemas: o declarativo, conhecido como Ginga Nested Context Language (GingaNCL) e o procedural GingaJ. Neste contexto, existe um esfor?o de desenvolvimento para criar uma implementa??o única de referência do middleware Ginga, composta dos ambientes GingaNCL e o GingaJ em um núcleo comum, chamado de Ginga Common Core (GingaCC), almejando uma vers?o completa e modular do middleware. O controle de fluxos de vídeo, áudio e legenda no middleware é responsabilidade do componente Media Processing, um dos principais módulos do GingaCC. Neste trabalho é apresentada uma implementa??o do Media Processing usando a biblioteca libVLC, além da avalia??o da eficiência do componente. Será apresentada, ainda, uma aplica??o gráfica para reprodu??o de vídeo, desenvolvida reusando o componente Media Processing.1. Introdu??oEm 2003, o decreto 4901 [Decreto 4901,2003] criou o Sistema Brasileiro de TV Digital (SBTVD) [SBTVD, 2011] para incentivar o desenvolvimento de um padr?o nacional para TV Digital e Interativa. Em 2000 foi publicado um estudo [SET, 2000] que avaliou os padr?es americano, Advanced Television System Committee (ATSC) [ATSC, 2011], europeu, Digital Video Broadcasting Terrestrial (DVB-T) [DVB, 2011)] e o japonês Integrated Services Digital Broadcasting Terrestrial (ISDB-T) [ISDB, 2011] com o intuito de descobrir qual o padr?o que melhor se adaptava às necessidades brasileiras. Em 2006, o decreto 5820 [Decreto 5820, 2004] definiu o padr?o japonês como padr?o base para o SBTVD, pois demonstrava uma melhor eficiência das transmiss?es para antenas internas e a possibilidade de acessar o sinal digital com dispositivos portáteis, característica destacada no estudo original [SET, 2000].O novo padr?o do SBTVD define ainda, três importantes diferen?as sobre o padr?o-base:Ado??o do padr?o de codifica??o de vídeo H.264/AVC (Advanced Video Coding). O ISDB-T usa o padr?o MPEG-2 Part 2 (conhecido como H.262).Taxa de quadros por segundo (FPS, Frame Rate per Second) de 30 quadros, inclusive para dispositivos móveis. O padr?o japonês usa 15 quadros/segundo para dispositivos móveis.Uso de interatividade, ausente no padr?o japonês.Além da defini??o do padr?o, um middleware é requerido para facilitar o desenvolvimento de aplica??es para o Sistema Brasileiro de TV Digital. Duas solu??es distintas, uma procedural, o GingaJ [Filho; Leite; Batista, 2007] suportando aplicativos escritos em Java, e outra declarativa, o GingaNCL [Soares; Rodrigues;Moreno, 2007], suportando aplicativos escritos na linguagem Nested Context Language (NCL), foram parando as duas abordagens o desenvolvimento de uma aplica??o para o GingaJ é mais simples e rápido, devido ao fato de Java ser uma linguagem bem disseminada no meio profissional e acadêmico. Outra vantagem é o uso da orienta??o a objetos e também de n?o haver necessidade de se integrar com nenhuma outra linguagem, ao contrario do que acontece em uma aplica??o implementada em NCLLua. Já o GingaNCL tem como vantagem a integra??o entre a linguagem C e Lua, podendo se trabalhar com um nível de abstra??o mais baixo, sendo mais adequado a aplica??es que necessitem de processamento em larga escala. Isso porque Lua é linguagem mais rápida e leve em compara??o a Java que, tendo o paradigma de orienta??o a objetos e um nível de abstra??o alto, requer um processamento maior [Oliveira, 2010].Um desenvolvedor n?o pode escrever aplica??es em NCL e rodá-las no abiente GingaJ, assim como também n?o é possível a execu??o de aplicativos Java no ambiente GingaNCL, o que exige que os dois middlewares diferentes tenham de ser instalados e usados de forma o objetivo de criar um núcleo de execu??o comum entre essas duas abordagens, foi criado o Ginga Common Core (GingaCC) que oferece suporte tanto para o GingaNCL e o GingaJ, ambiente declarativo e procedural do middleware Ginga respectivamente. A interliga??o entre o GingaCC, GingaJ e o GingaNCL é representada na Figura 1.O GingaCC será composto de diversos componentes e o seu desenvolvimento foi distribuído entre 13 universidades brasileiras coordenadas pela Universidade Federal da Paraíba (UFPB) em um projeto chamado Ginga Code Development Network GingaCDN), sendo que o GingaCC é o atual objetivo do projeto. Cada universidade é responsável pelo desenvolvimento de um conjunto de componentes do núcleo, criando uma rede distribuída e colaborativa de desenvolvimento de softwares para a TV Digital.Figura 1 - O middleware Ginga proposto pelo projeto GingaCDN.Esse trabalho tem como foco o desenvolvimento de um componente decodificador de mídias, chamado Media Processing, e seu reuso para a cria??o de um player de vídeo. O Media Processing é um dos principais componentes do GingaCC, sendo responsável pela decodifica??o da mídia, tarefa fundamental em qualquer sistema televisivo já que está diretamente relacionada à exibi??o de vídeo. Este artigo está organizado da seguinte forma: A Se??o 2 apresenta uma vis?o geral da arquitetura do middleware Ginga e seus componentes, incluindo a apresenta??o do componente Media Processing. Na Se??o 3 é detalhada a implementa??o do componente Media Processing desenvolvido para decodifica??o de vídeo. A Se??o 4 faz avalia??es da eficiência do componente para diferentes vídeos e a Se??o 5 descreve o reuso do componente Media Processing no desenvolvimento de um player de vídeo. A se??o 6 conclui o trabalho e aponta dire??es para trabalhos futuros.2. O middleware Ginga e seus componentes2.1. O middleware GingaO middleware Ginga é dividido entre três subsistemas, o declarativo GingaNCL, o procedural GingaJ e o provedor de métodos básicos, o GingaCC. Todas as aplica??es criadas para o Ginga têm de utilizar o GingaNCL e/ou o GingaJ, n?o sendo possível o uso dos métodos do GingaCC diretamente.O GingaNCL é um subsistema que provê suporte para aplica??es escritas na linguagem declarativa NCL. Este oferece uma grande gama de métodos para controlar o fluxo multimídia e hipermídia, provendo facilidades para sincronismo espa?o-temporal. Os componentes principais do GingaNCL s?o o NCL Formatter, responsável por decodificar fluxos de entrada, o motor LUA, o interpretador de scripts escritos na linguagem LUA, o componente que provê suporte pra o XHTML e o interpretador de estilo CSS (Cascading Style Sheets).O GingaJ é um subsistema que provê suporte à aplica??es escritas na linguagem procedural Java, desenvolvida pela Sun Microsystems. Este subsistema suporta o pacote JavaDTV [JavaDTV, 2011], uma implementa??o adaptada do pacote JavaTV mas sem problemas de royalties. Uma das implementa??es de referência deste sistema é o OpenGinga atualmente chamado de GingaJ e disponível em [GingaJ, 2010].Ambos os ambientes usam os recursos providas pelo GingaCC, sendo o mesmo responsável por prover métodos fundamentais para o middleware, como a sintoniza??o de canais, a exibi??o de mídias, controle gráfico e controle do canal de retorno.A comunica??o entre o GingaNCL e o GingaJ com o GingaCC está sendo feita através da Java Native Interface (JNI) [JNI, 2011]. A JNI é um padr?o de interface que permite a comunica??o entre programas nativos e programas escritos em Java. Desta maneira, os métodos básicos implementados no GingaCC podem ser chamados por aplica??es escritas tanto para o GingaNCL, como para o GingaJ. O Media Processing, detalhado na se??o 2.2, é um dos componentes do GingaCC, podendo ser usado tanto pelo ambiente declarativo quanto pelo procedural.2.2. O componente Media ProcessingO componente Media Processing é um dos principais componentes do GingaCC diretamente envolvido na renderiza??o e exibi??o de fluxos de vídeo. Para realizar esta tarefa, o Media Processing interage com os componentes Tuner, Information Service, Demux e Graphics.O componente Tuner é responsável por sintonizar os canais e capturar o fluxo de transporte ou stream, o conjunto formado por áudio, vídeo e outras informa??es transmitidas em um determinado canal. A saída do Tuner é enviada ao Information Service, que por sua vez, analisa o stream, obtendo algumas informa??es e adicionando dados essenciais para a reprodu??o. O Demux é responsável por demultiplexar o fluxo de entrada que comp?e o fluxo de transporte usando os dados obtidos pelo componente Information Service. A saída do Demux é enviada ao Media Processing, que decodifica o fluxo recebido, que pode ser composto de vídeos, áudios e legendas, e envia sua saída para o componente Graphics, último componente envolvido diretamente na exibi??o de vídeos. Finalmente, o Graphics faz o controle e a exibi??o da mídia decodificada.A Figura 2 ilustra as conex?es diretas entre os componentes Media Processing, Demux e Graphics, assim como as interfaces providas pelos mesmos. Vários métodos providos pela interface do Demux s?o utilizados pelo Media Processing no processo de decodifica??o, como o getVideoStream, que retorna o descritor do fluxo de vídeo para ser decodificado. O vídeo decodificado pelo Media Processing é enviado ao componente Graphics para que seja exibido na tela.Figura 2 - Interconex?es entre os componentes Media Processing, Demux e Graphics.3. Implementa??o do Media ProcessingA implementa??o do Media Processing segue a Java Media Framework (JMF) vers?o 1.0 [JMF, 2011]. A JMF é uma API que especifica uma arquitetura para sincronizar e controlar áudio, vídeo e outras estruturas baseadas em tempo, como legendas. A vers?o 1.0 especifica a reprodu??o de mídias.A vers?o atual da implementa??o do Media Processing é capaz de suportar fluxos de vídeo e legendas, n?o provendo suporte à streams de áudio. Uma descri??o de alto nível de suas funcionalidades está descrita abaixo:Aloca??o de recursos e controle do fluxo de mídia.Recebimento e decodifica??o de fluxos mídia em diversos formatos.Carregamento, sele??o e exibi??o de legendas.Captura de tela.Prover várias informa??es sobre o vídeo, como a dura??o total, tempo de reprodu??o atual, resolu??o e taxa de quadros por segundo.Suporte a transmiss?es de vídeo usando os protocolos Hypertext Transfer Protocol (HTTP), File Transfer Protocol (FTP), User Datagram Protocol (UDP) e Real-Time Transfer Protocol (RTP).O componente Media Processing apresentado neste trabalho foi desenvolvido na linguagem C++ usando a biblioteca libVLC [LivVLC, 2011] detalhada na se??o 3.1. Para ser integrado com os outros componentes, o modelo de componente utilizado foi o FlexCM [Filho, 2007], apresentado na se??o 3.2.3.1. A biblioteca libVLCLibVLC é uma biblioteca gráfica implementada na linguagem C e desenvolvida pela VideoLAN sob a licen?a GNU General Public License (GPL) vers?o 2. Esta biblioteca é compatível com vários formatos de mídia, inclusive o padr?o H.264/AVC, o padr?o de áudio MPEG Layer 3 e Advanced Audio Coded (AAC) e suporta diversos sistemas gráficos, como DirectX, OpenGL, X11, XVideo, SDL e Frame Buffer. Estas características aliadas a sua portabilidade com uma grande variedade de sistemas operacionais (Microsoft Windows, GNU Linux, Mac OS, BeOS e FreeBSD) e ao seu alto desempenho, justificaram a escolha por esta biblioteca para implementar o Media Processing.A vers?o da biblioteca usada no desenvolvimento do Media Processing é a de número 1.0.4. A partir da vers?o 1.0, a biblioteca funciona através de camadas crescentes de abstra??o de classes. As duas camadas de mais alto nível, libVLC_media_player e libVLC_media, provêm métodos para controlar a reprodu??o de mídias. A libVLC_media_player provê métodos para controlar a reprodu??o e também retornar informa??es relativas à ela, além de métodos auxiliares, como o de adicionar legendas ao fluxo em execu??o. Já a camada libVLC_media provê métodos de mais baixo nível que permitem controlar a mídia em si, como o descritor, e algumas opera??es básicas sobre a mídia, como o cálculo da dura??o total. Esta camada é separada em libVLC_video e libVLC_audio, as classes de menor nível de abstra??o, responsáveis por controlar diretamente os fluxos de vídeo e áudio, respectivamente.Algumas das principais funcionalidades do Media Processing e seus relacionamentos com as classes libVLC_media_player e libVLC_media est?o ilustradas na Figura 3.Figura 3 - Componente Media Processing, as classes libVLC_media_player e a libVLC_media e alguns dos métodos implementados.3.2. O modelo de componentes FlexCMO modelo de componente chamado de FlexCM [Filho, 2007], está sendo usado em todos os componentes do projeto GingaCDN. Um componente que se utilizar do FlexCM deve especificar uma interface provida a outros componentes e também as interfaces requeridas para que possa operar, sendo que a tarefa de realizar eventuais conex?es é realizada pelo FlexCM, em tempo de execu??o. Cada implementa??o deve, ainda, especificar dois arquivos:Architecture: Arquivo onde ser?o colocados dados essenciais para a execu??o do componente, como o caminho para a biblioteca din?mica de cada componente necessário e um identificador único para cada componente. Registry: Especifica as conex?es utilizadas pelo componente através do uso de um identificador único provido em cada interface.Essa metodologia auxilia o desenvolvimento distribuído e, também, garante um processo de integra??o mais rápido e eficiente. A vers?o do modelo de componente FlexCM utilizada na implementa??o do Media Processing foi a de número 0.2.4. Resultados ExperimentaisA implementa??o do Media Processing foi submetida a um conjunto de testes com o objetivo de avaliar o componente em termos de taxa de uso de processador e de custo de memória. O computador utilizado é equipado com um processador Intel Core 2 Duo 6320 [Intel, 2010], 2 Gigabytes (GB) de memória RAM e executando o sistema operacional Ubuntu 9.10. O GNU GCC foi utilizado para compila??o do componente Media Processing, sem ser utilizada qualquer das otimiza??es disponíveis para a referida arquitetura.As amostras foram obtidas de segundo em segundo ao se executar o vídeo especificado, por um tempo total de três minutos, sendo repetido o teste três vezes, perfazendo um total de 540 amostras para cada vídeo.Os resultados incluem os valores relativos ao carregamento do modelo de componente FlexCM, as aloca??es dos objetos da biblioteca libVLC, o processo de multiplexa??o padr?o e a renderiza??o do resultado através de um módulo X11 disponibilizado pela biblioteca libVLC.Nos experimentos foram usados quatro vídeos progressivos (p) em três diferentes resolu??es, o 848x480 (480p), conhecido como defini??o padr?o (Standard Definition, SD) e o 1280x720 (720p) e 1920x1080 (1080p), conhecidos como de alta defini??o (High Definition, HD). O vídeo STS116 foi obtido de [Nasa, 2011], o Taxi3 French, nomeado de Taxi, foi obtido de [WVM, 2011] e o Saguaro National Park, chamado de Park, e o Space Alone, chamado de Space, est?o disponíveis em [Adobe, 2011]. Os detalhes dos vídeos s?o apresentados na Tabela 1 (vídeos 480p), Tabela 2 (vídeos 720p) e na Tabela 3 (vídeos 1080p). Todos os vídeos possuem uma propor??o de tela (aspect ratio) de 16:9 e utilizam-se do contêiner MP4.Tabela 1 - Detalhes para o conjunto de vídeos 480p.Tabela 2 - Detalhes para o conjunto de vídeos 720p.Tabela 3 - Detalhes para o conjunto de vídeos 1080p.Os vídeos foram codificados de fontes 1080p usando o codificador x264 [X264, 2010] na vers?o 1376. O H.264 High Profile e o AVC nível 5.1 foram utilizados com uma taxa de bits constante para cada resolu??o. A taxa de quadros por segundo de todos os vídeos foram convertidos para 30 FPS. Alguns dos detalhes da codifica??o est?o listadas abaixo, elas s?o o padr?o do High Profile e do codificador x264 com AVC nível 5.1:Codificador de Entropia CABAC (Context-adaptive binary arithmetic coding).Filtro de Deblocagem ativado, strength e threshold com valor 0.Estima??o de Movimento Fracionária com hexagonal algorithm de tamanho 16x16 pixels, para as camadas de lumin?ncia e cromin?ncia, usando RDO (Rate-Distortion-Optimization) para os quadros I e P [X264, 2010].Transformada DCT (Discrete Cosine Transform) adaptável usando I4x4, I8x8, P8x8 e B8x8.Três B-Frames com bias igual a 0. Procura rápida por B-Frames adaptáveis e B-Pyramid desativado.Três quadros (frames) de referência com Adaptive I-Frame Decision ativado.Espa?o de cores YCbCr 4:2:0.A porcentagem média de uso de processador para o conjunto de testes está representada na Figura 4, onde observamos uma varia??o de 100,78% de uso de processador e entre os vídeos com resolu??o de 480p e 720p e de 58,60% entre os vídeos de 720p e 1080p. Na Figura 5 é ilustrada a quantidade média de memória requerida para executar os diferentes vídeos com o Media Processing, que obteve uma varia??o de 28,41% comparando os vídeos com resolu??o de 480p e 720p e de 44,24% entre os vídeos de 720p e 1080p.Figura 4 - Porcentagem de uso do processador pelo Media ProcessingFigura 5 - Uso de memória, em Megabytes, requeridas pelo Media essa avalia??o conclui-se que o crescimento de uso de memória é proporcional ao crescimento da qualidade do vídeo, mas a varia??o no uso de processador foi grande, chegando a mais que dobrar o uso de processador entre dois vídeos de qualidades próximas (480p e 720p). Além disso, observa-se que no vídeo de 1080p o uso de processador foi de 92,80% da capacidade total, para um processador de propósito geral de dois núcleos de processamento. Com isso conclui-se que o Media Processing requer que o middleware Ginga tenha um processador de alto desempenho para a execu??o de vídeos em qualidade superior, mas em contrapartida n?o necessita de uma grande quantidade de memória RAM, dentro dos padr?es atuais de hardware de um computador. O desempenho demonstrado pelo componente poderá ser melhorado com o desenvolvimento em hardware de um decodificador de vídeo para o formato H.264/AVC, aumentando o desempenho geral do processo do middleware.Na próxima se??o será demonstrado que o uso do componente desenvolvido n?o se restringe apenas ao seu uso no middleware, podendo ser reaproveitado para o desenvolvimento de aplica??es que necessitem de recursos para manipula??o de vídeo e áudio.5. Reuso do componente no desenvolvimento de um playerA partir dos métodos fornecidos pelo componente Media Processing foi desenvolvido um aplicativo gráfico para reprodu??o de vídeo. Além da funcionalidade de reprodu??o de vídeo, o aplicativo fornece outras funcionalidades relacionadas com a manipula??o de mídias e de legendas. Para implementar estas funcionalidades, s?o usados métodos providos pelo componente Media Processing. A Figura 6 ilustra o diagrama de casos de uso desta aplica??o, no qual podem ser observadas as funcionalidades atendidas pelo player.Para o controle da reprodu??o de vídeos, o aplicativo possui cinco funcionalidades básicas: “Reproduzir vídeo”, “Pausar vídeo”, “Parar vídeo”, “Carregar vídeo local” e “Carregar vídeo pela Web”, que est?o representadas no diagrama. O caso de uso “Reproduzir vídeo” realiza a decodifica??o do vídeo, o que implica em colocar o reprodutor no estado “play” e uma precondi??o para a execu??o deste caso de uso é que o player deve estar no estado “stop” ou “pause”. Além disso, antes de reproduzir o vídeo este deve ser carregado. O vídeo a ser carregado pode estar localmente armazenado ou estar disponível na web, os casos de uso “Carregar vídeo local” e “Carregar vídeo da Web” representam estas modalidades de carga. Na carga de vídeo local, o usuário indica a localiza??o do arquivo referente à mídia (unidade de disco e caminho para a pasta). No caso da carga de vídeo da web, a localiza??o do vídeo na internet deve ser informada pelo usuário. Se outro vídeo estiver sendo reproduzido, antes da carga será executado o caso de uso “Parar vídeo”, que desaloca os recursos para que um novo vídeo possa ser carregado. O usuário também pode pausar a reprodu??o, esta funcionalidade está representada pelo caso de uso “Pausar vídeo”, coloca o reprodutor no estado de “pause”, e uma precondi??o para sua execu??o é que o player esteja no estado de “play”.O aplicativo permite também adicionar uma legenda, bem como selecionar a legenda a ser usada durante a reprodu??o (casos de usos “Adicionar legenda” e “Selecionar legenda” na Figura 6). No caso de uso “Adicionar legenda”, uma nova legenda é adicionada ao vídeo atualmente alocado. As legendas devem ser compatíveis com o suporte dado pela libVLC sendo que esta suporta uma série de formatos, como o básico SubRip (SRT), o Advanced Substation Alpha (ASS), e o SBTVD Standard Subtitle Format. No caso de uso “Selecionar legenda”, o usuário escolhe uma legenda específica para ser reproduzida junto ao vídeo. Uma precondi??o para a execu??o deste último caso de uso é que haja um vídeo alocado pelo player e uma legenda carregada.O player desenvolvido também permite que o usuário obtenha algumas informa??es sobre o vídeo e capture uma tela do vídeo. Dois casos de uso representam a funcionalidade de visualiza??o das informa??es do vídeo, s?o eles: “Ver informa??es do vídeo” e ”Ver informa??es gerais”. No caso de uso “Ver informa??es do vídeo” s?o providas informa??es sobre a taxa de frames por segundo (FPS), o tempo atual do frame corrente em microssegundos e as dimens?es do vídeo (altura e largura do vídeo), além da dura??o total do vídeo alocado, quando possível já que algumas transmiss?es pela internet e transmiss?es pela TV n?o provém essa informa??o. O usuário pode também solicitar informa??es adicionais do vídeo e esta funcionalidade está representada pelo caso de uso “Ver Informa??es gerais”, que provê uma série de informa??es como nome do arquivo, artista, álbum, etc. Por fim, o usuário pode solicitar a captura de uma tela, funcionalidade representada pelo caso de uso “Capturar tela”, que retira uma screenshot do frame atual mostrado pelo player. O arquivo criado utiliza a compress?o com poucas perdas fornecida pelo formato Joint Photographic Expert Group (JPEG). Uma precondi??o para a execu??o do “Capturar tela” é que o player esteja no estado de “Play” ou “Pause”. O aplicativo em funcionamento é ilustrado na Figura 7.Figura 6 - Diagrama de casos de uso UML do player de vídeo.Figura SEQ Figura \* ARABIC 7 - Imagem do aplicativo em funcionamento.Este player de vídeo, foi implementado na linguagem C++, usando o sistema para o desenvolvimento de programas de interface gráfica Qt na vers?o 4. O player foi executado usando sistema operacional Ubuntu 9.10, sendo o FlexCM responsável por fazer a conex?o entre o aplicativo reprodutor de vídeo e o componente Media Processing.6. Conclus?o e Trabalhos FuturosO presente trabalho apresentou uma implementa??o do componente Media Processing para o middleware Ginga. Esta implementa??o faz uso da biblioteca libVLC e os resultados dos experimentos mostram que o Media Processing requer um elevado custo de processador, principalmente para vídeos de alta defini??o, mas em contrapartida pouca quantidade de memória RAM, considerando os padr?es a conclus?o do desenvolvimento do Media Processing será feito o processo de integra??o com os demais componentes disponibilizando um midlleware único que permita ao desenvolvedor escolher entre o ambiente declarativo ou procedural, para a cria??o de suas aplica??es.Também foi apresentado o desenvolvimento de um player utilizando-se do componente desenvolvido para o middleware Ginga. Isso demonstra que o componente pode ser reusado no desenvolvimento de aplica??es para TV digital que necessitem da manipula??o de vídeo e áudio.Quanto aos trabalhos futuros será necessário adicionar ao componente Media Processing, suporte a áudio e algumas outras funcionalidades relacionadas tais como controle de volume e o seletor de stream de áudio. Além disso, pretende-se a realiza??o de compara??es de desempenho com outra implementa??o do componente Media Processing para o SBTVD e a implementa??o de outras aplica??es reusando o componente apresentado neste trabalho.ReferênciasAdobe - Adobe Flash HD Gallery, diponível em: . Acesso em: janeiro de 2011.ATSC - Advanced Television Systems Committee, diponível em: . Acesso em: janeiro de 2011.Decreto 4901, disponível em: 2003/d4901.htm. Acesso em: janeiro de 2011. 2003.Decreto 5820, disponível em: . Acesso em: dezembro de 2010.DVB - Digital Video Broadcasting, diponível em: . Acesso em: mar?o de 2011.Filho, G. L. S., Leite, L. E. C., Batista, C. E. C. F.: GingaJ: The Procedural Middleware for the Brazilian Digital TV System. J. of the Brazilian Computer Society vol.12, 47--56 (2007).Filho, S.M., et al.: FLEXCM - A Component Model for Adaptive Embedded Systems. In: 31st IEEE International Computer Software and Applications Conference, pp.119—126. IEEE Press, New York (2007).Ginga-J, diponível em: http . Acesso em: dezembro de 2010.Intel - Intel Core 2 Duo Processor E6320, . Acesso em: dezembro de 2010.ISDT - Integrated Services Digital Broadcasting Terrestrial, diponível em: http:// . Acesso em: mar?o de 2011.Java DTV API 1.0, diponível em: . Acesso em: janeiro de 2011.JMF 1.0 Programmers guide, diponível em: . Acesso em: janeiro de 2011.JNI - Java Native Interface: diponível em: . Acesso em: janeiro de 2011.libVLC, diponível em: . Acesso em: janeiro de 2011.NASA High Definition Video, diponível em: . acesso em: janeiro de 2011.Oliveira, B. Um estudo de caso entre GingaJ e GingaNCL no ?mbito de aplica??es interativas residentes, diponível em: . Acesso em: janeiro de 2011.SBTVD – Sistema Brasileiro de TV Digital, disponível em: . Acesso em: janeiro de 2011.SET - A comparative study of Digital TV standards, . Acesso em: janeiro de 2011Soares, L. F. G., Rodrigues, R. F., Moreno, M. F.: GingaNCL: the declarative environment of the Brazilian Digital TV System. J. of the Brazilian Computer Society vol.1, 37--46 (2007).WMV HD Content Showcase, diponível em: . Acesso em: janeiro de 2011.X264, diponível em: . Acesso em: dezembro de 2010.Gerenciamento ?gil de Fornecedor de Software: Um paradigma a ser quebradoR?mulo César Dias de Andrade1, Teresa Maria Medeiros Maciel1,21Centro de Informática – Universidade Federal de Pernambuco (UFPE) Recife – PE – Brasil2Centro de Informática – Universidade Federal Rural de Pernambuco (UFRPE) Recife – PE – Brasilrcda2@cin.ufpe.br, tmmaciel@Abstract. This article presents the foundations of the concept of Supplier Management Agile Software, based on the principles and values of Agile Software Engineering. The development of this work was through a process of literature review, which analyzes the conflicts and difficulties in reaching a Supplier Management using the principles of Agile. Then, through an inductive approach, focusing on the convergence between the concepts involved, we analyzed how agile principles could help to minimize the gap between clients and Software Houses.Resumo. Este artigo apresenta as bases do conceito de Gerenciamento ?gil de Fornecedor de Software, baseado nos princípios e valores das Metodologias ?geis da Engenharia de Software. O desenvolvimento deste trabalho se deu através de um processo de Revis?o da Literatura, no qual foram analisados os conflitos e dificuldades para se chegar a um Gerenciamento de Fornecedor utilizando os princípios das Metodologias ?geis. Em seguida, através de uma abordagem indutiva, com foco na convergência entre os conceitos envolvidos, analisou-se como os princípios ágeis poderiam contribuir para minimizar o hiato existente entre clientes e Software Houses.1. Introdu??oSegundo Kaplan & Norton (1997), tradicionalmente as corpora??es têm tratado suas unidades de servi?o de TI como centros de despesas distintos, o que pouco contribu para alinhá-las, de modo à melhor servir às unidades de negócio e à corpora??o.Diante desse contexto surgiu à necessidade dos departamentos de TI para criar valor do negócio, resultando na aprova??o de um grande número de arquiteturas, métodos e ferramentas em que se tornou conhecido como genericamente como "IT Governance". Por progressiva ado??o, as organiza??es querem, em maior ou menor grau, reduzir o fosso histórico entre TI e o negócio, garantindo o alinhamento desejado entre as empresas, por um lado, e dos sistemas e tecnologias informa??o, por outro. Contudo existe a necessidade de mostrar e projetar uma própria estrutura de gerenciamento de fornecedor ágil com padr?es típicos de Governan?a de TI, com uma característica muito específica destinadas a informa??es para pessoas de negócios que fazem contrata??es de servi?os de software.Assim, o Gerenciamento ?gil de Fornecedor, que prevê a implementa??es dos princípios e valores dos métodos ágeis junto aos processos tradicionais de Governan?a de TIC com finalidade de melhorar a integra??o dos clientes com as softwares houses. Segundo Fernández (2008), a possibilidade de maximizar o potencial dos fatores críticos de sucesso do gerenciamento de TIC através da aplica??o dos princípios e valores dos métodos ágeis foi identificada, mas uma rela??o positiva no uso de uma abordagem ágil com os projetos em Governan?a de TIC é acreditada ser possível.2. Gerenciamento de FornecedorSegundo (), o objetivo do gerenciamento de fornecedor é obter o controle e monitoramento do fluxo do processo, a fim de garantir uma presta??o eficaz dos servi?os de alta qualidade. Como regra geral, há um número de fornecedores envolvidos. Estes s?o também muitas vezes subdivididas em principais fornecedores e fornecedores de subcontrato.Por conseguinte, é necessário definir com clareza se o prestador de servi?os está a negociar diretamente com todos os fornecedores ou se um fornecedor principal é o de assumir a responsabilidade para os fornecedores de subcontrato. O processo de gest?o fornecedor deve garantir que o fornecedor entenda suas obriga??es para com o prestador de servi?os.Os requisitos devem ser claramente definidos e acordados. ? também necessário garantir que todas as altera??es a estes acordos s?o monitorados pelo processo de gest?o da mudan?a. A fim de evitar conflitos recomenda-se que registre a cria??o de todas as transa??es comerciais oficiais entre todas as partes. Os servi?os do fornecedor devem ser continuamente monitorados e uma resposta adequada tomada como necessário.O processo de Gest?o de Fornecedor tenta assegurar que os fornecedores cumpram os termos, condi??es e metas de seus contratos e acordos. Todos os fornecedores e atividade do processo de gest?o devem ser orientados por uma estratégia de fornecedores e política de estratégia de servi?o. A fim de assegurar a coerência e a eficácia na implementa??o da política, um fornecedor e contratos de Banco de Dados (SCD) devem ser estabelecidos, conforme ilustrado na Figura 1, juntamente com papéis claramente definidos e responsabilidades. OGC (2007).Figura 1 - Processo de Gest?o de FornecedorFonte: Extraído de OGC (2007)3. Metodologias ?geisMétodos ágeis de desenvolvimento de software vêm ganhando crescente popularidade desde o início da década de 2000 e, de acordo com Parsons et al. (2007), em algumas circunst?ncias podem oferecer melhores resultados para projetos de desenvolvimento de software quando comparados às abordagens mais tradicionais. Eles s?o regidos pelo “Manifesto ágil” (2001), conjunto de valores e princípios criados por 17 desenvolvedores experientes, consultores e líderes da comunidade de desenvolvimento de software. Segundo Dyba (2000) e Nerur et al. (2005) estes métodos podem ser vistos como uma rea??o aos métodos tradicionais (também conhecidos como dirigidos por planos) que enfatizam o planejamento e a predi??o de solu??es para cada problema do desenvolvimento.O Manifesto do desenvolvimento ?gil que destaca as diferen?as às abordagens tradicionais e define seus valores, s?o eles:Indivíduos e intera??o entre eles mais do que processos e ferramentas;Software em funcionamento mais do que documenta??o abrangente;Colabora??o com o cliente mais do que negocia??o de contratosResponder a mudan?as mais do que seguir um plano.? importante destacar que os métodos ágeis consideram importantes os itens à direita, mas d?o mais valor para os itens destacados à esquerda. Além dos quatro conceitos básicos citados acima, o manifesto ágil também apresenta 12 princípios que auxiliam a dissemina??o de suas idéias Agile Manifesto (2009):A maior prioridade é a satisfa??o do cliente por meio da entrega rápida e contínua de software que traga valor;Mudan?as nos requisitos s?o aceitas, mesmo em estágios avan?ados de desenvolvimento. Processos ágeis aceitam mudan?as que trar?o vantagem competitiva para o cliente;Software que funciona é entregue freqüentemente, em períodos que variam de semanas a meses, quanto menor o tempo entre uma entrega e outra, melhor;As pessoas relacionadas ao negócio e os desenvolvedores devem trabalhar juntos no dia a dia do projeto;Construa projetos formados por indivíduos motivados, fornecendo o ambiente e o suporte necessário e confiando que realizar?o o trabalho;O modo mais eficiente e eficaz de transmitir informa??es dentro e fora do time de desenvolvimento é a comunica??o face a face;A principal medida de progresso é software funcionando;Processos ágeis promovem o desenvolvimento em um ritmo sustentável. Os investidores desenvolvedores e usuário devem ser capazes de manter um ritmo constante;Cuidar continuamente da excelência técnica e do bom design ajuda a aprimorar a agilidade;Simplicidade – a arte de maximizar a quantidade de trabalho n?o necessário – é essencial;Os melhores requisitos, arquiteturas e design surgem de equipes autogerenciadas eEm intervalos regulares, o time reflete sobre como se tornar mais eficiente, refinando e ajustando seu comportamento apropriadamente.4. O Desafio do Gerenciamento de Fornecedor ?gilVárias empresas terceirizam o desenvolvimento de software, as empresas contratadas por sua vez para desenvolver tais softwares muitas vezes utilizam metodologias ágeis para dá suporte ao gerenciamento do seu desenvolvimento, trazendo com isso uma falta de planejamento e acompanhamento do cliente em rela??o o que esta acontecendo no projeto.Em essência, dando mais agilidade aos processos de governan?a em TIC, já implica um maior nível de convergência entre as iniciativas de TIC e os objetivos de negócio que é uma premissa da Governan?a de TIC. No entanto, outros benefícios de uma abordagem ágil no gerenciamento de fornecedor é o contexto da empresa poder acompanhar melhor a evolu??o do seu produto obtendo com isso uma melhora no tempo de coloca??o do produto no mercado sendo este interno ou externo a empresa e aumentando a velocidade do processo decisório, o que acaba por se refletir no aumento da competitividade organizacional.O Processo de Gerenciamento de Fornecedores presta aten??o aos fornecedores e aos contratos de fornecimento de servi?os recebidos pelo comprador. Via de regra quanto maior a contribui??o de um Fornecedor ao negócio maior o esfor?o no gerenciamento da rela??o, contudo gerenciar um fornecedor de software que utiliza metodologias ágeis tem suas particularidades, pois fazer contrato de softwares onde as entregas ser?o monitoradas por uma documenta??o prévia estabelecida pelas as partes interessadas foge do principio ágil tendo em vista que todo processo de desenvolvimento tem que ser monitorado por um acordo de nível de servi?o previamente estabelecido.O grande desafio é de como proceder corretamente para implantar um processo de gerenciamento de fornecedor de software e como deve ser incorporados dentro da metodologia ágil com o intuito de definir um escopo seguro que estabele?a garantias de controle, acompanhamento e gerenciamento considerando-se os resultados imprevisíveis durante o desenvolvimento dos produtos de software.Outro ponto crítico na jun??o dessas abordagens (Gerenciamento de Fornecedor e Metodologias ?geis) é de como adaptar a gama de variedades de metodologias que temos no mercado como no gerenciamento de fornecedor com (ITIL,CMMI,MPSBR e etc.), e as metodologias ágeis com (SCRUM,XP,TDD e etc.) para um padr?o que possa ser utilizado por todas essas metodologias.Um fator culminante para um bom gerenciamento de fornecedor ágil é que a empresa precisa ter um bom mecanismo eficaz para promover o relacionamento, comunica??o e colabora??o entre pessoas de organiza??o com os terceirizados, no contexto das estruturas regulares e processos. A empresa precisa colocar mais ênfase nas pessoas e seus relacionamentos, e que eles n?o s?o implícita. Segundo De Haes e Van Grember (2005) mostra claramente que para fazer uma Governan?a de TI com sucesso deve-se acrescentar um terceiro elemento para o já conhecido "estruturas" e "Processos", este elemento n?o é outro sen?o o "Relacionamentos”.5. Contribui??o da pesquisaEste artigo discute, em nível conceitual, os pontos críticos do convencional Governan?a de TIC e como os princípios e valores do Agile Software Engineering podem ajudar a minimizar ou eliminar esses problemas através da identifica??o de possíveis convergências entre os conceitos envolvidos.Ficando subentendido as dificuldades para poder definir um processo ágil para apoiar as organiza??es na implementa??o das boas práticas de gerenciamento de fornecedor, fornecendo uma orienta??o através de fases e atividades para planejar, organizar e executar um projeto organizacional para gerenciamento de fornecedor.O objetivo de gerenciamento de fornecedor ágil apresentada neste artigo pode ser útil durante o período de aquisi??o de um software por meio de uma equipe terceirizada utilizando de um método de gerenciamento que siga premissas do conceito ágil. Mudar a cultura de gerenciamento de uma organiza??o com o objetivo de aumentar a produtividade e a qualidade dos seus produtos e servi?os é extremamente difícil, por isso esta proposta de mesclar metodologias diferentes pode contribuir para um melhor alinhamento organizacional da empresa tendo em vista que muitos processos abordados a mesma já utiliza de forma tradicional. Também s?o fontes buscadas de contribui??o:Prover um mapeamento necessário do gerenciamento de fornecedor para pressupor o fluxo de inicia??o, desenvolvimento e término das tarefas existentes em cada etapa do processo, de acordo com o modelo de negócios da empresa.Auxiliar novas pesquisas acadêmicas sobre melhoria de gerenciamento de fornecedor com o uso de metodologias ágeis relacionadas ao gerenciamento tradicionais apresentando suas principais diferen?as, para que sirvam como base no desenvolvimento de trabalhos de conclus?o de curso, disserta??es de mestrado e teses de doutorado.S?o grandes os desafios levantados para a jun??o de duas metodologias, fornecendo os princípios e valores do Agile Software Engineering para o processo convencional de Gerenciamento de Fornecedor, deixando, no entanto, os detalhes de sua aplica??o para um trabalho futuro.6. Conclus?oEste artigo apresentou os princípios e conceitos de Metodologias ?geis e Gerenciamento de Fornecedor. Mostrando os desafios que continuam a ser preenchido, com a possibilidade de definir uma estrutura de um quadro de referência para a jun??o destes conceitos, quebrando os paradigmas das empresas nas aquisi??es de servi?os de softwares melhorando os papéis, as rela??es e a??es para promover o fechamento do hiato entre cliente e fornecedores. Possibilitando com isso uma base para as empresas melhorem o seu fluxo de processo.Neste contexto, este trabalho prop?e a sua principal contribui??o, a condu??o de uma pesquisa conceitual, que serve para corroborar os resultados preliminares obtidos através da análise das informa??es extraídas a partir de revis?es das literaturas sobre os conceitos envolvidos. Além disso, ele apresenta a defini??o de Metodologias ?geis e da explora??o da convergência entre os conceitos abordados. Tanto a motiva??o para avan?ar e desenvolver um método de abordagem ágil para o Gerenciamento de Fornecedor, bem como a apresenta??o de uma futura proposta pelo posicionamento deste novo conceito em rela??o às áreas de conhecimento, também pode ser considerado como uma contribui??o deste trabalho.ReferênciasAgile Manifesto. Manifesto for Agile Software Development 2009. Disponível em: <; Acesso em: 19 de novembro de 2010.Dyba, T. (2000) “Improvisation in small software organizations”. In: IEEE Software, 17(5):82–87.Fernández, J; Mayol, E; Pastor, JA. (2008). Agile Business Intelligence Governance: Su justificación y presentación. uc3m.es, Universitat Politècnica de Catalunya, 2008. Disponível <;. Acesso em: 04 de dezembro de 2010.. Supplier Management. Oficial Website. Disponível em: <;. 01 de dezembro de 2010.Kaplan, R.S.; Norton, D.P. (1997). “A Estratégia em A??o: Balanced Scorecard”. 22. Edi??o. Rio de Janeiro: Campus, 1997.Nerur, S., Mahapatra, R. e Mangalarj, G. (2005) “Challenges of migrating to agile methodologies”. In: Communications of the ACM, 48(5):72–78.OGC (2007). Office of Government Commerce. ITIL Version 3 Service Design.Parsons, D., Ryu, H. e Lal, R. (2007) “The impact of methods and techniques on outcomes from agile software development projects”. In: Organizational Dynamics of Technology-Based Innovation: Diversifying the Research Agenda, v.235 of IFIP, p. 235–249. Springer Boston.S.De Haes, W.Van Grembergen, "IT Governance Structures, Processes and Relational Mechanisms: Achieving IT/Business Alignment in a Major Belgian Financial Group”, 2005.Klon: Uma Ontologia para o Domínio da ClonagemLídia F. N. de Melo?, Armanda M. C. de Amorim Oliveira?, Eric Rommel G. Dantas?, Ryan R. de Azevedo?, Hugo Vieira L. de Souza1,2, Mauricio de O. D. Fernandes31Centro de Informática – Universidade Federal de Pernambuco (CIn-UFPE) Caixa Postal 7851 – Recife – PE – Brasil2Faculdade Escritor Osman da Costa Lins (FACOL) CEP: 55612-650 – Vitória de Santo Ant?o – PE – Brasil3Faculdade Integrada do Recife (FIR) CEP 50720-635 – Recife – PE – Brasil{lfnmr,amcao, hvls, ergd, rra2}@cin.ufpe.br, {mauriciodiasf}@Abstract. Knowing that problems caused by degenerative diseases strike millions of people around the world, studies and research has been developed to make cloning a solution to soften these diseases, or even, provide a cure for them. Facing that, this paper proposes Klon, an ontology capable of specifying, formalize and store knowledge in a clear way, pertaining the domain of cloning, able to put together innumerable concepts, classes, restrictions and properties. Klon was developed using the methontolgy, having as a goal to provide an efficient storage of information and knowledge for the stated domain, being able to offer a reuse of ideas trough the creation and development of ontologies and applications. Resumo. Sabendo que problemas causados por doen?as degenerativas atingem milhares de pessoas ao redor do mundo, estudos e pesquisas vêm sendo desenvolvidos para tornar a clonagem uma solu??o para amenizar estas doen?as, ou até mesmo, proporcionar a cura para as mesmas. Diante disto, este artigo prop?e a Klon, uma ontologia capaz de especificar, formalizar e armazenar conhecimentos de forma clara, acerca do domínio da clonagem, capaz de reunir inúmeros conceitos, classes, restri??es e propriedades. A Klon foi desenvolvida utilizando a methontology, tendo como objetivo proporcionar um armazenamento eficaz das informa??es e conhecimentos do domínio exposto, podendo oferecer um reuso de ideias através da cria??o e desenvolvimento de ontologias de aplica??es.1. Introdu??oA evolu??o das pesquisas científicas na área da Engenharia Genética obteve destaque nos últimos anos, tendo fascinado diversos grupos de cientistas ao longo do século, especialmente no que diz respeito à tecnologia de transferência nuclear existente no processo de clonagem. Para tal evolu??o, é necessário observar que o desenvolvimento destas pesquisas visa melhorar a qualidade de vida da humanidade, que ainda sofre com a existência de doen?as degenerativas e outros males.A clonagem faz parte da natureza desde o princípio e, ao longo do tempo, ganhou espa?o e desencadeou o início de inúmeras discuss?es e polêmicas. ? evidente a transi??o da antiga fic??o científica para a atual realidade do grupo de cientistas que buscam cada vez mais o sucesso e o progresso de suas pesquisas, procurando solucionar problemas existenciais e proporcionando o surgimento de benefícios terapêuticos. Devido à complexidade dos estudos relacionados à clonagem, é necessário haver um armazenamento dos processos existentes, a fim de proporcionar o reuso dos conhecimentos adquiridos, ocasionando ganhos significativos com rela??o a tempo e esfor?o.A Web, por sua vez, corresponde a uma ampla fonte de dissemina??o de informa??es, oferecendo meios de comunica??o e intera??o. A falta de organiza??o destes conteúdos afeta diretamente os mecanismos de busca que, por serem altamente sensíveis ao vocabulário, n?o conseguem filtrar a informa??o relacionada à necessidade do usuário, retornando inúmeras páginas indesejadas, priorizando a quantidade de retornos e n?o a qualidade dos mesmos. Portanto, em contraposto à Web atual, denominada de Web sintática, a Inteligência Artificial (IA) disponibiliza a Web Sem?ntica e suas particularidades, uma vez que possui uma significativa contribui??o ao categorizar as informa??es a serem processadas, melhorando a potencialidade das buscas e permitindo a cria??o e a utiliza??o de suas ferramentas [RAMALHO, 2006].Tendo em vista os benefícios proporcionados pela utiliza??o da Web sem?ntica, é necessário saber que a mesma é dividida em camadas, considerando-se a camada de ontologias como a principal, pois nesta camada é armazenada toda a inteligência. Diante disto, a cria??o de ontologias torna-se uma tarefa cada vez mais constante por tratar-se de um artefato computacional composto de vocabulário de conceitos e suas defini??es, rela??es, propriedades e axiomas referentes ao domínio exposto [FREITAS e SCHULZ, 2009].Considerando as informa??es descritas acima, pode-se destacar a jun??o entre as áreas da Engenharia Genética e a Inteligência Artificial, precisamente no estudo da Clonagem e na utiliza??o das ontologias. Devido a isto, tem-se como exemplo a complexidade do conhecimento médico e biológico, onde se torna difícil a confec??o de sistemas tradicionais, pois para assistir tarefas médicas, os sistemas precisam de muito conhecimento e capacidade de inferência, sendo esta talvez, a principal raz?o de aplicabilidade e consequente sucesso do uso de ontologias nessa área [FREITAS et. al., 2009].Sendo assim, foi desenvolvida a Klon, uma ontologia de domínio, capaz de especificar, formalizar e armazenar conhecimentos de forma clara, acerca do processo da clonagem, reunindo inúmeros conceitos, classes, restri??es e propriedades. A Klon proporcionará a obten??o de conhecimentos, de forma eficaz, dos processos existentes na clonagem, pois através de sua base de informa??es, enfatizará os tipos de clonagem, identificando suas principais características e rela??es, além de informar as principais motiva??es e benefícios de sua prática, auxiliando pesquisas e estudos científicos no ?mbito da biologia.As se??es deste artigo est?o estruturadas da seguinte forma: a Se??o 2 e 3, respectivamente, referem-se ao embasamento teórico do trabalho, apresentando Clonagem e Ontologias. A se??o 4 apresenta a real proposta deste trabalho, seguindo a se??o 5 onde s?o apontandos os Cenários de utiliza??o e Benefícios do Uso da Klon. Por fim, na Se??o 3 apresentam-se as considera??es finais e trabalhos futuros.2. ClonagemA palavra “clone”, do grego Klon, significa broto e foi cunhada em 1903 pelo bot?nico H. J. Webber [Pena 1999]. Clonagem é um mecanismo comum de propaga??o da espécie em plantas ou bactérias [ZATZ, 2004]. De acordo com [ALHO, 2004], a clonagem é um processo de reprodu??o assexuada (sem auxílio ou interven??o de células sexuais) em que através de um único indivíduo ancestral, originam-se organismos clones (indivíduos geneticamente idênticos ao indivíduo ancestral). A clonagem pode ser classificada em: clonagem natural e clonagem artificial. Abaixo, será descrito cada tipo de clonagem.A clonagem natural ocorre de forma natural e espont?nea, mais precisamente em seres unicelulares (seres constituídos por uma única célula), bactérias ou até mesmo em mamíferos, como é o caso de gêmeos univitelinos, denominados assim por serem gerados dentro de um mesmo óvulo e possuírem o genoma (conjunto genético) idêntico [ALHO, 2004].Embora o processo da clonagem natural ocorra através de uma reprodu??o sexuada do ovo (onde há a necessidade da uni?o da célula sexual feminina conhecida como óvulo e da célula sexual masculina conhecida como espermatozóide), os indivíduos gerados carregar?o o mesmo patrim?nio genético, tendo em vista que o processo originado na divis?o celular foi feito de forma assexuada. Este tipo de clonagem n?o possui impacto na sociedade humana pelo fato de ocorrer na natureza, durante toda a existência, produzindo desde bactérias até seres humanos (gêmeos univitelinos) [ALHO, 2004].A clonagem artificial é bem mais complexa e pode ser definida como uma técnica de manipula??o genética iniciada a partir da jun??o de um núcleo de uma célula somática (células responsáveis pela forma??o de estruturas do corpo como tecidos e órg?os) de um indivíduo doador com o óvulo anucleado (sem núcleo) de um indivíduo hospedeiro [ZATZ, 2004]. De acordo com [VARELLA, 2004], a clonagem artificial pode ser dividida em reprodutiva e terapêutica.Apesar da técnica de manipula??o genética empregada no processo da clonagem artificial ser exatamente idêntica nos dois tipos de clonagem artificial, a reprodutiva tem o intuito de dar origem a um indivíduo de patrim?nio geneticamente idêntico ao indivíduo clonado, enquanto que a terapêutica é utilizada para fins terapêuticos, ou seja, trata-se do cultivo de células-tronco, definidas por Varella (2004) como sendo células primitivas produzidas durante o desenvolvimento do organismo e dando origem a outros tipos de células em laboratório com o intuito de fabricar tecidos idênticos ao do indivíduo que as está doando. O objetivo desse cultivo é a reposi??o de tecidos perdidos por acidentes ou a obten??o da cura para doen?as degenerativas [VARELLA, 2004].Embora o processo de clonagem seja considerado um marco para o desenvolvimento das pesquisas científicas na área da engenharia genética, inúmeras discuss?es s?o propostas nos campos morais, éticos, jurídicos e, principalmente, religiosos, visto que há uma série de conflitos explícitos entre Ciência e Religi?o. Mesmo diante desses obstáculos, é necessário que as pesquisas científicas nesse campo estejam em constante evolu??o, proporcionando padroniza??o, compartilhamento e reuso de conhecimento de todo o processo utilizado pela clonagem.3. OntologiaDesde o século XVII, o termo “ontologia” tem sido utilizado para denominar a disciplina de metafísica geral, dentro da tradi??o da “primeira Filosofia” de Aristóteles, como sendo a ciência do ser no papel de ser (ou a ciência das causas, pois inquire a origem do conhecimento de tudo aquilo que se sup?e existir). ?, muitas vezes, encarada como um complemento à idéia de Epistemologia (ciência do conhecimento) [Freitas et al 2009].Diversas defini??es têm surgido a fim de descrever o que é uma ontologia dentro do ramo de informática. A mais conhecida é “uma especifica??o formal e explícita de uma conceitualiza??o compartilhada” [GRUBER, 1995], onde:Formal: implica em ser declarativamente definida, portanto, compreensível para agentes e sistemas;Explícita: significa que os elementos e suas restri??es est?o claramente definidos;Conceitualiza??o: trata de um modelo abstrato de uma área de conhecimento ou de um universo limitado de discurso;Compartilhada: indica um conhecimento consensual, seja uma terminologia comum da área modelada, ou acordada entre os desenvolvedores dos agentes que se comunicam.Sendo assim, ontologias, em um nível de abstra??o mais alto, estabelecem uma terminologia comum e n?o-ambígua para o domínio em quest?o. Para Guarino (1998), as ontologias s?o artefatos computacionais compostos de um vocabulário de conceitos, suas defini??es e suas possíveis propriedades, um modelo gráfico mostrando todas as possíveis rela??es entre os conceitos e um conjunto de axiomas formais que restringem a interpreta??o dos conceitos e rela??es, representando de maneira clara e n?o ambígua o conhecimento do domínio. Inúmeras vantagens têm sido apresentadas na literatura para a ado??o de ontologias. Dentre elas, ressaltam-se as seguintes [FREITAS, 2003]:Oportunidade aos desenvolvedores reusarem conhecimento, mesmo com adapta??es e extens?es. Isso se explica pelo fato de que a constru??o de bases de conhecimento é uma das tarefas mais caras, complexas e demoradas de um sistema especialista e/ou agentes. Portanto, reusar ontologias promove um ganho significativo em termos de esfor?os e de investimentos;A grande disponibilidade de “ontologias de prateleira”, prontas para uso, reuso e comunica??o entre agentes, podendo estas serem estendidas e complementadas com conceitos de domínios específicos;O acesso on-line a servidores de ontologias, capazes de armazenar milhares de classes e inst?ncias, servindo a empresas ou grupos de pesquisa, funcionando como ferramentas para manter a integridade do conhecimento compartilhado entre elas e garantindo um vocabulário uniforme;Recentemente o uso de ontologias tem se popularizado através de diversas outras subáreas da Ciência da Computa??o, tais como: Engenharia de Software, Banco de Dados e Sistemas de Informa??o, motivados pela Web Sem?ntica, que é uma consequência direta do uso de ontologias [BERNERS-LEE et. al., 2001].4. PropostaA proposta deste artigo é apresentar a Klon, uma ontologia para o domínio da clonagem. Considera-se que o entendimento e os processos de clonagem ser?o mais eficientes tendo como base um modelo formal de informa??es como essa ontologia. A Klon tem o objetivo de facilitar o entendimento do domínio, enfatizando os tipos de clonagem, identificando suas principais características e rela??es, além das principais motiva??es e benefícios de sua prática, auxiliando pesquisas e estudos científicos no ?mbito da biologia.4.1 KlonA ontologia foi desenvolvida utilizando o Protégé 3.4, um ambiente gráfico para cria??o e edi??o de ontologias e bases de conhecimento. A linguagem utilizada foi a OWL DL, que incorpora facilidades para publicar e compartilhar a ontologia proposta via Web [AZEVEDO et. al. 2008], além de ser a linguagem ontológica da Web [BERNERS-LEE et. al., 2001].Foi utilizada a metodologia Methontology [CORCHO et. al., 2002], que permite a constru??o de ontologias no nível do conhecimento, fundamentada no padr?o IEEE para o desenvolvimento de software baseado em conhecimento. A Methontology prop?e passos bem definidos para a constru??o de ontologias, sendo eles: especifica??o, conceitualiza??o, formaliza??o, implementa??o e manuten??o, planejamento, controle, garantia de qualidade, aquisi??o de conhecimento, avalia??o, integra??o e documenta??o. [CORCHO et. al., 2005].A seguir s?o descritas as principais classes modeladas na Klon:Clonagem: principal classe da ontologia onde o processo está designado de acordo com o domínio exposto, ou seja, o domínio da clonagem. A partir dela, derivam-se várias outras classes que posteriormente ser?o especializadas, contendo inst?ncias referentes ao armazenamento específico das informa??es. Tem como base o levantamento de requisitos e, através dos relacionamentos, far?o uso das respectivas interliga??es entre as classes. As informa??es armazenadas nesta classe s?o oriundas n?o só do ?mbito científico, mas também, do ?mbito moral e religioso.Indivíduo a Clonar (Doadora): esta classe possui informa??es do ser doador, fator fundamental e inicial no processo de clonagem. Tomando por base esta classe, ser?o derivadas várias outras responsáveis em carregar fatores essenciais, a exemplo das informa??es referentes ao Patrim?nio genético herdado pelo indivíduo clonado. Devido à dependência contínua entre classes especializadas no domínio como a do Indivíduo Hospedeiro e a da Clonagem (Terapêutica ou Reprodutiva), é notável um grande número de relacionamentos e a??es entre várias outras classes pertencentes ao domínio.Indivíduo Hospedeiro (Hospedeira): classe responsável por armazenar dados sobre o ser hospedeiro, essencial para que o processo de clonagem ocorra e obtenha sucesso. Através dela derivam-se classes que far?o significativo relacionamento com a classe Doadora, a fim de que o indivíduo clonado seja originado carregando os atributos genéticos do doador;Clonagem Natural: classe que contém todo o processo da clonagem natural, além de possuir rela??o direta e dependente com a classe de Reprodu??o Assexuada. A partir da classe Clonagem Natural ser?o derivadas várias outras responsáveis por armazenar os diversos tipos de seres em que a clonagem natural pode ocorrer, sabendo que este processo ocorre, desde os primórdios, de forma espont?nea na natureza.Clonagem Artificial: classe responsável por armazenar todo o processo que envolve a clonagem artificial, subdividindo-se nas subclasses Clonagem Terapêutica e Clonagem Reprodutiva. A classe Clonagem Artificial é essencial dentro do domínio da clonagem, pois é a base para existência de várias outras classes e rela??es a fim de atingir a conceitualiza??o referente a cada uma das subclasses, proporcionando um melhor detalhamento de tal processo.Clonagem Terapêutica: classe que contém todo o processo da clonagem artificial terapêutica, bem como os relacionamentos que envolvem outras classes do domínio. Essa é uma subclasse da classe Clonagem Artificial, relacionando-se diretamente com as classes Indivíduo Doador e Indivíduo Hospedeiro. Carrega informa??es para cultivo de células-tronco em laboratório e n?o da gera??o de outro indivíduo clonado;Clonagem Reprodutiva: classe específica para armazenar informa??es sobre todo o processo efetuado na clonagem artificial reprodutiva e suas respectivas rela??es com outras classes do domínio, obtendo liga??o direta e dependente com as classes Doadora e Hospedeira. Na Clonagem Reprodutiva, a ênfase está na gera??o do indivíduo clonado que carregará características do indivíduo a ser clonado.? apresentado na Figura 1, parte do modelo implementado gerado pelo plugin owl viz do framework Protégé.Figura 1 - Parte dos conceitos definidos para a KlonFonte: Próprio autor/2010.5. Cenários de Utiliza??o e Benefícios do uso da KlonA Klon foi desenvolvida para considerar as informa??es sobre clonagem, processos de clonagem, benefícios da sua utiliza??o, quais doen?as a clonagem pode auxiliar na preven??o e tratamento, bem como alguns riscos e efeitos do mau uso da clonagem. De acordo com [WILMUT, 2004], “a clonagem promete benefícios t?o grandes que seria imoral deixar de fazê-la”.A Klon fornece uma estrutura que pode ser utilizada para organizar a informa??o sobre clonagem, podendo servir de orienta??o para pesquisadores da área biológica e também de funda??o para ontologias de domínios mais específicos, como por exemplo, a medicina. A perspectiva da clonagem de humanos vem desencadeando os mais diferentes e impactantes interesses na sociedade, sobretudo no que se refere ao aperfei?oamento da nova área da medicina, denominada medicina regenerativa [Alho 2004].Para enfatizar melhor essas quest?es, ser?o apresentados alguns cenários de utiliza??o dessa ontologia.5.1. Pesquisas Científicas no Domínio da ClonagemO avan?o da clonagem ganhou notoriedade com a cria??o da Dolly, o primeiro mamífero clonado oficialmente [AMBERKAR, 2009], aumentando a necessidade de pesquisas sobre o assunto, com o objetivo de se ter um maior conhecimento.As pesquisas científicas realizadas no domínio da clonagem requerem conhecimento, experiência e competência acerca do assunto a ser trabalhado. S?o importantes para o desenvolvimento de nossos conhecimentos básicos sobre, por exemplo, como o núcleo celular pode ser reprogramado para acionar o conjunto de genes que caracterizam uma determinada célula especializada, ou para nossa compreens?o sobre a base genética de doen?as que afligem o homem, ou ainda para ampliar nosso entendimento sobre como reprogramar genes humanos defeituosos [KRIEGER, 2003].Tais pesquisas auxiliam no estudo de diversas outras pesquisas científicas, podendo assim trazer vários benefícios para a sociedade, onde podemos citar: a cura para doen?as degenerativas como c?ncer e genes defeituosos, reparos em tecidos e órg?os danificados, cirurgia plástica, transplantes de órg?o, bem como a solu??o de problemas como envelhecimento precoce, infertilidade, problemas cardíacos, dentre outros [AMBEKAR, 2009].Segundo [WILMUT, 2004], a clonagem humana também possui o potencial de revolucionar outras áreas da pesquisa científicas na área biomédica, como por exemplo, o desenvolvimento e testes de medicamentos. As classes e os relacionamentos definidos na Klon podem ser utilizados para uma melhor compreens?o, tanto para os tipos e processos da clonagem como para as discuss?es morais, éticas, jurídicas e científicas geradas a partir desse processo.A estrutura definida pela Klon pode ser útil para a defini??o de diversos tipos de pesquisas científicas que abrangem a clonagem. O entendimento e a compreens?o no assunto para pesquisas e desenvolvimento de trabalhos científicos que envolvem os requisitos de clonagem podem ser facilmente tratados se for utilizada uma base de informa??es como a ontologia apresentada.5.2. Estudo de Células-Tronco“Células do embri?o, denominadas células-tronco, têm potencialidade biológica para diferenciarem-se em células específicas de tecidos de qualquer órg?o ou estrutura do corpo humano” [Kipper et al 2003]. Sendo assim, a utiliza??o de células-tronco é um processo que envolve conhecimento nas áreas de biologia, medicina e consequentemente na clonagem, visto pretender obter essas células de embri?es humanos clonados.De acordo com [CRUZ, 2003], o uso de células-tronco embrionárias oferece grandes promessas no tratamento de muitas doen?as em várias áreas da clínica médica. Ou seja, os estudos com células-tronco têm oferecido resultados interessantes sendo que estas pesquisas podem salvar muitas vidas ou, pelo menos, melhorar a qualidade de vida de algumas pessoas [PENIDO, 2006]. Alguns males possivelmente curáveis pelo benefício médico da reposi??o celular com as células-tronco: mal de Alzheimer, mal de Parkinson, queimaduras, hepatite, diabetes, artrite, cirrose, paralisia, enfarte agudo do miocárdio.O conhecimento sobre células-tronco, obtido com base na Klon, pode auxiliar o entendimento do processo utilizado na clonagem artificial terapêutica, tratando essas informa??es de acordo com cada tipo de célula-tronco, distribuídas ao longo do organismo, mantendo sua potencialidade reprodutiva.6. Valida??oCom o intuito de validar o trabalho, a Klon deverá ser capaz de auxiliar a busca de informa??es referentes ao domínio e responder as seguintes quest?es de competência:(a) Qual a expectativa da prática da clonagem em geral?(b) Quais os benefícios da clonagem, tanto reprodutiva quanto terapêutica?(b) Quais as motiva??es para a realiza??o da clonagem humana no futuro?(c) Quais os danos individuais ou sociais gerados pela clonagem humana?(d) Pode-se considerar a religi?o como um obstáculo para os cientistas na reprodu??o da clonagem?7. Conclus?es e Trabalhos FuturosA Klon tem como meta cumprir o papel a qual se prop?e, constituindo-se em uma ferramenta computacional com potencialidade interdisciplinar, unindo os campos da tecnologia da informa??o com a Engenharia Genética. Devido ao grau de import?ncia definido pela Klon, esperam-se, para trabalhos futuros, que sejam estendidas as funcionalidades e os conceitos definidos na mesma, auxiliando a constru??o e a amplia??o de outras ontologias da área de saúde com base nas informa??es compostas na Klon. A partir da Klon, poder?o ser originadas algumas ontologias para domínios específicos, possivelmente aplicadas na área de saúde e da genética, onde se pode tomar como exemplo, a constru??o de uma ontologia para o domínio do DNA. Espera-se também, proporcionar reuso de informa??es para domínios específicos e apoiar a comunidade científica na obten??o de estudos e pesquisas, satisfazendo as expectativas dos mesmos e atendendo às necessidades da sociedade.ReferênciasALHO, C. S. (2004). Clones e a Clonagem Humana. In: Beatriz Dornelles. (Org.). Brasil e o Mundo. 1 ed. Porto Alegre, RS: EDIPUCRS, 2004, v. 1, p. 125-140.AMBEKAR, A. (2009). Benefits of Human Cloning. Disponível em: <;. Acessado em: mai. 2009AZEVEDO, R. R., et al (2008). CoreSec: Uma Ontologia de Seguran?a Aplicada a Gest?o de Processos de Negócios.BERNERS-LEE, T., LASSILA, O., HENDLER, J. (2001). The semantic web. In: Scientific American, 5:34-43.CORCHO, O., L?PEZ, M. F. e P?REZ, A. G. (2002). Methodologies, tools and languages for building ontologies. Where is their meeting point?CORCHO O., L?PEZ M. F., P?REZ, A. G. e L?PEZ A. (2005). Building legal ontologies with METHONTOLOGY and WebODE.CRUZ, I. B. M. (2003). Questionamentos éticos na pesquisa de células-tronco nos seres humanos. Capítulo; ?tica em Pesquisa; Reflex?es; Délio José Kipper; Caio Coelho Marques; Ana Maria Feijó; 1; EDIPUCRS; Porto Alegre; BRASIL.FREITAS, F., SCHULZ S. (2009). Ontologies, Semantic Web and Health. In RECIIS Electronic Journal of Communication, Information & Innovation in Health. Vol. 3, No 1.FREITAS, F., SCHULZ, S., MORAES, E. (2009). Survey of Current Terminologies and Ontologies in Biology and Medicine. In RECIIS Revista Eletr?nica de Comunica??o, Informa??o & Inova??o em Saúde. Vol. 3, p. 1-13.FREITAS, F. 2003. Ontologias e a web sem?ntica. In Renata Vieira; Fernando Osório. (Org.). Anais do XXIII Congresso da Sociedade Brasileira de Computa??o. Campinas: SBC. Vol. 8, p. 1-52.GUARINO, N. 1998. Formal Ontologies and Information Systems. In Formal Ontology in Information Systems. Proceedings of FOIS’98, Trento, Itália. 6-8 June. P3-15. IOS Press.GRUBER, T. R. 1995. Toward Principles for the Design of Ontologies used for Knowledgement Sharing. In International Journal of Human-Computer Studies.Vol 43, Inssue 5-6: 907-928.KIPPER, D. J., MARQUES, C. C., FEIJO, A. (2003). ?tica em Pesquisa: Reflex?es. EDIPUCRS; Porto Alegre; BRASIL.KRIEGER, E., QU?R? Y. (2003). Clonagem Humana. In: The Interacademy Panel on Internacional Issues – IAP.ONTOVIZ. Disponível: . Acessado em: abr. 2009.PENA, S. D. J. (1999). Clonagem Humana. In: Revista Biotecnologia: Ciência & Desenvolvimento. Ano II, número 11, p.113.PENIDO, H. (2006). Células-tronco: Limita??es éticas e jurídicas à pesquisa e manipula??o. In: ?mbito Jurídico, Rio Grande.PROT?G?. Protégé ontology editor. [Online]. Disponível: . Acessado em: abr. 2009.SCHRAMM, F. R. (2003). A clonagem Humana: Uma Perspectiva Promissora? In: Bioética: Poder e Injusti?a. Disponível em: < >. Acessado em: Maio, 2009.VARELLA, D. (2004). Clonagem Humana. In: Estudos Avan?ado, Vol. 18, número 51. Disponível em: <;. Acessado em: abr. 2009.WILMUT, I. (2004). The moral imperative for human cloning. In: New Scientist, número 2435.ZATZ, M. (2004). Clonagem e células-tronco. In: Ciência e Cultura, Vol. 56, número 3, p. 23-27Scrum-Seg: Uma extens?o da Metodologia Scrum para Aplica??es Seguras Manoel R. M. de Andrade1, Anderson A. L. Queiroz1, Ruy J. G. B. de Queiroz11Centro de Informática – Universidade Federal de Pernambuco (UFPE) Caixa Postal 7851 – 50.732-970 – Recife – PE – Brazil {mrma,aalq,ruy}@cin.ufpe.brAbstract. This article will present an introduction about the subject of agile methodologies for software development, particularly the Scrum methodology, and what are their impacts in the context of information security. We discuss in this article concepts of macro Scrum methodology and information security. Describe the process of software production through the Scrum agile methodology, its features, artifacts, production process and its actors. This proposal will pursue an extension of agile Scrum, adding professionals specializing in information security, in order to produce an extension of the agile methodology, the Scrum-seg. Resumo. Este artigo irá apresentar uma introdu??o sobre a quest?o das metodologias ágeis de desenvolvimento de software, em especial a metodologia Scrum, e quais s?o seus impactos no contexto da seguran?a da informa??o. Abordaremos neste artigo conceitos macro da metodologia Scrum e da seguran?a da informa??o. Descrevemos o processo de produ??o de software com o uso da metodologia ágil Scrum, apresentando suas características, artefatos, processo produtivo e os seus atores. Esta proposta procurar realizar uma extens?o da metodologia ágil Scrum, acrescentando profissionais especializados em seguran?a da informa??o, a fim de produzir uma extens?o da metodologia ágil, o Scrum-seg.1. Introdu??oEste trabalho busca obter um modelo de desenvolvimento de software para aplica??es críticas que precisam de uma aten??o no requisito de seguran?a, devido ao recente aumento nos números de incidentes de seguran?a reportados. Conforme apresentado na Figura 1 abaixo. Figura 1 - Incidentes reportados de 1999 até junho de 2010. CERT.br (2010)Torna-se visível que, com o passar dos anos, existe um aumento significativo dos incidentes de seguran?a, e a observ?ncia da classifica??o percentual por tipo de incidentes reportados evidencia o cuidado necessário com as aplica??es desenvolvidas.2. Motiva??oNormalmente seguran?a n?o faz parte dos requisitos de sistema, tampouco se prevê qualquer mecanismo de atualiza??o do software para prote??o contra novas amea?as. Por outro lado, apenas defini??es simples, como o uso de login e passwords, preveem a persistência destes dados de forma criptografada.Baseando-se na metodologia de desenvolvimento convencional, temos que, para “cada 1000 linhas de código, existem em média 15 defeitos de seguran?a, desta forma uma aplica??o típica de 200 mil linhas, existir?o, aproximadamente 3000 defeitos de seguran?a que precisar?o ser identificados e corrigidos”. David Thomason e Durval Costa (2009).Com o aparecimento das metodologias ágeis para desenvolvimento de software, esse problema pode estar se agravando, já que tais metodologias podem dar margem a interpreta??es erradas.Segundo Kent B., Arie van B., et al. (2010) com o manifesto ágil, “estamos descobrindo maneiras melhores de desenvolver software fazendo-o nós mesmos e ajudando outros a fazê-lo”. Através deste manifesto, passa-se a valorizar:Indivíduos e intera??o entre eles mais que processos e ferramentas; Software em funcionamento mais que documenta??o abrangente; Colabora??o com o cliente mais que negocia??o de contratos; Responder a mudan?as mais que seguir um plano. Segundo os princípios da metodologia ágil, alguns valores apresentam maior import?ncia em rela??o a outros. A Tabela 1 abaixo apresenta em destaque (em negrito), os valores que s?o evidenciados pela metodologia.Tabela 1 - Comparativo de valor dos itens do manifesto ágilConforme observamos na Tabela 1, os itens em negrito evidenciam que a metodologia ágil dificulta a cria??o de aplica??es com requisitos de seguran?a bem elaborados, o que pode aumentar sensivelmente os problemas de vulnerabilidades destas aplica??es.3. O ScrumPara entender o que significa Scrum, n?o é necessário escrever nenhuma defini??o, pois n?o se trata de uma sigla de abrevia??es. “? uma express?o utilizada no jogo e rúgbi, que simboliza a reuni?o de uma equipe para recuperar uma bola perdida. No jogo, o Scrum é um modo de recome?ar a partida depois de uma falta. Os membros das duas equipes ficam em posi??o de disputa de bola, formando um túnel. A for?a da equipe como um todo é o que importa para o sucesso. Daí a inspira??o da metodologia ágil de desenvolvimento Scrum”. Revista Info Exame (2009). O que transforma o Scrum numa metodologia ágil é basicamente o conceito de equipe ou time, em que cada membro tem seu papel e é responsável por cada parte ou etapa no processo de desenvolvimento. Porém, todos têm a vis?o da equipe com um objetivo comum a ser atingido, evitando assim o acúmulo de burocracia para o desenvolvimento do produto.3.1. Elementos do ScrumA metodologia do Scrum é constituída de elementos básicos para o seu funcionamento, s?o eles: os atores, as intera??es e os artefatos produzidos.Tabela 2 - Elementos básicos da Metodologia ScrumA fim de entendermos o funcionamento do Scrum, faz-se necessário conhecer um conceito de estimativa de tempo utilizado na metodologia Scrum, chamado de sprint. Sprint é a unidade de medida de execu??o do projeto utilizando o Scrum, e n?o existe uma forma padronizada de dura??o pelos usuários da metodologia, mas algumas recomenda??es que ajudam a correta elabora??o e defini??es.Durante uma sprint o produto deve ser projetado, codificado e testado. “Sprint: é um período normalmente de 30 dias (n?o necessariamente, porém, a dura??o do Sprint tem de ser constante durante todo o projeto) onde a equipe se compromete com a entrega de determinadas tarefas que constam no Backlog”. IDG Now (2009). Em uma sprint a equipe de desenvolvimento tem que codificar e testar as funcionalidades. A Figura 2 apresenta o fluxograma de trabalho do Scrum.Figura 2 - Fluxograma Scrum de Trabalho. Boris Gloger (2006)4. O SCRUM-SEGAbordaremos nesta etapa a nossa proposta de uma extens?o da metodologia ágil Scrum para atender os requisitos de seguran?a, objetivando tornar as aplica??es críticas menos vulneráveis a problemas com a seguran?a da informa??o. Assim, criaremos dois novos atores para a metodologia, o Security Master e o Security Team, ambos com finalidades de avaliar e implementar requisitos ligados aos conceitos de seguran?a da informa??o para as aplica??es desenvolvidas. Para isso, é necessário entender em que nível de subordina??o estes novos atores ser?o inseridos na metodologia, para que o seu papel seja bem desempenhado. Na proposta apresentada, o modelo hierárquico se apresentaria da seguinte forma:Figura 3 - Hierarquia Funcional do SCRUM-SEG? preciso compreender que os novos atores propostos dever?o ter o conhecimento e a forma??o adequada em seguran?a da informa??o. Por outro lado, existe uma dificuldade para manuten??o de uma equipe exclusiva de seguran?a da informa??o. Ent?o, a extens?o do Scrum aqui proposta poderá ser realizada por uma equipe externa que auxilie no projeto.4.1. Security MasterO Security Master tem como objetivo coordenar as a??es para o uso dos conceitos de seguran?a da informa??o, a fim de que o produto final desenvolvido contemple os requisitos das melhores práticas. Na prática, o Security Master deve orientar e produzir o backlog, em conjunto com o dono do produto, sendo possível classificar a funcionalidade de acordo com o risco apresentado, sob a ótica da seguran?a da informa??o. Fica sobre sua responsabilidade o acompanhamento do desenvolvimento seguro, e é necessária a competência para sanar qualquer dúvida tanto da equipe de desenvolvimento, bem como do dono do o acontece com o Scrum master, o Security Master deve impedir que interferências externas atrapalhem o trabalho desenvolvido pela sua equipe e tem um papel fundamental em ser o elo de comunica??o entre a equipe de desenvolvimento e a equipe de seguran?a. Tem também o papel de conscientizar o dono do produto sobre a import?ncia do investimento em seguran?a, para garantir que pelo menos os requisitos mínimos sejam desenvolvidos em cada funcionalidade.4.2. Team SecurityTrata-se de uma equipe multidisciplinar com conhecimentos em seguran?a da informa??o, capaz de realizar análises de vulnerabilidades e testes para certifica??o do produto contra técnicas de ataques.Durante o planejamento da sprint, a equipe deve elaborar um security backlog, em paralelo à elabora??o do sprint backlog , que constará de uma lista de requisitos de seguran?a para cada funcionalidade especificada no sprint backlog. Isto de forma que eles sejam conhecidos e possam ser estimados e desenvolvidos pela equipe de desenvolvimento.Vejamos na tabela abaixo um exemplo de como pode ser construído o security backlog, de forma a manter o ciclo funcional do Scrum original.Tabela 3 - Security Backlog4.3. Forma de Trabalho do Scrum-SEGPara aplicar a extens?o ao Scrum proposta neste trabalho, faz-se necessário que o fluxograma de trabalho original do Scrum sofra algumas pequenas altera??es para permitir a participa??o dos novos agentes propostos. Abaixo, segue o fluxograma proposto para o funcionamento do Scrum-seg:Figura 4 - Fluxograma do SCRUM com a extens?o SCRUM-SEGCom base na figura acima, podemos visualizar de forma prática o funcionamento do Scrum–seg. Um comparativo entre os fluxogramas do Scrum original e o Scrum-seg evidencia as seguintes diferen?as estruturais:Depois do Dono do produto entregar o product backlog original, o Security Master adiciona a ele o grau de severidade para cada funcionalidade, sob a ótica da seguran?a da informa??o; Depois da primeira reuni?o de planejamento, quando s?o selecionadas as funcionalidades do product backlog para a sprint, a equipe de seguran?a define, para cada funcionalidade, a quantidade mínima de requisitos de seguran?a a serem atendidos e aprovados na fase de teste do produto; Durante a sprint, enquanto a equipe de desenvolvimento produz as funcionalidades, os responsáveis pelos requisitos de seguran?a realizam os testes e as auditorias conforme estabelecido no security backlog; Na reuni?o de retrospectiva, quando todos os atores participam, é necessário que a equipe de seguran?a esteja presente, visto que o dono do produto pode mudar requisitos e valores importantes do product backlog durante o processo. 5. Conclus?oVisualizando uma nova metodologia de gerenciamento de projetos que está ganhando espa?o no mercado de T.I, que se utiliza dos conceitos do manifesto ágil, nosso estudo se objetiva a conhecer um pouco dessa metodologia e analisar a realidade da quest?o da seguran?a vivida hoje nas aplica??es disponíveis na web. Usando um ponto de vista macro sobre as quest?es de seguran?a, relatamos as amea?as oriundas da web, as falhas de sistemas que elas exploram e algumas estratégias de defesa que nos auxiliam no processo de corre??o das falhas de seguran?a. Apresentamos também os conceitos-chave da nova metodologia chamada Scrum, descrevendo o papel de cada ator envolvido na metodologia, as itera??es usuais e os artefatos produzidos. A partir dessas análises iniciais, pudemos listar necessidades que fizeram surgir uma extens?o da metodologia ágil preocupada fundamentalmente com a seguran?a das aplica??es desenvolvidas. Assim, considerando que n?o existem muitos estudos sobre o impacto da seguran?a em aplica??es desenvolvidas por metodologias ágeis, a principal contribui??o deste trabalho foi o estudo de uma abordagem ágil que contemple a temática da seguran?a da informa??o. A referida extens?o proposta neste trabalho, encontra-se em processo de avalia??o, sendo implantada em alguns projetos de sistemas que inicialmente utilizavam a metodologia Scrum tradicional.ReferênciasCERT.br (2010) , julho. CERT.br Fraudes (2010) , agosto. David Thomason e Durval Costa (2009) “Seguran?a das Aplica??es Web”, , dezembro. Kent B., Arie van B., et al. (2010) “Manifesto para Desenvolvimento ?gil de Software”, , Abril. International Organization for Stardadization, International Eletrotechnical Committee (1989) “Information Processing Systems – Open Systems Interconnection – Basic reference Model – Part 2: Security Architecture”. International Standard 7498-2, mar?o. Soares, Luis F. G. L. Guido. Colcher Sérgio (1995), “Redes de computadores das LANs, MANs e WANs às Redes ATM”. Editora Campus 2? edi??o. Bersnstein, T., Bhimani, A.B., Schultz, E. e Siegel, C.A (1997), “Seguran?a na Internet”. Editora Campus. Revista Info Exame (2009), “Metodologias ?geis de Desenvovimento de Projeto”, Editora Abril, agosto. IDG Now (2009), “Gerencie seu projeto de forma e ágil”, /deep_in_tech/archive/2009/02/16/Scrum-gerencie-seu-projeto-de-forma-diferente-e-gil/, Fevereiro. Beedle M. Schwaber, Ken P. Hall (2009), “Agile Software Development with Scrum”, PTR 1?edi??o, setembro. Henrik Kniberg (2007), “Scrum e Xp direto das Trincheiras como fazemos Scrum”, outubro. Cohn, Mike (2008), “Uma Introdu??o ao Scrum, Adapta??o Brod, Cesar”, , novembro 2009. Boris Gloger (2006), “Scrum Check Lists”. Sprint IT 3? edi??o, puta??o Forense e as oportunidades oferecidas pela Computa??o em Nuvem Dener Didoné1, Ruy de Queiróz11Centro de Informática (CIn) – Universidade Federal de Pernambuco (UFPE) Cidade Universitária – 50.740-560 – Pernambuco – PE – Brazil {dd,ruy}@cin.ufpe.brAbstract. This paper aim to explore the principal opportunities offered by Cloud Computing to Forensics Computing. Besides, we will discuss the MapReduce programming model utilization in performing typical forensics tasks, being delivered in the model as a service, through Cloud Computing, enjoying the key characteristics provided by cloud. Resumo. Este artigo visa explorar as principais oportunidades que a Computa??o em Nuvem tem a oferecer a Computa??o Forense. A partir disso, discutiremos a utiliza??o do modelo de programa??o MapReduce na realiza??o de tarefas típicas de perícia, e sua utiliza??o em conjunto com a Computa??o em Nuvem, sendo entregue como servi?o e usufruindo das características chaves oferecidas pela nuvem.1. Introdu??oEm um passado n?o muito distante, a ocorrência de crimes digitais, usando dispositivos eletr?nicos como fim ou como meio para esses atos ilícitos era algo inimaginável. A ubiqüidade oferecida pela Internet e somada aos avan?os tecnológicos recentes, e mais ainda ao barateamento dessas tecnologias fez com que esse tipo de crime se tornasse freqüente.Esse tipo de ilícito demanda de um profissional especializado no levantamento de evidências digitais, sejam elas utilizadas para fins jurídicos (processos, deten??es, etc) ou fins comerciais, como por exemplo, na dispensa de funcionários por justa causa, uma vez que este vazou informa??es confidenciais, que pode ou n?o seguir depois para a??es jurídicas. A computa??o forense é uma disciplina relativamente nova, e crescendo a passos largos, que surgiu em resposta a esses tipos de crimes, sendo utilizada por profissionais que buscam a elucida??o de casos envolvendo dispositivos digitais (computadores, notebooks, PDAs, smartphones, etc). A computa??o em nuvem surge hoje, em um contexto globalizado e interconectado com o intuito de minimiza??o de custos, escalabilidade e elasticidade necessária aos vários ramos comerciais, organizacionais e governamentais que dependem de TI (Tecnologia da Informa??o), além de prover armazenamento e poder computacional “ilimitados”.? visível a crescente demanda pela solu??o de crimes digitais, além disso, Garfinkel (2010) cita como um fator complicante e um dos problemas em vista da computa??o forense, ao aumento da capacidade de armazenamento dos dispositivos digitais, o que significa que normalmente n?o é tempo para o perito criar uma imagem do dispositivo para a realizar a perícia, ou até mesmo processar a grande quantidade de dados. Como um meio de colaborar com este problema pendente, e visando agregar os valores intrínsecos que a computa??o oferece, este artigo prop?e estudar as oportunidades que a computa??o em nuvem pode oferecer a computa??o forense na solu??o deste problema da quantidade de dados. Discutiremos as defini??es de computa??o forense, computa??o em nuvem, abrangendo também programa??o distribuída, mais especificamente o modelo de programa??o MapReduce, que já tem demonstrado eficiência na solu??o de tarefas típicas de perícia, e as quest?es relativas a seguran?a de uma proposta sugerida.2. Defini??esApresentaremos brevemente as defini??es e conhecimentos chaves necessários para o bom entendimento do artigo, abordando quest?es como computa??o forense, computa??o em nuvem, computa??o distribuída, sendo mais especificamente abordado o modelo de programa??o MapReduce.2.1 Computa??o ForenseA Computa??o Forense surge da necessidade de solu??o de casos específicos envolvendo dispositivos digitais, conseqüentemente executados com o auxílio da Internet. Essa disciplina possui aproximadamente 40 anos, sedo uma evolu??o de técnicas de recupera??o de dados. A computa??o forense é uma importante ferramenta na solu??o de crimes cometidos utilizando o computador (por exemplo o phising) bem como crimes contra pessoas (por exemplo a pornografia infantil), ou seja, que utilizam o computador como fim ou como meio para um ato ilícito. O trecho abaixo, extraído de Lee et al. (2001) é uma complementa??o ao que já foi dito. Lee diz que a justi?a esta sendo cada vez mais confrontada com esse tipo de crime, sendo evidente o aumento da necessidade de investiga??o desses crimes executados parcialmente ou totalmente com a ajuda da Internet, ou outros dispositivos eletr?nicos. Recursos e procedimentos s?o necessários para efetivamente se realizar os quatro procedimentos básicos da perícia: identifica??o, preserva??o, análise e apresenta??o das evidências. Essas evidências variam desde imagens até dados criptografados, que podem ser utilizados para os mais diversos tipos de crimes. O advento da computa??o, Internet e a dissemina??o de dispositivos entre a popula??o fez que com criminosos come?assem a utilizar de tecnologia para perpetua??o de crimes, aproveitando-se do suposto anonimato que a Internet proporciona.Desde ent?o, perícias em dispositivos eletr?nicos (PDA, celulares, tablets, notebooks, etc) se tornaram freqüentes e necessárias para elucida??o desses crimes eletr?nicos. De acordo com o FBI, em 2009 foram examinados 6 mil casos através de 17 estados e mais de 2,300 TB de dados processados, o que equivale a mais ou menos 230 bibliotecas acadêmicas e um esfor?o que rendeu uma análise média de 9,58 TB de dados/dia (considerando apenas dias úteis). (Regional Computer Forensics Laboratory [RCFL], 2009). A computa??o forense é uma ciência multidisciplinar que aplica técnicas investigativas para determinar e análisar evidências, sendo possível em alguns casos até formular uma hipótese das causas e efeitos das a??es executadas no computador. Ela segue métodos e procedimentos definidos para as etapas de perícia.2.2 Computa??o em NuvemAinda mais recente e mais controversa que a computa??o forense é a computa??o em nuvem, que traz uma nova configura??o na utiliza??o de tecnologias já conhecidas, sendo um termo genérico que pode ser definido como a evolu??o de tecnologias e processos, compostos de servi?os, aplica??es, informa??es e infraestrutura distribuídos, de modo que estes possam ser arranjados de maneira din?mica, elástica e rápida, na medida em que forem consumidos. (Marins, 2009). A nuvem oferece servi?os sob demanda, assim como a energia elétrica, ou o gás, por exemplo, sendo uma evolu??o natural da Internet e das tecnologias de virtualiza??o, arquitetura orientada a servi?os e modelo de pagamento “pay-as-you-go, onde paga-se apenas pelo consumido. Os detalhes s?o abstraídos do consumidor, que n?o precisa ter domínio da infraestrutura presente na nuvem para utilizá-la. Segundo a defini??o do National Institute of Standards and Technology (NIST, 2009), a computa??o em nuvem é um modelo que permite acesso conveniente e sob demanda utilizando a rede, a uma série de recursos computacionais compartilhados e configuráveis, onde esses recursos podem ser rápida e facilmente providos ou liberados com o mínimo de esfor?o de gerenciamento ou intera??o do prestador de servi?o. Vaquero et al. (2009) dizem que a defini??o de computa??o em nuvem ainda esta evoluindo, e que a defini??o é valida apenas para o momento em que foi proferida. Ele diz que hoje as nuvens s?o um grande agrupamento facilmente utilizáveis e acessíveis de recursos virtualizados (como infraestrutura, plataforma e/ou servi?os. Esses recursos podem ser dinamicamente reconfigurados de forma a otimizar a utiliza??o dos recursos. Esse conjunto de recursos é tipicamente explorado no modelo de pagamento por demanda, no qual as garantias s?o fornecidas pelo provedor de servi?o através de acordo a nível de servi?o personalizados (Service Level Agreement – SLA).Através destas defini??es podemos notar um denominador comum sobre o que é cloud, sendo eles escalabilidade, modelo de pagamento por consumo e virtualiza??o. Conforme ressalta Buyya et al. (2008), todos eses services computacionais precisam ser altamente confiáveis, escaláveis e aut?nomos. A qualidade do servi?o (Quality of Service – QoS) pode ser determinada através através dos SLAs.A vis?o do NIST (2009) define o modelo de computa??o em nuvem descrevendo cinco características essenciais, três modelos de servi?os e quatro modelos de implanta??o. Tais características já s?o amplamente conhecidas e encontram-se especificadas abaixo:Servi?o sob demanda, onde o consumidor pode prover capacidade computacional (processamento, armazenamento, etc) de maneira automática, sendo a necessidade de intera??o humana com o provedor de servi?os; Amplo acesso a rede, pois os recursos est?o disponíveis pela da rede e podem ser acessados e utilizados de forma padronizada, através de plataformas heterogêneas (thin ou thick clients), bem como outros servi?os tradicionais de software ou baseados em nuvem; Pooling de recursos, onde os recursos computacionais do provedor s?o agrupados para servir a múltiplos usuários usando o modelo de multi-tenancy, com diferentes recursos físicos e virtuais sendo dinamicamente arranjados e rearranjados de acordo com a demanda do usuário. Há um certo grau de independência de localiza??o, no qual o usuário geralmente n?o possui nenhum controle ou conhecimento sobre a exata localiza??o dos recursos providos, mas pode ser capaz de especificar a localiza??o de uma maneira altamente abstrata (ou seja, país, estado ou data center). Exemplos de recursos incluem armazenamento, processamento, memória, rede, largura de banda e máquinas virtuais. Até mesmo nuvens privadas tendem a fornecer um agrupamento de recursos entre as diferentes partes da mesma organiza??o. Elasticidade, pois capacidades podem ser rapidamente e elasticamente providas (até mesmo automaticamente) para uma rápida expans?o, ou retra??o, de forma a atender a capacidade desejada. Do ponto de vista do usuário, as capacidades disponíveis aparentam ser “ilimitadas” podendo ser compradas em qualquer quantidade em qualquer hora. Medida do consumo, fazendo com que sistemas de nuvem automaticamente controlem e otimizem a utiliza??o de recursos, entregando uma métrica apropriada de acordo com o tipo de servi?o (armazenagem, processamento, etc). Recursos podem ser monitorados, controlados e reportados, o que prove transparência para os usuários e o provedor. Os servi?os oferecidos pela nuvem podem ser classificados em três modelos distintos, abaixo os definimos segundo NIST (2009) e Vaquero et al. (2009):Software as a Service – SaaS: software como servi?o é uma alternativa a execu??o local de aplica??es, permitindo sua execu??o na infraestrutura fornecida pela nuvem, onde podem ser acessados através de vários dispositivos (tais como navegadores). Neste modelo o cliente n?o gerencia ou controla a infraestrutura que comp?em a nuvem (rede, servidores, etc). Plataform as a Service – PaaS: plataforma como servi?o possibilita a implanta??o de aplica??es criadas ou adquiridas pelo usuário nas infrasestrutura da nuvem. Neste modelo o cliente também n?o gerencia ou controla a infraestrutura que comp?em a nuvem (rede, servidores, etc), mas tem controle sobre as aplica??es implementadas e as configura??o do ambiente de hospedagem. Infrastructure as a Service – IaaS: a infraestrutura como servi?o através da virtualiza??o permite dividir, atribuir e dinamicamente redimensionar capacidade de armazenamento, rede e processamento, de acordo com a demanda dos usuários, fornecendo recursos computacionais fundamentais. Neste modelo o cliente tem controle sobre os sistemas operacionais, armazenamento, aplica??es implementadas e normalmente controle limitado sobre alguns componentes de rede (por exemplo, firewalls). Os quatro modelos de implanta??o s?o definidos a seguir pelo NIST (2009):Nuvens públicas: A infraestrutura da nuvem é disponibilizada publicamente e compartilhada entre diversos usuários usando o modelo “pay-as-you-go”. Nuvens privadas: Possuem sua infraestrutura operada somente por uma organiza??o, podendo ser gerenciada pela própria organiza??o ou terceirizada, havendo possibilidade de existir na forma on premise e off premise. Nuvens hibridas: ? uma composi??o de duas ou mais nuvens (privadas, comunidade ou públicas) e permite que nuvens privadas tenham seus recursos ampliados a partir dos recursos de uma nuvem publica. Nuvem comunitária: a infraestrutura da nuvem é compartilhada entre várias organiza??o e suporta uma comunidade específica que compartilha interesses (por exemplo, requisitos de seguran?a, políticas, etc). Pode ser gerenciada pelas organiza??es ou terceirizada e pode existir nas formas on premise e off premise.Levando em conta as características, percebemos que a nuvem tem sim algo novo a oferecer para a computa??o forense, seja no armazenamento, processamento, ou seja, poder computacional ou nos modelos de entrega de servi?os ou até nas formas de implanta??o. O fator escalabilidade associado ao custo compartilhado que a nuvem proporciona é atraente para organiza??es e governos que visam grande poder computacional na solu??o de perícias mas n?o querem investir em infraestrutura. Tudo isso demonstra a nossa idéia de se disponibilizar Forense como Servi?o (Forensics as a Service – FaaS, que tal?) e iniciar nossas discuss?es. FaaS pode representar uma nova oportunidade de se prover recursos computacionais para Forense agregando todos os valores intrínsecos que a nuvem proporciona, que incluem processamento e armazenamento “ilimitado” na sua utiliza??o sob-demanda e rápida elasticidade. 2.3 Computa??o DistribuídaO uso de computa??o distribuída na condu??o de tarefas de perícia é apresentada neste artigo através da implementa??o do modelo de programa??o MapReduce, rodando na nuvem. Nosso propósito é utilizar o Hadoop, que é uma implementa??o open source do modelo de programa??o MapReduce, desenvolvido pela Apache.2.3.1 MapReduceMapReduce é uma paradigma de programa??o distribuída, desenvolvida pelo Google para simplificar o desenvolvimento de aplica??es escaláveis e de massivamente paralelas que processem Terabytes de dados em clusters. Programas escritos nesta linguagem functional s?o automaticamente paralelizados e executados nas máquinas presentes no cluster. O sistema é quem toma conta de detalhes de particionamento dos dados inseridos, agendando a execu??o dos programas nas máquinas, tratando os erros e gerenciando a comunica??o entre as máquinas. Isso permite que programadores sem experiência como sistemas paralelos e distribuídos possam facilmente utilizar os recursos desses grandes sistemas distribuídos. (Dean & Ghemawat, 2004). Para utilizar o MapReduce, o usuário especifica uma fun??o de mapeamento que processa um par (chave/valor) para gerar um conjunto intermediário de pares e reduzi-los através de uma fun??o de redu??o que une todos esses valores intermediários. Muitas tarefas do mundo real podem ser expressas neste modelo, e isso inclui tarefas de perícia (opera??es com string, processamento de imagens, analises estatísticas, etc). (Roussev et al. 2009). ? apresentado abaixo o exemplo can?nico, normalmente apresentado nas literaturas, que conta o número de vezes que uma palavra ocorre em uma entrada (um documento de texto, como no exemplo).Neste exemplo, retirado de Dean et al. (2004), cada documento é dividido em palavras, e cada palavra encontrada é contada inicialmente com o valor inicial 1 pela fun??o de mapeamento, usando a palavra como chave do resultado. O framework ent?o coloca os pares com a mesma chave juntos, onde a fun??o reduce soma todos os valores de entrada para ent?o descobrir o total de ocorrências daquela palavra.2.3.2 HadoopHadoop foi desenvolvido como uma implementa??o open source do modelo de programa??o MapReduce. Este é um projeto de alto nível da Apache, sendo construído e utilizado por uma comunidade global de contribuintes, utilizando Java como linguagem de programa??o.Sua arquitetura é composta pelo Hadoop Common, que contem os arquivos base necessaries para executar o Hadoop e fornecer suporte aos seus subprojetos: sistema de arquivos distribuidos (Hadoop Distributed File System – HDFS) e o MapReduce. De acordo com Apache Hadoop – HDFS Architecture Guide (2010), o HDFS é um sistema de arquivos distribuido projetado para ser executado qualquer hardware, sendo altamente tolerante a falhas e projetado para ser implantado em hardware de baixo custo, proporcionando aos dados de aplica??es altas taxas de acesso, além de ser adequado para aplica??es que trabalhem com grandes conjuntos de dados. Embora o Hadoop seja implementado em Java, as aplica??es que utilizam MapReduce n?o precisam ser necessariamente escritas nessa mesa linguagem. Hadoop Streaming é a utilidade que permite aos usuários criar e executar programas em qualquer linguagem (como por exemplo em shell script).3. Oportunidades em vistaTenho em vista a demanda pela solu??o de crimes digitais, acrescida do aumento da quantidade de armazenamento dos dispositivos eletr?nicos, citado por Garfinel (2010), e vislumbrando a quantidade de dados examinados pelo FBI em 2009, RCFL (2009), que ultrapassou a marca de 2 mil TeraBytes, podemos ter uma idéia do problema que estamos enfrentando. O crescimento vertiginoso que a computa??o em nuvem vem passando fez com que em 2010, o gasto com esta tecnologia chegasse a 16 bilh?es de dólares, podendo em 2014 atingir a incrível marca de 56 bilh?es. (Nichols, 2010) Tais números demonstram o potencial de utiliza??o desta nova onda tecnológica que vem sendo considerada como um dos mais importantes acontecimentos da ciência da computa??o, na resolu??o dos desafios da computa??o forense. Além disso, é válido que governos comessem a pensar na proposta apresenta abaixo como solu??o para um melhor aproveitamento do seu parque tecnológico. Maiores detalhes vide Kundra (2010) e Paquette et al. (2010).4. Proposta de utiliza??oPrevendo a crise da computa??o forense, Garfinkel (2010) cita o crescimento da capacidade dos dispositivos de armazenamento como um dos tópicos desafiantes, complementando que freqüentemente n?o há tempo suficiente para criar uma imagem forense de um disco, ou processar todos os dados encontrados. Uma sess?o de brainstorming no CISSE 2008 explorou categorias de pesquisas, tópicos e problemas na computa??o forense. Um dos resultados desta discuss?o foi um artigo onde Nance et al. (2009) identificaram seis categorias para pesquisas de computa??o forense, e entre estas há uma categoria chamada Volume de Dados, onde os autores citam a paraleliza??o do processamento de dados como uma das possíveis solu??es para o problema.Conforme citado anteriormente, a quantidade de dispositivos aliados ao crescimento do espa?o de armazenamento e ao barateamento da tecnologia faz com que Terabytes de dados sejam analisados em casos de cybercrime. O problema é que isso acabada extrapolando o poder computacional de esta??es forenses utilizadas nos laboratórios pelos peritos de hoje.Uma abordagem interessante utilizando clusters e recurso de larga escala distribuídos tem demonstrado eficiência na condu??o de tarefas forenses, como apresentado por Roussev et al. (2004), onde o grande potencial da utiliza??o de recursos de cluster s?o demonstrados em um protótipo através da condu??o de experimentos que comprovaram a redu??o nos tempos de execu??o das tarefas forenses. Os autores refor?am também a necessidade de técnicas de análises forenses mais sofisticadas, podendo estas ser habilitadas pela transi??o das ferramentas atuais, para ferramentas distribuídas. Outro esfor?o realizado por Tang et al. (2005) criou um framework para realiza??o de perícia em rede (network forensics) baseado em técnicas distribuídas fornecendo assim uma plataforma integrada para coleta e armazenamento de evidências forenses em rede, além de incluir um mecanismo para gera??o de gráficos de ataques que ilustram os procedimentos utilizados por hackers. Outro esfor?o neste sentido é o ForNet, de Shanmugasundaram et al. (2009), utilizando forense distribuida que visa a coleta e consulta de evidências de rede. Uma proposta recente apresentada por Roussev et al. (2009) descreve os esfor?os realizados para uma nova implementa??o do modelo de programa??o MapReduce, que supera significativamente os trabalhos anteriores na condu??o de tarefas típicas de forense em grandes conjuntos de dados, demonstrando escala linear para processamento intensivo e até mesmo escalas super lineares para tarefas envolvendo indexa??o. Em seu trabalho Roussev et al. (2009) utiliza uma abordagem para acomodar mais processamento no mesmo espa?o de tempo, suportando a utiliza??o de mais recursos de hardware, o que permite que mais recursos sejam implantados. O foco de Roussev é exclusivamente na utiliza??o de recursos computacionais distribuídos para aprimorar os tempos gastos na condu??o de investiga??es forenses.Além desses estudos, ferramentas comerciais de pericia como o Forensics Toolkit (FTK) da AccessData, passaram a incluir suporte a processadores multi-core e a utilizar distribui??o de processamento, porém com distribui??o ainda limitada. Uma vez citados os trabalhos relacionados, além das características essenciais e os benefícios trazidos pela nuvem, e demonstradas as características viáveis e que permitem a implementa??o do MapReduce tentaremos n?o tornar a idéia redundante. Nosso modelo visa demonstrar o uso de computa??o em nuvem para fornecer forense como um servi?o (Forensic as a Service – FaaS) através de plataformas flexíveis, elásticas e din?micas bem como poder de armazenamento e processamento “ilimitados”, em conjunto com o modelo de programa??o MapReduce na sua implementa??o open source, o Hadoop, além de demonstrar que o uso de forense como um servi?o se torna essencial, interessante e acessível a corpora??es, governos e usuários. Embora MapReduce n?o responda a todos os problemas de distribui??o de processamento, por enquanto tem demonstrando grande capacidade na resolu??o de problemas relacionados a tarefas forenses, como opera??es com string, processamento de imagens, análises estatísticas, etc.Figura SEQ Figura \* ARABIC 8 - Modelo proposto para entrega de Forense como Servi?oA figura 1 ilustra o cenário da nossa proposta, onde usuários poder?o utilizar quaisquer dispositivos (os mais comuns ainda s?o os computadores e notebooks) para acessar servidores através da nuvem e ent?o realizar tarefas de perícia, aproveitando-se das fun??es do MapReduce implementadas pelo Hadoop. Apresentaremos duas op??es de implementa??o do modelo proposto, tanto em nuvens públicas quanto privadas, nos modelos on-premise e off-premise. A escolha entre nuvens públicas e privadas diferencia-se no quesito de seguran?a das informa??es, seguran?a da nuvem e utiliza??o de parque tecnológico próprio.4.1. Implementa??o pública a privadaNossa escolha de implementa??o pública será dado através do servi?o oferecido pela Amazon Web Services (AWS) o Amazon Elastic Map Reduce, um servi?o web que permite as empresas, pesquisadores, analistas de dados e desenvolvedores processar de maneira fácil (a um custo razoável) grandes quantidades de dados. Este servi?o utiliza o Hadoop utilizando computa??o oferecida pelo Amazon Elastic Compute Cloud (Amazon EC2) e Amazon Simple Storage Service (Amazon S3), de forma off-premise. (Amazon Web Services [AWS], 2011). Para execu??o do seu fluxo de trabalho utilizando o Elastic MapReduce, é necessário a configura??o do tipo e da quantidade de inst?ncias que ser?o utilizadas no processamento, oferecidas através do servi?o Elastic Compute Cloud (EC2). A Amazon oferece quatro tipos de inst?ncias: padr?o (desempenho equilibrado e genérico); alto poder de memória; alto poder de processamento; e inst?ncias de alto desempenho (combinando alto poder de memória com alto poder de processamento e rede interna de 10 Gbps).Para utiliza??o do MapReduce, além de levantar as inst?ncias utilizando o EC2, deve-se utilizar o servi?o de armazenamento para as entradas e saídas das suas computa??es, para isso utiliza-se o Simple Storage Service (S3). Este servi?o é oferecido através da Internet e prove uma interface simples que pode ser usada para armazenar ou recuperar quaisquer quantidades de dados, a qualquer momento, independente de onde você estiver.Núvens públicas como a da Amazon provém uma estrutura robusta, facilmente administrável e com muitas op??es de escalabilidade, sendo um dos servi?os mais conhecidos e confiáveis de computa??o em nuvem, porém esbarrando em quest?es de seguran?a, privacidade e quest?es legais, ainda n?o solucionadas, que ser?o discutidas posteriormente. A escolha de implementa??o em nuvens privadas acabam por complementar e até mesmo amenizar essas quest?es de seguran?a ainda recentes no uso de computa??o em nuvem. Uma solu??o para implementa??o de núvens privadas é o Eucalyptus (Elastic Utility Computing Architecture Linking Your Programs To Useful Systems), que é uma infraestrutura de software de código aberto para implementa??o de nuvens on-premise em organiza??es que já possuem infraestrutura (data center) estabelecida, com isso os dados sensíveis permanecem seguros pois s?o instalados atrás dos firewalls das próprias empresas. (Eucalyptus System, 2009). A plataforma de gerenciamento do Eucalyptus fornece um sistema para que o administrador da nuvem possa satisfatoriamente gerenciar e controlar seu sistema. Existem várias interfaces personalizáveis disponíveis, podendo ser definidas de acordo com o privilégio de cada usuário (administrador, gerente de projeto, desenvolvedor, etc). Além disso, existem algumas outras características oferecidas por essa plataforma de gerenciamento, que inclui a gest?o das máquinas virtuais, armazenamento, gest?o de usuários/grupos, defini??es de acordos a níveis de servi?o, entre outros. (Eucalyptus System, 2009). Eucalyptus é uma implementa??o de código aberto, pensada para simplificar o processo de construir e gerenciar uma nuvem privada para necessidades de quaisquer tamanho e de acordo com Wardley et al. (2009), as distribui??es mais recentes do Ubuntu incluem o Eucalyptus, como um dos componentes da distribui??o chamada de Ubuntu Enterprise Cloud (UEC), fornecendo compatibilidade com a estrutura da Amazon (EC2 e S3).O Hadoop se encaixa e trabalha de maneira simples e fácil no Eucalyptus, e a partir disso a execu??o de tarefas no Hadoop através do Eucalyptus passa a ser uma tarefa simples, que n?o requer maiores conhecimentos técnicos por parte do perito. A proposta oferece a utiliza??o do Eucalyptus para cria??o da nuvem privada, porém n?o se limita apenas a essa plataforma de software, outra plataformas podem ser utilizadas na proposta. Além do Eucalyptus, um outro servi?o oferecido pela Amazon, chamado Virtual Private Cloud (VPC) nos chamou a aten??o, e pode vir a ser uma solu??o para implementa??o do modelo proposto. Apesar de n?o ser uma idéia madura, a utiliza??o deste servi?o se encaixa nos par?metros da proposta, permitindo que você conecte uma estrutura já existente juntamente a um conjunto isolado de recursos oferecidos pela Amazon, permitindo a utiliza??o da computa??o em nuvem, inst?ncias EC2 da Amazon, Armazenamento S3 e MapReduce através da utiliza??o de Virtual Private Network (VPN).5. Ado??o, uma quest?o de confian?aA seguran?a é um dos aspectos chaves para a ado??o da computa??o em nuvem, sendo amplamente discutida entre as empresas e governos, na busca por padr?es que forne?am seguran?a das informa??es e incluam prote??o a privacidade. (Kundra, 2010). Hoje, a decis?o em se adotar a computa??o em nuvem, independente da sua aplica??o, é baseada em riscos, n?o em tecnologia, uma vez que a computa??o em nuvem assume vários níveis de seguran?a da informa??o, dependendo do modelo escolhido. Esta proposta, e a decis?o sobre a ado??o da computa??o em nuvem, independente do modelo adotado ser publico ou privado envolve quest?es relacionadas a seguran?a, uma vez que resultados da computa??o ser?o usados como evidências em casos de perícia. Nuvens públicas esbarram em quest?es legais e de seguran?a. Segundo Damoulakis (2010) e com complementa??o de Iball (2010), as quest?es mais levantadas s?o:Onde est?o meus dados? Como meus dados est?o sendo protegidos? Quem pode acessar ou visualizar meus dados? Como as instala??es físicas e digitais s?o seguradas? Qu?o freqüentemente s?o realizadas rotinas de checagem e auditoria de acesso a áreas restritas pelos administradores do sistema? Quais s?o os padr?es industriais que o provedor possui? Além dessas quest?es, Iball (2010) diz que muitas outras ainda podem ser feitas e servir de base para sua decis?o sobre qual modelo, fornecedor e se vale realmente a pena aderir a esta tecnologia. Isso faz com que diminuam as chances dos seus dados serem expostos a riscos desnecessários, e mais, possuir um bom Acordo em Nível de Servi?o (Service Level Agreement – SLA) é um ponto chave para um relacionamento de longo termo satisfatório com seu provedor de servi?os. O acordo em nível de servi?o é responsável por nortear a confian?a entre as partes (consumidor e provedor), e isso é importante, pois s?o nesses acordos que s?o definidos os detalhes cruciais para a implementa??o da proposta, personalizando todos os requisitos de seguran?a. Mais sobre ado??o e escolha de provedores s?o tratadas pela Cloud Security Aliance - CSA (2009) e Jericho (2009).Antes de escolher um provedor qualquer e executar suas inst?ncias, devemos nos atentar a quest?es legais, tanto de jurisdi??o quanto de normas e regulamenta??es. Por exemplo, na Uni?o Européia a seguran?a é abrangida pela lei, ou seja, a lei de prote??o de dados Européia estipula que qualquer empresa, como dona dos dados, é totalmente responsável pela seguran?a dos seus próprios dados. O Ato de Prote??o de Dados do Reino Unido, de 1998 requer que empresas incorporem requisitos de seguran?a em contratos de terceiriza??o com empresas que venham a processar os dados. Isso demonstra que o ?nus vai todo para pequenas e medias empresas, que devem ter garantias que o provedor de servi?os em nuvem forne?a os níveis de seguran?a apropriados.Se comparada as nuvens publicas, as nuvens privadas apresentam um beneficio mais satisfatório, devido as quest?es relacionadas aos mecanismos de seguran?a e jurisdi??o, amplamente entendidos e aplicados. As nuvens privadas utilizam data centers já estabelecidos nas empresas, sendo protegidos por um firewall, podendo ent?o ser gerenciados pela própria organiza??o (o que é mais seguro) ou ter o gerenciamento terceirizado. Com nuvens privadas é possível ter o senso de localiza??o quanto aos dados, onde est?o sendo armazenados e executados, quem s?o responsáveis por eles, quem tem acesso, além de outras quest?es de prote??o física e digital. Porém, n?o há compartilhamento de custos entre diversos usuários. Confidencialidade, privacidade, integridade e auditabilidade ainda s?o quest?es em aberto, e para garantir que a nuvem possa ser utilizada para entrega de forense como servi?o, devemos levar em conta essas quest?es nos casos de perícia.5.1 SoftwareModelos tradicionais de software normalmente est?o restritos ao uso apenas no computador onde eles est?o sendo executados, devido a isso, muito provedores de computa??o em nuvem utilizam ferramentas de código aberto, uma vez que ferramentas comerciais ainda n?o possuem uma licen?a aceitável para se trabalhar em nuvem. Além disso, as ferramentas forenses atuais n?o utilizam todo o poder disponível em ambientes em nuvem, menos ainda no contexto da utiliza??o do modelo de programa??o MapReduce, para tanto vale a pena discutir a necessidade de se re-escrever códigos para implementa??o efetiva do modelo. Programa??o paralela é mais eficiente que programa??o serial e também pode ser usada para resolver problemas em grandes conjuntos de dados utilizando recursos n?o locais. Quando há um conjunto de computadores interligados em rede, neste caso a nuvem, nós temos um grande poder computacional nas m?os, podendo fazer uso de processamento distribuído e programa??o paralela utilizando MapReduce para solucionais problemas forenses em grandes quantidades de dados. Muitas aplica??es forenses podem ser especificadas utilizando este modelo, e exemplos podem ser encontrados no trabalho de Roussev et. al (2009), citando o uso do wordcounter que calcula o numero de vezes que uma palavra aparece em um texto; pi-estimator que calcula uma aproxima??o do valor de PI baseado no método de Monte Carlo; grep que realiza uma busca no texto; e uma aplica??o de bloomfilter, que faz o hash de um arquivo em blocos de 4 KB utilizando SHA-1 e ent?o os insere em Bloom filters.6. Conclus?oEsta proposta visa propor uma solu??o viável utilizando computa??o em nuvem para um dos desafios da computa??o forense, citado por Garfinkel (2010), onde a grande capacidade dos dispositivos de armazenamento tem causado problemas, pois normalmente n?o há tempo necessário para a cria??o de imagens forenses, ou para processar os dados encontrados.Nós apresentamos os conceitos envolvendo a computa??o forense e a computa??o em nuvem, chegando a um modelo que utilize o modelo de programa??o MapReduce distribuído através da nuvem, nas formas publicas ou privadas, fornecendo ent?o Forense como Servi?o (Forensic as a Service – FaaS) como um meio de solucionar o problema citado anteriormente, de se trabalhar com dispositivos com grande capacidade de armazenamento. O uso da computa??o em nuvem vem se consolidando e mostrando indica??es de que será mais presente na vida cotidiana do que já é, e agora nós precisamos que padr?es de uso, confiabilidade, privacidade e outras quest?es de seguran?a discutidas no texto sejam estabelecidas. Quest?es legais ainda caminham vagarosamente, uma vez que ainda existem crimes n?o abrangidos pelas leis atuais (brasileiras principalmente), mas devemos continuar trabalhando para garantir que casos realizados através desta solu??o apresentada tenham validade legal em casos de envolvendo a justi?a. Esta é apena uma solu??o apresentada para o problema da quantidade de dados, é possível que outras solu??es utilizando abordagens diferentes possam surgir, trazendo novos resultados e utilizando novas tecnologias.ReferenciasAmazon Web Services – AWS (2011). Amazon Elastic MapReduce. Disponível em: <;. Acesso em 6 jan. 2011. Apache, Hadoop (2010). HDFS Architecture Guide. Disponível em: <;. Acesso em 11 jan. 2011. Buyya. Rajkumar, Yeo. Chee Shin, Venugopal. Srikumar (2008). Market-Oriented Cloud Computing: Vision, Hype, and Reality for Delivering IT Services as Computing Utilities. 10th IEEE International Conference on High Performance Computing and Communications, 5-13. Cloud Security Alliance – CSA (2009). Security Guidance for Critical Areas of Focus in Cloud Computing V2.1. Damoulakis, Jim (2010). In Clouds we Trust. IT NOW, 52(2), 11-12. doi:10.1093/itnow/bwq142. Dean, J. and Ghemawat, S. (2004) MapReduce: Simplified Data Processing on Large Clusters. Sixth Symposium on Operating System Design and Implementation – OSDI. Google Inc. Eucalyptus System (2009). Eucalyptus Open-Source Cloud Computing Infrastructure - An Overview. Disponível em: < pdf/whitepapers/Eucalyptus_Overview.pdf>. Acesso em 5 fev. 2011. Garfinkel, Simson L (2010). Digital Forensics Research: The next 10 years. Digital Forensics Research Workshop (DFRWS).Iball, John (2010) Don't Cloud Data Security. ITNOW, 52 (2), 14-15. doi: 10.1093/itnow/bwq143. Jericho Forum (2009). Cloud Cube Model: Selecting Cloud Formations for Secure Collaboration. Disponível em: < cloud_cube_model_v1.0.pdf>. Acesso em 6 fev. 2011. Kundra, Vivek (2010). State of Public Sector Cloud Computing. Washington, DC. Lee, H.; Palmbach, T.; Miller, M. (2001) Henry Lee's Crime Scene Handbook. London: Academic Press Marins, C. E. (2001). Desafios da informática forense no cenário de Cloud Computing. Proceedings of the Fourth International Conference of Computer Science. Mell, P.; Grance, T. (2009). The NIST Definition of Cloud Computing. National Institute of Standards and Technology (NIST), V. 15, Information Technology Laboratory. Nance, K.; Hay, B.; Bishop, M. (2009). Digital forensics: defining a research agenda. 42nd Hawaii International Conference on System Sciences. Nichols, R. (2010). Cloud Computing by Number what do all the Statistics Mean. Disponível em: < numbers_what_do_all_the_statistics_mean>. Acesso em 23 mar. 2011. Paquette, S., Jaeger, P., Wilson, S. (2010). Identifying the security risks associated with governmental use of cloud computing. Government Information Quarterly 27. Regional Computer Forensics Laboratory – RCFL. (2009). Annual Report for Fiscal Year 2009. U.S. Department of Justice. Federal Bureau of Investigation. Quantico, VA. Roussev, V.; Richard III, G. (2004). Breaking the Performance Wall: The Case for Distributed Digital Forensics. Digital Forensics Research Workshop (DFRWS). Roussev, V.; Wang, L.; Richard III, G.; Marziale, L. (2009). MMR: A Platform for Large-Scale Forensic Computing. Fifith Annual IFIP WG 11.9 International Conference on Digital Forensics. Shanmugasundaram, K.; Memon, N.; Savant, A.; Bronnimann, H. (2009). ForNet: A Distributed Forensics Network. 2nd International Workshop on Mathematical Methods, Models and Architectures for Computer Networks Security. Tang, Y.; Daniels, T. (2005). A Simple Framework for Distributed Forensics. 2nd International Workshop on Security in Distributed Computing Systems (SDCS - ICDCSW), 163-169. Vaquero, L; Rodero-Merino, L.; Caceres, J.; Lindner, M. (2009). A Break in the Clouds: Towards a Cloud Definition. ACM – SIGCOMM, Computer Comunication Review, 39(1), 78-85. Wardley, S., Goyer, E., Barcet, N. (2009). Ubuntu Enterprise Cloud Architecture. Disponível em: <;. Acesso em 10 jan. 2011. ................
................
In order to avoid copyright disputes, this page is only a partial summary.
To fulfill the demand for quickly locating and searching documents.
It is intelligent file search solution for home and business.