1 / 69

Reutilização (Engenharia de Domínio)

Reutilização (Engenharia de Domínio). Toacy C. de Oliveira COPPE/UFRJ. Introdução Conceitos Análise de Domínio Projeto e Implementação de Domínios Métodos. Agenda. Engenharia de Domínio. Introdução. Motivação.

harvey
Télécharger la présentation

Reutilização (Engenharia de Domínio)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Reutilização(Engenharia de Domínio) Toacy C. de Oliveira COPPE/UFRJ Toacy C. Oliveira - COPPE/UFRJ

  2. Introdução Conceitos Análise de Domínio Projeto e Implementação de Domínios Métodos Agenda Toacy C. Oliveira - COPPE/UFRJ

  3. Engenharia de Domínio Introdução Toacy C. Oliveira - COPPE/UFRJ

  4. Motivação • Como observado em [Parnas76], a quantidade de recursos necessários para desenvolver uma aplicação seria reduzido se esta fizesse parte de um grupo de aplicações similares (uma família de aplicações) que pudessem ser desenvolvidas a partir de um núcleo em comum. Toacy C. Oliveira - COPPE/UFRJ

  5. Problema • Como identificar esta família ? • Como identificar o que é comum e o que não é ? • Como identificar uma aplicação pertencente à familia? Toacy C. Oliveira - COPPE/UFRJ

  6. Resposta • Análise de Domínio • Engenharia de Domínio (termo mais abrangente) Toacy C. Oliveira - COPPE/UFRJ

  7. Motivação para ED (não-tec) • A maioria dos sistemas de software podem ser classificados de acordo com a área do negócio e o tipo de tarefas que estes suportam. • Ex: Sistemas de Reserva de Passagens, Registro Médico, Gerenciamento de Estoque... Toacy C. Oliveira - COPPE/UFRJ

  8. Motivação para ED (tec) • Similarmente, parte destes sistemas podem ser classificadas do acordo com sua funcionalidade. • Banco de Dados, Pacotes para Sincronização, Workflow, GUI.. Toacy C. Oliveira - COPPE/UFRJ

  9. Domínio ? • Área organizada ao redor de uma classe de sistemas. • Ex. Telecomunicações • Parte de um sistema. • Ex. Persistência Toacy C. Oliveira - COPPE/UFRJ

  10. Engenharia de Domínio • É a atividade de coletar, organizar e armazenar experiências passadas adquiridas na construção de sistemas ou parte de sistemas em um domínio em particular, na forma de uma artefato reutilizável. É também responsável por prover meios de reutilizar estas artefatos na construção de novos sistemas. Toacy C. Oliveira - COPPE/UFRJ

  11. Passos • Análise de Domínio • Projeto do Domínio • Implementação do Domínio Toacy C. Oliveira - COPPE/UFRJ

  12. Análise de Domínio • Define um conjunto de requisitos reutilizáveis em um domínio. Toacy C. Oliveira - COPPE/UFRJ

  13. Projeto do Domínio • Estabelece uma arquitetura comum aos sistemas de um dado domínio. Toacy C. Oliveira - COPPE/UFRJ

  14. Implementação do Domínio • Implementação dos artefatos reutilizáveis (componentes, linguagens de domínio, geradores) e a infra-estrutura de reuso. Toacy C. Oliveira - COPPE/UFRJ

  15. SE vs DE • SE (Software Engineering) • Visa o desenvolvimento de um sistema específico para um usuário específico em um contexto específico. • DE (Domain Engineering) • Visa o desenvolvimento de um artefato reutilizável, ou seja, genérico e flexível o suficiente para dar origem a várias aplicações.Leva em consideração um conjunto de usuários e um conjunto de contextos de utilização. Toacy C. Oliveira - COPPE/UFRJ

  16. DE vs AE Toacy C. Oliveira - COPPE/UFRJ

  17. Engenharia de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

  18. Domínio [Dicionário] • “A sphere of activity, concern, or function; a field, e.g. the domain of history.” American Heritage Dictionary Toacy C. Oliveira - COPPE/UFRJ

  19. Domínio [Czarnecki99] • An area of knowledge: • scoped to maximize the satisfaction of the requirements of its stakeholders, • including a set of concepts and terminology understood by practitioners in that area, and • including knowledge of how to build software systems (or parts of software systems) in that area. Toacy C. Oliveira - COPPE/UFRJ

  20. Análise de Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

  21. Análise de Domínio • Objetivos • Selecionar e definir o domínio foco. • Colecionar informações relevantes sobre o domínio e integrá-la a um Modelo de Domínio coerente. • Originalmente proposto por [Neighbors81] quando desenvolvendo o paradigma Draco. Toacy C. Oliveira - COPPE/UFRJ

  22. Fontes de Informação • Especialistas no Domínio • Manuais • Livros • Protótipos • Experimentos Toacy C. Oliveira - COPPE/UFRJ

  23. Modelo do Domínio*** • Representação das propriedades comuns e variáveis de um sistema em um domínio bem como suas interdependências (somente do que varia) . Toacy C. Oliveira - COPPE/UFRJ

  24. Estrutura do Modelo • Definição do Domínio • Léxico do Domínio / Domain Specific Language • Modelos Conceituais • Modelos de Features Toacy C. Oliveira - COPPE/UFRJ

  25. Definição • Define o escopo do domínio e caracteriza seu conteúdo através de exemplos de sistemas em seu domínio, contra-exemplos (sistemas fora do domínio) e regras genéricas de inclusão e exclusão. • Ex : “Todo sistema com a funcionalidade XXX pertence ao domínio”. Toacy C. Oliveira - COPPE/UFRJ

  26. Léxico • Define o vocabulário • Ex Dicionário de Dado, DSL, UML Profile. Toacy C. Oliveira - COPPE/UFRJ

  27. Modelo Conceitual • Descreve os conceitos em algum formalismo. • Ex. UML, Fluxograma,... Toacy C. Oliveira - COPPE/UFRJ

  28. Modelo de Features • Define um conjunto de requisitos reutilizáveis e configuráveis que especificam um sistema no domínio. Este requisito é chamado de Feature (será apresentado em breve). Toacy C. Oliveira - COPPE/UFRJ

  29. Um “template”*** Toacy C. Oliveira - COPPE/UFRJ

  30. Um “exemplo”*** Toacy C. Oliveira - COPPE/UFRJ

  31. Projeto & Implementação Domínio Conceitos Toacy C. Oliveira - COPPE/UFRJ

  32. Objetivo • Projeto • Desenvolver uma arquitetura para os sistemas do domínio. • Implementação • Materialização do projeto em componentes, geradores para configuração e etc. Toacy C. Oliveira - COPPE/UFRJ

  33. Arquitetura (1) • “Abstractly, software architecture involves the description of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on these patterns. In general, a particular system is defined in terms of a collection of components and interactions among these components. Such a system may in turn be used as a (composite) element in a larger system design.” [ShawGarlan96] Toacy C. Oliveira - COPPE/UFRJ

  34. Arquitetura (2) • A software architecture is a description of the subsystems and components of a software system and the relationships between them. Subsystems and components are typically specified in different views to show the relevant functional and nonfunctional properties of a software system. The software architecture of a system is an artifact. It is the result of the software development activity. [Buschmann et al96] Toacy C. Oliveira - COPPE/UFRJ

  35. Padrão Arquitetural • Configuração recorrente dos elementos de uma arquitetura. • Layers • Pipes and Filters • Blackboard • Broker • Model-View-Controller • Microkernnel Toacy C. Oliveira - COPPE/UFRJ

  36. Arquitetura Real • Normalmente está baseada em mais de um padrão ao mesmo tempo. • É um projeto de alto nível que satisfaz a todos os requisitos mas permite um alto grau de flexibilidade/liberdade para a implementação. • Ex OO Framework Toacy C. Oliveira - COPPE/UFRJ

  37. Engenharia de Domínio Métodos Toacy C. Oliveira - COPPE/UFRJ

  38. Por que outro ? • Métodos Tradicionais • Não diferenciam Engenharia de Domínio da Engenharia da Aplicação (ES). • Não levam em consideração a delimitação do domínio (não há escopo). • Não diferenciam entre a modelagem da variabilidade no contexto de uma ou várias aplicações. • Não representam a variabilidade de forma independente da plataforma. Toacy C. Oliveira - COPPE/UFRJ

  39. Métodos • FODA (Feature-Oriented Domain Analysis) [Kang90] • FORM (Feature-Oriented Reuse Method) [Kang98] • ODM (Organization Domain Modeling) [SCK96] • RSEB (Reuse-Driven Software Engineering Business) [JacobsonGriss97] • FeatuRSEB (Featured RSEB) [GrissFavaro98] • PuLSE (Product Line Software Engineering) [BDF99] • FAST (Family-Oriented Abstraction, Specification, and Translation) [Weiss99] Toacy C. Oliveira - COPPE/UFRJ

  40. Engenharia de Domínio O Modelo de Features Toacy C. Oliveira - COPPE/UFRJ

  41. O Modelo de Features*** • Representação hierárquica que visa capturar os relacionamentos estruturais entre as Features de um domínio de aplicação. Toacy C. Oliveira - COPPE/UFRJ

  42. Feature • Aspecto visível pelo usuário, qualidade ou característica presente em uma aplicação. • Característica ou conceito essencial para um stakeholder/cliente das aplicações em um domínio. Toacy C. Oliveira - COPPE/UFRJ

  43. Exemplo • Quando alguém compra um automóvel é necessário fazer uma escolha sobre a característica transmissão (manual ou automática). • Automóvel • Transmissão • Manual • Automática Toacy C. Oliveira - COPPE/UFRJ

  44. Representação da Feature • Nome • Deve ser conciso e capaz de descrever a característica em questão. • É utilizado como parte do vocabulário do domínio • Modelo de Features = Taxonomia Toacy C. Oliveira - COPPE/UFRJ

  45. Representação Gráfica Transmissão Toacy C. Oliveira - COPPE/UFRJ

  46. Exemplos Persistência EstratégiadeVenda Transmissão Toacy C. Oliveira - COPPE/UFRJ

  47. Features = Classes ? • Classes => descrição genérica de um conjunto de objetos. • Features => descrição genérica de instâncias de features. Toacy C. Oliveira - COPPE/UFRJ

  48. Features != Classes • Instâncias de Classes => têm propriedades pré-definidas, estado. • Instâncias de Features ou de conceitos => pode ser qualquer coisa. Toacy C. Oliveira - COPPE/UFRJ

  49. Diagrama de Features • É composto por um conjunto de nós (Features), relacionamentos entre estes nós e ícones nos relacionamentos. • Tem a forma de uma árvore onde a raiz representa o conceito em questão (concept node). Os outros nós da árvore reprsentam as features (feature node). Toacy C. Oliveira - COPPE/UFRJ

  50. Exemplo Carro Motor Transmissão Potência Toacy C. Oliveira - COPPE/UFRJ

More Related