[{"data":1,"prerenderedAt":862},["ShallowReactive",2],{"navigation_docs":3,"-atividades-atv-07-classes":252,"-atividades-atv-07-classes-surround":857},[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":134,"body":254,"description":850,"extension":851,"links":852,"meta":853,"navigation":854,"path":135,"seo":855,"stem":136,"__hash__":856},"docs\u002F2.atividades\u002F08.atv-07-classes.md",{"type":255,"value":256,"toc":822},"minimark",[257,260,265,269,319,321,325,337,340,350,352,356,359,364,395,400,420,424,426,430,433,506,510,513,517,579,583,592,594,598,604,633,637,645,647,651,656,667,670,673,675,679,682,705,707,711,740,742,746],[258,259],"hr",{},[261,262,264],"h2",{"id":263},"objetivo-da-aula","🎯 Objetivo da Aula",[266,267,268],"p",{},"Ao final desta atividade, você será capaz de:",[270,271,272,285,305,312],"ul",{},[273,274,275,276,280,281,284],"li",{},"Definir ",[277,278,279],"strong",{},"Atributos"," (o que o objeto guarda) e ",[277,282,283],{},"Métodos"," (o que o objeto faz).",[273,286,287,288,291,292,296,297,300,301,304],{},"Aplicar modificadores de ",[277,289,290],{},"Visibilidade"," (Público ",[293,294,295],"code",{},"+",", Privado ",[293,298,299],{},"-",", Protegido ",[293,302,303],{},"#",") baseados no princípio do Encapsulamento.",[273,306,307,308,311],{},"Modelar ",[277,309,310],{},"Associações"," e multiplicidade (1:1, 1:N, N:N).",[273,313,314,315,318],{},"Identificar oportunidades de ",[277,316,317],{},"Herança"," para otimização de código.",[258,320],{},[261,322,324],{"id":323},"o-cenário-prático-seu-desafio","🏢 O Cenário Prático (Seu Desafio)",[266,326,327,328,331,332,336],{},"Na ",[277,329,330],{},"TecProExpress",", os protótipos (Atividade 06) foram aprovados! Agora, o time de desenvolvimento backend (Java\u002FC#\u002FPython) precisa saber: ",[333,334,335],"em",{},"\"Como os dados serão organizados no código? Quais são as classes e como elas se conectam?\"",".",[266,338,339],{},"Se você apenas disser \"Cria uma tabela de motorista\", o programador pode esquecer de validar se o motorista tem uma CNH válida ou se ele pode ter vários veículos associados a ele.",[341,342,343],"blockquote",{},[266,344,345,346,349],{},"\"Seu desafio é atuar como ",[277,347,348],{},"Arquiteto de Software",". Você deve desenhar o Diagrama de Classes, que é o mapa estrutural que diz ao programador exatamente quais variáveis e funções ele deve criar para que o sistema suporte toda a lógica de logística da TecProExpress.\"",[258,351],{},[261,353,355],{"id":354},"fundamentos-a-teoria-traduzida","🧠 Fundamentos: A Teoria Traduzida",[266,357,358],{},"O Diagrama de Classes mostra a \"foto\" parada do sistema. Se o software fosse um prédio, o Diagrama de Classes seria a planta estrutural das paredes e colunas.",[360,361,363],"h3",{"id":362},"anatomia-da-classe","Anatomia da Classe",[365,366,367,377,386],"ol",{},[273,368,369,372,373,376],{},[277,370,371],{},"Nome:"," Sempre substantivo e no singular (Ex: ",[293,374,375],{},"Motorista",").",[273,378,379,382,383,376],{},[277,380,381],{},"Atributos (Dados):"," O que ele sabe? (Ex: ",[293,384,385],{},"- cnh: String",[273,387,388,391,392,376],{},[277,389,390],{},"Métodos (Ações):"," O que ele faz? (Ex: ",[293,393,394],{},"+ validarDocumento()",[396,397,399],"h4",{"id":398},"visualizando-a-lógica","📊 Visualizando a Lógica",[401,402,405,408,409,412,413,416,417,336],"callout",{"color":403,"icon":404},"success","i-lucide-lightbulb",[277,406,407],{},"Dica:"," ",[277,410,411],{},"Visibilidade:"," Por padrão, atributos são sempre ",[277,414,415],{},"Privados (-)",". Isso protege os dados contra alterações acidentais externas. Somente métodos de acesso (Getters\u002FSetters) ou ações explícitas devem ser ",[277,418,419],{},"Públicos (+)",[421,422],"mermaid",{"code":423},"classDiagram\n    class Motorista {\n        -String nome\n        -String cnh\n        +validarCnh() bool\n    }\n    class Veiculo {\n        -String placa\n        -String modelo\n    }\n    Motorista \"1\" -- \"*\" Veiculo : dirige\n",[258,425],{},[261,427,429],{"id":428},"exemplo-guiado","📖 Exemplo Guiado",[266,431,432],{},"Abaixo, veja como mapear as entidades da TecProExpress para classes UML.",[434,435,436,453],"table",{},[437,438,439],"thead",{},[440,441,442,447,450],"tr",{},[443,444,446],"th",{"align":445},"left","Passo",[443,448,449],{"align":445},"Pergunta do Arquiteto",[443,451,452],{"align":445},"Tradução UML",[454,455,456,478,495],"tbody",{},[440,457,458,462,465],{},[459,460,461],"td",{"align":445},"01",[459,463,464],{"align":445},"O que um 'Pacote' tem?",[459,466,467,468,471,472,471,475,336],{"align":445},"Atributos: ",[293,469,470],{},"-id",", ",[293,473,474],{},"-peso",[293,476,477],{},"-status",[440,479,480,483,486],{},[459,481,482],{"align":445},"02",[459,484,485],{"align":445},"O que o 'Pacote' faz?",[459,487,488,489,471,492,336],{"align":445},"Métodos: ",[293,490,491],{},"+calcularFrete()",[293,493,494],{},"+atualizarStatus()",[440,496,497,500,503],{},[459,498,499],{"align":445},"03",[459,501,502],{"align":445},"Como ele se conecta?",[459,504,505],{"align":445},"Um Motorista leva Muitos Pacotes (1:N).",[396,507,509],{"id":508},"graus-de-acoplamento-e-relacionamentos-entre-classes","📊 Graus de Acoplamento e Relacionamentos entre Classes",[421,511],{"code":512},"flowchart LR\n    A[\"Associação Simples\u003Cbr\u002F>(Uso comum - Acoplamento fraco)\"] -->|Motorista - Veiculo| B[\"Ex: Um motorista dirige um veículo\"]\n    C[\"Agregação\u003Cbr\u002F>(Todo\u002FParte - Partes vivem sem o todo)\"] -->|Pedido - Cliente| D[\"Ex: Cliente possui pedidos, mas cliente existe sem o pedido\"]\n    E[\"Composição\u003Cbr\u002F>(Todo\u002FParte rígido - Partes morrem com o todo)\"] -->|Pedido - ItemPedido| F[\"Ex: Pedido possui itens de pedido, se o pedido morre, itens morrem\"]\n\n    style A fill:#eceff1,stroke:#607d8b\n    style C fill:#e1f5fe,stroke:#0288d1\n    style E fill:#ffebee,stroke:#c62828\n",[360,514,516],{"id":515},"️-estrutura-de-atributo-e-método","🛠️ Estrutura de Atributo e Método",[270,518,519,552],{},[273,520,521,408,524,527],{},[277,522,523],{},"Atributo:",[293,525,526],{},"- salario: Double = 1412.00",[270,528,529,534,540,546],{},[273,530,531,533],{},[293,532,299],{},": Privado.",[273,535,536,539],{},[293,537,538],{},"salario",": Nome.",[273,541,542,545],{},[293,543,544],{},"Double",": Tipo do dado.",[273,547,548,551],{},[293,549,550],{},"= 1412.00",": Valor padrão.",[273,553,554,408,557,560],{},[277,555,556],{},"Método:",[293,558,559],{},"+ calcularIdade(dataNasc: Date): Int",[270,561,562,567,573],{},[273,563,564,566],{},[293,565,295],{},": Público.",[273,568,569,572],{},[293,570,571],{},"dataNasc: Date",": Parâmetro de entrada.",[273,574,575,578],{},[293,576,577],{},": Int",": O que o método devolve (Tipo de retorno).",[396,580,582],{"id":581},"detalhamento-do-processo","🔍 Detalhamento do Processo:",[270,584,585],{},[273,586,587,588,591],{},"Note que no Diagrama de Classes não colocamos \"clicar no botão\". Colocamos a lógica do objeto. Se o botão na tela chama uma função de salvar, o método ",[293,589,590],{},"salvar()"," deve estar na Classe.",[258,593],{},[261,595,597],{"id":596},"️-prática-obrigatória-1-o-diagrama-de-classes","🛠️ Prática Obrigatória 1: O Diagrama de Classes",[266,599,600,603],{},[277,601,602],{},"Cenário:"," O projeto semestral da sua equipe.",[365,605,606,613,616,626],{},[273,607,608,609,612],{},"Identifique as ",[277,610,611],{},"5 principais entidades"," do seu sistema (ex: Usuário, Produto, Pedido, Categoria, Endereço).",[273,614,615],{},"Utilizando uma ferramenta UML (Astah, Lucidchart ou Draw.io), desenhe o diagrama.",[273,617,618,619,622,623,336],{},"Cada classe deve conter pelo menos ",[277,620,621],{},"3 atributos"," e ",[277,624,625],{},"2 métodos",[273,627,628,629,632],{},"Defina as ",[277,630,631],{},"multiplicidades"," corretamente (ex: Um cliente tem 0 ou N pedidos).",[360,634,636],{"id":635},"resultado-esperado-para-sua-referência","🏁 Resultado Esperado (Para sua Referência)",[266,638,639,640,622,642,644],{},"Uma imagem (PNG\u002FJPG) do diagrama contendo as 5 classes conectadas, com tipos de dados e visibilidade (",[293,641,295],{},[293,643,299],{},") aplicados.",[258,646],{},[261,648,650],{"id":649},"️-prática-obrigatória-2-justificativa-de-visibilidade","🛠️ Prática Obrigatória 2: Justificativa de Visibilidade",[266,652,653,655],{},[277,654,602],{}," Proteção de dados (Encapsulamento).",[365,657,658,661],{},[273,659,660],{},"Escolha uma classe do seu diagrama.",[273,662,663,664,666],{},"Explique por que você definiu um determinado atributo como Privado (",[293,665,299],{},") e como o sistema fará para ler ou alterar esse dado com segurança.",[360,668,636],{"id":669},"resultado-esperado-para-sua-referência-1",[266,671,672],{},"Um pequeno texto em Markdown justificando a escolha técnica do encapsulamento na sua modelagem.",[258,674],{},[261,676,678],{"id":677},"instruções-de-entrega-microsoft-teams","📤 Instruções de Entrega (Microsoft Teams)",[266,680,681],{},"Após validar suas documentações técnicas:",[365,683,684,699,702],{},[273,685,686,687,690,691,694,695,698],{},"Salve o arquivo de documentação com o nome ",[293,688,689],{},"Atividade_07.md"," e a imagem do seu diagrama de classes com o nome ",[293,692,693],{},"Atividade_07.png"," na pasta ",[293,696,697],{},"es-atv-07-classes\u002F"," do seu repositório GitHub.",[273,700,701],{},"Certifique-se de fazer o commit e push para o repositório público.",[273,703,704],{},"Submeta o link do seu repositório no Microsoft Teams para avaliação do professor.",[258,706],{},[261,708,710],{"id":709},"checkpoint-de-lógica","💡 Checkpoint de Lógica",[401,712,715,408,718,721,722,725,726,729,730,471,733,622,736,739],{"color":713,"icon":714},"primary","i-lucide-megaphone",[277,716,717],{},"Importante:",[277,719,720],{},"Reflexão Profissional:","\nSe você tem uma classe ",[293,723,724],{},"Funcionario"," e uma classe ",[293,727,728],{},"Gerente",", e percebe que ambas têm os atributos ",[293,731,732],{},"nome",[293,734,735],{},"cpf",[293,737,738],{},"telefone",", qual conceito de Orientação a Objetos você aplicaria para não precisar repetir esse código duas vezes? (Resposta: Herança. Você criaria uma classe pai 'Pessoa' e as outras herdariam dela). 🧠🛡️",[258,741],{},[261,743,745],{"id":744},"rubrica-formativa-de-avaliação","📊 Rubrica Formativa de Avaliação",[434,747,749,750,749,770],{"style":748},"width:100%; border-collapse: collapse; font-family: sans-serif; margin: 20px 0; border: 1px solid #ddd; box-shadow: 0 4px 8px rgba(0,0,0,0.1);","\n  ",[437,751,752,753,749],{},"\n    ",[440,754,756,757,756,761,756,764,756,767,752],{"style":755},"background-color: #2c3e50; color: white;","\n      ",[443,758,760],{"style":759},"padding: 12px; border: 1px solid #ddd; text-align: left;","Critério de Avaliação",[443,762,763],{"style":759},"Insuficiente (0% - 40%)",[443,765,766],{"style":759},"Regular (41% - 70%)",[443,768,769],{"style":759},"Excelente (71% - 100%)",[454,771,752,772,752,790,752,806,749],{},[440,773,756,775,756,781,756,784,756,787,752],{"style":774},"background-color: #f8f9fa;",[459,776,778],{"style":777},"padding: 10px; border: 1px solid #ddd;",[277,779,780],{},"Diagrama de Classes (UML)",[459,782,783],{"style":777},"Menos de 5 classes ou sem tipos de dados nos atributos.",[459,785,786],{"style":777},"Mapeia 5 classes mas sem multiplicidades ou sem visibilidade.",[459,788,789],{"style":777},"Diagrama de classes impecável com 5 entidades, atributos com visibilidade (+\u002F-), métodos e multiplicidades corretas.",[440,791,756,792,756,797,756,800,756,803,752],{},[459,793,794],{"style":777},[277,795,796],{},"Justificativa de Encapsulamento",[459,798,799],{"style":777},"Deixa todos os atributos como públicos sem justificativa.",[459,801,802],{"style":777},"Justifica superficialmente sem explicar o papel dos getters\u002Fsetters.",[459,804,805],{"style":777},"Justificativa técnica sólida de encapsulamento protegendo a integridade dos dados da classe.",[440,807,756,808,756,813,756,816,756,819,752],{"style":774},[459,809,810],{"style":777},[277,811,812],{},"Entrega no GitHub",[459,814,815],{"style":777},"Entrega fora da pasta `es-atv-07-classes\u002F`.",[459,817,818],{"style":777},"Entrega apenas o texto sem o arquivo `.png` da modelagem.",[459,820,821],{"style":777},"Submete `Atividade_07.md` e `Atividade_07.png` no repositório com formatação validada.",{"title":823,"searchDepth":824,"depth":825,"links":826},"",2,3,[827,828,829,835,841,844,847,848,849],{"id":263,"depth":824,"text":264},{"id":323,"depth":824,"text":324},{"id":354,"depth":824,"text":355,"children":830},[831],{"id":362,"depth":825,"text":363,"children":832},[833],{"id":398,"depth":834,"text":399},4,{"id":428,"depth":824,"text":429,"children":836},[837,838],{"id":508,"depth":834,"text":509},{"id":515,"depth":825,"text":516,"children":839},[840],{"id":581,"depth":834,"text":582},{"id":596,"depth":824,"text":597,"children":842},[843],{"id":635,"depth":825,"text":636},{"id":649,"depth":824,"text":650,"children":845},[846],{"id":669,"depth":825,"text":636},{"id":677,"depth":824,"text":678},{"id":709,"depth":824,"text":710},{"id":744,"depth":824,"text":745},"Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI \u002F Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da arquitetura de software, criando o guia mestre para a implementação do código. 🛡️🧩","md",null,{},true,{"title":134,"description":850},"GHpl_WVxfC1HDVaB6OHPMvAocBJ8ukcTBg3YA4xqXtE",[858,860],{"title":130,"path":131,"stem":132,"description":859,"children":-1},"Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI \u002F Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência visual, trazendo a interface do software para o \"mundo real\" antes mesmo de escrever a primeira linha de código. 🛡️🧩",{"title":138,"path":139,"stem":140,"description":861,"children":-1},"Bem-vindo a mais uma etapa da sua jornada no curso de Gestão de TI \u002F Desenvolvimento de Sistemas. Hoje vamos mergulhar em conceitos que conectam a teoria técnica diretamente com o padrão de excelência da dinâmica de software, entendendo como o sistema \"conversa\" internamente. 🛡️🧩",1788375144212]