Baixe o app para aproveitar ainda mais
Prévia do material em texto
Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 08 Modelagem de classes de especificação “A perfeição (no projeto) é alcançada, não quando não há nada mais para adicionar, mas quando não há nada mais para retirar.” Eric Raymond, The Cathedral and the Bazaar Tópicos • Introdução • Especificação de atributos • Especificação de operações • Especificação de associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 3 Tópicos • Introdução • Especificação de atributos • Especificação de operações • Especificação de associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 4 Introdução • O modelo de classes de especificação é construído em paralelo com os diagramas de interação; • Após a construção desse modelo, o sistema estará em um estágio próximo ao de implementação • As classes do modelo de domínio são refinadas, até chegar a um estágio próximo ao código. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 5 Especificação de Classes de Fronteira • Algumas classes de fronteira são divididas em mais de uma; • As classes de fronteira que se comunicam com o usuário devem passar por um processo específico; • Além da fronteira com o usuário, existem outras: – Interface com equipamentos – Interface com outros sistemas – Interface com banco de dados... Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 6 Especificação das Classes de Entidade • Necessitam de armazenamento persistente; • Devem ser identificados padrões de acesso a cada classe; • Devem ser consideradas operações de inclusão, exclusão e alteração nesses objetos; • Deve-se pensar em como será realizado o mapeamento das classes para o mecanismo de persistência utilizado. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 7 Especificação das Classes de Controle • Deve-se analisar a necessidade dessas classes; • Em casos simples como manutenção (inserção, remoção, atualização e busca), as classes de fronteira podem repassar os dados para as entidades; • Em alguns casos, uma classe de controle complexa pode ser dividida em mais de uma classe. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 8 Tópicos • Introdução • Especificação de atributos • Especificação de operações • Especificação de associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 9 Especificação de Atributos • Nas classes de domínio, não havia a necessidade de explicitar os atributos; • A notação da UML para atributos no diagrama de classes é: [visibilidade] nome : tipo = valor inicial Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 10 Especificação de Atributos [visibilidade] nome : tipo = valor inicial Visibilidade • Refere-se ao nível de acesso; • Implementa o encapsulamento; Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 11 Visibilidade Símbolo Public + Private - Protected # Package ~ Especificação de Atributos [visibilidade] nome : tipo = valor inicial Tipo • Especifica o tipo do atributo; • Depende da linguagem de programação; • Pode ser um tipo primitivo ou um TAD; • Alguns tipos definidos, não precisam ser representados como classes no diagrama. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 12 Especificação de Atributos [visibilidade] nome : tipo = valor inicial Valor inicial • O valor é atribuído ao atributo quando um objeto dessa classe é instanciado. • Também depende da linguagem de programação. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 13 Especificação de Atributos Atributos derivados • São atributos, cujo valor depende de outro atributo. • Exemplo clássico: Idade; • São representados com uma barra (/) a esquerda. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 14 Especificação de Atributos Atributos estáticos • São atributos que referem-se a classe e não aos objetos; • São sublinhados no diagrama; Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 15 Tópicos • Introdução • Especificação de atributos • Especificação de operações • Especificação de associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 16 Especificação de Operações • São as ações de uma classe (métodos); • Durante a construção dos diagramas de interação, ficam mais claros; • No diagrama de classes, inserimos as assinaturas das operações; visibilidade nome(parâmetros) : tipo-retorno {propriedades} Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 17 Especificação de Operações visibilidade nome(parâmetros) : tipo-retorno {propriedades} Nome • Recomenda-se seguir uma forma: verbo + complemento; • A primeira letra em minúsculo e as iniciais dos outros nomes em maiúsculo; • Deve remeter à perspectiva externa (serviços): obterIdadeMedia() é melhor que calcularIdadeMedia() Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 18 Especificação de Operações visibilidade nome(parâmetros) : tipo-retorno {propriedades} Parâmetros • Informações que o método recebe; • Uma operação pode ter 0 ou muitos parâmetros; • Ideal usar o mínimo de parâmetros possíveis (diminui acoplamento); Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 19 Especificação de Operações visibilidade nome(parâmetros) : tipo-retorno {propriedades} Tipo de retorno • Representa o tipo do valor retornado pela operação; • Depende da linguagem de programação; • Pode ser um tipo primitivo ou um TAD. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 20 Especificação de Operações visibilidade nome(parâmetros) : tipo-retorno {propriedades} Propriedades • Ficam entre chaves, podem ser: – isQuery: Não modifica o estado do objeto – sequential – guarded – concurrent Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 21 Úteis na modelagem de sistemas com múltiplas threads (multi threaded) Especificação de Operações Criação e destruição • Não são obrigatórios no diagrama, mas podem ser representados; • Algumas ferramentas CASE geram automaticamente; • Os construtores podem ter parâmetros que inicializam os atributos. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 22 Especificação de Operações Getters e Setters (Seletores e Modificadores) • Úteis para garantir o encapsulamento; • Os seletores começam normalmente com get ou obter seguido do atributo e possuem retorno igual ao tipo do atributo; • Os modificadores não possuem retorno; • Nem sempre é necessário. Exemplo, atributos estáticos (sem setter). Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 23 Tópicos • Introdução • Especificação de atributos • Especificação de operações • Especificação de associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 24 Especificação de Associações Relacionamentos de dependência • Não identificado no modelo de classes de domínio; • Tipos: – Dependênciapor atributo: A possui um atributo cujo tipo é B – Dependência por variável global: A utiliza uma variável global cujo tipo é B; – Dependência por variável local: A possui uma operação cuja implementação utiliza uma variável local de tipo B. – Dependência por parâmetro: A possui uma operação, que possui pelo menos um parâmetro, cujo tipo é B. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 25 Especificação de Associações Relacionamentos de dependência • São representados por uma linha tracejada ligando as classes; • Podem haver estereótipos indicando o tipo de dependência; Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 26 Especificação de Associações Transformação (associação dependência) • Algumas das associações definidas no modelo de classes de domínio podem ser, na verdade dependências; • Quanto mais dependência entre as classes, menor será o encapsulamento. • Então, cuidado... Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 27 Especificação de Associações Transformação (associação agregação ou composição) • Agregação X Composição (Mais forte) • A agregação é mais empregada no modelo de classes de domínio, mas algumas delas virarão composição no modelo de classes de especificação; • Nessas associações, o todo cria as partes quando requisitado. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 28 Especificação de Associações Restrições das associações • Algumas restrições podem ser realizadas sobre as associações; • Existem duas: – Subset (subconjunto): Indicam que os objetos ligados por uma das linhas são subconjunto dos ligados por outra. – Xor (exclusivo): Indica que somente uma das associações pode ocorrer entre os objetos das classes. – São representadas por uma linha pontilhada ligando as associações. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 29 Especificação de Associações Restrições das associações Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 30 Especificação de Associações Navegabilidade • As associações podem ser bidirecionais ou unidirecionais; • Se nada for especificado, subtende-se que a associação é bidirecional; • No modelo de classes de especificação, deve-se definir a navegabilidade. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 31 Referências • BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro: Editora Campus, 2006. Princípios de Análise e Projeto de Sistemas com UML - 2ª edição 32
Compartilhar