SlideShare uma empresa Scribd logo
Arquitetura de Software
Visão Geral
Copyright © 2017
Fábio Nogueira de Lucena
fabio@inf.ufg.br
O que é arquitetura de software?
• Nível de projeto preocupado com
• Questões além de algoritmos e estruturas de dados
• Projeto e especificação a estrutura do sistema
• Estrutura de controle global
• Protocolos de comunicação, sincronização
• Acesso a dados
• Atribuição de funcionalidade a elementos de projeto
• Distribuição física de elementos
• Desempenho e escala
Onde obter mais informações ...
• ARQUITETURA DE SOFTWARE
• Excelente ponto de partida:
• www2.umassd.edu/SECenter/SAResources.html
O que não é?
• Não é projeto “detalhado”
• Não é projeto de algoritmos
• Não é implementação
• Não é o modelo de dados
• Usa para assinatura de interfaces
• Não é o sistema físico (processadores, rede, ...)
• Usa para impacto de desempenho, confiabilidade, ...
• Não é a arquitetura de hardware
Representação
• Visão
• Descrição simplificada de uma perspectiva
• Construção civil
• Planta baixa
• Projeto elétrico
• Projeto hidráulico, ...
• Construção de software (segundo o RUP: “4+1”)
• Visão de UC
• Visão Lógica
• Visão de processos
• Visão de implementação
• Visão de implantação
Visões de Arquitetura
• Visão de Casos de Uso
• Ucs e cenários que ilustram itens “arquiteturalmente significantes”, riscos
técnicos, ...
• Visão lógica
• Classes + relevantes organizadas em subsistemas, packages e estes em
camadas. Realizações de Ucs.
• Visão de implementação
• Organização de componentes, executáveis, fontes,...
• Visão de processos
• Configuração e interação entre processos e threads
• Visão de implantação
• Alocação de tarefas a nós físicos, interação entre estes
Arquitetura concentra-se ...
• Na estrutura (subsistemas, camadas)
• Nos elementos essenciais (UC críticos, classes principais, mecanismos
comuns)
• Em cenários principais (fluxo de controle principal por todo o
sistema)
• Em serviços (captura modularidade, elementos opcionais, ...)
Visões de arquitetura são abstrações de todo o projeto
Por que é importante?
• Evolução do sistema
• Reutilização da arquitetura ou parte
• Avaliação de desempenho, disponibilidade, ...
• Organização do trabalho de construção
• Decisões acerca aquisição de componentes existentes
• Inserção em um sistema maior
Como descrever em UML?
• Visão lógica
• Diagramas de classes, DTEs e diagramas de objetos
• Visão de processos
• Diagramas de classes e objetos (processos,threads)
• Visão de implementação
• Diagramas de componentes
• Visão de implantação
• Diagramas de implantação
• Visão de casos de uso
• Diagramas de ucs, atores, diagramas de seqüência.
Visão de Caso de Uso
• Fornece base para planejamento de iterações
Visão de UC (exemplo)
Modelo de Processo
do Negócio
Casos de Uso
Vision Document
(SAD)
Arquitetura do sistema conforme
"percebida" pelos clientes.
Atores
Visão de UC
(Modelo de Processo do Negócio)
Aluno não
matriculado
Requisita
matrícula
Comprovante
de Matrícula
Requisicao
Matricula
Avalia Requisicao de
Candidato
Efetua
matrícula
Candidato apto
Requisicao
Matricula
Efetua
matrícula
Avalia Requisição
de Aluno
Aluno
matriculado
Fim de período
Requisita
matrícula
Comprovante
de Matrícula
[ aluno apto? ]
[ aluno inapto? ]
Fulano : Aluno (from Criar Programa)Sistema (from Criar Programa)Candidato (from Criar Programa)
Visão lógica
• Base para compreensão da estrutura e organização do projeto
Visão Lógica (exemplo)
Presentation
<<layer>>
Data
<<layer>>
Business
<<layer>>
DataCapes
(from Software)
Lattes
(from Software)
CAPES
(from Logical View)
CNPQ
(from Logical View)
Use-Case
Realizations
Visão de processos
• Base para compreensão da organização de processos
NetScape 6.0
<<thread>>
Internet Explorer 5.5
<<thread>>
Apache Server
(from Software)
Browser
<<thread>>
1 n1 n
<<http>>
Refinamento da Visão de Processos
CORBA Server
(from Software)
JVM
(from Software)
JMS broker
(from Software)
Java Plug-In 1.3
<<thread>>
NetScape 6.0
<<thread>>
Internet Explorer 5.5
<<thread>>
Browser
<<thread>>
Apache Server
(from Software)
1 n1 n
<<http>>
Database
(from Software)
1
1
1
1
Servidor de Aplicação
<<process>>
1
n
1
n
Beans
(from beans)
<<thread>>
Visão de implantação
• Base para compreensão da distribuição física do sistema entre nós
Servidor SISPG
preemptive
Servidor Apache
Banco de Dados
Servidor de Aplicações Java
Coordenação de
Programa
Laser Printer
<<UFGNet>>
Câmera
Digital
Impressão de
DiplomasImpressora
de Diplomas
Navegante
<<Internet>>
Usuário
<<Internet>>
Servidor
CCPFJ
<<UFGNet>>
<<UFGNet>>
Desenvolvimento de
Arquitetura de Software
• Como produzir uma arquitetura de software?
• Como obter as visões de arquitetura?
• Quando ocorre?
• Quais as tarefas?
• Qual o processo?
• Quais os artefatos?
• ...
Quando ocorre?
• (após)
Requisitos (gera entrada para A&P)
• (início) Análise & Projeto
• Transformar req em projeto
• Obter uma arquitetura robusta
• (durante)
Fase de elaboração
Concepção
Quais as tarefas?
• Definir arquitetura candidata
• Criar uma versão inicial da arquitetura
• Definir elementos de arquitetura significantes
• Definir camadas e organização do sistema
• Definir realizações de casos de uso
• Identificar classes de análise
• Refinar a arquitetura
• Identificar elementos de projeto daqueles de análise
• Manter consistência e integridade da arquitetura
• Descrever elementos de implantação e execução do sistema
• Organizar o modelo de implementação
Definir arquitetura candidata
Refinar a arquitetura
Definir arquitetura candidata
• Compreende
• Análise de arquitetura
• Análise de casos de uso
• Processo
• Após início com a análise de arquitetura
• Escolha casos de uso significantes
• Realize a análise de casos de uso em cada UC
• Atualize a arquitetura concomitantemente
Análise de Arquitetura
• Desenvolver visão geral da arquitetura
• Definir organização de subsistemas (high-level)
• Identificar mecanismos de análise
• Identificar abstrações principais
• Criar realizações de casos de uso
• Desenvolver modelo de implantação (high-level)
• Revisar resultados
1Definirarquiteturacandidata
INCLUI:
Análise de Casos de Uso
• Suplementar descrições de casos de uso
• Identificar classes de análise
• Distribuir comportamento em classes de análise
• Descrever responsabilidades
• Descrever atributos e associações
• Estabelecer associações entre classes
• Descrever dependências de eventos entre classes
• Avaliar resultados
1Definirarquiteturacandidata
INCLUI:
Visão geral da arquitetura
• Objetivo
• Explorar e avaliar opções de arquitetura
• Fornecer compreensão de alto nível da estrutura
• Pode ser criada cedo (fase de concepção)
• Reflete decisões e suposições acerca da implementação da Visão
• Decisões acerca da arquitetura lógica e física
• Ilustra “essência” da solução proposta
• Fornece “grandes blocos”
1.1AnálisedeArquitetura
Exemplo (visão geral da arquitetura)
Visão apresentada aos usuários
1.1.1AnálisedeArquitetura
DataCapes
(from Software)
StrictoSensu
<<subsystem>>
LatoSensu
<<subsystem>>
Pi
<<subsystem>>
Financeiro
<<subsystem>>
CCPFJ
<<sistema>>
Lattes
(from Software)
Projetos
<<subsystem>>
CAPES
CNPQ
CCPFJ
<<sistema>>
Definir organização de subsistemas
• Objetivo
• Criar estrutura inicial para o modelo de projeto
• Modelo de projeto
• Geralmente organizado em camadas
• Neste ponto, focalize as camadas de aplicação e a camada específica ao
negócio
1.1.1AnálisedeArquitetura
Visão Lógica (Top-Level)
1.1.1AnálisedeArquitetura
Presentation
<<layer>>
Data
<<layer>>
Business
<<layer>>
DataCapes
(from Software)
Lattes
(from Software)
CAPES
(from Logical View)
CNPQ
(from Logical View)
Use-Case
Realizations
Visão Lógica (Presentation Layer)
1.1.1AnálisedeArquitetura
Browser Java Applet
HTTP
<<provider>>
(from Business)
HTML Pages
Server Pages
(from Business)
IIOP
<<provider>>
(from Business)
JavaScript
XML docs
Visão Lógica (Business Objects Layer)
• Sabe-se que as interfaces CNPQ e CAPES são utilizadas por um
subconjunto dos objetos
• Na visão de implementação teremos componentes que
implementam estas interfaces
1.1.1AnálisedeArquitetura
Visão Lógica (Business Objects Layer)
1.1.1AnálisedeArquitetura
HTTP
<<provider>>
Web Server Server Pages
Application Server
<<provider>>
IIOP
<<provider>>
JavaBeans Mapeamento
Persistência
(from Data)
Business
Objects
CAPES
(from Logical View)
CNPQ
(from Logical View)
Visão Lógica (Data Layer)
1.1.1AnálisedeArquitetura
Persistência Mapeamento
Persistência
PostgreSQLInterbaseJDBC-Interbase JDBC-PostgreSQL
Identificar mecanismos de análise
• Identificação de padrões
• Persistência, gerência de transação, ...
• Identificar problemas possivelmente implícitos
• Não diretamente fornece funcionalidade
• Veja Design Patterns para detalhes.
1.1.1AnálisedeArquitetura
Exemplo (mecanismo de análise)
• Persistência (um mecanismo identificado)
• Analysis Patterns
Chapter 12 (Layered Architecture for Information Systems)
Martin Fowler
Addison-Wesley, 1997
• Object-Oriented Modeling and Design for Database Applications
Chapter 13 (Relational Databases: Basics)
Michael Blaha & Wiliam Premerlani
Prentice-Hall, 1998
• Mostra como implementar modelos orientados a objetos com bancos de dados
relacionais.
1.1AnálisedeArquitetura
Exemplo (observer pattern)
• Objeto deve notificar outros sem conhecer quem são estes outros
• Enviar e-mail após alteração, ...
1.1AnálisedeArquitetura
Identificar abstrações principais
• Identificar classes de análise oriundas de ...
• Requisitos
• Glossário
• Defina relacionamentos entre as classes
• Em geral, vários diagramas são utilizados
• Durante o projeto, tais classes sofrerão alterações
 Poderão se tornar “classes”
• QUAL O OBJETIVO?
• Identificar “conceitos principais” que o sistema manipulará
• Ao analisar UCs outras classes e relacionamentos surgirão
1.1AnálisedeArquitetura
Exemplo (abstrações principais)
1.1AnálisedeArquitetura
ItemCalendárioCalendário
1..n1..n
Atividade
ncreditos
nome : String
TipoDisciplina
tipo
Programa
EstagioDocencia
OutraAtividade
descricao : String
AreaConcentracao
AtividadeCredito
minimo
maximo
obrigatoria
nome
1
n
1
n
Estrutura Curricular
11 11
Disciplina
ementa
1..n 1..n1..n 1..n
Classifica
nn
Executa
periodo
conceito
frequencia
Aluno
(from Academia)
n nn n
Requerimento Comprovante
Documento
Data : Date
Diploma Certificado
Informe
DataInicio : Date
DataFim : Date
Criar realizações de casos de uso
• Para cada UC, crie realização do UC
• O nome da realização deve ser o mesmo
• Crie uma dependência da realização para o UC
• É bom lembrar ...
• UC especifica funcionalidade visível externamente
• UC não fornece uma implementação
• Colaboração descreve
• Objetos que implementam o comportamento do UC
• Forma que interagem para obter este efeito
1.1AnálisedeArquitetura
Exemplo (realizações de UCs)
1.1AnálisedeArquitetura
Limpar base de informes
(from Informes)
Excluir informe
(from Excluir informe)
Excluir informe
(from Informes)
Editar informe
(from Editar informe)
Limpar base de informes
(from Limpar base de informes)
Criar informe
(from Criar informe)
Consultar informes
(from Consultar informes)
Consultar informes
(from Informes)
Criar informe
(from Informes)
Editar informe
(from Informes)
Desenvolver modelo de implantação
• Objetivo
• Visão da distribuição geográfica
• Entendimento da complexidade operacional do sistema
• Insumos
• Usuários (localizações)
• Dados do negócio
• Especificação Suplementar
• Requisitos não-funcionais
• Restrições
• Processo
• Atender usuários, casos de uso, acesso a dados, ...
1.1AnálisedeArquitetura
Exemplo (diagrama de implantação)
1.1AnálisedeArquitetura
Servidor
CCPFJ
Servidor SISPG
preemptive
Servidor Apache
Banco de Dados
Servidor de Aplicações Java
Coordenação de
Programa
Laser Printer
<<UFGNet>>
Câmera
Digital
Impressão de
Diplomas
<<UFGNet>>
Impressora
de Diplomas
Navegante
<<Internet>>
Usuário
<<Internet>>
<<UFGNet>>
Classe de Análise
• “Coisas” no sistema que possuem
• Responsabilidade
• Comportamento
• Abstração de um papel
• PAPEL: definição de comportamento e responsabilidade
• Pode se referir a mais de um papel
• Evolui em um ou mais elementos de projeto
• Classes
• Subsistemas
1.2AnálisedeUC
Classes de Análise (representação)
• Boundary class
• Interação entre ator e sistema
• Control class
• Comportamento específico de um ou mais UCs
• Objetos que controlam outros objetos
• Representa a dinâmica do sistema (fluxo de controle)
• Entity class
• Modela informação e comportamento associado
Classes de análise (exemplo)
: Gerencia Informes : Elemento de
Informação
: Tela Informes: Usuário
1: Requisita informes 2: Obtem Informes 3: Obtem descrição
4: Mostra descrição de informes
Considerações finais
• Arquitetura de software (item muito importante)
• concepção e ELABORAÇÃO
• Definição do “raio-x da organização do sistema”
• Faz uso de várias visões
• Orienta posteriores atividades de análise & projeto
• Fase de Elaboração
• Protótipo executável da arquitetura pode ser construído
• Provavelmente na primeira iteração
• Arquitetura estável deve ser atingida nesta fase

Mais conteúdo relacionado

Mais procurados

Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
Italo Costa
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
Leinylson Fontinele
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
Alexandre Leão
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
Daniel Cukier
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
alinebicudo
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
elliando dias
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
Cloves da Rocha
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
Rodrigo Cascarrolho
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
elliando dias
 
Teste de software
Teste de softwareTeste de software
Teste de software
COTIC-PROEG (UFPA)
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
Alex Camargo
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
Aricelio Souza
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
licardino
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
Eliseu Castelo
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
Nathalia Sautchuk Patricio
 
Diagrama sequencia
Diagrama sequenciaDiagrama sequencia
Diagrama sequencia
Diego Alves Pereira
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
Igor Takenami
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
Andre de Carvalho
 
Uml
UmlUml
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
eros.viggiano
 

Mais procurados (20)

Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Aula 2 - Modelos de processos
Aula 2 -  Modelos de processosAula 2 -  Modelos de processos
Aula 2 - Modelos de processos
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 
Introdução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de SoftwareIntrodução a Métodos Ágeis de Desenvolvimento de Software
Introdução a Métodos Ágeis de Desenvolvimento de Software
 
SOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a ServiçosSOA - Arquitetura Orientada a Serviços
SOA - Arquitetura Orientada a Serviços
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Aula UML - Unified Modeling Language
Aula UML - Unified Modeling LanguageAula UML - Unified Modeling Language
Aula UML - Unified Modeling Language
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
design patterns - introdução
design patterns - introduçãodesign patterns - introdução
design patterns - introdução
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
Qualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normasQualidade de Software: Modelos e normas
Qualidade de Software: Modelos e normas
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
Diagrama sequencia
Diagrama sequenciaDiagrama sequencia
Diagrama sequencia
 
Introdução a Arquitetura de Sistemas
Introdução a Arquitetura de SistemasIntrodução a Arquitetura de Sistemas
Introdução a Arquitetura de Sistemas
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Uml
UmlUml
Uml
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 

Destaque

Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
Fábio Nogueira de Lucena
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
Fábio Nogueira de Lucena
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
Fábio Nogueira de Lucena
 
Gestão de Equipes de Projetos
Gestão de Equipes de ProjetosGestão de Equipes de Projetos
Gestão de Equipes de Projetos
Vander Pinheiro, PMP®, ITIL®, MBA
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
Waldemar Roberti
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
Marcelo Quinta
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
meghantaylor
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
Fábio Nogueira de Lucena
 

Destaque (8)

Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
 
ArquiteturaSoftware
ArquiteturaSoftwareArquiteturaSoftware
ArquiteturaSoftware
 
Gestão de Equipes de Projetos
Gestão de Equipes de ProjetosGestão de Equipes de Projetos
Gestão de Equipes de Projetos
 
03 Modelo de processo de software
03 Modelo de processo de software03 Modelo de processo de software
03 Modelo de processo de software
 
Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?Android N, Java 8, Android Studio 2.2?
Android N, Java 8, Android Studio 2.2?
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
 

Semelhante a Arquitetura de Software

06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
JulioCesar371362
 
ES4.ppt
ES4.pptES4.ppt
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
elliando dias
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
Rudson Kiyoshi Souza Carvalho
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
Elaine Cecília Gatto
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertido
Ana Claudia Annunciação
 
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Renato Groffe
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
PedrinaBrasil2
 
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Rafael Targino
 
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Software
elliando dias
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
Fernando Nogueira
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
Halan Ridolphi
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
Adriano Bertucci
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
Cloves da Rocha
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
Renato Groff
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
Wagner Zaparoli
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
jamersonlima
 
8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
gabriel-colman
 
Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
Claudio Martins
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
horaciosila
 

Semelhante a Arquitetura de Software (20)

06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx06-engenharia de softwere Análise e Projeto de Software.docx
06-engenharia de softwere Análise e Projeto de Software.docx
 
ES4.ppt
ES4.pptES4.ppt
ES4.ppt
 
Processo Unificado(RUP)
Processo Unificado(RUP)Processo Unificado(RUP)
Processo Unificado(RUP)
 
Aula Gestão de Projetos
Aula Gestão de ProjetosAula Gestão de Projetos
Aula Gestão de Projetos
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Aula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertidoAula15 arquitetura software_01_introducao-convertido
Aula15 arquitetura software_01_introducao-convertido
 
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
Orquestrando processos de negócio com .NET + Azure Durable Functions | Cloud4...
 
347842.ppt
347842.ppt347842.ppt
347842.ppt
 
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
Proposta de um Processo de Arquitetura Corporativa (Enterprise Architecture)
 
Processo Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de SoftwareProcesso Unificado de Desenvolvimento de Software
Processo Unificado de Desenvolvimento de Software
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Saam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halanSaam & arquiteturas_iu_halan
Saam & arquiteturas_iu_halan
 
Microsoft ALM = Produtividade
Microsoft ALM = ProdutividadeMicrosoft ALM = Produtividade
Microsoft ALM = Produtividade
 
Engenharia de Requisitos
Engenharia de RequisitosEngenharia de Requisitos
Engenharia de Requisitos
 
Monitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application InsightsMonitorando APIs REST com o Application Insights
Monitorando APIs REST com o Application Insights
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf8-uml-e-modelagem-oo Introdução a UML.pdf
8-uml-e-modelagem-oo Introdução a UML.pdf
 
Estimativa de software usando pontos de função
Estimativa de software usando pontos de funçãoEstimativa de software usando pontos de função
Estimativa de software usando pontos de função
 
Visao geraldorup 20slides
Visao geraldorup 20slidesVisao geraldorup 20slides
Visao geraldorup 20slides
 

Mais de Fábio Nogueira de Lucena

CSS
CSSCSS
Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
Fábio Nogueira de Lucena
 
JavaScript: Aprendendo a programar
JavaScript: Aprendendo a programarJavaScript: Aprendendo a programar
JavaScript: Aprendendo a programar
Fábio Nogueira de Lucena
 
HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)
Fábio Nogueira de Lucena
 
HTTP: Um Curso Básico
HTTP: Um Curso BásicoHTTP: Um Curso Básico
HTTP: Um Curso Básico
Fábio Nogueira de Lucena
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
Fábio Nogueira de Lucena
 
Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017
Fábio Nogueira de Lucena
 
Arquétipos
ArquétiposArquétipos
Introducao integracao
Introducao integracaoIntroducao integracao
Introducao integracao
Fábio Nogueira de Lucena
 
Healthdb Visão Geral
Healthdb Visão GeralHealthdb Visão Geral
Healthdb Visão Geral
Fábio Nogueira de Lucena
 
Prontuário Eletrônico do Paciente
Prontuário Eletrônico do PacienteProntuário Eletrônico do Paciente
Prontuário Eletrônico do Paciente
Fábio Nogueira de Lucena
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Fábio Nogueira de Lucena
 
Introducao
IntroducaoIntroducao
Uml
UmlUml
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
Fábio Nogueira de Lucena
 
Orientação a Objetos (3)
Orientação a Objetos (3)Orientação a Objetos (3)
Orientação a Objetos (3)
Fábio Nogueira de Lucena
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
Fábio Nogueira de Lucena
 
Orientação a Objetos (1)
Orientação a Objetos (1)Orientação a Objetos (1)
Orientação a Objetos (1)
Fábio Nogueira de Lucena
 
Cs 2
Cs 2Cs 2
Cs 1
Cs 1Cs 1

Mais de Fábio Nogueira de Lucena (20)

CSS
CSSCSS
CSS
 
Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
 
JavaScript: Aprendendo a programar
JavaScript: Aprendendo a programarJavaScript: Aprendendo a programar
JavaScript: Aprendendo a programar
 
HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)
 
HTTP: Um Curso Básico
HTTP: Um Curso BásicoHTTP: Um Curso Básico
HTTP: Um Curso Básico
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
 
Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017
 
Arquétipos
ArquétiposArquétipos
Arquétipos
 
Introducao integracao
Introducao integracaoIntroducao integracao
Introducao integracao
 
Healthdb Visão Geral
Healthdb Visão GeralHealthdb Visão Geral
Healthdb Visão Geral
 
Prontuário Eletrônico do Paciente
Prontuário Eletrônico do PacienteProntuário Eletrônico do Paciente
Prontuário Eletrônico do Paciente
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Introducao
IntroducaoIntroducao
Introducao
 
Uml
UmlUml
Uml
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Orientação a Objetos (3)
Orientação a Objetos (3)Orientação a Objetos (3)
Orientação a Objetos (3)
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 
Orientação a Objetos (1)
Orientação a Objetos (1)Orientação a Objetos (1)
Orientação a Objetos (1)
 
Cs 2
Cs 2Cs 2
Cs 2
 
Cs 1
Cs 1Cs 1
Cs 1
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 

Último (8)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 

Arquitetura de Software

  • 1. Arquitetura de Software Visão Geral Copyright © 2017 Fábio Nogueira de Lucena fabio@inf.ufg.br
  • 2. O que é arquitetura de software? • Nível de projeto preocupado com • Questões além de algoritmos e estruturas de dados • Projeto e especificação a estrutura do sistema • Estrutura de controle global • Protocolos de comunicação, sincronização • Acesso a dados • Atribuição de funcionalidade a elementos de projeto • Distribuição física de elementos • Desempenho e escala
  • 3. Onde obter mais informações ... • ARQUITETURA DE SOFTWARE • Excelente ponto de partida: • www2.umassd.edu/SECenter/SAResources.html
  • 4. O que não é? • Não é projeto “detalhado” • Não é projeto de algoritmos • Não é implementação • Não é o modelo de dados • Usa para assinatura de interfaces • Não é o sistema físico (processadores, rede, ...) • Usa para impacto de desempenho, confiabilidade, ... • Não é a arquitetura de hardware
  • 5. Representação • Visão • Descrição simplificada de uma perspectiva • Construção civil • Planta baixa • Projeto elétrico • Projeto hidráulico, ... • Construção de software (segundo o RUP: “4+1”) • Visão de UC • Visão Lógica • Visão de processos • Visão de implementação • Visão de implantação
  • 6. Visões de Arquitetura • Visão de Casos de Uso • Ucs e cenários que ilustram itens “arquiteturalmente significantes”, riscos técnicos, ... • Visão lógica • Classes + relevantes organizadas em subsistemas, packages e estes em camadas. Realizações de Ucs. • Visão de implementação • Organização de componentes, executáveis, fontes,... • Visão de processos • Configuração e interação entre processos e threads • Visão de implantação • Alocação de tarefas a nós físicos, interação entre estes
  • 7. Arquitetura concentra-se ... • Na estrutura (subsistemas, camadas) • Nos elementos essenciais (UC críticos, classes principais, mecanismos comuns) • Em cenários principais (fluxo de controle principal por todo o sistema) • Em serviços (captura modularidade, elementos opcionais, ...) Visões de arquitetura são abstrações de todo o projeto
  • 8. Por que é importante? • Evolução do sistema • Reutilização da arquitetura ou parte • Avaliação de desempenho, disponibilidade, ... • Organização do trabalho de construção • Decisões acerca aquisição de componentes existentes • Inserção em um sistema maior
  • 9. Como descrever em UML? • Visão lógica • Diagramas de classes, DTEs e diagramas de objetos • Visão de processos • Diagramas de classes e objetos (processos,threads) • Visão de implementação • Diagramas de componentes • Visão de implantação • Diagramas de implantação • Visão de casos de uso • Diagramas de ucs, atores, diagramas de seqüência.
  • 10. Visão de Caso de Uso • Fornece base para planejamento de iterações
  • 11. Visão de UC (exemplo) Modelo de Processo do Negócio Casos de Uso Vision Document (SAD) Arquitetura do sistema conforme "percebida" pelos clientes. Atores
  • 12. Visão de UC (Modelo de Processo do Negócio) Aluno não matriculado Requisita matrícula Comprovante de Matrícula Requisicao Matricula Avalia Requisicao de Candidato Efetua matrícula Candidato apto Requisicao Matricula Efetua matrícula Avalia Requisição de Aluno Aluno matriculado Fim de período Requisita matrícula Comprovante de Matrícula [ aluno apto? ] [ aluno inapto? ] Fulano : Aluno (from Criar Programa)Sistema (from Criar Programa)Candidato (from Criar Programa)
  • 13. Visão lógica • Base para compreensão da estrutura e organização do projeto
  • 14. Visão Lógica (exemplo) Presentation <<layer>> Data <<layer>> Business <<layer>> DataCapes (from Software) Lattes (from Software) CAPES (from Logical View) CNPQ (from Logical View) Use-Case Realizations
  • 15. Visão de processos • Base para compreensão da organização de processos NetScape 6.0 <<thread>> Internet Explorer 5.5 <<thread>> Apache Server (from Software) Browser <<thread>> 1 n1 n <<http>>
  • 16. Refinamento da Visão de Processos CORBA Server (from Software) JVM (from Software) JMS broker (from Software) Java Plug-In 1.3 <<thread>> NetScape 6.0 <<thread>> Internet Explorer 5.5 <<thread>> Browser <<thread>> Apache Server (from Software) 1 n1 n <<http>> Database (from Software) 1 1 1 1 Servidor de Aplicação <<process>> 1 n 1 n Beans (from beans) <<thread>>
  • 17. Visão de implantação • Base para compreensão da distribuição física do sistema entre nós Servidor SISPG preemptive Servidor Apache Banco de Dados Servidor de Aplicações Java Coordenação de Programa Laser Printer <<UFGNet>> Câmera Digital Impressão de DiplomasImpressora de Diplomas Navegante <<Internet>> Usuário <<Internet>> Servidor CCPFJ <<UFGNet>> <<UFGNet>>
  • 18. Desenvolvimento de Arquitetura de Software • Como produzir uma arquitetura de software? • Como obter as visões de arquitetura? • Quando ocorre? • Quais as tarefas? • Qual o processo? • Quais os artefatos? • ...
  • 19. Quando ocorre? • (após) Requisitos (gera entrada para A&P) • (início) Análise & Projeto • Transformar req em projeto • Obter uma arquitetura robusta • (durante) Fase de elaboração Concepção
  • 20. Quais as tarefas? • Definir arquitetura candidata • Criar uma versão inicial da arquitetura • Definir elementos de arquitetura significantes • Definir camadas e organização do sistema • Definir realizações de casos de uso • Identificar classes de análise • Refinar a arquitetura • Identificar elementos de projeto daqueles de análise • Manter consistência e integridade da arquitetura • Descrever elementos de implantação e execução do sistema • Organizar o modelo de implementação
  • 23. Definir arquitetura candidata • Compreende • Análise de arquitetura • Análise de casos de uso • Processo • Após início com a análise de arquitetura • Escolha casos de uso significantes • Realize a análise de casos de uso em cada UC • Atualize a arquitetura concomitantemente
  • 24. Análise de Arquitetura • Desenvolver visão geral da arquitetura • Definir organização de subsistemas (high-level) • Identificar mecanismos de análise • Identificar abstrações principais • Criar realizações de casos de uso • Desenvolver modelo de implantação (high-level) • Revisar resultados 1Definirarquiteturacandidata INCLUI:
  • 25. Análise de Casos de Uso • Suplementar descrições de casos de uso • Identificar classes de análise • Distribuir comportamento em classes de análise • Descrever responsabilidades • Descrever atributos e associações • Estabelecer associações entre classes • Descrever dependências de eventos entre classes • Avaliar resultados 1Definirarquiteturacandidata INCLUI:
  • 26. Visão geral da arquitetura • Objetivo • Explorar e avaliar opções de arquitetura • Fornecer compreensão de alto nível da estrutura • Pode ser criada cedo (fase de concepção) • Reflete decisões e suposições acerca da implementação da Visão • Decisões acerca da arquitetura lógica e física • Ilustra “essência” da solução proposta • Fornece “grandes blocos” 1.1AnálisedeArquitetura
  • 27. Exemplo (visão geral da arquitetura) Visão apresentada aos usuários 1.1.1AnálisedeArquitetura DataCapes (from Software) StrictoSensu <<subsystem>> LatoSensu <<subsystem>> Pi <<subsystem>> Financeiro <<subsystem>> CCPFJ <<sistema>> Lattes (from Software) Projetos <<subsystem>> CAPES CNPQ CCPFJ <<sistema>>
  • 28. Definir organização de subsistemas • Objetivo • Criar estrutura inicial para o modelo de projeto • Modelo de projeto • Geralmente organizado em camadas • Neste ponto, focalize as camadas de aplicação e a camada específica ao negócio 1.1.1AnálisedeArquitetura
  • 29. Visão Lógica (Top-Level) 1.1.1AnálisedeArquitetura Presentation <<layer>> Data <<layer>> Business <<layer>> DataCapes (from Software) Lattes (from Software) CAPES (from Logical View) CNPQ (from Logical View) Use-Case Realizations
  • 30. Visão Lógica (Presentation Layer) 1.1.1AnálisedeArquitetura Browser Java Applet HTTP <<provider>> (from Business) HTML Pages Server Pages (from Business) IIOP <<provider>> (from Business) JavaScript XML docs
  • 31. Visão Lógica (Business Objects Layer) • Sabe-se que as interfaces CNPQ e CAPES são utilizadas por um subconjunto dos objetos • Na visão de implementação teremos componentes que implementam estas interfaces 1.1.1AnálisedeArquitetura
  • 32. Visão Lógica (Business Objects Layer) 1.1.1AnálisedeArquitetura HTTP <<provider>> Web Server Server Pages Application Server <<provider>> IIOP <<provider>> JavaBeans Mapeamento Persistência (from Data) Business Objects CAPES (from Logical View) CNPQ (from Logical View)
  • 33. Visão Lógica (Data Layer) 1.1.1AnálisedeArquitetura Persistência Mapeamento Persistência PostgreSQLInterbaseJDBC-Interbase JDBC-PostgreSQL
  • 34. Identificar mecanismos de análise • Identificação de padrões • Persistência, gerência de transação, ... • Identificar problemas possivelmente implícitos • Não diretamente fornece funcionalidade • Veja Design Patterns para detalhes. 1.1.1AnálisedeArquitetura
  • 35. Exemplo (mecanismo de análise) • Persistência (um mecanismo identificado) • Analysis Patterns Chapter 12 (Layered Architecture for Information Systems) Martin Fowler Addison-Wesley, 1997 • Object-Oriented Modeling and Design for Database Applications Chapter 13 (Relational Databases: Basics) Michael Blaha & Wiliam Premerlani Prentice-Hall, 1998 • Mostra como implementar modelos orientados a objetos com bancos de dados relacionais. 1.1AnálisedeArquitetura
  • 36. Exemplo (observer pattern) • Objeto deve notificar outros sem conhecer quem são estes outros • Enviar e-mail após alteração, ... 1.1AnálisedeArquitetura
  • 37. Identificar abstrações principais • Identificar classes de análise oriundas de ... • Requisitos • Glossário • Defina relacionamentos entre as classes • Em geral, vários diagramas são utilizados • Durante o projeto, tais classes sofrerão alterações  Poderão se tornar “classes” • QUAL O OBJETIVO? • Identificar “conceitos principais” que o sistema manipulará • Ao analisar UCs outras classes e relacionamentos surgirão 1.1AnálisedeArquitetura
  • 38. Exemplo (abstrações principais) 1.1AnálisedeArquitetura ItemCalendárioCalendário 1..n1..n Atividade ncreditos nome : String TipoDisciplina tipo Programa EstagioDocencia OutraAtividade descricao : String AreaConcentracao AtividadeCredito minimo maximo obrigatoria nome 1 n 1 n Estrutura Curricular 11 11 Disciplina ementa 1..n 1..n1..n 1..n Classifica nn Executa periodo conceito frequencia Aluno (from Academia) n nn n Requerimento Comprovante Documento Data : Date Diploma Certificado Informe DataInicio : Date DataFim : Date
  • 39. Criar realizações de casos de uso • Para cada UC, crie realização do UC • O nome da realização deve ser o mesmo • Crie uma dependência da realização para o UC • É bom lembrar ... • UC especifica funcionalidade visível externamente • UC não fornece uma implementação • Colaboração descreve • Objetos que implementam o comportamento do UC • Forma que interagem para obter este efeito 1.1AnálisedeArquitetura
  • 40. Exemplo (realizações de UCs) 1.1AnálisedeArquitetura Limpar base de informes (from Informes) Excluir informe (from Excluir informe) Excluir informe (from Informes) Editar informe (from Editar informe) Limpar base de informes (from Limpar base de informes) Criar informe (from Criar informe) Consultar informes (from Consultar informes) Consultar informes (from Informes) Criar informe (from Informes) Editar informe (from Informes)
  • 41. Desenvolver modelo de implantação • Objetivo • Visão da distribuição geográfica • Entendimento da complexidade operacional do sistema • Insumos • Usuários (localizações) • Dados do negócio • Especificação Suplementar • Requisitos não-funcionais • Restrições • Processo • Atender usuários, casos de uso, acesso a dados, ... 1.1AnálisedeArquitetura
  • 42. Exemplo (diagrama de implantação) 1.1AnálisedeArquitetura Servidor CCPFJ Servidor SISPG preemptive Servidor Apache Banco de Dados Servidor de Aplicações Java Coordenação de Programa Laser Printer <<UFGNet>> Câmera Digital Impressão de Diplomas <<UFGNet>> Impressora de Diplomas Navegante <<Internet>> Usuário <<Internet>> <<UFGNet>>
  • 43. Classe de Análise • “Coisas” no sistema que possuem • Responsabilidade • Comportamento • Abstração de um papel • PAPEL: definição de comportamento e responsabilidade • Pode se referir a mais de um papel • Evolui em um ou mais elementos de projeto • Classes • Subsistemas 1.2AnálisedeUC
  • 44. Classes de Análise (representação) • Boundary class • Interação entre ator e sistema • Control class • Comportamento específico de um ou mais UCs • Objetos que controlam outros objetos • Representa a dinâmica do sistema (fluxo de controle) • Entity class • Modela informação e comportamento associado
  • 45. Classes de análise (exemplo) : Gerencia Informes : Elemento de Informação : Tela Informes: Usuário 1: Requisita informes 2: Obtem Informes 3: Obtem descrição 4: Mostra descrição de informes
  • 46. Considerações finais • Arquitetura de software (item muito importante) • concepção e ELABORAÇÃO • Definição do “raio-x da organização do sistema” • Faz uso de várias visões • Orienta posteriores atividades de análise & projeto • Fase de Elaboração • Protótipo executável da arquitetura pode ser construído • Provavelmente na primeira iteração • Arquitetura estável deve ser atingida nesta fase