Aplicações de Ontologias em Engenharia de Software

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

Download "Aplicações de Ontologias em Engenharia de Software"

Transcrição

1 Aplicações de Ontologias em Engenharia de Software Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo

2 Agenda Introdução Ontologias em Engenharia de Software Ontologias no Desenvolvimento Distribuído de Software Ontologias no Desenvolvimento de Sistemas Multiagentes Categorização de Ontologias em ES (2) Exemplos de Ontologias Existentes Web Semântica de ES

3 O que é uma ontologia? Uma ontologia é uma descrição parcial e explícita de uma conceituação compartilhada. Tipos de Ontologias: Quanto ao grau de generalidade (Guarino, 1998): ontologias de fundamentação, ontologias de domínio, ontologias de tarefa e ontologias de aplicação. Quanto ao grau de generalidade (Scherp et al., 2011): ontologias de fundamentação, ontologias núcleo (core ontologies) e ontologias de domínio Em relação à fase do processo de desenvolvimento de ontologias (Guizzardi, 2007): ontologias de referência e ontologias operacionais. Quanto ao nível de axiomatização (Ruiz et al., 2006): ontologias pesadas e ontologias leves.

4 Modelos, Meta-modelos e Ontologias Ontologias de Referência são modelos conceituais. Modelos Conceituais de sistemas também. Qual a diferença entre eles então? Escopo. Modelos são destinados a um projeto particular, enquanto ontologias têm um escopo bem mais abrangente, que perpassa vários projetos e organizações, visando ser um modelo consensual para uma certa comunidade. Muitas vezes, meta-modelos são considerados mais relacionados com ontologias. Contudo, eles são modelos que falam sobre modelos e, portanto, visam melhorar o rigor de modelos sintaticamente semelhantes, mas semanticamente diferentes. Já ontologias visam tratar a semântica.

5 Ontologias em Engenharia de Software As aplicações de ontologias em ES são múltiplas. Ontologias podem ser integradas a infraestruturas de desenvolvimento e no próprio software sendo desenvolvido para apoiar várias atividades do processo de software. Com o surgimento da Web Semântica (WS), iniciativas capitaneadas por organizações de padronização, tais como W3C e OMG, começaram a ser desenvolvidas no sentido de integrar as áreas de WS e ES. (Happel et al., 2010)

6 Aplicações de Ontologias Visão Geral Aplicações de Ontologias (Jasper et al., 1999): Comunicação Interoperabilidade de Sistemas Especificação de Sistemas Recuperação de Informação 6

7 Aplicações de Ontologias Comunicação Comunicação entre pessoas: Ontologias reduzem confusões terminológicas e conceituais. Favorecem o entendimento compartilhado entre as pessoas. 7

8 Aplicações de Ontologias Comunicação Podem ser usadas para criar uma rede de conceitos dentro de um sistema permitindo às pessoas explorarem e navegarem através dessa rede para entender os relacionamentos internos do sistema. Comunicação: Entre pessoas Entre pessoas e sistemas Entre sistemas (interoperabilidade) 8

9 Aplicações de Ontologias Interoperabilidade Ontologias podem ser usadas como uma inter-língua para apoiar a tradução entre diferentes linguagens e representações. Permitem a comunicação entre sistemas. Acesso Comum à Informação: uma ontologia é usada para permitir que múltiplas aplicações-alvo tenham acesso a fontes heterogêneas de informação que são expressas usando vocabulário diverso ou formato inacessível (Jasper et al., 1999). Serviços Compartilhados 9

10 Aplicações de Ontologias Interoperabilidade Sistemas: Dados e Serviços Arquiteturas Organizacionais: Processos Representações: Modelos

11 Aplicações de Ontologias Especificação de Sistemas Ontologias promovem o entendimento compartilhado de um domínio ou tarefa. Ontologia como Especificação: uma ontologia de um determinado domínio/tarefa é criada e provê um vocabulário para especificar requisitos para uma ou mais aplicações-alvo. A ontologia é usada como uma base para especificação e desenvolvimento de software, permitindo reúso de conhecimento (Jasper et al., 1999). 11

12 Aplicações de Ontologias Especificação de Sistemas Ontologias de Domínio ßà Modelos Estruturais Ontologias de Tarefa ßà Modelos Comportamentais Ontologias de Fundamentação: base para ambos os modelos: Modelagem Conceitual.

13 Aplicações de Ontologias Recuperação de Informação Máquinas de busca tradicionais retornam listas de recursos recuperados, oferecendo pouca ou nenhuma informação sobre as relações semânticas existentes entre eles. Ontologias oferecem um meio de lidar com a representação de recursos de informação: o modelo de domínio descrito por uma ontologia pode ser usado como uma estrutura unificadora para dar semântica e uma representação comum à informação (Davies et al., 2003). Busca Baseada em Ontologias: uma ontologia é usada para procurar, em um repositório de informação, por recursos desejados, melhorando a precisão e reduzindo a quantidade de tempo gasto na busca (Jasper et al., 1999). Ex.: Web Semântica 13

14 Aplicações de Ontologias Recuperação de Informação Recuperação de itens de conhecimento: artefatos, lições aprendidas, discussões... Recuperação de componentes, bibliotecas, serviços, frameworks. 14

15 Aplicações de Ontologias Inferência Organização e Reutilização de Conhecimento (Gerência de Conhecimento)

16 Uso de Ontologias na ES - Geral Integração de Ferramentas: Diferentes projetos ou mesmo stakeholders de um mesmo projeto usam diferentes ferramentas, que muitas vezes não se comunicam. Problema: Interoperabilidade Ontologias podem ser usadas para apoiar a integração semântica das informações armazenadas nessas ferramentas e de serviços providos por elas.

17 Uso de Ontologias na ES - Geral Compartilhamento de Conhecimento: necessidades de conhecimento, muitas vezes, não são explicitamente declaradas, mas sim estabelecidas pelo gap entre o conhecimento de um desenvolvedor e o conhecimento necessário para desempenhar uma tarefa à Necessidade de disseminação pró-ativa. Problema: Encontrar o equilíbrio entre sobrecarga de informação e falta de informação Problemas relacionados: Provisão, Acesso e Utilização da Informação (incluindo as diferenças entre os contextos de criação e de uso de um item de conhecimento).

18 Uso de Ontologias na ES - Geral Acesso à Informação: Como encontrar a informação necessária para resolver um problema ou realizar uma tarefa? A existência de grandes repositórios pode dificultar a busca por itens relevantes para o contexto em mãos. Ontologias podem ser usadas para anotar semanticamente itens de conhecimento, tais como artefatos do processo de software, lições aprendidas, artefatos de colaboração ( s, listas de discussão, fóruns etc.). Grupos de interesse podem ser estabelecidos dinamicamente através da ligação entre o conteúdo anotado semanticamente e os perfis dos stakeholders anotados com base na mesma ontologia. Mecanismos de consulta avançados baseados em ontologias podem ser usados para apoiar a busca.

19 Uso de Ontologias na ES - Geral Provisão de Informação: Desenvolvedores frequentemente evitam esforços de documentação e rejeitam a ideia de ter de descrever itens de conhecimento para reúso (anotação semântica). Ontologias podem ajudar a explicitamente capturar informações de contexto e oferecer aos desenvolvedores um vocabulário mais preciso e não ambíguo para expressar certas informações. Além disso, certas informações contextuais podem ser derivadas automaticamente de artefatos de software, utilizando-se de métodos de extração (documentação semântica).

20 Uso de Ontologias na ES - Geral Documentação: Diferentes artefatos contém várias informações inter-relacionadas (p.ex., documentos de requisitos, código fonte e casos de teste). As tarefas de juntar e manter essas ligações ficam a cargo dos usuários e desenvolvedores desses artefatos. Ontologias podem ser usadas para adicionar semântica a elementos de informação em documentos, de modo que ferramentas automatizadas possam processar e relacionar estas informações (documentação semântica). Ex.: Wiki semânticos.

21 Uso de Ontologias na ES - Geral Rastreabilidade: Manter matrizes de rastreabilidade é muito trabalhoso. Ontologias usadas para apoiar a documentação semântica podem ser usadas também para descrever a semântica das relações existentes entre os vários artefatos de software produzidos, permitindo o desenvolvimento de ferramentas automatizadas para a manutenção e recuperação de informações de rastreabilidade.

22 Uso de Ontologias na ES - Geral Tratabilidade: Software é uma entidade sócio-técnica e, portanto, é necessário manter uma trilha de todas as interações relevantes: humano-humano e humano-software (p.ex., chat que explica uma decisão). Ontologias podem ser usadas para descrever a semântica das relações existentes entre os vários artefatos, incluindo aqueles que não são classicamente definidos como entrada ou saída de uma atividade do processo de desenvolvimento.

23 Uso de Ontologias na ES Processo de Desenvolvimento Requisitos: As principais razões de fracassos de projetos de software são: falta de envolvimento de usuários, requisitos incompletos ou mal especificados e volatilidade de requisitos. Uma vez que engenheiros de software normalmente não são especialistas de domínio, eles precisam aprender sobre o domínio do problema com usuários. Obter um entendimento compartilhado é um dos principais desafios da ER.

24 Uso de Ontologias na ES Processo de Desenvolvimento: Requisitos Ontologias podem ser usadas como uma especificação de domínio (modelo de domínio) compartilhada, formal e não ambígua, que sirva de ponto de partida para a especificação de requisitos para vários sistemas naquele domínio (abordagem de Engenharia de Domínio).

25 Engenharia de Domínio Enfoque sistemático para a produção de componentes reutilizáveis. Atividades: Análise de Domínio: visa representar requisitos comuns de uma família de aplicações por meio de modelos de domínio; Projeto de Domínio: busca prover modelos arquiteturais para uma classe de aplicações a partir de um único modelo de domínio; Implementação de Domínio: prover implementações de componentes que representam funcionalidades básicas de aplicações relacionadas a um domínio. 25

26 Uso de Ontologias na ES Processo de Desenvolvimento: Requisitos Uso de distinções ontológicas providas por ontologias de fundamentação durante a modelagem conceitual de sistemas. P.ex., uso de OntoUML na modelagem conceitual de sistemas.

27 Uso de Ontologias na ES Processo de Desenvolvimento Arquitetura de Software: Na maioria dos sistemas, a lógica de negócio é codificada em uma linguagem de programação em um componente da arquitetura. Mudanças na lógica de negócio requerem modificações no código fonte e análises de impactos. Arquiteturas baseadas em regras e uso de máquinas de regras podem ser uma solução para este problema. A ideia é separar a lógica de negócio e a lógica de processamento. Em uma arquitetura baseada em regras, uma ontologia pode ser um componente (em tempo de execução) da camada de lógica de negócio, separado do componente de lógica de processamento (papel desempenhado por uma máquina de regras reasoner).

28 Uso de Ontologias na ES Processo de Desenvolvimento Reutilização de Componentes / Serviços Web: Estes são casos mais específicos do problema de acesso à informação, contextualizados nas fases de projeto e implementação do processo de desenvolvimento. A questão básica é: existem componentes/serviços que podem ser reusados? Como encontrá-los e usá-los no contexto do projeto corrente? Ontologias podem ser usadas para descrever componentes / serviços web (anotações semânticas), de modo a permitir o uso posterior de mecanismos de busca mais convenientes e poderosos. No caso de serviços web semânticos, descoberta, matching e composição automáticos de serviços podem ser feitos, tomando por base a conceituação compartilhada oferecida pela ontologia.

29 Uso de Ontologias na ES Processo de Desenvolvimento Manipulação de Erros: Outro caso mais específico do problema de acesso à informação, contextualizado nas fases de teste, depuração e manutenção. Quando um erro é apresentado, o que ele significa? Como tratá-lo? Geralmente, é útil encontrar ocorrências similares do mesmo erro e, para tal, desenvolvedores, muitas vezes, recorrem a mecanismos de busca bem gerais, como o Google. O problema é que o contexto pode ser muito diferente... Ontologias podem ser usadas para se fazer uma mediação entre os diferentes contextos, tomando por base anotações semânticas baseadas em ontologia.

30 Uso de Ontologias na ES Processo de Desenvolvimento Testes: O projeto de casos de teste requer conhecimento tanto do domínio do problema quanto do domínio da solução e das técnicas a serem aplicadas. Ontologias de domínio podem ser usadas para apoiar testadores, que normalmente não estão tão envolvidos com o domínio quanto desenvolvedores, a compreender melhor o domínio do sistema a ser testado. Além disso, anotações semânticas podem ser usadas para ligar informação relacionada no projeto (ou até em outros projetos), como p.ex., casos de teste e requisitos.

31 Uso de Ontologias na ES Processo de Desenvolvimento Manutenção: Durante a manutenção, há muitos tipos de informação relacionados, mas sem uma conexão explícita, tornando difícil a solução de um problema. Ontologias podem ajudar a conectar comunicações eletrônicas ( s, listas de discussão), relatos de bugs e itens de software afetados, provendo uma camada para integrar dados de diferentes fontes (interoperabilidade semântica) em um modelo semântico unificado. Os dados combinados podem ser, então, usados para derivar informação adicional por meio de inferências ou mineração de dados, informação essa que não estava explicitamente declarada em nenhuma das bases.

32 Uso de Ontologias na ES Ambientes de Desenvolvimento de Software (ADSs): precisam ter modelos de processos, de modo a compreender, dentre outros, as atividades que estão sendo realizadas e as dependências entre artefatos, de modo a apoiar mais efetivamente os desenvolvedores na realização de suas tarefas. Ontologias do domínio de processos de software podem contribuir para a realização de ADSs Semânticos, provendo a base para um suporte baseado em conhecimento e sensível ao contexto do usuário.

33 Desenvolvimento Distribuído de Software Desenvolvimento Distribuído de Software (DDS): colaboração entre grupos de desenvolvedores que trabalham em conjunto, localizados em cidades ou países diferentes.

34 Desafios do DDS - Comunicação Awareness: Consciência, Percepção e Conhecimento das Atividades Desenvolvidas. O que está acontecendo? Quem está realizando determinada tarefa? Onde ela está acontecendo? Quem precisa ser notificado acerca de novas informações? Qual a dependência entre requisitos / funcionalidades? Contexto: Qual o contexto de cada integrante da equipe? 34

35 Desafios do DDS - Comunicação Dispersão Geográfica e Temporal: Dificuldade de obter consenso. Estados físicos e mentais dos participantes. Estilos de Comunicação: Preocupações com a forma e o conteúdo da comunicação. Formas de Comunicação: Comunicação informal é reduzida. Necessidade de comunicação indireta. Prejuízo para a riqueza de contexto. Sentido de uma frase não está apenas nas palavras. Outros elementos dão sentido a uma frase, tais como tom de voz, linguagem corporal, expressão facial, uso do silêncio etc. 35

36 Uso de Ontologias no DDS Coordenação: sua necessidade tem origem nas dependências entre as tarefas do processo de software, o que requer que diferentes pessoas coordenem seus trabalhos para atingir um objetivo ou produto comum. Problema: Falta de consciência (awareness) do trabalho dos outros. Os usos de ontologias discutido nos problemas relacionados ao acesso à informação são igualmente úteis para a formação da consciência, em especial: anotação semântica de itens de conhecimento, mecanismos de busca baseados em ontologias, pró-atividade na disseminação de conhecimento.

37 Agentes Agentes são sistemas computacionais capazes de ações autônomas em algum ambiente, a fim de alcançar seus objetivos de projeto. Um agente, tipicamente, sente seu ambiente (por sensores físicos, no caso de agentes situados na parte do mundo real, ou por sensores de software no caso de agentes de software) e disponibiliza um repertório de ações que podem ser executadas para modificar o ambiente, o qual pode responder não-deterministicamente à execução dessas ações.

38 Sistemas Multiagentes (SMAs) São sistemas computacionais compostos por diversos agentes interagindo no ambiente a fim de alcançar seus objetivos de projeto. Em um SMA, agentes precisam se comunicar a fim de alcançar melhor os seus objetivos ou os objetivos do sistema/sociedade no qual eles existem. Em um SMA, agentes precisam coordenar suas ações com a de outros agentes para atingir os objetivos do sistema ou sociedade. Ontologias podem ser usadas para associar significado às mensagens trocadas por agentes, ou para prover uma conceituação comum para agentes em um SMA.

39 Categorização de Ontologias em ES Segundo Happel et al. (2006), o uso de ontologias na ES pode ser categorizado segundo duas dimensões principais: Uso em tempo de desenvolvimento x em tempo de execução Uso para tratar problemas relativos ao domínio x aspectos de infraestrutura

40 Categorização de Ontologias em ES Ontology-driven development (ODD): uso de ontologias em tempo de desenvolvimento, descrevendo o domínio do problema

41 Categorização de Ontologias em ES Ontology-enabled development (OED): uso de ontologias em tempo de desenvolvimento com o objetivo de apoiar desenvolvedores em suas tarefas.

42 Categorização de Ontologias em ES Ontology-based architectures (OBA): uso de ontologias como um artefato em tempo de execução (ontologia como um elemento central na arquitetura do software).

43 Categorização de Ontologias em ES Ontology-enabled architectures (OEA): uso de ontologias para prover suporte de infraestrura em tempo real (p.ex., descoberta automática de serviços).

44 Categorização de Ontologias em ES Ruiz e Hilera (2006) propõem uma taxonomia de ontologias para Engenharia e Tecnologia de Software (SET) formada por duas categorias genéricas: Ontologias do Domínio de SET: descrevem conhecimento acerca do domínio de SET. Ontologias como Artefatos de Software: usadas como artefatos durante o processo de software.

45 Categorização de Ontologias em ES Ontologias do Domínio de SET são classificadas considerando uma distinção entre Engenharia de Software e Tecnologia de Software, conforme estabelecido nas Diretrizes Curriculares de Computação da ACM.

46 Categorização de Ontologias em ES Ontologias de ES, quanto à cobertura do domínio de ES, podem ser ontologias de todo o domínio (ditas genéricas) ou de um subdomínio (ditas específicas). Ontologias de todo domínio têm o ambicioso objetivo de modelar o corpo de conhecimento de ES por completo. São baseadas em fontes como SWEBOK, livros e glossários. Ontologias de subdomínios buscam tratar a conceituação de apenas parte (subdomínio) desta disciplina. Algumas ontologias de subdomínios de SET são elaboradas levando em conta a possibilidade de integração com outras ontologias de subdomínio, visando estabelecer uma rede de ontologias (ontology network).

47 Categorização de Ontologias em ES Software Engineering (SE) Ontologies Generic (all-domain) Specific (sub-domain) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Quality Software Engineering Tools & Methods Software Engineering Process Software Engineering Management

48 Categorização de Ontologias em ES As categorias e subcategorias da taxonomia da ACM foram usadas para classificar Ontologias de Tecnologia de Software.

49 Categorização de Ontologias em ES Software Technology (ST) Software Programming Techniques Programming Languages Operating Systems Data Data Structures Data Storage Representations Data Encryption Coding and Information Theory Files Information Technology and Systems Models and Principles Database Management Information Storage and Retrieval Information Technology and Systems Applications Information Interfaces and Representation (HCI)

50 Categorização de Ontologias em ES Ontologias como Artefatos de Software são classificadas em um primeiro nível em ontologias como artefatos usados em tempo de desenvolvimento ou usados em tempo de execução. A categoria das ontologias usadas em tempo de desenvolvimento é subdividida com base na função dos processos de ciclo de vida nos quais elas são principalmente usadas, tomando por base a ISO/IEC (1998). Para simplificar, apenas dois níveis de quebra (grupos de processo e categorias de processo) foram usados, tendo sido desconsiderados, portanto, o nível de processos individuais.

51 Categorização de Ontologias em ES Grupos e Categorias de Processo da ISO (1998) Processos Primários Cliente-Fornecedor Engenharia Processos de Apoio Apoio Processos Organizacionais Gerência Organização Taxonomia de Ontologias como Artefatos usados em tempo de desenvolvimento: Para Processos de Engenharia Desenvolvimento Manutenção Para Outros Processos Cliente-Fornecedor Apoio Gerência Organização

52 Categorização de Ontologias em ES A categoria das ontologias usadas em tempo de execução é subdividida em duas sub-categorias, tomando por base a classificação de Guarino: Ontologias como artefatos arquitetônicos: quando a ontologia é parte da arquitetura do software, sendo um componente adicional que trabalha com o resto do sistema em tempo de execução para atingir os objetivos do software. Ontologias como recursos de informação: quando a ontologia é usada pelo software em tempo de execução para um propósito específico, atuando como um recurso de informação, normalmente remoto, sobre o qual o software opera, realizando, p.ex., consultas específicas.

53 Exemplos de Ontologias de SE Existentes Ruiz e Hilera (2006) fazem um levantamento de diversas iniciativas relativas a ontologias do Domínio de SET encontradas na literatura até Software Engineering (SE) Ontologies All-domain (3) SWEBOK (2) IEEE Glossary of Software Engineering Terminology (1)

54 Exemplos de Ontologias de SE Existentes Sub-domain (Ruiz; Hilera, 2006) Software Engineering Process (Processos de Software) (4) Software Maintenance (5) Software Quality (2) Software Engineering Management (Medição de Software) (2) Software Requirements (4) Negociação de Requisitos (Win-Win) (1) Modelagem de Sistemas» Modelos e Ontologias (1)» UML (1) Modelagem de Agentes (1) Software Design (3) ES Baseada em Componentes (1) Modelagem de Sistemas» Modelos e Ontologias (1)» UML (1)

55 Exemplos de Ontologias de ST Existentes Software Technology (ST) Ontologies Software Data Programming Techniques (5) Serviços (3) Agentes (1) Computação Ubíqua e Pervasiva (1) Programming Languages (3) Código-Fonte (Genérica) (1) Java (2) Criptografia de Dados (1) Information Technology and Systems Database Management (1 SQL) Information Interfaces and Representation (2 Human-Computer Interaction)

56 Exemplos de Uso de Ontologias como Artefatos de Software Ontologias como artefatos de software usados em tempo de desenvolvimento: Processos de Engenharia Processo de Desenvolvimento (14) Destaque para a fase de Análise de Requisitos, com 11 propostas. Processo de Manutenção (1) Outros Processos (Não Engenharia) Processos de Apoio (3): Garantia da Qualidade, Verificação & Validação, Documentação (Rastreabilidade) Processos de Gerência (3): Gerência de Conhecimento (1), Definição de Processos de Software (2, sendo que um deles também trata da gerência do projeto).

57 Exemplos de Uso de Ontologias como Artefatos de Software Ontologias como artefatos de software usados em tempo de execução: Como artefatos arquitetônicos (3): Os autores destacam, ainda, que há várias propostas usando arquitetura de sistemas baseados em conhecimento (máquina de inferência atuando sobre um repositório que contém a ontologia), mas, por serem muito comuns, eles preferem citar três exemplos que usam outras arquiteturas. Como recursos de informação (3) Máquinas de busca na Web (Semantic Web) Ontologias como substitutos de bases de dados para o armazenamento de informação (na verdade armazenamento em triplas) Ainda que não citado nos exemplos, os autores destacam aplicações da Semantic Web e Web Services Semânticos.

58 Web Semântica de ES A Web Semântica de ES (Happel et al., 2010) é uma Web na qual agentes realizam tarefas de desenvolvimento de software baseados em dados enriquecidos semanticamente. A ES é um cenário apropriado para esta visão, uma vez que o conhecimento em projetos de software está tipicamente espalhado em vários locais, formatos, sistemas e pessoas. Especialmente em grandes projetos e projetos distribuídos, a informação é heterogênea e distribuída.

59 Web Semântica de ES Na Web Semântica de ES, desenvolvedores podem obter uma visão geral bem mais completa e precisa da informação relacionada à sua tarefa corrente. Além disso, eles podem se beneficiar de recursos adicionais, tais como acesso e compartilhamento fácil de experiências de outros desenvolvedores e checagem de consistência.

60 Web Semântica de ES A visão da WS de ES ainda não está concretizada, mas ela pode calcada em cima dos seguintes pilares: Dados de projeto devem ser expostos seguindo a abordagem da web semântica (metadados anotados semanticamente, com base em ontologias). Ferramentas devem ser construídas para serem capazes de produzir e consumir dados e serviços semânticos (interoperabilidade semântica). Ferramentas devem fazer uso de mecanismos de busca baseada em ontologias, sendo capazes de combinar informação externamente relevante (p.ex., na Web) e dados de outros projetos com dados do projeto corrente e do contexto específico do desenvolvedor (incluindo a tarefa sendo realizada).

61 Web Semântica de ES A concretização da Web Semântica de ES depende de três fatores principais (Happel et al. 2010): Existência de ontologias apropriadas para os vários fins discutidos anteriormente. Existência de metadados (anotações) semânticos Existência de ferramentas poderosas capazes de incrementar esses dados para prover novos serviços.

62 Web Semântica de ES Segundo Happel et al. (2010): O desenvolvimento e manutenção de ontologias é um desafio por si só, que precisa ser justificado por ganhos de produtividade. Contudo, para avaliar o sucesso em vários dos cenários vislumbrados do uso de ontologias em ES, é preciso aplicá-las (problema do ovo e da galinha ). Não há (nem haverá) uma única ontologia satisfazendo todas as necessidades. São várias as aplicações de ontologias em ES e, portanto, as ontologias resultantes vão variar em expressividade, escopo e propósito.

63 Referências Happel, H.J., Seedorf, S., Applications of Ontologies in Software Engineering. In: 2nd International Workshop on Semantic Web Enabled Software Engineering, Happel, H.J., Maalej, W., Seedorf, S., Applications of Ontologies in Collaborative Software Development. In: Collaborative Software Development, Mistrik, I., Grundy, J., Hoek, A., Whitehead, J. (Eds.), Springer, 2010, pp Ruiz, F., Hilera, J. R., Using Ontologies in Software Engineering and Technology, In: Ontologies in Software Engineering and Software Technology, Calero, C., Ruiz, F., Piatinni, M. (Eds.), Springer, 2006, pp Dillon, T, S., Chang, E., Wongthongtham, P., Ontology-based Software Engineering - Software Engineering 2.0, 19th Australian Conference on Software Engineering, 2008.

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

Ontologias de Engenharia de Software

Ontologias de Engenharia de Software Ontologias de Engenharia de Software Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo Agenda Semantic Web Based SE Ontologias

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

SABiO: Systematic Approach for Building Ontologies

SABiO: Systematic Approach for Building Ontologies SABiO: Systematic Approach for Building Ontologies Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Preocupações Principais do

Leia mais

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp.

JADEX: A BDI REASONING ENGINE. Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. JADEX: A BDI REASONING ENGINE Alexander Pokahr, Lars Braubach e Winfried Lamersdorf Springer US - Multi-Agent Programming 2005 pp. 149-174 Volume 15 Motivação Existem muitas plataformas para desenvolvimento

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

Requisitos de Ontologias

Requisitos de Ontologias Requisitos de Ontologias Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Engenharia de Requisitos de Software x Engenharia de

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

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

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

Visão Geral de Engenharia de Software

Visão Geral de Engenharia de Software Visão Geral de Engenharia de Software Ricardo de Almeida Falbo Ontologias para Engenharia de Software Departamento de Informática Universidade Federal do Espírito Santo Agenda Engenharia de Software: Definição

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

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

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

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais

Engenharia de Domínio e Desenvolvimento Baseado em Componentes. Processo DBC-Arch-DE Apoio do Ambiente Odyssey no Processo Considerações Finais Um Processo de Engenharia de Domínio com foco no Projeto Arquitetural Baseado em Componentes Ana Paula Blois Cláudia Werner Karin Becker Agenda Motivação Engenharia de Domínio e Desenvolvimento Baseado

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

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

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

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

Gestão de Ontologias

Gestão de Ontologias Gestão de Ontologias Apresentação de Relatório Técnico Luiz Cruz Silveira Neto Apresentação para Reunião do Grupo de Ontologias (Laboratório de Políticas Públicas Participativas) E-mail: luiznetogi@gmail.com

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

5 Conclusão e trabalhos futuros

5 Conclusão e trabalhos futuros 5 Conclusão e trabalhos futuros Neste capítulo fazemos uma retrospectiva do trabalho realizado, uma avaliação da proposta de solução de integração de dados ou conhecimentos mostrada na dissertação e também

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software Visão Geral Profa.Paulo C. Masiero masiero@icmc.usp.br ICMC/USP Algumas Dúvidas... Como são desenvolvidos os softwares? Estamos sendo bem sucedidos nos softwares que construímos?

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 : 16 Tema:

Leia mais

Introdução ao Catalysis

Introdução ao Catalysis Introdução ao Catalysis Tópicos Avançados de Engenharia de Software João Bosco jbapf@cin.ufpe.br Roteiro Dificuldades Motivação Componentes Desenvolvimento Baseado em Componentes (DBC) Catalysis jbapf@cin.ufpe.br

Leia mais

Mineração de Textos na Web

Mineração de Textos na Web Mineração de Textos na Web Luciano Antonio Digiampietri Escola de Artes Ciências e Humanidades da Universidade de São Paulo digiampietri@usp.br Resumo: Com o crescimento das informações disponíveis na

Leia mais

Arquitetura e Modularização de Ontologias

Arquitetura e Modularização de Ontologias Arquitetura e Modularização de Ontologias Ricardo de Almeida Falbo Engenharia de Ontologias Departamento de Informática Universidade Federal do Espírito Santo Agenda Arquitetura Ontológica Modularização

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

Engenharia de Requisitos

Engenharia de Requisitos Engenharia de Requisitos Criado: mar/2001 Atualizado: set/2005 Tópicos Definição de Requisitos Participantes Processo Documento de Requisitos (SRS) Evolução dos Requisitos 2 Referência I.Sommerville. Sw

Leia mais

Uma ferramenta para Definição de Mapeamentos entre Vocabulários usados na publicação de Dados Linkados

Uma ferramenta para Definição de Mapeamentos entre Vocabulários usados na publicação de Dados Linkados U NIVERSIDADE FEDERAL DE PERNAMBUCO GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO CENTRO DE INFORMÁTICA 201 2. 1 Uma ferramenta para Definição de Mapeamentos entre Vocabulários usados na publicação de Dados Linkados

Leia mais

Padrões para Definição de Metadados

Padrões para Definição de Metadados Padrões para Definição de Metadados Marcos Vinícius Salgado Monteiro mvsmonteiro@midiacom.uff.br 1- Introdução 2- MPEG-7 3- TV-Anytime 4- RDF 4.1- OWL 5- Conclusão Roteiro Introdução Hoje em dia, cada

Leia mais

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome: Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS Nome: 1. A figura abaixo representa, simplificadamente, as fases do Modelo de Ciclo de Vida Cascata.

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

Visão Geral do RUP.

Visão Geral do RUP. Visão Geral do RUP hermano@cin.ufpe.br Objetivos Apresentar as características RUP Discutir os conceitos da metodologia: fases, fluxos de atividades (workflows), iterações, responsáveis, atividades e artefatos

Leia mais

Introdução à Engenharia de Software

Introdução à Engenharia de Software Introdução à Engenharia de Software Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Imagem Clássica Objetivo da aula Depois desta aula você terá uma visão sobre o que é a engenharia

Leia mais

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações Sistema (SI) Coleção de atividades de Banco de Dados que regulam o compartilhamento, SI nas Organizações a distribuição de informações Fernando Fonseca e o armazenamento de dados relevantes ao gerenciamento

Leia mais

Requisitos de Software e UML Básico. Janaína Horácio

Requisitos de Software e UML Básico. Janaína Horácio Requisitos de Software e UML Básico Janaína Horácio janaina@les.inf.puc-rio.br Agenda Requisitos O que é? Objetivos? Atividades?... UML O que é? Modelos... Casos de Uso O que é? Componentes 2 Requisitos

Leia mais

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software

3 Arquitetura para a Coordenação e a Composição de Artefatos de Software Uma Arquitetura para a Coordenação e a de Artefatos de 23 3 Arquitetura para a Coordenação e a de Artefatos de Resumo Este capítulo apresenta a arquitetura ACCA, que é a parte central deste trabalho. A

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

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

Castro (2008, p.7) define a palavra ontologia de forma mais simplificada:

Castro (2008, p.7) define a palavra ontologia de forma mais simplificada: Recuperação de Informação baseada em Castro (2008, p.7) define a palavra ontologia de forma mais simplificada: Ela é o resultado da junção de dois termos gregos onta (entes) e logos (teoria, discurso,

Leia mais

Desenvolvimento Orientado a Modelos

Desenvolvimento Orientado a Modelos Desenvolvimento Orientado a Modelos João Paulo A. Almeida (jpalmeida@ieee.org) http://nemo.inf.ufes.br Departamento de Informática / Programa de Pós-Graduação em Informática Universidade Federal do Espírito

Leia mais

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa

Qualidade de Software: Visão Geral. Engenharia de Software Profa. Dra. Elisa Yumi Nakagawa Qualidade de : Visão Geral Engenharia de Profa. Dra. Elisa Yumi Nakagawa 1 o semestre de 2017 Qualidade de Qualidade é um termo que pode ter diferentes interpretações. Existem muitas definições de qualidade

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

Requisitos de Software

Requisitos de Software Engenharia de requisitos Requisitos de Software Estabelece os serviços que o cliente requer de um sistema e as restrições sob as quais tal sistema operará e será desenvolvido. Tais serviços e restrições

Leia mais

Desenvolvimento Ágil de Software

Desenvolvimento Ágil de Software DCC / ICEx / UFMG Desenvolvimento Ágil de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Agenda Métodos ágeis Histórico e Motivação Manifesto ágil Desenvolvimento dirigido a planos e ágil

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

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

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software

Introdução INTRODUÇÃO AO SWEBOK. Origens do corpo de conhecimentos da Engenharia de Software: Introdução a Computação e Engenharia de Software INTRODUÇÃO AO SWEBOK Introdução a Computação e Engenharia de Software Profa. Cynthia Pinheiro Introdução Origens do corpo de conhecimentos da Engenharia de Software: Engenharia da Computação Ciência da

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

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua

EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Universidade Católica de Pelotas Centro Politécnico Programa de Pós-Graduação em Informática EXEHDA-SS: Uma Contribuição a Sensibilidade ao Contexto na Medicina Ubíqua Luthiano Venecian, João Lopes, Adenauer

Leia mais

Análise de Sistemas Aula 4

Análise de Sistemas Aula 4 Análise de Sistemas Aula 4 Prof. Emerson Klisiewicz Contextualização Aula 4 Gerenciamento de Requisitos Refinamento de Requisitos Aprovação de Requisitos Matriz de Rastreabilidade O Sucesso Clientes satisfeitos

Leia mais

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília

Ontologias. Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Ontologias Profa. Lillian Alvares Faculdade de Ciência da Informação, Universidade de Brasília Origem Teoria sobre a natureza da existência Ramo da filosofia que lida com a natureza e organização da realidade.

Leia mais

Ciclo de vida: fases x atividades

Ciclo de vida: fases x atividades Ciclo de vida Fase de definição Análise e Especificação Estudo de Viabilidade Estimativas Planejamento Fase de desenvolvimento Design Implementação e integração Verificação e Validação Fase de operação

Leia mais

PEP: Prontuário Eletrônico do Paciente

PEP: Prontuário Eletrônico do Paciente PEP: Prontuário Eletrônico do Paciente Revisando... O Prontuário Eletrônico é... um repositório onde todas as informações de saúde, clínicas e administrativas, ao longo da vida de um indivíduo estão armazenadas,

Leia mais

Associação Brasileira de Normas Técnicas (ABNT)

Associação Brasileira de Normas Técnicas (ABNT) Associação Brasileira de Normas Técnicas (ABNT) Comissão de Estudo Especial de Informática em Saúde () GT3 Conteúdo Semântico 11ª Plenária CEE78IS 15/12/2015 APRESENTAÇÃO DO PROJETO DE NORMA Nº: 078:000.000-085

Leia mais

Arquitetura de software

Arquitetura de software Arquitetura de software Problema: vamos implementar um clone do compraentrega.com.br Mantém preços atualizados Recebe encomendas e pagamento Recomenda itens a usuários Por onde começamos? Arquitetura =

Leia mais

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD

Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD Adriano Maranhão PROFISSIONAIS E ATIVIDADES ENVOLVIDAS EM UM SGBD ADMINISTRADOR DA BASE DE DADOS Em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador

Leia mais

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída 11 1 Introdução Recentes avanços em redes de computadores impulsionaram a busca e o desenvolvimento de meios para facilitar e acelerar o desenvolvimento de aplicações em sistemas distribuídos, tornando

Leia mais

Uma Infra-estrutura para Gerência de Conhecimento em ODE

Uma Infra-estrutura para Gerência de Conhecimento em ODE Uma Infra-estrutura para Gerência de Conhecimento em ODE Ana Candida Cruz Natali, Ricardo de Almeida Falbo Departamento de Informática, Universidade Federal do Espírito Santo UFES Av. Fernando Ferrari

Leia mais

Reutilização de Software

Reutilização de Software Reutilização de Software Cláudia Maria Lima Werner werner@cos.ufrj.br COPPE/UFRJ Programa de Engenharia de Sistemas e Computação Tópicos Engenharia de Software Processo de Software Reutilização de Software

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

Análise de sistemas. Engenharia de Requisitos

Análise de sistemas. Engenharia de Requisitos Análise de sistemas Engenharia de Requisitos Análise de Requisitos Processo de descobrir, analisar, documentar e verificar serviços requeridos para um sistema e suas restrições operacionais. 2 O que é

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 OLAP: Fonte: Arquitetura Vaisman, A., Zimányi,

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

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados

Estilo: BlackBoard. BlackBoard = repositório de dados compartilhados Estilo: BlackBoard Útil para problemas no qual não há uma solução determinística Uma coleção de programas independentes que trabalham cooperativamente em uma estrutura de dados comum (blackboard) Vários

Leia mais

REUSO E REUSABILIDADE

REUSO E REUSABILIDADE REUSO E REUSABILIDADE Manutenção de Software Profa. Cynthia Pinheiro Antes de mais nada... 2ª Lista de Exercícios Já está disponível no site a 2ª Lista de Exercícios Entrega: dia 03/10, no horário da aula.

Leia mais

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje

especificação por meio de exemplos não é garantia de corretude, mas a experiência mostra que tende a ser melhor do que o estado da prática hoje 1 Introdução Testar é o conjunto de tarefas ou passos executados para verificar se um produto ou serviço atende à sua proposta. Dessa forma, a execução de testes em um programa contribui para a melhoria

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

Projeto de software Estrutura do software e arquitetura SWEBOK

Projeto de software Estrutura do software e arquitetura SWEBOK Projeto de software Estrutura do software e arquitetura SWEBOK SWEBOK Design Patterns Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas da engenharia Design

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

Engenharia de Software

Engenharia de Software Instituto Superior Politécnico de Ciências e Tecnologia Engenharia de Software Prof Pedro Vunge www.pedrovunge.com I Semestre de 2018 Capítulo 1 Introdução SUMÁRIO Engenharia de Software Definição; Objectivos

Leia mais

SOFTWARE REQUIREMENTS

SOFTWARE REQUIREMENTS SOFTWARE REQUIREMENTS Ian Sommerville, 8º edição Capítulo 6 Aula de Luiz Eduardo Guarino de Vasconcelos O que é um requisito? Pode variar de uma declaração abstrata de alto nível de um serviço ou de uma

Leia mais

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos

Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Desenvolvimento Baseado em Componentes e o Enfoque de Linha de Produtos Segundo Workshop de Desenvolvimento Baseado em Componentes Itana Maria de Souza Gimenes itana@din.uem.br Departamento de Informática

Leia mais

6 Conclusão. 6.1 Trabalhos relacionados

6 Conclusão. 6.1 Trabalhos relacionados Conclusão 112 6 Conclusão 6.1 Trabalhos relacionados A primeira versão do método SHDM apresentada por Lima (2003) empregava um modelo orientado a objetos como a base estrutural do modelo conceitual de

Leia mais

6 Conclusão Contribuições da Dissertação

6 Conclusão Contribuições da Dissertação 6 Conclusão Neste trabalho, foi apresentado um sistema colaborativo capaz de controlar as versões das edições de um vídeo no formato MPEG-2, sem que os editores estejam no mesmo local, ao mesmo tempo.

Leia mais

Conceitos relativos a Banco de Dados & Modelos de Informação de Banco de Dados. Introdução

Conceitos relativos a Banco de Dados & Modelos de Informação de Banco de Dados. Introdução Conceitos relativos a Banco de Dados & Modelos de Informação de Banco de Dados Prof. Anderson Henriques Introdução A quantidade de informação relevante para a tomada de decisões nas organizações é muito

Leia mais

Requisitos de Sistemas

Requisitos de Sistemas Requisitos de Sistemas Unidade I - Engenharia de Requisitos Definição de Requisitos (Continuação) Processos de Engenharia de Requisitos (Cont.) - Análise - Registro - Validação - Gerência 1 Processo de

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

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

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional

Leia mais

Em Direção ao Gerenciamento Sustentável de Documentos

Em Direção ao Gerenciamento Sustentável de Documentos Em Direção ao Gerenciamento Sustentável de Documentos Talles Brito Viana Instituto Federal de Ensino, Ciência e Tecnologia do Ceará IFCE. e-mail: tallesbrito@ifce.edu.br Resumo: A documentação gerada dentro

Leia mais

Normas ISO:

Normas ISO: Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Normas ISO: 12207 15504 Prof. Luthiano Venecian 1 ISO 12207 Conceito Processos Fundamentais

Leia mais

Data Warehouse ETL. Rodrigo Leite Durães.

Data Warehouse ETL. Rodrigo Leite Durães. Data Warehouse ETL Rodrigo Leite Durães rodrigo_l_d@yahoo.com.br Introdução Um dos desafios da implantação de um DW é a integração dos dados de fontes heterogêneas e complexas, padronizando informações,

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

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

Requisitos de Software

Requisitos de Software Requisitos de Software Engenharia de requisitos Estabelece os serviços que o cliente requer de um sistema e as restrições sob as quais tal sistema operará e será desenvolvido. Tais serviços e restrições

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

Unidade 4 Projeto de Banco de Dados

Unidade 4 Projeto de Banco de Dados Unidade 4 Projeto de Banco de Dados Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

Sistemas Especialistas

Sistemas Especialistas Agenda Sistemas Especialistas Revisão Conceitos Básicos Entender uma ferramenta para S.E. Sistemas de Informação Inteligentes Prof. Esp. MBA Heuber G. F. Lima Aula2 Page 2 Conceitos I.A. Sistemas Especialistas

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

MIDB-OP: um Modelo de Integração de Dados Biológicos apoiado em Ontologias e Procedência de dados Caroline Beatriz Perlin

MIDB-OP: um Modelo de Integração de Dados Biológicos apoiado em Ontologias e Procedência de dados Caroline Beatriz Perlin MIDB-OP: um Modelo de Integração de Dados Biológicos apoiado em Ontologias e Procedência de dados Caroline Beatriz Perlin Orientador: Prof. Dr. Ricardo Rodrigues Ciferri Agenda Introdução Bancos de dados

Leia mais

5 Estudo de Caso. 5.1.O Cenário

5 Estudo de Caso. 5.1.O Cenário 5 Estudo de Caso Para ilustrar a integração de repositórios de sistemas de bibliotecas digitais e sistemas de aprendizagem segundo a proposta apresentada nesta tese, neste capítulo apresenta-se um estudo

Leia mais

6 Trabalhos Relacionados

6 Trabalhos Relacionados 6 Trabalhos Relacionados Existem vários projetos, tais como DILLEO e ILUMINA, que constroem Bibliotecas Digitais de LOs, mas não integram os repositórios nem os ambientes. Portanto, eles retratam abordagens

Leia mais

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO

ISO/IEC Roteiro IEC ISO. Histórico ISO/IEC ISO Roteiro Processos do Ciclo de Vida de Software Diego Martins dmvb@cin.ufpe.br Histórico Objetivos Organização Processos Fundamentais Processos Organizacionais de Processo IEC ISO International Electrotechnical

Leia mais

5 Modelo Conceitual de Teste

5 Modelo Conceitual de Teste Modelo Conceitual de Teste 56 5 Modelo Conceitual de Teste Visando ilustrar a relação das informações de teste mencionadas no capitulo 3 e assim ajudar na atividade de gerência dos testes e na geração

Leia mais

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc.

Análise. Orientada a Objetos Modelo Funcional, Modelo Estrutural e Modelo Comportamental. Linguagens: Java, C++, etc. Análise Estruturada Modelo Essencial ou Lógico constitui-se de dois sub-modelos (Modelo Ambiental e Modelo Comportamental) e um Dicionário de Dados. Linguagens: Fortran, Cobol, C, etc. Orientada a Objetos

Leia mais

Banco de Dados. SGBDs. Professor: Charles Leite

Banco de Dados. SGBDs. Professor: Charles Leite Banco de Dados SGBDs Professor: Charles Leite Sistemas de BD Vimos que um BANCO DE DADOS representa uma coleção de dados com algumas propriedades implícitas Por exemplo, um BD constitui os dados relacionados

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