The program development life cycle · O ciclo de vida do desenvolvimento de software
| English | Português |
|---|---|
| requirements/rɪˈkwaɪəmənts/ | requisitos |
| development life cycle/dɪˈveləpmənt laɪf ˈsaɪkl/ | ciclo de vida do desenvolvimento |
| waterfall/ˈwɔːtəfɔːl/ | cascata |
| maintenance/ˈmeɪntənəns/ | manutenção |
| iterative model/ˈɪtərətɪv ˈmɒdl/ | modelo iterativo |
| rapid application development/ˈræpɪd ˌæplɪˈkeɪʃn dɪˈveləpmənt/ | desenvolvimento rápido de aplicativos |
| prototype/ˈprəʊtəʊtaɪp/ | protótipo |
| agile/ˈædʒaɪl/ | agile |
| implementation/ˌɪmplɪmənˈteɪʃn/ | implementação |
The airport that opened sixteen months late
- Denver's new airport was due to open in October 1993 with the most ambitious baggage system ever built: 4,000 automatic carts, 35 km of track, no human hands. It opened in February 1995, $560 million over budget, with the carts shredding suitcases in test runs.
- The schedule had been fixed before anyone analysed what the system had to do. Requirements kept changing while it was being built. Testing started when there was no time left to fix what it found.
- Every one of those failures has a name in this lesson. A development life cycle 开发生命周期 exists so that a project is planned, managed and controlled instead of discovered.
- This lesson is what a life cycle is for, the three models the syllabus names, and the five stages every program goes through.
O aeroporto que abriu dezesseis meses atrasado
- O novo aeroporto de Denver deveria ter sido inaugurado em outubro 1993 com o sistema de bagagem mais ambicioso já construído: 4,000 carrinhos automáticos, 35 km de trilhos, sem intervenção humana. Foi inaugurado em fevereiro 1995, $560 milhão acima do orçamento, com os carrinhos rasgando as malas nos testes.
- O cronograma foi fixado antes de ninguém analisar o que o sistema precisava fazer. Os requisitos continuaram mudando enquanto eram construídos. Os testes começaram quando não havia tempo restante para corrigir o que encontravam.
- Cada uma dessas falhas tem um nome nesta lição. Um development life cycle 开发生命周期 existe para que um projeto seja planejado, gerenciado e controlado em vez de descoberto.
- Esta lição é sobre o que um lifecycle serve para, os três modelos que o syllabus nomeia, e as cinco etapas por todo programa passam.
Why a life cycle is needed
- A development life cycle is the set of stages from idea to finished, maintained software. Its purpose is to plan, manage and control a project: the right product, on time, with good quality.
- It manages complexity by breaking a big program into phases, coordinates a team, and tracks progress against milestones.
- It builds in testing rather than leaving it to the end, records design decisions for whoever maintains the program later, and manages risk.
Por que um lifecycle é necessário
- Um development life cycle é o conjunto de etapas da ideia ao software acabado e mantido. Seu propósito é plan, manage e control um projeto: o produto certo, no prazo, com boa qualidade.
- Ele manages complexity quebrando um grande programa em fases, coordinates uma equipe, e tracks progress contra marcos.
- Integra testes em vez de deixá-los para o final, registra decisões de design para quem mantiver o programa depois e gerencia riscos.
A development life cycle is used to: · Um ciclo de vida de desenvolvimento é usado para:
It structures the work into stages so the team builds the right product, on time, with quality. · Ele estrutura o trabalho em fases para que a equipe construa o produto certo, na hora certa, com qualidade.
Which are purposes of a development life cycle? Select all · todos that apply. · Quais são propósitos de um ciclo de vida de desenvolvimento? Selecione todas as opções.
A life cycle plans, manages and controls. It cannot guarantee correctness; it makes finding and fixing errors part of the plan. · Um ciclo de vida planeja, gerencia e controla. Ele não pode garantir correção; ele torna encontrar e corrigir erros parte do plano.
Why there is more than one
- No single life cycle fits every project, so several exist and the exam asks you to choose.
- The choice depends on the size and complexity of the program, how clear the requirements 需求 are at the start, how much change is expected, the risk if it fails, the team, and the deadline.
- A payroll system with fixed legal rules and a game whose players do not yet know what they want are different projects. They deserve different cycles.
Por que há mais de um
- Nenhum ciclo de vida único se adapta a todos os projetos, por isso existem vários e o exame pede para você escolher.
- A escolha depende do tamanho e da complexidade do programa, quão claros são os requisitos 需求 no início, quanto de mudança é esperado, o risco caso falhe, a equipe e o prazo.
- Um sistema de folha de pagamento com regras legais fixas e um jogo cujos jogadores ainda não sabem o que querem são projetos diferentes. Merecem ciclos diferentes.
Waterfall
- The waterfall 瀑布模型 model is a linear sequence: analysis, design, coding, testing, maintenance. Each stage is finished, documented and signed off before the next begins.
- Benefits: clear structure, easy to manage and schedule, thorough documentation at every stage, well suited to stable requirements.
- Drawbacks: a change of requirements mid-project means going back up the waterfall; the customer sees nothing working until the end; errors in analysis surface only at testing.
Water does not flow back uphill
Cascata (Waterfall)
- O modelo waterfall 瀑布模型 é uma sequência linear: análise, design, codificação, teste, manutenção. Cada etapa é concluída, documentada e aprovada antes que a próxima comece.
- Vantagens: estrutura clara, fácil de gerenciar e agendar, documentação completa em cada etapa, bem adequado para requisitos estáveis.
- Desvantagens: uma mudança de requisitos no meio do projeto significa voltar na cascata; o cliente nada vê funcionando até o final; erros na análise só aparecem no teste.

A água não flui montanha acima
The waterfall model is best suited to projects where: · O modelo Waterfall é mais adequado para projetos onde:
Waterfall is linear with each stage finished before the next — great for stable requirements, poor at mid-project change. · Waterfall é linear com cada fase terminada antes da próxima — ótimo para requisitos estáveis, ruim para mudança no meio do projeto.
In the waterfall model the customer sees a working version of the program early in the project. · No modelo Waterfall, o cliente vê uma versão funcional do programa cedo no projeto.
Nothing runs until coding and testing, near the end. Seeing working software early is the iterative model's and RAD's strength. · Nada roda até codificação e testes, perto do final. Ver software funcionando cedo é a força do modelo iterativo e RAD.
Iterative
- The iterative model 迭代模型 makes repeated passes. Each pass produces a partial working version that is reviewed by the user and refined in the next pass.
- Benefits: problems are caught earlier; the user sees working software early and often; good when requirements are discovered over time.
- Drawbacks: harder to estimate the total cost and time; repeated reviews need the user's attention; the design can drift without discipline.
Build, show, refine, repeat
Iterativo
- O modelo iterativo 迭代模型 faz passadas repetidas. Cada passada produz uma versão parcial funcional que é revisada pelo usuário e refinada na próxima passada.
- Vantagens: problemas são detectados mais cedo; o usuário vê software funcionando cedo e frequentemente; bom quando os requisitos são descobertos ao longo do tempo.
- Desvantagens: mais difícil estimar custo e tempo total; revisões repetidas exigem atenção do usuário; o design pode desviar sem disciplina.

Construa, mostre, refine, repita
Rapid application development
- Rapid application development 快速应用开发 (RAD) builds a prototype 原型 quickly, puts it in front of the users, and rebuilds it from their feedback until it becomes the product. Teams often work on parts in parallel.
- Benefits: a very fast first delivery; requirements that change are absorbed as they appear; users shape the product directly.
- Drawbacks: it depends on users being available throughout; the prototype's shortcuts can survive into the product; it suits smaller systems better than large safety-critical ones. Agile 敏捷 methods take the same idea further, with short sprints and constant testing.
Prototype, feedback, prototype again
Desenvolvimento rápido de aplicativos
- Desenvolvimento rápido de aplicativos 快速应用开发 (RAD) constrói um protótipo 原型 rapidamente, o coloca diante dos usuários e o reconstrói a partir do feedback deles até virar o produto. Equipes muitas vezes trabalham em partes em paralelo.
- Vantagens: entrega inicial muito rápida; requisitos que mudam são absorvidos à medida que surgem; usuários moldam o produto diretamente.
- Desvantagens: depende de usuários estarem disponíveis durante todo o processo; atalhos do protótipo podem sobreviver no produto; adequa-se melhor a sistemas menores do que grandes sistemas críticos de segurança. Métodos Agile 敏捷 levam essa ideia adiante, com sprints curtos e testes constantes.

Protótipo, feedback, protótipo novamente
In the waterfall model each stage is finished before the next begins, whereas agile works in short iterative sprints with constant feedback. · No modelo Waterfall, cada fase é terminada antes que a próxima comece, enquanto o ágil funciona em sprints iterativos curtos com feedback constante.
Waterfall is linear (good for stable requirements); agile adapts through short sprints with continuous customer collaboration and testing. · Waterfall é linear (bom para requisitos estáveis); ágil se adapta através de sprints curtos com colaboração contínua do cliente e testes.
Match each model to its key idea. · Combine cada modelo com sua ideia-chave.
Waterfall = linear; iterative = repeated refinement; RAD = prototype-driven and fast. · Waterfall = linear; iterativo = refinamento repetido; RAD = guiado por protótipo e rápido.
Rapid application development builds a ____ that users try and give feedback on, then rebuilds it. · Rapid application development constrói um ____ que usuários testam e dão feedback, depois reconstrói.
The prototype is RAD's defining feature; user feedback on it is how the requirements are discovered. · O protótipo é a característica definidora do RAD; o feedback do usuário nele é como os requisitos são descobertos.
Worked example: choose a life cycle and justify it
- A company needs software to calculate employees' pay under tax rules that are fixed by law. Which life cycle, and why? Waterfall: the requirements are stable and fully known at the start, the rules can be documented completely in analysis, and the thorough documentation matters for a system that must be correct and audited.
- A start-up wants an app for a new kind of social event; its users are not sure what features they want. RAD: the requirements are unclear and will change, so a prototype that users try and react to discovers them quickly, and the small system suits fast rebuilding.
- Name the model, then link two of its properties to two facts in the scenario.
Exemplo resolvido: escolha um ciclo de vida e justifique-o
- Uma empresa precisa de software para calcular o salário dos funcionários sob leis fiscais fixadas por lei. Qual ciclo de vida e por quê? Waterfall: os requisitos são estáveis e totalmente conhecidos no início, as regras podem ser documentadas completamente na análise e a documentação completa importa para um sistema que deve estar correto e ser auditado.
- Uma startup quer um app para um novo tipo de evento social; seus usuários não têm certeza quais recursos querem. RAD: os requisitos são unclear e mudarão, então um protótipo que os usuários testam e reagem descobre-os rapidamente, e o sistema pequeno se adapta a reconstruções rápidas.
- Nomeie o modelo, depois vincule duas de suas propriedades a dois fatos do cenário.
A small team must build an app whose users are unsure what they want, and the users can try versions every week. Which life cycle fits best? · Uma pequena equipe deve construir um app cujos usuários têm certeza do que querem, e os usuários podem tentar versões toda semana. Qual ciclo de vida se encaixa melhor?
Unclear, changing requirements plus available users is the RAD case. Waterfall needs the requirements fixed at the start. · Requisitos claros e mutáveis mais usuários disponíveis é o caso RAD. Waterfall precisa dos requisitos fixados no início.
The five stages
- Analysis: find out what the program must do; gather and document the requirements from the users.
- Design: decide how: data structures, algorithms, modules, the user interface, file layouts, expressed in structure charts, flowcharts and pseudocode.
- Coding (implementation 实现): write the source code following the design. Testing: run it against planned test data and correct the errors found.
- Maintenance 维护: after release, keep it working and useful, correcting faults, adapting to change and improving it.
As cinco etapas
- Análise: descobrir o que o programa deve fazer; coletar e documentar os requisitos junto aos usuários.
- Design: decidir como: estruturas de dados, algoritmos, módulos, interface do usuário, layouts de arquivo, expressos em gráficos de estrutura, fluxogramas e pseudocódigo.
- Codificação (implementação 实现): escrever o código-fonte seguindo o design. Teste: executá-lo contra dados de teste planejados e corrigir os erros encontrados.
- Manutenção 维护: após o lançamento, mantê-lo funcionando e útil, corrigindo falhas, adaptando-se a mudanças e melhorando-o.
The program development life cycle · O ciclo de vida do desenvolvimento de software
Step through the stages every project passes through. Getting the requirements right in analysis matters most — a mistake caught in testing is far costlier to fix than one caught early. · Passe pelas etapas que todo projeto passa. Obter os requisitos corretos na análise é o mais importante — um erro capturado nos testes é muito mais caro de corrigir do que um capturado cedo.
The analysis stage is mainly about deciding: · A etapa de análise é principalmente sobre decidir:
Analysis gathers requirements (the "what"); design decides the "how". · A análise coleta requisitos (o "o quê"); o projeto decide o "como".
Put the stages of the program development life cycle in order. · Organize as etapas do ciclo de vida do desenvolvimento de programas em ordem.
What, how, build, check, keep working. In the iterative model the middle stages repeat, but the order inside each pass is the same. · O que, como, construir, verificar, manter funcionando. No modelo iterativo, as etapas intermediárias se repetem, mas a ordem dentro de cada passagem é a mesma.
Worked example: what happens in analysis and design
- Describe what happens during the analysis and design stages of the program development life cycle. [4]
- Analysis: the developers interview and observe the users to find out what the program must do; they identify the inputs, the outputs and the processing required, and write a requirements specification that the customer agrees.
- Design: the developers decide how the program will meet those requirements: they choose the data structures and algorithms, decompose the program into modules on a structure chart, design the screens and files, and write pseudocode.
- Two actions and a product for each stage. "They analyse the problem" restates the heading and earns nothing.
Exemplo resolvido: o que acontece na análise e no design
- Descreva o que acontece durante as etapas de análise e design do ciclo de vida de desenvolvimento de programas. [4]
- Análise: os desenvolvedores entrevistam e observam os usuários para descobrir o que o programa deve fazer; identificam as entradas, saídas e processamento necessários, e escrevem uma especificação de requisitos que o cliente aprova.
- Design: os desenvolvedores decidem como o programa atenderá a esses requisitos: escolhem as estruturas de dados e algoritmos, decomõem o programa em módulos em um gráfico de estrutura, projetam telas e arquivos, e escrevem pseudocódigo.
- Duas ações e um produto para cada etapa. "Eles analisam o problema" apenas reitera o título e não pontua.
Marks that slip away
- Analysis is what, design is how. "Deciding the algorithms" belongs to design.
- Waterfall is not "the bad one". Its strength is stable, documented requirements; its weakness is change. Give both when asked for benefits and drawbacks.
- RAD is not just "fast". Its defining feature is the prototype and the users' feedback on it.
- Maintenance is a stage, not an afterthought: most of a program's lifetime cost is spent there.
Marcas que escapam
- Análise é o que, design é como. "Decidir os algoritmos" pertence ao design.
- Waterfall não é "o ruim". Sua força são requisitos estáveis e documentados; sua fraqueza é a mudança. Dê ambas quando pedirem benefícios e desvantagens.
- RAD não é apenas "rápido". Sua característica definidora é o protótipo e o feedback dos usuários sobre ele.
- Manutenção é uma etapa, não um pensamento tardio: a maior parte do custo de vida de um programa é gasta lá.
You've got it
- a life cycle plans, manages and controls a project: phases, milestones, testing built in, decisions recorded, risk managed
- waterfall: linear, each stage signed off, best for stable requirements, poor at change · iterative: repeated refined versions, catches problems early, harder to estimate · RAD: prototype plus user feedback, fast and flexible, needs available users
- choose by requirement clarity, expected change, size and risk, and justify with the scenario
- the stages: analysis (what) → design (how) → coding → testing → maintenance
Entendeu?
- Um ciclo de vida planeja, gerencia e controla um projeto: fases, marcos, testes integrados, decisões registradas, riscos gerenciados
- waterfall: linear, cada etapa aprovada, melhor para requisitos estáveis, mau para mudanças · iterativo: versões refinadas repetidas, detecta problemas cedo, mais difícil estimar · RAD: protótipo mais feedback do usuário, rápido e flexível, precisa de usuários disponíveis
- escolha pela clareza dos requisitos, mudança esperada, tamanho e risco, e justifique com o cenário
- as etapas: análise (o que) → design (como) → codificação → teste → manutenção