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.

52 cartões Português Nível: Ensino superior Programação Publicado
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.

Conjuntos relacionados

Mais em Programação →