Title: Curso de Bacharelado em Ci
1Curso de Bacharelado em Ciência da Computação
- PROFILE EM UML PARA MODELAGEM SIMPLIFICADA DE
INTERFACES GRÁFICAS EM APLICATIVOS - André Sandri
- Aluno
- Prof. Me. Carlos Michel Betemps
- Orientador
- 30 de junho de 2006.
2Roteiro
- O Problema (Introdução)
- Objetivo Principal
- Principais Conceitos
- Abordagens Pesquisadas
- A Solução Proposta
- Requisitos e Limitações
- O Projeto
- Avaliação do Modelo
- Conclusões e Trabalhos Futuros
3O Problema (Introdução)
- Foi constatado que não existe um modelo padrão
para a modelagem de GUI - Fabricantes disponibilizaram soluções
proprietárias - A relevância deste assunto afeta o futuro e o
provável sucesso da arquitetura MDA Model
Driven Architecture
4Objetivo Principal
- Demonstrar a criação de um profile UML para
possibilitar a modelagem de interfaces gráficas
de forma simplificada com ênfase em
características de usabilidade para utilização em
projetos de sistemas empresariais, podendo ser
estendido para outras abordagens de
desenvolvimento de software. - Refinando o objetivo
- Criar um profile UML para possibilitar a
modelagem de interfaces gráficas com foco na
apresentação de widgets sob o ponto de vista da
qualidade e da usabilidade para ambientes de
desenvolvimento de software que utilizam MDD.
5Principais Conceitos - MDE
- MDE Model Driven Engineering
- MIC - Model-Integrated Computing (sistemas
embarcados) - DSL - Domain-Specific Language (Microsoft
Software Factories Initiative) - MDA - Model-driven Architecture (OMG)
- Tecnologias MDE oferecem uma abordagem promissora
para tratar a incapacidade das linguagens de
terceira geração de diminuir a complexidade das
diferentes plataformas, buscando expressar de
forma eficaz os conceitos do domínio do problema.
(SCHMIDT, 2006)
6Principais Conceitos - MDD
- MDD Model Driven Development
- MDD visa utilizar modelos na maior parte do tempo
durante um processo de desenvolvimento de
software, e prevê automação através da execução
de modelos, transformações e técnicas de geração
de código. (KLEPPE, WARMER, BAST, 2003) - Ganhos de 70 durante a fase de manutenção do
software. A equipe que utilizou MDD completou
cinco recursos 37 mais rápido do que a equipe
tradicional, em 165 horas contra 260 horas.
(COMPUWARE, 2005)
7Principais Conceitos - MDA
- MDA Model Driven Architecture
8Principais Conceitos PIM, PSM
PIM Platform Independent Model
PSM Platform Specific Model
Transformações
Mapeamentos
9Principais Conceitos ...CIM
CIM Computation Independent Model (domain model /
business model)
PIM Platform Independent Model
PSM Platform Specific Model
10Principais Conceitos MOF
- MOF Meta-object Facility
- UML Unified Modeling Language
- CWM - Common Warehouse Metamodel
- XMI - XML Metadada Interchange
- QVT - Query, Views, and Transformations
- MOF é um framework de integração extensível para
definir, manipular e integrar metadados e dados
de forma independente de plataforma.
11Principais Conceitos - UML
- UML 2.0 Unified Modeling Language
- Superestrutura
- Infra-estrutura
- OCL - Object Constraint Language
- Diagram Interchange
- A especificação da Superestrutura contém os
conceitos de profiles, stereotypes e tagged
values.
12Principais Conceitos - Usabilidade
- É a extensão na qual um produto pode ser usado
por usuários específicos para alcançar objetivos
específicos com efetividade, eficiência e
satisfação em um contexto de uso específico. (ISO
9241-11) - CUA - Common User Access (IBM)
- Microsoft Windows User Experience
- RIA - Rich Internet Applications
- IUI - Inductive User Interface
- Widgets
13Abordagens Pesquisadas
- Web Modeler
- Rational Rose Enterprise Edition (IBM)
- Screen Painter Diagram
- System Architect (Telelogic)
- UML Web Profile
- HENNICKER, KOCH, 2001.
- GUILayout
- BLANKENHORN, 2004.
14Web Modeler Rational Rose Enterprise Edition -
IBM
15Screen Painter Diagram System Architect -
Telelogic
16UML Web Profile HENNICKER, KOCH, 2001
17GUILayout BLANKENHORN, 2004
18A Solução Proposta
- Técnica Profile, MOF, outras?
- UML 2.0 DI
- Foco na usabilidade (widgets)
- Independente de plataforma (PIM)
- Como validar?
- Protótipo x Ferramenta comercial
- Engenharia-reversa de GUI
- Outras formas...
19Aspectos de Usabilidade
- Permitir...
- Modelagem do posicionamento/hierarquia de
widgets - Modelar expressões textuais (títulos, rótulos,
etc.) - Utilização de boxes/containers
- Oferecer...
- Widgets comumente utilizados em ferramentas de
programação - Propriedades que permitam a modelagem de troca de
estados destes componentes - Propriedades que possam determinar o conteúdo de
cada componente, estaticamente ou dinamicamente,
através de simples expressões textuais (do tipo
String) ou através de expressões OCL.
20Requisitos (1/2)
- Um diagrama deve modelar o layout da GUI...
- O diagrama deverá ser fácil de aprender, utilizar
e entender - A criação de um digrama em uma ferramenta
especializada de modelagem deverá ser uma tarefa
de poucos minutos - A criação de um diagrama não deve exigir muito
trabalho adicional - A simbologia utilizada no diagrama deverá
representar os elementos fundamentais utilizados
em interfaces gráficas...
21Requisitos (2/2)
- O modelo deverá oferecer alguma forma de
extensão... - O modelo deverá seguir as premissas do UML, ou
seja, ser simples, compreensível para pessoas que
não são da área de desenvolvimento de
software... - O modelo deverá ser abstrato o suficiente para
possibilitar utilizá-lo na camada PIM da
arquitetura MDA... - Prever a utilização de OCL nos widgets
possibilitando assim automatização do
funcionamento do sistema gerado em ferramentas
que suportam a execução do modelo.. - O modelo deverá ser criado para utilização em
ferramentas de modelagem que suportem a criação e
utilização de profiles UML de acordo com a
especificação da OMG...
22Requisito 8 PIM
PIM Platform Independent Model
UGUI Profile
PSM Platform Specific Model
WEB UGUI Profile
Transformações
Mapeamentos
23Limitações
- Navegação
- Interação entre outros diagramas
- Prototipação
- Outros.
- Restrições em OCL (sem possibilidade de validar
com os meta-modelos utilizados)
24O Projeto
- Levantamento principais widgets
- Estereótipos para extensão
- Framework de Execução
- Instanciar conforme plataforma
- Validação de conteúdo
- Persistência de conteúdo
- Ajuda de Contexto
- Drag Drop
- Widgets não incluídos PopupMenu, TreeView,
ListView
25UGUI Profile Visão Parcial (1/3)
26UGUI Profile Visão Parcial (2/3)
27UGUI Profile Visão Parcial (3/3)
28Estereótipo Container
- Estereótipo abstrato (Component)
- Atributos
- Visible Boolean true
- Enabled Boolean true
- Resizable Boolean true
- Restrições
- Deverá haver pelo menos um estereótipo estendido
de container no diagrama.
29Estereótipo Window
- Janela (aninhar outros widgets)
- Atributos
- Title String
- IconFilename String
- Style WindowStyle Normal
- Restrições
- Um Window não pode aninhar outro Window.
30Estereótipo Panel
- Área virtual (borda)
- Atributos
- BorderVisible Boolean true
- Caption String
- Alignment AlignmentStyle Center
- Restrições
- Um Panel não pode aninhar um Window.
31Estereótipo GroupBox
- Agrupar elementos relacionados
- Atributos
- Caption String
- Restrições
- Um GroupBox não pode aninhar um Window.
- Um GroupBox não pode aninhar um Panel.
32Estereótipo TabSheetGroup
- Agrupar TabSheet
- Atributos
- ActivePage String
- TabPosition TabSheetStyle Top
- Restrições
- Este elemento deve possuir pelo menos um elemento
TabSheet. - Somente o elemento TabSheet pode ser incluído
neste container, nada mais.
33Estereótipo TabSheet
- Página com aba
- Atributos
- Caption String
- IconFilename String
- Restrições
- Todo TabSheet deve pertencer a um TabSheetGroup.
- Um TabSheet não pode conter um Window.
- Um TabSheet não pode conter um TabSheetGroup.
34Estereótipo ExtendedContainer
- Estereótipo de Extensão
- Pode ser utilizado quando nenhum dos estereótipos
previstos no modelo atende às necessidades do
projeto - Possível adicionar novos atributos conforme
ferramenta de modelagem - Atributos
- Type String
35Estereótipo BoxedWidget
- Estereótipo Abstrato
- Atributos
- Visible Boolean true
- Enabled Boolean true
- Hint String
- Restrições
- Todo BoxedWidget deverá ser incluído dentro de um
Window, Panel, GroupBox ou TabSheet.
36Estereótipo TextBox
- Edit box
- Atributos
- Value String
- MaxLength Integer
- MinLength Integer 0
- PasswordMode Boolean false
- Required Boolean true
- Mask String
- FieldName String
37Estereótipo MemoBox
- Edit Box com várias linhas
- Atributos
- Value String
- MaxLength Integer
- MinLength Integer 0
- Required Boolean true
- FieldName String
- WordWrap Boolean false
38Estereótipo RichBox
- MemoBox com conteúdo formatado
- Atributos
- Value String
- MaxLength Integer
- MinLength Integer 0
- Required Boolean true
- FieldName String
- ContentType String
39Estereótipo ComboBox
- Lista drop-down com scroll
- Atributos
- Items String
- SelectedIndex Integer
- Required Boolean true
- FieldName String
- Sorted Boolean false
- Editable Boolean false
40Estereótipo Media
- Conteúdo multimídia
- Atributos
- Value String
- Required Boolean true
- FieldName String
- ContentType String
- Editable Boolean false
- Stretch Boolean false
41Estereótipo Table
- Conteúdo tabular
- Atributos
- TotalCols Integer
- Titles String
- Items String
- Editable Boolean false
- FieldName String
- SelectedIndex Integer
42Estereótipo Gauge
- Informação quantitativa
- Atributos
- Style GaugeStyle HorizontalBar
- Progress Integer 0
- ShowText Boolean true
- FieldName String
43Estereótipo TrackBar
- Visualizar/alterar um valor quantitativo limitado
- Atributos
- MinValue Integer 0
- MaxValue Integer 10
- Orientation TrackBarOrientation Horizontal
- Value Integer
- ShowText Boolean false
- FieldName String
44Estereótipo ExtendedBox
- Estereótipo de extensão
- Pode ser utilizado quando nenhum dos estereótipos
previstos no modelo atende às necessidades do
projeto - Possível adicionar novos atributos conforme
ferramenta de modelagem - Atributos
- Type String
45Estereótipo TextualWidget
- Estereótipo abstrato
- Atributos
- Name String
- Visible Boolean true
- Enabled Boolean true
- UseAcceleratorChar Boolean false
- Restrições
- Todo TextualWidget deverá ser incluído dentro de
um Window, Panel, GroupBox ou TabSheet.
46Estereótipo RadioButton
- Opções exclusivas
- Atributos
- Hint String
- Checked Boolean false
- CheckedValue String
- FieldName String
- Required Boolean true
47Estereótipo CheckBox
- Ligado/desligado
- Atributos
- Hint String
- Checked Boolean false
- CheckedValue String
- FieldName String
48Estereótipo Button
- Botão de comando
- Atributos
- DefaultButton Boolean false
- Hint String
- IconFilename String
- UseAcceleratorChar Boolean false
- Execute String
49Estereótipo Label
- Texto não editável
- Atributos
- Style String
- Alignment AlignmentStyle Left
50Estereótipo LinkedLabel
- Texto hyperlink não editável
- Atributos
- Style String
- Alignment AlignmentStyle Left
- Execute String
- Hint String
51Estereótipo ExtendedText
- Estereótipo de extensão
- Pode ser utilizado quando nenhum dos estereótipos
previstos no modelo atende às necessidades do
projeto - Possível adicionar novos atributos conforme
ferramenta de modelagem - Atributos
- Type String
52EXEMPLO 1
Fonte Microsoft WordPad
53EXEMPLO 2
Fonte Banrisul Remote Banking
54Avaliação do Modelo
- Para avaliar e testar o modelo e a abordagem
escolhida, foram utilizadas duas ferramentas de
modelagem comerciais que suportam a criação e a
utilização de profiles (UML 2.0) - - Together Architect 2006
- - Enterprise Architect 6.1
55Avaliação - Together Architect
- Suporte de especificação visual do profile de
forma semelhante à proposta da OMG - Representação gráfica (SVG 1.1)
- Ícone (paleta de componentes)
- Problemas
- Restrições OCL (editor, definição)
- Component com imagem (comportamento não
previsto pela OMG) - Nome e texto com imagem
56Avaliação - Together Architect
57Avaliação - Enterprise Architect
- Especificação visual de forma semelhante ao
Together (XML) - Representação gráfica (EMF ou WMF)
- Suporta restrições OCL (sem editor)
- Problemas
- Problemas semelhantes com imagens
- Mostra o nome do elemento (superior)
- Permite mover para fora dos limites do elemento
pai sem alterar a estrutura hierárquica
58Conclusões
- O modelo oferece um recurso para possibilitar a
modelagem de GUI com aspectos de usabilidade para
ambientes MDD (PIM do MDA), pois - É independente de tecnologia (plataforma)
- Possibilita modelar o comportamento básico dos
widgets ao serem executados - Prevê propriedades para serem utilizadas para a
validação, persistência e apresentação dos dados - Permite construir o diagrama de forma aproximada
aos elementos que compõem as atuais interfaces
gráficas
59Conclusões
- Com a avaliação em cima de ferramentas de
modelagem foram encontrados problemas referentes
à utilização de imagens nos estereótipos e da
utilização de restrições OCL. - Portanto, conclui-se que existe uma necessidade
de amadurecimento das ferramentas quanto a estes
aspectos, além de que é recomendável reforçar a
padronização da OMG para evitar estes tipos de
problemas, já que estas especificações não
previram explicitamente estes tipos de
necessidades.
60Trabalhos Futuros
- Avaliar a utilização do profile durante a
construção de um software real - Especificar e avaliar um modelo semelhante ao
proposto utilizando MOF ou DSL - Avaliar e sugerir modificações nos padrões da OMG
- Avaliar e sugerir correções para as ferramentas
de modelagem - Especificar, construir e validar um framework de
execução para este profile - Realizar a conversão das restrições para OCL
- Sugerir navegação, interação, etc.
61Muito Obrigado!
- André Sandri
- www.sandri.cjb.net
Esta apresentação, a monografia e os arquivos do
profile para ambas ferramentas de modelagem serão
disponibilizadas na terceira semana de julho na
página do autor.