97
Marcos Dósea [email protected] Análise e Projeto de Software Parte II

Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

  • Upload
    buinhu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Marcos Dó[email protected]

Análise e Projeto de SoftwareParte II

Page 2: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Agenda

• Aula III– Análise de Software Orientado à Objetos

Page 3: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Motivação

Marcos Dó[email protected]

Page 4: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

O que é análise e projeto?

Page 5: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Qual a importância?

Page 6: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Por onde começar?

• Visão do Sistema

Modelagem de Negócio

Requisitos

Análise

Projeto

Implementação

Page 7: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Análise de Software Orientada a Objetos

Marcos Dó[email protected]

Page 8: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Agenda

• Introdução• Analisar Caso de Uso

Page 9: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• Onde estamos?

Page 10: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• Análise x Projeto

Modelo complexo.Modelo simples

Requisitos Funcionais e Não Funcionais

Requisitos Funcionais

Representação próximado código.

Estrutura geral daarquitetura do sistema

Detalha operações e atributos dos objetos

Comportamento caixapreta

Foco na soluçãoFoco no problemaProjetoAnálise

Page 11: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• O que faremos?– Análisar o Software

Page 12: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

Analisar caso de usoProjetista

Projetista de banco de dados

Revisar projeto

Projetar caso de uso

Arquiteto

Revisor do projeto

Projetar base de dados

Projetar arquitetura

Projetar subsistema

Projetar classes

Page 13: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Analisar Caso de Uso

1) Identificar as Classes de Análise2) Identificar Persistência3) Identificar Responsabilidades das

Classes4) Identificar Atributos e

Relacionamentos

Page 14: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Para cada Caso de Uso são identificadasos três tipos de classe de análise:– Fronteira: modela iteração entre ator e sistema.

– Entidade: Modela a informação manipuladapelo sistema. Conceito análogo ao modeloER.

– Controle: Controla o fluxo de execução do caso de uso.

Page 15: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Exemplo

Page 16: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Como encontrar?– Classes de Fronteira?– Classes de Controle?– Classes de Entidade?

Page 17: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Classes de Fronteira– Regra: Uma classe para cada interaçãoentre ator e um caso de uso.

Usuário

Devolver Livro

TelaDevolverLivro

Page 18: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Classe de Controle– Regra: Uma classe de controle para cadacaso de uso. Quando muito simples pode-se utilizar uma única classe de controle paravários casos de uso. Outra possibilidade éusar uma classe de controle por entidademanipulada.

Page 19: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Classe de Controle

Devolver Livro

Usuário

ControladorBibliotecaControladorDevolucao

ou ou

ControladorLivro

Page 20: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Classe de Entidade– Regra: Abordagem tradicional de filtrarsubstantivos. Ex: Objetos Físicos outangíveis, Lugares, Papéis de Pessoas, Eventos, etc.

Balconista

Usuario

Livro

Emprestimo

Page 21: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Identificar as Classes de Análise

• Classe de Entidade – Passo a Passo– Identifique substantivos nas fontes de informação (modelo de negócio, casos de uso, glossário, etc.).

– Remova candidatos redundantes e vagos.– Remova atores que apenas interagem com o sistema mas não participam da modelagem.

– Remova atributos (serão pensados maistarde) e operações (devem ficar na classecontroladora).

Page 22: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Analisar Caso de Uso

1) Identificar as Classes de Análise2) Identificar Persistência3) Identificar Responsabilidades das

Classes4) Identificar Atributos e

Relacionamentos

Page 23: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Persistência

• Identifica entre as classe de análise do tipo entidade aquelas que deverão ser persistidas.

• Classes persistentes são aquelas cujosatributos devem ser armazenados emmeio não volátil (Ex: SGBD).

• Para cada classes persistente criar umaclasse de cadastro usando o esteriótipo<<entity collection>>

Page 24: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Persistência

• Classes de Entidade Persistentes

Livro BalconistaUsuarioEmprestimo

CadastroLivros<<entity collection>>

CadastroUsuarios<<entity collection>>

CadastroBalconistas<<entity collection>>

CadastroEmprestimos<<entity collection>>

Page 25: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Analisar Caso de Uso

1) Identificar as Classes de Análise2) Identificar Persistência3) Identificar Responsabilidades das

Classes4) Identificar Atributos e

Relacionamentos

Page 26: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

3) Identificar Responsabilidadesdas Classes

• Os diagramas de sequência e comunicação devem ser utilizados nessafase para identificação das responsabilidades das classes.

• Cada caso de uso analisado adicionanovos comportamentos as classes.

• Cada caso de uso pode gerar um ou maisdiagramas de sequência.

Page 27: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

3) Identificar Responsabilidadesdas Classes

Page 28: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

3) Identificar Responsabilidadesdas Classes

• Métodos identificados– Importante utilizar boas ferramentas de modelagem para automatizar o processo.

TelaDevolverLivro<<<boundary>>>

+devolverLivro()

Emprestimo

CadastroEmprestimos<<entity collection>>

+buscarEmprestimo()+atualizaEmprestimo()

Page 29: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Analisar Caso de Uso

1) Identificar as Classes de Análise2) Identificar Persistência3) Identificar Responsabilidades das

Classes4) Identificar Atributos e

Relacionamentos

Page 30: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Identificar Atributos e Relacionamentos

• Onde encontrar os atributos e relacionamentos?– Modelo de negócio– Requisitos de Usuário e de Sistema– Glossário– etc.

Page 31: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Identificar Atributos e Relacionamentos

• As classes identificadas não funcionamsem relacionar-se com as outras.

• Os diagramas de sequência e comunicação são muito úteis nessatarefa.

• Para cada ligação nesses diagramas deveser gerado um relacionamento.

Page 32: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Identificar Atributos e Relacionamentos

• Exemplo:

A ligação indica que

existe um

relacionamento entre

a classe

ControladorDevolucao

e a classe

CadastroEmprestimo

Page 33: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Identificar Atributos e Relacionamentos

• Relacionamentos Identificados

TelaDevolverLivro<<<boundary>>>

+devolverLivro(emprestimo: Emprestimo)

ControladorDevolucao<<control>>

+buscarEmprestimo(emprestimo: Emprestimo)+devolverLivro(emprestimo: Emprestimo)+calculaMultaPorAtraso(emprestimo: Emprestimo)

CadastroEmprestimos<<entity collection>>

+buscar(emprestimo: Emprestimo)+atualizar(emprestimo: Emprestimo)

Emprestimo<<entity>>

*

1

1

*

11

Livro<<entity>>

possui

**

Balconista<<entity>>

é realizado

1*

Page 34: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Identificar Atributos e Relacionamentos

• Atributos Identificados

TelaDevolverLivro<<<boundary>>>

+devolverLivro(emprestimo: Emprestimo)

ControladorDevolucao<<control>>

+buscarEmprestimo(emprestimo: Emprestimo)+devolverLivro(emprestimo: Emprestimo)+calculaMultaPorAtraso(emprestimo: Emprestimo)

CadastroEmprestimos<<entity collection>>

+buscar(emprestimo: Emprestimo)+atualizar(emprestimo: Emprestimo)

Emprestimo<<entity>>

*

1

1

*

11

Livro<<entity>>

+isbn+nomepossui

**

Balconista<<entity>>

+cpf+nome

é realizado

1*

Page 35: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Em resumo…

Modelo de Análise

Documento da

arquitetura

Modelo de caso de uso

Documento de

requisitos

Glossário

Analisar

caso de usoRealização de caso de uso

(atualizada)

Classes de Análise

(detalhada)

Page 36: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Próximos passos…

Analisar caso de usoProjetista

Projetista de banco de dados

Revisar projeto

Projetar caso de uso

Arquiteto

Revisor do projeto

Projetar base de dados

Projetar arquitetura

Projetar subsistema

Projetar classes

Page 37: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Atividade Sala III

Crie o modelo de análise para o Caso de Uso Emprestar Livro

Page 38: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Agenda

• Aula IV– Projetar Arquitetura– Projeto do Software

Page 39: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

Marcos Dó[email protected]

Page 40: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Agenda

• Introdução• Projetar Arquitetura

Page 41: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• Onde estamos?

Page 42: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• O que faremos?– Projetar Arquitetura

Page 43: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

Analisar caso de usoProjetista

Projetista de banco de dados

Revisar projeto

Projetar caso de uso

Arquiteto

Revisor do projeto

Projetar base de dados

Projetar arquitetura

Projetar subsistema

Projetar classes

Page 44: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

• Avaliar o conjunto das classes de análise.

• Definir elementos de projeto (classes de projeto e subsistemas) e organizá-los em pacotes.

• Definir a estrutura da aplicação para os projetistas possam detalhar a aplicação nas próximas fases.

Page 45: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

2) Identificar subsistemas3) Identificar oportunidades de Reuso4) Definir a estrutura da aplicação

Page 46: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Para cada classe de análise deve-se definir se ela dará origem a:– Uma classe de projeto.– Mais de uma classe de projeto.– Um subsistema– Zero classes de projeto, ela seráincorporada a uma outra classe de projetojá existente.

• A definição do mapeamento é muitodependente da experiência do arquitetoe do estilo arquitetural escolhido.

Page 47: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Algumas sugestões para definição…– Sugestão 1) 1 classe de análise é mapeadapara 1 classe de projeto se ela for simples e representar uma única abstração.

– Sugestão 2) Classes de análises muitosimples devem ser combinada em uma únicaclasse de projeto.

– Sugestão 3) Classes de análises muitocomplexas devem ser quebradas em classes mais simples ou gerar um subsistema.

Page 48: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Algumas sugestões para definição…– Sugestão 4) Toda classe de entidade gerauma classe de projeto excluindo o esteriótipo.

Page 49: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Exemplos:

TelaDevolverLivro<<<boundary>>>

+devolverLivro()

TelaDevolverLivro

+processa()ITela

Para cada classe de fronteira identificada que for uma tela de

interação com o usuário deve-se criar uma classe com o

mesmo nome que implementa a interface ITela. Essa classe

deve conter apenas o método processa() que obtém os dados

da interface e realiza a próxima operação.

Page 50: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Exemplos:

Livro<<entity>>

+isbn+nome

Livro

+isbn+nome

Para cada classe de entidade identificada deve existir uma

classe de projeto correspondente sem o esteriótipo.

Page 51: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

• Exemplos:ControladorEmprestimo

<<control>>

+emprestarLivro()

ControladorDevolucao<<control>>

+buscarEmprestimo()+devolverLivro()+calculaMultaPorAtraso()

Classes de controle que manipulem uma mesma entidade

devem ser unidas em uma única classe que implementa uma

interface de projeto que vai unir as interfaces dessas classes

de análise. O nome da classe de projeto e da interface criada

deve referenciar a entidade que ela manipula.

ControladorLivro

+buscarEmprestimo()+devolverLivro()+calcularMultaAtraso()+emprestarLivro() IControladorLivro

Page 52: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

2) Identificar subsistemas3) Identificar oportunidades de Reuso4) Definir a estrutura da aplicação

Page 53: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Subsistemas

• O que é um subsistema?

O subsistema divide o sistema em partesindependentes (componentes) que possuemuma interface bem definida e que pode ser desenvolvido, testado e implantado de forma

independente dos demais.

Page 54: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Subsistemas

• O que é um subsistema?– Cada subsistema deve possuir uma classefachada que implementa a sua interface.

Subsistema

FachadaSubsistema

ISubsistema

Page 55: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Subsistemas

• Como identificar subsistemas?– Experiência do arquiteto conta muito.– Algumas regras que podem ajudar:

• Sugestão 1) Classes de análise fronteira quefazem interface com outros sistemas sãonormalmente candidatos a serem subsistemas.

ComunicacaoEditora<<boundary>>

+atualizarLivro(isbn: long)

ComunicacaoEditora

IComunicacaoEditora

+atualizarLivro(isbn: String)

Fachada

Page 56: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Identificar Subsistemas

• Como identificar subsistemas?• Sugestão 2) Classes que fornecem serviçoscomplexos.

• Sugestão 3) Classes utilitárias e que dão suporteao acesso ao banco de dados.

• Sugestão 4) Classes reusáveis autocontidascomo softwares de comunicação, estruturas de dados, etc.

ComunicacaoCatraca

IComunicacaoCatraca

+registraEntrada(matricula: String)+registraSaida(matricula: String)

Fachada

Page 57: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

2) Identificar subsistemas3) Identificar oportunidades de Reuso4) Definir a estrutura da aplicação

Page 58: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

3) Identificar Oportunidades de Reuso

• Verifica se um subsistema pode ser comprado ou reutilizado, ao invés de desenvolvido.– Ex: Subsistema da catraca e utilitários.

• Deve-se analisar o impacto de mudar a interface do subsistema para adaptá-la ànecessidade do novo sistema.

• Deve-se também avaliar a possibilidade de modificar um subsistema existente de forma a torná-lo reutilizável.

Page 59: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Arquitetura

1) Definir o mapeamento entre as classes de análise e os elementos de projeto

2) Identificar subsistemas3) Identificar oportunidades de Reuso4) Definir a estrutura da aplicação

Page 60: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• O arquiteto define o estilo arquitetural que seráadotado, os padrões de projeto e idiomas.

• Essas definições devem estar registradas no documento de arquitetura.

• O documento de arquitetura é normalmentepadrão para todos os sistemas de organizaçãomas deve ser atualizado a cada necessidade de sistema.

• As regras de mapeamento devem ser atualizadaspara adptar-se à estrutura da aplicaçãoescolhida.

Page 61: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Exemplo: Biblioteca– Estilo Arquitetural: Camadas (Layer)– Padrões de Projeto:

• Façade (Fachada): Para abstrair a camada de negócio.

• Singleton: Apenas uma instância para cadaobjeto responsável pela pela persistência dos dados.

Page 62: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Exemplo: Biblioteca– Estilo Arquitetural: Camadas (Layer)

Interface com o usuário(GUI)

Negócio

Dados

Page 63: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Por usar o estilo em camadas?– Mudanças em uma camada não afeta as camadas adjascentes, desde que as interfaces sejam preservadas.

– Uma mesma versão da camada trabalhandocom diferentes versões de outra camadas.• Ex: Diferentes interfaces gráficas

Diferentes forma de acesso a dados.

Page 64: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• No nosso exemplo da biblioteca temos:– Camada GUI: Responsável por obter osdados da interface e invocar um método de negócio

– Camada de Negócio: Contém toda lógica de negócio da aplicação e caso necessáriochama a camada de acesso a dados.

– Camada de Dados: Contém toda lógicanecessária para acessar um meiopersistente.

Page 65: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Exemplo: Criando a Camada GUI

TelaDevolverLivro<<<boundary>>>

+devolverLivro()

Interface com o usuário(GUI)

TelaDevolverLivro

+processa()

ITela

Análise Projeto

Page 66: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Por que utilizar essa estrutura?– Define uma forma padrão para processar osdados provenientes da interface.

Page 67: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Exemplo: Criando a Camada Negocio

Análise Projeto

Negócio

ControladorEmprestimo<<control>>

+emprestarLivro()

ControladorDevolucao<<control>>

+buscarEmprestimo()+devolverLivro()+calculaMultaPorAtraso()

ControladorLivro

IControladorLivro

+buscarEmprestimo()+devolverLivro()+calcularMultaAtraso()+emprestarLivro()

IFachada

+buscarEmprestimo()+devolverLivro()+calcularMultaAtraso()+emprestarLivro()

Fachada

Page 68: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Por que utilizar essa estrutura?– A Fachada oferecer uma interface únicapara um conjunto de interfaces de um subsistema.

– Minimiza a dependência entre ossubsistemas.

– Facilidade para os clientes da camada de negócio que precisam conhecer apenas umaúnica classe.

Page 69: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Exemplo: Criando a Camada de Dados

AnáliseProjeto

Dados

Emprestimo<<entity>>

CadastroEmprestimos<<entity collection>>

+buscar()+atualizar()

*1 IRepositorioEmprestimo

+buscar()+atualizar()+inserir()

RepositorioEmprestimoBDR

+getInstance()

Emprestimo

Page 70: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Por que utilizar essa estrutura?

IRepositorioEmprestimo

+buscar()+atualizar()+inserir()

RepositorioEmprestimoBDR

+getInstance()

RepositorioEmprestimoBDOO

+getInstance()

RepositorioEmprestimoFile

+getInstance()

Page 71: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

• Por que utilizar essa estrutura?– O padrão singleton:

• Usado porque é desnecessário existirem váriasinstâncias de classes para acessar o banco de dados. Melhor utilização da memória.

• Define como acessar de forma controlada umaúnica instância da classe.

• Permite facilmente variar o número de instâncias caso seja necessário.

Page 72: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

4) Definir a Estrutura daAplicação

GUI

Negocio

Dados

ITela

TelaDevolverLivro

+processa()

Fachada

IControladorLivro

IFachada

ControladorLivro ControladorAluno

IControladorAluno

IRepositorioEmprestimo

RepositorioEmprestimoBDR

+getInstance()

Page 73: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Em Resumo…

Modelo de análise e projeto

(classes de análise)

Projetar ArquiteturaDocumento

de requisitos

Modelo de casos de uso

Documento daarquitetura

Mapeamento das classes de análise em elementos de projeto

Modelo de análise e projeto

(classes de projeto e

subsistemas)

Page 74: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Próximos passos…

Analisar caso de usoProjetista

Projetista de banco de dados

Revisar projeto

Projetar caso de uso

Arquiteto

Revisor do projeto

Projetar base de dados

Projetar arquitetura

Projetar subsistema

Projetar classes

Page 75: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projeto de Software Orientada a Objetos

Marcos Dó[email protected]

Page 76: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Agenda

• Introdução• Projetar Caso de Uso

Page 77: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• Onde estamos?

Page 78: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• Análise x Projeto

Modelo complexo.Modelo simples

Requisitos Funcionais e Não Funcionais

Requisitos Funcionais

Representação próximado código.

Estrutura geral daarquitetura do sistema

Detalha operações e atributos dos objetos

Comportamento caixapreta

Foco na soluçãoFoco no problemaProjetoAnálise

Page 79: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Introdução

• O que faremos?– Projetar o Software

Page 80: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Fluxo de Análise e Projeto

Analisar caso de usoProjetista

Projetista de banco de dados

Revisar projeto

Projetar caso de uso

Arquiteto

Revisor do projeto

Projetar base de dados

Projetar arquitetura

Projetar subsistema

Projetar classes

Page 81: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Caso de Uso

• Refinar as realizações de casos de usosubstituindo os elementos de análise (elaboradas na análise de casos de uso) por elementos de projeto definido no mapeamento projeto da arquitetura.

• Incorporar persistência nas realizações• O modelo final serve de referência para a implementação do caso de uso

Page 82: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Caso de Uso

1) Refinar as realizações de casos de uso2) Simplificar os diagramas de interação.

Page 83: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Substitui as classes de projeto e ouinterfaces dos subsistemas associadosseguindo as recomendações da arquitetura.

• Incorporar a persistência• Atualizar os diagramas que realizam o casode uso:– Diagramas de interação– Diagramas de Classes

Page 84: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Como era a análise?

: Balconista

: TelaDevolverLivro<<boundary>>

: ControladorDevolucao<<control>>

: Emprestimo<<entity>>

: CadastroEmprestimos<<entity collection>>

1 : devolverLivro()

2

<<create>>

34 : devolverLivro()

5 : buscar()

6

7 : calculaMultaPorAtraso()

8 : atualizar()

9

1011 : resultado()

Page 85: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Como era na análise?

Page 86: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Como ficou no projeto?– Para projetar as classes deve-se obedecer as regras de mapeamento entre classes de análise e classe de projeto definidas peloarquiteto.

– Para cada diagrama de interação de análisedeve ser criado um diagrama de interação com as classes de projeto.

– É recomendado também criar o diagrama de classes de projeto que realizam o caso de uso.

Page 87: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Lembrando a Arquitetura…GUI

Negocio

Dados

ITela

TelaDevolverLivro

+processa()

Fachada

IControladorLivro

IFachada

ControladorLivro ControladorAluno

IControladorAluno

IRepositorioEmprestimo

RepositorioEmprestimoBDR

+getInstance()

Page 88: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Como ficou no projeto?

Page 89: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

1) Refinar as Realizações de Casode Uso

• Como ficou no projeto?

Page 90: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Simplificar os diagramas de interação

• Identifique subfluxos comuns nos diagramas de interação e encapsule-os em subsistemas (possivelmente novos)

• Substitua os elementos internos pela interface dos subsistemas (nos diagramas)

• Interações internas ao subsistema serão descritas na atividade Projetar subsistema

Page 91: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

2) Simplificar os diagramas de interação

• Quando encapsular fluxos em subsistemas?– Quando um subfluxo:

• ocorre em vários casos de uso• possui potencial de reuso• é complexo e de fácil encapsulamento• é responsabilidade de uma equipe/pessoa específica• produz um resultado bem definido• é encapsulado dentro de um componente de implementação

• É importante nessa etapa estabilizar a interface.

Page 92: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projetar Caso de Uso

Classes de projeto

Projetar

Caso de Uso

Caso de uso

Realização de

caso de uso

Subsistemas de projetoDocumento de

requisitos

Realização de

caso de uso

Page 93: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Atividade Sala IV

Criar o modelo de projeto para o Caso de Uso Emprestar Livro.

Page 94: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projeto da Disciplina

1) Criar o modelo de análise para o estudode caso proposto, ou seja, para cadacaso de uso identificado, apresentar osdiagramas de interação e o diagramade classes que o realizam. Crie um documento único que agrupe os váriosmodelos de análise criados.

Page 95: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projeto da Disciplina

2) Definir (i) arquitetura do sistema do projeto proposto e (ii) as regras de mapeamento para os elementos de projeto. Utilize o template do RUP para documentação desses doisdocumentos.

Page 96: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projeto da Disciplina

3) Crie o modelo de projeto de software utilizando as regras de mapeamentodefinidas pelo arquiteto. Crie um documento único que agrupe os váriosmodelos de projeto criados.

Page 97: Análise e Projeto de Software Parte II · Atividade Sala III Crie o modelo de análise para o Caso de Uso Emprestar Livro. Agenda • Aula IV ... Definira Estruturada Aplicação

Projeto da Disciplina

Em resumo...(1) Documento com Modelos de Análise(2)Documento da Arquitetura(3)Documento com Mapeamentos entre

Modelos de Análise e Projeto(4)Documento com Modelos de Projeto