A análise e o projeto inicial de um sistema orientado a objetos tem como objetivo definir os requisitos básicos e a arquitetura do sistema. Isto inclui a escolha das classes essenciais do sistema e as relações entre as mesmas. Obviamente, só a experiência com análise orientada a objetos vai determinar o que é essencial e o que pode deixar de ser considerado (pelo menos inicialmente).
De forma precária, podemos usar Java como uma notação para análise e projeto orientado a objetos. Neste caso, as definições das classes devem apresentar apenas a assinatura (isto é, os nomes e tipos) dos métodos e atributos derivados. Só durante o projeto detalhado e a implementação do sistema é que decidimos que atributos são essenciais; também nesta fase decidimos como implementar os atributos derivados e os métodos das classes.
Para ilustrar os conceitos de orientação a objetos e análise, podemos considerar vários exemplos: pessoas (com esposo e filhos), listas encadeadas, conjuntos, árvores binárias, pilhas, bancos e contas, etc.
Já que o número de elementos em uma pilha não é limitado, não use arrays para resolver esta questão. (Opcional)
Várias equipes precisam ser formadas. Vejam as equipes formadas até agora.
Infelizmente os exemplos mencionados acima não estão disponíveis nestas notas de aula. Entre em contato com seus companheiros (via depto.cursos.grad.if101) para comparar soluções.
Paulo Borba (phmb@di.ufpe.br) |