Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M....
Transcript of Linha de Produtos de Software de controle de Bilhetes Eletrônicos de Transporte (LPS-BET) Paula M....
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
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