Linha de Produtos de Software: Conceitos e Ferramentas

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

Download "Linha de Produtos de Software: Conceitos e Ferramentas"

Transcrição

1 Capítulo 1 Linha de Produtos de Software: Conceitos e Ferramentas Juliana Alves Pereira 1, Eduardo Figueiredo 1, Heitor Augustus Costa 2 1 Departamento de Ciência da Computação, Universidade Federal de Minas Gerais (UFMG) 2 Departamento de Ciência da Computação Universidade Federal de Lavras (UFLA) {juliana.pereira, figueiredo}@dcc.ufmg.br, heitor@dcc.ufla.br Resumo Linha de Produtos de Software (LPS) é um método de desenvolvimento que vem sendo difundido e utilizado por causa da capacidade de minimizar os custos e de maximizar a qualidade de software pelo reúso de artefatos. Apesar de muitas ferramentas para apoiar LPS estarem disponíveis, há estudantes e profissionais recém formados que não as conhecem suficientemente para alcançarem os benefícios esperados pela implantação de uma LPS. Assim, este documento visa à introdução dos conceitos de LPS com foco em ferramentas para gerência de variabilidade em LPS. Os benefícios esperado e as potenciais armadilhas pela sua utilização de LPS são discutidos. Ademais, o documento apresentada brevemente algumas ferramentas de apoio ao desenvolvimento de LPS, tais como SPLOT, FeatureIDE, XFeature, fmp e pure::variants. O objetivo é apresentar uma visão geral de várias ferramentas mas com foco particular na ferramenta SPLOT. A ferramenta SPLOT será utilizada para criação de modelos de características e configuração de produtos. Por fim, as conclusões fazem uma discussão sobre o potencial do método de desenvolvimento baseado em LPS Introdução Linha de Produtos de Software (LPS) é um método para sistematizar o reúso de software [26]. A mudança para o desenvolvimento baseado em reúso foi uma resposta às exigências de menores custos de desenvolvimento e manutenção, sistemas de maior qualidade e entregas mais rápidas de sistemas [32], o que colabora para aumento na satisfação dos clientes [13]. Uma LPS é um conjunto de sistemas de software definidos sobre uma arquitetura comum e que compartilham um mesmo conjunto de características (features) [32]. Essas características compartilhadas pelos sistemas de um

2 mesmo segmento de mercado são responsáveis pela satisfação de necessidades específicas dos clientes [31]. LPS surge como uma alternativa viável de desenvolvimento de sistemas de software que permite às empresas rápida entrada no mercado por fornecerem capacidade de customização em massa [31]. Grandes empresas de software, tais como, CelsiusTeach, Nokia, Philips e Avaya Telecom, adotaram LPS para desenvolver seus produtos [13]. Com isso, o processo de desenvolvimento de software começa a ter novo enfoque, diferente do utilizado tradicionalmente, visando ao reúso sistemático e ao cumprimento de exigências específicas dos clientes. O reúso sistemático de software consiste de uma mudança da abordagem de desenvolvimento de sistemas únicos para o desenvolvimento de famílias de sistemas [1]. Com esse enfoque, promete-se obter ganhos na produtividade, produtos mais confiáveis e a preço mais acessível. O conceito de desenvolvimento de software em famílias consiste basicamente na criação e manutenção de uma LPS que servirá como base para o desenvolvimento de um conjunto de sistemas relacionados a partir de artefatos comuns [9] [26]. Contudo, para apoio durante o desenvolvimento desta família de sistemas, são necessárias as ferramentas de configuração e de gerência de variabilidade, tais como, SPLOT [22], FeatureIDE [33], XFeature [24], fmp [15] e pure::variants [27]. Estas ferramentas desviam o foco de um desenvolvimento convencional para uma abordagem de desenvolvimento baseada na composição de artefatos e na modelagem do domínio. O objetivo deste documento é abordar os conceitos teóricos fundamentais que envolvem LPS, mostrar algumas das ferramentas utilizadas para a configuração e gerência de variabilidade em LPS e apresentar um exercício prático com a ferramenta SPLOT [22] com o intuito de fixar os conceitos abordados. SPLOT é uma ferramenta Web, gratuita e de código fonte aberto. Ela é utilizada para criação de modelos de características e configuração de produtos. No site da ferramenta, encontra-se um repositório com centenas de modelos de características criados por usuários da ferramenta ao longo de 3 anos. Além disso, é disponibilizada uma versão em que é possível instalar o SPLOT em uma máquina particular para garantir a proteção dos dados. É possível baixar o código da ferramenta e do SPLAR (biblioteca Java criada para realizar a análise de modelos de características). Existe ainda uma funcionalidade interessante chamada Configuration Workflow. Esta funcionalidade é controlada por um workflow e permite a configuração sistemática de um produto por diversas pessoas envolvidas no projeto. O restante deste documento está estruturado da seguinte forma. O objetivo, prérequisitos e o público alvo deste texto são destacados na Seção 1.2. A Seção 1.3 faz uma introdução a reúso de software e LPS enquanto a Seção 1.4 apresenta ferramentas para desenvolvimento de LPS. As funcionalidades da ferramenta SPLOT são detalhadas na Seção 1.5 antes de concluirmos o documento na Seção Objetivo, Pré-requisitos e Público Alvo Técnicas de desenvolvimento baseada em LPS vem crescendo e se intensificando cada vez mais no mercado. Assim, o principal objetivo deste documento é a introdução de conceitos de LPS bem como a sua aplicação prática utilizando uma ferramenta para gerenciamento de LPS. Espera-se que os leitores tenham conhecimento prévio em

3 Programação Modular ou Programação Orientada a Objetos. Além disso, é desejável o conhecimento básico de Engenharia de Software. O público alvo é composto de estudantes de graduação e pós-graduação e de profissionais de diversas áreas que trabalham com desenvolvimento de software. Trata-se de um tema que envolve conhecimento de Engenharia de Software, mas traz uma visão multidisciplinar do desenvolvimento de sistemas de software. Além dos participantes aprenderem os conceitos e princípios de LPS, espera-se que eles obtenham experiência prática no uso de ferramentas para LPS por meio de um exercício com a ferramenta SPLOT [22] Reuso de Software com Linha de Produtos de Software A crescente necessidade de um desenvolvimento cada vez mais ágil de sistemas de software, cada vez maiores e mais complexos resultou em um aumento significativo nas exigências por software de melhor qualidade [17][26]. Ao longo dos últimos vinte anos, muitas técnicas foram desenvolvidas para oferecer suporte a reúso de software. Estas técnicas exploram os fatos de os sistemas, no mesmo domínio de aplicação, serem semelhantes e terem potencial para reuso [32]. Uma das abordagens mais promissoras para o reuso é criar Linhas de Produto de Software (LPS) [26] Linhas de Produto de Software As LPS têm sido cada vez mais utilizadas como forma de reusar componentes de software entre aplicações semelhantes [8][9]. Essa vantagem é alcançada, pois a sua arquitetura é projetada de um modo bem específico: características comuns a um domínio formam o núcleo e outras características definem pontos de variação [16]. Uma LPS é um conjunto de sistemas de software que compartilham um conjunto comum de características, que atendam às necessidades específicas de um determinado segmento de mercado e que são desenvolvidas a partir de um conjunto comum de bens essenciais de uma forma prescrita [26]. Ela pretende explorar as semelhanças e diferenças dentro de uma família de sistemas em um campo particular de aplicação e fornece uma infra-estrutura para a derivação membros comuns dessa família [21]. É comum atualmente encontrar empresas que mantenham ou desenvolvam produtos de software a partir do mesmo segmento ou domínio. Este elevado grau de semelhança entre estes produtos de software permite a utilização do modelo de LPS com melhorias significativas nos seus processos de desenvolvimento [6]. Portanto, as LPS estão a emergir como um processo de desenvolvimento viável e importante, que permite às empresas a entrada rápida no mercado, resposta flexível e fornecem uma capacidade de customização em massa [31]. Através desta técnica, o processo de desenvolvimento de software começa a ter um novo enfoque diferente do utilizado tradicionalmente, visando o favorecimento do reuso e o cumprimento de exigências específicas dos clientes. Este novo enfoque, promete um ganho de produtividade, um produto de maior confiabilidade, qualidade, em um menor tempo e a um preço mais acessível, o que colabora para um aumento considerável na satisfação dos clientes [7][13]. Assim, o reuso sistemático de software consiste de uma mudança da abordagem de construção de sistemas únicos para o desenvolvimento de famílias de sistemas [7].

4 Modelos de Características Modelo de característica é o padrão de fato para representar a variabilidade de uma LPS e o espaço de possíveis configurações de todos os produtos dentro de uma família de sistemas [4][11]. Modelos de variabilidade estão presentes em quase todas as fases e atividades do ciclo de vida de LPS, como a análise do domínio da aplicação, escopo, seleção de produtos, derivação do produto, tempo de execução e evolução [22]. Assim, o modelo de característica tem um papel vital em LPS, fornecendo uma visão esquemática para representação de semelhanças e pontos de variabilidade dentro de uma família de sistemas [21]. Segundo [21], um modelo de característica é composto basicamente pelo diagrama de característica, regras de composição e análise relacional. Um diagrama de característica permite a visualização de recursos hierárquicos de uma LPS e suas relações [22]. Para verificar a variabilidade de um produto, pode-se utilizar diagramas de características e suas representações gráficas [17]. Em geral, as características estão organizadas nos diagramas de características utilizando Árvores [30] e Grafos Acíclicos Direcionados [20]. Essas características podem ser classificadas como obrigatórias (estão presente em todos os produtos extraídos da LPS), opcionais (não estão necessariamente presentes no produto extraído da LPS) ou alternativas (conjunto de características exclusivas ou não exclusivas). As regras de composição são responsáveis pela validação das combinações de características, ou seja, garantem a correta semântica entre as combinações realizadas [34]. A análise relacional faz recomendações indicando a melhor situação para que uma determinada característica seja ou não selecionada. Um método existente para análise de domínio é Feature-Oriented Domain Analysis (FODA) [17], que utiliza de um diagrama de característica para demonstrar as características identificadas e suas relações. A Figura 1 mostra um modelo de recursos de um sistema, denominado MobileMedia [14]. Os nós representam as características e as arestas mostram as relações entre elas. Um único nó raiz, MobileMedia, representa o conceito de domínio que está sendo modelado. Figura 1. Modelo de Característica MobileMedia.

5 As características opcionais são representadas com um círculo vazio, tal como Receive Photo, e elas podem ou não fazer parte do produto. Por outro lado, as características obrigatórias, tais como Media Management, são representadas por círculos cheios. Elas aparecem em todos os produtos que contenham a característica pai. Características alternativas podem ser exclusivas (XOR) ou não exclusivas (OR). A primeira indica que apenas uma sub-característica pode ser selecionada a partir das alternativas. Por exemplo, Screen1, Screen2 e Screen3 são características alternativas para o Screen Size. A segunda indica que uma ou mais características podem ser selecionada, tais como Photo, Music e Video, que permitem a seleção de mais de uma opção em um produto. Além das características e seus relacionamentos, um modelo de característica também pode incluir regras de composição. As regras de composição referem-se a restrições adicionais para restringir combinações de características [5]. Ela é responsável por validar uma combinação de características independentes, ou seja, inclui restrições adicionais para as características e as suas relações [11]. Restrições (cross-tree constraints) são normalmente de inclusão ou exclusão enunciadas da forma: "se a característica F for incluída, então a características X também deve ser incluída (ou excluída)" [5]. Por exemplo, o modelo de característica na Figura 1 mostra uma restrição entre SMSTransfer e CopyMedia. Isto é, se receber uma foto via SMS, esta foto deve ser copiada para o álbum Ferramentas para Desenvolvimento de LPS Grandes empresas de software já adotaram LPS para desenvolver seus produtos [29]. O conceito de desenvolvimento de software nas famílias consiste na criação e manutenção de sistemas relacionados a partir de um conjunto comum de artefatos [9][26]. Neste contexto, as ferramentas de modelagem de características, tais como SPLOT [22], FeatureIDE [33], XFeature [24], fmp [15] e pure::variants [27], devem ser utilizadas para apoiar o desenvolvimento dessas famílias de sistemas. Essas ferramentas suportam a composição de artefatos em vez de fornecer uma abordagem de desenvolvimento convencional. Entretanto, o processo de escolha de uma destas ferramentas que melhor atende aos objetivos desejados durante a implementação de uma LPS está longe de ser trivial devido às muitas opções disponíveis. Nesta seção nos limitamos a introduzir as ferramentas SPLOT [22], FeatureIDE [33], XFeature [24], fmp [15] e pure::variants [27] para desenvolvimento de modelos de características. Apresentamos suas principais funcionalidades a fim de apoiar a escolha de uma das ferramentas aqui documentadas que melhor satisfaçam as expectativas para o desenvolvimento de uma LPS SPLOT O SPLOT [22] é uma plataforma aberta, baseada na Web que promove a pesquisa colaborativa em LPS. A plataforma atualmente oferece aos pesquisadores várias ferramentas para editar, analisar e configurar modelos de característica além de um repositório com modelos de característica criados pelos usuários da ferramenta ao longo dos últimos 3 anos. Ela oferece também uma versão da ferramenta independente que pode ser instalada em uma máquina particular que inclui o recurso de Configuração de Workflow.

6 A Figura 2 ilustra a página inicial do SPLOT. Como mostrado nesta figura, as seguintes funcionalidades estão disponíveis na ferramenta: (i) Editor do modelo de característica, (ii) Configuração do produto, (iii) Análise automática, (iv) Repositório do modelo de característica e (v) Workflow de configuração de característica. Além destas funcionalidades a ferramenta apresenta código fonte livre, que pode ser personalizado e/ou continuado por indivíduos ou grupos interessados em desenvolver novas funcionalidades e apoiar o paradigma de LPS. Por fim, através da página da ferramenta, temos acesso aos parceiros de pesquisa, bem como trabalhos desenvolvidos relacionados ao SPLOT. Detalharemos as funcionalidades do SPLOT na Seção 1.6. Figura 2. Página inicial do SPLOT FeatureIDE FeatureIDE [33] é um framework baseado em Eclipse, amplamente utilizado, que abrange várias atividades no processo de desenvolvimento de LPS. É integrado com várias ferramentas de composição e de anotação, como AHEAD [1], FeatureHouse [2], Feature C++ [3], DeltaJ [28], AspectJ [10], Munge [23], Antenna [25], CIDE [18], e muitas linguagens, incluindo Java, C++, Haskell, C, C#, JavaCC, e XML [18]. FeatureIDE foi desenvolvido para suportar tanto a programação orientada a aspectos quanto a programação orientada a característica [12][19]. Fornece uma interface de usuário coerente e automatização das tarefas [33]. FeatureIDE fornece um editor de modelo de característica com suporte a recursos abstratos (ou seja, recursos que não pertencem a artefatos de implementação). Por exemplo, a característica Favourites da Figura 3 é uma característica abstrata. O modelo de característica pode ser construído graficamente pela adição e remoção de características no editor gráfico (ver Figura 3). Como modelos de característica podem mudar fortemente ao longo do tempo, na ferramenta FeatureIDE é permitido mover uma característica (incluindo suas sub-características) para uma nova característica pai. Os modelos de característica criados com FeatureIDE são armazenados em um formato XML. Os usuários podem editar o modelo de característica graficamente e textualmente simultaneamente. Os modelos também podem ser armazenados em diversos formatos gráficos ou impressos em um arquivo PDF.

7 Figura 3. Editor do modelo de característica. Um modelo de característica pode conter cross-tree constraints. Para este fim, FeatureIDE fornece um editor em que as restrições podem ser criadas ou editadas. O editor é enriquecido com um assistente de conteúdo para fácil manuseamento, bem como verificações de validade sintática e semântica. A Figura 4 mostra como as restrições são construídas no FeatureIDE. Por exemplo, estas verificações podem detectar características mortas. Uma características morta significa que ela e as subcaracterísticas, se houver, nunca farão parte de qualquer uma das instâncias possíveis da LPS. Além do formato de visualização em diagrama (Figura 3), a ferramenta permite a visualização do modelo em formato outline como mostrado na Figura 5. O editor de configuração mostrado na Figura 6 recebe como entrada o modelo de característica e oferece opções de configuração. O usuário seleciona as características e o produto é configurado e salvo em um arquivo de configuração. Múltiplas configurações podem ser criadas e uma delas deve ser marcada como atual. O editor de configuração oferece suporte aos desenvolvedores na criação de configurações válidas. Ele indica se uma configuração é válida na etapa de configuração atual. Além disso, apenas as escolhas de configurações válidas podem ser configuradas (propagação de decisões) [21]. Por exemplo, uma característica obrigatória no modelo de característica não pode ser eliminada e duas características alternativas não podem ser selecionados ao mesmo tempo.

8 Figura 4. Tela de criação e edição de restrições. Figura 5. Formato outline do modelo de características.

9 Figura 6. Tela para configuração do produto no FeatureIDE. Após criação do modelo de característica, é realizada a implementação dos sistemas de software desejados, com mapeamento entre os artefatos de implementação e as características. O mapeamento é necessário para gerar automaticamente um sistema de software com base em uma seleção de características. Usando o modelo de característica, uma configuração válida e artefatos de implementação, sistemas de software podem ser gerados automaticamente na ferramenta FeatureIDE. O processo de desenvolvimento é realizado no IDE Eclipse [33] XFeature O XFeature [24] é uma ferramenta de modelagem implementada como um plugin do Eclipse, cujo objetivo principal é automatizar a modelagem e configuração de artefatos reusáveis. A ferramenta está disponível como software livre e aberto (sob a licença GNU - General Public License) para download no site do projeto [35]. Inicialmente, o XFeature foi criado para auxiliar o desenvolvimento de aplicações espaciais, mas, de maneira geral, suporta o desenvolvimento baseado em LPS. Focado na criação de modelos e meta-modelos, o XFeature ainda está em fase de testes e é raramente utilizado na indústria de software. A ferramenta é usada para construir um modelo de um conjunto de ativos de software configuráveis. Esse modelo tem uma estrutura de árvore em que cada nó representa uma característica e cada característica pode ser descrita por um conjunto de sub-características, representadas como nós filhas. XFeature apresenta flexibilidade durante a representação gráfica dos modelos de característica. Ela é projetado para ser parametrizada com um modelo de exibição e o modelo de exibição define como os elementos individuais do modelo de característica (os nós do diagrama de característica, as linhas que ligam os nós pais aos nós filhos, etc.) devem ser processados graficamente [24].

10 A Figura 7 mostra a tela da área de edição do modelo de característica, que é dividida em três partes: (i) A área de edição de nós é onde o usuário pode adicionar ou excluir nós para o modelo de característica (Figura 7 (a)); (ii) A área de edição de propriedades é onde o usuário pode editar os valores das propriedades de cada (Figura 7 (b)); e (iii) A área de exibição do nó de árvore é uma área somente de exposição (ou seja, sem edição) onde o usuário pode navegar sob a estrutura da árvore do modelo de característica. Esta área será normalmente usada para navegar rapidamente na árvore de característica (Figura 7 (c)). Na prática, a interface de edição também inclui outras áreas (por exemplo, barras de comando, as áreas de gestão de projetos e arquivos, etc.). O XFeature é considerado uma ferramenta extremamente flexível por permitir controle do usuário na escolha dentre as configurações suportadas. Figura 7 Interface do XFeature [24] Feature Modeling Plugin (fmp) Semelhante ao XFeature, o fmp [18] é uma ferramenta implementada como plugin do Eclipse, com características puramente acadêmica sendo utilizada no auxílio ao desenvolvimento de LPS. Desenvolvida na Universidade de Waterloo, possui integração com o Rational Software Modeler (RSM) 1 e o Rational Sofrware Architect (RSA) 1. Entretanto, atualmente o projeto encontra-se descontinuado. O fmp facilita a modelagem de suas características pelo usuário ao permitir sua modelagem baseada em cardinalidade. Ela possui recursos de geração de código na definição de seu meta-modelo do modelo de características. Entretanto, apesar de ser 1 Família de produtos IBM Rational:

11 uma ferramenta de notação simples, é pouco intuitiva. A Figura 8 mostra as funcionalidades disponibilizadas pela ferramenta como a seleção de característica obrigatória, opcional, grupos de características, instâncias, edição das propriedades das características, configuração de restrições, dentre outras opções. Como mostrado pela Figura 8, somente o formato em estilo de árvore é disponibilizado para visualização e edição do modelo de características manipulado. Figura 8. Interface do fmp [15].

12 Pure::variants Desenvolvido pela Pure Systems 2, uma empresa especializada no desenvolvimento de software baseado em reúso, o Pure::variants [27] é uma das ferramentas para o desenvolvimento de LPSs mais maduras que se pode encontrar atualmente. Pode ser utilizada como um plugin do Eclipse e integrada a algumas ferramentas comerciais, como o Enterprise Architecht 3 e IBM Rational Rhapsody 4. O pure::variants [27] é uma ferramenta utilizada no suporte à modelagem, implementação, implantação e desenvolvimento (atividades de análise). Ela funciona através de uma arquitetura cliente-servidor, tendo como cliente o plugin do Eclipse IDE utilizado pelo usuário e como servidor um aplicativo C++ rodando em background. Encontra-se disponível na internet uma versão gratuita com algumas restrições em sua utilização. Figura 9. Interface do pure::variants [27]. A interface do modelo de característica é visualizada pela Figura 9. Nesta interface, temos: (i) características obrigatórias (representadas por! ), (ii) características alternativas or (representadas por X ) e (iii) características opcionais (representadas por? ). Sua arquitetura é definida pela notação FODA [17]. A ferramenta permite visualizar a mesma interface de edição na opção de modo tabela

13 Essa opção apresenta maiores informações da característica manipulada, tais como seu ID, nome único, nome visível e seu tipo. A tela apresentada pela Figura 10 é utilizada para configuração de produtos da LPS através da seleção de características. A ferramenta tem como pontos positivos uma variabilidade de editores e wizards, tornando-a uma ferramenta mais versátil e de maneira geral mais organizada e completa. Além disso, ela oferece uma linguagem proprietária alternativa e muito intuitiva, voltada para usuários comuns. Figura 10. Tela de configuração de produtos no pure::variants [27] Funcionalidades da Ferramenta SPLOT Esta seção detalha as principais funcionalidades da ferramenta SPLOT. O editor de modelo de característica é apresentado na Seção A Seção discute a funcionalidade para configuração do produto enquanto a análise automática de modelo de característica é apresentada na Seção Finalmente, a Seção mostra o funcionamento do repositório de modelos de característica e a Seção apresenta brevemente o workflow de configuração de característica Editor do Modelo de Característica Durante a edição de um modelo de característica na ferramenta SPLOT, duas opções estão disponíveis: (i) criar um novo modelo e (ii) editar um modelo existente. A Figura 11 mostra estas duas opções na interface da ferramenta SPLOT. Ao escolher a opção: Criar um novo modelo, será disposta uma tela da Figura 12 para edição de um novo modelo de característica. Além do editor de modelo, esta tela possui (i) uma tabela com informações das características, (ii) restrições (constraints), (iii) informações do modelo, (iv) visualização estatística e (v) análise da consistência.

14 Figura 11. Opções de edição do modelo de características. A criação de um modelo de característica é disposta no formato de árvore. A tela de informações das características é utilizada no momento da edição do modelo, para melhor documentar as características. As restrições são formas de validar combinação de características independentes. A adição de informações para o modelo criado é necessário para salvar o modelo no repositório SPLOT. É através destas informações que será possível identificar o modelo criado e posteriormente alterar o modelo. A visualização estatística do modelo contabiliza os tipos de características (por exemplo: quantidade total de características, características mandatórias, opcionais, alternativas, entre outras). A análise de consistência permite identificar características mortas caso existam, bem como a validade do modelo criado. As demais opções são: (i) configurar modelo de característica, (ii) exportar modelo (formato XML) e (iii) salvar modelo no repositório. Após a criação de um modelo de característica como o apresentado pela Figura 13, podemos realizar alterações no modelo. Para acessar o menu de restrições clique com o botão direito do mouse em qualquer lugar da restrição. As alterações são realizadas, clicando com o botão direito do mouse sob o nome da característica e escolhendo uma das opções disponíveis (por exemplo, criar ou excluir características). Quando uma característica é renomeada ou excluída, todas as restrições referentes a essa característica são automaticamente atualizadas ou excluídas. É possível também, visualizar as estatísticas e consistência (clicar em Run Analysis ) do modelo de característica criado como mostrado na Figura 14. Para realizar os próximos passos é necessário que o modelo seja salvo no repositório. Para isto o modelo deve (i) ser consistente, (ii) ter no mínimo 10 características, (iii) não ter características mortas e (iv) ter pelo menos os campos obrigatórios da tabela de informações devidamente preenchidos.

15 Figura 12. Editor do modelo de característica. Figura 13 Alterar modelo de característica.

16 Figura 14 Análise estatística e de consistência do modelo de característica Configuração do Produto Para configuração de produtos é necessário clicar sobre o ícone de configuração disponível no editor de modelo de característica (ver Figura 12). Um redirecionamento é realizado para a tela que contem o repositório SPLOT, basta selecionar o modelo de característica criado e estará apto a configurar um produto. A Figura 15 mostra a tela para configuração de um produto. Nesta tela, temos duas opções disponíveis para cada característica do modelo: (i) selecionar característica - indicado pelo símbolo e (ii) remover característica. No momento da configuração, as técnicas de auto-completar serão automaticamente realizadas. Por exemplo, ao selecionar uma das características alternativas Screen 1, Screen 2 ou Screen 3, automaticamente as demais serão removidas do produto. Ao lado do modelo, uma tabela é disposta com os passos realizados pelo usuário durante a configuração do produto. Além da configuração interativa, SPLOT suporta a pesquisa sob um catalogo de produtos baseada em características. Ou seja, é feita uma busca por produtos em catálogos de produtos reais com base em decisões da configuração de características. A Figura 16 mostra a busca por um produto laptop no catálogo de produtos. Nesta busca, ao marcar ou desmarcar características em um modelo de característica os usuários são capazes de filtrar produtos no catálogo de tal forma que apenas os produtos que correspondem às características configuradas pelos usuários são mostrados. Os usuários possuem sempre a garantia de encontrar pelo menos um produto no catálogo que corresponda à sua configuração. SPLOT usa um diagrama de decisão binário para implementar uma busca pelo(s) produto(s) no catálogo, a partir das características selecionadas.

17 Figura 15. Configuração do produto na ferramenta SPLOT. Figura 16. Pesquisa sob um catálogo de produtos.

18 Análise Automática A análise automática do modelo descreve algumas estatísticas como, por exemplo, quantidade de características mandatórias, opcionais e alternativas. A Figura 17 mostra uma tela de análise automática no SPLOT. Além dos dados estatísticos, é possível obter informações de consistência e de métricas para os modelos de característica. Estas métricas têm se mostrado muito úteis para a comparação de modelos de característica e consequentes avaliações de suas complexidades. Figura 17. Análise automática do modelo de característica Repositório do Modelo de Característica Atualmente, o repositório do SPLOT contém aproximadamente 250 modelos de características com aproximadamente 7000 características no total. Os modelos foram extraídos de publicações acadêmicas ou criados por usuários da ferramenta. Eles podem ser editados usando o editor de característica on-line do SPLOT. A Figura 18 mostra uma lista de algum modelos de características armazenados no repositório do SPLOT. A métrica CTCR tem se mostrado útil na análise da complexidade do modelo de característica para instancias SAT. CTCR é definido como a razão entre o número de características distintas nas restrições em relação ao número de características do modelo de característica. Por exemplo, digamos que um modelo tem 10 características, 2 delas são parte de uma restrição única ligada ao modelo (por exemplo, característica_1 implica característica_2 ). Nós dizemos então, que o CTCR para este modelo é de 0,2 ou (20%).

19 Figura 18. Repositório de modelos de característica. O objetivo principal do repositório é incentivar o compartilhamento de conhecimento entre os pesquisadores e melhorar a qualidade de pesquisas. A qualidade do repositório de modelos de característica é imposta pelas seguintes regras: (i) consistência - todos os modelos são garantidos para ser consistente (contém pelo menos uma configuração válida), (ii) correção - nenhum dos modelos contém características mortas e (iii) transparência - todos os modelos identificam os seus autores (ou literatura relacionada) e fornecem algumas informações de contato Workflow de Configuração de Característica Em um workflow é possível definir um fluxo de configuração de um produto. Este fluxo é realizado por diversas pessoas envolvidas no projeto de forma sistemática e controlado através de um workflow. Pelo uso desta funcionalidade, cada pessoa pode trabalhar na configuração da parte do modelo sobre a qual tem responsabilidade Conclusão Este documento fez uma introdução aos conceitos de LPS com foco em ferramentas para gerência de variabilidade em LPS. Os benefícios esperado e as potenciais armadilhas pela sua utilização de LPS foram discutidos. O documento apresentou cinco ferramentas para apoio ao desenvolvimento de LPS: SPLOT, FeatureIDE, XFeature, fmp e pure::variants. A ferramenta SPLOT foi utilizada para ilustrar mais detalhes, por exemplo, sobre a criação de modelos de características e a configuração de produtos.

20 Agradecimentos Este trabalho recebeu apoio financeiro da FAPEMIG, processos APQ e APQ , e do CNPq processo / Referências [1] AHEAD Tool Suite. Available: < users/schwartz/ats.html>. Accessed: 20/06/2012. [2] Apel, S.; Kästner, C.; Lengauer, C. FeatureHouse: Language-Independent, Automatic Software Composition. In: Int'l Conf. on Software Engineering (ICSE). pp [3] Apel, S.; Leich, T.; Rosenmüller, M.; Saake, G. FeatureC++: On the Symbiosis of Feature-Oriented and Aspect-Oriented Programming. In: Int'l Conference on Generative Prog. and Component Engineering (GPCE). pp [4] Bagheri, E.; Noia, T. D.; Ragone, A.; Gasevic, D. Configuring Software Product Line Feature Models Based on Stakeholders Soft and Hard Requirements. In: Int'l Conf. on Software Product Lines (SPLC). pp [5] Benavides, D.; Ruiz-Cortés, A.; Trinidad, P.; Segura, S. A Survey on the Automated Analyses of Feature Models. In: Jornadas de Ingeniería del Software y Bases de Datos. pp [6] Birk, A., Heller, G., John, I., von der Maßen, T., Müller, K., Schmid, K.: Product Line Engineering Industrial Nuts and Bolts. Fraunhofer IESE, /E, Kaiserslautern (2003). [7] Brito, R.; Colanzi, T. (2008) Avaliação da adequação do uso de aspectos na implementação de variabilidades de linha de produto de software. Departamento de Informática - Universidade Estadual de Maringá (UEM). 21 p. [8] Clements, P.; Brownsword, L.: A Case Study in Successful Product Line Development. Technical Report CMU/SEI-96-TR-0160, Software Engineering Institute (1996). [9] Clements, P. e Northrop, L. (2002) Software Product Lines: Practices and Patterns. Reading, Addison-Wesley Professional. [10] A. Colyer, A. Clement, G. Harley, M. Webster, Eclipse AspectJ: Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development Tools, 1st Edition., Addison-Wesley Professional, [11] Czarnecki, K.; Kim, C. H. P. Cardinality-Based Feature Modeling and Constraints: A Progress Report. In: International Workshop on Software Factories at OOPSLA. pp [12] Batory, D.; Sarvela, J. N.; and Rauschmayer, A. (2004) Scaling Step-Wise Refinement. IEEE Transactions on Software Engineering, Vol. 30, N. 6. [13] Dursckil, R.; Spinolal, M.; Burnett, R.; Reinehr, S. (2004) Linhas de Produto de Software: riscos e vantagens de sua implantação. VI Simpósio Internacional de Melhoria de Processos de Software.

21 [14] Figueiredo, et al. Evolving Software Product Lines with Aspects: An Empirical Study on Design Stability. In: Int'l Conf. on Software Engineering (ICSE). pp [15] Generative Software Development Lab, Disponível em: Acesso em: 30/09/2012. [16] I. Jacobson, M. Griss, P. Johnson (1997) Software Reuse: Architecture, Process and Organization for Business success, Addison-Wesley, [17] Kang, K. C.; Kim, S.; Lee, J.; Kim, K.; Shin, E.; Huh, M. FORM: A Feature- Oriented Reuse Method with Domain-Specific Reference Architectures. In: Journal Annals of Software Engineering. V. 5. pp [18] C. Kastner, S. Apel, and M. Kuhlemann. Granularity in software product lines. In Proc. Int l Conf. on Software Engineering, [19] Kiczales, G.; Lamping, J.; Mendhekar, A.; Maeda, C.; Lopes, C.; Loingtier, J.; and Irwin, J. (1997) Aspect-Oriented Programming, Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pp [20] B. D. McKay, G. F. Royle, I. M. Wanless, F. E. Oggier, N. J. A. Sloane, and H. Wilf (2004) "Acyclic Digraphs and Eigenvalues of -Matrices." J. Integer Sequences 7, Article , 1-5. [21] M. Mendonça, Efficient reasoning techniques for large scale feature models, Ph.D. Thesis, University of Waterloo, Canada, 2009 [22] Marcílio Mendonça, Moises Branco, Donald Cowan: S.P.L.O.T. Software Product Lines Online Tools. In Companion to the 24th ACM SIGPLAN International Conference on Object-Oriented Programing, Systems, Languages, and Applications, OOPSLA 2009, October 2009, Orlando, Florida, USA. [23] Munge Development Team, Munge: A Purposely-Simple Java Preprocessor, Website, available online at ; visited on January 11th, [24] A. Pasetti (P&P Software GmbH / ETH-Zurich) and O.Rohlik (ETH-Zurich). Technical Note on a CONCEPT FOR THE XFEATURE TOOL, Issue: 1.3.Reference: PP-TN-XFT June p. [25] J. Pleumann, O. Yadan, E. Wetterberg, Antenna: An Ant-to-End Solution For Wireless Java, [26] Pohl, K.; Bockle, G.; Linden, F.J.V.D. (2005) Software Product Line Engineering: Foundations, Principles and Techniques. Springer. [27] pure::variants Eclipse Plug-in User's Guide. Version 2.0 for pure::variants p. Published [28] I. Schaefer, L. Bettini, V. Bono, F. Damiani, N. Tanzarella, Delta-oriented programming of software product lines, in: Proc. Int l Software Product Line. Conference, SPLC, Springer, Berlin, Heidelberg, New York, London, 2010, pp

22 [29] Sharp, D. C. Reducing Avionics Software Cost Through Component Based Product Line Development. Software Technology Conference [30] P. Sochos, I. Philippow, M. Riebisch, (2004) "Feature-Oriented Development of Software Product Lines: Mapping Feature Models to the Architecture". In: (Ed.). Object-Oriented and Internet-Based Technologies: Springer Berlin / Heidelberg, v.3263/2004. [31] Software Engineering Institute. Acesso em: 12/05/2012. [32] Sommerville, I. Engenharia de Softwawe, 9a. Edição. Pearson, pág [33] T. Thum, et al., FeatureIDE: An extensible framework for feature-oriented software development, Science of Computer Programming (2012), doi: /j.scico [34] J. Van Gurp, J. Bosch, M. Svahnberg (2001): On the notion of variability in software product lines. Proc. Working IEEE/IFIP Conf. Software Architecture (WICSA 01). [35] XFeature. Acesso em: 20/07/2012.

Linha de Produtos de Software: Conceitos e Ferramentas

Linha de Produtos de Software: Conceitos e Ferramentas Capítulo 3 Linha de Produtos de Software: Conceitos e Ferramentas Juliana Alves Pereira, Eduardo Figueiredo, Heitor Costa Abstract Software Product Line (SPL) is a development method for software reuse

Leia mais

Tela Principal do ArgoUML. ArgoUML: Diagrama de Casos de Uso. Elementos do diagrama. Criar um novo diagrama. Elementos do diagrama

Tela Principal do ArgoUML. ArgoUML: Diagrama de Casos de Uso. Elementos do diagrama. Criar um novo diagrama. Elementos do diagrama DCC / ICEx / UFMG Tela Principal do ArgoUML ArgoUML: Diagrama de Casos de Uso Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Criar um novo diagrama Novo Diagrama de Casos de Uso Ator Caso de Uso

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

Korreio: solução integrada para a administração de sistemas de correio eletrônico baseada em software livre

Korreio: solução integrada para a administração de sistemas de correio eletrônico baseada em software livre Korreio: solução integrada para a administração de sistemas de correio eletrônico baseada em software livre Reinaldo Carvalho 1, Antônio Abelém 2 Instituto de Informática Universidade Federal do Pará (UFPA)

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

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

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

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

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017

Sankhya Web Connection. Versão: 02 Criado em: 28/03/2017 0 de 14 Em alguns navegadores de internet, vem se tornando complicado o uso de plugins (um plugin ou módulo de extensão é um programa de computador usado para adicionar funções a outros programas maiores,

Leia mais

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução 1. Introdução 1.1. O que é Microsoft PowerPoint 2007 Microsoft Office PowerPoint 2007 é um software de apresentação gráfica produzido pela Microsoft Corporation para o sistema operacional Microsoft Windows.

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

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

Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos

Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Captor-AO: Gerador de Aplicações apoiado pela Programação Orientada a Aspectos Carlos Alberto de Freitas Pereira Júnior 1 Paulo Cesar Masiero 1 Rosana Teresinha Vaccare Braga 1 1 Instituto de Ciências

Leia mais

Reuso de Software Aula Maio 2012

Reuso de Software Aula Maio 2012 Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo reuso.software@gmail.com Componentes Modelos de Componentes

Leia mais

Linha de Produto de. Luciana Nascimento Peter Lupo. Software

Linha de Produto de. Luciana Nascimento Peter Lupo. Software Linha de Produto de Luciana Nascimento Peter Lupo Software Roteiro Motivação Definições Gerais Desenvolvimento de Linha de Produto Exemplos e Ferramentas Pesquisa em Linha de Produto Motivação Panorama

Leia mais

Técnicas para Reutilização de Software

Técnicas para Reutilização de Software DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de

Leia mais

Manual Telemetria - Horímetro

Manual Telemetria - Horímetro Sumário Apresentação... 2 Home... 2 Definição do Idioma... 3 Telemetria Horímetro... 4 Sensores... 5 Faixas Horímetro... 5 Configura Faixa Sensor... 14 Detalhado Período... 21 Consolidado Dia... 26 Consolidado

Leia mais

Engenharia de Software

Engenharia de Software Universidade São Judas Tadeu Prof. André Luiz Ribeiro Prof. Jorge Luis Pirolla Introdução à Computação Engenharia de Software Tópicos O que é Engenharia de Software? Engenharia de Software em camadas Processo

Leia mais

Metodologia da Pesquisa em Sistemas de Informação. Aula 3. Projeto de Pesquisa. Revisão Sistemática. Profa. Fátima L. S. Nunes

Metodologia da Pesquisa em Sistemas de Informação. Aula 3. Projeto de Pesquisa. Revisão Sistemática. Profa. Fátima L. S. Nunes Metodologia da Pesquisa em Sistemas de Informação Aula 3 Projeto de Pesquisa Revisão Sistemática Profa. Fátima L. S. Nunes Metodologia Pesquisa SI- 1 Como elaborar um projeto? Roteiro 1) Escolha do tema

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 Para Sommerville a arquitetura de sistemas descreve o sistema em termos de um conjunto de unidades

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Luiz Leão luizleao@gmail.com http://www.luizleao.com Questão 1 O desenvolvimento de software envolve usuários, clientes e desenvolvedores. Avalie as seguintes afirmações

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

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado)

Processo. Processo unificado. Principais Características do UP. Principais Características do UP RUP. Unified Process (Processo Unificado) Processo UP Unified Process (Processo Unificado) Conjunto de passos que tem como objetivo atingir uma meta Processo de software na ES, processo que visa a produzir o software - de modo eficiente e previsível

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

GUIA RÁPIDO. MDIForms. Sintel Informática Ltda. Rua Vergueiro, nº º andar Vila Mariana, São Paulo - SP CEP:

GUIA RÁPIDO. MDIForms. Sintel Informática Ltda. Rua Vergueiro, nº º andar Vila Mariana, São Paulo - SP CEP: GUIA RÁPIDO MDIForms Sintel Informática Ltda. Rua Vergueiro, nº 2016-4º andar Vila Mariana, São Paulo - SP CEP: 04102-000 www.sintel.com.br Índice 1. Objetivo...3 2. Exibição dos dados...3 2.1. Seleção

Leia mais

Assina Web S_Line Manual de Uso

Assina Web S_Line Manual de Uso 1. Introdução O Assina Web S_Line permite assinar digitalmente Resultados de Exames em XML que estão disponíveis na internet. É feito o download dos documentos no computador, convertidos para o formato

Leia mais

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools Desenvolvido por: Manuele Ferreira e Daniela Claro Requisitos do ambiente Seguem abaixo os requisitos do ambiente.

Leia mais

ENGENHARIA DE SOFTWARE

ENGENHARIA DE SOFTWARE ENGENHARIA DE SOFTWARE Qualidade de Software Qualidade do produto e do processo Padrões de software Revisões Medições e métricas de software Kele Teixeira Belloze kelebelloze@gmail.com CONCEITO DE QUALIDADE

Leia mais

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software

De Olho na Pista. Documento de Arquitetura. De Olho na Pista Documento de Arquitetura Data: 23/03/2013. AJA Software AJA Software www.ajasoftware.wordpress.com De Olho na Pista Documento de Arquitetura Confidencial De Olho na Pista, 2013 1 Sumário 1. Introdução 3 2. Metas e Restrições da Arquitetura 3 3. Padrão da Arquitetura

Leia mais

Sistema PCMalotes Developed by: Bruno Lacerda All copyrights reserveds for Prado Chaves

Sistema PCMalotes Developed by: Bruno Lacerda All copyrights reserveds for Prado Chaves Sistema PCMalotes Developed by: Bruno Lacerda All copyrights reserveds for Prado Chaves Índice Manual PCMalote...1 Índice...2 Acesso ao Sistema...3 Cadastros...4 Empresa...4 Assessoria...5 Malotes...7

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

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias 1 IDES E PROGRAMAÇÃO Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias {claudio,macdias}@icmc.usp.br 2 Agenda Conceitos Instalação e Configuração Compilação e Execução de Código IDEs Exemplo

Leia mais

Spectrum Miner. Versão 8.0. Guia do usuário para a integração do Portrait Dialogue

Spectrum Miner. Versão 8.0. Guia do usuário para a integração do Portrait Dialogue Spectrum Miner Versão 8.0 Conteúdo 1 - Introdução Objetivo 4 Quem deve ler este manual 4 Documentação relacionada 4 Os campos temporários criados após uma seleção de segmentos ficar disponível para a exportação

Leia mais

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso. Engenharia de Software Aula 07 Tópicos da Aula Introdução à UML e Introdução a UML Visão geral de alguns diagramas Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 28 Março 2012 A

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

Início Rápido: Exibir relatórios Início Rápido: Exibir relatórios

Início Rápido: Exibir relatórios Início Rápido: Exibir relatórios Início Rápido: Exibir relatórios Guia do Cliente Novembro de 2016 Este guia mostra-lhe como criar, salvar, visualizar e exportar relatórios padrão e personalizados no Centro de Negócios da Microsoft. Para

Leia mais

5 Usando as Representações de Design Rationale

5 Usando as Representações de Design Rationale 5 Usando as Representações de Design Rationale Como mencionamos anteriormente, representar design rationale em uma linguagem formal usando o modelo formal dos artefatos nos permite atribuir semântica ao

Leia mais

Análise e Projeto de Software

Análise e Projeto de Software Análise e Projeto de Software Proj. Desenvolvimento de Software Prof. Cleverton Hentz cleverton.hentz@ifrn.edu.br 8 de junho de 2017 Material Apresentado Sumário de Aula 1 Introdução 2 Estruturação do

Leia mais

Introdução a Teste de Software

Introdução a Teste de Software Universidade Católica de Pelotas Tecnólogo em Análise e Desenvolvimento de Sistemas Disciplina de Qualidade de Software Introdução a Teste de Software Prof. Luthiano Venecian 1 Conceitos Teste de software

Leia mais

Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade

Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade Gradle para Geração de Multi-Aplicativos Móveis: Um Estudo de Caso em uma Universidade Ramon Abilio 1, Cristiano M. Garcia 1, João A. Silva 1 1 Diretoria de Gestão de Tecnologia da Informação (DGTI) Universidade

Leia mais

BCD29008 Banco de dados

BCD29008 Banco de dados BCD29008 Banco de dados Modelo ER & Modelo Relacional Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José mello@ifsc.edu.br http://docente.ifsc.edu.br/mello/bcd 18 de

Leia mais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais

Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais 1 Utilização de XML no Desenvolvimento de Hiperdocumentos Educacionais Fabiano Fagundes, Parcilene F. Brito, Fernando L. Oliveira, Jackson G. Souza, Carlos H. Tolentino Resumo O desenvolvimento colaborativo

Leia mais

Documento de Arquitetura de Software- SGE

Documento de Arquitetura de Software- SGE Documento de Arquitetura de Software- SGE IFG Autor: Marcelo Roldrin Barros Silva 1. Introdução 1.1 Finalidade Este documento oferece uma visão geral arquitetural abrangente do sistema SGE (Sistema de

Leia mais

Manual de atualização para uso do xml versão 3.10

Manual de atualização para uso do xml versão 3.10 Manual de atualização para uso do xml versão 3.10 2 Manual do usuário C-Plus 4 0 1 INTRODUÇÃO 3 1.1 Atualização... C-Plus 3 1.2 Atualização... C-Plus NF-e 6 2 CONFIGURAÇÃO 10 2.1 CPlusNFe... 11 2.2 CPlus...

Leia mais

GUIA DE INÍCIO RÁPIDO

GUIA DE INÍCIO RÁPIDO Versão 2.00 Junho de 2016 Índice 1 Introdução... 3 2 Viewer Edition... 3 2.1 Barra de menu... 4 2.2 Curva ABC... 11 2.3 Áreas de pivoteamento... 12 3 Personal Edition... 12 3.1 Barra de menu... 13 www.bxbsoft.com.br

Leia mais

CAU Controle de Acesso Unificado. Manual de Usuário

CAU Controle de Acesso Unificado. Manual de Usuário CAU Controle de Acesso Unificado Manual de Usuário Versão: 1.0 Última modificação: 31/1/2014 Versão 1.0 Índice 1. INTRODUÇÃO... 4 1.1 DEPENDÊNCIAS... 4 2. ANÁLISE DO PÚBLICO-ALVO... 5 2.1 PRIVILEGIADOS/MASTERS...

Leia mais

Tipos para uma Linguagem de Transformação

Tipos para uma Linguagem de Transformação Universidade Federal de Pernambuco Graduação em Ciência da Computação Centro de Informática Proposta de Trabalho de Graduação Tipos para uma Linguagem de Transformação Aluno: Orientador: Alexandra Barreto

Leia mais

BIBLIOMETRIA ANEXO I COMO EXPORTAR DADOS NAS BASES SCOPUS E EBSCOHOST

BIBLIOMETRIA ANEXO I COMO EXPORTAR DADOS NAS BASES SCOPUS E EBSCOHOST BIBLIOMETRIA ANEXO I COMO EXPORTAR DADOS NAS BASES SCOPUS E EBSCOHOST Os repositórios digitais também podem servir de ferramentas para análise bibliométrica (produtividade de autores, de periódicos, palavras-chave,

Leia mais

COMPARTILHAMENTO DE PASTAS DE

COMPARTILHAMENTO DE PASTAS DE COMPARTILHAMENTO DE PASTAS DE E-MAIL A ferramenta de e-mail da plataforma Office 365 permite o compartilhamento de pastas de e-mail entre usuários. Acompanhe, neste documento, como você (usuário) pode

Leia mais

Manual de instalação, configuração e utilização do Enviador XML

Manual de instalação, configuração e utilização do Enviador XML Manual de instalação, configuração e utilização do Enviador XML 1 Manual de instalação, configuração e utilização do Enviador XML 1. Conceitos e termos importantes XML Empresarial: é um sistema web (roda

Leia mais

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

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Objetivos Apresentar modelos de processos de software Descrever três modelos genéricos de processo e quando

Leia mais

Reutilização de Software

Reutilização de Software DCC / ICEx / UFMG Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Reutilização de Software Abordagem de desenvolvimento com o objetivo de maximizar o uso de software pré-existente

Leia mais

Serviços de Segurança Gerenciados pela IBM para X-Force Hosted Threat Analysis Service

Serviços de Segurança Gerenciados pela IBM para X-Force Hosted Threat Analysis Service Serviços de Segurança Gerenciados pela IBM para X-Force Hosted Threat Analysis Service INTC-8483-00 05-2010 Página 1 de 6 Índice 1. Escopo dos Serviços... 3 1.1 Licenças... 3 1.1.1 Individual... 3 1.1.2

Leia mais

4 Testes e experimentos realizados 4.1. Implementação e banco de dados

4 Testes e experimentos realizados 4.1. Implementação e banco de dados 32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários

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

CONTEÚDO DO HP ALM 11.5 ADOPTION READINESS TOOL (ART)

CONTEÚDO DO HP ALM 11.5 ADOPTION READINESS TOOL (ART) CONTEÚDO DO HP ALM 11.5 ADOPTION READINESS TOOL (ART) APPLICATION LIFECYCLE MANAGEMENT 11.5 VISÃO GERAL Este conteúdo foi criado especificamente para usuários do aplicativo Application Lifecycle Management

Leia mais

RECURSOS HUMANOS. Introdução ao Benner RH. Núcleo da Solução

RECURSOS HUMANOS. Introdução ao Benner RH. Núcleo da Solução RECURSOS HUMANOS Introdução ao Benner RH Núcleo da Solução Sumário Introdução... 4 Módulos do Sistema Benner Recursos Humanos.... 5 Apresentação do Sistema.... 6 Gerenciamento de atualizações... 8 Gerenciamento

Leia mais

Arquitetura de Software: Sistemas RNA e Ava Edulivre. Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1

Arquitetura de Software: Sistemas RNA e Ava Edulivre. Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1 Arquitetura de Software: Sistemas RNA e Ava Edulivre Ana Claudia Costa, Rharon Maia, Wolgrand Cardoso1 Arquitetura de Software Surgiu na década de 80 e hoje é amplamente usado. Permite que projetistas

Leia mais

BROFFICE.ORG IMPRESS

BROFFICE.ORG IMPRESS BROFFICE.ORG IMPRESS O Impress é um dos aplicativos do pacote openoffice.org que permite a criação e exibição de apresentações, cujo objetivo é informar sobre um determinado tema, serviço ou produto, possibilitando

Leia mais

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE

ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008 4º PERÍODO - 7º MÓDULO AVALIAÇÃO A1 DATA 10/09/2009 ENGENHARIA DE USABILIDADE 2009/2 GABARITO COMENTADO QUESTÃO 1: 1. Considere as afirmações a seguir:

Leia mais

Modelagem de Processos. Rômulo César

Modelagem de Processos. Rômulo César Modelagem de Processos Rômulo César http://romulocesar.com.br/ romulo.andrade@upe.br Professor NOME: RÔMULO CÉSAR DIAS DE ANDRADE Mini CV: Doutorando em Ciência da Computação na Universidade Federal de

Leia mais

Princípios da Engenharia de Software aula 03

Princípios da Engenharia de Software aula 03 Princípios da Engenharia de Software aula 03 Prof.: José Honorato Ferreira Nunes Material cedido por: Prof.: Franklin M. Correia Na aula anterior... Modelos de processos de software: Evolucionário Tipos

Leia mais

INFORMÁTICA 15/04/2016. Com o Professor: Rene Maas. Considere a figura abaixo, que ilustra uma planilha do LibreOffice Calc em edição:

INFORMÁTICA 15/04/2016. Com o Professor: Rene Maas. Considere a figura abaixo, que ilustra uma planilha do LibreOffice Calc em edição: INFORMÁTICA Considere a figura abaixo, que ilustra uma planilha do LibreOffice Calc em edição: Com o Professor: Rene Maas Caso a célula G20 desta planilha apresente a fórmula =SE(A1A2;MAIOR(A1:B2;2);MÍNIMO(B2:C3)),

Leia mais

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico

SGCD 2.0 Sistema Gerenciador de Conteúdo Dinâmico Sistema Gerenciador de Conteúdo Dinâmico No final de 2007, o Serviço Técnico de Informática da UNESP Marília, disponibilizou para a comunidade acadêmica e administrativa o Sistema Dinâmico de websites

Leia mais

Engenharia de Software.

Engenharia de Software. Engenharia de Software Prof. Raquel Silveira O que é (Rational Unified Process)? É um modelo de processo moderno derivado do trabalho sobre a UML e do Processo Unificado de Desenvolvimento de Software

Leia mais

Card Tree Creator. Um Sistema para a criação de árvores de cartões.

Card Tree Creator. Um Sistema para a criação de árvores de cartões. Card Tree Creator Um Sistema para a criação de árvores de cartões. 1. Introdução Card Tree Creator é um sistema escrito em linguagem JAVA que tem por objetivo fornecer uma ferramenta para a criação de

Leia mais

Introdução a Tecnologia da Informação

Introdução a Tecnologia da Informação Introdução a Tecnologia da Informação Informática Básica Software de apresentação Prof. Jonatas Bastos Power Point p Faz parte do pacote Microsoft Office; p Software com muitos recursos para construção

Leia mais

SISTEMA DE GESTÃO PEDAGÓGICA Manual do Professor

SISTEMA DE GESTÃO PEDAGÓGICA Manual do Professor SISTEMA DE GESTÃO PEDAGÓGICA Manual do Professor SISTEMA DE GESTÃO PEDAGÓGICA Versão 1.0 1. Cadastro no sistema - Acesse o sistema pelo endereço: http://www.professor.ms.gov.br. - Clique no link na parte

Leia mais

AULA 2 Planos Vistas e Temas

AULA 2 Planos Vistas e Temas 2.1 AULA 2 Planos Vistas e Temas Nesta aula serão apresentados os conceitos de Planos de Informação, Vista e Tema e sua manipulação no TerraView. Para isso será usado o banco de dados criado na AULA 1,

Leia mais

O Fluxo de Requisitos

O Fluxo de Requisitos O Fluxo de 1 Finalidade do fluxo de requisitos A finalidade deste fluxo é: Chegar a um acordo com o cliente e o usuário sobre o que o sistema deve fazer. Oferecer ao desenvolvedor um melhor entendimento

Leia mais

O conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado.

O conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado. Modelagem de casos de uso Casos de uso O conceito de casos de uso foi criado em 1986 por Ivar Jacobson, metodologista e um dos pais do Processo Unificado. O que é Segundo Ivar Jacobson, um caso de uso

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

Processos de software

Processos de software Processos de software 1 Processos de software Conjunto coerente de atividades para especificação, projeto, implementação e teste de sistemas de software. 2 Objetivos Introduzir modelos de processos de

Leia mais

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes

Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: prado@dc.ufscar.br Resumo Este artigo apresenta a ferramenta CASE

Leia mais

Modelagem de Processos de Negócio Aula 3 Projeto de Modelagem. Andréa Magalhães Magdaleno

Modelagem de Processos de Negócio Aula 3 Projeto de Modelagem. Andréa Magalhães Magdaleno Modelagem de Processos de Negócio Aula 3 Projeto de Modelagem Andréa Magalhães Magdaleno andrea@ic.uff.br Agenda Método Meta-Modelo Notação Ferramenta Estudo de Caso 2 3 Projeto de Modelagem MÉTODO Método

Leia mais

C A R T I L H A. - Recursos Humanos Cargos

C A R T I L H A. - Recursos Humanos Cargos C A R T I L H A - Recursos Humanos Cargos Elaborada por: DIRPD Diretoria de Processamento de Dados Universidade Federal de Uberlândia Maio/2009 Apresentação Esta cartilha foi elaborada para auxiliar os

Leia mais

EXERCÍCIOS COMPLEMENTARES AULA 3

EXERCÍCIOS COMPLEMENTARES AULA 3 Pessoal, Apresento uma lista de exercícios (CESPE) complementar à aula 3 sobre o Windows. Ainda pretendo criar uma lista com exercícios específicos para Windows 7, pois não encontrei exercícios recentes

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,

Leia mais

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp

RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp RUP Rational Unified Proccess (Processo Unificado da Rational) Equipe WEB Cercomp web@cercomp.ufg.br 1. Introdução É um processo proprietário de Engenharia de software criado pela Rational Software Corporation,

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

Carnê de Pagamento. Copyright ControleNaNet

Carnê de Pagamento. Copyright ControleNaNet Este manual é parte integrante do Software On-line Carnê de Pagamento Concebido pela equipe técnica de ControleNaNet. http://www.controlenanet.com.br Todos os direitos reservados. Copyright 2015-2017 ControleNaNet

Leia mais

Versão 3.1br. Foundation Level Model Based Tester

Versão 3.1br. Foundation Level Model Based Tester GLOSSÁRIO DE TERMOS Versão 3.1br Foundation Level Model Based Tester Os termos deste documento são complementares ao Glossário de Termos Núcleo Base para o exame de certificação CTFL-MBT Model Based Tester.

Leia mais

Manual de Utilização PrintScout

Manual de Utilização PrintScout Manual de Utilização PrintScout Sumário 1. Login... 3 2. Tela Home... 4 3. Meus Locais... 5 3.1 Editar Local... 6 3.2 Adicionar Equipamento... 7 3.3 Alterar Dados de um Equipamento... 7 3.4 Excluir um

Leia mais

Requisitos para Ferramentas de Gestão de Projetos de Software

Requisitos para Ferramentas de Gestão de Projetos de Software Requisitos para Ferramentas de Gestão de Projetos de Software Thiago S. F. Silva 1, Rodolfo F. Resende 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Av. Antônio

Leia mais

Informática para Concursos

Informática para Concursos Informática para Concursos Professor: Thiago Waltz Ferramentas Multimídia a) Ferramentas Multimídia Multimídia: Multimídia é a combinação, controlada por computador, de pelo menos um tipo de mídia estática

Leia mais

Fases do OOHDM. OOHDM Um modelo para autoria de HT

Fases do OOHDM. OOHDM Um modelo para autoria de HT OOHDM Um modelo para autoria de HT OOHDM Object Oriented Hypermedia Design Method Abrange as fases de Espeficicação de Requisitos, Modelagem Conceitual, Modelagem da Navegação e Modelagem da Interface

Leia mais

2 O Modelo: SetModel. 2.1 Modelo de Informação

2 O Modelo: SetModel. 2.1 Modelo de Informação O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser

Leia mais

Laboratório 01 NetBeans

Laboratório 01 NetBeans Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 2o. Semestre de 2017 Prof. Renato Pimentel Atividade individual. Laboratório 01 NetBeans 1 Introdução Os

Leia mais

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN

RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS. Prof. Fabiano Papaiz IFRN RUP RATIONAL UNIFIED PROCESS PRÁTICAS RECOMENDADAS Prof. Fabiano Papaiz IFRN O RUP recomenda as seguintes práticas que devem ser utilizadas no desenvolvimento de um software: 1. Desenvolver de forma iterativa

Leia mais

Online Help????????????????????? SOPAS-SUI SOPAS ET

Online Help????????????????????? SOPAS-SUI SOPAS ET Online Help????????????????????? SOPAS-SUI Versão de software Manual de instalação Software/Tool Função Versão Software para a parametrização de dispositivos V 2.36 Copyright Copyright 2012 SICK AG Erwin-Sick-Str.

Leia mais

Faça seu login na página pt-br.wordpress.com. Caso ainda não tenha um login, registre-se.

Faça seu login na página pt-br.wordpress.com. Caso ainda não tenha um login, registre-se. WORDPRESS Faça seu login na página pt-br.wordpress.com. Caso ainda não tenha um login, registre-se. Na aba Meus blogs, clique em administrar blog para acessar as funcionalidades de seu blog: 1 Em aparência

Leia mais

Guia para testes Afixinv Demonstração

Guia para testes Afixinv Demonstração Guia para testes Afixinv Demonstração Introdução Esse guia foi criado para auxiliar a demonstração da solução para inventários do Ativo Imobilizado utilizando o aplicativo AfixInv. AfixInv aplicativo para

Leia mais

Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR

Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR Project Builder: Apoio a Gestão de Projetos do Nível G ao C do MPS.BR Bernardo Grassano 1, Analia Irigoyen Ferreiro Ferreira 2, Mariano Montoni 3 1 Project Builder Av. Rio Branco 123, grupo 612, Centro

Leia mais

Especificação dos Requisitos do Software UFPI Maps 1.0. Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção

Especificação dos Requisitos do Software UFPI Maps 1.0. Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção UFPI Maps 1.0 Autores:4A Team Alceu Medeiros Antonio Lima AntonioHelves Fernando Assunção Teresina PI Julho de 2013 1 UFPI Maps 1.0 Sumário 1. Introdução... 3 1.1. Objetivo deste documento... 3 1.2. Escopo

Leia mais

MANUAL. ecosistemas.net.br

MANUAL. ecosistemas.net.br MANUAL A Eco.Suite possui uma interface simples e de fácil utilização Com a Eco.Suite você trabalha de forma colaborativa, simples e objetiva, em uma única tela. Acesso ao Eco.Suite Tela Principal Após

Leia mais

Tutorial: Webmail. Dicas de Uso e Funcionalidades 10/2014. Versão 01

Tutorial: Webmail. Dicas de Uso e Funcionalidades 10/2014. Versão 01 Tutorial: Webmail Dicas de Uso e Funcionalidades 10/2014 Versão 01 Conteúdo Tutorial: Webmail 2014 Webmail... 2 Busca de Mensagens... 3 Possíveis problemas... 5 Ativando Pré-visualização do E-mail... 6

Leia mais