·

Sistemas de Informação ·

Engenharia de Software

Envie sua pergunta para a IA e receba a resposta na hora

Fazer Pergunta
Equipe Meu Guru

Prefere sua atividade resolvida por um tutor especialista?

  • Receba resolvida até o seu prazo
  • Converse com o tutor pelo chat
  • Garantia de 7 dias contra erros

Texto de pré-visualização

Linhas de produto de software Bruna Diirr brunadiirr@ic.uff.br Introdução Você vê componentes, arquitetura e reuso nesses produtos? Introdução Inicialmente, os produtos eram feitos de modo artesanal Produto: Aquilo que uma empresa/organização oferece a um mercado para satisfação de um desejo ou necessidade Crescimento da sociedade e consumo  Necessário aumentar a quantidade de produtos fabricados Como atender a esta demanda? Produção em massa através de uma linha de produtos! Henry Ford produziu o Ford T com esse conceito em 1908 Reuso de uma base comum de tecnologia para geração de produtos Possibilita preços mais baixos que produtos artesanais Possibilita certa customização Produtos adaptados (quase) de acordo com desejos do cliente Até 1914, o Ford T era produzido em várias cores (a escolha do cliente) Software individual x Software padrão Como unir o melhor que esses dois mundos tem a oferecer? Queremos customização, minimizar custos e vender em larga escala Linha de Produto de Software! E o que isso tem a ver com software? Software individual Produzidos para satisfazer requisitos específicos de um cliente Podem ser únicos e personalizados Customização é cara! Software padrão Vendidos em larga escala Custo de produção relativamente baixo Sofrem da falta de diversificação para atender os vários clientes! 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 Ou seja, um conjunto de aplicações com funcionalidade comum, mas cada aplicação foi especializada para refletir necessidades de diferentes clientes ou segmento de mercado Linha de produtos de software (LPS) Núcleo do sistema projetado para ser configurado e adaptado para atender às necessidades de clientes diferentes (instanciação) Pode ser necessário: Implementar componentes adicionais Modificar componentes para atender a novos requisitos Variações devem ser identificadas e gerenciadas nos vários níveis de abstração O que não é LPS? Construir um software reutilizando uma certa API de domínio API precisa ser definida para uma arquitetura para linha de produção de uma família de software API = Application Programming Interface conjunto de rotinas e padrões de programação para acesso a um aplicativo de software ou plataforma baseado na Web Desenvolver um novo sistema reutilizando partes de outro sistema similar anterior LPS requer a produção de vários produtos de uma mesma família de forma deliberada Desenvolvimento baseado em componentes Necessário que componentes estejam de acordo com a arquitetura de linha de produção 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 Por que usar? Redução dos custos e tempo de desenvolvimento Aumento da qualidade através do reuso de componentes/artefatos Usados e testados exaustivamente em vários produtos Menor tempo para reagir às necessidades do mercado (time-to- market) Maior facilidade de realizar manutenções Manutenção realizada na LPS, propagando a correção de erros para vários produtos finais Melhor estimativa de custos Melhoria da qualidade do produto e satisfação do usuário Quando usar? Variabilidade Plataforma comum Domínio estável Mas não é indicada para Quando você não conhecer bem o domínio Quando o domínio não for estável Desenvolvimento de LPS Atividades essenciais (Framework SEI) Desenvolvimento do núcleo de artefatos Desenvolvimento de produtos Gerenciamento Engenharia de domínio Engenharia de aplicação - Responsável por derivar aplicações concretas a partir da plataforma estabelecida na engenharia de domínio - Explora variabilidade da LPS e assegura sua correta instanciação - Responsável por estabelecer a plataforma de reutilização da LPS (o que é comum e o que é variável) - Todos os tipos de artefatos de software (requisitos, design, testes, etc.) são chamados de ativos base Desenvolvimento de LPS Plano de negócio Informações dos Produtos Novos Requisitos Análise de Domínio Arquitetura de Domínio Implementação de Domínio Teste de Domínio Engenharia de Domínio Ativos Base Requisitos Arquitetura Implementação Testes Reusáveis Análise de Produto Engenharia de Aplicação Arquitetura de Produto Implementação de Produto Testes de Produto Produto Rastreabilidade Fluxo de Informações Atividades de Desenvolvimento Artefatos Reusáveis Feedback sobre a evolução no desenvolvimento Desenvolvimento de LPS Todas as três atividades Estão inter-relacionadas São altamente interativas Não existe “primeira” atividade Forte feedback entre núcleo e produtos Necessidade de forte gerenciamento entre múltiplos níveis Gerenciamento orquestra processos de modo que essas três atividades trabalharem juntas Desenvolvimento de LPS Abordagens Pró-ativa Desenvolvimento considera previamente todos os produtos a serem gerados Um conjuntos completo de artefatos é desenvolvido Extrativa LPS desenvolvida a partir de sistemas já existentes Features variáveis e comuns são extraídas desses sistemas para derivar uma versão inicial da LPS Reativa Desenvolvimento incremental de LPS Artefatos da SPL atendem apenas a alguns produtos. Quando há uma demanda para incorporar novos requisitos ou produtos, artefatos comuns e variáveis são incrementalmente estendidos em reação a eles O que é necessário para adotar? Visão antecipada do negócio Oportunidades de mercado para produtos Capacidade de produção da empresa Definição de família de produtos Similaridade Requisitos comuns Base comum Investimento antecipado nos ativos da base comum Arquitetura de LPS Elaboração de uma arquitetura de base (framework) visando reuso e múltiplos produtos da mesma família Definição de plano de produção Processo centrado na montagem (reuso e arquitetura) Riscos Grande investimento inicial que pode se tornar inútil se importantes requisitos mudam Maior tempo de entrega para o primeiro produto baseado na arquitetura da LPS Requer Engenharia Experiente Gerenciamento técnico e organizacional Linhas de produto de software Bruna Diirr brunadiirr@ic.uff.br