Fundamentos Engenharia software Flashcards
(30 cards)
Frente
Verso
O que sao os Paradigmas de Programacao?
Sao estilos de programacao que definem a estrutura e a abordagem do codigo, como Procedural, Orientado a Objetos (OO) e Funcional.
Quais sao os principios SOLID?
Um conjunto de cinco principios para tornar o design de software mais compreensivel, flexivel e de facil manutencao: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation e Dependency Inversion.
O que significam as boas praticas DRY, KISS e YAGNI?
DRY: Don’t Repeat Yourself; KISS: Keep It Simple, Stupid; YAGNI: You Aren’t Gonna Need It. Sao principios que promovem codigo limpo e eficiente.
O que sao Design Patterns?
Solucoes reutilizaveis para problemas comuns no design de software, como Singleton, Factory, Observer, entre outros.
Quais sao as arquiteturas Clean, Hexagonal e Onion?
Sao estilos arquiteturais que promovem a separacao de preocupacoes e facilitam a manutencao e escalabilidade do software.
Qual a diferenca entre Heranca e Composicao?
Heranca permite que uma classe herde comportamentos de outra, enquanto Composicao envolve construir classes usando instancias de outras classes para reutilizar funcionalidades.
O que e Idempotencia em sistemas?
E a propriedade de certas operacoes que podem ser aplicadas multiplas vezes sem alterar o resultado alem da aplicacao inicial.
O que e o paradigma procedural?
Baseia-se na estruturacao do codigo como uma sequencia de instrucoes ou procedimentos, seguindo uma abordagem imperativa.
Quais sao as caracteristicas do paradigma procedural?
Organizacao do codigo em funcoes ou procedimentos; uso de variaveis globais e locais; fluxo de execucao sequencial; dependencia de estruturas de controle como loops e condicionais.
Quais sao as vantagens do paradigma procedural?
Simplicidade e facilidade de entendimento para programas pequenos; uso eficiente de memoria; adequado para problemas sequenciais.
Quais sao as desvantagens do paradigma procedural?
Dificuldade de manutencao e escalabilidade em projetos grandes; reutilizacao de codigo limitada; propensao a efeitos colaterais devido ao uso de variaveis globais.
O que e o paradigma orientado a objetos (OO)?
Organiza o codigo em objetos que representam entidades do mundo real, cada um com atributos e metodos.
Quais sao as caracteristicas do paradigma orientado a objetos?
Encapsulamento, abstracao, heranca e polimorfismo; organizacao do codigo em classes e objetos.
Quais sao as vantagens do paradigma orientado a objetos?
Facilita a reutilizacao de codigo; melhora a manutencao e escalabilidade; promove a modularidade.
Quais sao as desvantagens do paradigma orientado a objetos?
Pode adicionar complexidade desnecessaria; curva de aprendizado mais ingreme; possivel overhead de desempenho.
O que e o paradigma funcional?
Baseia-se na aplicacao de funcoes matematicas, evitando mudancas de estado e dados mutaveis.
Quais sao as caracteristicas do paradigma funcional?
Uso de funcoes puras; ausencia de efeitos colaterais; enfase em recursao; tratamento de funcoes como cidadaos de primeira classe.
Quais sao as vantagens do paradigma funcional?
Facilita a depuracao e testes; codigo mais previsivel; adequado para programacao concorrente.
Quais sao as desvantagens do paradigma funcional?
Pode ser menos intuitivo para quem esta acostumado com paradigmas imperativos; desempenho pode ser afetado em algumas situacoes; curva de aprendizado.
O que sao Padroes de Projeto?
Solucoes reutilizaveis para problemas comuns no design de software, categorizadas em Criacionais, Estruturais e Comportamentais.
Quais sao os beneficios dos Padroes de Projeto?
Reutilizacao de solucoes testadas, codigo mais organizado e manutenivel, flexibilidade e escalabilidade, facilita a comunicacao na equipe, melhor separacao de responsabilidades.
Quais sao as desvantagens dos Padroes de Projeto?
Complexidade desnecessaria, curva de aprendizado, sobrecarga de codigo, pode esconder a simplicidade, nao substituem o bom design.
O que sao Padroes Criacionais?
Lidam com a criacao de objetos de maneira flexivel. Exemplos: Singleton, Factory Method.