Introdução

As aplicações a desenvolver no contexto da disciplina de Programaçãoo com Objectos seguem a arquitetura multi-camadas. Neste tipo de arquitetura, cada aplicação é constituída por várias camadas. Cada camada tem uma semântica bem definida e apenas comunica com as camadas adjacentes.

Este tipo de arquitetura de software tem algumas vantagens importantes. Uma é limitar o impacto das alterações de uma camada nas restantes camadas da aplicação. Apenas as camadas adjacentesà` camada alterada poderão ter que ser modificadas. Caso a camada alterada mantenha a mesma interface, então não haverá impacto nas camadas adjacentes. Isto permite alterar completamente a concretização de uma camada e desde que a nova concretização mantenha a mesma interface que a versão anterior então não será necessário alterar nenhuma das restantes camadas da aplicação. As aplicações Web normalmente seguem este tipo de arquitectura de software . No contexto da disciplina de Programação com Objetos, aplica-se uma arquitectura de 3-camadas:

  • Camada de apresentação - é responsável pela interacção com o utilizador:
  • Camada de serviços - é responsável por determinar os dados a apresentar ao utilizador como resposta aos pedidos feito pelo utilizador;
  • Camada de domínio ou de lógica de negócio - é responsável por concretizar as regras de negócio ou os requisitos da aplicação.
O corpo docente de Programação com Objectos disponibiliza uma framework de interacção com o utilizador (designada como po-uilib) que facilita o desenvolvimento de aplicaçãos com a arquitectura descrita. Os alunos têm que utilizar esta framework no desenvolvimento do projecto da disciplina.

A interacção com o utilizador disponibilizada por esta framework tem vários objectivos:
  • suportar diferentes tipos de interfaces com o utilizador (gráfica, textual via linha de comandos e web), permitindo que o utilizador possa alterar a interface com o utilizador que pretende utilizar sem que isso tenha qualquer impacto no código da aplicação;
  • facilitar o desenvolvimento do código da aplicação responsável pela interacção com o utilizador;
  • permitir a independência entre a lógica de negócio da aplicação e a sua interface gráfica;
  • facilitar o teste automático da funcionalidade dos projectos desenvolvidos;
Este descrição do processo de desenvolvimento a seguir pelos alunos tem a seguinte organização:

  • Começa por descrever com algum detalhe as características de cada camada da aplicação a desenvolver na secção Arquitectura.
  • As várias funcionaldiades da framework po-uilib são apresentadas na secção Framework po-uilib.
  • A especificação da interface com o utilizador a ser utilizado pela aplicação é descrita na secção Interfaces com o utilizador suportadas pela framework
  • A secção Aplicação Exemplo descreve o desenvolvimento de uma aplicação simples utilizando a framework po-uilib e seguindo a arquitectura de 3 camadas indicada
  • O processo de availaição automático da aplicação desenvolvida pelos alunos é descrito na secção  Avaliação automática da aplicação desenvolvida
 
Do ponto de vista de organização do código da aplicação, as entidades da camada de domínio devem ser guardas no sub-package core do package raiz da aplicação. As entidades concretizadas na camada de serviços devem pertencer ao sub-package app do package raiz da aplicação.


Attachments