Grátis
117 pág.

Denunciar
Pré-visualização | Página 21 de 25
documentos e vários tipos de classes multimédia. Na fase de análise apenas nos interessam as classes do domínio do negócio. Álvaro Rocha (2008), O Essencial da Análise de Sistemas. UFP Página 98 Um atributo de uma classe da fase de análise representa uma peça de informação que é relevante para descrição da classe dentro do domínio de negócio em análise. Um atributo contém informação que os analistas ou utilizadores consideram que o sistema deve guardar. Por exemplo, um atributo possível e relevante de uma classe empregado será nome de empregado, ao passo que cor do cabelo do empregado não será um atributo relevante. Uma operação, ou serviço, de uma classe da fase de análise é onde o comportamento da classe é definido. Nas fases de desenvolvimento posteriores, as operações serão convertidas em métodos. Contudo, e uma vez que os métodos estão mais relacionados com a construção do software, nesta fase do desenvolvimento usamos o termo operação para descrever as acções às quais as instâncias da classe serão capazes de responder. 6.3.2 Relacionamentos Podem ser definidos muitos tipos de relacionamentos, mas todos podem ser classificados dentro de três categorias básicas de mecanismos de abstracção de dados: relacionamentos de generalização, relacionamentos de agregação e relacionamentos de associação. Relacionamento de generalização A generalização proporciona aos analistas criar classes que herdam atributos e operações de outras classes. Os analistas criam superclasses que contêm os atributos e operações básicas que podem ser usadas em várias subclasses. As subclasses herdam os atributos e operações das suas superclasses e também podem conter atributos e operações apenas seus. Por exemplo, a classe cliente e a classe empregado podem ser generalizadas na classe pessoa pela extracção de atributos e operações que têm em comum e colocando-os numa nova superclasse denominada pessoa. Desta forma, os analistas podem reduzir a redundância na definição das classes pois os elementos comuns apenas são definidos uma vez, sendo reusados nas subclasses. Álvaro Rocha (2008), O Essencial da Análise de Sistemas. UFP Página 99 Relacionamento de agregação Os relacionamentos de generalização são bidireccionais por natureza. Os analistas podem usar a decomposição para partes de uma classe não cobertas que podem ser modeladas separadamente. Por exemplo, se uma porta e um motor são partes de um carro, então um carro tem as partes porta e motor. Os analistas podem deter-se entre as várias partes para descobrirem novas partes não consideradas até então. Por exemplo, os analistas podem perguntar “Que outras partes tem o carro?” ou “A quais outras partes pode a porta pertencer?”. Relacionamento de associação Existem outros tipos de relacionamentos que não são cobertos nem pela generalização nem pela agregação. Por exemplo, um paciente marca uma consulta. Pode ser argumentado que paciente é parte de uma consulta. Porém, existe clara diferença semântica entre este tipo de relacionamento e aquele que modela o relacionamento entre portas e carros. Como efeito, é apenas considerado como associação entre instâncias de classes. 6.3.3 Descrições Classes-Responsabilidades-Colaborações O conjunto de descrições Classes-Responsabilidades-Colaborações (CRC) deve conter toda a informação necessária para construir um modelo estrutural lógico do domínio do problema em análise. Cada descrição CRC apresenta os elementos essenciais de uma classe. A tabela 6.5 apresenta um exemplo. Álvaro Rocha (2008), O Essencial da Análise de Sistemas. UFP Página 100 Tabela 6.5: Exemplo de Classes-Responsabilidades-Colaborações (CRC). Nome da classe: Paciente ID: 3 Tipo: Concreta, domínio Descrição: Um indivíduo que necessita receber cuidados de saúde Caso de uso associado: 2 Responsabilidades Marcar consulta Determinar última consulta Mudar estado Fornecer histórico clínico _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ Colaboradores Consulta _____________________________ _____________________________ História clínica _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ Atributos: Valor (duplo) _____________________________ Seguro (texto) _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ _____________________________ Relacionamentos: Generalização (um tipo de): Pessoa Agregação (é parte de): História clínica Outras Associações: Consulta 6.3.4 Elementos de um Diagrama e Classes A figura 6.4 apresenta o diagrama de classes para reflectir as classes e os relacionamentos necessárias para os casos de uso do sistema de marcação de consultas. Cada classe é desenhada com um rectângulo dividido em três partes com o nome da classe no topo, os atributos no meio e as operações no fundo. Por exemplo, podemos identificar Pessoa, Médico, Paciente, História Clínica, Consulta, Factura e Sintoma como algumas das classes do diagrama. Os atributos de uma classe e os seus valores definem o estado de cada objecto que é criado a partir da classe, e o comportamento é representado pelas operações. Álvaro Rocha (2008), O Essencial da Análise de Sistemas. UFP Página 101 Figura 6.4: Diagrama de Classes para o Sistema de Marcação de Consultas. Os atributos são propriedades da classe sobre os quais pretendemos capturar informação. Notemos que a classe Pessoa contém os atributos nome, morada, telefone e data de nascimento. Por vezes, poderemos pretender guardar em atributos informação derivada de outros atributos, que são atributos calculados ou derivados de outros atributos. O nome dos atributos derivados começa por uma barra antes do nome. Notemos que a classe pessoa contém um atributo derivado, que é o atributo “/idade”, o qual pode ser determinado subtraindo a data de nascimento à data actual. Também é possível mostrar a visibilidade de um atributo no diagrama de classes. A visibilidade de um atributo pode ser pública (+), protegida (#) ou privada (-). Um atributo público é Álvaro Rocha (2008), O Essencial da Análise de Sistemas. UFP Página 102 aquele que não está escondido para qualquer outro atributo. Com efeito, outros objectos podem alterar o seu valor. Um atributo protegido é aquele que está escondido para todas as outras classes excepto para as suas subclasses imediatas. Um atributo privado é aquele que está escondido para todas as outras classes. A visibilidade por defeito para um atributo é privada. As operações são acções ou funções que as classes podem realizar. As funções que são comuns a todas as classes (por exemplo: criar uma nova instância, devolver um valor para um atributo particular, atribuir um valor a um atributo particular, ou eliminar uma instância) não são mostradas explicitamente dentro do rectângulo das classes. Assim, somente são incluídas aquelas operações que são únicas para cada classe, tais como a operação “cancelamento sem aviso” na classe Consulta e a operação “gerar cancelamento de taxa” na classe Factura. Tal como nos atributos, a visibilidade de uma operação pode ser designada