Programação Orientada a Objetos

Programação Orientada a Objetos

Introdução ao paradigma da programação orientada a objetos; Introdução à linguagem de programação Java; Bibliotecas da linguagem e de terceiros; Ferramentas para desenvolvimento e automatização de projetos; Empacotamento e distribuição de aplicações Java para desktop; Linguagem de modelagem unificada (UML) e ferramentas para confecção de diagramas de classe.

Modelagem UML

A Linguagem de Modelagem Unificada (UML) é uma linguagem padrão para modelagem orientada a objetos. A UML é uma linguagem gráfica para visualizar, especificar, construir e documentar sistemas de software. Existem diversas ferramentas disponíveis para modelar com UML, mas para essa disciplina, recomendo o Mermaid ou o StarUML.

Mermaid

O Mermaid é uma ferramenta de diagramação desenvolvida em JavaScript, permite criar diagramas por meio de uma linguagem textual e embarcá-los diretamente em arquivos Markdown. O GitHub renderiza os diagramas Mermaid em seus arquivos Markdown.

Abaixo um exemplo de um diagrama de classes em Mermaid, que pode ser inserido em arquivos Markdown:

```mermaid
classDiagram
    direction LR

    class Aluno{
      -String nome
      -LocalDate dataDeNascimento
      -Matricula matricula
      +obterIdade() int
      +alterDataDeNascimento(data) boolean
    }

    class Matricula{
      -int numero
      -int digitoVerificador
    }

    Aluno *-- Matricula
```

Que renderiza como:

classDiagram direction LR class Aluno{ -String nome -LocalDate dataDeNascimento -Matricula matricula +obterIdade() int +alterDataDeNascimento(data LocalDate) boolean } class Matricula{ -int numero -int digitoVerificador } Aluno *-- Matricula

StarUML

O StarUML é uma ferramenta de modelagem UML com uma interface gráfica amigável. O StarUML é uma ferramenta comercial, mas é possível avaliar gratuitamente por 30 dias. Existem versões para Windows, macOS e Linux.

Essa ferramenta não está disponível nos laboratórios do campus, mas caso queira utilizá-la, siga os passos:

  1. Baixe o instalador para Linux (arquivo .deb)
  2. Descompacte o .deb no subdiretório staruml
    dpkg -x StarUML_6.2.2_amd64.deb staruml
    
  3. Execute o StarUML
    ./staruml/opt/StarUML/staruml --no-sandbox
    

Empacotando aplicações Java

O JDK vem com uma ferramenta chamada jpackage que permite empacotar aplicações Java para facilitar sua distribuição e instalação em outros computadores. A ferramenta gera instaladores para os sistemas operacionais Linux, macOS e Windows.

Na documentação oficial são apresentados os passos para preparar uma aplicação, além de personalizações como definição de ícone da aplicação, etc.

Com o jpackage a aplicação é empacotada juntamente com ambiente de execução Java (JRE, Java Runtime Environment), permitindo assim que possa ser executada em computadores que não tenham um JRE instalado.

Abaixo são apresentados os passos para criar uma aplicação Java com o gradle e depois como empacota-la usando jpackage no sistema operacional Ubuntu Linux. Como resultado será gerado um arquivo .deb contendo a aplicação.

Se o jpackage for executado no Windows, então será gerado um arquivo .exe ou .msi. Se for executado no macOS, então será gerado um arquivo .dmg. Se for executado em Linux que faça uso de pacotes RPM, então será gerado um arquivo .rpm. Enfim, a aplicação será empacotada de acordo com o sistema operacional onde está sendo executado o jpackage.

Criando e empacotando uma aplicação Java

Antes de mais nada, é necessário que tenha instalado o pacote fakeroot no Ubuntu.

  1. Crie uma aplicação Java com gradle. Quando perguntado sobre o nome do projeto e sobre o nome pacote Java, informe apenas teste
    gradle init
    
  2. Execute a tarefa installDist do gradle para compilar e gerar os scripts para execução da aplicação
    ./gradlew installDist
    
  3. Entre no subdiretório app/build/libs
    cd app/build/libs
    
  4. Empacote a aplicação com o jpackage
    jpackage --name Teste --input . --main-jar app.jar --main-class teste.App --type deb
    

Pronto! O jpackage gerou um arquivo .deb (i.e. com o nome teste_1.0-1_amd64.deb) contendo sua aplicação juntamente com o ambiente de execução Java.

Instalando a aplicação no Ubuntu Linux

Você pode instalar o .deb da maneira que mais lhe agradar. Por exemplo, com o comando dpkg você pode fazer assim:

dpkg -i teste_1.0-1_amd64.deb

Executando a aplicação

A aplicação foi instalada no diretório /opt. Você pode executá-la por meio do comando:

/opt/teste/bin/Teste