projeto de arquitetura
DESCRIPTION
Apresentação do Capitulo 11 do livro engenharia de Software de Ian SommervilleTRANSCRIPT
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 1
Projeto de Arquitetura
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 2
Objetivos l Apresentar projeto de arquitetura e discutir sua
importncial Explicar as decises de projeto de arquitetura que
tm de ser feitasl Apresentar trs estilos complementares de
arquitetura que abrangem a organizao, decomposio e controle
l Discutir como as arquiteturas de referncia so usadas para comunicar e comparar arquiteturas
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 3
Tpicos abordadosl Decises de projeto de arquitetural Organizao de sistemal Estilos de decomposio modularl Modelos de controlel Arquiteturas de referncia
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 4
Arquitetura de softwarel O processo de projeto para identificar os
subsistemas que constituem um sistema e o framework para controle e comunicao de subsistema denominado projeto de arquitetura.
l A sada desse processo de projeto uma descrio da arquitetura de software.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 5
Projeto de arquitetural o primeiro estgio do processo de projeto
de sistema.l Representa a ligao entre os processos de
especificao e de projeto.l freqentemente conduzido em paralelo
com algumas atividades de especificao.l Envolve a identificao dos componentes
principais do sistema e suas comunicaes.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 6
Vantagens da arquitetura explcital Comunicao de stakeholder
A arquitetura pode ser usada como um foco de discusso pelos stakeholders do sistema.
l Anlise de sistema Se h possibilidade de o sistema atender a
seus requisitos no funcionais.l Reuso em larga escala
A arquitetura pode ser reusvel em uma variedade de sistemas.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 7
Caractersticas de arquitetura e de sistema
l Desempenho Localizar operaes crticas e minimizar comunicaes. Usar
componentes de alta ao invs de baixa granularidade.l Proteo
Usar uma arquitetura em camadas com itens crticos nas camadas mais internas.
l Segurana Localizar caractersticas crticas de segurana em um pequeno
nmero de subsistemas.l Disponibilidade
Incluir componentes redundantes e mecanismos para tolerncia falhas.
l Facilidade de manuteno Usar componentes substituveis e de baixa granulariade.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 8
Conflitos de arquitetural O uso de componentes de alta
granularidade aprimora o desempenho mas diminui a facilidade de manuteno.
l A introduo de dados redundantes aprimora a disponibilidade, mas torna a proteo mais difcil.
l Ao localizar caractersticas relacionadas segurana, geralmente significa maior comunicao e, por essa razo, o desempenho degradado.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 9
Estruturao de sistemal Est relacionado decomposio do sistema em
subsistemas que interagem.l O projeto de arquitetura normalmente expresso
como um diagrama de blocos que apresentam uma viso geral da estrutura do sistema.
l Modelos mais especficos que mostram como os subsistemas compartilham dados, como so distribudos e como interfaceiam uns com os outros, tambm podem ser desenvolvidos.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 10
Sistema de controle robotizado de empacotamento
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 11
Diagramas caixa e linhal Muito abstrato no mostram a natureza
dos relacionamento de componentes, nem as propriedades externamente visveis dos subsistemas.
l Contudo, so teis para comunicao com os stakeholders e para planejamento de projeto.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 12
Decises de projeto de arquitetural Projeto de arquitetura um processo criativo
cujas atividades diferem radicalmente dependendo do tipo de sistema que est sendo desenvolvido.
l Contudo, uma srie de decises comuns afetam todos os processos de projeto.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 13
Decises de projeto de arquitetural Existe uma arquitetura genrica de aplicao que
possa ser usada?l Como o sistema ser distribudo?l Quais estilos de arquitetura so apropriados?l Qual ser a abordagem fundamental usada para
estruturar o sistema?l Como o sistema ser decomposto em mdulos? l Qual estratgia deve ser usada?l Como o projeto de arquitetura ser avaliado?l Como a arquitetura do sistema deve ser
documentada?
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 14
Reuso de arquitetural Sistemas do mesmo domnio
freqentemente tm arquiteturas similares que refletem os conceitos de domnio.
l As linhas do produto de aplicao so construdas em torno de um ncleo de arquitetura com variantes que satisfazem requisitos especficos de clientes.
l As arquiteturas de aplicao so abordadas no Captulo 13, e linhas de produto no Captulo 18.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 15
Estilos de arquitetural O modelo de arquitetura de um sistema
pode estar de acordo com um modelo ou com um estilo genrico de arquitetura.
l A conscincia desses estilos pode simplificar o problema de definio de arquiteturas de sistema.
l Contudo, a maioria dos sistemas de grande porte so heterogneos e no seguem um nico estilo de arquitetura.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 16
Modelos de arquitetural So usados para documentar um projeto de arquitetura.l odelos estticos de estrutura que mostram os principais
componentes do sistema.l Um modelo dinmico de processo que mostra a estrutura de
processo do sistema.l Um modelo de interface que define as interfaces de
subsistemas.l Modelos de relacionamentos, tal como um modelo de fluxo de
dados, que mostra os relacionamentos dos subsistemas.l Um modelo de distribuio que mostra como subsistemas so
distribudos pelos computadores.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 17
Organizao de sistemal Reflete a estratgia bsica que usada para
estruturar um sistema.l Trs estilos de organizaes so
amplamente usados: O estilo de repositrio de dados
compartilhados; Estilo de servios e servidores compartilhados; Estilo de mquina abstrata ou em camadas.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 18
Modelo de repositriol Os subsistemas devem trocar dados. Isso pode ser
feito de duas maneiras: Os dados compartilhados so mantidos em um banco de
dados central ou repositrio e podem ser acessados por todos os subsistemas;
Cada subsistema mantm seu prprio banco de dados e passa dados explicitamente para outros subsistemas.
l Quando grandes quantidades de dados so compartilhadas, o modelo de repositrio de compartilhamento o mais usado.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 19
Arquitetura de conjunto de ferramentas CASE
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 20
Caractersticas de modelo de repositrio
l Vantagens uma maneira eficiente de compartilhar grandes quantidades
de dados; Os subsistemas no necessitam saber como os dados so
produzidos pelo gerenciamento centralizado, por exemplo, backup, proteo, etc.
Um modelo de compartilhamento publicado como o esquema de repositrio.
l Desvantagens Os subsistemas devem estar de acordo com um modelo de
dados do repositrio. , inevitavelmente, um compromisso; A evoluo de dados difcil e dispendiosa; No h escopo para polticas especficas de gerenciamento; Dificuldade para distribuirde forma eficiente.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 21
Modelo cliente-servidorl um modelo distribudo de sistema que mostra
como dado e processamento so distribudos por uma variedade de componentes.
l Estabelece servidores independentes que fornecem servios especficos, tais como impresso, gerenciamento de dados, etc.
l Estabelece clientes que acessam esses servios.l uma rede que permite aos clientes acessar os
servidores.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 22
Biblioteca de filmes e fotografias
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 23
Caractersticas de cliente-servidorl Vantagens
A distribuio de dados direta; Faz uso efetivo dos sistemas em rede. Pode solicitar
hardware mais barato; fcil adicionar novos servidores ou atualizar servidores
existentes.l Desvantagens
Nenhum modelo de dados compartilhado e, dessa forma, os subsistemas usam diferentes organizaes de dados; por isso, a troca de dados pode ser ineficiente.
Gerenciamento redundante em cada servidor; Nenhum registro central de nomes e servios pode ser
difcil descobrir quais servidores e servios esto disponveis.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 24
Modelo de mquina abstrata (em camadas)
l Usado para modelar o interfaceamento dos subsistemas.
l Organiza o sistema em um conjunto de camadas (ou mquinas abstratas), cada uma dss quais fornecenso um conjunto de servios.
l Apia o desenvolvimento incremental dos subsistemas em camadas diferentes. Quando uma camada de interface muda, somente a camada adjacente afetada.
l Contudo, freqentemente artificial estruturar sistemas dessa maneira.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 25
Sistema de gerenciamento de verses
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 26
Estilos de decomposio modularl Estilos de decomposio de subsistemas em
mdulos.l No h distino rgida entre organizao de
sistema e decomposio modular.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 27
Subsistemas e mdulosl Um subsistema um sistema em si cuja
operao no depende dos servios fornecidos por outros subsistemas.
l Um mdulo um componente de sistema que fornece servios para outros mdulos; no normalmente considerado um sistema separado.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 28
Decomposio modularl um outro nvel de estrutura onde os subsistemas
so decompostos em mdulos.l Dois modelos de decomposio modular podem ser
usados Um modelo de objeto onde o sistema decomposto em
objetos que se comunicam; Um modelo de pipeline ou fluxo de dados onde o sistema
decomposto em mdulos funcionais que transformam entradas em sadas.
l Se possvel, decises sobre concorrncia devem ser postergadas at que os mdulos estejam implementados.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 29
Modelos de objetosl Estruturar o sistema em um conjunto de objetos
fracamente acoplados com interfaces bem definidas.l A decomposio orientada a objetos est
relacionada identificao de classes de objetos, aos seus atributos e s suas operaes.
l Quando implementados, os objetos so criados a partir dessas classes e um tipo de controle usado para coordenar as operaes de objetos.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 30
Sistema de processamento de faturas
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 31
Vantagens do modelo de objetosl Objetos no so firmemente acoplados e, desse
modo, sua implementao pode ser modificada sem afetar outros objetos.
l Os objetos podem refletir entidades do mundo real.l Linguagens de implementao orientada a objeto
so amplamente usadas.l Contudo, mudanas de interface de objeto podem
causar problemas e entidades complexas podem ser difceis de representar como objetos.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 32
Pipelining orientado a funesl Transformaes funcionais processam suas
entradas para produzir sadas.l Pode ser chamado de estilo de duto (pipe) e filtro
(como no shell UNIX)l Variaes dessa abordagem so muito comuns.
Quando as transformaes so seqenciais, isso um modelo seqencil em lotes, que extensivamente usado em sistemas de processamento de dados.
l No realmente adequado para sistemas interativos.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 33
Sistema de processamento de faturas
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 34
Vantagens do modelo de pipelinel Apia reuso de transformaes.l Organizao intuitiva para comunicao com
stakeholders.l fcil adicionar novas transformaes.l relativamente simples implementar como sistema
concorrente ou seqencial.l Contudo, requer um formato comum para a
transferncia de dados ao longo do pipeline e o apoio a interaes baseadas em eventos difcil.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 35
Modelos de controlel Diferente do modelo de decomposio de sistema,
os modelos de controle esto relacionados ao fluxo de controle entre subsistemas
l Controle centralizado Um subsistema tem responsabilidade global pelo
controle, e inicia e pra outros sistemas.l Controle baseado em eventos
Cada subsistema pode responder a eventos gerados externamente a partir de outros subsistemas ou do ambiente do sistema.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 36
Controle centralizadol Um subsistema de controle responsvel pelo
gerenciamento da execuo de outros subsistemas.l Modelo chamada-retorno
o modelo de subrotina top-down onde o controle inicia no topo de uma hierarquia de subrotina, e se move para baixo da hierarquia. aplicvel a sistemas seqenciais.
l Modelo de gerenciador aplicvel a sistemas concorrentes. Um componente de
sistema controla a parada, o incio e a coordenao de outros processos de sistema. Pode ser implementado em sistemas seqenciais como uma declarao Case.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 37
Modelo chamada-retorno
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 38
Controle de sistema tempo real
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 39
Sistemas orientados a eventosl Dirigidos por eventos gerados externamente onde o
timing dos eventos est fora do controle dos subsistemas que processam o evento.
l Dois modelos dirigidos a eventos principais Modelos de broadcast. Um evento transmitido a todos
os subsistemas. Qualquer subsistema programado para manipular esse evento pode responder a ele.
Modelos orientados a interrupes. Usado em sistemas de tempo real onde as interrupes so detectadas por um tratador de interrupes e passadas por algum outro componente para processamento.
l Outros modelos dirigidos a eventos incluem sistemas de planilhas e de produo.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 40
Modelo de broadcastl efetivo na integrao de subsistemas em
computadores diferentes em uma rede.l Subsistemas registram um interesse em eventos
especficos. Quando estes ocorrem, o controle transferido para o subsistema que pode tratar o evento.
l A poltica de controle no embutida no tratador de eventos e mensagens. Os subsistemas decidem sobre os eventos de seu interesse.
l Contudo, os subsistemas no sabem se um evento ser tratado e nem quando ser.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 41
Broadcasting seletivo
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 42
Sistemas dirigidos a interrupesl usado em sistemas de tempo real onde a
resposta rpida para um evento essencial.l Existem tipos de interrupes conhecidos
com um tratador definido para cada tipo.l Cada tipo associado uma localizao da
memria, e uma chave de hardware causa a transferncia de controle para seu tratador.
l Permite respostas rpidas, mas complexo para programar e difcil de validar.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 43
Controle dirigido a interrupes
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 44
Arquiteturas de referncial Os modelos de arquitetura podem ser especficos
para algum domnio de aplicao.l Existe dois tipos de modelos de domnio especfico
Modelos genricos que so abstraes de uma srie de sistemas reais que englobam as caractersiticas principais desses sistemas. Abordados no Captulo 13.
Modelos de referncia so mais abstratos, um modelo idealizado. Fornece um meio de informao sobre essa classe de sistema e sobre comparao de arquiteturas diferentes.
l Os modelos genricos so geralmente modelos bottom-up. Os modelos de referncia so modelos top-down.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 45
Arquiteturas de referncial Os modelos de referncia so derivados de
um estudo de domnio de aplicao ao invs de sistemas existentes.
l Pode ser usado como base para a implementao de sistemas, ou comparar sistemas diferentes. Atua como um padro contra o qual os sistemas podem ser avaliados.
l O modelo OSI um modelo de camadas para sistemas de comunicao.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 46
Modelo de referncia OSI
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 47
Modelo CASE de referncia l Servios de repositrio de dados
Armazenamento e gerenciamento de itens de dados.l Servios de integrao de dados
Gerenciamento de grupos de entidades.l Servios de gerenciamento de tarefas
Definio e aprovao de modelos de processo.l Servios de mensagens
Comunicao ferramenta-ferramenta e ferramenta-ambiente.
l Servios de interface de usurio Desenvolvimento de interface de usurio.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 48
O modelo de referncia ECMA
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 49
Pontos-chavel A arquitetura de software o framework
fundamental para a estruturao de sistema.l Decises de projeto de arquitetura incluem decises
sobre o tipo de aplicao, a distribuio e os estilos de arquitetura a serem usados.
l Modelos diferentes de arquitetura, tais como um modelo de estrutura, um modelo de controle e um modelo de decomposio podem ser desenvolvidos.
l Modelos organizacionais de um sistema incluem modelos de repositrio, modelos cliente-servidor e modelos de mquina abstrata.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 50
Pontos-chavel Modelos de decomposio modular incluem
modelos de objetos e modelos de pipelining.l Modelos de controle incluem modelos de
controle centralizado e dirigidos a eventos.l Arquiteturas de referncia podem ser usadas
para comunicar arquiteturas de domnio especfico, avaliar e comparar projetos de arquitetura.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 51
Modelos de arquitetural Modelos diferentes de arquitetura podem ser
produzidos durante o processo de projeto.l Cada modelo apresenta perspectivas
diferentes sobre a arquitetura.
-
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 11 Slide 52
Atributos de arquitetural Desempenho
Localizar operaes crticas e minimizar comunicaes.l Proteo
Usar uma arquitetura em camadas com itens crticos nas camadas mais internas.
l Segurana Isolar componentes crticos de segurana
l Disponibilidade Incluir componentes redundantes na arquitetura.
l Facilidade de manuteno Usar componentes substituveis e de baixa granulariade.