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]