processos de software - usp · processos de software um processo de software é um conjunto de...

29
Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de software é uma representação abstrata de um processo de software Modelos de processos são arcabouços que podem ser ampliados e adaptados para criar processos mais específicos. 1

Upload: others

Post on 16-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Processos de Software

Um processo de software é um

conjunto de atividades que leva à

produção de um produto de software

Um modelo de processo de software é

uma representação abstrata de um

processo de software

Modelos de processos são arcabouços

que podem ser ampliados e adaptados

para criar processos mais específicos. 1

Page 2: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Modelos de Processo

Modelo em Cascata

Desenvolvimento evolucionário

Engenharia de Software baseada em

componentes

Engenharia de Software baseada em

Serviços

2

Page 3: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Desenvolvimento

Evolucionário

Processo exploratório

trabalha com os clientes para explorar os

requisitos

O sistema evolui em incrementos, até

chegar ao sistema final

Prototipação “jogar-fora”

Compreender os requisitos do cliente

Experimentar os requisitos mal entendidos

3

Page 4: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Desenvolvimento

evolucionários

4

Page 5: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Desenvolvimento de software

baseado em componentes

5

Page 6: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Modelo em Espiral

6

Page 7: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Atividades: Especificação

7

Page 8: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Projeto e implementação

8

Onde está

a análise?

Page 9: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Atividade: validação de

software

9

Page 10: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

Atividade: validação de

software

10

Page 11: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

11

O que é o PU?

é um processo de Software: conjunto de

atividades executadas para transformar

um conjunto de requisitos do cliente em

um sistema de software.

é um arcabouço (framework) que pode ser

personalizado de acordo com as

necessidades específicas e recursos

disponíveis para cada projeto.

Page 12: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

12

Princípios básicos do PU

Desenvolvimento iterativo

Baseado em casos de uso

Centrado na arquitetura

Page 13: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

13

Desenvolvimento Iterativo

Figura extraída de Larman, 2004

Page 14: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

14

Baseado em Casos de Uso

Um caso de uso é uma sequência de ações,

executadas por um ou mais atores e pelo

próprio sistema, que produz um ou mais

resultados de valor para um ou mais atores.

O PU é dirigido por casos de uso, pois os

utiliza para dirigir todo o trabalho de

desenvolvimento, desde a elicitação inicial e

negociação dos requisitos até a aceitação do

código (testes).

Page 15: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

15

Baseado em Casos de Uso

Os casos de uso são centrais ao PU e

outros métodos iterativos, pois:

Os requisitos funcionais são registrados

preferencialmente por meio deles

Eles ajudam a planejar as iterações

Eles podem conduzir o projeto

O teste é baseado neles

Page 16: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

16

Centrado na Arquitetura

Arquitetura é a organização fundamental de

todo o sistema. Inclui elementos estáticos,

dinâmicos, o modo como trabalham juntos e

o estilo arquitetônico total que guia a

organização do sistema.

A arquitetura também se refere a questões

como desempenho, escalabilidade, reuso e

restrições econômicas e tecnológicas.

Page 17: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

17

As Fases do PU

Cada um dos ciclos de

desenvolvimento do PU é dividido em

quatro fases

Concepção

Elaboração

Construção

Transição

Page 18: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

18

As Fases do PU

Figura extraída de Larman, 2004

Page 19: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

19

Fases do PU: Concepção

A viabilidade de implantação do sistema é

analisada.

Definição do escopo do sistema.

Estimativas de custos e cronograma

Identificação dos potenciais riscos que

devem ser gerenciados ao longo do projeto

Esboço da arquitetura do sistema, que

servirá como alicerce para a sua construção.

Page 20: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

20

Fases do PU: Elaboração

Visão refinada do sistema, com a

definição dos requisitos funcionais,

detalhamento da arquitetura criada na

fase anterior e gerenciamento contínuo

dos riscos envolvidos.

Estimativas realistas feitas nesta fase

permitem preparar um plano para

orientar a construção do sistema.

Page 21: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

21

Fases do PU: Construção

O sistema é efetivamente desenvolvido

e, em geral, tem condições de ser

operado, mesmo que em ambiente de

teste, pelos clientes.

É nesta fase que o desenvolvimento

iterativo e incremental é realizado

Page 22: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

22

Fases do PU: Transição

O sistema é entregue ao cliente para

uso em produção.

Testes são realizados e um ou mais

incrementos do sistema são

implantados.

Defeitos são corrigidos, se necessário.

Page 23: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

23

As Disciplinas do PU

Se analisarmos as fases do PU, podemos ter a impressão de que cada ciclo de iteração comporta-se como o modelo em Cascata.

Mas isso não é verdade: paralelamente às fases do PU, atividades de trabalho (workflows), denominadas disciplinas do PU, são realizadas em qualquer momento durante o ciclo de desenvolvimento

As disciplinas abrangem todas as fases do PU, podendo ter maior ênfase durante certas fases e menor ênfase em outras, mas podem ocorrer em qualquer uma delas

Page 24: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

24

As Disciplinas do PU

Figura extraída de Larman, 2004

Page 25: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

25

Os Artefatos do PU

Cada uma das disciplinas do PU pode gerar um ou mais artefatos, que devem ser controlados e administrados corretamente durante o desenvolvimento do sistema

Artefatos são os documentos produzidos durante o desenvolvimento, tais como diagramas de caso de uso, documento de especificação de requisitos, código fonte ou executável, planos de teste, etc.

Muitos dos artefatos são opcionais e produzidos de acordo com as necessidades específicas de cada projeto.

Page 26: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

26

Os Artefatos do PU

Disciplina Artefato

Iteração

Concepção

C1

Elaboração

E1...En

Construção

C1...Cn

Transição

T1...Tn Modelagem de

Negócio

Modelo Conceitual p

Diagrama de Casos de Uso p r

Casos de Uso Textuais p r

Diagrama de Seqüência do

Sistema

p r

Contratos para operações p r

Requisitos

Glossário p r

Diagrama de Classes p r

Diagrama de Colaboração p r

Diagrama de Pacotes p r

Projeto

Documento de Arquitetura do

Software

p

Implementação Código fonte p r

p : produzir; r : refinar

Page 27: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

27

Processo Unificado da Rational

(RUP – Rational Unified Process)

É uma instância específica e detalhada do

Processo Unificado. É um produto da empresa

de software IBM (Rational) que contém:

Tutoriais da ferramenta Rational Suite (conjunto de

ferramentas construídas em torno do RUP)

Gabaritos para os artefatos principais

Manuais das tarefas e de personalização dos

gabaritos do processo.

Documentação em um grande conjunto de páginas

HTML

Page 28: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

28

RUP - Fases

Semelhante ao PU:

Concepção

Elaboração

Construção

Transição

Page 29: Processos de Software - USP · Processos de Software Um processo de software é um conjunto de atividades que leva à produção de um produto de software Um modelo de processo de

29

RUP – Disciplinas

Gestão de Projeto *

Modelagem de Negócio *

Requisitos

Análise e Projeto (união de A/P do PU)

Implementação

Teste, Configuração e Gestão de Mudanças*

Ambiente *

Implantação *

* - novas disciplinas