linha de produtos de software de controle de bilhetes eletrônicos de transporte (lps-bet) paula m....

41
Linha de Produtos de Software Linha de Produtos de Software de controle de de controle de Bilhetes Eletrônicos de Bilhetes Eletrônicos de Transporte Transporte (LPS-BET) (LPS-BET) Paula M. Donegan [email protected] Universidade de São Paulo Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Instituto de Ciências Matemáticas e de Computação

Upload: internet

Post on 17-Apr-2015

130 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

Linha de Produtos de SoftwareLinha de Produtos de Softwarede controle de de controle de

Bilhetes Eletrônicos de TransporteBilhetes Eletrônicos de Transporte (LPS-BET)(LPS-BET)

Paula M. Donegan [email protected]

Universidade de São PauloUniversidade de São PauloInstituto de Ciências Matemáticas e de ComputaçãoInstituto de Ciências Matemáticas e de Computação

Page 2: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

2

Seminários Avançados em Engenharia de Software – 2o./2007

TópicosTópicos

• LPS-BET• Requisitos• Casos de Uso• Diagrama de Features• Modelo Conceitual• Arquitetura da LPS-BET• Componentes e Interfaces• Especificação de Interfaces• Composição de Componentes

Page 3: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

3

Seminários Avançados em Engenharia de Software – 2o./2007

LPS-BETLPS-BET

• Controle de Bilhetes Eletrônicos para Transporte municipal • Gerência de dados de passageiros, cartões, linhas, ônibus e

viagens• Validador no ônibus lê um cartão e se comunica com o

sistema central para debitar a passagem• Pode haver um sistema de integração de ônibus para o

passageiro pagar uma única passagem fazendo várias viagens

• Análise de 3 sistemas BET: • Fortaleza (CE)

• São Carlos (SP)

• Campo Grande (MS)

Page 4: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

4

Seminários Avançados em Engenharia de Software – 2o./2007

Processo de DesenvolvimentoProcesso de Desenvolvimento

• Começar com a análise de domínio• Então existem 2 alternativas:

1) Elaborar o projeto do domínio inteiro e implementar em seguida (em uma versão ou em vários incrementos)

2) Projetar e implementar a LPS em uma versão apenas com as características básicas e então incrementar o projeto e a implementação com subgrupos de variabilidades opcionais e alternativas

Page 5: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

5

Seminários Avançados em Engenharia de Software – 2o./2007

Incrementos de LPSsIncrementos de LPSs

Incrementos verticais e horizontais

• Incrementos Horizontais• Subgrupo de características (features) que atendem a uma aplicação

específica mas que não contém necessariamente todas as variabilidades de cada característica incluída

Page 6: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

6

Seminários Avançados em Engenharia de Software – 2o./2007

Incrementos de LPSsIncrementos de LPSs

Incrementos verticais e horizontais

• Incrementos Verticais• Implementam todas as variabilidades de um subgrupo de características

escolhidas, mas que não necessariamente produzem uma aplicação específica

Page 7: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

7

Seminários Avançados em Engenharia de Software – 2o./2007

Desenvolvimento da LPS-BETDesenvolvimento da LPS-BET

• Consideramos importante ter um aplicação completa inicialmente:• Opção de usar ciclos iterativos horizontais gerando uma

aplicação em cada incremento

Iteração 1 Apenas com as características do núcleo (Versão 1)

Iteração 2 Versão 1 +

características e variabilidades da aplicação de Fortaleza

Iteração 3 Versão 2 +

características e variabilidades da aplicação de Campo Grande

Iteração 4 Versão 3 +

características e variabilidades da aplicação de São Carlos

Iteração 5 Versão 4 + todas as variabilidades +

geração automática com um Gerador de Aplicação

Page 8: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

8

Seminários Avançados em Engenharia de Software – 2o./2007

RequisitosRequisitos

• Requisitos do sistema BET de Fortaleza• Requisitos do sistema BET de Campo Grande• Requisitos do sistema BET de São Carlos

Page 9: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

9

Seminários Avançados em Engenharia de Software – 2o./2007

Comparação de RequisitosComparação de RequisitosSão Carlos Fortaleza Campo Grande

Leitoras em ônibus (F1) Leitoras em ônibus e em terminais (F1) Leitoras em ônibus e em terminais (F1)

Integração temporal (F4) Não há integração temporal (F4) Integração temporal (F4)

Tempo para integração: 90 minutos (F4)

“Tempo para integração: 60 minutos (F4)

Sem restrição para quantidade de viagens de integração temporal (F4)

“Única integração temporal da viagem (F4)

Não há terminais

A entrada do ônibus em um terminal é feita por uma porta que dá acesso diretamente ao interior do ônibus, sem passar pela catraca (F5)

A entrada do ônibus em um terminal é feita por uma porta que dá acesso diretamente ao interior do ônibus, sem passar pela catraca (F5)

Valor máximo de carga no cartão dependendo da categoria do cartão (F7)

Não há valor máximo de carga para os cartões

Não há valor máximo de carga para os cartões

Desconto para alguns tipos de passageiros (F8)

Desconto para alguns tipos de passageiros (F8, F9, F13)

Desconto para alguns tipos de passageiros (F10, F11)

Valor do desconto segue as seguintes categorias de passageiros: A) estudantes e B) empregados doméstica(o)s têm desconto de 50% sobre o valor da passagem; C) trabalhadores registrados têm 30% de desconto (F8)

O vale-transporte operacional e gratuidade fornecem 100% de desconto (F8 e F9)A carteira de estudante permite o pagamento manual com 50% de desconto (F13)

O cartão estudantil fornece 50% de desconto (F10)O cartão gratuidade fornece 100% de desconto (F11)

Page 10: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

10

Seminários Avançados em Engenharia de Software – 2o./2007

Casos de Uso - ResumidoCasos de Uso - Resumido

Page 11: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

11

Seminários Avançados em Engenharia de Software – 2o./2007

Page 12: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

12

Seminários Avançados em Engenharia de Software – 2o./2007

RastreabilidadeRastreabilidadeSubsistema Casos de Uso São Carlos Fortaleza Campo Grande

Gerência

Gerenciar Cartão F1, F4 F1 F1, F3, F4

Gerenciar Linha F12 F17 F18

Gerenciar Linha de Integração F4, F13 - F4, F19

Gerenciar Terminal - F1, F5 F1

Gerenciar Ônibus F12 F1 F1

Gerenciar Validador F1, F2 F1, F2 F1, F2

Gerenciar Corrida F12 F17 F18

Aquisição e Carga de

Cartão

Adquirir Cartão F9, F14 F7, F8, F9, F10, F12, F13 F8, F9, F10, F11, F12

Carregar Cartão F7 F11 F7, F13

Verificar Pagamento do Cartão - F10 -

Verificar Tipo de Passageiro F8 F7, F8, F9, F10 F8

Verificar Limite de Viagens F7, F8 - -

Viagem

Realizar Viagem F1, F2, F6, F16 F1, F2, F5, F19 F1, F2, F4, F5, F6, F22

Ler Cartão F1 F1 F1

Verificar Situação do Cartão F2, F3 F2, F3, F4 F2, F3

Verificar Integração F4, F5 - F4, F5

Verificar Quantidade de Viagens de Integração

- - F4, F20

Registrar Corrida F12, F15, F16 F12, F18, F19 F19, F21, F22

Page 13: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

13

Seminários Avançados em Engenharia de Software – 2o./2007

Candidatos a Componentes AspectuaisCandidatos a Componentes Aspectuais

Caso de UsoTipo de

RequisitoMotivo

Gerenciar Cartão FuncionalIncluído por 3 casos de uso (dois deles são núcleo)

Gerenciar Limite Viagens FuncionalIncluído por 2 casos de uso, mas depende do sistema da LPS (1 deles é opcional)

Gerenciar Tipo Passageiro FuncionalIncluído por 2 casos de uso, mas depende do sistema da LPS (1 é opcional)

Gerenciar Política Desconto Funcional Incluído por 2 casos de uso (os dois são núcleo)

Verificar Tipo Passageiro Funcional Incluído por 2 casos de uso (os dois são núcleo)

Verificar Situação do Cartão Funcional Incluído por 2 casos de uso (os dois são núcleo)

Autenticar Usuário Não-Funcional Estende 3 casos de uso (os três são opcionais)

Ler Cartão Funcional Incluído por 2 casos de uso (os dois são núcleo)

Gerenciar Linha de Integração

Funcional Estende 2 casos de uso (um deles é opcional)

Page 14: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

14

Seminários Avançados em Engenharia de Software – 2o./2007

Diagrama de Features ComunsDiagrama de Features Comuns

Page 15: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

15

Seminários Avançados em Engenharia de Software – 2o./2007

Diagrama de Features da LPS-BETDiagrama de Features da LPS-BET

Page 16: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

16

Seminários Avançados em Engenharia de Software – 2o./2007

Page 17: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

17

Seminários Avançados em Engenharia de Software – 2o./2007

Features Adicionais dos sistemas BETFeatures Adicionais dos sistemas BET

Fortaleza Campo Grande São CarlosAcesso Adicional Acesso Adicional

Autent. Passageiro

Forma de Integração

- Terminal

Forma de Integração

- Terminal

- Integração

* Tempo

* Linha de Integração

* Número de Viagens de Integração

Forma de Integração

- Integração

* Tempo

* Linha de Integração

Pagamento de Cartão

Restrição de Cartões

- Número de Cartões

Restrição de Cartões

- Combinação de Cartões

Empresas Usuárias Empresas Usuárias

Limite de Viagens

Page 18: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

18

Seminários Avançados em Engenharia de Software – 2o./2007

Diagrama de Seqüência de Sistema - Realizar ViagemDiagrama de Seqüência de Sistema - Realizar Viagem

Page 19: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

19

Seminários Avançados em Engenharia de Software – 2o./2007

Page 20: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

20

Seminários Avançados em Engenharia de Software – 2o./2007

Page 21: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

21

Seminários Avançados em Engenharia de Software – 2o./2007

Componentes e InterfacesComponentes e Interfaces

Page 22: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

22

Seminários Avançados em Engenharia de Software – 2o./2007

Diagrama de Comunicação ParcialDiagrama de Comunicação ParcialRealizar ViagemRealizar Viagem

Page 23: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

23

Seminários Avançados em Engenharia de Software – 2o./2007

Especificação de InterfacesEspecificação de Interfaces

Page 24: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

24

Seminários Avançados em Engenharia de Software – 2o./2007

Diagrama de Estados Diagrama de Estados do subsistema do Ônibusdo subsistema do Ônibus

Page 25: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

25

Seminários Avançados em Engenharia de Software – 2o./2007

Decisões de Projeto para Features da LPSDecisões de Projeto para Features da LPS

• Como decisões de projeto são influenciadas por:• Decisões tomadas relacionadas ao processo adotado

de desenvolvimento da LPS• Tipo do componente (caixa preta ou caixa branca)• Forma de composição (manual ou automatizado)

• Features (características)• Formas de Integração: usa novas classes• Pagamento Cartão: usa subclasses (com novos

atributos e métodos)

Page 26: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

26

Seminários Avançados em Engenharia de Software – 2o./2007

Feature: Feature: TerminalTerminal

Parte do diagrama de features

Parte do modelo de classes

Nova classe requerida

Page 27: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

27

Seminários Avançados em Engenharia de Software – 2o./2007

• Sem acesso interno à implementação dos componentes desenvolvidos

• LinhaMgr é reusado sem alteração• Versão de Fortaleza:

Componente composto LinhaTerminalMgr

Feature: Feature: TerminalTerminal

Page 28: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

28

Seminários Avançados em Engenharia de Software – 2o./2007

Parte do diagrama de features

Parte do modelo de classes

Feature: Feature: Linha de IntegraçãoLinha de Integração

Nova classe requerida

Page 29: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

29

Seminários Avançados em Engenharia de Software – 2o./2007

• LinhaTerminalMgr desenvolvido para Fortaleza é reusado• Versão de Campo Grande:

Componente composto LinhaTerminalIntegraçãoMgr

Feature: Feature: Linha de IntegraçãoLinha de Integração

Page 30: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

30

Seminários Avançados em Engenharia de Software – 2o./2007

• LinhaMgr é reusado• LinhaIntegradaMgr desenvolvido para Campo Grande é

reusado• Versão de São Carlos:

Componente composto LinhaIntegraçãoMgr

Feature: Feature: Linha de IntegraçãoLinha de Integração

Page 31: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

31

Seminários Avançados em Engenharia de Software – 2o./2007

Parte do diagrama de features

• Pontos de variação nas classes TipoPassageiro e Pagamento Cartão• Alterando atributos e operações dessas classes (não necessário inserir uma nova

classe no modelo)

Feature: Feature: Pagamento CartãoPagamento Cartão

Page 32: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

32

Seminários Avançados em Engenharia de Software – 2o./2007

Feature: Feature: Pagamento CartãoPagamento Cartão

Opção 1: Usar classes parametrizadas

Opção 2: Usar classes com pontos de variação e separar a feature Pagamento Cartão em um novo componente chamado PagamentoMgr

Separação de interesses e componentes caixa-preta

Page 33: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

33

Seminários Avançados em Engenharia de Software – 2o./2007

Feature: Feature: Pagamento CartãoPagamento Cartão

Parte do modelo de classes

• Ambas as classes permanecem em um componente pois possuem o mesmo interesse e são sempre usadas juntas

Novos atributos requeridos

Page 34: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

34

Seminários Avançados em Engenharia de Software – 2o./2007

Feature: Feature: Pagamento CartãoPagamento Cartão

Page 35: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

35

Seminários Avançados em Engenharia de Software – 2o./2007

• CartaoMgr é reusado sem alteração• Versão de Fortaleza:

Componente composto CartaoPgtoCartaoMgr

Features: Features: Pagamento CartãoPagamento Cartão

Page 36: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

36

Seminários Avançados em Engenharia de Software – 2o./2007

Componentes e InterfacesComponentes e Interfaces

• Versão de Fortaleza:

Page 37: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

37

Seminários Avançados em Engenharia de Software – 2o./2007

Componentes e InterfacesComponentes e Interfaces

• Versão de Campo Grande:

Page 38: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

38

Seminários Avançados em Engenharia de Software – 2o./2007

Componentes e InterfacesComponentes e Interfaces

• Versão de São Carlos:

Page 39: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

39

Seminários Avançados em Engenharia de Software – 2o./2007

Usando um Gerador de CódigoUsando um Gerador de Código

• Lista de features: esboço inicial da AML• Componentes Caixa-Preta:

• Gerador age como um configurador• Começa com a arquitetura básica e substitui/inclui

componentes necessários e gera “glue-code” para composição de componentes

• Componentes Caixa-Branca:• Gerador realiza mudanças dentro de cada

componente gerando classes adicionais e modificando outros elementos dentro desses componentes

• O gerador fica bem mais complexo e atua como um compositor

Page 40: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

40

Seminários Avançados em Engenharia de Software – 2o./2007

Usando um Gerador de Código (II)Usando um Gerador de Código (II)

• Automatizar o processo de composição influencia no projeto e no momento da introdução da automação na LPS• Se automação é usada a partir da primeira versão

Influencia no projeto de novas versões da LPS

Cada nova iteração horizontal requer retrabalho considerável no gerador

• Pretendemos usar o Gerador de Aplicação Configurável Captor desenvolvido pelo noso grupo de pesquisa

Page 41: Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M. Donegan donegan@icmc.usp.br Universidade de São Paulo

FIMFIM

Dúvidas?Dúvidas?

Paula Donegan: [email protected]