projeto oo aspectos avançados em engenharia de software aula 3 fernanda campos ufjf/dcc

21
PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Upload: internet

Post on 17-Apr-2015

107 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

PROJETO OO

Aspectos Avançados em

Engenharia de Software

Aula 3

Fernanda Campos

UFJF/DCC

Page 2: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

INTRODUÇÃO

O projeto transforma o modelo de análise em um modelo de projeto que serve de base para a construção do software.

Um projeto OO resulta num projeto que busca diferentes níveis de maturidade.

Os principais componentes do sistema são organizados em módulos ou subsistemas.

Page 3: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

INTRODUÇÃO

O projeto OO descreve a organização específica dos dados dos atributos e os detalhes procedimentais das operações.

Representam dados e partes de algoritmos de um sistema OO e são colaboradores da modularidade geral do sistema.

Page 4: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

INTRODUÇÃO

A natureza do projeto OO recai sobre sua habilidade de construir um projeto sobre quatro conceitos:

• Abstração

• Ocultação de informação

• Independência funcional

• Modularidade

Isso contribui para diminuir a complexidade.

Page 5: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

INTRODUÇÃO

Para construir um software OO temos que ter:• Projeto OO

• Programação OO

• Teste OO.

Page 6: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Sistemas

O modelo de projeto inclui quatro camadas em forma de pirâmide:• Componentes

• Interface

• Arquitetura

• Dados/classes.

Page 7: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Modelagem

1. Representação da hierarquia dos modelos2. Especificação da definição dos dados3. Especificação da lógica procedimental4. Indicação das seqüências procedimentais5. Representação dos estados e transições dos objetos6. Definição de classes e hierarquias7. Estabelecimento das operações das classes8. Definição detalhada das operações9. Especificação das conexões das mensagens10. Identificação de serviços exclusivos.

Page 8: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Baixo acoplamento em Projetos OO

Para alcançar o baixo acoplamento o número de interfaces entre módulos deve ser pequeno (pouca interface) e a quantidade de informações que se movem entre as interfaces devem ser mínimas também.

Quando os módulos se comunicarem esta comunicação deve ser de forma direta e explícita, evitando a comunicação através de áreas globais.

Page 9: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto OO e a UML

A UML é organizada em duas atividades principais de projeto:• Projeto do sistema

• O objetivo é representar a arquitetura do software

• Projeto de objetos• Focaliza a descrição dos objetos e suas interações

uns com os outros

Page 10: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Modelo de Projeto OO

As vezes é difícil ter a clara distinção entre Análise e Projeto OO.

A análise é uma atividade de classificação, isto é, é um esforço de determinar as classes de objetos que serão definidas na solução do problema, seus relacionamentos e comportamento.

Page 11: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Modelo de Projeto OO

O projeto OO permite que o engenheiro de software indique quais objetos serão derivados de cada classe e como esses objetos se relacionam.

Identifica como esses relacionamentos são alcançados, como os comportamentos são implementados e como a comunicação entre objetos deve ser implementada.

Page 12: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Atividades do Projeto OO Particionar o projeto de análise em sub-sistemas Identificar a concorrência que é ditada pelo sistema Alocar subsistemas a processadores e tarefas Desenvolver uma interface para o usuário Escolher uma estratégia básica para implementar a

gestão de dados Identificar os recursos globais e os mecanismos de

controle necessários para ter acesso a eles Projetar um mecanismo de controle adequado para o

sistema, incluindo gestão de tarefas Considerar como as situações limites devem ser

manipuladas Revisar e considerar concessões.

Page 13: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto dos sub-sistemas

São quatro os componentes principais:• Domínio do problema – implementa os requisitos do

usuário

• Interação homem-máquina – implementa a interface com o usuário

• Gerenciamento de tarefas – controla e coordena as tarefas concorrentes num mesmo sub-sistema ou entre vários sub-sistemas

• Gerenciamento de dados – responsável pelo armazenamento e recuperação dos objetos.

Page 14: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Objetos

Descrição do objeto:• A descrição de um objeto (uma instância de

uma classe ou subclasse) pode ter uma das duas formas.• Descrição do protocolo – descreve cada

mensagem que o objeto pode receber e as operações que o objeto realiza quando recebe a mensagem.

• Descrição da implementação – mostra a implementação detalhada (atributos, e operações) e cada mensagem que é passada para o objeto.

Page 15: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Objetos

Descrição do protocolo• Estabelece a interface do objeto definindo

cada mensagem que o objeto pode receber e as operações relacionadas ao recebimento das mensagens.• Conjunto de mensagens e comentários

correspondentes.

Page 16: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Objetos

Descrição da implementação• Mostra detalhes da implementação para cada

mensagem passada ao objeto.

• Esses detalhes incluem informações sobre partes privadas do objeto, isto é, detalhes internos sobre as estruturas dos dados que descrevem os atributos e detalhes procedimentais que descrevem as operações.

Page 17: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Algorítmos e Estrutura de Dados

Um algorítmo é criado para implementar a especificação de cada operação.

Em muitas classes o algorítmo é uma seqüência simples implementada num único módulo.

Entretanto, se a especificação é complexa é necessário modularizar a implementação.

Page 18: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Algorítmos e Estrutura de Dados

A estrutura dos dados é projetada ao mesmo tempo que os algorítmos.

Como os algorítmos manipulam os atributos das classes o projeto das estruturas dos dados terá forte impacto no projeto dos algorítmos.

Page 19: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Algorítmos e Estrutura de Dados

As operações podem ser divididas em três categorias:• Operações que manipulam dados (deletar,

selecionar, etc)

• Operações que executam o processamento

• Operações que monitoram a ocorrência e o controle de eventos.

Page 20: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Componentes

Um aspecto importante da qualidade do projeto de software é a MODULARIDADE, isto é, a especificação de componentes de programas (módulos) que são combinados para formar um programa completo.

Page 21: PROJETO OO Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos UFJF/DCC

Projeto de Interfaces e Componentes

Definir objetos e operações não é suficiente.

Durante o projeto temos que identificar as interfaces que existem entre objetos e as estruturas gerais dos objetos.