O documento discute questões sobre arquitetura de software, incluindo definições, representações, estruturas e visões. Aborda a importância da documentação da arquitetura e decisões de projeto. Também apresenta exemplos de arquiteturas de sistemas de banco de dados.
O trabalho de um arquiteto é gerenciar complexidade, não aumentá-la. No entanto, o desenvolvedor se depara com diversos frameworks, siglas e escolhas aparentemente infinitas. Então, como saber quando uma complexidade faz sentido? Nesta palestra vamos refletir sobre quando as abstrações se justificam, e, vamos analisar caminhos a seguir com base em diferentes abordagens para estruturar uma aplicação.
Introdução a arquitetura de sistemas com .NETMário Meyrelles
Esta apresentação é a parte teórica do meu curso de introdução ao desenvolvimento de sistemas com a plataforma .NET. Esta parte do curso busca explicar como são feitos sistemas antigos e como se deve pensar em sistemas novos usando as tecnologias atuais.
O trabalho de um arquiteto é gerenciar complexidade, não aumentá-la. No entanto, o desenvolvedor se depara com diversos frameworks, siglas e escolhas aparentemente infinitas. Então, como saber quando uma complexidade faz sentido? Nesta palestra vamos refletir sobre quando as abstrações se justificam, e, vamos analisar caminhos a seguir com base em diferentes abordagens para estruturar uma aplicação.
Introdução a arquitetura de sistemas com .NETMário Meyrelles
Esta apresentação é a parte teórica do meu curso de introdução ao desenvolvimento de sistemas com a plataforma .NET. Esta parte do curso busca explicar como são feitos sistemas antigos e como se deve pensar em sistemas novos usando as tecnologias atuais.
Architecting for Huper Growth and Great Engineering CultureSARCCOM
Architecting for Huper Growth and Great Engineering Culture
by Ifnu Bima
@SARCCOM MEETUP
http://sarccom.org
https://www.meetup.com/Software-Architect-Indonesia
Estratégias de Estruturação de Código-fonte e Controlo de VersãoComunidade NetPonto
Muitas das dificuldades no desenvolvimento profissional de software são causadas por problemas (ou a falta de) um correcto sistema e uso de controlo de versões. Nesta apresentação o Tiago Pascoal, MVP em Visual Studio Team System, irá mostrar estratégias sobre como melhor estruturar todos os artefactos de um projecto, incluindo melhores práticas para uso de controlo de versões, tendo por base a plataforma de Application Lifecycle Management da Microsoft (Team Foundation Server / TFS).
Apresentação em Projeto de Sistemas – Entity FrameworkMatteus Barbosa
Apresentação em Projeto de Sistemas, no curso de Graduação em Sistemas de Informação, na PUC Minas no campus Barreiro.
Relatório com informações valiosas para programadores que desejam conhecer o potencial da ferramenta para persistência Entity Framework. Acesse https://www.desenvolvedormatteus.com.br/ para conhecer as soluções da web disponíveis para seu negócio.
Decisões de arquitetura, escolhas de frameworks e linguagens, ferramentas, metodologias. Essas e outras dicas, truques, experiências, acertos e erros de uma equipe desenvolvendo códigos nos últimos 7 anos.
Apresentação dos engenheiros Pedro Cortez e Rafael Lopes Rangel da Tecgraf PUC-RIO durante o II Openday PUC-RIO realizado em 24 de agosto de 2018. Estudo de caso com uso de ferramentas MATLAB.
Elementos essenciais de CSS para desenvolvedores web. Exemplos de páginas HTML com estilos definidos via CSS. Inclui botões, fontes, layouts, frameworks e bibliotecas. Vários links apontam para fontes adicionais.
Visão geral de HTML5 tem como objetivo fornecer conceitos fundamentais para o programador responsável pelo desenvolvimento do "front end" de um sistema.
Arquétipo é um conceito relevante para a interoperabilidade de sistemas de informação em saúde. Essa apresentação contribui com a definição desse conceito, em geral, "obscuro" em um primeiro momento.
Um SGBD para a Saúde. Banco de dados em saúde. Sistema Gerenciador de Banco de Dados em Saúde. openEHR. Padrões de interoperabilidade em saúde. Interoperabilidade semântica.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
1. Arquitetura de Software
Questões relevantes, geralmente não abordadas
Fábio Nogueira de Lucena
Instituto de Informática (UFG)
XVI Jornada Goiana em Engenharia de Software
3. Vamos “limpar” nossa mente e
esclarecer algumas questões...
Isso não é uma introdução!
4. Arquitetura de Software é meio
Objetivos do
negócio
Implementação
do software
Arquitetura de Software
Requisitos Projeto Construção
5. Visão funcional
Definir a
Arquitetura
de Software
Requisitos
Conhecimento; Experiência; “Plágio”;
Intuição; Restrições; ...
Representação da
Arquitetura de Software
7. Especificações de área, volume, dimensões,...
Pessoas preferem “navegar” pelo domínio da solução
8. Por que usar “documentação executável”?
Estratégia para reduzir riscos.
Requisitos
“compreendidos”
e executáveis!
Arquitetura que admite testes “facilmente”
16. Contexto (escopo)
Arquitetura Corporativa
Arquitetura de Sistema
Arquitetura
de Software
hardware + software + pessoas
Como software apoia objetivos do negócio?
Sistema. LZFSE
oferece baixo consumo
de energia.
Corporativa.
Departamento ocioso,
que usa Python é
agregado ao projeto.
17. Todo software possui uma arquitetura
Qualquer software pode ser “pensado” pelos seus elementos e relações.
Todo software possui uma arquitetura,
mesmo que seja desconhecida
Documentação
da arquitetura
Arquitetura
de Software
Existe independente da documentação
18. Como registrar a “motivação” de uma decisão?
Documenting Architecture Decisions
Michael Nygard
19. Nem todas arquiteturas são iguais
Arquitetura pode permitir
ou inibir um requisito
Dadas duas arquiteturas, uma pode ser
“melhor” que a outra
Tentativa & Erro Design Avaliação
Inaceitável
20. De fato, uma arquitetura de software pode ser...
Documentada Projetada Analisada
21. "Arquitetos devem tomar decisões, ...
que devem ser documentadas,
revisadas e aprovadas, além de servir
como restrição para a futura construção."
22. On Architecture: The Accidental Architecture
Grady Booch,
IEEE Podcast
“Arquitetura acidental surge como
resultado de numerosas decisões ao
longo do desenvolvimento.”
“Arquitetura intencional é uma arquitetura
explicitamente identificada e só então
implementada.”
23. O que é arquitetura de software?
“É o conjunto de estruturas,
compostas de elementos e das
relações entre eles.”
27. Categorias de estruturas
(estática) Módulos
Divide o sistema em unidades de implementação, distribui responsabilidades
Base para atribuição de tarefas a equipes de programação
Estrutura estática (classes, camadas, …)
(dinâmica) C&C (component-and-conector)
Componente = entidade que existe apenas em tempo de execução
Estrutura dinâmica
Foco na interação entre os elementos da estrutura
28. Estruturas de módulos (estática)
Qual a principal responsabilidade?
Quais elementos um módulo pode usar?
Quais os módulos usados por um módulo?
Quais os relacionamentos entre módulos? (herança)
31. Estruturas C&C
Quais os principais
componentes em
execução?
Como interagem em
tempo de execução?
Quais partes do
sistema são
executadas em
paralelo?
32. Alocação
Em qual processador cada elemento de software é executado?
Em quais diretórios cada elemento é armazenado durante o desenvolvimento?
E durante os testes e building?
Qual equipe desenvolve cada elemento?
35. Quais são os demais elementos?
1. Web Server
2. Apache
3. Application Server
4. Tomcat
5. Servlet (aplicação)
6. JVM (omitida)
7. JDBC
8. Database Server
9. MySQL
36. Qual é o problema?
Web Server
Apache
Application Server
Tomcat
Servlet (aplicação)
JVM (omitida)
JDBC
Database Server
MySQL
● Configuração complexa
● Monitoramento
● Instalação
● Atualização
37. Resposta para configurar e instalar
Deploy. Manage systems. Crush complexity.
Web Server
Apache
Application Server
Tomcat
Servlet (aplicação)
JVM (omitida)
JDBC
Database Server
MySQL
39. Monitorar (antecipar problemas, manter em operação)
Web Server
Apache
Application Server
Tomcat
Servlet (aplicação)
JVM (omitida)
JDBC
Database Server
MySQL
Pode exigir uso
de JMX
40. Ligação com tecnologia
Por que Tomcat?
● Java
○ Jetty, WebLogic, Glassfish,
JBoss, JOnAS, Resin, WildFly, …
○ GAE (Google)
○ Netty
○ Spray
○ Grizzly
○ Vert.x
○ Mina
● Windows
○ .Net Core (Web API)
○ .Net Framework
● C
○ libmicrohttpd, facil.io, libuv,
nanomsg, lighttpd, ...
Algumas opções:
Arquiteturas
lógicas e físicas.
41. Estrutura “preferida”: decomposição
Tende a “dirigir” a estrutura do projeto por “espelhar” a estrutura de equipes de
desenvolvimento.
“Organizações que projetam sistemas… tendem a produzir projetos que são
cópias das estruturas de comunicação dessas organizações.”
Lei de Conway.
Pesquisadores do MIT e Harvard Business School
“Equipes distribuídas tendem a desenvolver software mais modular”
42. “Uma equipe” vs “Várias” (influência na arquitetura)
Equipes multidisciplinares
53. Seria bom estar lá...
Um dos mini-cursos:
We’ll focus on the eight core principles
stability, reliability, performance,
scalability, fault-tolerance,
catastrophe-preparedness,
monitoring, and documentation.
Susan Fowler
Reliability engineer at Uber