Pesquisar no blog

terça-feira, 31 de agosto de 2010

CMMI

O CMMI (Capability Maturity Model Integration) é um modelo de referência que contém práticas necessárias à maturidade em disciplinas específicas de engenharia de software, o CMMI é uma evolução do CMM e procura estabelecer um modelo único para o processo de melhoria corporativo, integrando diferentes modelos e disciplinas.
A sua metodologia foi criada pela SEI (Software Engineering Institute) para ser um guia destinado a melhorar os processos organizacionais e a habilidade desses em gerenciar o desenvolvimento, a aquisição e a manutenção de produtos e serviços. O CMMI organiza as práticas, que já são consideradas efetivas, em uma estrutura que visa auxiliar a organização a estabelecer prioridades para melhoria e também fornece um guia para a implementação dessas melhorias.
No Brasil, existe um modelo compatível com o CMMI, o MPS/BR (Melhoria de Processos do Software Brasileiro), que tem como uma das principais vantagens é o seu custo reduzido de certificação em relação as outras normas, sendo ideal para micro, pequenas e médias empresas. Um dos objetivos do projeto é replicar esse modelo na América Latina. Para isso, conta com o apoio do  Ministério da Ciência e Tecnologia, da FINEP e do Banco Interamericano de Desenvolvimento.
A versão atual do CMMI (versão 1.2) apresenta três modelos:
1.      CMMI for Development (CMMI-DEV) ago/2006: Dirige-se ao processo de desenvolvimento de produtos e serviços.
2.      CMMI for Acquisition (CMMI-ACQ) nov/2007: Dirige-se aos processos de aquisição e terceirização de bens e serviços.
3.      CMMI for Services (CMMI-SVC) fev/2009: Dirige-se aos processos de empresas prestadoras de serviços.

Representações

O CMMI possui duas representações: "contínua" ou "por estágios". Estas representações permitem à organização utilizar diferentes caminhos para a melhoria de acordo com seu interesse.

Representação Contínua

Possibilita à organização utilizar a ordem de melhoria que melhor atende os objetivos de negócio da empresa. É caracterizado por Níveis de Capacidade:
·         Nível 0: Incompleto (Ad-hoc)
·         Nível 1: Executado
·         Nível 2: Gerenciado
·         Nível 3: Definido
·         Nível 4: Quantitativamente gerenciado
·         Nível 5: Em otimização

Representação por Estágios

Disponibiliza uma sequência pré-determinada para melhoria baseada em estágios que não deve ser desconsiderada, pois cada estágio serve de base para o próximo. É caracterizado por Níveis de Maturidade:
·         Nível 1: Inicial (Ad-hoc) - falta de planejamento e de controle dos processos. Foco nas atividades corretivas.
·         Nível 2: Gerenciado – estabelecimentos dos processos básicos para planejar e acompanhar custos, prazos e funcionalidades. Compromissos são firmados e gerenciados. O sucesso depende basicamente do gerenciamento do projeto.
·         Nível 3: Definido – documentação e padronização das atividades de gerenciamento básico e de Engenharia de Software. Possui processos gerencias e técnicos bem definidos, possibilidade de avaliação do processo.
·         Nível 4: Quantitativamente gerenciado - Métricas detalhadas do processo de software e da qualidade do produto são coletadas. Tanto o processo como o produto são  quantitativamente compreendidos, avaliados e controlados. Relatórios estatísticos são gerados. Tipicamente, encontra-se estabelecido e em uso rotineiro um programa de medições, a qualidade é planejada por um grupo dedicado, sendo rotineiramente avaliada e aprimorada
·         Nível 5: Em otimização - A melhoria contínua do processo é estabelecida por meio de sua avaliação quantitativa e da implantação planejada e controlada de tecnologias e ideias inovadoras. O alto nível de qualidade e de satisfação dos clientes é alcançado rotineiramente, com grande foco na melhoria contínua.

Áreas de Processo

O modelo CMMI atual contém 22 áreas de processo. Essas áreas servem para traçar o caminho que a empresa irá trilhar para atingir o objetivo. Em sua representação por estágios, as áreas são divididas da seguinte forma:
·         Nível 1: Inicial (Ad-hoc)
·         Não possui áreas de processo.

·         Nível 2: Gerenciado
·         Gerenciamento de Requisitos - REQM
·         Planejamento de Projeto - PP
·         Acompanhamento e Controle de Projeto - PMC
·         Gerenciamento de Acordo com Fornecedor - SAM
·         Medição e Análise - MA
·         Garantia da Qualidade de Processo e Produto - PPQA
·         Gerência de Configuração – CM

·         Nível 3: Definido
·         Desenvolvimento de Requisitos - RD
·         Solução Técnica - TS
·         Integração de Produto - PI
·         Verificação - VER
·         Validação - VAL
·         Foco de Processo Organizacional - OPF
·         Definição de Processo Organizacional - OPD
·         Treinamento Organizacional - OT
·         Gerenciamento Integrado de Projeto - IPM
·         Gerenciamento de Riscos - RSKM
·         Análise de Decisão e Resolução – DAR

·         Nível 4: Quantitativamente gerenciado
·         Desempenho de Processo Organizacional - OPP
·         Gerenciamento Quantitativo de Projeto - QPM

·         Nível 5: Em otimização
·         Inovação Organizacional e Implantação - OID
·         Análise Causal e Resolução - CAR

Cada uma dessas áreas são definidos dois conjuntos de metas: as específicas e as genéricas. A essas metas, a definição do modelo recomenda práticas genéricas divididas em um conjunto de características comuns que por sua vez se divide em quatro categorias. São elas:
1.      Comprometimento com a execução – Agrupa práticas relacionadas à definição de políticas e responsabilidades, descrevendo ações para assegurar que o processo se estabeleça e seja duradouro;
2.      Habilitação para execução – Agrupa práticas contendo pré-condições para o projeto, de forma a permitir a implementação adequada do processo;
3.      Direcionamento a implementação – Agrupa práticas relacionadas ao gerenciamento do desempenho do processo;
4.      Verificação da implementação – Agrupa práticas para revisão junto à alta gerência e avaliação objetiva da conformidade com processos, procedimentos e padrões.

As metas específicas, na maioria das vezes, estão focadas no negócio da empresa e buscam alinhar a metodologia CMMI às necessidades próprias; por sua vez as metas comuns focam em aspectos inerentes a qualquer empresa e devem ser considerados para a correta implementação da metodologia,  de forma a garantir a maximização dos resultados.

quinta-feira, 26 de agosto de 2010

PMBOK

Project Management Body of Knowledge


          O PMBOK (Project Management Body of Knowledge) é um conjunto de práticas de gerência de projetos publicado pelo PMI (Project Management Institute) constituindo sua base de conhecimento em gerência de projetos. Estas práticas são apresentadas na forma de um guia, chamado Guia PMBOK, com primeira publicação em 1987 numa tentativa de documentar e padronizar práticas e informações aceitas como gerenciamento de projeto. Sua 1ª versão oficial foi lançada em 1996 , e sua versão atual (PMBOK 4) teve lançamento em 2008.
          Na versão atual, foram excluídos 2 processos, 2 foram adicionados e 6 foram reconfigurados em 4 processos na Área de conhecimento em gerenciamento de aquisições do projeto.
          O Guia fornece e promove um vocabulário comum para se discutir, escrever e aplicar o gerenciamento de projetos possibilitando o intercâmbio eficiente de informações entre os profissionais de gerência de projetos. Ele é baseado em processos e subprocessos para descrever de forma organizada o trabalho a ser realizado durante o projeto. Essa abordagem se assemelha à empregada por outras normas como a ISO 9000 e o CMMI. Os processos descritos se relacionam e interagem durante a condução do trabalho. Na versão 2004 do guia, é citado 44 processos agrupados em cinco grupos e nove áreas de conhecimento.

Projetos e seu Gerenciamento

          Um projeto é um esforço temporário empreendido para criar um produto, serviço ou resultado exclusivo. Temporário não significa necessariamente de curta duração, mas sim que um projeto possui um início e um término definidos. Isso distingue o projeto dos trabalhos operacionais de natureza contínua.
          O gerenciamento de projetos consiste na aplicação de conhecimentos, habilidades, ferramentas e técnicas adequadas às atividades do projeto, a fim de cumprir seus requisitos.
           As nove áreas de conhecimento do PMBOK caracterizam os principais aspectos envolvidos em um projeto e no seu gerenciamento: Integração, Escopo, Tempo, Custos, Qualidade, Recursos Humanos, Comunicações, Riscos, Aquisições.
         Escopo, Tempo, Custos e Qualidade são os principais determinantes para o objetivo de um projeto: entregar um resultado de acordo com o escopo, no prazo e no custo definidos, com qualidade adequada. Recursos Humanos e Aquisições são os insumos para produzir o trabalho do projeto. Comunicações e Riscos devem ser continuamente abordados para manter as expectativas e as incertezas sob controle, assim como o projeto no rumo certo. E Integração abrange a orquestração de todos estes aspectos.

Processos do gerenciamento de projetos

         A aplicação dos conhecimentos requer a adoção eficaz de processos apropriados. Cada área de conhecimento abrange diversos processos no gerenciamento de projetos.
          Um processo é um conjunto de ações e atividades inter-relacionadas que são executadas para alcançar um objetivo. Cada processo é caracterizado por suas entradas, suas ferramentas e técnicas que podem ser aplicadas, e suas saídas resultantes.
          Os cinco grupos de processos de gerenciamento de projetos são:
                           1. Iniciação
                           2. Planejamento
                           3. Execução
                           4. Monitoramento e Controle
                           5. Encerramento

          Os grupos de processos de gerenciamento de projetos têm grande correspondência com o conceito do Ciclo PDCA (Plan - Do - Check - Act): Planejar - Fazer - Verificar - Agir. O grupo de Planejamento corresponde ao Planejar; Execução, ao Fazer; e Monitoramento e controle englobam Verificar e Agir. E como a natureza dos projetos é finita, o PMBOK ainda caracteriza os grupos de processos que iniciam (Iniciação) e finalizam (Encerramento) um projeto.
          Para os 42 processos de gerenciamento de projetos do PMBOK, a matriz a seguir provê uma visão quantitativa da distribuição dos processos pelas áreas de conhecimento e pelos grupos de processos.
          Pelo diagrama é fácil perceber algumas características lógicas dos processos de gerenciamento de um projeto. Praticamente todas as áreas de conhecimento são abordadas nas atividades de Planejamento e de Monitoramento e Controle.


 

quarta-feira, 18 de agosto de 2010

Soluções de Suporte à Decisão

          Refere-se simplesmente a um modelo genérico de tomada de decisão que analisa um grande número de variáveis para que seja possível o posicionamento a uma determinada questão.
            Decisão é uma escolha entre as alternativas existentes através de estimativas dos pesos destas alternativas. Suporte à Decisão significa auxiliar nesta escolha gerando estas estimativas, a evolução ou comparação e escolha           
            As soluções de Suporte à Decisão são compostas por um conjunto de softwares e metodologias que formam a espinha dorsal dos processos de tomada de decisão de uma organização.
            Em um mercado altamente competitivo e dinâmico como o atual, as organizações de todos os setores dependem destas soluções para avaliar e resolver assuntos do dia-a-dia com o objetivo de otimizar e avaliar sua performance global, buscar novas formas de diferenciação e responder rapidamente às mudanças do mercado.

Características

·         mapeamento das necessidades referentes às dimensões estratégica, tática e operacional;
·         alinhamento entre informações e processos;
·         acesso em tempo real a dados, informações e análises;
·         monitoração em tempo real dos processos através de indicadores de desempenho (BAM);
·         apoia a tomada de decisões individuais e de grupo;
·         tecnologias avançadas e inovadoras;
·         utilização de melhores práticas consolidadas no mercado;
·         orientação para resultados.

Benefícios

·         Obter e analisar informações em tempo real
·         Reduzir custos, despesas e riscos
·         Encontrar ineficiências
·         Identificar novas oportunidades
·         Melhorar o retorno sobre ativos tangíveis e intangíveis
·         Obter maior capacidade de adaptação a mudanças
·         Realizar melhores previsões, planejamentos e decisões
·         Orientar decisões e ações por gestão baseada em fatos
·         Aumentar a capacidade de inovação e a produtividade
·         Maior capacidade de adaptação a eventos (ex.: acidentes)

Alguns Exemplos de Aplicação

·         Definição de política de preços
·         Analisar tendências de mercado
·         Previsão e planejamento de demanda
·         Definir o dimensionamento e a composição de equipes
·         Planejamento da alocação e utilização de recursos
·         Determinar rota de transporte
·         Planejamento e execução de investimentos em mercados mobiliários


DATA WAREHOUSE

            É um sistema de computação utilizado para armazenar informações relativas às atividades de uma organização em bancos de dados, de forma consolidada. O desenho da base de dados favorece os relatórios, a análise de grandes volumes de dados e a obtenção de informações estratégicas que podem facilitar a tomada de decisão.
            O Data Warehouse (Depósito de Dados) possibilita uma melhor análise de eventos passados, oferecendo suporte às tomadas de decisões presentes e a previsão de eventos futuros. Por definição, os dados em um Data Warehouse não são voláteis, ou seja, eles não mudam, salvo quando é necessário fazer correções de dados previamente carregados. Os dados estão disponíveis somente para leitura e não podem ser alterados.
            A ferramenta mais popular para exploração de um Data Warehouse é a OLAP - Online Analytical Processing (Processo Analítico em Tempo Real), mas muitas outras podem ser usadas.
            Atualmente, por sua capacidade de sumarizar e analisar grandes volumes de dados, o Data Warehouse é o núcleo dos sistemas de informações gerenciais e apoio à decisão das principais soluções de Business Intelligence (BI) do mercado.

OLAP

OLAP  (On-line Analytical Processing) é um software cuja tecnologia de construção permite aos analistas de negócios, gerentes e executivos analisar e visualizar dados corporativos de forma rápida, consistente e principalmente interativa.
A funcionalidade OLAP é inicialmente caracterizada pela análise dinâmica e multidimensional dos dados consolidados de uma organização permitindo que as atividades do usuário final sejam tanto analíticas quanto navegacionais. A tecnologia OLAP é geralmente implementada em ambiente multiusuário e cliente/servidor, oferecendo assim respostas rápidas às consultas ad-hoc, não importando o tamanho do banco de dados nem sua complexidade.
Hoje em dia, essa tecnologia também vem sendo disponibilizada em ambiente Web. Essa tecnologia auxilia o usuário a sintetizar informações corporativas por meio de visões comparativas e personalizadas, análises históricas, projeções e elaborações de cenários.
Existem várias ferramentas OLAP, mas a escolha de uma ferramenta OLAP inadequada pode ocasionar severas consequências para um projeto de datawarehouse, entre as quais podemos citar:
·         Falha total do projeto e consequente perda dos benefícios esperados para os negócios da empresa;
·         Prejuízos financeiros gerados pelo alto custo da aquisição de software, serviços e treinamentos das equipes.
·         Falha parcial do projeto onde apenas alguns módulos sobrevivem.

Business Inteligence

O termo Business Intelligence (BI), pode ser traduzido como Inteligência de negócios, ele refere-se ao processo de coleta, organização, análise, compartilhamento e monitoramento de informações que oferecem suporte a gestão de negócios.
O conceito surgiu na década de 80 e descreve as habilidades das corporações para aceder a dados e explorar informações (normalmente contidas em um Data Warehouse), analisando-as e desenvolvendo percepções e entendimentos a seu respeito, o que lhes permite incrementar e tornar mais pautada em informações a tomada de decisão.
Cada sistema de BI determina uma meta específica, tendo por base o objetivo organizacional ou a visão da empresa, existindo em ambos objetivos, sejam eles de longo ou curto prazo.
Há uma forte tendência de que os produtos que compõem o sistema de BI de uma empresa passem, isoladamente, a prover funções extras que auxiliem na tomada de decisões. O objetivo principal é claramente uniformizar processos que permitam o acesso à informação como forma de melhorar os negócios e o marketing relacional da empresa através do uso da tecnologia. A globalização e a evolução da TI têm mudado radicalmente a forma como as empresas e os seus consumidores se relacionam.
Alguns observadores consideram que o processo de BI realça os dados dentro da informação e também dentro do conhecimento. Pessoas envolvidas em processos de BI podem usar software ou outras tecnologias para obter, guardar, analisar e prover acesso aos dados. O software “cura” o desempenho do gerenciamento do negócio e ajuda no objetivo de tomar as decisões melhores, mais atuais e relevantes, com as informações acessíveis sempre que necessário.

Modelagem Multidimensional

Nesse tipo de técnica os dados são estruturados em diversas dimensões. Isto facilita a investigação, o resumo e a organização de dados para a análise de negócios. Formado por relações entre dimensões e fatos. Nessa modelagem  as tabelas de fatos se relacionam com tabelas de dimensões em um banco de dados do tipo OLAP, possibilitando inúmeras combinações. Sua modelagem é realizada de forma a ganhar performance nas consultas, possuindo regras diferentes das relacionais em sua modelagem. Ela visa somente consultas analíticas.
Um dos tipos de modelagem multidimensional mais utilizado, é o Star Schema (Esquema Estrela) que propõe uma visão de modelagem de dados para sistemas de apoio a decisão. Sua principal característica é a presença de dados altamente redundantes por não ser normalizada, melhorando o desempenho. Além de ser fácil de perceber, reduzir o número de joins e ter baixa manutenção.

Extract Transform Load

O Extract Transform Load (ETL), são ferramentas de software cuja função é a extração de dados de diversos sistemas, transformação desses dados conforme regras de negócios e por fim a carga dos dados em um Data Warehouse. É considerada uma das fases mais críticas do Data Warehouse.
Os projetos de Data Warehouse consolidam dados de diferentes fontes. A maioria dessas fontes tendem a ser bancos de dados relacionais, mas podem existir outras fontes. Um sistema ETL tem que ser capaz de se comunicar com as bases de dados e ler diversos formatos de arquivos utilizados por toda a organização. Essa pode ser uma tarefa não trivial, e muitas fontes de dados podem não ser acessadas muito facilmente.

quinta-feira, 12 de agosto de 2010

Criptografia

        O termo Criptografia vem do grego kryptós ("escondido") e gráphein ("escrita"). Criptografar consiste da técnica de torna uma mensagem a ser enviada incompreensível, de forma a ser compreensível apenas pelo seu destinatário, que provavelmente terá métodos para torná-la compreensível. Esses métodos são algoritmos que fazem o processo inverso da criptografia, ou seja, consiste em descriptografar a mensagem.

        Algoritmos Criptográficos
       
        Existem duas classes de algoritmos criptográficos: simétricos (ou de chave-secreta) e assimétricos (ou de chave-pública). Os algoritmos simétricos utilizam uma mesma chave tanto para cifrar como para decifrar (ou pelo menos a chave de decifração pode ser obtida trivialmente a partir da chave de cifração), ou seja, a mesma chave utilizada para “fechar o cadeado” é utilizada para “abrir o cadeado”. Nos algoritmos assimétricos temos chaves distintas, uma para cifrar e outra para decifrar e, além disso, a chave de decifração não pode ser obtida a partir do conhecimento da chave de cifração apenas. Aqui, uma chave é utilizada para “fechar” e outra chave, diferente, mas relacionada à primeira, tem que ser utilizada para “abrir”. Por isso, nos algoritmos assimétricos, as chaves são sempre geradas aos pares: uma para cifrar e a sua correspondente para decifrar.
        Pela sua característica no uso da chave, os algoritmos simétricos exigem que a chave seja mantida secreta, do conhecimento exclusivo dos dois interlocutores (remetente e destinatário). Este fato requer um canal seguro que permita a um usuário transmitir a chave ao seu interlocutor. A figura 1 ilustra a forma de operação de uma algoritmo criptográfico simétrico, onde Bob envia uma mensagem cifrada para Alice, tendo antes que enviar a chave que vai utilizar, secretamente, para Alice.


        Os algoritmos assimétricos permitem que a chave de cifração possa ser tornada pública, por exemplo, disponibilizando-a em um repositório de acesso público (“canal público”), e por isso denominada chave-pública, retirando aquele problema existente nos algoritmos simétricos. Qualquer um pode cifrar mensagens com uma dada chave-pública, contudo somente o destinatário, detentor da correspondente chave de decifração (denominada chave-privada, ou secreta), poderá decifrá-la. Na figura 2 temos uma ilustração da operação de um algoritmo assimétrico. Aqui, Alice gera seu par de chaves, e envia (publica) sua chave-pública para Bob. Este cifra a mensagem com a chave-pública de Alice (KPública), a qual, e somente ela, será capaz de decifrá-la, utilizando sua chave-privada (KSecreta).


        Geralmente os algoritmos simétricos são mais eficientes computacionalmente que os assimétricos, podendo ser bastante rápidos em sua execução, permitindo altas taxas de cifração (até da ordem de GB/s). Os algoritmos assimétricos são geralmente menos eficientes, e normalmente a tendência é a utilização dos dois tipos de algoritmos em conjunto, tal que um algoritmo de chave-pública é utilizado para cifrar uma chave criptográfica, gerada aleatoriamente, para ser então utilizada para cifrar a mensagem através de um algoritmo simétrico. O destinatário então primeiro decifra a chave simétrica utilizando sua chave-privada no sistema de chave-pública, e após decifra a mensagem utilizando a chave recuperada no sistema simétrico. Desta forma não há o problema de "compartilhar o segredo da chave" com ninguém. A cada nova mensagem pode-se sempre repetir todo o processo. Nesta situação, se Bob deseja enviar uma mensagem para Alice, ele primeiro escolhe uma chave K, e a envia através do algoritmo de chave-pública cifrada com a KPública de Alice. Esta recupera K decifrando o criptograma recebido com sua chave privada KSecreta. Agora Bob pode enviar a mensagem real através do algoritmo simétrico, mais eficiente para isto, cifrando-a com a chave K, que Alice já dispõe, e enviada a ela de forma segura.


        Algoritmos Simétricos
       
        Após virmos às características, vantagens e desvantagens do uso das chaves simétricas e assimétricas, veremos agora alguns tipos de algoritmos simétricos. Os algoritmos de chave simétrica podem ser divididos em cifras de fluxo (ou contínuas) e em cifras por bloco. As cifras de fluxo cifram os bits da mensagem um a um, enquanto que as cifras por bloco pegam um número de bits e cifram como uma única unidade. Tipicamente são utilizados blocos de 64 bits; o algoritmo AES em dezembro de 2001 passou a usar blocos de 128, 192 ou 256 bits e chaves de 128, 192 ou 256 bits. Contudo, os algoritmos de chave simétrica raramente são usados sozinhos. Alguns exemplos de algoritmos simétricos populares e bem reputados são:
                • AES - é uma cifra de bloco adotada como padrão de criptografia pelo governo dos Estados Unidos. Espera-se que seja utilizada em todo o mundo e analisada extensivamente, assim como foi seu predecessor, o DES.
                • Blowfish - É conhecido pela sua velocidade, sendo mais rápido do que o RC2, DES e IDEA. Usa blocos fixos com 64 bits (8 bytes), mas as chaves podem ter qualquer comprimento sendo o de 128 bits o mais corrente;
                • RC2, RC4 E RC5 (RC - Rivest Ciphers) – possibilitam maior flexibilidade e maior segurança do que o DES. Todas as suas versões são algoritmos simétricos. O RC2 caracteriza-se por blocos de entrada de 64 bits, contudo podem ser usadas chaves com vários tamanhos. Já o RC4 não é uma técnica de blocos, mas sim de fluxo de entrada de bytes e saída de bytes cifrados ou decifrados conforme o caso. Esta é uma técnica atualmente muito usada, por um lado porque funciona em fluxo continuo e por outro lado porque é bastante rápida. Por fim o RC5 é uma técnica de cifragem em bloco, ele caracteriza-se por uma grande flexibilidade e possibilidade de parametrização. Com o RC5 os blocos de entrada podem ter qualquer dimensão pré-determinada e a chave também. Ele é muito flexível, estando sujeito a uma série de parâmetros que devem ser ajustados às necessidades particulares de cada caso.
                • DES (Data Encryption Standard) – foi desenvolvido nos anos 70. Utiliza uma chave de 56 bits que é aplicada a blocos de dados com 64 bits, o objetivo destes algoritmos é que seja difícil calcular a chave K, mesmo conhecendo o algoritmo DES. O algoritmo usado é algo complexo: Primeiro a mensagem de 64 bits é dividida em duas partes de 32 bits cada. Depois a chave de 56 bits é usada para gerar 16 chaves de 18 bits cada. E em seguida é aplicado sucessivamente 16 vezes um algoritmo, usando as chaves geradas;
                • IDEA - É uma técnica de cifragem em bloco usada na atualidade. Usa blocos fixos com 64 bits (8 bytes) e usa chaves com 128 bits (16 bytes). É considerada segura, mas ao contrário dos algoritmos RC usa chaves de comprimento fixo que certamente vão comprometer o seu futuro.