Especialidade de Desenvolvimento de Software
Atividades Profissionais
Requisitos
- Ter a especialidade de Computação V.
Resposta: Computação V ensina fundamentos avançados (lógica de programação, estruturas de dados, algoritmos básicos) que são pré-requisitos para Desenvolvimento de Software, especialidade focada em criação de programas reais. Sem essa base, conceitos como variáveis, loops, funções e ferramentas de desenvolvimento ficariam sem contexto. — A progressão pedagógica respeita complexidade crescente. Computação I-V cobre desde fundamentos até programação intermediária. Desenvolvimento de Software exige IDE, controle de versão (git), depuração e ciclo de vida de software. Sem domínio prévio de lógica e algoritmos, o desbravador travaria. Em camporis tech, oficinas escalonadas seguem essa lógica.
- Citar o que é um software e quais as suas funcionalidades para o controle e manipulação das informações.
Resposta: Software é o conjunto de instruções (programas) que dizem ao computador o que fazer. Suas funcionalidades incluem: armazenar informações em bancos de dados, processar dados (cálculos, transformações), apresentar resultados (interface), comunicar entre sistemas (redes/APIs) e automatizar tarefas repetitivas com regras lógicas. — Software difere de hardware (componentes físicos). Categorias: básico (sistemas operacionais), aplicativos (Word, Excel, jogos), embarcado (em eletrodomésticos). Linguagens (Python, JavaScript, Java) servem para criá-los. SaaS (Software as a Service) é modelo moderno baseado em nuvem. Sem software, hardware é inerte - é o que dá vida útil ao computador.
- Definir linguagem de programação e descobrir a diferença entre programação de alto e baixo nível.
Resposta: Linguagem de programação é o idioma usado para escrever software. Baixo nível (Assembly, Machine Code) é próxima ao hardware, rápida mas difícil. Alto nível (Python, Java, JavaScript) é próxima ao humano, fácil de ler e escrever, sendo traduzida pelo compilador ou interpretador para a máquina. — Baixo nível tem instruções diretas ao processador (MOV, ADD, JMP). Alto nível abstrai (print, if, for). Compilador (C, Rust) traduz tudo de uma vez; interpretador (Python) executa linha a linha. C é considerado nível médio (próximo do hardware mas portável). JavaScript domina a web; Python lidera ciência de dados; Java é robusto em corporações.
- Definir os seguintes tipos de estudos de programação:
- Programação estruturada
- Programação funcional
- Programação orientada a objetos
- Programação orientada a eventos
Resposta: 1) Programação estruturada: paradigma que organiza o código em três estruturas básicas de controle — sequência, decisão (condições, if/else) e repetição (loops) — evitando saltos desordenados (goto). Favorece a clareza e a manutenção. Exemplos de linguagens: C e Pascal. 2) Programação funcional: paradigma que trata as funções como cidadãs de primeira classe (podem ser passadas como argumentos e retornadas), enfatiza funções puras sem efeitos colaterais e a imutabilidade dos dados. Exemplos: Haskell e Lisp. 3) Programação orientada a objetos: paradigma que modela o problema por meio de objetos que reúnem dados (atributos) e comportamentos (métodos), usando conceitos como classes, herança, encapsulamento e polimorfismo. Exemplos: Java e Python. 4) Programação orientada a eventos: paradigma em que o fluxo do programa é determinado por eventos — ações do usuário (clique, tecla pressionada, movimento do mouse) ou mensagens do sistema — tratados por funções chamadas "manipuladores de eventos" (event handlers). Exemplo típico: JavaScript em páginas web. — Cada paradigma tem nicho ideal. Estruturada é base histórica. Funcional cresce em popularidade (Scala, Elixir). OOP domina software corporativo. Eventos rege interfaces gráficas e web. Linguagens modernas (Python, JavaScript) suportam múltiplos paradigmas. Conhecer cada um amplia ferramentas mentais do programador para resolver problemas diferentes.
- Definir os termos abaixo:
- Código binário
- Escopo
- Fluxograma
- Programação
- Base de dados
- Compilação
Resposta: 1) Código binário: forma mais básica de representação de dados e instruções no computador, usando apenas dois dígitos, 0 e 1 (bits). É a linguagem de máquina que o processador executa diretamente. 2) Escopo: alcance ou região do programa em que uma variável (ou identificador) é visível e pode ser usada. Pode ser global (acessível em todo o programa) ou local (acessível apenas dentro de um bloco ou função). 3) Fluxograma: representação gráfica da lógica ou do fluxo de um programa ou processo, usando símbolos padronizados (retângulos para ações, losangos para decisões, setas para o fluxo) que mostram a sequência de passos. 4) Programação: ato de escrever, em uma linguagem que o computador entenda, o conjunto de instruções (código) que define como o programa deve resolver um problema ou executar uma tarefa. 5) Base de dados: sistema ou conjunto organizado para armazenar, relacionar e recuperar informações de forma estruturada, geralmente gerenciado por um SGBD (Sistema de Gerenciamento de Banco de Dados), como MySQL ou PostgreSQL. 6) Compilação: processo de traduzir o código-fonte, escrito em uma linguagem de programação legível pelo ser humano, para código de máquina ou executável que o computador pode rodar. É feito por um programa chamado compilador. — Binário é base do hardware (cada bit é 0/1). Escopo evita conflitos entre variáveis (local vs global). Fluxograma usa símbolos padronizados (losango=decisão, retângulo=processo). SQL gerencia bancos relacionais. Compilação gera arquivos .exe ou .o. NoSQL (MongoDB, Redis) é alternativa moderna. Conhecer termos facilita comunicação técnica.
- Saber quais os principais passos para se criar um software.
Resposta: 1) Levantamento de requisitos (entender o problema). 2) Análise e modelagem (planejar arquitetura). 3) Codificação (escrever o código). 4) Testes (validar funcionamento). 5) Implantação (publicar para uso). 6) Manutenção (corrigir bugs e evoluir). Esses passos formam o ciclo de vida do desenvolvimento de software. — Modelos de ciclo de vida incluem cascata (waterfall), iterativo, ágil (Scrum, Kanban). Cada passo gera documentação. Testes incluem unitários (TDD), integração e usuário. Implantação usa CI/CD (Git, Jenkins, Docker). Manutenção é 60-70% do custo total. Em camporis tech, mini-projetos seguem esses passos para experiência prática real.
- Descrever o uso da UML para as fases de desenvolvimento de um software.
Resposta: UML (Unified Modeling Language) é a linguagem visual padrão para modelar software. Usa diagramas (caso de uso, classes, sequência, atividades) para documentar requisitos, projetar arquitetura e visualizar comportamento. Cada fase do desenvolvimento tem diagramas específicos que facilitam comunicação entre programadores e stakeholders. — UML foi padronizada pela OMG nos anos 1990. Tem 14 tipos de diagramas: estruturais (classes, componentes) e comportamentais (sequência, atividades). Ferramentas como StarUML, draw.io e PlantUML facilitam criação. Análise usa caso de uso; design usa classes; integração usa sequência. Documentação UML é viva e evolui com o projeto.
- Que técnicas são melhor aplicadas em desenvolvimento Ágeis? Apresentar um estudo de caso sobre essa técnica.
Resposta: As técnicas mais aplicadas em desenvolvimento Ágil são: Scrum (ciclos curtos chamados sprints, com papéis de Product Owner, Scrum Master e Time de Desenvolvimento, reuniões diárias e entregas incrementais); Kanban (quadro visual com colunas A Fazer / Fazendo / Feito e limite de trabalho em andamento); e XP / Extreme Programming (TDD, programação em par, integração contínua e releases frequentes). Estudo de caso: o Spotify adaptou o Scrum criando Squads (times pequenos e autônomos), Tribes, Chapters e Guilds, permitindo entregar funcionalidades com rapidez mantendo autonomia das equipes; outro exemplo é o uso de Scrum pela equipe que reduziu prazos e aumentou a qualidade entregando em sprints quinzenais. A parte de 'apresentar um estudo de caso' é a atividade prática associada. — Manifesto Ágil (2001) priorizou indivíduos sobre processos. Scrum tem cerimônias: planning, daily, review, retrospective. Kanban surgiu na Toyota. XP enfatiza qualidade técnica. Spotify, Netflix e Magazine Luiza usam Ágil. Sprints duram 1-4 semanas. User stories descrevem requisitos do ponto de vista do usuário final.
- Em quais projetos de desenvolvimento é possível aplicar o RUP e quais são suas fases.
Resposta: O RUP (Rational Unified Process) é aplicado em projetos de médio e grande porte, com requisitos complexos, equipes maiores e necessidade de documentação detalhada e rastreabilidade — por exemplo sistemas bancários, ERPs, sistemas governamentais e softwares críticos. Suas quatro fases são: 1) Concepção/Iniciação (definir escopo, visão e viabilidade), 2) Elaboração (definir a arquitetura e mitigar os principais riscos), 3) Construção (codificar e testar a maior parte do sistema) e 4) Transição (entregar o produto ao usuário, treinar e ajustar). Cada fase é desenvolvida em iterações. — RUP foi criado pela Rational (IBM) baseado em UML. É iterativo e incremental, com workflows (modelagem de negócio, requisitos, análise, implementação, testes). Mais pesado que Scrum, mas garante rigor. Adequado para projetos com regulamentação (saúde, finanças, governo). Hoje em desuso parcial substituído por métodos ágeis em projetos menores e mais dinâmicos.