MAC 413/5715 - Tópicos de Programação Orientada a Objetos

Aula 6 - 27/08/2003

Aumentando a Flexibilidade (continuação)

Generalização de Classes

Especialização de Classes

Evite Distinção de Classes Baseada no Estado (p/ melhorar a flexibilidade)

Evite Superclasses Concretas (p/ melhorar a flexibilidade)

Especialização vs. Agregação

Agregação

Referência

Charles Richter. Designing Flexible Object-Oriented Systems with UML . Capítulo 4: Flexibility Guidelines for Class Diagrams. Macmillan Technical Publishing, 1999.

Atividade 1

Utilizando diagramas UML, desenvolva um projeto de Arquitetura para um sistema de votação eletrônica distribuída. Através deste sistema, os eleitores terão a opção de votar de suas próprias casas ou de ir até uma seção eleitoral do TRE.

Você deverá apresentar uma descrição do seu sistema incluindo:

  1. um diagrama de implantação para indicar quais serão os programas e componentes que irão fazer parte do sistema e onde serão executados,
  2. um (ou mais) diagrama de classes indicando a arquitetura de cada parte relevante do sistema e
  3. um diagrama de casos de uso mostrando como eleitores, fiscais de partidos e administradores do sistema interagem com o sistema.

O sistema deverá ser capaz de gerenciar uma eleição simultânea para presidente, 2 senadores, deputado federal, governador e deputado estadual. Para cada um destes cargos, há um número variado de candidatos (desde 4 até milhares). A modelagem dos dados também deve ser orientada a objetos, ou seja, praticamente tudo no seu sistema serão objetos. A lista dos candidatos válidos e os votos efetuados devem seguir uma estrutura orientada a objetos e o sistema deverá ser capaz de totalizar o resultado da votação automaticamente.

Opcionalmente, você poderá usar texto para explicar algum ponto específico, mas a ênfase deve ser na qualidade dos diagramas UML. Se quiser, sua especificação pode ser composta apenas por diagramas, sem texto.


Próxima Aula
Aula Anterior
Página de MAC 413/5715
Página do Fabio
Página do DCC