[{"data":1,"prerenderedAt":564},["ShallowReactive",2],{"navigation_docs":3,"-engenharia-software-cap-02":252,"-engenharia-software-cap-02-surround":559},[4,96,189],{"title":5,"icon":6,"path":7,"stem":8,"children":9},"⚙️ Engenharia de Software","i-lucide-book-open","\u002Fengenharia-software","1.engenharia-software",[10,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92],{"title":5,"path":7,"stem":11},"1.engenharia-software\u002Findex",{"title":13,"path":14,"stem":15},"📋 Plano de Ensino e Aplicações","\u002Fengenharia-software\u002Fengenharia-software-aplicacoes","1.engenharia-software\u002F01.engenharia-software-aplicacoes",{"title":17,"path":18,"stem":19},"Cap 01: Introdução e Natureza do Software","\u002Fengenharia-software\u002Fcap-01","1.engenharia-software\u002F02.cap-01",{"title":21,"path":22,"stem":23},"Cap 02: Modelos de Processo de Software","\u002Fengenharia-software\u002Fcap-02","1.engenharia-software\u002F03.cap-02",{"title":25,"path":26,"stem":27},"Cap 03: As Atividades do Processo","\u002Fengenharia-software\u002Fcap-03","1.engenharia-software\u002F04.cap-03",{"title":29,"path":30,"stem":31},"Cap 04: Metodologias Ágeis","\u002Fengenharia-software\u002Fcap-04","1.engenharia-software\u002F05.cap-04",{"title":33,"path":34,"stem":35},"Cap 05: Fundamentos de Requisitos","\u002Fengenharia-software\u002Fcap-05","1.engenharia-software\u002F06.cap-05",{"title":37,"path":38,"stem":39},"Cap 06: Elicitação e Levantamento","\u002Fengenharia-software\u002Fcap-06","1.engenharia-software\u002F07.cap-06",{"title":41,"path":42,"stem":43},"Cap 07: Especificação de Requisitos (ERS)","\u002Fengenharia-software\u002Fcap-07","1.engenharia-software\u002F08.cap-07",{"title":45,"path":46,"stem":47},"Cap 08: Validação e Gestão","\u002Fengenharia-software\u002Fcap-08","1.engenharia-software\u002F09.cap-08",{"title":49,"path":50,"stem":51},"Cap 09: Fundamentos da Modelagem","\u002Fengenharia-software\u002Fcap-09","1.engenharia-software\u002F10.cap-09",{"title":53,"path":54,"stem":55},"Cap 10: Diagrama de Casos de Uso (Conceitos)","\u002Fengenharia-software\u002Fcap-10","1.engenharia-software\u002F11.cap-10",{"title":57,"path":58,"stem":59},"Cap 11: Casos de Uso (Prática e Relações)","\u002Fengenharia-software\u002Fcap-11","1.engenharia-software\u002F12.cap-11",{"title":61,"path":62,"stem":63},"Cap 12: Diagrama de Classes (Conceitos)","\u002Fengenharia-software\u002Fcap-12","1.engenharia-software\u002F13.cap-12",{"title":65,"path":66,"stem":67},"Cap 13: Herança e Polimorfismo","\u002Fengenharia-software\u002Fcap-13","1.engenharia-software\u002F14.cap-13",{"title":69,"path":70,"stem":71},"Cap 14: Diagrama de Sequência","\u002Fengenharia-software\u002Fcap-14","1.engenharia-software\u002F15.cap-14",{"title":73,"path":74,"stem":75},"Cap 15: Diagramas Dinâmicos (Estados e Atividades)","\u002Fengenharia-software\u002Fcap-15","1.engenharia-software\u002F16.cap-15",{"title":77,"path":78,"stem":79},"Cap 16: Qualidade de Software (SQA)","\u002Fengenharia-software\u002Fcap-16","1.engenharia-software\u002F17.cap-16",{"title":81,"path":82,"stem":83},"Cap 17: Estratégias de Teste","\u002Fengenharia-software\u002Fcap-17","1.engenharia-software\u002F18.cap-17",{"title":85,"path":86,"stem":87},"Cap 18: Manutenção e Evolução","\u002Fengenharia-software\u002Fcap-18","1.engenharia-software\u002F19.cap-18",{"title":89,"path":90,"stem":91},"Cap 19: Gerência de Configuração (SCM)","\u002Fengenharia-software\u002Fcap-19","1.engenharia-software\u002F20.cap-19",{"title":93,"path":94,"stem":95},"Cap 20: Conclusão e Próximos Passos","\u002Fengenharia-software\u002Fcap-20","1.engenharia-software\u002F21.cap-20",{"title":97,"icon":98,"path":99,"stem":100,"children":101},"🛠️ Atividades","i-lucide-wrench","\u002Fatividades","2.atividades",[102,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185],{"title":103,"path":99,"stem":104},"📋 Orientações Gerais","2.atividades\u002Findex",{"title":106,"path":107,"stem":108},"📅 Cronograma","\u002Fatividades\u002Fcronograma","2.atividades\u002F01.cronograma",{"title":110,"path":111,"stem":112},"✏️ Atividade 01: Escopo e Personas","\u002Fatividades\u002Fatv-01-escopo","2.atividades\u002F02.atv-01-escopo",{"title":114,"path":115,"stem":116},"⚙️ Atividade 02: Processos de Software","\u002Fatividades\u002Fatv-02-processos","2.atividades\u002F03.atv-02-processos",{"title":118,"path":119,"stem":120},"📋 Atividade 03: Engenharia de Requisitos","\u002Fatividades\u002Fatv-03-requisitos","2.atividades\u002F04.atv-03-requisitos",{"title":122,"path":123,"stem":124},"📝 Atividade 04: User Stories e Backlog","\u002Fatividades\u002Fatv-04-backlog","2.atividades\u002F05.atv-04-backlog",{"title":126,"path":127,"stem":128},"🎭 Atividade 05: Casos de Uso (UML)","\u002Fatividades\u002Fatv-05-casos-uso","2.atividades\u002F06.atv-05-casos-uso",{"title":130,"path":131,"stem":132},"🖼️ Atividade 06: Prototipagem e Wireframes","\u002Fatividades\u002Fatv-06-prototipagem","2.atividades\u002F07.atv-06-prototipagem",{"title":134,"path":135,"stem":136},"🏛️ Atividade 07: Diagrama de Classes (UML)","\u002Fatividades\u002Fatv-07-classes","2.atividades\u002F08.atv-07-classes",{"title":138,"path":139,"stem":140},"🔀 Atividade 08: Diagrama de Sequência (UML)","\u002Fatividades\u002Fatv-08-sequencia","2.atividades\u002F09.atv-08-sequencia",{"title":142,"path":143,"stem":144},"🧪 Atividade 09: Qualidade e Testes","\u002Fatividades\u002Fatv-09-testes","2.atividades\u002F10.atv-09-testes",{"title":146,"path":147,"stem":148},"🏁 Atividade 10: Projeto Integrador Final","\u002Fatividades\u002Fatv-10-projeto-final","2.atividades\u002F11.atv-10-projeto-final",{"title":150,"path":151,"stem":152},"📊 Atividade 11: Diagrama de Atividades (UML)","\u002Fatividades\u002Fatv-11-atividades","2.atividades\u002F12.atv-11-atividades",{"title":154,"path":155,"stem":156},"🔄 Atividade 12: Diagrama de Transição de Estados (UML)","\u002Fatividades\u002Fatv-12-estados","2.atividades\u002F13.atv-12-estados",{"title":158,"path":159,"stem":160},"🏗️ Atividade 13: Arquitetura de Software e Padrões","\u002Fatividades\u002Fatv-13-arquitetura","2.atividades\u002F14.atv-13-arquitetura",{"title":162,"path":163,"stem":164},"🌐 Atividade 14: Modelagem de APIs REST e Swagger","\u002Fatividades\u002Fatv-14-apis-swagger","2.atividades\u002F15.atv-14-apis-swagger",{"title":166,"path":167,"stem":168},"🌿 Atividade 15: GitFlow e Trabalho Colaborativo","\u002Fatividades\u002Fatv-15-gitflow-colaboracao","2.atividades\u002F16.atv-15-gitflow-colaboracao",{"title":170,"path":171,"stem":172},"🚀 Atividade 16: Pipelines de CI\u002FCD com GitHub Actions","\u002Fatividades\u002Fatv-16-pipelines-cicd","2.atividades\u002F17.atv-16-pipelines-cicd",{"title":174,"path":175,"stem":176},"🐳 Atividade 17: Containerização de Ambientes com Docker","\u002Fatividades\u002Fatv-17-conteineres-docker","2.atividades\u002F18.atv-17-conteineres-docker",{"title":178,"path":179,"stem":180},"🔒 Atividade 18: Segurança no Desenvolvimento e OWASP","\u002Fatividades\u002Fatv-18-seguranca-devsecops","2.atividades\u002F19.atv-18-seguranca-devsecops",{"title":182,"path":183,"stem":184},"📈 Atividade 19: Métricas de Software, Estimativas e DORA","\u002Fatividades\u002Fatv-19-metricas-estimativas","2.atividades\u002F20.atv-19-metricas-estimativas",{"title":186,"path":187,"stem":188},"🏆 Atividade 20: Projeto Final Avançado (Fase 2)","\u002Fatividades\u002Fatv-20-projeto-final-avancado","2.atividades\u002F21.atv-20-projeto-final-avancado",{"title":190,"icon":191,"path":192,"stem":193,"children":194},"🖼️ Galeria de Projetos Integradores","i-lucide-image","\u002Fprojetos-integradores","3.projetos-integradores",[195,197,207,216,225,234,243],{"title":190,"path":192,"stem":196},"3.projetos-integradores\u002Findex",{"title":198,"path":199,"stem":200,"children":201},"🅿️ Projeto 01: Gestão de Estacionamentos","\u002Fprojetos-integradores\u002Fpi-01-gestao-estacionamentos","3.projetos-integradores\u002F01.pi-01-gestao-estacionamentos\u002Findex",[202,203],{"title":198,"path":199,"stem":200},{"title":204,"path":205,"stem":206},"README","\u002Fprojetos-integradores\u002Fpi-01-gestao-estacionamentos\u002Freadme","3.projetos-integradores\u002F01.pi-01-gestao-estacionamentos\u002F2.readme",{"title":208,"path":209,"stem":210,"children":211},"🔐 Projeto 02: Gerador de Senhas","\u002Fprojetos-integradores\u002Fpi-02-gerador-senhas","3.projetos-integradores\u002F02.pi-02-gerador-senhas\u002Findex",[212,213],{"title":208,"path":209,"stem":210},{"title":204,"path":214,"stem":215},"\u002Fprojetos-integradores\u002Fpi-02-gerador-senhas\u002Freadme","3.projetos-integradores\u002F02.pi-02-gerador-senhas\u002F2.readme",{"title":217,"path":218,"stem":219,"children":220},"🍣 Projeto 03: Pedidos Restaurante","\u002Fprojetos-integradores\u002Fpi-03-pedidos-restaurante","3.projetos-integradores\u002F03.pi-03-pedidos-restaurante\u002Findex",[221,222],{"title":217,"path":218,"stem":219},{"title":204,"path":223,"stem":224},"\u002Fprojetos-integradores\u002Fpi-03-pedidos-restaurante\u002Freadme","3.projetos-integradores\u002F03.pi-03-pedidos-restaurante\u002F2.readme",{"title":226,"path":227,"stem":228,"children":229},"📱 Projeto 04: Empréstimos Dispositivos","\u002Fprojetos-integradores\u002Fpi-04-emprestimos-dispositivos","3.projetos-integradores\u002F04.pi-04-emprestimos-dispositivos\u002Findex",[230,231],{"title":226,"path":227,"stem":228},{"title":204,"path":232,"stem":233},"\u002Fprojetos-integradores\u002Fpi-04-emprestimos-dispositivos\u002Freadme","3.projetos-integradores\u002F04.pi-04-emprestimos-dispositivos\u002F2.readme",{"title":235,"path":236,"stem":237,"children":238},"📦 Projeto 05: Gestão de Estoque","\u002Fprojetos-integradores\u002Fpi-05-gestao-estoque","3.projetos-integradores\u002F05.pi-05-gestao-estoque\u002Findex",[239,240],{"title":235,"path":236,"stem":237},{"title":204,"path":241,"stem":242},"\u002Fprojetos-integradores\u002Fpi-05-gestao-estoque\u002Freadme","3.projetos-integradores\u002F05.pi-05-gestao-estoque\u002F2.readme",{"title":244,"path":245,"stem":246,"children":247},"🛵 Projeto 06: Aplicativo de Delivery","\u002Fprojetos-integradores\u002Fpi-06-delivery","3.projetos-integradores\u002F06.pi-06-delivery\u002Findex",[248,249],{"title":244,"path":245,"stem":246},{"title":204,"path":250,"stem":251},"\u002Fprojetos-integradores\u002Fpi-06-delivery\u002Freadme","3.projetos-integradores\u002F06.pi-06-delivery\u002F2.readme",{"id":253,"title":21,"body":254,"description":552,"extension":553,"links":554,"meta":555,"navigation":556,"path":22,"seo":557,"stem":23,"__hash__":558},"docs\u002F1.engenharia-software\u002F03.cap-02.md",{"type":255,"value":256,"toc":534},"minimark",[257,260,265,269,271,275,291,297,299,303,306,311,367,374,378,380,384,387,390,394,416,429,431,435,450,453,457,477,479,483,495,498,517,519,523],[258,259],"hr",{},[261,262,264],"h2",{"id":263},"objetivo-do-capítulo","🎯 Objetivo do Capítulo",[266,267,268],"p",{},"Compreender as atividades, artefatos e papéis envolvidos nos principais modelos de ciclo de vida, capacitando o aluno a escolher a melhor estratégia para cada tipo de projeto corporativo.",[258,270],{},[261,272,274],{"id":273},"o-cenário-corporativo-tecproexpress","🏢 O Cenário Corporativo (TecProExpress)",[266,276,277,278,282,283,286,287,290],{},"Na ",[279,280,281],"strong",{},"TecProExpress",", a equipe de arquitetura está dividida. Para o novo sistema de ",[279,284,285],{},"Controle de Satélites de Logística",", o gerente sênior exige o rigor do modelo em Cascata. Já para o ",[279,288,289],{},"App de Chat do Motorista",", a equipe de inovação quer usar Desenvolvimento Incremental (Ágil).",[292,293,294],"blockquote",{},[266,295,296],{},"\"Seu papel como Engenheiro de Processos é definir qual modelo se encaixa melhor em cada projeto, equilibrando a necessidade de previsibilidade com a urgência de feedback do usuário.\"",[258,298],{},[261,300,302],{"id":301},"fundamentos-modelos-de-processos","🧠 Fundamentos: Modelos de Processos",[266,304,305],{},"No ecossistema corporativo atual, os modelos de processo funcionam como o \"Manual de Instruções\" da fábrica de software.",[307,308,310],"h3",{"id":309},"comparação-dos-modelos-fundamentais","Comparação dos Modelos Fundamentais",[312,313,314,328],"table",{},[315,316,317],"thead",{},[318,319,320,325],"tr",{},[321,322,324],"th",{"align":323},"left","Modelo Clássico",[321,326,327],{"align":323},"Descrição e Perspectiva Tecnológica",[329,330,331,342,352],"tbody",{},[318,332,333,339],{},[334,335,336],"td",{"align":323},[279,337,338],{},"Cascata (Waterfall)",[334,340,341],{"align":323},"Abordagem sequencial rígida: Requisitos -> Projeto -> Implementação -> Teste.",[318,343,344,349],{},[334,345,346],{"align":323},[279,347,348],{},"Incremental (Ágil)",[334,350,351],{"align":323},"O sistema é construído por versões parciais (incrementos). A arquitetura cresce aos poucos.",[318,353,354,359],{},[334,355,356],{"align":323},[279,357,358],{},"Orientada a Reuso",[334,360,361,362,366],{"align":323},"Foca na integração de dependências (ex: pacotes do ",[363,364,365],"em",{},"Maven Central",") em vez de programar tudo do zero.",[266,368,369],{},[370,371],"img",{"alt":372,"src":373},"Infográfico: Waterfall vs Agile","\u002Fimg\u002Fengenharia-software\u002Fmodelos_processo.png",[375,376],"mermaid",{"code":377},"graph LR\n    A[\"Caos Ad-hoc\"] -->|Engenharia| B[\"Modelos\"]\n    B --> C[\"Processo Estruturado Agile\"]\n    B --> D[\"Pipeline CI\u002FCD Predictível\"]\n",[258,379],{},[261,381,383],{"id":382},"o-modelo-em-cascata-waterfall","🌊 O Modelo em Cascata (Waterfall)",[266,385,386],{},"O paradigma mais antigo da Engenharia de Software. Propõe uma abordagem sistemática onde cada fase deve ser concluída antes do início da próxima.",[375,388],{"code":389},"graph TD\n    A[\"Análise e Requisitos\"] --> B[\"Projeto de Domínio\"]\n    B --> C[\"Implementação do Código\"]\n    C --> D[\"Integração e Testes Funcionais\"]\n    D --> E[\"Deploy e Manutenção\"]\n\n    style A fill:#e3f2fd,stroke:#1e88e5 \n    style B fill:#e3f2fd,stroke:#1e88e5 \n    style C fill:#e3f2fd,stroke:#1e88e5 \n    style D fill:#e3f2fd,stroke:#1e88e5 \n    style E fill:#e3f2fd,stroke:#1e88e5 \n",[307,391,393],{"id":392},"os-desafios-críticos-análise-tecproexpress","🔍 Os Desafios Críticos (Análise TecProExpress)",[395,396,397,404,410],"ul",{},[398,399,400,403],"li",{},[279,401,402],{},"Dificuldade de Iteração:"," Mudanças tardias são extremamente custosas.",[398,405,406,409],{},[279,407,408],{},"Incerteza Inicial:"," Exige que o cliente defina todos os requisitos no dia 1.",[398,411,412,415],{},[279,413,414],{},"Demora no Resultado:"," O software funcional só aparece no final do ciclo de meses ou anos.",[417,418,421,424,425,428],"callout",{"color":419,"icon":420},"warning","i-lucide-triangle-alert",[279,422,423],{},"Atenção:"," ",[279,426,427],{},"Dica de Especialista:","\nO modelo em cascata ainda é usado? Sim, mas apenas quando os requisitos são imutáveis e regulamentados (ex: software de controle militar ou médico). Para construir APIs B2B\u002FB2C, fuja do Cascata e abrace o ágil. 🧠🛡️",[258,430],{},[261,432,434],{"id":433},"desenvolvimento-incremental","🚀 Desenvolvimento Incremental",[266,436,437,438,441,442,445,446,449],{},"Baseia-se na ideia de construir um ",[279,439,440],{},"MVP"," (",[363,443,444],{},"Minimum Viable Product","), expô-lo ao feedback e evoluí-lo em ",[363,447,448],{},"Sprints",".",[375,451],{"code":452},"graph LR\n    subgraph \"Ciclo Incremental (Sprints)\"\n        direction TB\n        E[\"Especificação da API\"] \u003C--> D[\"Desenvolvimento (Java)\"]\n        D \u003C--> V[\"Validação (JUnit \u002F CI)\"]\n    end\n\n    Iteration --> V1[\"Release v1.0\"]\n    V1 --> V2[\"Release v1.1\"]\n    V2 --> V3[\"Release v2.0 Final\"]\n",[307,454,456],{"id":455},"vantagens-práticas","🔍 Vantagens Práticas",[395,458,459,465,471],{},[398,460,461,464],{},[279,462,463],{},"Redução de Custos:"," Menos documentação pesada inicial.",[398,466,467,470],{},[279,468,469],{},"Feedback Antecipado:"," O cliente vê o sistema funcionando em semanas, não anos.",[398,472,473,476],{},[279,474,475],{},"Resiliência:"," Se um incremento der errado, você refatora apenas aquela parte sem perder o projeto todo.",[258,478],{},[261,480,482],{"id":481},"engenharia-orientada-a-reuso","🧩 Engenharia Orientada a Reuso",[266,484,485,486,489,490,494],{},"No ecossistema ",[279,487,488],{},"Java\u002FSpring",", você não cria um sistema de segurança do zero. Você importa o ",[491,492,493],"code",{},"Spring Security",". Isso é Engenharia de Reuso.",[375,496],{"code":497},"graph LR\n    subgraph \"Etapas Iniciais\"\n        direction LR\n        E1[\"Especificação\"] --> E2[\"Busca de Libs (Maven)\"] --> E3[\"Adaptação\"]\n    end\n\n    subgraph \"Implementação Prática\"\n        direction LR\n        E4[\"Importação\"] --> E5[\"Injeção de Bean\"] --> E6[\"Validação\"]\n    end\n\n    E3 --> E4\n",[417,499,502,424,505,508,509,512,513,516],{"color":500,"icon":501},"success","i-lucide-lightbulb",[279,503,504],{},"Dica:",[279,506,507],{},"Dica de Performance Corporativa:","\nAntes de criar sua própria solução \"inovadora\" para manipular datas ou gerar planilhas, verifique bibliotecas maduras como ",[363,510,511],{},"Apache Commons"," ou ",[363,514,515],{},"Google Guava",". Um bom Sênior sabe conectar blocos prontos de forma segura. 🚀",[258,518],{},[261,520,522],{"id":521},"checkpoint-de-lógica","💡 Checkpoint de Lógica",[417,524,527,424,530,533],{"color":525,"icon":526},"primary","i-lucide-megaphone",[279,528,529],{},"Importante:",[279,531,532],{},"Reflexão Profissional:","\nPor que o modelo incremental é o favorito das Startups e o modelo em Cascata é o favorito de órgãos governamentais de infraestrutura crítica? (Resposta: Startups vivem da incerteza e feedback rápido; Governos precisam de conformidade rígida e orçamentos fechados pré-determinados). 🧠🛡️",{"title":535,"searchDepth":536,"depth":537,"links":538},"",2,3,[539,540,541,544,547,550,551],{"id":263,"depth":536,"text":264},{"id":273,"depth":536,"text":274},{"id":301,"depth":536,"text":302,"children":542},[543],{"id":309,"depth":537,"text":310},{"id":382,"depth":536,"text":383,"children":545},[546],{"id":392,"depth":537,"text":393},{"id":433,"depth":536,"text":434,"children":548},[549],{"id":455,"depth":537,"text":456},{"id":481,"depth":536,"text":482},{"id":521,"depth":536,"text":522},"Um modelo de processo de software é uma representação abstrata e simplificada de um processo real. Na engenharia moderna, esses modelos ditam como o código sai da IDE do desenvolvedor e chega com segurança à nuvem. 🛡️🧩","md",null,{},true,{"title":21,"description":552},"F09beJFO-Tdy0F5c1kuGiZSqKe4DJ68L1j_0-IQD2IA",[560,562],{"title":17,"path":18,"stem":19,"description":561,"children":-1},"Seja muito bem-vindo ao módulo estratégico de Engenharia de Software da TecProExpress. Aqui, você aprenderá as bases técnicas para transformar a \"arte\" de programar em uma disciplina de engenharia rigorosa, focada em desenvolvimento moderno com foco prático no ecossistema corporativo utilizando Java 17 e Spring Boot 3.5. 🛡️🧩",{"title":25,"path":26,"stem":27,"description":563,"children":-1},"Para que um software seja produzido e mantido em escala corporativa, são necessárias diversas etapas coordenadas chamadas de Processo de Software. Independente do modelo escolhido (Ágil ou Tradicional), as engrenagens fundamentais permanecem as mesmas. 🛡️🧩",1788375140990]