Arquitetura de Software
|
|
|
- Agustina Mirandela Cunha
- 8 Há anos
- Visualizações:
Transcrição
1 Arquitetura de Software Engenharia de Software I Estagiária PAE: Lina María Garcés Rodríguez Profa. Dra. Elisa Yumi Nakagawa São Carlos
2 Conteúdos Introdução à Arquitetura de Software Funções do Arquiteto de Software Processo de Desenvolvimento e a Arquitetura de Software Requisitos Arquiteturais Projeto da Arquitetura de Software Documentação da Arquitetura de Software Avaliação da Arquitetura de Software 2
3 Conteúdos Primeira parte Introdução à Arquitetura de Software Funções do Arquiteto de Software Processo de Desenvolvimento e a Arquitetura de Software Requisitos Arquiteturais Projeto da Arquitetura de Software Documentação da Arquitetura de Software Avaliação da Arquitetura de Software 3
4 Introdução à Arquitetura de Software 4
5 1. Introdução à Arquitetura de Software Arquitetura de software tem emergido como uma sub-disciplina importante da engenharia de software (Clements et al. 2010). De forma geral, arquitetura é uma divisão prudente do todo em partes, com relações específicas entre as partes (Clements et al. 2010). 5
6 1. Introdução à Arquitetura de Software Definição Arquitetura de software: (SEI 2005; Garlan et al. 2000) Estrutura de componentes de um programa/sistema, os relacionamentos entre esses componentes, os princípios e diretrizes que governam os projetos e a evolução dos softwares. 6
7 1. Introdução à Arquitetura de Software Diferença entre Arquitetura de Software e Design de Software A arquitetura é projeto, mas nem todo projeto pode ser considerado arquitetura. Ou seja, muitas decisões de projeto não são consideradas na arquitetura, mas são deixadas para que os programadores ou outros projetistas façam. A arquitetura estabelece restrições nas atividades futuras, e essas atividades devem produzir artefatos (código ou projeto mais detalhados) conforme à arquitetura. (Clements et al. 2010). 7
8 1. Introdução à Arquitetura de Software Importância da Arquitetura de Software (Bass et al. 2003). Comunicação entre stakeholders A arquitetura de software representa uma abstração comum de um sistema que a maioria (ou todos) os stakeholders podem utilizar como base para o entendimento, negociação, consenso, e comunicação. Abstração transferível do sistema A arquitetura de software constitui um modelo relativamente pequeno e compreensível, de como o sistema é estruturado e como seus elementos trabalham juntos. Esse modelo é transferível no sistema. Esse modelo pode ser utilizado em outros sistemas que tenham atributos de qualidade e requisitos funcionais similares. 8
9 Funções do Arquiteto de Software 9
10 Funções do Arquiteto de Software As funções e responsabilidades do arquiteto variam dependendo do tipo de sistema. As mais comuns são (Garland and Anthony 2003).: Estabelecimento dos requisitos: O arquiteto tipicamente é o responsável pelo entendimento e gestão dos requisitos não funcionais do sistema. O arquiteto pode trabalhar diretamente com os stakeholders. Avaliação do risco técnico do sistema: O arquiteto deve fornecer um plano de gestão do risco. Deve poder avaliar o impacto que uma mudança nos requisitos terá no sistema, e avaliar o risco dessas mudanças. Análise do domínio do sistema: O arquiteto deve ser capaz de dividir os problemas em partes e estruturar soluções que possam abordar as necessidades da organização. Revisor dos entregáveis do sistema. Mentor de projetistas e desenvolvedores Desenvolvedor (em projetos pequenos) Líder da equipe 10
11 Processo de Desenvolvimento e a Arquitetura de Software 11
12 2. Processo de desenvolvimento e a Arquitetura de Software Projeto da Arquitetura de Software IBM Rational Unified Process. Fonte: Wikipedia 12
13 2. Processo de desenvolvimento e a Arquitetura de Software Processo de Projeto da Arquitetura de Software (Gorton 2006). 13
14 Processo de Projeto da Arquitetura de Software 1. Requisitos Arquiteturais 14
15 3. Estabelecer os Requisitos Arquiteturais Atributos de Qualidade Restrições (Gorton 2006). 15
16 3. Estabelecer os Requisitos Arquiteturais Exemplos de Requisitos Arquiteturais A typical architecture requirement concerning reliability of communications is: Communications between components must be guaranteed to succeed with no message loss Some architecture requirements are really constraints, for example: The system must use the existing IIS-based web server and use Active Server Page to process web requests 16
17 3. Estabelecer os Requisitos Arquiteturais Qualidade de Software Qualidade de software : Grau de satisfação que um produto software alcança quando é utilizado em condições específicas (ISO/IEC 25000:2005) Atributo de Qualidade: Uma caraterística de software que especifica o grau que deve possuir um atributo que afeta a qualidade do software (ISO 2001). Exemplos: Usabilidade, confiabilidade, performance, etc. Modelo de Qualidade: Conjunto de caraterísticas, e relacionamento entre elas, que fornecem um marco de referência para especificar requisitos de qualidade e avaliar a qualidade do software (ISO/IEC 25000:2005). 17
18 3. Estabelecer os Requisitos Arquiteturais Modelo de Qualidade ISO/IEC Software Product Quality Functional Suitability Reliability Performance efficiency Usability Security Compatibility Maintainability Portability Appropriateness Availability Time-behaviour Appropriateness recognisability Confidentiality Co-existence Modularity Adaptability Completeness Fault tolerance Resourceutilisation Learnability Integrity Interoperability Reusability Installability Correctness Recoverability Capacity Operability Non-repudiation Analyzability Replaceability Maturity User error protection Accountability Changeability User interface aesthetics Authenticity Modificability Accessibility Testability 18
19 3. Estabelecer os Requisitos Arquiteturais Atributo de Qualidade Modelo de Qualidade ISO/IEC Definição Exemplo de Requisito Arquitetural Functional Suitability Reliability Performance efficiency Usability Security Compatibility Maintainability Portability degree to which a product or system provides functions that meet stated and implied needs when used under specified conditions degree to which a system, product or component performs specified functions under specified conditions for a specified period of time performance relative to the amount of resources used under stated conditions degree to which a product or system can be used by specified users to achieve specified goals with effectiveness, efficiency and satisfaction in a specified context of use degree to which a product or system protects information and data so that persons or other products or systems have the degree of data access appropriate to their types and levels of authorization degree to which a product, system or component can exchange information with other products, systems or components, and/or perform its required functions, while sharing the same hardware or software environment degree of effectiveness and efficiency with which a product or system can be modified by the intended maintainers degree of effectiveness and efficiency with which a system, product or component can be transferred fromone hardware, software or other operational or usage environment to another A aplicação deve permitir o pagamento por cartão de crédito de forma segura. Perda de pacotes de dados menor que o 0.01% Tempo de processamento menor de 0.01 segundo. Fornecer interfaces para usuários com deficiências e que sejam fáceis de utilizar Utilizar senhas criptografadas. Que a aplicação possa compartilhar informações com redes sociais facebook, twitter, instagram. O tempo de atualização deve ser menor de 2 horas. Que a aplicação possa ser utilizada em plataformas windows, mac, linux, android, etc. 19
20 3. Estabelecer os Requisitos Arquiteturais Os atributos de qualidade não são ortogonais. Eles interagem de formas sutis, ou seja, um projeto que está em conformidade com um atributo de qualidade pode ter um efeito prejudicial sobre outro requisito. Exemplo: Alto performance vs Portabilidade. Simplesmente não é possível satisfazer completamente todos os atributos de qualidade desejados em um sistema software. 20
21 3. Estabelecer os Requisitos Arquiteturais Exercício de aula Selecione uma aplicação dentre as seguintes: Whatsapp Facebook messenger Instagram Youtube Twitter Skype Spotify Dropbox Netflix Waze social GPS Maps & Traffic Pense em pelo menos cinco requisitos que o arquiteto da aplicação considerou ao projetar sua arquitetura. 21
22 Conteúdos Segunda parte Introdução à Arquitetura de Software Funções do Arquiteto de Software Processo de Desenvolvimento e a Arquitetura de Software Requisitos Arquiteturais Projeto da Arquitetura de Software Documentação da Arquitetura de Software Avaliação da Arquitetura de Software 22
23 Processo de design da Arquitetura de Software 2. Design 23
24 4. Design da Arquitetura de Software Design da Arquitetura = Alcançar as qualidades Tática Architecture Documentation Architecture Design Selection of Architectural Patterns Selection of Architectural Views 24
25 4. Design da Arquitetura de Software Padrões Arquiteturais Most of the IT applications I ve worked on in the last ten years are based around a small number of well understood, proven architectures. There s a good reason for this they work. Ian Gorton, Aproveitar soluções conhecidas minimiza os riscos que uma aplicação possa falhar devido a uma arquitetura inadequada. Assim a etapa inicial envolve a seleção de um padrão arquitetural que ajude satisfazer os requisitos essenciais. a Para aplicações pequenas, somente um padrão pode ser suficiente. Para aplicações mais complexas, o projeto irá incorporar um ou mais padrões conhecidos, sendo que o arquiteto especificando como esses padrões se integram para formar a arquitetura geral. Não existe nenhuma fórmula mágica para projetar uma arquitetura, porém, um requisito é entender como cada padrão aborda os atributos de qualidade. 25
26 4. Design da Arquitetura de Software Padrões Arquiteturais Classificação segundo Bass et al. (2010) : Padrões Módulo Mostra a arquitetura em termos de módulos; Padrões Componente & Conectores Mostra a arquitetura em termos de componentes e conectores; Possibilitam estruturar o software como um conjunto de elementos com comportamentos e interações em tempo de execução. Padrões Alocação Mostra a arquitetura como uma combinação de elementos de software e elementos que não são de software (e.g., servers, networks, etc) 26
27 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão fluxo de dados Padrão call-return Padrão baseado em eventos Padrão Repositorio Os componentes atuam como transformadores e os conetores transferem dados desde a saída de um componente para a entrada de outro. Esses padrões são comuns em domínios onde o processamento de fluxos de dados ocorre, e onde toda a computação pode dividir-se em um conjunto de passos transformadores. Padrões onde os componentes interagem mediante a invocação síncrona de capacidades fornecidas por outros componentes. Um componente que invoca um serviço, é pausado até que o serviço seja concluído. Os conectores são responsáveis de transferir a solicitação do serviço e de retornar os resultados. Padrões onde os componentes interagem mediante eventos ou mensagens asíncronos. Os sistemas que utilizas esses padrões são organizados como uniões com acoplamento fraco de componentes que acionam o comportamento em outros componentes através de eventos. Padrões onde os componentes interagem mediante grandes coleções de dados compartilhados persistentes. Em muitos casos, o acesso ao repositório é mediado pelo DBMS que fornece uma interface call-return para a recuperação e gestão de dados. 27
28 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrões Fluxo de dados Padrões callreturn Padrões baseados em eventos Padrões Repositorio Batch Sequential Clienteservidor Publish- Subscribe Dados Compartilha dos Pipe & Filter Peer-to-Peer Mensagens ponto a ponto Blackboard SOA Blackboard SOA 28
29 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão: Cliente - Servidor 29
30 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão: Cliente - Servidor 30
31 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão: Cliente - Servidor Propriedades do Padrão C-S Multi-nível Separação de interesses: A lógica de apresentação, negócio, e gestão dos dados se divide claramente em diferentes níveis. Comunicação síncrona: A comunicação entre os níveis é síncrona, os pedidos emanam em uma direção, e cada nível espera por uma resposta do outro nível antes de prosseguir. Deployment flexível: Não há restrições sobre a implantação de uma aplicação multi-nível. Todos os níveis podem ser executados na mesma máquina ou em máquinas diferentes. 31
32 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão: Cliente - Servidor Quando utilizar o padrão C-S Multi-nível? Quando uma aplicação tem de suportar um grande número de clientes e solicitações simultâneas, e cada pedido leva um intervalo relativamente curto (alguns milissegundos ou segundos) para processamento. 32
33 4. Design da Arquitetura de Software Padrões Arquiteturais tipo Componente & Conector (Bass et al., 2010) Padrão: Cliente - Servidor Atributos de Qualidade abordados: Disponibilidade Tolerância a falhos Modificabilidade Desempenho Escalabilidade Servers em cada nível podem ser replicados, por se um deles falha outros estejam disponíveis. Implementação transparente de controle de falhas. As solicitações do cliente são direcionadas às replicas. Separação de preocupações possibilita as mudanças, sem precisar mudar outros níveis. Encapsulação das preocupações. Alto desempenho Solicitações dos clientes são processadas pelos servers com menor carga de trabalho. Um server pode atender múltiplas solicitações. Servers podem ser replicados Múltiplas instâncias do server são executadas no mesmo ou diferente server. Possível gargalho: Administração de dados (DBMS) 33
34 Processo de design da Arquitetura de Software 3. Documentação da Arquitetura 35
35 4. Documentação da Arquitetura Muitas vezes, arquiteturas de software são criadas e não são documentadas (e conseqüentemente, comunicadas) de forma efetiva, isto é, desenvolvedores e outros com interesse no sistema (stakeholders) não têm acesso a uma representação adequada da arquitetura. Assim, a documentação de arquitetura de software torna-se o artefato principal em todas as fases do desenvolvimento em que a arquitetura é usada. Software architecture documentation speaks for the architect, today, tomorrow and 20 years from now. (SEI) 36
36 4. Documentação da Arquitetura Requisitos arquiteturais Seleção de padrões arquiteturais 37
37 4. Documentação da Arquitetura Desenvolvedor Cliente Analista Manager da equipe Usuários finais 38
38 4. Documentação da Arquitetura 39
39 4. Documentação da Arquitetura Visões arquiteturais Uma visão é uma representação de um conjunto de elementos e relações do sistema que lhes estão associados. As visões importantes dependem da finalidade do arquiteto 40
40 4. Documentação da Arquitetura Visões arquiteturais Documentar uma arquitetura é uma questão de documentar as visões relevantes e, em seguida, a adição de documentação que se aplica a mais de uma visão. 41
41 4. Documentação da Arquitetura Quais visões usar? Visões arquiteturais 4+1 Views Views & Beyond Visão de módulos Visão em tempo de execução Visão de implantação Visão de implementacão Visão de dados Visão de módulos Visão de componentes e conectores Visão de alocação 42
42 4. Documentação da Arquitetura Visões arquiteturais OBS: Nem todas as visões são relevantes para todos os sistemas. Quais são as visões relevantes? Isso depende dos objetivos do arquiteto! As visões que você deve documentar dependem do uso que se espera para a documentação. Diferentes visões destacam diferentes elementos do sistema e/ou relações. Exemplo: Uma visão com o padrão de camadas esta orientado a descrever a portabilidade. Uma visão de deployment tem como objetivo oferecer informações sobre o desempenho e confiabilidade do sistema. 43
43 4. Documentação da Arquitetura Visões arquiteturais - Notações Notações para documentar as visões diferem consideravelmente em seu grau de formalidade: Notações informais: Visões são representadas (frequentemente com gráficos) utilizando ferramentas como power point, paint, etc. As semântica da descrição são caraterizados em linguagem natural e não pode ser formalmente analisado. Notações semi-formais: Visões são representadas com uma notação padronizada que prescreve elementos gráficos e regras de construção, mas não fornece um tratamento semântico completo do significado desses elementos. Análise rudimentar pode ser aplicado para determinar se uma descrição satisfaz propriedades sintácticas. UML é uma notação semi-formal neste sentido. Notações formais: Visões são representadas com uma notação que tem uma semântica precisa (usualmente baseada em matemática). É possível uma análise formal. Existem variedades de notações formais, geralmente conhecidas como ADLs (Architectural Description Languages). 44
44 4. Documentação da Arquitetura Visões arquiteturais - Notações Determinar qual forma de notação utilizar envolve a tomar compromissos (trade-offs). Tipicamente as notações mais formais precisam mais tempo e um esforço para criá-las, mas elas retribuem o esforço na redução da ambiguidade e possibilitam uma melhor análise. Inversamente, notações mais informais são fáceis de criar, mas fornecem menos garantias. 45
45 4. Documentação da Arquitetura Visões arquiteturais - Notações Exemplo usando notação informal e UML 46
46 4. Documentação da Arquitetura Exercício de Aula Usando notação informal, estabeleça uma visão geral da arquitetura da aplicação selecionada na última aula. A visão deve ser feita visando que um usuário final quaisquer, possa entender o funcionamento da aplicação. Fornecer uma legenda para os símbolos utilizados no diagrama, por exemplo: 47
47 Processo de design da Arquitetura de Software 4. Avaliação da Arquitetura 48
48 4. Avaliação da Arquitetura Evaluando a Arquitetura de Software Architectures are not inherently good or bad they are only well-suited or not with respect to a particular set of goals. Architecture Evaluation Checks Architectural-significant decisions Against Architectural-significant requirements Tomado da palestra do professor Paris Avgeriou no ICMC-USP 3/10/
49 4. Avaliação da Arquitetura Tipos de Avaliação Quantitative: How much...? Estimation Analytical or simulation models Measurements on feasibility prototypes or products Qualitative: What if...? Questioning techniques: questionnaires & checklists Based on scenarios: SAAM, ATAM, CBAM,... Prototyping (proof-of-concept) Evaluation mostly uses scenarios to verify QAs Tomado da palestra do professor Paris Avgeriou no ICMC-USP 3/10/
50 4. Avaliação da Arquitetura Métodos baseados em cénarios ATAM (Architecture Trade-off Analysis Method) All quality attributes & tradeoffs Design decisions & alternative design options SAAM (Software Architecture Analysis Method) Modifiability and areas of potential high complexity Complete architecture qualitatively CBAM (Cost Benefit Analysis Method) Costs, benefits, schedule implications of architectural decisions ARID (Active Reviews for Intermediate Design) Preliminary evaluation for partial architecture Engineering SHs buy-in There are more methods in the literature... Tomado da palestra do professor Paris Avgeriou no ICMC-USP 3/10/
51 Referências Ian Gorton Essential Software Architecture. Springer-Verlag New York, Inc., Secaucus, NJ, USA. Jeff Garland and Richard Anthony Large-Scale Software Architecture: A Practical Guide Using UML. John Wiley & Sons, Inc., New York, NY, USA. Len Bass, Paul Clements, and Rick Kazman Software Architecture in Practice (2 ed.). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA. Len Bass, David Garlan, Felix Bachmann, James Ivers, Judith Stafford, Paul Clements, and Paulo Merson Documenting Software Architectures: Views and Beyond (2nd ed.). Addison-Wesley Professional. SEI (Software Engineering Institute) ISO/IEC 25010:
Arquitetura de Software
Arquitetura de Software Engenharia de Software I Estagiária PAE: Lina María Garcés Rodríguez Profa. Dra. Elisa Yumi Nakagawa 29-06-2015 São Carlos Conteúdos Introdução à Arquitetura de Software Funções
Arquitetura de Software: Documentação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SSC-0527 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Tiago Volpato Introdução
Arquitetura de Software: Documentação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Documentação SCE 526 Análise e Projeto Orientados a Objeto Profa. Elisa Yumi Nakagawa 2. Semestre de
Arquitetura de Software: Introdução
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SSC-121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2º semestre de 2012 Conteúdo
UFG - Instituto de Informática
UFG - Instituto de Informática Curso: Engenharia de Software Arquitetura de Software Prof.: Fabrízzio A A M N Soares Aula 1 - Apresentação Ementa Definição de arquitetura de software. Importância e impacto
DSS. Desenvolvimento Software Seguro. Weber Ress [email protected]
DSS Desenvolvimento Software Seguro Weber Ress [email protected] About Me Weber Ress, [email protected] 12 anos MVP Developer Security MCSE, IBM CLP, MCT, Professor, Mestrando GEO Group Engineering
Agenda 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 [email protected] 14 Março 2012 Arquitetura de Software Padrões arquiteturais
Arquitetura 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 =
MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro
MODELAGEM DE SISTEMAS Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Modelagem de Sistemas: A modelagem de um sistema auxilia o analista a entender a funcionalidade
Arquitetura de Software: Introdução
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Arquitetura de Software: Introdução SCE 526 Análise e Projeto Orientados a Objeo Profa. Elisa Yumi Nakagawa 2. Semestre de 2013
Arquitetura 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
Felipe de Andrade Batista. Microservice Architecture: A Lightweight Solution for Large Systems in the Future
Arquitetura de Microserviços: Uma Solução Leve para Grandes Sistemas no Futuro Felipe de Andrade Batista Universidade Santa Cecília (UNISANTA), Santos-SP, Brasil Email: [email protected] Resumo: Este
Introdução. Introdução. Introdução. Planejamento da disciplina. Modelagem de Processos de Negócio. Prof.: Clarindo Isaías Pereira da Silva e Pádua
Modelagem de Processos de Negócio Prof.: Clarindo Isaías Pereira da Silva e Pádua Gestus Departamento de Ciência da Computação - UFMG Bibliografia Eriksson, H-E; Penker, M. Business Modeling with UML:
Universidade Federal de Goiás Estilos Arquiteturais
Universidade Federal de Goiás Estilos Arquiteturais Prof. Helder Brito Nascimento Instituto de Informática [email protected] O que é um estilo de arquitetura Como você diferencia uma construção da outra?
O Fluxo de Requisitos
O Fluxo de 1 Finalidade do fluxo de requisitos A finalidade deste fluxo é: Chegar a um acordo com o cliente e o usuário sobre o que o sistema deve fazer. Oferecer ao desenvolvedor um melhor entendimento
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2006 Profa. Dra. Itana Gimenes RUP: Projeto Artefatos Modelo de Projeto: Lista de classes de
Rational 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
Engenharia de Software. Projeto de Arquitetura
Engenharia de Software Projeto de Arquitetura O que já vimos? Introdução a Engenharia de Software Processos de Software Desenvolvimento Ágil de Software Engenharia de Requisitos Modelagem de sistemas (outra
Engenharia de Software
Prof. M.Sc. Ronaldo C. de Oliveira [email protected] FACOM - 2011 UML Linguagem Unificada de Modelagem Projeto de Software Introdução O que é projeto em software? O termo projeto é um tanto
Aná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
Arquitetura de Software: O que é? Para que serve? Como validá-la? Rodrigo Rebouças de Almeida rodrigor.com
Arquitetura de Software: O que é? Para que serve? Como validá-la? Rodrigo Rebouças de Almeida rodrigor.com setembro de 2004 Conteúdo Vamos falar sobre Arquitetura de Software, independente da fase do processo
INF1013 MODELAGEM DE SOFTWARE
INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho [email protected] Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa
Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999
Arquitetura de Software Parte 2/3-Estilos Arquiteturais Jorge H. C. Fernandes Junho de 1999 Estilos Arquiteturais mais Comuns (Mary Shaw, 96) Data flow Batch Pipes e filtros Chamada e retorno Programa
RUP 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
Introdução 27/9/2005. Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação UFMG Gestus. Usabilidade.
Introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Departamento de Ciência da Computação UFMG Gestus Referências Hix, D.; Hartson, H. R. Developing User Interfaces: ensuring usability through product
Arquitetura de Software visão emergente
Arquitetura de Software visão emergente Objetivos Visão abstrata do software através de componentes e interfaces Independência de plataforma Independência de paradigma de programação Técnicas Estilos Arquiteturais
Visões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001
FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS Projeto de Programas PPR0001 2 Introdução Antes de desenvolver ou construir qualquer produto ou sistema em engenharia é necessário um... o PROJETO O que é um
Visão Geral da UML. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012
Visão Geral da UML SSC 121 - Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012 Conteúdo Introdução Ferramentas de Apoio Diagramas da UML Elementos Genéricos Material sobre UML
UML e seus diagramas
UML e seus diagramas A UML Unified Modeling Language (Linguagem de Modelagem Unificada), como o próprio nome já diz, é uma linguagem para modelagem de objetos do mundo real, usada para especificar, construir,
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix
Introdução A produção de Software é uma atividade build and fix. 1 Introdução build 2 Introdução fix 3 1 Introdução 4 P s Só pessoas motivadas e comprometidas com o projeto garantem o respectivo sucesso;
15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos
DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,
Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398)
Planning for and Managing Devices in the Enterprise: Enterprise Management Suite (EMS) & On-Premises Tools (20398) Formato do curso: Presencial Localidade: Lisboa Data: 18 Dez. 2017 a 22 Dez. 2017 Preço:
UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro
Curso Técnico Integrado de Informática 2 Ano Projeto Integrador Formação Profissional Trabalho Análise e Projeto de Sistemas UML Aluna: Luana Alves Businaro-1614193 Maio de 2017 Sumário 1 Introdução...
Introduçã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
Ciência da Computação. Análise e Projeto Orientado a Objetos UML. Anderson Belgamo
Ciência da Computação Análise e Projeto Orientado a Objetos UML Anderson Belgamo 1 Evolução do Software O rápido crescimento da capacidade computacional das máquinas resultou na demanda por sistemas de
Modelagem de Sistemas Web. Modelagem de BD
Modelagem de Sistemas Web Aula 9 Modelagem de BD OBS: Pré-requisito: noções intermediárias em BD e de modelo ER Fonte: Proj. e Mod. BD 4/E Capítulo: Análise de Req. E Mod. Dados Conceit. - Toby Teorey
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001
PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO Projeto de Programas PPR0001 QUALIDADE DO PROJETO 2 3 Qualidade do Projeto de Software Modularidade: gerar particionamento em elementos que executam funções
3 Medição de Software
3 Medição de Software À medida que a engenharia de software amadurece, a medição de software passa a desempenhar um papel cada vez mais importante no entendimento e controle das práticas e produtos do
Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD
Aula 01 Revisão Geral Banco de Dados I Conceito de Banco de Dados e SGBD Banco de Dados (BD) é o arquivo físico, em dispositivos periféricos, onde estão armazenados os dados de diversos sistemas, para
Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa
Qualidade de : Visão Geral Engenharia de Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017 Qualidade de Qualidade é um termo que pode ter diferentes interpretações. Existem muitas definições de qualidade
Estilos Arquiteturais
Estilos Arquiteturais 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
Introdução à Gestão de Processos de Negócios
Introdução à Gestão de Processos de Negócios Profa. Dra. Elisa Yumi Nakagawa 2. Semestre de 2016 SSC0531 - Gestão de Sistemas de Informação Slides inicialmente preparados por Roberto Rocha e Prof. João
Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016
Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2016 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação
Professor Emiliano S. Monteiro
Professor Emiliano S. Monteiro To-Do Doing Done Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer
Ciclo de vida: fases x atividades
Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação
Vendors Enquiries for RFP 003/2015
Date: 22/10/2015 Vendors Enquiries for RFP 003/2015 1) Question I am afraid the terms of the RFP cannot be complied by none of the companies we work with, the terms have limited the underwriters ability
Introdução à Engenharia de Software
Introdução à Engenharia de Software Professor: Rômulo César [email protected] www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia
Sistemas Distribuídos
Sistemas Distribuídos Motivação Aplicações Motivam Possibilita Engenharia Motivação! Aplicações cada vez mais complexas! Qual a técnica mais comum para redução de complexidade? " Modularização Dividir
Engenharia de Requisitos
Engenharia de Requisitos Criado: mar/2001 Atualizado: set/2005 Tópicos Definição de Requisitos Participantes Processo Documento de Requisitos (SRS) Evolução dos Requisitos 2 Referência I.Sommerville. Sw
Engenharia de Software para Sistemas Embarcados
Engenharia de Software para Sistemas Embarcados (Introdução) Prof. Julio Arakaki ([email protected]) Depto. de Computação Faculdade de Ciências Exatas e Tecnologia Pontifícia Universidade Católica de São
AVALIAÇÃO DE PRODUTOS DE SOFTWARE
AVALIAÇÃO DE PRODUTOS DE SOFTWARE SSC-546 Avaliação de Sistemas Computacionais Profa. Rosana Braga (material profas Rosely Sanches e Ellen F. Barbosa) Qualidade de Produto de Software Modelo de Qualidade
Desenvolvimento de Aplicações Distribuídas
SOA e Web Services Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características Arquitetura
SABiO: Systematic Approach for Building Ontologies
SABiO: Systematic Approach for Building Ontologies Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Preocupações Principais do
PROJETO 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
Sistemas Distribuídos
Faculdades SENAC Análise e Desenvolvimento de Sistemas 1 de agosto de 2009 Introdução Instructor's Guide for Colouris et al. SDs de diferentes tipos compartilham importantes propriedades fundamentais e
Introdução. Diagramas de Interação. Introdução. Introdução. Introdução. Introdução. Os modelos de análise não respondem a algumas perguntas:
Diagramas de Interação Os modelos de análise não respondem a algumas perguntas: Como as operações do sistema são executadas internamente? A que classes estas operações internas pertencem? Quais objetos
Design Dirigido ao Domínio - DDD
Design Dirigido ao Domínio - DDD Daniel Alcântara Cordeiro, Frederico A. Lima Junior, Saulo Mendonça Universidade Salvador (Unifacs) Edf. Civil Empresarial. Rua Doutor José Peroba, nº 251, STIEP, Salvador
Padrões. Arquitetura de Software Thaís Batista
Padrões Endereçam uma classe de problemas recorrentes e apresenta uma solução para eles (podem ser considerados um par problema-solução) Permitem a construção de software com propriedades definidas Ajudam
Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)
Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP) Fundamentos de Engenharia de Software PPGIA Carlos G. Vasco, Marcelo H. Vithoft, Paulo R. Estante Design and programming
Análise e Projeto. Padrões de Análise, Arquitetura e Projeto
Análise e Projeto Padrões de Análise, Arquitetura e Projeto 33 Padrões de Arquitetura Padrões Nome do padrão Problema: quando aplicar o padrão? Descreve o problema e seu contexto. Solução: elementos que
Manutenção de Software. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015
Manutenção de Software Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa 1º semestre de 2015 Processos de Ciclo de Vida de Software Processos Fundamentais Aquisição Processos de Apoio Documentação
Desenvolvimento de Aplicações Distribuídas
Desafios e Características Pontifícia Universidade Católica de Minas Gerais Instituto de Ciências Exatas e Informática DAD (2019/01) Tópicos Apresentação da disciplina Introdução Desafios e características
UML (Unified Modelling Language)
UML (Unified Modelling Language) Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Booch, G. et al. The Unified Modeling Language User Guide
Requisitos de Sistemas
Requisitos de Sistemas Unidade I - Engenharia de Requisitos Definição de Requisitos Tipos de Requisitos Processos de Engenharia de Requisitos - Levantamento ou elicitação 1 Processo de software Engenharia
Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.
Engenharia de Software Aula 07 Tópicos da Aula Introdução à UML e Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] 28 Março 2012 A
