modelagem de sistemas alcides calsavara. 2 sumário
TRANSCRIPT
![Page 1: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/1.jpg)
Modelagem de Sistemas
Alcides Calsavara
![Page 2: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/2.jpg)
Alcides Calsavara 2
Sumário
![Page 3: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/3.jpg)
Alcides Calsavara 3
Engenharia de Software
• Abstração: conceitos, construtos, métodos etc.• Base matemática: raciocínio rigoroso sobre
objetos e estruturas puramente abstratas.• O processo mental que atualmente usamos em
matemática deve ter sido adqüirido – e passado a ser usado – bem antes dos Sumérios introduzirem os números abstratos, algo entre 8.000 e 5.000 anos atrás.
![Page 4: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/4.jpg)
Alcides Calsavara 4
Realidade e Software
Percepção da Realidade
Sistema de Software
observador
implementador
![Page 5: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/5.jpg)
Alcides Calsavara 5
Modelagem e Formalização
Percepção da Realidade
Sistema de Software
Modelos
observador
formalizador
implementador
![Page 6: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/6.jpg)
Alcides Calsavara 6
Refinamento de Modelos
Percepção da Realidade
Sistema de Software
Modelo 1
observador
formalizador
implementador
Modelo n-1
...
![Page 7: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/7.jpg)
Alcides Calsavara 7
Refinamento de Modelos
Percepção da Realidade( Modelo 0 )
Sistema de Software( Modelo n )
Modelo 1
observador
formalizador
implementador
Modelo n-1
...
![Page 8: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/8.jpg)
Alcides Calsavara 8
Refinamento de Modelos
Percepção da Realidade( Modelo 0 )
Sistema de Software( Modelo n )
Modelo 1
observador
formalizador
implementador
Modelo n-1
...
Conceitual
Físico
![Page 9: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/9.jpg)
Alcides Calsavara 9
Percepção da Realidade
• A percepção da realidade por um observador depende da sua interpretação dos fatos.
• O formalizador constrói um modelo de acordo com a sua percepção da percepção da realidade do observador.
• O formalizador passa a ter a sua própria percepção da realidade.
![Page 10: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/10.jpg)
Alcides Calsavara 10
Mutabilidade
• A realidade muda.• A percepção da realidade muda.• A percepção da percepção da realidade muda.• Os recursos de software mudam.
– Conceitos– Linguagens– Métodos– Ferramentas– Plataformas
![Page 11: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/11.jpg)
Alcides Calsavara 11
Orientação a Objetos
• Paradigma dominante para implementação.• Paradigma promissor para modelagem
conceitual.• Derivado da noção de tipo abstrato de
dados: conceito algébrico que se aplica a objetos matemáticos.
• Mapeamento: objetos da realidade para objetos matemáticos.
![Page 12: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/12.jpg)
Alcides Calsavara 12
Sistema Orientado a Objetos
• Um sistema orientado a objetos é uma coleção de objetos (de software) que interagem entre si.
• Um objeto interage com outro através de uma mensagem que causa um estímulo.
![Page 13: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/13.jpg)
Alcides Calsavara 13
Interação entre Objetos
![Page 14: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/14.jpg)
Alcides Calsavara 14
Ativação de Objetos
• Um estímulo ativa um objeto: causa a execução de um método (ou operação).
• Um estímulo pode ser:– uma invocação explícita de um método– um evento relevante para o objeto
![Page 15: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/15.jpg)
Alcides Calsavara 15
Execução de Métodos
invocação evento
m e
m m
![Page 16: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/16.jpg)
Alcides Calsavara 16
Objeto
• Comportamento– conjunto de métodos – forma como reage a estímulos
• Estado :– conjunto de valores de atributos– modifica-se de acordo com o comportamento
![Page 17: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/17.jpg)
Alcides Calsavara 17
Comportamento e Estado
![Page 18: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/18.jpg)
Alcides Calsavara 18
Métodos e Atributos
![Page 19: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/19.jpg)
Alcides Calsavara 19
Encapsulamento
• Os atributos de um objeto somente são acessíveis a partir dos seus próprios métodos.
• Separação dos aspectos externos de um objeto dos seus detalhes internos de implementação.
![Page 20: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/20.jpg)
Alcides Calsavara 20
Interface
• A interface de um objeto é o conjunto de métodos que podem ser explicitamente invocados a partir de outros objetos.
![Page 21: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/21.jpg)
Alcides Calsavara 21
Classe
• Descrição de um conjunto de objetos: as instâncias da classe.
• Especifica o comportamento (métodos) e a estrutura do estado (atributos) das suas instâncias.
![Page 22: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/22.jpg)
Alcides Calsavara 22
Estrutura de uma Classe
• Uma classe contém um conjunto de atributos e um conjunto de métodos– os atributos devem ter nomes distintos– os métodos devem ter assinaturas distintas
• Cada objeto possui um conjunto próprio de valores dos atributos e o conjunto de métodos da sua classe.
![Page 23: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/23.jpg)
Alcides Calsavara 23
Classes e ObjetosClasse A Classe B
![Page 24: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/24.jpg)
Alcides Calsavara 24
Classe e Tipo
• Implementação de um tipo abstrato de dados.
• Os atributos definidos em uma classe somente são acessíveis a partir dos métodos definidos na mesma classe.
![Page 25: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/25.jpg)
Alcides Calsavara 25
Tipos
• Primitivos:– números inteiros– números reais– valores lógicos (verdadeiro ou falso)– caracteres
• Classes:– atributos – métodos
![Page 26: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/26.jpg)
Alcides Calsavara 26
Tipo Parametrizado
• Um tipo pode receber como parâmetro uma lista de tipos.
• Exemplos:– pilha de inteiros– pilha de reais– pilha de pessoas– ...
![Page 27: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/27.jpg)
Alcides Calsavara 27
Método• Cada método possui uma assinatura, um
tipo de retorno (primitivo ou classe) e uma implementação.
• A assinatura de um método é composta por um nome e uma lista de parâmetros.
• Cada parâmetro tem um nome e um tipo (primitivo ou classe).
![Page 28: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/28.jpg)
Alcides Calsavara 28
Atributo
• A especificação de um atributo em uma classe consiste em um nome e um tipo (primitivo ou classe).
• O valor de um certo atributo (em cada instância) deve ser compatível com o tipo especificado (na correspondente classe).
![Page 29: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/29.jpg)
Alcides Calsavara 29
Atributos em Classes e Objetos
b = Vz = 7
Classe Ab : lógicoz : inteiro
b = Fz = -3
b = Vz = 0
![Page 30: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/30.jpg)
Alcides Calsavara 30
Associação entre Objetos
nome = João
Classe Pessoanome : texto
Classe Automóvelplaca : textoproprietário : Pessoa
placa = ABC 1234
Possuído-por
proprietário
![Page 31: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/31.jpg)
Alcides Calsavara 31
Composição de Objetos
potência = 2,0
Classe Motorpotência : real
Classe Automóvelplaca : textomotor : Motor
placa = ABC 1234
Contém
![Page 32: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/32.jpg)
Alcides Calsavara 32
Construção de Objetos
• Toda classe define um ou mais métodos específicos para a criação (iniciação) de novos objetos, normalmente denominados construtores da classe.
• Toda vez que um novo objeto é criado, um construtor da correspondente classe deve ser selecionado para execução.
![Page 33: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/33.jpg)
Alcides Calsavara 33
Tipos de Dados Abstratos (ADT)• Um ADT é um modelo matemático para descrição
de um tipo independente de sua representação física.
• Um tipo é uma coleção de objetos caracterizados através de funções, axiomas e pré-condições.
• Um objeto que pertence ao conjunto de objetos descritos por um ADT é dito ser uma instância do ADT.
![Page 34: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/34.jpg)
Alcides Calsavara 34
Exemplo de ADTPilha (Stack)
• Opções de representação:– array– listas– ...
• Questão básica:
Como definir formalmente uma pilha de forma independente de sua representação?
![Page 35: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/35.jpg)
Alcides Calsavara 35
Exemplo de ADTPrimeira Parte: Tipos
Especificação ADT para pilhas
• TYPES– STACK [G]
![Page 36: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/36.jpg)
Alcides Calsavara 36
Exemplo de ADTSegunda Parte: Funções
• FUNCTIONS– put: STACK[G] X G --> STACK[G]– remove: STACK[G] -/-> STACK[G]– item: STACK[G] -/-> G– empty: STACK[G] --> BOOLEAN– new: STACK[G]
![Page 37: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/37.jpg)
Alcides Calsavara 37
Exemplo de ADTTerceira Parte: Axiomas
• AXIOMS
Para todo x : G, s : STACK[G]
A1 - item ( put ( s, x ) ) = x
A2 - remove ( put ( s, x ) ) = s
A3 - empty ( new )
A4 - not empty ( put ( s, x ) )
![Page 38: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/38.jpg)
Alcides Calsavara 38
Exemplo de ADTQuarta Parte: Pré-condições
• PRECONDITIONS– remove ( s : STACK[G] ) require not empty(s)– item ( s : STACK[G] ) require not empty(s)
![Page 39: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/39.jpg)
Alcides Calsavara 39
Asserções
P {A} Q
A execução de A, iniciando em um estado no qual P é verdadeira, terminará em um estado no qual Q é verdadeira.
P : pré-condição
Q : pós-condição
A : uma operação (ou parte de)
![Page 40: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/40.jpg)
Alcides Calsavara 40
Asserções - Exemplos
• {x >= 9} x := x + 5 {x >= 13}
• {x >= 0} y := sqrt(x) { true }
• {false} y := x * x { y >= 0 }
• {not full} put(x : G) { not empty AND item = x AND count = old count + 1 }
![Page 41: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/41.jpg)
Alcides Calsavara 41
Invariante de Classe
• Uma invariante é uma propriedade inalterável durante todo o ciclo de vida de um objeto.
• Exemplos:– 0 <= count– count <= capacity– empty = (count = 0)
![Page 42: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/42.jpg)
Alcides Calsavara 42
Tratamento de Exceção
• Exceções são acontencimentos fora do comportamento normal ou desejado para um programa. O gerenciamento de exeções permite o controle sobre erros e possivelmente uma solução de contorno.
• Exemplos: entrada em formato inválido, arquivo corrompido, conexão de rede não disponível, índice inválido para vetor, ...
![Page 43: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/43.jpg)
Alcides Calsavara 43
Modularização
• Construção de software orientado a objetos é a construção de um sistema de software como uma coleção de implementações de ADTs possivelmente parciais.
• Um ADT corresponde a um módulo de um sistema de software.
![Page 44: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/44.jpg)
Alcides Calsavara 44
Classe versus Objeto
• Um classe é um elemento de construção de software. Portanto, é um elemento definido e criado estaticamente.
• Um objeto é um elemento de run-time, isto é, só existe em tempo de execução de um sistema de software. Portanto, é criado dinamicamente.
![Page 45: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/45.jpg)
Alcides Calsavara 45
Generalização e Especialização
• Generalização: relacionamento entre uma classe e uma ou mais versões refinadas ou especializadas da classe.
• Especialização: relacionamento inverso• Superclasse: versão mais abstrata de outra
classe, a subclasse• Subclasse: versão mais refinada de outra
classe, a superclasse
![Page 46: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/46.jpg)
Alcides Calsavara 46
Herança
• Mecanismo baseado em objetos que permite que as classes compartilhem atributos e métodos baseado em um relacionamento, geralmente generalização/especialização.
• Uma subclasse herda atributos e métodos da superclasse.
![Page 47: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/47.jpg)
Alcides Calsavara 47
Classes Abstratas e Concretas
• Classe abstrata: classe que não pode ter instâncias diretas, mas cujos descendentes sim; organizam características comuns a diversas classes; mecanismo para reutilizar código; pode definir métodos abstratos (sem um correspondente método).
• Classe concreta: classe que pode ter instâncias diretas; não pode definir métodos abstratos.
![Page 48: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/48.jpg)
Alcides Calsavara 48
Sobrecarga
• Atributos e operações podem ser redefinidos (sobrecarregados) por subclasses.
![Page 49: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/49.jpg)
Alcides Calsavara 49
Sobrecarga para extensão
• A nova operação é igual à operação herdada, exceto pelo fato de acrescentar alguns detalhes de comportamento, normalmente afetando novos atributos da subclasse.
![Page 50: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/50.jpg)
Alcides Calsavara 50
Sobrecarga para restrição
• A nova operação restringe o protocolo (assinatura da operação), podendo reduzir os tipos de argumentos.
• A operação herdada fica fechada (restrita) dentro de cada subclasse específica.
![Page 51: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/51.jpg)
Alcides Calsavara 51
Sobrecarga para otimização
• O novo método tem o mesmo protocolo externo e apresenta o mesmos resultados
• A implementação do novo método (algoritmo utilizado) pode ser completamente diferente
![Page 52: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/52.jpg)
Alcides Calsavara 52
Polimorfismo
• Assume muitas formas• A propriedade segundo a qual uma operação pode
comportar-se diferentemente em classes diferentes.
• A subclasse redefine a implementação de uma operação herdada da superclasse.
• Onde se espera uma instância de um certa classe pode aparecer uma instância de qualquer subclasse daquela classe.
![Page 53: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/53.jpg)
Alcides Calsavara 53
Herança Múltipla
• Uma classe possui mais de uma subclasse e herda características de todos os seus ancestrais.
• Maior capacidade de especificação de classes.
• Maior oportunidade de reutilização.• Perda em simplicidade conceitual e de
implementação.
![Page 54: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/54.jpg)
Alcides Calsavara 54
Diagramas de Estados
• Representam o comportamento dinâmico de classes individuais
• Representam o comportamento dinâmico de colaboração entre classes
![Page 55: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/55.jpg)
Alcides Calsavara 55
Elementos de umdiagrama de estados
• os estados possíveis para os objetos de uma certa classe• as transições de estado• os eventos que causam transições de estados• as ações decorrentes de
– uma transição de estado– entrada em um estado– saída de um estado
• as ações realizadas por objetos enquanto estão em um certo estado– durante todo o tempo em que o objeto está no estado– decorrente de algum evento
![Page 56: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/56.jpg)
Alcides Calsavara 56
Diagramas de Estados
• Relaciona eventos e estados
• Um objeto muda de estado dependendo do evento e do estado atual.
• Transição: modificação de estado causada por um evento (mesmo quando estado final e inicial coincidem).
• Um evento pode ser irrelevante para um objeto em um certo estado.
![Page 57: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/57.jpg)
Alcides Calsavara 57
Notação paraDiagrama de Estados
Estado 1faça : atividade
Evento ( atributos )[ condição ] / ação Estado 2
. . .
![Page 58: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/58.jpg)
Alcides Calsavara 58
Diagramas de EstadosExemplo : Linha telefônica
Inativa
Sinal de discar
Ligando
Tocando
Interligando
Desligando
Queda-da-linha
Mensagem gravadaSinal de
ocupado
Sinal de ocu-pado rápido
no-gancho
dígito( n )
no-gancho
Discando
Mensagemterminada
encaminhado
telefone chamado atende
telefone chamado desliga
número válido
número invalido
fora-do-gancho
dígito( n )
número ocupado
tronco ocupado
queda-da-linha
queda-da-lin
ha
![Page 59: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/59.jpg)
Alcides Calsavara 59
Diagramas de EstadosExemplo : jogo de xadrez
Vez dasbrancas
Vez daspretas
brancasjogam
pretasjogam
Início cheque-mate
empate forçado
empate forçado
cheque-mate
Pretasvencem
Brancasvencem
Empate
![Page 60: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/60.jpg)
Alcides Calsavara 60
Controle de Operações
Inativo
botão direito pressionado /exibir menu instantâneo
Menu visível
botão direito liberado / apagar menu instantâneo
cursor movimentado / iluminar item do menu
![Page 61: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/61.jpg)
Alcides Calsavara 61
Condições de GuardaExemplo : Cruzamento
Leste / Oestepodem dobrar
à esquerda
tempodecorrido
Leste / Oestepodem ir em frente
Norte / Sulpodem ir em frente
tempo decorrido [ carrosnas vias esquerdas N / S ]
tempo decorrido [ carrosnas vias esquerdas L / O ]
tempodecorrido
tempo decorrido [ sem carros
nas vias esquerdas N / S ]
Norte / Sulpodem dobrar
à esquerda
tempo decorrido [ sem carros
nas vias esquerdas L / O ]
![Page 62: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/62.jpg)
Alcides Calsavara 62
Diagramas de Estados NiveladosExemplo : máquina de vender
Inativa
moedas introduzidas( quantia ) verificar saldo Recolhendo dinheiro
moedas introduzidas ( quantia ) /acrescentar ao saldo
faça : entregaritem
faça : preparartroco
faça : testar item e calcular troco
[ troco = 0 ] [ troco < 0 ]
[ troco < 0 ]
Selecionar ( item )[ item vazio ]
cancelar / devolver moedas
![Page 63: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/63.jpg)
Alcides Calsavara 63
Diagramas de Estados NiveladosExemplo : máquina de vender
Faça : moverbraço para afileira correta
faça : prepararitem
Faça : moverbraço para a
coluna correta
faça : empurraritem para forada prateleira
braço pronto braço pronto empurrado
dígito( n )
clear
faça : acrescentar
dígito
dígito( n )
enter
Selecionar( item )
Atividade entregar item da máquina de vender
Transição selecionar item da máquina de vender
![Page 64: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/64.jpg)
Alcides Calsavara 64
Generalização de Estados Exemplo : transmissão de um
carro
Primeira Segunda Terceira
sobe
Neutro Réapertar R
apertar N
reduz
sobe
reduz
Para a frente
pára
apertar Fapertar N
![Page 65: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/65.jpg)
Alcides Calsavara 65
Generalização de EventosExemplo : eventos de teclado
evento
Entrada do usuário
Botão do mouse
apertado
controle gráfico
espaço alfanumérico pontuação
tempo
dispositivo
Botão do mouselocalização
caracter do tecladocaracter
Botão do mouse
liberado
![Page 66: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/66.jpg)
Alcides Calsavara 66
Concorrência de AgregaçãoCarro
Ignição Transmissão Freio Acelerador
Desligada Partida Ligada
Girar chave para dar partida[ transmissão em Neutro ]
desligar a chave
liberar chave
Ignição
Desligado Ligado
apertaracelerador
apertar freio
liberar acelerador liberar freio
Acelerador Freio
Desligado Partido
![Page 67: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/67.jpg)
Alcides Calsavara 67
Concorrência Interna de Objetos
Não vulnerável
Não vulnerável
Vulnerável
Vulnerável
N-S vence rubber
L - O vence rubber
Vulnerabilidade N - S
jogo N - S
Vulnerabilidade L - O
jogo L - O
jogo N - S
jogo L - O
Jogando rubber
![Page 68: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/68.jpg)
Alcides Calsavara 68
Sincronização de Eventos Concorrentes
Faça : entregar dinheiro
Faça : ejetar cartão
Pronta parareinicializar
Emitindo
cartão recolhido
dinheiro recolhido
Preparação
![Page 69: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/69.jpg)
Unified Process: O que é um processo ?
• Um processo de desenvolvimento de software é o conjunto de atividades necessárias para transformar requisitos de usuários em sistema de software.
![Page 70: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/70.jpg)
Unified Process: Pilares
• O Unified Process é um processo– Dirigido por Use Case– Centrado em Arquitetura– Iterativo e Incremental
![Page 71: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/71.jpg)
Unified Process: Idéias Fundamentais
• Modelo de Use Cases
![Page 72: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/72.jpg)
Arquitetura: Camadas de Componentes
Classes específicas de negócio
Classes de Serviços
Pacotes Genéricos
Sistema Operacional
![Page 73: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/73.jpg)
Alcides Calsavara 73
Estrutura de uma Iteração
![Page 74: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/74.jpg)
Concorrência de Iterações• Iterações podem caminhar em paralelo
![Page 75: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/75.jpg)
Visão Global das Fases• O Processo
![Page 76: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/76.jpg)
Unified Process: Produtos• Modelos do Unified Process
![Page 77: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/77.jpg)
Fase de Requisitos• Modelo de Use Case: Exemplo
![Page 78: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/78.jpg)
Fase de Análise• Modelo de Análise
– Modelo de Análise a partir de Modelo de Use Case
![Page 79: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/79.jpg)
Modelo de Projeto• Diagrama de Classe
![Page 80: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/80.jpg)
Modelo de Projeto
• Diagrama de Seqüência
![Page 81: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/81.jpg)
Modelo de Projeto• Exemplo de Diagrama de Estados
![Page 82: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/82.jpg)
Camadas de Subsistemas: Exemplo
![Page 83: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/83.jpg)
Diagrama de Distribuição• O Modelo de Distribuição é representado em Diagramas de
Distribuição (Deployment)
![Page 84: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/84.jpg)
Alcides Calsavara 84
Críticas a Orientação a Objetos
• “yo-yo” problem: o reuso de uma classe requer o seu completo entendimento, inclusive de todo o seu caminho de herança (superclasses).
• Aprendizado é difícil.
• Produtividade não é mensurável e, por isso, seu aumento é contestado.
![Page 85: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/85.jpg)
Alcides Calsavara 85
Conclusão
• Software não é produto: é conhecimento
• Construção de software é um processo de aquisição de conhecimento
![Page 86: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/86.jpg)
Alcides Calsavara 86
Referências Bibliográficas
• The Real Reason Why Software Engineers Need Math. Keith Devlin. Communications of the ACM, 44 (10), October 2001.
• The Emperor with No Clothes. Henry F. Ledgard. Communications of the ACM, 44 (10), October 2001.
• The Case for a New Business Model. Phillip G. Armour. Communications of the ACM, 43 (8), August 2000.
![Page 87: Modelagem de Sistemas Alcides Calsavara. 2 Sumário](https://reader036.vdocuments.com.br/reader036/viewer/2022081505/552fc105497959413d8c03a9/html5/thumbnails/87.jpg)
Alcides Calsavara 87
Alcides Calsavara
• PUCPR/CCET• PPGIA: Programa de Pós-Graduação em
Informática Aplicada• MAIS: Modelagem e Arquitetura de
Sistemas de Informação• www.ppgia.pucpr.br/~alcides• [email protected]• 330 1783