Desenvolvimento de Sistemas

Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto

Conceitos fundamentais de engenharia de software e desenvolvimento de sistemas para concursos públicos.

30 cartões Português Nível: Ensino superior Programação Publicado
Toque no cartão para virar

Cartões · 30

Modelo Cascata (Waterfall)
Modelo sequencial e linear de desenvolvimento, onde cada fase deve ser concluída antes do início da próxima, com baixa tolerância a mudanças de requisitos.
Modelo Espiral
Modelo iterativo orientado a riscos, dividido em quatro quadrantes: determinação de objetivos, análise de riscos, desenvolvimento e planejamento da próxima fase.
Scrum: Product Owner (PO)
Responsável por maximizar o valor do produto e gerenciar o Product Backlog, definindo prioridades das histórias de usuário.
Scrum: Scrum Master
Líder servidor que atua como facilitador, garante a aplicação dos princípios do Scrum e remove impedimentos da equipe de desenvolvimento.
Kanban: Princípio do WIP (Work in Progress)
Limitação da quantidade de itens de trabalho em andamento simultâneo para evitar gargalos, reduzir o lead time e manter o fluxo contínuo.
XP (Extreme Programming): Práticas Principais
Metodologia ágil focada em excelência técnica, incluindo Programação em Par, TDD, Integração Contínua, Refatoração e Feedback Constante.
TDD (Test-Driven Development)
Técnica de desenvolvimento guiado por testes baseada no ciclo Red (escrever teste que falha), Green (fazer passar) e Refactor (melhorar o código).
Requisitos Funcionais vs Não Funcionais
Funcionais descrevem o comportamento e serviços do sistema; Não Funcionais definem restrições de qualidade como desempenho, segurança e confiabilidade.
Casos de Uso: Include vs Extend
Include indica execução obrigatória do caso de uso incluído; Extend representa comportamento opcional ou condicional que estende o fluxo básico.
UML: Diagrama de Classes
Diagrama estrutural que mapeia classes, atributos, operações e relacionamentos estáticos entre objetos no sistema.
UML: Diagrama de Sequência
Diagrama comportamental que modela a troca de mensagens entre objetos ordenadas cronologicamente ao longo de linhas de vida.
UML: Diagrama de Atividades
Diagrama comportamental que representa o fluxo de controle e de dados passo a passo entre ações e atividades do sistema.
Acoplamento vs Coesão
Acoplamento mede o grau de interdependência entre módulos (deseja-se fraco); Coesão mede a afinidade interna das funções de um módulo (deseja-se alta).
Design Pattern: Singleton (GoF Criacional)
Garante que uma classe possua apenas uma única instância em todo o ciclo de vida da aplicação e provê um ponto global de acesso a ela.
Design Pattern: Factory Method (GoF Criacional)
Define uma interface para criar objetos, delegando às subclasses a decisão sobre qual classe concreta específica instanciar.
Design Pattern: Adapter (GoF Estrutural)
Converte a interface de uma classe em outra interface esperada pelo cliente, permitindo que classes com interfaces incompatíveis trabalhem juntas.
Design Pattern: Observer (GoF Comportamental)
Define uma dependência um-para-muitos entre objetos, notificando e atualizando automaticamente os dependentes quando o estado do sujeito muda.
Design Pattern: Strategy (GoF Comportamental)
Define uma família de algoritmos, encapsula cada um deles e os torna intercambiáveis em tempo de execução sem alterar o cliente.
SOLID: Single Responsibility Principle (SRP)
Uma classe deve ter apenas um único motivo para mudar, concentrando-se em apenas uma responsabilidade específica no domínio.
SOLID: Open/Closed Principle (OCP)
Entidades de software devem estar abertas para extensão, mas fechadas para modificação direta em seu código-fonte estável.
SOLID: Liskov Substitution Principle (LSP)
Objetos de uma superclasse devem poder ser substituídos por objetos de suas subclasses sem quebrar a consistência da aplicação.
SOLID: Interface Segregation Principle (ISP)
Clientes não devem ser forçados a depender de interfaces que não utilizam; muitas interfaces específicas são melhores que uma geral.
SOLID: Dependency Inversion Principle (DIP)
Módulos de alto nível não devem depender de módulos de baixo nível; ambos devem depender de abstrações (interfaces/classes abstratas).
Testes de Software: Caixa-Preta vs Caixa-Branca
Caixa-Preta avalia entradas e saídas sem conhecer a estrutura interna do código; Caixa-Branca analisa a lógica interna, caminhos e fluxos do código.
Tipos de Testes: Unidade, Integração e Sistema
Unidade testa o menor bloco isolado; Integração avalia a interface entre módulos combinados; Sistema valida o produto final integrado contra requisitos.
CI/CD: Integração e Entrega Contínuas
CI automatiza a mesclagem e teste contínuo do código; CD automatiza o processo de disponibilização e deploy em ambientes de homologação e produção.
Arquitetura REST: Principais Restrições
Cliente-servidor, stateless (sem estado na sessão), cacheável, interface uniforme, sistema em camadas e código sob demanda (opcional).
Arquitetura de Microsserviços
Abordagem que desenvolve uma aplicação como um conjunto de serviços pequenos, autônomos, fracamente acoplados e implantáveis de forma independente.
CMMI: Níveis de Maturidade (Representação por Estágios)
Nível 1 Inicial, Nível 2 Gerenciado, Nível 3 Definido, Nível 4 Quantitativamente Gerenciado e Nível 5 Otimizado.
Gerência de Configuração de Software (GCS)
Disciplina que identifica, controla, audita e documenta alterações em artefatos de software durante todo o ciclo de vida do projeto.

Conjuntos relacionados

Mais em Programação →