MODELING SYSTEMS ARCHITECTURE USING ARCHITECTURE DESCRIPTION LANGUAGE IN SOA CONTEXT

Tamanho: px
Começar a partir da página:

Download "MODELING SYSTEMS ARCHITECTURE USING ARCHITECTURE DESCRIPTION LANGUAGE IN SOA CONTEXT"

Transcrição

1 5 th International Conference on Information Systems and Technology Management 5º Congresso Internacional de Gestão da Tecnologia e Sistema de Informação De 04 a 06 de Junho de São Paulo - Brasil PS-1092 MODELING SYSTEMS ARCHITECTURE USING ARCHITECTURE DESCRIPTION LANGUAGE IN SOA CONTEXT Luiz Paulo Rocha Yanai (Universidade de São Paulo, São Paulo, Brasil) luiz.yanai@poli.usp.br Selma Shin Shimizu Melnikoff (Universidade de São Paulo, São Paulo, Brasil) selma.melnikoff@poli.usp.br Jorge Luis Risco Becerra (Universidade de São Paulo, São Paulo, Brasil) jorge.becerra@poli.usp.br The Software Architecture (SA) is an important research field that has been evolving a lot in past decades due to the possibility of ensuring the non-functional requirements by defining the SA in the system development process. SA is tightly related with project organization, reusability, quality attributes and development patterns. A good architecture can leverage the system development and result in software compliant with stakeholder requirements. Service Oriented Architecture (SOA) is a new architectural style that came to solve a lot of problems with distributed architectures, dynamic systems and other issues found in today industry. In this paper, an approach for describing a Service Oriented Architecture is proposed by comparing with several other initiatives. Through a research about SOA concepts and using Medvidovic s classification framework, the basis for a SOA Architecture Description Language is presented. Keywords: Software Engineering, Software Architecture, Architecture Description Language, Service Oriented Architecture. MODELAGEM DE ARQUITETURA DE SISTEMAS USANDO ADLS NO CONTEXTO DE SOA A Arquitetura de Software é um campo de pesquisa que vem evoluindo muito nas últimas décadas devido à possibilidade de se garantir os requisitos não-funcionais de um sistema através da definição da Arquitetura de Software no processo de desenvolvimento dos sistemas. A Arquitetura de Software está intimamente ligada com reusabilidade, atributos de qualidade e padrões de desenvolvimento. Uma boa Arquitetura pode alavancar o desenvolvimento de software e resultar em software que satisfaça os requisitos das partes interessadas. A Arquitetura Orientada a Serviços (SOA Service Oriented Architecture) é um novo estilo arquitetural que surgiu para resolver os problemas existentes em sistemas distribuídos, sistemas dinâmicos e sistemas em geral. Neste artigo, levantam-se os aspectos importantes para a descrição de SOA através da comparação com outras iniciativas de definição de Linguagens de Descrição de Arquitetura e utilizando o arcabouço de classificação de Medvidovic e Taylor. Palavras-Chave: Engenharia de Software, Arquitetura de Software, Linguagem de Descrição de Arquitetura, Arquitetura Orientada a Serviços. 1355

2 1. Introdução Atualmente, o desenvolvimento de software baseado em Arquitetura tem sido utilizado em diversos projetos, a fim de assegurar qualidade, ter controle e rastreabilidade sobre os requisitos funcionais e não-funcionais e também sobre as expectativas das partes interessadas. Como importante passo no processo de desenvolvimento, uma Linguagem de Descrição de Arquitetura (Architecture Description Language - ADL) tem o papel de oferecer suporte ao armazenamento das decisões arquiteturais, estilos e requisitos do sistema em uma Arquitetura. Na figura 1, é apresentado o modelo de picos gêmeos de Ward e Mellor (1991) que mostra o desenvolvimento progressivo e concorrente dos requisitos e das especificações arquiteturais resultando nos produtos caso de uso e descrição da Arquitetura utilizando uma ADL. Figura 1 - Modelo de picos gêmeos adaptado de Ward e Mellor (1991). Nos últimos anos, muitas ADLs, ferramentas e métodos de suporte foram propostos por pesquisadores da área de desenvolvimento de Arquitetura de Software. Algumas iniciativas usam a Unified Modeling Language (UML) para descrever graficamente a Arquitetura, embora haja problemas de inconsistências, informalidade e modelos incompletos inerentes à estrutura da linguagem como discutido por Lange, Chaudron e Muskens (2006). Outras iniciativas usam ADLs existentes aplicadas a domínios de aplicação específicos (Medvidovic e Taylor, 2000; Vestal, 1993). Entretanto, em todos os casos existe um grande desafio em se identificar o que uma ADL deve representar e também como aplicar estas ADLs comercialmente no processo de desenvolvimento de Arquitetura para software (Open Group, 1999). O objetivo deste trabalho é levantar os pontos importantes e requisitos necessários para definir uma linguagem de descrição de Arquitetura Orientada a Serviços (Service Oriented Architecture - SOA) tomando como base a pesquisa atual referente a linguagens de descrição de Arquitetura existentes e fazendo uma comparação com as ADLs já propostas para o contexto de SOA. Uma preocupação deste estudo é desenvolver uma ADL mais voltada para a utilização nas empresas como auxílio à representação da Arquitetura, suporte a análise de completude, consistência, ambigüidade e desempenho, e geração automática de código. 1356

3 Na Seção 2, são apresentadas as ADLs mais importantes encontradas na literatura de Arquitetura de Software, que servem como base para o levantamento das características para descrição de uma Arquitetura. A Seção 3 discute a definição de SOA a fim de reunir a informação necessária para descrever tal estilo arquitetural. Já a Seção 4 analisa as tentativas de descrição de SOA, confrontando com as características das ADL existentes e usando o arcabouço de classificação proposto por Medvidovic (Medvidovic e Taylor, 2000). Finalmente, os resultados da análise são apresentados na Seção Linguagens de Descrição de Arquitetura Notações formais de modelagem e ferramentas de desenvolvimento para especificação arquitetural são essenciais para o suporte ao desenvolvimento baseado em Arquitetura (Medvidovic e Taylor, 2000). Muitas ADLs foram propostas para apoiar esta necessidade. Nesta seção, serão analisadas as principais ADLs criadas, de forma a aprofundar o conhecimento neste conceito. Mas para iniciar a análise das ADLs existentes, deve-se primeiro definir o conceito sobre a Arquitetura de Software que é o objeto da representação. Segundo Shaw e Garlan (1996), A Arquitetura de software é um nível de projeto que envolve a descrição de elementos, através dos quais os sistemas são construídos, interações entre estes elementos, padrões que guiam sua composição e restrições sobre estes padrões. Bass (1998) define Arquitetura de Software de um programa ou sistema computacional como a estrutura ou estruturas do sistema que compreende componentes de software, as propriedades externamente visíveis destes componentes e os relacionamentos entre eles. Além dos conceitos de componentes, interface e relacionamentos que estão presentes nas duas definições apresentadas anteriormente, existe a preocupação de se representar na Arquitetura de Software os requisitos não-funcionais dos sistemas e atributos de qualidade. O desenvolvimento de ADLs deve se voltar principalmente para a representação destes conceitos básicos listados para qualquer Arquitetura. De acordo com Vestal (1993), Uma ADL para aplicações de software foca na estrutura de alto nível de uma aplicação em geral, ao invés de focar nos detalhes de implementação de qualquer módulo específico. Aprofundando um pouco esta definição, ADL pode ser definida como uma linguagem usada para descrever software em alto nível de abstração utilizando componentes, interfaces e relacionamentos que pode ser decomposto em diversos pontos de vistas atendendo a diferentes preocupações e requisitos. E, segundo o consórcio Open Group (2008), existem quatro pontos de vistas de Arquitetura comumente aceitos como pertencentes a uma Arquitetura corporativa: Arquitetura de Negócios ou Processos: define a estratégia de negócios, governança, organização e processos de negócios chave. Arquitetura de Dados: descreve a estrutura de dados física e lógica de uma organização e os recursos de gerenciamento de dados. Arquitetura de Aplicações: Fornece um blueprint para as aplicações serem implantadas, suas interações e seu relacionamento com os principais processos de negócio da organização. 1357

4 Arquitetura Tecnológica: descreve as funcionalidades de software e hardware necessárias para fornecer suporte à implantação de negócios, dados e serviços de aplicação. Ela inclui infra-estrutura de TI, middleware, redes, comunicações, processamento, padrões, etc. Considerando esta conceituação de Arquitetura de Software e ADL, sugere-se um estudo mais aprofundado das ADLs existentes que foram criadas para diferentes propósitos e domínios de aplicação de forma a reunir os componentes comuns em todas as descrições e formar uma base para o desenvolvimento de uma nova ADL para SOA. As ADLs mais comumente encontradas na literatura são (Cook, 1999; Vestal, 1993): Aesop É um ADL de propósito geral que tem ênfase em estilos arquiteturais. Foi desenvolvida por David Garlan na Carnegie Mellon University. Ela tem ênfase em estilos que utilizam funcionalidades hierárquicas sofisticadas centradas em subtipos e herança. É muito similar as ADLs ACME e Wright. C2 É um estilo baseado em componente e mensagens projetado para fornecer suporte a necessidades particulares de aplicações que tem interface gráfica. Tem potencial para ser utilizado com outros estilos, principalmente em sistemas distribuídos e em ambientes heterogêneos. O estilo C2 pode ser resumido informalmente como uma rede de componentes concorrentes unidos por conectores. A figura 2 mostra um exemplo de Arquitetura no estilo C2.. Figura 2: Uma Arquitetura exemplo de C2. [Medvidovic,1996] MetaH É uma ADL voltada para os requisitos de sistemas de controle de vôos e aviação, incluindo segurança, tempo real, tolerância a falhas e multiprocessamento. Ela contém elementos de linguagem para suporte a componentes de software e hardware. Cada componente tem uma lista de atributos, uma interface e zero ou mais implementações. Por fim, as conexões ligam os componentes para formar uma Arquitetura. Existem ferramentas para compilar as especificações do MetaH para código fonte, diretivas de compilação e ligação, e também ferramentas para compilar o código para o sistema de hardware de destino (McDuffie, 2001). 1358

5 Rapide é uma ADL orientada a objeto de propósito geral projetada com ênfase em simulação. Ela descreve e simula o comportamento de arquiteturas de sistemas de objetos distribuídos. Nela são definidos componentes que executam independentemente e que observam e geram eventos. Modela comportamentos semelhantes à máquina de estados. Os principais elementos arquiteturais do Rapide são os componentes, as conexões, as interfaces e as restrições. Ela possui um extenso ferramental que inclui ferramentas de análise para confrontar simulações com padrões de comportamentos não permitidos, análise temporal e causalidade e ferramentas para geração de executáveis a partir das especificações. A figura 3 mostra um exemplo simples de uma especificação em Rapide. Figura 3: Um exemplo simples de especificação utilizando a ADL Rapide. (Cook, 1999) SADL refinamento formal de Arquitetura através de níveis de detalhamento. UniCon é uma ADL de propósito geral projetada com ênfase em geração de conectores. Ela foi desenvolvida por Mary Shaw da Carnegie Mellon University com foco em conectores como objetos de primeira classe. Como linguagem, ela foca no paradigma componente/conector/sistema, mas tem ênfase em estilos arquiteturais. Assim como Rapide e MetaH, existe a possibilidade de geração de código a partir da especificação. Weaves arquiteturas de fluxo de dados, caracterizadas por alto volume de dados e requisitos de tempo real no seu processamento. Wright é uma ADL de propósito geral projetada por David Garlan da Carnegie Mellon University, com ênfase em análise de protocolos de comunicação. Como linguagem, ela se baseia no paradigma componente/conector/sistema e tem sintática similar as ADLs Aesop e ACME. Para especificar o comportamento de componentes, conectores e sistemas, Wright usa uma variação da linguagem de descrição de padrões de interação em sistemas concorrentes chamado CSP Communicating Sequential Processes. Um exemplo simples de especificação Wright é mostrado na figura

6 Figura 4: Exemplo simplificado de uma especificação utilizando a ADL Wright. [Cook, 1999] ACME A ACME pode ser vista como um bom ponto de partida para o estudo das ADLs e para o desenvolvimento de novas já que ela foi desenvolvida como uma linguagem de intercâmbio entre ADLs. Contudo, ela não fornece adequadamente a resposta ao problema da definição de uma ADL genérica. A ACME representa apenas o denominador comum das ADLs existentes. Ela é baseada na premissa de que existe suficiente semelhança nos requisitos e capacidades das ADLs de forma a se poder compartilhar informações independente de ADL. A ACME endereça o problema de representação de Arquitetura utilizando o conceito de templates. Templates definem estruturas semânticas que podem ser expandidas para produzir novas declarações. Os templates são agrupados em estilos arquiteturais. ACME fornece uma base extremamente simples para a representação de Arquitetura. As características chave do ACME são [Garlan, Monroe, Wile, 1997]: 1) uma ontologia arquitetural com sete elementos de projeto: a) Componentes b) Conectores c) Sistemas d) Portas e) Responsabilidades f) Representações g) Mapas de representação 2) um mecanismo de anotação flexível - com o mecanismo de anotação é possível acomodar uma grande variedade de informação de tipagem (tipo de dados comunicados entre componentes, protocolos de interação) 3) um mecanismo de template para abstrair estilos e idiomas comuns 4) um arcabouço semântico aberto para descrições de Arquitetura Em geral, todas as ADLs tem seus pontos fortes e fracos dependendo do domínio onde elas são aplicadas. Não há um consenso na comunidade de pesquisa sobre quais aspectos e níveis de detalhes deveriam fazer parte de uma ADL (Medvidovic e Taylor, 2000). Algumas ADLs oferecem apenas uma forma de entendimento e comunicação sobre o 1360

7 sistema de software, enquanto outras oferecem uma sintaxe formal e ferramental de análise poderoso. Uma classificação das ADLs existentes é importante para unificar e verificar a abrangência dos conceitos encontrados nestas iniciativas. Logo, de forma a fazer a escolha da melhor ADL para solucionar um conjunto particular de problemas, (Medvidovic e Taylor, 2000) construiram um arcabouço de comparação e classificação de ADLs que é apresentado a seguir. 2.3 Definição de ADL usando o Arcabouço de Medvidovic A idéia do Arcabouço de Medvidovic é classificar e comparar diversas ADLs existentes ajudando a identificar as propriedades chave das ADLs. A comparação destaca áreas onde as ADLs existentes oferecem um bom suporte e outras em que são deficientes. As categorias identificadas (os blocos de construção de uma Arquitetura) no arcabouço são: a) Componentes unidades de computação ou armazenamento de dados Interface Tipos Semânticas Restrições Evolução Propriedades não-funcionais b) Conectores Interface Tipos Semânticas Restrições Evolução Propriedades não-funcionais c)configurações arquiteturais topologias, grafos conectados de componentes e conectores que descrevem uma Arquitetura. Habilidade de compreensão Habilidade de composição Rastreabilidade e refinamento Heterogeneidade Escalabilidade Evolução Dinamismo Restrições Propriedades não-funcionais Estas categorias servem como base para a definição de uma ADL e através delas pode ser feito um comparativo destas dimensões com uma determinada ADL de forma a analisar a abrangência e aplicação da ADL. Alguns conceitos encontrados nas linguagens apresentadas não aparecem nas categorias, mas podem ser representados de outras formas. Este arcabouço será utilizado para avaliar as iniciativas de criação de ADLs para o caso específico de Arquitetura Orientada a Serviço. Mas, primeiramente, é preciso definir a base conceitual da Arquitetura Orientada a Serviço de modo a oferecer uma melhor descrição da Arquitetura. 1361

8 3. Arquitetura Orientada a Serviços A Arquitetura Orientada a Serviços é um estilo arquitetônico que se preocupa com questões relacionadas à criação e uso de processos de negócios, encapsulados como serviços, através de um ciclo de vida, e também fornecendo a infra-estrutura de TI necessária para diferentes aplicações trocarem dados e participarem de processos de negócios em um ambiente distribuído e heterogêneo (Newcomer, Lomow, 2005). SOA representa um modelo em que as funcionalidades são divididas em unidades distintas (serviços) que podem estar distribuídas por toda uma rede. Estes mesmos serviços podem ser combinados e reutilizados de forma a prover necessidades de negócios das corporações (Erl, 2005). A comunicação entre os serviços é através da troca de mensagens de um serviço com outro, no esquema mostrado na figura 5. Este comportamento vem sendo considerado uma evolução da computação distribuída e da programação modular (Erl, 2005). Figura 5: Modelo geral contendo os componentes e papéis básicos de SOA Segundo Xiangyang apud (Dan et al, 2006), SOA foi projetada para criar um ambiente organizado dinamicamente composto de serviços distribuídos que podem ser compostos e interoperáveis. Estes serviços têm como características serem: autocontidos e modulares interoperáveis fracamente acoplados localização transparente módulos compostos. Para Jia et al. (2007), as principais diferenças apontadas entre os softwares tradicionais e aqueles construídos usando o SOA são: Componentes com grossa granularidade Fraco acoplamento Serviços autônomos Distribuídos Composição dinâmica 1362

9 Outras definições que podem ser encontradas de SOA são a do consórcio Open Group que realizou um projeto específico para a definição de SOA, a do OASIS que criou um modelo de referência muito conhecido para a Arquitetura Orientada a Serviço e a do SEI (Software Engineering Institute) que é uma entidade importante na pesquisa na área de Arquitetura de software. 3.1 Open Group: Segundo o projeto de definição de SOA do Open Group (Open Group, 2007), Service- Oriented Architecture (SOA) é um estilo arquitetural que suporta orientação a serviço. Orientação a serviço é um jeito de pensar em termos de serviços e desenvolvimento baseado em serviços e os resultados dos serviços. Um serviço: É uma representação lógica de uma atividade repetitiva de negócio que tem um resultado específico (p.ex., crédito de cheques, fornecer dados de clima, etc.. ). É autocontido Pode ser composto de outros serviços É uma caixa preta para os clientes dos serviços As características distintas do estilo arquitetural do SOA são: É baseado na definição de serviços A representação de Serviços utiliza descrições de negócios e implementa serviços usando orquestração. Estipula requisitos únicos na infra-estrutura. Requer governança da representação do serviço e implementação Requer Litmus Test", para determinar um bom serviço. 3.2 OASIS: No modelo de referência do OASIS (2007), SOA é descrito como um paradigma de organização e utilização de funcionalidades distribuídas que podem estar sobre o controle de diferentes domínios. SOA fornece um meio uniforme de oferecer, descobrir, interagir e usar funcionalidade para produzir os efeitos desejados de forma consistente com as précondições e expectativas. Os conceitos principais apresentados no modelo de referência estão apresentados na figura

10 Figura 6 - Principais conceitos descritos no modelo de referência SOA 3.3 Software Engineering Institute O SEI apresentou em um trabalho de avaliação de arquiteturas orientadas a serviços a seguinte definição de SOA (Bianco, Kotermanski, Merson, 2007): Um estilo arquitetural onde sistemas são constituídos de usuários de serviços e fornecedores de serviços. Um estilo arquitetural define um vocabulário de componentes e tipos de conectores, e restrições sobre como eles podem ser combinados. Para SOA, os tipos de componentes básicos são o usuário de serviço e o fornecedor de serviço, tipos de componentes auxiliares como o enterprise service bus (ESB) e o diretório de serviços. Os tipos de conectores SOA incluem chamadas síncronas e assíncronas usando protocolo SOAP, http, e/ou infra-estrutura de mensageria. Muitas propriedades podem ser atribuídas para estes tipos de componentes e conectores, mas eles são específicos para cada tecnologia de implementação. 3.4 Revisão das definições de SOA Como foi levantado, existem diversos pontos de vista com relação ao que uma Arquitetura precisa ter para ser orientada a serviços. Em geral, as definições apresentadas focam nos seguintes itens que são essenciais num sistema orientado a serviço: a existência dos serviços, propriamente dito, que são módulos auto-contidos e independentes disponibilizados através de uma interface bem definida e que podem ser compostos com outros serviços. Fraco acoplamento entre os componentes do sistema Dinamicidade na composição de serviços e semântica associada. Com os conceitos de SOA mais bem estabelecidos, pode-se tratar da descrição da Arquitetura usando linguagens ADL. Foram encontradas duas iniciativas principais para descrever SOA: SOADL (Jia et al, 2007) e modelagem através de grafos transformacionais (Baresi et al, 2006). Também é discutida a linguagem de descrição SCDL (Service Component Decription Language) que faz parte da Arquitetura de Componentes de Serviço (Service Component Architecture - SCA) (IBM, 2007). 1364

11 4. Tentativas de Descrição de Arquitetura Orientada a Serviços Por ser um estilo emergente, a Arquitetura Orientada a Serviço ainda não possui muito desenvolvimento teórico e formal com relação à sua descrição e ao processo de modelagem de Arquitetura. Buscou-se nesta seção reunir as principais iniciativas oriundas do campo de pesquisa e a partir delas fazer um cruzamento com as características das ADLs discutidas na seção SOADL Service Oriented Architecture Description Language A linguagem SOADL foi proposta em 2006 (Dan et al, 2006) partindo dos conceitos de SOA estabelecidos pelo modelo de referência do OASIS e também a partir da experiência dos autores na área. Segundo esta primeira iniciativa, SOA poderia ser descrito em três partes: 1 Serviços agrupa os conceitos de funcionalidade, contrato e política, modelo de ação e processo, semântica e estrutura. 2 Conectores agrupa os conceitos de modelo de informação e comportamento, contexto de execução e estado compartilhado. 3 Configuração agrupa os conceitos de links e topologia. Uma ferramenta de modelagem visual de SOA também foi proposta associada a esta ADL. Em 2007, o mesmo grupo aperfeiçoou o estudo acerca desta linguagem estabelecendo nova classificação dos componentes da SOADL e aprofundando no detalhamento da linguagem (Jia et al, 2007). Os Componentes de serviço no SOADL passaram a ser classificados em três níveis: - serviços arquiteturais - serviços de negócios - serviços de aplicação Os Conectores representam bindings entre service ports. O tipo de representação é hierárquico e utiliza XML como meta-linguagem conforme apresentado no exemplo da figura 7. Existe certo relacionamento entre os componentes da linguagem de forma a possibilitar a geração de implementação Business Process Execution Language (BPEL) a partir do SOADL. Esta foi uma grande evolução em relação às outras formas de representação por permitir a modelagem de processos de negócio na Arquitetura. Neste aperfeiçoamento, houve um maior detalhamento na sintaxe e semântica da descrição da linguagem. Contudo, SOADL ainda não é um trabalho concluído e muita pesquisa está sendo feita no desenvolvimento da ferramenta gráfica SO-ADL VMT. 1365

12 Figura 7: Exemplo de estrutura de documentos do modelo arquitetural do SOADL. (Jia et al, 2007) 4.2 Linguagem de Descrição de Componentes de Serviço - SCDL A Arquitetura de Componentes de Serviço ( SCA Service Component Architecture) define uma abordagem para criação de componentes e descrição de como estes componentes podem trabalhar juntos para desenvolver uma aplicação. Não é propriamente uma ADL, contudo é uma forma de representação que pode e vem sendo utilizada na descrição e composição de serviços dentro de uma Arquitetura Orientada a Serviços. Existem três componentes primários no SCA: componentes, composto e domínio. Os componentes podem ser combinados em compostos e agregados para formar um domínio. A figura 8 mostra um exemplo simples do modelo de Arquitetura SCA. Figura 8: Arquitetura de Componente de Serviço - SCA (IBM, 2007) Componentes são os átomos de criação de uma aplicação SCA. A implementação dos componentes pode ser em Java ou em BPEL ou em qualquer outra linguagem de programação. A configuração destes componentes é feita no formato XML em uma linguagem chamada Service Component Description Language (SCDL). A evolução desta linguagem está sendo conduzida pelo OASIS e a mesma já vem sendo utilizada em algumas ferramentas proprietárias para o desenvolvimento de aplicações no contexto de Arquitetura Orientada a Serviço. Um exemplo da linguagem de descrição SCDL pode ser visto na figura

13 Figura 9: Exemplo de código SCDL para descrição de um componente de Serviço na implementação IBM. É possível que alguma ADL seja proposta e utilize alguns recursos desta linguagem aproveitando-se da sua similaridade com os componentes de uma SOA: serviços (componentes), interface, fornecedores de serviços, conectores, etc. Levando em consideração as categorias levantadas no arcabouço de Medvidovic, o SCDL tem diversas características e recursos que são observadas em linguagens de descrição de Arquitetura sendo, portanto, mencionadas entre as iniciativas de linguagem de descrição de SOA. 4.3 Modelagem SOA usando Grafos Transformacionais Existe ainda uma terceira proposta de modelagem de SOA baseada em modelos conceituais envolvidos em estilos arquitetônicos, formalizados por sistemas de grafos transformacionais. Esta abordagem tem enfoque na habilidade de reconfiguração dinâmica (alocação para um novo serviço em tempo de execução) típica de SOA (Baresi et al, 2006). A utilização de grafos transformacionais permite uma definição formal de SOA como estilo arquitetural. A figura 10 mostra um grafo de instância para um sistema automotivo apresentado em (Baresi et al, 2006). A técnica utilizada foi de refinamento da Arquitetura orientada a negócios, que é independente de aspectos de tecnologia, em Arquitetura Orientada a Serviços. Para a modelagem foi utilizada uma combinação de representação baseada em grafos com UML. Uma extensão à meta-modelo UML foi introduzida para fazer o mapeamento entre o perfil UML para SOA e os elementos do estilo arquitetônico. É uma abordagem diferente de descrição de Arquitetura mais voltada para a transformação de sistemas orientados a negócios para SOA que para a descrição dos itens pertencentes a uma Arquitetura SOA. 1367

14 Figura 10: Grafo de instância específico para SOA de um sistema (Baresi et al, 2006) 4.4 Análise das ADLs orientadas a serviço Em todas as linguagens apresentadas pode-se encontrar a preocupação em aplicar os conceitos dos sistemas orientados a serviços com a criação de elementos arquitetônicos específicos para representar serviço e conceitos relacionados. No entanto, existe uma maior semelhança entre as iniciativas da SOADL e SCDL por utilizarem o padrão XML como forma de representação e por descreverem os serviços ou componentes em estruturas separadas. A definição do serviço no SOADL é de mais alto nível com relação ao comportamento dos serviços e permite orquestração de serviços assim como para os grafos transformacionais. A SOADL abrange uma visão de maior granularidade com relação aos outros por possibilitar a classificação dos componentes em níveis. Existe a preocupação no SOADL com relação ao alinhamento do sistema com os processos de negócios através da divisão dos serviços no nível arquitetural, negócios e nível tecnológicos. Algo semelhante ocorre na terceira proposta que parte da modelagem de negócios para chegar à de serviços no seu processo de desenvolvimento de Arquitetura. A característica de reconfiguração dinâmica tem extenso suporte tanto em SOADL como em Grafos Transformacionais. No entanto, por ser baseada em uma extensão ao UML, a ADL de grafos transformacionais herda o problema de dispersão das definições da Arquitetura em diversos diagramas e também o problema da complexidade para ser utilizada em projetos comerciais. 1368

15 Outra questão importante é que para as três ADLs ainda não é intrínseca a preocupação relativa a segurança nas interações e nos componentes como encontrado na xadl (Ren, Taylor, 2005). O resumo dos resultados da análise dos recursos das três ADLs é apresentado na Tabela 1. Tabela 1 : Tabela de comparação dos modelos de ADLs para SOA apresentadas Conceitos SOA / ADLs SOADL SCDL Grafos Transformacionais Serviço possui elemento equivalente com 3 níveis de classificação: arquitetural, negócios e tecnológico conceito secundário ligado ao conceito de conector para definir pontos de interação Representado pelo componente de serviço Interface é uma entidade de primeira classe usualmente definida em wsdl Subtipo associado a componentes de serviços. Interface de Serviço suportado Descrição do Serviço especificação de serviço suporte limitado suportado Interação suportado suportado suportado Contrato e Política Está dentro do conceito de Serviço não possui não possui Reconfiguração dinâmica possui - possui Granularidade alta baixa média Suporte a processos de negócios possui Não possui possui Segurança não possui não possui não possui 5. Características básicas de uma ADL para SOA Levando em consideração a análise das tentativas de descrição de SOA e as características que definem uma ADL segundo o arcabouço de Medvidovic pode-se definir as características básicas e conceitos que uma Linguagem de Descrição de Arquitetura Orientada a Serviço deve abranger. A ADL que mais chega próximo dos requisitos de SOA para ser uma ADL completa possível e com maior perspectiva mercadológica é a SOADL. Ela apresenta classificação semelhante à apresentada pelo arcabouço dividindo a representação da Arquitetura em três principais elementos arquiteturais (Serviço, Conectores e Configuração), possui fácil representação utilizando o padrão XML de representação dos artefatos, foi desenvolvida sobre os conceitos básicos apontados pelo modelo de referência SOA do OASIS e apresenta classificação de serviços para fazer o alinhamento com os processos de negócios. Tomando estas características emprestadas do SOADL e juntando com o lado tecnológico do SCDL é possível estender a descrição da aplicação para artefatos executáveis a exemplo das ADLs UniCon, Rapide e MetaH. Podemos também incluir alguns conceitos relativos a estereótipos do Modelo de Grafos Transformacionais tais como Service Provider, Service Requester e Service Registry e as 1369

16 propriedades relativas à evolução e propriedades não-funcionais da Arquitetura mencionada no arcabouço de Medvidovic. Uma alteração importante na linguagem seria a adição de conceitos de segurança aos elementos e estilos arquiteturais como na ADL xadl. Todas estas características devidamente integradas permitem uma representação mais abrangente, compatível com a noção de ADL e de maior permeabilidade no meio corporativo. 6. Conclusão A linguagem de descrição de Arquitetura Orientada a Serviços SOADL apresenta uma forma simples e independente de tecnologia ao se modelar sistemas compostos por serviços. Existe a preocupação recorrente de alinhar os processos de negócios e os sistemas de TI. No entanto, não foram mencionadas considerações sobre segurança e semântica. A proposta que utiliza grafos transformacionais abrange grande parte dos conceitos de SOA levantados, no entanto, utiliza como representação uma extensão a UML que, talvez não satisfaça os requisitos de linguagem de representação de tal estilo arquitetônico. Os conceitos da nova ADL apresentada talvez forneça uma melhor forma de definição de Arquitetura levando em consideração a abrangência, nível de granularidade, objetividade e apelo comercial. Contudo, ela é apenas uma evolução na consolidação da modelagem de arquiteturas orientadas a serviços e precisa ser mais bem desenvolvida. É importante avaliar melhor os conceitos resultantes das definições de SOA de forma a criar uma linguagem de descrição da Arquitetura que expresse corretamente todas as características importantes para um sistema de software baseado no conceito de SOA. 7. Trabalhos Futuros Como trabalhos futuros, existe a criação de ferramental para desenvolvimento de modelos de sistemas orientados a serviços independentes de tecnologia a exemplo do SO-ADL VMT. Uma junção de idéias de SOA e MDA pode ser feito pensando na criação de ferramental para criação de uma estrutura geral dos componentes de um software a partir da descrição da Arquitetura. Uma avaliação levando em consideração a norma IEEE 1471 não foi possível neste artigo e será explorado em futuras pesquisas. Por fim, a utilização de indicadores chave de performance (KPI - Key Performance Indicators) como entrada para arquiteturas orientadas a serviços, ajudando a ter mecanismos mais precisos de controle para avaliação das arquiteturas. 1370

17 Referências Bibliográficas [Baresi et al, 2006] BARESI, L. et al. Style-based modeling and refinement of serviceoriented architectures. Software & System Modeling, [Bass et al, 1998] BASS, L.; et al. Software Architecture in Practise. Addison- Wesley Longman Publishing Co. Boston, [Bianco, Kotermanski, Merson, 2007] [Cook, 1999] [Dan et al, 2006] BIANCO, P.; KOTERMANSKI, R.; MERSON, P. et al. Evaluating a Service-Oriented Architecture. Software Engineering Institute. Technical Report, September COOK, Tw. Architecture Description Languages: An Overview. MCC, DAN et al. An Approach for describing SOA. Wuhan University IEEE Computer Society, [Erl, 2005] ERL, Thomas. Service-Oriented Architecture: Concepts, Technology, and Design. Upper Saddle River: Prentice Hall PTR. ISBN , [Garlan, Monroe, Wile, 1997] GARLAN, D.; MONROE, R.; WILE, D. Acme: An Architecture Description Interchange Language, [IBM, 2007] Service Component Architecture. IBM developerworks. Acessado em 28 de Novembro de [Jia et al, 2007] [Lange, Chaudron, Muskens, 2006] [McDuffie,2001] [Medvidovic, Taylor, 2000] [Medvidovic,1996] JIA et al. A New Architecture Description Language for Service- Oriented Architecture. Wuhan University IEEE Computer Society, LANGE, C.; CHAUDRON,M.; MUSKENS,J. In pratice: UML Software Architecure and Design Description. IEEE Computer Society, McDUFFIE, J. H. Using the architecture description language MetaH for designing and prototyping an embedded spacecraft attitude control system, MEDVIDOVIC, N.; TAYLOR, R. Classification and Comparison Framework for Software Architecture Description Languages. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, v. 26, n. 1, p 70-93, jan MEDVIDOVIC, N. et al. Using Object-Oriented Typing to Support Architectural Design in C2 Style. University of California,

18 [Newcomer, Lomow, 2005] [OASIS, 2007] [Open Group, 2007] NEWCOMER, E; LOMOW, G. Understanding SOA with Web Services. Addison Wesley. ISBN , OASIS. SOA Reference Model TC. Disponível em Acessado em 28 de Novembro de The Open Group. SOA Oriented Architecture. Disponível em Acessado em 28 de Novembro de [Open Group, 2008] Open Group. The Open Group Architecture Framework Disponível em doc/arch/toc.html. Acessado em 23 de Janeiro de [Ren, Taylor, 2005] [Shaw, Garlan, 1996] [Vestal, 1993] [Ward, Mellor, 1991] REN, J.; TAYLOR, R. A Secure Software Architecture Description Language. University of California, Irvine. ACM SHAW, M.; GARLAN, D. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, Apr VESTAL, S. A Cursory Overview and Comparison of Four Architecture Description Languages. Technical report, Honeywell Technology Center, Feb WARD, P. ; MELLOR, S. Structured Development for Real-Time Systems. Prentice Hall Professional Technical Reference,

Arquitetura de Software: Documentaçã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 SSC-0527 Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Tiago Volpato Introdução

Leia mais

Arquitetura de Software: Documentaçã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

Leia mais

Notas 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 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 mais

INF1013 MODELAGEM DE SOFTWARE

INF1013 MODELAGEM DE SOFTWARE INF1013 MODELAGEM DE SOFTWARE Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 1 O Paradigma Orientado a Objetos A Linguagem UML Descrição da Arquitetura 1 Programa

Leia mais

Arquitetura de Software

Arquitetura de Software Arquitetura de Software Ponte entre os requisitos do sistema e sua implementação Requisitos do Sistema Arquitetura Arquiteto(s) Implementação do Sistema Arquitetura de Software (AS) Abstração que ajuda

Leia mais

Análise de Sistemas. Aula 5

Análise de Sistemas. Aula 5 Análise de Sistemas Aula 5 Prof. Emerson Klisiewicz CONTEXTUALIZAÇÃO Aula 5 Análise Orientada a Objetos Introdução a UML Histórico e Visão Geral Ferramentas CASE O Sucesso... Clientes satisfeitos Eles

Leia mais

Visões Arquiteturais. Visões 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

Leia mais

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo

Metamodelos para Banco de Dados. Carlos Julian Menezes Araújo Prof. Dr. Robson do Nascimento Fidalgo Metamodelos para Banco de Dados Carlos Julian Menezes Araújo cjma@cin.ufpe.br Prof. Dr. Robson do Nascimento Fidalgo 1 Agenda Metadados MDA MOF Metamodelos CWM Pacote Relacional Referências 2 Metadados

Leia mais

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:

Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas

Leia mais

UML Unified Modeling Language Linguagem de Modelagem Unificada

UML 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 mais

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual

Visões Arquiteturais. Visões Arquiteturais. Visões Arquiteturais. Visão Conceitual 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

Leia mais

ADLs. Em geral cada ADL oferece capacidades específicas

ADLs. Em geral cada ADL oferece capacidades específicas ADLs Em geral cada ADL oferece capacidades específicas AESOP: permite o uso de estilos arquiteturais ADAGE: permite a descrição de frameworks arquiteturais para sistemas de aviação C2: permite a descrição

Leia mais

UML (Unified Modelling Language)

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

Leia mais

Rational Unified Process (RUP)

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

Leia mais

Introdução à Análise e Projeto de Sistemas

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

Leia mais

Visões Arquiteturais. Arquitetura de Software Thaís Batista

Visões Arquiteturais. Arquitetura de Software Thaís Batista 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

Leia mais

Padrões. Arquitetura de Software Thaís Batista

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

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE 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 mais

Objetivo do Curso. Modelagem/Arquitetura de Software. Enfoque do Curso. Conteúdo do Curso

Objetivo do Curso. Modelagem/Arquitetura de Software. Enfoque do Curso. Conteúdo do Curso Objetivo do Curso Modelagem/Arquitetura de Software Thaís Vasconcelos Batista Apresentar as tendências atuais para desenvolvimento de aplicações baseadas em, oferecendo uma visão conjunta das tecnologias

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE EMENTA ENGENHARIA DE SOFTWARE DISCIPLINA: Estrutura e Fluxo de Informação EMENTA: A disciplina Estrutura e Fluxo de Informação se propõe a capacitar o aluno sobre os fundamentos da Gestão da Informação

Leia mais

Sistemas Distribuídos

Sistemas 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 mais

Agenda da Aula. Arquitetura de Software e Padrões Arquiteturais. Elementos de um Padrão. Arquitetura de Software. Arquitetura de Software

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 reuso.software@gmail.com 14 Março 2012 Arquitetura de Software Padrões arquiteturais

Leia mais

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 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

Leia mais

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste

6.1. Teste Baseado em Gramática e Outras Abordagens de Teste 6 Discussão Além das técnicas de teste usando modelos gramaticais, existem outras abordagens de teste funcional de sistemas que estão sendo estudadas pela comunidade científica. Algumas delas se dedicam

Leia mais

Análise e projeto de sistemas

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

Leia mais

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 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

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

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

Leia mais

Modelagem/Arquitetura de Software

Modelagem/Arquitetura de Software Modelagem/Arquitetura de Software Thaís Vasconcelos Batista Objetivo do Curso Apresentar as tendências atuais para desenvolvimento de aplicações baseadas em componentes, oferecendo uma visão conjunta das

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

Programa Analítico de Disciplina INF323 Engenharia de Software II

Programa Analítico de Disciplina INF323 Engenharia de Software II 0 Programa Analítico de Disciplina Departamento de Informática - Centro de Ciências Exatas e Tecnológicas Número de créditos: Teóricas Práticas Total Duração em semanas: 15 Carga horária semanal 0 Períodos

Leia mais

Introdução a UML (Unified Modeling Language)

Introduçã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 mais

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla

UML 2.0 Método, Linguagem e Ferramenta. Prof. Cesar Augusto Tacla UML 2.0 Método, Linguagem e Ferramenta Prof. Cesar Augusto Tacla Conteúdo do Curso MÉTODO RUP FERRAMENTA Visual Paradigm Enterprise Architect LINGUAGEM UML UML: Unified Modeling Language Linguagem padrão

Leia mais

Desenvolvimento de Aplicações Distribuídas

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

Leia mais

UFG - Instituto de Informática

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

Leia mais

Engenharia de Software Orientada a Serviços

Engenharia de Software Orientada a Serviços Engenharia de Software Orientada a Serviços Paulo Cesar Masiero Engenharia de Software Roteiro Contexto Arquiteturas Orientadas a Serviços Serviços como componentes reusáveis Engenharia de Serviços Desenvolvimento

Leia mais

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles. Web Services Web Service é um componente de software identificado por uma URI que independe de implementação ou de plataforma e pode ser descrito, publicado e invocado sobre uma rede por meio de mensagens

Leia mais

Introdução à Gestão de Processos de Negócios

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

Leia mais

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução

UML: Introdução. História Visão geral Modelo conceitual da UML. Bibliografia. UML: introdução UML: introdução Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG UML: introdução 2 Bibliografia Rumbaugh, J.; Jacobson, I.; Booch, G., The

Leia mais

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC.

GERENCIAMENTO BASEADO NA WEB. Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC. GERENCIAMENTO BASEADO NA WEB Baseado em slides gentilmente cedidos pelo Prof. João Henrique Kleinschmidt da UFABC. Gerenciamento baseado na Web 2 Web browser Acesso ubíquo Interface Web vs Gerenciamento

Leia mais

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

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

Leia mais

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados

Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído

Leia mais

2 Metodologias para Projetos de Aplicações Hipermidia

2 Metodologias para Projetos de Aplicações Hipermidia 2 Metodologias para Projetos de Aplicações Hipermidia O processo de desenvolvimento de aplicações é o objeto de diversas pesquisas, principalmente no caso das aplicações voltadas para a Internet, que diferem

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Programação Orientada a Objetos 1.1 - Perspectiva histórica: Conceitos A evolução das linguagens de programação tem-se feito na procura de ferramentas: -cada vez mais próximas da percepção humana - e que

Leia mais

1. INTRODUÇÃO A MODELAGEM DE DADOS

1. INTRODUÇÃO A MODELAGEM DE DADOS 1. INTRODUÇÃO A MODELAGEM DE DADOS Para se construir uma casa ou um prédio de qualidade, é essencial fazer um planejamento detalhado, com a finalidade de pensar sobre as formas de construção, fazer estimativas

Leia mais

Fábio Amado João Maio 33306

Fábio Amado João Maio 33306 Fábio Amado 33637 João Maio 33306 Universidade de Aveiro Especificação, Modelação e Projecto de Sistemas Embutidos 21-11-2009 1. UML - o que é? 2. A Natureza dos Sistemas Embutidos 1. Heterogeneidade 2.

Leia mais

Arquitetura de Software visão emergente

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

Leia mais

Visualizando Padrões: A visualização do Universo de Metadados

Visualizando Padrões: A visualização do Universo de Metadados Fonte: Riley, J. Seeing Standards: a visualization of the metadata universe. USA: Indiana University Libraries, 2009-2010. Visualizando Padrões: A visualização do Universo de Metadados Compilação, tradução

Leia mais

Model Driven Development (MDD)

Model Driven Development (MDD) Model Driven Development (MDD) Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@puro.uff.br Sumário Introdução Desenvolvimento de Software

Leia mais

3 Tecnologias Relacionadas

3 Tecnologias Relacionadas Tecnologias Relacionadas 31 3 Tecnologias Relacionadas O objetivo deste capítulo é apresentar um resumo de cada tecnologia relacionada ao processo proposto nesta dissertação, mostrando suas principais

Leia mais

Sistemas de Objetos Distribuídos

Sistemas de Objetos Distribuídos Sistemas de Objetos Distribuídos Alex Carneiro Carlos Eduardo Elmadjian Karina Awoki Prof. Fabio Kon POO 2016.1 Agenda Conceitos Histórico CORBA Demos Comparação com SOA Conclusão 1 CONCEITOS Sistemas

Leia mais

UML. Trabalho Análise e Projeto de Sistemas. Aluna: Luana Alves Businaro

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...

Leia mais

Especificação de Sistemas de Software e a UML

Especificação de Sistemas de Software e a UML Modelagem de sistema Especificação de Sistemas de Software e a UML A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema Modelo => visão simplificada e abstrata de um sistema

Leia mais

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML

Curso de Sistemas de Informação. Karla Donato Fook DESU / DComp. Modelagem de Dados UML Curso de Sistemas de Informação Karla Donato Fook karladf@ifma.edu.br DESU / DComp 2017 Modelagem de Dados UML 2 1 Eduardo Bezerra Editora Campus/Elsevier Porcentagem de projetos que terminam dentro do

Leia mais

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

1 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 mais

Arquitetura de um Ambiente de Data Warehousing

Arquitetura de um Ambiente de Data Warehousing Arquitetura de um Ambiente de Data Warehousing Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Prof. Dr. Ricardo Rodrigues Ciferri Arquitetura Típica usuário usuário... usuário

Leia mais

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento.

Resumo parcial da Tese de Doutorado. Um modelo de Sistema de Gestão do Conhecimento para grupos de pesquisa e desenvolvimento. Universidade Federal de Santa Catarina Centro Tecnológico Disciplina: PROJETOS I Aluno: Cleosvaldo G. Vieira Jr cgvjr@inf.ufsc.br Resumo parcial da Tese de Doutorado Um modelo de Sistema de Gestão do Conhecimento

Leia mais

Estilos Arquiteturais. Prof. Fellipe Aleixo

Estilos Arquiteturais. Prof. Fellipe Aleixo Estilos Arquiteturais Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Introdução Em An Introduction to Software Architecture, artigo de 1994, David Garlan e Mary Shaw definiram: An architectural style,

Leia mais

Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero

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

Leia mais

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade,

Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, 1 Introdução Como as aplicações de entretenimento (em especial jogos digitais) têm enfrentado um constante crescimento, tanto em tamanho quanto em complexidade, os desafios encontrados durante o desenvolvimento

Leia mais

Aula 1.7 Introdução a APOO e UML

Aula 1.7 Introdução a APOO e UML APOO Aula 1.7 Introdução a APOO e UML Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Possuir um lápis e uma régua não te tornam um arquiteto 2 Você pode conhecer toda a API Java, C++ ou qualquer LPOO. 3 Mas

Leia mais

Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999

Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Parte 1/3 Introdução* Jorge H. C. Fernandes Junho de 1999 Arquitetura de Software Este curso é baseado no livro Software Architecture in Practice, de Len Bass, Paul Clements and

Leia mais

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO

MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO MANUAL PARA DESENVOLVIMENTO DE SOFTWARE TRABALHO DE CONCLUSAO DE CURSO EM SISTEMAS DE INFORMAÇÃO Sumário PREFÁCIO...3 MODELO DA DOCUMENTAÇÃO...3 1. INTRODUÇÃO AO DOCUMENTO...3 1.1. Tema...3 2. DESCRIÇÃO

Leia mais

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

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 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 mais

Modelos em Sistemas de Informação. Aula 2

Modelos em Sistemas de Informação. Aula 2 Modelos em Sistemas de Informação Aula 2 Referências básicas da aula Paulo Cougo - Modelagem conceitual e Projeto de Banco de Dados. Craig Larman - Utilizando UML e padrões. Roger Pressman - Engenharia

Leia mais

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos

4/14/11. Processos de Engenharia de Requisitos. Engenharia de requisitos. Elicitação e análise. A espiral de requisitos Processos de engenharia de requisitos Processos de Engenharia de Requisitos Os requisitos e as formas de obtê-los e documentálos variam drasticamente de um projeto para o outro Contudo, existe uma série

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

Um Middleware de Inteligência Artificial para Jogos Digitais 105

Um Middleware de Inteligência Artificial para Jogos Digitais 105 6 Conclusão Este capítulo apresenta alguns comentários e considerações gerais sobre o trabalho de pesquisa realizado durante o desenvolvimento desta dissertação, as contribuições alcançadas e sugestões

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

FUNDAMENTOS DA ANÁLISE E PROJETO DE SISTEMAS. Projeto de Programas PPR0001

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

Leia mais

Prof. Me. Sérgio Carlos Portari Júnior

Prof. Me. Sérgio Carlos Portari Júnior Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade

Leia mais

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services

Web Services - Definição. Web Services - Introdução. Universidade Federal de Santa Catarina. DSOOII Web Services Universidade Federal de Santa Catarina DSOOII Web Services Web Services - Introdução Havia inconsistência de plataformas, sistemas operacionais e/ou linguagens de programação; Acadêmicos: Ariane Talita

Leia mais

ALM Aplicações em Linguagem de Montagem. Introdução. A produção de Software é uma atividade build and fix. build. fix

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;

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

Contexto. Motivação. variabilidade. variabilidade

Contexto. Motivação. variabilidade. variabilidade Representação de Variabilidades em Componentes de Negócio no Contexto da Engenharia de Domínio Regiane Oliveira Ana Paula Blois Aline Vasconcelos Claudia Werner Roteiro Contexto Motivação Variabilidade

Leia mais

Objetos e Componentes Distribuídos: EJB

Objetos e Componentes Distribuídos: EJB : EJB Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta

Leia mais

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE PLANO DE ENSINO Disciplina (INS310008): Análise de Sistemas e UML Professor Responsável: Raul Sidnei Wazlawick Créditos: (02 CRÉDITOS 30HS) Semestre: 2017-2 1. Ementa Geral Introdução a orientação a objetos

Leia mais

Professor Emiliano S. Monteiro

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

Leia mais

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001 UML Visão Geral 1 Índice Introdução Diagramas O que é a UML? Diagrama de casos de utilização Valor da UML Diagrama de classes Origens da UML Diagrama de objectos Parceiros da UML Diagrama de componentes

Leia mais

Ontologias: Definições e Tipos

Ontologias: Definições e Tipos Ontologias: Definições e Tipos Ricardo de Almeida Falbo Departamento de Informática Universidade Federal do Espírito Santo Agenda O que é uma ontologia Tipos de Ontologias Ontologia Origem: Filosofia Ont-

Leia mais

Este capítulo aborda os fundamentos principais aplicados neste trabalho.

Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2 Fundamentos Este capítulo aborda os fundamentos principais aplicados neste trabalho. 2.1 Linked Data Linked Data é um padrão de práticas a serem seguidas para a publicação e interligação de dados estruturados

Leia mais

Ontologias: Definições e Tipos

Ontologias: Definições e Tipos Ontologias: Definições e Tipos Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo Agenda O que é uma ontologia Tipos de Ontologias

Leia mais

Arquitetura de um Ambiente de Data Warehousing

Arquitetura de um Ambiente de Data Warehousing Arquitetura de um Ambiente de Data Warehousing Processamento Analítico de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri Prof. Dr. Ricardo Rodrigues Ciferri Arquitetura Típica usuário usuário... usuário

Leia mais

5º Congresso de Pós-Graduação

5º Congresso de Pós-Graduação 5º Congresso de Pós-Graduação UMA FERRAMENTA PARA GERAÇÃO AUTOMÁTICA DE DIAGRAMA DE CLASSES A PARTIR DA ESPECIFICAÇÃO DE REQUISITOS EM LINGUAGEM NATURAL Autor(es) Orientador(es) LUIZ EDUARDO GALVÃO MARTINS

Leia mais

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

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

Leia mais

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks

3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks 48 3 Uma Abordagem Orientada a Aspectos para o Desenvolvimento de Frameworks Este capítulo apresenta uma visão geral da contribuição principal deste trabalho: uma abordagem orientada a aspectos para o

Leia mais

Engenharia de Software. Projeto de Arquitetura

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

Leia mais

Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s

Introduçã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 mais

Campus 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   / 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 mais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Introdução à UML Prof. Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM Introdução

Leia mais

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

Fase 1: Engenharia de Produto

Fase 1: Engenharia de Produto Fase 1: Engenharia de Produto Disciplina: Análise de Requisitos DURAÇÃO: 44 h O objetivo principal da disciplina é realizar uma análise das necessidades e produzir um escopo do produto. Representará os

Leia mais

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir:

INFORMÁTICA. Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: INFORMÁTICA Prova de Agente Fiscal de Rendas do ICMS-SP/2013 - FCC. Por Ana Lucia Castilho* Instruções: Para responder às questões de números 71 e 72, considere o texto a seguir: A equipe de TI da empresa

Leia mais

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE

SERVIÇO PÚBLICO FEDERAL UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO DE CIÊNCIAS DA SAÚDE PROGRAMA DE MESTRADO PROFISSIONAL EM INFORMÁTICA EM SAÚDE PLANO DE ENSINO Disciplina INS 310008: Análise de sistemas e UML Professor Responsável: Dra Raul Sidnei Wazlawick Créditos: (02 CRÉDITOS 30HS) Semestre: 2018-2 1. Ementa Geral Introdução a orientação a

Leia mais

PROJETO DE ARQUITETURA

PROJETO DE ARQUITETURA PROJETO DE ARQUITETURA Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Próximas aulas: Seminários de Padrões de Projeto GoF 1º Dia: 10/11/2017, 08h 10h, Sala 04 2º Dia:

Leia mais