Portfólio Individual 6º Sem

19
IREMAR MALTESO GESTÃO DO PROCESSO DE DESENVOLVIMENTO II Produção Textual Interdisciplinar – Portfolio Fundamentos de Redes de Computadores Tópicos Avançados em Desenvolvimento de Sistemas Gestão do Conhecimento Trabalho apresentado em requisito a Produção Textual individual relativa ao 6º Semestre, Portfólio para as Disciplinas de: Fundamentos de Redes de Computadores Paulo K. Nishitani Tópicos Avançados em Desenvolvimento de Sistemas Anderson E.M. Gonçalves Gestão do Conhecimento Merris Mozer Tutor eletrônico: Alessandro Cavalheiri de Almeida Tutor de sala: Jardson de Souza Alves da Silva Da Universidade Norte do Paraná – UNOPAR. CUIABÁ 2015

description

portfólio 6° semestre ads unopar

Transcript of Portfólio Individual 6º Sem

Page 1: Portfólio Individual 6º Sem

IREMAR MALTESO

GESTÃO DO PROCESSO DE DESENVOLVIMENTO II Produção Textual Interdisciplinar – Portfolio

Fundamentos de Redes de Computadores

Tópicos Avançados em Desenvolvimento de Sistemas

Gestão do Conhecimento

Trabalho apresentado em requisito a Produção

Textual individual relativa ao 6º Semestre, Portfólio para as Disciplinas de:

Fundamentos de Redes de Computadores Paulo K. Nishitani Tópicos Avançados em Desenvolvimento de Sistemas Anderson E.M. Gonçalves Gestão do Conhecimento Merris Mozer Tutor eletrônico: Alessandro Cavalheiri de Almeida Tutor de sala: Jardson de Souza Alves da Silva Da Universidade Norte do Paraná – UNOPAR.

CUIABÁ 2015

Page 2: Portfólio Individual 6º Sem

Sumário 1 INTRODUÇÃO .......................................................................................................... 3

2 Objetivo ................................................................................................................... 4

3 Desenvolvimento .................................................................................................... 6

3.1 DESAFIO 1 .......................................................... Erro! Indicador não definido.

3.1.1 O Guia PMBoK .............................................. Erro! Indicador não definido.

3.1.2 Áreas de Conhecimento ............................... Erro! Indicador não definido.

3.1.3 Área de Conhecimento – Riscos ................... Erro! Indicador não definido.

3.1.4 Área de Conhecimento - Escopo .................. Erro! Indicador não definido.

3.1.5 Área de Conhecimento – Fornecedores (Aquisições)Erro! Indicador não definido.

3.1.6 Área de Conhecimento - Partes interessadasErro! Indicador não definido.

3.2 DESAFIO 2 .......................................................... Erro! Indicador não definido.

3.2.1 Resenha dos capítulos 11, 12, 13 e 29 do livro Engenharia de software de Lan Sommerville Erro! Indicador não definido.

3.2.2 CAPITULO 12 – Arquitetura de sistemas distribuídosErro! Indicador não definido.

3.2.3 CAPITULO 13 – Arquitetura de aplicações ... Erro! Indicador não definido.

3.2.4 Capitulo 29 – Gerenciamento De ConfiguraçõesErro! Indicador não definido.

3.3 DESAFIO 3 .......................................................... Erro! Indicador não definido.

3.3.1 FRAMEWORKS WEB ..................................... Erro! Indicador não definido.

3.3.2 CUSTOS/BENEFÍCIOS DE USAR FRAMEWORKSErro! Indicador não definido.

3.3.3 PROGRAMAÇÃO JAVA WEB (PLATAFORMA DE DESENVOLVIMENTO).Erro! Indicador não definido.

4 CONCLUSÃO .......................................................................................................... 15

5 Referencias Bibliográficas e Digitais ...................................................................... 17

Page 3: Portfólio Individual 6º Sem

3

1 INTRODUÇÃO

A produção textual interdisciplinar individual tem como base os

assuntos abordados envolvendo todas as disciplinas do 6º semestre do Curso

Superior de Tecnologia em Análise e Desenvolvimento de Sistemas:

Fundamentos de Redes de Computadores com o professor Paulo K. Nishitani,

Tópicos Avançados em Desenvolvimento de Sistemas com o professor

Anderson E.M. Gonçalves e Gestão do Conhecimento com a professora

Merris Mozer.

Sendo o eixo temático GESTÃO DO PROCESSO DE

DESENVOLVIMENTO II bastante abrangente, foi proposto assim que,

devemos discutir sobre o objeto do curso que é pautado no eixo temático

proposto com base nos conteúdos apresentados em cada uma das disciplinas

do semestre bem como no material de apoio das webaulas e das referências

digitais e também das aulas presenciais onde temos contato com os

professores através das vídeo-aulas e todo o conteúdo disponibilizado e

sugerido no ambiente virtual

Page 4: Portfólio Individual 6º Sem

4

2 OBJETIVO

Estabelecer o objetivo e as metas deste trabalho, com a proposta de acordo com o solicitado no enunciado. Elaborar uma pesquisa e descrever um documento contendo as técnicas conforme segue: a) descrever os recursos utilizados para dispositivos móveis, tais como: persistência, threads, sincronismo de processos, interface com o usuário e ferramentas de desenvolvimento. b) descrever o que é a gestão do conhecimento; descreva sobre as três ações; descreva sobre as dimensões do conhecimento; descreva sobre os tipos de conhecimento; descreva sobre os tipos de capitais estudados; Quais ações contribuem para a Gestão do conhecimento; descreva sobre Gestão Eletrônica de Documentos e sobre as tecnologias de RFID e NFC. c) Elaborar um plano de ação para evitar possíveis problemas de invasão do sistema pela internet.

Page 5: Portfólio Individual 6º Sem

5

Page 6: Portfólio Individual 6º Sem

6

3 DESENVOLVIMENTO

3.1 DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS

3.1.1 Persistencia

Persistência, A capacidade de persistir dados ou armazenar informações é sem dúvida um dos recursos mais importantes em qualquer linguagem de programação. Armazenar dados para uma posterior recuperação é uma constante na maioria dos ambientes computacionais, seja para persistência simples de parâmetros de configurações de algum sistema ou persistência de informações digitadas pelo usuário para alimentar algum banco de dados. No que diz respeito à persistência em ambientes computacionais, o complicador é quando esse mesmo ambiente tem recursos de armazenamento restrito e, ainda, uma arquitetura de hardware e software bem diferente da encontrada em desktops ou grandes servidores, como é o caso dos dispositivos móveis. Essas diferenças podem ser observadas tanto do ponto de vista do usuário (ergonomia de hardware e software), quanto do ponto de vista do desenvolvedor (ferramentas de software, APIs e recursos). Os telefones celulares conseguiram alcançar uma popularidade quase tão grande quanto a observada na utilização de computadores pessoais a partir da década de 80. Mas, assim como todos os dispositivos móveis, eles também trazem consigo algumas dificuldades, como, problemas relacionados à ergonomia do teclado, uma interface visual simples porém limitada e a dependência de baterias que requerem recarga constante. Nesse artigo, serão apresentadas as APIs que tratam da persistência de dados disponíveis no J2ME. Inicialmente, alguns fundamentos serão abordados e a seguir o pacote javax.microedition.rms, responsável pelo gerenciamento de registros, será detalhado através de definições e do uso de exemplos. A descrição do funcionamento de uma classe, quatro interfaces e cinco exceções, é tudo do que trata esse artigo. Comprovando, por incrível que pareça, toda a simplicidade e eficiência do pacote RMS.

3.1.2 thread

Thread, Um pequeno programa que trabalha como um subsistema independente de um programa maior, executando alguma tarefa específica. Um programa dividido em vários threads pode rodar mais rápido que um programa monolítico, pois várias tarefas podem ser executadas simultaneamente. Os vários threads de um programa podem trocar dados entre si e compartilhar o mesmo espaço de memória e os mesmos recursos do sistema.

Para o programador, existem vantagens e desvantagens em dividir um programa em vários threads. Por um lado isso facilita o desenvolvimento, pois

Page 7: Portfólio Individual 6º Sem

7

é possível desenvolver o programa em módulos, testando-os isoladamente, ao invés de escrever um único bloco de código. Mas, por outro lado, com vários threads o trabalho torna-se mais complexo, devido à interação entre eles.

Existem diferenças na maneira como os sistemas operacionais executam processos e threads. Por exemplo, o Windows tem mais facilidade para gerenciar programas com apenas um processo e vários threads, do que com vários processos e poucos threads, pois Windows o tempo para criar um processo e alternar entre eles é muito grande. O Linux e outros sistemas baseados no Unix por sua vez é capaz de criar novos processos muito rápido, o que explica o fato de alguns aplicativos, como por exemplo o Apache, rodarem muito mais rápido no Linux do que no Windows, ao serem portados para ele. Porém, ao serem alterados, os mesmos programas podem apresentar um desempenho semelhante nos dois sistemas. É o que a equipe do apache vem procurando fazer nas versões atuais do programa.

3.1.3 Sincronismo de processos

Sincronismo de processos; A sincronização dos processos é a parte do estudo dos sistemas operacionais que se preocupa em ordenar a execução dos processos. Isto é necessário porque em muitos casos a ordem de execução dos processos gera diferentes resultados. Muitos desses resultados podem ser danosos para os processos como, por exemplo, perda momentânea de recursos e travamentos. Imagine uma situação onde há um espaço de memória chamado C compartilhado por dois processos A e B. Neste espaço pertence a uma variável que é incrementada ou decrementada.

O processo A tem a função de incrementar o valor contido nesse espaço de memória, enquanto o processo B tem a função de decrementar esta posição de memória. Fazendo uma analogia com uma indústria de móveis, o processo A é a linha de produção dos móveis que aloca os móveis no estoque, C é o local de estoque e B é o setor de entrega de encomendas que retira os móveis do estoque. Tanto o setor de produção como o de entregas trabalham simultaneamente. De forma geral, eles são independentes, porém há um elo de ligação entre eles: o estoque. Se não houver mais espaço no estoque, não há como a linha de produção continuar. Já se não houver produtos no estoque, o setor de entregas também para. Voltando esta situação para o ambiente computacional, em ambientes monoprocessadores existe uma série de limitações e cuidados a serem tomados. Primeiro, os dois processos não rodam de forma simultânea, mas em pseudo-paralelismo como o uso de um escalonador com característica round-robin. Ao invés de ser um alento, se analisarmos a estrutura de um computador é

Um fator de complicação. Vamos especificar um pouco melhor os processos A e B. 1. A usa o registrador AX para incrementar C; 2. B usa o registrador BX para decrementar C; 3. Em linguagem de máquina, a atualização dos registradores ocorre antes da Atualização da memória; 4. Vamos supor que em C está o valor 15; 5. Supondo que A atualize AX e, no exato momento em que iria atualizar a

Page 8: Portfólio Individual 6º Sem

8

Memória, A é colocado na fila de processos PRONTOS e B começa a ser Executado; 6. B decrementa duas vezes BX e atualiza C, ou seja, C passa a ser 13; 7. Quando A voltar a executar, AX atualizará o valor como 16 e não como 14, Gerando um dado inconsistente e falso. Colocando como uma situação real, onde C é

o contador de arquivos a serem impressos. A quantidade de arquivos é limitada em 16. Repare que não será possível naquele momento adicionar, apesar de na realidade haver espaço para mais dois arquivos.

Situações onde a ordem de execução de processos ou threads interfere no Resultado final são chamadas de race condition. Para evitar as race conditions É preciso assegurar que somente um dos processos ou threads tenha acesso à área Compartilhada.

3.1.4 Interfaces com usuários

Interfaces com usuários, A Interface com o Usuário é uma parte fundamental de um software; é a parte do sistema visível para o usuário, através da qual, ele se comunica para realizar suas tarefas. Pode se tornar uma fonte de motivação e até, dependendo de suas características, uma grande ferramenta para o usuário, ou então, se mal projetada, pode se transformar em um ponto decisivo na rejeição de um sistema. As interfaces atuais têm como objetivo fornecer uma interação pessoa-computador o mais "amigável" possível. Dessa forma, ela deve ser fácil de ser usada pelo usuário, fornecendo sequências simples e consistentes de interação, mostrando claramente as alternativas disponíveis a cada passo da interação sem confundir nem deixar o usuário inseguro. Ela deve passar despercebida para que o usuário possa se fixar somente no problema que deseja resolver utilizando o sistema. Visando tornar a interação com o usuário mais natural e menos hostil, as interfaces passaram a ser constituídas, entre outros itens, por elementos gráficos, onde imagens representando dados e tarefas disponíveis são manipuladas diretamente pelo usuário. Na realidade, tais itens não constituem os dados nem as tarefas; são apenas seus signos, isto é tudo que possa ser assumido como um substituto significante de outra coisa qualquer.

Atualmente, os sistemas de software não são vistos apenas como processamento de

dados. São encarados como mensagens complexas enviadas dos projetistas para os usuários. Pesquisas recentes na área

Interação Homem-Computador (HCI -Human Computer Interaction) conscientizaram os programadores da necessidade de uma comunicação em interfaces nos dois sentidos, isto é, os usuários não só enviam mensagens para os programas de aplicação, mas também recebem e interpretam mensagens provenientes da ou através da aplicação. A HCI, quando examinada sob o ponto de vista da comunicação, mostra que os sistemas

Possuem dois papéis de comunicação inerentes: eles são enviadores e receptores de mensagens e eles próprios constituem mensagens enviadas dos projetistas para os usuários através do meio.

Page 9: Portfólio Individual 6º Sem

9

Um dos principais objetivos no projeto de IUs é a obtenção de Interfaces amigáveis, isto é, interfaces que o usuário se sinta confortável e

encorajado de usar. Quando alguns aspectos, como os fatores humanos e fatores do domínio (compreensão do problema) são considerados, obtém-se um diálogo natural; se ignorados, o resultado é um sistema não amigável.

As interfaces de softwares são um grande veículo de comunicação; através Delas textos, artigos, ideias, propagandas são transmitidos diariamente a vários Usuários localizados nos mais diversos lugares do mundo. Essa comunicação pode ser

feita de diversas formas: com textos, imagens, sons, combinações de cores entre outras. Mas independente da forma, deve ser garantido que a informação transmitida não seja incompleta, ambígua ou inteligível.

A cor, elemento fundamental em qualquer processo de comunicação, merece Uma atenção especial. É um componente com grande influência no dia a dia de uma

pessoa, interferindo nos sentidos, emoções e intelecto; pode portanto, ser usada deliberadamente para se atingir objetivos específicos. Um projetista de interface deve lançar mão desse poder das cores de modo a utilizá-las adequadamente de modo a tornar as interfaces mais poderosas.

Todo e qualquer usuário de computador já encontrou interfaces difíceis de usar, de entender e assimilar. Muitas vezes somos obrigados a usar essas interfaces de má qualidade porque não temos outra opção. Em contrapartida encontramos boas interfaces, onde se pode literalmente passear pelo software sem qualquer dificuldade ou maior questionamento. Podemos citar como más interfaces o WordStar, o MS-DOS, e outros programas que além de ser em modo texto, são de complicada navegação. Como exemplo de boas interfaces, temos o Windows, Word, PainBrush, e em geral

Todas as aplicações de cunho pictórico. Para se planejar uma boa interface deve-se considerar acima de tudo o Fator Humano. Entender o usuário, seu comportamento, seus gostos e desaprovações, é

um passo importante para que a interface seja de boa qualidade. Deve se levar em conta, uma entrevista para saber questões específicas com relação a interface do software. Quem vai usar o software? (Funcionário, gerente, etc.); Qual a idade em geral das pessoas? Qual é o ambiente de trabalho?; em fim todas as questões necessárias para moldar um layout da Interface. Deve-se levar em conta que o que serve para um

Usuário pode não servir para outro. Mas, como via de regra, o nível de habilidade do usuário será um dos fatores que afetarão na melhor assimilação da Interface.

3.1.5 ferramentas de desenvolvimento.

Page 10: Portfólio Individual 6º Sem

10

Nos últimos anos a demanda por aplicativos móveis cresceu em um ritmo acelerado. Somente no último trimestre de 2011, foram vendidos 157, 8 milhões de smartphones, um aumento de 54,7% em relação ao mesmo período do ano anterior, segundo a consultoria IDC. À medida que as vendas crescem a necessidade de aplicações também cresce tanto no âmbito corporativo quanto no entretenimento. A partir deste crescimento, cada vez mais surgem técnicas e ferramentas para tornar este desenvolvimento produtivo, principalmente nas três plataformas mais populares do momento: iOS, Android e Windows Phone.

Vamos abordar três modos de desenvolvimento para dispositivos móveis: desenvolvimento nativo, cross-platform e site móvel (web mobile). Focando nas suas principais vantagens e desvantagens, apresentando casos de sucesso no intuito de permitir que o leitor conheça melhor as três abordagens e ajudando a definir qual a melhor alternativa para cada situação.

Aplicativo Nativo

É a abordagem mais simples e direta: para cada plataforma é desenvolvida uma versão do aplicativo.

O grande benefício desta abordagem é a melhor experiência de interface e comportamento obtida. Os aplicativos móveis requerem excelentes experiências de uso na interface e comportamento para se destacarem e obterem a atenção do usuário. E a experiência de uso não é portável de uma plataforma para outra. Ela deve ser repensada e construída do zero a cada plataforma em que o aplicativo é criado. Um simples exemplo pode ser visto na posição das abas: no iOS, as abas se posicionam abaixo do conteúdo; enquanto no Android, acima. Apresentando maior diferença, o Windows Phone as “abas” estão todas em um mesmo plano, sendo acessadas deslocando o conteúdo horizontalmente.

Cada uma das plataformas possui suas convenções sobre interfaces e comportamentos. Essas convenções auxiliam ao usuário a rapidamente compreender a utilização do aplicativo, já que ele é habituado com a plataforma onde todos os aplicativos seguem os mesmos padrões de interface e comportamento.

As capacidades de cada dispositivo e plataforma também são acessíveis sem restrições. A cada nova versão da plataforma, novas bibliotecas são adicionadas, tornando possível ou facilitando o desenvolvimento de vários recursos pelos aplicativos. Essas versões são liberadas em uma alta frequência, uma por ano ou mais, e geralmente coincidem com a chegada de novos aparelhos cujo hardware aproveita todos essas novas capacidades. Os usuários desses novos aparelhos requererão os novos recursos o mais breve possível, e utilizando o desenvolvimento nativo é possível satisfaze-los mais facilmente (versões betas são liberadas anteriormente para os desenvolvedores).

O desenvolvimento nativo também conta com uma documentação mais abrangente e completa, e a busca por soluções ou resolução de problemas é facilitada, já que a maioria dos desenvolvedores opta por essa alternativa.

Page 11: Portfólio Individual 6º Sem

11

Apesar de todas as vantagens, essa abordagem pode ter um alto custo. Construir n versões do mesmo aplicativo para variadas plataformas geralmente multiplica o custo do projeto na mesma taxa. Este custo adicional é adicionado à manutenção, já que são várias bases de código, e em cada uma delas pode haver erros que não se encontram nas outras. Outra dificuldade é a obtenção de uma equipe que consiga desenvolver para as múltiplas plataformas ou a obtenção de uma equipe para cada plataforma.

Aplicativo Cross-Platform

O desenvolvimento Cross-Platform, consiste em um desenvolvimento único para várias plataformas. Atualmente, existem várias ferramentas que permitem essa abordagem, onde a parte visual é normalmente desenvolvida em HTML 5 e CSS e que são “renderizados” em um browser embutido no SDK padrão da linguagem nativa (Objective-C do iOS, Java do Android, etc.) tornando assim possível o desenvolvimento para várias plataformas. Abaixo são listadas duas das principais ferramentas do mercado e que foram utilizadas internamente:

• Adobe Air: Utilizando o Adobe Air é possível programar em Actionscript 3.0 em background e desenvolver a parte visual utilizando MXL (linguagem de marcação da Adobe) ou ainda utilizando HTML 5/CSS. Atualmente é possível criar versões para Android, iOS e Blackberry Tablet OS. Para instalar um aplicativo desenvolvido utilizando o Adobe AIR é necessário ter instalado no dispositivo o Adobe AIR Runtime. Entretanto, ao tentar instalar um aplicativo desenvolvido no AIR, automaticamente é solicitada a instalação do o Adobe Air Runtime. O SDK do Adobe Air é totalmente gratuito, porém, o Flash Builder que é uma IDE também desenvolvida para Adobe, com uma série facilidades para desenvolvimento é paga. A referência da linguagem (Actionscript) é bem detalhada, porém a documentação da parte visual não é tão rica.

• Motorola Rhomobile A plataforma Rhodes foi adquirida pela Motorola no início de 2012 se tornando Rhomobile. No Rhomobile é possível desenvolver em Ruby, com o framework parecido com o já famigerado Rails, já a parte visual pode ser desenvolvida em HTML5 e CSS. Ao criar um projeto novo, já está incluso um “skin” em CSS de cada plataforma. A própria criação do projeto já contém uma rotina que determina em qual plataforma o aplicativo está rodando. Também possui uma vasta camada de abstração de banco de dados, tornando esta parte do desenvolvimento simples. Em contrapartida, a parte da sua API que trata requisições HTTP e Threads ainda é muito instável, além disso, a documentação e o suporte no Brasil deixam a desejar, principalmente nas questões de licenciamento do produto.

• Outras ferramentas disponíveis no mercado: o PhoneGap o Appcelerator Titanium SDK o MoSync

Page 12: Portfólio Individual 6º Sem

12

Aplicativos desenvolvidos em ferramentas cross-platform, geralmente diminuem consideravelmente o custo de um projeto, principalmente quando várias plataformas são envolvidas. Porém pelo fato de ser genérico, o acesso a recursos nativos se torna mais trabalhoso e frequentemente problemático. A parte visual também se transforma em um problema, pois em algumas ferramentas se comporta de maneira substancialmente diferente nos vários dispositivos suportados. Sendo assim, frequentemente é utilizado no desenvolvimento de aplicativos simples que não necessitam tanto de recursos nativos.

Site Móvel (Web Mobile)

Com a popularização do HTML 5 e a sua adoção pelos navegadores dos dispositivos móveis, abriu-se uma nova frente para o desenvolvimento: os sites móveis.

O acesso aos recursos do dispositivo como câmera, GPS, acelerômetro etc., é possível, embora complicado em alguns momentos.

Um site móvel não depende de uma loja de aplicativos e a sua respectiva política de avaliação. Isso permite entregas rápidas, onde existe uma ágil implementação de novos recursos e correções de erros. O fato de não necessitar de instalação por parte do usuário também pode ser contado como um fator positivo.

Em um site móvel não se deve simular o visual e comportamento de um aplicativo nativo. Usuários sabem distinguir entre uma ótima experiência em um aplicativo nativo e uma ótima experiência um site móvel. Para obter essa ótima experiência, a atenção deve ser focada em construir um site que tenha uma ótima usabilidade em telas de toque e/ou pequenas.

O custo de construir um site móvel é mais baixo do que construir aplicativos nativos para cada plataforma. É mais comum a existência de profissionais que conheçam a tecnologia envolvida. Entretanto, os sites móveis, obviamente tem um requisito principal, acesso à internet. Embora isto seja um requisito básico, nos Estados Unidos e na Europa, no Brasil a rede móvel ainda não é tão comum nos smartphones e tablets. Por isso, um site móvel torna-se mais interessante quando o aplicativo necessite essencialmente de acesso a web.

3.2 GESTÃO DO CONHECIMENTO

O termo “Gestão do Conhecimento” provém do inglês “Knowledge Management” (KM), e trata-se de uma área de atuação transversal entre as diversas disciplinas relacionadas, sobretudo, à gestão estratégica, teoria das organizações, sistema de informação, gestão da tecnologia, e às áreas mais tradicionais como a economia, sociologia, psicologia, marketing, entre outras.

Page 13: Portfólio Individual 6º Sem

13

A gestão do conhecimento é reconhecida como um recurso estratégico inserido nas empresas e no cotidiano das pessoas. Estamos na era do conhecimento, sabemos que, num processo lógico, toda experiência e informação gerada pelo ser humano em sociedade torna-se em conhecimento, conhecimento presente nas bancas acadêmicas, nos livros e nas enciclopédias virtuais.

Para ser mais competitivo no campo profissional, para uma empresa crescer e para uma pessoa viver melhor é necessário conhecimento e seu domínio em determinadas áreas. Conhecer é conquistar, elaborar e praticar melhor; porém, saber muito, por si só, não significa melhor nível de competitividade.

O conhecimento, além de suportes, necessita de gestão, processo de armazenagem, zelo na guarda de suas informações, gerenciamento e canais para a sua disseminação. O conhecimento abrange o capital intelectual, o capital humano, a capacidade de pesquisar e inovar e a inteligência empresarial.

A gestão de conhecimento é necessária em virtude da existência do conhecimento na empresa, na mente das pessoas, nos departamentos e nos processos executados. Todos esses elementos são fundamentais e presentes a uma empresa. Esse tipo de gestão consiste numa modelagem de processos corporativos por meio de conhecimentos gerados, uma maneira de estruturar as atividades organizacionais no ambiente interno e externo, trata-se de um gerenciamento corporativo.

Visa favorecer a organização por meio de seu próprio conhecimento adquirido e desenvolvimento e a partir do conhecimento colhido no ambiente externo (experiência de concorrentes, influencias culturais, inovações tecnológicas, etc). Essa gestão se preocupa com as condições organizacionais, localização, geração e partilha do conhecimento, e das ferramentas a serem utilizadas na comunicação e organização de determinado conteúdo.

A gestão de conhecimento amplia a vantagem competitiva e concorrencial da empresa, reduz custos com P&D (Planejamento e Desenvolvimento), geração de novos modelos de negócio, melhor aproveitamento e desenvolvimento do capital intelectual da empresa, suporte às tomadas de decisão e melhorias na produção e na prestação de serviços.

Em suma, é uma modalidade de gestão que facilita o controle e o acesso às informações relevantes num processo de trabalho e a administração de seus meios. O conhecimento parte de uma informação, pesquisa, experiência e produz impactos positivos ou negativos na sociedade e em determinada organização, dependendo de como esse conhecimento é filtrado, analisado e gerido.

Em Desenvolvimento....

Page 14: Portfólio Individual 6º Sem

14

Page 15: Portfólio Individual 6º Sem

15

4 CONCLUSÃO

O desenvolvimento deste trabalho foi muito proveitoso, visto que

me capacitou com clareza e me abriu um leque de possibilidades, visto ao grau de abstração que se deve ter em projetar um sistema do porte apresentado no cenário proposto, pude ver o quão é importante a administração da informação.

Page 16: Portfólio Individual 6º Sem

16

Page 17: Portfólio Individual 6º Sem

17

5 REFERENCIAS BIBLIOGRÁFICAS E DIGITAIS

BROWN, ALAN W., On Components and Objects: The Fundation of Component - Based Development, Assessment of Software Tools and Tecnology, Procedings Fifth International Symposium on Proceedings - IEEE, 1997.

CISNEIROS, Hugo. Modelo de Desenvolvimento Ágil

SCRUM.http://www.devin.com.br/modelo-scrum/, 2009. FLORES, Emerson Ricardo. Linguagens e Técnicas de Programação II

- Análise eDesenvolvimento de Sistemas 2. São Paulo: Pearson Prentice Hall, 2009.

IBM; Practicing Object-Oriented Analysis and Design- ERC2.2.; IBM

Education and Training; 2002L. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise

e ao projeto orientado a objetos e ao desenvolvimento iterativo. 3. ed. Porto Alegre: Bookman,2008.

KARAM, Orlando. Fundamentos de Engenharia de Software. 2º

Edição. São Paulo: LTC, 2013. MARTINS, Paulo Roberto. Linguagens e técnicas de programação I.

São Paulo: Pearson Prentice Hall, 2009. NISHIMURA, Roberto Yukio. Banco de Dados I: sistemas II. São Paulo:

PearsonPrentice Hall, 2009. PETERS, JAMES F., Engenharia de Software: Teoria e Prática, Rio de

Janeiro, Editora Campus, 2001. PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática.

2. ed. SãoPaulo: Pearson, 2003. PRESSMAN, ROGER S., Engenharia de Software- (6ª edição), São

Paulo, Ed. McGrawHill, 2006.

Page 18: Portfólio Individual 6º Sem

18

BANCO DE DADOS. Disponível em: <https://intranet.ifs.ifsuldeminas.edu.br/~fatima.bueno/Banco%20de%20Dados/Apostila%20Banco%20de%20Dados.pdf>. Acesso em: 08 Maio. 2015.

PHPPIT. Disponível em: < http://www.phpit.com.br/artigos/frameworks-php-qual-e-o-melhor-pra-voce.phpit>. Acesso em: 10 Maio. 2015.

SOMMERVILE, Ian. ENGENHARIA DE SOFTWARE. 8 Edição. São Paulo: Pearson Addison Wesley, 2007."

SIELO - Frameworks. Disponível em:

<http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0034-76122011000500014>. Acesso em: 11 Outubro. 2015.

SEGURANÇA NO DESENVOLVIMENTO DE APLICAÇÕES. Disponível em: <http://www.cic.unb.br/~jhcf/MyBooks/cegsic/2009_2011/GSIC701_Seguranca_Desenvolvimento_Aplicacoes.pdf>. Acesso em: 09 Maio. 2015.

SEGURANÇA EM APLICAÇOES WEB. Disponível em: <http://www.cic.unb.br/~jhcf/MyBooks/cegsic/2009_2011/GSIC701_Seguranca_Desenvolvimento_Aplicacoes.pdf>. Acesso em: 10 Maio. 2015.

SWEBOK 2004, Guide for the Software Engineering Body of

Knowledge, 2004 version, IEEE Computer Society, California, EUA. TANAKA, Simone Sawasaki. Análise de sistemas I: curso superior de

tecnologiaem análise e desenvolvimento de sistemas 2. São Paulo: Pearson Education doBrasil, 2009. 182 p.

UML and C++ - A Practical Guide to Object-Oriented Development, São

Paulo,MAKRON Books, 2001. PERINI, Luis Cláudio. Engenharia de software. São Paulo: Pearson

Prentice Hall, 2009.

Referencia digitais:

• http://jakarta.apache.org/struts/ • http://java.sun.com/j2ee/javaserverfaces/ • http://www.hibernate.org • http://www.java.sun.com/products/JDO

Page 19: Portfólio Individual 6º Sem

19

• http://www.prevayker.org • http://junit.org • http://jakarta.apache.org/ant • http://jakarta.apache.org/cactus/index.html • http://www.springframework.org/ • http://logging.apache.org/log4j/docs/ • http://jakarta.apache.org/commons/logging/ • http://ireport.sourceforge.net/ • http://www.jbanana.org