UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES

Tamanho: px
Começar a partir da página:

Download "UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES"

Transcrição

1 UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES DESENVOLVIMENTO DE UM SISTEMA DE ANÁLISE DE IMAGENS APLICADO À PRÁTICA FORENSE Felipe Farias Ozela BELÉM - PARÁ 2013

2 ii UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES Felipe Farias Ozela DESENVOLVIMENTO DE UM SISTEMA DE ANÁLISE DE IMAGENS APLICADO À PRÁTICA FORENSE Trabalho de Conclusão de Curso apresentado como requisito parcial para obtenção do grau de Bacharel em Engenharia da Computação da Faculdade de Engenharia da Computação e Telecomunicações do Instituto de Tecnologia da Universidade Federal do Pará. Orientador: Prof. Dr. Ronaldo de Freitas Zampolo. BELÉM - PARÁ 2013

3 DESENVOLVIMENTO DE UM SISTEMA DE ANÁLISE DE IMAGENS APLICADO À PRÁTICA FORENSE iii Este trabalho foi julgado adequado em para a obtenção do Grau de Engenheiro da Computação, aprovado em sua forma pela banca examinadora que atribuiu o conceito. Prof. Dr. Ronaldo de Freitas Zampolo ORIENTADOR Prof. Dr. Adalbery Rodrigues Castro Universidade Federal do Pará Prof. MSc. Fábio Manoel França Lobato Universidade da Amazônia Prof. MSc. Rafael Oliveira Chaves Universidade Federal do Pará Prof. Dr. Ádamo Lima de Santana DIRETOR DA FACULDADE

4 iv Agradeço todas as dificuldades que enfrentei; não fosse por elas, eu não teria saído do lugar. As facilidades nos impedem de caminhar. Mesmo as críticas nos auxiliam muito. Chico Xavier

5 v Dedico este TCC à todos os que de alguma forma me ofereceram a oportunidade de escrevê-lo, em especial à minha família e namorada.

6 vi Agradecimentos Agradeço ao meu pai e a minha mãe, Paulo Ozela e Rosângela Farias, que me proporcionaram o dom da vida e, não só investiram em minha educação formal, como também me deram a melhor forma de educação: a familiar. Agradeço aos meus irmãos, Priscilla, Rodrigo e Paulo Vitor por estarem sempre ao meu lado, sendo meu porto seguro, dando apoio e carinho. À minha namorada, amiga e companheira, Marina Campos, por me dar amor, afeto, carinho, atenção e compreensão. Agradeço pelo apoio incondicional nesta vida, tanto pessoal, como acadêmica, por sempre acreditar em mim, não me deixando desistir das coisas que são mais importantes, por me ensinar a ter cada vez mais serenidade, por me fazer cada dia mais apaixonado e seguro de nosso amor. Aos meus avós, tios, primos e amigos por todos os momentos que passamos juntos. Principalmente aos meus tios: Rosivaldo, Rosinaldo e Rosiwagner por terem colaborado com o meu interesse pela computação, o que veio a se tornar minha profissão desde cedo. Ao meu orientador, Professor Ronaldo Zampolo, por ter se dedicado durante todo o processo de desenvolvimento deste trabalho. Agradeço pela confiança, paciência, preocupação e prestreza. Ao amigo Robson Valente que sempre me ajudou com sua sabedoria, amizade e solicitude. Agradeço pelos muitos momentos de diversão, de estudos e por ter incentivado a não desistir durante momentos difíceis do curso. Ao amigo Fábio Lobato pela amizade, por despertar meu interesse em Engenharia de Software durante o meu primeiro estágio no LPRAD e pela experiência de vida passada no início do curso. À Katerinne por ter me dado atenção e sido esta grande amiga, incodicionalmente, pelos últimos 12 anos de nossas vidas. Aos colegas Hermeson Barbosa e Diego do Carmo, integrantes do projeto de extensão Processamento Digital de Sinais Aplicado à Prática Forense: Verificação de Adulteração de Provas Digitais e Assinatura de Sistemas de Aquisição de Imagem I e II, por terem me acolhido e ajudado durante o desenvolvimento deste trabalho. Agradeço aos colegas de curso que, de alguma forma, sempre me ajudaram a transpor os obstáculos da Engenharia. Agradeço, também, à instuição UFPA que me proporcionou conhecimentos durante os últimos anos de estudos.

7 vii Sumário Dedicatória v Agradecimentos vi Sumário vii Lista de Figuras xi Resumo xiv Abstract xv 1 Introdução Motivações Objetivos Metodologias e Materiais Escolha do Modelo de Ciclo de Vida Fase de Modelagem Fase de Programação Linguagem de programação C Framework Qt Biblioteca OpenCV

8 viii Ambiente de desenvolvimento Qt Creator Doxygen Organização do Texto A Computação Forense Introdução Definições de Computação Forense O Crime na Era Digital Crimes cometidos com o uso de equipamentos computacionais A Legislação Pedofilia, a Exploração Sexual de Crianças e a Legislação Engenharia de Software Introdução Conceitos em Engenharia de Software Engenharia de Software Processos de Software Modelo Espiral Modelo em Cascata Modelo de Prototipagem Modelagem do Sistema Proposto Análise de Requisitos Requisitos Não Funcionais Requisitos Funcionais UML Casos de Uso

9 Diagrama de Classes Protótipos de Baixa Fidelidade ix 4 Linguagem de Programação, Framework e Bibliotecas Introdução Qt em Múltiplas Plataformas Qt Designer Qt Quick Biblioteca OpenCV Biblioteca FFMPEG Biblioteca EasyEXIF Resultado: SPID - Sistema de Perícias em Imagens Digitais Introdução Estrutura do Sistema Modularização do Sistema Estereótipo Entity-Control-Boundary Bibliotecas Externas OpenCV (Análise da imagem) FFmpeg (Análise de vídeo - Funcionalidade em pesquisa) EasyEXIF Funcionamento Geral SPID - Detecção da Fonte via PRNU SPID - Detecção de Adulterações Documentação Doxygen

10 x 5.5 Licença SPID Plataformas Compiladas e Testadas Linux Ubuntu bits Microsoft Windows 7 Professional - 64 bits Considerações Finais Trabalhos Futuros Referências Bibliográficas 44 Apêndice A 46

11 xi Lista de Figuras 2.1 Crime onde o computador é utilizado como ferramenta de apoio. Fonte: (ELEU- TERIO; MACHADO, 2011b) Crime onde o computador é utilizado como meio para a realização do crime. Fonte (ELEUTERIO; MACHADO, 2011b) Modelo Cascata e Prototipagem - Inspiração para Modelo Espiral - Fonte: (PRES- SMAN, 2006a) Modelo Espiral. Fonte: (PRESSMAN, 2006a) Diagrama de Casos de Uso do sistema em desenvolvimento Protótipo da janela principal do Sistema de Perícia em Imagens Digitais Protótipo da janela Análise via PRNU - Sistema de Perícia em Imagens Digitais Qt Designer pronto para iniciar o desenvolvimento de uma interface de usuário Interface de desenvolvimento Qt Quick Exemplo de GUI em QML usando o Qt Quick. Fonte: Organização das classes do SPID seguindo o padrão Entity-Control-Boundary Interface gráfica inicial com destaque para a exibição de informações EXIF Interface gráfica inicial do SPID - GUI simples e facilmente usável Processo de estimação da PRNU a partir de imagens obtidas pela câmera suspeita. Fonte: (ZAMPOLO et al., 2011)

12 xii 5.5 Análise e identificação de câmera: imagem suspeita é processada e comparada com a PRNU estimada. Fonte: (ZAMPOLO et al., 2011) SPID - Detecção da Fonte via PRNU SPID - Detecção da Fonte via PRNU - Estimar PRNU SPID - Detecção da Fonte via PRNU - Salvar PRNU SPID - Detecção de Adulterações. Imagem adulterada SPID - Detecção de Adulterações. Imagem autêntica Declaração de licença LGPL na classe da janela principal do SPID

13 xiii Lista de Siglas CASE CCD CPCRC CCD CPP CUDA EXIF GUI GPS GPU IC LGPL P2P SPID PRNU UML WWW WYSIWYG Computer-Aided Software Engineering Charge-Coupled Device Centro de Perícias Científicas Renato Chaves Charge-Coupled Device Código de Processo Penal Compute Unified Device Architecture Exchangeable Image File Format Graphical User Interface Global Positioning System Graphics Processing Unit Instituto de Criminalística Lesser General Public License Peer-to-peer Sistema de Perícias em Imagens Digitais Photo Response Non-Uniformity Unified Modeling Language World Wide Web What-You-See-Is-What-You-Get

14 xiv Resumo Este trabalho tem como objetivo apresentar a modelagem e o desenvolvimento de um sistema de análise de imagens aplicado à prática forense por meio de verificações de informações acerca da procedência e de eventuais adulterações de imagens digitais colocadas à prova, bem como mostrar alguns embasamentos legais importantes a se consider ao longo de seu desenvolvimento. Para o devido desenvolvimento deste sistema, faz-se fundamental a utilização de conceitos de engenharia de software, sendo assim necessário um Processo de Software antes e durante o desenvolvimento do sistema. Com isso, será possível demonstrar o desenvolvimento de um software, analisando os variados estágios da engenharia que estão envolvidos no processo. Utilizaram-se diversas bibliotecas para a criação do sistema proposto. Para a criação da interface visual foi utilizada a linguagem de programação C++ em conjunto com o framework Qt. Palavras-Chave: Engenharia de Software, Forense, UML, C++, QT, OpenCV, EXIF, Imagens Digitais.

15 xv Abstract This work has as objective to present the modeling and development process of a system for image analysis applied to forensic practice through verifications of information about the origin and possible tampering of digital images put to the test, as well as to show some important legal emplacements to consider during its creation. For proper development of this system, it is essential to use software engineering concepts, it is necessary a Process of Software before and during the course of building the system. With it, demonstrating the development of a software, analyzing the various stages of engineering that are involved in the process. Several libraries were used for building the proposed system. To create the visual interface it was used C++ programming language with the Qt framework. Keywords: Software Engineering, Forensics, UML, C++, Qt, OpenCV, EXIF.

16 1 Capítulo 1 Introdução 1.1 Motivações Com o aumento e a popularização de dispositivos eletrônicos, tais como câmeras digitais - tanto fotográficas, como de vídeo - crimes em que tais equipamentos estão associados também cresceram. Por isto, a demanda por laudos periciais neste tipo de dispositivo aumentou (ZAM- POLO et al., 2011). Os crimes relacionados à informática são variados e o Núcleo de Fonética Forense dos Institutos de Criminalística (IC) é a melhor indicada para averiguá-los. Assim, verifica-se frequentemente que este Núcleo tem uma grande fila de perícias a serem realizadas com prazos curtos a serem cumpridos. Sabendo disto, este trabalho se aprofundou no problema enfrentado pelos IC s e as medidas cabíveis. A partir de então, verificou-se a possibilidade da modelagem e desenvolvimento de uma solução de software que auxilie à prática forense nestes Institutos. 1.2 Objetivos Este trabalho visa modelar e desenvolver um sistema de análise de imagens aplicado à prática forense. Tal sistema deverá realizar testes e verificações de modo a obter informações acerca da procedência e de eventuais adulterações de imagens digitais colocadas em prova utilizando-se de técnicas desenvolvidas pelos projetos de extensão: Processamento Digital de Sinais Aplicado à Prática Forense: Verificação de Adulteração de Provas Digitais e Assinatura

17 2 de Sistemas de Aquisição de Imagem I e II. 1.3 Metodologias e Materiais Utilizaram-se conceitos de Engenharia de Software para a modelagem do sistema e na criação do programa de computador em questão. Estes conceitos foram empregados visando obter uma melhor organização e padronização do sistema Escolha do Modelo de Ciclo de Vida A escolha de um modelo de ciclo de vida, também chamado de modelo de processo, é o ponto de partida para a definição de um processo de desenvolvimento de software. Um modelo de ciclo de vida organiza as macro-atividades básicas necessárias para o desenvolvimento de um sistema, estabelecendo precedência e dependência entre as mesmas. Têm-se modelos genéricos que podem ser usados com diferentes formas de abordagens de desenvolvimento. Entre eles, destacam-se: Modelo em Cascata, Desenvolvimento Evolutivo e Modelo de Processo Incremental. Sendo o Modelo em Cascata um dos primeiros modelos a ser usado em Engenharia de Software. O Modelo Espiral foi utilizado como padrão para o desenvolvimento do software neste projeto. Por ser um modelo evolutivo, iterativo com prototipação, possuir estimativas e possibilitar um controle de riscos a cada etapa, por isto acabou sendo naturalmente escolhido para a implementação do sistema. Mais sobre o Modelo Espiral será abordado no capítulo 3 deste trabalho, bem como o Processo de Software. 1.4 Fase de Modelagem Durante a fase de modelagem do sistema proposto, utilizaram-se de diversos recursos de modo a documentar o mesmo. A UML - Unified Modeling Language ou Linguagem de Modelagem Unificada - é uma

18 3 linguagem visual utilizada para modelar softwares que pode ser aplicada à todos os domínios de aplicação. Ferramentas CASE, do inglês Computer-Aided Software Engineering, que é uma classificação abrangendo todas as ferramentas baseadas em computadores que auxiliam atividades de Engenharia de Software. Astah Community, anteriormente denominado JUDE, Java and UML Developers Environment (Ambiente para Desenvolvedores UML e Java), o Astah é um software para modelagem UML desenvolvido na plataforma Java, o que garante a portabilidade entre diversos sistemas operacionais que utilizam-se da máquina virtual Java. A ferramenta foi usada na fase de modelagem mais avançada de diagramação de classes e casos de uso. 1.5 Fase de Programação Na fase de programação, utilizaram-se ferramentas de desenvolvimento tais como: Linguagem de programação C++ C++ é uma linguagem de programação multi-paradigma de uso geral. Esta linguagem é considerada de médio nível, visto que possui tanto características de linguagens de alto nível como de baixo nível. Desde os anos 1990 é uma das linguagens comerciais mais populares, sendo bastante usada também na academia por seu grande desempenho e base de conhecimento Framework Qt Qt é um framework multiplataforma para desenvolvimento em C++ criado pela divisão da Nokia Qt Development Frameworks, da empresa Norueguesa Trolltech, sua desenvolvedora original. Com ele é possível desenvolver aplicativos e bibliotecas uma única vez e compilá-los para plataformas variadas sem que seja necessário alterar o código fonte. Atualmente, este framework é mantido pelo Qt Project, uma iniciativa de software livre, envolvendo desenvolvedores individuais e provenientes de empresas como Nokia, Digia, e outras.

19 Biblioteca OpenCV OpenCV (Open Source Computer Vision) é um conjunto de bibliotecas projetado para a eficiência computacional e com um forte foco em aplicações em tempo real. O OpenCV possui módulos de processamento de imagens e vídeo (tanto de entrada, como de saída), estrutura de dados, álgebra linear, GUI (Graphical User Interface, ou Interface Gráfica do Usuário, em tradução livre) básica com sistema de janelas independentes, controle de mouse e teclado, além de mais de 350 algorítmos de visão computacional como: filtros de imagem, calibração de câmera, reconhecimento de objetos, análise estrutural e outros. É uma biblioteca multiplataforma, sendo possível de se utilizar, atualmente, em C/C++, Java, Python e Visual Basic Ambiente de desenvolvimento Qt Creator Qt Creator é uma ferramenta CASE utilizada para o desenvolvimento de interface de usuário no framework Qt. Nela estão contidos o Qt Designer e Qt Quick, ferramentas para criação de GUI, melhor explicadas nas seções e Doxygen É uma ferramenta para documentação de softwares baseada nos comentários do códigofonte. 1.6 Organização do Texto O restante deste documento está dividido em capítulos seguindo o ordenamento abaixo: Capítulo 2: Analisa os aspectos forenses que devem servir de arcabouço e razões para o desenvolvimento do software, bem como metodologias forenses aplicadas no processo. Capítulo 3: Define as informações obtidas acerca dos requisitos necessários ao software e apresenta a modelagem do sistema.

20 5 Capítulo 4: Apresenta a linguagem C++, Qt development framework e as bibliotecas usadas no sistema. Capítulo 5: Demonstra o Sistema de Perícias em Imagens Digitais e seus resultados. Capítulo 6: Dispõe de considerações finais acerca deste documento e opções de trabalhos futuros.

21 6 Capítulo 2 A Computação Forense 2.1 Introdução Com o rápido desenvolvimento dos computadores, não tardou para que esses dispositivos estivessem presentes em várias áreas desempenhadas pelo ser humano. Com tamanha divulgação e popularização, os computadores estão presentes em várias esferas da vida humana, seja nas empresas, nas casas, nos carros ou nas mãos das pessoas na forma de smartphones, tablets, câmeras digitais, GPS 1, etc. Assim como em qualquer outro campo de estudo, as inovações tecnológicas trazem uma série de benefícios para as pessoas e a comunidade. Entretanto, também trazem consigo a possibilidade de realização de práticas ilegais e criminosas. 2.2 Definições de Computação Forense Perícia Forense em Sistemas Computacionais é o processo de coleta, recuperação, análise e correlacionamento de dados que visa, dentro do possível, reconstruir o curso das ações e recriar cenários completos fidedignos. (COSTA, 2003) A palavra forense vem de foro, e podemos entender como meio policial onde é feita uma análise minuciosa de todo material capturado em cena de crime. Computação forense é 1 Global Positioning System, ou Sistema de Posicionamento Global, em português.

22 7 então o ramo da criminalística que compreende a descoberta, preservação, restauração e análise de evidências computacionais. Computadores podem ser usados para cometer crimes, como, por exemplo, aliciamento de menores; Podem ainda conter evidências de crimes, como dados de contas bancárias fraudadas, ou ainda ser alvos de crimes, quando armazenam informações sigilosas de grandes instituições (BULLE, 2008). 2.3 O Crime na Era Digital É comum se dizer que crimes sempre deixam vestígios!. Segundo o dicionário Michaelis da Língua Portuguesa, vestígio é definido como: 1 Sinal deixado pela pisada ou passagem, tanto do homem como de qualquer outro animal; pegada, rasto. 2 Indício ou sinal de coisa que sucedeu, de pessoa que passou. 3 Ratos, resquícios, ruínas. Seguir os vestígios de alguém: fazer o que ele fez ou faz; imitá-lo. Na computação, estes vestígios de crimes são digitais, uma vez que toda a informação armazenada dentro de equipamentos computacionais é composta por bits (números zeros e uns), em uma sequência lógica. O Código de Processo Penal (CPP) determina em seu artigo 158 que: Quando a infração deixar vestígios, será indispensável o exame de corpo de delito, direto ou indireto, não podendo supri-lo a confissão do acusado. Dessa forma, surge a necessidade de um profissional qualificado, que examine vestígios e produza laudos de interesse à justiça na apuração de um delito, conforme definidos nos caputs dos artigos 159 e 160 do CPP, que dizem, respectivamente: O exame de corpo de delito e outras perícias serão realizados por perito oficial, portador de diploma de curso superior e Os peritos elaborarão o laudo pericial, no qual descreverão minuciosamente o que examinarem e responderão aos quesitos formulados. No caso da computação, quem realiza esse trabalho de forma oficial no âmbito criminal é o Perito Criminal em Informática. Entretanto, diversos outros profissionais podem ter a necessidade de realizar exames em computação. São eles: peritos particulares, auditores de sistemas, profissionais de TI e outros. Além disso, juízes, advogados, delegados, promotores e demais profissionais da área de direito também devem conhecer como evidências e provas

23 8 digitais devem ser corretamente coletadas, apuradas e apresentadas. Assim, a Computação Forense objetiva determinar a dinâmica, a materialidade e autoria de ilícitos ligados à àrea da informação, questionando principalmente a identificação e o processamento de evidências digitais em provas materiais de crimes, através de métodos técnicocientíficos, conferindo-lhe validade probatória em juízo (ELEUTERIO; MACHADO, 2011b) Crimes cometidos com o uso de equipamentos computacionais Faz-se importante diferenciar se o equipamento é utilizado apenas como ferrramenta de apoio à prática forense de delitos convencionais ou se é utilizado como meio para realização do crime. Nos crimes em que equipamentos computacionais são utilizados como ferramenta de apoio aos crimes convencionais, o computador serve apenas de ferramenta para auxílio aos criminosos na prática de crimes já conhecidos, como sonegação fiscal, compra de votos em eleições, tráfico de entorpecentes, falsificação de documentos e outros. Na Figura 2.1, podese notar a figura do criminoso utilizando-se do computador de modo forjar documentos para utilizar, por exemplo, em uma instituição bancária. Figura 2.1: Crime onde o computador é utilizado como ferramenta de apoio. Fonte: (ELEUTERIO; MACHADO, 2011b) Nos crimes em que equipamentos computacionais são utilizados como meio para sua realização, o computador é a peça central para a ocorrência do delito, ou seja, se este dispositivo não existisse, tal delito não poderia ser praticado. Diferindo da modalidade anterior, em que crimes convencionais são tipificados, novas maneiras de cometer um delito surgem devido ao mau uso do computador e da internet. Dentre elas, podem-se citar: ataques a sites, roubo de

24 9 informações, phishing 2, programas maliciosos para roubo de senhas e outros. Se um cracker 3, em sua casa, desviar dinheiro de uma conta bancária a partir de acesso não autorizado a um Internet Banking, o computador exerce o papel principal para o delito ser cometido. Se ele não existisse, esse crime não poderia ser realizado dessa maneira. Na Figura 2.2, pode-se notar a figura de um cracker utilizando-se de um computador para acessar um banco através de um computador. Figura 2.2: Crime onde o computador é utilizado como meio para a realização do crime. Fonte (ELEU- TERIO; MACHADO, 2011b) 2.4 A Legislação O Código de Processo Civil pátrio estabelece em seu artigo 332: Todos os meios legais, bem como os moralmente legítimos, ainda que não especificados neste Código, são hábeis para provar a verdade dos fatos, em que se funda a ação ou a defesa. Pode-se constatar que a informação digital não é, em si, ilegal, tampouco ilegítima. Ela contém condições técnicas que lhe garantem eficácia probatória. Além disso, cresce diariamente o número de informações digitais disponíveis, dada a quantidade de benefícios que podem trazer, como: menor custo, maior agilidade, maior disponibilidade, melhor manuseio e segurança. Daí, verificam-se cada vez mais evidências eletrônicas. 2 Forma de fraude eletrônica, caracterizada por tentativas de adquirir dados pessoais de diversos tipos; senhas, dados financeiros como número de cartões de crédito e outros dados pessoais. 3 Vândalo virtual que usa seus conhecimentos para invadir sistemas, quebrar travas, senhas e roubar dados (MORIMOTO, 2005).

25 10 Isso não significa que uma informação digital não possa ser obtida de forma ilegal. No caso de uma interceptação telefônica não autorizada, por exemplo, esse material teria seu valor como elemento de prova descartado. Devido a fatores como esse, a investigação da Computação Forense deve levar em conta algumas considerações, a saber: Toda busca e análise de evidências deve ser feita por meio de autorização judicial, caso contrário o trabalho perderá sua validade; Toda a prova avaliada não pode sofrer nenhum tipo de alteração durante sua análise por peritos, por isso é preferível criar cópias dos dispositivos originais e realizar a análise sobre as réplicas; Toda análise deve ter seu histórico de procedimentos formalmente descrito em um laudo pericial, normalmente solicitado pelo delegado ou promotor de justiça. O perito é um tradutor especializado de fatos que poderão auxiliar a decisão do processo, mas ele deve ser alheio ao processo e aos resultados deste. 2.5 Pedofilia, a Exploração Sexual de Crianças e a Legislação De acordo com Eleutério e Machado 2011a, um crime muito verificado na Computação Forense é a exploração sexual de crianças, caracterizada pelo uso de equipamentos para produção, visualização, edição, e divulgação de vídeos ou imagens contendo pornografia infanto-juvenil via internet. Segundo Croce (1995), pedofilia pode ser definida como um desvio sexual caracterizado pela atração por crianças ou adolescentes sexualmente imaturos, com os quais os portadores dão vazão ao erotismo pela prática de obscenidades ou de atos libidinosos. Assim, pedofilia é um desvio aplicado aos seres humanos e não deve ser confundido com pornografia infanto-juvenil. Desta forma, não é correto dizer que um arquivo de vídeo é pedófilo - esse é um erro bastante popular na mídia e nos noticiários. De acordo com Eleutério e Machado (2011a), a legislação brasileira não considerava crime a posse de arquivos de pornografia envolvendo crianças ou adolescentes até 25 de novembro de Apesar de o compartilhamento, a produção e a divulgação, entre outras ações, já estarem contempladas pela legislação, a posse ainda não tinha previsão legal. Porém, isto

26 11 mudou com sua inclusão na lei , demostrando uma preocupação da sociedade com o assunto e a mobilização do governo em combater esse tipo de delito. A produção e propagação de conteúdo digital ilegal, especialmente imagens e vídeos envolvendo pornografia infanto-juvenil, tem crescido nos últimos tempos. Combinada com a rápida evolução dos computadores e a popularização da internet, a produção e o consequente compartilhamento de arquivos ilegais entre pessoas de todo mundo ocorre de maneira frequente, principalmente por meio da World Wide Web (WWW), das redes peer-to-peer (P2P), de s e dos serviços de mensagens instantâneas, como Messenger e Skype, além da Deep Web 4. Visando reprimir e desencorajar este crime, as polícias do mundo inteiro, incluindo a Polícia Federal do Brasil, têm realizado uma série de operações, buscando a identificação de pessoas que tenham compartilhado arquivos contendo pornografia infanto-juvenil por meio da internet (ELEUTERIO; MACHADO, 2011b). Partindo desta identificação, faz-se possível identificar também o produtor dos arquivos de imagens/vídeos, bem como a identificação e posterior recuperação psicológica da própria vítima (criança/adolescente). Esta identificação da fonte dos arquivos é uma das possíveis aplicações do sistema em desenvolvimento que será mostrado ao longo deste trabalho. 4 Termo inicialmente cunhado por Mike Bergman que se refere ao conteúdo da World Wide Web que não faz parte da Surface Web, a qual é indexada pelos mecanismos de busca padrão.

27 12 Capítulo 3 Engenharia de Software 3.1 Introdução Neste capítulo, serão expostos os conceitos fundamentais sobre Engenharia de Software e como ela pode ser aplicada visando uma organização do processo de desenvolvimento de software. 3.2 Conceitos em Engenharia de Software Software é um conjunto ou uma sequência de instruções projetadas por uma pessoa ou empresa que tem um objetivo específico (PRESSMAN, 2006a). Softwares são desenvolvidos de acordo com linguagens de programação (C++, Java, PHP, entre outras) e funciona sobre uma plataforma (Windows, Linux, Java Virtual Machine, etc) Engenharia de Software De acordo com Pressman (PRESSMAN, 2006a), Engenharia de Software é definida como: [...] um arcabouço que pode ser usado por aqueles que constroem software de computadores [...] O arcabouço abrange um processo, um conjunto de métodos e ferramentas, que nós chamamos de Engenharia de Software. Para Somerville (2011):

28 13 Engenharia de Software é a disciplina da engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção desse sistema, depois que ele entrou em operação. O fato é que a Engenharia de Software existe desde o final da década de 1950 e tem como objetivo melhorar o desenvolvimento de software, porém inicialmente ainda não se tinham os modelos, técnicas e as ferramentas existentes hoje. Ainda na década de 1950, verificou-se um grande avanço no hardware que não foi acompanhado pelos softwares produzidos naquela época. O desenvolvimento de software não conseguia acompanhar o desenvolvimento de hardware, por isto, até a década de 1980, a Engenharia de Software passou pela chamada crise do software. Como falhas ocorridas nesta época, podem-se citar: Projetos acima do orçamento; Atrasos na finalização do projeto; Softwares de baixa qualidade; Sistemas dificilmente manuteníveis. Visando solucionar estas dificuldades mencionadas anteriormente, foram desenvolvidas técnicas, ferramentas e estratégias para produção de sistemas de software. Nos últimos 20 anos, estas técnicas vem ficando cada vez melhores e mais eficientes. Podem-se destacar: A programação estruturada; A programação orientada a objetos; Ferramentas CASE; Documentação de software; Padrão de desenvolvimento de sistemas; Com o avanço obtido ao longo dos anos, o processo de desenvolvimento de software se tornou mais eficiente. Desta forma, mesmo os problemas continuando a existir, há a possibilidade de resolvê-los por meio de soluções existentes ou mesmo modificando-as de acordo com a necessidade do sistema.

29 Processos de Software De modo a criar um sistema, visando atender o prazo de conclusão e a qualidade esperada, faz-se uso de uma sequência de passos que são conhecidos como Processo de Software. De acordo com Pressman (2006b): Processo é um conjunto de atividades, ações e tarefas na criação de algum produto de trabalho (work product). Uma atividade esforça-se para atingir um objetivo amplo e é utilizada independente do campo de aplicação, do tamanho do projeto, da complexidade de esforços ou do grau de rigor com que a engenharia de software será aplicada. Uma ação envolve um conjunto de tarefas que resultam num artefato de software fundamental. Uma tarefa se concentra em um objetivo pequeno, porém bem definido. Pode-se dizer que Processo de Software é um modelo que pode ser adaptado à realidade do projeto, assim, não é necessário ser seguido fielmente. Para que haja um processo de software, é necessário o uso de uma metodologia (conjunto de atividades). Segundo Pressman (PRESSMAN, 2006a), o seguinte arcabouço de processo genérico é aplicável à grande maioria dos projetos de software: 1. Comunicação: abrange a comunicação e a colaboração com o cliente, abrange o levantamento de requisitos e outras atividades relacionadas; 2. Planejamento: estabelece um plano para o trabalho de engenharia de software. Descreve tarefas técnicas, os riscos prováveis, os recursos necessários, os produtos de trabalho a serem produzidos e um cronograma de trabalho; 3. Modelagem: inclui a criação de modelos que permitam ao desenvolvedor e ao cliente entender melhor os requisitos do software e o projeto que deverá satisfazê-los; 4. Construção: combina geração de código (manual ou automática) e os testes necessários para revelar erros no código; 5. Implantação: o software é entregue ao cliente que avalia o produto e fornece o feedback com base na avaliação.

30 15 Estas atividades genéricas de arcabouço podem ser usadas durante o desenvolvimento de diversos tipos de sistemas de software. Os detalhes do processo serão muito diferentes em cada caso, porém as atividades de arcabouço permanecem as mesmas Modelo Espiral Para melhor entender o Modelo Espiral, faz-se interessante salientar aspectos nos quais este se baseou. O Modelo Espiral, originalmente proposto por Boehm (BOEHM, 1988), é um modelo evolucionário de Processo de Software que une os aspectos de controle e sistemático do Modelo em Cascata com a Metodologia Iterativa da Prototipagem, unindo o que tem melhor dos dois métodos Modelo em Cascata O Modelo em Cascata, também chamado de ciclo de vida clássico, sugere uma abordagem sistemática e sequencial para o desenvolvimento de softwares que começa com a especificação dos requisitos pelo cliente e progride ao longo do planejamento, modelagem, construção e implantação, culminando na manutenção progressiva do software acabado (PRESSMAN, 2006a). Não seria recomendado o uso do Modelo em Cascata no sistema descrito neste trabalho, pelas seguintes razões: Os requisitos podem sofrer alterações ao longo do projeto; Falta de maturidade no uso da linguagem de programação utilizada escolhida, o que pode resultar em insegurança quanto ao funcionamento das funções; Não saber, inicialmente, como se dará a interação com o usuário do sistema Modelo de Prototipagem É difícil para os usuários finais preverem como irão utilizar novos sistemas de software para dar apoio ao seu trabalho diário. Se esses sistemas forem grandes e complexos demais, deve ser impossível fazer essa avaliação antes de o sistema ser construído e colocado em funcionamento (SOMMERVILLE, 2011).

31 16 Uma maneira de lidar com esta dificuldade é utilizar uma abordagem evolucionária para o desenvolvimento do sistema. Ou seja, fornecer inicialmente um sistema incompleto e, a partir disto, modificá-lo até que os requisitos do usuário se tornem claros. (a) Modelo Cascata (b) Modelo de Prototipagem Figura 3.1: Modelo Cascata e Prototipagem - Inspiração para Modelo Espiral - Fonte: (PRESSMAN, 2006a) O Modelo Espiral fornece o potencial para o desenvolvimento rápido de versões mais completas. Boehm (1988) descreve: O Modelo Espiral de desenvolvimento é um gerador de modelo de processo guiado por risco usado para guiar a engenharia de sistemas intensivos em software com vários interessados concorrentes. Ele tem duas principais características distintas. A primeira é uma abordagem cíclica, para aumentar incrementalmente o grau de definição e implementação de um sistema enquanto diminui seu grau de risco. A outra é um conjunto de marcos de ancoragem, para garantir o comprometimento dos interessados com soluções exequíveis e mutuamente satisfatórias para o sistema. Uma característica importante deste modelo é que inclui o gerenciamento de risco, de forma a diminuí-los e controlá-los durante o desenvolvimento. Outras vantagens de se utilizálo em relação ao Modelo em Cascata ou o Modelo Interativo, por exemplo, são: nem todos os requisitos são previamente conhecidos, a inexperiência com a linguagem de programação utilizada e não há como prever a interação com o usuário do sistema. Por estas razões, o

32 17 modelo espiral foi considerado interessante de se trabalhar para implementação do sistema em desenvolvimento. Uma idéia do funcionamento do Modelo Espiral pode ser visto na Figura 3.2. A partir dela, é possível constatar que o ciclo de vida de um projeto seguindo este modelo se inicia no centro da espiral com a comunicação entre o solicitante do projeto e a equipe de desenvolvimento. Na segunda etapa, tem-se a fase de planejamento que compreende a estimativa do projeto, cronograma e análise dos possíveis riscos que possam comprometer o andamento do desenvolvimento. Na terceira etapa é realizada a modelagem do sistema com a devida análise do projeto. Em seguida, na quarta etapa, começa-se a construção do código e seus respectivos testes. Após estes testes, na quinta etapa, tem-se a fase de implantação do sistema desenvolvido e o retorno do solicitante sobre o sistema. Novas funcionalidades são implementadas seguindo a mesma ordem de procedimentos de forma iterativa. É importante ressaltar que após o retorno do solicitante, pode-se retornar para fases anteriores em caso de necessidade de ajustes no projeto. Figura 3.2: Modelo Espiral. Fonte: (PRESSMAN, 2006a) 3.3 Modelagem do Sistema Proposto Para desenvolver um software, se faz necessária uma análise bastante profunda dos requisitos que o software deve possuir para viabilizar a passagem destas informações aos desenvol-

33 18 vedores Análise de Requisitos A tarefa de coletar os dados para a criação de um sistema é bastante complexa, enganase quem pensa o contrário. Isto se dá, na maioria das vezes, pela falta de comunicação entre desenvolvedor e cliente ou a falta de entendimento. Nesta seção serão apresentados os requisitos do sistema proposto, desta forma, começando a dar corpo ao sistema. Os requisitos foram obtidos por meio de reuniões entre equipe de desenvolvimento e um representante do CPCRC após diversas demandas por perícias em imagens e vídeos digitais. O perito criminal foi indagado sobre as necessidades reais do dia-a-dia dos Institutos de Criminalística e a equipe de desenvolvimento sugeriu possíveis opções de implementação em software a partir de pesquisas realizadas pelo projeto de extensão Processamento Digital de Sinais Aplicado à Prática Forense: Verificação de Adulteração de Provas Digitais e Assinatura de Sistemas de Aquisição de Imagem I Requisitos Não Funcionais Requisitos não funcionais são comportamentos que o sistema deve apresentar. Em geral, estes se referem ao desempenho do sistema. De acordo com os requisitos não funcionais, o sistema proposto deve conter: Usabilidade - Este sistema deve ser simples e intuitivo, apesar da complexidade de suas funcionalidades internas; Agilidade - Deve realizar suas funções em máquinas comuns em um tempo aceitável; Robustez - O sistema deve cumprir com o solicitado, sem maiores travamentos; Permitir integração de futuras técnicas de análise de imagens/vídeos digitais no âmbito forense.

34 Requisitos Funcionais Os requisitos funcionais para um sistema descrevem a função ou os serviços que o solicitante espera que o sistema forneça. Estes requisitos dependem do tipo de software que está se desenvolvendo. Definem-se as funções como um conjunto de entradas, o comportamento destas e suas saídas. Dentre a lista de requisitos, pode-se inserir cálculos, detalhes técnicos, manipulação de dados e de processamento, além de outras funcionalidades específicas que definem o que um sistema, idealmente, será capaz de realizar. Requisitos comportamentais, que descrevem todos os casos em que o sistema utiliza os requisitos funcionais, são extraídos dos casos de uso. Como requisitos funcionais do sistema proposto, considerou-se: Inserir objetos (imagens) questionados como entrada; Selecionar métodos de avaliação do objeto questionado; Exibir metadados 1 do objeto que podem conter indícios iniciais da fonte do objeto em teste; Avaliar a não uniformidade da foto-resposta (PRNU) do sensor de aquisição de imagem como recurso para identificação de dispositivo através de imagens em um diretório de treinamento - mais sobre esta técnica será abordado na Seção 5.3.1; - Permitir armazenamento de informações de PRNU para uso futuro; - Confrontar PRNU com objetos questionados; Integrar ferramenta, previamente criada, para detecção de adulteração de fotografias digitais por clonagem (MASUDA, 2012). 1 Exchangeable image file format (Exif). Especificação seguida por fabricantes de câmeras digitais que gravam informações sobre as condições técnicas de captura da imagem junto ao arquivo da imagem propriamente dita na forma de metadados etiquetados. A especificação usa os formatos de imagem JPEG, TIFF rev.6.0 e o formato de áudio wave RIFF. O Exif não está suportado nos formatos JPEG 2000, PNG, GIF e BMP.

35 UML A Unified Modeling Language (UML) ou Linguagem de Modelagem Unificada é uma linguagem visual usada para modelar softwares baseados no paradigma da orientação a objetos. É uma linguagem de modelagem de propósito geral que pode ser aplicada a todos os domínios de aplicação. Essa linguagem tornou-se, nos últimos anos, a linguagem-padrão de modelagem adotada internacionalmente pela indústria de Engenharia de Software (GUEDES, 2009). A UML não é, porém, uma linguagem de programação, e sim uma linguagem de modelagem, uma notação, com o objetivo de auxiliar os engenheiros de software a definirem as características do sistema, tais como seus requisitos, comportamento, estrutura lógica, a dinâmica de seus processos e até mesmo suas necessidades físicas em relação ao equipamento sobre o qual o sistema será implementado. Estas definições podem ser feitas por meio da UML antes do software começar a ser propriamente desenvolvido. Além disso, deve-se destacar que a UML também não é um Processo de Software e tampouco está ligada a um exclusivamente, sendo completamente independente, podendo ser utilizada por diversos processos de desenvolvimento diferentes ou mesmo da forma que for considerada mais adequada Casos de Uso O diagrama de casos de uso procura, através de uma linguagem simplificada, possibilitar a compreensão do comportamento externo do sistema (em termos de funcionalidades oferecidas por ele) por qualquer pessoa. Desta forma, ele tenta apresentar o sistema por meio de uma perpectiva do usuário. É, entre todos os diagramas da UML, o mais abstrato e, portanto, o mais flexível e informal (GUEDES, 2009). Este diagrama tem por objetivo apresentar a visão externa geral das funcionalidades que o sistema deverá oferecer aos usuários, sem se preocupar com a questão de como tais funções serão implementadas posteriormente no software. O diagrama de casos de uso é de grande auxílio para a identificação e compreensão dos requisitos do sistema, possibilitando a especificação, visualização e documentação das características, funções e serviços desejáveis pelo usuário do sistema. Ou seja, pode-se dizer que o diagrama de casos de uso, individualmente, descreve requisitos funcionais do sistema (como os descritos na seção deste trabalho). O diagrama de casos de uso do sistema proposto por este trabalho pode ser verificado

36 21 pela Figura 3.3. Figura 3.3: Diagrama de Casos de Uso do sistema em desenvolvimento. Caso de Uso Atores Descrição Pré-requisitos Inserir Objeto Perito Permitir o carregamento de Não há Questionado imagens no sistema Selecionar Perito Possibilitar a seleção do Não há Método de método de avaliação desejada Avaliação Avaliar via Perito Permite avaliar o objeto Selecionar Método de PRNU inserido via comparação da Avaliação e Inserir Ob- PRNU inserida ou calculada jeto Questionado com o objeto

37 22 Confrontar Objeto Questionado x PRNU Perito Permite realizar a comparação entre a PRNU do objeto questionado com as imagens de prova Verificar PRNU Perito Possibilita ao Ator escolher entre Calcular PRNU ou Carregar a PRNU pré-calculada Calcular PRNU Perito Permite o cálculo da PRNU por meio da inserção do diretório de treinamento Carregar PRNU Perito Permite o carregamento de um arquivo contendo informações de PRNU pré-calculada Extrair Dados Perito Possibilita a extração de EXIF dados EXIF do objeto Avaliar Perito Permite a análise em busca Adulterações de adulterações no objeto Avaliar via Perito Permite buscar adulterações Fridrich et al. no objeto por meio do método de Fridrich et al. Avaliar via Kang et al. Perito Permite buscar adulterações no objeto por meio do método de Kang et al. Avaliar via Luo Perito Permite buscar adulterações et al. no objeto por meio do método de Luo et al. Tabela 3.1: Descrição dos Casos de Uso Selecionar Método de Avaliação, Inserir Objeto Questionado e Verificar PRNU Selecionar Método de Avaliação Selecionar Método de Avaliação e Inserir Diretório de Treinamento Selecionar Método de Avaliação Inserir Objeto Questionado Inserir Objeto Questionado Avaliar Adulterações Avaliar Adulterações Avaliar Adulterações

38 Diagrama de Classes É possivelmente o diagrama mais utilizado e um dos mais importantes da UML. Serve para apoiar a maioria dos demais diagramas. Define a estrutura das classes utilizadas pelo sistema, determinando os atributos e métodos que cada classe tem, além de estabelecer como as classes se relacionam e trocam informações entre si. O diagrama de classes do sistema proposto por este trabalho pode ser verificado no Apêndice A Protótipos de Baixa Fidelidade De acordo com Preece, Rogers e Sharp (2002), protótipos de baixa fidelidade são aqueles que não se assemelham ao sistema final. Estes protótipos são úteis para explorar e testar possibilidades durante a fase inicial de desenvolvimento do sistema. São produtos simples, baratos e de fácil produção e alteração facilitando, assim, a exploração e teste de idéias. Estes protótipos nunca são desenvolvidos com o objetivo de serem incorporados ao produto final. Na prototipagem de baixa fidelidade, os principais compromissos pré-estabelecidos são: o sistema não funciona e o protótipo não se assemelha com o sistema final. Exemplos de protótipos de baixa fidelidade do sistema proposto podem ser vistos na Figura 3.4 e Figura 3.5.

39 24 Figura 3.4: Protótipo da janela principal do Sistema de Perícia em Imagens Digitais. Figura 3.5: Protótipo da janela Análise via PRNU - Sistema de Perícia em Imagens Digitais.

40 25 Capítulo 4 Linguagem de Programação, Framework e Bibliotecas 4.1 Introdução Devido ao desempenho da linguagem de programação C++, sua compatibilidade total com a biblioteca de eficiência computacional OpenCV (previamente descrita na seção 1.5.3) e por ser multiplataforma, esta foi a linguagem de programação escolhida para o desenvolvimento da aplicação referente aos estudos desenvolvidos nos projetos Processamento Digital de Sinais Aplicado à Prática Forense: Verificação de Adulteração de Provas Digitais e Assinatura de Sistemas de Aquisição de Imagem I e II. Optou-se pela utilização do framework Qt pela sua robustez e, ao mesmo tempo, portabilidade, razões que fizeram o framework ganhar espaço na comunidade de software livre, como se pode verificar nos aplicativos desenvolvidos pela comunidade KDE Qt em Múltiplas Plataformas Com o Qt, é possível se reutilizar códigos de forma eficiente objetivando múltiplas plataformas, utilizando-se de apenas um código fonte como base. As bibliotecas de classes mo- 1 Comunidade internacional de desenvolvimento de software livre, produtora de aplicativos multiplataforma. Porém, mais conhecida pelo seu ambiente de trabalho em distribuições GNU/Linux.

41 26 dulares em C++ e ferramentas de desenvolvimento permitem que se criem aplicações para um sistema operacional e facilmente sejam criados, depurados e executados em outros sistemas operacionais ou, até mesmo, outras arquiteturas de processadores. O Qt torna o desenvolvimento mais fácil e eficiente, através de variadas ferramentas de desenvolvimento, agilizando a curva de aprendizado e diminuindo o tempo de entrega do produto em até 50% (DIGIA, 2012) para sistemas criados objetivando múltiplas plataformas Qt Designer Qt Designer é a ferramenta Qt para projetar e construir GUI com Qt Widgets 2. Com ele, pode-se compor e personalizar janelas ou caixas de diálogo na forma what-you-see-is-whatyou-get 3 (WYSIWYG), e testá-los utilizando diferentes estilos e resoluções. Uma tela do Qt Designer pode ser visualizada na Figura 4.1 Figura 4.1: Qt Designer pronto para iniciar o desenvolvimento de uma interface de usuário Widgets e formas criadas com o Qt Designer se integram perfeitamente ao código progra- 2 Elemento gráfico de uma GUI que exibe um arranjo de informações mutáveis pelo usuário, como uma janela ou caixa de texto. 3 O que você vê é o que você tem, em tradução livre, indica a capacidade de um software de permitir que um documento, enquanto manipulado na tela, tenha a mesma aparência de sua utilização final.

42 27 mado, usando o mecanismo de sinais e slots do Qt, de modo que se pode facilmente atribuir o comportamento de elementos gráficos. Todas as propriedades definidas no Qt Designer podem ser alteradas dinamicamente dentro do código. Além disso, características como a promoção de widgets e plugins personalizados permitem que sejam usados componentes próprios com o Qt Designer Qt Quick O Qt Quick é a biblioteca padrão para escrita de aplicações QML 4. Enquanto o módulo Qt QML fornece o motor e a infraestrutura da linguagem, o módulo Qt Quick fornece todos os elementos básicos necessários para a criação da GUI com QML. É importante frisar que este módulo não foi utilizado neste trabalho, porém é citado devido a uma boa parte dos aplicativos serem desenvolvidos através da linguagem declarativa QML. Foi estudada a possibilidade da criação do sistema proposto usando QML, isto traria opções de aparência completamente customizáveis e elementos com reações ao toque e transições suavemente animadas e aceleração através da API 5 OpenGL 6, porém não foi continuada devido a maior parte das aplicações para desktop utilizarem Widgets na época do início do desenvolvimento do sistema. A interface de desenvolvimento Qt Quick pode ser vista na Figura 4.2 e um exemplo de aplicação desenvolvida com QML pode ser visualizado na Figura Qt Meta Language ou Qt Modeling Language é uma linguagem declarativa baseada em JavaScript para a criação de GUI, em sua maioria para aplicativos de dispositivos móveis. 5 Application Programming Interface ou, em tradução livre, Interface de Programação de Aplicativos, é uma biblioteca de rotinas que indica como softwares devem interagir uns com os outros. 6 Open Graphics Library ou, em tradução livre, Biblioteca Gráfica Aberta, usada em larga escala para renderização 2D e 3D.

43 28 Figura 4.2: Interface de desenvolvimento Qt Quick Figura 4.3: Exemplo de GUI em QML usando o Qt Quick. Fonte:

44 Biblioteca OpenCV OpenCV é uma biblioteca de código aberto com licença BSD 7 que inclui diversos algoritmos de visão computacional. A OpenCV tem uma estrutura modular, o que significa que o pacote possui diversas bibliotecas tanto estáticas como compartilhadas (OPENCV DEV TEAM, 2013). Dentre as principais bibliotecas, podem ser citadas: core: módulo compacto que define estruturas básicas de dados, incluindo o vetor multidimensional Mat e funções básicas usadas por todos os outros módulos; imgproc: módulo de processamento de imagem que inclui filtros lineares e não lineares de imagens, transformações geométricas de imagem, histogramas e etc; highgui: uma interface simples de se utilizar para captura de vídeos, codificadores e decodificadores de imagens; gpu: algoritmos de aceleração via Unidade de Processamento Gráfico (GPU). 4.4 Biblioteca FFMPEG FFmpeg é um projeto de software que produz bibliotecas e programas para manipulação de dados multimídia. A FFmpeg contém, entre seus principais módulos, a libavcodec, uma biblioteca para codificação e decodificação (codec) de áudio e vídeo. A FFmpeg é publicada sob a licença LGPL ou GPL, dependendo dos módulos habilitados. Licenciamento de produtos, inclusive do Sistema de Perícia em Imagens Digitais será abordado na seção 5.5. O projeto FFmpeg compreende componentes como: libavformat - biblioteca contendo multiplexadores e demultiplexadores para conteineres áudio e is a library containing demuxers and muxers for audio/video container formats; 7 Uma família de licenças de código aberto bastante permissivas, impondo o mínimo de restrições na redistribuição de sistemas. Inicialmente foi utilizada nos sistemas operacionais do tipo Berkeley Software Distribution (um sistema derivado do Unix)

45 30 libavcodec - biblioteca que contém todos os codecs de áudio e vídeo; libavfilter - biblioteca que permite que arquivos de vídeo sejam modificados ou examinados entre o decodificador e o codificador. Faz-se importante mencionar esta biblioteca neste trabalho já que está sendo estudada a viabilidade da aplicação da técnica de PRNU para avaliar vídeos através de seus quadros e o sistema proposto já está sendo testado com o uso destas bibliotecas para buscar incompatibilidades. 4.5 Biblioteca EasyEXIF EasyEXIF é uma pequena e leve biblioteca em C++ que analisa informações básicas de arquivos EXIF. Ela usa apenas a biblioteca std::string e, de resto, é puro C++. Passa-se o conteúdo binário de um arquivo JPEG inteiro e ela analisa alguns dos campos EXIF mais importantes do arquivo, bastando incluir o arquivo.h desta biblioteca. Muitas vezes, só se precisa extrair rapidamente informações básicas de cabeçalhos EXIF de um arquivo JPEG: a hora em que a imagem foi tirada, a exposição, a informação do GPS embutido no arquivo EXIF, qual a marca e modelo da câmera, etc. Muitas bibliotecas EXIF não são muito leves e fáceis de se integrar em sistemas, a EasyEXIF visa resolver esse problema e é liberada sob a licença BSD o que possibilita seu uso em praticamente qualquer lugar e é completamente compatível com a licença adotada para o Sistema de Perícia em Imagens Digitais, melhor explicada na seção 5.5 deste trabalho.

46 31 Capítulo 5 Resultado: SPID - Sistema de Perícias em Imagens Digitais 5.1 Introdução Este capítulo demonstra a fase de programação propriamente dita, a estrutura do sistema, como as bibliotecas externas foram utilizadas no desenvolvimento do sistema proposto, como as classes foram dispostas e devidamente modularizadas. Apresenta, também, as plataformas em que o sistema foi compilado e testado. Pelo fato do sistema estar em constante desenvolvimento e técnicas estarem sendo pesquisadas e desenvolvidas, alterando assim os requisitos do sistema a cada nova técnica agregada, o uso do Modelo Espiral foi o que melhor se adaptou ao modo de criação do sistema proposto. A exemplo disto, temos as técnicas de análise de vídeos que estão em pesquisa visando adicionar mais recursos ao sistema. 5.2 Estrutura do Sistema Modularização do Sistema O Sistema de Perícias em Imagens Digitais (SPID) desenvolvido neste trabalho consiste basicamente de uma interface gráfica inicial de fácil utilização para o carregamento de imagens

47 32 postas à prova, análise simplificada de dados EXIF e de dois módulos integrados para auxílio à prática forense: Módulo de Detecção da Fonte de Imagens via PRNU e Módulo de Detecção de Adulterações via Copy-Move, ambos descritos na seção 5.3, sendo completamente possível adicionar outros módulos seguindo o mesmo padrão através da reutilização das bibliotecas e interfaces de usuário desenvolvidas com os recursos descritos neste trabalho Estereótipo Entity-Control-Boundary De modo a separar as classes do sistema com o objetivo de organização, fácil acoplamento e permitir testes das classes, iniciou-se o desenvolvimento utilizando o estereótipo Entity- Control-Boundary (ECB), que é uma simplificação do padrão Model-View-Control 1. No estereótipo ECB, basicamente, as classes referentes à saída ou visão do usuário devem ser classificadas como Boundary, as classes de controle de dados e funções devem ser classificadas com o estereótipo Control e, por fim, classes que representam dados do sistema devem ser organizados como Entity. Esta fase primária da organização do sistema pode ser visualizada na Figura 5.1. Figura 5.1: Organização das classes do SPID seguindo o padrão Entity-Control-Boundary. 1 Modelo que isola a lógica da aplicação e a interface do usuário, permitindo desenvolver, editar e testar separadamente cada parte.

48 Bibliotecas Externas OpenCV (Análise da imagem) Para carregamento, análise e criação de imagens nos módulos de Análise via PRNU e Análise de Adulteração, utilizou-se a biblioteca OpenCV que pode ser instalada através da central de programas do Ubuntu (para a plataforma GNU/Linux Ubuntu) ou realizando download em sua página oficial 2. No módulo de Análise via PRNU, uma das aplicações da biblioteca OpenCV, em suma, consiste no carregamento das imagens de treinamento em matrizes de dados para a estimação dos valores de energia em cada ponto de cada uma das imagens. A partir disto, calcula-se um padrão único de ruídos que um sensor de captura de imagens imprime na figura resultante, deixando vestígios de sua fonte de captura. A esta matriz, com o padrão de ruídos, dá-se o nome PRNU que é armazenada em um arquivo de extensão XML (extensible Markup Language), juntamente com informações inseridas no arquivo sobre o dispositivo a partir do qual a mesma foi adquirida. Esta matriz é utilizada para o confronto com a imagem posta à prova, afim de reconhecer se o padrão calculado da PRNU é compatível com o padrão da imagem de prova FFmpeg (Análise de vídeo - Funcionalidade em pesquisa) Utilizado em sua maioria nas funções, ainda em estudos e desenvolvimento, de análise de vídeo para captura de quadros de arquivos baseados em MPEG. Esta biblioteca pode ser baixada e instalada a partir de sua página oficial 3 e é, desde já, necessária para o devido funcionamento do SPID, já prevendo os futuros módulos de análise de vídeo EasyEXIF Devido a sua simplicidade e tamanho reduzido, a biblioteca EasyEXIF foi inserida diretamente no programa em forma de pacote de modo que não há necessidade de instalação de pacotes extras para o funcionamento desta funcionalidade do sistema. 2 Disponível em: - Último acesso em 06 agosto de Disponível em: - Último acesso em 06 de agosto de 2013.

49 34 Dados que podem ser extraídos pela biblioteca EasyEXIF: fabricante, modelo e versão do software da câmera; largura, altura, descrição, orientação e licença da imagem; data e hora em que a imagem foi capturada; tempo de exposição, sensibilidade fotográfica (ISO); GPS latitude e longitude, entre outras informações do arquivo questionado. Este recurso utilizado no SPID pode ser visualizado na Figura 5.2. Figura 5.2: Interface gráfica inicial com destaque para a exibição de informações EXIF. 5.3 Funcionamento Geral Ao se executar o programa, obtém-se a tela inicial do SPID, como na Figura 5.3. A partir dela, pode-se carregar a imagem questionada para análise dos dados EXIF ou, diretamente, seguir para o módulo de Detecção da Fonte via PRNU ou para o módulo de Detecção de Adulterações.

50 35 Figura 5.3: Interface gráfica inicial do SPID - GUI simples e facilmente usável SPID - Detecção da Fonte via PRNU Para detecção de fontes de imagens, optou-se pelo uso da PRNU do sensor de aquisição em função do seu potencial para ser adaptado a várias situações de análise forense da imagem (FARID, 2009). A PRNU pode ser considerada impressão digital da câmera fotográfica, presente em todas as imagens por ela capturadas. A PRNU, decorrente do processo de fabricação de fotossensores, representa a diferença na capacidade dos elementos que compõem esses fotossensores em converter luz em sinal elétrico. A partir de imagens obtidas pela câmera suspeita (recomenda-se a utilização de 30 a 50 imagens) e de um modelo simplificado do processo de aquisição de imagem, estima-se a PRNU (Figura 5.4).

51 36 Figura 5.4: Processo de estimação da PRNU a partir de imagens obtidas pela câmera suspeita. Fonte: (ZAMPOLO et al., 2011) Na Figura 5.5, é representado o processo de análise que recebe como entradas: a imagem suspeita e a PRNU estimada na etapa anterior. Da análise, resulta o pico de energia de correlação (PCE, do inglês, peak to correlation energy) que, em suma, verifica se a PRNU foi ou não detectada na imagem suspeita. Caso o valor do PCE esteja acima de um determinado limiar, considera-se que a imagem testada foi capturada pela câmera associada à PRNU em questão (FRIDRICH, 2009). Pequenas alterações no sistema de análise, permitem usar a PRNU em verificação de adulteração de imagens digitais. Figura 5.5: Análise e identificação de câmera: imagem suspeita é processada e comparada com a PRNU estimada. Fonte: (ZAMPOLO et al., 2011) Ao ser acionado, o botão referente ao módulo Detecção da Fonte via PRNU carrega uma janela com opções para Estimar PRNU ou Carregar PRNU que já tenha sido previamente estimada. Tendo uma PRNU e um objeto questionado carregados, faz-se possível o confronto entre

52 37 imagem e PRNU. Tal janela pode ser vista na Figura 5.6. Figura 5.6: SPID - Detecção da Fonte via PRNU. Há também a janela de diálogo em que é selecionado o diretório de treinamento para a estimação da PRNU (Figura 5.7), acessível a partir da janela principal do módulo de Detecção da Fonte via PRNU. Após estimar a PRNU, é possível salvar os dados obtidos em arquivo XML. São inseridos pelo usuário do sistema como: Data de Criação, Autor, Marca da Câmera, etc. Esta tela de diálogo é exibida na Figura 5.8.

53 38 Figura 5.7: SPID - Detecção da Fonte via PRNU - Estimar PRNU. Figura 5.8: SPID - Detecção da Fonte via PRNU - Salvar PRNU SPID - Detecção de Adulterações Ao se acionar o botão referente ao módulo Detecção de Adulterações, carrega-se a janela para análise de adulterações a partir de técnicas copy-move desenvolvidas por Masuda (MASUDA, 2012). O programa já vem com parâmetros padrões pré-configurados, porém há possibilidade de serem ajustados de acordo com a necessidade do perito.

54 39 O módulo de Detecção de Adulterações do SPID pode ser visto, na prática, na Figura 5.9, onde foi executado o método Fridrich et al. visando detectar possíveis adulterações em uma imagem de prova adulterada e, em seguida, na Figura 5.10, testou-se o mesmo método em uma imagem de prova autêntica. Figura 5.9: SPID - Detecção de Adulterações. Imagem adulterada. 5.4 Documentação Uma etapa importante de todo projeto de criação de software é a documentação, o que possibilita que o código possa ser devidamente continuado e reutilizado Doxygen Utilizou-se o gerador de documentação multiplataforma Doxygen para realizar a extração da documentação do SPID através dos comentários de seu código-fonte. Como a documentação é escrita dentro do próprio código, faz-se relativamente simples mantê-la atualizada. O gerador Doxygen pode cruzar referências entre a documentação e o código-fonte, assim facilitando ao leitor na hora de se referir ao código.

55 40 Figura 5.10: SPID - Detecção de Adulterações. Imagem autêntica. Quanto melhor comentado for o código-fonte, mais rica será a documentação gerada pelo Doxygen acerca do programa. A documentação do SPID foi gerada em html de modo a facilitar sua disponibilização online. 5.5 Licença SPID Tomou-se por base, para a criação do SPID, a GNU Lesser General Public License, versão 3.0 (LGPL-3.0) (STALLMAN; MOGLEN, 2007), uma licença de software livre, publicada pela Free Software Foundation (FSF). A LGPL permite que desenvolvedores e empresas utilizem e integrem softwares sob a LGPL em seu próprio software (mesmo proprietário), sem que seja necessário liberar o códigofonte de seu próprio software. Apenas as partes LGPL do sistema pode ser modificada por usuários finais (via disponibilidade do código fonte). Assim, no caso do software proprietário, as partes sob a LGPL geralmente são usadas na forma de biblioteca compartilhada (por exemplo, DLL), para que haja uma distinção entre as partes proprietárias e as partes sob a LGPL.

56 41 Um exemplo de declaração desta licença pode ser visto na Figura Figura 5.11: Declaração de licença LGPL na classe da janela principal do SPID 5.6 Plataformas Compiladas e Testadas Linux Ubuntu bits GNU/Linux Ubuntu bits - Kernel generic Qt OpenCV FFmpeg Microsoft Windows 7 Professional - 64 bits Microsoft Windows 7 Professional - 64 bits Qt OpenCV Zeranoe FFmpeg Build Version: git-f118b41 ( )

57 42 Capítulo 6 Considerações Finais Este trabalho abordou o desenvolvimento de um sistema que visa auxiliar à prática forense por meio de técnicas aplicadas à imagens digitais que buscam a detecção da fonte das imagens, bem como adulterações. Seu intuito é ajudar a identificar indícios de fraude de pessoas que se aproveitam da tecnologia para cometer delitos no âmbito das imagens digitais. Para o desenvolvimento da ferramenta SPID, realizou-se o acompanhamento dos estudos de técnicas desenvolvidas pelos projetos Processamento Digital de Sinais Aplicado à Prática Forense: Verificação de Adulteração de Provas Digitais e Assinatura de Sistemas de Aquisição de Imagem I e II, bem como foi realizado o estudo de Engenharia de Software necessário à documentação e aos requisitos para o desenvolvimento do sistema. Devido ao fato do sistema estar em desenvolvimento e suas técnicas em fase de aperfeiçoamento, optou-se por adotar conceitos de modelagem seguindo certos padrões de projeto que culminem em boas práticas de criação, principalmente pelo fato dos requisitos serem dinâmicos. Utilizou-se do Modelo Espiral, visto que foi o que melhor se adaptou ao sistema em desenvolvimento. Com cada novo requisito, faz-se importante realizar uma nova iteração no projeto e suas devidas análises de riscos agregados. Definiu-se a linguagem de programação C++, o framework Qt e outras bibliotecas de análise de imagens para o desenvolvimento do sistema devido à sua excelente integração e desempenho. Além da possibilidade de compilação para múltiplas plataformas. A principal dificuldade no desenvolvimento do sistema foi encontrar material recente so-

58 43 bre a utilização do framework Qt, além da documentação produzida pelo fabricante. Devido ao pouco conhecimento sobre o framework, o desenvolvimento acabou levando mais tempo do que esperado, visto a necessidade de pesquisa mais extensa. Também deve ser citada a dificuldade de integrar as ferramentas já desenvolvidas às que estão em desenvolvimento, buscando padronizá-las. 6.1 Trabalhos Futuros Para que o sistema possa ser usado em perícias, faz-se necessária uma ferramenta de impressão de resultados das análises obtidas pelos módulos do SPID. Recomenda-se pesquisa e criação a partir das bibliotecas QPrinter do framework Qt. Idéias de modelos de laudos técnicos e procedimentos podem ser encontradas no livro Desvendando a Computação Forense (ELEUTERIO; MACHADO, 2011b). Devido ao alto custo de processamento exigido para as análises realizadas pelos módulos do SPID, faz-se interessante a realização de testes de compilação usando poder de processamento de placas gráficas (GPU) através de bibliotecas NVIDIA Compute Unified Device Architecture (CUDA). Pelo sistema estar em constante fase de testes e criação, torna-se aparentemente simples os testes realizados pela comunicação direta entre as classes do estereótipo boundary e entity. Porém, a longo prazo e de acordo com o aumento do sistema, a melhor separação destas classes por meio do uso de classes do tipo control se fará importante para a devida manutenção e expansão do SPID. É importante realizar mais estudos acerca do comportamento da PRNU após realizadas modificações de imagens digitais, seja na resolução, mudança de formato ou corte. Assim, possibilitando o aprimorando das técnicas utilizadas no SPID.

59 44 Referências Bibliográficas BOEHM, B. W. A spiral model of software development and enhancement. IEEE Computer, p , Maio BULLE, F. Artigo sobre Computação Forense Último acesso em 23/01/2013. Disponível em: gold/cursos/2008/movel/ gradsemcorrecao/felipebullec.pdf. COSTA, D. Perícia forense aplicada à informática. [S.l.]: IBPI, CROCE, D. Manual de Medicina Legal. [S.l.]: Saraiva, DIGIA. QtDoc 5.0: Qt 5.0. Qt Project, Disponível em: doc/qt-5.0/qtdoc/index.html. ELEUTERIO, P. M. da S.; MACHADO, M. P. Computação forense e a perícia criminal - a informática a serviço da justiça. SBC HORIZONTES, v. 4, n. 1, p , Abril 2011a. ELEUTERIO, P. M. da S.; MACHADO, M. P. Desvendando a Computação Forense. [S.l.]: Editora Novatec, 2011b. FARID, H. Image forery detection: A survey. IEEE Signal Processing Magazine, v. 26, n. 2, p , FRIDRICH, J. Digital image forensics: Introducing methods that estimate and detect sensor fingerprint. IEEE Signal Processing Magazine, v. 26, n. 2, p , GUEDES, G. T. UML2: Uma Abordagem Prática. [S.l.]: Novatec Editora, MASUDA, H. K. T. Desenvolvimento de uma Aplicação para Detecção de Adulteração de Imagens Digitais por Clonagem Trabalho de Conclusão de Curso (Graduação em

60 45 Engenharia da Computação). Universidade Federal do Pará. Orientador: Ronaldo de Freitas Zampolo. MORIMOTO, C. E. Dicionário Técnico Hardware.com.br Último acesso em 20/08/2013. Disponível em: OPENCV DEV TEAM. OpenCV documentation. [S.l.], Disponível em: PREECE, J.; ROGERS, Y.; SHARP, H. Interaction design: Beyond human-computer interaction. NY: Wiley, PRESSMAN, R. S. Engenharia de Software. 6 a. ed. [S.l.]: Editora McGraw-Hill, 2006a. PRESSMAN, R. S. Engenharia de Software: Uma Abordagem Profissional. 7 a. ed. [S.l.]: Editora McGraw-Hill, 2006b. SOMMERVILLE, I. Software Engineering. 9 a. ed. [S.l.]: Editora Pearson, STALLMAN, R.; MOGLEN, E. GNU LESSER GENERAL PUBLIC LICENSE. Free Software Foundation, Inc, Último acesso em 23/01/2013. Disponível em: ZAMPOLO, R. F. et al. Projeto de extensão universitária em processamento de imagem na área forense: relato de uma experiência em andamento. In:. [S.l.: s.n.], 2011.

61 Apêndice A Diagrama de Classes - SPID 46

62 47

63 48

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Tópicos em Engenharia de Software (Optativa III) AULA 2 Prof. Andrêza Leite andreza.lba@gmail.com (81 )9801-6619 Engenharia de Software Objetivo da aula Depois desta aula você terá uma revisão sobre o

Leia mais

Introdução à Computação

Introdução à Computação Aspectos Importantes - Desenvolvimento de Software Motivação A economia de todos países dependem do uso de software. Cada vez mais, o controle dos processos tem sido feito por software. Atualmente, os

Leia mais

ENGENHARIA DE SOFTWARE I

ENGENHARIA DE SOFTWARE I ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_ Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com REVISÃO ENGENHARIA DO SOFTWARE Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Software Sequencia de Instruções a serem seguidas ou executadas Dados e rotinas desenvolvidos por computadores Programas

Leia mais

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática

Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Pesquisa com Professores de Escolas e com Alunos da Graduação em Matemática Rene Baltazar Introdução Serão abordados, neste trabalho, significados e características de Professor Pesquisador e as conseqüências,

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Engenharia de Software II

Engenharia de Software II Engenharia de Software II Aula 3 http://www.ic.uff.br/~bianca/engsoft2/ Aula 3-29/04/2006 1 Monitoria Marina Albuquerque E-mail: monitoriaes2@yahoo.com.br Horário de Atendimento: Terça e quinta de 09:00

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA BACHARELADO EM SISTEMAS DE INFORMAÇÃO RAPID APPLICATION DEVELOPMENT Disciplina: Modelagem a Programação Orientada a Objetos

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2

Metodologia e Gerenciamento do Projeto na Fábrica de Software v.2 .:: Universidade Estadual de Maringá Bacharelado em Informática Eng. de Software III :. Sistema de Gerenciamento de Eventos - Equipe 09 EPSI Event Programming System Interface Metodologia e Gerenciamento

Leia mais

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3 A LEGO Education tem o prazer de trazer até você a edição para tablet do Software LEGO MINDSTORMS Education EV3 - um jeito divertido

Leia mais

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android

Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android Perícia forense computacional aplicada a dispositivos de armazenamento e smartphones android Raphael Pinheiro Afonso 1 ; Elvio Gilberto da Silva 1 ; Patrick Pedreira Silva 1 ; Henrique Pachioni Martins

Leia mais

Carta para a Preservação do Patrimônio Arquivístico Digital Preservar para garantir o acesso

Carta para a Preservação do Patrimônio Arquivístico Digital Preservar para garantir o acesso Carta para a Preservação do Patrimônio Arquivístico Digital Preservar para garantir o acesso Considerando que a informação arquivística, produzida, recebida, utilizada e conservada em sistemas informatizados,

Leia mais

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA INTRODUÇÃO O projeto de um banco de dados é realizado sob um processo sistemático denominado metodologia de projeto. O processo do

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Planejando o aplicativo

Planejando o aplicativo Um aplicativo do Visual FoxPro geralmente inclui um ou mais bancos de dados, um programa principal que configura o ambiente de sistema do aplicativo, além de uma interface com os usuários composta por

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Fábrica de Software 29/04/2015

Fábrica de Software 29/04/2015 Fábrica de Software 29/04/2015 Crise do Software Fábrica de Software Analogias costumam ser usadas para tentar entender melhor algo ou alguma coisa. A idéia é simples: compara-se o conceito que não se

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software O que é a engenharia de software É um conjunto integrado de métodos e ferramentas utilizadas para especificar, projetar, implementar e manter um sistema. Método É uma prescrição

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Profª Dra. Ana Paula Gonçalves Serra Engenharia de O Processo Uma Visão Genérica Capítulo 2 (até item 2.2. inclusive) Engenharia de - Roger Pressman 6ª edição McGrawHill Capítulo

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana

Leia mais

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída.

Esclarecimento: Não, a operação de matching ocorre no lado cliente da solução, de forma distribuída. 1 Dúvida: - Em relação ao item 1.2 da Seção 2 - Requisitos funcionais, entendemos que a solução proposta poderá funcionar em uma arquitetura Web e que na parte cliente estará apenas o componente de captura

Leia mais

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente

ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente Conceito ROTEIRO PARA TREINAMENTO DO SAGRES DIÁRIO Guia do Docente O Sagres Diário é uma ferramenta que disponibiliza rotinas que facilitam a comunicação entre a comunidade Docente e Discente de uma instituição,

Leia mais

Arquitetura de Informação

Arquitetura de Informação Arquitetura de Informação Ferramentas para Web Design Prof. Ricardo Ferramentas para Web Design 1 Arquitetura de Informação? Ferramentas para Web Design 2 Arquitetura de Informação (AI): É a arte de expressar

Leia mais

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3

DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 DESENVOLVIMENTO WEB DENTRO DOS PARADIGMAS DO HTML5 E CSS3 Eduardo Laguna Rubai, Tiago Piperno Bonetti Universidade Paranaense (Unipar) Paranavaí PR- Brasil eduardorubay@gmail.com, bonetti@unipar.br Resumo.

Leia mais

Pós Graduação Engenharia de Software

Pós Graduação Engenharia de Software Pós Graduação Engenharia de Software Ana Candida Natali COPPE/UFRJ Programa de Engenharia de Sistemas e Computação FAPEC / FAT Estrutura do Módulo Parte 1 QUALIDADE DE SOFTWARE PROCESSO Introdução: desenvolvimento

Leia mais

Concepção e Elaboração

Concepção e Elaboração UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Análise e Projeto Orientado a Objetos Concepção e Elaboração Estudo

Leia mais

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A4 DATA 22/10/2009 ENGENHARIA DE USABILIDADE 2009/2 GABARITO COMENTADO QUESTÃO 1: Quando nos referimos à qualidade da interação

Leia mais

Automação de Bancada Pneumática

Automação de Bancada Pneumática Instituto Federal Sul-rio-grandense Campus Pelotas - Curso de Engenharia Elétrica Automação de Bancada Pneumática Disciplina: Projeto Integrador III Professor: Renato Allemand Equipe: Vinicius Obadowski,

Leia mais

Engenharia da Web. Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail.

Engenharia da Web. Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail. Engenharia da Web Professor MSc Wylliams Barbosa Santos Disciplina: Projeto de Sistemas Web wylliams.wordpress.com wylliamss@gmail.com Agenda Engenharia da Web Atributos de Sistemas e Aplicações Baseados

Leia mais

Organização dos Estados Ibero-americanos. Para a Educação, a Ciência e a Cultura

Organização dos Estados Ibero-americanos. Para a Educação, a Ciência e a Cultura Organização dos Estados Ibero-americanos Para a Educação, a Ciência e a Cultura TERMO DE REFERÊNCIA PARA CONTRATAÇÃO DE PESSOA FÍSICA CONSULTOR POR PRODUTO 1. Projeto: OEI/BRA/09/004 - Aprimoramento da

Leia mais

Extração de Requisitos

Extração de Requisitos Extração de Requisitos Extração de requisitos é o processo de transformação das idéias que estão na mente dos usuários (a entrada) em um documento formal (saída). Pode se entender também como o processo

Leia mais

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE Prof. Msc. Hélio Esperidião O QUE É UM ALGORITMO? É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada

Leia mais

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software

Introdução à Engenharia de. Software. Introdução à Engenharia de. Software. O que é a Engenharia de Software? Software Introdução à Engenharia de Gidevaldo Novais (gidevaldo.vic@ftc.br) Introdução à Engenharia de Objetivo Depois desta aula você terá uma noção geral do que é a engenharia de software e dos seus objetivos

Leia mais

CHECK - LIST - ISO 9001:2000

CHECK - LIST - ISO 9001:2000 REQUISITOS ISO 9001: 2000 SIM NÃO 1.2 APLICAÇÃO A organização identificou as exclusões de itens da norma no seu manual da qualidade? As exclusões são relacionadas somente aos requisitos da sessão 7 da

Leia mais

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC

ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC ESTUDO COMPARATIVO ENTRE AS PLATAFORMAS ARDUINO E PIC Tiago Menezes Xavier de Souza¹, Igor dos Passos Granado¹, Wyllian Fressatti¹ ¹Universidade Paranaense (UNIPAR) Paranavaí- PR- Brasil tiago_x666@hotmail.com,

Leia mais

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD)

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD) ******* O que é Internet? Apesar de muitas vezes ser definida como a "grande rede mundial de computadores, na verdade compreende o conjunto de diversas redes de computadores que se comunicam e que permitem

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

PROJETO DE FÁBRICA DE SOFTWARE

PROJETO DE FÁBRICA DE SOFTWARE FACULDADE SETE DE SETEMBRO FASETE Departamento de Sistemas de Informação PROJETO DE FÁBRICA DE SOFTWARE Denise Xavier Fortes Paulo Afonso BA Agosto/2015 Sumário 1. INTRODUÇÃO... 3 2. PERFIS FUNCIONAIS...

Leia mais

AVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES

AVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES AVALIAÇÃO DE INTERFACES UTILIZANDO O MÉTODO DE AVALIAÇÃO HEURÍSTICA E SUA IMPORTÂNCIA PARA AUDITORIA DE SISTEMAS DE INFORMAÇÕES Rafael Milani do Nascimento, Claudete Werner Universidade Paranaense (Unipar)

Leia mais

Processos de Desenvolvimento de Software

Processos de Desenvolvimento de Software Processos de Desenvolvimento de Software Gerenciamento de Projetos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

GARANTIA DA QUALIDADE DE SOFTWARE

GARANTIA DA QUALIDADE DE SOFTWARE GARANTIA DA QUALIDADE DE SOFTWARE Fonte: http://www.testexpert.com.br/?q=node/669 1 GARANTIA DA QUALIDADE DE SOFTWARE Segundo a NBR ISO 9000:2005, qualidade é o grau no qual um conjunto de características

Leia mais

Sistemas de Informação I

Sistemas de Informação I + Sistemas de Informação I Dimensões de análise dos SI Ricardo de Sousa Britto rbritto@ufpi.edu.br + Introdução n Os sistemas de informação são combinações das formas de trabalho, informações, pessoas

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA

MODELAGEM DE CASOS DE USO PARA UM SISTEMA DE CLÍNICA VETERINÁRIA UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO ADAM DREYTON FERREIRA DOS SANTOS CARLOS ROGÉRIO CAMPOS ANSELMO FELIPE BATISTA CABRAL FRANK GOMES DE AZEVEDO NAGIB

Leia mais

Introdução ao GED Simone de Abreu

Introdução ao GED Simone de Abreu Introdução ao GED Simone de Abreu GED O que é isso? O conhecimento teve, ao longo da história, diferentes significados e funções. No tempo das cavernas nossos antepassados transmitiam aos seus descendentes

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Dadas a base e a altura de um triangulo, determinar sua área.

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação ana.santos@qi.edu.br Conceitos Preliminares

Leia mais

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1

Capítulo 2. Processos de Software. 2011 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 2 Processos de Software slide 1 Tópicos apresentados Modelos de processo de software. Atividades de processo. Lidando com mudanças. Rational Unified Process (RUP). Um exemplo de um processo de

Leia mais

PLANOS DE CONTINGÊNCIAS

PLANOS DE CONTINGÊNCIAS PLANOS DE CONTINGÊNCIAS ARAÚJO GOMES Capitão SC PMSC ARAÚJO GOMES defesacivilgomes@yahoo.com.br PLANO DE CONTINGÊNCIA O planejamento para emergências é complexo por suas características intrínsecas. Como

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Interface Homem-Computador

Interface Homem-Computador Faculdade de Ciências e Tecnologia do Maranhão Interface Homem-Computador Aula: Engenharia Cognitiva e Semiótica Professor: M.Sc. Flávio Barros flathbarros@gmail.com Conteúdo Engenharia Cognitiva Fundamentos

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Softblue Logic IDE Guia de Instalação www.softblue.com.br Sumário 1 O Ensino da Lógica de Programação... 1 2 A Ferramenta... 1 3 Funcionalidades... 2 4 Instalação... 3 4.1 Windows...

Leia mais

Construtor de sites SoftPixel GUIA RÁPIDO - 1 -

Construtor de sites SoftPixel GUIA RÁPIDO - 1 - GUIA RÁPIDO - 1 - Sumário Introdução...3 Por que utilizar o Construtor de Sites?...3 Vantagens do Construtor de Sites...3 Conceitos básicos...3 Configuração básica do site...5 Definindo o layout/template

Leia mais

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS Elicitação Ciclo de Vida Clássico ou Convencional O Modelo Cascata Análise Ana Paula Terra Bacelo Blois Implementação Material Adaptado do Prof. Marcelo Yamaguti

Leia mais

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr Metodologia de Desenvolvimento de Software Prof. M.Sc. Sílvio Bacalá Jr Objetivos Discutir aspectos de Engenharia de Software Aplicar um método de desenvolvimento para especificação e projeto de software

Leia mais

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. Visão Geral do Sistema Prof. Raul Sidnei Wazlawick UFSC-CTC-INE 2010 Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010. A fase de concepção do UP consiste

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

Processos Técnicos - Aulas 4 e 5

Processos Técnicos - Aulas 4 e 5 Processos Técnicos - Aulas 4 e 5 Trabalho / PEM Tema: Frameworks Públicos Grupo: equipe do TCC Entrega: versão digital, 1ª semana de Abril (de 31/03 a 04/04), no e-mail do professor (rodrigues.yuri@yahoo.com.br)

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web

Sumário. Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web Sumário Apresentação O que é o Centro de Gerenciamento de Serviços (CGS) NTI? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial do Portal WEB Criando um

Leia mais

NOKIA. Em destaque LEE FEINBERG

NOKIA. Em destaque LEE FEINBERG Em destaque NOKIA LEE FEINBERG A Nokia é líder mundial no fornecimento de telefones celulares, redes de telecomunicações e serviços relacionados para clientes. Como Gerente Sênior de Planejamento de Decisões

Leia mais

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques Modelo Cascata Alunos: Bruno Nocera Zanette Pedro Taques Principais Características Gerenciamento Simples das etapas Também conhecido como "Ciclo de Vida Clássico", sugere uma abordagem sistemática e sequencial

Leia mais

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br

UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br UNEMAT SISTEMA DE INFORMAÇÃO (SI) Professora: Priscila Pelegrini priscila_pelegrini@unemat-net.br SINOP MT 2015-1 COMO SÃO DESENVOLVIDOS OS SISTEMAS DE INFORMAÇÃO? São desenvolvimento como uma estrutura

Leia mais

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr.

Gestão do Conhecimento A Chave para o Sucesso Empresarial. José Renato Sátiro Santiago Jr. A Chave para o Sucesso Empresarial José Renato Sátiro Santiago Jr. Capítulo 1 O Novo Cenário Corporativo O cenário organizacional, sem dúvida alguma, sofreu muitas alterações nos últimos anos. Estas mudanças

Leia mais

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como: Plano de Teste (resumo do documento) I Introdução Identificador do Plano de Teste Esse campo deve especificar um identificador único para reconhecimento do Plano de Teste. Pode ser inclusive um código

Leia mais

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no 1.1 RATIONAL UNIFIED PROCESS (RUP) O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no processo que atende pelo nome de Processo Unificado (ou UP do inglês Unified

Leia mais

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual Algoritmos: Lógica para desenvolvimento de programação de computadores Autor: José Augusto Manzano Capítulo 1 Abordagem Contextual 1.1. Definições Básicas Raciocínio lógico depende de vários fatores para

Leia mais

3 Qualidade de Software

3 Qualidade de Software 3 Qualidade de Software Este capítulo tem como objetivo esclarecer conceitos relacionados à qualidade de software; conceitos estes muito importantes para o entendimento do presente trabalho, cujo objetivo

Leia mais

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Modelos de Sistema. 2007 by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1. Modelos de Sistema Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1 Objetivos Explicar por que o contexto de um sistema deve ser modelado como parte do processo de RE Descrever

Leia mais

EMENTAS DAS DISCIPLINAS

EMENTAS DAS DISCIPLINAS EMENTAS DAS DISCIPLINAS CURSO CST ANÁLISE E DESENVOLVIMENTO DE SISTEMAS INTRODUÇÃO À COMPUTAÇÃO 68 A disciplina estuda a área da informática como um todo e os conceitos fundamentais, abrangendo desde a

Leia mais

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado

Leia mais

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE

CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE CENTRAL DE SERVIÇOS APOIADA EM SOFTWARE LIVRE Juliano Flores Prof. Wagner Walter Lehmann Centro Universitário Leonardo da Vinci - UNIASSELVI Gestão de Tecnologia da Informação (GTI0034) Prática do Módulo

Leia mais

Microsoft Office PowerPoint 2007

Microsoft Office PowerPoint 2007 INTRODUÇÃO AO MICROSOFT POWERPOINT 2007 O Microsoft Office PowerPoint 2007 é um programa destinado à criação de apresentação através de Slides. A apresentação é um conjunto de Sides que são exibidos em

Leia mais

Desenvolvimento de Interfaces Prototipação

Desenvolvimento de Interfaces Prototipação Autarquia Educacional do Vale do São Francisco AEVSF Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Centro de Engenharia e Ciências Tecnológicas CECT Curso de Ciência da Computação Desenvolvimento

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Sistemas Operacionais Prof. Marcelo Sabaris Carballo Pinto Gerenciamento de Dispositivos Gerenciamento de Dispositivos de E/S Introdução Gerenciador de Dispositivos Todos os dispositivos

Leia mais

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br

Gerenciamento de projetos. cynaracarvalho@yahoo.com.br Gerenciamento de projetos cynaracarvalho@yahoo.com.br Projeto 3URMHWR é um empreendimento não repetitivo, caracterizado por uma seqüência clara e lógica de eventos, com início, meio e fim, que se destina

Leia mais

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR

)HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR 6LPXODomR GH6LVWHPDV )HUUDPHQWDV &RPSXWDFLRQDLV SDUD 6LPXODomR #5,6. Simulador voltado para análise de risco financeiro 3RQWRV IRUWHV Fácil de usar. Funciona integrado a ferramentas já bastante conhecidas,

Leia mais

COMO FAZER A TRANSIÇÃO

COMO FAZER A TRANSIÇÃO ISO 9001:2015 COMO FAZER A TRANSIÇÃO Um guia para empresas certificadas Antes de começar A ISO 9001 mudou! A versão brasileira da norma foi publicada no dia 30/09/2015 e a partir desse dia, as empresas

Leia mais

Metodologia de Desenvolvimento de Sistemas

Metodologia de Desenvolvimento de Sistemas Metodologia de Desenvolvimento de Sistemas Aula 1 Ementa Fases do Ciclo de Vida do Desenvolvimento de Software, apresentando como os métodos, ferramentas e procedimentos da engenharia de software, podem

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Manual do usuário - Service Desk SDM - COPASA. Service Desk

Manual do usuário - Service Desk SDM - COPASA. Service Desk Manual do usuário - Service Desk SDM - COPASA Service Desk Sumário Apresentação O que é o Service Desk? Terminologia Status do seu chamado Utilização do Portal Web Fazendo Login no Sistema Tela inicial

Leia mais

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha. www.lrocha.com

ANIMAÇÕES WEB AULA 2. conhecendo a interface do Adobe Flash. professor Luciano Roberto Rocha. www.lrocha.com ANIMAÇÕES WEB AULA 2 conhecendo a interface do Adobe Flash professor Luciano Roberto Rocha www.lrocha.com O layout do programa A barra de ferramentas (tools) Contém as ferramentas necessárias para desenhar,

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Introdução a listas - Windows SharePoint Services - Microsoft Office Online

Introdução a listas - Windows SharePoint Services - Microsoft Office Online Page 1 of 5 Windows SharePoint Services Introdução a listas Ocultar tudo Uma lista é um conjunto de informações que você compartilha com membros da equipe. Por exemplo, você pode criar uma folha de inscrição

Leia mais