Você está na página 1de 38

Processo de Software

Disciplina : Engenharia de Software


Prof.: Suzan k borges Piovesan
🠶 Processo de Software
🠶 Introdução
🠶 Componentes
🠶 Modelos de Processo de Software
Conteúdo 🠶 Modelo Cascata
🠶 Modelo V
🠶 Modelo Incremental
🠶 Modelos Evolucionários
Introdução

Processo

• Sequência de passos para alcancar um proposito (IEEE)

Processo de Software

• Conjunto de atividades, métodos, praticas, e transformações usadas


para desenvolver e manter software e produtos associados (modelos,
documentos, código, manuais, ...)
Processo de Software

🠶 No contexto da engenharia de software, um processo não é uma


prescrição rígida de como desenvolver um software.

🠶 Ao contrário, é uma abordagem adaptável que possibilita às


pessoas (a equipe de software) realizar o trabalho de
selecionar e escolher o conjunto apropriado de ações e
tarefas.
Modelos de Processo

• Howard Baetjer Jr. (1988)


• Livro - Visão de um economista sobre Software e Engenharia do
software.
Pelo fato de software, como todo capital, ser
conhecimento incorporado, e pelo fato desse conhecimento ser,
inicialmente, disperso, tácito, latente e em considerável medida,
incompleto, o desenvolvimento de software é um processo de
aprendizado social.
Esse processo é um diálogo no qual o conhecimento, que
deverá tornar-se o software, é coletado, reunido e incorporado ao
software. Tal processo possibilita a interação entre usuários e
projetistas, entre usuários e ferramentas em evolução e entre
projetistas e ferramentas em evolução (tecnologia).
Trata-se de um processo iterativo no qual a própria
ferramenta em evolução serve como meio de comunicação, com
cada nova rodada do diálogo extraindo mais conhecimento das
pessoas envolvidas
Modelo de Processo

• Certamente, construir um software é um processo de


aprendizado social iterativo e o resultado, algo que Baetjer
denomina “Capital de Software”, é a incorporação do
conhecimento coletado, filtrado e organizado conforme se
desenvolve o processo.
Modelos de Processo

• Processo de software é definido como uma metodologia


para as atividades, ações e tarefas necessárias para
desenvolver um software de alta qualidade.

SIM NÃO

Processo é sinônimo de engenharia de software?SIM e NÂO


Modelos de Processo

• Um processo de software define a abordagem adotada conforme


um software é elaborado pela engenharia, mas a engenharia de
software também engloba tecnologias que fazem parte do
processo:
• Métodos técnicos e ferramentas automatizadas

• Mais importante, a engenharia de software é realizada por


pessoas criativas e com amplos conhecimentos, que devem
adaptar um processo de software maduro, de forma que fique
mais apropriado aos produtos desenvolvidos e às demandas de
seu mercado.
Processo de Software

5 Atividades:
Comunicação, Planejamento, Modelagem, Construção e Emprego
Processo de Software

 Comunicação
 Antes de iniciar qualquer trabalho técnico, é de vital
importância comunicar-se e colaborar com o cliente (ou outros
interessados);
A intenção é compreender os objetivos das partes
interessadas para com o projeto e fazer o
levantamento das necessidades que ajudarão a
definir as funções e características do software.

Algumas perguntas podem auxiliar…

Quem tem interesse na solução do problema? O Problema pode ser dividido?


Quais são as
O problema pode ser representado graficamente? incógnitas?
Processo de Software
 Planejamento
 Qualquer jornada complicada pode ser simplificada caso exista
um mapa que norteia a “caminhada”.
 O mapa (plano de projeto de software) define o trabalho de
engenharia de software:
 Descreve as tarefas técnicas a ser conduzidas, os riscos
prováveis, os recursos que serão necessários os produtos
resultantes a ser produzidos e um cronograma de trabalho.
Processo de Software
 Modelagem
 Independente de ser um paisagista, um construtor de pontes,
engenheiro aeronáutico, trabalha-se com modelos todos os dias.
 Um engenheiro de software faz a mesma coisa criando modelos para
melhor entender as necessidades do software e o projeto que irá atender a
essas necessidades.
 Cria-se um esboço da coisa, de modo que se possa ter uma ideia do todo.
 Qual será o seu aspecto em termos de arquitetura?
 Como as partes constituintes se encaixarão?

 Refinamento do esboço
Processo de Software
 Construção
 Essa atividade combina geração de código e testes
necessários para revelar erros na codificação.

 Emprego
 O software (como uma entidade completa ou como um
incremento parcialmente efetivado) é entregue ao cliente,
que avalia o produto entregue e fornece o feedback,
baseado nessa avaliação.
Processo de Software

 Essas cinco atividades metodológicas genéricas podem ser


utilizadas para o desenvolvimento de programas pequenos e
simples, até a criação de grandes aplicações para a internet e
engenharia de grandes e complexos sistemas baseados em
computador.
 Componentes típicos de um processo de
software
 Atividades: Conjunto de tarefas
 Artefatos: Descrição de produtos,
documentos e demais resultantes de uma
atividade
Componentes  Tarefas: Descrição da ação realizada por
uma pessoa
 Papeis: Descrição de atribuições
 Mas ainda e preciso (co)ordenar as
atividades... organizar isso tudo! Como?
 Usar modelos de processo de Software!
Modelos de o Modelo de Processo Linear:
o Modelo Cascata
Processo de
o Modelo V
Software o Modelo Incremental
o Modelo de Processo Evolucionário
o Paradigma de Prototipação
o Modelo Espiral
o Processo Unificado
o Processos Ágeis
Modelo de Processo Linear:
Modelo Cascata
 Mais antigo (surgiu na década de 70) e ainda é utilizado;
 Requer abordagem sistemática e sequencial para o
desenvolvimento de software;
 Cada atividade e uma fase isolada;
 Fluxo linear: A saída de uma fase e a entrada da seguinte
Modelo de Processo Linear:
Modelo Cascata
Outros exemplos da
estrutura do modelo
Cascata
Modelo de Processo Linear:
Modelo Cascata

• É o melhor modelo? Problemas...


• Exige que os requisitos sejam
definidos de forma explícita...
• Pode ocorrer detecção tardia de erros
• Mudanças serão consideradas apenas no
final do ciclo;
• Estados de bloqueio
Modelo de Processo Linear:
Modelo V
Modelo V com
mais detalhes
Modelo Incremental

• Requisitos razoavelmente definidos


• O modelo
• Primeiro protótipo: produto
essencial.
• Série de versões : protótipo...
• ... até que o produto final seja
gerado
Fluxo de processo iterativo que repete
uma ou mais das atividades antes de
prosseguir para a seguinte
Modelo Incremental
Modelo Evolucionário

 Consideram mudanças nos


requisitos do cliente
 Executa as atividades de forma
circular, cada volta pelas cinco
atividades conduz a uma versão
mais completa do software.
Modelo Evolucionário

o Prototipação
o Entrega de protótipos que atendem os requisitos do cliente naquela
etapa;
o Proposta: Desenvolvimento rápido de software para validar requisitos!
o Interessante quando o cliente definiu objetivos gerais, mas não
identificou requisitos de entrada, processamento e saída
o Quem desenvolve não tem certeza da eficiência de um algoritmo, da
adaptabilidade de um S.O. ou da IHC que ocorrera...
Modelo Evolucionário: Prototipação
Modelo Evolucionário: Prototipação

o Prototipação
Modelo Evolucionário: Prototipação

 Atividades
Modelo Evolucionário: Prototipação

Vantagens da Prototipação
o Equívocos entre os usuários de software e desenvolvedores são expostos
o Serviços esquecidos podem ser detectados e serviços confusos podem ser
identificados
o Um sistema funcionando está disponível nos primeiros estágios do
desenvolvimento
o O protótipo pode ser usado para treinamento do usuário e teste de sistema
o Melhoria na facilidade de uso do sistema
o Maior aproximação do sistema com as necessidades dos usuários
o Melhoria na facilidade de manutenção
o Redução no esforço de desenvolvimento
Modelo Evolucionário: Espiral

o Modelo Espiral
o Cada volta na espiral corresponde a um marco
o Estratégia cíclica para ampliar grau de definição e implementação do sistema
o Gerenciar riscos explicitamente
o Cada volta e dividida em:
o Definição de objetivos
o Avaliação e redução de riscos: protótipos
o Desenvolvimento e validação
o Planejamento
Modelo Evolucionário: Espiral
 Espiral Atualizado
Processo Unificado

 RUP: Rational Unified Process


 No início de 1990 James Rumbaugh, Grady Boock e Ivar Jacobson
iniciaram a criação de um método unificado que combinaria as melhores
características propostas até então.
 Resultado em 1997: UML, padrão da indústria para desenvolvimento OO.
 UML deu suporte para engenharia, porém não para processos, assim os
pesquisadores desenvolveram o Processo Unificado que utiliza a UML como
base para um modelo incremental e iterativo que é adaptável às
necessidades específicas do projeto.
 Característica principal: “Processo dirigido a casos de uso, centrado na
arquitetura, iterativo e incremental"
Evolucionário
Á
ITE G
RA
IL
TIV
O

Processo UNIFICADO
Processo Unificado

 Fases do Processo Unificado


 Concepção: Define o escopo do projeto
 Elaboração: Detalha os requisitos e a arquitetura
 Construção: Desenvolve o sistema
 Transição: Implanta o sistema
 Cada fase e dividida em iterações e workflows (atividades)
 Cada iteração realiza a sequência de atividades
Processo Unificado

Fases
Processo Unificado
Exercícios
1. O que é um processo de software?
2. Processo de software pode ser considerado
sinônimo de engenharia de software?
3. O que significa desenvolvimento iterativo e
incremental?
4. Para que foram propostos os modelos de
processos?
5. Dos modelos de processo de software
apresentados em sala, descreva um
comparativo de vantagens e desvantagens, e
comente em que casos convém utilizá-los. Dica:
Pode também fazer pesquisas na internet sobre
seu uso.
6. Pesquisar novos modelos de Processo,
baseado nos métodos clássicos.

Você também pode gostar