Documente Academic
Documente Profesional
Documente Cultură
Belo Horizonte
21 de março de 2007
Universidade Federal de Minas Gerais
Instituto de Ciências Exatas
Programa de Pós-Graduação em Ciência da Computação
Belo Horizonte
21 de março de 2007
Resumo
O desenvolvimento dirigido por modelos é o processo pelo qual sistemas de software são cons-
truídos a partir de representações sobre seus domínios. O não sucesso de projetos de software
tem relação a aspectos únicos e especícos de cada projeto, mas todos os projetos de sucesso
são semelhantes em vários aspectos. Existem vários elementos que contribuem para um projeto
a serem criados tem profunda inuência sobre a maneira como um determinado problema é
atacado e como uma solução é denida. Cada modelo pode ser expresso em diferentes níveis
de precisão. Determinar o que modelar e como modelar em sistemas complexos não é uma
tarefa fácil. Este trabalho propõe a denição de diretrizes sobre quais elementos, atributos e
visões de dados para análise e modelagem devem ser observados durante o desenvolvimento
e conceitos consagrados pela literatura, como os conceitos sobre Model Driven Architecture.
Para validar as denições sugeridas e exemplicar como as mesmas podem ser aplicadas, este
trabalho prevê também a descrição de sua aplicação no processo Praxis Synergia, para o
i
Abstract
Model Driven Development is a software engineering process based on systems' domain mo-
deling. Each unsuccessful software project has it's own unique failure causes, but all successful
projects are similar at all. There are many elements that make a well done project; one of
them is modeling. Right chosen models have huge inuence on how problems are treated for
providing solutions. Models can be specied in dierent precision levels. In complex software
systems to gure out what should be modeled and how to do it isn't an easy issue. This work
proposes rules on what elements, attributes and modeling views must be observed during
the software development process. Our goal is to dene rules based on well known literature
concepts, as Model Driven Architecture. For validating the propositions and show how them
can be applied, this work contains a self applying description for web based applications and
ii
Dedico este trabalho a meus pais, Sônia e Geraldo.
iii
Agradecimentos
Agradeço ao professor Wilson de Pádua Paula Filho pela valiosa orientação neste trabalho.
Agradeço aos professores Clarindo Isaías Pereira da Silva e Pádua e Geraldo Robson Mateus
iv
Sumário
1 Introdução 1
1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
v
2.2.4 Colaborações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5 Conclusões 49
6 Anexos 51
vi
Lista de Figuras
vii
4.9 Detalhes Tratador de requisição HTTP . . . . . . . . . . . . . . . . . . . . . . . . 38
viii
6.6 Diagrama Estados Painel de Itens de Edição . . . . . . . . . . . . . . . . . . . . . 56
6.20 Listagem de Itens com Pesquisa - Fluxo alternativo Listagem com Pesquisa . . . 65
ix
6.25 Gestão de Cadastro - Fluxo alternativo Inclusão de Novo Item . . . . . . . . . . 70
6.27 Gestão de Cadastro com Detalhes - Fluxo alternativo Alteração de Item de Detalhe 72
6.28 Gestão de Cadastro com Detalhes - Fluxo alternativo Exclusão de Item de Detalhe 73
6.29 Gestão de Cadastro com Detalhes - Fluxo alternativo Inclusão de Novo Item de
Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
6.30 Gestão de Cadastro com Detalhes - Fluxo alternativo Seleção de Novo Item de
Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
x
6.42 Visão geral Camada de controle::cadastro . . . . . . . . . . . . . . . . . . . . . . 86
xi
6.61 Gestão de Cadastro de Item - Fluxo alternativo Salvamento de Item . . . . . . . 100
6.63 Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Alteração de Item
de Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.64 Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Exclusão de Item
de Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6.65 Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Inclusão de Novo
6.66 Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Seleção de Novo
6.67 Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Visualização de Item
de Detalhe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.70 Gestão de Itens com Pesquisa - Fluxo alternativo Listagem com Pesquisa . . . . 110
6.73 Exclusão de Item - Detalhe Execução de Exclusão de Item Ignorando Alertas . . 114
6.75 Salvamento de Item - Detalhe Execução de Salvamento de Item Ignorando Alertas 116
xii
6.77 Recuperação de Itens - Detalhe Recuperação de Itens . . . . . . . . . . . . . . . . 118
xiii
Lista de Tabelas
xiv
Capítulo 1
Introdução
Uma empresa de software bem-sucedida é aquela que produz software de qualidade e capaz
produtos de software cada vez maiores e mais complexos, robustos e conáveis, tem exigido
o uso de técnicas de desenvolvimento mais apuradas. Uma empresa que consiga desenvolver
Diante disso, sistemas de software de grande porte, extensíveis e conáveis têm sido pro-
dades que levam ao desenvolvimento de um bom software. Os modelos são construídos para
O desenvolvimento dirigido por modelos é o processo pelo qual sistemas de software são
realidade. Fornece uma cópia do projeto de um sistema e pode conter planos detalhados,
1
1. Introdução 2
assim como planos mais gerais com uma visão panorâmica do sistema considerado.
cada projeto, mas todos os projetos de sucesso são semelhantes em vários aspectos. Existem
Existem várias maneiras de se denir tipos de modelos. Com maior freqüência, encontram-
relacionamentos existentes entre essas partes. Atualmente, as duas maneiras mais comuns são
desenvolvedores tem seu foco de atenção dirigido para questões referentes ao controle e à
sistema cresce, ca difícil fazer a manutenção a partir do foco em algoritmos [Jacobson, 1992].
mordial, simplesmente porque tem sido provado seu valor para a construção de sistemas em
plexidade. Além disso, muitas linguagens e ferramentas da atualidade são, de alguma forma,
Uma prova da importância das atividades de modelagem é a constante adoção destes con-
ceitos em arcabouços como o Model Driven Architecture (MDA) [Klepe et al., 2003], proposto
pelo Object Management Group (OMG) [OMG, 2006a] e processos como o Rational Unied
1.1 Motivação
Software. Porém, a experiência sugere princípios básicos de modelagem, nem sempre triviais
Em primeiro lugar, a escolha dos modelos a serem criados tem profunda inuência sobre
Segundo, cada modelo pode ser expresso em diferentes níveis de precisão. Ao desenvolver
um sistema complexo, às vezes é necessária uma visão geral para ajudar os envolvidos a
1. Introdução 4
preciso retornar ao nível dos alicerces quando existe uma rotina cuja execução é crítica ou
simplicam a realidade; o segredo é ter certeza de que sua simplicação não ocultará detalhes
importantes.
Além disso, nenhum modelo único é suciente. Qualquer sistema não-trivial será melhor
analisado por meio de um pequeno conjunto de modelos inter-relacionados cada qual especí-
software.
Contudo, apesar dos benefícios trazidos, a implementação das técnicas e conceitos com-
software de grande porte. Há tantos aspectos a serem observados que torna-se necessário
selecionar apenas um subconjunto restrito por vez. E, essa seleção deve ser cuidadosa, pois
conceitos importantes associados às características do sistema não podem ser excluídos nem
Por esses motivos, embora existam várias regras sobre modelagem e utilização de modelos,
ainda existem lacunas sobre como determinar o que modelar e como modelar.
1. Introdução 5
Uma possível abordagem para lidar com essas questões seria escolher não apenas um
a toda modelagem de sistemas de software e denir diretrizes a cerca do que deve ser modelado
A proposta principal deste trabalho consiste em denir diretrizes sobre quais elementos de
requisitos:
ceitos sobre Model Driven Architecture [Klepe et al., 2003], e amplamente utilizados
Para validar as denições sugeridas e exemplicar como as mesmas podem ser aplicadas,
este trabalho prevê também a descrição de sua aplicação no processo Praxis Synergia, para o
Não menos importante que enumerar os objetivos do trabalho é esclarecer os seus limites,
Em primeiro lugar, é importante ressaltar que o produto deste trabalho são diretrizes de
modelagem e não um modelo ou processo padrão. O processo Praxis Synergia será o processo
Software (MDSw).
O trabalho de denição das diretrizes seguiu uma seqüência bem denida de atividades, que
foi utilizada como base para a estruturação dos capítulos deste documento.
mento dirigido por modelos, envolvendo aspectos teóricos, métodos e práticas de modelagem,
tudo é descrito no Capítulo 2, e foi utilizado como fundamentação para todo o restante do
trabalho.
Desenho de Software (MDSw) proposto para aplicações web. A descrição completa do modelo
do trabalho, além de apontar sugestões de melhorias e novos trabalhos que podem ser desen-
O documento conta, ainda, com a seção de Anexos com informações que complementam
alguns aspectos apontados ao longo do texto.
Capítulo 2
Este capítulo contém alguns dos conceitos e recomendações existentes na literatura sobre
desenvolvimento dirigido por modelos [Bettin, 2004], os quais foram utilizados como referência
O desenvolvimento dirigido por modelos é o processo pelo qual sistemas de software são
realidade.
Os modelos fornecem uma cópia do projeto de um sistema e podem conter planos detalha-
dos, assim como planos mais gerais com uma visão panorâmica do sistema considerado. Um
bom modelo deve incluir aqueles componentes que têm ampla repercussão e omitir os com-
ponentes menores que não são relevantes em um determinado nível de abstração. Um mesmo
sistema pode ser descrito sob diferentes aspectos, com a utilização de modelos distintos, e
8
2. Desenvolvimento dirigido por modelos 9
software mais simples poderão receber os benefícios da modelagem. Porém, é verdadeiro que,
quanto maior e mais complexo for o sistema, maior será a importância da modelagem, pois
modelos de sistemas complexos são construídos porque não é possível compreendê-los em sua
totalidade.
Praxis Synergia.
O processo Praxis Synergia 2.1 [Pádua et al., 2006] é uma adaptação industrial do Praxis
2.0 [Filho, 2002] para o Synergia um núcleo de Engenharia de Software e Sistemas ligado ao
IEEE [IEEE, 1994], o modelo CMM [Mark et al., 1995] de maturidade de processos de soft-
ware e a notação UML [Booch et al., 2005]. É voltado principalmente para o desenvolvimento
abrange tanto métodos técnicos quanto gerenciais incluindo modelos de documentos e roteiros
O processo Praxis Synergia, alvo deste trabalho, será detalhado e estendido para a denição
O Model Driven Architecture (MDA) [OMG, 2006b, Klepe et al., 2003, Mellor et al., 2004],
especicado pelo Object Management Group (OMG) [OMG, 2006a], é um arcabouço para o
O ciclo de vida denido pelo MDA não se distancia dos ciclos de vida denidos por diver-
maior diferença, porém, está na natureza dos artefatos criados durante o processo de desen-
volvimento. Os artefatos são modelos formais compreensíveis por computadores e não apenas
(PIM) denido pelo arcabouço é um modelo cujo nível de abstração independe de qualquer
tecnologia de implementação.
mas e etc.
Specic Model (PSM). Um modelo especíco a plataforma visa especicar o sistema de soft-
ware em detalhes de implementação em tecnologias especícas. Um PIM é transformado em
Código-fonte
código-fonte. Dada a proximidade entre o PSM e a tecnologia em uso esta geração de código
2. Desenvolvimento dirigido por modelos 11
é quase direta.
como estes interagem, conforme ilustrado na gura 2.1. Um PIM deve ser criado, então
transformado em um ou mais PSMs que por sua vez são transformados em código-fonte de
de abstração no qual um desenvolvedor pode trabalhar, pois permite ao mesmo lidar com
Os modelos são construídos sobre padrões abertos que compreendem parte do MDA:
• UML: notação de modelagem de análise e desenho [Booch et al., 2005, OMG, 2003b].
• Meta Object Facility (MOF) [OMG, 2003a, OMG, 2004]: notação para metamodelagem
A automação das transformações é prevista pelo arcabouço MDA, visando lidar com
e postergados às especicações das transformações, que são denidas uma única vez e
PIM, maior foco no negócio, e ganhos em produção dada a automação provida pelas
transformações.
de maneira natural.
por modelos
O uso de modelos durante o desenvolvimento de software tem por objetivo ajudar a visualizar
sistemas como eles são ou como desejamos que sejam, permitir especicar estruturas ou com-
que deve ser verdadeiro, denindo restrições sobre decisões a serem tomadas. Para outros,
envolvido.
2. Desenvolvimento dirigido por modelos 13
pessoas a cerca do sistema. Os novatos podem ser novos membros da equipe, analistas
tação deve conter informação necessária as especicidades dos tipos de análise execu-
algumas regras, práticas comuns, sobre documentação de software. Regras que visam organi-
2. Desenvolvimento dirigido por modelos 14
zar e fomentar o correto uso de documentação em Engenharia de Software [Clements et al., 2006].
é escrita uma única vez e revista algumas, se bem escrita será consumida inúmeras vezes.
único lugar padrão, isto torna a documentação de mais fácil consumo e manutenção,
documentação proposta.
conhecimento sobre este padrão, pois isto facilita a navegação, tornando o consumo da
6. Manter a documentação coerente e coesa mas não muito atual. Uma documen-
tação atualizada reforça o seu próprio uso e credibilidade. Porém, é oneroso mantê-la
sempre em dia. Devem ser denidos meios de atualização incremental conforme neces-
portante obter informações sobre o consumo da documentação proposta junto aos seus
leitores. Estas informações são importantes para evolução e manutenção dos artefatos
produzidos.
2. Desenvolvimento dirigido por modelos 15
A UML [Booch et al., 2005, OMG, 2003b] (Unied Modeling Language ) é uma linguagem
Por ser uma linguagem, a UML é somente parte de um método para desenvolvimento
início deste capítulo. O uso da UML para elaborar modelos visa a criação de modelos explícitos
A UML não é uma linguagem visual de programação, mas seus modelos podem ser di-
da UML em linguagens de programação tais como Java, C++, Visual Basic ou até tabelas
modelo; os relacionamentos reúnem esses itens; os diagramas agrupam coleções sob determina
visão de itens. Para cada tipo de bloco de construção da UML existem tipos de elementos,
regras, denições e padrões de uso, conforme pode ser visto em [Booch et al., 2005]. A notação
visualizar, especicar, construir e documentar sistemas complexos de software são tarefas que
visão constitui uma projeção na organização e estrutura do sistema, cujo foco está voltado
software. E ainda, não é razoável imaginar visões que não possuem correlações em alguns
aspectos. A essência das visões é omitir informações não necessárias ao ponto de vista abor-
dado, porém é importante que existam relações de complementaridade entre as mesmas, pois
o conjunto de todas as visões denidas constitui a descrição dos padrões de desenho do sistema
"Cada padrão descreve um problema que ocorre inúmeras vezes em nosso ambiente, e então
descreve o ponto central da solução para este problema, de maneira que esta solução pode ser
usada milhões de vezes durante o passar do tempo, sem que seja empregada da mesma maneira
duas vezes" - Christopher Alexander [Alexander et al., 2007].
Embora o autor desta frase estivesse se referindo a padrões em construção civil, o que
ele diz é aplicável a padrões de desenho de software. As soluções de software propostas são
Em geral padrões de desenho possuem quatro elementos essenciais [Gamma et al., 2003]:
1. Nome. O nome de um padrão é usado para descrever o problema abordado, sua solução
e conseqüências.
e contexto envolvidos.
2. Desenvolvimento dirigido por modelos 17
aplicação do padrão. Essas relações são essenciais para análise de alternativas de desenho
a respeito de estruturas de desenho que são úteis durante a criação de desenhos reutilizáveis.
O padrão de desenho identica as classes participantes e suas instâncias, seus papéis e co-
de modelagem especíco, especicando quando pode ser aplicado, se deve ser aplicado diante
relativamente independente, mas os padrões não são isolados uns dos outros. É comum o uso
2.2.4 Colaborações
pamento conceitual que abrange aspectos estáticos e dinâmicos. Uma colaboração nomeia um
conjunto de classes, interfaces e outros elementos que trabalham em conjunto para fornecer
algum comportamento cooperativo maior do que a soma de todas as suas partes. As co-
laborações são empregadas para especicar a realização de casos de uso e operações e para
Arquitetura de software é, ao mesmo tempo, o componente que faz com que as partes de
Arquitetura é, portanto, desenho, mas nem todo desenho (design ) é arquitetura. Muitas
decisões de solução são postas de lado pelo desenho arquitetural e deixadas a cargo do bom
sobre as atividades de desenho a serem realizadas, e estas atividades devem produzir artefatos
aderentes com as denições arquitetônicas, mas a arquitetura não nos diz como isso deve ser
implementado.
citada a seguir fornece alguns pontos a serem observados que podem nos ajudar a responder
estas perguntas.
tural.
Capítulo 3
Para guiar a seleção dos elementos que irão compor o conjunto base para denição de diretrizes
sobre o desenvolvimento dirigido por modelos (DDM), este trabalho seguiu a denição de
Synergia.
Cada atividade, conceitos envolvidos, assim como contexto de aplicação são apresentados,
denir o que modelar durante o desenvolvimento dirigido por modelos, e, para isso, quais
elementos de modelagem devem ser observados, denindo como modelar e dispor cada item.
O Praxis Synergia 2.1, assim como o Praxis 2.0 [Filho, 2002], usa o conceito de fases e uxos
(disciplinas), inspirados nos elementos correspondentes do Processo Unicado [Jacobson et al., 1999],
com o intuito de utilizar a mesma nomenclatura deste processo. E ainda, dene as iterações
Análise de Requisitos, Desenho Implementável, Liberações, Testes Alfa, Testes Beta e Oper-
ação Piloto. As iterações são marcos, agrupamentos, conceituais e temporais para os grupos
19
3. Definição das diretrizes 20
A gura 3.1 ilustra a relação entre as fases e uxos para o Praxis Synergia. As fases são
executadas ao longo do tempo de forma seqüencial, abrangendo atividades dos diversos uxos.
na fase Construção.
O uxo de Desenho, uxo abordado neste trabalho, tem por objetivo prover uma estrutura
implementável para um produto de software que atenda aos requisitos especicados para
arquitetônico, desenho das interfaces, detalhamento dos casos de uso, desenho das entidades,
desenho da persistência, realização dos casos de uso, desenho das liberações e revisão do
desenho.
O desenho arquitetônico tem por objetivo resolver aspectos estratégicos de desenho externo
adequadas. O desenho das interfaces visa o desenho em detalhe das interfaces reais do produto
3. Definição das diretrizes 21
os detalhes dos uxos dos casos de uso, considerando os componentes reais das interfaces e
O desenho das entidades tem por objetivo transformar as classes de entidade do Modelo
e bancos de dados. A realização dos casos de uso determina como os objetos das classes
de desenho colaborarão para realizar os casos de uso de desenho. O desenho das liberações
determina como a implementação do produto será dividida entre as liberações. E, por m, a
produzido durante o uxo de Análise, porém com maior nível de detalhes. No MDSw as estru-
turas de solução do domínio são introduzidas e passam a ser descritas de forma mais detalhada
sistema, passam a se referir aos detalhes de interfaces de usuário, e são considerados aspectos
Diante deste cenário, para o MDSw propõe-se a seguir um série de diretrizes de estrutu-
ração e organização de conteúdo visando denir melhor como cada elemento a ser modelado
deve ser disposto. A preocupação com a estruturação e organização através de diretrizes tem
• Comunicação: de posse das diretrizes, outras pessoas devem ser capazes de saber o
que foi padronizado, como isso foi feito, e o que foi incluído e excluído na abordagem
de estruturação proposta.
• Repetição: de posse das denições feitas, outras pessoas devem ser capazes de realizar
retrizes apontadas.
torna-se inviável, pois é necessário que os padrões de modelagem estejam bastante claros para
se obter qualquer conclusão prática. Se, por outro lado, a repetição não for garantida, o valor
dos padrões e diretrizes criados ca dependente da interpretação do responsável por seu uso.
requerem a análise desses sistemas sob várias perspectivas. Desta necessidade surge a primeira
abstração necessários para modelar cada visão é importante denir, em conformidade com os
a cada visão.
dos casos de uso do sistema conforme é visto pelos seus usuários nais. A documentação
3. Definição das diretrizes 23
desenho interno, tem por objetivo abordar aspectos de implementação para uma solução de
escolhidas. Para o Praxis Synergia propõe-se a divisão do MDSw em três visões principais:
A visão de desenho externo, semelhante por denição a mesma visão no Praxis, não
determina realmente a organização do sistema de software. No entanto, ela existe para especi-
car como será a solução dada aos requisitos do sistema segundo visto pelos usuários nais.
Assim, para o desenho externo são denidos os seguintes padrões de modelagem e enfoque
casos de uso) de acordo com as especicações dos contratos e, uso de pacotes para
cada realização.
• Uso de nomes de pacotes e classes escritos na forma correta denida pela linguagem
natural em uso para descrever os itens de desenho mapeáveis aos itens de análise. Acen-
tuações, espaços entre as palavras, letras maiúsculas e minúsculas devem ser considera-
dos.
usuários que inuenciaram o desenho das interfaces do produto. Essa informação deve ser
em um nível maior de detalhes, resultante dos estudos de usabilidade do produto, por exemplo.
3. Definição das diretrizes 24
rais podem ser descritos nesta seção através de documentação textual ou através do uso dos
cas entre as classes que representam as interfaces de usuário e como é possível navegar entre
os objetos da mesmas.
de estados são usados. Em geral, os diagramas de grácos de estados são usados para explicar
o comportamento de interfaces cujos comandos possam estar desabilitados ou que variem de
E o detalhamento dos campos das interfaces de usuário é tipicamente feito com pro-
priedades dos estereótipos como eld e command. Faz-se, ainda, o uso de protótipos
de desenho externo para ilustrar as ativações e estados das interfaces de usuário. Os
casos de uso em colaborações de uso. Essas colaborações de uso são descritas em nível de
detalhe muito maior, com referências aos elementos das interfaces de usuário. Apenas aspectos
visíveis ao usuário devem ser mostrados. São modelados: restrições de acesso, uxo principal
casos de uso de desenho são descritos através do uso de colaborações da UML, as colaborações
de desenho externo.
3. Definição das diretrizes 25
Os uxos dos casos de uso de análise são realizados através de interações das colaborações
de uso. As interações são realizações, e, como tal, podem ter aparência muito diferente dos
tação das condições de exceção e das mensagens é feita de maneira textual, tipicamente em
planilhas.
O uso de colaborações de desenho externo, na visão de desenho externo, tem por objetivo
descrever as realizações dos casos de uso sob a ótica de interação entre as interfaces de usuário
e usuário. E o uso de diagramas de uxo de desenho, visa descrever os uxos principais e uxos
adotada, em conformidade com a proposta prevista pelo arcabouço Model Driven Architecture.
3. Definição das diretrizes 26
o uso de serviços do sistema operacional, dentre outros podem caracterizar padrões e mecan-
ponentes em pacotes lógicos. Os pacotes lógicos devem encapsular classes correlatas de acordo
• Uso de cinco camadas (layers ) arquiteturais, vide gura 3.4, como esquema de agru-
role implementam aspectos especícos, como uxos de casos de uso, lógica e algoritmos.
Classes de entidade implementam unidades de informação potencialmente reutilizáveis
outras classes.
• Uso de diagramas de visão geral, por componente e pacotes, que agrupam semantica-
camada arquitetural.
no modelo de desenho. Objetivos: criar cenários para aplicações dirigidas por modelo,
• Uso de nomes de pacotes e classes escritos na forma correta denida pela linguagem
Quando a tecnologia impor restrições aos nomes documentar essas restrições no processo,
na visão de solução de desenho. Esta não é uma regra essencial ao modelo, mas é uma
Essa visão, segundo arcabouço MDA, deve ser obtida através de execuções de transfor-
mações sobre a visão de solução de desenho. As transformações podem ser realizadas sobre o
próprio MDSw criando a visão em questão ou podem criar um novo modelo que a contenha
em separado. A junção das visões no MDSw visa facilitar o entendimento desta abordagem,
Este capítulo exemplica como as diretrizes para criação de modelos podem ser aplicadas. Isto
para a web.
Os objetivos que motivaram a aplicação das diretrizes para sistemas web foram:
O Praxis 2.0 padrão inclui como exemplo de uso do processo os artefatos produzidos
uma mercearia. Esta aplicação é chamada Merci. As estratégias propostas neste trabalho
foram exercitadas e validadas através da modelagem dos casos de uso Gestão de Usuários e
Gestão de Mercadorias desta aplicação. Para distinguí-lo do Merci, chamamos este produto
de Merci-Web.
29
4. Aplicação das diretrizes 30
interfaces, detalhamento dos casos de uso, desenho das entidades e realização dos casos de uso
Para facilitar a leitura deste capítulo, apenas os diagramas de modelo mais estratégicos
serão exibidos. O conjunto completo de diagramas obtido está disponível na seção de Anexos.
Enfoque: Detalhar o desenho das interfaces com os usuários, mostrando-se a realização dos
casos de uso de análise em termos dessas interfaces, assim como a estrutura dos componentes
mandos de interfaces de usuário para aplicações web como Linha de Texto, Caixa de
cos de interfaces de usuário como Tela, Tela de Edição, Conjunto de Abas, Caixa de
Mensagens e outras.
de interfaces de usuário para cadastro como Tela de Edição de Item, Tela de Gestão de
como Listagem de Itens, Listagem de Itens com Pesquisa e Gestão de Cadastro, dentre
outras.
seguem as denições previstas na seção 3.1, ou seja, Aspectos gerais de processo, Aspectos
uso.
Para as denições de tipos de interfaces de usuário para cadastro, por exemplo, temos os
destas denições de reuso (praxis.cliente) aos casos de uso contemplados; como por exemplo
e Gestão de Cadastro com Detalhes constituem as colaborações gabarito para reuso durante
determinado contexto.
Os uxos de desenho de cada colaboração base, assim como todo o restante do arcabouço
Para o caso de uso Gestão de Mercadorias tem-se, por exemplo, a aplicação das denições
previstas pelas colaborações base de desenho externo conforme descrito na gura 4.6.
4. Aplicação das diretrizes
Figura 4.6: Diagrama de estrutura Colaboração Gestão de Mercadorias
35
4. Aplicação das diretrizes 36
A arquitetura de um produto expressa uma divisão desse produto em pacotes lógicos e sub-
organização do sistema de software; a seleção dos elementos estruturais e suas interfaces; seu
desses elementos.
O padrão Model View Controller (MVC) [Fowler, 2005] é o padrão adotado por este tra-
O MVC dene uma solução para o domínio abordado onde o acesso aos dados é indepen-
dente do tipo de cliente. Todos os clientes devem ter acesso a lógica de negócio especicada.
E, um novo tipo de cliente ou a alteração de um tipo existente não deve inuenciar nos de-
mais componentes do sistema. Este é o cenário real de aplicações web, onde há um número de
clientes potencialmente grande acessando o sistema, via redes como a Internet ou intranets,
O padrão provê a separação entre o acesso aos dados e a representação dos mesmos através
• A camada view tem acesso aos dados através da camada model e é responsável pela
• A camada controller deve interagir com a camada view convertendo ações requeridas
inerente ao negócio.
É importante notar que a camada controller do MVC, por denição, não corresponde a
aspectos especícos do domínio, como uxos de casos de uso, lógica e algoritmos. A gura
persistência e sistema no Praxis Synergia. Em aplicações web complexas existem várias ações
O padrão Front Controller visa consolidar mecanismos de conversão entre as ações requeri-
Em sistemas de grande porte a lógica de negócio é, em geral, muito complexa. Regras des-
domínio. O padrão Domain model [Fowler, 2005], modelo de domínio, dene uma rede de ob-
jetos interconectados, onde cada objeto representa algum conceito singular, para representar
O uso do padrão em aplicações é orientado por camadas, layers. Para o Praxis Syner-
persistentes.
Para a camada de entidade proposta, são denidas classes e interfaces para representar
o tipo abstrato padrão do qual todos os demais objetos de um domínio devem herdar. A
gura 4.12. Esta interface contém, em especial, métodos especícos para a implementação
regras inerentes à execução de salvamento e exclusão dos mesmos. Os métodos são, respec-
Os métodos de validação são responsáveis por executar regras que identiquem condições
que violem a respectiva operação requerida. Os métodos de execução são responsáveis por
implementar regras de dependências entre objetos, como por exemplo composições onde há
uma dependência de ciclo de vida entre um objeto e suas partes (outros objetos). Em casos
de violação destas regras uma lista de mensagens informativas é criada para exibição nas
interfaces de usuário envolvidas. Estes mecanismos são acionados pelo serviço de persistência
Armazenar, recuperar, atualizar e excluir dados em bancos de dados, em geral, são atividades
típicas em sistemas de software. Para isso, a arquitetura de software deve prover mecanismos
subsistemas que compõem um sistema. O padrão Adapter [Gamma et al., 2003], adaptador,
converte uma interface requerida do subsistema em uma interface esperada por um cliente,
denindo uma interface em alto nível que diminui o acoplamento entre o sistema e o subsistema
em uso.
Cada adaptador criado dene uma interface de acesso a uma determinada interface do
Ao acionar os serviços oferecidos por este adaptador, o mesmo é responsável por delegar a
execução destas regras ao objeto persistente, conforme descrito pelos diagramas 4.16 e 4.17.
4. Aplicação das diretrizes
44
Figura 4.16: Detalhes Execução de Exclusão de Item
4. Aplicação das diretrizes
45
Figura 4.17: Detalhes Execução de Salvamento de Item
4. Aplicação das diretrizes 46
como criar, recuperar, atualizar e remover itens de cadastro em alguns casos de uso. Estes
casos de uso são chamados de casos de uso CRUD (Create, Retrieve, Update, Delete ). Por
mecanismos gerais aplicáveis a maioria dos casos de uso CRUD. Estes mecanismos foram
com Detalhes.
Os uxos de desenho interno destas colaborações, vide Anexos, descrevem como são re-
cadastrados.
Por m, o conjunto de abstrações para as visões de desenho externo, solução de desenho
de Anexos.
Capítulo 5
Conclusões
o próprio processo Praxis Synergia forneceram os limiares para determinarmos até onde
orientadas por conceitos chave em modelagem, como padrões de desenho, colaborações, visões
Com base nestas informações, um gabarito de modelo de desenho de software para apli-
das diretrizes e conceitos envolvidos nos forneceu um modelo onde abordamos perspectivas
usuários e as interfaces de usuário, a realização dos casos de uso de análise em função destas
49
5. Conclusões 50
de conteúdo para seus modelos e a elaboração de artefatos de modelo como o conceito de reuso
web.
Alguns tópicos abordados neste trabalho podem dar origem a estudos relevantes. A aplicação
integral dos conceitos do arcabouço MDA no Praxis Synergia, por exemplo, requer estudos
quanto a questões em aberto como as transformações modelo para modelo e modelo para
concebido através das diretrizes para as visões de desenho externo e solução de desenho
do MDSw Praxis Synergia. Contudo, denições sobre como e quando proceder com o uso
fonte estão em aberto. Este tipo de automação provavelmente traria ganhos signicativos de
Anexos
Esta seção contém informações que complementam alguns aspectos apontados ao longo do
diretrizes para o desenvolvimento dirigido por modelos aplicado ao MDSw web gabarito. As
51
6. Anexos 52
Denições de reuso de desenho externo para tipos de interfaces de usuário para cadastro.
praxis::cliente::Funções do produto
Colaboração de classes que provêem o comportamento de listagem com pesquisa por itens
Figura 6.19: Listagem de Itens com Pesquisa - Subuxo Pesquisa a Itens Cadastrados
6. Anexos 65
Figura 6.20: Listagem de Itens com Pesquisa - Fluxo alternativo Listagem com Pesquisa
6. Anexos 66
Colaboração de classes que provêem o cadastro e edição de itens com detalhes (relação item
mestre/itens de detalhe).
Figura 6.27: Gestão de Cadastro com Detalhes - Fluxo alternativo Alteração de Item de
Detalhe
6. Anexos
Figura 6.28: Gestão de Cadastro com Detalhes - Fluxo alternativo Exclusão de Item de Detalhe
73
6. Anexos 74
Figura 6.29: Gestão de Cadastro com Detalhes - Fluxo alternativo Inclusão de Novo Item de
Detalhe
6. Anexos
Figura 6.30: Gestão de Cadastro com Detalhes - Fluxo alternativo Seleção de Novo Item de Detalhe
75
6. Anexos 76
Figura 6.31: Gestão de Cadastro com Detalhes - Fluxo alternativo Visualização de Item de
Detalhe
6. Anexos 77
Figura 6.32: Gestão de Cadastro com Detalhes - Subuxo Edição de Item de Detalhe
6. Anexos 78
Denições de desenho externo para as interfaces de usuário do caso de uso Gestão de Usuários
do Merci-Web.
Denições de desenho externo para as interfaces de usuário do caso de uso Gestão de Mer-
cadorias do Merci-Web.
com::uhackers::merci::Funções do produto::Administração
82
6. Anexos 83
com::uhackers::merci::Funções do produto::Compras
84
6. Anexos 85
praxis::cliente::controle
praxis::cliente::controle::cadastro
praxis::cliente::controle::util
praxis::cliente::entidade
praxis::cliente::fronteira
praxis::cliente::fronteira::cadastro
praxis::cliente::fronteira::util
praxis::cliente::persistência
praxis::cliente::sistema::mensagem
praxis::cliente::realizações::apresentação
praxis::cliente::realizações::cadastro
6. Anexos
Colaboração descritiva para o cadastro de item.
97
6. Anexos
Figura 6.59: Gestão de Cadastro de Item - Fluxo alternativo Exclusão de Item
98
6. Anexos
99
Figura 6.60: Gestão de Cadastro de Item - Fluxo alternativo Inclusão de Novo Item
6. Anexos
100
Figura 6.61: Gestão de Cadastro de Item - Fluxo alternativo Salvamento de Item
6. Anexos
Figura 6.62: Gestão de Cadastro de Item - Fluxo alternativo Visualização de Item
101
Colaboração Gestão de Cadastro de Item com Detalhes
6. Anexos
Colaboração descritiva do cadastro de item com detalhes.
Figura 6.63: Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Alteração de Item de Detalhe
102
6. Anexos
Figura 6.64: Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Exclusão de Item de Detalhe
103
6. Anexos 104
Figura 6.65: Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Inclusão de Novo
Item de Detalhe
6. Anexos 105
Figura 6.66: Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Seleção de Novo
Item de Detalhe
6. Anexos
Figura 6.67: Gestão de Cadastro de Item com Detalhes - Fluxo alternativo Visualização de Item de Detalhe
106
6. Anexos 107
praxis::cliente::realizações::listagem
praxis::cliente::realizações::persistência
[Alexander et al., 2007] Alexander, C.; Ishikawa, S.; Silverstein, M.; Jacobson, M.; Fiksdahl,
http://www.softmetaware.com/mdsd-and-isad.pdf. v. 0.8.
[Booch et al., 2005] Booch, G.; Rumbaugh, J. e Jacobson, I. (2005). UML Guia do Usuário.
Campus, 2 edição.
[Bray et al., 2000] Bray, T.; Paoli, J.; Sperberg, C. M. M. e Maler, E. (2000). Extensible
1.0.
[Clements et al., 2006] Clements, P.; Bachmann, F.; Bass, L.; Garlan, D.; Ivers, J.; Little,
edição.
Wesley.
[Gamma et al., 2003] Gamma, E.; Helm, R.; Johson, R. e Vlissides, J. (2003). Design Pat-
http://www.developer.ibm.com/us/en/university/scholars/members/spm/software/
Rational1.html.
122
Referências Bibliográficas 123
[IEEE, 1994] IEEE (1994). IEEE Standards Collection Software Engineering. IEEE,
[IEEE, 2000] IEEE (2000). Standard for Modeling and Simulation. IEEE, Disponível em:
http://shop.ieee.org/store.
[Jacobson et al., 1999] Jacobson, I.; Rumbaugh, J. e Booch, G. (1999). Unied Software
[Klepe et al., 2003] Klepe, S.; Warmer, S. e Bast, W. (2003). MDA Explained, The Model
[Mark et al., 1995] Mark, C. P.; Charles, V. W.; Bill, C. e Chrissis, M. B. (1995). The
Capability Maturity Model: Guidelines for Improving the Software Process. Addison Wesley.
[Mellor et al., 2004] Mellor, S. J.; Scott, K.; Uhl, A. e Weise, D. (2004). MDA Distilled:
[OMG, 2003a] OMG (2003a). Meta Object Facility Core Final Adopted Spectication, ptc/03-
10-04. OMG.
[OMG, 2003b] OMG (2003b). UML 2.0 Infrastructure Final Adopted Specication, ptc/03-
09-15. OMG.
[OMG, 2004] OMG (2004). MOF Model to Text Transformation Language, ad/04-04-07.
OMG.
http://www.omg.org/.
[OMG, 2006b] OMG (2006b). Omg model driven architecture. Disponível em:
http://www.omg.org/mda.
Referências Bibliográficas 124
[Pádua et al., 2006] Pádua, C.; Pimentel, B.; Filho, W. P. P. e Machado, F. T. (2006). Tran-
Symposium of the ACM / IEEE 9th International Conference on Model Driven Engineering
Languages and Systems, pp. 6177, Gênova, Itália.