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:
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:
- Baixe o instalador para Linux (arquivo
.deb
) - Descompacte o
.deb
no subdiretóriostaruml
dpkg -x StarUML_6.2.2_amd64.deb staruml
- 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.
- 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
- Execute a tarefa
installDist
do gradle para compilar e gerar osscripts
para execução da aplicação./gradlew installDist
- Entre no subdiretório
app/build/libs
cd app/build/libs
- 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