Вы находитесь на странице: 1из 23

Anlise e Projeto de Sistemas II (APOO)

Identificar os conceitos bsicos envolvidos na anlise e projetos de sistemas Orientados a Objetos (OOPD) Identificar os diagramas bsicos para o desenvolvimento de aplicaes OO Identificar ferramentas de auxilio para o desenvolvimento de sistemas baseados no paradigma OO.

Unidade didtica I Conceitos bsicos de Engenharia de Software


Identificar os conceitos bsicos de E.S. empregados no desenvolvimento de sistemas Identificar modelos aplicveis Eng SW Identificar o ciclo de vida do Sw Identificar os personagens e sua participao no processo de desenvolvimento
Atualizado em 1 7/3/2013 2

Atualizado em 7/3/2013

Uma breve crnica


A maior dificuldade em desenvolver software reside na capacidade de entender as necessidades do nosso cliente. O correto emprego de metodologias de desenvolvimento pode apresentar um caminho seguro rumo ao atendimento destes anseios.

Conceitos bsicos

Jos P. Emiliano

7 de maro de 2013

Slide nr 3

Jos P. Emiliano

7 de maro de 2013

Slide nr 4

Conceitos bsicos
Engenharia de software
uma rea do conhecimento voltada para a especificao, desenvolvimento e manuteno de sistemas de software aplicando tecnologias e prticas de cincia da computao, gerncia de projetos e outras disciplinas, objetivando produtividade e qualidade. Atualmente, estas tecnologias e prticas englobam linguagens de programao, bases de dados, ferramentas, plataformas, bibliotecas, padres e processos.

Conceitos bsicos
Os fundamentos cientficos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantido suas qualidades.
Alm disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento.

Jos P. Emiliano

7 de maro de 2013

Slide nr 5

Jos P. Emiliano

7 de maro de 2013

Slide nr 6

Conceitos bsicos
Segundo Fritz Bauer:
"Engenharia de software a criao e a utilizao de slidos princpios de engenharia a fim de obter software de maneira econmica, que seja confivel e que trabalhe eficientemente em mquinas reais". O prprio significado de engenharia j traz os conceitos de criao, construo, anlise, desenvolvimento e manuteno.

Conceitos bsicos
Engenharia de Software
Surgiu em meados dos anos 70 numa tentativa de contornar a crise do software e dar um tratamento de engenharia (mais sistemtico e controlado) ao desenvolvimento de sistemas de software complexos.

Jos P. Emiliano

7 de maro de 2013

Slide nr 7

Jos P. Emiliano

7 de maro de 2013

Slide nr 8

Conceitos bsicos
Engenharia de Software
Um sistema de software complexo se caracteriza por um conjunto de componentes abstratos de software (estruturas de dados e algoritmos) encapsulados na forma de procedimentos, funes, mdulos, objetos ou agentes e interconectados entre si, compondo a arquitetura do software, que devero ser executados em sistemas computacionais.

Conceitos bsicos
Engenharia de Software
Os fundamentos cientficos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar, projetar, implementar e manter sistemas de software, avaliando e garantido suas qualidades. Alm disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento.

Jos P. Emiliano

7 de maro de 2013

Slide nr 9

Jos P. Emiliano

7 de maro de 2013

Slide nr 10

Conceitos bsicos
Engenharia de Software
Empresas desenvolvedoras de software passaram a empregar os conceitos de Engenharia de Software sobretudo para orientar suas reas de desenvolvimento, muitas delas organizadas sob a forma de Fbricas de Software.

Conceitos bsicos
Engenharia de Sistemas
uma rea mais ampla por tratar de todos os aspectos de sistemas baseados em computadores, incluindo hardware e engenharia de processos alm do software.

Jos P. Emiliano

7 de maro de 2013

Slide nr 11

Jos P. Emiliano

7 de maro de 2013

Slide nr 12

Conceitos bsicos
Processo de Software
um conjunto coerente de prticas que objetiva o desenvolvimento ou evoluo de sistemas de software. Estas prticas englobam as atividades de especificao, projeto, implementao e testes e caracterizam-se pela interao de ferramentas, pessoas e mtodos. Devido ao uso da palavra projeto em muitos contextos, por questes de clareza, h vezes em que se prefira usar o original em ingls: design.

Conceitos bsicos
Processo de Software
De modo geral, as etapas para o desenvolvimento de sistemas compreendem um ciclo de atividades de anlise, construo e manuteno de sistemas.

Jos P. Emiliano

7 de maro de 2013

Slide nr 13

Jos P. Emiliano

7 de maro de 2013

Slide nr 14

Conceitos bsicos
Gerncia de Projetos
A gerncia de projetos se preocupa em entregar o sistema de software no prazo e de acordo com os requisitos estabelecidos, levando em conta sempre as limitaes de oramento e tempo. A gerncia de projetos de software se caracterizam por tratar sobre um produto intangvel, muito flexvel e com processo de desenvolvimento com baixa padronizao.

Conceitos bsicos
Ciclo de vida de um projeto: So as etapas a serem cumpridas desde a concepo de um problema, at sua efetiva implantao num sistema computacional. De uma maneira genrica podemos citar as seguintes fases de um ciclo de vida:
a) Entrevista/Coleta de Dados; b) Anlise (O Que Fazer); c) Projeto (Como Fazer); d)Implementao (A fabricao, codificao e projeto de aqruitetura); e) Testes; f) Aceitao e Implantao; g) Manuteno. O ciclo de vida supracitado apresenta de uma forma geral a idia de ciclo de vida, dependendo da bibliografia e da metodologia, podero ser apresentadas variaes.

Jos P. Emiliano

7 de maro de 2013

Slide nr 15

Jos P. Emiliano

7 de maro de 2013

Slide nr 16

Conceitos bsicos
Planejamento
O planejamento de um projeto de desenvolvimento de software inclui:
organizao do projeto (incluindo equipes e responsabilidades) estruturao das tarefas (do ingls work breakdown structure) cronograma do projeto (do ingls project schedule) anlise de risco

Conceitos bsicos
Planejamento
Essas atividades sofrem com dificuldades tpicas de desenvolvimento de software.
A produtividade no linear em relao ao tamanho da equipe e o aumento de produtividade no imediato devido custos de aprendizado de novos membros. A diminuio de qualidade para acelerar o desenvolvimento constantemente prejudica futuramente a produtividade. A estimativa de dificuldades e custos de desenvolvimentos so muito difceis, alm do surgimento de problemas tcnicos. Esses fatores requerem uma anlise de riscos cuidadosa.

Jos P. Emiliano

7 de maro de 2013

Slide nr 17

Jos P. Emiliano

7 de maro de 2013

Slide nr 18

Conceitos bsicos
Anlise
As atividades de anlise concentram-se na identificao, especificao e descrio dos requisitos do sistema de software. Em resumo, requisito uma necessidade que o software deve cumprir. H vrias interpretaes e classificaes sobre requisitos, entre elas:
funcional ou no funcional de usurio ou de sistema

Conceitos bsicos
Anlise
comum que o cliente no saiba o que ele realmente deseja, que haja problemas na comunicao e ainda que haja mudana constante de requisitos. Todos esses fatores so recrudecidos pela intangibilidade sobre caractersticos de sistemas de software, principalmente sobre o custo de cada requisito.

Jos P. Emiliano

7 de maro de 2013

Slide nr 19

Jos P. Emiliano

7 de maro de 2013

Slide nr 20

Conceitos bsicos
Modelagem
A abstrao do sistema de software atravs de modelos que o descrevem um poderoso instrumento para o entendimento e comunicao do produto final que ser desenvolvido. A maior dificuldade nesta atividade est no equilbrio (tradeoff) entre simplicidade (favorecendo a comunicao) e a complexidade (favorecendo a preciso) do modelo. comum a utilizao de linguagens para modelagem como UML.

Conceitos bsicos
Tecnologias e Prticas
A engenharia de software aborda uma srie de prticas e tecnologias, principalmente estudadas pela cincia da computao, enfocando seu impacto na produtividade e qualidade de software. Destacam-se o estudo de linguagem de programao, banco de dados e paradigmas de programao, como:
Programao estruturada Programao funcional Programao orientada a objectos Componentes de Software Programao orientada a aspecto

Jos P. Emiliano

7 de maro de 2013

Slide nr 21

Jos P. Emiliano

7 de maro de 2013

Slide nr 22

Conceitos bsicos Ferramentas


Outro ponto importante o uso de ferramentas CASE (do ingls Computer-Aided Software Engineering). Essa classificao abrange toda ferramenta baseada em computadores que auxiliam atividades de engenharia de software, desde de anlise de requisitos e modelagem at programao e testes.

Conceitos bsicos Ferramentas


Os ambientes de desenvolvimento integrado (IDEs) tm maior destaque e suportam:
Editor Compilador Debug Gerao de cdigo Modelagem Deploy Testes automatizados Refatorao

Jos P. Emiliano

7 de maro de 2013

Slide nr 23

Jos P. Emiliano

7 de maro de 2013

Slide nr 24

Conceitos bsicos
O que um sistema?
Um sistema um conjunto ou arranjo de elementos relacionados ou interligados de modo a formar uma unidade ou um todo orgnico capaz de interagir com um usurio ou outro sistema, visando prover uma funcionalidade desejada.
Ex: Um sistema de contabilidade visa controlar as contas de uma empresa, etc.

Conceitos bsicos
Problema Soluo
Anlise Projeto Implementao Validao

O sistema ser to complexo quantos forem as funcionalidades agregadas pelos mdulos que a ele esto conectados.

Necessidade

Desenvolvimento

Produto

Jos P. Emiliano

7 de maro de 2013

Slide nr 25

Jos P. Emiliano

7 de maro de 2013

Slide nr 26

Conceitos bsicos
Problema
Dados

Conceitos bsicos
Um trabalho de anlise para o desenvolvimento de um sistema informatizado busca representar:
o domnio do problema ;e as responsabilidades do sistema a ser desenvolvido.

Dinmica Implementao

Vises

Implantao

Necessidade

Funes

Jos P. Emiliano

7 de maro de 2013

Slide nr 27

Jos P. Emiliano

7 de maro de 2013

Slide nr 28

Conceitos bsicos
As metodologias para desenvolvimento de software descrevem a organizao necessria para a sua criao, sugerindo passos a serem seguidos para preencher o espao existente entre a idia e o produto. O uso de uma metodologia torna mais eficiente a quantificao do progresso e o controle do trabalho.

Conceitos bsicos
Fases:
Anlise Projeto (design) Construo Integrao Testes Evoluo *

Jos P. Emiliano

7 de maro de 2013

Slide nr 29

Jos P. Emiliano

7 de maro de 2013

Slide nr 30

Conceitos bsicos
Anlise
Chama-se anlise o processo de identificao de objetivos e reconhecimento dos requisitos de um sistema. Nesta etapa formulado o problema que o sistema deve atender. Vises :
regras do negcio Implementao

Conceitos bsicos
Projeto
Nesta fase so tomadas as decises que envolvem a soluo do problema, pela construo de seus componentes. So identificadas as funcionalidades desejadas , os elementos integrantes da soluo (intra ou extra sistema) e a relao entre os mesmos feita a classificao dos componentes, agrupando-os segundo caractersticas ou funcionalidades semelhantes (criao de classes em pacotes) So identificadas eventuais concorrncias, manipulao de excees e organizao de funcionalidades em pacotes.

Equipe:
Analista de negcios Analista de BD Analista de documentao

Jos P. Emiliano

7 de maro de 2013

Slide nr 31

Jos P. Emiliano

7 de maro de 2013

Slide nr 32

Conceitos bsicos
Projeto
Na fase de projeto conveniente o levantamento de custos para o oramento do cliente. O modelo de negociao do produto final pode variar:
Venda do cdigo (full licensing ou bits-in-a-box) Venda do servio (SaaS- Software as a Service) Contrato de suporte anual (Annual Suport Contract) Assinatura (subscription)

Conceitos bsicos
Projeto
Equipe
Engenheiro de Software Engenheiro de redes Designer de interfaces

Jos P. Emiliano

7 de maro de 2013

Slide nr 33

Jos P. Emiliano

7 de maro de 2013

Slide nr 34

Conceitos bsicos
Construo
Nesta etapa so construdos os componentes que fazem parte da aplicao. Os componentes podem ser novos ou reutilizados de outros projetos

Conceitos bsicos
Integrao
Na etapa de integrao os componentes so reunidos, visando a apresentao de um prottipo que espelhe a soluo desejada. Este prottipo tender para o modelo da soluo visualizada. Dependendo da abordagem de desenvolvimento (spiral-model, waterfall, etc) o prottipo poder vir a ser o produto acabado ou a primeira verso de vrias.

Equipe
Programador de interfaces Programador de componentes Programador de BD Analista de teste

Equipe
Gerente de integrao

Jos P. Emiliano

7 de maro de 2013

Slide nr 35

Jos P. Emiliano

7 de maro de 2013

Slide nr 36

Conceitos bsicos
Testes
Nesta etapa o produto colocado em uso e suas funcionalidades previstas so verificadas. O refinamento do modelo permitir a sua evoluo rumo ao produto final ou uma verso para uso. Como subproduto dos testes surgem as correes e novas necessidades*** As novas necessidades, quando incorporadas e aceitas daro origem a um novo ciclo de desenvolvimento.

Conceitos bsicos
Testes
Participantes
Gerente da aplicao Usurio final Patrocinadores

Jos P. Emiliano

7 de maro de 2013

Slide nr 37

Jos P. Emiliano

7 de maro de 2013

Slide nr 38

Conceitos bsicos
Evoluo
Fase que inicia um novo ciclo de desenvolvimento e agrega funcionalidades no previstas para o modelo inicial Segundo esta abordagem, o software continua sendo desenvolvido mesmo depois de entregue.

Conceitos bsicos
Etapas de desenvolvimento de sistemas
De modo geral, as etapas para o desenvolvimento de sistemas compreendem um ciclo de atividades de anlise, construo e manuteno de sistemas. Em prtica, cada um dos modelos abaixo correspondem evoluo dos ciclos de desenvolvimento. Oriundo da engenharia tradicional, a engenharia de software buscou padronizar procedimentos atravs de modelos de desenvolvimento.

Jos P. Emiliano

7 de maro de 2013

Slide nr 39

Jos P. Emiliano

7 de maro de 2013

Slide nr 40

10

Conceitos bsicos
Modelos clssicos de ciclo de vida
Code and Fix (dcada de 50 / 60)- Modelo emprico, consistia na codificao voltada para a soluo desejada. A tecnologia da poca limitava a possibilidade de efetuar ajustes imediatamente

Conceitos bsicos
Modelos clssicos de ciclo de vida
Design -- Code -- Test -- Maintenance (1960s) Clssico, envolve todo o projeto. Acrescenta fases de projeto (design) e manuteno (maintenance) ao modelo anterior.

Codificar Corrigir

Projetar

Codificar Manter

Testar

Jos P. Emiliano

7 de maro de 2013

Slide nr 41

Jos P. Emiliano

7 de maro de 2013

Slide nr 42

Conceitos bsicos
Modelos clssicos de ciclo de vida
Waterfall Model (etapas em cascata) Envolve mdulos do projeto, passando de uma fase a outra, apenas se pronta e validada a fase anterior. Prototyping Model Prototipar sempre, tornandoo prximo do modelo desejado. O prottipo poder ou no ser o produto final.
Exemplo: Desenvolver em MSAccess um prottipo a ser implantado em Java ou Delphi. Objetivo: Captar ao mximo os requisitos do sistema

Conceitos bsicos
Modelos evolutivos:
Incremental Model Implementa parte de um modelo total. Incrementa a parte implementada at o ponto desejado pelo usurio (funcionalidades ou performance) Spiral Model Utiliza ciclos interativos de desenvolvimento.

Rapid Application Development (RAD) Model Mltiplas etapas paralelas em desenvolvimento

Jos P. Emiliano

7 de maro de 2013

Slide nr 43

Jos P. Emiliano

7 de maro de 2013

Slide nr 44

11

Conceitos bsicos Modelo em cascata (waterfall)

Conceitos bsicos
Modelo em cascata (waterfall modificado)

Jos P. Emiliano

7 de maro de 2013

Slide nr 45

Jos P. Emiliano

7 de maro de 2013

Slide nr 46

Conceitos bsicos
Modelo em espiral (spiral model)

Conceitos bsicos
Modelos de um software
Um nico modelo insuficiente para representar todos os fenmenos existentes em um sistema complexo. Principais modelos, segundo Jacobson (1992)
Modelo de requisitos captura requisitos funcionais Modelo de anlise- d ao sistema uma estrutura de objetos Modelo de design (projeto)-refinamento para a implementao Modelo de implementao-efetivamente implementa o sistema Modelo de teste- realiza verificaes do sistema

Jos P. Emiliano

7 de maro de 2013

Slide nr 47

Jos P. Emiliano

7 de maro de 2013

Slide nr 48

12

Programao estruturada x POO


A programao estruturada tradicional consiste em construir estruturas de dados e ento manipul-las atravs de funes (algoritmos).
Segundo Niklaus Wirth, desenvolvedor da linguagem Pascal, programas so funes da interao de estruturas de dados com algoritmos. Segundo ele, os algoritmos vem em primeiro lugar de importncia, servindo para organizar os dados, visando facilitar sua consulta posterior. Neste contexo, os dados vem em segundo lugar.

Unidade Didtica II - O projeto UML


Diferenciar anlise estruturada da abordagem OO Caracterizar a abordagem OO e seus conceitos principais

funes

funes

funes

funes

Dados globais
Atualizado em 7/3/2013 49
Jos P. Emiliano
7 de maro de 2013

Slide nr 50

Programao estruturada x POO


A programao orientada a objetos permite a criao de estruturas de dados que encapsulam funes que os manipula.
No conceito de OO, os objetos guardam dados, cuja manipulao ocorre por conta de mtodos implementados por eles prprios. A comunicao entre objetos atravs de mensagens permite que um objeto consulte dados de outro objeto, formando uma estrutura coesa e dinmica. POO prioriza a estrutura de dados em vez das funes que os manipula.

Conceitos de POO
Objeto
Sistemas baseados no paradigma da Orientao a Objetos, empregam este conceito para representar entidades, ocorrncias ou elementos do mundo real Objeto uma abstrao capaz de representar e descrever formalmente elementos reais em um ambiente computacional.
Exemplo: Aluno, Conta Corrente, Fatura, Automvel, Item de estoque, etc.

mtodos
os tod m

mtodos
to m s do

mtodos
to m s do

dados
mtodos

dados
mtodos

dados
mtodos

Jos P. Emiliano

7 de maro de 2013

Slide nr 51

Jos P. Emiliano

7 de maro de 2013

Slide nr 52

13

Conceitos de POO
Objetos armazenam dados, comportamentos, estados e so capazes de comunicar entre si .
Podem ser agregados visando adicionar uma desejada funcionalidade a um sistema, tornando-o mais complexo.
Exemplo: Um objeto computador composto por diversos componentes eletrnicos (objetos) que o fazem funcionar corretamente.

Conceitos de POO
Qualquer objeto existente no mundo real pode ser mapeado para o ambiente computacional, desde que seja possvel identificar:
As caractersticas (aspectos) que definam este objeto Outros objetos que possam vir a compor este objeto Os estados que este objeto possa possuir, com base nos valores das caractersticas ou objetos que armazena Os comportamentos ou mtodos capazes de atuar sobre estes estados , atuando sobre seus dados, modificandoos A interao deste objeto com demais integrantes do sistema

Jos P. Emiliano

7 de maro de 2013

Slide nr 53

Jos P. Emiliano

7 de maro de 2013

Slide nr 54

Conceitos de POO
Um objeto caracteriza-se por:
Guardar dados (atributos) que esto relacionados a caractersticas que o definem:
Ex:[FATURA]=nome, nr_cartao, valor_total, valor_pago, data_vencimento, data_pagamento, status,etc.

Conceitos de POO
Um objeto caracteriza-se por:
Possuir mtodos (comportamentos) capazes de alterar valores de seus atributos, permitindo, inclusive, modificar seu estado:
Ex: Considere o mtodo :
pagarFatura(float valor){ this.valor_pago=valor; }

Possuir estados que podem ser modificados em funo dos valores dos dados por ele armazenados:
Ex: Fatura paga, fatura no paga, em atraso, em dia, etc.

(permite a mudana do atributo valor_pago deste objeto)

Possuir mtodos capazes de alterar valores de atributos em outros objetos com os quais tenha algum tipo de relacionamento.
Jos P. Emiliano Slide nr 56

Jos P. Emiliano

7 de maro de 2013

Slide nr 55

7 de maro de 2013

14

Conceitos de POO
Nota: Na POO, no se deve acessar diretamente os valores dos dados de um objeto. Em vez disso, devem ser implementados mtodos capazes de realizar esta consulta.

Conceitos de POO
Um objeto caracteriza-se por:
Permitir o encapsulamento (ocultamento) de seus dados e mtodos a outros objetos, garantindo segurana, reusabilidade e confiabilidade. Permitir agregar-se e ser agregado a outros objetos, com vistas a compor um sistema complexo, cuja funcionalidade depende das partes (objetos) que o compem.
mtodos mtodos
to m

Mensagem: qual o nome do aluno?


mtodos
os tod m

mtodos
to m s do

dados
mtodos

X
No Mensagem: o nome Jose

Nome = jose

mtodos

do to m

dados

s do

mtodos mtodos
os tod m

dados

mtodos mtodos

Jos P. Emiliano

7 de maro de 2013

Slide nr 57

Jos P. Emiliano

7 de maro de 2013

Slide nr 58

Conceitos de POO
Classe
Uma classe um molde capaz de gerar os objetos de um sistema computacional.
O processo de criao do objeto chama-se instanciao. O objeto criado a instncia da classe e traz consigo as definies, atributos e mtodos por ela definidos.
Classe Instncias
mtodos
os tod m

Conceitos de POO
Classe
Este molde dever descrever:
Os atributos do objeto a ser gerado Os mtodos ou funes O grau de visibilidade (encapsulamento) do objeto e de seus componentes internos
PessoaFisica (public)
Atributos ou Propriedades*
os tod m

Auto
instancia

mtodos

private String Nome private String Cpf private String Identidade Public Consultar Dados () Public Cadastrar Nome () Public Cadastrar CPF() Public Cadastrar() Public Excluir ()

dados
mtodos

mtodos

dados
mtodos

os tod m

dados
mtodos

Mtodos

Jos P. Emiliano

7 de maro de 2013

Slide nr 59

Jos P. Emiliano

7 de maro de 2013

Slide nr 60

15

Conceitos de POO
Relacionamentos entre objetos
Um objeto pode se relacionar com outros objetos, objetivando atingir funcionalidades desejadas. O grau de relao entre os objetos depende basicamente dos seguintes fatores:
Limitaes e restries das regras de negcio Reaproveitamento de cdigo O momento do objeto em tempo de execuo

Conceitos de POO
Relacionamentos entre objetos
Uma aplicao baseada em OO possui os seguintes tipos de objetos, a priori:
Objetos do sistema (da aplicao propriamente dita) Objetos do modelo de negcios

Cada objeto possui funcionalidade especfica e agrega valor ao sistema como um todo.
As classes com funes especficas podem ser agrupadas em pacotes (bibliotecas) que podem ser reutilizados pelo sistema.

Jos P. Emiliano

7 de maro de 2013

Slide nr 61

Jos P. Emiliano

7 de maro de 2013

Slide nr 62

Conceitos de POO
Relacionamentos entre objetos
Associaes
Conhecimento ou Associao (Link) Agregao Composio

Conceitos de POO
Associao
Define o tipo de relacionamento bsico que permite a chamada de mtodos entre dois objetos do sistema. A associao pode ser dos tipos:
Associao Agregao Composio

Herana (generalizao)

Jos P. Emiliano

7 de maro de 2013

Slide nr 63

Jos P. Emiliano

7 de maro de 2013

Slide nr 64

16

Conceitos de POO
Associao
Relacionamento padro entre objetos, com fraco grau de dependncia. Um objeto poder chamar mtodos de outro. Objetos do mesmo pacote ou de pacotes importados possuem este tipo de relacionamento, por padro. H que se observar a convenincia do sistema para a chamada de mtodos de um objeto em outro.

Conceitos de POO
Agregao ( parte de)
Relacionamento com mdio grau de dependncia de um objeto sobre o outro. Pressupe a existncia de um objeto compondo um outro sem, no entanto, ser sua parte principal. Em tempo de execuo, o objeto que agrega pode existir sem a existncia do objeto agregado.

Classe A
Jos P. Emiliano
7 de maro de 2013

Classe B
Slide nr 65

Curso
permitida a existncia de cursos sem alunos
Jos P. Emiliano
7 de maro de 2013

Aluno

Slide nr 66

Conceitos de POO
Composio (composto por)
Relacionamento com forte grau de dependncia onde a existncia de uma instncia de uma classe deve estar sujeita a existncia de outra.

Conceitos de POO
Classes de associao
Uma classe que representa a relao entre duas entidades.

No deve haver paciente sem pronturio

Paciente
Jos P. Emiliano

Pronturio
Slide nr 67 Jos P. Emiliano Slide nr 68

7 de maro de 2013

7 de maro de 2013

17

Conceitos de POO
Herana
Possibilidade que tem um objeto de herdar as caractersticas de outro objeto, no necessitando a reimplementao de atributos ou mtodos.
A herana visa especializar o objeto-filho em funo de caractersticas do objeto-pai Tipos de herana:
Simples (um pai apenas) - Utilizado por Java Mltipla (mltiplos pais para um filho)

Conceitos de POO
Herana

Jos P. Emiliano

7 de maro de 2013

Slide nr 69

Jos P. Emiliano

7 de maro de 2013

Slide nr 70

Conceitos de POO
Polimorfismo (overriding)
a possibilidade de sobreescrever um mtodo definido por uma classe modificando o comportamento de objetos.
public void contar(){ valor=valor+1; }

Reviso
A programao estruturada difere da programao OO por possuir funes do sistema acessando dados. Na POO os objetos integram dados e as funes que os acessam. Objetos so representaes do mundo real no ambiente computacional As classes so os moldes dos objetos Instncias so objetos criados por classes em tempo de execuo Os objetos se relacionam aumentando o grau de complexidade de sistemas Associao, Agregao e Composio so as relaes principais A Herana prov especializao das classes j implementadas

public void contar(){ valor=valor+2; }

Jos P. Emiliano

7 de maro de 2013

Slide nr 71

Jos P. Emiliano

7 de maro de 2013

Slide nr 72

18

Conceitos bsicos
Um sistema pode ser visto de diversas perspectivas, a saber:
Conceitual

Introduo a UML
Identificar principais diagramas para o projeto de sistemas OO

Independente de linguagem Representa os conceitos no domnio do problema

Especificao
Foco no software (em especial nas funes a serem implementadas, como ser visto adiante)

Implementao
Descrio detalhada dos atributos (com valores de inicializao, se for o caso) e dos mtodos desejveis para o sistema.
Atualizado em 7/3/2013 73
Jos P. Emiliano
7 de maro de 2013

Slide nr 74

Conceitos bsicos
Vises
Conceitual

UML
O que UML
Unified Modelling Language uma famlia de notaes grficas utilizadas para a descrio e projeto de sistemas informatizados, particularmente sistemas Orientados a Objetos. Surgiu da unificao de modelos grficos prexistentes na dcada de 80 e 90. O UML um padro aberto, controlado pelo OMG (Object Management Group). A verso normalmente em uso 1.5. J encontra-se disponvel a especificao da verso 2.0.

Especificao

Implementao

Jos P. Emiliano

7 de maro de 2013

Slide nr 75

Jos P. Emiliano

7 de maro de 2013

Slide nr 76

19

UML
Evoluo
UML 1.1
Industrializao (Set97) Padronizao (Jan97) Unificao II (Out96) Unificao I (Out95)

UML
Vises da UML
Viso de casos de uso - Como o sistema percebido por elementos que com ele interagem. Viso lgica - Mostra como a funcionalidade implementada dentro do sistema. voltada para projetistas e desenvolvedores do sistema. Descreve classes, objetos e relacionamentos. Viso de componentes - Mostra a organizao dos componentes e seu agrupamento em mdulos e suas dependncias. Viso de concorrncia - Mostra aspectos dinmicos do sistema, como concorrncia, comunicao e sincronizao Viso de desenvolvimento - Mostra o desenvolvimento de um sistema em sua arquitetura fsica com computadores e sistemas denominados de ns.

UML 1.0 Parceiros da UML UML 0.9 & 0.91 Unified Method 0.8

Booch93 Outros mtodos


Jos P. Emiliano

OMT-2 OMT-1 OOSE


Fragmentao

Booch91

7 de maro de 2013

Slide nr 77

Jos P. Emiliano

7 de maro de 2013

Slide nr 78

UML
Diagramas
Modelo esttico
Casos de uso Classe

UML
Estudo de caso:
Sistema de Agenda Tipo de sistema: Cliente/Servidor Banco de dados: OO Quantidade de pontos: 3 Servidores disponveis:1 Usurios do sistema:
Administradores Usurios comuns

Modelo dinmico
Colaborao Seqncia Atividade Estados

Funcionalidades bsicas:
Autenticao de usurios Gerncia de usurios Gerncia de contatos

Modelo de implementao
Diagrama de componentes Diagrama de Implementao

Jos P. Emiliano

7 de maro de 2013

Slide nr 79

Jos P. Emiliano

7 de maro de 2013

Slide nr 80

20

Diagramas
Diagramas de Casos de Uso

Diagramas
Diagramas de Classe

Jos P. Emiliano

7 de maro de 2013

Slide nr 81

Jos P. Emiliano

7 de maro de 2013

Slide nr 82

Diagramas
Diagramas de Colaborao
Mostra a interao entre os objetos do sistema
Cadastro de um objeto instncia da classe Contato

Diagramas
Diagramas de Sequncia
Use case: Excluir contato

Jos P. Emiliano

7 de maro de 2013

Slide nr 83

Jos P. Emiliano

7 de maro de 2013

Slide nr 84

21

Diagramas
Diagramas de Atividade
Detalha o ciclo de vida da aplicao

Diagramas
Diagramas de Estado
Objeto: Contato

Jos P. Emiliano

7 de maro de 2013

Slide nr 85

Jos P. Emiliano

7 de maro de 2013

Slide nr 86

Diagramas
Diagramas de Componentes

Diagramas
Diagramas de Implantao

Jos P. Emiliano

7 de maro de 2013

Slide nr 87

Jos P. Emiliano

7 de maro de 2013

Slide nr 88

22

Ferramentas para UML


Jude
Desenvolvido em Java (requer JRE 1.4 ou superior) Disponvel em
http://jude.change-vision.com/jude-web/index.html Verses
Community (open) Professional

Unidade Didtica III - Ferramentas para UML Identificar ferramentas para elaborar projetos de UML

Rational Rose (proprietrio) Together Plastic

Atualizado em 7/3/2013 89
Jos P. Emiliano
7 de maro de 2013

Slide nr 90

Ferramentas Open Source


Eclipse and EMF template-based system for source-code generation from UML models. ArgoUML: a Java-based UML engineering tool, closely follows the UML standard, BSD license. BOUML: multi-platform UML 2.0 toolbox, reverse/generates C++/Java/IDL. Very high performances (written in C++, on Qt). Licensed under the GNU GPL. Dia: a GTK+/GNOME diagramming tool that also supports UML (licensed under the GNU GPL) MonoUML: based on the latest Mono, GTK+ and ExpertCoder. Papyrus (software): an open-source UML2 tool based on Eclipse and licensed under the EPL StarUML: a UML/MDA platform for Microsoft Windows, licensed under a modified version of GNU GPL, mostly written in Delphi Umbrello UML Modeller: part of KDE UMLet: a Java-based UML tool (licensed under the GNU GPL)
Fonte: Wikipedia

Referncias
Fowler,Martin UML Distilled Third Edition Addison Wesley, 2006 Eriksson, Jans ; Penker, Magnus - UML Toolkit Wiley Computer Publishing, 1998 Coad,Peter;Yourdon, Peter Object-Oriented Analysis, Yourdon Press, 1991 Matos, Alexandre-UML prtico e descomplicado, Ed rica, 2002 Fowler,Martin UML Essencial, Bookman, 2000
Jos P. Emiliano Slide nr 92

Jos P. Emiliano

7 de maro de 2013

Slide nr 91

7 de maro de 2013

23

Вам также может понравиться