AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects

Documentos relacionados

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

A Semi-Automatic Strategy to Identify Crosscutting Concerns in PL-AOVgraph Requirement Models

Uma Abordagem de Engenharia de Requisitos Para Linhas de Produtos de Software

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Fase 1: Engenharia de Produto

Universidade Estadual de Maringá Centro de Tecnologia Departamento de Informática Programa de Pós-Graduação em Desenvolvimento de Sistemas para Web

Usando RDL para Derivação de Produtos em uma Linha de Produtos de Software

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

3. Fase de Planejamento dos Ciclos de Construção do Software

UML - Unified Modeling Language

Método Aldeia de Projetos

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

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Table 1. Dados do trabalho

Process Tailoring. Ana Luiza Dallora Moraes Felipe Madureira Fonseca. COS723 - Reutilização de Software Toacy Oliveira

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Transformação de um Modelo de Empresa em Requisitos de Software

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

Princípios de Linhas de Produtos de Software. Prof. Alberto Costa Neto

Universidade Federal de Pernambuco

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Introdução à Engenharia de Software

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Figura 5 - Workflow para a Fase de Projeto

ENGENHARIA DE SOFTWARE I

Instituto de Computação, Universidade Federal do Amazonas (UFAM) Manaus-AM, Brasil

Padrões de projeto 1

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

DAS Inteligência Artificial Aplicada à Controle de Processos e Automação Industrial

ENQUALAB 2013 QUALIDADE & CONFIABILIDADE NA METROLOGIA AUTOMOTIVA. Elaboração em planos de Calibração Interna na Indústria Automotiva

Persistência e Banco de Dados em Jogos Digitais

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Desenvolvimento estruturado versus orientado a objetos.

MODELOS DE PROCESSO. Isac Aguiar isacaguiar.com.br

Desenvolvimento Baseado em Componentes e o Processo UML Components

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

Processo de Desenvolvimento Unificado

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

2 Engenharia de Software

PL-SCIENCE: CONECTANDO ONTOLOGIAS E MODELOS DE FEATURES EM UMA LINHA DE PRODUTO PARA APLICAÇÕES CIENTÍFICAS

GARANTIA DA QUALIDADE DE SOFTWARE

Introdução ao Processo Unificado (PU)

Uma Abordagem para Tratamento de Regras de Negócio nas Fases Iniciais do Desenvolvimento

Engenharia de Software

Pós Graduação Engenharia de Software

Planejamento e Gerenciamento de Software. Tema 3. Gerência de Projetos Profa. Susana M. Iglesias

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Projeto de Arquitetura

Linha de Produto de Software

Engenharia de Software

Agenda da Aula. Resumo dos Padrões (Aula 4) Padrões Arquiteturais. Arquitetura Cliente-Servidor. Arquitetura Cliente-Servidor

O Processo Unificado: Captura de requisitos

Fundamentos em Segurança de Redes de Computadores NBR ISO 27001

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Linhas de Produto de Software

Qualidade de software

Engenharia Reversa e Reengenharia

Notas de Aula 02: Processos de Desenvolvimento de Software

Modelos de Qualidade de Produto de Software

Engenharia de Software Processo de Desenvolvimento de Software

Qualidade de Software

Desenvolvimento de software orientado a características e dirigido por modelos

Introdução Ciclo de vida tradicional de desenvolvimento Prototipagem Pacotes de software Desenvolvimento de 4ª geração Terceirização

Requisitos de Ferramentas Especializadas de Gestão de Configuração de Software

Requisitos de Software

Gerenciamento de software como ativo de automação industrial

Integração dos Modelos de Gestão de TI


Arquitetura de Software

Engenharia de Software I: Análise e Projeto de Software Usando UML

Descrição Geral da Mobile Media

PESQUISA SOBRE O PERFIL DE ALUNOS NA UTILIZAÇÃO DE UM SITE DOCENTE DO ENSINO SUPERIOR

CONSTRUÇÃO DE UM FRAMEWORK PARA O DESENVOLVIMENTO DE APLICAÇÕES WEB

Engenharia de Software 2013/2

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

O que é um processo de software?

Aplicando Avaliações de Contextualização em Processos de Software Alinhados ao nível F do MR-MPS V1.2

Guia para usar o Toolkit

Engenharia de Linha de Produtos de Software e o Processo de Análise Automática: uma visão geral

Fábrica de Software 29/04/2015

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

Engenharia de Software II

GBD PROF. ANDREZA S. AREÃO

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Planejamento - 7. Planejamento do Gerenciamento do Risco Identificação dos riscos. Mauricio Lyra, PMP

Garantia da Qualidade de Software

Geração do Portal CPCX - UFMS pelo UNION: Um Estudo de Caso

Engenharia de Ontologias Seminário UPON

Engenharia de Requisitos Estudo de Caso

Dimensionamento de equipamentos reservas para subestações

Análise e Projeto Orientados por Objetos

Engenharia de Domínio baseada na Reengenharia de Sistemas Legados

MODELAGEM DE UM SUBSISTEMA IMOBILIÁRIO UTILIZANDO LINHAS DE PRODUTO DE SOFTWARE MODELING A REAL ESTATE SUBSYSTEM USING SOFTWARE PRODUCT LINES

Transcrição:

AIPLE-IS: An Approach to Develop Product Lines for Information Systems Using Aspects Rosana T. Vaccare Braga Fernão S. R. Germano Stanley F. Pacios Paulo C. Masiero Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo São Carlos SP Laboratório de Engenharia de Software Agosto de 2007

Agenda Introdução A abordagem AIPLE-IS Desenvolvimento do núcleo Criação dos produtos Trabalhos Relacionados Conclusões

Introdução Desenvolvimento orientado a objetos: bom potencial de modularização, mas não trata o problema de interesses transversais Desenvolvimento de software orientado a aspectos (DSOA): conceitos e linguagens relativamente bem desenvolvidos, embora processos ainda mereçam novas pesquisas.

Introdução Linha de produtos de Software (LPS): facilita o reuso em domínios específicos Desenvolvimento de produtos com base em um núcleo central contendo artefatos comuns a todos os produtos e um conjunto de artefatos representando partes variáveis.

Motivação LPS x DSOA: aspectos podem ser usados para facilitar a modularização das partes comuns e variáveis da LPS O uso de aspectos pode permitir que interesses correspondentes a features do sistema possam ser isolados e integrados para produzir novos produtos da LPS

Objetivo Descrever um processo em que uma LPS possa ser desenvolvida incrementalmente, usando aspectos de maneira sistemática para facilitar a introdução de novas características funcionais na LPS, sem impactar as características existentes. AIPLE-IS = Aspect based Incremental Product Line Engineering for Information Systems

Agenda Introdução A abordagem AIPLE-IS Desenvolvimento do núcleo Criação dos produtos Trabalhos Relacionados Conclusões

Baseada em abordagens para LPSs. Segue práticas de LPSs como análise de domínio, organização e classificação de conhecimentos e desenvolvimento e utilização de componentes. Para o desenvolvimento das features segue uma metodologia baseada na utilização do PU por Larman. Incorpora técnicas e artefatos da Abordagem Tema (Clarke et al).

Core Development Domain Analysis domain knowledge Core Features Development need for a product Product Creation features do not exist Develop Feature features exist Compose features

- Análise de Domínio

- Exemplo de artefato produzido: Requisitos do domínio 1 The system should allow the inclusion, search, modification, and removal of patients from the clinic. Patients have the following attributes: name, birth date, address, zip code, state, phone, e-mail, identification document number. 7 The system should allow the inclusion, search, modification, and removal of information about the service that the patient is receiving at the clinic, with the following data: therapist name, type of service, patient name, available dates/times, diagnosis, 24 The system should allow the inclusion, search, modification, and removal of appointments, containing the following data: patient name, therapist name, room, day/time scheduled, and service to be performed. 42 The system should allow the management of information about the possible types of service offered by the clinic.

- Exemplo de artefato produzido: Modelo de domínio Appointment uses 1 date hour showedup Room name description n has 1 RoomCategory description capacity 0..n 0..n 1 made to 0..1 Patient name birth gender address postalcode city state phone1 phone2 f ax email 0..1 Th erapis t attended by 0..n 0..1 refe rs to Receiv edserv ice name birth address postalcode city state phone1 phone2 f ax email works on 1 receives 1 Relativ e 0..n 1 has res po nsi bl e na me ki nship ge nder ag e ma rita lstatus de gre e jo b f romcl inic directed instituition directer f older schedule n av ailablehours av ailableday s situation comment conclusion 1..n 1 has 1 Promptbook has 1 n Entries date annotations

- Exemplo de artefato produzido: Modelo de features

- Feature Serviço R7 Patient Visão de Ação Therapist R 42 Service Room R 24 Appointment Patient R7 Therapist Visão de Ação Aparada Room R 42 Service R 24 Appointment

Core Development Domain Analysis domain knowledge Core Features Development need for a product Product Creation features do not exist Develop Feature features exist Compose features

Desenvolvimento do núcleo da LPS Projetar a arquitetura da SPL Projetar as features do núcleo Implementar as features do núcleo Testar as features do núcleo

Projeto da Features do Núcleo da LPS 20/44

Desenvolvimento do núcleo da LPS Projetar a arquitetura da SPL Projetar as features do núcleo Implementar as features do núcleo Testar as features do núcleo

A implementação das features do núcleo segue diretrizes iguais à implementação de outras features (referentes à parte variável da LP)

Core Development Domain Analysis domain knowledge Core Features Development need for a product Product Creation features do not exist Develop Feature features exist Compose features

Criação dos produtos Dividido em duas partes: Desenvolver feature e compor features Desenvolver Feature: Nesta etapa, novas features são adicionadas à LPS incrementalmente, usando POA quando apropriado. Diretrizes para desenvolver as novas features usando aspectos: G1 a G5

Exemplo de uma diretriz para desenvolver as novas features usando aspectos: G4 Inclusão de Associação: se a feature implicar na criação de novas associações entre classes existentes, ou entre uma nova classe e uma existente, elas devem ser implementadas com aspectos, para garantir a conexão com a feature e sua remoção se necessário

Criação dos produtos Compor features: Produtos são criados compondo-se as features do núcleo com features opcionais. Deve-se respeitar regras de composição estabelecidas na análise de domínio Um mapeamento features-pacotes pode ajudar Uma ferramenta pode ser construída para facilitar a composição

Agenda Introdução A abordagem AIPLE-IS Desenvolvimento do núcleo Criação dos produtos Trabalhos Relacionados Conclusões

Trabalhos Relacionados Alves et al. (2004) processo incremental para extrair uma LPS a partir de código existente aplicações no domínio de dispositivos móveis Refactoring Baixo nível de granularidade das features Loughran et al. (2004) framing e POA Apel et al. (2006) Aspectual mixing layers Mezini e Ostermann (2004) comparação entre modularização orientada a feature e aspectos

Agenda Introdução A abordagem AIPLE-IS Desenvolvimento do núcleo Criação dos produtos Trabalhos Relacionados Conclusões

Conclusões Abordagem incremental para desenvolvimento de linhas de produtos orientadas a aspectos. Seqüência de passos pequenos, bem definidos e reproduzíveis, com atividades e artefatos bem definidos. Features são consideradas como os principais recursos da aplicação, por isso são isoladas, encapsuladas e projetadas com POA.

Conclusões Vantagens O uso de aspectos facilitou a implementação das features, que ficaram mais coesas, fáceis de combinar e portanto reusáveis. Pode-se usar apenas parte da abordagem, por exemplo, somente as diretrizes de implementação, porém o benefício é maior se usar todo o processo. Uso de aspectos desde a fase de requisitos Capacidade da linha de produtos crescer incrementalmente elimina necessidade de forte definição de escopo.

Conclusões Limitações Estudo de caso de apenas parte de uma LPS Aplicação para sistemas de informação Tipo da arquitetura e linguagens escolhidas. Dificuldade na legibilidade das regras de negócio Algumas diretrizes facilitam o reúso, porém com conseqüências na facilidade de entendimento Trabalhos futuros Ferramenta para auxiliar a composição Estudos de Caso para averiguar a manutenibilidade das LPSs Estudos de Caso em outros domínios

Contato Rosana Braga rtvb@icmc.usp.br Fernão fernao@icmc.usp.br Stanley stanley.pacios@gmail.com Paulo Masiero masiero@icmc.usp.br