Você está na página 1de 24

Modelagem de Software Orientada a Objetos com UML

Andr Maus Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Grficos para Engenharia do Departamento de Engenharia Civil da PUC-Rio

Contedo
Conceitos Bsicos de Orientaco a Objetos UML (Unified Modeling Language) Modelagem de Software Orientada a Objetos Calculadora RPN Introduo aos Padres de Projeto

Orientaco a Objetos
A abordagem orientada a objetos possibilita uma melhor organizao, versatilidade e reutilizao do cdigo fonte, o que facilita atualizaes e melhorias nos programas. A abordagem orientada a objetos caracterizada pelo uso de classes e objetos, e de outros conceitos que sero esclarecidos a seguir.

Classes so espcies de montadoras de objetos, que definem suas caractersticas como, quais funes so capazes de realizar e quais os atributos que o objeto possui. Essa forma de programar permite ao usurio resolver problemas utilizando conceitos do mundo real. Objeto uma instancia gerada a partir de uma classe. Um objeto identificado a partir dos mtodos e dos atributos que possui. Encapsulamento o ato de esconder do usurio os processos internos de um objeto, classe ou mtodo. Herana (e Polimorfismo) uma caracterstica que permite a determinada classe herdar as caractersticas de outra classe. Ou seja, a classe descendente adquiri todos os mtodos e atributos da classe pai.
Mtodos so as funes que objeto pode realizar. Atributo tudo que um objeto possui como varivel.

UML
Linguagem de Modelagem Unificada
Definio: uma linguagem grfica para visualizar, especificar, construir e documentar os artefatos de um sistema computacional orientado a objetos Vantagens: - Desenvolvimento de programas de forma rpida, eficiente e efetiva; - Revela a estrutura desejada e o comportamento do sistema; - Permite a visualizao e controle da arquitetura do sistema; - Melhor entendimento do sistema que est sendo construdo e gerenciamento de riscos.

UML
Vises (Arquitetura de um Sistema OO)

De acordo com a UML, deve-se ter uma viso de casos de uso, expondo as exigncias do sistema; uma viso de projeto, capturando o vocabulrio do espao do problema e do espao da soluo; uma viso do processo, modelando a distribuio dos processos e linhas do sistema; uma viso de implementao, dirigindo-se realizao fsica do sistema; e uma viso de distribuio, focando na edio da engenharia de sistema. Cada uma dessas vises pode ter aspectos estruturais, assim como comportamentais. Juntas, essas vises representam as plantas dos sistemas computacionais.

Blocos de Construo

Elementos em UML

Blocos de Construo

Relaes em UML

Blocos de Construo

Diagramas em UML

Modelagem Orientada a Objetos


Uma metodologia um processo organizado de produo de software, que utiliza tcnicas predefinidas e notaes convencionais. As etapas que compem este processo correspondem ao ciclo de vida do software. Tradicionalmente, a formulao inicial do problema, a anlise, o projeto, a implementao, os testes e a operao (manuteno e aperfeioamento) compem estas etapas do ciclo de vida. Um modelo uma abstrao de alguma coisa, cujo propsito permitir que se conhea essa coisa antes de se constru-la (Rumbaugh, 1994).

Modelagem Orientada a Objetos

Modelagem Orientada a Objetos


Exigncias - Pr-requisitos / Requerimentos - Interface com o Usurio Anlise Orientada a Objetos - Casos de Uso - Diagrama de Robustez Projeto Orientado a Objetos - Diagramas de Sequncia - Diagramas de Classe Programao Orientada a Objetos

Modelagem Orientada a Objetos


de uma Calculadora RPN
Exigncias / Pr-requisitos
Deve ser possvel inserir vrios nmeros na calculadora. Os nmeros podem ser inteiros, reais e complexos. Os nmeros reais tm duas casas decimais e os complexos tm duas casas decimais nas partes real e imaginria. Deve ser possvel realizar as quatro operaes bsicas: adio, subtrao, multiplicao e diviso. As operaes devem ser realizadas com os dois ltimos nmeros que entraram na calculadora. Portanto, o pr-requisito para fazer uma operao ter entrado com pelo menos dois nmeros. O resultado de cada operao um novo nmero criado, que substitui os dois nmeros utilizados na operao. O restante dos nmeros fica inalterado. Devem ser visualizados apenas os quatro ltimos nmeros entrados.

Modelagem Orientada a Objetos


de uma Calculadora RPN
Interface com o Usurio
Esboo da Interface grfica do programa.

Esto faltando no esboo os seguintes botes: - enter - apagar o ltimo nmero inserido - chavear diferente tipo de nmero

Anlise Orientada a Objetos


Casos de Uso

da Calculadora RPN

Anlise Orientada a Objetos


Casos de Uso

da Calculadora RPN

- Escolher o Tipo de Nmero


Pode ser uma opo realizada no incio da execuo do programa, que ir definir o comportamento da calculadora. Durante a execuo do programa, o usurio tambm pode pressionar um boto para escolher o tipo de nmero que ele quer trabalhar. Os nmeros que j esto na calculadora, devem ser automaticamente convertidos para o novo formato.

- Inserir um Nmero
O caso de uso Inserir um Nmero" inicializado quando o usurio pressiona um boto correspondente ao nmero que ele deseja inserir na calculadora. Se o nmero for do tipo Inteiro ou Real basta ele clicar no boto com o nmero, porm se o tipo for complexo ele precisa inserir primeiro parte real e em seguida, aps um espao, a parte imaginria.

- Executar uma Operao


Esse caso de uso inicializado quando o usurio pressiona o boto correspondente a operao que ele deseja realizar. Qualquer operao realizada com os dois ltimos nmeros que entraram na calculadora, porm o resultado depende da operao.

- Remover o ltimo nmero


Remove o ltimo nmero sem fazer nenhuma operao. O penltimo passa a ser o ltimo.

- Sair do Programa
Esse caso de uso inicializado quando o usurio clica a caixa de fechamento do programa na janela principal do aplicativo. Os valores que esto na calculadora so perdidos.

Anlise Orientada a Objetos


da Calculadora RPN
Diagrama de Robustez
Um diagrama de robustez basicamente um diagrama de colaborao UML simplificado.

Uma leitura inicial dos casos de uso sugere que o seguinte ser parte do sistema: - Um objeto ou entidade nica para representar a calculadora (RPN). - Uma quantidade arbitrria de objetos, cada representando um determinado nmero (Number) Esse nmero ainda pode ser: inteiro (Integer), real (Real) ou complexo (Complex). - Uma estrutura de dados especial para armazenar os nmeros, sendo que o ltimo nmero entrado o primeiro a ser operado ou removido. Logo, a estrutura que demonstra ser a mais adequada para essa aplicao a pilha (Stack). - Um objeto grfico representando a interface entre o sistema calculadora e o usurio (RPN_GUI). - A controller object that carries out the use cases in response to user gestures on the GUI (RPNController). (Para um problema pequeno como esse, um nico controle suficiente.)

Anlise Orientada a Objetos


da Calculadora RPN
Diagrama de Robustez
Os vrios casos de uso trabalham com esses objetos, como se segue: - Inserir um nmero envolve pegar a nova informao do usurio, e ento dizer ao objeto RPN para adicionar um novo nmero com essa informao na sua coleo. -Executar uma operao envolve retirar os dois ltimos nmeros guardados no objeto RPN, executar a operao com esses nmeros e mostrar na tela o seu resultado, o qual adicionado como um novo nmero na sua coleo. - etc

Projeto Orientado a Objetos


da Calculadora RPN
Diagramas de Sequncia
Cada um dos casos de uso descobertos na Anlise do sistema ser realizado por uma sequncia de operaes envolvendo os vrios objetos que constituem o sistema:

Projeto Orientado a Objetos


da Calculadora RPN
Diagramas de Sequncia

Projeto Orientado a Objetos


da Calculadora RPN
Diagramas de Sequncia

Projeto Orientado a Objetos


da Calculadora RPN
Diagramas de Sequncia

Projeto Orientado a Objetos


da Calculadora RPN
Diagrama de Classe

Padres de Projeto
- Identificao de Objetos (tarefa difcil) - Tcnicas de Decomposio do Sistema em Objetos - Identificao das Abstraes Menos bvias

Padres de Projeto