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

Post on 17-Apr-2015

130 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 donegan@icmc.usp.br

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

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

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)

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

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

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

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

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

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)

10

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

Casos de Uso - ResumidoCasos de Uso - Resumido

11

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

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

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)

14

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

Diagrama de Features ComunsDiagrama de Features Comuns

15

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

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

16

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

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

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

19

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

20

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

21

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

Componentes e InterfacesComponentes e Interfaces

22

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

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

23

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

Especificação de InterfacesEspecificação de Interfaces

24

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

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

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)

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

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

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

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

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

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

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

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

34

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

Feature: Feature: Pagamento CartãoPagamento Cartão

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

36

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

Componentes e InterfacesComponentes e Interfaces

• Versão de Fortaleza:

37

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

Componentes e InterfacesComponentes e Interfaces

• Versão de Campo Grande:

38

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

Componentes e InterfacesComponentes e Interfaces

• Versão de São Carlos:

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

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

FIMFIM

Dúvidas?Dúvidas?

Paula Donegan: donegan@icmc.usp.br

top related