A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Modelagem de Sistemas Alcides Calsavara. 2 Sumário.

Apresentações semelhantes


Apresentação em tema: "Modelagem de Sistemas Alcides Calsavara. 2 Sumário."— Transcrição da apresentação:

1 Modelagem de Sistemas Alcides Calsavara

2 2 Sumário

3 Alcides Calsavara3 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 e anos atrás.

4 Alcides Calsavara4 Realidade e Software Percepção da Realidade Sistema de Software observador implementador

5 Alcides Calsavara5 Modelagem e Formalização Percepção da Realidade Sistema de Software Modelos observador formalizador implementador

6 Alcides Calsavara6 Refinamento de Modelos Percepção da Realidade Sistema de Software Modelo 1 observador formalizador implementador Modelo n-1...

7 Alcides Calsavara7 Refinamento de Modelos Percepção da Realidade ( Modelo 0 ) Sistema de Software ( Modelo n ) Modelo 1 observador formalizador implementador Modelo n-1...

8 Alcides Calsavara8 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

9 Alcides Calsavara9 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.

10 Alcides Calsavara10 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

11 Alcides Calsavara11 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.

12 Alcides Calsavara12 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.

13 Alcides Calsavara13 Interação entre Objetos

14 Alcides Calsavara14 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

15 Alcides Calsavara15 Execução de Métodos invocaçãoevento m e mm

16 Alcides Calsavara16 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

17 Alcides Calsavara17 Comportamento e Estado

18 Alcides Calsavara18 Métodos e Atributos

19 Alcides Calsavara19 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.

20 Alcides Calsavara20 Interface A interface de um objeto é o conjunto de métodos que podem ser explicitamente invocados a partir de outros objetos.

21 Alcides Calsavara21 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.

22 Alcides Calsavara22 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.

23 Alcides Calsavara23 Classes e Objetos Classe AClasse B

24 Alcides Calsavara24 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.

25 Alcides Calsavara25 Tipos Primitivos: –números inteiros –números reais –valores lógicos (verdadeiro ou falso) –caracteres Classes: –atributos –métodos

26 Alcides Calsavara26 Tipo Parametrizado Um tipo pode receber como parâmetro uma lista de tipos. Exemplos: –pilha de inteiros –pilha de reais –pilha de pessoas –...

27 Alcides Calsavara27 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).

28 Alcides Calsavara28 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).

29 Alcides Calsavara29 Atributos em Classes e Objetos b = V z = 7 Classe A b : lógico z : inteiro b = F z = -3 b = V z = 0

30 Alcides Calsavara30 Associação entre Objetos nome = João Classe Pessoa nome : texto Classe Automóvel placa : texto proprietário : Pessoa placa = ABC 1234 Possuído-por proprietário

31 Alcides Calsavara31 Composição de Objetos potência = 2,0 Classe Motor potência : real Classe Automóvel placa : texto motor : Motor placa = ABC 1234 Contém

32 Alcides Calsavara32 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.

33 Alcides Calsavara33 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.

34 Alcides Calsavara34 Exemplo de ADT Pilha (Stack) Opções de representação: –array –listas –... Questão básica: Como definir formalmente uma pilha de forma independente de sua representação?

35 Alcides Calsavara35 Exemplo de ADT Primeira Parte: Tipos Especificação ADT para pilhas TYPES –STACK [G]

36 Alcides Calsavara36 Exemplo de ADT Segunda 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]

37 Alcides Calsavara37 Exemplo de ADT Terceira 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 ) )

38 Alcides Calsavara38 Exemplo de ADT Quarta Parte: Pré-condições PRECONDITIONS –remove ( s : STACK[G] ) require not empty(s) –item ( s : STACK[G] ) require not empty(s)

39 Alcides Calsavara39 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)

40 Alcides Calsavara40 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 }

41 Alcides Calsavara41 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)

42 Alcides Calsavara42 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,...

43 Alcides Calsavara43 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.

44 Alcides Calsavara44 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.

45 Alcides Calsavara45 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

46 Alcides Calsavara46 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.

47 Alcides Calsavara47 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.

48 Alcides Calsavara48 Sobrecarga Atributos e operações podem ser redefinidos (sobrecarregados) por subclasses.

49 Alcides Calsavara49 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.

50 Alcides Calsavara50 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.

51 Alcides Calsavara51 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

52 Alcides Calsavara52 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.

53 Alcides Calsavara53 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.

54 Alcides Calsavara54 Diagramas de Estados Representam o comportamento dinâmico de classes individuais Representam o comportamento dinâmico de colaboração entre classes

55 Alcides Calsavara55 Elementos de um diagrama 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

56 Alcides Calsavara56 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.

57 Alcides Calsavara57 Notação para Diagrama de Estados Estado 1 faça : atividade Evento ( atributos ) [ condição ] / ação Estado 2...

58 Alcides Calsavara58 Diagramas de Estados Exemplo : Linha telefônica Inativa Sinal de discar Ligando Tocando Interligando Desligando Queda- da-linha Mensagem gravada Sinal de ocupado Sinal de ocu- pado rápido no-gancho dígito( n ) no-gancho Discando Mensagem terminada 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

59 Alcides Calsavara59 Diagramas de Estados Exemplo : jogo de xadrez Vez das brancas Vez das pretas brancas jogam pretas jogam Início cheque-mate empate forçado cheque-mate Pretas vencem Brancas vencem Empate

60 Alcides Calsavara60 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

61 Alcides Calsavara61 Condições de Guarda Exemplo : Cruzamento Leste / Oeste podem dobrar à esquerda tempo decorrido Leste / Oeste podem ir em frente Norte / Sul podem ir em frente tempo decorrido [ carros nas vias esquerdas N / S ] tempo decorrido [ carros nas vias esquerdas L / O ] tempo decorrido tempo decorrido [ sem carros nas vias esquerdas N / S ] Norte / Sul podem dobrar à esquerda tempo decorrido [ sem carros nas vias esquerdas L / O ]

62 Alcides Calsavara62 Diagramas de Estados Nivelados Exemplo : máquina de vender Inativa moedas introduzidas ( quantia ) verificar saldo Recolhendo dinheiro moedas introduzidas ( quantia ) / acrescentar ao saldo faça : entregar item faça : preparar troco faça : testar item e calcular troco [ troco = 0 ] [ troco < 0 ] Selecionar ( item ) [ item vazio ] cancelar / devolver moedas

63 Alcides Calsavara63 Diagramas de Estados Nivelados Exemplo : máquina de vender Faça : mover braço para a fileira correta faça : preparar item Faça : mover braço para a coluna correta faça : empurrar item para fora da prateleira 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

64 Alcides Calsavara64 Generalização de Estados Exemplo : transmissão de um carro Primeira SegundaTerceira sobe Neutro Ré apertar R apertar N reduz sobe reduz Para a frente pára apertar F apertar N

65 Alcides Calsavara65 Generalização de Eventos Exemplo : eventos de teclado evento Entrada do usuário Botão do mouse apertado controlegráfico espaçoalfanuméricopontuação tempo dispositivo Botão do mouse localização caracter do teclado caracter Botão do mouse liberado

66 Alcides Calsavara66 Concorrência de Agregação Carro IgniçãoTransmissãoFreioAcelerador Desligada PartidaLigada Girar chave para dar partida [ transmissão em Neutro ] desligar a chave liberar chave Ignição Desligado Ligado apertar acelerador apertar freio liberar aceleradorliberar freio Acelerador Freio Desligado Partido

67 Alcides Calsavara67 Concorrência Interna de Objetos Não 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

68 Alcides Calsavara68 Sincronização de Eventos Concorrentes Faça : entregar dinheiro Faça : ejetar cartão Pronta para reinicializar Emitindo cartão recolhido dinheiro recolhido Preparação

69 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.

70 Unified Process: Pilares O Unified Process é um processo –Dirigido por Use Case –Centrado em Arquitetura –Iterativo e Incremental

71 Unified Process: Idéias Fundamentais Modelo de Use Cases

72 Arquitetura: C amadas de Componentes Classes específicas de negócio Classes de Serviços Pacotes Genéricos Sistema Operacional

73 Alcides Calsavara73 Estrutura de uma Iteração

74 Concorrência de Iterações Iterações podem caminhar em paralelo

75 Visão Global das Fases O Processo

76 Unified Process: Produtos Modelos do Unified Process

77 Fase de Requisitos Modelo de Use Case: Exemplo

78 Fase de Análise Modelo de Análise –Modelo de Análise a partir de Modelo de Use Case

79 Modelo de Projeto Diagrama de Classe

80 Modelo de Projeto Diagrama de Seqüência

81 Modelo de Projeto Exemplo de Diagrama de Estados

82 C amadas de Subsistemas: Exemplo

83 Diagrama de Distribuição O Modelo de Distribuição é representado em Diagramas de Distribuição (Deployment)

84 Alcides Calsavara84 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.

85 Alcides Calsavara85 Conclusão Software não é produto: é conhecimento Construção de software é um processo de aquisição de conhecimento

86 Alcides Calsavara86 Referências Bibliográficas The Real Reason Why Software Engineers Need Math. Keith Devlin. Communications of the ACM, 44 (10), October The Emperor with No Clothes. Henry F. Ledgard. Communications of the ACM, 44 (10), October The Case for a New Business Model. Phillip G. Armour. Communications of the ACM, 43 (8), August 2000.

87 Alcides Calsavara87 Alcides Calsavara PUCPR/CCET PPGIA: Programa de Pós-Graduação em Informática Aplicada MAIS: Modelagem e Arquitetura de Sistemas de Informação


Carregar ppt "Modelagem de Sistemas Alcides Calsavara. 2 Sumário."

Apresentações semelhantes


Anúncios Google