Este documento discute a modelagem multinível de sistemas de informação usando Python. A modelagem multinível é necessária para sistemas complexos e dinâmicos que variam no tempo e espaço, e ajuda a manter a coerência semântica e interoperabilidade. Python é uma boa linguagem para esta abordagem por ser orientada a objetos e permitir desenvolvimento rápido com muitas bibliotecas disponíveis. O Laboratório Associado discutido desenvolve especificações e software livre nesta área.
Boas práticas de programação com Object Calisthenics
Presentation Pythoncampus 2009
1. Modelagem multinível de
sistemas de informação em
Python
Profa. Luciana Tricai Cavalini (UFF)
Laboratório Associado
“Multilevel Healthcare Information Modeling”
Instituto Nacional de Ciência e Tecnologia –
Medicina Assistida por Computação Científica
2. Por que multinível?
◘Necessária para sistemas que apresentem
dependência espaço-temporal
◘Sistemas complexos e dinâmicos
◘Não é obrigatória em sistemas simples e
estáveis
3. Sistemas complexos
◘Dependência espaço-temporal: a
informação a ser persistida varia no tempo
e no espaço
◘Complexidade: o sistema é composto por
um grande número de itens de informação
que apresentam complexas interrelações
◘Dinâmica: a variação temporal é rápida e
a variação espacial é próxima
11. O que é modelagem multinível?
◘Desenvolvimento de sistemas de
informação na qual a camada de
software é separada da camada de
conhecimento
◘Não confundir com “three tier”, que
usualmente mantém o conhecimento na
camada de software e somente separa BI
e GUI
12. Modelagem multinível
Seu aplicativo (GUI, BI etc.)
Modelagem do conhecimento
Modelo de Referência
14. Por que Python para MML?
◘Python é uma linguagem orientada a
objeto de verdade, o que se adequa aos
princípios do Modelo de Informação (em
oposição aos Modelos de Dados)
◘Como é uma linguagem dinâmica,
permite “passar por cima” pelos múltiplos
níveis do que é definido nos MIs como
classes abstratas (inclui atributos e
métodos)
15. Por que Python para MML?
◘Permite o desenvolvimento rápido de
aplicações em comparação com outras
linguagens
◘Há um grande número de bibliotecas
desenvolvidas em software livre que
podem ser reutilizadas em contextos
diversos
16. Por que Python para MML?
◘Em Python, há apenas um jeito certo de
fazer as coisas
◘Espaços em branco são importantes
◘...e o logo é legal!
17. Quem somos nós
◘Somos um Laboratório Associado do
Instituto Nacional de Ciência e Tecnologia
– Medicina Assistida por Computação
Científica (coordenado pelo LNCC)
◘Professores e pesquisadores da UERJ e UFF
◘Nosso objetivo é publicar em formatos
abertos as especificações multinível para o
desenvolvimento de SI em saúde, e
implementá-las em software livre
18. Quem somos nós
◘Nosso portfólio de projetos está no
Launchpad – Junte-se a nós!
https://launchpad.net/mlhim
◘Nossa primeira implementação das
especificações MLHIM foi (lógico) em
Python: o Open Source Health Information
Platform (OSHIP)
◘Temos ainda um projeto em Plone: Health
Knowledge Component Repository (HKCR)