ABC reuso Modeling and Using Product Line Variability in Automotive Systems Steffen Thiel and Andreas Hein, Robert Bosch Corporation ABC reuso Introdução • Sistemas para automóveis – Sistemas para conforto • Auxílio para estacionar • Controle de rotas – Sistemas de segurança • Estabilidade automática • Controle de airbag – Sistemas para aumento de eficiência • Controle do combustível • Envolve soluções de hardware e software • Centenas ou milhares de variabilidades • É indispensável um processo sistemático de gerenciamento de variabilidades ABC reuso Desenvolvimento Tradicional • Entidades unifuncionais • Não considerava a funcionalidade TOTAL do carro • Problemas: – – – – – Alto custo de Hardware Desenvolvimento de software excessivo Alto custo de manutenção Hardware dedicado Restringia a reusabilidade ABC reuso Plataform-based development • Integração das funcões em uma plataforma multifuncional – Substitui componentes mecânicos e eletrônicos (Hardware) por soluções inteligentes de software • Exemplo: plataforma comum para sistemas de Radio • Vantagens do desenvolvimento baseado em plataforma: – Serviços adicionais – Mais flexibilidade – Compartilhamento de Hardware • Solução não atende a redução de custos e time-to-market – O esforço para desenvolver plataforma complexa não é compensado pela economia em Hardware ABC reuso Product Line • O reuso sistemático, garantiria a economia no desenvolvimento baseado em plataformas. • Foi adotado então uma abordagem de Product Line ABC reuso Variabilidade • Desenvolver uma Product Line é diferente de desenvolver produto únicos. – Variabilidade deve ser sempre avaliada – Variabilidade afeta todos os artefatos (de requisitos a código) – Entretanto, geralmente é introduzida no final do projeto ou na implementação (ERRADO) ABC reuso Feature Model ABC reuso Arquitetura ABC reuso Feature Model x Arquitetura ABC reuso Arquitetura do Produto ABC reuso Developing Mobile Browsers in a Product Line Ati Jaaksi, Nokia ABC reuso Introdução • Explica o processo de implantação de uma Product Line na Nokia • Histórico – 1998 – US Nokia desenvolveu o script engine e WML markup handling para o Nokia 7710 – 1999 – WAP Toolkit – 1999 – Nokia Hungria desenvolveu o WAP gateway – 1999 – Nokia Dinamarca desenvolveu outro protocol stack • Era hora de montar uma Product Line ABC reuso Necessidades • Integrar todos os componentes • Browsers em diferentes aparelhos – Licenciar para terceiros ABC reuso Arquitetura ABC reuso Organização e Processo • Entidades Funcionais: – Product management – Coleta, analisa e prioriza requisitos do produto – Product development –Desenvolve produtos – System testing – Customer Support – Advanced Development – Padronização, estudos de arquitetura, protótipos e demonstrações de novas tecnologias ABC reuso Análise dos Requisitos • Documento de requisitos APENAS DO PRODUTO EM QUESTÃO – Não especifica requisitos para o Product Line – Durante os dois primeiros projetos, houve a tentativa de especificar requisitos para o Product Line, mas, é muito difícil. – Clientes discutem sobre produtos, não componentes • Mapeamento em requisitos da PL ocorrem depois, na fase de Projeto. • Roadmaps para características esperadas do produto para o FUTURO ! – Product Board avalia os roadmaps, sincronizando todos os produtos (domain analysis sobre todos os produtos que foram desenvolvidos) ABC reuso Desenvolvimento • 4 times: – – – – Core (Browser e Protocol) Plataforms Toolkit Testing • Product Managers definiam os requisitos do Produto, times de engenharia analisavam e extraiam as funcionalidades genéricas • Raramente foi desenvolvido componentes da PL independente de um Produto • Projeto e implementação em ciclos – Vários releases e builds diários para testes (verificar se a alteração não iria “quebrar” outro produto) ABC reuso Benefícios • • • • • • Aumento da eficiência Diminuição dos custos Aumento de qualidade Acumulou entendimento do domínio Identificação de novos requisitos mais cedo Motivação dos funcionários – 1999 e 2000 – 3 % turnover (época onde houve uma grande oferta) • Aumentou a credibilidade (centro de excelência em XML, XHTML, scripting) ABC reuso Custos e Riscos • Recursos extras em processos, desenvolvimento de ferramentas e gerenciamento – Para minimizar, evite criar assets que não serão reusados • Criação de core assets atrasou a entrega dos primeiros produtos – Primeiro criar produtos e só depois extrair os componentes deles (reengenharia) • Dificuldade para criar uma Arquitetura – Deve atender todos os produtos e não ser otimizado para um produto específico ABC reuso Custos e Riscos • Mudança em um componente pode afetar outros produtos – Investimento em Gerência de Configuração, Gerenciamento de Requisitos, sincronização de projetos • Conflitos entre times – Incentivos baseado em produtividade (desestimulando o suporte a outros times) • Conflitos entre Clientes – Querem concentração total em seus produtos • Testes mais complexos – 25% das pessoas estão em times de teste – 30% do tempo é para testes ABC reuso Conclusão • Benefícios superaram os custos • Desafio: Melhorar a reengenharia • Deve ser identificado um domínio comum (entre os clientes) • Os processos e estrutura organizacional deve suportar PL • Esforço pago em longo prazo – Investimento racional, construção de alguns produtos antes de fazer PL – Gerência deve ter compromisso de apoio de longo prazo