32
LEONARDO GARCIA CHRISTONI LINHA DE PRODUTO DE SOFTWARE : UM ESTUDO DE CASO PARA O DESENVOLVIMENTO DE UM SISTEMA E-COMMERCE LONDRINA 2019

LEONARDOGARCIACHRISTONI · CHRISTONI,LEONARDO.GARCIA..SoftwareProductLine:Acasestudyfor developingae-commercesystem.2019.31p.FinalProject–DraftVersion(Bachelor ofScienceinComputerScience

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • LEONARDO GARCIA CHRISTONI

    LINHA DE PRODUTO DE SOFTWARE : UM ESTUDO DECASO PARA O DESENVOLVIMENTO DE UM SISTEMA

    E-COMMERCE

    LONDRINA2019

  • LEONARDO GARCIA CHRISTONI

    LINHA DE PRODUTO DE SOFTWARE : UM ESTUDO DECASO PARA O DESENVOLVIMENTO DE UM SISTEMA

    E-COMMERCE

    Versão Preliminar de Trabalho de Conclusãode Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtençãodo título de Bacharel em Ciência da Compu-tação.

    Orientador: Prof(a). Dr(a). JandiraGuenka Palma

    LONDRINA2019

  • Ficha de identificação da obra elaborada pelo autor, através do Programa de GeraçãoAutomática do Sistema de Bibliotecas da UEL

    Sobrenome, Nome.Título do Trabalho : Subtitulo do Trabalho / Nome Sobrenome. - Londrina, 2017.100 f. : il.

    Orientador: Nome do Orientador Sobrenome do Orientador.Coorientador: Nome Coorientador Sobrenome Coorientador.Dissertação (Mestrado em Ciência da Computação) - Universidade Estadual de

    Londrina, Centro de Ciências Exatas, Programa de Pós-Graduação em Ciência daComputação, 2017.

    Inclui bibliografia.

    1. Assunto 1 - Tese. 2. Assunto 2 - Tese. 3. Assunto 3 - Tese. 4. Assunto 4 - Tese. I.Sobrenome do Orientador, Nome do Orientador. II. Sobrenome Coorientador, NomeCoorientador. III. Universidade Estadual de Londrina. Centro de Ciências Exatas. Programade Pós-Graduação em Ciência da Computação. IV. Título.

  • LEONARDO GARCIA CHRISTONI

    LINHA DE PRODUTO DE SOFTWARE : UM ESTUDO DECASO PARA O DESENVOLVIMENTO DE UM SISTEMA

    E-COMMERCE

    Versão Preliminar de Trabalho de Conclusãode Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtençãodo título de Bacharel em Ciência da Compu-tação.

    BANCA EXAMINADORA

    Orientador: Prof(a). Dr(a). Jandira GuenkaPalma

    Universidade Estadual de Londrina

    Prof. Dr. Segundo Membro da BancaUniversidade/Instituição do SegundoMembro da Banca – Sigla instituição

    Prof. Dr. Terceiro Membro da BancaUniversidade/Instituição do TerceiroMembro da Banca – Sigla instituição

    Prof. Ms. Quarto Membro da BancaUniversidade/Instituição do Quarto

    Membro da Banca – Sigla instituição

    Londrina, 24 de novembro de 2019.

  • Este trabalho é dedicado às crianças adultasque, quando pequenas, sonharam em se

    tornar cientistas.

  • AGRADECIMENTOS

    Os agradecimentos principais são direcionados à Gerald Weber, Miguel Frasson,Leslie H. Watter, Bruno Parente Lima, Flávio de Vasconcellos Corrêa, Otavio Real Sal-vador, Renato Machnievscz1 e todos aqueles que contribuíram para que a produção detrabalhos acadêmicos conforme as normas ABNT com LATEX fosse possível.

    Agradecimentos especiais são direcionados ao Centro de Pesquisa em Arquiteturada Informação2 da Universidade de Brasília (CPAI), ao grupo de usuários latex-br3 e aosnovos voluntários do grupo abnTEX2 4 que contribuíram e que ainda contribuirão para aevolução do abnTEX2.

    1 Os nomes dos integrantes do primeiro projeto abnTEX foram extraídos de

    2 3 4 e

    http://codigolivre.org.br/projects/abntex/http://codigolivre.org.br/projects/abntex/http://www.cpai.unb.br/http://groups.google.com/group/latex-brhttp://groups.google.com/group/abntex2http://abntex2.googlecode.com/

  • “Não vos amoldeis às estruturas destemundo, mas transformai-vos pela renovação

    da mente, a fim de distinguir qual é avontade de Deus: o que é bom, o que Lhe é

    agradável, o que é perfeito.(Bíblia Sagrada, Romanos 12, 2))

  • CHRISTONI, LEONARDO. GARCIA.. Linha de Produto de Software : Um estudode caso para o desenvolvimento de um sistema e-commerce. 2019. 31f. Trabalhode Conclusão de Curso – Versão Preliminar (Bacharelado em Ciência da Computação) –Universidade Estadual de Londrina, Londrina, 2019.

    RESUMO

    Linha de produtos de software (do inglês - Software Product Line - SPL) é um conjunto desistemas alinhados a uma mesma vertente, ela se baseia no desenvolvimento de produtosa partir de características em comum, é uma estratégia que agrega qualidade e eficiênciaao produto final. O trabalho faz um estudo de SPL aplicada a um experimento(a serdefinido), utilizando conceitos de SPL com o propósito de identificar e expor técnicaspara elaboração de uma SPL. Espera-se com este trabalho obter conhecimento sobreo tema e ao fim mostrar a estruturação de um sistema como parte de uma linha deprodutos. Como resultado deverá relatar as vantagens e desvantagens do emprego de SPLno desenvolvimento de um e-commerce a partir de evidências encontradas no experimento.

    Palavras-chave: Linha de Produto de Software, e-commerce.

  • CHRISTONI, LEONARDO. GARCIA.. Software Product Line : A case study fordeveloping a e-commerce system. 2019. 31p. Final Project – Draft Version (Bachelorof Science in Computer Science) – State University of Londrina, Londrina, 2019.

    ABSTRACT

    Software Product Line (SPL) is a set of systems aligned to the same strand, it is basedon product development based on common features, it is a strategy that adds quality andefficiency to the product. Last. The work makes a study of SPL applied to an experiment(to be defined), using concepts of SPL with the purpose of identifying and exposingtechniques to elaborate an SPL. It is hoped with this work to gain knowledge on thesubject and finally show the structuring of a system as part of a product line. As aresult you should report the advantages and disadvantages of using SPL in developing ane-commerce from evidence found in the experiment.

    Keywords: Software Product Line, e-commerce.

  • LISTA DE ILUSTRAÇÕES

    Figura 1 – Modelo ciclo de vida clássico (Fonte: Autor) . . . . . . . . . . . . . . . 15Figura 2 – Single product for all vs. individual products. (Fonte [1]) . . . . . . . . 17Figura 3 – Relação entre ponto de variabilidade e variante . . . . . . . . . . . . . 19Figura 4 – Abordagens para construção de Linhas de Produto de Software Fonte:

    Silva et. al (2011) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Figura 5 – Time to market with and without product line engineering. . . . . . . . 22

  • LISTA DE TABELAS

    Tabela 1 – Exemplo dos diversos níveis de abstração onde pontos de variabilidadepodem ser aplicados.(Fonte [2]) . . . . . . . . . . . . . . . . . . . . . . 18

  • LISTA DE ABREVIATURAS E SIGLAS

    SPL Software Product Line

    FODA Feature-Oriented Domain Analysis

  • SUMÁRIO

    1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    2 REVISAO BIBLIOGRAFICA . . . . . . . . . . . . . . . . . . . 142.1 Processo de Desenvolvimento de Software . . . . . . . . . . . . 142.2 Linha de Produto de Software . . . . . . . . . . . . . . . . . . . . 162.2.1 Variabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.1.1 Modelo de Características . . . . . . . . . . . . . . . . . . . . . . . . . . 192.2.2 Engenharia de Domínio . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.3 Engenharia de Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.4 Abordagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.2.5 Vantagens e Desvantagens . . . . . . . . . . . . . . . . . . . . . . . . 212.3 Linha de Produto de Software aplicada . . . . . . . . . . . . . . 22

    3 MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . 233.1 Feature Oriented Domain Analysis . . . . . . . . . . . . . . . . . 233.2 Sistema de Loja Virtual (E-commerce) . . . . . . . . . . . . . . 233.2.1 Definição . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.2 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    4 DESENVOLVIMENTO . . . . . . . . . . . . . . . . . . . . . . . 244.1 Estudo de caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    APÊNDICES 27

    APÊNDICE A – QUISQUE LIBERO JUSTO . . . . . . . . . 28

    ANEXOS 29

    ANEXO A – MORBI ULTRICES RUTRUM LOREM. . . . 30

    Trabalhos Publicados pelo Autor . . . . . . . . . . . . . . . . . 31

  • 13

    1 INTRODUÇÃO

    O mercado de softwares vem crescendo e evoluindo, novas tecnologias são lança-das, novos sistemas são desenvolvidos, novas maneiras de arquitetar aplicações são criadas,trata-se de uma área dinâmica que a todo momento aumenta o grau de exigência e quali-dade de seus produtos, e requer maior velocidade na produção de um sistema conciliando obaixo custo no desenvolvimento do mesmo. Para que as empresas possam se destacar nessemercado competitivo, a qualidade alinhada a alta produtividade, se faz necessária, e paraisso existe uma estratégia utilizada durante todo o projeto arquitetural e desenvolvimentodo sistema, é conhecida como SPL.

    Linha de Produto de Software é um conjunto de produtos de software relacio-nados, todos compartilhando funcionalidades, características, ou aspectos comuns, aindaque existe particularidades em cada produto. Ao aplicar essa estratégia obtém-se algunsbenefícios como qualidade e produtividade, pois é reduzido o número de defeitos relata-dos,o tempo de correções, o custo total de desenvolvimento, e o tempo até a entrega doproduto final[3]. Por outro lado o custo inicial se torna alto, pois é necessário tempo econtar com profissionais de alta qualidade para se projetar e desenvolver uma SPL.

    O objetivo desse trabalho é realizar um estudo a respeito de SPL através de um ex-perimento, um sistema de e-commerce, e como resultado expor e ou propor metodologias,técnicas e ferramentas para produção da mesma.

  • 14

    2 REVISAO BIBLIOGRAFICA

    Este trabalho aborda uma estratégia utilizada na produção de softwares que farãoparte de uma linha de produtos, seu objetivo é diminuir custos, tempo e esforço no processode desenvolvimento e manutenção. Portanto, os tópicos a seguir irão explanar sobre oprocesso de desenvolvimento de software no contexto de uma linha de produtos. Assimsendo, os tópicos a serem estudados tratarão sobre o processo de desenvolvimento desoftware que contemplam os processos utilizados na engenharia de software, as principaiscaracterísticas e metodologias utilizadas no decorrer do desenvolvimento de software eda linha de produto. Será apresentada também o conceito de uma Linha de Produto deSotware, uma estratégia empregue na confecção de softwares, sua definição segundo aliteratura. O ultimo tópico conterá alguns trabalhos que fizeram uso dessa estratégia, e aforma com que a mesma foi implementada no projeto. Para elaboração dessa monografiafoi realizado busca bibliográfica na literatura como, Scopus(Elsevier), Web of Science,Google Academics, IEEE Explore e em outros meios comos sites e revistas. Foi utilizadopalavras chaves como "Software Product Line", "Software Product Line AND proactiveapproach"e "processo de desenvolvimento de software". Os artigos, livros e dissetaçõesselecionados foram os relevantes a área em questão.

    2.1 Processo de Desenvolvimento de Software

    O desenvolvimento de um software é realizado através de etapas, normalmentesequenciais, que caracterizam seu ciclo de vida a partir da aplicação de certa metodologiade desenvolvimento. [4]

    Essas etapas podem ser compostas por diversas ações e tarefas, diferentes modelose processos de desenvolvimento de software, é uma abordagem variável definida normal-mente pelas pessoas que irão atuar no software, e que visa atingir o objetivo final deentregar um software de qualidade.

    Existem algumas atividades que são comuns no projeto de um software, são ati-vidades que fazem parte das mais variadas aplicações, programas de pequeno e grandeporte, dos mais simples aos mais complexos. Um modelo genérico de desenvolvimento desoftware abrange o seguinte conjunto de atividades :

    Comunicação - Atividade responsável pela caracterização do projeto, conhecimentoda problemática, das possíveis soluções, e da definição das funcionalidades do software,nessa atividade a comunição com o cliente é crucial.[5]

    Planejamento - Nessa fase se define um cronograma, um mapa, com todos osconjuntos de atividades e tarefas que auxiliará no processo de análise e desenvolvimento

  • 15

    do sistema final. É realizado um levantamento das tarefas necessárias, assim como osrequisitos, recursos e riscos associados a cada uma. [5]

    Modelagem - Em todos os tipos de projetos é necessário um modelo, um "esboço"doproblema, de forma a entender melhor as necessidades e os passos a serem tomados , nessafase se cria modelos arquiteturais que são usados para o desenvolvimento do software.[5]

    Construção - Atividade designada para a codificação e depuração, criação do códigoexecutável e dos testes, sejam eles manuais ou automatizados.[5]

    Emprego - Onde se é realizado a entrega parcial ou total do software, podemenvolver tarefas como validação e homologação.[5]

    A definição dos processos inerentes a cada atividade podem divergir assim comoa sequência das atividades, porem a estruta das atividades metodológicas continuaraosendo as mesmas.[5]

    A figura 1 demonstra o ciclo de vida, utilizando o modelo cascata, onde uma etapasó é realizada a partir de uma anterior finalizada, nunca havendo sobreposição entre elas.

    Figura 1 – Modelo ciclo de vida clássico (Fonte: Autor)

    O ciclo de vida pode ser empregado interativamente ao decorrer do projeto, onde acada iteração terá como resultado um incremento de software, ao final de várias iteraçõeso software se torna completo, atingindo o resultado esperado.[5]

  • 16

    Todo esse processo é realizado para a confecção de um único software, no mundo dosoftware conforme a engenharia de software foi evoluindo juntamente com o crescimentoda demanda de softwares em larga escala, um novo conceito foi criado, a de componentesreutilizáveis , um componente de software deve ser projetado e implementado de modoque possa ser reutilizado em muitos programas diferentes, a partir disso o engenheiro podeconcentrar seus esforços nos elementos inovadores, distintos dos já desenvolvidos, isto é,nas partes do projeto que tem características diferentes, elementos novos. [5]

    Os componentes de software reutilizáveis encapsulam tanto dados quanto o pro-cessamento aplicado a eles, ou seja permitirão reusar partes de um sistema desenvolvidoanteriormente como: especificações, módulos de um projeto, arquitetura e código fonte,possibilitando criar novas aplicações a partir de partes reutilizáveis.[5]

    A linha de produto de software faz uso desses componentes para prover um con-junto de componentes que poderão ser utilizados em muitos softwares. Esses componentespodem pertencer a softwares de um mercado específico, ou ainda a softwares genéricos[5]

    2.2 Linha de Produto de Software

    O modo com que os produtos são produzidos tem mudado com o passar do tempo.A principio eram produzidos para consumidores individuais. O poder aquisitivo das pes-soas aumentou, assim como a capacidade delas de comprar varios tipos produtos. Nomercado automotivo isso fez com que Ford criasse o conceito de linha de produto. [1] Li-nha de produto(LP) é definida como "grupo de artigos afins que se destinam a um mesmogrupo de consumidores, atendendo a necessidades e desejos semelhantes"[6], atualmenteum conceito já estabelecido na maioria das áreas de mercado. Naquela epóca com o con-ceito de Ford, os produtos passaram a ser produzidos em massa, dimuindo os custos daprodução em detrimento das diversificações de cada produto.[1]

    Após um certo período com o uso da produção em massa, que tinha como focoprodutos padronizados, os clientes passaram a requerer produtos diferentes, com caracte-rísticas e qualidades diferenciadas. As pessoas queriam ter outros carros, ou um melhorque o de seus vizinhos. A indústria automotiva foi confrontada com uma crescente de-manda por produtos com características diferentes. Esse foi o começo da customização emmassa,"Personalização em massa é a produção em grande escala de mercadorias adapta-das às necessidades individuais dos clientes", em outras palavras significa levar em contaos requisitos e desejos dos clientes.[1]

    Os quatro carros na parte inferior da figura 2 são um exemplo de customizaçãoem massa: carros diferentes que atendem aos desejos dos clientes individuais, cada umproduzido em grande número.

  • 17

    Figura 2 – Single product for all vs. individual products. (Fonte [1])

    Para os clientes a customização em massa significa a capacidade de ter um produtoindividualizado. Para as empresas significa um maior custo envolvido na produção, oqueacarreta em alto preço no produto final, e/ou acaba diminuindo a margem de lucro dosprodutos. Sendo assim, muitas industrias, especialmente a industria automotiva, come-çaram a utilizar plataformas comuns na fabricação dos veiculos, isso consiste em analisare definir quais partes são comuns e serão usadas nos diferentes modelos de carro. Cadamodelo possui os itens de série e os opcionais, os itens de séries são a estrutura seguidapor todos os carros fabricados a partir de um mesmo modelo, como motor, transmissão,tamanho do veículo, etc. Esses itens normalmente são a parte mais custosa na produçãodo veículo, pois envolve desing e manufatura. O uso de uma plataforma para a fabricaçãodos diferentes modelos de carro levam a uma redução no custo de produção para um carroparticular.[1]

    O uso em conjunto da customização em massa com as plataformas comuns permite

  • 18

    gerar uma família de produtos, com características comuns que faz reuso de uma basetecnológica, e com características variáveis que atendem a necessidade de cada cliente. Naárea de software esse conceito é chamado de Linha de Produto de Software - (SoftwareProduct Line em Inglês).[1]

    SPL usa a mesma analogia de uma LP para a analise e desenvolvimento de um, ouvários sistemas, visando uma customização em massa, utlização de plataformas comuns(naárea de software o termo plataforma é usado um pouco diferente, mas ainda continua emacordância com o significado clássico), e produção em larga escala de bens adaptadosde acordo com as necessidades individuais do usuário. Pode-se dizer que o objetivo deuma SPL é fazer reuso de softwares, criar uma estrutura, independente de linguagemde programação , que contenha as características comuns dos sistemas de um domínioespecifico, e que possa através dessa estrutura, com a inclusão de particularidades, gerarum conjunto de sistemas, conforme a necessidade de cada projeto.[1]

    2.2.1 Variabilidade

    Variabilidade é um conceito importante de SPL,está relacionado às diversas mu-danças, customizações, que ocorrem ou podem ocorrer durante o desenvolvimento da SPL,o cliente normalmente deseja que haja mudanças no escopo do produto gerando diversoscenários,que levam na confecção de diversos sistemas, cada um com sua particularidade.Os dois principais termos usados sobre variabilidade em uma SPL são:

    Ponto de variabilidade : "corresponde a um aspecto funcional em um elementode software base que possui variação. Define um conjunto de possíveis variantes, o meca-nismo de variabilidade para instanciar as variantes e o tempo de ativação das variantes."[2], são pontos pré-definidos que podem receber customizações ao decorrer do ciclo de de-senvolvimento do produto

    Nível de abstração Descrição

    Arquitetura Utilização de documentos de alto nível de design como linguagensde descrição de arquitetura e documentação de texto.Diagramas Utilização de diagramas UML.Código-fonte Descrição dos pontos na forma de código fonte.Código compilado O código fonte é compilado para ser analisado.

    Código ligadoOs resultados obtidos na fase de compilação são ligados deforma estática em tempo de compilação ou de forma dinâmica em tempo deexecução.

    Código de execução O sistema é construído e configurado. Devido ao dinamismo,mudanças ocorrem a todo o tempo.

    Tabela 1 – Exemplo dos diversos níveis de abstração onde pontos de variabilidade podemser aplicados.(Fonte [2])

    Variantes : são as possibilidades existentes em cada ponto de variabilidade, são

  • 19

    todas instancias que podem ser geradas.

    A figura 3 retrata o conteúdo abordado, bem como sua relação.

    Figura 3 – Relação entre ponto de variabilidade e variante

    2.2.1.1 Modelo de Características

    O principal mecanismo para modelagem de variabilidade chama-se modelo de ca-racterísticas, em inglês Feature Model.As features são utilizadas para agrupar um con-junto de requisitos relacionados, sendo uma forma de abstrair requisitos. A relação entrerequisitos e feature ocorre de n para n.[2]

    As features tem como objetivo facilitar o entendimento e compreensão dos desen-volvedores e usuários com relação aos requisitos. Dessa forma, quando ha necessidadesde ocorrer mudanças ou até mesmo atualizações nos sistemas, essas mudanças podem sercaracterizadas em formato de features, as features podem ser aplicadas em todos os ciclosde desenvolvimento de software, até mesmo em produção. Ou seja, o feature model é temcomo propósito abstrair requisitos e apresentar em alto nível as principais característicasde uma familia de produtos, sejam elas comuns ou variáveis.[2]

    O modelo de características é utilizado na engenharia de domínio para a modela-gem dos produtos, porém não consegue ser aplicador na engenharia de aplicação, pois nãoconsegue representar como estes produtos serão gerados através dos artefatos presentesnos ativos base.[2]

  • 20

    2.2.2 Engenharia de Domínio

    A engenharia de domínio é responsável por determinar a plataforma de reusoapontando quais artefatos são comuns e quais são variáveis na linha de produto. Osartefatos também chamados de ativos base podem ser de todo tipo, requisito, design,teste, etc [2]

    Nessa fase é feita uma análise dos artefatos que podem vir a fazer parte do conjuntode ativos, a característica desses artefatos é o reuso do mesmo nos diversos produtos dafamília de produtos.

    2.2.3 Engenharia de Aplicação

    A engenharia de aplicação é encarregada de criar as aplicações concretas, construirum produto novo, através da análise dos artefatos explorados na engenharia de domínio."Ela explora a variabilidade da linha de produtos e assegura sua correta instanciação deacordo com as necessidades específicas das aplicações finais".[2]

    2.2.4 Abordagens

    Existem diversas abordagens para o desenvolvimento de LPS. Será apresentado asabordagens proativa, reativa e extrativa.

    A abordagem proativa consiste na ideia de construção de uma família de produtos apartir do zero, sem a necessidade produtos já existentes. Primeiramente é feita a aplicaçãode conceitos da engenharia de software como análise do domínio, projeto arquitetural edefinição dos ativos, somente após aplicados esses processos é iniciada a criação dos ativosbase visando desenvolver os produtos finais.

    Ao contrário da Proativa, na abordagem Reativa os ativos-base já estão prontos,assim como uma versão da LPS. Então, a empresa evolui a linha existente, atendendo aosrequisitos para instanciação de novos produtos.

    Na abordagem Extrativa são analisados produtos do domínio escolhido para extrairsuas similaridades e variabilidades. A partir desta análise é construída uma versão inicialda linha

  • 21

    Figura 4 – Abordagens para construção de Linhas de Produto de Software Fonte: Silvaet. al (2011)

    2.2.5 Vantagens e Desvantagens

    O uso de SPL traz varias vantagens como, redução dos custos de desenvolvimentoe manutenção, principalmente nas partes comuns, também chamados de ativos base. Aelaboração de uma SPL gera redução no tempo entrega de um produto ao mercado "time-to-market", conforme ilustrado na figura 5, o tempo de desenvolvimento de somente umproduto,e constante, entretanto no desenvolvimento de uma SPL o tempo passa a sermenor conforme a quantidades de produtos, ativos base, que já foram desenvolvidos. Aqualidade do produto normalmente tende a aumentar, pois a cada inserção de um membronessa linha, são realizados novos testes, sejam eles unitários, de sistema, ou regressão.Ecaso necessário é feita a refatoração dos ativos, beneficiando toda a família a qual oproduto em questão pertence.

  • 22

    Figura 5 – Time to market with and without product line engineering.

    As desvantagens associadas ao uso de SPL são, a alta demanda de tempo nainiciação do processo para criação da linha de produto, bem como no desenvolvimento dosprimeiros artefatos, nome dado aos sistemas desenvolvidos que representam os ativos base.O processo de analise dos requisitos, da definição dos ativos base, e do desenvolvimentodos artefatos necessita de um engenheiro com experiencia em arquitetura de software,profissional esse muito requisitado no mercado.

    2.3 Linha de Produto de Software aplicada

    Para o desenvolvimento da Linha de Produto de Software de um e-commerce foiadotado alguns modelos e abordagens, todos já citados anteriormente, e que em minhaanálise , devido ao estudo através dos referenciais aqui presentes, são os que melhoresatenderam ao estudo de caso proposto.

    Na gestão de variabilidade foi utilizado o modelo de características, pois o mesmotem grande acervo referêncial, possui uma notação de fácil entendimento, e é utilizado namaioria das linhas de produtos no que se diz a respeito a engenharia de dominio.

    A abordagem escolhida foi a proativa , pois sua principal característica é o pla-nejamento inicial para os futuros produtos que serão produzidos, é o caso da propostadessa dissertação que é a de planejar uma familia de produtos para uma plataforma dee-commerce.

  • 23

    3 MATERIAIS E MÉTODOS

    Tópico responsável por apresentar os procedimentos metodológicos escolhidos eempregados no experimento, a forma com que os frameworks foram utilizados e as ferra-mentas que participaram no processo de analise e desenvolvimento do caso de uso.

    3.1 Feature Oriented Domain Analysis

    Existem vários métodos e modelos usados na modelagem da variabilidade, umdeles é o FODA(Feature Oriented Domain Analysis), foi desenvolvido pelo SEI(SoftwareEngineering Institute). é utilizado na etapa da engenharia de dominio e faz uso de featuresmodel.

    Essa seção tratará a respeito desse método.

    3.2 Sistema de Loja Virtual (E-commerce)

    Nesse tópico será apresentado a arquitetura de um sistema de vendas online, suasprincipais funcionalidades e características.

    3.2.1 Definição

    3.2.2 Exemplo

  • 24

    4 DESENVOLVIMENTO

    Tópico que tratará a respeito do desenvolvimento do caso de uso na prática, serámostrado a arquitetura definida, assim como suas features e todas características quepertencem ao processo de confecção de uma linha de produtos

    4.1 Estudo de caso

    Será descrito como foi realizado o desenvolvimento da linha de produto para ume-commerce

  • 25

    5 CONCLUSÃO

    Sed consequat tellus et tortor. Ut tempor laoreet quam. Nullam id wisi a liberotristique semper. Nullam nisl massa, rutrum ut, egestas semper, mollis id, leo. Nullaac massa eu risus blandit mattis. Mauris ut nunc. In hac habitasse platea dictumst.Aliquam eget tortor. Quisque dapibus pede in erat. Nunc enim. In dui nulla, commodoat, consectetuer nec, malesuada nec, elit. Aliquam ornare tellus eu urna. Sed nec metus.Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpisegestas.

    Phasellus id magna. Duis malesuada interdum arcu. Integer metus. Morbi pulvinarpellentesque mi. Suspendisse sed est eu magna molestie egestas. Quisque mi lorem, pulvi-nar eget, egestas quis, luctus at, ante. Proin auctor vehicula purus. Fusce ac nisl aliquamante hendrerit pellentesque. Class aptent taciti sociosqu ad litora torquent per conubianostra, per inceptos hymenaeos. Morbi wisi. Etiam arcu mauris, facilisis sed, eleifend non,nonummy ut, pede. Cras ut lacus tempor metus mollis placerat. Vivamus eu tortor velmetus interdum malesuada.

    Sed eleifend, eros sit amet faucibus elementum, urna sapien consectetuer mauris,quis egestas leo justo non risus. Morbi non felis ac libero vulputate fringilla. Mauris liberoeros, lacinia non, sodales quis, dapibus porttitor, pede. Class aptent taciti sociosqu adlitora torquent per conubia nostra, per inceptos hymenaeos. Morbi dapibus mauris condi-mentum nulla. Cum sociis natoque penatibus et magnis dis parturient montes, nasceturridiculus mus. Etiam sit amet erat. Nulla varius. Etiam tincidunt dui vitae turpis. Donecleo. Morbi vulputate convallis est. Integer aliquet. Pellentesque aliquet sodales urna.

  • 26

    REFERÊNCIAS

    [1] BOSCH, J. Software product line engineering. [S.l.: s.n.], 2013. 3–24 p. ISBN9783642365836.

    [2] RAFAEL. Linha de Produto de Software. Dev Media, 2015. Disponível em:.

    [3] DURSCKI, R. C. et al. Linhas de Produto de Software : riscos e vantagens de suaimplantação. VI Simpósio Internacional de Melhoria de Processos de Software,p. 155–166, 2004. Disponível em: .

    [4] AMADEU, C. V.; GONÇALVES, P. R. &. T. J. Análise e Projeto de Sistemas.Batatais: Claretiano, 2013.

    [5] ABORDAGEM, U.; PRESSMAN, R. S. Engenharia de Software. Sétima edi. [S.l.]:AMGH Editora Ltda, 2011. 780 p. ISBN 9788580550443.

    [6] MOTA, H. Estratégias de marketing garantem o sucesso do produto nomercado. Disponível em: .

    https://www.devmedia.com.br/linha-de-produto-de-software/33894http://www.simpros.com.br/simpros2004/Apresentacoes{\_}PDF/Artigos/Art{\_}14{\_}Simprohttp://www.simpros.com.br/simpros2004/Apresentacoes{\_}PDF/Artigos/Art{\_}14{\_}Simprohttp://www.sebrae.com.br/sites/PortalSebrae/artigos/estrategias-de-marketing-garantem-o-sucesso-do-produto-no-mercado,b10032736a186410VgnVCM1000003b74010aRCRDhttp://www.sebrae.com.br/sites/PortalSebrae/artigos/estrategias-de-marketing-garantem-o-sucesso-do-produto-no-mercado,b10032736a186410VgnVCM1000003b74010aRCRDhttp://www.sebrae.com.br/sites/PortalSebrae/artigos/estrategias-de-marketing-garantem-o-sucesso-do-produto-no-mercado,b10032736a186410VgnVCM1000003b74010aRCRD

  • Apêndices

  • 28

    APÊNDICE A – QUISQUE LIBERO JUSTO

    Quisque facilisis auctor sapien. Pellentesque gravida hendrerit lectus. Mauris ru-trum sodales sapien. Fusce hendrerit sem vel lorem. Integer pellentesque massa vel au-gue. Integer elit tortor, feugiat quis, sagittis et, ornare non, lacus. Vestibulum posuerepellentesque eros. Quisque venenatis ipsum dictum nulla. Aliquam quis quam non metuseleifend interdum. Nam eget sapien ac mauris malesuada adipiscing. Etiam eleifend nequesed quam. Nulla facilisi. Proin a ligula. Sed id dui eu nibh egestas tincidunt. Suspendissearcu.

  • Anexos

  • 30

    ANEXO A – MORBI ULTRICES RUTRUM LOREM.

    Sed mattis, erat sit amet gravida malesuada, elit augue egestas diam, tempusscelerisque nunc nisl vitae libero. Sed consequat feugiat massa. Nunc porta, eros in eleifendvarius, erat leo rutrum dui, non convallis lectus orci ut nibh. Sed lorem massa, nonummyquis, egestas id, condimentum at, nisl. Maecenas at nibh. Aliquam et augue at nuncpellentesque ullamcorper. Duis nisl nibh, laoreet suscipit, convallis ut, rutrum id, enim.Phasellus odio. Nulla nulla elit, molestie non, scelerisque at, vestibulum eu, nulla. Ut odionisl, facilisis id, mollis et, scelerisque nec, enim. Aenean sem leo, pellentesque sit amet,scelerisque sit amet, vehicula pellentesque, sapien.

  • 31

    TRABALHOS PUBLICADOS PELO AUTOR

    Trabalhos publicados pelo autor durante o programa.

    Publicações principais do trabalho.

    1. Jose da silva, autor2 da silva, orientador da silva, Título do artigo, local onde foipublicado, mês/ano, editora, número de página, isbn, etc. (Qualis CC 2017, xx)

    2. Jose da silva, autor2 da silva, orientador da silva, Título do artigo, local onde foipublicado, mês/ano, editora, número de página, isbn, etc. (Qualis CC 2017, xx)

    3. Jose da silva, autor2 da silva, orientador da silva, Título do artigo, local onde foipublicado, mês/ano, editora, número de página, isbn, etc. (Qualis CC 2017, xx)

    Publicações complementares.

    1. Jose da silva, autor2 da silva, orientador da silva, Título do artigo, local onde foipublicado, mês/ano, editora, número de página, isbn, etc. (Qualis CC 2017, xx)

    2. Jose da silva, autor2 da silva, orientador da silva, etc. Título do artigo, local ondefoi publicado, mês/ano, editora, número de página, isbn, (Qualis CC 2017, xx)

    Folha de rostoFolha de aprovaçãoDedicatóriaAgradecimentosEpígrafeResumoAbstractLista de ilustraçõesLista de tabelasLista de abreviaturas e siglasSumárioIntroduçãoREVISAO BIBLIOGRAFICAProcesso de Desenvolvimento de SoftwareLinha de Produto de SoftwareVariabilidadeModelo de Características

    Engenharia de DomínioEngenharia de AplicaçãoAbordagensVantagens e Desvantagens

    Linha de Produto de Software aplicada

    Materiais e MétodosFeature Oriented Domain AnalysisSistema de Loja Virtual (E-commerce)DefiniçãoExemplo

    DESENVOLVIMENTOEstudo de caso

    ConclusãoReferênciasApêndicesQuisque libero justo

    AnexosMorbi ultrices rutrum lorem.

    Trabalhos Publicados pelo Autor