Computer Science › Software + Computação Distribuída

Engenharia de Software

0 de 29
  1. Dívida Técnica e Economia de Engenharia

    O próprio relatório de experiência de 1992 de Ward Cunningham, sobre um sistema real que ele estava construindo (WyCash), cunhou a metáfora da dívida técnica com uma estrutura econômica real e precisa: um principal (o atalho tomado), uma taxa de juros (o custo contínuo e recorrente de conviver com ele, que genuinamente se compõe quanto mais tempo permanece não pago) e um mecanismo de quitação, uma reescrita deliberada, que a refatoração é a versão concreta e formalizada de.

    Ler →6 seções9 min
  2. Integração Contínua

    A Integração Contínua, pela própria definição precisa de Martin Fowler (creditada honestamente ao Extreme Programming de Kent Beck), significa que todo membro da equipe mescla mudanças numa linha principal compartilhada pelo menos diariamente, e todo merge dispara um build automatizado que testa a si mesmo feito para detectar erros de integração tão rápido quanto possível; as suas onze práticas concretas todas defendem uma propriedade: feedback rápido e confiável sobre se a linha principal ainda funciona.

    Ler →6 seções9 min
  3. Entrega Contínua e Implantação Contínua

    A distinção precisa de Fowler é exata: Entrega Contínua significa que toda mudança na linha principal é comprovada pronta para lançamento pelo pipeline, mas um humano ainda decide quando de fato lançar; a Implantação Contínua remove essa decisão inteiramente, lançando toda mudança verificada automaticamente, e estritamente exige a Entrega Contínua como a sua fundação.

    Ler →6 seções8 min
  4. Estágios do Pipeline de CI/CD e Builds Containerizados

    Um pipeline de CI/CD real é uma sequência estrita de estágios com portões, build, teste automatizado, empacotar, implantar, ordenada deliberadamente para que cada estágio pegue a classe mais barata de problema que consegue pegar antes de estágios mais caros rodarem; o estágio de empacotar numa imagem de contêiner é o que torna o artefato testado e o artefato implantado comprovadamente idênticos.

    Ler →6 seções8 min
  5. Estratégias de Implantação: Blue-Green e Canary

    A implantação blue-green mantém dois ambientes de produção completos e troca todo o tráfego entre eles num único cutover instantâneo, comprando rollback instantâneo e limpo; o lançamento canary em vez disso roteia uma fatia pequena e crescente de tráfego real para a nova versão primeiro, comprando detecção mais cedo de falhas que só se manifestam sob condições de produção reais; nenhuma estratégia é universalmente superior.

    Ler →6 seções8 min
  6. Observabilidade: Os Três Pilares

    A escrita de profissional de Cindy Sridharan popularizou o enquadramento agora padrão da observabilidade como três tipos de dados complementares: logs (eventos discretos e com timestamp carregando detalhe), métricas (medições numéricas agregadas revelando tendências e limiares de forma barata) e traces (o caminho causal de uma requisição por todo serviço que ela tocou); os três trabalham juntos numa ordem natural durante um incidente real.

    Ler →6 seções9 min
  7. Modelos de Processo de Software: Waterfall e a Sua História Real

    O modelo waterfall organiza um projeto numa sequência estrita e de mão única de fases, sem nenhum mecanismo projetado para revisitar uma fase anterior uma vez fechada; o artigo de 1970 de Winston Royce é a fonte citada para este diagrama, e, lido por completo, esse mesmo artigo chama a versão estrita de arriscada e recomenda a iteração que o modelo como comumente praticado carece, uma ironia histórica genuína.

    Ler →6 seções9 min
  8. Estimativa e Risco em Projetos de Software

    A Gestão de Engenharia de Software trata estimativa e risco como duas visões da mesma disciplina subjacente: representar incógnitas genuínas honestamente em vez de escondê-las dentro de um plano falsamente confiante; uma estimativa real é uma distribuição de probabilidade, não um único número, e um registro de riscos rastreia um tipo genuinamente diferente de incógnita, eventos específicos e identificáveis, cada um com uma probabilidade, um impacto e um dono nomeado.

    Ler →6 seções9 min
  9. Kanban e Processo Baseado em Fluxo

    O Método Kanban substitui o timebox fixo do Sprint do Scrum por um sistema de puxar contínuo: o trabalho se move por estágios nomeados, e um limite explícito de trabalho-em-progresso (WIP) em cada estágio é o mecanismo de fato que faz surgir um gargalo, forçando uma decisão visível no momento em que um estágio enche; o seu trade-off contra o Scrum é genuíno e simétrico.

    Ler →6 seções9 min
  10. Processos Ágeis: Scrum na Prática

    O Scrum, como definido pelo seu próprio guia oficial, prescreve exatamente três responsabilidades (Developers, Product Owner, Scrum Master), cinco eventos (o próprio Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective) e três artefatos (Product Backlog, Sprint Backlog, Increment); o Sprint como um timebox fixo é um trade-off genuíno e deliberado: cadência previsível de planejamento e revisão, ao custo de adiar trabalho recém-descoberto para o próximo Sprint.

    Ler →6 seções9 min
  11. Práticas de Extreme Programming

    As práticas concretas do XP (pair programming, test-first, integração contínua, refactoring e small releases) vistas como um conjunto que se reforça mutuamente, com a evidência real sobre pair programming e uma avaliação honesta de quais práticas viraram prática comum.

    Ler →6 seções13 min
  12. Princípios Lean para Software

    Os princípios Lean aplicados a software pelos Poppendiecks (eliminar desperdício, adiar compromissos até o último momento responsável e enxergar o todo), com fluxo, filas e a relação com o Kanban, o XP e o Scrum.

    Ler →6 seções11 min
  13. Requisitos: Elicitação, Especificação e Validação

    A engenharia de requisitos é três atividades distintas, não uma: a elicitação descobre o que os stakeholders de fato precisam, a especificação escreve essa necessidade de forma precisa o bastante para que dois engenheiros construam a mesma coisa a partir dela, e a validação checa a especificação escrita contra a necessidade real antes de a implementação começar, frequentemente devolvendo o processo à elicitação quando encontra uma incompatibilidade.

    Ler →6 seções10 min
  14. User Stories, Epics e o Product Backlog

    User stories e seus critérios de aceitação, a divisão de epics em fatias verticais e a ordenação de um product backlog, como a contrapartida ágil de uma especificação de requisitos, com o que o Scrum Guide define e o que não define.

    Ler →6 seções11 min
  15. Métricas Ágeis: Velocity, Burndown e Burnup

    Velocity, burndown e burnup: como ler esses gráficos, o que eles permitem prever (com intervalos, não com um número único) e por que a velocity não é uma medida de produtividade, com o que o Scrum Guide de fato diz sobre eles.

    Ler →6 seções11 min
  16. O Custo de Defeitos Encontrados Tarde

    O achado real e historicamente fundamentado de Barry Boehm, tirado de dados reais de custo na TRW, IBM, GTE e no programa Safeguard da Bell Labs, é que o custo de consertar um defeito sobe significativamente, aproximadamente por uma ordem de magnitude, a cada fase posterior em que é pego; a popularizada regra 1:10:100 simplifica demais uma faixa real e honesta num único número que os próprios dados de Boehm nunca reivindicaram como uma lei fixa.

    Ler →6 seções9 min
  17. Requisitos Funcionais vs. Não Funcionais

    Um requisito funcional enuncia um comportamento específico dado uma entrada específica, e é verificado exercitando-o e checando a saída; um requisito não funcional em vez disso restringe um atributo de qualidade (desempenho, confiabilidade, segurança, manutenibilidade) por entre muitas ocorrências ou sob condições realistas, verificado como uma distribuição medida; os dois falham de forma diferente em produção.

    Ler →6 seções9 min
  18. Por que Modelar: UML na Prática

    Por que as equipes modelam, UML como rascunho versus planta de construção, e quais diagramas ainda são desenhados na prática: um modelo é uma simplificação com propósito, mais barata de mudar que o sistema, e no estudo de Petre (2013) a maioria dos 50 desenvolvedores não usava UML, enquanto os que a usavam de forma seletiva preferiam poucos tipos de diagrama.

    Ler →6 seções11 min
  19. Diagramas de Classes e de Objetos

    Classes, atributos, operações, associações, multiplicidade, agregação, composição e herança, com os diagramas de objetos como retratos concretos: o losango vazio e o cheio dizem coisas diferentes, e uma multiplicidade ausente significa que o diagrama não afirma nada.

    Ler →6 seções12 min
  20. Casos de Uso e Descrições de Caso de Uso

    Atores, diagramas de casos de uso, include e extend, e como escrever uma descrição de caso de uso com fluxo principal e alternativos: o diagrama é só um índice de objetivos, e os requisitos moram no texto.

    Ler →6 seções12 min
  21. Diagramas de Sequência

    Linhas de vida, mensagens síncronas e assíncronas, ativações e fragmentos combinados (alt, opt, loop, par), para ler e desenhar uma interação ao longo do tempo.

    Ler →6 seções12 min
  22. BPMN para Processos de Negócio

    Eventos, atividades, gateways e raias (swimlanes) do BPMN, e como modelar um processo de negócio que atravessa vários papéis.

    Ler →6 seções13 min
  23. O Modelo de Qualidade ISO/IEC 25010

    O modelo de qualidade de produto da ISO/IEC 25010:2023, com suas nove características, o que a revisão de 2023 mudou em relação a 2011 (inclusive a saída do modelo de qualidade em uso) e como uma característica de qualidade vira um requisito mensurável.

    Ler →6 seções12 min
  24. Maturidade de Processo: CMM, CMMI e o Que Veio Depois

    Uma história curta do CMM e do CMMI: por que surgiram, o que os cinco níveis de maturidade diziam (e o que não diziam), quem é dono do CMMI hoje e o que a prática da indústria acrescentou. Tratado como livro versus hoje, nunca como prática atual.

    Ler →6 seções10 min
  25. Métricas de Qualidade de Software

    Densidade de defeitos, churn, complexidade ciclomática, cobertura e as cinco métricas de entrega do DORA: o que cada uma pode e não pode dizer, com cálculos resolvidos para densidade, complexidade e métricas do DORA, e por que qualquer uma delas se degrada quando vira meta (a lei de Goodhart, citada com precisão).

    Ler →6 seções11 min
  26. Dos Requisitos às Decisões de Arquitetura

    Um requisito não funcional, não a preferência ou a tendência, é o que deveria de fato forçar uma escolha entre opções de arquitetura, e um Architecture Decision Record (ADR) torna essa escolha rastreável: o requisito que a dirigiu, as opções reais consideradas, a opção escolhida e o trade-off honestamente aceito; este conceito é deliberadamente a ponte, não um reensino, cruzando com vocabulário introdutório, primitivos teóricos e padrões aplicados.

    Ler →6 seções10 min
  27. Capstone: Do Requisito à Produção

    Este capstone rastreia um requisito (um recurso de pagamento recorrente com uma restrição de disponibilidade real) por cada estágio que esta disciplina cobre: elicitação, análise não funcional, decisão de arquitetura, handoff para a construção, pipeline de CI/CD, implantação, observabilidade em produção e registro de dívida técnica, encerrando com uma decisão deliberada e registrada em vez de um conserto automático.

    Ler →6 seções9 min
  28. Rastreabilidade de Requisitos e Gestão de Mudança

    A gestão de requisitos rastreia duas coisas pela vida inteira de um projeto, não só no seu início: um vínculo de rastreabilidade bidirecional de cada requisito às decisões de design, código e testes que o satisfazem (para frente, para avaliar o impacto de uma mudança; para trás, para pegar escopo que nunca foi uma necessidade validada), e um processo de controle de mudança que avalia uma mudança proposta contra o seu impacto rastreado antes de decidir aceitar, adiar ou rejeitar.

    Ler →6 seções8 min

Engenharia de Software

Part of the Computer Science curriculum.

Sort
1

O SWEBOK e o Escopo Além da Construção

A decisão de escopo real e citável desta disciplina repousa sobre as próprias dezoito áreas de conhecimento do SWEBOK v4.0: `software-construction` já cobre por completo Design, Construção e Teste de Software (o nível unitário de construir software), e esta disciplina cobre o que o SWEBOK trata como conhecimento separado inteiramente, Requisitos, Processo, Gestão e a recém-adicionada Operações de Engenharia de Software, encerrando com um conceito de Economia de Engenharia de Software.

2

Dívida Técnica e Economia de Engenharia

O próprio relatório de experiência de 1992 de Ward Cunningham, sobre um sistema real que ele estava construindo (WyCash), cunhou a metáfora da dívida técnica com uma estrutura econômica real e precisa: um principal (o atalho tomado), uma taxa de juros (o custo contínuo e recorrente de conviver com ele, que genuinamente se compõe quanto mais tempo permanece não pago) e um mecanismo de quitação, uma reescrita deliberada, que a refatoração é a versão concreta e formalizada de.

3

Integração Contínua

A Integração Contínua, pela própria definição precisa de Martin Fowler (creditada honestamente ao Extreme Programming de Kent Beck), significa que todo membro da equipe mescla mudanças numa linha principal compartilhada pelo menos diariamente, e todo merge dispara um build automatizado que testa a si mesmo feito para detectar erros de integração tão rápido quanto possível; as suas onze práticas concretas todas defendem uma propriedade: feedback rápido e confiável sobre se a linha principal ainda funciona.

4

Entrega Contínua e Implantação Contínua

A distinção precisa de Fowler é exata: Entrega Contínua significa que toda mudança na linha principal é comprovada pronta para lançamento pelo pipeline, mas um humano ainda decide quando de fato lançar; a Implantação Contínua remove essa decisão inteiramente, lançando toda mudança verificada automaticamente, e estritamente exige a Entrega Contínua como a sua fundação.

5

Estágios do Pipeline de CI/CD e Builds Containerizados

Um pipeline de CI/CD real é uma sequência estrita de estágios com portões, build, teste automatizado, empacotar, implantar, ordenada deliberadamente para que cada estágio pegue a classe mais barata de problema que consegue pegar antes de estágios mais caros rodarem; o estágio de empacotar numa imagem de contêiner é o que torna o artefato testado e o artefato implantado comprovadamente idênticos.

6

Estratégias de Implantação: Blue-Green e Canary

A implantação blue-green mantém dois ambientes de produção completos e troca todo o tráfego entre eles num único cutover instantâneo, comprando rollback instantâneo e limpo; o lançamento canary em vez disso roteia uma fatia pequena e crescente de tráfego real para a nova versão primeiro, comprando detecção mais cedo de falhas que só se manifestam sob condições de produção reais; nenhuma estratégia é universalmente superior.

7

Observabilidade: Os Três Pilares

A escrita de profissional de Cindy Sridharan popularizou o enquadramento agora padrão da observabilidade como três tipos de dados complementares: logs (eventos discretos e com timestamp carregando detalhe), métricas (medições numéricas agregadas revelando tendências e limiares de forma barata) e traces (o caminho causal de uma requisição por todo serviço que ela tocou); os três trabalham juntos numa ordem natural durante um incidente real.

8

Modelos de Processo de Software: Waterfall e a Sua História Real

O modelo waterfall organiza um projeto numa sequência estrita e de mão única de fases, sem nenhum mecanismo projetado para revisitar uma fase anterior uma vez fechada; o artigo de 1970 de Winston Royce é a fonte citada para este diagrama, e, lido por completo, esse mesmo artigo chama a versão estrita de arriscada e recomenda a iteração que o modelo como comumente praticado carece, uma ironia histórica genuína.

9

Estimativa e Risco em Projetos de Software

A Gestão de Engenharia de Software trata estimativa e risco como duas visões da mesma disciplina subjacente: representar incógnitas genuínas honestamente em vez de escondê-las dentro de um plano falsamente confiante; uma estimativa real é uma distribuição de probabilidade, não um único número, e um registro de riscos rastreia um tipo genuinamente diferente de incógnita, eventos específicos e identificáveis, cada um com uma probabilidade, um impacto e um dono nomeado.

10

Kanban e Processo Baseado em Fluxo

O Método Kanban substitui o timebox fixo do Sprint do Scrum por um sistema de puxar contínuo: o trabalho se move por estágios nomeados, e um limite explícito de trabalho-em-progresso (WIP) em cada estágio é o mecanismo de fato que faz surgir um gargalo, forçando uma decisão visível no momento em que um estágio enche; o seu trade-off contra o Scrum é genuíno e simétrico.

11

Processos Ágeis: Scrum na Prática

O Scrum, como definido pelo seu próprio guia oficial, prescreve exatamente três responsabilidades (Developers, Product Owner, Scrum Master), cinco eventos (o próprio Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective) e três artefatos (Product Backlog, Sprint Backlog, Increment); o Sprint como um timebox fixo é um trade-off genuíno e deliberado: cadência previsível de planejamento e revisão, ao custo de adiar trabalho recém-descoberto para o próximo Sprint.

12

Práticas de Extreme Programming

As práticas concretas do XP (pair programming, test-first, integração contínua, refactoring e small releases) vistas como um conjunto que se reforça mutuamente, com a evidência real sobre pair programming e uma avaliação honesta de quais práticas viraram prática comum.

13

Princípios Lean para Software

Os princípios Lean aplicados a software pelos Poppendiecks (eliminar desperdício, adiar compromissos até o último momento responsável e enxergar o todo), com fluxo, filas e a relação com o Kanban, o XP e o Scrum.

14

Requisitos: Elicitação, Especificação e Validação

A engenharia de requisitos é três atividades distintas, não uma: a elicitação descobre o que os stakeholders de fato precisam, a especificação escreve essa necessidade de forma precisa o bastante para que dois engenheiros construam a mesma coisa a partir dela, e a validação checa a especificação escrita contra a necessidade real antes de a implementação começar, frequentemente devolvendo o processo à elicitação quando encontra uma incompatibilidade.

15

User Stories, Epics e o Product Backlog

User stories e seus critérios de aceitação, a divisão de epics em fatias verticais e a ordenação de um product backlog, como a contrapartida ágil de uma especificação de requisitos, com o que o Scrum Guide define e o que não define.

16

Métricas Ágeis: Velocity, Burndown e Burnup

Velocity, burndown e burnup: como ler esses gráficos, o que eles permitem prever (com intervalos, não com um número único) e por que a velocity não é uma medida de produtividade, com o que o Scrum Guide de fato diz sobre eles.

17

O Custo de Defeitos Encontrados Tarde

O achado real e historicamente fundamentado de Barry Boehm, tirado de dados reais de custo na TRW, IBM, GTE e no programa Safeguard da Bell Labs, é que o custo de consertar um defeito sobe significativamente, aproximadamente por uma ordem de magnitude, a cada fase posterior em que é pego; a popularizada regra 1:10:100 simplifica demais uma faixa real e honesta num único número que os próprios dados de Boehm nunca reivindicaram como uma lei fixa.

18

Requisitos Funcionais vs. Não Funcionais

Um requisito funcional enuncia um comportamento específico dado uma entrada específica, e é verificado exercitando-o e checando a saída; um requisito não funcional em vez disso restringe um atributo de qualidade (desempenho, confiabilidade, segurança, manutenibilidade) por entre muitas ocorrências ou sob condições realistas, verificado como uma distribuição medida; os dois falham de forma diferente em produção.

19

Por que Modelar: UML na Prática

Por que as equipes modelam, UML como rascunho versus planta de construção, e quais diagramas ainda são desenhados na prática: um modelo é uma simplificação com propósito, mais barata de mudar que o sistema, e no estudo de Petre (2013) a maioria dos 50 desenvolvedores não usava UML, enquanto os que a usavam de forma seletiva preferiam poucos tipos de diagrama.

20

Diagramas de Classes e de Objetos

Classes, atributos, operações, associações, multiplicidade, agregação, composição e herança, com os diagramas de objetos como retratos concretos: o losango vazio e o cheio dizem coisas diferentes, e uma multiplicidade ausente significa que o diagrama não afirma nada.

21

Casos de Uso e Descrições de Caso de Uso

Atores, diagramas de casos de uso, include e extend, e como escrever uma descrição de caso de uso com fluxo principal e alternativos: o diagrama é só um índice de objetivos, e os requisitos moram no texto.

22

Diagramas de Sequência

Linhas de vida, mensagens síncronas e assíncronas, ativações e fragmentos combinados (alt, opt, loop, par), para ler e desenhar uma interação ao longo do tempo.

23

BPMN para Processos de Negócio

Eventos, atividades, gateways e raias (swimlanes) do BPMN, e como modelar um processo de negócio que atravessa vários papéis.

24

O Modelo de Qualidade ISO/IEC 25010

O modelo de qualidade de produto da ISO/IEC 25010:2023, com suas nove características, o que a revisão de 2023 mudou em relação a 2011 (inclusive a saída do modelo de qualidade em uso) e como uma característica de qualidade vira um requisito mensurável.

25

Maturidade de Processo: CMM, CMMI e o Que Veio Depois

Uma história curta do CMM e do CMMI: por que surgiram, o que os cinco níveis de maturidade diziam (e o que não diziam), quem é dono do CMMI hoje e o que a prática da indústria acrescentou. Tratado como livro versus hoje, nunca como prática atual.

26

Métricas de Qualidade de Software

Densidade de defeitos, churn, complexidade ciclomática, cobertura e as cinco métricas de entrega do DORA: o que cada uma pode e não pode dizer, com cálculos resolvidos para densidade, complexidade e métricas do DORA, e por que qualquer uma delas se degrada quando vira meta (a lei de Goodhart, citada com precisão).

27

Dos Requisitos às Decisões de Arquitetura

Um requisito não funcional, não a preferência ou a tendência, é o que deveria de fato forçar uma escolha entre opções de arquitetura, e um Architecture Decision Record (ADR) torna essa escolha rastreável: o requisito que a dirigiu, as opções reais consideradas, a opção escolhida e o trade-off honestamente aceito; este conceito é deliberadamente a ponte, não um reensino, cruzando com vocabulário introdutório, primitivos teóricos e padrões aplicados.

28

Capstone: Do Requisito à Produção

Este capstone rastreia um requisito (um recurso de pagamento recorrente com uma restrição de disponibilidade real) por cada estágio que esta disciplina cobre: elicitação, análise não funcional, decisão de arquitetura, handoff para a construção, pipeline de CI/CD, implantação, observabilidade em produção e registro de dívida técnica, encerrando com uma decisão deliberada e registrada em vez de um conserto automático.

29

Rastreabilidade de Requisitos e Gestão de Mudança

A gestão de requisitos rastreia duas coisas pela vida inteira de um projeto, não só no seu início: um vínculo de rastreabilidade bidirecional de cada requisito às decisões de design, código e testes que o satisfazem (para frente, para avaliar o impacto de uma mudança; para trás, para pegar escopo que nunca foi uma necessidade validada), e um processo de controle de mudança que avalia uma mudança proposta contra o seu impacto rastreado antes de decidir aceitar, adiar ou rejeitar.