33
Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César [email protected] www.romulocesar.com.br FACULDADE DOS GUARARAPES

Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César [email protected] FACULDADE DOS GUARARAPES

Embed Size (px)

Citation preview

Page 1: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Processos de SW: ciclo de vida, processos, modelos

Professor: Rômulo Cé[email protected]

FACULDADE DOS

GUARARAPES

Page 2: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Processo do Software

Grupo de atividades coerentes para especificação, projeto, implementação e teste de sistemas de software.

Page 3: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Objetivos Introduzir os processos de modelagem de

software Descrever alguns modelos de processos e quando

eles devem ser usados Descrever em linhas gerais o processo modelo

para os requisitos de engenharia, de desenvolvimento de softare, seu teste e evolução

Indroduzir a tecnologia CASE para o auxílio dos processos de software

Page 4: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Tópicos cobertos Modelos do processo de software Iteração entre os processos Especificação de software Projeto e implementação de software Validação do software Evolução do software Processos automatizados de desenvolvimento

Page 5: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

O processo do software Um conjunto estruturado de atividades necessárias para

desenvolver um sistema de software• Especificação

• Projeto

• Validação

• Evolução

Um modelo de processo de software é uma representação abstrata do processo. Ela apresenta uma descrição do processo de algumas perspectivas particulares

Page 6: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Modelos genéricos de processos de software

O modelo cascata (waterfall)• Fases separadas e distintas de especificação e desenvolvimento

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

Modelo de sistema formal• Um modelo de sistema matemático é formalmente

transformado numa implementação

Desenvolvimento baseado em reuso• O sistema é construído a partir de componentes existentes

Page 7: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Modelo Cascata

Sistemático e seqüencial

Page 8: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Cascata- Fases do Modelo Análise de requisitos e definições Projeto do sistema e do software Implementação e teste de unidades Integração e testes do sistema Manutenção e operação Uma deficiência do modelo cascata é a

dificuldade em acomodar mudanças depois que o processo se inicia.

Page 9: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Análise e Engenharia de Sistemas Estabelecer os requisitos básicos para todos os

sistemas que envolvem o software, como hardware, pessoas e bancos de dados.

Envolve a coleta dos requisitos em nível do sistema, com uma pequena quantidade de projeto e análise de alto nível.

Page 10: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Analise de Requisitos de Sw Concentra a coleta de requisitos no sw. Leva à compreensão do domínio da informação, a

função, desempenho e interfaces exigidos. Os requisitos para o sistema e para o sw são

documentados e revistos com o cliente.

Page 11: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Projeto Estrutura de dados Arquitetura de sw Detalhes procedimentais Caracterização da interface É avaliado antes de começar a ser implementado Junto com as etapas anteriores torna-se parte da

documentação do sistema

Page 12: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Codificação Projeto traduzido para a linguagem do

computador. Se o projeto for executado detalhadamente, a

codificação pode ser executada mecanicamente?

Page 13: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Testes Concentra-se nos aspectos lógicos internos do sw. Garante que “todas as instruções” tenham sido

testadas. A entrada definida produz os resultados exigidos? Garbage in, garbage out?

Page 14: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Manutenção Sw embutido nem sempre tem esta parte. Erros encontrados. Mudanças no ambiente externo. Acréscimos funcionais. Desempenho

Page 15: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Problemas com a Cascata

O mais antigo e amplamente usado. Projetos reais raramente seguem o fluxo seqüencial que

ele propõe. Ocorrem iterações que trazem problemas na aplicação do paradigma.

É difícil para o cliente declarar todas as exigências explicitamente. É difícil acomodar as incertezas naturais que existem no começo de muitos projetos.

O cliente deve ter paciência. Uma versão do sw só estará disponível em um ponto tardio do cronograma. Um erro crasso, pode ser desastroso.

Só é apropriado quando os requisitos são bem conhecidos.

Page 16: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento evolucionário Desenvolvimento exploratório

• O objetivo é trabalhar com o cliente e desenvolver um sistema final a partir das especificações iniciais. Deve iniciar com requisitos bem compreendidos.

Jogar fora a prototipação• O objetivo é entender os requisitos do sistema. Deve iniciar

com requisitos pouco compreendidos.

Page 17: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento evolucionário

ValidationFinal

version

DevelopmentIntermediate

versions

SpecificationInitial

version

Outlinedescription

Concurrentactivities

Page 18: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Prototipação

Coleta e refinamentodos requisitos

Refinam

ento

do protótipo

Eng

enha

ria

do p

rodu

to

Avaliação do protótipopelo cliente

Con

stru

ção

do p

rotó

tipo

Projeto rápidoFi

m

Início

Page 19: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento evolucionário Problemas

• Falta de visibilidade sobre o processo.

• Sistema geralmente pouco estruturado.

• Habilidades especiais (ex. em linguagens para uma rápida prototipação) são requeridas.

Aplicabilidade• Para sistemas interativos pequenos ou médios.

• Para partes de de grandes sistemas (ex. A interface com o usuário).

• Para sistemas com pouco tempo de vida.

Page 20: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Modelo de desenvolvimento formal

Baseado na transformação de uma especificação matemática através de diferentes representações em um programa executável.

As transformações preservam a corretude das especificações, sendo fácil demonstrar que que o programa segue estas últimas.

Baseado na abordagem ‘Cleanroom’ para o desenvolvimento de software.

Page 21: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Modelo de desenvolvimento formal

Requirementsdefinition

Formalspecification

Formaltransformation

Integration andsystem testing

Page 22: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento formal Problemas

• São necessárias habilidades especiais e treinamento para aplicar a técnica.

• Dificuldade para formalizar especificamente alguns aspectos do sistema, como a interface com o usuário.

Aplicabilidade• Sistemas críticos, especialmente aqueles em que uma versão

segura deve ser feita antes do sistema entrar em operação.

Page 23: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento orientado a reutilização

Baseado na sistemática do reuse, onde os sistemas são integrados a partir de componentes existentes ou sistemas (Software de Pratileiras)

Estágios do processo• Análise dos componentes• Modificação dos requisitos• Projeto do sistema com reutilização• Desenvolvimento e integração

Esta abordagem está se tornando mais importante, porém ainda há pouca experiência com ela.

Page 24: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Reuse-oriented development

Requirementsspecification

Componentanalysis

Developmentand integration

System designwith reuse

Requirementsmodification

Systemvalidation

Page 25: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Processo de iteração Os requisitos do sistema sempre evoluem ao

longo do projeto, então o processo de iteração dos estágios anteriores é retrabalhado e vira parte do processo para grandes sistemas.

Iteração pode ser aplicada a qualquer modelo genérico de ciclo de vida.

Duas abordagens semelhantes:• Desenvolvimento incremental

• Desenvolvimento espiral

Page 26: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento incremental Ao invés de entreagar o sistema uma única vez, o

desenvolvimento e a entrega são partidos em incrementos, que fornecem parte das funcionalidades requeridas.

Os requisitos do usuários são dispostos hierarquicamente, e os requisitos de prioridades mais altas são incluídos nas primeiras entregas.

Quando o desenvolvimento de um incremento é iniciado, os requisitos são “congelados” de forma que os requisitos para incrementos posteriores possam continuar a evoluir.

Page 27: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Incremental development

Valida teincrement

Develop systemincrement

Design systemarchitecture

Integrateincrement

Valida tesystem

Define outline requirements

Assign requirements to increments

System incomplete

Finalsystem

Page 28: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Vantagens do desenvolvimento incremental

Valor ao cliente tende a ser entregue a cada incremento, então a funcionalidade dos sistema tende a ser avaliada mais cedo.

Os primeiros incrementos funcionam como um protótipo para ajudar a esclarecer os requisitos para os próximos incrementos.

Baixo risco de o projeto falhar completamente. As tarefas de mais alta prioridade, tendem a

receber mais testes.

Page 29: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Extreme programming (XP) Nova abordagem de desenvolvimento baseada no

desenvolvimento e entrega de pequenos incrementos de funcionalidade.

Funciona com melhorias contínuas no código, envolvimento do usuário no time de desenvolvimento e programação em pares.

Os testes aparecem antes da codificação.

Page 30: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Desenvolvimento em espiral O Processo é representado como um espiral ao invés de

uma sequência de atividades com voltas para trás. Cada volta no espiral representa uma fase no processo. Não há fases fixas como especificação ou projeto. As

voltas no espiral são escolhidas dependendo do que é requisitado

Os riscos são explicitamente avaliados e resolvidos durante todo o processo

Page 31: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Spiral model of the software process

Riskanalysis

Riskanalysis

Riskanalysis

Riskanalysis Proto-

type 1

Prototype 2Prototype 3

Opera-tionalprotoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Page 32: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Setores do modelo espiral Definição dos objetivos

• Os objetivos específicos para a fase são identificados.

Avaliação e redução de riscos• Os riscos são avaliados e as atividades organizadas para

reduzir os riscos chave.

Desenvolvimento e validação• Um modelo de desenvolvimento para o sistema é escolhido,

que pode ser qualquer um dos modelos genéricos.

Planejamento• O projeto é revisto e a próxima fase da espiral é planejada.

Page 33: Processos de SW: ciclo de vida, processos, modelos Professor: Rômulo César romulodandrade@gmail.com  FACULDADE DOS GUARARAPES

Resumo em Equipe Processo de Software; O modelo cascata;

- Análise e Engenharia de Sistemas

- Analise de Requisitos de Sw

- Projeto

-Codificação

-Testes

- Manutenção

Desenvolvimento evolucionário; Desenvolvimento em espiral.