Arquitetura de Software
|
|
- Thomas Amaro de Lacerda
- 6 Há anos
- Visualizações:
Transcrição
1 Arquitetura de Software 1
2 Programação Modular 2
3 Programação Modular Implementação 3
4 Programação Modular Interface Implementação 4
5 Programação Modular Interface Provida Implementação Interface Requerida 5
6 Programação Modular Interface Provida Implementação Visível apenas dentro do Módulo Interface Requerida 6
7 Benefícios Esperados da Programação Modular [Parnas, 1972] (1) Tempo de desenvolvimento encurtado, já que grupos de desenvolvimento separados podem trabalhar em módulos distintos, com pouca necessidade de comunicação (2) Possibilidade de aplicar mudanças drásticas a um módulo sem a necessidade de mudar outros (3) Possibilidade de estudar o sistema olhando para um módulo de cada vez Interações entre módulos 7
8 Arquitetura de Software A estrutura de um sistema de software, que engloba componentes de software; suas propriedades visíveis externamente; e os relacionamentos e interações entre eles As primeiras decisões tomadas no projeto de um sistema As mais importantes! Uma arquitetura de software é composta por componentes e conectores 8
9 Conceitos Arquitetura de software descrição de subsistemas e componentes de um sistema de software e dos relacionamentos entre eles. Projeto arquitetural processo de construção de uma arquitetura de software explícita ligação entre os processos de especificação e de projeto detalhado de software 9 9
10 Atributos de arquitetura Performance Localizar operações de modo a minimizar a comunicação entre subsistemas Segurança Utilizar uma arquitetura em camadas com recursos críticos localizados em camadas internas Disponibilidade Incluir componentes redundantes na arquitetura Manutenção Utilizar componentes especializados e autocontidos 10 10
11 Projeto arquitetural Principais atividades Decomposição do sistema de software em subsistemas e componentes Identificação das interações e comunicação entre eles Modelagem arquitetural 11 11
12 Projeto arquitetural Problemas O projeto de arquiteturas de software específicas (ainda) é baseado em intuição e experiência Métodos pouco ajudam! Documentação (arquitetura e decisões) Modelagem arquitetural 12 12
13 Uma Arquitetura em Camadas Clientes web (. etc (Mozilla, IE, Internet Servidor WEB Rede Local Banco de Dados Relacional 13
14 Uma Arquitetura em Camadas Clientes web (. etc (Mozilla, IE, Internet Servidor WEB Rede Local Banco de Dados Relacional Componente Componente Componente 14
15 Uma Arquitetura em Camadas Clientes web (. etc (Mozilla, IE, Internet Servidor WEB Rede Local Banco de Dados Relacional Conector (HTTP, ( RMI Conector (Ponte ( SQL 15
16 Projeto Arquitetural O processo de projeto que estabelece Os subsistemas que constituem um sistema A maneira como essas componentes interagem Incluindo algumas decisões tecnológicas Ex. Plataforma de componentes, SGBD A saída desse processo de projeto é uma descrição da arquitetura de software. A arquitetura de software lida com os requisitos não-funcionais do sistema 16
17 Projeto Arquitetural É o primeiro estágio do projeto do sistema Representa a ligação entre os processos de especificação e de projeto É freqüentemente conduzido em paralelo com algumas atividades de especificação Às vezes junto com a elicitação de requisitos Envolve a identificação dos componentes principais do sistema e sua interação Componentes => unidades de modularidade 17
18 Vantagens de uma Arquitetura Explícita Comunicação com os stakeholders A arquitetura pode ser usada como um foco de discussão pelos stakeholders do sistema. Análise de sistema Se há possibilidade de o sistema atender a seus requisitos de qualidade (não-funcionais) Reuso em larga escala A arquitetura pode ser reusável em uma variedade de sistemas Suas partes também! 18
19 Conflitos de arquitetura O uso de componentes de granularidade grossa aprimora o desempenho mas diminui a facilidade de manutenção A introdução de dados redundantes aprimora a disponibilidade, mas torna a proteção mais difícil E cria dificuldades para tornar o sistema confiável em outras partes Localizar as funcionalidades críticas de segurança em poucos locais pode criar gargalos de desempenho Decisões de projeto 19
20 Decisões de projeto Projeto de arquitetura é um processo criativo Cada sistema envolve diferentes decisões/requisitos/conflitos/restrições Envolve solucionar os problemas representados pelos requisitos Decisões de projeto: Escolhas feitas durante o projeto de um sistema Afetam sua capacidade de fornecer seu serviço Normalmente resultam em compromissos É importante avaliar as opções existentes Não estão restritas ao projeto arquitetural! 20
21 Exemplos de Decisões de Projeto Como representar o mapa em um sistema que traça rotas percorridas por ônibus de modo a minimizar o trabalho da equipe? Como garantir a confiabilidade de um servidor a um baixo custo? Qual a maneira mais eficiente de se construir uma grade de horários levando-se em conta as várias restrições impostas por professores, diretores e regras departamentais? Qual a melhor tecnologia para se construir uma ferramenta de análise de programas? Como a arquitetura do sistema deve ser documentada? 21
22 Características de um Sistema que decorrem de sua Arquitetura Desempenho Localizar operações críticas e minimizar comunicações. Usar componentes de fina ao invés de grossa granularidade. Proteção (security) Usar uma arquitetura em camadas com itens críticos nas camadas mais internas. Segurança (safety) Localizar características críticas de segurança em um pequeno número de subsistemas. Disponibilidade Incluir componentes redundantes e mecanismos para tolerância à falhas. Facilidade de manutenção Usar componentes facilmente trocáveis 22
23 Representação de Arquiteturas Arquiteturas são um ativo importante no desenvolvimento Podem ser a diferença entre o sucesso e o fracasso Representá-las é importante Torna possível falar sobre ela O projeto de arquitetura é normalmente expresso como um diagrama de blocos Modelos mais específicos também podem ser desenvolvidos. 23
24 Sistema de controle robotizado de empacotamento 24
25 Diagramas caixa e linha Muito abstrato não mostram a natureza dos relacionamento de componentes, nem suas propriedades externamente visíveis Contudo, são úteis para comunicação com os stakeholders e para planejamento de projeto. Alternativas: Notações formais Notações informais mais organizadas 25
26 Visões Arquiteturais A arquitetura de um sistema software normalmente é representada através de várias visões Visões são maneiras diversas de se enxergar uma mesma arquitetura Enfocando diferentes aspectos de interesse Ex.: as várias plantas de uma casa Arquiteturas de software são especificadas através de uma ou mais de suas visões 26
27 Correio Eletrônico Visão 1 Três principais elementos: agentes de usuário (UA). servidores de correio. simple mail transfer protocol: SMTP. servidor de correio SMTP SMTP servidor de correio agente de usuário agente de usuário SMTP fila de mensagens de saída caixa de correio do usuário servidor de correio agente de usuário POP3/IMAP agente de usuário agente de usuário 27
28 Correio Eletrônico Visão 2 1) Alice usa o UA para compor uma mensagem para bob@someschool.edu 2) O UA de Alice envia a mensagem para o seu servidor de correio; a mensagem é colocada na fila de mensagens. 3) O lado cliente do SMTP abre uma conexão TCP com o servidor de correio de Bob. 4) O cliente SMTP envia a mensagem de Alice através da conexão TCP. 5) O servidor de correio de Bob coloca a mensagem na caixa de entrada de Bob. 6) Bob chama o seu UA para ler a mensagem. 1 user agent mail server mail server 5 6 user agent 28
29 Correio Eletrônico Visão 3 Fonte: Axigen Mail Server Documentation - Mail Server Architecture. Consultado em 24 de março de
30 Um Exemplo de Sistema de Controle de Tráfego Aéreo M&C Console Exceções G.A.M Exceções Exceções Local/Group A.M. O/S E. A. S. Exceções ATC Console A.S.O.U Exceções Exceções Network Operating System Processor I/O Devices Fonte: Bass, Clements, and Kazman, Software Architecture in Practice, 2 nd Edition, Attachments 30
31 Sobre Visões Algumas são genéricas Lógica Diagramas de classes e pacotes De interação Diagrama de sequência Física ou de Alocação Diagrama de implantação Outras servem a fins específicos Fluxo de exceções Qualquer dos diagramas acima mostrando apenas componentes associados a exceções (ou ao fim específico em questão) 31
32 Reuso de arquitetura Sistemas do mesmo domínio freqüentemente têm arquiteturas similares que refletem os conceitos de domínio Resultam em decisões de projeto similares Linhas do produto de software são construídas em torno de um núcleo de arquitetura Variantes satisfazem requisitos de cada cliente. Reuso de arquiteturas é capturado através da noção de padrões ou estilos arquiteturais Próxima aula 32
33 Padrões e Estilos Arquiteturais 33
34 Padrões Projetistas e arquitetos experientes procuram aderir a princípios e promover boas práticas de design. usam padrões para documentar e reutilizar experiência comprovadamente boa em novos projetos (de software) Abordagem orientada a problemas 34 34
35 Estilos Arquiteturais A arquitetura de um sistema pode aderir a um ou mais estilos arquiteturais Um estilo define os tipos de elementos que podem aparecer em uma arquitetura e as regras que regem a sua interconexão Esses estilos pode simplificar o problema de definição de arquiteturas de sistema. A maioria dos sistemas de grande porte adere a vários estilos Estilos arquiteturais = modelos arquiteturais 35
36 Estilos arquiteturais Shaw and Garlan, 1996 Independent Components Communicating Processes Event-Driven Data Flow Batch Pipes & Filters Data-Centric Repository Blackboard Call & Return Layered systems Object Oriented Main Program & Subroutine Virtual Machine Interpreter Rule-Based 36 36
37 Exemplos de Estilos Arquiteturais Cliente-Servidor Em camadas Filtros e dutos (pipes and filters) Baseado em repositório Orientado a eventos (publisher/subscriber) Transferência Representacional de Estado (REST) Objetos distribuídos 37
38 Estilos Arquiteturais e Escolhas de Projto Um estilo arquitetural representa um conjunto de escolhas de projeto Conjunto de características comuns a diversos sistemas nos quais as mesmas escolhas foram feitas Padrões arquiteturais Um sistema aderente a determinado estilo ganha" as características inerentes a ele Estilos podem ser usados para descrever uma determinada arquitetura Foco nas soluções de projeto e não em sua documentação 38
39 Organização de sistema Reflete a estratégia básica que é usada para estruturar um sistema Exemplos: O estilo de repositório de dados compartilhados Estilo de serviços e servidores compartilhados Estilo de máquina abstrata ou em camadas Orientado a objetos (ou Objetos Distribuídos) Pipes and Filters ou Pipelining 39
40 Estilo de repositório Sistemas cujas partes precisam trocar dados com frequência: Dados compartilhados podem ser mantidos em um banco de dados central e acessados por todos os subsistemas Cada subsistema mantém seu próprio banco de dados e passa dados para outros subsistemas Podem usar uma abstração de repositório centralizado Implementação distribuída 40
41 Arquitetura de conjunto de ferramentas CASE 41
42 Características do Estilo Arquitetural de Repositório Vantagens É uma maneira eficiente de compartilhar grandes quantidades de dados Dados aderem a uma representação comum Simplifica a projeto de aplicações fortemente baseadas em dados Tanto para troca de info. quanto para armazenamento Desvantagens Os subsistemas devem estar de acordo com um modelo de dados padronizado A evolução de dados é difícil e dispendiosa Dificuldade para distribuir de forma eficiente 42
43 Estilo Cliente-Servidor Mostra como dados e processamento são distribuídos por uma variedade de componentes Servidores independentes que fornecem serviços tais como impressão, transferência de arquivos, gerenciamento de dados, etc. Clientes utilizam esses serviços Clientes e servidores normalmente se comunicam através de uma rede Diversas tecnologias de comunicação são possíveis 43
44 Biblioteca de filmes e fotografias 44
45 Vantagens Características do Estilo Cliente-Servidor Separação de interesses Inerentemente distribuído Balanceamento de carga, tolerância a falhas É fácil adicionar novos servidores ou atualizar servidores existentes. Desvantagens Gerenciamento redundante em cada servidor; Nenhum registro central de nomes e serviços pode ser difícil descobrir quais servidores e serviços estão disponíveis Requisições e respostas casadas 45
46 Modelo de Máquina Abstrata (Em Camadas) Organiza o sistema em um conjunto de camadas (ou máquinas abstratas) Cada uma fornece um conjunto de serviços Cada camada é cliente da camada subjacente Generalização do estilo Cliente-Servidor Não precisa ser distribuído Apóia o desenvolvimento incremental dos subsistemas em camadas diferentes. Ex. Se mudarmos a camada de negócios, só as camadas acima precisam ser modificadas 46
47 Sistema de gerenciamento de versões 47
48 Características do Estilo em Camadas Vantagens Facilidade de compreensão Facilidade de manutenção Desenvolvimento independente Desvantagens Duplicação de funcionalidade Às vezes é difícil estruturar um sistema através de camadas É comum que a estruturação seja violada Camadas relaxadas são necessárias Overhead de implementação e desempenho 48
49 Estilo Arquitetural de Objetos Sistema como um conjunto de objetos fracamente acoplados e com interfaces bem definidas Cada objeto oferece um conjunto de serviços No nível arquitetural, é frequentemente empregado na construção de sistemas distribuídos Objetos distribuídos Uma implementação OO não implica em uma arquitetura OO 49
50 Sistema de processamento de faturas 50
51 Características do Estilo Arquitetural de Objetos Vantagens Objetos são fracamente acoplados devido ao uso de interfaces Linguagens de implementação orientada a objeto são amplamente usadas. Desvantagens Mudanças de interface têm alto impacto Não envolve restrições topológicas, o que pode dificultar a manutenção Dependências entre objetos não são limitadas 51
52 Estilo Dutos e Filtros (Pipelining) Originário de sistemas operacionais UNIX e do projeto de compiladores Transformações funcionais processam entradas para produzir saídas. Componentes são chamados de filtros Conectores são dutos (pipes) Útil para aplicações de processamento de informação que interagem pouco com usuários 52
53 Sistema de processamento de faturas 53
54 Características do Estilo Dutos e Filtros Vantagens Apóia reuso de transformações. É fácil adicionar novas transformações. É relativamente simples implementar como sistema concorrente ou seqüencial. Desvantagens Requer um formato comum para a transferência de dados ao longo do pipeline Não é apropriado para aplicações interativas Mais especificamente: só é apropriado para realizar processamento sequencial 54
55 Fluxo de Controle Estilos arquiteturais relacionados com o fluxo de controle entre os componentes arquiteturais Controle centralizado Um subsistema tem responsabilidade global pelo controle e inicia e para outros sistemas Controle baseado em eventos Cada componente responde a eventos gerados por outros subsistemas 55
56 Controle centralizado Um componente é responsável pelo gerenciamento da execução de outros componente. O estilo Chamada-Retorno Controle se inicia no topo de uma hierarquia de subrotinas e move-se para baixo na hierarquia. Pode ser sequencial ou concorrente O estilo de Gerenciador Aplicável a sistemas concorrentes e de tempo real Um componente controla a parada, o início e a coordenação de outros processos de sistema 56
57 Chamada-Retorno 57
58 Gerenciador para um Sistema Tempo Real Comunicação entre o Controlador e os outros componentes pode ser baseada em eventos, chamadas de procedimentos, etc. 58
59 Sistemas orientados a eventos Dirigidos por eventos gerados externamente O timing dos eventos está fora do controle dos componentes que os processam Estilo Publisher/Subscriber Eventos são transmitidos a todos os componentes. Qualquer componente interessado pode respondê-los Estilo Orientado a Interrupções Usado em sistemas de tempo real Interrupções são detectadas por tratadores e passadas por outro componente para processamento. 59
60 Modelo Publisher/Subscriber É efetivo na integração de componentes em computadores diferentes em uma rede Desacoplamento espacial e temporal Componentes não sabem se um evento será tratado e nem quando será. Alguns componentes (publishers) publicam eventos Componentes (subscribers) registram interesse em eventos específicos e podem tratá-los A política de controle não é embutida no tratador de eventos e mensagens 60
61 Publisher/Subscriber 61
62 Estilo Orientado a Interrupções Usado em sistemas de tempo real onde a resposta rápida para um evento é essencial Existem tipos de interrupções conhecidos Um tratador definido para cada tipo Cada tipo é associado a uma localização da memória Uma chave de hardware causa a transferência de controle para um tratador. Permite respostas rápidas, mas é complexo para programar e difícil de validar. 62
63 Controle dirigido a interrupções 63
64 Arquiteturas de Referência Derivadas de um estudo de domínio de aplicação, ao invés de sistemas existentes. Podem ser usadas como base para a implementação de sistemas ou comparação de sistemas diferentes. Atua como um padrão com relação ao qual os sistemas podem ser avaliados. Exs. Modelo OSI para sistemas de comunicação Organização tradicional de compiladores em vanguarda e retaguarda (e seus elementos internos) 64
65 Modelo de referência OSI 65
66 Arquitetura de um Compilador 66
67 Estilos 67 67
68 Arquitetura de uma ferramenta CASE Editor de projeto Gerador de código Tradutor de projeto Repositório de projeto Editor de programa Analisador de projeto Gerador de relatório 68 68
69 Sistema de controle robotizado de Sistema de Visão embalagem Sistema de identificação de objetos Controlador de braço Controlador de garra Sistema de seleção de embalagem Sistema de embalagem Controlador de transportadora 69 69
70 Cliente-servidor Cliente 1 Cliente 2 Cliente 3 Cliente 4 Rede de banda larga Servidor de catálogo Servidor de vídeo Servidor de fotografias Servidor de hipertexto catálogo Arquivos de clipes de filmes Fotografias digitalizadas Web de hipertexto 70 70
71 Arquitetura baseada em eventos Subsistema 1 Subsistema 2 Subsistema 3 Subsistema 4 Manipulador de eventos e mensagens 71 71
72 Questões Como escolher subsistemas e componentes? Quais as suas propriedades? E responsabilidades? Como componentes interagem? Como incorporar e explicitar propriedades não-funcionais? Como descrever uma arquitetura? 72 72
73 Exemplos 73
74 74 74
75 75 75
76 76 76
77 77 77
78 78 78
79 79 79
80 80 80
81 81 81
82 82 82
83 83 83
84 84 84
85 85 85
86 86 86
87 87 87
88 88 88
89 89 89
90 90 90
91 91 91
92 92 92
93 93 93
94 94 94
95 95 95
96 96 96
97 97 97
98 98 98
99 99 99
100
101
102
Projeto de Arquitetura
Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto
Leia maisAgenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software
Reuso de Software Aula 04 Agenda da Aula Arquitetura de Software e Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais
Leia maisEngenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios
Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Cronograma das Aulas. Hoje você está na aula Semana
Leia maisAnálise e Projeto de Software
Análise e Projeto de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 8 de junho de 2017 Material Apresentado Sumário de Aula 1 Introdução 2 Estruturação do
Leia maisCapítulo 6. Projeto de arquitetura. 2011 Pearson Pren0ce Hall. Todos os direitos reservados. 1. slide 1
Capítulo 6 Projeto de arquitetura slide 1 2011 Pearson Pren0ce Hall. Todos os direitos reservados. 1 Os tópicos abordados Decisões de projeto de arquitetura Visões de arquitetura Padrões de arquitetura
Leia maisArquitetura de Software
Arquitetura de Software Centro de Informática - Universidade Federal de Pernambuco Engenharia da Computação Kiev Gama kiev@cin.ufpe.br Slides elaborados pelos professores Marcio Cornélio e Kiev Gama O
Leia maisPrincípios de Engenharia de Software. Aula 6 Projeto de Software
Princípios de Engenharia de Software Aula 6 Projeto de Software Projeto de Software Um projeto de software é uma descrição de estrutura de software a ser implementada, dos dados que são parte do sistema,
Leia maisCampus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /
Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini E-mail: prof.andre.luis.belini@gmail.com / andre.belini@ifsp.edu.br MATÉRIA: ENGENHARIA DE SOFTWARE Aula N : 06 Tema:
Leia maisProcessos de software
Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de
Leia maisIntrodução à Análise e Projeto de Sistemas
Introdução à I. O Que vamos fazer na Disciplina? Saber uma linguagem de programação orientada a objeto (OO) não é suficiente para criar sistemas OO Tem que saber Análise e Projeto OO (APOO) Isto é, Análise
Leia maisAs Visões. Visões arquiteturais (revisão)
As 4 + 1 Visões Jair C Leite Visões arquiteturais (revisão) Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da engenharia.
Leia maisARQUITETURA DE SOFTWARE 1
ARQUITETURA DE SOFTWARE 1 O que é arquitetura de software? Uma arquitetura de software deve conter: a definição dos elementos de projeto que compõe o software; a descrição das interações entre estes elementos;
Leia maisExemplos de Estilos Arquiteturais. Estilos Arquiteturais. Estilos Arquiteturais. Estilo: Pipe e Filtros
Estilos Arquiteturais Em geral sistemas seguem um estilo, ou padrão, de organização estrutural Os estilos diferem: nos tipos de componentes que usa na maneira como os componentes interagem com os outros
Leia maisReuso de Software Aula Maio 2012
Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes
Leia maisRUP RATIONAL UNIFIED PROCESS
O que é RUP? É um metodologia para gerenciar projetos de desenvolvimento de software que usa a UML como ferramenta para especificação de sistemas. Ele é um modelo de processo híbrido Mistura elementos
Leia maisArquitetura de software
Arquitetura de software Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Recebe encomendas e pagamento Recomenda itens a usuários Por onde começamos? Arquitetura =
Leia maisNotas de Aula 03: Introdução a Orientação a Objetos e a UML
Notas de Aula 03: Introdução a Orientação a Objetos e a UML Objetivos da aula: Introduzir os conceitos da Orientação à Objetos (O.O) Introduzir os conceitos da UML Relacionar os processos às ferramentas
Leia maisEngenharia de Software II
Engenharia de Software II Aula 4 http://www.ic.uff.br/~bianca/engsoft2/ Aula 4-03/05/2006 1 Modelos Prescritivos de Processo Modelo em cascata Modelos incrementais Modelo incremental Modelo RAD Modelos
Leia maisConceitos de Sistemas Distribuídos
Conceitos de Sistemas Distribuídos Roteiro Definição de Sistemas Distribuídos (SD) Evolução Histórica Exemplos (SD) Modelos (Vantagens x Desvantagens) 2 O que é um Sistema Distribuído? Definição Coleção
Leia maisProjeto de Arquitetura
Projeto de Arquitetura Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 11 Slide 1 Objetivos Apresentar projeto de arquitetura e discutir sua importância Explicar as decisões de projeto
Leia maisIntrodução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s
Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas
Leia maisUML Unified Modeling Language Linguagem de Modelagem Unificada
UML Unified Modeling Language Linguagem de Modelagem Unificada Prof. Gilberto Porto e-mail: porto@gilbertoporto.com.br A linguagem UML n UML (Unified Modeling Language) Linguagem de Modelagem Unificada
Leia maisO que é um sistema distribuído?
Disciplina: Engenharia de Software 4 Bimestre Aula 1: ENGENHARIA DE SOFTWARE DISTRIBUÍDO O que é um sistema distribuído? Segundo Tanenbaum e Steen (2007) um sistema distribuído é uma coleção de computadores
Leia maisPor que é importante?
Disciplina: Engenharia de Software 3 Bimestre Aula 5: ENGENHARIA DE SOFTWARE BASEADA EM COMPONENTES Para o desenvolvimento de softwares customizados, a engenharia de software baseada em componentes é uma
Leia maisSistemas Embarcados (embutidos) Paulo C. Masiero
Sistemas Embarcados (embutidos) Paulo C. Masiero Caracterização São usados para controlar sistemas de diferentes tipos: máquinas domésticas, fábricas, carros, jogos etc. O software é embutido no hardware
Leia maisRequisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
Leia maisPrincípios da Engenharia de Software aula 03
Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos
Leia maisEngenharia de Confiança. Helena Macedo Reis Luis Fernando de Souza Moro
Engenharia de Confiança Helena Macedo Reis Luis Fernando de Souza Moro 1 Engenharia de Confiança Preocupada com técnicas que aumentam a confiança e diminui os riscos de falhas Falha pode causar perda de
Leia maisModelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo ER; Modelo de dados relacional; Mapeamento ER para o
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Modelagem Conceitos e arquitetura do SBD; Modelo de dados entidade-relacionamento modelo
Leia maisSistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Leia maisApresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica
DCA-108 Sistemas Operacionais Luiz Affonso Guedes www.dca.ufrn.br/~affonso affonso@dca.ufrn.br Apresentação Disciplina básica do curso de Engenharia de Computação Carga-horária: 60h teóricas Associadas
Leia maisUniversidade Federal de Goiás Estilos Arquiteturais
Universidade Federal de Goiás Estilos Arquiteturais Prof. Helder Brito Nascimento Instituto de Informática helderbn@gmail.com O que é um estilo de arquitetura Como você diferencia uma construção da outra?
Leia maisSistemas Operacionais Aula 3
Sistemas Operacionais Aula 3 Anderson L. S. Moreira anderson.moreira@recife.ifpe.edu.br http://dase.ifpe.edu.br/~alsm Curso de Análise e Desenvolvimento de Sistemas de Informação Recife - PE O que fazer
Leia maisRequisitos de Software
Requisitos de Software Engenharia de requisitos Estabelece os serviços que o cliente requer de um sistema e as restrições sob as quais tal sistema operará e será desenvolvido. Tais serviços e restrições
Leia maisAnálise e projeto de sistemas
Análise e projeto de sistemas Conteúdo: UML O processo de desenvolvimento de software Prof. Patrícia Lucas A linguagem de modelagem unificada (UML) A UML teve origem em uma tentativa de se unificar os
Leia maisIntrodução a UML (Unified Modeling Language)
Introdução a UML (Unified Modeling Language) O que é a UML? Linguagem Gráfica de Modelagem para: Visualizar Especificar Construir Documentar Comunicar Artefatos de sistemas complexos Linguagem: vocabulário
Leia maisProf. Esp. Fabiano Taguchi
UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com fabianotaguchi@hotmail.com UML COMPETÊNCIA: Conhecer e desenvolver estudos de caso usando modelagem orientada a objeto. HABILIDADE: Conhecer
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional - Formas de acessar o KERNEL do SISTEMA OPERACIONAL (SO) - A linguagem de comandos faz parte do SO O Sistema Operacional é formado
Leia maisConceitos Básicos Sistemas de banco de dados; Sistemas de gerência de banco de dados.
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Banco de Dados Prof. Nilton nilton@comp.uems.br Conceitos Básicos Sistemas de banco de dados; Sistemas de gerência de banco de dados. 2
Leia maisA modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:
Módulo 6 Análise Orientada a Objeto É interessante observar como a análise orientada a objeto utiliza conceitos que aprendemos há muito tempo: objetos, atributos, classes, membros, todos e partes. Só não
Leia maisEngenharia de Software
Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto
Leia maisFUNDAMENTOS DE REDES DE COMPUTADORES AULA 2: MODELO OSI. Professor: LUIZ LEÃO
FUNDAMENTOS DE REDES DE COMPUTADORES Professor: LUIZ LEÃO Conteúdo Desta Aula HISTÓRICO DAS REDES MODELO EM CAMADAS FUNÇÕES DAS CAMADAS OSI 1 2 3 4 5 CLASSIFICAÇÃO DAS REDES MODELO DE REFERÊNCIA OSI PRÓXIMOS
Leia maisUnidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini
Unidade II MODELAGEM DE PROCESSOS Profa. Gislaine Stachissini Modelagem de sistemas A fase do desenvolvimento do sistema exige: esforço; dedicação; envolvimento; um único objetivo. Estilo de desenvolvimento
Leia maisData Warehouse ETL. Rodrigo Leite Durães.
Data Warehouse ETL Rodrigo Leite Durães rodrigo_l_d@yahoo.com.br Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,
Leia maisSistemas Operacionais (SO)
Sistemas Operacionais (SO) Fundamentos Prof. Eduardo Abordagens SO Moderno (importância) Funções básicas Definição Componentes de um SC Objetivos de um SO Serviços de um SO Abstrações Tipos de SO Estudo
Leia maisENGENHARIA DE SOFTWARE. Aula 03 Processos de Software
ENGENHARIA DE SOFTWARE Aula 03 Processos de Software AGENDA Modelos de processo de software Atividades do processo Lidando com mudanças Rational Unified Process (RUP) 14/03/2017 IFPR QUEDAS DO IGUAÇU -
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE
1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA ENGENHARIA DE SOFTWARE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br Introdução 2 Antes de qualquer
Leia mais2
ANÁLISE DE SISTEMAS (processo de desenvolvimento de sistemas) por Antônio Maurício Pitangueira 1 2 Levantamento de requisitos Análise de requisitos Projeto Implementação Testes Implantação Foco da disciplina
Leia maisRUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN
RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS Prof. Fabiano Papaiz IFRN O RUP recomenda as seguintes práticas que devem ser utilizadas no desenvolvimento de um software: 1. Desenvolver de forma iterativa
Leia maisBanco de Dados Relacional
Centro Federal de Educação Tecnológica de Pernambuco Curso de Tecnologia em Sistemas de Informação Banco de Dados Relacional Renata Lúcia Mendonça Ernesto do Rêgo rlrego@yahoo.com 1 Plano de Ensino Objetivo
Leia mais27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:
Modelos de Ciclo de Vida e Metodologias de Software 33) No SCRUM, uma iteração que segue um ciclo (PDCA) e entrega incremento de software pronto é denominada: A) Backlog. B) Sprint. C) Daily scrum. D)
Leia maisModelagem de Dados MODELAGEM DE DADOS. Sistemas de Banco de Dados. Profa. Rosemary Melo
MODELAGEM DE DADOS Sistemas de Banco de Dados Profa. Rosemary Melo SISTEMAS DE BANCO DE DADOS OBJETIVOS Apresentar os conceitos fundamentais de Sistemas de Banco de Dados. Principais componentes dos SGBDs
Leia maisINTRODUÇÃO A ENGENHARIA DE SOFTWARE
Universidade Estadual Vale do Acaraú AGENDA INTRODUÇÃO A ENGENHARIA DE SOFTWARE Processos Modelos de Desenvolvimento de Software Engenharia de Requisitos Projeto de Interface com o Usuário Projeto Arquitetural
Leia maisRequisitos de Sistemas
Requisitos de Sistemas Unidade II - Processos de Negócio Identificação Conceitos Modelagem - BPM - UML Processos x Requisitos 1 Processo de negócio CONCEITO Um processo de negócio, processo organizacional
Leia maisDesenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos
Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Segundo Workshop de Desenvolvimento Baseado em Componentes Itana Maria de Souza Gimenes itana@din.uem.br Departamento de Informática
Leia maisCurso: Redes de Computadores
Curso: Redes de Computadores Cadeira de Introdução a Sistemas Operacionais. Bibliografia Sistemas Operacionais Modernos Andew S. Tanembaum Sistema Operacionais Abraham Silberchatz, Peter Galvin e Greg
Leia maisSISTEMAS DISTRIBUÍDOS
SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Introdução aos Sistemas Distribuídos 1 Sumário Evolução Problema/Contexto O que é um Sistema Distribuído? Vantagens e Desvantagens
Leia maisEngenharia de Software
Engenharia de Software Design Principles Representando SW em UML OO em C Pattens úteis para embedded Rodrigo M A Almeida Design Principles Design Principles são guias para decompor as funcionalidades e
Leia maisUML. Rodrigo Leite Durães.
UML Rodrigo Leite Durães. rodrigo_l_d@yahoo.com.br O que é Análise de Software? UML: É o estágio de um sistema que captura os requisitos e o domínio do problema, focalizando no que deve ser feito, não
Leia maisPROJETO DE PROGRAMAS. Projeto de Programas PPR0001
PROJETO DE PROGRAMAS Projeto de Programas PPR0001 Desenvolvimento de Software 2 3 Desenvolvimento de Software Análise de Requisitos Distinguir e dividir o sistema em componentes: Analisar os componentes
Leia maisBarramento. Prof. Leonardo Barreto Campos 1
Barramento Prof. Leonardo Barreto Campos 1 Sumário Introdução; Componentes do Computador; Funções dos Computadores; Estrutura de Interconexão; Interconexão de Barramentos Elementos de projeto de barramento;
Leia maisArquitetura de Software
Arquitetura de Software A arquitetura de um software é uma estrutura de componentes interconectados através de interfaces Componentes são compostos de componentes menores e interfaces A interação entre
Leia maisEstrutura dos Sistemas Operacionais. Adão de Melo Neto
Estrutura dos Sistemas Operacionais Adão de Melo Neto 1 Sistema Operacional -São partes do SO -São ferramentas de apoio ao usuário -São formas de acessar as rotinas do kernel O Sistema Operacional é formado
Leia maisLivro texto: Capítulo 1
Livro texto: Capítulo 1 Bancos de dados (BD) No decorrer do dia, a maioria de nós se depara com atividades que envolvem alguma interação com os BD s banco reservas em um hotel compra de passagens aéreas
Leia maisArquitetura de Computadores. Processamento Paralelo
Arquitetura de Computadores Processamento Paralelo 1 Multiprogramação e Multiprocessamento Múltiplas organizações de computadores Single instruction, single data stream - SISD Single instruction, multiple
Leia maisArquiteturas de Sistemas de Informação Geográfica
Arquiteturas de Sistemas de Informação Geográfica Prof. Luciene Delazari Grupo de Pesquisa em Cartografia e SIG da UFPR SIG - 2012 Definições Arquitetura: o conjunto da estrutura e organização de diferentes
Leia maisCaracterização de Sistemas Distribuídos
Caracterização de Sistemas Distribuídos Roteiro Conceitos de Hardware Conceitos de Software Classificação de Flynn Classificação baseada no acesso a memória 2 Conceitos de HW Múltiplas CPUs Diferentes
Leia maisFundamentos de Sistemas Operacionais
Fundamentos de Sistemas Operacionais Aula 4: Programação Concorrente Diego Passos Últimas Aulas Processos Compostos por: Código (programa). Estado (memória, registradores). Em um sistema com multiprogramação:
Leia maisUnidade 4 Projeto de Banco de Dados
Unidade 4 Projeto de Banco de Dados Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José
Leia maisSistemas Distribuídos
Sistemas Distribuídos Definição Sistema Distribuído é aquele onde os componentes de software e hardware localizados em redes de computadores comunicam-se e coordenam suas ações apenas por passagem de mensagens.
Leia maisAula 10 Arquitetura de Software e Exercício. Alessandro Garcia LES/DI/PUC-Rio Abril de 2017
Aula 10 Arquitetura de Software e Exercício Alessandro Garcia Abril de 2017 Não Esquecer... Preencher tabela de atividades ao longo do processo. NÃO DEIXE PARA ÚLTIMA HORA, POIS VOCÊ NÃO SE LEMBRARÁ DO
Leia mais1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010
1 1 Introdução 1.1 Teoria dos Sistemas 1.2 Constituição dos sistemas 1.3 Natureza dos sistemas 1.4 Parâmetros do sistema 1.5 Descrição de sistemas 1.6 Desafios enfrentados no desenvolvimento 1.7 Perfil
Leia maisSistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel
Sistemas Operacionais Estrutura do Sistema Operacional Principais tipos de estruturas: Monolíticos; Em camadas; Máquinas Virtuais; Arquitetura Micro-kernel; Cliente-Servidor; 2 Arquitetura Monolítica Aplicação
Leia maisProcessos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1
Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando
Leia maisO conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado.
Modelagem de casos de uso Casos de uso O conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado. O que é Segundo Ivar Jacobson, um caso de uso
Leia maisComputadores e Programação (DCC/UFRJ)
Computadores e Programação (DCC/UFRJ) Aula 3: 1 2 3 Abstrações do Sistema Operacional Memória virtual Abstração que dá a cada processo a ilusão de que ele possui uso exclusivo da memória principal Todo
Leia maisSistemas Distribuídos Aula 3
Sistemas Distribuídos Aula 3 Aula passada Processos IPC Características Ex. sinais, pipes, sockets Aula de hoje Threads Kernel level User level Escalonamento Motivação: Servidor Web Considere Servidor
Leia maisUNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos
UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula
Leia maisAs 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira
As 10 Áreas da Engenharia de Software, Conforme o SWEBOK Prof. Elias Ferreira Educação de iniciação profissional validada e legitimada pela sociedade Registro da adequação à prática através de certificação
Leia maisLeitura: Cap : Sommerville; cap20: Pressman
Leitura: Cap26-27 - 28: Sommerville; cap20: Pressman Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / Ian Sommerville 2000 Slide 1/47 Manutenção de software É modificar um programa depois que
Leia maisGerência de Projetos e Qualidade de Software. Prof. Walter Gima
Gerência de Projetos e Qualidade de Software Prof. Walter Gima 1 Plano de Ensino e Aprendizagem 2 3 Objetivos CONTEÚDO Se preparar para o inicio de um projeto Acompanhamento projeto Controles Métricas
Leia maisPCS3413 Engenharia de Software e Banco de Dados
PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações
Leia maisTópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02
Tópicos Avançados em Sistemas Computacionais: Infraestrutura de Hardware Aula 02 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação POR QUE APRENDER CONCEITOS
Leia maisEstilo: BlackBoard. BlackBoard = repositório de dados compartilhados
Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários
Leia maisAlcides Pamplona
Alcides Pamplona alcides.pamplona@gmail.com Objetivos Gerais Capacitar o aluno a compreender os paradigmas dos Bancos de Dados Distribuídos, visando sua aplicação na análise e projeto de bancos de dados
Leia maisTECNOLOGIA DE PROCESSO
TECNOLOGIA DE PROCESSO Danillo Tourinho Sancho da Silva, MSc INTRODUÇÃO Tecnologia de processo são máquinas, equipamentos e dispositivos que ajudam a produção a transformar materiais, informações e consumidores
Leia maisRational Unified Process (RUP)
Rational Unified Process (RUP) A Rational é bem conhecida pelo seu investimento em orientação em objetos. A empresa foi à criadora da Unified Modeling Language (UML), assim como de várias ferramentas que
Leia maisResolução dos exercícios da lista BD01
Resolução dos exercícios da lista BD01 Pedro Losco Takecian Monitor João Eduardo Ferreira Professor 4 de abril de 2006 1. Quando faz sentido utilizar um SGBD ao invés de simplesmente utilizar o sistema
Leia maisDefinição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão
DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes
Leia maisPerguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software
Engenharia de Software Aula 03 Perguntas da Aula 2 Processos de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 12 Março 2012 Inconsistente: perguntei laranjas, respondeu
Leia maisFerramenta Web de Apoio à Elicitação de Requisitos de Software. Acadêmico: Ivan Wilhelm Orientador: Everaldo Artur Grahl
Ferramenta Web de Apoio à Elicitação de Requisitos de Software Acadêmico: Ivan Wilhelm Orientador: Everaldo Artur Grahl Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento Resultados
Leia maisProgramação Concorrente
INE 5410 Programação Concorrente Professor: Lau Cheuk Lung (turma A) INE UFSC lau.lung@inf.ufsc.br Conteúdo Programático 1. 2. Programação Concorrente 3. Sincronização 1. Condição de corrida, região critica
Leia maisModelagem de Sistemas. Análise de Requisitos. Modelagem
Modelagem de Sistemas Teoria Geral de Sistemas TADS 2. Semestre Prof. André Luís Para abordarmos de forma mais profunda os conceitos de Modelagem de Sistemas de Informação, precisamos também falar na Engenharia
Leia maisAula 2 BD Introdução. Profa. Elaine Faria UFU
Aula 2 BD Introdução Profa. Elaine Faria UFU - 2017 Motivação A quantidade de informação disponível está crescendo exponencialmente Os dados e as informações tem um papel importante para as organizações
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO
UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO Santa Maria, 13 de Setembro de 2013. Revisão aula anterior Processo de software Um modelo de processo de software consiste
Leia maisAula 1: Apresentação. Revisão para Prova 1. Aula 2: Motivação. O que é software? Eng. de Software em Camadas. O que é Engenharia de Software?
Engenharia de Software Aula 15 Aula 1: Apresentação Revisão para Prova 1 Livro Datas Monitoria Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 22 Abril 2013 Avaliação Agenda do Curso
Leia maisEngenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS
Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS 1. Com relação à engenharia de software, julgue os itens seguintes. Engenharia de software não está relacionada
Leia mais