Académique Documents
Professionnel Documents
Culture Documents
O que so modelos????
Uma simplificao da realidade. Oferece um desenho de um sistema em um determinado nvel de abstrao Exemplos de modelos:
Modelo planetrio Modelo atmico Modelo de um sistema de transporte coletivo Modelo de um sistema operacional Modelo de um sistema de gerenciamento de alunos
Porque
Nos ajuda a visualizar um sistema como ele ou como desejamos que seja Nos permite especificar a estrutura ou o comportamento de um sistema Na construo de um guia para a construo do sistema Na documentao das decises tomadas no projeto
Antigamente no havia uma forma padro de se analisar e modelar sistemas orientados a objetos.
Diferentes metodologias levavam a um desentendimento e confuso por parte de analistas e desenvolvedores, por suas diferentes caractersticas, elementos conceituais e notao. Algumas metodologias eram boas em determinadas caractersticas, mas ruins ou inexistentes em outras necessidades da anlise e modelagem OO. Grady Booch, James Rumbaugh e Ivar Jacobson (os trs amigos) se juntaram, unificaram suas metodologias e criaram a UML, pegando o melhor de cada e melhorando com o suporte e ajuda da comunidade, e hoje mantida pela OMG (Object Management Group).
Avano metodolgico
1970 a 1980: programao estruturada. 1980 a 1985: Anlise estruturada e desenho estruturado 1985 a 1990: Engenharia da informao. 1990 a 1995: Orientao a objetos.
O que um objeto?
Objeto uma ocorrncia especfica (instncia) de uma classe (o que uma classe???). Na programao orientada a objeto, um objeto qualquer coisa, real ou abstrata, sobre a qual armazenamos dados e operaes que manipulam os dados. Ex de objetos: Uma pessoa, um veculo, um documento, uma regio etc...
UML 1.0
1997
A UML foi submetida como candidata a linguagem-padro de modelagem OMG (Object Management Group, uma entidade de padronizao estabelecida pela indstria de software).
UML 1.1
UML 1.2
1997
1998
Expanso do consrcio formado por empresas para apoiar a definio da UML, e aceitao da UML pela OMG.
Revises e novas padronizaes
Revises e novas padronizaes Revises e novas padronizaes Vrias novidades em relao as verses anteriores Verso oficial adotada pelo OMG (http://www.omg.org/)
UML uma linguagem de modelagem de sistemas, usada para: especificar modelar visualizar documentar
Especificar construir modelos precisos, sem ambigidades e completos UML atende a todas as decises importantes em termos de anlise, projeto e implementao de sistemas de software.
UML permite elaborar modelos explcitos que facilitam a comunicao UML utiliza um conjunto de smbolos que permite comunicar idias sem ambigidade Ex: Um modelo escrito por um desenvolvedor pode ser interpretado por outro desenvolver.
Auxilia na documentao de artefatos de software como: requisitos, arquitetura e projeto UML proporciona uma linguagem para expresso de requisitos e para a realizao de testes UML auxilia na modelagem das atividades de planejamento do projeto e gerenciamento e verses.
Desenvolver o modelo de uma aplicao antes de constru-la, to essencial quanto ter uma planta para a construo de uma casa. Bons modelos so essenciais para a comunicao entre os times de projetos e para assegurar a beleza arquitetural. Com o aumento da complexidade dos sistemas, importante conhecer boas tcnicas de modelagem. Ter um rigoroso padro de linguagem de modelagem um fator essencial para o sucesso de um projeto. Como a UML se tornou uma notao padro da indstria de arquitetura de software, ela assunto abordado em muitos livros, seminrios e sites.
Anlise de Requisitos: Fase que captura as intenes e necessidades dos usurios do sistema, atravs das funes desejadas no sistema, chamadas de Casos de Uso.
Anlise: Onde se cria as primeiras abstraes e mecanismos presentes no domnio do problema. Design (Projeto): O resultado da anlise expandido em solues tcnicas. As classes do domnio do problema so mescladas com classes de infra-estrutura. o detalhamento para a fase de programao. Programao: Os modelos criados so convertidos em cdigos de linguagem.
Diagramas da UML
Com a UML possvel modelar os projetos de sistemas, baseados em diagramas. Os diagramas so divididos, basicamente, em: Diagramas Estruturais: diagrama de classes, diagrama de objetos, diagrama de componentes e diagrama de disponibilizao. Diagramas de Comportamento: diagrama de casos de uso, diagrama de seqncia, diagrama de atividades, diagrama de colaborao e diagrama de estados. Diagramas de Gerenciamento do Modelo: pacotes, subsistemas e modelos.
Fornecer mltiplas vises do sistema a ser modelado, analisando-o e modelando-o sob diversos aspectos. Procurar atingir a completitude da modelagem, permitindo que cada diagrama complete o outro. Cada diagrama da UML analisa o sistema, ou parte dele, sob uma determinada tica. A utilizao de vrios diagramas permite que falhas sejam descobertas, diminuindo a possibilidade da ocorrncia de erros futuros.
Estudo de caso
Imagine um loja, que vende seus produtos na internet. Os usurio podero fazer o login no site, escolher os produtos que deseja adquirir e consolidar o seu pedido, com a efetuao da compra, no caso, a venda, para a loja.
Descreve as funcionalidades do sistema desempenhada pelos atores externos a viso central, base para as outras vises do sistema O Diagrama de Casos de Uso serve para visualizar os relacionamentos entre os atores e os casos de uso do sistema (cenrios), numa viso geral. Serve para modelar os requisitos funcionais do sistema.
Elementos
Caso de Uso
Nome do Caso
ASSOCIAO ATOR
Diagrama de Atividades
O objetivo do diagrama de atividades mostrar o fluxo de atividades em um nico processo. Eles capturam aes e seus resultados Eles focam o trabalho executado na implementao de uma operao (mtodo) Tipicamente as atividades so estados de ao estados que transitam para outro estado
Diagrama de Atividades
Elementos
INICIO
Nome do Estado
ESTADO FIM
TRANSIO
Diagrama de Atividades
Exemplo
Diagrama de Atividades
A maior qualidade dos diagramas de atividades est no fato de que eles suportam e encorajam comportamento paralelo. A maior desvantagem destes diagramas que eles no deixam muito claras as ligaes entre aes e objetos.
Diagrama de Atividades
Analisando um caso de uso. Descrevendo um algoritmo seqencial complicado Lidando com aplicaes de processamento paralelo.
Diagrama de Classes
a descrio de conjunto de objetos que compartilham os mesmos atributos e relacionamentos (estado), operaes e semntica (comportamento)
O Diagrama de Classes mostra a estrutura esttica do modelo da aplicao Este diagrama exibe as classes do sistema e o grau do relacionamentos entre elas
Diagrama de Classes
Elementos
ASSOCIAO
Nome da Classe Atributos Operaes
COMPOSIO
GENERALIZAO
DEPENDENCIA AGREGAO
Diagrama de Classes
Escola
matricula
Aluno
contrata
Professor
Diagrama de Classes
1 Professor
nome: String matricula: int turmas: int construtor( ):
Aluno
nome: String matricula: int nota1: int nota2: int construtor( ):
Diagrama de Classes
Exemplo
Diagrama de Classes
Uma agregao um relacionamento do tipo parte de, nos quais objetos representando os componentes so associados com objetos representando uma montagem. Se A parte de B e B parte de C, ento A parte de C
Sistema 1
contm
Linguagem 1
contm
Estojo 1
contm
Lapis *
Turma *
Aluno *
Diagrama de Classes
Composio uma forma mais forte de agregao. Na composio, o objeto parte pode pertencer somente a um todo e espera-se que as partes vivam e morram com o todo. Se o objeto da classe que contm for destrudo, as classes da composio sero destrudas juntamente.
Formulario
JTextField
JTextArea
JButton
JComboBox
Diagrama de Objetos
O Diagrama de Objetos muito similar ao Diagrama de Classes e utiliza quase a mesma notao Este diagrama mostra uma fotografia dos objetos existentes em um determinado momento na execuo do sistema So muito teis para exemplificar relacionamentos complexos entre objetos em determinado momento
Diagrama de Objetos
Exemplo
Diagrama de Estado
O Diagrama de Estados serve para mostrar todos os estados possveis dos objetos de uma classe do modelo, e que eventos do sistema causam essas mudanas de estado. No h a necessidade de representar os estados dos objetos de todas as classes.
Diagrama de Estado
Exemplo
Diagrama de Sequncia
O Diagrama de Sequncia mostra a interao entre os objetos da aplicao arranjados numa linha do tempo. So utilizados para descrever a seqncia de um fluxo ou caso de uso da aplicao. muito til para se levantar quais so os envolvidos no fluxo e definir a interface de alguns objetos.
Diagrama de Colaborao
O Diagrama de Colaborao semelhante ao Diagrama de Seqncia, mostrando a colaborao dinmica entre os objetos, sem levar em conta a linha do tempo. Neste diagrama, alm da troca de mensagens, podese perceber o relacionamento entre os objetos. Se a nfase do diagrama for o decorrer do tempo:
Diagrama de seqncia
Diagrama de colaborao.
Diagrama de Colaborao
Exemplo
Diagrama de Componentes
Um componente representa um mdulo fsico do cdigo. O Diagrama de Componentes mostra o lado funcional, expondo a relao entre seus componentes e suas dependncias. As dependncias entre componentes mostram como mudanas em um componente podem causar mudanas em outros componentes
Diagrama de Componentes
Vamos criar pedaos de cdigo ou componentes que iro materializar as diferentes perspectivas obtidas com os diagramas de casos de uso, classes, actividades, estados, sequncia e colaborao.
Diagrama de Componentes
Relacionamentos de dependncia so utilizados entre componentes para indicar que um componente refere-se a servios oferecidos por outros componentes. A relao de dependncia representada atravs de uma seta tracejada desenhada no sentido componente cliente para o componente fornecedor.
GestoProdutos.dll - responsvel por todas as operaes relativas gesto de produtos. Depende do componente ControloAcesso.dll para verificar se o utilizador possui permisses para executar as operaes. Depende tambm do mdulo BaseDados.dll para guardar os dados numa base de dados.
ControloAcesso.dll - responsvel por conter as regras e poltica de acesso s operaes e objectos do sistema. S depende do componente BaseDados.dll para guardar os seus dados.
BaseDados.dll - responsvel por conter as operaes de acesso e manuteno da informao nas bases de dados, separando assim os outros componentes dos diferentes tipos de bases de dados.
Diagrama de Execuo
O Diagrama de Execuo mostra o lado funcional, exibindo a arquitetura fsica do hardware e do software do sistema.
Diagrama de Execuo
Exemplo:
TCP/IP TCP/IP
Servidor Banco
SQL - TCP/IP
Servidor Dados
Cliente B
Perguntas?????
Exerccios
1) Identifique os atores e casos de uso em cada um dos planos de discurso a seguir. a) o sistema possibilita ao cliente atualizar seus dados cadastrais acessando o site na internet b) o caixa eletrnico permitir ao associado da cooperativa emitir um extrato da sua conta, bem como retirar ou depositar uma quantia financeira na sua conta c) a secretria pode importar o Registro Acadmico dados dos alunos do sistema administrativo, desde que informe o seu login e senha
De acordo com a imagem a seguir responda: a) Descreva as funcionalidades que o sistema capaz de realizar. b) Identifique os erros, e justifique o seu ajuste. c) Construa um novo diagrama de caso de uso corrigindo os erros.
3) Crie um diagrama de classes para o seguinte problema: Sistema de gesto de vendas imobilirias Uma empresa de imobilirio vende imveis. Para tal detm uma carteira de clientes e uma carteira de imveis que tenta conciliar. Os clientes so descritos pelo seu nome e cdigo, endereo e telefone.Os imveis so descritos pelo seu cdigo, tipologia, zona, ano de construo e preo. Os clientes tm um conjunto de interesses que descrevem as suas preferncias por tipologia, zona e preo. Os clientes podem firmar acordos de promessa de compra/venda com a empresa para um determinado imvel, sendo este acordo firmado numa determinada data. Um cliente pode comprar mais do que um imvel, mas para cada compra ter de ter um acordo distinto. Identifique algumas operaes nas classe e monte 1 diagrama de seqncia como exemplo.