Análise Orientada a Objetos com UML
-
Upload
eliseu-castelo -
Category
Education
-
view
17.465 -
download
3
description
Transcript of Análise Orientada a Objetos com UML
![Page 2: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/2.jpg)
Conceitos de Orientação a Objetos Visão Geral da UML Diagrama de Caso de Uso Diagrama de Classes Diagrama de Objetos Diagramas de Interação Diagrama de Estado Diagrama de Atividades Diagramas de Implementação
Ementa da Disciplina
![Page 3: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/3.jpg)
Cronograma de Aulas
FEVEREIRO MARÇO ABRIL MAIO JUNHO2 2 6 4 19 9 AV1 - 13 11 8
23 16 20 18 AV2-15 23 27 25 22 30 AV3 - 29
3 5 4 4 5
TOTAL 21FREQ MIN 17
![Page 4: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/4.jpg)
Provas sobre conteúdo teórico da disciplina (Av1, Av2, Av3)
Trabalhos de pesquisa publicados na Internet
Documentos de Análise e Projeto de software entregues
Exercícios realizados em sala de aula OBS: mínimo de 75% de presença em sala
de aula necessário para aprovação na disciplina.
Avaliações
![Page 5: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/5.jpg)
Sistemas de software são complexos. O uso de modelos auxilia na compreensão
de conceitos complexos.
Introdução
![Page 6: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/6.jpg)
O desenvolvimento de um sistema envolve grande quantidade de atividades e pessoas
Erros são inevitáveis e se identificados nos modelos sua correção é mais fácil e barata.
Introdução
![Page 7: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/7.jpg)
O uso de modelos reduz o custo do desenvolvimento de sistemas.
O modelo permite prever o comportamento do sistema no futuro.
Introdução
![Page 8: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/8.jpg)
A modelagem de sistemas de software consiste na utilização de notações gráficas e textuais com o objetivo de construir modelos que representam as partes essenciais de um sistema, considerando-se diversas perspectivas diferentes e complementares.
O que é modelagem de software?
![Page 9: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/9.jpg)
“Paradigma é a forma de abordar um problema”
Princípios:1. Qualquer coisa é um objeto2. Objetos realizam tarefas através da requisição
de serviços a outros objetos3. Cada objeto pertence a uma classe4. A classe é um repositório para comportamento
associado ao objeto5. Classes são organizadas em hierarquias
Paradigma da Orientação a Objetos
![Page 10: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/10.jpg)
O paradigma da orientação a objetos visualiza um sistema de software como uma coleção de agentes interconectados chamados OBJETOS. Cada objeto realiza tarefas específicas. É através da interação entre objetos que uma tarefa computacional é realizada.
Paradigma da Orientação a Objetos
![Page 11: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/11.jpg)
Tipos de Sistemas
![Page 12: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/12.jpg)
O Sistema contem subsistemas
![Page 13: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/13.jpg)
![Page 14: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/14.jpg)
![Page 15: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/15.jpg)
![Page 16: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/16.jpg)
![Page 17: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/17.jpg)
![Page 18: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/18.jpg)
![Page 19: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/19.jpg)
![Page 20: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/20.jpg)
![Page 21: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/21.jpg)
![Page 22: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/22.jpg)
![Page 23: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/23.jpg)
![Page 24: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/24.jpg)
![Page 25: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/25.jpg)
![Page 26: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/26.jpg)
![Page 27: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/27.jpg)
![Page 28: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/28.jpg)
Subsistemas de um Sistema de Informação
![Page 29: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/29.jpg)
Módulos do Sistema (subsistemas)
![Page 30: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/30.jpg)
Classe Movimentação Financeira Classe Bancos Classe Rendas Diversas Classe Contas a Pagar Classe Receitas Diversas
Subsistema Contas a Pagar
![Page 31: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/31.jpg)
Classe Banco
Atributos
Métodos
![Page 32: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/32.jpg)
O que é Análise e Projeto?
Análise — “o quê”
Investigação do problema e dos requisitos
Requisitos
Casos de uso
Restrições
Vocabulário
Projeto — “como”
Descrição de uma solução lógica
Objetos
Arquitetura
Instalação & Operação
Interface do usuário
![Page 33: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/33.jpg)
Representação de um Conceito na APOO
Ex.: O conceito “Livro” em um sistema de biblioteca
Conceitode domínio
public class Livro{public void imprimir();
private String titulo;}
Representaçãono código
Livro
título
Representaçãona análise
Livro
título
Representaçãono projeto
imprimir()
![Page 34: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/34.jpg)
Uma Analogia — Organizando os Negócios de uma Empresa
DocumentosAssociados
APOOAnalogia
Casos de usoAnálise de requisitosQuais são os processos de negócio?
Modelo conceitualAnálise do domínioQuais são os papeis dos empregados?
Diagramas de classes de projeto, diagramas de colaboração
Atribuição de responsabilidades, projeto das interações
Quem é responsável por o quê? Como eles interagem?
![Page 35: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/35.jpg)
Um Exemplo — Jogo de Dados
Objetivo: ganha o jogo o jogador que rolar dois dados e tirar sete
Modelagem na APOO◦ Casos de uso
Descrições narrativas de processos do domínio no formato de prosa estruturada
Ex.:
Caso de uso:Atores:Descrição:
JogarJogadorEste caso de uso começa quandoo jogador rola os dados. Se o totaldos dados for sete, o jogador ganha;do contrário, ele perde.
![Page 36: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/36.jpg)
Um Exemplo — Jogo de Dados
Modelagem na APOO (cont.)◦ Modelo conceitual Conceitos, atributos, e associações
que são considerados importantes no domínio da aplicação
Ex.:
◦ Um modelo conceitual descreve conceitos do mundo real, não componentes de software!
Jogador
nome
JogoDeDados
Dado
valor
Rola
Joga
Inclui
2
2
1
1
1
1
![Page 37: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/37.jpg)
Um Exemplo — Jogo de Dados Modelagem na APOO (cont.)
◦ Diagramas de colaboração Alocação de responsabilidades para objetos
ilustrando como eles interagem via mensagens Mostram o fluxo de mensagens entre instâncias
e a invocação de métodos Ex.:
:Jogador d1 : Dado
d2 : Dado
joga() 1: r1 := rola()
2: r2 := rola()
![Page 38: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/38.jpg)
Um Exemplo — Jogo de Dados
Modelagem na APOO (cont.) ◦ Diagramas de classes de projeto
Como os objetos (de software) se conectam? Quais são os métodos de uma classe? Ex.:
Rola
Joga
Inclui
2
2
Jogador
nome
joga()
Dado
valor
rola()
JogoDeDados
inicializa()
1
1
1
1
![Page 39: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/39.jpg)
APOO X APE Metodologias mais antigas, como
Análise e Projeto Estruturados, baseiam-se em outras dimensões de decomposição
Sistema deBiblioteca
Sistema
A&P Orientados a Objeto
Decomposição por objetos ou conceitos
A&P Estruturados
Decomposição por funções ou processos
RegistraEmpréstimos
AdicionaRecursos
ReportaMultas
Catálogo
Livro
Bibliotecário
Biblioteca
![Page 40: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/40.jpg)
A Linguagem de Modelagem Unificada — UML
A UML é a linguagem padrão de diagramação para visualizar os resultados da análise e projeto
A notação (a própria UML) é relativamente trivial
Muito mais importante: habilidade para modelar com objetos◦ Só aprender a notação UML não ajuda
A UML não é◦ um processo ou metodologia◦ APOO◦ regras de projeto
![Page 41: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/41.jpg)
Origem e Evolução da UML
Unified Method 0.8 Unificação I(Out’95)
Booch’93 OMT-2
Outros métodos Booch’91 OMT-1 OOSE Fragmentação
UML 1.0
Parceirosda UML
Padronização(Jan’97)
UML 1.1 Industrialização(Set’97)
UML 0.9 & 0.91 Unificação II(Out’96)
![Page 42: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/42.jpg)
![Page 43: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/43.jpg)
Processo de Desenvolvimento Organização das atividades relacionadas à
produção e manutenção de sistemas de software
Útil, mas um fator de segunda ordem◦ O principal: equipe qualificada
Boa equipe + bom processo = menor risco
O processo racional unificado (RUP), baseado no modelo iterativo, é o processo padrão na indústria
![Page 44: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/44.jpg)
Sol, Mar e UML
![Page 45: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/45.jpg)
Visões da UML
![Page 46: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/46.jpg)
Uma série de pesquisas (www.embeddded-forecast.com) tem mostrado que muitos projetos de software embarcados são entregues com atraso ou cancelados.
Em média, observou-se que mais de 50% dos projetos têm seus cronogramas atrasados em pelo menos quatro meses e cerca de 11% são cancelados.
![Page 47: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/47.jpg)
O custo dos atrasos pode ser significativo. Por exemplo, no setor de aviônicos o custo dos atrasos é estimado de 50.000 a 300.000 dólares por mês.
Outro problema apontado é o nível de conformidade do produto final com as especificações.
Identificou-se que pelo menos 30% dos projetos não alcançavam 50% das especificações propostas de performance ou funcionalidade.
![Page 48: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/48.jpg)
À medida que os sistemas embarcados aumentam em complexidade, esta situação tende a piorar.
A pesquisa mostrou também que adoção de UML (Unified Modeling Language) ainda não é uma prática comum.
![Page 49: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/49.jpg)
Ações (*) : unidade básica de especificação de comportamento. Ações estão contidas em atividades
Artefatos (*) : Pedaço físico da informação usado ou produzido durante o desenvolvimento do sistema
Atividades Casos de Uso Classes Classes ativas Colaboração Componente Estado Interação Interface
Elementos básicos do modelo UML
![Page 50: Análise Orientada a Objetos com UML](https://reader031.fdocumentos.tips/reader031/viewer/2022020105/555b312cd8b42ae82e8b4e75/html5/thumbnails/50.jpg)
No Nota Pacote Partes (*) Portas (*) Estereótipos (*) Valores de etiqueta (*) Restrições (*)
Elementos básicos do modelo UML