A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Arquitetura de software Introdução 2012.1IFRN1. Objetivos Entender o que e porque utilizar arquitetura de software no desenvolvimento de sistemas Relatar.

Apresentações semelhantes


Apresentação em tema: "Arquitetura de software Introdução 2012.1IFRN1. Objetivos Entender o que e porque utilizar arquitetura de software no desenvolvimento de sistemas Relatar."— Transcrição da apresentação:

1 Arquitetura de software Introdução 2012.1IFRN1

2 Objetivos Entender o que e porque utilizar arquitetura de software no desenvolvimento de sistemas Relatar o histórico da arquitetura de software 2012.1IFRN2

3 Agenda O que é arquitetura de software Definições e termos da arquitetura de software Fases da arquitetura de software 2012.1IFRN3

4 O QUE É ARQUITETURA DE SOFTWARE? Introdução a arquuitetura de software 2012.1IFRN4

5 O que é engenharia de software? Analogia com a engenharia civil – Oxford Dicionary http://oxforddictionaries.com/ http://oxforddictionaries.com/ Engineering – Noun : the branch of science and technology concerned with the design, building, and use of engines, machines, and structures. 2012.1IFRN5

6 Exemplos de projetos (1) 2012.1IFRN6

7 Exemplos de projetos (1) 2012.1IFRN7 Pensando em escala industrial

8 Exemplos de projetos (2) 2012.1IFRN8 Planta baixa

9 Exemplos de projetos (2) 2012.1IFRN9 Planta baixa Projeto elétrico … (outros projetos)

10 Exemplos de projetos (3) 2012.1IFRN10

11 Exemplos de projetos (3) 2012.1IFRN11 O que é necessário em termos de projeto?

12 Exemplos de projetos (4) 2012.1IFRN12

13 Exemplos de projetos (4) 2012.1IFRN13 O que é necessário em termos de projeto?

14 Definição de complexidade Oxford Dictionary – Complex Adjective : consisting of many different and connected parts. – Complexity Noun : the state or quality of being intricate or complicated. 2012.1IFRN14

15 Analogia Engenharia civilEngenharia de software Casa de cachorroSmall systems and softwares …… Casa de humanosMedium systems and softwares …… PrédiosSistemas corporativos …… CidadesSistemas de sistemas (Ultra large systems) 2012.1IFRN15 Escala de complexidade

16 O que é arquitetura de software? Analogia da arquitetura na engenharia civil – Oxford Dicionary http://oxforddictionaries.com/ http://oxforddictionaries.com/ Engineering – Noun : the branch of science and technology concerned with the design, building, and use of engines, machines, and structures. Architecture – Noun 1.the art or practice of designing and constructing buildings. 2.the complex or carefully designed structure of something. 2012.1IFRN16

17 O que é arquitetura de software? Analogia da arquitetura na engenharia civil – Oxford Dicionary http://oxforddictionaries.com/ http://oxforddictionaries.com/ Engineering – Noun : the branch of science and technology concerned with the design, building, and use of engines, machines, and structures. Architecture – Noun 1.the art or practice of designing and constructing buildings. 2.the complex or carefully designed structure of something. 2012.1IFRN17 Sistemas

18 Limitações da analogia Sabemos muito sobre os edifícios, contudo sabemos pouco sobre o software A natureza do software é diferente de edifícios Software é muito mais maleável do que os materiais físicos As duas "indústrias de construção" são muito diferentes Implantação, como existe em software, não existe para edificações Software é uma máquina, um edifício não é 2012.1IFRN18

19 DEFINIÇÕES E TERMOS DA ARQUITETURA DE SOFTWARE Introdução a arquitetura de software 2012.1IFRN19

20 Definições de arquitetura de software Existem numerosas definições – IEEE/ISO/IEC Institute of Electrical and Electronics Engineers International Organization for Standardization International Electrotechnical Commission – OMG/UML Object Management Group Unified Modeling Language – SEI Software Engineering Institute – Livros 2012.1IFRN20

21 Definição do IEEE e ISO International Standard on Systems and software engineering – Architecture description defines different terms related to software architecture in a language and technology-independent way. – [IEEEStd1471-2000 ISO/IEC42010:2007/2009] 2012.1IFRN21

22 Definição da OMG UML – Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems. 2012.1IFRN22

23 Definição do SEI Principal – The set of structures needed to reason about the system, which comprises software elements, relations among them, and properties of both. Existem outras definições – http://www.sei.cmu.edu/architecture/start/glossary/ http://www.sei.cmu.edu/architecture/start/glossary/ 2012.1IFRN23

24 Livros e artigos Dewayne E. Perry and Alexander L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 17:4, October 1992 – "... software architecture is a set of architectural (or, if you will, design) elements that have a particular form.” – Elements: processing elements; data elements; and connecting elements. Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995 Bass, Clements, and Kazman. Software Architecture in Practice, Addison- Wesley, 1997 Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons Ltd, 2009 2012.1IFRN24

25 Livros e artigos Dewayne E. Perry and Alexander L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 17:4, October 1992 Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995 – “Software architecture is the structure of the components of a program/system, their interrelationships, and principles and guidelines governing their design and evolution over time." Bass, Clements, and Kazman. Software Architecture in Practice, Addison- Wesley, 1997 Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons Ltd, 2009 2012.1IFRN25

26 Livros e artigos Dewayne E. Perry and Alexander L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 17:4, October 1992 Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995 Bass, Clements, and Kazman. Software Architecture in Practice, Addison-Wesley, 1997 – “The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.” Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons Ltd, 2009 2012.1IFRN26

27 Livros e artigos Dewayne E. Perry and Alexander L. Wolf. Foundations for the Study of Software Architecture. ACM SIGSOFT Software Engineering Notes, 17:4, October 1992 Garlan and Perry, guest editorial to the IEEE Transactions on Software Engineering, April 1995 Bass, Clements, and Kazman. Software Architecture in Practice, Addison-Wesley, 1997 Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. Software Architecture: Foundations, Theory, and Practice, John Wiley & Sons Ltd, 2009 – “A software system’s architecture is the set of principal design decisions about the system.” – Design decisions about structure, behavior, interaction and non-functional properties. 2012.1IFRN27

28 Alguns termos (1) Architecture: fundamental conception of a system in its environment embodied in elements, their relationships to each other and to the environment, and principles guiding system design and evolution Architecture Description: collection of work products used to describe an architecture Architecture Element: construct in an architecture description 2012.1IFRN28 Referência: slides de aula de Flavio Oquendo

29 Alguns termos (2) Architecting: activities of conceiving, defining, describing, documenting, certifying proper implementation of, maintaining and improving an architecture throughout a system’s life cycle Architecture Decision: choice made from among possible options that addresses one or more architecture-related concerns Architecture Rationale: explanation or justification for an architecture decision 2012.1IFRN29 Referência: slides de aula de Flavio Oquendo

30 Alguns termos (3) Architecture View: work product representing a system from the perspective of architecture- related concerns Architecture Model: work product from which architecture views are composed Architecture Viewpoint: work product establishing the conventions for the construction, interpretation and use of architecture views and associated architecture models – it may be encoded as a language 2012.1IFRN30 Referência: slides de aula de Flavio Oquendo

31 Termos e definições 2012.1IFRN31 Objetivos Sistema Stakeholder Ambiente Arquitetura Instalado em Influencia Cumpri com Tem Possui Referência: slides de aula de Flavio Oquendo

32 HISTÓRICO Introdução a arquitetura de software 2012.1IFRN32

33 Pesquisa básica: 1985-1994 Desenvolvedores iniciavam a exploração das ideias de especialização do software para problemas específicos – Alguns trabalhos focaram em estruturas de software para produtos particulares com: aviação, osciloscópios e controle de misseis. Paralelamente, iniciaram a catalogação de soluções estruturais comuns a diversas áreas e a ideia de arquitetura tomou forma – Estruturas como pipe-filter, repositórios, invocação implícita, processos cooperativos ajudaram a identificar arquiteturas para classes de problemas específicos e desta forma permitir uma melhor formalização da solução. 2012.1IFRN33

34 Formalização do conceito: 1992-1996 Modelos básicos foram elaborados e explorados largamente através da descrição de linguagens de arquiteturas (ADL), recentemente formalizadas e classificadas – Aesop, C2, Darwin, Meta-H, Rapide, Unicon, Wright A ideia principal estava centrada nas estruturas do software que eram comumente encontradas em outros sistemas Os estudos nesta época ajudaram a organizar os princípios das boas práticas 2012.1IFRN34

35 Desenvolvimento e extensão: 1995- 200 Durante esta fase, ocorre a troca do foco para a unificação e refinamento dos conceitos iniciais – O refinamento das taxonomias dos elementos arquiteturais e linguagens também ocorreu Ocorre uma maturidade dos institutos de pesquisa, pesquisadores e desenvolvedores – Em 1995 o IEEE [Transactions on Software Engineering] lança um número especial no tema software architecture 2012.1IFRN35

36 Aumento do uso interno do conceito e exploração: 1996-2003 O conceito estilos arquiteturais passou a ser conhecido como padrões arquiteturais Avaliação e análise de arquiteturas são enfatizados como tópicos de pesquisa Trabalha-se na ideia de construção de ferramentas case para automatizar o processo de construção de arquiteturas 2012.1IFRN36

37 Aumento do uso externo do conceito e exploração: 1998-atualmente Uso da UML como um padrão para a descrição de projetos de software, junto com o pacote da Rational Inc (atualmente IBM) Ocorre a maturidade do conceito e com isso a sua externalização (indústria, governo, etc) 2012.1IFRN37

38 Popularização: 2000-atualmente A popularização foi caracterizada pela produção qualificada, suporte, comercialização e marketing de produtos para a comunidade interna e externa Padrões arquiteturais foram fortemente utilizados com a explosão da WWW, sistemas web e o e-commerce – Tecnologias como multi-camadas (N-tier), cliente- servidor, agent-based architectures, e arquiteturas orientada a serviços (SOA Service-Oriented Architectures) ajudaram na fixação e uso do conceito 2012.1IFRN38

39 CICLO DA ARQUITETURA DE SOFTWARE Introdução a arquitetura de software 2012.1IFRN39

40 Ciclo de vida Assim como todo projeto – Entender os requisitos – Planejar a arquitetura – Avaliar e testar a arquitetura – Refinar e evoluir a arquitetura Pode ser em uma sequência top-down, iterativo/incremental… 2012.1IFRN40

41 LIÇÕES APRENDIDAS Introdução a arquitetura de software 2012.1IFRN41

42 Arquitetura de software Arquitetura de software é um conjunto das principais decisões de projeto sobre um sistema de software. Estas decisões são definidas em termos de seus elementos e seus relacionamentos – A definição de elementos depende do paradigma utilizado 2012.1IFRN42

43 Complementando Três fundamentais entendimentos sobre arquitetura de software. – Cada sistema tem uma arquitetura, esteja ela formalmente definida ou não – Cada aplicação tem pelo menos um arquiteto, ou uma pessoa que define a arquitetura – Arquitetura não é uma fase de desenvolvimento 2012.1IFRN43

44 Porque arquitetura de software Especifica as principais decisões de projeto – Antecipa diversos aspectos e riscos no desenvolvimento – Registro de importantes decisões e conhecimentos de projeto – Facilita o encapsulamento e a modularização, consequentemente o reuso Importante veículo de comunicação – Intra e extra equipe de desenvolvimento 2012.1IFRN44


Carregar ppt "Arquitetura de software Introdução 2012.1IFRN1. Objetivos Entender o que e porque utilizar arquitetura de software no desenvolvimento de sistemas Relatar."

Apresentações semelhantes


Anúncios Google