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

Aula 4 - 19/08/2002

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 5715
Página do Fabio
Página do DCC