Análise e Desenvolvimento de Sistemas
Compartilhado por um usuário do Flashcards.gg · gerado com IA · Denunciar este conjunto
Conceitos fundamentais de análise e desenvolvimento de sistemas para estudantes e profissionais de computação.
Toque no cartão para virar
Cartões · 52
- Ciclo de Vida do Software (SDLC)
- Estrutura que define as fases sequenciais ou iterativas pelas quais um software passa, desde a concepção inicial e desenvolvimento até a manutenção e desativação.
- Requisitos Funcionais
- Declarações que descrevem os comportamentos, recursos e serviços específicos que o sistema deve executar para atender às necessidades do usuário.
- Requisitos Não Funcionais
- Critérios que determinam restrições e qualidades globais do sistema, como desempenho, segurança, escalabilidade, disponibilidade e usabilidade.
- Estudo de Viabilidade
- Avaliação preliminar que analisa se o projeto é técnica, financeira e operacionalmente exequível antes do início efetivo do desenvolvimento.
- Modelo em Cascata (Waterfall)
- Abordagem linear e sequencial de desenvolvimento, na qual cada fase só se inicia após a conclusão e aprovação formal da anterior.
- Metodologia Ágil
- Abordagem iterativa e incremental focada em entregas rápidas de valor, flexibilidade diante de mudanças e colaboração contínua com o cliente.
- Scrum
- Framework ágil de gestão de projetos que organiza o trabalho em ciclos curtos e fixos (sprints), com papéis e cerimônias bem definidos.
- Kanban
- Método visual de gestão do fluxo de trabalho focado na limitação do trabalho em progresso (WIP) e na melhoria contínua das entregas.
- História de Usuário (User Story)
- Descrição curta e simples de uma funcionalidade contada a partir da perspectiva do usuário final, geralmente no formato 'Como... Eu quero... Para...'
- Critérios de Aceite
- Condições e limites predefinidos que uma funcionalidade deve atender para ser considerada completa e aprovada pelo cliente.
- UML (Unified Modeling Language)
- Linguagem visual padronizada utilizada para especificar, visualizar, construir e documentar artefatos de um sistema orientado a objetos.
- Diagrama de Casos de Uso
- Diagrama comportamental da UML que mapeia as interações entre os atores externos e as funcionalidades providas pelo sistema.
- Diagrama de Classes
- Diagrama estrutural da UML que ilustra as classes do sistema, seus atributos, métodos e os relacionamentos estáticos entre elas.
- Diagrama de Sequência
- Diagrama de interação da UML que detalha como os objetos trocam mensagens ao longo do tempo para executar um processo específico.
- Programação Orientada a Objetos (POO)
- Paradigma de desenvolvimento centrado na abstração do domínio em objetos que contêm dados (atributos) e código (métodos).
- Classe
- Molde ou estrutura que define as características (atributos) e comportamentos (métodos) compartilhados por um grupo de objetos.
- Objeto
- Instância concreta e dinâmica de uma classe, possuindo estado próprio em memória e capacidade de executar ações definidas.
- Encapsulamento
- Princípio da POO que restringe o acesso direto ao estado interno de um objeto, expondo apenas interfaces públicas e seguras.
- Herança
- Mecanismo da POO que permite a uma classe derivada herdar atributos e comportamentos de uma classe base, promovendo reutilização.
- Polimorfismo
- Capacidade de diferentes classes implementarem a mesma assinatura de método de formas distintas de acordo com o contexto do objeto.
- Abstração
- Processo de isolar aspectos essenciais de uma entidade do mundo real, ignorando detalhes complexos e desnecessários ao sistema.
- Princípios SOLID
- Conjunto de cinco princípios de design voltados a tornar o código orientado a objetos mais legível, extensível, modular e testável.
- Single Responsibility Principle (SRP)
- Princípio que estabelece que uma classe ou módulo deve possuir apenas uma única razão para mudar, tendo propósito bem delimitado.
- Open/Closed Principle (OCP)
- Princípio segundo o qual entidades de software devem ser abertas para extensão, mas fechadas para modificação direta em sua estrutura.
- Liskov Substitution Principle (LSP)
- Princípio que dita que objetos de uma subclasse devem poder substituir objetos da superclasse sem alterar a corretude do sistema.
- Interface Segregation Principle (ISP)
- Princípio que afirma que clientes não devem ser forçados a depender de interfaces e métodos que não utilizam.
- Dependency Inversion Principle (DIP)
- Princípio que preconiza que módulos de alto nível não devem depender de módulos de baixo nível, mas sim de abstrações.
- Padrões de Projeto (Design Patterns)
- Soluções típicas, comprovadas e reutilizáveis para problemas comuns recorrentes no projeto de arquitetura e software.
- Padrão Singleton
- Padrão criacional que garante a existência de apenas uma única instância de uma classe e fornece um ponto global de acesso a ela.
- Padrão Factory Method
- Padrão criacional que fornece uma interface para criar objetos em uma superclasse, permitindo às subclasses alterar o tipo criado.
- Padrão Observer
- Padrão comportamental que define um mecanismo de assinatura para notificar múltiplos objetos sobre mudanças de estado em outro objeto.
- Arquitetura MVC
- Padrão arquitetural que divide a aplicação em três camadas interdependentes: Model (dados e regras), View (interface) e Controller (fluxo).
- Arquitetura Monolítica
- Estilo de arquitetura de software no qual todos os componentes, serviços e regras do sistema são compilados e executados em uma única unidade.
- Microsserviços
- Abordagem arquitetural que estrutura um sistema como uma coleção de serviços autônomos, modulares e comunicáveis via rede.
- API (Application Programming Interface)
- Conjunto padronizado de definições, regras e protocolos que possibilita a comunicação e integração entre diferentes softwares.
- API RESTful
- Modelo de comunicação em rede baseado nos verbos e convenções do protocolo HTTP, utilizando transferências de representações de recursos.
- Banco de Dados Relacional (SGBD-R)
- Sistema que armazena dados organizados em tabelas estruturadas com linhas e colunas, mantendo a integridade referencial.
- SQL (Structured Query Language)
- Linguagem declarativa padrão usada para consultar, manipular, definir e gerenciar bancos de dados relacionais.
- Chave Primária (PK)
- Atributo ou conjunto de atributos que identifica unicamente cada registro em uma tabela de banco de dados.
- Chave Estrangeira (FK)
- Campo em uma tabela que faz referência à chave primária de outra tabela, garantindo o relacionamento e a integridade referencial.
- Normalização de Dados
- Técnica de estruturação de tabelas que busca eliminar a redundância de dados e evitar anomalias de inserção, atualização e exclusão.
- Propriedades ACID
- Conjunto de quatro garantias (Atomicidade, Consistência, Isolamento, Durabilidade) essenciais para transações seguras em bancos de dados.
- Banco de Dados NoSQL
- Categoria de bancos de dados não relacionais otimizados para modelos de dados flexíveis, como documentos, grafos, pares chave-valor e colunas.
- ORM (Object-Relational Mapping)
- Técnica e biblioteca que mapeia objetos de linguagens de programação para tabelas de bancos de dados relacionais de forma transparente.
- Controle de Versão (Git)
- Sistema distribuído que registra o histórico de alterações no código-fonte, permitindo reversões seguras e trabalho colaborativo.
- Branch
- Ramificação independente da linha principal de desenvolvimento do código que permite trabalhar em novas funcionalidades de forma isolada.
- Merge Request / Pull Request
- Mecanismo colaborativo para propor, revisar e incorporar o código de uma ramificação ao tronco principal do projeto.
- Teste Unitário
- Verificação automatizada voltada para testar a menor fração isolável do código (como funções e métodos) de forma independente.
- Teste de Integração
- Fase de testes focada em validar a interação e o tráfego de dados correto entre múltiplos módulos, serviços ou banco de dados.
- CI/CD
- Prática DevOps de Integração Contínua e Entrega Contínua que automatiza compilação, testes e publicação do software em produção.
- Refatoração de Código
- Processo de alterar a estrutura interna de um código para torná-lo mais limpo e manutenível, sem modificar seu comportamento externo.
- Clean Code
- Filosofia de escrita de código focada em clareza, simplicidade, legibilidade e fácil manutenção para qualquer outro desenvolvedor.