parte 1 - analise projeto oo - alan gavioli

90
Univ. Tecnológica Federal do Paraná Campus de Medianeira Curso de Pós-Graduação Lato Sensu em Engenharia de Software Prof. M.Sc. Alan Gavioli [email protected] ANÁLISE E PROJETO DE SISTEMAS ORIENTADOS A OBJETOS Parte 01

Upload: fabio-noth

Post on 16-Jan-2016

6 views

Category:

Documents


0 download

DESCRIPTION

Análise de Projetos UTFPR Medianeira

TRANSCRIPT

Page 1: Parte 1 - Analise Projeto OO - Alan Gavioli

Univ. Tecnológica Federal do Paraná

Campus de Medianeira

Curso de Pós-Graduação Lato Sensu

em Engenharia de Software

Prof. M.Sc. Alan Gavioli

[email protected]

ANÁLISE E PROJETO DE SISTEMAS

ORIENTADOS A OBJETOS

Parte 01

Page 2: Parte 1 - Analise Projeto OO - Alan Gavioli

INTRODUÇÃO

Ementa: Processo de análise de software orientada a objetos.

Processo de projeto de software orientado a objetos.Linguagem de modelagem UML. Ferramentas CASEaplicáveis.

Objetivos: O aluno deverá ser capaz de empregar apropriadamente

conceitos e frameworks da Engenharia de SoftwareOrientada a Objetos para realizar atividades de análise eprojeto de sistemas relacionados a domínios reais.

Page 3: Parte 1 - Analise Projeto OO - Alan Gavioli

INTRODUÇÃO

Aulas:

Expositivo-dialogadas, para apresentação dosconceitos.

Práticas para aplicação dos conceitos (maiorparte da carga horária).

Avaliação:

Atividades práticas relacionadas aos conteúdosdas aulas (individuais e em grupos).

Page 4: Parte 1 - Analise Projeto OO - Alan Gavioli

INTRODUÇÃO

Carga horária: 32 horas (4 sábados).

Requisitos para aprovação: Frequência às aulas: mínimo de 75%.

Média final >= 7,0.

Page 5: Parte 1 - Analise Projeto OO - Alan Gavioli

ESCOPO DA DISCIPLINA

ImplementaçãoTestes

ImplantaçãoManutenção

AnáliseProjeto

Processo da Engenharia de Software

Objetivo desta disciplina

Page 6: Parte 1 - Analise Projeto OO - Alan Gavioli

CUSTOS NO DESENV. DE SOFTWARE

Page 7: Parte 1 - Analise Projeto OO - Alan Gavioli

MODELAGEM DE SOFTWARE

Modelagem de software consiste na utilização denotações gráficas e textuais com o objetivo deconstruir modelos que representem as partesessenciais de um sistema, considerando-sediversas perspectivas diferentes ecomplementares.

Page 8: Parte 1 - Analise Projeto OO - Alan Gavioli

MODELO = DIAGRAMA + TEXTO

Diagramas fornecem representações concisas do sistema.Conforme o ditado: “Uma figura às vezes vale por 1.000palavras”.

Modelos da Eng. de SW também contêm informaçõestextuais.

Logo, dado um modelo de uma das perspectivas de umsistema, seu diagrama, juntamente com a informaçãotextual associada, formam a documentação deste modelo.

Page 9: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSO DE DESENVOLVIMENTO

As técnicas de modelagem perdem o sentido senão soubermos como elas se encaixam noprocesso de desenvolvimento (PD).

Por isso, antes de definir o que usar para modelar,é necessário definir o processo a ser utilizado nodesenvolvimento de um sistema.

PD: é a sequência de fases/atividades que podeser seguida para o desenvolvimento de sistemas.

Page 10: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSO E GERÊNCIA

A construção de um software é umempreendimento complexo, particularmente seenvolver muitas pessoas trabalhando durante umperíodo de tempo longo.

Essa é a razão pela qual projetos de softwareprecisam ser gerenciados.

Page 11: Parte 1 - Analise Projeto OO - Alan Gavioli

ELEMENTOS EM UM PROCESSO DE DESENV. DE SOFTWARE

Pessoas:

Que trabalharão no desenvolvimento: precisam serorganizadas para realizar o trabalho com correção eeficiência.

Cliente(s): a comunicação com o(s) cliente(s) precisaocorrer de modo adequado, para que os requisitos doproduto sejam atendidos.

Produto: é o que será desenvolvido, neste caso osoftware e outros itens associados a este.

Page 12: Parte 1 - Analise Projeto OO - Alan Gavioli

ELEMENTOS EM UM PROCESSO DE DESENV. DE SOFTWARE

Processo: precisa ser selecionado a fim de seadequar ao pessoal e ao produto.

Projeto: precisa ser planejado, com estimativas deesforço, tempo e custo financeiro para executar astarefas:

definição de produtos de trabalho;

estabelecimento de marcos de qualidade;

estabelecimento de mecanismos para monitorare controlar o trabalho definido no planejamento.

Page 13: Parte 1 - Analise Projeto OO - Alan Gavioli

ESCOLHA DO PROCESSO

É uma questão fundamental:

Definição do processo mais adequado ao tipo de softwaree à equipe que executará o projeto.

O gerente deve decidir qual é o modelo deprocesso mais apropriado para:

o cliente, que solicitou o produto, e as pessoas queexecutarão o trabalho;

as características que o produto deverá ter;

o ambiente de projeto no qual a equipe de softwaretrabalhará.

Page 14: Parte 1 - Analise Projeto OO - Alan Gavioli

FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO

São ferramentas que facilitam o desenv. desoftware. Elas auxiliam, por exemplo:

na construção dos modelos;

na integração do trabalho de cada membro da equipe;

no gerenciamento do andamento do desenvolvimento;

no aumento da produtividade e da qualidade do processo.

X

Page 15: Parte 1 - Analise Projeto OO - Alan Gavioli

FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO

Essas ferramentas são genericamente chamadasde CASE (Computer-Aided Software Engineering).

As ferramentas CASE mais usadas para análise eprojeto de software são as de modelagem,classificadas como ferramentas de edição.

Algumas vantagens em usar: Qualidade no processo e no produto final.

Produtividade.

Melhoria e redução de códigos de programação e decustos na manutenção.

Redução do retrabalho em todo o processo.

Page 16: Parte 1 - Analise Projeto OO - Alan Gavioli

FERRAMENTAS DE SUPORTE AO PROCESSO DE DESENVOLVIMENTO

Outras ferramentas importantes são, p. ex., as quefornecem suporte ao gerenciamento:

Desenvolver cronogramas de tarefas.

Definir alocações de verbas e pessoas.

Monitorar o progresso do processo e os gastos.

Gerar relatórios de gerenciamento.

Page 17: Parte 1 - Analise Projeto OO - Alan Gavioli

ANÁLISE DE SOFTWARE

Análise é a etapa do processo de Eng. deSoftware que inclui:

Estudo de Viabilidade: cronograma, custo etécnica (lembram das técnicas de estimativa APFe Use Case Points?);

Engenharia de Requisitos (lembram dadisciplina anterior?);

Modelagem em nível de análise (primeiraparte desta disciplina).

Page 18: Parte 1 - Analise Projeto OO - Alan Gavioli

PROJETO DE SOFTWARE

Projeto é a etapa seguinte à análise, e inclui:

Refinamento e expansão dos modelos deAnálise.

Construção de modelos de Projeto.

Validação da arquitetura candidata do software.

Page 19: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSOS DE DESENVOLVIMENTO

Os mais conhecidos e utilizados no mundosão:

Processo de desenvolvimento baseado naAnálise Essencial/Estruturada e naProgramação Estruturada.

Processo de desenvolvimento baseado emAnálise e Projeto Orientados a Objetos e naProgramação Orientada a Objetos.

Page 20: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSOS DE DESENVOLVIMENTO

Os momentos de cada um:

Análise e Programação Estruturada foramdominantes até aproximadamente oinício/primeira metade da década de 1990.

A partir da segunda metade da década de 1990,Análise, Projeto e Programação Orientadosa Objetos passaram a predominar no mercado,o que se mantém até o momento atual.

Page 21: Parte 1 - Analise Projeto OO - Alan Gavioli

OUTROS PROCESSOS

Os Métodos Ágeis de desenvolvimento surgiramcomo uma abordagem bastante diferente dosprocessos tradicionais (Estruturado e Orientado aObjetos).

Genericamente, focam as interações contínuasentre os stakeholders e pouca modelagem edocumentação, para agilizar ao máximo a criaçãodo produto final: o software.

Page 22: Parte 1 - Analise Projeto OO - Alan Gavioli

OUTROS PROCESSOS

Modelos Ágeis mais conhecidos:

XP (eXtreme Programming)

Scrum

Crystal

FDD

DAS

DSDM

Kanban

Page 23: Parte 1 - Analise Projeto OO - Alan Gavioli

ANÁLISE ESSENCIAL/ESTRUTURADA

Contém, como principais recursos:

Elementos básicos para modelagem: entidadeexterna, processo, fluxo de dados e depósito dedados.

Diagrama de Contexto.

Diagramas de Fluxo de Dados (DFDs).

Dicionário de Dados.

Diagrama Entidade-Relacionamento (DER).

Page 24: Parte 1 - Analise Projeto OO - Alan Gavioli

ANÁLISE E PROJETOORIENTADOS A OBJETOS

Linguagem de modelagem padronizada eutilizada mundialmente:

Linguagem Unificada de Modelagem (UML - UnifiedModeling Language).

Processo de desenvolvimento mais conhecido:

Processo Unificado (PU), especialmente o produto criadopela empresa Rational – o Rational Unified Process(RUP).

Page 25: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSO UNIFICADO

É um framework de processo de desenvolvimentode software O.O. genérico, que pode ser usadopara diferentes áreas de aplicação, diferentes tiposde organizações e diferentes tamanhos de projeto.

Utiliza amplamente a UML.

Características do desenvolvimento no PU: Iterativo e incremental.

Centrado em uma arquitetura robusta.

Orientado por casos de uso.

Page 26: Parte 1 - Analise Projeto OO - Alan Gavioli

PROCESSO UNIFICADO

Fases:

Concepção.

Elaboração.

Construção.

Transição.

Iterações.

Disciplinas.

Artefatos.

Page 27: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

INTRODUÇÃO

(MATERIAL COMPLEMENTAR)

Page 28: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

Proporciona uma forma-padrão para apreparação de planos de arquitetura deprojetos de sistemas, incluindo:

Aspectos conceituais, tais como processos denegócios e funções do sistema;

Itens concretos, como as classes escritas emdeterminada ling. de programação, esquemas deBDs e componentes de software reutilizáveis.

Page 29: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

Breve histórico: Primeira linguagem O.O.: Simula-67, criada na Noruega.

Década de 1980: Smalltalk, Objective C, C++ e Eiffel.

Paralelamente, surgiram métodos orientados a objetos:

• Booch, de Grady Booch, 1991;

• OOSE (Object-Oriented Software Engineering), deJacobson, 1992;

• OMT (Object Modeling Technique), de Rumbaugh,1991;

• CRC (Classe-Responsabilidade-Colaborador), 1989;

• Shlaer-Mellor, de 1989;

• Coad-Yourdon, de 1991;

• Fusion (Booch, OMT, CRC, Métodos Formais), 1994.

Page 30: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

Breve histórico: A partir de 1995: métodos Booch, OOSE e OMT passaram

a ser integrados, unificando notações usadas por eles.

Junho de 1996: versão 0.9 da UML.

Novembro de 1997: UML 1.1 foi adotada pelo OMG(Object Management Group).

OMG produziu as versões 1.3, 1.4 e 1.5.

Início de 2005: OMG adotou a UML 2.0, que inclui recursosadicionais e algumas alterações importantes, quandocomparada à UML 1.

A UML foi desenvolvida com a colaboração das principaisempresas mundiais da área de software.

Versão mais recente: 2.4.1 (consulta em jan/2013).

É uma linguagem continuamente em desenvolvimento.Veja mais em www.uml.org.

Page 31: Parte 1 - Analise Projeto OO - Alan Gavioli

UML – POR QUE MODELAR?

A modelagem é uma parte fundamental de todasas atividades que levam à entrega de um bomsoftware ao cliente.

Os modelos são construídos para:

Comunicar a estrutura e o comportamento desejados dosistema;

Visualizar e controlar a arquitetura do sistema;

Compreender melhor o sistema que está sendo elaborado,expondo oportunidades de reutilização e simplificação;

Gerenciar os riscos.

Page 32: Parte 1 - Analise Projeto OO - Alan Gavioli

UML – POR QUE MODELAR?

Ainda não se convenceu? Então mais algumas razões:

Modelos de sistemas complexos são construídos porquenão é possível compreender esses sistemas em suatotalidade.

Um modelo consegue simplificar a realidade.

Ajudam a visualizar o sistema como ele deverá ser.

Permitem especificar a estrutura ou o comportamento deum sistema.

São um guia para a implementação do sistema.

Documentam decisões tomadas.

Page 33: Parte 1 - Analise Projeto OO - Alan Gavioli

UML – ONDE PODE SER USADA?

Principais domínios em que a UML tem sidoutilizada:

Sistemas de informação industriais.

Sistemas do setor de prestação de serviços (bancários,financeiros em geral, telecomunicações, transportes, áreada saúde, dentre tantos outros).

Sistemas de controle de vendas (atacado e varejo).

Softwares educacionais e científicos.

Serviços distribuídos baseados na Web.

Page 34: Parte 1 - Analise Projeto OO - Alan Gavioli

BLOCOS DE CONSTRUÇÃO DA UML

A UML abrange 3 tipos de blocos deconstrução:

Itens.

Relacionamentos.

Diagramas.

Os itens são as abstrações identificadas como elementosbásicos (mas fundamentais) para um modelo da UML.

Os relacionamentos servem para reunir os itens.

Os diagramas agrupam coleções interessantes de itens.

Page 35: Parte 1 - Analise Projeto OO - Alan Gavioli

ITENS DA UML

Na UML, foram classificados em 4 categorias:

Itens estruturais: são os substantivos utilizados emmodelos; são as partes mais estáticas do modelo edenotam elementos conceituais ou físicos.

Itens comportamentais: são as partes dinâmicas dosmodelos; são identificados como verbos e representamcomportamentos no tempo e no espaço.

Itens de agrupamento: são as partes organizacionais deum modelo; são blocos em que os modelos podem serdecompostos.

Itens anotacionais: são as partes explicativas dosmodelos; são comentários incluídos para descrever ouesclarecer qualquer elemento do modelo.

Page 36: Parte 1 - Analise Projeto OO - Alan Gavioli

ITENS DA UML

Itens estruturais: Classes (incluindo atores).

Interfaces.

Casos de Uso.

Componentes.

Artefatos (incluindo aplicações, documentos,arquivos, bibliotecas, páginas e tabelas).

Nós.

Itens comportamentais.

Itens de agrupamento.

Itens anotacionais.

Page 37: Parte 1 - Analise Projeto OO - Alan Gavioli

ITENS DA UML

Itens estruturais.

Itens comportamentais:

Interações (mensagens).

Estados.

Atividades (ações).

Itens de agrupamento.

Itens anotacionais.

Page 38: Parte 1 - Analise Projeto OO - Alan Gavioli

ITENS DA UML

Itens estruturais.

Itens comportamentais.

Itens de agrupamento:

Pacotes.

Itens anotacionais:

Notas.

Page 39: Parte 1 - Analise Projeto OO - Alan Gavioli

RELACIONAMENTOS NA UML

Na UML, há 4 tipos de relacionamentos entreitens:

Dependência.

Associação (que inclui agregação simples eagregação composta).

Generalização.

Realização.

Page 40: Parte 1 - Analise Projeto OO - Alan Gavioli

RELACIONAMENTOS NA UML

Dependência:

Relacionamento entre 2 itens que indicaque alteração de um (o independente) podeafetar a semântica do outro (odependente).

Associação.

Generalização.

Realização.

Page 41: Parte 1 - Analise Projeto OO - Alan Gavioli

RELACIONAMENTOS NA UML

Dependência.

Associação: Relacionamento entre classes que descreve

conexões entre objetos que são instânciasdas classes. Se for agregação, representaum relacionamento entre o “todo” e suas“partes”.

A representação gráfica pode incluir rótulo,nomes de papéis e multiplicidades.

Generalização.

Realização.

Page 42: Parte 1 - Analise Projeto OO - Alan Gavioli

RELACIONAMENTOS NA UML

Dependência.

Associação.

Generalização: Relacionamento de generalização/especialização,

em que os objetos dos elementos especializados (osfilhos) compartilham a estrutura e o comportamentodos objetos do elemento generalizado (os pais).Muitas vezes, referido como relacionamento “é umtipo de”.

Realização.

Page 43: Parte 1 - Analise Projeto OO - Alan Gavioli

RELACIONAMENTOS NA UML

Dependência.

Associação.

Generalização.

Realização:

Duas possibilidades: 1) Entre interfaces eas classes ou componentes que as realizam(o tipo mais comum); 2) Entre casos de usoe as colaborações que os realizam.

Page 44: Parte 1 - Analise Projeto OO - Alan Gavioli

A UML 2.x

Características introduzidas na UML 2.x: “O novo padrão UML inclui 4 grandes características. A

primeira é um mecanismo de extensão de primeira classe, quepermite aos modeladores a adição das suas própriasmetaclasses, facilitando assim a definição de novos Perfis UML eo alargamento da modelagem a novas áreas de aplicação. Asegunda característica tem a ver com uma representação maisexata e mais precisa das relações, melhorando assim amodelagem da herança, composição e agregação. A terceiracaracterística refere-se a uma melhor modelagem docomportamento, aumentando o suporte para encapsulamento eescalabilidade, melhorando a estrutura dos diagramas desequência e removendo as restrições em nível da representaçãode esquemas de atividade para state machines. A quartacaracterística tem a ver com o fato das melhorias introduzidas nalinguagem simplificarem a sintaxe e a semântica, além deorganizarem melhor a sua estrutura global” (OMG).

Page 45: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMAS DA UML 2.x

Na UML 2.x são 13 diagramas (a UML 1.x tem 9). Massegundo os criadores da UML, há prioridades diferentes:

Diagrama Descrição Prioridade de aprendizagem

Diagrama de Casos de Uso

Exibe um conjunto de casos de uso e atores, bem como seus relacionamentos.

Elevada

Diagrama de Classes

Exibe um conjunto de classes, interfaces e colaborações, bem como seus relacionamentos.

Elevada

Diagrama de Sequência

Um dos diagramas de interação, com ênfase na ordenação temporal das mensagens trocadas por objetos.

Elevada

Diagrama de Atividades

Exibe a estrutura de um processo/computação, como o fluxo de controle e os dados de cada etapa da computação.

Elevada

Page 46: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMAS DA UML 2.x

Diagrama Descrição Prioridade de aprendizagem

Diagrama de Componentes

Apresenta os componentes que compõem um sistema ou até uma empresa. São apresentados os componentes, suas inter-relações e suas interfaces.

Média

Diagrama de Máquina/Gráfico de

Estados

Exibe uma máquina de estados, formada por estados, transições, eventos e atividades.

Média

Diagrama de Implantação

Mostra a configuração dos nós de processamento em tempo de execução e os componentes deles.

Média

Page 47: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMAS DA UML 2.x

Diagrama Descrição Prioridade de aprendizagem

Diagrama de Comunicações

É outro diagrama de interação, mas com ênfase na organização estrutural dos objetos que enviam e recebem mensagens.

Baixa

Diagrama de Objetos

Mostra os objetos e suas relações em um dado momento; normalmente um caso especial de um diag. de classes ou de comunicação.

Baixa

Diagrama de Estruturas

Compostas (NOVO)

Praticamente idêntico ao diagrama de componentes, sendo diferente apenas por ser aplicável a qualquer classe.

Baixa

Page 48: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMAS DA UML 2.x

Diagrama Descrição Prioridade de aprendizagem

Diagrama de Pacote (NOVO)

Mostra como os elementos do modelo estão organizados em pacotes e as dependências entre tais pacotes.

Baixa

Diagrama de Temporização

(NOVO)

Mostra a mudança de estado ou condição de um objeto ao longo do tempo, em resposta a eventos externos. Seu uso é bastante específico.

Baixa

Diagrama de Visão Geral da Interação

(NOVO)

Híbrido de um diagrama de atividades e um diagrama de sequências. É de uso muito específico.

Baixa

Page 49: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMAS DA UML 2.x

Page 50: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

MODELO DE CASOS DE USO

(MATERIAL COMPLEMENTAR)

Page 51: Parte 1 - Analise Projeto OO - Alan Gavioli

DESCRIÇÕES NARRATIVAS

Cada caso de uso é definido através da descriçãonarrativa das interações (cenários) que ocorrementre o(s) elemento(s) externo(s) e o sistema.

Mas há várias formas de descrever casos de uso.

Page 52: Parte 1 - Analise Projeto OO - Alan Gavioli

FORMAS DE DESCREVERCASOS DE USO

Formato:

Contínua.

Numerada.

Tabela/numerada.

Detalhamento:

Sucinto.

Expandido.

Grau de abstração:

Essencial.

Real.

Page 53: Parte 1 - Analise Projeto OO - Alan Gavioli

DESCRIÇÃO CONTÍNUA

Exemplo:

“O Cliente chega ao caixa eletrônico e insere seucartão. O Sistema requisita a senha do Cliente.Após o Cliente fornecer sua senha e esta servalidada, o Sistema exibe as opções deoperações possíveis. O Cliente opta por realizarum saque. Então o Sistema requisita o total aser sacado. O Cliente informa o valor desejado.O Sistema fornece a quantia e imprime umcomprovante de saque”.

Page 54: Parte 1 - Analise Projeto OO - Alan Gavioli

DESCRIÇÃO NUMERADA

Exemplo:

1. Cliente insere seu cartão no caixa eletrônico.

2. Sistema apresenta solicitação de senha.

3. Cliente digita sua senha.

4. Sistema exibe menu de operaçõesdisponíveis.

5. Cliente indica que deseja realizar um saque.

6. Sistema requisita quantia a ser sacada.

7. Cliente informa o valor desejado.

8. Sistema fornece a quantia e um comprovantede saque.

Page 55: Parte 1 - Analise Projeto OO - Alan Gavioli

DESCRIÇÃO TABELA/NUMERADA

Cliente Sistema

1. Insere seu cartão no caixa eletrônico.

3. Digita sua senha.

5. Indica que deseja realizar um saque.

7. Informa o valor desejado.

2. Apresenta solicitação de senha.

4. Exibe menu de operações disponíveis.

6. Requisita quantia a ser sacada.

8. Fornece a quantia e um comprovante de saque.

Page 56: Parte 1 - Analise Projeto OO - Alan Gavioli

DETALHAMENTO

O grau de detalhamento a ser utilizado nadescrição de um caso de uso pode variardependendo da fase em que se encontra odesenvolvimento do sistema.

Fase de Análise: um caso de uso sucintodescreve as interações sem muitos detalhes.

Fase de Projeto: um caso de uso expandidodescreve as interações em detalhes.

Page 57: Parte 1 - Analise Projeto OO - Alan Gavioli

GRAU DE ABSTRAÇÃO

O grau de abstração de um caso de uso dizrespeito à existência ou não de menção àtecnologia a ser utilizada na descrição deste casode uso.

Um caso de uso essencial não faz menção àtecnologia a ser utilizada; normalmente utilizadona etapa de análise.

Um caso de uso real apresenta detalhes datecnologia a ser utilizada em sua implementação;normalmente utilizado na etapa de projeto.

Page 58: Parte 1 - Analise Projeto OO - Alan Gavioli

GRAU DE ABSTRAÇÃO

Essencial:

1 - O Cliente se identifica para o sistema através dos seusdados.

2 - O sistema ao reconhecê-lo deve apresentar as opçõesde operações:

• 2.1 - Realizar saque

• 2.2 - Realizar pagamento

• 2.3 - Emitir extrato

3 - Escolhida uma das operações, o sistema a chamará.

Page 59: Parte 1 - Analise Projeto OO - Alan Gavioli

GRAU DE ABSTRAÇÃO

Real:

1 - O cliente se identifica para o sistema através do seucartão magnético com chip.

2 - O sistema lê o cartão e apresenta as opções deoperações:

• 2.1 - Realizar saque

• 2.2 - Realizar pagamento

• 2.3 - Emitir extrato

3 - Escolhida uma das operações, através do teclado, osistema a chamará.

Page 60: Parte 1 - Analise Projeto OO - Alan Gavioli

DOCUMENTAÇÃO DOSCASOS DE USO

A UML não define uma estruturação específica aser utilizada na descrição do formato expandido deum caso de uso.

A equipe de desenvolvimento deve utilizar oformato de descrição que lhe for realmente útil.

Page 61: Parte 1 - Analise Projeto OO - Alan Gavioli

EXEMPLO DE DOCUMENTAÇÃO

Page 62: Parte 1 - Analise Projeto OO - Alan Gavioli

EXEMPLO DE DOCUMENTAÇÃO

Page 63: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

MODELO DE CLASSES

(MATERIAL COMPLEMENTAR)

Page 64: Parte 1 - Analise Projeto OO - Alan Gavioli

VISÕES INTERNA E EXTERNA DE UM SISTEMA O. O.

Externamente, os atores visualizam resultados decálculos, relatórios produzidos, confirmações derequisições realizadas, etc (diagrama de casosde uso mostra isso).

Internamente, os objetos colaboram uns com osoutros para produzir os resultados (isto odiagrama de casos de uso não mostra).

Essa colaboração pode ser vista sob o aspectodinâmico e sob o aspecto estrutural estático.

Page 65: Parte 1 - Analise Projeto OO - Alan Gavioli

MODELO DE CLASSES

O diagrama da UML utilizado para representar osaspectos estáticos das colaborações entreobjetos é o diagrama de classes.

O modelo de classes evolui (é incrementado)durante o desenvolvimento do sistema.

Page 66: Parte 1 - Analise Projeto OO - Alan Gavioli

IDENTIFICAÇÃO DAS CLASSES NECESSÁRIAS

Análise dos casos de uso:

Cada caso de uso é analisado para identificar classescandidatas.

Premissa: a partir da descrição textual doscasos de uso, podem-se derivar as classes:

A existência de uma classe em um sistema só se justificase ela participa de alguma forma para o comportamentoexternamente visível do sistema.

Vantagem: esta abordagem é bastante simples.

Desvantagem: depende de como os casos de uso foramescritos (as formas de expressar uma mesma ideia sãobastante numerosas).

Page 67: Parte 1 - Analise Projeto OO - Alan Gavioli

IDENTIFICAÇÃO DAS CLASSES NECESSÁRIAS

Page 68: Parte 1 - Analise Projeto OO - Alan Gavioli

CATEGORIAS DE RESPONSABILIDADES

Costuma-se categorizar os objetos de umsistema de acordo com o tipo deresponsabilidade atribuída:

Objetos de entidade.

Objetos de controle.

Objetos de fronteira.

Page 69: Parte 1 - Analise Projeto OO - Alan Gavioli

OBJETOS DE ENTIDADE

Um objeto de entidade é um repositório paraalguma informação manipulada pelo sistema.

Esses objetos representam conceitos do domínio donegócio.

Normalmente esses objetos armazenaminformações persistentes.

Há várias instâncias de uma mesma classe deentidade coexistindo no sistema.

Page 70: Parte 1 - Analise Projeto OO - Alan Gavioli

OBJETOS DE FRONTEIRA

Classes de fronteira realizam a comunicação dosistema com atores, sejam eles outros sistemas,equipamentos ou seres humanos.

Há três tipos principais de classes de fronteira:

As que se comunicam com usuários (atores humanos);

As que se comunicam com outros sistemas;

As que se comunicam com dispositivos atrelados aosistema.

Page 71: Parte 1 - Analise Projeto OO - Alan Gavioli

OBJETOS DE CONTROLE

São a “ponte de comunicação” entre objetos defronteira e objetos de entidade.

Responsáveis por controlar a lógica de execuçãocorrespondente a um caso de uso.

Decidem o que o sistema deve fazer quando umevento externo relevante ocorre.

Realizam o controle do processamento.

Agem como coordenadores/controladores dos outrosobjetos para a realização de um ou mais casos de uso.

Page 72: Parte 1 - Analise Projeto OO - Alan Gavioli

EXERCÍCIO 1

Utilizando a listagem de requisitos levantados, asespecificações dos casos de uso (nível ANÁLISE) e odiagrama de classes (nível ANÁLISE) do sistema queseu grupo está modelando:

Atualize as descrições dos casos de uso para o nível dePROJETO.

Construa o diagrama de classes em nível de PROJETO.

Envie a solução deste exercício pelo Moodle, em umúnico arquivo .pdf.

Page 73: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

DIAGRAMA DE OBJETOS

Page 74: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMA DE OBJETOS

Além do diagrama de classes, a UML define umsegundo tipo de diagrama estrutural: odiagrama de objetos.

Pode ser visto com uma instância de diagramasde classes.

Representa uma “fotografia” do sistema em umcerto instante.

Exibe as ligações formadas entre objetos conforme estesinteragem e os valores dos seus atributos.

Page 75: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMA DE OBJETOS

Exemplo 1:

Page 76: Parte 1 - Analise Projeto OO - Alan Gavioli

DIAGRAMA DE OBJETOS

Exemplo 2:

Page 77: Parte 1 - Analise Projeto OO - Alan Gavioli

EXERCÍCIO 2

A partir do diagrama de classes (nível ANÁLISE) dosistema que seu grupo está modelando:

Elabore um diagrama de objetos que exiba as ligaçõesformadas entre objetos conforme estes interajam para arealização de um dos casos de uso do sistema.

Junte este diagrama ao resultado do exercício 1.

Page 78: Parte 1 - Analise Projeto OO - Alan Gavioli

UML

MAPEAMENTO OBJETO-RELACIONAL

Page 79: Parte 1 - Analise Projeto OO - Alan Gavioli

INTRODUÇÃO

Quando se opta pela análise, pelo projeto e pelaimplementação de acordo com o paradigma OO,em tese o ideal seria optar também por um SGBDorientado a objetos.

Problema: os SGBDs OO ainda estão longe de conquistaro mercado, que em sua grande maioria continua utilizandoSGBDs relacionais.

Mesmo tendo um banco de dados (BD) relacional,podemos unir dados e comportamento em classes,isto através do mapeamento objeto-relacional.

Page 80: Parte 1 - Analise Projeto OO - Alan Gavioli

A IMPORTÂNCIA DO OID

OID: Object Identification, ou seja, identificadorúnico de um objeto.

Para minimizar o impacto do desencontro objeto-relacional, temos que manter um paralelo emalguns aspectos aos BDs relacionais, a exemplodisso temos os OIDs.

Como nossos objetos serão salvos em um BDrelacional, devemos disponibilizar uma forma deencontrá-los.

Page 81: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO OBJETO-RELACIONAL

Pacotes, classes e atributos podem ser mapeadospara BDs relacionais (esquemas, tabelas, colunas),embora sejam de natureza diferente.

Mapeamento:

Modelo OO Banco Relacional

Classes Relações (tabelas)

Objetos Tuplas (registros, linhas)

Métodos Stored procedures

Atributos Campos (colunas)

Page 82: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO OBJETO-RELACIONAL

Geralmente, somente as classes concretas ecategorizadas como “classes de entidade” sãomapeadas para tabelas. Mapeamento:

Page 83: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO OBJETO-RELACIONAL

Os relacionamentos entre classes (associação,agregação simples, composição, generalização) sãomapeados para uma ou mais tabelas.

Page 84: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO DA HERANÇA

Existem 3 formas básicas para se implementar aherança, que é um conceito de orientação aobjetos, em um BD relacional.

Forma 1: uma tabela para toda hierarquia de classe – nessasituação, temos uma tabela que armazena os dados deprofessor e de aluno.

Page 85: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO DA HERANÇA

Forma 2: uma tabela por classe concreta da hierarquia.Nessa implementação, há dificuldade para a inserção denovos atributos comuns às classes da hierarquia. Ex: seformos inserir um novo atributo à classe-base Pessoa, p.ex. o atributo e-mail, deveremos lembrar que a coluna EMAILdeverá ser criada em ambas as tabelas (subclasses).

Page 86: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO DA HERANÇA

Forma 3: uma tabela por classe. Muitos afirmam que esta éa melhor forma de implementar herança, pois o BD ficanormalizado e se aproxima mais da realidade do modelo declasses. Porém, com essa implementação várias tabelas sãocriadas para representar a herança, e isso pode implicar emuma perda relativa de desempenho do BD.

Page 87: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO DE ATRIBUTOS

Ao transpor-se um objeto para uma tabela de BDrelacional, os atributos do mesmo são mapeadosem colunas da tabela. Este processo demapeamento deve levar em consideração fatorescomo a tipagem dos dados e o comprimentomáximo dos campos.

Em diversos casos, atributos de um objeto nãodevem ter obrigatoriamente uma coluna em umatabela que os referencie.

Page 88: Parte 1 - Analise Projeto OO - Alan Gavioli

MAPEAMENTO DE ASSOCIAÇÕES

Os relacionamentos de associação entre objetossão uma das características mais facilmentemapeadas. Conceitualmente, existem apenas trêstipos de relacionamentos possíveis:

um-para-um;

um-para-muitos; e

muitos-para-muitos.

Page 89: Parte 1 - Analise Projeto OO - Alan Gavioli

EXERCÍCIO 3

A partir do diagrama de classes (nível ANÁLISE) dosistema que seu grupo está modelando:

Faça o mapeamento objeto-relacional das classes deentidade para relações (tabelas) de um BD relacional.A construção de um DER neste exercício é opcional,sendo obrigatório apenas apresentar as tabelas e seusatributos (campos).

Junte a solução deste exercício aos resultados dosexercícios anteriores.

Envie o arquivo completo dos exercícios pelo Moodle, emum único arquivo .pdf.

Page 90: Parte 1 - Analise Projeto OO - Alan Gavioli

BIBLIOGRAFIA UTILIZADA

BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. 2 ed. Riode Janeiro: Campus, 2005.

LARMAN, C. Utilizando UML e Padrões: uma introdução à Análise e ao ProjetoOrientados a Objetos e ao Desenvolvimento Iterativo. 3 ed. Porto Alegre:Bookman, 2007.

MEDEIROS, E. S. Desenvolvendo Software com UML 2.0: Definitivo. SãoPaulo: Pearson Makron Books, 2005.

PRESSMAN, R. S. Engenharia de Software: uma abordagem profissional. 7ed. São Paulo: Artmed, 2011.

SOMMERVILLE, I. Engenharia de Software. 9 ed. São Paulo: Pearson, 2011.

WAZLAWICK, R. S. Análise e Projeto de Sistemas de Informação Orientadosa Objetos. Rio de Janeiro: Elsevier, 2004.