• Nenhum resultado encontrado

Linha de Produto de Software

N/A
N/A
Protected

Academic year: 2021

Share "Linha de Produto de Software"

Copied!
10
0
0

Texto

(1)

Engenharia de Software, © 2007 Jair C Leite

Linha de Produto de Software

Jair C Leite

DIMAp/UFRN

O que é linha de produto de software?

• Técnica de produção baseada em outras engenharias –

fábricas que desenvolvem uma mesma família de

produtos com partes e recursos comuns.

• Um conjunto de sistemas de software que:

– Têm uma funcionalidade comum

– São construídos de uma forma prescrita visando uma missão específica ou segmento de mercado.

– São desenvolvidos utilizando componentes e recursos (ativos) de uma base comum.

• Substancial economia de produção de software

• Aplicável em grupos de sistemas similares

(2)

Engenharia de Software, © 2007 Jair C Leite

Motivação

• Empresas de software buscam atingir um

segmento de mercado específico.

• Sistemas desenvolvidos para um domínio de

aplicação possui mais coisas em comum do que

particularidades.

• Os produtos para um domínio de aplicação

compartilham elementos que podem ser

reutilizados com adicionamento de requisitos

específicos.

Histórico

• Desenvolvimento baseado em reuso em sendo proposto

desde as origens da engenharia de software (McIlroy's

1969)

• Princípio “escondendo informação” (Parnas, 1972)

• Idéia de “Família de Produtos” (Parnas, 1972)

• Conceito de “Domínio de Aplicação” e Análise Engenharia

de Domínio (Neighbors, 1989)

• Framework para desenvolvimento baseado em reuso para

uma família de produtos relacionados (SEI, 2002)

• Fabrica de Software da Toshiba – abordagem de linha de

produtos para geradores de potência.

(3)

Engenharia de Software, © 2007 Jair C Leite

Benefícios de LPS

• Ganhos de produtividade em larga escala

• Diminuição do tempo de entrega

• Melhoria da qualidade do produto e satisfação do

usuário

• Maior eficiência no uso dos recursos humanos

• Maior presença no mercado

• Possibilidades de crescimento da empresa

O que é necessário para adotar LPS?

• Visão antecipada do negócio

– Oportunidades de mercado para produtos – Capacidade de produção da empresa

• Definição de uma família de produtos

– Similaridade – Requisitos comuns – Base comum

– Ex. MS Office, Sistema de vendas de comércio (lojas)

• Investimento antecipado nos ativos (componentes e

recursos) da base comum

• Arquitetura de Linha de Produção

– Elaboração de uma arquitetura de base (framework) visando reuso e múltiplos produtos da mesma família

• Definição de um Plano de Produção

(4)

Engenharia de Software, © 2007 Jair C Leite

O que não é linha de produto de software? (1)

• Reuso de software em API’s

– Construir um software reutilizando uma certa API de domínio não é LPS.

– É necessário a API tenha sido definida para uma arquitetura para linha de produção de uma família de software.

• Desenvolvimento de um único sistema com reuso

– Desenvolver um novo sistema reutilizando partes de um outro sistema similar anterior não é LPS.

– LPS requer a produção de vários produtos de uma mesma família de forma deliberada

• Desenvolvimento baseado em componentes

– LPS requer um desenvolvimento baseado em componentes, mas é necessário que os componentes estejam de acordo com a arquitetura de linha de produção.

O que não é linha de produto de software? (2)

• Utilizar uma arquitetura de software reconfigurável ou

frameworks

– São importantes pois precisam ser definidas para aceitar componentes comuns aos vários produtos da família

• Releases e versões de um mesmo produto

– LPS produz múltiplos produtos similares ao mesmo tempo. Cada um tem suas releases e versões

• Conjunto de normas técnicas

– A definição de normas técnicas para os ativos é importantes para direcionar a produção e orientar os engenheiros, mas não são suficientes.

(5)

Engenharia de Software, © 2007 Jair C Leite

Ativos base (core assets)

• Ativos base são os artefatos e recursos que formam a

base da linha de produção.

• Incluem

– Arquitetura (chave) – Componentes – Modelos do domínio – Requisitos – Especificações e documentação – Planos e casos de testes

– Planejamento, cronogramas, orçamento e processo

Aspectos organizacionais e técnicos

• Estratégias organizacionais

– Centralizada:

• Todos os produtos da família planejados por um núcleo comum de gerentes e especialistas

– Distribuídas:

• Os produtos são distribuídos para equipes distintas • Dificuldades de coordenação

• Aspectos técnicos

– Desenvolvimento dos ativos base – Desenvolvimento do produto – Dinamismo em tempo de execução

(6)

Engenharia de Software, © 2007 Jair C Leite

Atividades Essenciais

Fonte: Software Engineering Institute

O produto é desenvolvido a partir de ativos base Os ativos base são

desenvolvidos visando a família de produtos

O desenvolvimento do produto gera novos ativos base

Estratégia de Processo em LPS

• Pró-ativa

– Investimento antecipado nos ativos de produção – Adequado a domínio de aplicação estáveis

• Reativa

– Os ativos são desenvolvidos à medida que forem necessários – Precisam estar de acordo com o planejamento, com padrões e

normas, e com a arquitetura de linha de produto

• Extrativa

– Intermediária – misto de estratégia reativa e pró-ativa – Ideal para empresas que querem migrar para LPS

(7)

Engenharia de Software, © 2007 Jair C Leite

Desenvolvimento dos ativos base

Fonte: Software Engineering Institute

Resultados do desenvolvimento dos ativos

base

• Definição do escopo da linha de produto

– Produtos da linha e possibilidades de inclusão de novos produtos – Requisitos comuns (funcionais e não funcionais)

• Plano de produção

– Prescreve como os produtos serão produzidos a partir dos ativos base

• Ativos comuns

– Arquitetura de linha de produto – compartilhada por toda a família de produtos

– Componentes reutilizáveis – desenvolvidos para reuso sistemático na linha de produção

(8)

Engenharia de Software, © 2007 Jair C Leite

Requisitos para o desenvolvimento dos

ativos base

• Requisitos e restrições de produtos

– Escopo e características comuns

• Restrições de produção

– Prazos, custos, capacidades

• Inventários de ativos pré-existentes

– Experiência e legado da empresa

• Estratégia de produção

– Gênesis da arquitetura e componentes e capacidade de evolução – Pró-ativa – ativos base antes e produtos depois

– Reativa – um produto da família primeiro antes

(9)

Engenharia de Software, © 2007 Jair C Leite

Relacionamento com atividades da ES

Requisitos em LPS

• Os requisitos são definidos e especificados para a família

de sistemas como um todo.

• Os requisitos específicos para cada produto são definidos

como um incremento para a especificação global.

(10)

Engenharia de Software, © 2007 Jair C Leite

Arquitetura de Linha de Produção

• Descreve o modelo sobre como o produto será montado a

partir dos componentes da base comum.

• Adequada aos atributos de qualidade da LP

• Definições de interoperabilidade com outros produtos da

família

• Implicações para a origem dos componentes

• Normas e padrões para interfaces dos componentes

• Infra-estrutura de conexão e montagem

– Middleware: CORBA, JEE (EJB) e .NET

Componentes de software de LPS

• Formam a base dos ativos comuns

• O software será montado com reuso dos componentes

• Devem estar de acordo com a arquitetura de linha de

montagem

• Podem ser reutilizados com ou sem alterações

• Origens:

– Desenvolvimento próprio, de acordo com a estratégia de negócios e arquitetura de linha de produtos

– Componentes de prateleira - COTS (Comercial off-the-shelf) – Aquisição de terceiros

Referências

Documentos relacionados

Atualmente os currículos em ensino de ciências sinalizam que os conteúdos difundidos em sala de aula devem proporcionar ao educando o desenvolvimento de competências e habilidades

Foram desenvolvidas duas formulações, uma utilizando um adoçante natural (stévia) e outra utilizando um adoçante artificial (sucralose) e foram realizadas análises

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

Ao longo deste trabalho são apresentados diversos tópicos sobre gerência de redes, as principais características do protocolo SNMP, o modelo Gerente/Agente e como eles se

A participação foi observada durante todas as fases do roadmap (Alinhamento, Prova de Conceito, Piloto e Expansão), promovendo a utilização do sistema implementado e a

Quando os dados são analisados categorizando as respostas por tempo de trabalho no SERPRO, é possível observar que os respondentes com menor tempo de trabalho concordam menos que

Objetivo: Garantir estimativas mais realistas e precisas para o projeto, ao considerar nesta estimativa o esforço necessário (em horas ou percentual do projeto) para

Para disciplinar o processo de desenvolvimento, a Engenharia de Usabilidade, também conceituada e descrita neste capítulo, descreve os métodos estruturados, a