Implementando aplicações simples


Simulando uma sessão de usuário

Os conceitos vistos em aulas anteriores (como classes, objetos, métodos e atributos) serão ilustrados nesta aula através do desenvolvimento de uma aplicação simples. É importante salientar que existem várias formas de se implementar o sistema proposto em Java. A forma que apresentaremos a seguir não é a mais adequada ou eficiente, porém é uma maneira de resolver o problema com os recursos de Java vistos até agora.

A aplicação consiste em simular o login de um usuário em uma máquina, com um sistema de arquivos "virtual", iniciando uma sessão na mesma. O programa deverá possuir as seguintes características:

Para desenvolver a aplicação, devemos passar pelos seguintes passos:

  1. Veja e procure entender a assinatura das classes principais e auxiliares do sistema,
  2. Veja e procure entender a implementação das classes principais e auxiliares em Java,
  3. Veja e procure endender a classe principal (Sessao),
  4. Copie a implementação das classes e a classe principal para a sua área (drive h),
  5. Abra o JDK,
  6. Compile as classes,
  7. Execute a classe principal (Sessao).

Leitura

Sessão com suporte a mais comandos.

Exercício

  1. Modifique a sessão estendida para que a mesma faça uma outra operação e melhore as que ja estão implementadas. (Opcional)
  2. Defina uma classe BancoModular similar a Banco, mas que é definida usando-se a classe ConjuntoDeContas; isto é, BancoModular deve ter apenas um atributo essencial, contas, do tipo ConjuntoDeContas. Compare as duas implementações de bancos: Banco e BancoModular. Quais as vantagens e desvantagens de cada abordagem? Justifique. Note que se não tivermos cuidado podemos escrever programas orientados a objetos que não são modulares! (Opcional)
  3. Suponha que por questões de eficiência temos que modificar a maneira como contas são armazenadas no banco; ao invés de arrays temos que usar árvores binárias. Qual implementação de bancos seria mais facilmente modificada: Banco ou BancoModular? Escolha uma delas e faça as modificações necessárias. (Opcional)

Informações

As equipes já podem começar a implementação do projeto.


Débora Aranha (dcsa@di.ufpe.br)
Sérgio Soares (scbs@di.ufpe.br)
Leonardo Cole Neto (lcn@di.ufpe.br)