Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

20
SISTEMA DE ENSINO CONECTADO
técnico em Análise e desenvolvimento de sistemas
KATUCHA BARROS CLÁUDIO
Fazentech
Fortaleza-CE
2020
KATUCHA BARROS CLÁUDIO
Fazentech
Trabalho apresentado ao Curso Técnico em Análise e Desenvolvimento de Sistemas da UNOPAR - Universidade Norte do Paraná.
Profs. Luis Claudio Perini; Roberto Y. Nishmura; Márcio Roberto Chiaveli; Veronice de Freitas
Fortaleza-CE
2020
SUMÁRIO
1 INTRODUÇÃO	4
2 OBJETIVO	4
3 DESENVOLVIMENTO	4
3.1 ANÁLISE ORIENTADA A OBJETOS II	4
3.2 BANCO DE DADOS II	7
3.3 PROGRAMAÇÃO ORIENTADA A OBJETOS	10
3.4 PROGRAMAÇÃO WEB I	13
4 CONCLUSÃO	19
5 REFERÊNCIAS	20
1. INTRODUÇÃO
Este trabalho aborda a viabilização do desenvolvimento de sistemas de informação analisado, conforme conhecimento adquirido em Análise Orientado a Objetos, Banco de Dados, Programação Orientada a Objetos e Programação para Web.
2. OBJETIVO
Buscar o conhecimento de desenvolvimento de sistemas de informação analisado através do conhecimento adquirido.
3. DESENVOLVIMENTO
3.1 ANÁLISE ORIENTADA A OBJETOS II
· Principais diagramas da UML 
Diagrama de Caso de Uso: O diagrama de caso de uso é um diagrama da UML que tem como finalidade representar a interação entre o ator e o sistema e seu comportamento, cujo seu objetivo é facilitar a comunicação entre o sistema e o analista. 
Um diagrama de caso de uso é representado por: Atores; Caso de usos; Relacionamento entre estes elementos. 
Um caso de uso é uma sequência de transações executadas por um sistema, que produz um resultado mensurável de valores para um ator em particular.
Ator é um usuário do sistema, que pode ser um usuário humano ou um sistema operacional, ou seja, o que vai se interagir com o sistema. 
Ator no diagrama de caso de uso é representado desta maneira:
Perguntas a serem usadas para auxiliar na identificação dos casos de uso do sistema: Algum ator criará, armazenará, mudará, removerá, ou lerá informações do sistema? Que casos de uso criarão, armazenarão, mudarão, removerão, esta informação? Algum ator precisará informar o sistema a respeito de mudanças repentinas? Algum ator necessita ser informado de certas ocorrências no sistema? Que casos de uso suportarão ou manterão o sistema? Todas as ações serão executadas pelo ator? Todas as necessidades funcionais podem ser executadas pelos casos de uso?
Diagramas de Classes: É o paradigma mais utilizado na UML, representado os tipos de objetos de um sistema, podendo ser mapeado diretamente para uma linguagem orientada a objetos tratando-se de uma estrutura lógica estática mostrando elementos declarativos de modelo, como classes, tipo e seus respectivos conteúdos e relações. Vejamos o exemplo abaixo:
As classes possuem um relacionamento entre elas (para comunicação), ou seja, compartilham informações entre si e colaboram umas com as outras. Os principais tipos de relacionamentos são: Associação, Agregação/Composição, Generalização e Dependência. Associação entre as classes é um relacionamento estrutural que indica que os objetos de uma classe estão vinculados a objetos de outra classe. Agregação é um tipo de associação (é parte de, todo/parte) onde o objeto parte é um atributo de todo, a existência do objeto-parte faz sentido, mas não existindo o objeto todo. Composição é diferente de Agregação é um relacionamento de contenção. Um objeto contém (elementos) e esses elementos do objeto depende dele para poder existir. Generalização também conhecida como herança representa suas dependências e hierarquias, ou seja uma Subclasse que herda itens específicos da Superclasse. Dependência representa a dependência entre as classes indicando que os objetos de uma classe usam serviços dos objetos de outra classe.
3.2 BANCO DE DADOS II
· MODELO RELACIONAL NORMALIZADO – MRN 
Num projeto de banco de dados é necessário identificar os dados e fazer com que estes representem eficientemente o mundo real. Os SGDB – Sistemas Gerenciadores de Bancos de Dados ou SGBDR – Sistemas Gerenciadores de Bancos de Dados Relacionais são baseados no Modelo Relacional de Dados, que tem o princípio de que todos os dados são guardados em tabelas. Conceito criado por Edgar Frank Codd em 1970. Foi o primeiro modelo de dados descrito teoricamente. O Modelo Entidade Relacionamento apresenta algumas situações de difícil implementação prática. Para resolver isso, Codd propôs um processo de Normalização de Dados (ou normalização de tabelas) que aplica uma série de regras às tabelas de um banco de dados, para verificar se estas estão corretamente projetadas. O objetivo da normalização é evitar problemas provocados por falhas no projeto do banco de dados, eliminando redundâncias e evitando problemas com inserção, eliminação e atualização de dados. Com a normalização bem sucedida, o espaço de armazenamento de dados diminui, as tabelas podem ser atualizadas com maior eficiência. 
Normalmente após a aplicação das Regras de Normalização, algumas tabelas acabam sendo divididas em duas ou mais tabelas. Esse processo causa a simplificação dos atributos de uma tabela, contribuindo significativamente para a estabilidade do modelo de dados, reduzindo-se consideravelmente as necessidades de manutenção. Inicialmente Codd estabeleceu três Formas Normais, chamando-as de Primeira, Segunda e Terceira Formas Normais. Uma definição mais forte da Terceira Forma Normal foi depois proposta por Boyce e Codd, chamada Forma Normal Boyce-Codd. Depois uma Quarta e uma Quinta Formas Normais foram propostas, baseadas nos conceitos de dependências multivaloradas e de junção, respectivamente: • Primeira Forma Normal, ou 1FN • Segunda Forma Normal, ou 2FN • Terceira Forma Normal, ou 3FN • Forma Normal Boyce-Codd, ou FNBC ou BCNF • Quarta Forma Normal, ou 4FN • Quinta Forma Normal, ou 5FN.
Cada uma das formas normais representa uma condição mais forte que a anterior na lista, mas para a maioria dos efeitos práticos, considera-se que as bases de dados estão normalizadas se aderirem à Terceira Forma Normal. “Outro ponto a notar é que os projetistas de um banco de dados não precisam normalizar até a forma normal mais alta possível. As relações podem permanecer em um estado de normalização mais baixo, como 2FN, por razões de desempenho.” (ELMASRI; NAVATHE, 2005 apud NISHIMURA, 2009, p. 81). 
O processo é sequencial, iniciando pela 1FN. Não é possível “pular” uma forma normal, assim como não é possível fazer uma forma normal errada e passar para a próxima. Se uma tabela obedece às regras de uma forma normal, esta obedece igualmente às regras das formas normais anteriores. Uma tabela está na Primeira Forma Normal quando seus atributos não contêm grupos de Repetição, ou também, a 1FN requer que todos os valores de colunas em uma tabela sejam atômicos (indivisíveis). É necessário identificar atributos que representam o armazenamento de um mesmo dado em locais diferentes; atributos repetidos; atributos com mais de uma ocorrência. Uma “regra de ouro” para a 1FN é não misturar assuntos em uma mesma tabela (BATTISTI, 2004). Ao identificar esses erros, os atributos devem ser transferidos para uma nova tabela (ou tabelas), mantendo um relacionamento com a tabela original. As tabelas resultantes devem obedecer à 1FN. Para aplicar as regras das formas normais seguintes é necessário entender de Dependência Funcional. Existe dependência funcional X Y entre dois atributos X e Y, se os valores de X determinam os valores de Y. Se em um novo registro da tabela, o valor de X se repetir, obrigatoriamente o valor de Y também se repetirá. A Segunda Forma Normal ocorre quando a chame primária é composta por mais de um campo. Se uma tabela está na 1FN e possui chave primária simples, já está automaticamente na 2FN. Uma tabela, para estar na 2FN, não pode conter dependência funcional entre seus atributos não-chave com apenas parte de sua chave primária, isto é, cada atributo não-chave deve ser dependente da chave primária inteira. Com as dependências encontradas, divide-se a tabela em duas(ou mais) outras tabelas, mantendo as tabelas resultantes na 2FN. Battisti (2004) explica a Terceira Forma Normal: Na definição dos campos de uma entidade podem ocorrer casos em que um campo não seja dependente diretamente da chave primária ou de parte dela, mas sim dependente de outro campo da tabela, campo este que não a Chave Primária. Para estar na 3FN, a relação R deve obedecer a 2FN e não pode conter dependências funcionais dos atributos não-chave com outros atributos não- chave. Mais uma vez se divide a tabela em outras para solucionar o problema encontrado. As tabelas resultantes devem obedecer à 3FN. A 3FN é aquela que, na maioria dos casos, termina o processo de normalização.
· Sistema de controle e acompanhamento de ementas e bibliografias de cursos
3.3 PROGRAMAÇÃO ORIENTADA A OBJETOS
A orientação a objetos é um modelo de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.
Em alguns contextos, prefere-se usar modelagem orientada ao objeto, em vez de programação. De fato, o paradigma "orientação a objeto", tem bases conceituais e origem no campo de estudo da cognição, que influenciou a área de inteligência artificial e da linguística, no campo da abstração de conceitos do mundo real. Na qualidade de método de modelagem, é tida como a melhor estratégia para se eliminar o "gap semântico", dificuldade recorrente no processo de modelar o mundo real do domínio do problema em um conjunto de componentes de software que seja o mais fiel na sua representação deste domínio. Facilitaria a comunicação do profissional modelador e do usuário da área alvo, na medida em que a correlação da simbologia e conceitos abstratos do mundo real e da ferramenta de modelagem (conceitos, terminologia, símbolos, grafismo e estratégias) fosse a mais óbvia, natural e exata possível.
Na programação orientada a objetos, implementa-se um conjunto de classes que definem os objetos presentes no sistema de software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos. C++, C#, VB.NET, Java, Object Pascal, Objective-C, Python, SuperCollider, Ruby e Smalltalk são exemplos de linguagens de programação orientadas a objetos. ActionScript, ColdFusion, Javascript, PHP (a partir da versão 4.0), Perl (a partir da versão) e Visual Basic (a partir da versão) são exemplos de linguagens de programação com suporte a orientação a objetos.
· Conceitos essenciais
Classe representa um conjunto de objetos com características afins. Uma classe define o comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter através de seus atributos. Exemplo de classe: Os humanos
Subclasse é uma nova classe que herda características de sua(s) classe(s) ancestral (is)
Objeto - instância de uma classe. Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas à ele, assim como se relacionar e enviar mensagens a outros objetos. Exemplo de objetos da classe Humanos: João, José, Marta
Atributo são características de um objeto. Basicamente a estrutura de dados que vai representar a classe. Exemplos: Funcionário: nome, endereço, telefone, CPF,...; Carro: nome, marca, ano, cor; Livro: autor, editora, ano. Por sua vez, os atributos possuem valores. Por exemplo, o atributo cor pode conter o valor azul. O conjunto de valores dos atributos de um determinado objeto é chamado de estado
Método define as habilidades dos objetos. Bidu é uma instância da classe Cachorro, portanto tem habilidade para latir, implementada através do método de um latido. Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto, no caso Bidu. Dentro do programa, a utilização de um método deve afetar apenas um objeto em particular; Todos os cachorros podem latir, mas você quer que apenas Bidu dê o latido. Normalmente, uma classe possui diversos métodos, que no caso da classe Cachorro poderiam ser sente, coma e morda
Mensagem é uma chamada a um objecto para invocar um de seus métodos, ativando um comportamento descrito por sua classe. Também pode ser direcionada diretamente a uma classe (através de uma invocação a um método estático)
Herança (ou generalização) é o mecanismo pelo qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos). Um exemplo de herança: Mamífero é super-classe de Humano. Ou seja, um Humano é um mamífero. Há herança múltipla quando uma sub-classe possui mais de uma super-classe. Essa relação é normalmente chamada de relação "é um"
Associação é o mecanismo pelo qual um objeto utiliza os recursos de outro. Pode tratar-se de uma associação simples "usa um" ou de um acoplamento "parte de". Por exemplo: Um humano usa um telefone. A tecla "1" é parte de um telefone
Encapsulamento consiste na separação de aspectos internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente os métodos que acessam (getters) e alteram (setters) estes estados. Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom)
Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software
Polimorfismo consiste no princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identificação (assinatura) mas comportamentos distintos, especializados para cada classe. De acordo com a literatura, existem quatro tipos de polimorfismo que uma linguagem de programação pode ter (atente para o fato de que nem toda linguagem orientada a objeto tem implementado todos os tipos de polimorfismo):
Universal:
Inclusão: um ponteiro para classe mãe pode apontar para uma instância de uma classe filha (exemplo em Java: "List lista = new LinkedList();" (tipo de polimorfismo mais básico que existe)
Paramétrico: se restringe ao uso de templates (C++, por exemplo) e generics (Java/C♯)
Ad-Hoc:
Sobrecarga: duas funções/métodos com o mesmo nome mas assinaturas diferentes
Coerção: a linguagem que faz as conversões implicitamente (como por exemplo atribuir um int a um float em C++, isto é aceito mesmo sendo tipos diferentes pois a conversão é feita implicitamente)
Interface: é um contrato entre a classe e o mundo externo. Quando uma classe implementa uma interface, ela está comprometida a fornecer o comportamento publicado pela interface.
Pacotes (ou Namespaces): são referências para organização lógica de classes e interfaces.
3.2 PROGRAMAÇÃO WEB I
Desenvolvimento web é o termo utilizado para descrever o desenvolvimento de sites, na Internet ou numa intranet. Este é o profissional que trabalha desenvolvendo websites, podendo ser um Web Designer (Desenvolvedor do Layout), ou Web Developer(Desenvolvedor de sistemas). O desenvolvimento refere-se a um processo de construção e testes do software especifico para a web, com a finalidade de se obter um conjunto de programas, que satisfazem as funções pretendidas, quer em termos de usabilidade dos usuários ou compatibilidade com outros programas existentes. O desenvolvimento web pode variar desde simples páginas estáticas a aplicações ricas, comércios eletrônicos ou redes sociais.
HTML
Do inglês Hyper Text Markup Language, significa Linguagem de Marcação de Hipertexto, ou seja, HTML é uma coleção de estilos que define os vários componentes de um documento Internet. Utilizado em: formatação, documentos multimídia, formulários, hiperlinks clicáveis, imagensgráficas, etc.
Exempo?
Estrutura de um formulário de contato em HTML
<!DOCTYPE html>
<html>
<head>
    <title>Oficina da Net Formulário de Contato em PHP</title>
    <meta charset="iso-8859-1">
    <link rel="stylesheet" href="style.css" media="all" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
    <h2>Formulário de contato - <a href="https://www.oficinadanet.com.br">Oficina da Net</a></h2>
    <form method="post" onsubmit="validaForm(); return false;" class="form">
    <p class="name">
        <label for="name">Nome</label>
        <input type="text" placeholder="Seu Nome" />
    </p>
    <p class="email">
        <label for="email">E-mail</label>
        <input type="text" placeholder="mail@exemplo.com.br" />
    </p>
    <p class="text">
        <label for="mensagem">Mensagem</label>
        <textarea placeholder="Escreva sua mensagem" /></textarea>
    </p>
    <p class="submit">
        <input type="submit" value="Enviar" />
    </p>
    </form>
</body>
</html>
PHP
Linguagem para programar scripts que são processados no servidor, que se incrustam dentro do código HTML. Esta linguagem é gratuita e de multiplataforma, ou seja, roda em servidores de hospedagem com Linux ou Windows.
Exemplo:
Estrutura PHP de um formulário de contato
<?php
function sendMail($de,$para,$mensagem,$assunto)
{
    require_once('phpmailer/class.phpmailer.php');
    $mail = new PHPMailer(true);
    $mail->IsSMTP();
    try {
      $mail->SMTPAuth   = true;
      $mail->Host       = 'smtp.gmail.com';
      $mail->SMTPSecure = "tls"; #remova se nao usar gmail
     $mail->Port       = 587;                  #remova se nao usar gmail
      $mail->Username   = 'seuemail@gmail.com';
      $mail->Password   = 'suasenha';
      $mail->AddAddress($para);
     $mail->AddReplyTo($de);
     $mail->SetFrom($de);
      $mail->Subject = $assunto;
      $mail->MsgHTML($mensagem);
      $mail->Send();    
      $envio = true;
    } catch (phpmailerException $e) {
      $envio = false;
    } catch (Exception $e) {
      $envio = false;
    }
    return $envio;
}
?>
CSS
A utilização de CSS (Cascading Style Sheets) é recomendada, pois permite separar estilo visual de conteúdo. Tal fator é fundamental quando se faz o design e estruturação de um website. Quando CSS é utilizado de maneira correta, a manutenção do website torna-se mais simples. Além disso, existem outras vantagens como facilidade de criar estilos visuais múltiplos por exemplo podendo-se oferecer o estilo otimizado para impressão.
Exemplo:
Estrutura de estilização de um formulário de contato em CSS
body {
    padding: 50px 100px;
    font-size: 13px;
    font-family: arial, Tahoma, sans-serif;
}
a { color:#000; }
h2 {
    margin-bottom: 20px;
    color: #133141;
}
input, textarea {
    padding: 10px;
    border: 1px solid #E5E5E5;
    width: 200px;
    color: #999999;
    box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px;
    -moz-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px;
    -webkit-box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 8px;
}
textarea {
    width: 400px;
    height: 150px;
    max-width: 400px;
    line-height: 18px;
}
input:hover, textarea:hover,
input:focus, textarea:focus {
    border-color: 1px solid #C9C9C9;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px;
    -moz-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px;
    -webkit-box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 8px;     
}
.form label {
    margin-bottom: 10px;
    color: #999999;
    display: block;
}
.submit input {
    width: 100px;
    height: 40px;
    background-color: #133141;
    color: #FFF;
    border-radius: 3px;
    moz-border-radius: 3px;
    -webkit-border-radius: 3px;                     
}
JavaScript
Através do JavaScript você tem muitas possibilidades de melhorar páginas HTML com elementos interessantes. Sendo capaz, por exemplo, de responder muito facilmente a eventos iniciados pelo usuário. Alguns dos efeitos que agora podemos fazer com JavaScript, há algum tempo atrás só eram possíveis com CGI. Deste modo, podemos desenvolver páginas muito sofisticadas com a ajuda do JavaScript.
Exemplo: Estrutura de Validação de formulário em JavaScript
<script type="text/javascript">
 function validaForm()
 {
    erro = false;
    if($('#nome').val() == '')
    {
        alert('Você precisa preencher o campo Nome');erro = true;
    }
    if($('#email').val() == '' && !erro)
    {
        alert('Você precisa preencher o campo E-mail');erro = true;
    }
    if($('#mensagem').val() == '' && !erro)
    {
        alert('Você precisa preencher o campo Mensagem');erro = true;
    }
    //se nao tiver erros
    if(!erro)
    {
        $('#formulario_contato').submit();
    }
 }
</script>
4 CONCLUSÃO
Podemos concluir que com o estudo do formato HTML é possível formular uma página web com todos recursos necessários para uma página com layout bonito, objetivo e dinâmico. Conclui-se também que conhecer o sistema organizacional de uma empresa é essencial para seu perfeito entendimento e funcionamento.
5 REFERÊNCIAS
http://www.ufpa.br/cdesouza/teaching/cedai/APOOUMLP.pdf
http://www.ic.unicamp.br/~ariadne/mc436/1s2014/cap07-v3.pdf
http://bdigital.cv.unipiaget.org:8080/jspui/bitstream/10964/134/1/Rito%20Gon%C3%A7alves.pdf
http://bdigital.unipiaget.cv:8080/jspui/bitstream/10964/84/1/Anilton%20Fernandes.pdf
http://diatinf.ifrn.edu.br/lib/exe/fetch.php?media=corpodocente:papaiz:poo_csharp-e-orientacao-a-objetos.pdf
http://www.luis.blog.br/normalizacao-de-dados-e-as-formas-normais.aspx

Mais conteúdos dessa disciplina