Buscar

Livro-Texto - Unidade II (1)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 38 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

42
Unidade II
Unidade II
3 PROCESSO DE SOFTWARE
3.1 Processo de software e o desenvolvimento do projeto
 
[…] a engenharia de software é uma disciplina da engenharia que se ocupa de 
todos os aspectos da produção de software. Isso vai desde os estágios iniciais 
de especificação de um sistema até propriamente a manutenção, para que 
esse mesmo sistema sobreviva ao longo do tempo (SOMMERVILLE, 2003, p. 5).
A estrutura apresentada na figura 15 mostra o uso da engenharia de software durante os estágios 
de evolução da análise de um sistema em uma organização.
Estruturar a organização, 
identificando áreas de gestão
Estruturar funções e informações com base 
nas atividades e dados da organização
Modelar entidades, relações e 
dados com base nos requisitos
Gerar funcionalidades, 
protótipos e buscar validação
Usar a engenharia de software para escolher processos, 
métodos e ferramentas apropriadas para o projeto, controle, 
operacionalização e manutenção do sistema de informação
Figura 15 – Estágio de análise e construção do software ou sistema: de sua concepção até sua implantação
Stair (2006) sugere que quando se elabora um sistema é importante percorrer uma série de 
passos previsíveis, conhecidos como ciclo de vida do desenvolvimento do software (SDLC – Software 
Development Life Cycle).
O SDLC é um roteiro que ajuda a criar a tempo um resultado de alta qualidade. Os modelos de 
processos de software englobam um conjunto de atividades, métodos, práticas e transformações a 
serem empregadas no desenvolvimento e na manutenção do software; fornecem estabilidade, controle 
e organização para as atividades.
Se um processo estiver sem controle, as atividades tornam-se bastante caóticas, comprometendo 
a eficiência do projeto. Sem controle significa: sem acompanhamento, medições e sem comparações com 
43
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
marcas de referência (milestones); ocorrem atividades e tarefas redundantes, conflitos na comunicação, 
na análise e, consequentemente, há aumento de erros.
 Observação
Ao construir e operacionalizar um software sem planejamento com base 
em processos, haverá o risco de o projeto não ser efetivado e operacionalizado.
3.1.1 Planejamento do processo
Segundo Pressman (2002), um processo é uma sequência de fatos, atividades ou operações que 
apresentam certa unidade e/ou que se reproduzem com certa regularidade.
O processo deve ser delimitado, definindo-se seu início e fim. Os pontos de início (input) e fim 
(output) são marcas de referências (ou milestones) úteis para o acompanhamento do processo. Essas 
marcas servirão para controlar o processo, medir, avaliar e projetar melhorias e tendências.
A figura 16 mostra o modelo básico de um processo, com suas respectivas marcas de referência 
(input e output):
• Input: o ponto inicial normalmente marca os itens necessários para dar entrada ao processo. Esses 
itens referem-se aos requisitos de entrada do processo, tais como: objetos claros e específicos; 
recursos humanos necessários; materiais; tecnologia a ser empregada; fornecedores; componentes 
do software/sistema; metodologias; ferramentas; custo; cronograma; procedimentos de trabalho 
e documentos.
• Processo: é a combinação organizada dos itens de entrada para criar um produto de software ou 
de sistema, um componente de outro produto ou executar um determinado trabalho.
• Output: é a finalização do processo com a entrega do produto ou serviço determinado no 
processo. Assim, novos registros são feitos e novas medições e verificações são realizadas para 
confrontar o resultado obtido com o objetivo planejado para o processo.
Processo
Input (Entradas)
- Objetivos
- Recursos necessários
- Procedimentos
- Documentos
- Custo / cronograma
- Métodos / ferramentas
Output (Saídas)
- Produto
- Componente
- Serviços
Figura 16 – Modelo básico do processo
44
Unidade II
3.1.2 Decomposição do processo
Decompor um processo é estabelecer uma sequência coerente de práticas que objetiva o 
desenvolvimento ou evolução de sistemas de software. Essas práticas englobam as atividades de 
análise, especificação, modelagem, implementação, testes, implantação, suporte e manutenção. 
Por exemplo: o processo de engenharia de software pode representar a implementação de uma 
determinada funcionalidade.
O bom processo é caracterizado pelo emprego de ferramentas específicas de escolha do arcabouço 
do processo, registro e interação das ferramentas de trabalho, pessoas envolvidas no processo e 
métodos aplicáveis.
 Observação
Funcionalidade: uma ou várias funções que empregam recursos e 
lógicas similares, tecnologias comuns e que capacitam o produto software 
a prover funções que atendam as necessidades externas e internas do 
software/sistema.
De acordo com o escopo do projeto, o processo é estruturado em vários módulos (ou componentes), 
com base no tamanho do processo, na complexidade, na qualidade exigida e na tecnologia a ser 
implementada. A figura 17 mostra como é a estrutura genérica de um processo e os elementos que 
a compõem.
Processo
Subprocesso 1 Subprocesso 2 Subprocesso n
Procedimento 1 Procedimento 2
Tarefa 1 Tarefa 2 Tarefa 3 Tarefa 4
Atividade 1 Atividade 2 Atividade 3
Figura 17 – Estrutura genérica do processo
O processo pode ser dividido em etapas. Vale o bom senso. Normalmente, a divisão em etapas 
está associada a aspectos como tamanho, complexidade, qualidade, custo e prazo de cumprimento 
do processo.
O subprocesso (etapa do processo ou meta) é uma marca de referência que traça o objetivo de uma 
parte do processo. Tem como objetivo manter os planos, artefatos e atividades de software consistentes 
com os requisitos alocados.
A atividade é a realização de uma função específica do processo, usualmente compreendida no subprocesso.
45
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
O procedimento é a forma de como se deve agir, fazer ou cumprir uma atividade. Em geral, os 
procedimentos são caracterizados por meio de uma lista que apresenta passo a passo – e de modo 
sequencial – as tarefas que deverão ser executadas.
As tarefas são os trabalhos que devem ser efetuados. Representam uma empreitada de serviços, ou 
seja, uma quantidade de trabalhos realizados ou a realizar dentro de um prazo determinado.
O processo de software, como mostrado na figura 18, estabelece uma metodologia do processo 
que, em 2007, Pressman também chamou de arcabouço de processo.
 
Cada atividade metodológica é composta por um conjunto de ações de 
engenharia de software. Cada ação é definida por um conjunto de tarefas, 
o qual identifica as tarefas de trabalho a serem completados, os artefatos de 
software que serão produzidos, os fatores de garantia da qualidade que serão 
exigidos e os marcos utilizados para indicar progresso (PRESSMAN, 2011, p. 53).
Pressman (2011) determina uma metodologia de processo genérica para a engenharia de software 
estabelecida em cinco atividades metodológicas: comunicação; planejamento; modelagem; 
construção; entrega.
Processo de software
Metodologia do processo
Atividades de apoio
 Tarefas de trabalho
 Artefatos de software
 Fatores de garantia da qualidade
 Pontos de controle do projeto
 Tarefas de trabalho
 Artefatos de software
 Fatores de garantia da qualidade
 Pontos de controle do projeto
 Tarefas de trabalho
 Artefatos de software
 Fatores de garantia da qualidade
 Pontos de controle do projeto
 Tarefas de trabalho
 Artefatos de software
 Fatores de garantia da qualidade
 Pontos de controle do projeto
Atividade metodológica n° 1
Atividade metodológica n° n
Ação de engenharia de software n˚ 1.1
Ação de engenharia de software n˚ n.1
Ação de engenharia de software n˚ 1.k
Ação de engenharia de software n˚ n.m
Conjuntos 
de tarefas
Conjuntos 
de tarefas
Conjuntos 
de tarefas
Conjuntos 
de tarefas
Figura 18 – Metodologia do processo de software
46
Unidade II
Essa metodologia do processo, além de compor um conjunto de atividades de apoio, considera a 
administração de riscos, a garantiada qualidade, o gerenciamento das configurações e as revisões técnicas.
A garantia da qualidade é composta de um grupo que acompanha a qualidade do produto com 
base em métricas da qualidade. São feitas medições para avaliar o quão distante estão os resultados 
obtidos em relação aos determinados nos objetivos do software. Pressman (2002) apresenta a estrutura 
comum de um processo de software, como ilustrado na figura 19. Nesse modelo, o grupo conhecido 
como garantia da qualidade de software (SQA – Software Quality Assurance) acompanha os resultados 
de cada tarefa, cada atividade e, consequentemente, a medição da capacidade de cada processo do 
desenvolvimento do software. O grupo SQA cuida para que os resultados qualitativos e quantitativos 
não desviem de seus objetivos e metas, garantindo a eficácia de cada item.
Estrutura comum para o acompanhamento do processo
Conjunto de tarefas
Atividades de estrutura
Tarefa
Marca de referância (milestone)
SQA — Software Quality Assurance
(Garantia da Qualidade de Software)
Figura 19 – Elementos que compõem uma estrutura comum do processo
 Saiba mais
Para ampliar seu conhecimento, consulte a referência a seguir:
SERRA, A. P. Modelos de processo pessoal e de equipe. In: CONFERÊNCIA 
DA QUALIDADE DE SOFTWARE, 4., 2011, São Paulo. Anais [...]. São Paulo: 
Universidade São Judas, 2011. Disponível em: https://bit.ly/3cEOy8z. Acesso 
em: 3 mar. 2021.
3.2 Gestão de planejamento do software
Funciona em conjunto com a metodologia de desenvolvimento de sistemas/software. Isso ocorre 
no processo de iniciação. Nessa fase, elabora-se um documento breve, que serve de instrumento de 
comunicação para avaliar a organização das pessoas envolvidas no projeto de software (stakeholders), 
definindo papéis e responsabilidades de acordo com a capacitação técnica e aptidões para que elas 
atuem nos processos de comunicação, planejamento, modelagem, construção e entrega.
47
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
O gestor atua diretamente com as pessoas envolvidas no projeto, determinando suas atividades, 
suas datas, seus custos e recursos necessários para o projeto e de acordo com os resultados obtidos; 
também elabora ajustes para controlar o projeto.
3.2.1 Análise de recursos para os processos do projeto
No ciclo de vida de desenvolvimento de sistemas/software, os recursos a serem determinados para 
cada processo referente a cada fase do projeto compreendem os recursos necessários para o projeto 
do sistema ou software. Na projeção dos recursos, três perfis de analistas são essenciais: analista de 
negócios, analista de processo e analista de sistema, os quais têm a função de elaborar a efetivação do 
projeto, alinhando o negócio com a TI.
• Analista de negócio (ou autor do processo): esse profissional é aquele que precisa do negócio. 
Entende-se pelo negócio como algo que tenha que ser gerado, corrigido ou melhorado, para 
atender um objetivo ou necessidade. O analista de negócio utiliza uma linguagem natural e 
diagramas simples para apresentar o que quer, o que precisa que seja feito.
• Analista de processo: é aquele que interpreta a ideia do negócio, seus riscos e regras, e que 
tem por objetivo determinar as atividades e respectivas tarefas necessárias para processar o 
negócio. O analista de processo busca uma padronização da nomenclatura, destacando por 
meio de textos breves e diagramas específicos a ordenação das atividades e das tarefas que 
compõem a atividade.
• Analista de sistema: converte as atividades em componentes (peças que compõem o processo). 
Cada componente representa uma parte do sistema apoiada pelo processamento dos dados. 
A interpretação das tarefas e do workflow (fluxo de trabalho) levam à criação das funções 
de acesso do software/sistema, à lógica de processamento (programa de computador) e aos 
recursos computacionais necessários para executar as funções. Na prática da engenharia de 
software, o analista de sistema especifica cada função por meio de descrições singulares e 
modelos gráficos (modelagem) e determina as funcionalidades que serão interpretadas pelos 
especialistas da TI.
3.2.2 Recursos do projeto e do produto
Os recursos necessários para o projeto e para o produto, bem como os procedimentos de modelagem, 
construção e entrega, garantem a efetivação de cada processo do projeto. Com base nos requisitos 
determinados pelos analistas, essa abordagem atinge duas categorias gerenciais: gerência do projeto e 
gerência do produto.
• Gerência do projeto: dimensiona o escopo do projeto, se comunica, interpreta o processo, 
distribui atividades e tarefas, organiza, elabora cronogramas, tabela de custos e diagramas de 
execução e implantação do processo. No gerenciamento do projeto, os principais recursos a serem 
tratados são:
48
Unidade II
— Recursos humanos: são todos os envolvidos e interessados no projeto. Incluem aqueles que 
promovem o projeto, tais como: empresários e administradores; analistas representantes do 
cliente; grupos da qualidade; aqueles ligados às operações do software; representantes 
do usuário; contratações; desenvolvedores. A lista dos desenvolvedores é fornecida pela 
gerência do produto.
— Recursos materiais: se referem a localização, transporte, mobília e instalações para o ambiente 
de uso e ambiente de desenvolvimento do software. A parte referente ao desenvolvimento do 
software diz respeito aos recursos tangíveis, fornecidos pela gerência do produto.
— Recursos tecnológicos: envolvem os recursos intangíveis, fornecidos pela gerência do produto.
— Recursos financeiros: são os patrocinadores do projeto.
• Gerência do produto: especifica e cria o projeto do produto. Como vimos anteriormente, o 
produto pode ser um componente ou um subproduto, serviços a serem executados, resultados 
da produção ou do comércio, ou produto produzido em fábrica. Processos de gerenciamento de produto 
são tipicamente definidos em uma determinada etapa do ciclo de vida do projeto e variáveis 
específicas da área de aplicação. No ambiente computacional informatizado, é considerado 
como gerenciamento do produto aquele praticado para fornecer a infraestrutura de TI, que apoia 
o desenvolvimento do sistema de informação (SI). Em uma sequência ordenada, os principais 
recursos para desenvolver um SI são:
— Recursos humanos (Peopleware): são pessoas que trabalham diretamente ou indiretamente 
com a área de TI ou mesmo com o SI. Essas pessoas trabalham principalmente na gerência do 
produto, prestando serviços para o desenvolvimento do software.
— Recursos de software: basicamente, são recursos intangíveis, tais como licenças de software 
necessárias para desenvolvimento, gerenciamento do banco de dados, implantação e controle 
do software a ser produzido.
— Recursos de hardware: são recursos tangíveis, que compreendem computadores (servidores 
e estações), terminais de computadores, interfaces de hardware específicas para comunicação, 
gabinetes, racks, dispositivos associados a computação e periféricos em geral.
— Recursos de dados: são aspectos de serviços ligados ao projeto e gerenciamento do banco 
de dados, serviços de dados, estrutura dos dados, segurança da informação, regras de acesso, 
distribuição dos dados, armazenamento, proteção e recuperação dos dados.
— Recursos da rede de computadores: são os serviços ligados ao projeto de topologia da rede, 
bem como à configuração dos dispositivos associados à ligação e proteção da rede.
49
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
3.3 Fusão do produto e do processo
O processo é um diálogo no qual o conhecimento, que deve se transformar em software, é reunido 
e embutido no software (PRESSMAN, 2002).
 
Processos reais de software são intercalados com sequências de atividades 
técnicas, de colaboração e de gerência, com o intuito de especificar, projetar, 
implementar e testar um sistema de software. Os desenvolvedores de software 
usam uma variedade de diferentes ferramentas de software em seu trabalho. 
As ferramentas são especialmente úteispara apoiar a edição de diferentes tipos 
de documentos e para gerenciar o imenso volume de informações detalhadas 
que é gerado em um projeto de grande porte (SOMMERVILLE, 2011, p. 24).
As principais características de um bom processo são:
• ser configurável para diferentes organizações;
• ser adaptável para diferentes tamanhos e tipos de projetos;
• ser bem definido, gerenciável e repetível;
• conter nomenclatura universal e métricas para planejamento e gerenciamento do projeto;
• ser integrado com ferramentas que o suportem.
Na fusão do produto e do processo, convém descrever como são organizadas as atividades, ações 
e tarefas de cada atividade, escolha do(s) modelo(s) de processo de desenvolvimento, métodos e 
ferramentas aplicáveis do arcabouço do processo. A organização dessas atividades é apresentada por 
um fluxo de processos como mostra a seguir a figura 20, que descreve o ciclo de vida do projeto.
O ciclo de vida do projeto serve para definir o início e o fim do projeto, bem como o início e o fim 
de cada processo que o compõe. Por exemplo, no processo de construção do software, é necessário ter a 
modelagem do componente de software a ser produzido, verificado e validado. Só depois é que se passa 
para a fase de codificação.
Neste livro-texto, serão apresentados alguns dos modelos de processos de software mais utilizados 
no ciclo de vida do projeto.
3.3.1 Estrutura organizacional para o desenvolvimento de software
Basicamente, o ciclo de vida do projeto atende uma estrutura organizacional para o desenvolvimento 
de software, mostrada na figura 20, a qual apresenta as fases da organização, bem como suas formas de 
relacionamento. “A estrutura organizacional é um fator ambiental da empresa que pode afetar a 
disponibilidade dos recursos e influenciar a maneira como os projetos são conduzidos” (PMBOK, 2007, p. 23).
50
Unidade II
Fases da organização
Planejamento
Análise
Estratégico
Tático
Operacional
Projeto
Construção
Relacionamento organizacional
Figura 20 – Estrutura organizacional para o desenvolvimento de 
sistema/software com suas fases e formas de relacionamento
Observe a seguir as fases da organização para o desenvolvimento do software:
• Planejamento. Nessa fase, a empresa ou entidade desenvolvedora estabelece comunicação com 
o cliente/usuário (interno ou externo) que necessita do software. São elaboradas reuniões formais 
e/ou informais dirigidas ao produto de software que será produzido, com o objetivo de fazer 
arguições para entender e saber o que os interessados desejam do software, como o negócio 
funciona, restrições e limitações que devem ser aplicadas. No planejamento, durante a atividade 
de comunicação, faz-se o levantamento de requisitos do negócio. No planejamento, também é 
importante registrar os fatores humanos associados à política de decisão da organização envolvida 
no software. Esse registro servirá de base futura para estabelecer no software as regras do negócio, 
ou seja, as entidades associadas a regras de acesso a determinadas funções do software.
• Análise. Partindo do levantamento de requisitos do negócio, a análise consiste em determinar o 
escopo do sistema e a capacidade do desenvolvedor em produzir o software. As principais tarefas 
dessa fase são agrupar e organizar dados para especificar e modelar os requisitos do usuário, 
determinar os principais componentes do sistema que darão apoio ao software, especificar 
e modelar os requisitos do sistema, bem como definir o custo e o cronograma do ciclo de 
desenvolvimento do software.
• Projeto. Nessa fase é usada engenharia de software para escolher modelos de processos e 
metodologias para o desenvolvimento do software, especificar os requisitos funcionais e não 
funcionais do software e estabelecer procedimentos e técnicas apropriadas para o controle do 
desenvolvimento e operacionalização do sistema. Três arquiteturas são modeladas: arquitetura 
da infraestrutura da TI, arquitetura da lógica de processamento e arquitetura dos dados. No projeto 
também são determinados os seguintes aspectos: padronização de nomenclatura; linguagens, 
técnicas de programação e de gerenciamento dos dados; formas de testes; diagnósticos 
do software.
51
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
• Construção. É a fase de criação do sistema completo e executável, que abrange toda a 
infraestrutura da TI que dará suporte ao sistema. São codificados, verificados e validados os 
programas de computador. Também são ligados os componentes que integram o sistema, são 
feitas as instalações de bibliotecas (internas e externas) e a configuração de todo o ambiente 
operacional. Na entrega do sistema, além dos testes feitos no ambiente do desenvolvedor, novos 
testes são realizados no ambiente do usuário.
Vamos estudar a seguir o relacionamento organizacional no desenvolvimento do software.
Cada fase da organização normalmente trabalha de forma independente e horizontal. Contudo, o 
relacionamento entre as fases da estrutura organizacional ocorre de forma vertical.
• Relacionamento estratégico. É a relação entre a fase do planejamento e a da análise. Assim, 
faz-se a análise de viabilidade do sistema e, de acordo com os requisitos do negócio, escopo do 
sistema e a capacidade do desenvolvedor em produzir o software, avalia-se a relação custo/benefício. 
Da parte do cliente, analisam-se o ambiente operacional, o preço disposto a pagar e o prazo de 
entrega requerido. Da parte do desenvolvedor, avaliam-se os seguintes aspectos: o custo dos 
recursos necessários para produzir o software, o cumprimento do prazo determinado pelo cliente, 
a capacitação técnica do pessoal e os recursos associados.
• Relacionamento tático. É a relação entre a fase da análise e a do projeto. O relacionamento 
tático consiste na definição das funcionalidades e a ordem em que elas serão construídas, com 
base nas prioridades do negócio. As funcionalidades são definidas pautando-se nos requisitos 
do software, ou seja, os requisitos do usuário e os requisitos do sistema determinados na fase 
da análise, bem como os requisitos funcionais e não funcionais definidos na fase do projeto. 
Uma vez integrados os requisitos do software, as funcionalidades do sistema são especificadas e 
vários componentes de software são definidos. Os componentes são integrados ao(s) modelo(s) de 
processos de software, ao custo e ao cronograma do ciclo de desenvolvimento do software.
• Relacionamento operacional. É a relação entre a fase do projeto e a fase da construção. A construção 
do software acompanha os modelos projetados e alinhados aos termos do negócio. À medida que os 
componentes vão sendo construídos no ambiente de desenvolvimento, a implantação do software 
é preparada e são produzidos os manuais técnicos e do usuário. No relacionamento operacional, 
quando o software for implementado no ambiente do usuário, serão elaborados o treinamento do 
usuário, o suporte e a manutenção do software para atender as necessidades de uso.
3.3.2 Generalidades sobre o arcabouço do processo
A fusão do produto e do processo ocorre a partir das atividades de efetivação do processo. Cada 
atividade se inicia com a definição do arcabouço do processo. Arcabouço é um termo técnico que 
significa estrutura, base de apoio, instrumentação para fazer alguma coisa.
O arcabouço do processo de desenvolvimento do software é o conjunto de artefatos de software e 
recursos necessários que devem estar disponíveis para produzir o software. Esses artefatos e recursos 
52
Unidade II
formam um repertório de alternativas que ficam à disposição para serem escolhidas em cada etapa do 
processo ou de uma determinada atividade.
A cada iteração ocorre a escolha dos itens do arcabouço para preparar a equipe e dispor dos recursos 
do arcabouço para a próxima etapa. O arcabouço é uma caixa de métodos e ferramentas apropriadas para 
todas as fases do desenvolvimento do software e que ficam à disposição da equipe de desenvolvimento.
O arcabouço constitui o instrumentalnecessário para compreender novas teorias, desenvolver teses, 
executar serviços ou simplesmente embasar uma opinião. Fazem parte do arcabouço do processo de 
desenvolvimento de software os seguintes aspectos:
• Equipe de desenvolvimento com cargos (hierarquia de decisão), papéis e responsabilidades 
definidas. Mais adiante será apresentada uma metodologia, qual seja, a MR, sugerida pelo PMBOK, 
aplicada a equipes de desenvolvimento de software/sistema.
• Escolha do(s) modelo(s) de processos de software para desenvolvimento. Existem vários 
modelos de processos de software, os quais serão discutidos mais a seguir. Os modelos apresentam 
uma sequência de procedimentos apropriados para todo o desenvolvimento do software/sistema 
ou parte deste. São destaques o modelo cascata, incremental, RUP e outros.
• Métodos e procedimentos a serem aplicados. As metodologias e procedimentos de serviços 
organizam e agilizam a execução das tarefas. Trata-se de métodos já prontos, que abrangem desde 
a comunicação para a aquisição do negócio até a entrega ao cliente do produto software. Um 
exemplo é a metodologia com base na MR citada para a formação da equipe de desenvolvimento.
• Ferramentas e técnicas para o desenvolvimento. As ferramentas e técnicas permitem 
controlar e construir o software de forma eficaz e segura. Exemplo de ferramentas aplicáveis no 
desenvolvimento de software: meios de comunicação on-line, aplicativos para ambiente office, 
ferramentas para o controle de custos e cronograma do projeto, ferramentas de modelagem, de 
codificação e verificação do software.
• Artefatos de software. Os artefatos de software incluem o ambiente operacional de trabalho dos 
stakeholders, tais como: bibliotecas de componentes e objetos que dão suporte a outro software, 
gerenciador de banco de dados, gerenciador de rede, compiladores, interpretadores de comandos, 
padrões de uso de sistemas operacionais, aplicativos e utilitários. É importante que haja um padrão 
de versões e releases das ferramentas de trabalho que estão sendo empregadas e que sejam de 
uso comum entre os stakeholders.
Exemplo de aplicação
Observe a seguir a escolha de instrumentos do arcabouço para análise do projeto, codificação e 
verificação de determinada funcionalidade do software:
53
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
• Escolha da equipe: um analista de sistemas e dois programadores (um deles experiente e 
outro iniciante).
• Modelo de processo de software: modelo incremental.
• Metodolologia: Extreme Programming (XP).
• Ferramentas: controle do projeto com Microsoft Project 2019 e, para modelagem e acompanhamento 
do projeto do produto, o uso da ferramenta CASE ERwin Data Modeler Standard.
• Artefatos de software: sistema operacional Windows 10, navegador Google Chrome e Framework 
Visual Studio 2017.
3.3.3 Gerenciamento da equipe de desenvolvimento
A metodologia sugerida para um bom gerenciamento da equipe de desenvolvimento do software 
tem base na MR do PMBOK. Tal metodologia permite acomodar todos os stakeholders envolvidos no 
desenvolvimento do software.
Os stakeholders são todos os interessados no software/sistema. Em escala na hierarquia de decisão 
estão: cliente, representante do usuário, autor do processo, gerente de projeto, gerente do sistema, 
programador, administrador do banco de dados (DBA – Data Base Administrator).
Dependendo da atividade na MR, a equipe de stakeholders também pode fazer representação para os 
profissionais de influência indireta ou direta aos aspectos operacionais do desenvolvimento do software, 
por exemplo, o gerente do financeiro, que patrocina os recursos da equipe de desenvolvimento, ou o 
representante do cliente interessado no produto software.
A MR é um método abrangente e eficiente para distribuição de papéis e responsabilidades, muito 
útil no processo organizacional da equipe de desenvolvimento. O formato matricial mostra todas as 
atividades associadas a uma pessoa e todas as pessoas associadas a uma atividade (PMBOK, 2007). 
Revisado de forma contínua a cada quatro anos, em 2020 foi lançada a sétima edição do PMBOK.
Uma MR é usada para ilustrar as conexões entre pacotes de trabalho ou atividades e os membros da 
equipe do projeto (PMBOK, 2007).
A matriz é um arranjo de vários elementos num quadro retangular que comporta colunas e 
linhas. O quadro a seguir mostra uma MR para o gerenciamento da equipe de desenvolvimento de 
software. São três alinhamentos de colunas: a primeira coluna é a identificação do registro; a segunda 
é para o nome da atividade; e a terceira é formada por várias outras colunas, com os cargos profissionais 
dos stakeholders que constituem a equipe. Quanto às linhas: a primeira é reservada para o cabeçalho da 
matriz e as demais linhas são as que possuem os nomes das atividades e seus respectivos status.
54
Unidade II
Quadro 1 – Distribuição de colunas e linhas de uma MR 
para o gerenciamento da equipe de desenvolvimento de software
ID Atividade
Stakeholder
Cliente Gerente de projeto
Gerente de 
sistemas
Analista de 
sistemas Program. DBA
1 Teste: usabilidade
2 Estética
A MR pode ser usada também para um mapeamento do processo, substituindo a coluna 
de atividades por uma coluna de processos e a coluna de cargos por uma coluna dos setores da 
empresa desenvolvedora. Observe o quadro a seguir.
Quadro 2 – Distribuição de colunas e linhas de uma MR para mapeamento do processo
ID Processo
Setor da empresa
Cliente Administr. Marketing Projeto Produção Instalação
1 Comunicação
2 Planejamento
3 Modelagem
4 Construção
5 Entrega
A distribuição de responsabilidades não deve ser atribuída ao acaso. A identificação das 
responsabilidades é vital para o controle do recurso humano no processo organizacional.
Para determinar os critérios de responsabilidades, algumas questões devem ser observadas 
quanto aos integrantes da equipe de desenvolvimento:
• Qual o organograma que será aplicado para os stakeholders?
• Quem é o responsável mais cobrado por um determinado resultado do processo, da atividade 
ou da tarefa?
• Quem influencia mais o processo e possui maior poder de decisão?
• Quem é o autor do processo?
• Quem faz a maior parte do trabalho ou quais os integrantes que serão mais exigidos no processo?
55
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
A distribuição de responsabilidades é baseada em atributos, que indicam o papel que o integrante 
tem na equipe. O atributo estabelece o nível de responsabilidade do integrante na atividade em questão. 
A determinação dos atributos depende do tamanho, da complexidade e do nível de qualidade exigida 
no desenvolvimento do software. No exemplo apresentado no quadro a seguir, o modelo de atributos 
proposto para a MR é denominado RASP (responsável; quem aprova; quem dá suporte; e participante). 
O modelo teve como base a “matriz de designação de responsabilidades ilustrada no PMBOK 2000” (PMI 
MG, 2002, p. 111). Na edição atual, o conjunto de atributos da MR recebe o nome de “RACI (responsável pela 
execução, responsável pela aprovação, é consultado e é informado)” (PMBOK, 2017, p. 317, grifo nosso).
Quadro 3 – Modelo de MR aplicada no processo de distribuição de papéis e 
responsabilidades na gestão de requisitos de uma determinada funcionalidade
ID Atividade
Stakeholder
Cliente Gerente de projeto
Gerente de 
sistemas
Analista de 
sistemas Programador DBA
1 Objetivo do negócio R S S P -- --
2 Requisitos do negócio A R S S -- --
3 Modelagem do negócio S R S P -- --
4 Arcabouço do processo P S R S S S
5 Modelagem de casos de uso (RU) A S R S S P
6 Arquitetura do sistema (RS) S P A R S S
7 Arquitetura da informação (RU) (RS) (RF) (RNF) S P A R S S
8 Arquitetura da lógica de processamento (RU) (RF) (RNF) S P S A R S
9 Estrutura do banco de dados (RS) (RF) -- P S S S R
10 Prototipação A S S R S P
11 Codificação -- P S S R S
12 Testes de componente e de integração A S R S S S
Atributos do processo: R = responsável; A = quem aprova; S = quem dá suporte; e P = participanteA distribuição dos atributos deve se orientar de acordo com o grau de envolvimento do 
integrante da equipe na atividade. Na MR RASP, a definição e a função para cada atributo do 
processo na montagem da matriz são:
• R (responsável). É o integrante responsável pelo processo, atividade ou tarefa. O responsável 
alinha a equipe, cria procedimentos de serviços e dispõe os recursos necessários para a execução 
da atividade. É quem responde pelo sucesso de execução da atividade. Para todas as atividades, 
sem exceção, deve existir obrigatoriamente apenas um R.
• A (quem aprova). É o integrante responsável pela validação dos resultados da atividade, que 
normalmente é o cliente (interno ou externo), autor da atividade, diretor ou gerência. Deve ser 
usado apenas um atributo A para a atividade. Porém, não existe obrigatoriedade para aplicar 
esse atributo em todas as atividades, porque nem todas as atividades necessitam de aprovação.
56
Unidade II
• S (quem dá suporte). Compreende os auxiliares diretos que trabalham na atividade junto ao 
responsável (R). Os integrantes que dão suporte podem representar um determinado membro da 
equipe, terceirizados que trabalham na atividade ou consultores. Para cada R é sugerido que 
este seja acompanhado por, pelo menos, um S.
• P (participante). Envolve os convidados a integrar a equipe para a realização de uma determinada 
atividade. Os participantes atuam da atividade de forma indireta e podem representar vários 
perfis na equipe. Os participantes podem ter o perfil de consultores que possuem conhecimentos 
específicos sobre uma determinada atividade ou interessados na atividade por alguma outra 
razão, por exemplo, avaliar o custo da atividade, quando a atividade se referir às operações de 
verificação de integração dos componentes do software.
 Observação
Apesar de ser possível designar dois atributos para o mesmo integrante 
de uma determinada atividade, não é aconselhável que isso seja feito. 
Deve haver bom senso para a adoção desse critério, porque esse fato pode 
acarretar esforço maior de serviços para o integrante, afetar a eficácia da 
atividade na verificação e validação e ainda restringir o conhecimento, que 
é de interesse de todos os envolvidos.
4 MODELOS DE PROCESSOS DE SOFTWARE
4.1 Modelos de processos de software tradicionais
A estrutura organizacional orientada por um modelo de processo é a composição organizada do 
ciclo de vida do desenvolvimento do software em uma coleção ordenada de conjuntos de atividades, 
métodos, práticas e transformações empregadas no desenvolvimento e na manutenção de software. 
O modelo de processo de software fornece estabilidade, controle e organização para as atividades, que, 
se deixadas sem controle, tornam-se caóticas.
 Lembrete
O processo é um diálogo no qual o conhecimento, que deve se transformar 
em software, é reunido e embutido no software (PRESSMAN, 2002).
“Um modelo de processo de software é uma representação simplificada de um processo de 
software. Cada modelo representa uma perspectiva particular de um processo e, portanto, fornece 
informações parciais” (SOMMERVILLE, 2011, p. 19, grifo nosso).
57
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
Logo, um modelo de software deve ser aplicado em partes específicas do processo que atenda toda 
a organização. Em uma visão global, tanto um sistema como um processo são orientados por uma 
estrutura organizacional.
Os modelos de processo de software apresentados neste capítulo são:
• Modelos de processos tradicionais: cascata, balbúrdia, prototipagem, incremental, RAD e espiral.
• Processo unificado: RUP e Praxis.
• Modelos de processo pessoal e de equipe: PSP e TSP.
4.1.1 Modelo cascata (Waterfall ou sequencial linear)
O modelo cascata foi o primeiro modelo publicado do processo de desenvolvimento do software, 
originário de outros processos da engenharia de sistemas. É considerado o modelo clássico do ciclo de 
vida de desenvolvimento do software, dá-se de forma sequencial encadeada e reflete as atividades 
fundamentais do desenvolvimento (PRESSMAN, 2011).
No modelo cascata, como é apresentado na figura 21, as principais atividades são organizadas no 
formato de uma cascata. Só após a última atividade, que é a de operação e manutenção, é feita a 
entrega do sistema ao cliente. O cliente e o desenvolvedor revisam o software ou o sistema.
Definição de 
requisitos
Projeto de sistemas 
e de software
Implementação e 
testes de unidades
Integração e 
testes de sistemas
Operação e 
manutenção
Figura 21 – Modelo cascata para o desenvolvimento do software
A seguir são descritos os conceitos sobre as atividades do modelo cascata:
• Definição dos requisitos: determinam-se funcionalidades, restrições e objetivos do sistema, que 
são estabelecidos com base na comunicação com o cliente e usuários do sistema. Em seguida, são 
definidos em detalhes e servem como especificação do sistema.
• Projeto de sistemas e de software: esse processo agrupa os requisitos em sistemas de software 
e/ou hardware, definindo a arquitetura do sistema.
58
Unidade II
• Implementação e teste de unidades: verifica se cada unidade atende as especificações.
• Integração e testes de sistemas: as unidades são integradas e testadas como um sistema 
completo. Depois dos testes, o software é entregue ao cliente.
• Operação e manutenção: essa é a fase mais longa do ciclo de vida do software. O sistema é 
instalado e colocado em operação e novos problemas surgem. A manutenção procura corrigir 
erros que não foram identificados anteriormente, melhora a interface, aumenta as funções do 
sistema e novos requisitos são descobertos.
Apesar de o modelo cascata servir de base para outros modelos, sua vantagem está nas aplicações 
com sistemas estruturados, que são sistemas únicos e que operam em um ambiente operacional restrito, 
porém de alta capacidade. Outra vantagem é ser aplicado em problemas complexos ou que sejam difíceis 
de serem resolvidos por incluir vários componentes.
A desvantagem é ser inflexível na divisão do projeto em estágios distintos. Na prática, é impossível 
conseguir a totalidade dos requisitos em um momento inicial do projeto, e qualquer problema que 
ocorra em uma das fases só poderá ser detectado após a entrega do software para o cliente, gerando 
retrabalhos ou até mesmo a extinção do projeto. A visão do modelo cascata é de alto nível e não reflete 
o modo como o software é desenvolvido. Mudanças no software durante o desenvolvimento não são 
apreciáveis e, consequentemente, não são sugeridas para projetos orientados a objeto.
4.1.2 Modelo balbúrdia (codifica/corrige ou codifica/remenda)
No modelo balbúrdia, apresentado na figura 22, que também é conhecido como codifica/corrige ou 
codifica/remenda, o software é construído sem nenhum tipo de projeto ou documentação. Normalmente, 
é encontrado em organizações que são administradas por crises, em que não há planejamento nem 
controle com relação aos possíveis riscos. Nesse modelo só existem duas fases: codificação e correção 
(ou remenda).
Nesse modelo ocorrem várias mudanças que levam sempre a novas implementações, fazendo com 
que o software fique cada vez mais longe da maturidade. Caracteriza-se pela administração do caos, pela 
informalidade, pelo loop de gestão codifica/corrige, em que o planejamento, os requisitos do software, a 
modelagem e documentação são caóticos ou até mesmo inexistentes.
Especificação 
da mudança
Implantação
Codifica
Corrige
Figura 22 – Modelo de processo de software balbúrdia
59
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
 Observação
O modelo balbúrdia não é propriamente um modelo de processo de 
software a ser seguido. Na verdade, é um modelo de processo de software 
que deve ser evitado.
4.1.3 Prototipagem
Na arquitetura e no design, é comum montar uma maquete (escala reduzida de uma obra de 
arquitetura). A prototipagem tem o mesmo objetivo de uma maquete. Antes da entrega final do sistema, 
são desenvolvidos protótipos apresentados em um esboço paramelhorar o entendimento de desenvolvedores 
e clientes sobre as possíveis problemáticas que possam surgir.
A prototipagem pode ser classificada de acordo com uma variedade de dimensões. A abordagem de 
prototipação tem um número de vantagens importantes a oferecer:
• Primeira abordagem: todos os requisitos do sistema não necessitam de determinação completa 
e antecipada, podendo estes ser alvo de trocas ainda durante o curso do projeto.
• Segunda abordagem: a entrega da prototipação concisa deve conter definições do sistema e 
especificações para o usuário final. Como consequência, o envolvimento e a satisfação do usuário 
final são fortemente aumentados.
• Última abordagem: a prototipação possibilita testar rapidamente o ambiente de desenvolvimento 
voltado para a funcionalidade, o desempenho e a interface de dados.
Dentro dessa visão, o projeto passa por várias investigações para garantir que desenvolvedor, usuário 
e cliente cheguem a um consenso sobre o que é necessário e o que deve ser proposto. Como muitos 
usuários não possuem uma visão ampla sobre a tecnologia, esse método de desenvolvimento é bastante 
interessante, permitindo que o usuário interaja significativamente no sistema.
As atividades da prototipagem podem ser determinadas a partir do paradigma de prototipagem, 
apresentado por Pressman (2002), como é mostrado na figura 23, que é um procedimento a ser seguido 
pelo engenheiro de software.
Ouvir o 
cliente
Construir / revisar 
o protótipo
O cliente testa 
o protótipo
Figura 23 – O paradigma de prototipagem
60
Unidade II
Observe a seguir o ciclo de atividades da prototipagem:
• Começar por um conjunto bem simples de requisitos fornecidos pelos clientes e usuários.
• Clientes e usuários fazem testes e experimentações. Assim que eles decidem o que querem, os 
requisitos são revisados, alterados, detalhados e documentados, e o sistema passa a ser codificado 
ou os protótipos simples são desenhados para análise de funções e interface do usuário.
• Novamente as alternativas são apresentadas e discutidas com os usuários. O processo de 
prototipagem continua, passa para uma nova etapa do ciclo de desenvolvimento do software ou 
implementa uma nova funcionalidade até a entrega definitiva do sistema.
Vantagens da prototipagem:
• A prototipagem é um ciclo de vida eficiente, que possibilita ao desenvolvedor criar o modelo do 
software que será construído.
• É apropriada para quando o cliente definiu os objetivos do software, mas não identificou detalhes 
dos requisitos de entrada, processamento e saídas.
• É útil para identificar os requisitos do software. Esse processo possibilita ao desenvolvedor, 
cliente e usuário examinarem antecipadamente os requisitos, reduzindo os riscos e incertezas do 
desenvolvimento. A chave é definir as regras do jogo logo no começo.
• Possui velocidade de desenvolvimento no sentido de propiciar ao usuário uma visão mais real do 
software que se está projetando (o usuário pode enxergar telas e relatórios resultantes do software).
• Apresenta envolvimento direto do usuário à medida que o software é desenvolvido. O usuário 
passa a ser um coautor do desenvolvimento.
Desvantagens da prototipação:
• Casos em que o cliente não sabe que o software que ele está testando ainda não foi concluído 
e não considerou, no desenvolvimento, a qualidade global e a manutenibilidade ao longo da 
operacionalização do software.
• A prototipação pode dar ao usuário a impressão de que praticamente qualquer sugestão pode 
ser implementada, de modo a não importar qual estágio do processo de desenvolvimento está 
em andamento. Além disso, para os usuários não fica claro o porquê da demora em entregar a 
aplicação final depois que uma versão demo do sistema foi exibida. Então, o cliente não aceita 
bem a ideia de que a versão final do software ainda será construída e, por conseguinte, “força” a 
utilização do protótipo como produto final.
61
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
4.1.4 Incremental
O modelo de processo incremental (figura 24) aplica sequências lineares dos elementos do 
modelo cascata e aplica de forma evolucionária incrementos com base no prazo de entrega, aprovação 
e validação. O modelo de processo incremental é iterativo e tem como objetivo apresentar um produto 
operacional a cada incremento realizado, ou seja, é desenvolvido com o conceito de versões.
Iteração é uma estratégia de planejamento para retrabalhar o processo, revisar tempos, comentar 
falhas, erros e tecnologia, melhorar o sistema e distribuir tarefas. A cada iteração são geradas novas 
versões, que são os registros de acompanhamento das mudanças no software até o release, que é 
o registro da versão que é liberada para o usuário. As iterações do processo são necessárias para a 
melhoria contínua do processo de desenvolvimento do software.
Funcionalidade
Incremento 1
Incremento 2
n Incremento
Entrega do 
Incremento 1
Entrega do 
Incremento 2
Tempo
Comunicação
Comunicação
Comunicação
Planejamento
Planejamento
Planejamento
Modelagem
Modelagem
Modelagem
Construção
Construção
Construção
Implantação
Implantação
Implantação
Figura 24 – Modelo de processo incremental
Na prática, o usuário quer sempre o sistema para ontem e com qualidade. O modelo incremental 
parte do princípio de que é preferível o usuário receber o sistema em partes, permitindo que esses 
recursos já possam ser utilizados enquanto os demais estão em desenvolvimento.
Nesse modelo, o sistema será especificado na documentação dos requisitos e “quebrado” em 
subsistemas por funcionalidades. As versões são definidas, começando com um pequeno subsistema 
funcional e então são adicionadas mais funcionalidades a cada versão. Por meio dessas novas versões, 
pode-se dizer que o modelo incremental chega lentamente à funcionalidade total.
O modelo incremental é o mais indicado na atualidade para o desenvolvimento de software, 
principalmente nos projetos orientados a objetos. Esse modelo é adaptável a vários tamanhos de 
sistemas/software e possui várias vantagens em relação aos demais modelos de processos.
A seguir são apresentadas as diversas vantagens do modelo de processo incremental:
• As iterações permitem aprendizagem e melhoria contínua do processo, bem como maturidade e 
composição progressiva do produto de software.
62
Unidade II
• Cada iteração/incremento produz um conjunto de produtos utilizáveis prontos para uso.
• A redistribuição contínua de tarefas para os envolvidos ao longo do projeto permite melhorar 
a cultura da equipe de desenvolvimento. Os desenvolvedores trocam ideias e adquirem melhor 
conhecimento sobre o produto que é para ser entregue.
• O usuário é encorajado a participar do desenvolvimento do software.
• Identificam-se falhas, riscos e dúvidas no projeto.
• Destacam-se inconsistências entre a análise, o projeto e a implementação.
4.1.5 Modelo espiral
É um modelo evolucionário, que combina a natureza iterativa da prototipagem com o estilo clássico 
do modelo cascata.
A figura 25 mostra o modelo espiral, cujo software é desenvolvido em uma série de versões 
evolucionárias e em cada ciclo da espiral é definido um conjunto de atividades de arcabouço. Então, 
depois de completada a espiral, um release é definido e, após várias iterações, o software atinge 
sua totalidade.
Determina objetivos, 
alternativas e 
restrições
Avalia alternativas 
e riscos
Desenvolve e 
testa
Restriç
ões 4
Restriç
ões 3
Restriç
ões 2
Restrições 1
Plano de implementação Teste de aceitação
Teste do sistema
Teste de 
unidades
Alternativas 1
Requisitos, 
plano do 
ciclo de vida
Plano de desenvolvimento
Plano de testes 
e de integração
Orçamento 1Orç
ame
nto
 2
Orça
men
to 3
Or
ça
me
nt
o 4
Análise de riscos 4
Análise de riscos 3
Protótipo 3 Protótipo 4
Projeto 
detalhado
Pr
oje
to
 de
 
so
ftw
ar
e
Projet
o verifi
cado 
e valid
ado
Valida
ção de
 
requis
itos
Re
qu
isit
os 
de 
sof
tw
are
Código
Análise de riscos 2
Protótipo 2
Análise de riscos1
Concepção 
da operação
Protótipo 1
Alt
ern
ativ
as 4
Alt
ern
ativ
as 3
Alt
ern
ativ
as 2
Início
Figura 25 – Modelo de processo espiral
63
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
O modelo espiral é mais adequado para sistemas complexos, softwares de grande porte e que 
exigem um alto nível de iterações com os usuários, o que possibilita uma melhor abordagem de todos 
os problemas do sistema.
Basicamente, o modelo espiral é dividido em quatro setores:
• Ativação: definem-se os objetivos específicos, identificam-se as restrições para o processo e é 
preparado um plano de gerenciamento detalhado. Identificam-se também os riscos sem analisá-los 
profundamente (foco da próxima fase).
• Análise de riscos: com base nos riscos identificados na fase anterior, são realizadas análises 
detalhadas e tomadas providências para amenizar esses riscos. Criam-se várias versões de 
protótipos para apoiar essa fase.
• Desenvolvimento: é fundamentado pelas fases anteriores. Escolhe-se o modelo mais adequado 
para o desenvolvimento do sistema. A bagagem profissional e a vivência do desenvolvedor em 
outros sistemas são estratégicas para essa fase. Dependendo da complexidade do sistema, às 
vezes é necessária a presença de um consultor especialista.
• Planejamento: o projeto é revisto nessa fase e é tomada uma decisão de realizar um novo ciclo, 
na espiral ou não. Se continuar com o aperfeiçoamento do sistema, é traçado um plano para 
a próxima fase do projeto. Um diferencial nesse modelo comparado com outros é a explícita 
consideração de riscos dentro do projeto como um todo. Para tanto, criou-se uma fase específica 
de análise de riscos nesse modelo.
4.1.6 RAD
Outros modelos se apresentam com grande utilidade. Alguns não deixam de ser a combinação de 
outros modelos, integrando dois ou mais conceitos de outros modelos, e um deles é o desenvolvimento 
rápido de aplicações (RAD – Rapid Application Development). Considerado um modelo misto e de 
características genéricas, é amplamente utilizado.
RAD é uma abordagem para desenvolvimento de software com objetivo de entregar software 
rapidamente. Comumente envolve o uso de ferramentas de programação de banco de dados e de apoio 
ao desenvolvimento, como geradores de telas e relatórios (SOMMERVILLE, 2011).
A estratégia para tais ações é o uso da abordagem de construção baseada em componentes. 
Assim, o desenvolvimento completo de um sistema de relativa complexidade (observe a figura 26) chega 
a atingir 60 a 90 dias.
64
Unidade II
Equipe n° 1
Equipe n° 2
Equipe n° 3Modelagem 
de negócios Modelagem 
de negócios Modelagem de negócios
Modelagem 
de dados
Modelagem 
de dados
Modelagem 
de dados
Modelagem 
de processo
Modelagem 
de processo
Modelagem 
de processo
Modelagem 
de aplicação
Modelagem 
de aplicação
Modelagem 
de aplicação
Teste de entrega
Teste de entrega
Teste de entrega
60 a 90 dias
Figura 26 – Modelo RAD
Enquanto outros modelos ficam na tentativa de abordar todas as principais atividades do 
desenvolvimento, o modelo de processo RAD permite que uma equipe crie um sistema plenamente 
funcional, dentro de um curto período. O modelo RAD é um processo de software incremental, que 
enfatiza um ciclo de desenvolvimento curto (PRESSMAN, 2002).
Vantagens do modelo RAD:
• RAD é um modelo sequencial linear, que enfatiza um ciclo de desenvolvimento extremamente 
curto. Possui entregas pequenas, entre 60 e 90 dias.
• O desenvolvimento rápido é obtido usando uma abordagem modularizada e de construção 
baseada em componentes. Esse processo traz facilidades de gerenciamento e para encontrar 
desvios no escopo.
• Os requisitos devem ser suficientes para alcançar o projeto restrito.
• O modelo RAD é usado principalmente para aplicações de sistemas de informação grandes e 
modularizados.
• Cada módulo ou função principal pode ser direcionada para uma equipe RAD separada e então 
ser integrada para formar o todo. Observe a figura 26.
• Visibilidade ao projeto, assim o cliente percebe pequenas entregas.
65
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
Desvantagens do modelo RAD:
• Ressalta-se nesse modelo que se o sistema não for adequadamente modularizado, a construção 
de componentes necessários ao RAD será problemática.
• O RAD pode não ser adequado quando os riscos técnicos são altos, por exemplo, se existir a 
necessidade de uma aplicação usufruir tecnologias novas não dominadas pela equipe.
• Exige recursos humanos suficientes para todas as equipes.
• Exige que desenvolvedores e clientes estejam comprometidos com as atividades de “fogo-rápido” 
a fim de terminar o projeto num prazo curto.
• Nem todos os tipos de aplicação são apropriados para o RAD.
• Deve ser possível a modularização efetiva da aplicação. Se alto desempenho é uma característica 
do RAD e o desempenho do sistema estiver ligado ao sincronismo das interfaces dos componentes, 
a abordagem RAD pode não funcionar.
 Lembrete
O modelo incremental é o mais indicado na atualidade para o 
desenvolvimento de software, principalmente nos projetos orientados 
a objetos
4.2 Processo unificado
4.2.1 RUP
O processo unificado racional (RUP – Rational Unified Process) é um processo proprietário de 
engenharia de software criado pela Rational Software Corporation. Atualmente, é representado 
pela IBM, por isso ganhou um novo nome, o IRUP, que agora é uma abreviação de IBM Rational 
Unified Process.
O RUP é um processo da engenharia de software e também é considerado como uma metodologia 
de desenvolvimento de software. Fornece às organizações um processo de software maduro, 
rigoroso e flexível.
É distribuído on-line sob o formato eletrônico, utilizando tecnologia web, disponibilizando 
upgrades regulares de software pela Rational Software. A figura 27 ilustra o ambiente operacional 
via web do RUP.
66
Unidade II
Figura 27 – Plataforma de trabalho RUP pela web
O RUP pode ser configurado de acordo com as necessidades de cada organização. É documentado, 
desenhado, desenvolvido, distribuído e mantido como uma ferramenta de software usando a linguagem 
de modelagem unificada (UML – Unified Modeling Language).
4.2.1.1 Características do RUP
O RUP oferece uma abordagem baseada em disciplinas para atribuir tarefas e responsabilidades 
dentro de uma organização de desenvolvimento. Sua meta é garantir que a produção de software de alta 
qualidade atenda as necessidades dos usuários dentro de um cronograma e de orçamentos previsíveis.
O RUP captura as principais boas práticas modernas da engenharia de software: desenvolvimento 
iterativo, gestão de requisitos, arquitetura baseada em componentes, uso de software de modelos visuais, 
verificação contínua da qualidade e gestão e controle de mudanças de software.
Desenvolvimento iterativo
Diferentemente do método clássico de desenvolvimento, um grande sistema de software não 
permite que se defina o problema e se construa uma solução eficiente em um único passo. Dependendo 
da complexidade, os requisitos mudam com frequência, devido a vários fatores, tais como: restrições 
67
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
da arquitetura empregada, mudanças nas necessidades primárias do cliente e mudanças refletidas em 
virtude de um refinamento do problema inicialmente levantado.
Tendo como base o desenvolvimento iterativo, é possível acomodar novos requisitos ou mudanças, 
aperfeiçoar o entendimento do projeto a cada refinamento sucessivo, endereçando os itens de risco e 
permitindo a identificação e atenuação dos riscos que circundam o projeto.
Cada iteração pode corresponder a um novo release do sistema, diminuindo o risco do projeto e, 
assim, permitindo ao cliente uma avaliação do progresso do projeto e de sua gerência (KRUCHTEN, 2001).
Gestão de requisitos
Documentar apropriadamente é crucial para o sucesso de um grande projeto. O RUP é conduzido 
por casos de uso e sustentado em outros diagramas da UML. O RUP descreve como documentar as 
funcionalidades, restrições do sistema, restrições do projetoe os requisitos por meio de casos de uso 
(use cases), desde a análise de requisitos até o teste do sistema finalizado. Os casos de uso e cenários são 
exemplos de artefatos do processo que se mostram altamente eficazes para documentar os requisitos 
funcionais (KRUCHTEN, 2000).
Arquitetura baseada em componentes
O RUP é baseado na arquitetura de componentes do sistema. Promove a definição inicial de uma 
arquitetura de software robusta, que facilita a parametrização do desenvolvimento, a reutilização e 
a manutenção.
Uma arquitetura baseada em componentes viabiliza um sistema extensível, promovendo a 
reutilização de software. Kruchten (2000) afirma que o RUP suporta essa sistemática de construção de 
sistema, focando-se numa arquitetura executável nas primeiras fases do projeto.
Uso de software de modelos visuais
Ao representar o projeto utilizando construções gráficas, o RUP apresenta de forma eficiente uma 
visão geral da solução, o que permite também que clientes sem nenhuma afinidade com a área de 
desenvolvimento de sistemas possam facilmente compreender o projeto e, dessa forma, desenvolverem-se 
mais com o projeto. A linguagem UML se transformou em um padrão para as indústrias ao representar 
projetos e é utilizada amplamente pelo RUP (KRUCHTEN, 2000).
Verificação contínua da qualidade
Assegurar a qualidade do software durante do desenvolvimento do projeto é algo intensivo feito 
pelo RUP, que assiste todo o processo envolvendo todos os membros no controle e planejamento da 
qualidade (KRUCHTEN, 2000).
68
Unidade II
Gestão e controle de mudanças do software
O RUP define métodos para controlar e monitorar as mudanças a fim de garantir que mudanças não 
venham a comprometer inteiramente o sucesso do projeto (KRUCHTEN, 2000).
4.2.1.2 Fases e workflow (ou disciplinas de trabalho)
Cada ciclo do RUP se divide em fases e o ciclo resulta numa nova geração do produto ou parte dele. 
Cada fase se divide em iterações a serem definidas em cada projeto concreto. O RUP possui quatro fases, 
seis disciplinas de trabalho e três disciplinas gerenciais.
Na figura 28 as fases são apresentadas na dimensão horizontal e o workflow, na dimensão 
vertical (disciplinas).
Fases
Disciplinas
Modelagem de negócios
Requisitos
Análise e design
Implementação
Teste
Implantação
Gerenciamento de 
configuração e mudança
Gerenciamento de projeto
Ambiente
Iterações
Iniciação
Inicial Elab. n° 1 Elab. n° 2 Const. n° 1
Const. 
n° 2
Const. 
n° N
Trans. 
n° 1
Trans. 
n° 2
Elaboração Construção Transição
Figura 28 – Arquitetura do RUP com suas fases e workflow
A figura 28 mostra um processo bidimensional na arquitetura do RUP. Na dimensão horizontal 
estão as fases do processo de desenvolvimento (estrutura dinâmica), representando mudanças no 
tempo de desenvolvimento; na dimensão vertical, os workflows (estrutura estática), representando 
mudanças no esforço despendido no desenvolvimento.
69
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
Estrutura dinâmica
A estrutura dinâmica corresponde às quatro fases do RUP, que equivalem ao ciclo de vida 
do desenvolvimento de um produto de software. Ao final de cada uma dessas fases, verifica-se 
se os objetivos da fase foram concluídos. Após completar as quatro fases, uma versão release 
do software estará completa e, para cada nova versão, o software passará por todas as fases 
novamente (desenvolvimento evolucionário).
• Iniciação/Concepção (Inception/Conception)
— Definir o escopo e as fronteiras do sistema (contrato com o cliente).
— Elaborar casos de uso crítico ao sistema (atores e requisitos).
— Elaborar o business case do sistema, que deve incluir os critérios de sucesso, a avaliação de 
riscos, uma estimativa de recursos e um cronograma dos pontos mais importantes.
— No final: obter concordância dos stakeholders, compreensão dos requisitos e credibilidade nas 
estimativas. O projeto pode ser cancelado ou fortemente reformulado se falhar esse marco.
• Elaboração (Elaboration)
— Garantir que o projeto, a arquitetura e o conjunto de requisitos estejam estáveis para garantir 
o cumprimento de prazos e custos.
— Produzir protótipos evolucionários e exploratórios.
— Eliminar os elementos de maior risco.
— Descrever requisitos adicionais (não funcionais e com menor grau de importância).
— Revisar o business case.
— No final: obter estabilidade da arquitetura, demonstrar que o projeto é viável (tempo, custo) e 
que o projeto pode ser cancelado ou reformulado se falhar nesse marco.
• Construção (Construction)
— Minimizar custos através da utilização ótima de recursos.
— Desenvolver versões utilizáveis.
— Completar os processos de análise, projeto, implementação e testes das funcionalidades 
do sistema.
70
Unidade II
— Desenvolver de maneira iterativa e incremental um produto que esteja pronto para ser entregue 
aos usuários, um manual e uma descrição da versão corrente.
— Decidir se o software, o site e os usuários estão prontos para a implantação do sistema.
— No final: a disponibilização pode ser adiada se os critérios não forem cumpridos.
• Transição/Implantação (Transition): atividades de entrega do software
— Testar para validar o novo sistema.
— Treinar usuários e pessoas responsáveis pela manutenção.
— Iniciar as tarefas de marketing e distribuição.
— No final: obter satisfação dos clientes, gastos e custos dentro do aceitável.
Estrutura estática
Na estrutura estática, o RUP é representado por suas nove disciplinas (seis disciplinas de trabalho e 
três gerenciais). Cada uma delas utiliza quatro elementos primários de modelagem: papéis, atividades, 
artefatos e workflows.
• Papéis. Descrevem o comportamento e responsabilidades de um indivíduo ou grupo de 
indivíduos de uma equipe. O comportamento de cada papel é dado pelo conjunto de atividades 
desempenhadas por ele. As responsabilidades de cada papel estão associadas a artefatos que 
devem ser desenvolvidos ao longo do processo. Exemplo de papéis: especificador de casos de 
uso, arquiteto de softwares, projetista de interface, gerente de projetos.
• Atividades. Realizadas pelos papéis, consistem em ações que atualizam ou geram artefatos. 
A granularidade de uma atividade é expressa em horas ou dias. As atividades são divididas em 
etapas de tarefas: entendimento, realização, revisão.
O quadro a seguir destaca exemplos de atribuições de papéis e responsabilidades:
Quadro 4 
Atividade Papel
Planejar uma iteração Gerente de projetos
Determinar casos de uso e atores Analista de sistemas
Executar teste de desempenho Analista de testes de desempenho
71
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
• Artefatos. Informações produzidas, modificadas ou utilizadas ao longo do desenvolvimento 
de software. São utilizados como entrada para atividades e são produzidos como saída. 
Exemplos: modelos (de caso de uso, projetos), documentos (plano de negócios, conjunto de 
artefatos, plano de projeto), código-fonte.
• Workflow. Define uma sequência de atividades que produzem resultados observáveis na 
forma de artefatos. Pode ser expresso em forma de diagramas de sequência, colaboração 
e atividades. O workflow é apresentado em seis disciplinas de trabalho e três disciplinas 
gerenciais, descritas a seguir.
— Disciplinas de trabalho:
– Modelagem de negócio (business modeling). A intenção é melhorar o entendimento do 
negócio através do desenvolvimento de um modelo de negócios. Os documentos gerados 
são casos de uso de negócio e modelo de objetos de negócio.
– Requisitos (requirements). Possibilita um melhor entendimento dos requisitos do sistema 
partindo de um acordo com o cliente, com o objetivo de oferecer uma orientação aos 
desenvolvedores. É produzido um modelo de caso de uso detalhado e um protótipo do sistema.
– Análise e projeto (analysis and design). Os requisitos capturados na disciplina anterior 
são transformados em projeto. Modelos de análise e projeto são gerados.
– Implementação (implementation). Nessa fase, o projeto é transformado em código. 
A estratégiaé desenvolver o sistema em camadas, particionando em subsistemas. O resultado 
final é um componente testado que faz parte do produto final.
– Teste (test). Elaboração de testes e verificação se todos os requisitos foram cumpridos. 
Os documentos gerados são os modelos e casos de testes.
– Utilização (deployment). Torna o produto disponível para o usuário final. Responsável pelo 
empacotamento do produto, instalação, treinamento ao usuário e distribuição do produto.
— Disciplinas gerenciais:
– Gerenciamento de configuração. Controla as modificações e mantém a integridade dos 
artefatos do projeto.
– Gerenciamento de projeto. Descreve várias estratégias para o trabalho com um 
processo iterativo.
– Ambiente. Abrange infraestrutura necessária para o desenvolvimento do sistema.
72
Unidade II
4.2.2 Praxis
De acordo com Paula Filho (2015b), o modelo Praxis foi desenvolvido pela equipe de Barry Boehm 
com base no modelo de ciclo de vida espiral, com as mesmas raízes no processo unificado, porém com 
estrutura diferente de disciplinas.
Igualmente ao RUP, o modelo Praxis é dirigido por casos de uso, centrado na arquitetura, é iterativo 
e incremental. A modelagem do Praxis é feita com uso do EPF (Eclipse Process Framework), que facilita 
a adaptação, a personalização, a extensão e a evolução. Herda a arquitetura RUP, complementada por 
um metamodelo da parte estática do RUP e pelo perfil Praxis.
 Saiba mais
Leia a referência a seguir:
PAULA FILHO, W. P. O processo Praxis 3.0. Vdocuments, 17 abr. 2015b. 
Disponível em: https://bit.ly/2Oj7zFo. Acesso em: 3 mar. 2021.
4.3 Modelos de processo pessoal e de equipe
4.3.1 PSP
O processo de software pessoal (PSP – Personal Software Process) é um processo de desenvolvimento 
criado pelo SEI (Software Engeneering Institute) e é específico para engenheiros de software (HUMPHREY, 
1995). O PSP orienta o planejamento e o desenvolvimento dos componentes do software e tem como 
principais objetivos:
• melhorar a estimativa de prazo e esforço para o desenvolvimento do software;
• melhorar o planejamento e o acompanhamento de cronogramas;
• evitar sobrecarga de serviços;
• criar um comprometimento pessoal com a qualidade e com a melhoria contínua do processo.
 Observação
O PSP é um modelo de processo que ajuda os profissionais a serem 
melhores engenheiros de software. A ideia é que a melhoria da capacidade 
da organização depende da melhoria de cada indivíduo.
73
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
A estrutura do PSP é formada por quatro níveis, como mostra a figura 29:
PSP 2
Revisões de código
Revisões de projeto
PSP 1
Estimativa de testes
Relatório de testes
PSP 0
Processo atual
Registro de tempo
Registro de defeitos
Padrão de tipos de defeitos
Gestão de 
qualidade 
pessoal
Processo de 
planejamento 
pessoal
Processo 
de medição 
pessoal
PSP 3
Desenvolvimento cíclico
PSP 2.1
Padrões de projeto
PSP 1.1
Planejamento de tarefas
Cronogramas
PSP 0.1
Padrão de codificação
Medida de tamanho
PIP
Figura 29 – Estrutura do PSP
A proposta do PSP é interagir com as práticas organizacionais da qualidade (por exemplo: ISO 9001 
e ISO 9126) e de modelos de qualidade (CMMI e SPICE), de forma que os processos pessoais sejam 
conhecidos, controlados e melhorados.
As funções dos quatro níveis do PSP são:
• PSP0 (processo referencial): estabelecer práticas de medidas e alguns formatos de relatórios 
que constituem o referencial para a implantação da melhoria contínua pessoal. Não afeta as 
práticas de projeto, codificação e teste, apenas mede.
• PSP1 (processo de planejamento pessoal): acrescenta um relatório sobre testes e práticas de 
estimativa de tamanho e recurso. Depois introduz o planejamento de tarefas e a elaboração 
de cronogramas.
• PSP2 (processo de gestão pessoal da qualidade): introduz as técnicas de inspeção e revisão 
para detecção de erros mais cedo.
• PSP3 (processo pessoal cíclico): os níveis 0 a 2 são aplicáveis a pequenos programas. Para 
grandes projetos, é preciso usar os princípios contidos no nível PSP3.
74
Unidade II
Exemplo de aplicação
Estratégia de aplicação do PSP:
• Dividir o projeto em módulos.
• Realizar o desenvolvimento iterativo e incremental em cada módulo.
• Para cada iteração, usar um ciclo completo de: projeto, codificação e teste (como em PSP2).
• Controlar a qualidade de cada iteração, assumindo que a garantia das iterações anteriores foi 
conseguida ou, pelo menos, verificada.
4.3.2 TSP
O processo de software da equipe (TSP – Team Software Process) foi desenvolvido por Humphrey 
(1995) – criador do CMMI e PSP –, com enfoque na equipe de trabalho, já que o indivíduo não trabalha 
sozinho no desenvolvimento de software.
O TSP foi criado para ser seguido por desenvolvedores previamente treinados no PSP, para que 
pudessem trabalhar em equipes auto-organizadas para desenvolver softwares de qualidade, podendo 
vir a ser a solução para pequenas organizações de software que sejam consideradas muito pequenas 
para enfrentar as complexidades do CMMI.
As equipes são autogerenciadas:
• A gerência provê orientação e suporte.
• A equipe planeja o próprio trabalho, acompanha o progresso e gerencia as tarefas do dia a dia.
• Cada membro da equipe tem papéis e responsabilidades definidos.
• Todos os membros participam do planejamento do projeto e da tomada de decisões-chave.
• A equipe é proprietária dos seus processos e pode mudá-los sempre que necessário.
• Os processos da equipe são baseados em sua experiência, conhecimento e maturidade.
• As equipes aplicam práticas do nível 5 do CMMI.
O TSP provê um conjunto de elementos que guiam os desenvolvedores para: criar equipes eficazes; 
estabelecer metas e planos para a equipe; acompanhar e reportar o trabalho. Esse conjunto de elementos 
é formado por:
75
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
• Scripts de processos: são guias específicos de trabalho.
• Formulários, relatórios e gráficos: reporte sobre métodos e métricas aplicáveis, em que são 
gerados dados estatísticos a partir do histórico do projeto ou algum script de processo.
• Papéis: são definidos para cada membro da equipe, podendo adquirir as seguintes funções 
como papéis: responsável pela interação com o cliente, responsável pelo design, responsável pela 
implementação, gestor de testes, gestor de planeamento, gestor de processos, gestor de qualidade, 
responsável pelo suporte e líder de equipe.
O TSPi (Introductory Team Software Process) é uma versão simplificada do TSP para equipes e 
projetos menores, que apresenta a seguinte arquitetura:
• estrutura simples construída sobre o PSP;
• desenvolvimento incremental;
• métricas padronizadas de qualidade e desempenho;
• métricas precisas para equipes e indivíduos;
• uso de avaliações de papéis e de time;
• exigência de disciplina de processo;
• sugestões nos problemas do trabalho em equipe.
76
Unidade II
 Resumo
Toda a produção é organizada por processos, que são usados para criar 
um produto, para desenvolver, construir, implantar e manter o produto. 
Nesta unidade, vimos como projetar e aplicar determinado processo.
Enfatizou-se a estrutura organizacional como regra para construir um bom 
software, a qual tem ferramentas e técnicas específicas para produzi-lo. 
O arcabouço do processo compõe os recursos necessários para o projeto e 
a construção do produto.
Todo o processo é um conjunto de atividades e tarefas que, organizadas, 
conduzem a uma prática ou estratégia que melhoram a produtividade. 
Nesse contexto, a organização da equipe de desenvolvimento é de extrema 
importância, pois o software não é um produto manufaturado, é um produto 
criado pela engenharia inteligente dos interessados no software. Trata-se 
da inteligência organizacional, responsável pelo sucesso do software.
Toda a criação do produto software segue uma série de passos 
previsíveis. Se forem conduzidos por uma equipe capacitada, vão garantir 
o sucesso do software. Esses passos previsíveis são ditados em modelos 
de processoque mostram os métodos e as técnicas aplicadas no ciclo de 
desenvolvimento de software. Foram elencados os principais modelos: 
cascata, incremental, espiral, RAD, processos unificados, modelos 
pessoais e de equipe.
Por fim, foram abordadas as diversas formas de construir o software.
77
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
 Exercícios
Questão 1. Um processo é uma sequência de fatos, atividades ou operações que apresentam certa 
unidade e/ou que se reproduzem com determinada regularidade. Um processo deve ser delimitado pelos 
seus pontos de início e de fim. Os pontos de início (input) e de fim (output) são marcas de referências 
(milestones) úteis para o acompanhamento do processo. Essas marcas servem para controlar, medir e 
avaliar o processo. Além disso, permitem projetar melhorias e tendências.
Nesse contexto, analise as afirmativas.
I – O input é o ponto inicial, normalmente marca os itens necessários para dar entrada ao processo.
II – O processo é a combinação organizada dos itens de entrada para criar um produto de software 
ou de sistema.
III – No output, são feitos registros, medições e verificações para confrontar o resultado obtido com 
o objetivo planejado para o processo.
É correto o que se afirma em
A) I, apenas.
B) I e II, apenas.
C) II, apenas.
D) I e III, apenas.
E) I, II e III.
Resposta correta: alternativa E.
Análise das afirmativas
I – Afirmativa correta.
Justificativa: o input é o ponto inicial. Ele normalmente marca os requisitos de entrada do processo, 
como objetivos, recursos humanos necessários, materiais, tecnologia a ser empregada, fornecedores, 
componentes do software/sistema, metodologias, ferramentas, custo, cronograma, procedimentos de 
trabalho e documentos.
78
Unidade II
II – Afirmativa correta.
Justificativa: o processo é a combinação organizada dos itens de entrada para criar um produto 
de software ou de sistema, um componente de outro produto ou executar um determinado trabalho. 
O processo é a forma pela qual os inputs são trabalhados para que sejam obtidos os outputs.
III – Afirmativa correta.
Justificativa: o output é a finalização do processo com a entrega do produto ou serviço determinado. 
No output, são efetuados registros, medições e verificações para confrontar o resultado obtido com o 
objetivo planejado para o processo.
Questão 2. Entre os modelos de processo de software, podemos destacar:
• os modelos de processos tradicionais, como o modelo em Cascata, Balbúrdia, Prototipagem, 
Incremental, RAD e Espiral;
• os modelos de processo unificado, como os modelos RUP e Praxis;
• os modelos de processo pessoal e de equipe, como os modelos PSP e TSP.
Com relação ao modelo de processo tradicional em Cascata, avalie as asserções a seguir e a relação 
proposta entre elas.
I – Podemos afirmar que a vantagem do uso do modelo em Cascata reside no fato de ele poder ser 
aplicado em problemas complexos ou difíceis de resolver, por incluir vários componentes.
PORQUE
II – O modelo em Cascata é inflexível na divisão do projeto em estágios distintos, e qualquer 
problema que ocorra em uma das fases só poderá ser detectado após a entrega do software 
para o cliente.
A respeito dessas asserções, assinale a alternativa correta.
A) As asserções I e II são proposições verdadeiras, e a II é uma justificativa correta da I.
B) As asserções I e II são proposições verdadeiras, e a II não é uma justificativa correta da I.
C) A asserção I é uma proposição verdadeira, e a II é uma proposição falsa.
D) A asserção I é uma proposição falsa, e a II é uma proposição verdadeira.
E) As asserções I e II são proposições falsas.
Resposta correta: alternativa B.
79
FUNDAMENTOS DE ENGENHARIA DE SOFTWARE
Análise da questão
Apesar de o modelo em Cascata servir de base para outros modelos, a vantagem desse modelo está 
nas aplicações com sistemas estruturados, que são sistemas únicos e que operam em um ambiente 
operacional restrito, porém de alta capacidade. Outra vantagem é poder ser aplicado em problemas 
complexos ou difíceis de serem resolvidos.
A desvantagem do modelo em Cascata é ser inflexível na divisão do projeto em estágios distintos. 
Na prática, é impossível conseguirmos a totalidade dos requisitos no momento inicial do projeto, e 
qualquer problema que ocorra em uma das fases só poderá ser detectado após a entrega do software 
para o cliente, o que geraria retrabalhos ou até mesmo a extinção do projeto.
A visão do modelo em Cascata em geral não reflete o modo como o software é desenvolvido. 
Mudanças no software que ocorrem durante seu desenvolvimento não são previstas e, por consequência, 
não são previstas ações de verificação no processo inicial.
Note que as duas asserções são verdadeiras, entretanto, o fato de o modelo em Cascata ser inflexível 
não está atrelado à vantagem de ele ser aplicável em problemas complexos. Com isso, a alternativa 
correta é a B.

Continue navegando