Fundamentos de Engenharia de Software
Requisitos de Software
(Classes de Domínio)
Modelo de Requisitos de SW
Modelo de Casos de Uso
Modelo de Classes de Domínio (MCD)
Maquete
Artefatos de um MCD
Classes:
Relações entre objetos:
associações e suas respectivas multiplicidades; e
Relação entre classes:
generalização e herança
Como descrever modelos de Domínio?
Linguagem padrão: Unified Modeling Language
(UML)
Linguagem gráfica
Como especificar a linguagem do modelo de classes?
Exemplo de diagrama de classes
Atributos
Qualificadores de atributos
público (public): qualquer classe tem acesso ao elemento.
representado por +.
protegido (protected): qualquer descendente da classe tem acesso ao elemento.
representado por #.
privado (private): apenas a própria classe tem acesso ao elemento.
representado por -.
pacote (package): apenas as classes do mesmo pacote têm acesso ao elemento.
representado por ~.
Tipos de dados UML
Boolean –valor lógico (verdadeiro ou falso);
Integer – um número inteiro;
String – uma seqüência de caracteres;
UnlimitedNatural – conjunto dos números naturais.
Associações UML
<1 pessoa> Emprego <0..n empresa>
<1 empresa> Emprego <0..n pessoa>
<1 empregado > Gerencia <0..n empregado>
Multiplicidade
0..1 – Opcional
1..1
–Obrigatório existir um objeto, freqüentemente
representado por apenas 1
1..5
– Número limitado de objetos entre um e cinco
0..* –Número ilimitado de objetos (possivelmente nenhum
- representada por apenas *);
1..*
– Número ilimitado de objetos (pelo menos um)
Multiplicidades
Classes associativas
<1 emprego> = <1 pessoa> Emprego <1 empresa>
+data de início+ data de fim + salário
Generalização
Classe derivada, subclasse ou classe filha:
classe que herda parte dos seus atributos e
métodos de outra classe;
Classe base, superclasse ou classe pai:
é uma classe a partir da qual classes novas podem
ser derivadas.
Herança
Salada é um tipo de Produto
Agregação e composição
restaurante possui 0.. n mesas
pedido é composto por itempedido (pelo menos 1)
Níveis de modelo de classes
O processo MDA faz utiliza pelo menos três
diferentes níveis de Modelos de Classe:
Domínio;
Análise;
Projeto.
Roteiro para construção do MCD
1 Identificar as classes
Resultado: Lista de classes.
2 Identificar os atributos
Resultado: Lista de Classes com seus respectivos atributos.
3 Identificar as associações binárias
Resultado: Classes, atributos e suas associações binárias
4 Identificar os supertipos e subtipos
Resultado: Modelo de classes com a hierarquia de herança
5 Identificar e formalizar as associações múltiplas
Resultado: Modelo de classes com a especificação não-ambígua das
associações de ordem superior a 2.
Modelos de classes bem formados (Flavin)
R1-Toda classe deve estar associada a uma funcionalidade bem definida do sistema
que está sendo modelado.
R2-Toda classe deve possuir um ou mais atributos cuja combinação identifique de
forma única todos objetos da classe.
R3-Todo atributo de uma classe deve ser aplicável a todos os objetos da classe. Esta
regra ainda pode ser reforçada por duas sub-regras:
3.1 - os valores de todos os atributos não-identificadores dependem unicamente dos
identificadores
3.2 - uma propriedade de uma hierarquia genérica deve ser atribuída somente à classe
de nível mais alto da hierarquia.
R4-Uma classe possui uma declaração formal se obedece às Regras 1, 2 e 3 e possui
pelo menos um atributo não-identificador diretamente associada a ela.
Modelos de classes bem formados
R5-Duas classes A1 e A2, subclasses de A, são ditas independentes se obedecerem
a um ou ambos os casos abaixo:
5.1 - A1 e A2 obedecem às Regras de 1 a 4 e, após a aplicação da Regra 3, existe
pelo menos um atributo não-identificador associado a um dos subtipos e não
ao outro;
5.2 - Existe uma regra de negócio que declara que A1 e A2 pertencem a
subconjuntos disjuntos de A e atribui, a cada objeto das subclasses, valores
distintos e um subconjunto independente de identificadores primários.
R6-A abstração da interação entre diversas classes é uma classe formalmente
declarada se as seguintes condições forem satisfeitas:
6.1 - As Regras 1 a 4 se aplicam a esta classe;
6.2 - Os objetos desta classe têm a capacidade interagir com outros objetos do
modelo, i.e., capaz de serem formalmente associados a outros objetos do
modelo.
Modelos de classes bem formados
R7-Um conjunto de classes é uma descrição suficiente do modelo se:
7.1 - Todas as classes de domínio estão presentes no modelo
7.2 - Qualquer elemento do dicionário de dados ou é um atributo de uma classe ou
pode ser gerado pela intersecção de objetos de duas ou mais classes.
R8-Um modelo de classes é chamado de modelo de mínima complexidade se o
conjunto de classes que o compõe é suficiente e contém somente os objetos
necessários.
R9-Um modelo de classes é modular se não existir nenhuma classe cujos atributos
sejam dependentes do identificador primário de outras classes independentes.
Um exemplo de modelo de classes
Download

Análise e Projeto de Sistemas de Informação