desenvolvimento de linha de produtos de software com
TRANSCRIPT
![Page 1: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/1.jpg)
Desenvolvimento de Linha deProdutos de Software com FeatureIDE
Wesley K. G. Assunção
Informações: https://wesleyklewerton.github.io/Contato: [email protected]
![Page 2: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/2.jpg)
2
Wesley...
● Formação– Bacharel em Sistemas de Informação (Fasul 2003-2006)
– Especialista em Automação e Redes Industriais (Senai 2007-2009)
– Especialista em Docência no Ensino Superior (Fasul 2009-2010)
– Mestre em Informática (UFPR 2010-2012)
– Doutor em Ciências da Computação (UFPR 2012-2017)● Visiting Student (JKU – Austria 2014-2015)
● Atuação– Desenvolvedor WEB (2007-2013)
– Professor do Magistério Superior (2007-Atual)
– Pesquisador (Otimização e Eng. de Sw: Teste, SPL)
![Page 3: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/3.jpg)
3
Agenda
● Reúso de Software● Linha de Produtos de Software● Desenvolvimento Orientado a Features● FeatureIDE● Mão na massa● Considerações Finais
![Page 4: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/4.jpg)
4
Customização de Produtos
● Aumento da demanda
● Clientes/Pessoas têm necessidades diferentes
● Algumas pessoas podem pagar a mais por certas características do produto
● Outras querem mostrar que possuem um produto mais caro/diferenciado
![Page 5: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/5.jpg)
5
Software Individual vs Software Padrão
● Software Individual– Requisitos específicos de um cliente
– Únicos e personalizados
– … mas customizar é caro
● Software Padronizado– Vendido em larga escala
– Custo de produção baixo
– … mas falta diversificação para atender alguns clientes
![Page 6: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/6.jpg)
6
Software Individual vs Software Padrão
● Como unir o melhor dos dois mundos???– Customização
– Custo baixo
– Produção em larga escala
![Page 7: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/7.jpg)
7
Linha de Produtos de Software (LPS)
“LPS é um conjunto intensivo de sistemas de software que compartilham e gerenciam um conjunto de características em comum que satisfazem uma necessidade específica de um domínio, e que são desenvolvidos a partir de um núcleo comum e de uma forma preestabelecida.”
![Page 8: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/8.jpg)
8
LPS
● Funcionalidades e Artefatos Comuns– Compartilhadas por todos os produtos da LPS
– Devem ser reusados por todos os produtos a fim de aumentar a produtividade e qualidade
● Variações– Devem ser identificadas e gerenciadas nos vários níveis
de abstração
![Page 9: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/9.jpg)
9
Motivação para empresas usarem LPS
● Empresas de software buscam atingir um segmento específico de mercado
● Geralmente os sistemas têm mais características em comum do que características particulares
● Muitas vezes algumas partes já são reutilizadas, mas sem uma metodologia específica
![Page 10: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/10.jpg)
10
Benefícios de uma LPS
● Evolução organizada● Maior presença no mercado● Redução do custo de
desenvolvimento● Aumento da qualidade do produto e
satisfação do usuário● Redução do tempo de entrega● Redução do esforço de
manutenção
![Page 11: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/11.jpg)
11
Riscos
● Grande investimento inicial● Maior tempo de entrega do
primeiro produto● Requer engenharia experiente● Demanda disciplina técnica e
organizacional
![Page 12: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/12.jpg)
12
Desenvolvimento de LPS
● Desenvolvimento orientado a características (features)– feature corresponde a uma característica do sistema
visível ao usuário final, ou seja, trata-se de um contexto do sistema que o usuário final tem contato direto
– features são os blocos de construção de uma LPS
![Page 13: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/13.jpg)
13
Engenharia de LPS
![Page 14: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/14.jpg)
14
Modelo de Características
● Um modelo de características (Feature Model - FM) e uma representação compacta de todos os produtos de uma LPS, organizados em termos de "features".
● Um FM é uma diagrama de árvore hierárquica que mostra visualmente o relacionamento entre features e permite observar as similaridades e variabilidades entre os produtos.
![Page 15: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/15.jpg)
15
Modelo de Características
● Um feature obrigatória é sempre selecionada quando a feature pai está selecionada. É representada com um círculo preenchido
● Uma feature opcional pode ou não ser selecionada quando a feature pai está selecionada. É representada com um círculo vazio
![Page 16: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/16.jpg)
16
Modelo de Características
● Um grupo or indica que uma ou mais features do grupo podem ser selecioadas, representado pelo arco vazio
● Um grupo alternativo indica que apenas uma feature do grupo pode ser selecionada, representado pelo arco preenchido
![Page 17: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/17.jpg)
17
Modelo de Características
● Cross-Tree Constraints:– Se uma feature A está
selecionada e "requires" B, então B também precisa ser selecionada
– Se uma feature A está selecionada e "excludes" B, então B não pode ser selecionada
![Page 18: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/18.jpg)
18
Feature IDE
● FeatureIDE é um framework open-source baseado no Eclipse para desenvolvimento de software orientado a features – http://www.featureide.com/
– https://featureide.github.io/
– https://scholar.google.de/citations?user=I7Kw3l8AAAAJ
![Page 19: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/19.jpg)
19
Atividade
● Fazer um FM para a seguinte descrição:– Deseja-se desenvolver uma aplicação para auxiliar a construção com
figuras simples (ex. Paint).
– Será possível desenhar linhas e ou retângulos.
– Existá a funcionalidade de limpar a tela de todos os desennhos existentes.
– Por padrão a cor da linha das formas é preta, mas opcionalmente existirá a funcionalidade de escolher cores.
– Outra funcionalidade opcional, será usar cor para preenchimento, mas somente quando existe a possibilidade de desenhar retângulos.
![Page 20: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/20.jpg)
20
Mão na Massa
● Exemplo introdutório
– Olá Mundo– Olá Mundo Lindo– Olá Mundo Maravilhoso
![Page 21: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/21.jpg)
21
Mão na Massa
● Draw Product
– Desenhar Linhas– Desenhar Retângulos– Limpar a Tela
● Quais os produtos possíveis?
● https://wesleyklewerton.github.io/teaching.html
![Page 22: Desenvolvimento de Linha de Produtos de Software com](https://reader031.vdocuments.pub/reader031/viewer/2022012419/617402101914a733a26e3ac9/html5/thumbnails/22.jpg)
Desenvolvimento de Linha deProdutos de Software com FeatureIDE
Obrigado pela atenção!
Dúvidas?
Wesley K. G. Assunção
Informações: http://www.inf.ufpr.br/wesleyk/Contato: [email protected]