Vous êtes sur la page 1sur 43

INF1404 MODELAGEM DE SISTEMAS

Bacharelado em Sistemas de Informao


Ivan Mathias Filho
ivan@inf.puc-rio.br
LES/PUC-Rio
Programa Captulo 1
Princpios de Modelagem
O Paradigma Funcional
O Paradigma Orientado a Objetos
LES/PUC-Rio
Programa Captulo 1
Princpios de Modelagem
O Paradigma Funcional
O Paradigma Orientado a Objetos
LES/PUC-Rio
A Importncia da Modelagem (1)
Sistemas de pouca complexidade podem ser construdos
sem um planejamento prvio.
LES/PUC-Rio
A Importncia da Modelagem (2)
Sistemas complexos exigem planejamento rigoroso e
trabalho em equipe.
LES/PUC-Rio
O Que um Modelo?
Um modelo uma simplificao da realidade.
LES/PUC-Rio
Por Que Construmos Modelos?
O ser humano limitado em relao sua capacidade de
compreender sistemas complexos;
Devemos dividir grandes problemas em problemas menores
dividir para conquistar;
A modelagem nos ajuda na tarefa de compreender sistemas
grandes e complexos.
Construmos modelos de sistemas complexos
porque no possvel compreend-los na sua
totalidade.
LES/PUC-Rio
Controle da Complexidade
LES/PUC-Rio
Controle da Complexidade
LES/PUC-Rio
Objetivos da Modelagem (1)
Visualizar um sistema como ele ou como desejamos que
ele seja;
Especificar a estrutura ou o comportamento de um sistema;
Criar especificaes que sirvam de guias para a construo
de um sistema;
Documentar as decises tomadas em relao a um sistema.
LES/PUC-Rio
Objetivos da Modelagem (2)
O Objetivo da Engenharia de Software no
construir modelos e documentos, mas desenvolver
sistemas que satisfaam as necessidades dos
clientes.
LES/PUC-Rio
Mltiplas Vises (1)
Projetos complexos demandam modelos com
diferentes nveis de preciso.
LES/PUC-Rio
Mltiplas Vises (2)
Vises distintas e quase independentes de um
sistema complexo nos ajudam na sua
investigao.
LES/PUC-Rio
Programa Captulo 1
Princpios de Modelagem
O Paradigma Funcional
O Paradigma Orientado a Objetos
LES/PUC-Rio
Dimenses do Software
Qualquer discusso sobre a busca de uma arquitetura
adequada a um sistema de software deve levar em conta os
seguintes aspectos:
LES/PUC-Rio
O Problema da Decomposio
Se nos abstrairmos da existncia de mltiplos
processadores reais ou virtuais a questo passa a ser a
seguinte:
LES/PUC-Rio
Decomposio Funcional (1)
A decomposio funcional clssica de um sistema baseia-se
em refinamentos sucessivos, comeando com a definio
da sua funo principal:
[ F0] Emi t e Cont r acheque dos Funci onr i os
Cada etapa seguinte deve diminuir o nvel de abstrao dos
elementos obtidos:
[ F1] Lei a os dados dos f unci onr i os
[ F2] Lei a os r egi st r os de pont o dos f unci onr i os
[ F3] Cal cul e os sal r i os br ut os emf uno das hor as t r abal hadas
[ F4] Cal cul e os i mpost os a ser emdeduzi dos
[ F5] Emi t a os cont r acheques dos f unci onr i os
LES/PUC-Rio
Decomposio Funcional (2)
Se optarmos por um pseudo-linguagem de programao, a
decomposio anterior assumiria a seguinte forma:
incio
i ni ci al i ze acumul ador es e abr a ar qui vos;
l ei a ar qui vo de f unci onr i os;
enquanto houver f unci onr i os faa:
l ei a pont o do f unci onr i o;
enquanto houver r egi st r o de pont o do f unci onr i o faa:
acumul e hor as t r abal hadas;
l ei a pont o do f unci onr i o;
fim-enquanto
cal cul e sal r i o br ut o;
cal cul e i mpost os e sal r i o l qui do;
i mpr i ma cont r acheque;
l ei a ar qui vo de f unci onr i os;
fim-enquanto
i mpr i ma r el at r i o comos t ot ai s de pagament o;
f eche os ar qui vos;
fim
LES/PUC-Rio
Desvantagens da Decomposio Funcional
Uma das desvantagens da decomposio funcional por
refinamentos sucessivos a nfase prematura nas
restries temporais;
Cada refinamento expande uma parte da estrutura abstrata
em uma seqncia de operaes com estruturas de controle
detalhadas;
Tais restries de controle passam a ser essenciais
arquitetura obtida, embora elas estejam sujeitas
mudanas;
Isso diminui a flexibilidade da arquitetura em relao
acomodao de futuras alteraes nos requisitos do
sistema.
LES/PUC-Rio
Uso de DFDs
Algumas das deficincias decorrentes da amarrao
prematura das estruturas de controle podem ser corrigidas
com o uso de Diagramas de Fluxos de Dados (DFDs):
LES/PUC-Rio
Vantagens da Decomposio Funcional
A decomposio funcional por refinamentos sucessivos
possui vrias caractersticas positivas:
uma disciplina logicamente bem organizada;
Pode ser ensinada e aplicada de modo efetivo;
Encoraja o desenvolvimento de sistemas bem organizados;
Ajuda os projetistas a lidar com a complexidade dos sistemas
nos estgios iniciais do desenvolvimento.
LES/PUC-Rio
Limitaes da Decomposio Funcional
Entretanto, a decomposio funcional por refinamentos
sucessivos e os mtodos de design dela derivados, como a
Anlise Estruturada, possuem importantes limitaes:
A idia central destes mtodos a de que um sistema pode ser
caracterizado por uma nica funo bastante duvidosa:
sistemas reais fornecem aos seus usurios uma srie de
servios;
Usar as propriedades de um sistema mais sujeitas a mudanas
suas funes como base para a decomposio modular no
se coaduna com a natureza evolucionria dos sistemas de
software.
LES/PUC-Rio
A Anlise Essencial
Uma das deficincias da Anlise Estruturada, a sua natureza
estritamente top-down, foi corrigida pelo mtodo conhecido
por Anlise Essencial;
Nesta abordagem, a decomposio funcional feita
tomando-se por base os eventos que ocorrem na interface
do sistema com os seus usurios;
No contexto da Anlise Essencial, um evento definido
como um acontecimento no mundo exterior que requer uma
resposta do sistema.
LES/PUC-Rio
Particionamento por Eventos
Os pares estmulo/resposta so representados na Anlise
Essencial por um modelo chamado de DFD Particionado
por Eventos:
LES/PUC-Rio
Limitaes da Anlise Essencial
A Anlise Essencial corrigiu uma importante deficincia da
Anlise Estruturada: a natureza estritamente top-down
desta ltima;
Entretanto, ela ainda usa as funes de um sistema suas
propriedades mais sujeitas mudanas como base para a
decomposio modular do mesmo;
Uma ltima e importante deficincia de ambas as
abordagens ser vista a seguir: a obteno de um modelo
hierrquico de mdulos a partir do DFD de um sistema.
LES/PUC-Rio
O Projeto Estruturado (1)
A derivao do projeto modular a partir do modelo de fluxo
de dados um processo de cinco etapas:
O tipo de fluxo de informaes estabelecido;
As fronteiras do fluxo so indicadas;
O DFD mapeado para uma estrutura de programa;
A hierarquia de controle definida por fatorao;
A estrutura resultante aprimorada usando-se medidas e
heursticas de projeto.
LES/PUC-Rio
Tipos de Fluxos de Dados
As caracterizao dos tipos de fluxos de dados presentes no
modelo funcional de um sistema fundamental para a
derivao do seu projeto modular;
Segundo o Projeto Estruturado, os fluxos de dados de um
sistema assumem duas formas bsicas
Fluxo orientado a transformaes;
Fluxo orientado a transao;
LES/PUC-Rio
Fluxo de Transformaes (1)
Os dados entram no sistema atravs dos fluxos de
entrada;
Os dados que chegam atravessam um centro de
transformao;
Os dados saem do sistema atravs dos fluxos de sada;
O fluxo global de dados ocorre em uma forma seqencial e
segue um ou somente alguns caminhos em uma linha
reta.
LES/PUC-Rio
Fluxo de Transformaes (2)
LES/PUC-Rio
Fluxo de Transao (1)
Caracterizado por um nico item de dados, denominado
transao, que dispara outro fluxo de dados ao longo de
um dentre muitos caminhos;
A transao avaliada e, com base no seu valor, o fluxo
ao longo de um dos muitos caminhos de ao iniciado;
O ponto central do fluxo de informaes, a partir do qual
muitos caminhos de ao emanam, denominado centro
de transao;
Grandes sistemas podem apresentar tanto fluxos de
transformaes como fluxos de transao.
LES/PUC-Rio
Fluxo de Transao (2)
LES/PUC-Rio
O Processo do Projeto Estruturado (1)
LES/PUC-Rio
O Processo do Projeto Estruturado (2)
LES/PUC-Rio
Anlise de Transformaes
LES/PUC-Rio
Fronteiras do Fluxo
LES/PUC-Rio
Fatorao de 1 Nvel (1)
LES/PUC-Rio
Fatorao de 1 Nvel (2)
LES/PUC-Rio
Fatorao de 2 Nvel (1)
LES/PUC-Rio
Fatorao de 2 Nvel (2)
LES/PUC-Rio
Estrutura de 1 Corte
LES/PUC-Rio
Estrutura de 2 Corte
LES/PUC-Rio
Anlise de Transao (1)
LES/PUC-Rio
Anlise de Transao (2)
LES/PUC-Rio
Fatorao de 1 Nvel
LES/PUC-Rio
Fatorao de 2 Nvel
LES/PUC-Rio
Anlise do Processo
A estrutura hierrquica do projeto modular resultado da
natureza top-down da decomposio funcional;
A abordagem atende bem o objetivo de garantir que o
projeto modular atenda as especificaes iniciais do
problema, mas nenhum esforo dirigido para promover a
reutilizao de mdulos;
A derivao do projeto modular baseada exclusivamente
na forma do DFD, no levando em considerao importantes
aspectos de uma boa decomposio modular, tais como
continuidade e reutilizao.
LES/PUC-Rio
Programa Captulo 1
Princpios de Modelagem
O Paradigma Funcional
O Paradigma Orientado a Objetos
LES/PUC-Rio
Na modelagem orientada a objetos
a nfase est na descoberta e na
descrio dos objetos ou
conceitos do domnio de um
problema e na representao dos
relacionamentos entre os mesmos;
Neste paradigma, os objetos de
domnio devem ser mapeados para
objetos de software, que iro
colaborar entre si com o objetivo de
realizar os requisitos de um
sistema.
AModelagemOrientada a Objetos (1)
LES/PUC-Rio
AModelagemOrientada a Objetos (2)
A modelagem orientada a objetos, usada em
conjunto com alguma linguagem orientada a
objetos, ajuda a diminuir o gap semntico entre os
componentes de software e a concepo humana
de um domnio de aplicao, facilitando, assim, a
compreenso do design de um sistema.
LES/PUC-Rio
O Que Significa UML?
UML significa Unified Modeling Language;
uma linguagem para especificar, visualizar, construir
e documentar artefatos de software;
Pode ser usada na modelagem de negcios e em outros
tipos de sistemas;
uma linguagem visual para modelagem de sistemas.
LES/PUC-Rio
Sistema de Computao
Processos de Negcios
Item
A modelagem captura as
partes essenciais do sistema.
James Rumbaugh
Modelagem visual
significa modelar com a
utilizao de notaes
padronizadas.
Pedido
Envio
O Que Modelagem Visual?
LES/PUC-Rio
A modelagem visual favorece o entendimento das
regras de negcio e a representao das mesmas
em um design orientado a objetos.
Ferramenta de Comunicao
LES/PUC-Rio
A UML uma Linguagem
Uma linguagem fornece um vocabulrio, e as regras para
a combinao de palavras desse vocabulrio, com o
objetivo de comunicar algo;
Uma linguagem de modelagem uma linguagem cujo
vocabulrio e as regras tm seu foco voltado para a
representao conceitual e fsica de um sistema;
O vocabulrio e as regras de uma linguagem de modelagem
indicam como criar e ler modelos bem formados, mas no
apontam quais modelos devem ser criados e nem em que
seqncia.
LES/PUC-Rio
A UML para Visualizao e Especificao
UML facilita a construo de modelos visuais de um
sistema, especificando a sua estrutura (parte esttica ) e ao
seu comportamento (parte dinmica);
A UML fornece os smbolos grficos para a representao de
artefatos de software;
Por trs de cada smbolo empregado na notao da UML,
existe sintaxe e semntica bem-definidas;
Dessa forma, a UML favorece a construo de modelos
precisos, completos e sem ambigidades.
LES/PUC-Rio
A UML para Construir
Os modelos de UML podem ser diretamente traduzidos
para vrias linguagens de programao;
Isso significa que possvel mapear os modelos da UML
para linguagens de programao tais como, Java, C++ e
C#;
Esse mapeamento permite a realizao de uma engenharia
de produo (gerao de cdigo) a partir de modelos UML;
possvel tambm reconstruir alguns modelos a partir do
cdigo fonte escrito em alguma linguagem de programao.
Este processo inverso chamado de engenharia reversa.
LES/PUC-Rio
A UML para Documentar
Os requisitos do sistema;
A arquitetura do sistema e todos os seus detalhes;
As atividades de planejamento do projeto;
As atividades de realizao de testes;
O gerenciamento de verses.
LES/PUC-Rio
As Vantagens da UML
Padro aberto e no proprietrio (OMG);
Independncia do processo de desenvolvimento;
Aplicvel a todas as fases do ciclo de desenvolvimento;
Independncia da linguagem de programao;
Integrao das melhores prticas de modelagem;
uma linguagem extensvel.
LES/PUC-Rio
Interface com o usurio
(Swing, .NET, HTML)
Projete o seu sistema
independente da
tecnologia de implementao
Persistncia (SQL, EJB, Hibernate)
Lgica do negcio
(Java, C++, C#)
Suporte a Diferentes Tecnologias
LES/PUC-Rio
Mltiplas Plataformas
Componentes Reutilizveis
Promoo da Reutilizao
LES/PUC-Rio
A Histria da UML (1)
o resultado da unificao das notaes utilizadas nos
mtodos Booch, OMT (Object Modeling Technique) e OOSE
(Object-Oriented Software Engineering);
Adotada como linguagem padro de modelagem por grande
parte da indstria de software e por fornecedores de
ferramentas CASE.
LES/PUC-Rio
A Histria da UML (2)
LES/PUC-Rio
Descrio da Arquitetura
Diferentes participantes usurios finais, analistas,
programadores, equipe de testes, gerentes de sistemas e
etc. tm vises e interesses distintos em relao a um
sistema;
Cada um destes participantes traz contribuies prprias ao
projeto, em diferentes momentos ao longo do
desenvolvimento;
A descrio da arquitetura do sistema deve permitir o
gerenciamento adequado destes diferentes pontos de vista
ao logo do ciclo de vida de um sistema.
LES/PUC-Rio
O Que Arquitetura?
A arquitetura o conjunto de decises significativas sobre:
A organizao do sistema de software;
A seleo dos elementos estruturais que compem o sistema;
O comportamento do sistema, conforme especificado nas
colaboraes entre esses elementos;
A decomposio desses elementos estruturais e
comportamentais em subsistemas progressivamente maiores;
O estilo arquitetural que orienta a organizao: os elementos
estticos e dinmicos, suas interfaces, colaboraes e
composies.
LES/PUC-Rio
A arquitetura de um sistema
complexo pode ser descrita
mais adequadamente atravs
de cinco vises
complementares:
Vises da Arquitetura
LES/PUC-Rio
Descreve o sistema de um ponto
de vista externo como um conjunto
de interaes entre o sistema e os
agentes externos ao sistema.
Viso de Casos de Uso (1)
LES/PUC-Rio
Descrio textual
Diagramas de casos de uso
Diagramas de estados
Diagramas de interaes
Diagramas de atividades
Utiliza os seguintes recursos:
Viso de Casos de Uso (2)
LES/PUC-Rio
Enfatiza as caractersticas do
sistema que do suporte, tanto
estrutural quanto comportamental,
s funcionalidades externamente
visveis do sistema.
Viso de Projeto (1)
LES/PUC-Rio
Diagramas de classes
Diagramas de interaes
Diagramas de estados
Utiliza os seguintes recursos:
Viso de Projeto (2)
LES/PUC-Rio
Mostra o fluxo de controle entre as
vrias partes, incluindo
mecanismos de concorrncia e
sincronizao. Essa viso cuida
principalmente das questes
referentes ao desempenho,
escalabilidade e ao throughput do
sistema.
Viso de Processos (1)
LES/PUC-Rio
Utiliza os mesmos diagramas da
viso de projeto, mas com o foco
voltado para as classes ativas
(processos ou threads) que
controlam o sistema e as
mensagens que passam por elas.
Viso de Processos (2)
LES/PUC-Rio
Abrange o gerenciamento de
verses de um sistema e dos
componentes e artefatos utilizados
para a montagem e distribuio do
mesmo. Diz respeito tambm ao
mapeamento dos componentes
lgicos para os artefatos fsicos.
Viso de Implementao (1)
LES/PUC-Rio
Diagramas de componentes
Diagramas de interaes
Diagramas de estados
Diagramas de atividades
Utiliza os seguintes recursos:
Viso de Implementao (2)
LES/PUC-Rio
Abrange os ns que formam a
topologia do hardware onde o
sistema ser executado. Essa
viso trata principalmente da
distribuio, do fornecimento e da
instalao dos componentes
fsicos de um sistema.
Viso de Implantao (1)
LES/PUC-Rio
Diagramas de implantao
Diagramas de interaes
Diagramas de estados
Diagramas de atividades
Utiliza os seguintes recursos:
Viso de Implantao (2)
LES/PUC-Rio
Bibliografia (1)
Bezerra, E. Princpios de Anlise e Projeto de Sistemas
com UML. 1 edio, Campus, 2006.
Larman, C. Utilizando UML e Padres. 3 edio,
Bookman, 2007.
Meyer, B. Object-Oriented Software Construction. 2nd
edition, Prentice Hall PTR, 2000.
Page-Jones, M. Practical Guide to Structured Systems
Design. 2nd edition, Prentice Hall PTR, 1988.
LES/PUC-Rio
Bibliografia (2)
Pressman, R.S. Software Engineering: A Practitioner's
Approach. 5th edition. McGraw-Hill, 2003.
LES/PUC-Rio
Exemplo Descrio de Caso de Uso
LES/PUC-Rio
Exemplo Diagrama de Casos de Uso
LES/PUC-Rio
Exemplo Diagrama de Estados
LES/PUC-Rio
Exemplo Diagrama de Interao
LES/PUC-Rio
Exemplo Diagrama de Atividades
LES/PUC-Rio
Exemplo Diagrama de Classes
LES/PUC-Rio
Exemplo Diagrama de Atividades
LES/PUC-Rio
Exemplo Diagrama de Interao
LES/PUC-Rio
Exemplo Diagrama de Componentes
LES/PUC-Rio
Exemplo Diagrama de Implantao

Vous aimerez peut-être aussi