Autor: Prof. Edson Quedas Moreno Colaboradores: Prof. Antônio Palmeira de Araújo Neto Prof. José Carlos Morilla Fundamentos de Engenharia de Software Professor conteudista: Edson Quedas Moreno Graduado em 1983 em Engenharia Eletrônica pela Faculdade de Engenharia Industrial (FEI), com ênfase em Computação. Possui pós-graduação lato sensu em Novas Tecnologias de Ensino-Aprendizagem pela UniÍtalo (2011). Mestre em Engenharia de Produção pela Universidade Paulista (UNIP), com ênfase em Sistemas de Informação (2002). Exerce há mais de 30 anos atividades na área da educação e do ensino. Desde 1989, é professor e conteudista nos cursos de graduação e pós-graduação, atuando nos cursos da área de Negócios, Computação e Informação da UNIP e da UniÍtalo. Foi coordenador de cursos entre 1989 e 2016 na UniÍtalo e na Kroton/Anhanguera. Desde 2002, já atuou como professor, tutor e conteudista no Senac, na Kroton/Anhanguera, na Fecap e no curso de MBA em Engenharia de Software e da Informação da Uninove. Trabalhou por mais de 25 anos na área corporativa. Desde 2002, é diretor da empresa Asserti; foi sócio das empresas Consultoria EaD e ITGVBR (2009 a 2012); gerente de sistemas na Panrotas Editora (1994 a 2000); analista de sistemas pela Cisco (1985 a 1994); programador pela Digilab/Bradesco (1983 a 1985). Áreas de conhecimento nas quais atuou: Computação e Informação, com ênfase em Engenharia de Software, Projetos de Software e de Sistemas e Tecnologias de Ensino a Distância; e em Engenharia de Produção, com ênfase em Administração, Projetos, Logística e Produção. Em 2015, arquitetou um Hackathon (maratona de programação de software por 30 horas contínuas com a participação de duzentos alunos), com apoio da Kroton/Anhanguera e da Microsoft, evento que foi promovido pela Secretaria Municipal de Promoção da Igualdade Racial da Prefeitura de São Paulo (SMPIR) e pelo Banco Interamericano de Desenvolvimento (BID). Em 2016, esse Hackathon recebeu da Braslider o Prêmio Excelência e Qualidade Brasil. © Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por qualquer forma e/ou quaisquer meios (eletrônico, incluindo fotocópia e gravação) ou arquivada em qualquer sistema ou banco de dados sem permissão escrita da Universidade Paulista. Dados Internacionais de Catalogação na Publicação (CIP) M843f Moreno, Edson Quedas. Fundamentos de Engenharia de Software / Edson Quedas Moreno. – São Paulo: Editora Sol, 2021. 160 p., il. Nota: este volume está publicado nos Cadernos de Estudos e Pesquisas da UNIP, Série Didática, ISSN 1517-9230. 1. Software. 2. Princípios. 3. Gerenciamento. I. Título. CDU 681.3.02 U511.31 – 21 Prof. Dr. João Carlos Di Genio Reitor Prof. Fábio Romeu de Carvalho Vice-Reitor de Planejamento, Administração e Finanças Profa. Melânia Dalla Torre Vice-Reitora de Unidades Universitárias Profa. Dra. Marília Ancona-Lopez Vice-Reitora de Pós-Graduação e Pesquisa Profa. Dra. Marília Ancona-Lopez Vice-Reitora de Graduação Unip Interativa – EaD Profa. Elisabete Brihy Prof. Marcello Vannini Prof. Dr. Luiz Felipe Scabar Prof. Ivan Daliberto Frugoli Material Didático – EaD Comissão editorial: Dra. Angélica L. Carlini (UNIP) Dr. Ivan Dias da Motta (CESUMAR) Dra. Kátia Mosorov Alonso (UFMT) Apoio: Profa. Cláudia Regina Baptista – EaD Profa. Deise Alcantara Carreiro – Comissão de Qualificação e Avaliação de Cursos Projeto gráfico: Prof. Alexandre Ponzetto Revisão: Vitor Andrade Giovanna Oliveira Lucas Ricardi Sumário Fundamentos de Engenharia de Software APRESENTAÇÃO ......................................................................................................................................................9 INTRODUÇÃO ........................................................................................................................................................ 10 Unidade I 1 FUNDAMENTOS DA ENGENHARIA DE SOFTWARE ............................................................................. 11 1.1 Engenharia de software ..................................................................................................................... 11 1.2 Engenharia de sistemas ..................................................................................................................... 13 1.3 O produto software ............................................................................................................................. 14 1.3.1 Tipos de produção de software ......................................................................................................... 16 1.4 Fábrica de software ............................................................................................................................. 18 1.4.1 Problemas enfrentados pelos fabricantes de software ........................................................... 20 1.5 Características do software .............................................................................................................. 20 1.5.1 Dualidade do software com o hardware ....................................................................................... 21 2 PRINCÍPIOS DO DESENVOLVIMENTO DE SISTEMAS .......................................................................... 25 2.1 Aplicações e desenvolvimento de sistemas computacionais ............................................. 25 2.1.1 O que diferencia um software de outro? ...................................................................................... 25 2.2 Ambiente computacional .................................................................................................................. 31 2.3 Problemas de relacionamento entre gerência, cliente e desenvolvedor ....................... 32 2.4 Projeto e construção do software ................................................................................................. 34 Unidade II 3 PROCESSO DE SOFTWARE ............................................................................................................................ 42 3.1 Processo de software e o desenvolvimento do projeto ........................................................ 42 3.1.1 Planejamento do processo .................................................................................................................. 43 3.1.2 Decomposição do processo ................................................................................................................ 44 3.2 Gestão de planejamento do software .......................................................................................... 46 3.2.1 Análise de recursos para os processos do projeto ..................................................................... 47 3.2.2 Recursos do projeto e do produto ................................................................................................... 47 3.3 Fusão do produto e do processo .................................................................................................... 49 3.3.1 Estrutura organizacional para o desenvolvimento de software .......................................... 49 3.3.2 Generalidades sobre o arcabouço do processo ........................................................................... 51 3.3.3 Gerenciamento da equipe de desenvolvimento......................................................................... 53 4 MODELOS DE PROCESSOS DE SOFTWARE ............................................................................................. 56 4.1 Modelos de processos de software tradicionais ...................................................................... 56 4.1.1 Modelo cascata (Waterfall ou sequencial linear) ...................................................................... 57 4.1.2 Modelo balbúrdia (codifica/corrige ou codifica/remenda) .................................................... 58 4.1.3 Prototipagem ............................................................................................................................................