Buscar

Introdução à Engenharia de Software

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 17 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 17 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 17 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

AULA 1
ANÁLISE E MODELAGEM DE 
PROCESSOS 
Prof. Marcelo Carneiro Gonçalves 
 
 
02 
CONVERSA INICIAL 
No tema de hoje, abordaremos os conceitos fundamentais da engenharia 
de software. Por isso, falaremos sobre os conceitos de software para 
compreendermos do que se trata a engenharia de software, e quais seus 
principais processos e modelos utilizados. Estudaremos também os custos 
associados à engenharia de software e quais as características de um bom 
software e seus principais desafios. Portanto, você aprenderá sobre os principais 
conceitos que dão suporte à Engenharia de Software e que vão auxiliá-los na 
análise, modelagem e gestão de processos. 
CONTEXTUALIZANDO 
Uma empresa de Tecnologia da Informação (TI) produz software de gestão 
empresarial e está no mercado a pouco mais de dois anos. Seus funcionários 
frequentemente reclamam pelo grande volume de tarefas e os clientes estão 
exigindo, cada vez mais, qualidade no produto entregue (nesse caso, trata-se de 
desenvolvimento de software). Com o aumento da demanda por um sistema de 
planejamento de recursos empresariais (ERP – Enterprise Resource Planning), a 
produção de software tem vivido uma verdadeira produção em massa, levando as 
empresas a aumentarem a produção de software, que na maioria dos casos, são 
softwares de má qualidade, apresentando defeitos e falhas, e esse cenário se 
agrava quando atrasam absurdamente as entregas em datas firmadas com os 
clientes. Dessa forma, temos a seguinte questão: será que essa empresa está 
utilizando algum método formal na gestão desses produtos para lidar com essa 
situação? 
Para responder a esse questionamento, é necessário compreendermos 
como estão organizados os modelos e processos de softwares nas empresas. 
TEMA 1 – INTRODUÇÃO AOS CONCEITOS DE ENGENHARIA DE SOFTWARE 
Muitos acreditam que software é definido como sendo apenas um programa 
de computador, contudo, seu conceito é muito mais amplo. Os softwares 
englobam toda a documentação do sistema e arquivos de configurações. A 
documentação do software, em geral, auxilia para servir de apoio ao usuário para 
utilizar o sistema, descrevendo sua estrutura. Os arquivos de configuração do 
software são utilizados para nortear a configuração dos programas. 
 
 
03 
De acordo com Tonsig (2008), software se caracteriza por ser um conjunto 
de componentes abstratos, por exemplo, algoritmos, encapsulados na forma de 
funções ou procedimentos, que deverá ser executado em sistemas 
computacionais. 
Segundo Pressman (2007), o software é um elemento de sistema lógico, 
por isso, não é físico, como no caso dos hardwares. Este autor elucida alguns 
pontos importantes que diferenciam consideravelmente softwares de hardwares, 
a saber: 
1. O software é projetado ou desenvolvido por engenharia, logo, não é 
manufaturado. Embora existam algumas semelhanças, tais como: 
a. O nível de qualidade empregado em um bom projeto (contudo, na fase 
de manufatura do hardware pode surgir problemas que não existam no 
software); 
b. A dependência de pessoas (contudo, a relação entre as pessoas 
participantes do projeto e o trabalho executado por elas é 
completamente diferente); 
c. Construção de um produto (porém, usam abordagem inteiramente 
diferentes porque são produtos diferentes). 
2. O software não se “desgasta”. Pressman (2007) elucida essa ideia por 
meio de um gráfico que apresenta o índice de falhas como função do 
tempo para o hardware. Conhecida como curva da “banheira”, ela 
apresenta que no início do ciclo de vida, o índice de falhas é elevado 
(geralmente ocasionadas por defeitos de projetos e fabricação), logo, uma 
vez esses defeitos corrigidos, o índice do número de falhas é reduzido e 
se mantêm em um certo nível quase que constante, contudo ao passar do 
tempo, o índice de falhas eleva-se novamente à medida que os 
componentes do hardware sofrem “desgaste”, que podem ser 
representados como efeitos cumulativos de poeiras, vibração, abuso, 
temperaturas inadequadas, entre outros efeitos ambientais. 
Na figura 1 elucidamos o pensamento de Pressman (2007) sobre a curva 
de falha referente ao hardware. 
 
 
04 
Figura 1 – Curva de falha para o hardware 
 
Fonte: Adaptado de Pressman, 2007. 
Todos esses desgastes que ocorrem com o hardware não afetam o 
software, ou seja, o software não é sensível aos problemas ambientais. Logo, a 
curva do índice de falhas para o software se comporta de outro modo. Tentamos 
representa-la na figura 2. 
Nesta figura podemos ver que o alto índice de falhas no início indica os 
defeitos não descobertos pelos desenvolvedores ao lançar o produto, e à medida 
que esses defeitos foram sendo corrigidos, a curva permanece quase que 
constante. 
Figura 2 – Curva de falha para o software idealizada 
 
Fonte: Adaptado de Pressman, 2007. 
índ
ice
 de
 fa
lha
s
Falhas e defeitos
Tempo
"Desgate"
índ
ice
 de
 fal
ha
s
Tempo
Mesma taxa de 
obsolescência
 
 
05 
Contudo, apesar de o software não se desgastar, ele pode se deteriorar 
devido às mudanças (em alguns casos ficar obsoleto). Dessa forma, é preciso da 
intervenção humana para realizar mudanças no software e, a cada mudança, 
iniciar-se novamente um ciclo, com altos índices de defeitos no começo. À medida 
que estes são resolvidos, tendem a ficar mais estáveis, contudo, observe que 
agora a curva tende a uma leve inclinação, o que demonstra que o software está 
se deteriorando ao longo do tempo. Essa mudança (manutenção) pode ser 
explicada na figura 3. 
Figura 3 – Curva de falha para o software 
 
Fonte: Adaptado de Pressman, 2007. 
Para um contexto mais amplo, nesta disciplina vamos utilizar o termo 
sistemas de softwares. O que a partir da ideia do que significa o software, fica 
mais fácil a compreensão. Sistema de software, geralmente, é um conjunto de 
programas separados, que cada programa possui como já foi explicado, uma 
documentação e arquivos de configuração, e normalmente usam sites web para 
explicar aos usuários informações sobre determinados produto e/ou serviços que 
o sistema proporciona. 
Segundo Sommerville (2007), existem dois tipos essenciais de produtos de 
softwares: produtos genéricos e produtos sob encomenda. 
 Produtos genéricos: São softwares desenvolvidos para serem utilizados 
no mercado por qualquer cliente. Por exemplo: softwares para PCs, 
pacotes de planilhas, textos, gráficos, banco de dados, gerenciamento de 
projetos, dentre outros. 
índ
ice
 de
 fa
lha
s
Tempo
Curva real da taxa de
obsolescência
Mudança
 
 
06 
 Produtos sob encomenda: São softwares personalizados e encomendados 
por um determinado cliente. Por exemplo: sistemas para controle de 
tráfego aéreo, sistemas para vendas, sistemas para apoiar um 
determinado negócio, entre outros. 
Uma diferença entre esses dois tipos de produtos de softwares é que, no 
caso dos produtos genéricos, a empresa que está desenvolvendo o software que 
controla toda a sua especificação, ou seja, como deve ser esse produto; já no 
caso de produtos sob encomenda, quem é responsável por esse controle é o 
próprio cliente comprador desse produto e os desenvolvedores devem trabalhar 
de acordo com essas especificações. 
Contudo, devido à concorrência do mercado e por busca de vantagens 
competitivas, essa diferença entre produzir produtos genéricos e produtos sob 
encomenda está ficando cada vez frágil. Um bom exemplo são os sistemas de 
planejamento de recursos empresariais (ERP – Enterprise Resource Planning), 
que normalmente são representados nas empresas pelos sistemas SAP. O que 
acontece, nesse caso, é que as empresas desenvolvedorasde software 
produzem um software de gerenciamento genérico, e em seguida modificam ele 
de acordo com as especificações e/ou necessidades de um determinado 
consumidor. Dito de outra forma, sistemas complexos são adaptados aos modelos 
de negócios da empresa solicitante dos serviços, emitindo por exemplo, os 
relatórios necessários, visando otimizar os recursos de tempo e planejamento da 
empresa (Pressman, 2007). 
1.1 Engenharia de software 
Dentre os profissionais da área de Tecnologia da Informação que 
provavelmente você poderá ter que lidar, estão os Engenheiros de Software. 
Quem são eles? Eles são responsáveis pelo desenvolvimento de produtos 
de softwares, ou seja, desenvolvem softwares que podem ser comercializados. 
A engenharia de software, segundo Sommerville (2007), é uma disciplina 
de engenharia que estuda todas as questões relacionadas aos problemas práticos 
da produção de software. Engloba desde as primeiras etapas de especificação do 
software até a etapa de manutenção, ou seja, após o sistema estar em operação. 
De acordo com Sommerville (2007), nessa disciplina há duas palavras 
fundamentais: 
 
 
07 
 Disciplina de Engenharia – Fazem acontecer, aplicando teorias, métodos 
e ferramentas. 
 Todos os aspectos da produção de software – A engenharia de software 
não é responsável apenas pelo desenvolvimento de software, mas 
também pelas atividades de gerenciamento de projeto, desenvolvimento 
de métodos, ferramentas e teorias que apoiem o desenvolvimento do 
software. 
O engenheiro de software, em geral, utiliza métodos organizados de 
trabalho, que na maioria dos casos é eficaz para o desenvolvimento de software 
de qualidade. Porém, a engenharia visa buscar dentre os mais diversos métodos 
propostos aquele que é mais adequado realidade e menos formal e burocrático. 
Essa visão se enquadra bem para sistemas baseado na web, que, em geral, usam 
habilidades menos formal de desenvolvimento. 
1.2. Aplicações de software 
De acordo com Pressman (2007), o software pode ser aplicado em 
qualquer situação, quando especificados um conjunto de passos procedimentais 
(algoritmos). Este autor propôs algumas categorias genéricas para as aplicações 
de softwares, pois a medida que a complexidade do software cresce, desaparece 
a clara divisão em compartimentos. 
1.2.1 Software básico 
São softwares que sua finalidade é dar apoio a outros programas. 
Exemplos desse tipo de software: compiladores, editores e utilitários de 
gerenciamento de arquivos etc. 
1.2.2 Software de tempo real 
Corresponde a um software que monitora, analisa e controla situações do 
mundo real. Ele coleta os dados provenientes de um ambiente externo e, em 
seguida, analisa e transforma as informações conforme aplicação exige. Por fim, 
realiza o controle de saída, que responde ao ambiente externo. A figura 4 retrata 
esse fluxo de componentes. 
 
 
08 
Figura 4 – Fluxo do software de tempo real 
 
Saiba mais 
O “tempo real” difere de “tempo interativo”. O sistema de tempo real deve 
responder em um intervalo de tempo especificado para o programa (o que 
representa uma variação de 1 milésimo de segundos até 1 minuto); já no tempo 
interativo, este intervalo de tempo pode ser ultrapassado, sem que, claro, possa 
causar danos desastrosos aos resultados finais do programa (Pressman, 2007). 
1.2.3 Software comercial 
Esta é a maior área de aplicação do software, o processamento de 
informações comerciais. Exemplos: Folhas de pagamento, contas a pagar e a 
receber, gestão de estoques etc. Essa categoria evoluiu para um software de 
sistemas de informações administrativas (MIS), que possibilitam acesso a um ou 
mais bancos de dados de informações comerciais. 
1.2.4 Software científico e de engenharia 
Esta categoria classifica-se por software de processamento de informações 
numéricas (por meio de algoritmos predefinidos) com a finalidade de otimizar 
alguma informação. Exemplos: programação ótima da produção, dinâmica orbital 
de naves espaciais, biologia molecular, astronomia etc. Normalmente esses 
softwares são auxiliados por computador (CAD), simulações de sistemas, entre 
outros. 
Coleta de 
dados
Análise
Controle de 
saída
 
 
09 
1.2.5 Software embutido 
São softwares com funções muito limitadas, pois sua função reside apenas 
na memória de leitura, e é usado para controlar produtos e sistemas para os 
mercados industriais e de consumo. Exemplo: Controle de teclado para o forno 
micro-ondas, funções digitais de automóveis, como funções digitais no painel para 
controle de combustível etc. 
1.2.6 Software de computadores pessoais 
Como o próprio nome indica, são softwares desenvolvidos para serem 
usados em computadores pessoais. Exemplos: processamento de texto, planilhas 
eletrônicas, computação gráfica, gerenciamento de dados, entre outros. Essa 
categoria apresenta os mais inovadores projetos de interface com os seres 
humanos. 
1.2.7 Software de inteligência artificial 
São softwares que utilizam inteligência artificial, ou seja, aplicam técnicas 
não numéricas, que, em geral, reconhecem padrões existentes em processos com 
bases em um histórico. Exemplos: redes neurais, reconhecimento de padrões de 
voz e imagem, mineração de dados, entre outros. 
TEMA 2 – PROCESSO DE SOFTWARE 
Segundo Sommerville (2007), um processo de software é um conjunto de 
atividades responsáveis pela produção, desenvolvimento e evolução de um 
software, seja um software genérico ou sob encomenda, conforme definidos 
anteriormente. 
Segundo o mesmo autor, existem quatro atividades genéricas essências 
de processo relacionadas ao desenvolvimento do software. 
 
 
010 
Figura 5 – Atividades genéricas do software 
 
 Especificação de software: Nesta atividade, os engenheiros, junto com os 
clientes (se for um caso de software por encomenda), discutem as 
especificações que o software deve conter, definindo as características, 
todas suas restrições etc. Em geral, utilizam métodos de entrevistas, coleta 
de dados, tempestade de ideias (brainstorm), fluxogramas para 
modelagem do processo, entre outros. 
 Desenvolvimento de software: Nesta atividade, após serem especificados 
todas as necessidades que o software deve conter, inicia-se o 
desenvolvimento, que pode ser feito pelo próprio engenheiro de software 
ou programadores. 
 Validação do software: Nesta atividade é verificado se o que foi projetado 
é realmente o que o cliente deseja (em caso de software por encomenda), 
ou o que a empresa deseja lançar no mercado (em caso de software 
genérico). 
 Evolução do software: Diferentemente de hardware, que para evolução em 
geral é feita a compra de outros equipamentos, para implantar melhoria no 
caso de software os desenvolvedores não iniciam o processo a partir do 
zero, como já foi realizado uma programação inicial para o 
desenvolvimento do software. Apenas o que é realizado é uma melhoria 
no software já existente (uma evolução da versão antiga do software), com 
Especificação
Desenvolvimento
Validação
Evolução
 
 
011 
a finalidade de se adaptar as mudanças exigidas pelo cliente e pelo 
mercado. 
Os processos de desenvolvimento podem variar de acordo com o sistema 
proposto. 
2.1. Caso prático 
Considere um software de controle de pouso de uma aeronave. Nesse 
caso, já foi preciso especificar todas as características, restrições, variáveis do 
sistema antecipadamente. 
Agora, considere um sistema de comércio eletrônico. A especificação do 
produto é realizada em tempo quase que real em conjunto com o cliente. 
Portanto, estas quatro atividades genéricas citadas podem ser organizadasde diferentes tipos, dependendo do tipo de sistemas de software. 
TEMA 3 – MODELO DE SOFTWARE 
O modelo de software é uma visão simplificada do processo de software. 
O modelo, em geral, é composto pelas atividades do processo, pelas funções das 
pessoas envolvidas na engenharia de software e o produto software. 
Sommerville (2007) propõem alguns modelos de processo de software: 
 Modelo de workflow: nesse modelo é apresentada a sequência de 
atividades envolvidas no processo, especificando cada entrada e saída do 
modelo, contudo, as atividades representam ações humanas. 
 Modelo de fluxo de dados: nesse modelo também é apresentado um 
conjunto de atividades, contudo, cada atividade apresentada é 
responsável por uma transformação dos dados, por exemplo, especifica 
como a entrada do processo se transformou em uma saída. 
 Modelo Papel/ação: esse modelo apresenta os papéis e atividades que 
cada pessoa é responsável no processo. 
Segundo Sommerville (2007), a maioria dos modelos de processo de 
software é inspirado em um dos modelos a seguir (ressalto que, aqui, 
explicaremos apenas dois dos principais modelos): 
 Modelo em cascata: considera cada atividade apresentada (Especificação, 
desenvolvimento, validação e evolução) como sendo atividades de fases 
 
 
012 
separadas e sequenciais, ou seja, após o término de cada atividade, inicia-
se imediatamente a próxima fase. 
Figura 6 – Modelo de processo em cascata 
 
Fonte: Adaptado de Sommerville, 2007. 
 Engenharia de software baseadas em componentes: incorpora o conceito 
de que o sistema já exista e é preciso apenas incorporar componentes a 
esse sistema, ou seja, o processo não se inicia do zero. 
 
 
013 
Figura 7 – Modelo de processo (baseado em componentes) 
 
Leitura complementar 
Aprofundaremos os conceitos de cada atividade desses modelos na 
próxima aula específica desse tema. Contudo, oriento o leitor a consultar o 
capítulo 4 do livro Engenharia de Software, do autor Ian Sommerville, 8.ª edição, 
que apresenta em detalhes cada modelo. 
 
TEMA 4 – CUSTOS DA ENGENHARIA DE SOFTWARE 
De acordo com Sommerville (2007), mensurar os custos da engenharia de 
software é altamente relativo, pois depende do tipo de processo e de software que 
está sendo desenvolvido. 
Cada diferente modelo de processo genérico para desenvolvimento de 
software possui diferentes níveis de distribuição de custos ao longo das atividades 
do processo. 
Considerando a abordagem cascata, modelo de processo citado 
anteriormente, os custos de especificação, projeto, desenvolvimento 
(implementação) e integração e testes são medidos separadamente. É importante 
ressaltar que a fase de integração e teste são as fases mais caras. Na figura 8, 
apresentamos essa distribuição. 
Especificação de 
requisitos
Análise de 
componentes
Modificação de 
requisitos
Projeto de sistema 
com reuso
Desenvolvimento 
e integração
Validação de 
sistema
 
 
014 
Figura 8 – Custos na abordagem de cascata 
 
Fonte: Adaptado de Sommerville, 2007. 
Considerando a abordagem baseada em componentes, não há valores 
específicos de custos para cada atividade, contudo, é fato que os custos de 
integração e teste são superiores aos custos de desenvolvimento. Na figura 9, 
apresentamos essa ideia. 
Figura 9 – Custos na abordagem baseada em componentes 
 
Fonte: Adaptado de Sommerville, 2007. 
4.1 Caso prático 
Softwares de tempo real requerem mais tempo de validação e testes mais 
extensos do que sistemas baseados na web. 
Em geral, para produtos genéricos, 60% dos custos de produção de 
software são de desenvolvimento e 40% são de testes. Para produtos 
personalizados, os custos de evolução frequentemente são superiores aos custos 
de desenvolvimento (IFCE, 2017). 
TEMA 5 – ATRIBUTOS DE UM BOM SOFTWARE E SEUS DESAFIOS 
Os softwares, quando entregues para o consumidor final, devem possuir, 
além de bons serviços, atributos que mensuram a sua qualidade. 
Esses atributos não estão relacionados diretamente com o que o software 
faz, mas sim com o comportamento que ele reflete, enquanto está em execução, 
quanto à sua estrutura, organização do programa fonte e documentação 
(Sommerville, 2007). 
Esses atributos são chamados não funcionais, pois não estão associados 
diretamente com a atividade fim do programa. Exemplos desses atributos são o 
tempo de resposta do software a uma consulta do usuário e a facilidade de 
compreensão do código do programa. 
0 25 50
Especificação Projeto Desenvolvimento
75 100
Integração e teste
0 25
Especificação Desenvolvimento
50 75 100
Integração e teste
 
 
015 
5.1 Caso prático 
Sistemas bancários devem refletir segurança para o usuário, um jogo 
interativo deve apresentar uma resposta rápida, um sistema de comutação 
telefônica deve ser confiável, entre outros. 
Os atributos são estes a seguir (Sommerville, 2007). 
 Facilidade de manutenção: O software deve ser escrito de forma que 
possa evoluir para atender às necessidades de mudanças. 
 Confiabilidade: O software não deve causar danos físicos ou econômicos 
no caso de ocorrência de falha. 
 Eficiência: O software não deve desperdiçar os recursos do sistema 
(utilização da memória, nº ciclo de processador) e buscar ser eficiente no 
tempo de resposta. 
 Usabilidade: O software deve garantir que o usuário vai conseguir utilizá-
lo adequadamente. 
5.2 Principais desafios da Engenharia de Software 
Um dos principais desafios da Engenharia de software consiste no tempo 
de entrega do produto para o consumidor. O que acontece é que muitas técnicas 
da Engenharia de Software demandam tempo; além disso, para realizarmos um 
serviço de qualidade, em geral, precisamos de tempo. Contudo, devido à 
competitividade do mercado atualmente, empresas que conseguem entregar o 
produto com maior agilidade ao mercado conseguem barganhar maior parcela de 
clientes e se sobrepor à concorrência. Por conta disso, as empresas precisam ser 
capazes de saber lidar com mudanças exigidas pelos clientes com facilidade e 
agilidade. Portanto, o maior desafio consiste em entregar sistemas grandes e 
complexos em tempos mais curtos sem que para isso comprometa a qualidade 
do produto desenvolvido. 
Outro grande desafio da Engenharia de Software consiste em sistemas 
legado. Por questões de esforço e complexidade para desenvolver grandes 
sistemas, as empresas optam por não descartar sistemas que foram 
desenvolvidos no passado, que, em geral, utilizaram tecnologias mais antigas e 
obsoletas. Portanto, são sistemas que frequentemente não foram projetados para 
se realizar nenhum tipo de mudança (Sommerville, 2007). 
 
 
 
016 
SÍNTESE 
Vamos retomar a empresa de TI que produz software de gestão de 
sistemas de recursos empresariais (ERP), e que enfrenta a dificuldade de 
desenvolver softwares de boa qualidade, corriqueiramente apresentando defeitos 
e falhas, além de atraso nas entregas. A pergunta se essa empresa utiliza algum 
método formal na gestão nos seus produtos pode ser respondida sabendo-se se 
essa empresa está aplicando esforços necessários e gastos de tempo de recursos 
de mão de obra em momentos corretos. Por exemplo, como vimos, dependendo 
do tipo de software podemos decidir investir mais tempo e gastos de recursos na 
especificação (necessidade de saber todas as características e restrições do 
produto com o cliente, para isso a importância da boa análise e gestão de 
requisitos), ou, no desenvolvimento, se estivermos tratando de produtos 
genéricos. Porém, caso seja produtos sob encomenda, é preciso investir maisgastos de recursos em testes e validação, e assim por diante. Portanto, vemos 
aqui que o planejamento do processo é essencial para realizar gestão de forma 
organizada. 
 
 
 
017 
REFERÊNCIAS 
PRESSMAN, R. S. Engenharia de software. São Paulo: Pearson Makron, 2007. 
SOMMERVILLE, I. Engenharia de software, 8. ed. São Paulo: Pearson Addison-Wesley, 
2007. 
TONSIG, S. L. Engenharia De software – análise e projeto de sistemas. 2. ed. revista e 
ampliada. Rio de Janeiro: Ciência Moderna, 2008.

Continue navegando