professor mário dantas

85
Professor Mário Dantas Set/2010 ENGENHARIA DE SOFTWARE

Upload: mimis

Post on 23-Feb-2016

30 views

Category:

Documents


0 download

DESCRIPTION

Engenharia de Software. Set/2010. Professor Mário Dantas. Aula 04- Agenda. Princípios e conceitos de análise e projeto;. MODELAGEM DE ANÁLISE. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Professor  Mário Dantas

Professor Mário DantasSet/2010

ENGENHARIA DE SOFTWARE

Page 2: Professor  Mário Dantas

2

Aula 04- Agenda Princípios e conceitos de análise e

projeto;

Page 3: Professor  Mário Dantas

3

Durante as últimas décadas, um grande número de métodos de modelagem de análise foi desenvolvido. Pesquisadores identificaram problemas de análise e suas causas, e desenvolveram uma variedade de notações de modelagem e conjuntos de heuríticas correspondentes para resolve-los. Cada método de análise tem um ponto de vista singular. No entanto, todos os métodos de análise estão relacionados a um conjunto de princípios operacionais (PRESSMAN, 2006).

MODELAGEM DE ANÁLISE

Page 4: Professor  Mário Dantas

4

O que é?

A modelagem da análise usa uma combinação de formas textuais e diagramáticas para mostrar os requisitos de dados, função e comportamento, de modo que seja relativamente fácil de entender e revisar o sistema.

Page 5: Professor  Mário Dantas

5

Quem faz?

Um engenheiro de software (ou analista) constrói um modelo usando requisitos extraídos do cliente.

Page 6: Professor  Mário Dantas

6

Por que é importante?

Por representar os requisitos de várias maneiras, aumentando a chance de serem encontrados erros, inconsistências e que omissões sejam descobertas.

Page 7: Professor  Mário Dantas

7

Qual é o produto do trabalho?

Uma variedade de formas diagramáticas podem ser escolhidas para o modelo de análise. Cada uma fornece uma visão de um ou mais elementos do modelo.

Page 8: Professor  Mário Dantas

8

Como tenho certeza de que fiz corretamente?

Revisados quanto à correção, completeza e consistência.

Devem refletir as necessidades dos interessados e estabelecer um fundamento com base na qual o projeto pode ser conduzido.

Page 9: Professor  Mário Dantas

9

Princípios da Modelagem de Análise

O domínio da informação de um problema deve ser representado e entendido;

As funções a serem desenvolvidas pelo software devem ser definidas;

O comportamento do software (como conseqüência de eventos externos) precisa ser representado.

O modelos que mostram informações, funções e comportamento devem ser particionados de um modo que revele detalhes em forma de camadas (ou hierarquias);

A tarefa de análise deve ir da informação mais essencial até os detalhes de implementação.

Page 10: Professor  Mário Dantas

10

Conjunto genérico de Tarefas para modelagem de Análise

Revisar os requisitos de negócio, as características/necessidades dos usuários, as saídas visíveis ao usuário, as restrições do negócio e outros requisitos técnicos que foram determinados durante a atividade de comunicação com o cliente e o planejamento.

Page 11: Professor  Mário Dantas

11

Conjunto genérico de Tarefas para modelagem de Análise

Expandir e refinar os cenários do usuário. Definir todos os atores; Representar como os atores interagem com

o software. Extrair funções e características dos

cenários de usuário. Revisar o cenário do usuário quanto à

completude e precisão.

Page 12: Professor  Mário Dantas

12

Conjunto genérico de Tarefas para modelagem de Análise

Modelar o domínio da informação. Representar todos os principais objetos de

informação; Definir atributos para cada objeto de

informação; Representar os relacionamentos entre os

objetos de informação.

Page 13: Professor  Mário Dantas

13

Conjunto genérico de Tarefas para modelagem de Análise

Modelar o domínio funcional. Mostrar como as funções modificam os

objetos de dados; Refinar funções para fornecer detalhes de

elaboração; Escrever um narrativa de processamento

que descreva cada função e subfunção; Revisar os modelos funcionais.

Page 14: Professor  Mário Dantas

14

Conjunto genérico de Tarefas para modelagem de Análise

Modelar o domínio comportamental. Identificar os eventos externos que causam

mudanças comportamentais no sistema; Identificar os estados que representam

cada modo de comportamento observável externamente;

Mostrar como o evento faz o sistema se mover de um estado para outro;

Revisar os modelos comportamentais.

Page 15: Professor  Mário Dantas

15

Conjunto genérico de Tarefas para modelagem de Análise

Analisar e modelar a interface do usuário. Conduzir tarefa de análise; Criar protótipos de imagem de tela;

Revisar todo os modelos quanto à completude, consistência e omissões.

Page 16: Professor  Mário Dantas

16

O modelo de análise deve:

Descrever o que o cliente exige Estabelecer a base para a criação de um

projeto de software Definir um conjunto de requisitos que possam

ser validados quando o software for construído

Page 17: Professor  Mário Dantas

17

Regras práticas de Análise O nível de abstração deve ser relativamente

alto. Adie a consideração de modelos de infra-

estrutura e outros não funcionais até o projeto. Minimize o acoplamento ao longo de todo o

sistema Certifique-se de que o modelo de análise tem

valor para todos os interessados Mantenha o modelo tão simples quanto puder

Page 18: Professor  Mário Dantas

18

Análise de Domínio

É a identificação, análise e especificação dos requisitos comuns de um domínio de aplicação específico.

Sua meta é encontrar ou criar classes de análise e/ou as funções e características que são amplamente aplicáveis, de modo que possam ser reutilizadas.

Page 19: Professor  Mário Dantas

19

Abordagens de Modelagem de Análise

Elementos baseados em cenários Elementos baseados em classes Elementos comportamentais Elementos orientados a fluxos

Page 20: Professor  Mário Dantas

20

Atividade 002

4 grupos para apresentar as abordagens de modelagem de análise

Data: 15/09/2010

Page 21: Professor  Mário Dantas

21 Projeto de Software

Page 22: Professor  Mário Dantas

22

Objetivos

Conhecer os conceitos relacionados ao projeto de software, bem como sua aplicação;

Saber quais decisões devem ser tomadas sobre a arquitetura de sistema durante o processo de projeto de arquitetura.

Page 23: Professor  Mário Dantas

23

Projeto de Software

Engloba um conjunto de princípios, conceitos e práticas que levam ao desenvolvimento de um sistema ou produto de alta qualidade.

Seu objetivo é produzir um modelo ou representação que exiba firmeza, comodidade e prazer, ou seja, que satisfaça aos requisitos do sistema.

Page 24: Professor  Mário Dantas

24

O que é?

O projeto cria uma representação ou modelo de software, mas diferente do modelo de análise (que enfoca a descrição dos dados, função e comportamento requeridos).

O modelo de projeto fornece detalhe sobre as estruturas de dados, arquitetura, interfaces e componentes do software necessários para implementar o sistema.

Projeto de Software

Page 25: Professor  Mário Dantas

25

Quem faz? Engenheiros de software conduzem cada uma das

tarefas de projeto.

Por que é importante? Permite ao engenheiro de software modelar o

sistema ou produto que deve ser construído. Esse modelo pode ser avaliado quanto à qualidade e aperfeiçoado antes que o código seja gerado, testes sejam conduzidos e usuários finais fiquem envolvidos em grande número.

Projeto de Software

Page 26: Professor  Mário Dantas

26

Atividades de projeto

Page 27: Professor  Mário Dantas

27

Atividades de projeto Projeto da Arquitetura do Software� :

visa a definir os grandes componentes estruturais do software e seus relacionamentos.

�Projeto de Dados: tem por objetivo projetar a estrutura de armazenamento de

dados necessária para implementar o software. Projeto de Interfaces:

descreve como o software deverá se comunicar dentro dele mesmo (interfaces internas), com outros sistemas (interfaces externas) e com pessoas que o utilizam (interface com o usuário).

Projeto Procedimental Detalhado: tem por objetivo refinar e detalhar a descrição procedimental

dos componentes estruturais da arquitetura do software.

Page 28: Professor  Mário Dantas

28

Princípios da Modelagem de Projeto

O projeto deve estar relacionado ao modelo de análise;

Sempre considere a arquitetura do sistema a ser construído;

O projeto dos dados é tão importante quanto o projeto de funções de processamento;

As interfaces (tanto externas quanto internas) precisam ser projetadas como cuidado.

O projeto de interface do usuário deve estar sintonizado com as necessidades do usuário final. No entanto, em cada caso, ele deve enfatizar a facilidade de uso.

Page 29: Professor  Mário Dantas

29

Princípios da Modelagem de Projeto

O projeto a nível de componente deve ser funcionalmente independente;

Os componentes devem ser fracamente acoplados uns aos outros e ao ambiente externo.

Representações de projeto (modelos) devem ser facilmente compreensíveis.

O projeto de ser desenvolvido iterativamente. A cada iteração, o projetista deve lutar por maior simplicidade.

Page 30: Professor  Mário Dantas

30

Conjunto genérico de tarefas para o Projeto

Usando o modelo de análise, selecionar um estilo (padrão) arquitetural que seja apropriado para o software.

Page 31: Professor  Mário Dantas

31

Conjunto genérico de tarefas para o Projeto

Particionar o modelo de análise em subsistemas de projeto e alocar esses subsistemas na arquitetura. Certifica-se de que cada subsistema seja

funcionalmente coesivo. Projetar as interfaces dos subsistemas. Alocar classes ou funções de análise a cada

subsistema. Usando o modelo de domínio de

informação, projetar as estruturas de dados adequadas.

Page 32: Professor  Mário Dantas

32

Conjunto genérico de tarefas para o Projeto

Projetar as interfaces do usuário. Rever os resultados das análises de tarefas. Especificar a seqüência de ações com base

nos cenário dos usuários. Criar o modelo comportamental da

interface. Definir objetos de interface e mecanismos

de controle. Rever o projeto de interface e revisar

conforme a necessidade.

Page 33: Professor  Mário Dantas

33

Conjunto genérico de tarefas para o Projeto

Conduzir o projeto em nível de componentes. Especificar todos os algoritmos em um nível

de abstração relativamente baixo. Refinar a interface de cada componente. Definir a estrutura de dados em nível de

componente. Rever o projeto em nível de componente

Desenvolver um modelo de implantação.

Page 34: Professor  Mário Dantas

34

Qual é o produto do trabalho? Um modelo de projeto que inclui representações de

arquitetura, interface, componente e implantação.

Como tenho certeza de que fiz corretamente? O modelo de projeto é avaliado pela equipe de

software em um esforço para determinar se contém erros, inconsistências ou omissões; se existem alternativas melhores e se o modelo pode ser implementado dentro das restrições, cronograma e custo que foram estabelecidos.

Projeto de Software

Page 35: Professor  Mário Dantas

35

Projeto de SoftwareObjetivo: produzir um modelo que satisfaça ao requisitos.

Evolução contínua à medida que a análise se aperfeiçoa e entendimento amplia.

Page 36: Professor  Mário Dantas

36

Projeto serve de base para todas as etapas da Engenharia de Software

Projeto é necessário? Sem projeto, como modificar, testar e avaliar a qualidade?

Permite avaliar a qualidade antes de implementar

Projeto de Software

Page 37: Professor  Mário Dantas

37

Abstração: visão de alto nível dos aspectos fundamentais do

sistema, de maneira que obtenha-se uma ocultação dos detalhes.

Arquitetura: organização dos componentes de programas, suas

interações e as estruturas usadas pelos componentes. Padrões:

descreve uma estrutura para resolver um determinado problema.

Conceitos de Projeto

Page 38: Professor  Mário Dantas

38

Modularização Módulos são integrados com o objetivo de

atender a um requisito “Dividir e conquistar”

Page 39: Professor  Mário Dantas

39

Por que modularizar? Planejar mais fácil Manutenção Testes e depuração Ocultação de Informações Módulos devem ser especificados e

projetados de tal modo que informações desnecessárias sejam inacessíveis

Apenas o necessário é fornecido para a realização de funções

Abstração + ocultação (erros não são propagados nas modificações)

Page 40: Professor  Mário Dantas

40

Independência FuncionalModularidade + abstração + ocultação = Independência

Funcional

“Finalidade única” e menos interação Interfaces simplificadas Manutenção mais fácil Propagação de erros minimizada Reutilização

Dois critérios (qualitativos) para avaliação COESÃO: robustez funcional de um módulo (módulo

realiza uma única tarefa) ACOPLAMENTO: indicação da interdependência

entre módulos

Page 41: Professor  Mário Dantas

41

Refinamento e Refatoração Refinamento

Processo de elaboração (alto nível -> mais detalhes)

Refinamentos sucessivos (Abstração + refinamentos): conceitos

complementares

Refatoração Reorganizar para simplificar o projeto sem alterar

as funções e os comportamentos. O que pode ser refatorado?

Redundância, elementos não utilizados, algoritmos ineficientes, etc

Page 42: Professor  Mário Dantas

42

Extract Method Exemplo Sem Variáveis Locais

void imprimeDivida () {Enumerate e = _pedidos.elementos ();double divida = 0.0;// imprime cabeçalhoSystem.out.println (“***************************”);System.out.println (“*** Dívidas do Cliente ****”);System.out.println (“***************************”);// calcula dívidaswhile (e.temMaisElementos ()){Pedido cada = (Pedido) e.proximoElemento ();divida += cada.valor ();

}// imprime detalhesSystem.out.println (“nome: ” + _nome);System.out.println (“divida total: ” + divida);

}

Page 43: Professor  Mário Dantas

43

Extract MethodExemplo Com Variáveis Locais

void imprimeDivida () {Enumerate e = _pedidos.elementos ();double divida = 0.0;imprimeCabecalho ();// calcula dívidaswhile (e.temMaisElementos ()){Pedido cada = (Pedido) e.proximoElemento ();divida += cada.valor ();

}//imprime detalhesSystem.out.println(“nome: ” + _nome);System.out.println(“divida total: ” + divida);

}void imprimeCabecalho () { System.out.println (“***************************”);

System.out.println (“*** Dívidas do Cliente ****”);System.out.println (“***************************”);

}

Page 44: Professor  Mário Dantas

44

Extract MethodExemplo COM Variáveis Locais

void imprimeDivida () {Enumerate e = _pedidos.elementos ();double divida = 0.0;imprimeCabecalho ();// calcula dívidaswhile (e.temMaisElementos ()){Pedido cada = (Pedido) e.proximoElemento ();divida += cada.valor ();

}imprimeDetalhes (divida);

}

void imprimeDetalhes (double divida){

System.out.println(“nome: ” + _nome);System.out.println(“divida total: ” + divida);

}

Page 45: Professor  Mário Dantas

45

Extract Methodcom atribuição

void imprimeDivida () {imprimeCabecalho ();double divida = calculaDivida ();imprimeDetalhes (divida);

}

double calculaDivida (){

Enumerate e = _pedidos.elementos ();double divida = 0.0;while (e.temMaisElementos ()){Pedido cada = (Pedido) e.proximoElemento ();divida += cada.valor ();

}return divida;

}

Page 46: Professor  Mário Dantas

46

Extract Methoddepois de compilar e testar

void imprimeDivida () {imprimeCabecalho ();double divida = calculaDivida ();imprimeDetalhes (divida);

}

double calculaDivida (){

Enumerate e = _pedidos.elementos ();double resultado = 0.0;while (e.temMaisElementos ()){Pedido cada = (Pedido) e.proximoElemento ();resultado += cada.valor ();

}return resultado;

}

Page 47: Professor  Mário Dantas

47 Projeto de Arquitetura

Page 48: Professor  Mário Dantas

48

Objetivos Introduzir projeto arquitetural e discutir

sua importância. Explicar porque vários modelos são �

necessários para documentar uma arquitetura de software.

Descrever os tipos de modelos �arquitetural que podem ser usados.

Page 49: Professor  Mário Dantas

49

Arquitetura do Software O processo inicial de projeto, que

consiste em identificar os subsistemas é chamado de projeto de arquitetura.

A saída desse processo de projeto é uma descrição da arquitetura do software.

Page 50: Professor  Mário Dantas

50

Projeto de Arquitetura Sistemas grandes são sempre decompostos em

subsistemas que fornecem algum conjunto de serviços relacionados.

O projeto de arquitetura é o primeiro estágio no processo de projeto e representa uma ligação crítica entre os processos de engenharia de projeto e de requisitos.

O processo de projeto de arquitetura envolve o estabelecimento de um framework básico que identifica os principais componentes de um sistema e as comunicações entre eles.

Page 51: Professor  Mário Dantas

51 Comunicação com os stakeholders.

A arquitetura é uma apresentação em alto nível do sistema que pode ser usada para enfocar a discussão entre os diferentes stakeholders.

Análise de sistema. Decisões do projeto de arquitetura tem um profundo

efeito sobre se o sistema pode ou não cumprir requisitos não funcionais importantes (desempenho, confiabilidade, facilidade de manutenção)

Reuso em larga escala. A arquitetura pode ser reutilizada em sistemas com

requisitos similares ou para em um sistema pertencente a uma família de aplicações

Projeto de Arquitetura

Page 52: Professor  Mário Dantas

52

A arquitetura de sistema afeta o desempenho, facilidade de distribuição e de manutenção de um sistema.

O estilo e a estrutura específicos escolhidos para uma aplicação podem, portanto, depender dos requisitos não funcionais do sistema.

1. Desempenho. 2. Proteção. 3. Segurança. 4. Disponibilidade. 5. Facilidade de manutenção.

Projeto de Arquitetura

Conflitantes

Page 53: Professor  Mário Dantas

53

Atividades de Processos de projeto de arquitetura Estruturação de sistema

O sistema é decomposto em vários subsistemas principais e a comunicação entre esses subsistemas são identificados.

Modelagem de controle� É estabelecido um modelo geral dos relacionamentos

de controle entre as partes do sistema. Decomposição modular�

Os subsistemas identificados são decompostos em módulos. O projetista deve decidir sobre o tipo de módulo e suas interconexões.

Page 54: Professor  Mário Dantas

54

Subsistemas e módulos Um subsistema é um sistema cuja

operação não depende de serviços fornecidos por outros subsistema.

Um módulo é um componente do sistema que fornece serviços a outros componentes, mas normalmente não é considerado um sistema independente.

Page 55: Professor  Mário Dantas

55

Modelos de arquitetura Diferentes modelos de arquitetura pode

ser produzidos durante o processo de projeto.

Cada modelo representa diferentes �perspectivas na arquitetura.

Page 56: Professor  Mário Dantas

56

O modelo de repositório Subsistemas precisam trocar informações. Isso

pode ser feito de duas maneiras: Dados compartilhados são mantidos em um banco de

dados central, que pode ser acessado por todos os subsistemas.

Cada subsistema mantém seu próprio banco de dados e são passados explicitamente para outros subsistemas.

Quando grandes quantidades de dados precisam �ser compartilhados, o modelo de repositório é usado para organizar os sistemas.

Ex. de sistemas: SIG, CAD, CASE, sistema de �comando e controle

Page 57: Professor  Mário Dantas

57

Arquitetura de um conjunto de ferramentas CASE integrado

Page 58: Professor  Mário Dantas

58

Características de um modelo de repositório Vantagens

Maneira eficiente de compartilhar grandes quantidades de dados

Subsistemas que produzem dados não precisam se preocupar em como os dados são utilizados.

Gerenciamento centralizado de atividades, tais como backup,

segurança, etc. O modelo de compartilhamento é visível por meio

do esquema do repositório, facilitando a integração de novas ferramentas (desde que compatíveis com o modelo de dados estabelecido).

Page 59: Professor  Mário Dantas

59

Características de um modelo de repositório Desvantagens

Subsistemas devem concordar com o modelo de dados de repositório. Inevitavelmente um compromisso.

A evolução de dados é difícil e cara.� Diferentes subsistemas podem ter diferentes

requisitos para políticas de proteção, segurança e backup. O modelo de repositório impõe a mesma política.

Dificuldade em distribuir o repositório em uma �série de máquinas. Pode ser feito, porém pode haver problemas de redundância e inconsistência de dados.

Page 60: Professor  Mário Dantas

60

Modelo cliente-servidor Modelo cliente-servidor: é um modelo em que o

sistema é organizado como um conjunto de serviços e servidores e clientes associados que acessam e usam os serviços.

Seus componentes são: Um conjunto de servidores que oferecem

serviços para outros subsistemas. Um conjunto de clientes que solicita os serviços

oferecidos pelos servidores. Uma rede que permite aos clientes acessarem

esses serviços.

Page 61: Professor  Mário Dantas

61

Biblioteca de filmes e fotografias

Page 62: Professor  Mário Dantas

62

Características de cliente-Servidor Vantagens�

É uma arquitetura distribuída, permitindo o uso efetivo de sistemas de rede com muitos processadores distribuídos.

É fácil incluir um novo servidor e integrá-lo com o restante do sistema ou fazer a atualização do servidor de forma transparente.

Normalmente requer hardware mais barato Desvantagens

A falta de um modelo de referência compartilhada para dados pode significar dificuldade em prever problemas na integração de dados.

Gerenciamento redundante em cada servidor (backup e recuperação).

Não existe um registro central de nomes e serviços - pode ser difícil encontrar quais servidores e serviços estão disponíveis

Page 63: Professor  Mário Dantas

63

Modelo em camadas Modelo em camadas: organiza um sistema em

camadas, cada uma das quais fornecendo um conjunto de serviços. Com cada camada sendo implementada por meio dos recursos da camada base.

Page 64: Professor  Mário Dantas

64

Sistema de gerenciamento de versões

Page 65: Professor  Mário Dantas

65

Modelo em camadas Vantagens

Apóia o desenvolvimento incremental de sistemas.

Arquitetura modificável e portável.

Desvantagens Estruturar um sistema dessa maneira pode ser

difícil. Problemas de desempenho.

Page 66: Professor  Mário Dantas

66

Arquitetura de Sistemas Distribuídos

Sistema distribuído O processamento de informações é

distribuído em vários computadores ao invés de confinado em uma única máquina.

Bastante comum em qualquer organização Estilos de arquitetura comuns

Arquiteturas de múltiplos processadores Arquiteturas cliente-servidor Arquiteturas de objetos distribuídos Computação interorganizacional

Page 67: Professor  Mário Dantas

67

Características do sistema distribuído

Compartilhamento de recursos Interoperabilidade

Uso de equipamento e software de fabricantes diferentes.

Concorrência Processamento concorrente para aumentar o

desempenho. Escalabilidade

Capacidade ampliada pela adição de novos recursos. Tolerância a falhas

A capacidade de continuar em operação após a ocorrência de uma falha.

Page 68: Professor  Mário Dantas

68

Características do sistema distribuído

Complexidade Tipicamente, sistemas distribuídos são mais

complexos que sistemas centralizados. Segurança

Mais suscetível a ataques externos. Gerenciamento

Mais esforço é necessário para o gerenciamento do sistema.

Imprevisibilidade Respostas imprevisíveis dependendo da

organização do sistema e da carga de rede.

Page 69: Professor  Mário Dantas

69

Arquiteturas de Multiprocessadores

Sistema composto de múltiplos processos que podem (mas não precisam) executar em processadores diferentes.

Distribuição de processo para processador pode ser predeterminada ou pode estar sob o controle de um escalonador.

Page 70: Professor  Mário Dantas

70

Arquiteturas de Multiprocessadores

Page 71: Professor  Mário Dantas

71

Arquiteturas cliente-servidor A aplicação é modelada como um conjunto de

serviços que são fornecidos pelos servidores e um conjunto de clientes que usam estes serviços.

Os clientes sabem da existência dos servidores mas os servidores não sabem dos clientes.

s1

s2 s3

s4c1

c2 c3 c4

c5

c6c7 c8

c9

c10

c11c12

Client process

Server process

Page 72: Professor  Mário Dantas

72

Arquitetura C-S em camadas Camada de apresentação

Está relacionada à apresentação dos resultados de um processamento para os usuário do sistema, e à coleta de entradas do usuário.

Camada de processamento de aplicação Está relacionada ao fornecimento de

funcionalidade específica da aplicação, por exemplo, em um sistema de banco, funções bancárias, tais como abrir conta, fechar conta, etc.

Camada de gerenciamento de dados Está relacionada ao gerenciamento do

banco de dados do sistema.

Page 73: Professor  Mário Dantas

73

Clientes magros e gordos Modelo de cliente-magro (Thin-client)

Em um modelo cliente-magro, todo o processamento de aplicação e o gerenciamento de dados é realizado no servidor. O cliente é responsável, simplesmentes por executar o software de apresentação.

Modelo de cliente-gordo (Fat-client) Nesse modelo, o servidor é responsável somente

pelo gerenciamento de dados. O software do cliente implementa a lógica da aplicação e as interações com o usuário do sistema.

Page 74: Professor  Mário Dantas

74

Clientes magros e gordos

Page 75: Professor  Mário Dantas

75

Arquiteturas de três camadas

Camada de Apresentação Trata da apresentação dos resultados de uma

computação para os usuários do sistema e das formas de entrada de dados do usuário no sistema.

Camada de Aplicação Fornece funcionalidades específicas da

aplicação (ex., abertura e fechamento de conta em um sistema bancário)

Camada de dados Gerenciamento dos sistemas de banco de

dados.

Page 76: Professor  Mário Dantas

76

Arquiteturas de três camadas

Page 77: Professor  Mário Dantas

77

Arquitetura de Objetos Distribuídos

Não existe distinção entre clientes e servidores em uma arquitetura de objetos distribuídos.

Cada entidade distribuível é um objeto que fornece serviços para outros objetos e recebe serviços de outros objetos.

Os objetos se comunica através de um sistema de middleware chamado requisitor de objetos.

Page 78: Professor  Mário Dantas

78

Software bus

o1 o2 o3 o4

o5 o6

S (o1) S (o2) S (o3) S (o4)

S (o5) S (o6)

Page 79: Professor  Mário Dantas

79

Middleware CORBA Middleware

Software que gerencia e apóia os componentes diferentes de um sistema distribuído. Em essência, ele se situa no meio do sistema.

CORBA Padrão internacional para um localizador de

objetos (Object Request Broker) para gerenciar a comunicação entre objetos distribuídos.

Page 80: Professor  Mário Dantas

80

Middleware CORBA

Page 81: Professor  Mário Dantas

81

Arquiteturas orientadas a serviços SOA

Serviços “Uma ação ou desempenho oferecido de um grupo

para um outro. Embora o processo possa estar ligado a um produto

físico, o desempenho é essencialmente intangível e não resulta normalmente em propriedade de algum dos fatores de produção”.

O fornecimento dos serviços é, portanto, independente da aplicação que usa o serviço.

Um web service é uma abordagem padronizada para tornar um componente reusável disponível e acessível através da rede

Page 82: Professor  Mário Dantas

82

Arquiteturas orientadas a serviços SOA

Page 83: Professor  Mário Dantas

83

Exemplo Um sistema de informações de um automóvel

fornece aos motoristas informações sobre o clima, condições de tráfego, informações locais, etc. O sistema é ligado ao aparelho de rádio do automóvel que apresenta as informações como um sinal de emissora de rádio específica.

O automóvel é equipado com um receptor GPS para informar sua posição e, baseado nessa posição, o sistema acessa uma gama de serviços de informações. A informação pode ser fornecidas no idioma especificado pelo motorista.

Page 84: Professor  Mário Dantas

84

Page 85: Professor  Mário Dantas

85

Referências

PRESSMAN, Roger S. Engenharia de Software. 5. ed. São Paulo: Makron Books, 2006.

SOMMERVILLE, Ian. Engenharia de Software. 8. ed. São Paulo: Pearson, 2007.