prof. me. clodoaldo brasilino [email protected] · pressman (2005) define processo de...
TRANSCRIPT
Prof. Me. Clodoaldo Brasilino
2
1. Introdução à Engenharia de Software 2. Processos de Software e Projetos3. Projeto de Software 4. Teste de Software
Acompanhamento da Disciplina
Prof. Me. Clodoaldo Brasilino
3
• O que é um processo de software? • Atividades de um processo de software
‣ Especificação ‣ Projeto e Implementação ‣ Validação ‣ Evolução
• Modelos de processo de software ‣ Modelos Genéricos
- Cascata - Incremental - Baseado em Componentes
‣ Modelos Iterativos - Incremental - Espiral
Conteúdo da Aula
Prof. Me. Clodoaldo Brasilino
4
A engenharia de software é uma tecnologia em camadas
O que é um processo de software?
Foco na Qualidade
Modelo de Processo
Métodos
Ferramentas
Conteúdo desta aula
Prof. Me. Clodoaldo Brasilino
5
Pressman (2005) define processo de software como “um framework para as tarefas que são necessárias para construir software de alta qualidade”
Já Sommerville (2008) diz que “um processo de software é um conjunto de atividades que leva à produção de um produto de software”
O que é um processo de software?
Prof. Me. Clodoaldo Brasilino
6
• São quatro: ‣ Especificação ‣ Projeto e Implementação ‣ Validação ‣ Evolução
Atividades de um processo de software
Prof. Me. Clodoaldo Brasilino
7
• Também chamada de Engenharia de Requisitos
• Possui quatro estágios principais: ‣ Estudo de Viabilidade ‣ Elicitação e Análise de Requisitos ‣ Especificação de Requisitos ‣ Validação de Requisitos
Especificação
Prof. Me. Clodoaldo Brasilino
8
Especificação
Estudo de Viabilidade
Requisitos de Usuário e de Sistema
Obtenção e Análise de Requisitos
Especificação de Requisitos
Validação de Requisitos
Relatório de Viabilidade Modelos de Sistema Documento de
Requisitos
Prof. Me. Clodoaldo Brasilino
9
• Nesta atividade, podemos identificar sete estágios: ‣ Projeto de arquitetura ‣ Especificação abstrata ‣ Projeto de interface ‣ Projeto de componente ‣ Projeto de estruturas de dados ‣ Projeto de algoritmo
Projeto e Implementação
Prof. Me. Clodoaldo Brasilino
10
Projeto e Implementação
Especificação de Requisitos
Especificação Abstrata
Projeto de Estrutura de Dados
Projeto de Arquitetura
Projeto de Algoritmo
Projeto de Componente
Projeto de Interface
Arquitetura de Sistema
Especificação de Software
Especificação de interface
Especificação de Componente
Especificação de Estrutura de Dados
Especificação de Algoritmo
Prof. Me. Clodoaldo Brasilino
11
• Também conhecida como Verificação e Validação (V & V) ou Testes
• Verifica a conformidade do software com a especificação e se o software atende as expectativas do cliente
• Possui três estágios: ‣ Teste de componente (ou unidade) ‣ Teste de sistema ‣ Teste de aceitação
Validação
Prof. Me. Clodoaldo Brasilino
14
• Após a finalização do software, demandas adicionais podem fazer com que o software necessite de evolução no futuro
• São identificados quatro estágios nesta fase: ‣ Definir requisitos de sistema ‣ Avaliar sistemas existentes ‣ Propor mudanças de sistema ‣ Modificar o sistema
Evolução
Prof. Me. Clodoaldo Brasilino
15
Evolução
Definir requisitos de sistema
Avaliar sistemas existentes
Propor mudanças de sistema Modificar o sistema
Sistemas Existentes Sistemas Novos
Prof. Me. Clodoaldo Brasilino
16
• O que é um modelo de processo de software?
Pressman (2005) define modelos de processo de software como “Modelos Prescritivos”, onde as atividades de um processo de software são apresentadas através de um fluxo (workflow), mostrando como essas atividades interagem entre si.
Modelos de processo de software
Prof. Me. Clodoaldo Brasilino
17
• O que é um modelo de processo de software?
Sommerville (2008) chama de modelo de processo de software “uma versão simplificada do processo de software, apresentado sob perspectiva específica”
Modelos de processo de software
Prof. Me. Clodoaldo Brasilino
18
• O que é um modelo de processo de software? ‣ Nos modelos, as atividades de processo
apresentadas são organizadas/montadas/esquematizadas de formas diferentes para cada modelo
‣ Os modelos trazem uma visão integrada dessas atividades
Modelos de processo de software
Prof. Me. Clodoaldo Brasilino
19
• Os três modelos genéricos são: ‣ Cascata (ou Clássico) ‣ Evolucionário ‣ Baseado em Componentes
Modelos Genéricos
Prof. Me. Clodoaldo Brasilino
20
• Dr. Winston W. Royce, em 1970, publica um artigo chamado Managing the Development of Large Software Systems, com “visões pessoais do autor sobre o gerenciamento de grandes softwares”
• Com isso, surge o primeiro modelo de processo de software, o Cascata (Clássico)
Modelo em Cascata
Prof. Me. Clodoaldo Brasilino
23
• Vantagens ‣ Aderência a modelos de processo de
engenharia ‣ Estabilidade dos requisitos
• Desvantagens ‣ Iterações são onerosas e burocráticas ‣ Modificações no sistema são caras e lentas
Modelo em Cascata
Prof. Me. Clodoaldo Brasilino
24
• Se baseia em duas premissas principais ‣ Desenvolvimento exploratório ‣ Prototipação throwaway
Modelo Evolucionário
Prof. Me. Clodoaldo Brasilino
25
Modelo Evolucionário
Versões do software
Atividades Simultâneas
Versões intermediárias
Versões intermediárias
Especificação
Descrição do esboçoDesenvolvimento
Validação
Versão inicial
Versões intermediárias
Versão final
Prof. Me. Clodoaldo Brasilino
26
• Vantagens ‣ Especificação pode ser feita de forma
incremental ‣ Comporta-se bem para sistemas de até
médio porte (500.000 linhas) • Desvantagens ‣ Difícil obter arquitetura estável ‣ Integração entre equipes é um desafio
Modelo Evolucionário
Prof. Me. Clodoaldo Brasilino
28
• No comitê de ciências da OTAN, em 1968, Dr. Malcolm Douglas McIlroy deu início à ideia de software componentizado pelo artigo Mass produced software components
• Foco no Reuso • Commercial Off-The-Shelf Systems (COTS)
Modelo Baseado em Componentes
Prof. Me. Clodoaldo Brasilino
29
Modelo Baseado em Componentes
Especificação de Requisitos
Análise de Componentes
Modificação de Requisitos
Projeto de Sistema com Reuso
Desenvolvimento e Integração
Validação
Prof. Me. Clodoaldo Brasilino
30
• Vantagens ‣ Reuso de código ‣ Entregas mais rápidas ‣ Reduz custos e riscos
• Desvantagens ‣ Componentes de terceiros podem
prejudicar na evolução do software ‣ Modificações nos requisitos podem não
atender às necessidades do usuário
Modelo Baseado em Componentes
Prof. Me. Clodoaldo Brasilino
31
• Foco em mudanças • Modelos principais: ‣ Incremental ‣ Espiral
Modelos Iterativos
Prof. Me. Clodoaldo Brasilino
32
Modelo Incremental
Definir Requisitos Iniciais
Atribuir Requisitos aos Incrementos
Projetar Arquitetura do Sistema
Desenvolver Incremento Validar Incremento Integrar Incremento Validar Sistema
Sistema Incompleto
Sistema Completo
Prof. Me. Clodoaldo Brasilino
33
• Vantagens ‣ Entregas rápidas ‣ Menor risco de insucesso do projeto ‣ Fácil priorização
• Desvantagens ‣ Incrementos devem ser pequenos ‣ Dificuldade de identificar requisitos comuns
Modelo Incremental
Prof. Me. Clodoaldo Brasilino
35
• Vimos: ‣ O que é processo de software e suas
principais atividades ‣ O que é modelo de processo de software e
os modelos mais difundidos - Paradigmas (Cascata, Evolucionário,
ESBC) - Iterativos (Incremental, Espiral)
Resumo da Aula
Prof. Me. Clodoaldo Brasilino
37
• Leitura dos capítulos: ‣ Sommerville - Cap. 4 ‣ Pressman - Cap. 2 e 3
• Lista de exercícios
Fixação da Aula
Prof. Me. Clodoaldo Brasilino
38
MCILLROY, M. D. Mass produced software components. Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Alemanha, Scientific Affairs Division, NATO. 1968. p. 79. Disponível em <http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF>. Acessado em 01 de Junho de 2014.
PRESSMAN, R. S. Software Engineering: A Practitioner's Approach. 6 Ed. McGraw Hill, 2005. 912p.
ROYCE, W. W. Managing the development of large software systems. 1970. Disponível em <http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf>. Acessado em 01 de Junho de 2014.
SOMMERVILLE, I. Engenharia de Software. 8 Ed. Pearson, 2008. 552p.
Referências