Engenharia de Software
Aula 03 – Processo de Software
Prof. Adriana M. Martins
Processo de Software

Introdução
O que é um Bom Software?
 Quem faz a Engenharia de
Software


Definição


Processo
Modelos
O que é um Bom Software?


Na Engenharia de Software, os
engenheiros procuram utilizar
métodos que assegurem que
seus produtos sejam de
qualidade e utilidade
aceitáveis.
Mas o que seria qualidade para
o software?
Software x Qualidade

A qualidade pode ser definida
sob três pontos de vista:



Qualidade do produto;
Qualidade do processo;
Qualidade no contexto do
ambiente de negócios no qual o
software será utilizado.
1. Qualidade do Produto


Esta definição pode variar de
acordo com quem a define:
usuários, desenvolvedores,
clientes, etc.
Como medir a qualidade de um
software?

Usuários verificam características
externas como quantidade e tipos
de falhas (pequenas, grandes ou
catastróficas).
1. Qualidade do Produto

Os que realizam o projeto ou
fazem a manutenção do
software poderão classificar a
qualidade de forma diferente:

Número e tipos de defeitos para
medir a qualidade do produto
(indicadores).

Pesquisar: definição sobre defeito
e falha.
2. Qualidade do Processo



Muitas atividades afetam a
qualidade final do produto;
Engenheiros de Software
medirão a qualidade do
processo de desenvolvimento
do software;
A qualidade do processo é tão
importante quanto a qualidade
do produto.
2. Qualidade do Processo

Questões sobre a qualidade do processo:
 Onde e quando é mais provável
encontrarmos um tipo particular de
defeito?
 Como podemos encontrar os defeitos o
mais rápido possível durante o
desenvolvimento?
 Como podemos incluir tolerância a
defeitos para que defeitos se tornem
uma falha?
 Há atividades alternativas para tornar o
processo mais eficiente e com maior
qualidade?
3. Qualidade no Contexto do
Ambiente de Negócios
•
Análise considerada sob:
•
•
Valor técnico x valor comercial.
O retorno do investimento é
analisado sob:
•
Treinamento, cronograma, risco,
qualidade, produtividade,
processo, cliente, custos e
negócio.
Quem faz a Eng. de Software?

O ponto-chave da ESOF é a comunicação
entre clientes e desenvolvedores;
 Isso irá assegurar a qualidade do produto
final;

O número das pessoas envolvidas depende
do tamanho e complexidade do projeto;

Os papéis e responsabilidades serão
distintos durante o projeto.
Participantes da ESOF


Cliente: é a empresa, organização
ou pessoa que está pagando para
que o software seja desenvolvido;
Desenvolvedor: é a empresa,
organização ou pessoa que está
construindo o software para o
cliente;

É preciso haver gerentes,
desenvolvedores, testadores, etc.
Participantes da ESOF

Usuários: são as pessoas que
realmente utilizarão o sistema,
inserindo ou excluindo dados do
mesmo.
Participantes da ESOF
CLIENTE
Financia o desenvolvimento
do software
$$
necessidades
Obrigações
Contratuais
DESENVOLVEDOR
Constrói o software
software
necessidades
USUÁRIO
Utiliza o software
Processo de Software


Cada projeto é único e as técnicas
utilizadas devem levar em conta as
restrições do mesmo;
A maioria dos sistemas não é
isolado. Eles se integram com outros
sistemas:


Necessidade de interação entre
sistemas (complexidade);
Pouca documentação da interface entre
sistemas.
Processo de Software
Quais seriam as atividades
envolvidas durante o
desenvolvimento de um
software?
Exercício prático: como você
poderia descrever as atividades
para se fazer um bolo de
chocolate?
Processo de Software – Definição:
“Qualquer descrição do
desenvolvimento de software
que contenha atividades
organizadas de modo que,
juntas, produzam um código
testado.”
Pflegger
Processo de Software – Definição:
“Para realização de algo,
seguimos uma seqüência de
etapas para completar um
conjunto de tarefas, que
geralmente são realizadas na
mesma ordem todas as vezes.”
Pflegger
Processo de Software – Definição:
“Conjunto de atividades e
resultados associados que
levam à produção de um
produto de software.”
ou
“Conjunto coerente de atividades
para produção de software.”
Sommerville
Principais Atividades Desenvolvimento de Software:









Análise e definição de requisitos;
Projeto de sistema;
Projeto do programa;
Escrever programas (implementação);
Teste de unidades;
Testes de integração;
Testes de sistema;
Entrega do sistema;
Manutenção.
Principais Atividades Desenvolvimento de Software:


Em situações ideais, todas
estas tarefas seriam realizadas
uma por vez, chegando ao final.
Na prática isso não acontece,
porque muitas destas etapas
são repetidas.
Processo de Software –
Considerações:

Há diferentes processos de
software, mas algumas atividades
são comuns entre eles, como:
Especificação;
 Projeto e implementação:
 Validação;
 Evolução.

Processo de Software –
Considerações:




Especificação: funcionalidade e
restrições de sua operação;
Projeto e implementação: o software
deve ser produzido de modo que
cumpra sua especificação;
Validação: o software precisa ser
validado para garantir que fará o que o
cliente deseja;
Evolução: o software precisa evoluir
para atender às necessidades mutáveis
do cliente.
Processo de Software –
Considerações:

Alguns processos não possuem
técnicas atualizadas;

Outros não sabem como tirar
vantagens das melhores práticas da
engenharia industrial.
Processo de Software –
Melhoria de Processos:

A melhoria de processos de software
pode ser feita por:



Melhoria de comunicação;
Redução de tempo de treinamento;
Apoio a um processo automatizado
e mais econômico;
Download

ESOF - INF Aula 03 - Processo de Software