Buscar

Aula02 - Processos de desenvolvimento 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

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

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ê viu 3, do total de 8 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

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

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ê viu 6, do total de 8 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

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

Prévia do material em texto

1
Qualidade de Software
Ementa
1
INTRODUÇÃO A PROCESSOS DE 
DESENVOLVIMENTO DE 
SOFTWARE
Prof.ª Poliana Corrêa - poliana.correa@sga.pucminas.br
Pontifícia Universidade Católica de Minas Gerais (PUC Minas)
Qualidade de Software
Ementa
2
ENGENHARIA DE SOFTAWARE
� Engenharia de software em camadas
Qualidade de Software
Ementa
3
ENGENHARIA DE SOFTAWARE
� Engenharia de software em camadas
Apoio automatizado ou 
semi-automatizado para o 
processo e os métodos
Fornecem a técnica 
de como fazer para 
construir o software
Base para o controle 
gerencial, definição dos 
métodos, produtos e 
recursos
Camada de apoio à 
engenharia de 
software
Qualidade de Software
Ementa
4
ENGENHARIA DE SOFTAWARE
� Engenharia de software em camadas
� O alicerce da engenharia de software é a camada de processo
� O processo é o adesivo que mantém unidas as camadas de tecnologia e
permite o desenvolvimento racional e oportuno de softwares
� É a base para o controle gerencial de projetos de software e estabelecem o
contexto no qual os métodos técnicos são aplicados, os produtos de
software são produzidos, os marcos são estabelecidos, a qualidade é
assegurada e modificações são geridas
Qualidade de Software
Ementa
5
O QUE É PROCESSO?
� Como podemos definir um processo de forma genérica?
Qualidade de Software
Ementa
6
O QUE É PROCESSO?
� Exemplo: Processo de ensino-aprendizagem
2
Qualidade de Software
Ementa
7
O QUE É PROCESSO?
� “Um processo de software é um conjunto de atividades
relacionadas que levam à produção de um produto de software”
(SOMMERVILLE, 2011)
� “Um processo de engenharia de software é formado por um
conjunto de passos de processo parcialmente ordenados,
relacionados com artefatos, pessoas, recursos, estruturas
organizacionais e restrições, tendo como objetivo produzir e
manter os produtos de software finais requeridos”
(WAZLAWICK, 2013)
Qualidade de Software
Ementa
8
O QUE É PROCESSO?
� “Possui uma sequência de etapas a fim de completar um conjunto
de tarefas (escrever um relatório, fazer uma viagem de negócios)”
� As tarefas são executadas na mesma ordem todas as vezes
� Um pedreiro não reboca uma parede antes de passar a tubulação
� Um padeiro não leva um bolo para assar antes de misturar os ingredientes
� Um processo é uma série de etapas que envolvem atividades,
restrições e recursos para alcançar a saída desejada
� “Um processo define quem está fazendo o quê, quando e como para
alcançar um certo objetivo” (Ivar Jacobson, Grad Booch e James Rumbaugh)
Qualidade de Software
Ementa
9
O QUE É PROCESSO?
� “Um processo é uma sequência de passos executados com um
determinado objetivo” (IEEE)
� “Processo é um conjunto de ações e atividades inter-relacionadas
realizadas para obter um conjunto especificado de produtos,
resultados ou serviços” (CMMI)
� O processo é uma receita que é seguida por um projeto
� Não confunda processo com o produto
� O processos são as etapas envolvidas para confecção de um produto
� O produto é apenas o resultado final
Qualidade de Software
Ementa
10
O QUE É PROCESSO?
� Um processo pode ser entendido como um conjunto de atividades
� Interdependentes
� Com responsáveis
� Com entradas e saídas definidas
� Tem uma documentação que detalha os elementos (unidade
fundamental de um processo)
� O que será feito (produto)
� Quando (etapas)
� Por quem (papéis)
� As coisas que usa (insumos)
� As coisas que produz (resultados)
Qualidade de Software
Ementa
11
O QUE É PROCESSO?
� Algo que ocorre em um
tempo determinado
� Execução concreta de um
conjunto de atividades
para criação de um
produto específico
� Conjunto de regras que
definem como um projeto
deve ser executado
Qualidade de Software
Ementa
12
ELEMENTOS DE UM PROCESSO
� Insumo
� Coisa que é consumida em um processo (Praxis)
� Papel (responsáveis e participantes)
� Conjunto correlato de proficiências, competências e responsabilidades,
desempenhado por uma ou mais pessoas (SPEM)
� Refletem as responsabilidades das pessoas envolvidas no processo
� Exemplos: gerente de projeto, programador, testador
� Etapa ou Atividade
� Termo genérico para uma divisão temporal de um processo (Praxis)
3
Qualidade de Software
Ementa
13
ELEMENTOS DE UM PROCESSO
� Produto
� Um objeto produzido, quantificável, e que pode ser um item final ou um
item componente (PMBOK)
� Resultado que se pretende entregar a um cliente ou usuário (CMMI)
� Produto de trabalho
� Qualquer coisa produzida ou modificada por tarefas (SPEM)
� Item útil que resulta de um processo (CMMI)
� Artefato
� Quaisquer documentos que puderem ser produzidos durante um projeto de
desenvolvimento de software (diagramas, programas, documentos,
desenhos, contratos, etc.)
Qualidade de Software
Ementa
14
ELEMENTOS DE UM PROCESSO
� Projeto
� Conjunto gerido de recursos inter-relacionados, que entrega um ou mais
produtos a um cliente ou usuário, com início definido e que, tipicamente,
opera conforme um plano (CMMI)
� Um empreendimento temporário realizado para criar um produto, serviço
ou resultado distinto (PMBOK)
� Recursos
� Uma atividade, para ser executada, demanda recursos
� Item necessário, que pode ser uma ferramenta ou pessoa
� Resultado
� Uma saída dos processos e atividades de um projeto (PMBOK)
Qualidade de Software
Ementa
15
CARACTERÍSTICAS DE PROCESSO
� Prescreve todas as suas principais atividades
� Utiliza recursos, está sujeito a um conjunto de restrições (como
cronograma) e gera produtos intermediários e finais
� Composto por subprocessos que estão de algum modo relacionados
(hierarquia de processos)
� Cada atividade tem critérios de entrada e saída
� As atividades são organizadas em uma sequência
� Apresenta um conjunto de diretrizes que explicam os objetivos de cada
atividade
� Possui restrições e controles que podem ser aplicados a uma atividade,
recurso ou produto
Qualidade de Software
Ementa
16
CONCEITOS RELACIONADOS
� Modelo de processo: modelos genéricos que especificam a forma geral de
processos, também chamado de modelo de ciclo de vida, permite a
definição de projetos específicos a partir da estrutura base
� Controle: influência externa sobre a aprovação do processo
� Política: um princípio de orientação
� Organização: estrutura hierárquica dos agentes do processo, com
agrupamentos físicos correspondentes a agrupamentos lógicos e aos papéis
relacionados
Qualidade de Software
Ementa
17
VANTAGENS DA IMPLANTAÇÃO 
DE PROCESSOS
� Guia para condução do trabalho
� Auxilia na disseminação de boas práticas de trabalho
� Contribui para a transferência de conhecimento na equipe envolvida
� Melhoria na comunicação entre os desenvolvedores, gerentes, clientes e
usuários
� Maior precisão no acompanhamento do progresso do trabalho
� Por outro lado, propicia um aumento do controle do trabalho dos
desenvolvedores
� Medida da qualidade dos processos
� Indica a qualidade dos produtos
Qualidade de Software
Ementa
18
ATIVIDADES FUNDAMENTAIS
� Existem muitos processos de software diferentes, mas todos
devem incluir as atividades fundamentais
� Especificação de software
• Definição da funcionalidade e restrições do software
� Projeto e implementação de software
• Construção do software para atender às especificações
� Validação de software
• Validação para garantir que atenda às demandas do cliente
� Evolução de software
• Evolução para atender às necessidades de mudança dos clientes
4
Qualidade de Software
Ementa
19
MODELO DE CICLO DE VIDA
� O ciclo de vida de um software é o ponto de partida para definir a
arquitetura de um processo
� Conjunto da históriade um software
� Desde a percepção da sua necessidade até a retirada de operação
� Determina marcos temporais no desenvolvimento do software
� Começa antes do seu projeto de desenvolvimento e termina quando não é
mais utilizado
Qualidade de Software
Ementa
20
MODELO DE CICLO DE VIDA
� O ciclo de vida mais caótico é chamado de codifica-remenda
� Parte apenas de uma especificação (ou nem isso), os desenvolvedores
começam imediatamente a codificar, remendando à medida que os erros
vão sendo descobertos
� Nenhum processo definido é seguido
Qualidade de Software
Ementa
21
CODIFICA-REMENDA
� Para alguns desenvolvedores esse modelo é bem atraente
� Não exige nenhuma sofisticação técnica ou gerencial
� Por outro lado, é um modelo de alto risco
� É impossível de gerir e não permite assumir compromissos
confiáveis
� O resultado dessa falta de sistematização é a baixa qualidade do
produto final
Qualidade de Software
Ementa
22
MODELO EM CASCATA
� É o modelo mais antigo e o mais amplamente usado da
engenharia de software, conhecido como ciclo de vida clássico
� Requer uma abordagem sistemática e sequencial ao
desenvolvimento de software
� O resultado de uma fase constitui a entrada da próxima fase
� Os principais subprocessos são executados em estrita sequência, o
que permite demarcá-los com pontos de controle bem-definidos
� Teoricamente é confiável e utilizável em projetos de qualquer
escala
Qualidade de Software
Ementa
23
MODELO EM CASCATA
Requisitos
Análise
Desenho
Implementação
Testes
Qualidade de Software
Ementa
24
ETAPAS DO MODELO EM CASCATA
� Requisitos: Envolve a elicitação de requisitos do sistema, com uma
análise de alto nível e modelo conceitual
� Análise: Os requisitos (para o sistema e para o software) são
documentados e revistos com o cliente
� Desenho: Tradução dos requisitos para um conjunto de
representações que podem ser avaliadas, antes da codificação
� Implementação: Codificação em linguagem “artificial” resultando
em instruções executáveis pelo computador
� Testes: Concentra-se nos aspectos lógicos internos do software e
nos aspectos funcionais externos de modo a descobrir erros e
garantir que a entrada definida produza os resultados esperados
5
Qualidade de Software
Ementa
25
CONTRIBUIÇÕES DO MODELO 
EM CASCATA
� Imposição de disciplina, planejamento e gerenciamento
� A implementação do produto deve ser postergada até que os
objetivos tenham sido completamente entendidos
� Permite gerência do baseline que identifica um conjunto fixo de
documentos produzidos ao longo do processo de desenvolvimento
Qualidade de Software
Ementa
26
RESTRIÇÕES DO MODELO 
EM CASCATA
� Projetos reais raramente seguem o fluxo sequencial da forma que
o modelo propõe
� Exige requisitos “congelados”
� É um processo rígido e burocrático, em que as atividades de
análise e desenho tem que ser muito bem especificadas, pois não
prevê correções em fases posteriores
� Logo no início é difícil estabelecer explicitamente todos os
requisitos, pois sempre existe uma incerteza natural
� Baixa visibilidade para o cliente já que uma versão executável do
software só fica disponível no final do projeto
Qualidade de Software
Ementa
27
Requisitos
Análise
Desenho
Implementação
Testes
MODELO EM CASCATA COM 
REALIMENTAÇÃO
Qualidade de Software
Ementa
28
MODELO EM CASCATA COM 
REALIMENTAÇÃO
� Trata-se de uma expansão do modelo em cascata
� Na prática, é comum ter que voltar para etapas anteriores
� Por causa de revisões, alterações, descoberta de erros
� Execução é sequencial, mas é possível voltar para etapas
anteriores a fim revisar ou alterar
� Apresenta pontos de controle bem definidos
� Fácil gerenciamento
Qualidade de Software
Ementa
29
ABORDAGENS ITERATIVAS DE 
PROCESSO
� Nos modelos iterativos o cliente recebe o sistema completo desde 
o começo e então as funcionalidades evoluem a cada nova versão
� São também chamados de modelos evolucionários 
� O software evolui a cada fase
FONTE: (PFLEEGER, 2007, p. 45)
Qualidade de Software
Ementa
30
ABORDAGENS ITERATIVAS DE 
PROCESSO
� Exemplo: software de processamento de texto com três recursos 
(criar textos, organizar textos “copiar e colar” e formatar textos)
� 1ª entrega: formas primitivas das três funcionalidades, podem ser
imperfeitas e lentas
� 2ª entrega: melhorias de qualidade da funcionalidade organizar textos,
copiar e colar mais rápidos e simples
� 3ª entrega: versão completa com todas os aprimoramentos necessários
6
Qualidade de Software
Ementa
31
PROTOTIPAGEM EVOLUTIVA
� Apenas os requisitos básicos são definidos (objetivos gerais,
necessidades conhecidas e áreas que precisam de mais detalhes)
� Uma iteração de prototipagem é planejada rapidamente e a
modelagem (na forma de um “projeto rápido”)
� Concentra-se nos aspectos nos visíveis para o cliente
� O projeto rápido leva a construção de um protótipo que é
implantado e avaliado pelo cliente
� O feedback é usado para refinar os requisitos do software
� As iterações permitem os ajustes do protótipo e melhor entendimento do
que precisa ser feito pelo desenvolvedor
Qualidade de Software
Ementa
32
PROTOTIPAGEM EVOLUTIVA
� É um bom método quando o cliente não quer se comprometer
com os requisitos ou quando os requisitos são muito voláteis
� “O cliente não sabe bem o que quer”
� Permite que os requisitos sejam definidos progressivamente
evitando a construção a partir de requisitos mal elaborados
� Alta flexibilidade e visibilidade para o usuário/cliente
� Não é possível prever quando o produto ficará pronto
� Requer gestão sofisticada para não se perder no caminho
Qualidade de Software
Ementa
33
PROTOTIPAGEM EVOLUTIVA
� Em pontos bem definidos os usuários podem avaliar partes do
produto fornecendo realimentação quanto às decisões tomadas
� Ideal para projetos em que o núcleo de requisitos não varia a partir do
feedback do usuário
� Facilita o acompanhamento dos projetos por parte de gerentes e de clientes
� A arquitetura do sistema deve ser robusta e permanecer íntegra
ao longo das liberações
� A prototipagem evolutiva enfatiza os aspectos visuais do sistema,
já a entrega evolutiva foca nas funcionalidades centrais do
sistema
Qualidade de Software
Ementa
34
PROTOTIPAGEM EVOLUTIVA
Requisitos
Análise
Desenho 
detalhado Implementação
Testes
Avaliação da 
iteração
Nova iteração
Qualidade de Software
Ementa
35
ABORDAGENS INCREMENTAIS 
DE PROCESSO
� Nos primeiros anos os clientes estavam dispostos a esperar um
bom tempo para que os softwares ficassem prontos
� O ambiente de negócio hoje não tolera mais grandes atrasos
� Um modo de diminuir o tempo entre concepção e entrega é
realizar o desenvolvimento em fases
� O sistema é projetado de forma que possa ser entregue em partes
� Normalmente, há dois ambientes em paralelo com o sistema
� Produção: é o que está sendo usado pelo cliente
� Desenvolvimento: é a versão seguinte que está sendo preparada para
substituir a versão de produção
Qualidade de Software
Ementa
36
ABORDAGENS INCREMENTAIS 
DE PROCESSO
� Desenvolvimento incremental
� O sistema como está documentado na especificação de requisitos é dividido
em subsistemas por funcionalidades
� O primeiro incremento geralmente é chamado de núcleo do produto
(compreende os requisitos básicos)
FONTE: (PFLEEGER, 2007, p. 45)
7
Qualidade de Software
Ementa
37
ABORDAGENS INCREMENTAIS 
DE PROCESSO
� O modelo incremental combina elementos do modelo em cascata 
aplicado de forma iterativa (em várias fases)
� Aplica várias sequências lineares
� Exemplo: software de processamento de texto com três recursos 
(criar textos,organizar textos “copiar e colar” e formatar textos)
� 1ª entrega: somente a função de criação de textos
� 2ª entrega: criação e organização de textos
� 3ª entrega: criação, organização e formatação de textos (versão completa)
� Modelo ideal quando não há mão de obra suficiente para construir 
todo os software dentro do prazo estipulado
Qualidade de Software
Ementa
38
ITERATIVO X INCREMENTAL
Qualidade de Software
Ementa
39
MODELO EM ESPIRAL
� Combina a natureza iterativa (em fases) da prototipagem com
aspectos controlados e sistemáticos do modelo em cascata
� A ideia é o desenvolvimento rápido de versões de software cada
vez mais completas
� Abordagem cíclica: para aumentar incrementalmente o grau de
definição e implementação de um sistema enquanto diminui seu
grau de risco
� Marcos de ancoragem: para garantir o comprometimento dos
interessados com soluções satisfatórias para o sistema
Qualidade de Software
Ementa
40
MODELO EM ESPIRAL
FONTE: (PRESSMAN, 2011, p. 45)
Qualidade de Software
Ementa
41
MODELO EM ESPIRAL
� O produto é desenvolvido em iterações
� Cada nova iteração corresponde a uma volta na espiral
� As primeiras iterações podem ser modelos de papel ou protótipos
� Os problemas identificados em uma iteração alimentam a próxima iteração
� Cada passagem pela região de planejamento resulta em ajustes no
plano do projeto
� Cronograma e custo são ajustados a cada iteração junto ao cliente
� O gerente de projeto deve planejar o número de iteração necessárias para
completar o software
� O modelo pode ser adaptado para continuar sendo aplicado ao
longo de toda a vida do software (após a entrega)
Qualidade de Software
Ementa
42
MODELO EM ESPIRAL
� Apresenta uma abordagem mais realista do desenvolvimento de
sistemas de software
� Matem a abordagem clássica com um arcabouço iterativo (em fases)
� O software evolui à medida que o sistema avança e cliente e
desenvolvedores entendem melhor o sistema
� Pode ser difícil convencer os clientes de que uma abordagem
evolutiva é controlável
� Depende de competência na avaliação de riscos para alcançar sucesso
8
Qualidade de Software
Ementa
43
REFERÊNCIAS
� PFLEEGER, Shari Lawrence. Engenharia de software: teoria e prática. São Paulo:
Prearson Prentice Hall, 2004, xix, 535p.
� PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional.
Porto Alegre: AMGH, 2011. XXVIII, 780 p.
� SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice
Hall, 2011. xiii, 529 p.
� WAZLAWICK, Raul Sidnei. Engenharia de software: conceitos e práticas. Rio de
Janeiro, RJ: Elsevier, Campus, c2013. xxii, 343 p.
Qualidade de Software
Ementa
44
DÚVIDAS

Outros materiais

Outros materiais