Universidade de São Paulo
Instituto de Ciências Matemáticas e de Computação
Linha de Produtos de Software
de controle de
Bilhetes Eletrônicos de Transporte
(LPS-BET)
Paula M. Donegan
[email protected]
Seminários Avançados em Engenharia de Software – 2o./2007
Tó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
2
Seminários Avançados em Engenharia de Software – 2o./2007
LPS-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)
3
Seminários Avançados em Engenharia de Software – 2o./2007
Processo 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
4
Seminários Avançados em Engenharia de Software – 2o./2007
Incrementos 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
5
Seminários Avançados em Engenharia de Software – 2o./2007
Incrementos 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
6
Seminários Avançados em Engenharia de Software – 2o./2007
Desenvolvimento 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
7
Seminários Avançados em Engenharia de Software – 2o./2007
Requisitos
• Requisitos do sistema BET de Fortaleza
• Requisitos do sistema BET de Campo Grande
• Requisitos do sistema BET de São Carlos
8
Seminários Avançados em Engenharia de Software – 2o./2007
Comparação de Requisitos
Sã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)
9
Seminários Avançados em Engenharia de Software – 2o./2007
Casos de Uso - Resumido
10
Seminários Avançados em Engenharia de Software – 2o./2007
11
Seminários Avançados em Engenharia de Software – 2o./2007
Rastreabilidade
Subsistema
Casos de Uso
São Carlos
Fortaleza
Campo Grande
Gerenciar Cartão
F1, F4
F1
F1, F3, F4
Gerenciar Linha
F12
F17
F18
F4, F13
-
F4, F19
Gerenciar Terminal
-
F1, F5
F1
Gerenciar Ônibus
F12
F1
F1
F1, F2
F1, F2
F1, F2
F12
F17
F18
Adquirir Cartão
F9, F14
F7, F8, F9, F10, F12, F13
F8, F9, F10, F11, F12
Carregar Cartão
F7
F11
F7, F13
-
F10
-
F8
F7, F8, F9, F10
F8
F7, F8
-
-
F1, F2, F6, F16
F1, F2, F5, F19
F1, F2, F4, F5, F6, F22
F1
F1
F1
Verificar Situação do Cartão
F2, F3
F2, F3, F4
F2, F3
Verificar Integração
F4, F5
-
F4, F5
-
-
F4, F20
F12, F15, F16
F12, F18, F19
F19, F21, F22
Gerenciar Linha de Integração
Gerência
Gerenciar Validador
Gerenciar Corrida
Aquisição e
Carga de
Cartão
Verificar Pagamento do Cartão
Verificar Tipo de Passageiro
Verificar Limite de Viagens
Realizar Viagem
Ler Cartão
Viagem
Verificar Quantidade de Viagens
de Integração
Registrar Corrida
12
Seminários Avançados em Engenharia de Software – 2o./2007
Candidatos a Componentes Aspectuais
Caso de Uso
Tipo de
Requisito
Motivo
Gerenciar Cartão
Funcional
Incluído por 3 casos de uso (dois deles são
núcleo)
Gerenciar Limite Viagens
Funcional
Incluído por 2 casos de uso, mas depende do
sistema da LPS (1 deles é opcional)
Gerenciar Tipo Passageiro
Funcional
Incluí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)
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)
Autenticar Usuário
13
Seminários Avançados em Engenharia de Software – 2o./2007
Diagrama de Features Comuns
14
Seminários Avançados em Engenharia de Software – 2o./2007
Diagrama de Features da LPS-BET
15
Seminários Avançados em Engenharia de Software – 2o./2007
16
Seminários Avançados em Engenharia de Software – 2o./2007
Features Adicionais dos sistemas BET
Fortaleza
Campo Grande
Acesso Adicional
São Carlos
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
Restrição de Cartões
- Número de Cartões
Restrição de Cartões
- Integração
* Tempo
* Linha de Integração
Pagamento de Cartão
- Combinação de Cartões
Empresas Usuárias
Empresas Usuárias
Limite de Viagens
17
Seminários Avançados em Engenharia de Software – 2o./2007
Diagrama de Seqüência de Sistema - Realizar Viagem
18
Seminários Avançados em Engenharia de Software – 2o./2007
19
Seminários Avançados em Engenharia de Software – 2o./2007
20
Seminários Avançados em Engenharia de Software – 2o./2007
Componentes e Interfaces
21
Seminários Avançados em Engenharia de Software – 2o./2007
Diagrama de Comunicação Parcial
Realizar Viagem
22
Seminários Avançados em Engenharia de Software – 2o./2007
Especificação de Interfaces
23
Seminários Avançados em Engenharia de Software – 2o./2007
Diagrama de Estados
do subsistema do Ônibus
24
Seminários Avançados em Engenharia de Software – 2o./2007
Decisõ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)
25
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Terminal
Parte do diagrama de features
Parte do modelo de classes
Nova classe requerida
26
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Terminal
• Sem acesso interno à implementação dos componentes
desenvolvidos
• LinhaMgr é reusado sem alteração
• Versão de Fortaleza:
Componente composto LinhaTerminalMgr
27
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Linha de Integração
Nova classe requerida
Parte do diagrama de features
Parte do modelo de classes
28
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Linha de Integração
• LinhaTerminalMgr desenvolvido para Fortaleza é reusado
• Versão de Campo Grande:
Componente composto LinhaTerminalIntegraçãoMgr
29
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Linha de Integração
• LinhaMgr é reusado
• LinhaIntegradaMgr desenvolvido para Campo Grande é
reusado
• Versão de São Carlos:
Componente composto LinhaIntegraçãoMgr
30
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Pagamento Cartão
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)
31
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Pagamento 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 caixapreta
32
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Pagamento Cartão
Novos atributos requeridos
Parte do modelo de classes
• Ambas as classes permanecem em um componente pois
possuem o mesmo interesse e são sempre usadas juntas
33
Seminários Avançados em Engenharia de Software – 2o./2007
Feature: Pagamento Cartão
34
Seminários Avançados em Engenharia de Software – 2o./2007
Features: Pagamento Cartão
• CartaoMgr é reusado sem alteração
• Versão de Fortaleza:
Componente composto CartaoPgtoCartaoMgr
35
Seminários Avançados em Engenharia de Software – 2o./2007
Componentes e Interfaces
• Versão de Fortaleza:
36
Seminários Avançados em Engenharia de Software – 2o./2007
Componentes e Interfaces
• Versão de Campo Grande:
37
Seminários Avançados em Engenharia de Software – 2o./2007
Componentes e Interfaces
• Versão de São Carlos:
38
Seminários Avançados em Engenharia de Software – 2o./2007
Usando 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
39
Seminários Avançados em Engenharia de Software – 2o./2007
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
40
FIM
Dúvidas?
Paula Donegan: [email protected]
Download

LPS-BET