treinamentos
Resumão da disciplina Metodologias Ágeis

Aula 1 – [SIS]ANO1C3B1S1A1.pdf

  • Introdução e Conceitos:
    • Definição do levantamento de requisitos e sua importância para o sucesso dos projetos de desenvolvimento de software.
    • Diferenciação entre requisitos funcionais (o que o sistema deve fazer) e não funcionais (como o sistema deve se comportar).
  • Atividade Prática:
    • Exemplo com cenário de um aplicativo para agendamento de consultas, enfatizando a coleta e análise dos requisitos.

Aula 2 – [SIS]ANO1C3B1S1A2.pdf

  • Técnicas e Ferramentas:
    • Abordagens e métodos para coletar requisitos, com ênfase em técnicas como entrevistas, workshops e brainstorming.
    • Comparação entre metodologias ágeis e tradicionais na coleta de requisitos.
  • Estudo de Caso:
    • Exemplo prático utilizando um software de e-commerce, detalhando os requisitos funcionais e não funcionais.
  • Atividades e Quizzes:
    • Exercícios e questionários para fixação dos conceitos apresentados.

Aula 3 – [SIS]ANO1C3B1S1A3.pdf

  • Desafios e Gestão de Mudanças:
    • Identificação dos principais desafios do levantamento de requisitos, como a comunicação com stakeholders e a gestão de alterações no escopo.
    • Estratégias para lidar com mudanças inesperadas nos requisitos, incluindo análise de riscos e impacto.
  • Exercícios Práticos:
    • Atividades que simulam situações reais de mudanças de requisitos, com foco na adaptação e na negociação entre as partes envolvidas.

II. Testes de Software

(Arquivos: S7A3, S7A1, S7A2, S2A3, S2A1, S2A2)

A. Testes Funcionais: Conceitos e Metodologias

Aula 1 – [SIS]ANO1C3B1S7A1.pdf

  • Fundamentos dos Testes Funcionais:
    • Importância de testar se o software atende aos requisitos funcionais definidos.
    • Etapas do processo de teste: planejamento, preparação do ambiente, levantamento de requisitos, design dos casos de teste, execução e registro de defeitos, além da elaboração do relatório de teste.
  • Desenvolvimento de Casos de Teste:
    • Criação de cenários que cobrem as funcionalidades essenciais do software.

Aula 2 – [SIS]ANO1C3B1S7A2.pdf

  • Metodologias de Teste:
    • Comparação entre abordagens tradicionais (modelo cascata) e ágeis (iterativas e incrementais).
    • Integração dos testes funcionais no ciclo das sprints e a importância da automação para testes repetitivos.
  • Atividade Prática:
    • Criação de fluxogramas que ilustrem o processo de teste funcional e discussão sobre estratégias de execução.

Aula 3 – [SIS]ANO1C3B1S7A3.pdf

  • Melhores Práticas e Estratégias:
    • Planejamento, execução e gerenciamento dos testes funcionais.
    • Uso de ferramentas e tecnologias para automatização e organização dos testes.
    • Avaliação de riscos e priorização dos testes com base no impacto dos defeitos.

B. Introdução aos Testes de Software e Tipos de Testes

Aula 1 – [SIS]ANO1C3B1S2A1.pdf

  • Conceitos Básicos:
    • Introdução aos testes de software, destacando a importância dos processos de verificação e validação.
    • Objetivos dos testes: garantir qualidade, identificar defeitos e prevenir problemas na operação.
  • Exercício Prático:
    • Desenvolvimento de um plano de teste simples para uma aplicação de to-do list.

Aula 2 – [SIS]ANO1C3B1S2A2.pdf

  • Diversidade e Tipos de Testes:
    • Diferenciação entre testes funcionais e não funcionais (desempenho, usabilidade, segurança, etc.).
    • Comparação entre testes manuais e automatizados, com exemplos de ferramentas como Selenium, JUnit, JMeter, entre outras.
    • Abordagem dos testes de regressão, que garantem que novas alterações não comprometam funcionalidades já existentes.

Aula 3 – [SIS]ANO1C3B1S2A3.pdf

  • Gerenciamento de Testes:
    • Estratégias para o desenvolvimento de um plano de testes abrangente, alinhando os objetivos de negócio às atividades de teste.
    • Organização e priorização dos casos de teste com base na criticidade das funcionalidades e impacto no negócio.
    • Uso de métricas para rastrear a eficácia dos testes (taxa de cobertura, tempo médio para correção, entre outros).
  • Atividade Prática:
    • Elaboração de fluxogramas e relatórios que demonstram o processo de teste em cenários práticos (exemplo: máquina de cartão de crédito).

III. Modelagem de Dados e Conceitos Fundamentais

(Arquivos: [SIS]ANO1C3B1S3A1.pdf, [SIS]ANO1C3B1S3A2.pdf, [SIS]ANO1C3B1S3A3.pdf)

  • Conceito e Importância:
    • A modelagem de dados é essencial para estruturar, organizar e armazenar informações de forma eficiente.
    • Facilita a comunicação entre analistas, desenvolvedores e usuários, garantindo integridade e qualidade dos dados.
  • Abordagens e Tipos de Modelos:
    • Modelagem Conceitual: Criação de diagramas (por exemplo, ER) para representar entidades, relacionamentos e regras de negócio sem entrar em detalhes técnicos.
    • Modelagem Lógica: Detalha a estrutura dos dados com definição de tabelas, colunas, tipos de dados e restrições, independente da implementação física.
    • Modelagem Física: Implementa o modelo lógico em um sistema de banco de dados, otimizando o desempenho com técnicas como particionamento e índices.
    • Normalização: Processo de organizar dados para reduzir redundâncias e melhorar a integridade.
  • Arquitetura de Dados e Tendências:
    • Discussão sobre diferentes abordagens de arquitetura, como data warehouses, data lakes e arquiteturas orientadas a serviços.
    • Consideração sobre tendências futuras, como o uso de Big Data, IoT, blockchain e a importância da segurança e conformidade (LGPD).
  • Atividade Prática:
    • Exercício de criação de um esquema de banco de dados para uma livraria on-line, envolvendo identificação de entidades (livro, autor, pedido, cliente), definição de atributos e relacionamento entre elas.

IV. UML – Introdução e Visão Geral dos Diagramas

(Arquivos: [SIS]ANO1C3B1S4A1.pdf, [SIS]ANO1C3B1S4A2.pdf, [SIS]ANO1C3B1S4A3.pdf)

  • Conceito e Origem:
    • A UML (Unified Modeling Language) é uma linguagem padrão para visualização, especificação, construção e documentação de sistemas de software.
    • Surgiu a partir da unificação de métodos de modelagem orientada a objetos (Booch, OMT, OOSE) nos anos 1990.
  • Componentes e Elementos Básicos:
    • Classes, Objetos e Relacionamentos: Base para a modelagem de sistemas, permitindo representar entidades e suas interações.
    • Diagramas:
      • Casos de Uso: Representam as funcionalidades do sistema a partir da perspectiva dos usuários.
      • Diagramas de Classe: Mostram a estrutura estática do sistema, com atributos e métodos.
      • Diagramas de Sequência e Colaboração: Detalham a interação entre objetos ao longo do tempo.
      • Diagramas de Atividade e de Estado: Representam fluxos de trabalho, processos e os diferentes estados de um objeto durante seu ciclo de vida.
  • Aplicação Prática:
    • Uso de UML para documentar e comunicar requisitos de software de forma rápida, inclusive em ambientes ágeis.
    • Atividades práticas incluíram a elaboração de diagramas para processos como “resgate de senha” e a criação de apresentações para explicar a UML a colegas.

V. Programação Orientada a Objetos (POO) e Seus Pilares

(Arquivos: [SIS]ANO1C3B1S5A1.pdf, [SIS]ANO1C3B1S5A2.pdf, [SIS]ANO1C3B1S5A3.pdf)

  • Fundamentos da POO:
    • Paradigma que utiliza “objetos” – entidades que combinam dados (atributos) e comportamentos (métodos) – para modelar problemas do mundo real.
    • Permite a criação de sistemas modulares, reutilizáveis e de fácil manutenção.
  • Quatro Pilares da POO:
    • Encapsulamento: Protege os dados internos dos objetos, permitindo acesso somente por meio de métodos definidos.
    • Abstração: Simplifica a complexidade, focando nos aspectos essenciais e ignorando detalhes irrelevantes.
    • Herança: Permite que classes derivadas herdem atributos e comportamentos de classes base, promovendo a reutilização de código.
    • Polimorfismo: Habilidade de diferentes classes responderem de maneira própria a métodos com a mesma assinatura, facilitando o tratamento uniforme de objetos.
  • Conceitos Complementares:
    • Classes e Objetos: As classes servem como moldes (receitas) para a criação de objetos concretos.
    • Métodos: Funções internas às classes que definem o comportamento dos objetos.
    • Padrões de Projeto e Princípios SOLID: Orientam o design de software para garantir sistemas flexíveis e manuteníveis, exemplificados por padrões criacionais, estruturais e comportamentais.
  • Atividades Práticas:
    • Exercícios de definição e criação de classes com atributos e métodos (exemplo: classe “Cachorro” e objeto “Bidu”).
    • Divisão de um contexto (como um sistema de gerenciamento de pedidos) em classes, estabelecendo relacionamentos e métodos apropriados, com elaboração de resposta em formato de e-mail.

VI. Técnicas de Elicitação de Requisitos

(Base: [SIS]ANO1C3B1S6A1.pdf ​, [SIS]ANO1C3B1S6A2.pdf ​, [SIS]ANO1C3B1S6A3.pdf ​)

  • Aula 1 – Fundamentos da Elicitação:
    • Definição e importância da elicitação de requisitos para o sucesso dos projetos.
    • Diferença entre requisitos de usuário, sistema e funcionais.
    • Técnicas básicas como entrevistas, questionários, workshops e observação para coletar informações.
    • Enfoque na validação e negociação dos requisitos para assegurar que reflitam as reais necessidades dos stakeholders.
  • Aula 2 – Estratégias Avançadas:
    • Uso de modelagem e prototipagem para visualizar e testar funcionalidades antes da implementação.
    • Análise de stakeholders para identificar e envolver todas as partes impactadas.
    • Aplicação de técnicas de elicitação em metodologias ágeis, com ciclos iterativos, uso de User Stories, backlog grooming e feedback contínuo.
    • Atividade prática: criação de um questionário, diagrama de fluxo e esboço de agenda para um evento, consolidando as informações necessárias.
  • Aula 3 – Comunicação, Colaboração e Gestão de Conflitos:
    • Importância das habilidades de comunicação (escuta ativa, feedback construtivo, clareza e uso de ferramentas visuais) durante a elicitação.
    • Condução de workshops para reunir stakeholders e definir requisitos de forma colaborativa.
    • Técnicas para identificar e resolver conflitos que podem surgir durante a coleta dos requisitos.
    • Atividade prática: simulação de resposta a um e-mail de conflito, propondo um plano de ação para alinhar as expectativas da equipe.

VII. Modelagem de Dados Relacional

(Base: [SIS]ANO1C3B1S8A1.pdf ​, [SIS]ANO1C3B1S8A2.pdf ​, [SIS]ANO1C3B1S8A3.pdf ​)

  • Aula 1 – Fundamentos da Modelagem Relacional:
    • Introdução à modelagem relacional, definindo conceitos básicos como entidades, atributos, chaves primárias e estrangeiras.
    • Explicação do processo de normalização, visando minimizar a redundância e garantir a integridade dos dados.
    • Exemplos práticos (como a modelagem de um banco de dados escolar com entidades “Estudante” e “Curso”).
  • Aula 2 – Técnicas de Relacionamento e Integridade:
    • Detalhamento dos tipos de relacionamentos: um-para-um, um-para-muitos e muitos-para-muitos.
    • Abordagem sobre como modelar associações e a importância da integridade referencial, garantindo que as chaves estrangeiras referenciem registros válidos.
    • Atividade prática: elaboração de um modelo para um novo recurso (exemplo: integração de “Evento de Curso” com a entidade “Alunos”) com a definição dos relacionamentos e, quando necessário, a criação de tabelas de associação.
  • Aula 3 – Técnicas Avançadas e Tendências:
    • Discussão sobre estratégias avançadas, como a desnormalização, quando e como aplicá-la para melhorar o desempenho das consultas.
    • Utilização de índices para otimizar a performance e considerações para adaptação da modelagem relacional em contextos de Big Data.
    • Atividade prática: planejamento de uma estratégia de desnormalização para um cenário onde o desempenho das consultas está comprometido, com discussão dos impactos e vantagens da técnica.

Esses novos tópicos ampliam os conhecimentos anteriores, reforçando tanto a importância de técnicas eficazes para a coleta de requisitos (desde os fundamentos até estratégias avançadas e resolução de conflitos) quanto os princípios e técnicas avançadas para modelar dados de forma relacional, garantindo a integridade e o desempenho dos bancos de dados. Conforme forem enviados novos materiais, podemos continuar atualizando e complementando este resumão.

Desenvolvimento de Software treinamentos
Resumão da aula de Carreira e Competências para o Mercado de Trabalho.

1. Autoconhecimento e Autoavaliação

  • Conceito: Processo de se conhecer profundamente, identificando suas experiências, conquistas, pontos fortes e áreas para melhoria.
  • Ferramentas Utilizadas:
    • Linha do Tempo: Registra os marcos e momentos importantes da vida para entender a própria história.
    • Diário de Autoconhecimento: Permite reflexões diárias sobre metas, sucessos e aprendizados.
  • Importância: Base para o desenvolvimento pessoal e profissional, pois facilita a tomada de decisões e o autodesenvolvimento.


2. Testes de Personalidade

  • Exemplo Principal: O teste das 16 personalidades (MBTI).
  • Conceito: Classifica o perfil pessoal com base em dimensões como extroversão/introversão, sensação/intuição, entre outras.
  • Objetivo: Auxiliar na compreensão do próprio perfil e orientar escolhas profissionais e comportamentais.


3. Inteligência Emocional

  • Definição: Capacidade de reconhecer, compreender e gerenciar as próprias emoções e as dos outros.
  • Referência Clássica: Daniel Goleman, que destaca a importância da autogestão emocional e do autoconhecimento para manter o equilíbrio diante de desafios.
  • Aplicação: Melhora relacionamentos, facilita a resolução de conflitos e potencializa o desempenho no ambiente profissional.


4. Matriz SWOT Pessoal

  • Conceito: Ferramenta de análise estratégica que divide os aspectos pessoais em:
    • Forças (Strengths)
    • Fraquezas (Weaknesses)
    • Oportunidades (Opportunities)
    • Ameaças (Threats)
  • Objetivo: Auxiliar na identificação de aspectos internos (que você pode controlar) e externos (que podem ser aproveitados ou minimizados) para o autodesenvolvimento.


5. Mandala Ikigai

  • Conceito: Ferramenta de autoconhecimento originária do Japão que ajuda a encontrar o propósito de vida (o “razão de ser”).
  • Componentes:
    • O que amo fazer: Atividades que trazem alegria e satisfação.
    • O que faço bem: Habilidades e talentos pessoais.
    • Pelo que posso ser pago: Atividades que podem ser transformadas em fonte de renda.
    • Do que o mundo precisa: Contribuições que impactam positivamente a sociedade.
  • Objetivo: Identificar a interseção desses elementos para descobrir seu Ikigai.


6. Pitch Pessoal e Marca Pessoal

  • Pitch Pessoal:
    • Definição: Uma apresentação breve (discurso de elevador) que resume sua história, habilidades e experiências de forma clara e impactante.
    • Objetivo: Criar uma boa primeira impressão em entrevistas, reuniões e networking.
  • Marca Pessoal:
    • Definição: A imagem e identidade que você constrói profissionalmente com base em seu autoconhecimento e no modo como comunica sua história.


7. Habilidades e Competências para o Mercado de Trabalho

  • Habilidades Técnicas (Hard Skills):
    • Definição: Conhecimentos e capacidades específicas adquiridos por meio de formação e experiência (ex.: domínio de uma linguagem de programação, Excel avançado).
  • Habilidades Socioemocionais (Soft Skills):
    • Definição: Habilidades interpessoais e comportamentais, como comunicação, resiliência, empatia e trabalho em equipe.
  • Competência (Modelo CHA):
    • Definição: Conjunto integrado de Conhecimento, Habilidade e Atitude, que resulta em desempenho eficaz.
  • Ferramenta – Árvore de Competências:
    • Conceito: Representação visual onde:
      • Raízes: Competências fundamentais.
      • Tronco: Competências gerais.
      • Galhos: Competências específicas.
      • Frutos: Resultados alcançados.
      • Solo: Ambiente organizacional que influencia o desenvolvimento.

8. Iniciação Empreendedora

  • Conceito de Empreendedorismo:
    • Trata-se de identificar oportunidades, assumir riscos e transformar ideias em negócios ou iniciativas que gerem valor econômico e/ou social.
    • Envolve o entendimento histórico do termo, suas origens e a evolução do conceito – desde os primeiros registros até a visão moderna, ligada à inovação e à transformação de mercados.
  • Tipos de Empreendedorismo:
    • Por Necessidade: Quando o empreendedor se lança no mercado por falta de oportunidades no trabalho formal ou para suprir necessidades básicas.
    • Por Oportunidade: Motivado pela identificação de uma demanda ou desejo de inovar, criando soluções a partir de oportunidades percebidas no mercado.
    • Empreendedorismo Social: Focado em gerar impacto social, resolvendo problemas como acesso à educação, saúde, ou sustentabilidade, muitas vezes com um modelo de negócio híbrido que une lucro e valor social.
  • Perfis de Empreendedor:
    • Diversos perfis são apresentados, como o empreendedor nato, o idealista, o situacionista, o herdeiro, entre outros, cada um com motivações e características específicas.
    • Atividades em sala incentivam os alunos a refletirem sobre seus próprios perfis por meio de quizzes e debates, relacionando-os com exemplos práticos da área de Desenvolvimento de Sistemas.

9. Interesses x Competências

  • Definição e Distinção:
    • Interesses: São as áreas, atividades ou assuntos pelos quais você é apaixonado e que despertam sua curiosidade. Exemplo: gostar de tecnologia, arte ou esportes.
    • Competências: São as habilidades e conhecimentos que você desenvolveu ao longo do tempo – técnicas, socioemocionais e práticas – que lhe permitem executar tarefas com eficácia.
  • Ferramenta de Alinhamento com a Pirâmide de Maslow:
    • A Pirâmide de Maslow é utilizada para identificar as necessidades básicas e superiores. Ao compreender essas necessidades, é possível alinhar seus interesses pessoais às competências profissionais, de modo que o trabalho não só satisfaça demandas básicas (como segurança e estabilidade), mas também contribua para a autorrealização.
  • Aplicação Prática:
    • Atividades em sala incluem a criação de mapas conceituais, a definição de metas (usando ferramentas como o 5W2H) e o desenvolvimento de uma linha do tempo que ilustre o caminho futuro da carreira, integrando interesses e competências.

10. Autoconhecimento Profissional e Estilos de Trabalho

  • Conceito de Autoconhecimento Profissional:
    • Envolve compreender suas habilidades, interesses, valores e preferências no ambiente de trabalho para tomar decisões de carreira mais alinhadas com seu perfil.
    • Diferencia-se do autoconhecimento pessoal, pois foca especificamente nas competências e atitudes que influenciam o desempenho profissional.
  • Estilos de Trabalho:
    • São as preferências individuais sobre como se trabalhar melhor – seja em equipe, de forma individual ou adotando um estilo integrador que combine ambos.
    • Ferramentas, como o teste de estilo de trabalho da Fundação Estudar, ajudam a identificar características como agilidade, atenção aos detalhes, orientação para resultados, entre outros.
  • Jornada do Autoconhecimento Profissional:
    • Atividades práticas, como a “Jornada do Autoconhecimento Profissional”, guiam os alunos por meio de estações (como a criação de uma mandala profissional) onde eles refletem sobre seus pontos fortes, preferências e objetivos.
    • Essa prática estimula a integração de diversos instrumentos de autoconhecimento (Mandala Ikigai, SWOT, Linha do Tempo, Elevator Pitch) para construir uma visão mais clara sobre o futuro profissional e facilitar a escolha de ambientes de trabalho compatíveis.
  • Pesquisa e Mapeamento de Oportunidades:
    • Além do autoconhecimento, é enfatizada a importância de pesquisar as profissões e empresas de interesse, utilizando recursos como a Classificação Brasileira de Ocupações (CBO) e mapas conceituais para organizar informações sobre missão, visão e valores das organizações.
    • Essa abordagem prepara os alunos para criar um portfólio e um planejamento estratégico para a carreira, fundamentado na autoavaliação e no entendimento do mercado.

11. Habilidades Empreendedoras e Mentalidade de Crescimento

  • Definição e Importância:
    Esta seção enfatiza que o empreendedorismo não se resume apenas a uma ideia brilhante, mas envolve desenvolver um conjunto de habilidades que podem ser aprimoradas com esforço contínuo.
  • Elementos-Chave:
    • Mindset de Crescimento: A crença de que é possível aprender, adaptar-se e evoluir, transformando desafios em oportunidades.
    • Exemplos Práticos: São apresentados casos, como o de Anna Lisboa, que, ao enfrentar dificuldades, inovou (por exemplo, ao utilizar estratégias digitais para expandir seu negócio).
    • Ferramentas de Autoconhecimento: O Canvas Pessoal é introduzido como uma ferramenta visual que ajuda a mapear habilidades, valores e metas, facilitando a construção de um “modelo de negócio pessoal”.
  • Objetivo:
    Capacitar os alunos a reconhecerem suas potencialidades e a desenvolver atitudes empreendedoras para aplicar em iniciativas pessoais ou em empreendimentos sociais.




12. Panorama Atual e Tendências do Mercado de Trabalho

  • Mudanças e Transformações:
    Esta parte aborda as significativas transformações no ambiente profissional, destacando a evolução do contexto de trabalho e a necessidade de adaptação contínua.
  • Conceitos Fundamentais:
    • Mundo VUCA versus Mundo BANI:
      • VUCA descreve um cenário de Volatilidade, Incerteza, Complexidade e Ambiguidade, enquanto
      • BANI – um conceito mais atual – ressalta um ambiente Frágil, Ansioso, Não Linear e Incompreensível, enfatizando a imprevisibilidade e a necessidade de resiliência.
    • Novos Modelos de Trabalho:
      • A emergência de conceitos como anywhere office e o perfil do profissional slash mostram que hoje a flexibilidade, a capacidade de adaptação e a integração de múltiplas habilidades são essenciais para prosperar.
    • Empregabilidade e Trabalhabilidade:
      • São discutidas as diferenças entre estar preparado para o mercado (empregabilidade) e a capacidade de criar múltiplas fontes de renda (trabalhabilidade), refletindo a importância de se atualizar constantemente.
  • Estratégias para o Futuro:
    Os alunos são incentivados a desenvolver planos para a progressão profissional, alinhando suas competências com as demandas de um mercado em rápida evolução e integrando aspectos tecnológicos, sociais e econômicos.




Esses tópicos ampliam a jornada de autoconhecimento e orientação profissional, preparando os alunos para enfrentar os desafios do mundo empreendedor e se adaptar às tendências do mercado de trabalho contemporâneo.

treinamentos
Principais Jargões

1. Levantamento de Requisitos

  • Fundamentos e Importância:
    Os documentos iniciais apresentam a importância de levantar os requisitos para o desenvolvimento de software, garantindo que as necessidades dos usuários e do negócio sejam capturadas de forma clara.
  • Requisitos Funcionais vs. Não Funcionais:
    São abordadas as diferenças entre requisitos que definem “o que” o sistema deve fazer (funcionais) e aqueles que especificam “como” o sistema deve se comportar (não funcionais).
  • Gestão de Mudanças:
    São apresentadas estratégias para identificar, avaliar e mitigar os riscos decorrentes de alterações nos requisitos, além de práticas para comunicação efetiva entre stakeholders.

2. Testes de Software e Testes Funcionais

  • Objetivos dos Testes:
    Os PDFs dedicados aos testes enfatizam que os testes funcionais têm o papel de validar se o software cumpre os requisitos estabelecidos, enquanto os testes não funcionais avaliam aspectos como desempenho, segurança, usabilidade e confiabilidade.
  • Metodologias e Ferramentas:
    São comparadas abordagens tradicionais (modelo cascata) e ágeis (sprints, integração contínua) e destacadas ferramentas para automação e gestão de testes, como Selenium, JUnit, Jenkins, entre outras.
  • Processo de Teste:
    O ciclo de testes inclui planejamento, preparação do ambiente, execução, registro de defeitos e elaboração de relatórios, com ênfase na importância dos testes de regressão para assegurar que novas alterações não prejudiquem funcionalidades já consolidadas.

3. Técnicas de Elicitação de Requisitos

  • Técnicas Avançadas:
    São exploradas técnicas para coletar requisitos de forma eficaz, como entrevistas, questionários, workshops e sessões de brainstorming, que ajudam na modelagem e prototipagem dos requisitos.
  • Análise de Stakeholders:
    Aborda o processo de identificar, envolver e analisar as expectativas de todos os envolvidos no projeto, garantindo que os requisitos coletados sejam completos e alinhados às necessidades do negócio.
  • Comunicação e Colaboração:
    Destaca a importância da comunicação clara, da escuta ativa e do uso de ferramentas visuais para facilitar o entendimento e a resolução de conflitos durante a elicitação.

4. Modelagem de Dados Relacional

  • Conceitos Básicos:
    Os documentos sobre modelagem de dados explicam os fundamentos dos bancos de dados relacionais, incluindo a definição de entidades (objetos ou conceitos do mundo real) e atributos (propriedades que descrevem as entidades).
  • Relacionamentos e Integridade:
    São detalhados os tipos de relacionamentos (um-para-um, um-para-muitos e muitos-para-muitos) e a importância das chaves primárias e estrangeiras para manter a integridade referencial entre as tabelas.
  • Normalização e Desnormalização:
    A normalização é apresentada como método para minimizar redundâncias e dependências, enquanto a desnormalização é discutida como uma técnica para melhorar o desempenho das consultas em situações específicas.
  • Técnicas Avançadas e Tendências:
    São abordadas também técnicas de indexação e adaptações para modelagem de dados em ambientes de Big Data, evidenciando a evolução e as demandas modernas dos sistemas de banco de dados.

Considerações Finais

Esses PDFs formam uma base abrangente para o desenvolvimento de sistemas, abrangendo desde a coleta e gestão dos requisitos até a validação através de testes e a correta modelagem dos dados que suportam o sistema. Cada conjunto de documentos foca em uma etapa crucial do ciclo de vida do software, enfatizando metodologias ágeis e práticas modernas que garantem a qualidade, a eficiência e a adaptabilidade dos projetos de desenvolvimento.

Este resumo integra os conceitos e técnicas apresentados, servindo como um guia geral sobre os fundamentos do levantamento de requisitos, testes de software, técnicas de elicitação e modelagem de dados relacionais.

Jargões

  • Requisitos Funcionais:
    Especificam as funcionalidades que o sistema deve oferecer – o “o que” o software deve fazer.
  • Requisitos Não Funcionais:
    Definem os atributos de qualidade do sistema, como desempenho, segurança, usabilidade e confiabilidade – o “como” o sistema deve se comportar.
  • Stakeholders:
    Todas as partes interessadas no projeto, como clientes, usuários, desenvolvedores e gestores, que têm influência ou são impactados pelo sistema.
  • Elicitação de Requisitos:
    Processo de coleta, análise e validação das necessidades e expectativas dos stakeholders para definir os requisitos do sistema.
  • Modelagem e Prototipagem:
    Técnicas utilizadas para criar representações visuais ou funcionais do sistema (por meio de diagramas, wireframes ou protótipos) antes de sua implementação.
  • Workshops de Requisitos:
    Sessões colaborativas com os stakeholders para discutir, definir e priorizar os requisitos do projeto.
  • Brainstorming:
    Técnica de geração de ideias de forma colaborativa para identificar possíveis requisitos e soluções.
  • CI/CD (Integração Contínua/Entrega Contínua):
    Práticas que permitem testar, integrar e entregar alterações de forma automatizada e contínua, facilitando a manutenção e a evolução do software.
  • Testes Funcionais:
    Conjunto de testes que verificam se as funcionalidades do sistema estão de acordo com os requisitos estabelecidos.
  • Testes Não Funcionais:
    Avaliam aspectos como desempenho, segurança, usabilidade e confiabilidade, que não estão diretamente relacionados às funcionalidades.
  • Testes de Regressão:
    Testes repetidos após alterações no sistema para garantir que funcionalidades já implementadas não foram comprometidas.
  • Automação de Testes:
    Uso de ferramentas (como Selenium, JUnit, Jenkins) para executar testes de forma automática, aumentando a eficiência e a repetibilidade do processo.
  • Modelagem de Dados Relacional:
    Técnica para estruturar bancos de dados relacionais por meio da definição de entidades, atributos e relacionamentos, garantindo integridade e eficiência no armazenamento.
  • Entidades e Atributos:
    • Entidades: Representam objetos ou conceitos do mundo real (ex.: Estudante, Curso).
    • Atributos: São as características ou propriedades que descrevem as entidades (ex.: Nome, Data de Nascimento).
  • Chaves Primárias e Estrangeiras:
    • Chave Primária: Atributo único que identifica cada registro de uma tabela.
    • Chave Estrangeira: Atributo que cria uma ligação entre duas tabelas, referenciando a chave primária de outra.
  • Normalização e Desnormalização:
    • Normalização: Processo de organizar dados para minimizar redundâncias e dependências indesejadas.
    • Desnormalização: Técnica que reintroduz redundância de forma controlada para melhorar o desempenho das consultas.
  • Indexação:
    Criação de índices nas tabelas para acelerar a busca e recuperação de dados.
  • MER/DER (Modelo/Diagrama Entidade-Relacionamento):
    Representações gráficas que ilustram as entidades, os atributos e os relacionamentos em um banco de dados.
  • Big Data:
    Termo que se refere ao tratamento e análise de grandes volumes de dados, muitas vezes exigindo tecnologias e modelos de dados adaptados às altas escalas.

Esses termos formam a base da terminologia utilizada nos processos de levantamento de requisitos, testes de software e modelagem de dados, fundamentais para o desenvolvimento de sistemas robustos e eficientes.

Estrangeirismos e seus significados

Stakeholders:
Partes interessadas no projeto (ex.: clientes, usuários, equipe técnica) que têm impacto ou são impactados pelo produto.

CI/CD (Continuous Integration/Continuous Delivery):
Práticas de Integração Contínua e Entrega Contínua que automatizam a compilação, testes e implantação de software, permitindo entregas frequentes e seguras.

Scrum:
Metodologia ágil de gerenciamento de projetos, focada em ciclos curtos de desenvolvimento (sprints) e colaboração intensa entre os membros da equipe.

Kanban:
Método ágil que utiliza cartões e quadros visuais para gerenciar e otimizar o fluxo de trabalho, permitindo a visualização e controle das tarefas em andamento.

Brainstorming:
Técnica de geração de ideias em grupo, onde os participantes contribuem livremente com sugestões para solucionar problemas ou definir requisitos.

Workshop:
Sessão colaborativa e prática, geralmente realizada com stakeholders, para discutir, definir e priorizar requisitos ou soluções.

Selenium:
Ferramenta de automação utilizada para testar aplicações web, simulando interações de usuários em navegadores.

JUnit:
Framework para testes unitários em aplicações Java, ajudando a validar a funcionalidade de pequenas partes do código.

Jenkins:
Ferramenta de automação para integração contínua, que permite executar testes e implantar software automaticamente após alterações no código.

Big Data:
Conjunto de dados de grande volume, variedade e velocidade, que exige tecnologias e abordagens específicas para armazenamento, processamento e análise.

MER (Modelo de Entidade-Relacionamento):
Representação gráfica dos dados (entidades, atributos e relacionamentos) utilizada para estruturar bancos de dados relacionais.

DER (Diagrama de Entidade-Relacionamento):
Diagrama que ilustra as entidades de um sistema, seus atributos e como estão inter-relacionadas, auxiliando no design do banco de dados.

Feedback:
Retorno de informações, críticas ou avaliações que ajudam a ajustar e melhorar processos ou produtos.

Prototype (Prototipagem):
Criação de um modelo inicial (wireframe, mockup ou versão funcional simplificada) do sistema, usado para testar conceitos e obter feedback dos usuários.

Regression Testing (Testes de Regressão):
Conjunto de testes realizados após alterações no sistema para garantir que funcionalidades já implementadas não foram afetadas negativamente.

Normalization (Normalização):
Processo de organização dos dados em um banco de dados para reduzir redundâncias e garantir a integridade dos dados.

Desnormalization (Desnormalização):
Técnica que reintroduz redundância de forma controlada para melhorar a performance de consultas em determinadas situações.

ZABBIX
Integração Zabbix/Lazarus

Integrar o zabbix, com lazarus não é tarefa fácil.

Segue exemplo de código de integração:

function TdmBanco.CheckLogin(llogin: string; lsenha: string): boolean;
var
  lRequestData, lResponseData: RawByteString;
  jsonResponse: TJSONData;
  LURL: string;
  info : string;
begin
  Result := False;
  if (FURL <> '') then
  begin
    LURL := FURL + '/api_jsonrpc.php';
    login := llogin;
    senha := lsenha;
    try
         // Limpa headers existentes
         lHTTP1.RequestHeaders.Clear;
         // Adiciona parâmetros na header usando Add
         lHTTP1.RequestHeaders.Add('Content-type:application/json');
         info := '{"jsonrpc":"2.0","method":"user.login","params":{ "user":"'+llogin+'","password":"'+lsenha+'"},"auth":null,"id":0}';
         // Cria o corpo da requisição no formato application/x-www-form-urlencoded
         lHTTP1.RequestBody := TStringStream.Create(info );

         // Realiza a solicitação POST e obtém a resposta como RawByteString
         lRequestData := lHTTP1.Post(LURL);

         // Captura os cookies da resposta
         Fcookies := TStringList.Create;


         // Processa a resposta JSON
         jsonResponse := GetJSON(lRequestData);
         Fcookies.Assign(lHTTP1.Cookies); // Assume que ResponseCookies armazena os cookies recebidos

         // Armazena o cookie de autenticação
         if jsonResponse.FindPath('result') <> nil then
         begin
           token := jsonResponse.FindPath('result').AsString ;
           fid := jsonResponse.FindPath('id').AsString;
           MessageHint('Autenticação realizada com sucesso!');
         end
         else
         begin
           token := '';
           erro := 'Falha na autenticacao';
           MessageHint(erro);
           FflgErro:= true;
         end;

         if(jsonResponse.FindPath('erro') <> nil) then
         begin
           erro := jsonResponse.FindPath('erro').AsString;
           FflgErro := true;
         end;

         if(token <> '') then
         begin
           Result := True;
         end;

    finally
      jsonResponse.Free;
    end;
  end;
end;     
KICAD
Gerando Arquivos Gerber no KICAD

No nosso ultimo artigo, criamos uma placa PCB no KICAD.

Os procedimentos a seguir foram desenvolvidos em uma máquina LINUX, porem são válidos também para MAC ou Windows.

Desenvolvimento da placa PCB no KICAD, visão geral.

Agora iremos preparar os arquivos para enviar para o CNC. Os arquivos Gerber.

Primeiro iremos entender porque e como estes arquivos funcionam.

Arquivo Gerber

Os arquivos Gerber, são um padrão na indústria de eletrônicos para a fabricação de placas de circuito impresso (PCBs).

Eles são essenciais no processo de fabricação de PCBs, incluindo a etapa de usinagem CNC (Controle Numérico Computadorizado).

Vamos explorar em detalhes o que são os arquivos Gerber e como eles são utilizados no contexto de CNC para fabricação de placas.

O que são Arquivos Gerber?

  1. Definição: Arquivos Gerber são arquivos de imagem vetorial usados para descrever as várias camadas de uma PCB, incluindo trilhas de cobre, máscara de solda, serigrafia, entre outros.
  2. Formato Padrão: Eles são o padrão de facto na indústria para transferir informações de design de PCB para o fabricante. O formato mais comum atualmente é o “RS-274X”.
  3. Conteúdo dos Arquivos: Cada arquivo Gerber representa uma única camada da placa. Por exemplo, você terá um arquivo para a camada superior de cobre, um para a camada inferior, um para a máscara de solda, etc.

Uso de Arquivos Gerber em CNC

  1. Preparação para a Usinagem: No contexto do CNC, os arquivos Gerber são utilizados para guiar as máquinas na usinagem das trilhas de cobre e na perfuração dos orifícios necessários na PCB.
  2. Conversão para G-Code: Para serem usados em máquinas CNC, os arquivos Gerber geralmente são convertidos em G-Code, que é a linguagem que a máquina CNC entende para realizar operações de corte e gravação.
  3. Software Específico: Existem softwares específicos que podem fazer essa conversão e gerar os caminhos de ferramentas para a máquina CNC com base nos arquivos Gerber.
  4. Precisão e Detalhes: A precisão dos arquivos Gerber é crucial, pois qualquer erro ou imprecisão pode resultar em uma placa de circuito defeituosa ou inutilizável.

Importância dos Arquivos Gerber

  1. Padronização: Facilitam a comunicação entre o designer da PCB e o fabricante, pois são amplamente aceitos e compreendidos na indústria.
  2. Redução de Erros: Minimizam a possibilidade de erros de interpretação, pois contêm informações detalhadas e precisas sobre cada aspecto da placa.
  3. Flexibilidade: Permitem que os designers usem o software de design de PCB de sua escolha, já que a maioria dos softwares pode gerar arquivos Gerber.

Os arquivos Gerber são essenciais na fabricação de PCBs, especialmente quando se trata de usinagem CNC.

Eles não apenas garantem que a placa de circuito seja fabricada conforme o design original, mas também proporcionam um meio padronizado e eficiente de comunicação entre o design e a fabricação. A habilidade de converter esses arquivos em G-Code de forma precisa é fundamental para o sucesso na produção de PCBs usando máquinas CNC.

Criando no KICAD

Após a criação da placa no schema, e depois a elaboração da mesma no editor de PCI, iremos voltar ao editor de PCI e selecionar a opção ARQUIVO> Plote, conforme figura abaixo:

Ao clicar, surgirá uma tela, conforme apresentado a seguir:

Nela existem as camadas pré selecionadas, que foram modificadas no seu projeto, por isso normalmente não é necessário modificar ou incluir estas camadas.

Em opções Gerber, selecione CRIAR ARQUIVO DE TRABALHO GERBER, pois irá gerar os arquivos relacionados.

Em PASTA DE DESTINO, selecione onde quer que o KICAD armazene seus projetos de GERBER.

Por fim , click em CRIAR ARQUIVOS DE PERFURAÇÃO , que irá gerar os arquivos DRIL, que são responsáveis pelos chanfros das placas.

Na tela acima, será necessário, indicar o FORMATO DO ARQUIVO DE MAPEAMENTO para POSTSCRIPT, e selecionar unidade de furação em milimetros, indicando tambem a pasta onde será criado os arquivos.

Por fim, click em GERAR UM ARQUIVO DE PERFURAÇÃO,

Pronto, voce já tem os arquivos para envio ou usinagem de sua placa.

Os mesmos estão na pasta indicada por voce.

No meu caso esta no caminho a cima.

No nosso próximo artigo, irei usinar a PCB em um CNC ROUTER, demonstrando como faze-lo.

Grande abraço.

KICAD PCB
Fazendo minha primeira PCB no KICAD

No artigo:

Eu criei uma PCB usando o EAGLE, agora irei usar o KICAD, para fazer o mesmo projeto.

Instalando o KICAD

O primeiro passo é entrar no link, e baixar o kicad:

https://www.kicad.org/

Para isso basta, selecionar DOWNLOAD, e baixar a versão que é compatível com seu sistema operacional.

Após baixar, instale, seguindo o padrão NEXT, NEXT , FINISHED

Pronto vc tem o kicad em sua maquina.

Divisão

O KICAD como a maioria dos software de desenho de circuitos, tem dois grandes grupos.

Schema – Que é a visão do esquemático da placa, ou seja, os componentes e suas ligações.

PCB – O PCB é a visão da placa, onde vc materializa como será sua placa, ja conhecendo seus componentes do Schema.

Iremos apresentar cada etapa deste processo neste artigo.

Schema

Iremos ver os detalhes do desenvolvimento do schema, através deste vídeo.

Schema com KICAD

O Schema é possível adicionar os componentes e fazer as ligações entre eles.

Para adicionar um novo componente, utilizamos o simbolo ao lado.

Nele ao clicarmos abrirá uma caixa de listagem de componentes.

Onde é possível pesquisar os diversos tipos de componentes, a fim de construir a pcb.

Usaremos para isso, o pin head (pinhd , porem usaremos o modelo 1×5 ou seja o modelo com uma barra de 5 pinos.

Que será montada, algo como isso.

No próximo artigo iremos apresentar detalhes sobre o desenvolvimento da segunda parte.

Onde apresentaremos a montagem da placa.

Alias essa opção, pode ser alcançada, selecionando o componente e clicando 2 vezes. Dai seleciona-se o botão Mostre o visualizador 3D.

Conforme figura abaixo:

Após colocar a partes no schema, ficará como se segue:

Agora é só fazer as ligações entre os conectores, para isso usaremos o conector de fio.

Agora é só selecionar e fazer as ligações eletricas.

Este é o layout finalizado do circuito.

Pronto com isso salvamos o projeto, e iremos partir para a pcb.

PCB

Agora fechamos a janela do schema, e voltamos a ver a janela do projeto do kicad.

Selecionaremos agora o pcb, pois iremos construir a placa de circuito impresso.

O que visualizaremos, é uma tela como a seguir:

Nela incluiremos os componentes que incluimos no schema, para isso iremos pressionar o botão Atualize a PCI com as alterações fitas no Schema.

Ao faze-lo os componentes aparecem em sua pcb para serem incluídos na placa.

Agora iremos organiza-los e veremos algo como isso.

Já estamos na fase final do nosso projeto, bastando criar o espaço da placa e desenhar as wires.

Desenhando a placa

Agora irei montar a minha placa, ou seja definir os espaços físicos para a placa, para isso irei selecionar a camada Edge Cuts, e desenhar a placa.

Em seguida seleciono o retângulo e traço o mesmo ao redor da placa, ficando conforme se segue:

Desenhando as trilhas

Agora iremos desenhar as trilhas do nosso circuito.

Agora selecionamos a aparência do B.CU, para dizer que nossa camada é a trilha ou face onde esta o cobre.

Selecionando o botão roteia as trilhas, voce, consegue traçar as mesmas.

Ficando algo como se segue:

Porem ainda não esta bom, precisamos aumentar essa trilha, pois esta muito pequena. Para isso, dê um duplo click na trilha.

O Layout final, será como se segue:

Pronto agora é ir para o abraço.

Vamos olhar nossa placa, clicando em visualizar > Visualizador 3D

Este será nosso layout da placa final.

Por fim, observamos as trilhas ,no lado de traz da placa.

Vemos que alcançamos nosso objetivo.

Finalizando nossa placa.

Exportando para o CNC

Agora iremos selecionar a exportação do CNC.

Para tanto iremos em arquivo >Arquivo para fabricação > Gerber

Agora seleciona as camadas que deseja exportar e por fim o nome e o destino do arquivo.

Ficando conforme apresentado a seguir:

IA NLP NLP Sem categoria
Grafos Teoria e Prática – Parte III

Neste artigo que é continuação do publicado:

Fiz algumas alterações e postei no git:

https://github.com/marcelomaurin/grafo01

Como Tensorflow e keras2.ipnb

Neste projeto, ainda não tem na totalidade o tensorflow.

Porem fiz uma série de melhorias no processo do grafo que justifica sua reapresentação:

No processo de apresentação, havia esquecido de incluir a excessao no código o que não mostrava os erros ou famosos desvios.

O desvio era um else, que ao fim ficou como apresentado a seguir:

Foi incluido tambem uma rotina de Excessão ,que é gerado em outra lista, diferente da de treinamento.

Ainda sim, temos um resultado expressivo, onde temos sucesso na maioria dos comandos.

Seguiremos em breve com outros artigos.

pentaho SQL Power Architect
SQL Power Architect – Modelagem

A modelagem de dados pode ser utilizada através do SQL Power Architect, na qual apresentei sua instalação através do artigo:

Agora iremos montar tabelas, para nos auxiliar com os projetos de Data Warehouse.

Criação de Tabelas

Botão direito na area em branco, opção New Table ou Tecla T, arrastando o mouse para gerar o espaço da tabela.

Crie a tabela, através da janela:

Nova coluna

Selecione a tabela, na qual quer criar a coluna, pressione C ou botão direito, New Column.

Para criar uma nova coluna em uma tabela, preencha os dados abaixo:

Criar relacionamento entre tabelas

Para criar um relacionamento entre FK, basta clicar no botão

New Identifyng RelationShip, selecionando a tabela Pai, e em seguida a tabela filha.

Se o campo filho, virar PK, basta arrastar ele para baixo, que ele volta a ser FK.

Dicas pentaho SQL Power Architect
SQL Power Architect Instalando e Configurando

O SQL Power Architect é uma ferramenta em java para criar banco de dados, modelando as tabelas e criando seus relacionamentos.

Site:

https://bestofbi.com/architect-download/

Github do projeto:

https://github.com/SQLPower/power-architect

Documentação do software:

https://8hi8a2.p3cdn1.secureserver.net/wp-content/uploads/2022/10/SQLPowerArchitectUserGuide-1.0.0.pdf

Pré Requisitos

Exige instalação do java 8 64 para instalação

Exige driver jar do jdbc mysql

Configuração

Para configurar o JDBC é bem simples.

Entre na aplicação, selecione Connections > Database Connection Manager

Selecione o banco mysql, em seguida ADD JAR, selecionando seu arquivo JAR, que vc baixou anteriormente.

Ao finalizar ele inclui o jar e permite a conexão.

Testando conexão

Volte na criação de conexão e adicione uma nova , conforme apresentado a seguir:

Para finalizar o teste click em Test Connection

Funcionamento

Com isso ele cria estruturas semelhantes a esta:

maurinsoft.com.br