Você está na página 1de 18

CAPSI 2004

Painel "Desenvolvimento Rpido Baseado em Modelos"

Desenvolvimento rpido e rigoroso de aplicaes: viso e desafios


Joo Pascoal Faria
(FEUP / INESC-Porto)
(jpf@fe.up.pt, www.fe.up.pt/~jpf )

4 de Novembro de 2004

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Desenvolvimento rpido e rigoroso

Especificar e verificar quase tudo, o resto so detalhes de implementao e optimizao tratados por ferramentas e especialistas sub-contratados
Falar muito da linguagem do negcio e pouco da linguagem da tecnologia Subir os nveis de abstraco, economia de expresso, rigor e reutilizao Objectivos:
Combinar modelos visuais, modelos formais, modelos verificveis, modelos executveis (DSLs, OCL, XT-UML, UML, ...) para suportar um desenvolvimento rpido e rigoroso de aplicaes empresariais (tipicamente)

reas de investigao:
Engenharia de Software Sistemas de Informao Combinao de mtodos formais com mtodos tradicionais Model-driven development Gerao e verificao automtica de cdigo ...

Detalhes:
http://www.fe.up.pt/~jpf/talks/CAPSI2004.ppt

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Background Pessoal (1)

Desenvolvimento e manuteno de ferramenta de desenvolvimento rpido de aplicaes


SAGA Sistema Assistido de Gerao e Gesto de Aplicaes INESC Porto, desde 1989 Usada no desenvolvimento e manuteno do pacote SIGMA Sistema Integrado de Gesto Municipal e Autrquico Ambiente integrado de desenvolvimento e execuo Aplicaes a duas camadas, baseadas em tabelas (BD) e vistas interactivas (formulrios e relatrios)

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Background Pessoal (2)

Definio e gesto de vistas interactivas (formulrios e relatrios)


Definio declarativa, fortemente estruturada e independente de plataforma, totalmente armazenada em repositrio relacional Expresses usadas s para definir
dados e propriedades calculados, incondicional ou condicionalmente validaes listas de valores admissveis valores por defeito triggers evento-aco macro-comandos (associados a botes e/ou opes de menus)

Gesto automtica de vistas interactivas


- mapeamento para a base de dados
- determinao automtica de condies de juno - propagao automtica de actualizaes - relaes master-detail - relaes lookup-select

- navegao nas vistas

- validaes nas vistas (com transaces e undo nas vistas) - dados calculados nas vistas (paradigma de folha de clculo)

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Usar modelos visuais, formais, executveis e traduzveis


Modelao visual (semi-formal) em UML

Modelao formal com OCL


Enriquecimento de modelos visuais em UML com especificaes formais de invariantes, pr-condies e pscondies em OCL

Elaborao de modelos executveis e traduzveis em UML executvel, XTUML por exemplo


Enriquecimento de modelos visuais em UML com especificaes de aces em linguagem de alto nvel

Verificao e validao baseada em modelos


Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Combinar linguagens genricas com linguagens especializadas para vencer a barreira de complexidade

rapidez de desenvolvimento

linguagem genrica
(VB, Java, UML, ...)

vrias linguagens especializadas "em cima" de uma linguagem genrica linguagem especializada
(4GL, PL/SQL, DSLs, ...),

barreira de complexidade complexidade do problema

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Combinar linguagens genricas com linguagens especializadas para vencer a barreira de complexidade

(ex: Crystal Reports)

tecnologia

linguagem especializada domnio de especializao


especificao

implementao
(ex: aplices)

negcio

componentes reutilizveis

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Combinar linguagens genricas com linguagens especializadas para vencer a barreira de complexidade

linguagem especializada
formas de expresso

propriedades, atributos (XML, formulrios, ...)

expresses, frmulas, cdigo (OCL, Java, C#, ...)

diagramas, esquemas (UML, ...)

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Dos modelos de processos de negcio aos modelos de casos de utilizao do sistema


Consulta externa: do pedido at efectivao
actor interno SGH Manual EPR

documento do negcio

Mdico

Marcar Consulta

Observar Doente

Registar Dados Clnicos

Prescrever Teraputica

Prescrio

Funcionrio Administrativo

Admitir Doente

Carimbar Prescrio

EPR
Registar Dados Clnicos

SGH

processo de negcio

Mdico

Marcar Consulta Admitir Doente

sistema ou sub-sistema

Prescrever Teraputica

Func. Admin.

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Como mapear os diagramas de casos de utilizao para a implementao


Diagramas de casos de uso Actor Estrutura de menus e permisses de acesso

Grupo de utilizadores / Role (Sub)Menu

(Sub)Pacote de casos de uso

Caso de uso
Actor caso de uso

Opo de menu (se aplicao bem desenhada!)


Permisso de acesso

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Como mapear a descrio detalhada de um caso de utilizao


Descrio breve, pr-condies, pscondies, pressupostos, ... Cenrios / fluxos de eventos particulares
(diagramas de sequncia)

Manual do utilizador, ajuda on-line

Instrues passo a passo no manual do utilizador Wizards, assistentes inteligentes Casos de teste

Todos os fluxos de eventos possveis


(diagrama de actividades)

Use Case Controller (ex: Apache struts) Diagrama de navegao, storyboard


(estados da interface, eventos, transies)

Imagens / esboos / prottipos da interface com o utilizador

Componentes da interface com o utilizador

Exemplos no manual do utilizador

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Representao de conceitos do negcio no modelo de domnio


objectos, entidades, eventos (c/ dados) do negcio

classes, atributos, relaes ciclos de vida


invariantes (OCL) operaes, pr e ps-condies (OCL) triggers evento-condio-aco (OCL?)
estado interno e comportamento do sistema

restries e regras do negcio


transaces/servios do negcio

tipos de dados
(atributos de classes, parmetros de operaes, ...)

tipos (classes?)

(elementos derivados, OCL?)

mapear

estrutura de documentos do negcio


(podem ser parmetros de operaes)

tipos (classes?), atributos, invariantes

inputs e outputs do sistema, vistas #

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Relao entre modelo de domnio e modelo de casos de uso

Formalizar pr e ps-condies de casos de uso com base no modelo de domnio (parte que modela estado do sistema) Relacionar casos de uso com transaces/servios no modelo de domnio

Acrescentar ao modelo de domnio operaes de ajuda interface (aps desenho mais detalhado)
Relacionar componentes da interface com documentos do negcio cuja estrutura descrita no modelo de domnio Execues de casos de utilizao so eventos nos ciclos de vida dos objectos do negcio

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Do modelo de domnio (parte de estado do sistema) implementao

Desenho: refinar modelo de domnio com especificaes executveis do corpo/algoritmo de operaes e aces, em linguagem de aces de alto nvel (UML action language)
Resulta modelo de domnio executvel

Teste: testar o modelo de domnio executvel antes de gerar cdigo final Implementao: mapeamento automtico objecto-relacional Implementao: gerar cdigo automaticamente a partir do modelo de domnio Implementao: manuteno automtica de restries, dados derivados e triggers

Implementao: exposio automtica em API ou web services

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Implementao de documentos do negcio e componentes de interface

Documentos: especificao da estrutura e restries em XML Scheme Componentes de interface: especificao declarativa e altamente estruturada em linguagem de descrio de interfaces baseada em XML (UIML, XUL, etc.)
linguagem especfica de domnio estrutura, comportamento, estilo, layout, mapeamento para objectos visuais da plataforma, mapeamento para fontes de dados, ... frequentemente para edio ou visualizao de documentos do negcio (formulrios, relatrios, folhas de clculo, documentos semi-

estruturados)

Edio off-line automtica

Gerao automtica de ajudas ao utilizador


Mapeamentos automticos

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Especificar por exemplos

Exemplo = caso particular = caso de teste = cenrio Obter conjunto suficiente de exemplos que permitem inferir a regra geral
1, 4, ... (o que vem a seguir?)

Generalizar

Verificar consistncia entre exemplos e a generalizao


Verificar se os exemplos cobrem a especificao e, se necessrio, acrescentar outros

Apoiar por ferramentas

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Especificar por regras gerais

Colocao de professores (no final da colocao):


Um professor no pode ficar por colocar quando uma escola por ele pretendida tem vaga Um professor no pode ficar por colocar numa escola por ele pretendida (ficando por colocar, ou ficando colocado numa escola em posio inferior na sua lista de preferncias), tendo sido colocado nessa escola um professor em posio inferior no "ranking" Um professor que j tinha ligar assegurado numa escola e pretende mudar de escola, no pode ficar por colocar (nem que seja na escola original)

So regras do negcio
Apoio de ferramentas:
exprimir as regras formalmente (OCL?) analisar as regras: detectar conflitos e ambiguidade (determinam uma e uma s soluo?) analisar algoritmo: demonstrar que satisfaz as regras gerais analisar implementao: demonstrar que implementa o algoritmo testar o algoritmo (usando especificao executvel): gerar e executar casos de teste testar a implementao: gerar e executar casos de teste
Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004

Referncias

"SAGA - Uma ferramenta interactiva para o desenvolvimento expedito e fcil manuteno de aplicaes de bases de dados", Joo Pascoal Faria e Joo Vasco Ranito, Proceedings do ENDIEL91, ST2 - Indstrias do Software e da Informao, pginas 33-40, Lisboa, Portugal, Junho de 1991 "Aspectos Tecnolgicos do SIGMA e do Projecto de Informatizao Municipal", Joo Pascoal Faria, Mrio Jorge Leito, Jos Manuel Moreira, Antnio Vilela Boua, Informao e Informtica - Revista do Instituto de Informtica, Ministrio das Finanas (15), pginas 40-46, 1995

Desenvolvimento rpido e rigoroso de aplicaes, Joo Pascoal Faria, CAPSI 2004