Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2,

Slides:



Advertisements
Apresentações semelhantes
Engenharia de Software
Advertisements

Rational Unified Process
Gerenciamento de Projetos
Processos de Software Introdução
Engenharia de Software Professor Sandro de Paiva Carvalho.
Faculdade de Ciências Sociais e Aplicadas de Petrolina – FACAPE
RAD – Rapid Application Development
Processo Desenvolvimento de Software Tradicional
Reutilização de Software
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Reutilização de Software
Carlos Alberto de Freitas Pereira Júnior
Como Desenvolver Sistemas de Informação
Gerencia de Projeto OO Aspectos Avançados em Engenharia de Software Aula 5 Fernanda Campos DCC/UFJF.
Visão Geral do Desenvolvimento de Sistemas e Papéis no Desenvolvimento de Software Marcely Dias
Configuração de manutenção
Gerência de Configuração de Software
Categorias do E-Business
Aula 1 Minicurso: Astah Ministrantes: André Martins; Camila Brondani;
O Gerenciamento de Requisitos no Ambiente COCAR
Validação experimental de uma abordagem baseada em busca para projeto de arquitetura de linha de produto de software Thelma Elita Colanzi Adaptação do.
Fundamentos de Engenharia de SW
Cap 2 – Processo de Software
Gestão da Inovação Tecnológica
Introdução Técnicas de Análise de Domínio O Domínio dos Jogos RPGT Commander Assembler Language Commander Assembler Engine Demo Considerações Finais e.
Análise e Projeto de Sistemas
Engenharia de Software
Rapid Application Development (RAD)
Engenharia de Software
Projeto de Banco de Dados
Desenvolvimento Rápido de Aplicação (RAD)
Modelos de Processo de Software
Introdução a Desenvolvimento de Sistemas
Repositório de Suporte ao Reuso de Software Felipe Roos Joana Trindade.
Análise e Projeto Orientados a Objetos
Teste de Software Conceitos iniciais.
Bruno Silva Desenvolvido a partir de
Projeto de Sistemas de Informação Microsoft C++ Grupo 8: Claudia Rocha Leonardo Rezende Ricardo Pereira.
Processos de Software.
Modelos de Qualidade para indivíduos e grupos: PSP & TSP
Um Estudo Analítico sobre técnicas de Identificação de Riscos no Planejamento de Testes de Software Liliane Silva, Cristine Gusmão,Alexandre Vasconcelos.
ABC reuso Modeling and Using Product Line Variability in Automotive Systems Steffen Thiel and Andreas Hein, Robert Bosch Corporation.
Uma Ferramenta para Configuração Colaborativa de Produtos em LPS Carlos Roberto Marques Junior
Um estudo comparativo entre PMBOK e SWEBOK
Gestão de projetos de Software GTI-16
UML e a Ferramenta Astah
© 2007 by Pearson Education ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 18 Slide 1 Reuso de Software.
Desenvolvimento Global de Software Mestrado de Informática / UFPB Francilene Procópio Garcia, D.Sc. Configuração do Processo - Parte.
© Nabor C. Mendonça Processo / Metodologia de Desenvolvimento de Software.
METHONTOLOGY Sandro Rautenberg
Análise e Projeto de Sistemas Unified Modeling Language Renata Araujo Ricardo Storino Núcleo de Computação Eletrônica Curso de Programação de Computadores.
Antonio Nascimento Roteiro Introdução Objetivos Áreas de Conhecimento Certificações Conclusões Referências.
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ANÁLISE E PROJETO DE SISTEMAS Aula /08/2012 Professor Leomir J. Borba-
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
Um Modelo de Subcontratação de Desenvolvimento de Software
VII Encontro CIn sobre Qualidade, Processos e Gestão de Software Thierry Araujo Avaliação dos resultados do projeto SmartSim e perspectivas para.
PSDS com CMMI Nível 2 Dimitri de Almeida Malheiros Barbosa 27/03/2006.
ISO9001:2000 para Software Professor: Alexandre Vasconcelos Equipe: Amanda Pimentel Börje Karlsson Danielly Karine Erika Pessoa Jorge Cavalcanti Jose Edson.
1 Identificando Riscos em Projetos de IP-cores Aluno: Tiago Lins Orientador: Hermano Perrelli 29/03/2007.
Uma Abordagem baseada em modelos para o gerenciamento de variações em linha de processo de software e sua execução.
Apresentação Leonardo Brussolo de Paula
JBuilder Daniel Almeida, Dayene Mendes, Gustavo Ribeiro, Thiago Dias.

Desenvolvimento de Software I
1 Projeto Piloto Conclusão em Agenda Projeto Piloto –Descrição –Execução da aplicação –Implementação de requisitos funcionais e não- funcionais.
Planejamento Estratégico Planejamento Estratégico de de Tecnologia de Informação Prof. Antonio Márcio M. Carmo Prof. Antonio Márcio M. Carmo.
Uma Extensão do Fluxo de Análise e Projeto do RUP com suporte a Desenvolvimento Baseado em Componentes Eduardo Almeida
18/09/ /12/20082 Testes Baseados Em Modelo Diana Rúbia Paulo César Qualidade, Processos e Gestão de Software Alexandre Vasconcelos {drrr, pco,
CMMI Capability Maturity Model Integration
Sistemas de Informações Sistemas Informações Empresariais 11. Administração de Sistemas Márcio Aurélio Ribeiro Moreira
Transcrição da apresentação:

Linhas de Produtos de Software Ivan Cardim, Pedro Matos Jr {icc2,

2 de 25 Linha de Produtos

3 de 25 O que é Linha de Produtos de Software “Conjunto de sistemas de software que compartilham um conjunto comum e gerenciado de features que satisfazem as necessidades de um mercado específico e que são desenvolvidos a partir de um conjunto de recursos comum de uma maneira pré-definida.” Software Engineering Institute

4 de 25 Ou seja Vários softwares com recursos em comum Artefatos Código Funcionalidades Exemplo

5 de 25 Alguns conceitos Instanciação A construção de novos produtos consiste mais em montagem do que em criação; a atividade predominante é integração, e não programação Núcleo Conjunto de recursos comum a diversos produtos de uma LP A LP é “O” produto; existem diversas instâncias desse mesmo produto Variações Diferenças entre instâncias

6 de 25 Uma Linha de Produtos de Software 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

7 de 25 Composição de uma LPS

8 de 25 Por que usar? Menor tempo para reagir às necessidades do mercado (time-to-market) Produtos lançados a custos menores Maior garantia de qualidade para os componentes/artefatos comuns São usados e testados exaustivamente em vários produtos Maior facilidade de realizar manutenções Manutenções são realizadas na LPS e não em vários produtos individuais

9 de 25 O que não é Reuso de alta granularidade Apenas reuso de código Desenvolvimento baseado em componentes Releases e versões de um mesmo produto

10 de 25 Atividades Essenciais A Framework for Software Product Line Practice Version 4.2 Software Engineering Institute - SEI

11 de 25 Criação e Evolução de LPS Pró-ativa Tenta “prever o futuro” Custos concentrados no início do ciclo de desenvolvimento Risco elevado Extrativa Usada para criar/evoluir uma LPS quando produtos individuais já foram criados Possui como objetivo criar um núcleo que representa a intersecção de todos os produtos e extrair as diferenças (variações)

12 de 25 Reativa –Usada para evoluir a LPS para incorporar um novo produto –Pode demandar o desenvolvimento de novos artefatos/componentes –Permite que a LPS evolua de acordo com as necessidades do mercado, distribuindo os custos ao longo do tempo As abordagens não são mutuamente exclusivas! Criação e Evolução de LPS

13 de 25 Custos Custo Inicial Elevado Pode ser reduzido usando as abordagens extrativa e reativa Necessidade de profissionais qualificados Custos com treinamento Mudança na cultura organizacional da Empresa

14 de 25 Programação Gerativa Paradigma de ES modelando família de sistemas Especificação de requisitos  geração automática de produto Produto customizado intermediário ou final Geração a partir de componentes reusáveis

15 de 25

16 de 25 Análise de domínio orientada a features Diagrama de features  Features Mandatórias (ou comuns)  Features Opcionais  Features Alternativas  Or-Features Programação Gerativa

17 de 25 Exemplo de um diagrama de features Programação Gerativa

18 de 25 Histórias de Sucesso de LPS U.S National Reconnaissance Office LPS para controle de satélites encomendada para a Raytheon Ganhos de 10x na qualidade e 7x em produtividade. Cummins, Inc. LPS para motores Conseguem construir e integrar o software para um novo motor a diesel em certa de uma semana, o que antes levava 1 ano Sua capacidade de produção permitiu que entrassem rapidamente no mercado de motores a diesel e o dominassem

19 de 25 Histórias de Sucesso de LPS Nokia Aumento na produção de telefones móveis 5-10 novos modelos por ano para mais de 30 novos modelos por ano Hewlett Packard Linhas de produtos de impressoras Aumento de 400% na produtividade Melhora de 2-7x no time-to-market

20 de 25 Jogos para dispositivos móveis Várias versões do mesmo jogo para vários aparelhos Aparelhos com características e APIs diferentes

21 de 25 Jogos para dispositivos móveis Meantime Mobile Creations Estudo da possibilidade de implantação de LPS em jogos móveis Pesquisa em convênio com o Centro de Informática Desenvolvimento de um processo de desenvolvimento e ferramenta de apoio

22 de 25 Conclusões e Palavras Finais LPS podem aumentar bastante a produtividade de empresas produtoras de software Reduzindo custos Reduzindo tempo de desenvolvimento Aumentando a qualidade do produto final Facilitando manutenção e evolução Investimentos iniciais e mudança da cultura organizacional são necessários

23 de 25 Conclusões e Palavras Finais Em alguns domínios, pode ser a diferença entre permanecer no mercado e ser esmagado pelos concorrentes Ainda existe pouco suporte para criação e evolução de LPS A maioria das metodologias ainda consiste num pequeno conjunto de práticas; não são processos completos Falta de ferramentas maduras para gerenciamento de LPS

24 de 25 Referências A Framework for Software Product Line Practice: KRUEGER, C. W. Variation Management for Software Product Lines KRUEGER, C. W. Easing the Transition to Software Mass Customization WITHEY, J. Investment Analysis of Software Assets for Product Lines

25 de 25 Referências Krzystof Czarnecki and Ulrich Eisenecker. Generative Programming: Methods, Tools, and Applications. Addison-Wesley.2000 Software Productivity Group – SPG

Perguntas ?

Slides extras

28 de 25 Ferramentas de Apoio Diagramas FODA: captainfeature / feature- plugin Feat: Feature exploration and analysis tool Pure::Variants Vários niveis de abstracao. Granularidade de arquivo. Covamof (em desenvolvimento) Plug-in para eclipse e visual studio. Granularidade de código Vários níveis de abstração.

29 de 25 Linha de Produtos x Linha de Produção

30 de 25

31 de 25

32 de 25