Desenvolvimento de Sistemas 2
Conceitos fundamentais de desenvolvimento de sistemas e engenharia de software para concursos públicos.
Cartões · 32
- Modelo Cascata (Waterfall)
- Modelo sequencial e linear onde cada fase (requisitos, projeto, implementacao, testes) deve ser concluida antes do inicio da proxima, dificultando mudancas tardias.
- Modelo Espiral
- Processo de desenvolvimento orientado a riscos que combina a natureza iterativa da prototipacao com aspectos controlados e sistematicos do modelo cascata.
- Prototipacao
- Criacao de versoes preliminares do sistema para ajudar desenvolvedores e clientes a compreenderem e validarem os requisitos antes da construcao final.
- Manifesto Agil - 4 Valores
- Individuos e interacoes sobre processos; software funcionando sobre documentacao; colaboracao com cliente sobre contratos; responder a mudancas sobre planos.
- Scrum - Papeis Principais
- Product Owner (define prioridades e escopo do produto), Scrum Master (facilita o processo e remove impedimentos) e Time de Desenvolvedores.
- Scrum - Cerimonias
- Sprint Planning (planejamento), Daily Scrum (reuniao diaria), Sprint Review (apresentacao da entrega) e Sprint Retrospective (melhoria continua).
- Kanban
- Metodo visual de gestao de fluxo de trabalho baseado em cartoes, focado na limitacao do trabalho em progresso (WIP) e reducao de gargalos.
- XP (Extreme Programming)
- Metodologia agil focada em excelencia tecnica com praticas como programacao em par, TDD, integracao continua e releases frequentes.
- TDD (Test Driven Development)
- Ciclo Red-Green-Refactor: escreve-se o teste que falha, implementa-se o codigo minimo para passar e, em seguida, refatora-se o codigo.
- Requisitos Funcionais (RF)
- Declaracoes dos servicos ou funcoes que o sistema deve fornecer, descrevendo comportamentos e reacoes a entradas especificas.
- Requisitos Nao Funcionais (RNF)
- Restricoes e qualidades do sistema como desempenho, seguranca, confiabilidade, usabilidade, escalabilidade e portabilidade.
- UML - Diagrama de Casos de Uso
- Diagrama comportamental que modela as funcionalidades do sistema sob a perspectiva dos atores externos envolvidos.
- UML - Diagrama de Classes
- Diagrama estrutural que descreve a visao estatica do sistema, detalhando classes, atributos, metodos e relacionamentos.
- UML - Diagrama de Sequencia
- Diagrama de interacao que enfatiza a ordenacao temporal das mensagens trocadas entre objetos para executar um cenario.
- Acoplamento
- Grau de interdependencia entre modulos de software; a boa pratica de arquitetura busca baixo acoplamento para facilitar manutencoes.
- Coesao
- Medida de quao focadas e relacionadas estao as responsabilidades de um unico modulo ou classe; busca-se alta coesao.
- Padrao GoF: Singleton
- Padrao criacional que garante que uma classe possua apenas uma unica instancia acessivel globalmente em toda a aplicacao.
- Padrao GoF: Factory Method
- Padrao criacional que define uma interface para criacao de objetos, deixando as subclasses decidirem qual classe instanciar.
- Padrao GoF: Observer
- Padrao comportamental que define dependencia um-para-muitos, notificando automaticamente todos os observadores quando o estado muda.
- Padrao GoF: Strategy
- Padrao comportamental que encapsula uma familia de algoritmos em classes proprias, permitindo alternar a execucao em tempo de execucao.
- Padrao GoF: Adapter
- Padrao estrutural que converte a interface de uma classe em outra interface esperada pelo cliente, permitindo classes incompativeis trabalharem juntas.
- SOLID - Single Responsibility Principle (SRP)
- Principio que estabelece que cada classe deve ter apenas uma unica razao para mudar, focando em uma responsabilidade clara.
- SOLID - Open/Closed Principle (OCP)
- Entidades de software devem ser abertas para extensao, mas fechadas para modificacao direta em seu codigo-fonte.
- SOLID - Liskov Substitution Principle (LSP)
- Objetos de uma subclasse devem ser capazes de substituir objetos da superclasse sem alterar a corretude do programa.
- SOLID - Interface Segregation Principle (ISP)
- Clientes nao devem ser forcados a depender de interfaces que nao utilizam; prefira interfaces especificas a uma generica.
- SOLID - Dependency Inversion Principle (DIP)
- Modulos de alto nivel nao devem depender de modulos de baixo nivel; ambos devem depender de abstracoes.
- Teste de Caixa-Preta (Funcional)
- Tecnica de teste que avalia o software com base apenas em suas entradas e saidas, sem conhecimento da estrutura interna de codigo.
- Teste de Caixa-Branca (Estrutural)
- Tecnica de teste focada na logica interna, fluxo de controle, condicoes e caminhos de execucao do codigo-fonte.
- Teste de Regressao
- Execucao de testes em versoes modificadas do sistema para assegurar que alteracoes recentes nao introduziram novos defeitos.
- CI/CD (Continuous Integration / Continuous Delivery)
- Pratica de integrar alteracoes de codigo frequentemente com testes automatizados e automatizar o processo de entrega para producao.
- Arquitetura em Microservicos
- Estilo arquitetural que estrutura a aplicacao como um conjunto de servicos pequenos, desacoplados, independentes e comunicaveis por rede.
- CMMI - Niveis de Maturidade
- Escala de 1 a 5: Inicial (1), Gerenciado (2), Definido (3), Gerenciado Quantitativamente (4) e Em Otimizacao (5).