FUNDAMENTOS DA LGICA DE PROGRAMAO E INTRODUO PROGRAMAO

  • Slides: 29
Download presentation
FUNDAMENTOS DA LÓGICA DE PROGRAMAÇÃO E INTRODUÇÃO À PROGRAMAÇÃO UPE – FACETEG Campus Garanhuns

FUNDAMENTOS DA LÓGICA DE PROGRAMAÇÃO E INTRODUÇÃO À PROGRAMAÇÃO UPE – FACETEG Campus Garanhuns Licenciatura em Informática Haroldo Amaral

TÓPICOS DA AULA ü ü ü A Linguagem Java A Plataforma Java O IDE

TÓPICOS DA AULA ü ü ü A Linguagem Java A Plataforma Java O IDE Net. Beans O Projeto mini. Java Proposta de Trabalho para a Unidade II UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09

NA AULA DE HOJE. . . Daremos algumas motivações para o uso da linguagem

NA AULA DE HOJE. . . Daremos algumas motivações para o uso da linguagem Java, no desenvolvimento de aplicações Apresentaremos a linguagem e a tecnologia Java Mostraremos alguns recursos usados no desenvolvimento de aplicações em Java Apresentaremos a metodologia de trabalho para a Unidade II do curso UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 3

A LINGUAGEM JAVA Precisamos de uma linguagem de programação adequada às nossas necessidades no

A LINGUAGEM JAVA Precisamos de uma linguagem de programação adequada às nossas necessidades no cenário atual � Desenvolvimento de aplicações baseadas na Web Java vem ocupando um lugar de destaque � Muito utilizada para o desenvolvimento de conteúdo dinâmico para Web, aplicativos corporativos, comerciais, financeiros, aplicativos de alta capacidade de processamento em servidores, aplicativos para pequenos dispositivos como celulares e PDA � Não é apenas uma linguagem direcionada para a Web UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 4

A LINGUAGEM JAVA Java é uma linguagem de programação simples, orientada a objetos, distribuída,

A LINGUAGEM JAVA Java é uma linguagem de programação simples, orientada a objetos, distribuída, interpretada e compilada, robusta, segura, independente de plataforma (arquitetura), portável, de alta performance, concorrente e dinâmica UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 5

Java & A toca de Bilbo Bolseiro Numa tela do computador havia um código-fonte.

Java & A toca de Bilbo Bolseiro Numa tela do computador havia um código-fonte. Não de uma linguagem qualquer, suja e desagradável, cheia de gambiarras e aspecto confuso; tampouco uma linguagem inerte, vazia e inflexível, sem nada para compilar ou interpretar: era a linguagem Java, e isso significa Orientação a Objetos. O código era correto, rico em refactoring e preciso. Suas linhas eram inteligentes, assim como seus métodos, sempre objetivos e eficientes. As classes eram interligadas por pacotes, conectadas por interfaces e algumas herdavam as importantes. O conceito de encapsulamento era visível, nada de gambiarras ou bugs. . . Tudo era conforme e sincronizado. Overloading e overriding, abstract e synchronized, public, protected e private. . . nada dava margem a erro. Havia também os Arrays e Vectors, Iterators e Enumerations para que os torcedores do Santa pudessem explorar os caminhos e potenciais da linguagem. Para os torcedores do náutico, famosos por uso de linguagens ruins, existiam o Implements e o Extends para facilitar a concatenação e re-usabilidade de seus códigos e evitar seus erros comuns, típicos de pedreiros. Aos gagás da programação, mais conhecidos como torcedores do Sport, havia o Javadoc, excelente ferramenta de descrição de código, para que estes pudessem esclarecer seus raciocínios confusos e muitas vezes errôneos. A linguagem agradava a todos: internautas e programadores, engenheiros e desenvolvedores, a unanimidade era patente. Java ainda vive, e por muito viverá, seu código é limpo e seu futuro impávido. Entre você também no mundo de Java, torça pelo Santa e seja sempre um excelente programador. Alvíssaras aos neófitos e força aos veteranos !!! UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 6

A PLATAFORMA JAVA Java foi desenvolvida nos anos 90 por James Gosling na Sun

A PLATAFORMA JAVA Java foi desenvolvida nos anos 90 por James Gosling na Sun Microsystems, sendo introduzida ao público em 1995 Ambiente computacional (plataforma) que permite desenvolver aplicativos usando qualquer uma das linguagens para a plataforma Java UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 7

A PLATAFORMA JAVA Conjunto de tecnologias principais: � Java SE (Java Plataform Standard Edition)

A PLATAFORMA JAVA Conjunto de tecnologias principais: � Java SE (Java Plataform Standard Edition) Base da plataforma, incluindo o ambiente de execução e as bibliotecas comuns � Java EE (Java Plataform Enterprise Edition) Edição voltada para o desenvolvimento de aplicações corporativas e para Internet � Java ME (Java Plataform Micro Edition) Edição voltada para o desenvolvimento de aplicações para dispositivos móveis e embarcados UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 8

O JAVA SE DEVELOPMENT KIT (JDK) 6 Kit de desenvolvimento para aplicações em Java

O JAVA SE DEVELOPMENT KIT (JDK) 6 Kit de desenvolvimento para aplicações em Java Contém um ambiente integrado de desenvolvimento para criação de aplicações, mini-aplicativos e componentes utilizando a tecnologia Java Contém um conjunto de ferramentas que permitirão a execução de aplicações Java em uma máquina UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 9

O JAVA SE DEVELOPMENT KIT (JDK) 6 Componentes do JDK: � Java Virtual Machine

O JAVA SE DEVELOPMENT KIT (JDK) 6 Componentes do JDK: � Java Virtual Machine (JVM) – Máquina Virtual Java � Java Application Launcher – Aplicação que possibilita a execução programas escritos usando a linguagem Java � Bibliotecas básicas de classes Java � Bibliotecas de integração � Bibliotecas de interface � Plug-in Java � Debuger � Ferramentas para monitoramento � Ferramentas para Web. Service � Ferramentas para execução de scripts � Ferramentas para segurança UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 10

DOCUMENTAÇÃO DO JDK Cobre todas as informações das características (componentes) da plataforma Java Standard

DOCUMENTAÇÃO DO JDK Cobre todas as informações das características (componentes) da plataforma Java Standard Edition Development Kit 6 Pode ser acessada via Web http: //java. sun. com/javase/6/docs/ Pode ser baixada e instalada na própria máquina (opcional) UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 11

DOCUMENTAÇÃO DO JDK UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica

DOCUMENTAÇÃO DO JDK UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 12

AMBIENTES INTEGRADOS DE DESENVOLVIMENTO São ferramentas usadas no processo de desenvolvimento de programas, incluindo:

AMBIENTES INTEGRADOS DE DESENVOLVIMENTO São ferramentas usadas no processo de desenvolvimento de programas, incluindo: � Editor de código, compilador, interpretador, depurador para encontrar e corrigir erros, gerador de documentação do código, ferramentas de arquivamento do código, ferramentas de visualização da estrutura do código UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 13

AMBIENTES INTEGRADOS DE DESENVOLVIMENTO Em relação a Java: � A Sun Microsystems disponibiliza o

AMBIENTES INTEGRADOS DE DESENVOLVIMENTO Em relação a Java: � A Sun Microsystems disponibiliza o Java Software Development Kit (SDK ou, simplesmente, JDK) Esse kit não é um ambiente integrado Ele não inclui um editor Os comandos de compilação e interpretação são executados na linha de comando � A Sun Microsystems possui o IDE Java Net. Beans (www. netbeans. org) � A IBM possui o IDE Eclipse (www. eclipse. org) � O grupo de pesquisa da Auburn University desenvolveu o IDE j. GRASP (www. jgrasp. com) UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 14

O NETBEANS Ambiente Integrado de Desenvolvimento (Integrated Development Environment – IDE) – Sun Microsystems

O NETBEANS Ambiente Integrado de Desenvolvimento (Integrated Development Environment – IDE) – Sun Microsystems – gratuito e de código aberto para desenvolvedores de software na linguagem Java, principalmente Oferece ferramentas necessárias para a criação de aplicativos desktop, empresariais, Web e móveis multiplaformas Auxilia em tarefas de escrita, compilação, depuração e instalação de aplicações Totalmente escrito em Java, mas que dá suporte a outras linguagens de programação, além de linguagens de marcação � C, C++, Ruby, PHP, Java. Script, XML, HTML Base sólida para a criação de projetos e módulos, com um grande conjunto de bibliotecas, módulos e API’s UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 15

O NETBEANS Recursos: � Editor de código fonte integrado, rico em recursos para aplicações

O NETBEANS Recursos: � Editor de código fonte integrado, rico em recursos para aplicações Web (Servlets e JSP, JSTL, EJBs) e aplicações visuais com Swing � Visualizador de classes integrado ao de interfaces que gera automaticamente o código dos componentes de forma organizada � Suporte ao Java EE � Plugins para UML – linguagem para modelagem e desenvolvimento de software � Interface com CVS – sistema de controle de versão que permite que se trabalhe com diversas versões de arquivos organizados em um diretório e localizados local ou remotamente UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 16

O NETBEANS Recursos: � Funcionalidades para edição de folhas de estilo (CSS) � Help

O NETBEANS Recursos: � Funcionalidades para edição de folhas de estilo (CSS) � Help local e on-line � Debug de aplicações e componentes � Suporte ao ANT (ferramenta de automatização da construção de programas) e TOMCAT (servidor de aplicações Java para Web) � Integração de módulos � Suporte a banco de dados (Data View e Connection Wizard) � Geração de Javadoc – ferramenta que permite a geração automática de arquivos javadoc em HTML UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 17

O NETBEANS UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de

O NETBEANS UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 18

CONSTRUINDO APLICAÇÕES EM JAVA Construiremos e executaremos uma série de classes Java, consolidando os

CONSTRUINDO APLICAÇÕES EM JAVA Construiremos e executaremos uma série de classes Java, consolidando os conhecimentos adquiridos nas aulas durante o curso Para manipular essas classes, usaremos uma biblioteca de classes resumida, como parte do projeto mini. Java UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 19

CONSTRUINDO APLICAÇÕES EM JAVA O PROJETO MINIJAVA O projeto mini. Java foi desenvolvido pelo

CONSTRUINDO APLICAÇÕES EM JAVA O PROJETO MINIJAVA O projeto mini. Java foi desenvolvido pelo grupo de Engenharia de Software do Centro de Informática da UFPE É um conjunto de API’s, ferramentas e modelo de programação simplificado, para facilitar o aprendizado de programação Apenas um subconjunto restrito, do JDK, de classes e funções estará disponível Assim, os usuários terão seu aprendizado mais facilitado, uma vez que terão acesso a somente recursos importantes UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 20

POR QUE USAR JAVA? UPE - FACETEG - Licenciatura em Informática - Fundamentos da

POR QUE USAR JAVA? UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 21

A UNIDADE II Objetivos: � Motivar, discutir, exercitar e consolidar o uso de técnicas

A UNIDADE II Objetivos: � Motivar, discutir, exercitar e consolidar o uso de técnicas de programação que tenham um impacto considerável sobre a qualidade e produtividade no desenvolvimento de software, através da PROGRAMAÇÃO ORIENTADA A OBJETOS e da LINGUAGEM JAVA Neste sentido, vamos ver: � � � Conceitos de programação orientada a objetos, através da linguagem Java Escrita, estruturação e documentação de programas em Java Exploração de um ambiente de desenvolvimento para Java, incluindo ferramentas e bibliotecas de classes Desenvolvimento, documentação e avaliação de uma aplicação de médio porte em Java Princípios de Engenharia e Qualidade de Software UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 22

A UNIDADE II REFERÊNCIAS Dois livros serão usados no curso: � Deitel, Harvey M.

A UNIDADE II REFERÊNCIAS Dois livros serão usados no curso: � Deitel, Harvey M. e Deitel, Paul J. JAVA COMO PROGRAMAR – 6ª Edição � Loftus, William e Lewis, John. JAVA SOFTWARE SOLUTIONS: FOUNDATION OF PROGRAM DESIGN – 6 th Edition Apesar do livro-texto ser o primeiro, o conteúdo das aulas será preparado, intercalando os dois livros � Assim, as aulas não seguirão uma seqüência de capítulos do primeiro livro � Assistir às aulas é essencial Outras referências, eventualmente, poderão ser usadas, como sites Web e outros livros, como apoio UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 23

A UNIDADE II AVALIAÇÕES A Unidade II, em princípio, não terá prova A avaliação

A UNIDADE II AVALIAÇÕES A Unidade II, em princípio, não terá prova A avaliação do conteúdo será baseada em: � Listas (práticas) de exercícios Resolvidas individualmente Avaliação individual Equivalem a 20% da nota � Projeto Desenvolvimento em equipe Avaliação em equipe e individualmente Equivale a 80% da nota UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 24

A UNIDADE II METODOLOGIA DE ESTUDO Postura durante o curso: � Perguntas durante as

A UNIDADE II METODOLOGIA DE ESTUDO Postura durante o curso: � Perguntas durante as aulas � Freqüência nas aulas � Interação entre vocês e com o professor � Busca por informações extra sala de aula Web, livros, grupos de estudo, . . . � Carga de estudo necessária 8 horas por semana, além das aulas O aprendizado só depende de vocês!!! UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 25

A UNIDADE II PENSAMENTO “Nada lhe posso dar que já não exista em você

A UNIDADE II PENSAMENTO “Nada lhe posso dar que já não exista em você mesmo. Não posso abrir-lhe outro mundo de imagens, além daquele que há em sua própria alma. Nada posso lhe dar a não ser a oportunidade, o impulso, a chave. Eu o ajudarei a tornar visível o seu próprio mundo, e isso é tudo. ” (Hermann Hesse) UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 26

A UNIDADE II O PROJETO Desenvolvimento, documentação e avaliação de um sistema de pequeno

A UNIDADE II O PROJETO Desenvolvimento, documentação e avaliação de um sistema de pequeno porte em Java Avaliação do projeto: Impossível avaliar linha de código por linha de código � Os projetos serão avaliados segundo alguns fatores de qualidade de orientação a objetos e Java (vistos na aula do dia 05/05/09) � CORRETUDE O software deverá executar, de forma correta, todas as funcionalidades projetadas – os requisitos e a especificação ROBUSTEZ O software deverá funcionar, mesmo em situações não previstas (na especificação), através do tratamento de exceções MODULARIDADE O software deverá ser implementando em diversos módulos autônomos e conectados LEGIBILIDADE O software deverá ser bem documentado, seguindo padrões de codificação Os critério EXTENSIBILIDADE e REUSABILIDADE são derivados critérios MODULARIDADE e LEGIBILIDADE UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 27

A UNIDADE II O PROJETO ATIVIDADE: � Dividam-se em equipes de 5 pessoas Como

A UNIDADE II O PROJETO ATIVIDADE: � Dividam-se em equipes de 5 pessoas Como a turma tem 29 pessoas, apenas uma equipe será de 4 pessoas � Formulem uma idéia para o sistema que vocês implementarão Façam um resumo desse sistema, descrevendo o seu propósito; ou seja, o que o sistema irá fazer (suas funcionalidades) Tentem identificar as possíveis classes que esse sistema terá, lembrando que: Classe será qualquer coisa que vocês identifiquem através de CARACTERÍSTICAS e COMPORTAMENTOS UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 28

A UNIDADE II O PROJETO ATIVIDADE: � Criem um site, contendo o nome do

A UNIDADE II O PROJETO ATIVIDADE: � Criem um site, contendo o nome do sistema, sua descrição e os integrantes (por enquanto”), e passem o endereço para a lista Alguns modelos de site podem ser encontrados em http: //www. cin. ufpe. br/~if 682/equipes. htm Não precisa ser exatamente igual, até porque esses sites foram construídos para a disciplina de Engenharia de Software � Datas: 18/05/09 Discussão das idéias dos projetos 21/05/09 Definição dos projetos UPE - FACETEG - Licenciatura em Informática - Fundamentos da Lógica de Programação e Introdução à Programação 07/05/09 29