terça-feira, 15 de março de 2011

Mensagem entre objectos (POO)

Nas aulas decorrentes estou a realizar um trabalho de grupo sobre Mensagem entre objectos (POO)
Mensagem entre objectos é : quando o objecto A deseja que o objecto B execute um dos seus métodos o objecto A envia uma mensagem ao objecto B. 
Assim, por exemplo, enviar uma mensagem de texto entre forms atraves de textbox.
A textbox do form1 deseja que a texbox do form 2 execute um dos seus metodos (copiar texto da textbox), enviando portanto uma mensagem entre a textbox do form 1 a textbox do form 2 (mensagem com o texto).
Podemos concluir que caso não existisse mensagem entre objectos, não seria possivel executar os metodos das textbox.

quarta-feira, 2 de março de 2011

Criação de diagramas de Classes

Nestas aulas anteriores, temos aprendido a criar diagramas de Classes.
Antes de mais, pode-se dizer que os diagramas podem ser classificados por: Estáticos (reflectem a organização do sistema) ou Dinâmicos (reflectem o funcionamento do sistema).
Nos diagramas estáticos temos os nossos Diagramas de Classes.

Componentes do diagrama de classe:
Classes;
Generalização;
Dependencias;
Associações.

Classes:
Divide-se em 3 compartimentos
1. Nome;
2. Atributos (opcional)
          Visibilidade
           Nome
           Tipo
3. Metódos (opcional)
           Visibilidade
            Nome
            Parâmetros
            Tipo retorno
A visibilidade da classe pode ser:
      Público: +
      Protegido: #
      Privado: -

Ex:.


Generalizações: 
Representadas graficamente por setas (linhas sólidas terminadas em triângulos abertos)
O sentido da seta aponta a classe mais geral
Classe especializada retém atributos e operações de mais geral
Caracteristicas herdadas podem ser predefinidas
Análogo ao mecanismo de herança no VB

Ex:.



Dependencias: 
Representadas graficamente por setas (linhas sólidas que terminam em ângulo)
Sentido da seta aponta a classe / interface de que se depende
Denota a utilização de definições de outro componente.

Ex:.


Associações:
Representadas graficamente por linhas sólidas
Nas extremidades das associações podem ser indicadas:
   1. papeis
          - denotam tipo de participação na associação
          - representados por strings
   2. multiplicidade
          - denotam números de participações na associação
          - representados pelos valores:
                   Inteiro (ex:. 1)
                   Wild card (*)
                   Intervalo (ex:. 1-*3-5)
                   Enumerações (ex:. 2, 3, 5)
                   Combinações (ex:. 2, 3, 7, ... 11, 23)
  3. navegabilidade
         - denotam o conhecimento da associação
         - podem ser direccionais ou bi-direccionais
         - representadas por setas abertas
         - úteis na especificação e implementação

Ex:.


Agregações
Representados graficamente por associações terminadas por diâmetro aberto
Denotam uma relação "parte" de ligando o conjunto (com diâmetro) e o elemento.
São uma ligação fraca no sentido:
    1. O elemento pode pertencer a vários conjuntos
    2. O elemento "sobrevive" ao conjunto

Ex:.


Composições:
Representados graficamente por associações terminadas por diâmetro fechados
Denotam uma relação "parte de" como as agregações
São uma ligação forte no sentido:
   1. O elemento pertence apenas ao conjunto
   2. O elemento não "sobrevive" ao conjunto

Ex:.

Implementação de diagramas de classes:
1. Definir a perspectividade do diagrama
        - conceptual
        - especificação
        - implementação
2. Identificar classes
3. Identificar classes relacionadas e tipos de relacionamento
4. Refinar a definição das classes (se necessário) incluindo:
       - atributos
       - operações
5. Refinar as associações (se necessário) indicando:
      - papeis, navegabilidade e multiplicidade
      - composições ou agregações

E:.