Baixe o app para aproveitar ainda mais
Prévia do material em texto
TÓPICOS ESPECIAIS EM ENGENHARIA DE SOFTWARE I Professora Esp. Janaina Aparecida de Freitas GRADUAÇÃO Unicesumar C397 CENTRO UNIVERSITÁRIO DE MARINGÁ. Núcleo de Educação a Distância; FREITAS, Janaina Aparecida de. Tópicos Especiais Em Engenharia de Software I. Janaina Apa- recida de Freitas. Maringá-Pr.: UniCesumar, 2018. 222 p. “Graduação - EaD”. 1. Tópicos 2. Engenharia . 3. Software 4. EaD. I. Título. CDD - 22 ed. 005.1 CIP - NBR 12899 - AACR/2 Ficha catalográfica elaborada pelo bibliotecário João Vivaldo de Souza - CRB-8 - 6828 Reitor Wilson de Matos Silva Vice-Reitor Wilson de Matos Silva Filho Pró-Reitor de Administração Wilson de Matos Silva Filho Pró-Reitor Executivo de EAD William Victor Kendrick de Matos Silva Pró-Reitor de Ensino de EAD Janes Fidélis Tomelin Presidente da Mantenedora Cláudio Ferdinandi NEAD - Núcleo de Educação a Distância Diretoria Executiva Chrystiano Minco� James Prestes Tiago Stachon Diretoria de Design Educacional Débora Leite Diretoria de Graduação e Pós-graduação Kátia Coelho Diretoria de Permanência Leonardo Spaine Head de Produção de Conteúdos Celso Luiz Braga de Souza Filho Gerência de Produção de Conteúdo Diogo Ribeiro Garcia Gerência de Projetos Especiais Daniel Fuverki Hey Supervisão do Núcleo de Produção de Materiais Nádila Toledo Supervisão Operacional de Ensino Luiz Arthur Sanglard Coordenador de Conteúdo Fabiana de Lima Designer Educacional Amanda Peçanha Dos Santos Janaína de Souza Pontes Iconografia Isabela Soares Silva Projeto Gráfico Jaime de Marchi Junior José Jhonny Coelho Arte Capa Arthur Cantareli Silva Editoração Fernando Henrique Mendes Qualidade Textual Cintia Prezoto Ferreira Ilustração Marta Kakitani Viver e trabalhar em uma sociedade global é um grande desafio para todos os cidadãos. A busca por tecnologia, informação, conhecimento de qualidade, novas habilidades para liderança e so- lução de problemas com eficiência tornou-se uma questão de sobrevivência no mundo do trabalho. Cada um de nós tem uma grande responsabilida- de: as escolhas que fizermos por nós e pelos nos- sos farão grande diferença no futuro. Com essa visão, o Centro Universitário Cesumar assume o compromisso de democratizar o conhe- cimento por meio de alta tecnologia e contribuir para o futuro dos brasileiros. No cumprimento de sua missão – “promover a educação de qualidade nas diferentes áreas do conhecimento, formando profissionais cidadãos que contribuam para o desenvolvimento de uma sociedade justa e solidária” –, o Centro Universi- tário Cesumar busca a integração do ensino-pes- quisa-extensão com as demandas institucionais e sociais; a realização de uma prática acadêmica que contribua para o desenvolvimento da consci- ência social e política e, por fim, a democratização do conhecimento acadêmico com a articulação e a integração com a sociedade. Diante disso, o Centro Universitário Cesumar al- meja ser reconhecido como uma instituição uni- versitária de referência regional e nacional pela qualidade e compromisso do corpo docente; aquisição de competências institucionais para o desenvolvimento de linhas de pesquisa; con- solidação da extensão universitária; qualidade da oferta dos ensinos presencial e a distância; bem-estar e satisfação da comunidade interna; qualidade da gestão acadêmica e administrati- va; compromisso social de inclusão; processos de cooperação e parceria com o mundo do trabalho, como também pelo compromisso e relaciona- mento permanente com os egressos, incentivan- do a educação continuada. Pró-Reitor de Ensino de EAD Diretoria de Graduação e Pós-graduação Seja bem-vindo(a), caro(a) acadêmico(a)! Você está iniciando um processo de transformação, pois quando investimos em nossa formação, seja ela pessoal ou profissional, nos transformamos e, consequentemente, transformamos também a sociedade na qual estamos inseridos. De que forma o fazemos? Criando oportu- nidades e/ou estabelecendo mudanças capazes de alcançar um nível de desenvolvimento compatível com os desafios que surgem no mundo contemporâneo. O Centro Universitário Cesumar mediante o Núcleo de Educação a Distância, o(a) acompanhará durante todo este processo, pois conforme Freire (1996): “Os homens se educam juntos, na transformação do mundo”. Os materiais produzidos oferecem linguagem dialógica e encontram-se integrados à proposta pedagógica, con- tribuindo no processo educacional, complementando sua formação profissional, desenvolvendo competên- cias e habilidades, e aplicando conceitos teóricos em situação de realidade, de maneira a inseri-lo no mercado de trabalho. Ou seja, estes materiais têm como principal objetivo “provocar uma aproximação entre você e o conteúdo”, desta forma possibilita o desenvolvimento da autonomia em busca dos conhecimentos necessá- rios para a sua formação pessoal e profissional. Portanto, nossa distância nesse processo de cresci- mento e construção do conhecimento deve ser apenas geográfica. Utilize os diversos recursos pedagógicos que o Centro Universitário Cesumar lhe possibilita. Ou seja, acesse regularmente o AVA – Ambiente Virtual de Aprendizagem, interaja nos fóruns e enquetes, assista às aulas ao vivo e participe das discussões. Além dis- so, lembre-se que existe uma equipe de professores e tutores que se encontra disponível para sanar suas dúvidas e auxiliá-lo(a) em seu processo de aprendiza- gem, possibilitando-lhe trilhar com tranquilidade e segurança sua trajetória acadêmica. A U TO R A Professora Esp. Janaina Aparecida de Freitas Atualmente, cursando o Mestrado em Ciência da Computação, pela Universidade Estadual de Maringá (UEM) e Licenciatura em Letras - Português/ Inglês, no Centro Universitário Cesumar (UniCesumar). Especialização (MBA) em Teste de Software, pela Universidade Ceuma (UNICEUMA/2012). Graduação em Informática, pela Universidade Estadual de Maringá (UEM/2010). Trabalhou na iniciativa privada, na área de Análise de Sistemas e Testes de Software. Tem experiência na área de Engenharia de Software, com ênfase em Análise de Requisitos, Gestão de Projetos de Software, Métricas e Estimativas, Qualidade e Teste de Software. É professora mediadora dos cursos de graduação Análise e Desenvolvimento de Sistemas (ADS) e Sistemas para Internet (SI), na modalidade de Ensino a Distância (EAD), pelo Unicesumar. Link: http://lattes.cnpq.br/4906244382612830 SEJA BEM-VINDO(A)! Prezado(a) aluno(a), seja bem-vindo(a) à disciplina de Tópicos Especiais em Engenharia de Software I. Nesta disciplina, iremos abordar o conteúdo sobre as Fábricas de Softwa- re, desde seus conceitos básicos até a sua implantação. As unidades do livro foram organizadas de forma que estejam vinculadas, ou seja, que a unidade seguinte sempre esteja vinculada com a unidade anterior. Portanto, é bom que você leia e entenda todo o conteúdo de uma unidade para passar para a próxima. Vamos iniciar vendo, na Unidade I, uma apresentação do panorama geral do Paradigma da Fábrica de Software, conceituar o termo Fábrica de Software e verificar os tipos de software que podem ser desenvolvidos em uma Fábrica de Software. Também vamos analisar e entender os Frameworks Organizacionais da Fábrica de Software e apresentar as decisões e as estratégias acerca da Estrutura da Fábrica de Software. Seguindo para a Unidade II, vamos apresentar uma visão geral da Fábrica de Software, entender mais a fundo como funciona a estrutura organizacional de uma Fábrica Orien- tada a Processos, de uma Fábrica Orientada a Produtos, de uma Fábrica de Projetos e da Fábrica de Programas. Depois, seguindo para a Unidade III, vamos conhecer os principais conceitos e princípios que envolvem a Linha de Produto de Software (LPS). Também iremos conhecer con- ceitos e funcionamento de uma Fábrica de Testes, entender como funciona a estrutura organizacional de uma Fábrica de Componentes e compreender o funcionamento e a estrutura organizacional de um Modelo de Outsourcingde Sistemas. Na Unidade IV, passaremos a entender como Virtualizar uma Fábrica de Software e va- mos aprender como aplicar os modelos de Fábrica de Software In-house. Também va- mos conhecer a Fábrica de Software e os modelos de melhores práticas e certificações, além de entender como estruturar Operações de Fábrica de Software Offshore e conhe- cer os seus requisitos técnicos e comerciais que são utilizados. E, por fim, na Unidade V, vamos conhecer as estratégias de Implantação da Fábrica de Software, seu planejamento e gerenciamentos. Vamos aprender também sobre WBS do Projeto de Fábrica de Software e como aplica-lo. Espero que sua leitura seja agradável e que esse conteúdo possa contribuir para seu crescimento pessoal e profissional. Assim, convido você, caro(a) aluno(a), a entrar nessa jornada com empenho, dedicação e muita sede por conhecimento! Vamos começar nossos estudos? Boa leitura! APRESENTAÇÃO TÓPICOS ESPECIAIS EM ENGENHARIA DE SOFTWARE I SUMÁRIO 09 UNIDADE I VISÃO GERAL DA FÁBRICA DE SOFTWARE 15 Introdução 16 Paradigma da Fábrica de Software 21 O Que É Fábrica De Software? 30 Tipos de Softwares Desenvolvidos na Fábrica de Software 33 Frameworks Organizacionais de Fábrica de Software 37 Decisões Acerca da Estrutura Organizacional da Fábrica de Software 43 Considerações Finais 50 Gabarito UNIDADE II MODELOS DE FÁBRICAS DE SOFTWARE 53 Introdução 54 Visão Geral da Fábrica de Software 64 Fábrica de Software Baseada em Processos 71 Fábrica de Software Baseada em Produtos 76 Fábrica de Projetos 84 Fábrica de Programas de Software 90 Considerações Finais 97 Gabarito SUMÁRIO 10 UNIDADE III OUTROS MODELOS DE FÁBRICA DE SOFTWARE 101 Introdução 102 Linha de produtos de software 115 Fábrica De Testes De Software 123 Fábrica de Componentes 126 Modelo de Outsourcing de Sistemas 135 Considerações Finais 144 Gabarito UNIDADE IV APLICANDO OS MODELOS DE FÁBRICA DE SOFTWARE 147 Introdução 148 Virtualizando a Fábrica de Software 151 Como Aplicar os Modelos de Fábrica de Software In-House 156 Aplicação da Fábrica de Programas In-House 158 Fábrica de Software e Modelos de Melhores Práticas e Certificações 166 Estruturando Operações de Fábrica de Software Offshore 172 Requisitos Técnicos e Comerciais Para Estruturar uma Operação Offshore 175 Considerações Finais 183 Gabarito SUMÁRIO 11 UNIDADE V IMPLANTANDO A FÁBRICA DE SOFTWARE 187 Introdução 188 Estratégia da Implantação da Fábrica de Software 194 Planejamento da Implantação da Fábrica de Software 196 WBS do Projeto de Fábrica de Software 210 Gerenciamento da Implantação da Fábrica de Software 213 Considerações Finais 220 Referências 221 Gabarito 222 CONCLUSÃO U N ID A D E I Professora Esp. Janaina Aparecida de Freitas VISÃO GERAL DA FÁBRICA DE SOFTWARE Objetivos de Aprendizagem ■ Apresentar um panorama geral do Paradigma da Fábrica de Software. ■ Conceituar o termo Fábrica de Software. ■ Conhecer e entender os tipos de software que podem ser desenvolvidos em uma Fábrica de Software. ■ Analisar e entender os Frameworks Organizacionais da Fábrica de Software. ■ Apresentar as decisões e estratégias acerca da Estrutura da Fábrica de Software. Plano de Estudo A seguir, apresentam-se os tópicos que você estudará nesta unidade: ■ Paradigma da Fábrica de Software ■ O que é Fábrica de software? ■ Tipos de Softwares desenvolvidos na Fábrica de Software ■ Frameworks Organizacionais de Fábrica de Software ■ Decisões acerca da Estrutura Organizacional da Fábrica de Software Introdução Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 15 INTRODUÇÃO Olá, aluno(a)! Esta unidade tem por finalidade apresentar um panorama geral que envolve a Fábrica de Software. Além de mostrar conceitos e ideias acerca do termo Fábrica de Software, serão explicados os referenciais teóricos: o fordismo e o pós-fordismo, e como eles interagem no paradigma da Fábrica de Software. Hoje, temos um crescente número de empresas que estão no negócio de software e têm adotado o termo Fábrica de Software, seja em virtude da alta demanda de software no mercado ou o grande aumento da complexidade dos softwares, seja como uma solução para produzir seus produtos ou serviços com maior qualidade, maior produtividade e baixo custo de produção. Um dado histórico importante: o termo fábrica de software vem desde os anos 60, nos Estados Unidos, e desde os anos 70, no Japão, evoluindo e se refi- nando até os dias atuais. Por isso, é importante conhecer o que é uma Fábrica de Software e os conceitos que norteiam este movimento com uma abordagem “fabril”. O objetivo é mostrar a situação atual das operações que envolvem uma Fábrica de Software, compreendendo e entendendo seu processo e suas ideias. Vamos analisar e entender os Frameworks Organizacionais da Fábrica de Software a partir de três visões diferentes. Uma visão voltada ao reúso da experiência e a uma organização orientada ao projeto; outra visão baseada em componentes; e uma terceira visão que classifica a fábrica de software de acordo com o seu escopo de fornecimento e que delineia as fases de desenvolvimento de um projeto de software. Vamos apresentar, também, as decisões e estratégias que devem ser tomadas acerca da estrutura da Fábrica de Software, como, por exemplo: decisões sobre desenvolvimento de linhas de novos serviços, da rede de operações, tecnologias de processos, recursos humanos, planejamento e controle de qualidade, entre outros. Preparado(a) para começar? Então, vamos seguir em frente. Boa leitura e bons estudos! VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E16 PARADIGMA DA FÁBRICA DE SOFTWARE Quando pensamos em tecnologias, é profundamente interessante falar sobre com- putação quântica, realidade aumentada, veículos autônomos, robôs em todos os lugares, inteligência baseada em computadores e serviços de entrega de drones, entre outros. Desde o início dos tempos, os seres humanos são fascinados por ferramentas que podem melhorar suas vidas. Contudo, na verdade, a maior história será nos bastidores: a história de como as empresas vão se transformar para serem capazes de realizar todo o potencial de todas essas ideias e dispositivos notáveis. A chave para essa transformação é, naturalmente, o software. Na verdade, o software é cada vez mais a resposta a todas as perguntas no “guia para a galáxia” ao se pensar em tecnologias. Uma coisa é certa, as empresas que estão no negócio de software devem ter todos os olhos na construção e modernização de seus produtos e ferramentas para estarem conectados ao mundo digitalmente. Uma previsão que já está se tornando realidade é que as empresas que conseguem mapear suas fábricas de software, identificar lacunas-chaves e fechá-las, e aprender a automatizar com êxito para deslocar recursos para a inovação vão liderar o mercado na entrega de experiências superiores aos seus clientes. Paradigma da Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 17 Um crescente número de empresas que estão no negócio de software tem adotado o termo Fábrica de Software, em virtude da alta demanda de software ou do aumento da complexidade, ou como uma solução para produzir seus produ- tos ou serviços com qualidade, maior produtividade e baixo custo de produção. A expressão fábrica de software vem desde os anos 60, nos Estados Unidos, e desde os anos 70, no Japão, evoluindo e se refinando até os dias atuais. Conforme Nomura, a distinção feita pelos japoneses para fábrica de software já levava em conta algumas características que: [...] ainda são despercebidas por várias empresasque associam o termo “Fábrica” ao mero desenvolvimento de software, sem a preocupação com as padronizações que vão além do algoritmo exigido pela lingua- gem de programação ou com os aspectos associados à produção em massa e em larga escala, tais como: simplificação, integridade concei- tual, aderência aos padrões, automação seletiva no processo de desen- volvimento, padronizações de tarefas e controles, divisão do trabalho, mecanização e automatização (NOMURA, 2008, p. 28). Contudo, para falar sobre o paradigma da fábrica de software é preciso conhe- cer o referencial teórico: o fordismo, o pós-fordismo e como eles interagem no paradigma da fábrica de software. FORDISMO E PÓS-FORDISMO Caracteriza-se o fordismo como sendo um método de organização da produ- ção e do trabalho complementar ao taylorismo e, conforme Tenório e Valle (2012), emprega-se mão de obra especializada para a produção de serviços ou de produtos padronizados e com aplicação de técnicas repetitivas. O pós-for- dismo caracteriza-se pela diferenciação integrada da organização da produção de serviços ou produtos e da trajetória de inovações tecnológicas. Estes con- ceitos – fordismo e pós-fordismo – se interagem à fábrica de software, quando consideramos um ambiente organizacional no qual os conceitos e suas técnicas ocorrem na gestão da produção. O ponto principal, segundo Fernandes e Teixeira (2011), é que há uma asso- ciação de valor quando pensamos em desenvolvimento de softwares que utilizam VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E18 alguns conceitos de engenharia associados à manufatura. Ainda conforme os autores, o ambiente de software visualiza o processo de engenharia como uma linha de montagem, baseada em ciclos de vida do desenvolvimento que se rela- cionam com os processos de garantia de qualidade do produto. Porém, conforme Tenório e Valle (2012), o modelo de fábrica clássica de produção em massa (fordismo e pós-fordismo), na qual as pessoas realizam as atividades repetitivas como extensões de máquinas, não é o modelo correto e nem aceito para a fabricação de softwares. Então, porque o uso da expressão fábrica de software? Principalmente, considerando que o produto de software é de natureza abstrata e cada software desenvolvido é um produto único. Há muitas controvérsias e diferentes visões com relação à expressão “fábrica de software”. Conforme Tenório e Valle (2012), no processo de software, a ana- logia a essa expressão pode ser aplicada aos objetivos da produção baseada no estilo industrial e não na sua implementação. A mudança da forma artesanal para a científica trouxe ao desenvolvimento de software princípios que agregam valor aos produtos, como a automação e a padronização, que proporcionaram aumento considerável na produtividade. (ALMEIDA, 2009, p. 44). Na visão de Borsoi (2008), existem diferenças entre o desenvolvimento de software em relação à manufatura industrial, como: [...] o desenvolvimento de software possui diferenças fundamentais em relação à produção da manufatura industrial, como, a não produção em série e o vínculo da realização das atividades de desenvolvimento à criatividade e ao conhecimento prático e teórico das pessoas. Porém, é possível encontrar similaridades entre ambos, como: uso de processos e de modelos de qualidade, reuso de artefatos, linha de produtos e o ob- jetivo de desenvolver produtos com qualidade, cumprir o cronograma e corresponder ao orçamento (BORSOI, 2008, p. 23). O desafio da Engenharia de Software é construir softwares que atendam às neces- sidades dos usuários, com qualidade, dentro do prazo e custo estimado. No entanto, com o crescimento da demanda, a complexidade do software aumenta e esta dificuldade aumenta quando se pretende aumentar a escala de produção. Para Tenório e Valle (2012), a busca da produtividade faz com o formalismo e o controle do processo seja mais rigoroso e especializado. Ainda, temos as técnicas Paradigma da Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 19 estruturadas e a componentização, que equivalem a uma “fordização” da fabri- cação de software e, neste caso, a diferença agora é que o produto é intangível. Apesar de todo o sistema ser considerado único, os softwares são compostos por componentes que são desenvolvidos separadamente ou, ainda, comprados de ter- ceiros e depois podem ser montados para obter o resultado final. Conforme Nomura (2008, p. 27), o paradigma da Fábrica de Software busca a obtenção de qualidade e produtividade no desenvolvimento e manutenção de software por meio de padronização de processos, reúso de artefatos e controle do sistema de produção. Para a autora, um framework de fábrica de software pode ser usado em diferentes óticas com foco em: segmentação das atividades, desenvolvi- mento baseado em componentes, linha de produção de software e terceirização. O mercado de desenvolvimento de software cresceu e vai continuar cres- cendo, pois o software vem sendo incorporado em quase todos os produtos e serviços que usamos. Com o crescimento desse mercado, tornou-se necessário que a gestão do processo de desenvolvimento de software viabilize a produção em larga escala para atender esta demanda de mercado, mas com qualidade e com um menor custo. A partir daí, surgiu a iniciativa de organizar a produção de software de acordo com o modelo fabril taylorista-fordista. Para Tenório e Valle, esta iniciativa é uma realidade em nossos dias, principalmente pela TQM que: [...] com a crescente disseminação das práticas de Gestão da Qualidade (Total Quality Management) nos Estados Unidos nos anos 1980, co- meçou um forte movimento por parte do governo norte-americano, mais notadamente do Departamento de Defesa, para introduzir esses conceitos na gestão da produção de software. Dos trabalhos de Watts Humphrey junto com o Software Engineering Institute nasceu o modelo CMM (Capability Maturity Model) que é uma das principais referências em gestão de processo de software. Tais modelos, ao decompor proces- sos e colocá-los em sequência, remetem ao modelo fordista. Porém, diferentemente do modelo fordista, no qual a qualidade do produto era de responsabilidade do supervisor/gerente, o CMM se baseia no prin- cípio de que cada empregado é diretamente responsável pelo produto. Ou seja, a gestão da qualidade do período denominado pós-fordista faz parte desse novo processo (TENÓRIO; VALLE, 2012, p. 50 e 51). VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E20 Para entendermos as abordagens sobre o conceito de fábrica de software e a sua evolu- ção com o passar dos anos, o quadro a seguir apresenta o processo evolutivo da fábrica de software, mostrando que ela ocorre em estágios (FERNANDES; TEIXEIRA, 2011). Quadro 1 - Evolução da Fábrica de Software FASES CARACTERÍSTICAS FASE 1 Organização básica e Gerência da estrutura (meados de 60 e início de 70): • Objetivos da manufatura de software são estabelecidos. • Foco no produto é determinado. • Começa a coleta de dados sobre o processo. FASE 2 Customização da Tecnologia e Padronização (início de 70): • Objetivos dos sistemas de controle são estabelecidos. • Métodos padrões são estabelecidos para desenvolvimento. • Desenvolvimento em ambiente on-line. • Treinamento de empregados para padronizar as habilidades. • Bibliotecas de código-fonte são introduzidas. • Começam a ser introduzidas metodologias e ferramentas de desenvolvimento. FASE 3 Mecanização e Suporte ao processo ( final dos anos 70): • Introdução de ferramentas para apoio ao controle de projetos. • Introdução de ferramentas para geração de código, teste e documentação. • Integração de ferramentas com banco de dados e plataformas de desenvolvimento.FASE 4 Refinamento do Processo e Extensão: • Revisão dos padrões. • Introdução de novos métodos e ferramentas. • Estabelecimento de controle de qualidade e círculos da qualidade. • Transferência de métodos e ferramenta para subsidiárias e terceiros. FASE 5 Automação Flexível: • Aumento da capacidade das ferramentas existentes. • Introdução de ferramentas de apoio à reutilização. • Introdução de ferramentas de automação de design. • Introdução de ferramentas de apoio à análise de requisitos. • Integração de ferramentas em plataformas de desenvolvimento. Fonte: Fernandes e Teixeira (2011, p. 30). Para Tenório e Valle (2012), há uma analogia entre a introdução de processos de desenvolvimento de software pelo paradigma da fábrica de software e a introdu- ção da fábrica de manufatura segundo o paradigma taylorista-fordista: ambos os paradigmas transformam o processo de produção de um esquema artesa- nal para um esquema baseado em linha de produção, que se apoia em tarefas repetitivas e padronizadas. Ford criou o conceito de intercambialidade entre as partes do automóvel; e o conceito de reutilização de componentes de software tenta aumentar a produtividade e melhorar a qualidade para mais de um projeto. O Que É Fábrica de Software? Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 21 Então, podemos pensar que todo o esforço de implementar uma operação fabril para o desenvolvimento de software possui suas raízes na engenharia indus- trial e em muitos conceitos provenientes da gestão da qualidade total, desde a década de 80. No entanto, quando falamos em serviços de software, para muitos profissio- nais da tecnologia da informação isso ainda não está claro. Serviços de software, em larga escala, como o desenvolvimento simultâneo de vários novos projetos ou várias solicitações de atendimento de serviços de manutenção, requerem que seja adotado práticas de produção e gestão de serviços, ou seja, uma fábrica de serviços. O QUE É FÁBRICA DE SOFTWARE? O termo Fábrica de software vem sendo discutido desde o final dos anos 60 e vem evoluindo até os dias atuais, tendo surgido como uma solução para aumen- tar a produtividade e diminuir prazos e custos de produção. VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E22 O conceito de Fábrica de software, conforme Fernandes e Teixeira (2011, p. 117), é definido como: [...] um processo estruturado, controlado e melhorado de forma con- tínua, considerando abordagens de engenharia industrial, orientado para o atendimento a múltiplas demandas de natureza e escopo distin- tas, visando à geração de produtos de software, conforme os requeri- mentos documentados dos usuários e/ou clientes, da forma mais pro- dutiva e econômica possível (FERNANDES; TEIXEIRA, 2011, p. 117). Uma das primeiras empresas a adotar o termo fábrica de software foi a japonesa Hitachi, no ano de 1969, com seus Hitachi Software Works. Depois, em meados dos anos 70, outras empresas, como a System Development Corporation, NEC, Toshiba e Fujitsu também começaram a adotar este termo e utilizar seus conceitos e práticas. Para Nomura (2008, p. 27), “o sucesso das fábricas de software do Japão e nos EUA deve-se à inclusão de um alto grau de reuso, modularização, uso de ferramentas, controle e gerenciamento dos sistemas, aumentando a qualidade e a flexibilidade”. Para Oliveira (2007), essa descoberta como um novo modelo de trabalho para o desenvolvimento de software fez com que surgissem várias adaptações do modelo, com diferentes abordagens, foco em ferramentas e em processos. Podemos citar três modelos em destaque: Modelo Japonês: foco na alta produtividade e qualidade do software. Objetivo principal da empresa é tornar a rotina de trabalho simples e repetitiva, e padroni- zar os processos de trabalho. As experiências das empresas japonesas resultaram em nove elementos básicos comuns ao desenvolvimento de software. São eles: 1. Comprometimento com a melhoria de processos; 2. Segmentação e foco em produto-processo; 3. Análise e controle da qualidade e do processo; 4. Processo centralizado de pesquisa e desenvolvimento; 5. Nivelamento e padronização do conhecimento; 6. Padronização dinâmica; 7. Reusabilidade sistemática; 8. Integração de ferramentas CASE ao ambiente de fábrica; 9. Melhoria dos processos de maneira incremental. O Que É Fábrica de Software? Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 23 Modelo Europeu: foco na integração de ambientes de desenvolvimento de sof- tware. Objetivo na criação de uma arquitetura e um framework para um ambiente de desenvolvimento de software integrado, por meio de um modelo genérico de fábrica de software, com ferramentas, componentes e ambientes de várias áreas de negócios. Assim, é possível instanciar um ambiente de fábrica a partir deste modelo genérico e adaptá-lo a qualquer projeto na empresa. O modelo gené- rico embutiu o processo de software nas ferramentas de suporte ao ambiente de fábrica, automatizando a padronização do trabalho. São elementos importantes deste modelo para o desenvolvimento de software: foco em produto e em pro- cesso, pesquisa e desenvolvimento centralizados de processo, reusabilidade e integração de ferramentas automatizadas ao ambiente de fábrica. Modelo Norte-Americano: foco nas abordagens baseadas na experiência e na maturidade da empresa. Fundamentado em experiências em que é possível errar, desde que sejam extraídas lições e melhorias para os próximos projetos. É conhecido como Fábrica de Experiências; é apoiado pelo paradigma de melho- ria da qualidade, que podemos resumi-lo nos seguintes passos: ■ Plan: os projetos são planejados, objetivos estabelecidos utilizando as experiências anteriores; ■ Execute: projetos são executados e controlados por meio de medições; ■ Analyze: as experiências dos projetos são avaliadas e comparadas; ■ Synthesize: resultados armazenados para serem utilizados em próxi- mos projetos. A implementação da melhoria por meio da experiência é intensa, exige que a fábrica tenha um controle mais preciso e acentuado sobre as suas atividades por meio da utilização de métricas. Para Oliveira (2007), surge o modelo de uma organização madura em que: VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E24 [...] associando o conceito de maturidade pregado neste modelo à re- alidade de uma fábrica de software, isto pode ser entendido como a possibilidade de a fábrica ter maior controle sobre sua capacidade de produção. E isso significa realizar planejamentos pouco mutáveis, com estimativas mais precisas de custo, esforço e tamanho para os projetos, executar o desenvolvimento de forma monitorada e controlada, sem desvios significativos do planejamento, ser capaz de corrigir os des- vios do processo sem comprometer os custos de desenvolvimento, e por fim, gerar um produto de alta qualidade (OLIVEIRA, 2007, p. 24). Já segundo Romanha (2016), o termo fábrica de software surgiu para trazer, ao ambiente de desenvolvimento de aplicativos, conceitos e metodologias do processo de produção fabril tradicional, baseados em componentes com carac- terísticas semelhantes e com a mesma qualidade. O autor ainda coloca que, de maneira semelhante ao processo de fabricação de produtos em linhas de montagem, temos os atuais padrões de desenvolvi- mento de software, como, por exemplo, a programação orientada a objetos, em que os softwares são compostos por módulos ou componentes que são unidos para a montagem do final do produto, possibilitando que partes individuais pos- sam ser desenvolvidas independentemente das demais. Para Fernandes e Teixeira (2011), o objetivo da fábricade software é gerar produtos que foram requeridos pelos usuários ou clientes, com um mínimo de defeitos e a um custo competitivo e compatível. Para Osias (2008), temos quatro pilares de uma fábrica de software, como mostra a figura a seguir. Linhas de produtos de software Orientação contextual Estruturas da arquitetura Desenvolvimento orientado a modelo Figura 1 - Os quatro pilares de uma fábrica de software Fonte: Osias (2008, p. 37). O Que É Fábrica de Software? Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 25 Uma Linha de Produto de Software (Software Product Line) é um grupo de sof- twares ou, ainda, uma família de sistemas que compartilham um conjunto de características/especificações em comum, ou seja, são sistemas similares ao invés de um único sistema individual (CÂMARA, 2011). Sua principal característica é o fato de serem desenvolvidos a partir de um conjunto de artefatos, reutilizando componentes, especificações de requisitos, casos de teste e outros, que podem ser utilizados para o desenvolvimento de novas aplicações que possuem um mesmo domínio (FERREIRA, 2012). A Estrutura da Arquitetura é descrita como um esquema de processos da fábrica de software. Ela é usada para orientar o fluxo de trabalho e as tarefas do projeto até que todas as atividades estejam concluídas. O Desenvolvimento Orientado a Modelo (MDD) é a uma técnica para usar metadados que são capturados em modelos e que são usados para automati- zar as atividades do desenvolvimento de software. A Orientação Contextual é utilizada para descrever tudo o que é para fazer e usada como ajuda durante o processo de desenvolvimento. Segundo Osias (2008, p. 37), “ao combinar os pilares, eles transformam-se em um todo maior do que a soma de suas partes e nos impulsionam na direção da industrialização do software”. ATRIBUTOS BÁSICOS DE UMA FÁBRICA DE SOFTWARE O que deve ter uma empresa para ela ser considerada uma fábrica de software? Para ser considerada uma fábrica de software, devemos considerar alguns atribu- tos oriundos de uma fábrica industrial. Conforme Fernandes e Teixeira (2011), uma fábrica de software deve possuir os seguintes atributos básicos, indepen- dentemente de seu escopo: ■ Deve ter um processo definido e padrão para o desenvolvimento do pro- duto de software; ■ Deve ter um gerenciamento de interface forte com o usuário e/ou cliente (recebimento e entrega); VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E26 ■ Deve padronizar a entrada para a fábrica (serviços); ■ Deve determinar estimativas de prazo e custo conforme a demanda e capacidade real; ■ Deve haver métodos e padrões de estimativas; ■ Deve haver tempos e padrões de atendimento de acordo com o domí- nio da aplicação ou tecnologia e do tamanho da demanda (programa e/ ou projeto); ■ Devem ser controlados, conforme o tipo de demanda, os perfis de recur- sos humanos; ■ Deve haver controle de recursos (alocação, disponibilidade, necessida- des e produtividade); ■ Deve haver um processo de planejamento e controle da produção; ■ Deve haver um controle do status das múltiplas demandas; ■ Deve controlar todos os itens de software (documentos, padrões, proce- dimentos, ferramentas, códigos, testes) em uma biblioteca; ■ Deve haver controle absoluto do andamento da execução de cada demanda; ■ Deve ser construído os produtos de software de acordo com métodos, técnicas e ferramentas padronizadas; ■ Deve haver processos distintos para as demandas de naturezas diferentes; ■ Deve haver treinamento a todos da equipe nos processos organizacio- nais e produtivos; ■ Deve haver processos de atendimentos para a resolução de problemas de usuários e/ou clientes; ■ Deve haver mecanismos que garantam a qualidade do produto de software; ■ Deve haver mecanismos de controle de custos; ■ Deve haver mecanismos de medição e estimativas; ■ Deve haver controle absoluto sobre os níveis de serviços acordados com seus usuários e/ou clientes; O Que É Fábrica de Software? Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 27 ■ Deve haver melhoria contínua em seus processos, visando o aumento da produtividade e a redução de custos; ■ Deve haver um ambiente de hardware e software estável. NECESSIDADE RESULTADO + QUALIDADE FÁBRICA DE SOFTWARE GERENCIAMENTO TECNOLOGIA MÉTRICAS E ESTIMATIVAS PESSOAS + PROCESSOS Figura 2 – Os atributos básicos de uma fábrica de software Fonte: a autora. Alguns fatores podem interferir no resultado das fábricas de software, como: gestão de pessoas, gestão empresarial, processos de desenvolvimento de sof- tware, padrões de qualidade, métricas e estimativas, ferramentas e frameworks. E para o sucesso de uma fábrica de software? O sucesso depende de vários fatores, entre eles: ■ Da utilização de processos de desenvolvimento que ajudem na definição e na distribuição das tarefas a serem desenvolvidas nas etapas do ciclo de vida do software; ■ Uma boa comunicação tanto com o cliente quanto com a equipe; ■ Na previsão da demanda; ■ Em fazer uso de mecanismos de controle e melhoria contínua dos pro- cessos de gestão do conhecimento e de recursos humanos; ■ Na utilização de bibliotecas para reutilização de código e componentes. VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E28 Segundo Romanha (2016), outro fator que pode determinar o sucesso de uma fábrica de software é a produtividade, pois ela pode ser influenciada por três grupos de fatores: ■ Fatores tecnológicos: linguagens de programação, ferramentas de projeto, ambientes de desenvolvimento e capacidade dos equipamentos adotados. ■ Fatores humanos: perfil, formação, motivação, comprometimento e capa- citação das pessoas. ■ Fatores organizacionais: processos de trabalho, metodologias, práticas gerenciais, ambiente físico, conforto e bem-estar dos recursos humanos. Para o desenvolvimento de tarefas que são pertinentes a uma fábrica de software, a adoção de ferramentas de apoio é considerada importante e algumas são obri- gatórias, pois elas ajudam a garantir o aumento na produtividade, redução de custos e suporte a uma comunicação mais efetiva junto ao cliente e usuário. A seguir, uma lista com algumas ferramentas de apoio que podem ser utilizadas: ■ Ferramentas para Desenvolvimento (codificação) e Modelagem; ■ Ferramentas para Relatar Erros; ■ Ferramentas para Gerenciamento de Projetos; ■ Ferramentas para Comunicação; ■ Ferramentas para Controle de Versão; ■ Sistema Gerenciador de Banco de Dados (SGDB). Além das ferramentas de apoio, algumas fábricas de software podem adotar algumas certificações e boas práticas que ajudam na organização dos processos e a legitimar a qualidade dos produtos e serviços que são oferecidos, como, por exemplo: MPS.Br e o CMM/CMMI (ROMANHA, 2016). Nos resultados das fábricas de software, segundo Tenório e Valle (2012), inter- ferem diretamente alguns fatores, como: gestão de pessoas, gestão empresarial, processos de desenvolvimento de software, padrões de qualidade, ferramentas e frameworks de soluções fabris. Para Nomura (2008), o fundamento para esta- belecer uma fábrica de software está baseado: O Que É Fábrica de Software? Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 29 [...] na obtenção de benefícios das linhas de produção, na qualidade de produtos, como na produtividade alcançada. Estas linhas de pro- dução baseiam-se na definição de um processo e um fluxo que devem acompanhar cada operação do processo, além de prover as ferramentas necessárias para se obtera ação necessária. Assim, quanto mais seg- mentado for o processo, mais simples será cada operação, obtendo com isto uma divisão do trabalho orientada à especialização (NOMURA, 2008, p. 30). Modelo SW- CMM O SW-CMM (Capability Maturity Model) é uma aplicação de conceitos de ges- tão de processos e de melhoria da qualidade para o desenvolvimento e a manutenção de software. O modelo descreve como uma organização de software amadurece à medida que aperfeiçoa seu processo de software. O SW-CMM pode ser considerado um guia para a melhoria contínua do pro- cesso de software de uma organização, partindo de um processo imaturo para um processo maduro e gerenciado efetivamente. O modelo baseia-se em níveis evolutivos de maturidade do processo de software. O modelo CMMI (Capability Maturity Model Integration) é uma evolução do conceito de modelos de capabilidade estabelecido pelo CMM. O CMMI foi projetado para a melhoria dos processos de desenvolvimento de produtos e serviços, assim como a aquisição e manutenção. O CMMI tem duas representações, uma baseada em estágios, similar ao SW-CMMI e outra contínua. Fonte: Fernandes e Teixeira (2011). VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E30 TIPOS DE SOFTWARES DESENVOLVIDOS NA FÁBRICA DE SOFTWARE Falamos em estratégias que devem ser definidas e analisadas para as fábricas de software. Porém, o mercado de software é considerado complexo e pode abran- ger serviços e produtos. Assim, temos que analisar e definir que tipo de software (serviço ou produto) vai ser desenvolvido na fábrica de software. Podemos classificar o software nas categorias: produtos, serviços e embarca- dos. Os produtos de software podem ser divididos em: infraestrutura (sistemas operacionais, servidores, middleware, gerenciador de rede etc.), ferramentas (linguagens de programação, de gerenciamento, modelagem de dados, BI, data warehouse etc.) e aplicativos (ERP CRM, SCM etc.). Outra forma de classificar os produtos de software é em função do mercado: horizontal (quando se aplica a qualquer tipo de usuário) ou vertical (quando se aplica a um usuário ou atividade específica). Outra maneira de dividir é em função da forma como é comercializado, que podem ser: pacotes (produtos padronizados), customizados (permitem adaptações para cada usuário) e sof- tware sob encomenda. Tipos de Softwares Desenvolvidos na Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 31 A classificação para serviços é em função do método de compra. Outsourcing é definido como o processo em que uma organização contrata outra para desem- penhar determinada função. O Outsourcing envolve contratos mais longos e. muitas vezes, com metas de desempenho. As Outsourcing podem ser divididas em: convencional e BPO (Business Process Outsourcing). O convencional envolve a terceirização de uma atividade específica da área de TI, e o BPO pode ser defi- nido como um contrato com uma organização externa, para que seja fornecido um processo ou função de negócio. BPO é uma espécie de “terceirização” de todos os processos internos não ligados diretamente aos negócios da empresa. Isto é, podemos entender que BPO é como uma entrega de diversos procedimentos da empresa a uma especialista em processos internos, ligados a outros departamentos variados. Ou para ficar mais claro, é a contratação de uma empresa que vai prover serviços para a exe- cução de tarefas específicas dentro da sua empresa. Segundo Brito et al. (2004), temos, ainda, as Fábricas de Software Livre. Para entendermos este termo, precisamos conhecer outros conceitos, começando por software livre. Software livre é um termo usado, conforme Brito et al. (2004), “para indi- car que o software é desenvolvido e distribuído sob algum tipo de licença que garanta ao seu usuário liberdades relacionadas ao uso, alteração e redistribuição”. Um aspecto fundamental do software livre é que seu código-fonte deve estar dis- ponível livremente para ser lido, estudado ou alterado por qualquer pessoa que esteja interessada nele. Outro conceito que devemos conhecer é sobre o projeto de software livre, que é uma organização composta por um conjunto de pessoas que usa, desenvolve e estuda um único software livre. Nos tópicos anteriores, falamos sobre fábrica de software, que é uma orga- nização que provê serviços de desenvolvimento de sistemas com qualidade, utilizando um processo de desenvolvimento de software bem definido e com apoio de tecnologias de mercado. E uma fábrica de software livre? Segundo Brito et al. (2004), “uma fábrica de software livre desenvolve projetos de software livre, em sua totalidade ou em parte, e possui um modelo de negócios diferente do modelo tradicional, onde o código fonte do produto não é disponibilizado”. VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E32 O que devemos ter em mente: que todos os tipos de fábrica de software, independente da sua classificação (serviços ou produtos), ou estratégia adotada, possuem processos definidos que devem atender às necessidades de desenvol- vimento de software. Um fábrica de software deve ser flexível para desenvolver produtos que sejam diversificados, implementando em todos os projetos, os conceitos da Engenharia de Software, como: metodologias, ferramentas, ambientes para a construção de fábrica de software, e sendo capaz de projetar, implementar, evoluir e melho- rar os sistemas. Trindade (2006) comenta que uma fábrica de software deve ter um ambiente que seja adequado ao desenvolvimento de programas, em que se faz necessário ter um processo de manufatura, testes, ferramentas automatizadas, ferramentas de medição de produtividade e qualidade, ferramentas para gerenciar custos e estimativas gerenciais que ajudem na gestão de projetos ativos e futuros. O conceito de fordismo poderia ser aplicado de várias formas e profundida- des, mas [...] o nosso interesse maior será descrever o fordismo mais como um paradigma de organização da produção e do trabalho do que como uma referência macroeconômica. Especificamente, nos interessa no uso da expressão fordismo o nível menos global do fordismo, que estaria remetido a um princípio de organização da produção, compreendendo um paradigma tecnológico, forma de organiza- ção do trabalho e estilo de gestão. O fordismo surgiu primeiro como uma tecnologia de gestão da produção, transformando-se [...] em um modelo técnico-econômico. Contudo, como modelo gerencial, o fordismo tem as suas bases assentadas sobre o taylorismo; sem o taylorismo não haveria o fordismo, métodos elaborados respectivamente por Frederick Winslow Taylor (1856-1915) e Henry Ford (1863-1947). Historicamente, em outros momentos, outros autores, anteriores a Taylor e Ford, contribuíram para o desenvolvimento do pensamento gerencial. Fonte: Carvalho Filho (2008). Frameworks Organizacionais de Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 33 FRAMEWORKS ORGANIZACIONAIS DE FÁBRICA DE SOFTWARE No desenvolvimento de software, temos muitos artefatos e relacionamentos que incorporam um grande volume de experiências e atividades de desenvolvimen- tos anteriores. E de acordo com Nomura (2008), é este reuso de experiências anteriores que necessita ser incorporado ao processo de produção de software. Para isso, temos um framework organizacional orientado ao reuso, e que é dividido em duas estruturas: uma organizacional, orientada ao projeto, e outra denominada Fábrica de Experiência, conforme a figura a seguir: VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereirode 1998. IU N I D A D E34 Análise Construção Planejamento Análise do Domínio Fábrica de Experiência - Fábrica de Domínio - Fábrica de Componentes Síntese de Domínio Fábrica Baseado em Organização Orientada ao Projeto Produtos Dados Ações Reusáveis Experiência Reuso Base Experiência Figura 3 – Fábrica de Experiência Fonte: adaptada de Nomura (2008, p. 18). Segundo Nomura (2008), a Fábrica de Experiência é uma abordagem para moni- torar e analisar os projetos desenvolvidos e, partir disso, desenvolver e catalogar as práticas de reuso de componentes de software de diferentes tipos de experiên- cias que a empresa possui como conhecimento, por exemplo: processos adotados, ferramentas automatizadas e produtos. Na Figura 3, a arquitetura da Fábrica de Experiência é representada em dois níveis: Fábrica de Domínio e a Fábrica de Componentes. A Fábrica de Domínios é onde ocorre o gerenciamento do conhecimento do domínio de reuso. A Fábrica de Componentes é responsável por produzir e manipular os artefatos a serem fornecidos para a Fábrica, baseada em Organização de Projetos. A engenharia de software baseada em componentes (CBSE) é, conforme Pressman e Maxim (2016), considerado um processo que enfatiza o projeto e a construção de sistemas usando “componentes” de software reutilizáveis. Na Figura 4, é mostrado um modelo de desenvolvimento de software apresentado por Pressman e Maxim (2016), que infere no escopo de Fábrica de Componentes de Software, em que os processos da Fábrica de Domínio correm em paralelo, reusando os modelos de domínio, os modelos estruturais e os repositórios de artefatos/componentes. Frameworks Organizacionais de Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 35 Análise do Domínio Modelo de Domínio Análise ProjetoArquitetural Engenharia de componentes Quali�cação Adaptação Composição de Componentes Modelo Estrutural Desenvolvimento de arquitetura de Software Desenvolvimento de componentes reusáveis Repositório de artefatos/ componentes Atualização de Componentes Teste Software de AplicaçãoDesenvolvimento Baseado em Componentes Engenharia de Domínio Figura 4 – Engenharia de Software Baseada em Componentes Fonte: Pressman e Maxim e Teiceira (2016, p. 52). Segundo Fernandes (2011), uma fábrica de software tem um framework com tipos de fábricas que pode ser classificado conforme os possíveis escopos de fornecimento (Figura 5), que delineia as principais fases de desenvolvimento de um projeto de software. Fábrica de Projetos Fábrica de Projetos de Software Fábrica de Projetos Físicos Arquitetura de Solução Projeto Conceitual Especi�cação Lógica Projeto Detalhado Construção e Teste Unitário Fábrica de Programa Teste Integrado Teste de Aceitação Figura 5 - Escopo de Fábrica de Software Fonte: adaptada Fernandes e Teixeira (2011, p. 118). VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E36 A Fábrica de Programas é a menor unidade de fábrica e seus objetivos principais são a construção e o Teste Unitário de programas de computador. Na Fábrica de Projetos Físicos, temos um processo de produção mais amplo, com o Projeto Detalhado, que engloba as atividades da fábrica de programas e as fases de Testes de Integração e Teste de Aceitação. A Fábrica de Projetos de Software inicia o processo produtivo a partir do Projeto Conceitual do Software e de sua Especificação Lógica. Nesta fase, é essen- cial que a fábrica de software tenha domínio do conhecimento do negócio do cliente. Na Fábrica de Projetos, temos a Arquitetura de Solução que segue até a entrega do software pronto e testado para entrar em produção. Nesta fase, é necessário ter um conhecimento sólido sobre soluções mais abrangentes na área de TI, configurações de hardware e software, redes de comunicação, platafor- mas de desenvolvimento e de produção, soluções de gerenciamento de bases de dados, entre outros recursos. Podemos observar que uma fábrica de software, não importando o seu tipo, quando atende a um único cliente é dita de especializada e, com isso, atende ao modelo que chamamos de outsourcing de sistemas. Segundo Tenório e Valle (2012, p. 61), “outsourcing nada mais é do que delegar serviços a terceiros. Em tecnologia da informação, pode incluir qualquer coisa, até mesmo terceirizar todo o gerenciamento de TI para uma empresa”. Para o desenvolvimento de uma fábrica de software considerada adequada é necessário que se tenha conhecimento profundo dos tipos de modelos exis- tentes no mercado e quais podem ser adaptados de acordo com a necessidade da fábrica. Esses tipos de modelos que surgem de fábricas de software são adap- tações feitas para atender às necessidades do mercado. Um modelo de fábrica de software pode surgir tanto da exigência de mercado para a produção de um software quanto da necessidade do cliente para um software específico para a sua regra de negócio. Decisões Acerca da Estrutura Organizacional da Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 37 DECISÕES ACERCA DA ESTRUTURA ORGANIZACIONAL DA FÁBRICA DE SOFTWARE Para Fernandes e Teixeira (2011), um fra- mework para o projeto da fábrica de software baseia-se nas áreas de decisões estratégias de operações. As decisões a serem tomadas acerca da estrutura de uma fábrica de sof- tware devem ser estratégicas e relativas à: Estratégia de desenvolvimento de linhas de novos serviços: nesta etapa, a deci- são é sobre o escopo da fábrica de software: vai ser uma Fábrica de Projetos Ampliada, Fábrica de Projetos de Desenvolvimento, Fábrica de Projetos Físicos ou uma Fábrica de Programas. Após a escolha do escopo, devemos decidir quais as plataformas tecnológicas da fábrica de sof- tware e os ambientes (linguagens de programação, banco de dados, pacotes etc.). A escolha do tipo de plataforma e de ambiente vai influenciar as decisões sobre a tecnologia do processo, da rede de operações e sobre os recursos huma- nos. Para Fernandes e Teixeira (2011), a escolha da plataforma e do ambiente deve considerar alguns fatores importantes, como: A finalidade de uma empresa é atingir os objetivos para os quais foi criada, sejam eles os lucros ou a oferta de bens públicos. (Fernando Guilherme Tenório e Rogério Valle) VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E38 ■ O mercado para a plataforma e o ambiente; ■ A capacidade da empresa em absorver uma nova tecnologia; ■ O capital de investimento disponível; ■ O nível de demanda da fábrica; ■ Os requisitos dos clientes em relação ao serviço da fábrica; ■ Os objetivos de desempenho requerido para a fábrica. Estratégia de Rede de Operações: nesta parte, a decisão envolve o que vai ser feito pelo cliente, por fornecedores ou terceiros, e pela empresa, dentro do escopo da fábrica escolhido. Isto é, qual parte da operação a fábrica de software deve pos- suir? Aqui entra a localização da fábrica de software em função do suprimento e custos de mão de obra. Compreendem máquinas, equipamentos, softwares, dis- positivos de redes, entre outros. Alguns itens que devem ser seguidos com relação à localização da fábrica de software: ■ Custos das instalações; ■ Incidência de impostos; ■ Imagem do local; ■ Habilidades da mão de obra nas localidades; ■ Facilidade de acesso; ■ Infraestrutura e telecomunicações; ■ Capacidade de atendimento de uma fábrica de software, pois em longo prazo, pode fazer a diferença financeiramente. Estratégia das Instalações e Arranjo Físico: nesta etapa, devemos decidir como serão as instalações da fábrica de software. A decisão do tipo e tamanho das insta- lações,segundo Fernandes e Teixeira (2011), vai depender do escopo, da demanda e da estratégia da empresa. Quanto maior o escopo de atuação, mais importante são as instalações dela. Itens que devemos considerar ao selecionar a instalação: Decisões Acerca da Estrutura Organizacional da Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 39 ■ Aluguel, construir ou comprar a instalação; ■ Tamanho para atender à demanda da fábrica; ■ Futuras expansões; ■ Aspectos ergonômicos da instalação; ■ Acessibilidade. Estratégia da Tecnologia do Processo: nesta etapa, a escolha da tecnologia de processo da fábrica é influenciada pelo escopo e pelas plataformas. A tecnolo- gia do processo também vai depender da tecnologia ou dos métodos e padrões adotados para o desenvolvimento do software. Itens que devemos considerar: ■ Metodologias de análise de sistemas e de requisitos (análise estruturada, essencial, modelagem de dados, orientação a objetos, UML); ■ Padrões de codificação; ■ Segurança; ■ Metodologias de testes de software. Aqui entra o fluxo operacional que diz respeito ao workflow de produtos e infor- mações no ambiente da fábrica de software, que geralmente é automatizado. Por meio deste workflow, os produtos circulam no ambiente (solicitações de serviços, especificações, documentos, códigos, módulos etc.) e com isso as informações gerenciais e gestão da fábrica circulam também. Alguns itens a se considerar quando se define o fluxo: ■ Tipos de interfaces, de comunicação com o cliente e usuário; ■ Ferramentas e sistemas de controles; ■ Interação entre os processos de gestão e de operação; ■ Estrutura organizacional da fábrica de software. Nesta etapa, também devemos decidir qual o modelo de gestão do processo de sof- tware a ser adotado, como, por exemplo: gestão da demanda, gestão de recursos, VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E40 gestão de planejamento e controle de produção, gestão da qualidade, gestão da infraestrutura, gestão de custos, gestão de requisitos, gestão de configuração, gestão de projetos e serviços, gestão de problemas, gestão de riscos e contin- gências, gestão da melhoria, gestão de testes e gestão de manutenção e suporte. E quanto ao nível de automação da fábrica de software? Vai depender dos processos de gestão selecionados e do nível de investimento. Itens que podemos decidir automatizar: ■ Workflow do fluxo operacional; ■ Ferramentas de gestão de requisitos; ■ Planejamento; ■ Métricas; ■ Gestão da configuração; ■ Controle de qualidade; ■ Testes; ■ Componentes; ■ Custo de projetos; ■ Serviços de operação. Estratégia de Recursos Humanos: nesta etapa, devemos decidir a divisão do trabalho na fábrica, o grau de autonomia dos gerentes, quais tarefas serão atri- buídas e a quais áreas de conhecimento. A divisão do trabalho vai depender da plataforma tecnológica, do escopo da tecnologia do processo e da complexi- dade da demanda. É importante definir níveis de qualificação desejados para os recursos humanos (trainee, júnior, pleno e sênior). Deve ser considerado estra- tégias políticas de desenvolvimento e retenção de talentos bem documentadas. Estratégia de Planejamento e Controle da Qualidade: nesta etapa, deve- mos decidir sobre as políticas de qualidade a serem adotadas, quais os pontos de inspeção da qualidade nas operações e nos produtos da fábrica, quais as técni- cas e os métodos de planejamento e controle de qualidade. A qualidade em uma operação de fábrica de software significa que teremos menos retrabalho e com Decisões Acerca da Estrutura Organizacional da Fábrica de Software Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 41 maior produtividade, então devemos decidir também quais as métricas ou pro- cessos de coleta de medição e geradores de qualidade serão adotados. Alguns itens a considerar: ■ Confiabilidade das entregas; ■ Qualidade dos produtos e serviços; ■ Atendimentos aos prazos e padrões; ■ Agilidade na implantação de novas linhas de serviços; ■ Flexibilidade no atendimento; ■ Política de melhoria contínua; ■ Engajamento de pessoas; ■ Certificações profissionais de qualidade. Estratégia de Administração da Qualidade e Melhoramento da Produção: nesta etapa, devemos decidir sobre quais os indicadores de desempenho que devemos adotar para a gestão da operação da fábrica de software e de sua melho- ria contínua. Devemos decidir, também, sobre os níveis de serviços que devem ser adotados e as metas de desempenho. Indicadores a considerar: ■ Aprendizagem dos colaboradores; ■ Confiabilidade de entrega de operação; ■ Qualidade dos produtos; ■ Atendimento a prazos padrões; ■ Velocidade de implantação de novas linhas de serviços; ■ Flexibilidade no atendimento. Nesta parte, devemos pensar em qual política para a melhoria da operação e quais os modelos de maturidade ou de qualidade a serem adotados pela fábrica de software. Itens que devemos considerar: ■ Política da melhoria contínua; VISÃO GERAL DA FÁBRICA DE SOFTWARE Reprodução proibida. A rt. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998. IU N I D A D E42 ■ Tratamento de projetos internos na melhoria contínua; ■ Engajamento da equipe; ■ Modelo de qualidade adotado; ■ Certificações profissionais; ■ Estratégias de implementação; ■ Evolução e manutenção do modelo de qualidade. Estratégia de Recuperação de Falhas: nesta etapa, devemos decidir qual a polí- tica de prevenção e tratamento de itens não conformes da fábrica de software; qual o plano de contingência ou de risco que será adotado para estabelecer polí- ticas de prevenção; ações de mitigação de riscos; procedimentos de tratamentos quando as não conformidades ou falhas ocorrerem. Itens a considerar: ■ Política de prevenção; ■ Plano de contingência ou de riscos; ■ Ações de resposta aos riscos; ■ Responsabilidades quanto aos riscos; ■ Procedimentos de tratamento de falhas e não conformidades; ■ Plano de segurança física e lógica; ■ Políticas e procedimentos de manutenção de equipamentos e redes de comunicação (manutenções preventivas, corretivas e preditivas); ■ Procedimentos de recuperação de falhas; ■ Procedimentos de backup de arquivos e banco de dados. Para o desenvolvimento de uma fábrica de software considerada adequada é necessário que se tenha conhecimento profundo das estratégias e decisões que devem ser tomadas e quais podem ser adaptadas, de acordo com a necessidade da fábrica. Considerações Finais Re pr od uç ão p ro ib id a. A rt . 1 84 d o Có di go P en al e L ei 9 .6 10 d e 19 d e fe ve re iro d e 19 98 . 43 CONSIDERAÇÕES FINAIS Olá, aluno(a)! Chegamos ao final da nossa primeira Unidade do livro. Nesta unidade, foi apresentado um panorama geral que envolve a Fábrica de Software, seus conceitos, suas ideias e um referencial teórico sobre o fordismo e o pós-for- dismo, além do porquê eles são importantes e como eles interagem no paradigma da fábrica de software. Falamos sobre o crescente número de empresas que estão entrando no negócio de software e quem vem adotando o termo Fábrica de Software, seja em virtude da alta demanda de software no mercado ou da complexidade dos softwares, ou como solução para produzir seus produtos ou serviços com maior qualidade e se destacar da concorrência. O objetivo desta unidade foi mostrar a situação atual das operações que envolvem uma Fábrica de Software, compreendendo e entendendo o processo e as ideias para uma Fábrica de Software. Falamos em tipos de software (serviço ou produto) que uma Fábrica de software pode desenvolver e que, independen- temente de sua escolha, devemos pensarem ter processos bem definidos e que atendam às necessidades de desenvolvimento de software. Foi falado sobre os Frameworks Organizacionais da Fábrica de Software e suas três visões diferentes, uma voltadA ao reuso da experiência e a uma orga- nização orientada ao projeto; uma visão baseada em componentes; e outra visão que classifica a fábrica de software de acordo com o seu escopo de fornecimento. E, por fim, apresentamos as decisões e estratégias que devem ser analisadas, tomadas e pensadas acerca da estrutura que uma Fábrica de Software deve ter, como um ambiente planejado, processos bem definidos, mão de obra qualifi- cada, ferramentas automatizadas, tecnologias e gestão de controle e planejamento, entre outros itens que devem ser considerados. Preparado(a) para continuar? Então, vamos seguir em frente. Boa leitura e bons estudos! 44 1. Na visão de Borsoi (2008), existem várias diferenças entre o desenvolvimento de software em relação à manufatura industrial, como a não produção em série e o vínculo da realização das atividades de desenvolvimento à criatividade e ao conhecimento prático e teórico das pessoas. Com base nessa informação, as- sinale as alternativas que mostram as similaridades entre ambos: I. O uso de processos e de modelos de qualidade e o reuso de artefatos. II. O reuso de artefatos e linhas de produção. III. Linha de produtos. IV. Objetivo de desenvolver produtos com qualidade, cumprir o cronograma e corresponder ao orçamento. a) Somente as afirmativas I, II e III estão corretas. b) Somente as afirmativas I, II e IV estão corretas. c) Somente as afirmativas I, III e IV estão corretas. d) Somente a afirmativa I está correta. e) Todas as afirmativas estão corretas. 2. Um dos desafios da Engenharia de Software é construir softwares que atendam às necessidades dos usuários, com qualidade, dentro do prazo e custo estimado. Porém, com o crescimento da demanda, a complexidade do software aumenta, e esta dificuldade aumenta quando se pretende aumentar a escala de produção. A partir desta informação, explique: o que o Paradigma de Fábrica de Sof- tware busca? 3. Conforme Fernandes e Teixeira (2011), para entendermos as abordagens sobre o conceito de fábrica de software e a sua evolução com o passar dos anos, preci- samos conhecer os estágios do processo evolutivo da fábrica de software. Com base nessa informação, enumere as colunas: 1) Fase 1 ( ) Automação flexível e aumento da capacidade das ferramentas. 2) Fase 2 ( ) Refinamento do processo e extensão e revisão dos padrões. 3) Fase 3 ( ) Customização da tecnologia e padronização e métodos padrões são estabelecidos. 4) Fase 4 ( ) Mecanização e suporte ao processo e introdução de ferramentas. 5) Fase 5 ( ) Organização básica e foco no produto é determinado. 45 a) 1, 2, 3, 4, 5. b) 1, 3, 2, 4, 5. c) 4, 2, 3, 1, 5. d) 5, 4, 2, 3, 1. e) 2, 1, 3, 4, 5. 4. Conforme Fernandes e Teixeira (2011), Fábrica de Software é um processo estru- turado, controlado e melhorado de forma contínua, considerando abordagens de engenharia industrial, orientado para o atendimento a múltiplas demandas de natureza e escopo distintos, visando a geração de produtos de software, conforme os requerimentos documentados dos usuários e/ou clientes, da for- ma mais produtiva e econômica possível. Com base nessas informações, cite e comente sobre os três modelos de trabalho para o desenvolvimento de software. 5. Segundo Romanha (2016), outro fator que pode determinar o sucesso de uma fábrica de software é a produtividade, pois ela pode ser influenciada por três grupos de fatores. Complete as lacunas com o nome dos fatores: linguagens de programação, ferramentas de projeto, ambientes de desenvolvimento e capacidade dos equipamentos ado- tados. processos de trabalho, metodologias, práti- cas gerenciais, ambiente físico, conforto e bem-estar dos recursos humanos. perfil, formação, motivação, comprometimento e capacitação das pessoas. a) Fatores tecnológicos, Fatores organizacionais, Fatores humanos. b) Fatores humanos, Fatores organizacionais, Fatores tecnológicos. c) Fatores tecnológicos, Fatores humanos, Fatores organizacionais. d) Fatores organizacionais, Fatores humano, Fatores tecnológicos. e) Fatores humano, Fatores tecnológico, Fatores organizacionais. 46 Recursos Humanos em Fábricas de Software Na produção industrial, os equipamentos interferem diretamente nas medidas de pro- dutividade, o que requer estratégias que os faça produzir com o mínimo possível de interrupções. Por outro lado, em uma “linha de produção” de softwares, o elemento fundamental é o ser humano. Os recursos humanos em uma fábrica de software, assim como em qualquer outra área, precisam ser planejados e bem treinados para as tarefas que irão desenvolver sendo alinhados ao tipo de demanda, levando em consideração a natureza e complexidade do trabalho a ser realizado (PMBOK, 2004). A partir da década de 90, o profissional de sistemas passou por uma mudança de perfil, deixando de ser um especialista e passando a atuar como um generalista, de maneira que hoje em dia, muitas empresas chegam a não utilizar uma definição de cargo deta- lhada, podendo o profissional assumir diferentes funções, em diferentes projetos, até mesmo simultaneamente. Dessa maneira, o cargo acaba funcionando como mera refe- rência para a remuneração. Para entender melhor esse contexto, é preciso deixar claro o significado de alguns termos [...]: Habilidades Técnicas – Conhecimento prático e teórico adquirido ao longo da formação acadêmica, e em cursos complementares. Inclui metodologias, técnicas, ferramentas metodológicas, linguagens de programação, etc. Habilidades de Negócio – São adquiridas ao longo do exercício profissional, por meio do desenvolvimento de soluções efetivas para empresas. Podem ser funções empresariais, de administração, processos, procedimentos, idiomas, etc. Habilidades Comportamentais ou Humanas – Ligadas à educação, à cultura, à filosofia de vida e aos relacionamentos humanos e corporativos. É possível listar como exemplo destas habilidades, a pró-atividade; a criatividade; a comunicação; a capacidade de ex- pressão e o relacionamento pessoal; o espírito de equipe; a administração participativa; o planejamento pessoal; a capacidade de organização, concentração, atenção, disponi- bilidade e responsabilidade. Ainda [...], além de habilidades técnicas e comportamentais, é desejável que os funcio- nários em uma fábrica de software, assim como nas demais modalidades de empresas que prestam serviços de software, possuam também conhecimentos em outras áreas de negócio, visto que para resolver problemas é preciso primeiramente entendê-los. Dentre os principais papéis existentes em uma equipe funcional requerida para uma fábrica de software e suas respectivas atividades, é possível destacar [...]: Gerente de Negócios: responsável pela prospecção do mercado e pela venda dos ser- viços. Analista de Sistemas: a este, cabe realizar o levantamento de requisitos, a análise, defi- nição da arquitetura e a elaboração da documentação do sistema a ser desenvolvido. 47 Analista de Qualidade: responsável pela revisão dos artefatos gerados, pelo controle de mudanças, a definição e a validação da qualidade do processo utilizado. Engenheiro de Software: garante que o sistema seja implementado de acordo com as especificações em sua documentação e seguindo o processo de desenvolvimento de- finido. Analista de Testes: realiza o desenvolvimento, a validação e a execução de testes de sof- tware que visam assegurar a qualidade e integridade do software produzido. Líder de Equipe: faz a coordenação e a atribuição de tarefas entre os membros da equi- pe, fornecendo relatórios periódicos ao gerente de projetos sobre o andamento das ati- vidades. Em cada equipe de uma Fábrica de Software é recomendado que exista também a figu- ra do Gerente do Projeto, que é um profissional dedicado exclusivamente a estepapel, o que o habilita a atuar fortemente na interface com o cliente do projeto em questão. Segundo o PMBOK (2004), os processos de iniciação, planejamento, execução, monito- ramento, controle e encerramento, devem ser integrados e aplicados pelo gerente de projeto. Também fazem parte das atribuições desse profissional identificar as necessida- des; estabelecer objetivos; balancear demandas de qualidade, escopo, tempo e custo, além de adaptar especificações e planos às necessidades das diversas partes interessa- das. O gerente ainda deverá atuar de maneira a garantir que o produto final atenda aos requisitos de qualidade previamente estabelecidos, seguindo métodos e padrões de es- timativas baseados em históricos; utilizar métricas específicas para estimar tempos pa- drões de atendimento levando em consideração a tecnologia, o tamanho e o domínio da demanda; possuir e fazer uso de mecanismos de apuração, apropriação e controle de custos e manter o controle sobre os níveis de serviço. No que diz respeito ao mercado de trabalho, de acordo com os dados divulgados pela Brasscom – Associação Brasileira de Empresas de Tecnologia da Informação e Comuni- cação, o setor de Tecnologia da Informação (TI) possui alta demanda por profissionais por um conjunto de fatores: cresce historicamente a taxas superiores ao Produto Interno Bruto (PIB) nacional. a TI está inserida em todos os setores da economia moderna, ajudando a aumentar a competitividade e a produtividade das empresas. a sociedade utiliza tecnologia cada vez mais intensamente no cotidiano. novas tecnologias – como computação em nuvem, redes sociais, dispositivos móveis e segurança da informação – demandam profissionais com novas habilidades. Fonte: Romanha (2016, p. 26-27). MATERIAL COMPLEMENTAR Fábrica de Software Fernando Guilherme Tenório e Rogerio Valle Editora: FGV Sinopse: a produção de software começa artesanal, sem regras, nos anos 1960, e hoje é um trabalho ordenado num esquema produtivo. Os autores fazem um paralelo entre a produção industrial tradicional, a complexa organização produtiva que vemos hoje, e o que se deu, nas fábricas de software, com o processo de sua produção. Há paralelos entre um e outro desenvolvimento, e a sua extensão é descrita em minúcias. Texto necessário e pioneiro, porque pouco se tem escrito, no Brasil, sobre os sistemas de organização das indústrias de software. O que é e como funciona uma fábrica de software Artigo sobre como e quando surgiu a expressão Fábrica de Software, o que contribui para o seu crescimento e como alguns fatores contribuíram para o crescimento deste serviço, que surgiu para atender novas necessidades do mercado de TI. Para saber mais, acesse o link a seguir. Disponível em: <https://www.profi ssionaisti.com.br/2011/10/o-que-e-e-como-funciona-uma- fabrica-de-software/>. Acesso em: 17 ago. 2017. Fábrica de Software: o que é e como ela pode ajudar sua empresa Artigo que trata sobre a Fábrica de Software e como cada vez mais a tecnologia disponível no mercado tem uma demanda de novas soluções em crescimento constante, como Internet das Coisas. Para atender a essas novas necessidades é que o conceito de fábrica de software se mostra cada vez mais presente em ambientes de desenvolvimento. Fique por dentro acessando o link a seguir. Disponível em: <http://blog.cedrotech.com/fabrica-de-software-o-que-e-e-como-ela-pode- ajudar-sua-empresa/>. Acesso em: 17 ago. 2017. REFERÊNCIAS 49 ALMEIDA, Risoleide de Freitas. A Contribuição da Fábrica de Software e de seus Produtos para o Processo de Flexibilização Organizacional na Empresa Cliente. Rio de Janeiro: FGV, 2009. BRITO, Regiane; FERREIRA, Patrícia; SILVA, Kleber; BURÉGIO, Vanilson; LEITE, Ivan. Uma experiência na implantação de processo em uma fábrica de software li- vre. VI Simpósio Internacional de Melhoria de Processos de Software – 2004. BORSOI, Beatriz Terezinha. Arquitetura de Processo Aplicada na Integração de Fábricas de Software. São Paulo: USP, 2008. CÂMARA, Heitor Mariano de Aquino. Uma Abordagem Sistemática para Imple- mentação, Gerenciamento e Customização de Testes de Linhas de Produto de Software. Programa de Pós-Graduação em Sistemas e Computação do Departa- mento de Informática e Matemática Aplicada da Universidade Federal do Rio Gran- de do Norte. Rio Grande do Norte, 2011. CARVALHO FILHO, Herriot Clovis de. Fábrica de Software: Um Estudo de Caso sob a Ótica da Flexibilização Organizacional e das Relações de Trabalho. XIII, 196 p. 29,7 cm (COPPE/UFRJ), M.Sc., Engenharia de Produção, Rio de Janeiro, 2008. FERNANDES, Aguinaldo Aragon; TEIXEIRA, Descartes de Souza. Fábrica de Softwa- re: implantação e gestão de operações. São Paulo: Atlas, 2011. FERREIRA, Johnny Maikeo. Teste de Linha de Produto de Software Baseado em Mu- tação do Diagrama de Características. Dissertação (Programa de Pós-Graduação em Informática) - Setor de Ciências Exatas, Universidade Federal do Paraná, Curitiba, 2012. NOMURA, Luzia. Definição e Estabelecimento de Processos de Fábrica de Sof- tware em uma organização de TI do Setor Público. Tese (Doutorado Engenharia de Produção) - Escola Politécnica da Universidade de São Paulo, São Paulo, 2008. OLIVEIRA, Karine Coelho de Amorim. Um processo de Gerência de Configuração baseado no nível 2 do CMMI estagiado para Fábricas de Software Orientadas a Produto. Dissertação (Mestrado Pós- graduação em Ciência da Computação) - Uni- versidade Federal de Pernambuco, Recife, 2007. OSIAS, Claudio de Souza. Fábrica de Software: um estudo de caso na Dataprev, sob a ótica da estrutura organizacional. Rio de Janeiro: FGV, 2008. TENÓRIO, Fernando Guilherme; VALLE, Rogerio. Fábrica de Software. Rio de Janei- ro: Editora FGV, 2012. TRINDADE, André Luiz Presende. Uma Contribuição para o Entendimento do Pa- pel da Ensinagem na preservação do conhecimento em Ambientes de Fábrica de Software. PoliUSP: São Paulo, 2006. PRESSMAN, Roger; MAXIM, Bruce R. Engenharia de Software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. ROMANHA, Silas Dias. Um Modelo de Fábrica de Software em Instituições de En- sino Superior. Dissertação (Mestrado em Engenharia de Produção) – Faculdade de Engenharia de Guaratinguetá, Guaratinguetá, 2016. GABARITOGABARITO 1. Alternativa C. 2. O paradigma de Fábrica de Software busca a obtenção de qualidade e produtivi- dade no desenvolvimento e manutenção de software por meio de padronização de processos, reuso de artefatos e controle do sistema de produção. 3. Alternativa D. 4. Podemos citar três modelos em destaque: Modelo Japonês: foco na alta produtividade e qualidade do software. Objetivo principal da empresa é tornar a rotina de trabalho simples e repetitiva, e padronizar os processos de trabalho. Modelo Europeu: foco na integração de am- bientes de desenvolvimento de software. Objetivo na criação de uma arquitetura e um framework para um ambiente de desenvolvimento de software integrado, por meio de um modelo genérico de fábrica de software, com ferramentas, componentes e ambientes de várias áreas de negócios. Modelo Norte-Americano: foco nas abordagens baseadas na experiência e na maturidade da empresa. Baseada em experiências onde é possível errar, desde que sejam extraídas lições e melhorias para os próximos projetos. 5. Alternativa A. U N ID A D E II Professora Esp. Janaina Aparecida de Freitas MODELOS DE FÁBRICAS DE SOFTWARE Objetivos de Aprendizagem ■ Apresentar uma visão geral da Fábrica de software. ■ Entender como funciona a estrutura organizacional de uma Fábrica Orientada a Processos. ■ Entender como funciona a estrutura organizacional de uma Fábrica Orientada a Produtos. ■ Compreender o funcionamento e a estrutura organizacional de uma Fábrica de Projetos. ■ Conhecer a visão geral do modelo e a estrutura organizacional de uma Fábrica de Programas. Plano de Estudo A seguir, apresentam-se os tópicos que você estudará nesta unidade: ■ Visão Geral da Fábrica de software
Compartilhar