Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

75
Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 1 Engenharia de Softawre 3º Edição / Roger Pressman Engenharia de Software 1º Edição / Ariadne Carvalho Processos de software Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Transcript of Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Page 1: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 1Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Processos de software

Leitura:Cap3 – Sommerville / Cap1: Pressman - Ariadne

Page 2: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 2Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Processos de software

� Atividades para especificar, projetar, implementar e testar sistemas de software

Page 3: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 3Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos

� Compreender o conceito de um processo de software

� Descrever vários modelos de processo diferentes e quando eles podem ser usados

� Descrever modelos de processo para a engenharia de requisitos de software, desenvolvimento de software, teste e evolução.

� Conhecer a tecnologia de CASE para apoio ao processo de software.

Page 4: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 4Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Processo de software

� “Um processo de software é um método para desenvolver ou produzir software.

� A pesquisa em processo de software lida com métodos e tecnologias estimativas, suporte e melhoria das atividades de desenvolvimento de software.

� Define quem faz o que, quando e como.

Page 5: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 5Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelagem

� Modelagem é uma técnica de engenharia aprovada e bem aceita• modelos de arquitetura de casas e de grandes

prédios• modelos matemáticos a fim de analisar os efeitos

de ventos e tremores de terra --> causas

� O que é um MODELO?

Page 6: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 6Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelos� Um modelo é uma simplificação da realidade.

• Planos de detalhes, podem ser estruturais (organização do sistema) ou comportamentais (dinâmica do sistema)

� Modelos são construídos para permitir um melhor entendimento sobre o sistema que estásendo construído.• especificar a estrutura e comportamento• guia para construção do sistema• documentam as decisões tomadas

Page 7: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 7Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelos• Modelos de sistemas complexos são

importantes porque não temos capacidade de compreendê-los inteiramente

� Os melhores modelos estão relacionados àrealidade (modelos simplificam a realidade)

� Nenhum modelo único é suficiente. Conjunto de modelos independentes

Page 8: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 8Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelagem na Engenharia Civil

Page 9: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 9Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos da Modelagem

� Auxiliar no processo de produção � produtos de alta qualidade, produzidos mais rapidamente e a um custo cada vez menor.

� Atributos: abstração, visibilidade, especificação, construção, confiabilidade, manutenibilidade, segurança, documentação.

Page 10: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 10Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos da Modelagem

� Possibilitam:• Ao gerente: controlar o processo de

desenvolvimento de sistemas de software.

• Ao desenvolvedor: obter a base para produzir, de maneira eficiente, software que satisfaça os requisitos pré-estabelecidos.

Page 11: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 11Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos da Modelagem� Abstração

– Melhor entendimento e maior compreensão

� Visualização– Visualização antecipada antes da implementação– Visões complementares do software

� Especificação– Descrição precisa do que deve ser feito

Page 12: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 12Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos da Modelagem

� Construção– Geração automática com ferramentas baseadas em

modelos

� Documentação– Comunicação entre equipes na diferentes fases do

ciclo de vida

Page 13: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 13Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo X Processo

� Um modelo é algo teórico, um conjunto de possíveis ações.

� O processo deve determinar ações práticas a serem realizadas pela equipe como prazos definidos e métricas para se avaliar como elas estão sendo realizadas

Modelo + Planejamento = Processo

Page 14: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 14Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelos de processo de software

� Um conjunto de atividades fundamentais exigida para desenvolver um sistema de software• Especificação. • Projeto e implementação.• Validação. • Evolução.

� Um modelo de processo de software é uma representação abstrata de um processo. Representa uma descrição de um processo a partir de uma perspectiva particular.

Page 15: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 15Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

As exigências que criam processo

Estudo de viabilidade

Relatóriode viabilidade

Levantamento e análise de requisitos

Especificação de requisitos

Validação de requisitos

Modelosde sistemas

Requisitos dousuário e do sistema

Documentaçãode requisitos

Page 16: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 16Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelos de processo de software

� Processo de Engenharia de Requisitos– Estudo de viabilidade

» Econômica – relação custo/benefício;» Técnica – tecnologia e capacitação;» Jurídica – aspectos legais.

– Levantamento e análise de requisitos» Entrevista, observação, reuniões

– Especificação de requisitos» Documento contendo os requisitos do usuário e do sistema –

funcionais e não-funcionais

– Validação de requisitos» Avaliação do documento de requisitos – pertinência, consistência

e integralidade.

Page 17: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 17Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Uma representação simplificada de um processo de software, apresentada de uma perspectiva específica

� Exemplos de modelos de processo são: • Workflow - sucessão de atividades • Fluxo de Dados - fluxo de informação • Papel/ação – representa os papéis das pessoas

e as atividades pelas quais elas são responsáveis.

Modelos de processo de software

Page 18: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 18Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Uma estratégia de desenvolvimento que englobe processos, métodos e

ferramentas, e as fases de desenvolvimento...

Modelos de processo de software - paradigmas

Page 19: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 19Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

1.1. Modelo SeqModelo Seqüüencial (ciclo de vida clencial (ciclo de vida cláássico)ssico)

2.2. Modelo de Modelo de PrototipaPrototipaççãoão

3.3. Modelos EvolutivosModelos Evolutivos

1.1. Modelo Incremental e EspiralModelo Incremental e Espiral

4.4. TTéécnicas de 4a geracnicas de 4a geraççãoão

5.5. Modelo de MModelo de Méétodos Formaistodos Formais

6.6. Orientado a reusoOrientado a reuso

7.7. etcetc

Modelos de processo de software - paradigmas

Page 20: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 20Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� O modelo de cascata • Separa em fases distintas as atividades de

especificação, projeto, implementação, testes e manutenção.

� Desenvolvimento evolucionário (prototipação) • Especificação e desenvolvimento são intercalados

� Modelo espiral• O desenvolvimento do sistema evolui a partir de um

esboço inicial, em direção ao sistema final desenvolvido.

Modelos de processo de software - paradigmas

Page 21: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 21Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Desenvolvimento de sistemas formal • Um modelo de sistema matemático é transformado

formalmente em uma implementação

� Desenvolvimento orientado a reuso • O sistema é composto de componentes existentes

Modelos de processo de software - paradigmas

Page 22: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 22Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelos cascata

� Método sistemático e seqüencial

� O resultado de uma fase se constitui na entrada da outra.

� Cada fase é estruturada como um conjunto de atividades que podem ser executadas por pessoas diferentes, simultaneamente.

Page 23: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 23Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo de cascataDefinição de

requisitos

Análise / projeto de sistema e de

software

Implementação e teste

Integração e teste

Operação e manutenção

Page 24: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 24Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Ciclo de vida� Fase de definição

– Análise e Especificação– Estudo de Viabilidade– Estimativas Planejamento

� Fase de desenvolvimento– Projeto– Implementação e integração– Verificação e Validação

� Fase de operação– Atividades que mantém o sistema funcionando– Manutenção – atividades executadas depois que o produto é

entregue aos usuários.

Page 25: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 25Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de definição� Deve-se analisar os requisitos, recursos e

restrições para:• apresentar soluções,• estudar a viabilidade,• planejar e gerenciar o desenvolvimento a partir

de estimativas e análise de riscos que se utilizam de métricas

• Definir quais os requisitos do produto de software, sem especificar como esses requisitos serão obtidos.

Page 26: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 26Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de definição� Esta fase encerra-se com o contrato de

desenvolvimento.»Analisado e confirmado pelo usuário

para verificar se ele satisfaz todas as suas expectativas.

»Deve ser usado pelos desenvolvedoresde software para obter um produto que satisfaça os requisitos.

Page 27: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 27Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de desenvolvimentoProjeto de Software

� É definida a solução do problema:• Decomposição do produto ( sub-sistema,

componentes etc).• Representação das funções do sistema em uma

forma que possa ser transformada em um ou mais programas executáveis.

• Definição de “como” o produto deve ser implementado.

• Dividido em:� Projeto de alto nível – decomposição lógica� Projeto detalhado – decomposição física.

Page 28: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 28Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de desenvolvimentoProjeto de Software

� Projeto conceitual, projeto da interface de usuário, projeto da arquitetura de software, projeto de algoritmos e estruturas e dados.

� Resultado – documentação de especificação de projeto

Page 29: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 29Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de desenvolvimento Implementação

� O projeto é transformado em um programa, ou unidades de programa.• Teste unitário � cada unidade satisfaz suas

especificações ( plano e casos de teste pré-estabelecidos)

� Resultado ���� coleção de programas implementados e testados.

Page 30: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 30Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de desenvolvimento Integração

� Programas ou unidades de programas são integrados e testados como sistema.• Integração incremental � programas ou

unidades são integradas à medida em que forem sendo desenvolvidos.

� Resultado � produto pronto para ser entregue ao cliente.

Page 31: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 31Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Fase de Operação / Manutenção

� Operação• Instalação e configuração• Utilização – inicialmente operado por um grupo de

usuário

� Manutenção– Corretiva: correção de erros remanescentes– Adaptativa: adaptação dos produtos às mudanças

» novas versões» novas situações de operação – hardware, sistemas operacionais

– Evolutiva: alteração dos requisitos e manutenção da qualidade.

Page 32: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 32Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades complementares� Estudo de viabilidade

• Analisar o problema em nível global• Identificar soluções alternativas (custos / benefícios)• Simulação do futuro processo de desenvolvimento

� Resultado – documentação contendo:• Definição do problema• Soluções alternativas, com os benefícios esperados• Fontes necessárias, custos e datas de entrega para cada

solução proposta.

Page 33: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 33Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades complementares� Gerenciamento

• Adaptação do ciclo de vida ao processo• Definição de políticas:

» Como produtos ou resultados intermediários vão ser armazenados acessados e modificados.

» Como versões diferentes de sistemas são construídos.» Quais autorizações são necessárias para acessar os

componentes de entrada/saída do banco de dados do sistema.

» Recursos que afetam o processo de produção, particularmente com os recursos humanos.

Page 34: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 34Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Contribuições e problemas do ciclo de vida clássico

� Contribuições• Processo de desenvolvimento de software deve

ser sujeito à disciplina, planejamento e gerenciamento.

• A implementação do produto deve ser postergada até que os objetivos tenham sido completamente entendidos.

• Deve ser utilizado quando os requisitos estão bem claros no inicio do desenvolvimento.

Page 35: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 35Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Contribuições e problemas do ciclo de vida clássico

� Problema• Rigidez• Qualquer desvio é desencorajado• Todo o planejamento é orientado para a entrega

do produto de software em uma data única.• Processo de desenvolvimento pode ser longo e

a aplicação pode ser entregue quando as necessidades do usuário já tiverem sido alteradas.

Page 36: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 36Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Contribuições e problemas do ciclo de vida clássico

� Problema (cont.)• Projetos reais raramente seguem o fluxo

seqüencial que o modelo propõe.• Logo no início é difícil estabelecer

explicitamente todos os requisitos. No começo dos projetos sempre existe uma incerteza natural.

• O cliente deve ter paciência. Uma versão executável do software só fica disponível numa etapa avançada do desenvolvimento

Page 37: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 37Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Ciclo de Vida Clássico/O Modelo Cascata

ETAPA PERGUNTAS-CHAVES CRITÉRIOS DE SAÍDA

Definição doproblema

Qual é o problema

Estudo deviabilidade

Há uma solução viável

Análise O que terá de ser feitopara resolver o problema?

Declaração da delimitação e objetivos.

Análise geral de custo/benefícioAlcance e objetivos do sistema.

Modelo lógico do sistema:

Diagrama de Fluxo de Dados;Diagrama de Entidade e RelacionamentoDiagrama de Transição de Estado;Dicionário de Dados;Especificação de Processos.

Page 38: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 38Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Ciclo de Vida Clássico/O Modelo Cascata

ETAPA PERGUNTAS-CHAVES CRITÉRIOS DE SAÍDAProjeto Como o problema deve ser

resolvido?Como o sistema deve serimplementado?

Soluções AlternativasEspecificação de hard/soft;Plano de implementação;Plano de teste preliminares;Procedimento de segurança;Procedimento de auditoria.

Implementação Faça Programas;Plano de testes;Procedimento de segurança;Procedimento de auditoria.

Teste Verificar o sistema Testes do geral do sistema.

Manutenção Modificar o sistema conformenecessidade.

Apoio continuado.

Page 39: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 39Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Abordagem baseada na idéia de desenvolver uma implementação inicial, expor o resultado ao comentário do usuário e fazer seu aprimoramento por meio de muitas versões.

� As atividade de desenvolvimento e validação são desempenhadas paralelamente, com um rápido feedback entre elas.

Modelo Evolucionário

Page 40: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 40Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Tipos:• Desenvolvimento exploratório• Protótipo descartável

Modelo Evolucionário

Page 41: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 41Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Trabalhar junto com o cliente, a fim de explorar seus requisitos e entregar um sistema final.

� O desenvolvimento se inicia com as partes do sistema que são mais bem compreendidas.

Modelo evolucionário (Desenvolvimento exploratório )

Page 42: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 42Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� O sistema evolui com o acréscimo de novas características à medida que elas são propostas pelo cliente.

� Importante quando é difícil, ou mesmo impossível, estabelecer uma especificação detalhada dos requisitos do sistema a priori.

Modelo evolucionário (Desenvolvimento exploratório )

Page 43: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 43Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades concorrentes

Validação

Desenvolvimento

Especificação Versão inicial

Descrição do esboço

Versão intermediárias

Versãofinal

Modelo evolucionário (Desenvolvimento exploratório )

Page 44: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 44Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Obter os requisitos do cliente e, a partir disso, desenvolver uma melhor definição de requisitos para o sistema.

� Concentra em fazer experimentos com partes dos requisitos que estejam mal entendidos.

Modelo evolucionário (Protótipo descartável)

Page 45: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 45Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Usuário define uma série de objetos para o produto de software, mas não consegue identificar detalhes de entrada, processamento ou requisitos de saída.

� O desenvolvedor está incerto sobre a eficiência de um algoritmo, a adaptação de um sistema operacional ou ainda sobre a forma da interação homem-máquina.

Modelo evolucionário (Protótipo descartável)

Page 46: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 46Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo evolucionário (prototipação)

Conversar como Cliente

Construir/Revisarprotótipo

Revisão e Testepelo Cliente

Page 47: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 47Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Coleta e refinamento dos

requisitos

Refinamento do protótipo

Engenharia do produto Projeto

rápido

Construção do protótipo

Avaliação do protótipo pelo

cliente

Fim

Início

Modelo evolucionário (prototipação)

Page 48: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 48Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades da Prototipação�� COLETA DOS REQUISITOSCOLETA DOS REQUISITOS::

• desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais

�� PROJETO RPROJETO RÁÁPIDO:PIDO:

• representação dos aspectos do software que são visíveis ao usuário (abordagens de entrada e formatos de saída)

Page 49: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 49Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades da Prototipação�� CONSTRUCONSTRUÇÇÃO PROTÃO PROTÓÓTIPO:TIPO:

• Implementação do projeto rápido serve como o “primeiro sistema” - recomendado que se jogue fora futuramente

�� AVALIAAVALIAÇÇÃO DO PROTÃO DO PROTÓÓTIPO:TIPO:

• Cliente e desenvolvedor avaliam o protótipo

Page 50: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 50Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades da Prototipação�� REFINAMENTO DOS REQUISITOS:REFINAMENTO DOS REQUISITOS:

• Cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido.

• Ocorre neste ponto um processo de iteraiteraççãoão que pode conduzir a atividade 1 até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito

Page 51: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 51Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Atividades da Prototipação

�� CONSTRUCONSTRUÇÇÃO PRODUTO:ÃO PRODUTO:• identificados os requisitos, o protótipo deve ser

descartado e a versão de produção deve ser construída considerando os critérios de qualidade

Page 52: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 52Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Contribuições e problemas do modelo evolutivo

� Contribuições• Sistemas pequenos • Útil quando os requisitos estão obscuros• Especificação é construída gradativamente• Possibilitam um rápido desenvolvimento da

aplicação• Testes podem ser mais efetivos.

Page 53: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 53Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Contribuições e problemas do modelo evolutivo

� Problema• O processo não é visível • Os sistemas são freqüentemente mal-

estruturados e mal-documentados• Pode exigir ferramentas e técnicas especiais.• Processo não é claro, dificuldade de

planejamento e gerenciamento

Page 54: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 54Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Problema (cont)

• Cliente não sabe que o software que ele vê não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo

» Não aceita bem a idéia que a versão final do software vai ser construída e “força” a utilização do protótipo como produto final.

Contribuições e problemas do modelo evolutivo

Page 55: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 55Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Problema (cont)

• Desenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo.

» Depois de um tempo ele familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final.

Contribuições e problemas do modelo evolutivo

Page 56: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 56Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo espiral(Boehm)

� Desenvolvido pala englobar as melhores características do ciclo de vida clássico e do paradigma evolutivo.

� São avaliados riscos explicitamente e são solucionados ao longo do processo.

� Processo é representado como uma espiral em lugar de ser representado como uma seqüência de atividades

Page 57: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 57Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo espiral(Boehm)

� Cada loop na espiral representa uma fase do processo de software.

� Não existem fases fixas.

� Engloba as melhores características do ciclo de vida Clássico como o da Prototipação, adicionando um novo elemento: a ANÁLISE DOS RISCOS

Page 58: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 58Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo espiral(Boehm)

� Segue a abordagem de passos sistemáticos do Ciclo de Vida Clássico incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real

� Usa a Prototipação, em qualquer etapa da evolução do produto, como mecanismo de redução de riscos

Page 59: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 59Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Planejamento

Engenharia

Análise derisco

Avaliação do cliente

Coleta inicial dos requisitos e planejamento do projeto

Planejamento baseado nos comentários do cliente

Avaliação do cliente

Decisão de prosseguir/não prosseguirNa direção de um sistema concluído

Protótipo de software inicial

Sistema construído pela engenharia

Modelo espiral

Para cada risco do projeto identificado em P élevada a cabo uma análise detalhada.

Page 60: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 60Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo espirais (Funcionamento)

� À medida que a volta na espiral acontece, versões mais completas do software vão sendo progressivamente construída.

� Durante a primeira volta, são definidos objetivos, alternativas e restrições.

� Se a análise de risco indicar que há incerteza nos requisitos, a prototipação pode ser usada para auxiliar o desenvolvedor e o usuário.

� O usuário avalia o produto e faz sugestões de modificações.

Page 61: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 61Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Modelo espirais(Planejamento )

� São identificados objetivos específicos, tais como desempenho e funcionalidade.

� São determinadas alternativas para atingir estes objetivos.

� São identificadas restrições do processo e do produto e é elaborado um relatório de gestão detalhado.

� Estratégias alternativas, dependendo dos riscos detectados, podem ser planejados.

Page 62: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 62Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Avaliação do cliente • O projeto é revisado e a próxima fase da

espiral é planejada.

• Toma-se decisão sobre avançar para mais uma volta na espiral.

• Se for para avançar são desenhados os planos para a próxima fase do projeto.

Modelo espirais(Ánalise de risco )

Page 63: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 63Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Escolher um modelo de desenvolvimento para o sistema

• Riscos significativos na interface com o utilizador �desenvolvimento evolutivo.

• Riscos de segurança � Desenvolvimento Formal

• Riscos na integração dos sub-sistemas � Modelo Cascata

Modelo espirais(Ánalise de risco )

Page 64: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 64Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Concentra-se na capacidade de se especificar o software a uma máquina em um nível que esteja próximo à linguagem natural.

� Engloba um conjunto de ferramentas de software que possibilitam que:� o sistema seja especificado em uma linguagem de sistema seja especificado em uma linguagem de

alto nalto níívelvel e � o ccóódigo fonte seja gerado automaticamentedigo fonte seja gerado automaticamente a partir

dessas especificações

Técnicas de 4a Geração

Page 65: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 65Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� O ambiente de desenvolvimento inclui as ferramentas:• linguagens não procedimentais para consulta de

banco de dados• geração de relatórios• manipulação de dados• interação e definição de telas• geração de códigos• capacidade gráfica de alto nível• capacidade de planilhas eletrônicas

Técnicas de 4a Geração

Page 66: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 66Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Técnicas de 4a Geração

������� � � �

� � � �� ��� �� � �� � ��� �� ��� � � ���� �

�� � ��� ���� �� � � � � � �

� � � �� ���

Page 67: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 67Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

�� OBTENOBTENÇÇÃO DOS REQUISITOS:ÃO DOS REQUISITOS: o cliente descreve os requisitos os quais são traduzidos para um protótipo operacional• O cliente pode estar inseguro quanto aos requisitos

• O cliente pode ser incapaz de especificar as informações de um modo que uma ferramenta 4GL possa consumir

• As 4GLs atuais não são sofisticadas suficientemente para acomodar a verdadeira "linguagem natural“.

Técnicas de 4a Geração

Page 68: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 68Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

�� ESTRATESTRATÉÉGIA DE "PROJETO":GIA DE "PROJETO": para pequenas aplicações é possível mover-se do passo de Obtenção dos Requisitos para o passo de Implementação • Para grandes projetos é necessário desenvolver

uma estratégia de projeto. De outro modo ocorrerão os mesmos problemas encontrados quando se usa abordagem convencional (baixa qualidade, manutenibilidade ruim, má aceitação do cliente)

Técnicas de 4a Geração

Page 69: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 69Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

�� IMPLEMENTAIMPLEMENTAÇÇÃO USANDO 4GL:ÃO USANDO 4GL:• os resultados desejados são representados de

modo que haja geração automática de código .

�� TESTE:TESTE:• o desenvolvedor deve efetuar testes e desenvolver

uma documentação significativa. O software desenvolvido deve ser construído de maneira que a manutenção possa ser efetuada prontamente.

Técnicas de 4a Geração

Page 70: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 70Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Combinando Paradigmas

obtenção preliminar dos requisitos

modelo espiraltécnicas 4G

prototipaçãoanálise dos requisitos

projeto

codificação

testes

manutenção

técnicas 4G

técnicas 4G

modelo espiral:enésima interação

prototipaçãoenésima interação

Sistema completo

Page 71: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 71Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Métodos Ágeis - Movimento iniciado por programadores experientes e consultores em desenvolvimento de software.

� Objetivo: satisfazer o cliente entregando, rapidamente e com freqüência, sistemas com algum valor.

Métodos Ágeis

Page 72: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 72Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� SCRUM SCRUM -- é um processo para construir software incrementalmenteem ambientes complexos, onde os requisitos não são claros ou mudam com muita freqüência. http://www.dcc.unicamp.br/~ra022247/Arquivos/scrum.pdf

� Crystal/Clear ( ( Cockburn ) - é permitir que cada organização implemente as atividades que lhe parecem adequadas, fornecendo um mínimo de suporte útil do ponto de vista de comunicação e documentos

� http://alistair.cockburn.us

Métodos Ágeis

Page 73: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 73Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

�� Dynamic Systems Development MethodDynamic Systems Development Method -- DSDMDSDM --((MMéétodo Dinâmico de Desenvolvimento de Sistemas)todo Dinâmico de Desenvolvimento de Sistemas)

• Progenitor do XP. Suporta mudanças nos requisitos durante o ciclo de vida

� Extreme Programming - é uma metodologia ágil para equipes pequenas e médias desenvolvendo software com requisitos vagos e em constante mudança [Kent Beck ]

Métodos Ágeis

Page 74: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 74Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

�� Feature Driven DevelopmentFeature Driven Development –– FDD FDD (Desenvolvimento orientado a funcionalidades)(Desenvolvimento orientado a funcionalidades)

• Suporta desenvolvimento ágil com rápidas adaptações às mudanças de requisitos e necessidades do mercado. Foco nas fases de desenho e construção.

�� AdaptiveAdaptive Software Software DevelopmentDevelopment -- ASDASD(Desenvolvimento Adapt(Desenvolvimento Adaptáável de Software)vel de Software)

• Sistemas grandes e complexos. Iterativo e incremental. Cliente sempre presente

Métodos Ágeis

Page 75: Leitura: Cap3 – Sommerville / Cap1: Pressman - Ariadne

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 75Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Prática

� Considerando os sistemas em funcionamento da sua empresa, responda:

� Qual o modelo adotado;� Qual o paradigma que você escolheria?