Você está na página 1de 67

Linhas

de Produtos de So0ware
Centro de Inform-ca - Universidade Federal de Pernambuco Sistemas de Informao Vinicius Cardoso Garcia vcg@cin.ufpe.br

Bibliograa recomendada
Pohl, K.Bckle, G.Linden, F. J. v. d. So0ware Product Line Engineering - Founda<ons, Principles and Techniques: Springer. 2005. 468 p.
hRp://www.soUware-productline.com/

C.R.U.I.S.E - Component Reuse in SoUware Engineering. 1. ed. Recife: C.E.S.A.R e-books, 2007
hRp://cruise.cesar.org.br Chapters 1, 2 & 4

[if977] Engenharia de SoUware - SI - CIn - UFPE

Princpios de uma Linha de Produtos de So0ware


O modo como bens e produtos so produzidos mudou signica-vamente com o passar do tempo
Ford: produc'on line Produo mais barata, porm reduziu as possibilidades de diversicao

Mass customiza<on is the large-scale produc<on of goods tailored to individual customers' needs. [Davis 1987] Produtos de engenharia customizados
Criao de uma plataforma Introduo de exibilidade Reorganizao da companhia
[if977] Engenharia de SoUware - SI - CIn - UFPE 3

Customizao em massa - Exemplos


Kodak / Fujitsu
Em 1987, Fuji lanou a Quicksnap, a primeira mquina fotogrca. Pegou a Kodak de surpresa Para reconquistar o mercado a Kodak lanou uma srie de diferentes modelos de cmera, baseados em uma plataforma comum. Entre Abril de 1989 e Julho de 1990, a Kodak reconstruiu seu modelo padro, criando mais 3 modelos Assim, a Kodak passou a desenvolver cmera mais rapidamente e com menor custo.
[Robertson and Ulrich 1999; Clark and Wheelwright 1995] [if977] Engenharia de SoUware - SI - CIn - UFPE 4

Cresceu de 3 milhes em 1988 para 43 milhes em 1994

Todos com componentes comuns e mesmo processo de manufatura

Customizao em massa - Exemplos


Noo de plataforma em materiais de escritrio
As notas de "Post-it" da 3M so consideradas uma plataforma da qual foram derivados muitos produtos individuais. Por exemplo, notas de "Post-it" com um logo-po de uma companhia ou marcadores para selecionar pginas em livros, etc.

[Cooper et al. 2001] A platform is any base of technologies on which other technologies or processes are built. [TechTarget 2004]

[if977] Engenharia de SoUware - SI - CIn - UFPE

Mo<vao para Linhas de Produtos


Reduo dos custos de desenvolvimento Melhoria da qualidade Reduo do -me-to- market Reduo dos esforos com manuteno Melhorias na es-ma-va de custos Benetcios para os clientes
[Pohl et al. 2005]
[if977] Engenharia de SoUware - SI - CIn - UFPE 6

Engenharia de Linha de Produto de So0ware


"So$ware product line engineering is a paradigm to develop so$ware applica6ons (so$ware-intensive systems and so$ware products) using pla;orms and mass customiza6on."

[Pohl et al., 2005]

Pr-requisitos
Habilitar tecnologias Maturidade do processo Caracters-cas do domnio e exper-se
[if977] Engenharia de SoUware - SI - CIn - UFPE 7

[if977] Engenharia de SoUware - SI - CIn - UFPE

[if977] Engenharia de SoUware - SI - CIn - UFPE

Linhas de Produtos (SEI)


Linha de produtos de soUware (SPL) consiste em uma famlia de sistemas de so0ware que possuem algumas funcionalidades comuns e algumas funcionalidades variveis. Para obter vantagens das funcionalidades comuns, recursos reusveis so desenvolvidos para que possam ser reusados por diferentes membros da famlia.

Fonte: hRp://www.sei.cmu.edu/productlines/

[if977] Engenharia de SoUware - SI - CIn - UFPE

10

Linhas de Produtos
A maioria dos desenvolvimentos de linha de produtos prov uma arquitetura genrica para a linha de produtos que descreve as igualdades entre os membros mas ignora toda a variabilidade Cada aplicao comea com uma arquitetura genrica e adapta as requisies. Esta abordagem prov um melhor ponto de comeo em comparao a um desenvolvimento de um sistema sem nenhum reuso. Uma abordagem desejvel modelar o que comum e o que diferente na famlia de produtos.
Uma arquitetura de SPL deve descrever as igualdades e a variabilidade na famlia.
[if977] Engenharia de SoUware - SI - CIn - UFPE

11

[if977] Engenharia de SoUware - SI - CIn - UFPE

12

Engenharia de Linha de Produto de So0ware


Nem tudo uma linha de produto
Considerar os nveis de maturidade importante

[Bosch, 2002]

[if977] Engenharia de SoUware - SI - CIn - UFPE

13

EXPERINCIAS COM LINHAS DE PRODUTOS DE SOFTWARE


[if977] Engenharia de SoUware - SI - CIn - UFPE 14

Experincias com Linhas de Produtos de So0ware


Muitos casos de sucesso citados pela literatura envolvendo grandes empresas que ob-veram excelentes resultados com a aplicao de Linhas de Produto de So0ware (Product Line Hall of Fame)
Asia Brown Boveri (ABB)
The reference architecture of the turbine control system for the ABB Gas Turbine Family led to shorter development 6me, higher code quality, and eased the exchange of modules.

Boeing Company
The success of the Bold Stroke soUware product line is based on the reduc6on of dependencies between components and the dependency on pla;orm-specic hardware.

[if977] Engenharia de SoUware - SI - CIn - UFPE

15

Experincias com Linhas de Produtos de So0ware


HewleR-Packard
Tempo de desenvolvimento reduzido em 67% 96% menos defeitos

Philips

Lidera o mercado de pesquisadores europeus no campo de linhas de produto de soUware. Philips Consumer Electronics prov linhas de produto de so0ware para equipamentos de udio e vdeo, tais como aparelhos de TV, apresentando uma arquitetura de referncia estvel.

Alm de outros exemplos: CelsiusTech Systems AB, LG Industrial Systems, Lucent Technologies, Robert Bosch GmbH.
[if977] Engenharia de SoUware - SI - CIn - UFPE 16

Caso da Nokia [2002]


Nokia
Lder mundial no ramo de aparelhos celulares (40% do mercado) 25~30 novos produtos por ano em mais de 130 pases Suporte:
58 lnguas Varivel nmero de teclas Diferentes tamanhos de tela Diferentes conjuntos de features Variaes de protocolos, operadoras, hardware e es-lo (srie XX) Features congurveis (Liga / Desliga -- > Conectar e usar) DSP Arquitetura Interface com o usurio Etc.

Diferentes Linhas de SoUware espalhadas pelo mundo. Releases so feitos para outros grupos.

[if977] Engenharia de SoUware - SI - CIn - UFPE

17

Caso da Nokia [2002]

[if977] Engenharia de SoUware - SI - CIn - UFPE

18

Caso da Nokia [2002]

[if977] Engenharia de SoUware - SI - CIn - UFPE

19

Caso da Nokia [2002]

[if977] Engenharia de SoUware - SI - CIn - UFPE

20

Caso da Nokia [2002]

[if977] Engenharia de SoUware - SI - CIn - UFPE

21

Caso da Nokia [2002]


Exemplos de componentes Idioma
Suporte a 58 idiomas Vrias lnguas no-la-nas (Chins, rabe, Hebraico, Thai) Recurso opcional de T9 Ao alterar a lngua a-va, todos os textos devem ser alterados automa-camente

Soluo

Separar a base de conhecimento da lngua do cdigo Separar aparncia de comportamento Independente da lngua escolhida, o cdigo no muda
[if977] Engenharia de SoUware - SI - CIn - UFPE 22

Caso da Nokia [2002]


Exemplos de componentes Idioma
Padro Observer adotado

[if977] Engenharia de SoUware - SI - CIn - UFPE

23

Caso da Nokia [2002]


Exemplos de componentes Interface com usurio
Window Manager separa comportamento da aparncia

[if977] Engenharia de SoUware - SI - CIn - UFPE

24

Caso da Nokia [2002]


Exemplos de componentes Interface com usurio

... for (int a = 0; a<=10; a++) AddProleMenu(MenuArray[a]); ...

[if977] Engenharia de SoUware - SI - CIn - UFPE

25

Caso da Nokia [2002]


Sugestes: think ahead
Sempre pense na frente Faa sempre brainstroms sobre todos os possveis usos futuros de features Considere o impacto de novas tecnologias Considere todas as variveis que podem ser congurveis Nunca codique no duro (harcode) nada Enquanto no necessrio prever todo o futuro, leve- o em considerao no seu projeto (arquitetura). Isso vai salvar muito tempo no futuro.
[if977] Engenharia de SoUware - SI - CIn - UFPE 26

Linhas de Produtos presentes no nosso Dia-a-dia


Tecnologias de Linhas de Produto so tambm encontradas no nosso dia-a-dia. Exemplos:
Mean-me

Geradores de CRUD

adaptaes de jogos/soUware para diferentes disposi-vos/ celulares; Geradores de cdigo fonte para operaes bsica de cadastro (inserir, remover, consultar e atualizar) de sistemas web de informao baseado numa arquitetura genrica Arquitetura extensvel baseada em plugins que permite a customizao do seu ambiente para diferentes usurios
[if977] Engenharia de SoUware - SI - CIn - UFPE 27

Plataforma Eclipse

Eclipse
Plataforma Eclipse
Arquitetura extensvel baseada em plugins que permite a customizao do seu ambiente para diferentes usurios

Diferentes verses do Eclipse podem ser customizadas, e elas podem at mesmo sobreviver juntas em tempo de execuo

Diferentes perspec<vas: Modelagem, Implementao, Testes, Gerncia de Congurao, Depurao

A arquitetura extensvel baseada em plugins do Eclipse pode tambm ser considerada uma arquitetura de linha de produto que permite a criao/gerao de vrios produtos

[if977] Engenharia de SoUware - SI - CIn - UFPE

28

Arquitetura da Plataforma Eclipse


A arquitetura do Eclipse oferece uma estrutura exvel que :
Oferece pontos de extenso especcos que podem ser estendidos pelo usurio nal A instalao/desinstalao de plugins que estendem os pontos de extenso oferecidos pela plataforma do Eclipse, possivelmente, oferecendo novas plataformas para isso
[if977] Engenharia de SoUware - SI - CIn - UFPE 29

Eclipse plugins
Eclipse plugins:
So componentes de cdigo e/ou dados que contribuem para a extenso da plataforma com alguma funcionalidade, tais como:
novas bibliotecas/APIs novas vises/perspec-vas/editores/depuradores documentao (help)

Exemplos:

Em geral, estendem pontos de extenso oferecidos pela plataforma (outros plugins), assim como podem oferecer seus prprios pontos de extenso JDT (Java Development Tooling), PDE (Plugin Development Environment) JUnit Extensions, Ferramenta de Modelagem UML, etc
[if977] Engenharia de SoUware - SI - CIn - UFPE 30

Funcionamento de um plugin

plug-in A extension point P contributes

plug-in B extension

implements interface I creates, calls class C

[if977] Engenharia de SoUware - SI - CIn - UFPE

31

IMPLANTANDO UMA LINHA DE PRODUTOS


[if977] Engenharia de SoUware - SI - CIn - UFPE 32

Conceitos
Engenharia de linha de produto de soUware baseia-se em dois processos:
1. Estabelecimento da plataforma (Engenharia de Domnio)
Gerenciamento de pontos variveis e pontos em comum. Plataforma consiste em: requisitos, projeto do domnio, implementao de componentes, testes.

2. Derivando aplicaes (Engenharia de Aplicao)


Explora variabilidade de acordo com a necessidades especcas de cada aplicao.
[if977] Engenharia de SoUware - SI - CIn - UFPE 33

Framework de SPLE de Pohl

[if977] Engenharia de SoUware - SI - CIn - UFPE

34

Framework de SPLE de Pohl


Artefatos do domnio
Mapa de produtos Modelo de variabilidade do domnio Requisitos do domnio Arquitetura do domnio Implementao de artefatos do domnio Testes de artefatos do domnio

Artefatos da aplicao
Modelo de variabilidade da aplicao Requisitos da aplicao Arquitetura da aplicao Implementao de artefatos da aplicao Testes de artefatos da aplicao

[if977] Engenharia de SoUware - SI - CIn - UFPE

35

ANLISE DE DOMNIO

[if977] Engenharia de SoUware - SI - CIn - UFPE

36

Denies de Variabilidade
[Weiss e Lai, 1999]
Forma como os membros de uma famlia de produtos podem se diferenciar entre si Pontos de variao

[Trigaux e Heymans, 2003]

Variantes

Local especco de um artefato em que uma deciso de projeto ainda no foi resolvida Cada ponto de variao tem associado um conjunto de variantes Uma alterna-va de projeto para instanciar uma determinada variabilidade Escolha de uma ou mais variantes do conjunto relacionado
[if977] Engenharia de SoUware - SI - CIn - UFPE 37

Resoluo de uma variante

Representaes de Variabilidade
Variabilidades representadas em termos de features Feature pode ser denida como uma caracters<ca de um sistema que relevante e visvel para o usurio nal [Kang et al., 1990] Representao FODA Feature Oriented Domain Analysis
[if977] Engenharia de SoUware - SI - CIn - UFPE 38

Representaes de Variabilidade
Tipos de features
Mandatrias Opcionais Alterna-vas OR

Conceitos simples da representao FODA:

Dependncias
Implicao Excluso

Todas as features-folha mandatrias devem estar presentes (n para n) Qualquer nmero de features opcionais pode ser includo (m para n, 0 < = m <= n) Exatamente uma feature deve ser selecionada de um grupo de features alterna-vas (1 para n) Pelo menos uma feature deve ser selecionada de um grupo de OR features (m para n, m > 1)

[if977] Engenharia de SoUware - SI - CIn - UFPE

39

Exemplo para Anlise de Domnio

A) Monga. B) American Dad Rogers Scape. C) Zaak.

[if977] Engenharia de SoUware - SI - CIn - UFPE

40

Exemplo de Modelo de Feature

[if977] Engenharia de SoUware - SI - CIn - UFPE

41

Consideraes
Variabilidade um conceito que no est presente somente quando consideramos a abordagem de ED/LPS Frameworks so excelentes exemplos Gerenciar variabilidades requer saber exatamente como iden-c-las, represent-las, delimit-las, implement-las Vrias so as propostas de gerenciamento de variabilidade existentes
Problemas especcos

Monitorar a evoluo dos artefatos variantes de um sistema computacional

Existe uma carncia de um processo de gerenciamento de variabilidade


Gerenciar as variabilidades de uma LP da forma mais genrica possvel

[if977] Engenharia de SoUware - SI - CIn - UFPE

42

PROJETO DE DOMNIO

[if977] Engenharia de SoUware - SI - CIn - UFPE

43

Projeto de Domnio
Obje-vos
Produzir a arquitetura de referncia Denir a estrutura do soUware Requisitos do domnio Implementao do domnio Projeto da Aplicao Abstrair Modelar Proto-par Validar
[if977] Engenharia de SoUware - SI - CIn - UFPE 44

Como os requisitos [variabilidades] so ree-dos na arquitetura

Relacionamentos

A-vidades

Projeto de Domnio
Relacionamento entre o sub-processo Projetar Domnio e os demais sub- processos

[Pohl et al., 2005]


[if977] Engenharia de SoUware - SI - CIn - UFPE 45

Viso Geral

[if977] Engenharia de SoUware - SI - CIn - UFPE

46

A<vidades tradicionais de projeto


A a-vidade mais importante no desenvolvimento de um sistema construir a arquitetura
Determina a estrutura do soUware e as regras a serem aplicadas A-vidades do arquiteto
Abstrao Modelagem Simulao
Reduzir a complexidade Reasoning Execuo de modelos para medir aspectos especcos do sistema Parcial [fast] implementao Aplicao das regras arquiteturais

Proto-pao Validao

[if977] Engenharia de SoUware - SI - CIn - UFPE

47

Requisitos de Qualidade
Requisitos de qualidade guiam a arquitetura Qualidade do desenvolvimento Avaliao da arquitetura

Meio de avaliar a arquitetura de acordo com atributos de qualidade pr-selecionados

Alguns requisitos de qualidade s surgem a par-r da Engenharia de Linha de Produtos

Variabilidade (Congurao, Interna e Externa) Flexibilidade (Mudanas no intrusivas pelos sistemas) Evolubilidade (Evoluir a arquitetura de acordo com as mudanas dos requisitos) Manutenibilidade (Facilidade em encontrar e corrigir erros)

[if977] Engenharia de SoUware - SI - CIn - UFPE

48

Aspectos comuns e variveis no projeto


Priorizao dos Requisitos Mapeamento entre Requisitos e Projeto
Interao dos requisitos Requisitos de linhas de produtos como exibilidade e adaptabilidade Opes tecnolgicas Disponibilidade de recursos de desenvolvimento (pessoal, ferramentas, etc.) Preparao para o futuro Frameworks de componentes Padres Programao Orientada a Aspectos
[Pohl et al., 2005]
[if977] Engenharia de SoUware - SI - CIn - UFPE 49

Aspectos comuns e variveis no projeto


Adicionando variabilidade no projeto
Variabilidade interna
Pontos de variao

Tecnologias futuras Requisitos instveis Independncia de provedores

[Pohl et al., 2005]

[if977] Engenharia de SoUware - SI - CIn - UFPE

50

Projetando Arquitetura de Referncia


A arquitetura de referncia um grande nmero de componentes interconectados por meio das interfaces Uso de Framework de componentes restringe o nmero de conguraes de componentes
Conguraes Componentes e interfaces Frameworks externos
Conectam-se a uma estrutura comum Componentes plug-in Infra-estrutura, funcionalidades bsicas
[if977] Engenharia de SoUware - SI - CIn - UFPE 51

Projetando Arquitetura de Referncia


Uso de componentes [plug-in] especcos da aplicao
A arquitetura de referncia determina quais assets reu-lizveis existem na linha de produtos

Uso de aspectos

Cross-cung concerns Manutenibilidade

Regras da estrutura arquitetural


Regras de codicao Es-los Design paRerns Frameworks

[if977] Engenharia de SoUware - SI - CIn - UFPE

52

Arquitetura de Referncia
GUI FrontEndServlet [Entidade]StrutsAction IFachada[Sistema] Negcio [Entidade]ServiceImpl [Entidade] [Entidade].jsp

I[Entidade]DAO Dados [Entidade]DAOHibernate


[if977] Engenharia de SoUware - SI - CIn - UFPE 53

Sistema Acadmico
GUI Aluno.jsp FrontEndServlet AlunoStrutsAction IAlunoService Negcio Aluno AlunoServiceImpl ProfessorServiceImpl Professor Professor.jsp

ProfessorStrutsAction IProfessorService

IAlunoDAO Dados

IProfessorDAO ProfessorDAOHibernate
54

AlunoDAOHibernate

[if977] Engenharia de SoUware - SI - CIn - UFPE

Sistema de Cobrana de Imposto (IRPF)


GUI Contribuinte.jsp FrontEndServlet Imposto.jsp

ContribuinteStrutsAction IContribuinteService Negcio Contribuinte Contribuinte ServiceImpl

ImpostoStrutsAction IImpostoService

Imposto ServiceImpl

Imposto

IContribuinteDAO Dados ContribuinteDAOHibernate

IImpostoDAO ImpostoDAOHibernate
55

[if977] Engenharia de SoUware - SI - CIn - UFPE

Validao da Arquitetura
Validao da arquitetura da aplicao
Consistncia com a arquitetura de referncia [estrutura]

Validao dos assets do domnio [Pohl et al., 2005]

Do interfaces carry the right func-onality to the right level of abstrac-on? Are components and interfaces produced according to texture? Does each component carry all its interfaces, and no more? Do components call only the required interfaces, and all of them?

Testes de integrao

[if977] Engenharia de SoUware - SI - CIn - UFPE

56

[if977] Engenharia de SoUware - SI - CIn - UFPE hqp://www.rise.com.br/eventos/wire2008/arquivos/08.DSA-Tutorial_-_Paulo_Merson_WIRE-2008.pdf

57

[if977] Engenharia de SoUware - SI - CIn - UFPE

58

Diferenas entre a SPLE e a Engenharia de So0ware Tradicional


Arquitetura de referncia Customizao em massa Partes reu-lizveis Em especicao

Variabilidade Estrutura Qualidade

Arquitetura de referncia pode estar em especicao [variantes]

Aspectos comuns presentes em todas as aplicaes Evoluo, exibilidade e manutenibilidade


[if977] Engenharia de SoUware - SI - CIn - UFPE 59

PROJETAR APLICAO

[if977] Engenharia de SoUware - SI - CIn - UFPE

60

Projetar Aplicao
Obje-vo
Produzir a arquitetura da aplicao
[especializao da arquitetura de referncia]
[Pohl et al., 2005]

[if977] Engenharia de SoUware - SI - CIn - UFPE

61

Desenvolvimento da Arquitetura da Aplicao


Especializao da arquitetura de referncia Abstraes especcas da abstrao
Requisitos de qualidade da aplicao Features no providas pela SPL

Modelos especcos da aplicao


Comportamento especco Requisitos de qualidade especcos

Simulao e proto-pao
[if977] Engenharia de SoUware - SI - CIn - UFPE 62

Desenvolvimento da Arquitetura da Aplicao


Binding das variaes
A forma como a customizao em massa incorporada; Abstraes u-lizadas; Rastreabilidade entre as variabilidades e a arquitetura de referncia

Reuso dos artefatos do domnio Projetar artefatos para as novas variaes Avaliar o esforo adicional Determinar a congurao propcia

Seleo consistente de variantes de componentes


Impacto global das variantes Congurao especca de hardware

A congurao dos componentes o resultado do binding dos pontos de variao com as variabilidades selecionadas

[if977] Engenharia de SoUware - SI - CIn - UFPE

63

Desenvolvimento da Arquitetura da Aplicao


Novas features requerem novos componentes

[Pohl et al., 2005]


[if977] Engenharia de SoUware - SI - CIn - UFPE 64

Feedback dos artefatos da Aplicao para o Domnio


Aplicao como base de teste para o domnio
Possibilidade de integrao de artefatos da aplicao O gerente do produto decide sobre a integrao de novos artefatos

Subs-tuio de artefatos no-reu-lizveis

[if977] Engenharia de SoUware - SI - CIn - UFPE

65

Esforo e custo das Variantes


Custo da realizao Fatores de custo
Nmero de novos componentes a serem realizados Nmero de interfaces a serem realizadas Nmeros de pequenas adaptaes de componentes e interfaces Realizao de simulaes Adaptaes para aspectos entre-cortantes [cross-cung aspects] Testes a serem realizados em componentes e conguraes reu-lizveis Testes a serem realizados em novos componentes Padres para se aplicar Novos projetos -> alto custo

Es-ma-va de custos

Amor-zao de custos para features reu-lizveis

[if977] Engenharia de SoUware - SI - CIn - UFPE

66

Diferenas: SPLE vs SE
Reuso da arquitetura de referncia Rastreabilidade dos requisitos Regras comuns da estrutura Esforo reduzido

[if977] Engenharia de SoUware - SI - CIn - UFPE

67

Você também pode gostar