PDS e Metodologias Ágeis
Resumo: Programação, Testes e Modelagem de Sistemas
1. Programação Orientada a Objetos com Python
Conceitos-chave:
- Classes e Objetos:
Uma classe é um molde; o objeto é o produto. Classes definem atributos (características) e métodos (ações). - Encapsulamento:
Técnica que protege os dados dentro de uma classe, permitindo acesso controlado através de getters (leitura) e setters (modificação).
Aplicações práticas:
- Criação de softwares modulares e organizados.
- Utilização de boas práticas como separação de responsabilidades, reutilização de código e manutenção mais fácil.
Exemplos:
- Criar uma classe
Carro
com atributos comocor
e métodos comoacelerar()
.
Boas práticas destacadas:
- Utilizar convenções de encapsulamento (_atributo).
- Planejar o código com esboços no papel antes da implementação.
2. Testes Não Funcionais: Desempenho, Segurança e Usabilidade
Desempenho
- Testes de carga e stress:
Avaliam se o sistema suporta alta demanda (ex.: Black Friday). - Otimização de recursos:
Melhor uso de memória, CPU e armazenamento, como fazem Netflix e Spotify. - Monitoramento contínuo:
Ferramentas como Google Analytics analisam o desempenho em tempo real.
Segurança
- Testes de invasão (PenTest) e vulnerabilidade:
Simulam ataques para descobrir falhas. - Autenticação e Autorização:
Como o uso de 2FA (Autenticação de dois fatores). - Compliance:
Seguir normas como GDPR para proteger dados dos usuários.
Exemplo real:
O ataque à Sony Pictures (2014) mostrou falhas como falta de 2FA e servidores desatualizados.
Usabilidade
- Avaliação heurística:
Avaliar a facilidade de uso seguindo princípios como os de Nielsen. - Testes com usuários reais:
Observar o uso prático para melhorar a experiência. - Acessibilidade:
Tornar sistemas usáveis para todos, como faz a Apple com seus recursos para deficientes.
3. Diagramas de Casos de Uso (UML)

Exemplo de diagrama de caso de uso: Referencia: https://medium.com/operacionalti/uml-diagrama-de-casos-de-uso-29f4358ce4d5
Use o site site https://www.draw.io/ para gerar o modelo da loja de açaí
O que são:
- Diagramas que mostram como os usuários (atores) interagem com o sistema.
- Representam funcionalidades e ajudam no entendimento, planejamento e comunicação do sistema.
Componentes principais:
- Atores: quem usa (pessoas ou outros sistemas).
- Casos de uso: o que o sistema faz para atender o ator.
- Relacionamentos: associação, inclusão e extensão.
Exemplos:
- E-commerce: Cliente compra produtos; administrador gerencia estoque.
- Sistema bancário: Cliente faz saques e consultas.
- Educação: Aluno assiste aula, professor publica material.
Importância prática:
- Clarificam requisitos e interações antes da programação.
- Ajudam a prever problemas e definir prioridades de desenvolvimento.
Resumo Final para Aula
Tema | Pontos Principais | Exemplos Reais |
---|---|---|
Programação O.O. | Classes, Objetos, Encapsulamento | Python (classe Carro ) |
Testes Não Funcionais | Carga, Segurança, Usabilidade | Netflix, Sony Pictures |
Diagramas de Casos de Uso | Visualizar ações do sistema | E-commerce, Saúde, Educação |
💬 Sugestão de abordagem com os alunos:
“Hoje vamos aprender como construir softwares organizados, seguros e fáceis de usar, entendendo como desenhar, testar e programar melhor!”
Resumo Elaborado: Programação, Modelagem de Dados e Requisitos de Software
1. Diagramas UML: Casos de Uso, Classes e Sequências
Diagramas de Casos de Uso
- Representam as funcionalidades que o sistema oferece e como os usuários (atores) interagem com ele.
- Principais elementos:
- Atores: Pessoas ou sistemas externos que usam o sistema.
- Casos de uso: Ações realizadas pelo sistema.
- Relacionamentos: Mostram como atores e casos de uso se conectam.
- Aplicações práticas: e-commerce, bancos, sistemas de ensino.
- Objetivo: Melhorar a comunicação entre desenvolvedores, clientes e usuários.
Diagramas de Classes

referencia: https://slideplayer.com.br/slide/13956163/
- Representam a estrutura estática do sistema.
- Cada classe mostra seus atributos (informações) e métodos (ações que podem ser realizadas).
- Exemplo: Classe “Usuário” com atributos como
nome
,email
e métodos comologar()
.
Use o site site https://www.draw.io/ para gerar o modelo da loja de açaí
Diagramas de Sequência

Referencia: https://medium.com/documenta%C3%A7ao-uml/introdu%C3%A7%C3%A3o-ao-diagrama-de-sequ%C3%AAncia-1ea5e9563594
Use o site site https://www.draw.io/ para gerar o modelo da loja de açaí
- Mostram como os objetos interagem no tempo para realizar funções.
- Utilizados para representar o fluxo de mensagens entre usuários, sistemas e bases de dados.
- Exemplo: Usuário adiciona produto ao carrinho → Sistema processa → Estoque é atualizado.
2. Modelagem de Dados Relacional

Use o site site https://www.draw.io/ para gerar o modelo da loja de açaí
Fundamentos:
- Entidades: Representam objetos reais, como Clientes, Produtos, Pedidos.
- Relacionamentos: Como esses objetos se conectam (ex.: Cliente faz Pedido).
Normalização dos dados:
- 1ª Forma Normal (1NF): Cada campo com um único valor.
- 2ª Forma Normal (2NF): Eliminar dependências parciais em chaves compostas.
- 3ª Forma Normal (3NF): Eliminar dependências transitivas.
Melhores práticas:
- Chaves primárias e chaves estrangeiras para manter integridade dos dados.
- Indexação para melhorar a performance de consultas.
- Monitoramento contínuo do banco para otimizar consultas grandes.
Exemplo de aplicação:
- Em sistemas de vendas, é necessário dividir dados em tabelas como
Clientes
,Pedidos
,Produtos
para evitar repetição de informações.
3. Modelagem de Requisitos de Software
Requisitos de Software:
- Requisitos Funcionais:
Descrevem o que o sistema faz (ex.: “Usuário pode se cadastrar”). - Requisitos Não Funcionais:
Definem qualidades do sistema (ex.: “O sistema deve carregar em 2 segundos”). - Requisitos de Domínio:
Específicos de uma área (ex.: um sistema médico que precisa seguir normas de saúde).
Levantamento de requisitos:
- Técnicas: entrevistas, questionários, observação direta, workshops.
- Ferramentas: UML, JIRA, Trello.
Documentação:
- Especificação de Requisitos de Software (SRS): documento técnico detalhado.
- User Stories (Histórias de Usuário):
Exemplo: “Como cliente, quero adicionar produtos ao carrinho para finalizar minha compra.”
Requisitos em Metodologias Ágeis:
- Flexibilidade:
Permitem mudanças rápidas durante o desenvolvimento. - Priorização:
Entregam primeiro o que é mais importante. - User Stories e Critérios de Aceitação:
Validam se a funcionalidade foi entregue corretamente.
Quadro Resumo para Aula
Tema | Pontos Principais | Exemplos |
---|---|---|
Diagramas de Casos de Uso | Como o usuário interage com o sistema | Loja online, Banco, Escola |
Diagramas de Classes | Estrutura de dados do sistema | Cadastro de clientes |
Diagramas de Sequência | Ordem de interação entre objetos | Compra online |
Modelagem de Dados | Organização eficiente de informações | Banco de dados de vendas |
Modelagem de Requisitos | O que o sistema faz e como deve se comportar | Cadastro rápido e seguro |
Sugestão para Apresentação Oral
Você pode dizer algo assim:
“Hoje vamos conhecer ferramentas essenciais para criar sistemas modernos: vamos entender como desenhar os requisitos de um sistema, organizar seus dados, planejar suas funções e testar se tudo está funcionando corretamente.”
Tabela de Jargões e Significados
Jargão | Significado |
---|---|
UML (Unified Modeling Language) | Linguagem usada para desenhar diagramas que explicam como um sistema funciona. |
Diagrama de Casos de Uso | Desenho que mostra o que o sistema faz e como os usuários (atores) interagem com ele. |
Ator | Quem interage com o sistema (pessoa, sistema ou dispositivo). |
Caso de Uso | Ação ou funcionalidade que o sistema deve realizar. |
Relacionamento (UML) | Ligação entre atores e casos de uso ou entre casos de uso diferentes. |
Diagrama de Classes | Representação das partes de um sistema: suas informações (atributos) e ações (métodos). |
Diagrama de Sequência | Mostra a ordem em que as ações acontecem entre os objetos de um sistema. |
Linha de Vida | Representa o tempo de vida de um objeto enquanto ele interage no sistema. |
Mensagem Síncrona | Comunicação onde quem envia espera uma resposta antes de continuar. |
Mensagem Assíncrona | Comunicação onde quem envia não precisa esperar resposta para continuar. |
Modelagem de Dados Relacional | Técnica para organizar as informações em bancos de dados, evitando erros e repetição. |
Entidade | Representação de um objeto ou conceito real (ex: cliente, produto). |
Relacionamento (Dados) | Conexão entre duas entidades no banco de dados. |
Normalização | Processo para organizar os dados em tabelas de forma correta, evitando repetições. |
Chave Primária | Identificador único de cada registro numa tabela (ex: CPF de uma pessoa). |
Chave Estrangeira | Ligação entre duas tabelas diferentes. |
User Story | Pequena história escrita do ponto de vista do usuário dizendo o que ele precisa fazer. |
Critério de Aceitação | Condições que mostram que uma funcionalidade foi feita corretamente. |
MoSCoW | Técnica para priorizar tarefas: Must (deve ter), Should (deveria ter), Could (poderia ter), Won’t (não terá agora). |
Levantamento de Requisitos | Processo de descobrir tudo o que o sistema precisa fazer. |
SRS (Software Requirements Specification) | Documento formal que descreve todos os requisitos do sistema. |
Framework Ágil | Modelo de trabalho que permite fazer entregas rápidas e adaptáveis no desenvolvimento de software. |
CI/CD (Integração Contínua/Entrega Contínua) | Técnicas para automatizar testes e entregas de novos códigos em sistemas de forma rápida e segura. |
Workshop | Reunião prática e interativa para resolver problemas ou levantar informações. |
Protótipo | Modelo simples de um sistema feito para testar ideias antes de fazer a versão final. |
Elicitação de Requisitos | Coleta de informações necessárias para definir o que o sistema precisa fazer. |
Resumo Geral para Apresentação — Sistemas, Modelagem e Testes
1. Modelagem de Dados Relacionais
- Conceitos-chave:
Entidades (como “Cliente” ou “Produto”), Relacionamentos e Normalização (1ª, 2ª e 3ª Formas Normais). - Objetivo:
Garantir organização dos dados, evitando redundância e melhorando a integridade. - Exemplos:
Cadastro de clientes, pedidos em lojas virtuais.
2. Modelagem de Dados Não Relacionais
- Tipos de bancos:
- Documentos: Estruturam informações como JSON (ex: MongoDB).
- Grafos: Representam conexões complexas (ex: Redes Sociais).
- Chave-Valor: Para acesso ultra rápido de informações, como sessões de usuários.
- Importância:
Usados onde precisamos de alta escalabilidade, consultas rápidas ou análise de redes.
3. Diagramas UML: Casos de Uso, Classes e Sequências
- Casos de Uso:
Mostram como usuários interagem com o sistema. - Classes:
Estruturam informações e métodos em sistemas. - Sequência:
Representam o fluxo temporal de interações entre objetos. - Exemplos práticos:
E-commerce (Cliente → Carrinho → Pagamento → Estoque).
4. Requisitos de Software
- Funcionais:
Definem o que o sistema faz (ex: “Cadastrar usuário”). - Não Funcionais:
Definem qualidades do sistema (ex: “Tempo de resposta menor que 2 segundos”). - User Stories:
Pequenas histórias que ajudam a entender melhor o que o usuário precisa.
5. Testes de Software
Testes Funcionais
- O que são:
Verificam se o sistema cumpre seus requisitos. - Técnicas:
- Caixa Preta (testar sem saber o código).
- Testes de equivalência, valor-limite.
- Automação de testes (ex: usando
pytest
).
- Importância:
Garante que o sistema faça exatamente o que foi prometido.
Testes Não Funcionais
- Tipos:
- Desempenho:
Avalia velocidade, escalabilidade e estabilidade. - Segurança:
Testa vulnerabilidades e proteção de dados. - Usabilidade:
Garante facilidade de uso e compatibilidade com vários dispositivos.
- Desempenho:
- Exemplos reais:
- Black Friday: Testes de carga para aguentar milhões de acessos.
- Aplicativos bancários: Testes de segurança e compatibilidade em vários celulares.
6. Planejamento e Gestão de Testes
- Planejamento de Testes:
Definição de escopo, cronograma e recursos necessários. - Gestão de Defeitos:
- Identificar.
- Registrar (documentar claramente).
- Monitorar (corrigir e validar).
- Testes Ágeis:
Testar continuamente usando integração contínua (CI/CD).
Resumo Final para Aula
Tema | Foco | Exemplos |
---|---|---|
Modelagem Relacional | Organização e estruturação de dados | Banco de dados de vendas |
Modelagem Não Relacional | Eficiência e escalabilidade | MongoDB, Redis, Neo4j |
Diagramas UML | Entender funcionamento e interações | Sistema de Compras Online |
Requisitos | Definir o que fazer e como se comportar | Cadastrar usuário rapidamente |
Testes Funcionais | Verificar se tudo funciona como planejado | Cadastro de clientes |
Testes Não Funcionais | Garantir qualidade, segurança e desempenho | Teste de carga em Black Friday |
💬 Sugestão de Introdução para Apresentação:
“Hoje vamos explorar como projetar sistemas, organizar dados, definir funções e testar tudo para garantir que a tecnologia funcione de maneira rápida, segura e fácil de usar no nosso dia a dia.”