Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura de Software Aula 1 Prof. Daniel Silos – 1ª edição – 2020 E-mail: daniel.moraes@ibmr.br Prof. Daniel Silos – daniel.moraes@ibmr.br 1 mailto:Daniel.Moraes@ibmr.br Prof. Daniel Silos – daniel.moraes@ibmr.br 2 Sejam bem-vindos! Análise e Desenvolvimento de Sistemas Arquitetura de Software 2020.2 Prof. Daniel Silos – daniel.moraes@ibmr.br 3 Prof. Daniel Rodrigues de Silos Moraes daniel.moraes@ibmr.br Mestre em Ciências pela COPPE/UFRJ na área de Sistemas Computacionais Prof. Daniel Silos – daniel.moraes@ibmr.br 4 N o s s o CRONOGRAMA Semanas Segundas Seg Ter Qua Qui Sex Sáb 1 1 24/ago 25/ago 26/ago 27/ago 28/ago 29/ago 2 2,3 31/ago 01/set 02/set 03/set 04/set 05/set 3 07/set 08/set 09/set 10/set 11/set 12/set 4 3,4 14/set 15/set 16/set 17/set 18/set 19/set Legenda Significado 5 5,6 21/set 22/set 23/set 24/set 25/set 26/set Feriado 6 6,7 28/set 29/set 30/set 01/out 02/out 03/out A1 7 8,9 05/out 06/out 07/out 08/out 09/out 10/out A2 8 12/out 13/out 14/out 15/out 16/out 17/out Vista A2 9 19/out 20/out 21/out 22/out 23/out 24/out Substitutiva 10 10, 11 26/out 27/out 28/out 29/out 30/out 31/out 11 02/nov 03/nov 04/nov 05/nov 06/nov 07/nov 12 11, 12 09/nov 10/nov 11/nov 12/nov 13/nov 14/nov 13 12, 13 16/nov 17/nov 18/nov 19/nov 20/nov 21/nov 14 14 e 15 23/nov 24/nov 25/nov 26/nov 27/nov 28/nov 15 15, 16 30/nov 01/dez 02/dez 03/dez 04/dez 05/dez 16 07/dez 08/dez 09/dez 10/dez 11/dez 12/dez 17 14/dez 15/dez 16/dez 17/dez 18/dez 19/dez 18 21/dez 22/dez 23/dez Sistema de Avaliações D I S C I P L I N A S TEÓRICAS e TEÓRICO-PRÁTICAS N1 PESO 4 N2 PESO 6 A2 – AVALIAÇÃO(ÕES) A SER(EM) DEFINIDA(S) DE ACORDO COM OS OBJETIVOS DE APRENDIZAGEM (9,0 pontos) + APS (1,0 ponto) Ou SUB – AVALIAÇÃO SUBSTITUTIVA (APENAS se o aluno não realizar a A2 ou não alcançar a média 6,0 na disciplina. Substitui a nota da A2 quando a nota da SUB for superior) 0 10 CÁLCULO MÉDIA FINAL (MF) (N1*0,4) + (N2*0,6) M O D A L I D A D E PRESENCIAL A1 – AVALIAÇÃO(ÕES) A SER(EM) DEFINIDA(S) DE ACORDO COM OS OBJETIVOS DE APRENDIZAGEM 0 10 APS ANEXO APS As atividades práticas supervisionadas (APS) compreendem atividades individuais ou em grupo que prevêem a aplicação prática do que foi lecionado nas disciplinas. Sa ̃o integralizadas a ̀ carga horária da disciplina conforme dispositivo legal definido pelo Ministério da Educaça ̃o (MEC). Atividade Prática Supervisionada tem como objetivos proporcionar a você estudante: • A aplicação dos conhecimentos adquiridos na disciplina; • O desenvolvimento da sua autonomia no cumprimento das tarefas, mediante supervisão; • A corresponsabilidade pelo seu aprendizado; • A contextualização das especificações da área de conhecimento e/ou mercado de trabalho. APS AUTOAVALIAÇÃO As estratégias metacognitivas integram o desenvolvimento de competências que implicam não somente a assimilação de novos conteúdos, mas principalmente a tomada de consciência, da autoanálise e do autojulgamento dos processos cognitivos, por meio dos quais o estudante pode decidir como melhor realizar atividades ou alicerçar novas aprendizagens. Ao assumir o controle e acompanhamento de sua própria aprendizagem, você desenvolverá sua autonomia pedagógica, autoavaliando o processo de aprendizagem na construção da Atividade Prática Supervisionada dessa disciplina. Datas IMPORTANTES A1 19/10 A2 07/12 Nossa Biblioteca... Nossas BIBLIOTECAS Acervo eletrônico: ibmr.br/biblioteca Acesso com login e senha http://bib.unifacs.br/ http://bib.unifacs.br/ Nossas Aulas Remotas... Aulas REMOTAS Fique atento ao Mural de Avisos. Lá você encontrará todas as principais informações da sua disciplina. Ingresse pontualmente na aula. Atrasos atrapalham a dinâmica da aula e pode comprometer o andamento da disciplina. As avaliações podem ser acessadas em Atividades. Os materiais da disciplina poderão ser acessados em Material de Aulas. Aulas REMOTAS Principais informações da disciplina Material de estudo postado pelo seu professor Aqui você acessa suas avaliações para realizá-las Aqui você verifica suas notas e provas já realizadas Acesso às aulas remotamente Acesso às aulas gravadas pelo seu professor e ao link de registro de presença (frequência mínima para aprovação: 75%) Finalmente, vamos começar... O que é Arquitetura? Dicionário Aurélio Digital (Android ou IOS) “Arte de criar espaços organizados e animados, por meio do agenciamento urbano e da edificação, para abrigar os diferentes tipos de atividades humanas.” “Disposições das partes ou elementos de um edifício ou espaço urbano.” Prof. Daniel Silos – daniel.moraes@ibmr.br 16 Dicionário Aurélio Digital (Android ou IOS) “A estrutura e organização lógica de funcionamento de um sistema computacional” Prof. Daniel Silos – daniel.moraes@ibmr.br 17 O que é Arquitetura? O que é Arquitetura? Antes de continuar é importante ressaltar (relembrar): Temos dois significados para a palavra projeto na língua portuguesa Em inglês, temos duas: PROJECT e DESIGN PROJECT -> projeto como um todo Projeto vs. Processo DESIGN -> projeto, desenho. System design, por exemplo, é um esquema que na faz parte da modelagem de sistema após a etapa de análise deste. Prof. Daniel Silos – daniel.moraes@ibmr.br 18 Ementa da disciplina Define e documenta arquitetura de software, seus componentes, frameworks e estilos arquiteturais. Estuda as arquiteturas específicas de domínio, as linguagens de descrição de arquitetura, ferramentas e o desenvolvimento baseado em componentes. Prof. Daniel Silos – daniel.moraes@ibmr.br 19 OBJETIVOS DE APRENDIZAGEM 1. Analisar os tipos de arquitetura de software. 2. Criar os componentes de uma arquitetura. 3. Analisar e escolher o melhor tipo de arquitetura a partir de uma necessidade Prof. Daniel Silos – daniel.moraes@ibmr.br 20 4. Avaliar os principais frameworks e estilos arquiteturais. 5. Analisar as arquiteturas específicas de domínio e aplicar linguagens de descrição de arquitetura. 6. Aplicar ferramentas para o desenvolvimento baseado em componentes. Prof. Daniel Silos – daniel.moraes@ibmr.br 21 OBJETIVOS DE APRENDIZAGEM Introdução à Arquitetura de Software 1 – Conceituar Arquitetura. 2 - Apontar a importância da arquitetura de software. 3 - Analisar descrições de arquitetura. 4 - Aplicar decisões de arquitetura. Prof. Daniel Silos – daniel.moraes@ibmr.br 22 Voltando ao “o que é Arquitetura?” Arquitetura é construção, porém construção concebida com o propósito primordial de ordenar e organizar o espaço para determinada finalidade e visando a determinada intenção. Prof. Daniel Silos – daniel.moraes@ibmr.br 23 Voltando ao “o que é Arquitetura?” Arquitetura é construção, porém construção concebida com o propósito primordial de ordenar e organizar o espaço para determinada finalidade e visando a determinada intenção. Prof. Daniel Silos – daniel.moraes@ibmr.br 24 E quando a arquitetura falha? Prof. Daniel Silos – daniel.moraes@ibmr.br 25 Falha no Projeto E quando a arquitetura falha? Prof. Daniel Silos – daniel.moraes@ibmr.br 26 Falha na Construção E quando não há um arquiteto? Prof. Daniel Silos – daniel.moraes@ibmr.br 27 Mas quando o arquiteto é bom... Prof. Daniel Silos – daniel.moraes@ibmr.br 28 O que é Arquitetura de Software? Pode ser definida como a forma de divisão de um sistema de software em componentes, na organização e estrutura desses componentes e no modo como estes componentes se comunicam entre si e como o software se comunica com seu ambiente externo. Ambiente externo pode ter: usuários que vão inserir dados e/ou receber informações do software outros softwares que necessitam enviar dados ou receber informações deste software Prof. Daniel Silos – daniel.moraes@ibmr.br 29 O que é Arquitetura de Software? É também algo mais. Múltiplas e muitas (milhares) de decisões, grandes e pequenas. Algumas decisões são tomadasbem no início do projeto (project) e podem gerar impacto profundo sobre ações subsequentes. Outras decisões são adiadas ao máximo, eliminando, portanto, restrições que levariam a uma implementação inadequada do estilo arquitetônico. Prof. Daniel Silos – daniel.moraes@ibmr.br 30 Objetivos Gerais da arquitetura de software “A arquitetura não é o software operacional. É uma representação que nos permite (1) analisar a efetividade do projeto (project) no atendimento dos requisitos declarados, (2) considerar alternativas de arquitetura em um estágio em que fazer mudanças de projeto ainda é relativamente fácil e (3) reduzir os riscos associados à construção do software.” (PRESSMAN) Prof. Daniel Silos – daniel.moraes@ibmr.br 31 Projeto de Arquitetura “Projeto é uma atividade preocupada com a tomada de decisões importantes, frequentemente de natureza estrutural. Ele divide com a programação a responsabilidade de abstrair a representação de informações e de sequências de processamento, porém o nível de detalhe é bastante diverso nos extremos. Um projeto constrói representações de programas coerentes e bem planejadas, que se concentram nas inter-relações das partes em um alto nível e nas operações lógicas envolvidas em níveis mais baixos.” Freeman Prof. Daniel Silos – daniel.moraes@ibmr.br 32 Projeto de Arquitetura Alguns especialistas fazem distinção entre as ações associadas à obtenção de uma arquitetura de software (“projeto de arquitetura”) e as ações aplicadas para obter o projeto de software. Para alguns deles, projeto (design) é uma instância de uma arquitetura, da mesma forma que um objeto é uma instância de uma classe. Ex: Podemos escolher uma arquitetura cliente/servidor e criar diversos possíveis projetos baseados nela. Em um podemos desenvolver na plataforma Java (Java EE), em outro Microsoft (.NET framework). Prof. Daniel Silos – daniel.moraes@ibmr.br 33 Projeto de Arquitetura Pressman concorda que um projeto de software seja uma instância de uma arquitetura de software específica, todavia os elementos e estruturas definidos como parte de uma arquitetura são a raiz de todo o projeto (design). Um projeto de arquitetura se inicia com uma consideração de arquitetura, na fase inicial de qualquer projeto (project) de software. Prof. Daniel Silos – daniel.moraes@ibmr.br 34 Quem é responsável pelo trabalho? O “arquiteto de sistemas” escolhe um estilo de arquitetura apropriado com base nos requisitos obtidos durante a análise de requisitos. (PRESSMAN) Mas o arquiteto é um cargo ou um papel? Qual a diferença entre um programador, um desenvolvedor, um engenheiro de software e um arquiteto de software? Prof. Daniel Silos – daniel.moraes@ibmr.br 35 Por que o trabalho é importante? Sem o projeto seria como construir uma casa sem uma planta. Não há como desenhar uma planta iniciando-se da distribuição de encanamentos ou da fiação elétrica. A partir de um contexto geral (a casa) parte-se para os detalhes. O projeto de arquitetura é justamente isso, fornece uma visão geral para garantir a compreensão do que se deseja construir. Prof. Daniel Silos – daniel.moraes@ibmr.br 36 Por que o trabalho é importante? Prof. Daniel Silos – daniel.moraes@ibmr.br 37 Por que o trabalho é importante? Prof. Daniel Silos – daniel.moraes@ibmr.br 38 Quais as etapas? 1. Projeto de dados 2. Uma ou mais representações da estrutura de arquitetura do sistema 3. Análise de estilos ou padrões de arquitetura alternativos tomando-se a decisão de qual estrutura é mais adequada aos requisitos do cliente, focando-se na qualidade. 4. Após a escolha da alternativa, a arquitetura é elaborada – método de projeto de arquitetura. Prof. Daniel Silos – daniel.moraes@ibmr.br 39 O que se constrói? Um modelo que engloba a arquitetura de dados e a estrutura dos programas. Descrição das propriedades e relações (interações) entre os componentes. Prof. Daniel Silos – daniel.moraes@ibmr.br 40 Como garantir o trabalho correto? A cada estágio são revisados os produtos resultantes do projeto de software Clareza Correção Completude Consistência com os requisitos Consistência entre si Prof. Daniel Silos – daniel.moraes@ibmr.br 41 Desde quando existe preocupação com arquitetura de software? Desde que o primeiro programa foi dividido em módulos. Programadores passaram a ser responsáveis pelas interações entre os módulos e as propriedades globais do conjunto. Arquiteturas implícitas. Os bons desenvolvedores adotavam um ou mais padrões de arquitetura para a organização de sistemas, mas os usavam informalmente. O conhecimento era tácito e não explícito. Prof. Daniel Silos – daniel.moraes@ibmr.br 42 Desde quando existe preocupação com arquitetura de software? Devido a crescente complexidade dos softwares, arquitetura de software eficiente e sua representação explícita tornaram-se temas dominantes em engenharia de software Prof. Daniel Silos – daniel.moraes@ibmr.br 43 Decisões aplicadas a arquitetura de software Decisões levam em consideração diversos fatores envolvidos com qualidade, escolha de linguagem / framework, paradigma, reutilização, etc. Segurança Desempenho Usabilidade Manutenibilidade Prof. Daniel Silos – daniel.moraes@ibmr.br 44 Exercícios 1. Na engenharia de software, qual a diferença entre um projeto (project)de software, um projeto de sistemas (design) e um projeto de arquitetura de um software (design). 2. Qual a etapa sucessora do projeto de sistema e do projeto de arquitetura? Prof. Daniel Silos – daniel.moraes@ibmr.br 45 Exercícios 3. Defina Arquitetura de Software com suas palavras. 4. Descreva sobre a importância desta atividade, com suas próprias palavras. Prof. Daniel Silos – daniel.moraes@ibmr.br 46 Exercícios 5. Quais fatores são levados em consideração na tomada de decisões em arquitetura de software? 6. Projeto de arquitetura de software é fortemente conectado a ideia de design, mas todo design tem a ver arquitetura de software? Prof. Daniel Silos – daniel.moraes@ibmr.br 47 Introdução à Arquitetura de Software 1 – Conceituar Arquitetura. 2 - Apontar a importância da arquitetura de software. 3 - Analisar descrições de arquitetura. 4 - Aplicar decisões de arquitetura. Prof. Daniel Silos – daniel.moraes@ibmr.br 48 Próxima aula Estudaremos na próxima aula: 2 - GÊNEROS E ESTILOS DE ARQUITETURA Gêneros e estilos de arquitetura Padrões de arquitetura PRESSMAN, R. Engenharia de Software. [Recurso eletrônico, Minha Biblioteca]. 8ª ed. BOOKMAN, 2016. Capítulo 13, item 13.2 a 13.4. SOMMERVILLE, I. Engenharia de Software. [Recurso eletrônico, Biblioteca Virtual Universitária 3.0]. 9ª ed. SARAIVA, 2011. Capítulo 6, item 6.2 a 6.4. Prof. Daniel Silos – daniel.moraes@ibmr.br 49 Próxima aula Estudaremos na próxima aula: 3 - DECISÕES SOBRE ARQUITETURA Como as decisões sobre a arquitetura afetam o desenvolvimento de um sistema Questões a serem consideradas para escolha da arquitetura PRESSMAN, R. Engenharia de Software. [Recurso eletrônico, Minha Biblioteca]. 8ª ed. BOOKMAN, 2016. Capítulo 13, item 13.5 e 13.11. SOMMERVILLE, I. Engenharia de Software. [Recurso eletrônico, Biblioteca Virtual Universitária 3.0]. 9ª ed. SARAIVA, 2011. Capítulo 6, item 6.1. Prof. Daniel Silos – daniel.moraes@ibmr.br 50 Referências Casa com escada multifuncional https://ciclovivo.com.br/arq-urb/arquitetura/arquiteto- sulcoreano-projeta-casa-com-escada-multifuncional/ Pressman,Roger. Engenharia de Software Cap. 13 – Sessão 13.1. Edição do Kindle. Prof. Daniel Silos – daniel.moraes@ibmr.br 51 https://ciclovivo.com.br/arq-urb/arquitetura/arquiteto-sulcoreano-projeta-casa-com-escada-multifuncional/ Arquitetura de Software�Aula 1 Número do slide 2 Número do slide 3 Número do slide 4 Número do slide 5 Número do slide 6 Número do slide 7 Número do slide 8Número do slide 9 Número do slide 10 Número do slide 11 Número do slide 12 Número do slide 13 Número do slide 14 Número do slide 15 O que é Arquitetura? O que é Arquitetura? O que é Arquitetura? Ementa da disciplina OBJETIVOS DE APRENDIZAGEM OBJETIVOS DE APRENDIZAGEM Introdução à Arquitetura de Software Voltando ao “o que é Arquitetura?” Voltando ao “o que é Arquitetura?” E quando a arquitetura falha? E quando a arquitetura falha? E quando não há um arquiteto? Mas quando o arquiteto é bom... O que é Arquitetura de Software? O que é Arquitetura de Software? Objetivos Gerais da arquitetura de software Projeto de Arquitetura Projeto de Arquitetura Projeto de Arquitetura Quem é responsável pelo trabalho? Por que o trabalho é importante? Por que o trabalho é importante? Por que o trabalho é importante? Quais as etapas? O que se constrói? Como garantir o trabalho correto? Desde quando existe preocupação com arquitetura de software? Desde quando existe preocupação com arquitetura de software? Decisões aplicadas a arquitetura de software Exercícios Exercícios Exercícios Introdução à Arquitetura de Software Próxima aula Próxima aula Referências
Compartilhar