apostila (1)
74 pág.

apostila (1)


DisciplinaEx Metologia Cientifica39 materiais198 seguidores
Pré-visualização22 páginas
frequentes aumentam a probabilidade de se introduzir erros no software
d) Componentes de reposição de sofware são difíceis de se encontrar no mercado
4) Atividades \u201cguarda-chuva\u201d de engenharia de software são aplicadas somente durante 
as fases iniciais do desenvolvimento de software:
a) Verdadeiro
b) Falso
5) O que caracterizou a chamada \u201ccrise do software\u201d?
6) Conforme vimos, Engenharia de Software é uma disciplina da Engenharia que se ocupa 
de todos os aspectos da produção de software. Seu principal objetivo é fornecer uma 
estrutura metodológica para a construção de software com alta qualidade. O que é ne-
cessário para que isso aconteça?
7) Normalmente, para o leigo, software se constitui no \u201ccódigo fonte + código executá-
vel\u201d. Vimos que para a Engenharia de Software, o conceito de software é algo mais 
abrangente. Como Pressman conceitua software?
8) O processo de desenvolvimento do software apresenta diferenças fundamentais em 
relação ao hardware. Cite algumas dessas diferenças.
9) Faça um esboço das curvas de taxa de falhas do hardware e do software. Explique as 
diferenças entre as curvas.
Engenharia de Softwares e Engenharia de Requisitos 
17
Processo de Software
Caro aluno, neste capítulo descreveremos o que é um processo de software, mostraremos as 
camadas em que a Engenharia de Software se divide, descreveremos os padrões de processo, a 
avaliação e as ferramentas que apoiam o processo.
Conceitos Básicos de Processo de 
Software
Caro aluno, todo projeto de software inicia-se a 
partir de alguma necessidade do negócio. Assim que 
esta necessidade é identificada, esta costuma ser ex-
pressa de forma informal, através de uma conversa. 
Mas esta informalidade deve parar por aí. Até mesmo 
a especificação da necessidade do cliente é abrangida 
pelos métodos e técnicas da Engenharia de Software. 
E este é um processo bastante complexo. Então va-
mos começar a entendê-lo, conhecendo exatamente 
do que se trata um \u201cprocesso de software\u201d.
Para que as necessidades da empresa ou de um 
cliente possa se transformar numa solução de sof-
tware, todo o diálogo e a interação entre usuários, 
projetistas, ferramentas de desenvolvimento e tecno-
logias devem ser transformados num processo.
Assim, processo de software é um arcabouço 
(framework) das tarefas requeridas para se construir 
um software de alta qualidade. 
Mas, caro aluno, você pode estar se perguntan-
do: processo e engenharia de software são a mesma 
coisa?
A resposta é \u201csim\u201d e \u201cnão\u201d. Processo de software 
define a abordagem que é adotada quando o softwa-
re é elaborado. A Engenharia de Software engloba 
também as tecnologias que constituem um processo, 
como métodos, técnicas e ferramentas de desenvol-
vimento. Assim, a Engenharia de Software engloba 
os processos de software.
Podemos definir Engenharia de Software como 
um processo que envolve a criação e a utilização de 
sólidos princípios de engenharia a fim de obter sof-
tware com as características:
 D de alta qualidade
 D produzido de maneira econômica
 D que seja confiável
 D que trabalhe eficientemente em máquinas reais
 D que seja entregue no prazo
 D que satisfaça o cliente 
A Engenharia de Software é uma tecnologia em 
camadas, apoiada fundamentalmente num compro-
misso organizacional com a qualidade, como mostra 
a figura 3. Nesta abordagem, podemos observar que 
o alicerce da Engenharia de Software é a camada de 
processo, que funciona como um adesivo que man-
tém unidas as camadas ligadas à tecnologia. 
Figura 3
Engenharia de Software: uma tecnologia em camadas
O processo forma uma base para o controle 
gerencial de projetos de software e estabelece o 
contexto no qual os métodos e as técnicas são 
aplicados, os produtos do trabalho são produzidos, os 
marcos são estabelecidos, a qualidade é assegurada e 
as modificações adequadamente geridas.
Engenharia de Softwares e Engenharia de Requisitos 
18
Os métodos fornecem as técnicas de \u201ccomo fazer\u201d 
a construção de software. Abrangem um amplo con-
junto de tarefas que incluem comunicação, análise de 
requisitos, modelagem de projeto, construção de pro-
gramas, testes e manutenção.
As ferramentas fornecem apoio automatizado ou 
semi-automatizado para o processo e seus métodos.
Para que a Engenharia de Software possa ser apli-
cada como uma abordagem disciplinada para o de-
senvolvimento, operação e manutenção de um sof-
tware, um processo deve ser definido. De uma forma 
geral, um processo é caracterizado por fases: 
1. Fase de Definição 
2. Fase de Desenvolvimento 
3. Fase de Manutenção 
1. Fase de Definição: esta fase se concentra 
no \u201cquê\u201d o sistema de software irá realizar, isto é, 
identifica:
\u2022 que informação deve ser processada 
\u2022 que função e desempenho são desejados 
\u2022 que comportamento deve ser esperado do sis-
tema 
\u2022 que interfaces devem ser estabelecidas 
\u2022 que restrições de projeto existem 
\u2022 que critérios de validação são necessários 
Nessa fase, os requisitos-chave do sistema e do 
software são identificados. Esta fase engloba 3 im-
portantes etapas:
i. Engenharia de sistemas ou de informação 
ii. Planejamento do projeto 
iii. Análise de requisitos 
2. Fase de Desenvolvimento: esta fase foca-
liza \u201ccomo\u201d o desenvolvimento será realizado, isto é 
, define:
\u2022 como os dados devem ser estruturados 
\u2022 como as funções devem ser implementadas 
\u2022 como os detalhes procedimentais devem ser 
implementados 
\u2022 como as interfaces devem ser caracterizadas 
\u2022 como o projeto deve ser traduzido em uma lin-
guagem de programação 
\u2022 como o teste vai ser realizado 
Nesta fase, 3 etapas técnicas específicas ocorre-
rão:
i. Projeto do Software
ii. Geração de Código 
iii. Teste de Software 
3. Fase de Manutenção: esta fase tem como 
alvo as modificações e manutenções que o software 
sofrerá. Quatro tipos de modificações são encontra-
das durante essa fase:
\u2022 Manutenção Corretiva: modifica o software 
para corrigir defeitos 
\u2022 Manutenção Adaptativa: modifica o software 
para acomodar mudanças no seu ambiente ex-
terno (processador, sistema operacional, etc)
\u2022 Manutenção de Aperfeiçoamento: aprimora o 
software além dos requisitos funcionais origi-
nais (cliente/usuário reconhece e solicita fun-
cionalidades adicionais que trarão benefícios, à 
medida que o software é usado).
\u2022 Manutenção Preventiva: faz modificações nos 
programas de modo que eles possam ser mais 
facilmente corrigidos, adaptados e melhorados.
Estas 3 fases são complementadas por ativida-
des \u201cguarda-chuva\u201d:
 D Controle e Rastreamento do Projeto
 D Gestão de Riscos 
 D Revisões Técnicas Formais 
 D Garantia de Qualidade 
 D Gestão de Configuração de Software
 D Produção e Preparação de Produtos do Traba-
lho (documentos) 
 D Gestão de Reusabilidade 
 D Medição 
Engenharia de Softwares e Engenharia de Requisitos 
19
Essas atividades são aplicadas ao longo do pro-
cesso de software.
Padrões, Avaliação e Tecnologias 
de Processo 
De acordo com Pressman (2010), um processo de 
software pode ser definido como uma coleção de pa-
drões que definem um conjunto de atividades, ações, 
tarefas de trabalho e produtos de trabalho necessá-
rios para o desenvolvimento de software de compu-
tador. 
Em termos gerais, um padrão de processo nos 
fornece um gabarito que permite que sejam listadas 
as características mais importantes do processo de 
software. Mas é interessante notar, caro aluno, que 
uma equipe de desenvolvimento pode construir, pela 
combinação de padrões, um processo que melhor sa-
tisfaça às necessidades do projeto.
Descrever um padrão de projeto é uma tarefa mui-
to importante, pois permite se identificar particulari-
dades que facilitem a comparação entre os padrões, 
auxiliando na decisão de escolha por um padrão es-
pecífico. Gamma et al (1994) propõem