A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Desenvolvimento rápido e rigoroso de aplicações: visão e desafios João.

Apresentações semelhantes


Apresentação em tema: "1 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Desenvolvimento rápido e rigoroso de aplicações: visão e desafios João."— Transcrição da apresentação:

1 1 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Desenvolvimento rápido e rigoroso de aplicações: visão e desafios João Pascoal Faria (FEUP / INESC-Porto) 4 de Novembro de 2004 CAPSI 2004 Painel "Desenvolvimento Rápido Baseado em Modelos"

2 2 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Desenvolvimento rápido e rigoroso n Especificar e verificar é quase tudo, o resto são detalhes de implementação e optimização tratados por ferramentas e especialistas sub-contratados n Falar muito da linguagem do negócio e pouco da linguagem da tecnologia n Subir os níveis de abstracção, economia de expressão, rigor e reutilização n Objectivos: Combinar modelos visuais, modelos formais, modelos verificáveis, modelos executáveis (DSLs, OCL, XT-UML, UML,...) para suportar um desenvolvimento rápido e rigoroso de aplicações empresariais (tipicamente) n Áreas de investigação: Engenharia de Software Sistemas de Informação Combinação de métodos formais com métodos tradicionais Model-driven development Geração e verificação automática de código... n Detalhes:

3 3 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Background Pessoal (1) n Desenvolvimento e manutenção de ferramenta de desenvolvimento rápido de aplicações SAGA – Sistema Assistido de Geração e Gestão de Aplicações INESC – Porto, desde 1989 Usada no desenvolvimento e manutenção do pacote SIGMA – Sistema Integrado de Gestão Municipal e Autárquico Ambiente integrado de desenvolvimento e execução Aplicações a duas camadas, baseadas em tabelas (BD) e vistas interactivas (formulários e relatórios)

4 4 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Background Pessoal (2) n Definição e gestão de vistas interactivas (formulários e relatórios) Definição declarativa, fortemente estruturada e independente de plataforma, totalmente armazenada em repositório relacional Expressões usadas só para definir -dados e propriedades calculados, incondicional ou condicionalmente -validações -listas de valores admissíveis -valores por defeito -triggers evento-acção -macro-comandos (associados a botões e/ou opções de menus) Gestão automática de vistas interactivas -mapeamento para a base de dados -determinação automática de condições de junção -propagação automática de actualizações -navegação nas vistas -relações master-detail -relações lookup-select -validações nas vistas (com transacções e undo nas vistas) -dados calculados nas vistas (paradigma de folha de cálculo)

5 5 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Usar modelos visuais, formais, executáveis e traduzíveis n Modelação visual (semi-formal) em UML n Modelação formal com OCL Enriquecimento de modelos visuais em UML com especificações formais de invariantes, pré-condições e pós- condições em OCL n Elaboração de modelos executáveis e traduzíveis em UML executável, X T UML por exemplo Enriquecimento de modelos visuais em UML com especificações de acções em linguagem de alto nível n Verificação e validação baseada em modelos

6 6 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Combinar linguagens genéricas com linguagens especializadas para vencer a barreira de complexidade complexidade do problema rapidez de desenvolvimento linguagem genérica (VB, Java, UML,...) linguagem especializada (4GL, PL/SQL, DSLs,...), barreira de complexidade várias linguagens especializadas "em cima" de uma linguagem genérica

7 7 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Combinar linguagens genéricas com linguagens especializadas para vencer a barreira de complexidade negócio (ex: apólices) tecnologia (ex: Crystal Reports) domínio de especialização especificação implementação componentes reutilizáveis linguagem especializada

8 8 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Combinar linguagens genéricas com linguagens especializadas para vencer a barreira de complexidade linguagem especializada diagramas, esquemas (UML,...) propriedades, atributos (XML, formulários,...) expressões, fórmulas, código (OCL, Java, C#,...) formas de expressão

9 9 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Dos modelos de processos de negócio aos modelos de casos de utilização do sistema Médico Funcionário Administrativo Marcar Consulta Admitir Doente Observar Doente Prescrever Terapêutica Carimbar Prescrição Consulta externa: do pedido até à efectivação Manual EPR actor interno SGH Prescrição processo de negócio Registar Dados Clínicos documento do negócio SGH Médico Func. Admin. EPR Registar Dados Clínicos Prescrever Terapêutica Marcar Consulta Admitir Doente sistema ou sub-sistema

10 10 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Como mapear os diagramas de casos de utilização para a implementação Actor Grupo de utilizadores / Role (Sub)Pacote de casos de uso(Sub)Menu Diagramas de casos de uso Estrutura de menus e permissões de acesso Caso de usoOpção de menu (se aplicação bem desenhada!) Actor – caso de usoPermissão de acesso

11 11 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Como mapear a descrição detalhada de um caso de utilização Diagrama de navegação, storyboard (estados da interface, eventos, transições) Use Case Controller (ex: Apache struts) Cenários / fluxos de eventos particulares (diagramas de sequência) Instruções passo a passo no manual do utilizador Wizards, assistentes inteligentes Casos de teste Descrição breve, pré-condições, pós- condições, pressupostos,... Manual do utilizador, ajuda on-line Imagens / esboços / protótipos da interface com o utilizador Todos os fluxos de eventos possíveis (diagrama de actividades) Componentes da interface com o utilizador Exemplos no manual do utilizador

12 12 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Representação de conceitos do negócio no modelo de domínio objectos, entidades, eventos (c/ dados ) do negócio estrutura de documentos do negócio (podem ser parâmetros de operações) classes, atributos, relações tipos de dados (atributos de classes, parâmetros de operações,...) invariantes (OCL) restrições e regras do negócio transacções/serviços do negócio operações, pré e pós-condições (OCL) tipos (classes?) tipos (classes?), atributos, invariantes estado interno e comportamento do sistema inputs e outputs do sistema, vistas triggers evento-condição-acção (OCL?) ciclos de vida mapear (elementos derivados, OCL?)

13 13 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Relação entre modelo de domínio e modelo de casos de uso n Formalizar pré e pós-condições de casos de uso com base no modelo de domínio (parte que modela estado do sistema) n Relacionar casos de uso com transacções/serviços no modelo de domínio n Acrescentar ao modelo de domínio operações de ajuda à interface (após desenho mais detalhado) n Relacionar componentes da interface com documentos do negócio cuja estrutura é descrita no modelo de domínio n Execuções de casos de utilização são eventos nos ciclos de vida dos objectos do negócio

14 14 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Do modelo de domínio (parte de estado do sistema) à implementação n Desenho: refinar modelo de domínio com especificações executáveis do corpo/algoritmo de operações e acções, em linguagem de acções de alto nível (UML action language) Resulta modelo de domínio executável n Teste: testar o modelo de domínio executável antes de gerar código final n Implementação: mapeamento automático objecto-relacional n Implementação: gerar código automaticamente a partir do modelo de domínio n Implementação: manutenção automática de restrições, dados derivados e triggers n Implementação: exposição automática em API ou web services

15 15 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Implementação de documentos do negócio e componentes de interface n Documentos: especificação da estrutura e restrições em XML Scheme n Componentes de interface: especificação declarativa e altamente estruturada em linguagem de descrição de interfaces baseada em XML (UIML, XUL, etc.) linguagem específica de domínio estrutura, comportamento, estilo, layout, mapeamento para objectos visuais da plataforma, mapeamento para fontes de dados,... frequentemente para edição ou visualização de documentos do negócio ( formulários, relatórios, folhas de cálculo, documentos semi- estruturados) n Edição off-line automática n Geração automática de ajudas ao utilizador n Mapeamentos automáticos

16 16 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Especificar por exemplos n Exemplo = caso particular = caso de teste = cenário n Obter conjunto suficiente de exemplos que permitem inferir a regra geral 1, 4,... (o que vem a seguir?) n Generalizar n Verificar consistência entre exemplos e a generalização n Verificar se os exemplos cobrem a especificação e, se necessário, acrescentar outros n Apoiar por ferramentas

17 17 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Especificar por regras gerais n Colocação de professores (no final da colocação): Um professor não pode ficar por colocar quando uma escola por ele pretendida tem vaga Um professor não pode ficar por colocar numa escola por ele pretendida (ficando por colocar, ou ficando colocado numa escola em posição inferior na sua lista de preferências), tendo sido colocado nessa escola um professor em posição inferior no "ranking" Um professor que já tinha ligar assegurado numa escola e pretende mudar de escola, não pode ficar por colocar (nem que seja na escola original) n São regras do negócio n Apoio de ferramentas: exprimir as regras formalmente (OCL?) analisar as regras: detectar conflitos e ambiguidade (determinam uma e uma só solução?) analisar algoritmo: demonstrar que satisfaz as regras gerais analisar implementação: demonstrar que implementa o algoritmo testar o algoritmo (usando especificação executável): gerar e executar casos de teste testar a implementação: gerar e executar casos de teste

18 18 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Referências n "SAGA - Uma ferramenta interactiva para o desenvolvimento expedito e fácil manutenção de aplicações de bases de dados", João Pascoal Faria e João Vasco Ranito, Proceedings do ENDIEL91, ST2 - Indústrias do Software e da Informação, páginas 33-40, Lisboa, Portugal, Junho de 1991 n "Aspectos Tecnológicos do SIGMA e do Projecto de Informatização Municipal", João Pascoal Faria, Mário Jorge Leitão, José Manuel Moreira, António Vilela Bouça, Informação e Informática - Revista do Instituto de Informática, Ministério das Finanças (15), páginas 40-46, 1995


Carregar ppt "1 Desenvolvimento rápido e rigoroso de aplicações, João Pascoal Faria, CAPSI 2004 Desenvolvimento rápido e rigoroso de aplicações: visão e desafios João."

Apresentações semelhantes


Anúncios Google