You are on page 1of 23

Análise e Projeto de Sistemas II (APOO

)
Identificar os conceitos básicos envolvidos na análise e projetos de sistemas Orientados a Objetos (OOPD) Identificar os diagramas básicos para o desenvolvimento de aplicações OO Identificar ferramentas de auxilio para o desenvolvimento de sistemas baseados no paradigma OO.

Unidade didática I – Conceitos básicos de Engenharia de Software
Identificar os conceitos básicos de E.S. empregados no desenvolvimento de sistemas Identificar modelos aplicáveis à Eng SW Identificar o ciclo de vida do Sw Identificar os personagens e sua participação no processo de desenvolvimento
Atualizado em 1 7/3/2013 2

Atualizado em 7/3/2013

Uma breve crônica
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 básicos

José P. Emiliano

7 de março de 2013

Slide nr 3

José P. Emiliano

7 de março de 2013

Slide nr 4

1

Conceitos básicos
Engenharia de software
É uma área do conhecimento voltada para a especificação, desenvolvimento e manutenção de sistemas de software aplicando tecnologias e práticas de ciência da computação, gerência de projetos e outras disciplinas, objetivando produtividade e qualidade. Atualmente, estas tecnologias e práticas englobam linguagens de programação, bases de dados, ferramentas, plataformas, bibliotecas, padrões e processos.

Conceitos básicos
Os fundamentos científicos 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.
Além disto, a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento.

José P. Emiliano

7 de março de 2013

Slide nr 5

José P. Emiliano

7 de março de 2013

Slide nr 6

Conceitos básicos
Segundo Fritz Bauer:
"Engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais". O próprio significado de engenharia já traz os conceitos de criação, construção, análise, desenvolvimento e manutenção.

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

José P. Emiliano

7 de março de 2013

Slide nr 7

José P. Emiliano

7 de março de 2013

Slide nr 8

2

a engenharia de software deve oferecer mecanismos para se planejar e gerenciar o processo de desenvolvimento. compondo a arquitetura do software. funções. Emiliano 7 de março de 2013 Slide nr 9 José P. incluindo hardware e engenharia de processos além do software. Conceitos básicos Engenharia de Software Os fundamentos científicos para a engenharia de software envolvem o uso de modelos abstratos e precisos que permitem ao engenheiro especificar. Emiliano 7 de março de 2013 Slide nr 11 José P. Emiliano 7 de março de 2013 Slide nr 10 Conceitos básicos Engenharia de Software Empresas desenvolvedoras de software passaram a empregar os conceitos de Engenharia de Software sobretudo para orientar suas áreas de desenvolvimento. módulos. Conceitos básicos Engenharia de Sistemas É uma área mais ampla por tratar de todos os aspectos de sistemas baseados em computadores. projetar. avaliando e garantido suas qualidades. Além disto. José P. objetos ou agentes e interconectados entre si. implementar e manter sistemas de software.Conceitos básicos 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. Emiliano 7 de março de 2013 Slide nr 12 3 . muitas delas organizadas sob a forma de Fábricas de Software. José P. que deverão ser executados em sistemas computacionais.

d)Implementação (A fabricação. Emiliano 7 de março de 2013 Slide nr 13 José P. Estas práticas englobam as atividades de especificação. dependendo da bibliografia e da metodologia. A gerência de projetos de software se caracterizam por tratar sobre um produto intangível. até sua efetiva implantação num sistema computacional. Conceitos básicos Processo de Software De modo geral. De uma maneira genérica podemos citar as seguintes fases de um ciclo de vida: a) Entrevista/Coleta de Dados. Emiliano 7 de março de 2013 Slide nr 16 4 . José P. codificação e projeto de aqruitetura). e) Testes. há vezes em que se prefira usar o original em inglês: design. Emiliano 7 de março de 2013 Slide nr 15 José P. projeto. implementação e testes e caracterizam-se pela interação de ferramentas. f) Aceitação e Implantação. José P. muito flexível e com processo de desenvolvimento com baixa padronização. Emiliano 7 de março de 2013 Slide nr 14 Conceitos básicos Gerência de Projetos A gerência de projetos se preocupa em entregar o sistema de software no prazo e de acordo com os requisitos estabelecidos. construção e manutenção de sistemas.Conceitos básicos Processo de Software É um conjunto coerente de práticas que objetiva o desenvolvimento ou evolução de sistemas de software. Conceitos básicos Ciclo de vida de um projeto: São as etapas a serem cumpridas desde a concepção de um problema. pessoas e métodos. g) Manutenção. b) Análise (O Que Fazer). as etapas para o desenvolvimento de sistemas compreendem um ciclo de atividades de análise. por questões de clareza. Devido ao uso da palavra projeto em muitos contextos. O ciclo de vida supracitado apresenta de uma forma geral a idéia de ciclo de vida. poderão ser apresentadas variações. levando em conta sempre as limitações de orçamento e tempo. c) Projeto (Como Fazer).

A produtividade não é linear em relação ao tamanho da equipe e o aumento de produtividade não é imediato devido à custos de aprendizado de novos membros. que haja problemas na comunicação e ainda que haja mudança constante de requisitos. José P. requisito é uma necessidade que o software deve cumprir. Emiliano 7 de março de 2013 Slide nr 17 José P. Todos esses fatores são recrudecidos pela intangibilidade sobre característicos de sistemas de software. especificação e descrição dos requisitos do sistema de software. Há várias interpretações e classificações sobre requisitos. além do surgimento de problemas técnicos. Em resumo. principalmente sobre o custo de cada requisito. Emiliano 7 de março de 2013 Slide nr 19 José P. José P. Esses fatores requerem uma análise de riscos cuidadosa. Emiliano 7 de março de 2013 Slide nr 18 Conceitos básicos Análise As atividades de análise concentram-se na identificação. entre elas: funcional ou não funcional de usuário ou de sistema Conceitos básicos Análise É comum que o cliente não saiba o que ele realmente deseja. A diminuição de qualidade para acelerar o desenvolvimento constantemente prejudica futuramente a produtividade. Emiliano 7 de março de 2013 Slide nr 20 5 .Conceitos básicos Planejamento O planejamento de um projeto de desenvolvimento de software inclui: organização do projeto (incluindo equipes e responsabilidades) estruturação das tarefas (do inglês work breakdown structure) cronograma do projeto (do inglês project schedule) análise de risco Conceitos básicos Planejamento Essas atividades sofrem com dificuldades típicas de desenvolvimento de software. A estimativa de dificuldades e custos de desenvolvimentos são muito difíceis.

Essa classificação abrange toda ferramenta baseada em computadores que auxiliam atividades de engenharia de software. A maior dificuldade nesta atividade está no equilíbrio (tradeoff) entre simplicidade (favorecendo a comunicação) e a complexidade (favorecendo a precisão) do modelo.Conceitos básicos Modelagem A abstração do sistema de software através de modelos que o descrevem é um poderoso instrumento para o entendimento e comunicação do produto final que será desenvolvido. Emiliano 7 de março de 2013 Slide nr 24 6 . desde de análise de requisitos e modelagem até programação e testes. Emiliano 7 de março de 2013 Slide nr 21 José P. É comum a utilização de linguagens para modelagem como UML. Emiliano 7 de março de 2013 Slide nr 22 Conceitos básicos Ferramentas Outro ponto importante é o uso de ferramentas CASE (do inglês Computer-Aided Software Engineering). banco de dados e paradigmas de programação. enfocando seu impacto na produtividade e qualidade de software. como: Programação estruturada Programação funcional Programação orientada a objectos Componentes de Software Programação orientada a aspecto José P. Emiliano 7 de março de 2013 Slide nr 23 José P. Conceitos básicos Tecnologias e Práticas A engenharia de software aborda uma série de práticas e tecnologias. Destacam-se o estudo de linguagem de programação. principalmente estudadas pela ciência da computação. Conceitos básicos Ferramentas Os ambientes de desenvolvimento integrado (IDEs) têm maior destaque e suportam: Editor Compilador Debug Geração de código Modelagem Deploy Testes automatizados Refatoração José P.

Emiliano 7 de março de 2013 Slide nr 27 José P. etc. Ex: Um sistema de contabilidade visa controlar as contas de uma empresa. Necessidade Desenvolvimento Produto José P.e as responsabilidades do sistema a ser desenvolvido. Emiliano 7 de março de 2013 Slide nr 26 Conceitos básicos Problema Dados Conceitos básicos Um trabalho de análise para o desenvolvimento de um sistema informatizado busca representar: o domínio do problema .Conceitos básicos O que é um sistema? Um sistema é um conjunto ou arranjo de elementos relacionados ou interligados de modo a formar uma unidade ou um todo orgânico capaz de interagir com um usuário ou outro sistema. Emiliano 7 de março de 2013 Slide nr 25 José P. Emiliano 7 de março de 2013 Slide nr 28 7 . visando prover uma funcionalidade desejada. Dinâmica Implementação Visões Implantação Necessidade Funções José P. Conceitos básicos Problema Solução Análise Projeto Implementação Validação O sistema será tão complexo quantos forem as funcionalidades agregadas pelos módulos que a ele estão conectados.

Emiliano 7 de março de 2013 Slide nr 31 José P. manipulação de exceções e organização de funcionalidades em pacotes. pela construção de seus componentes. Equipe: Analista de negócios Analista de BD Analista de documentação José P. São identificadas as funcionalidades desejadas . Conceitos básicos Fases: Análise Projeto (design) Construção Integração Testes Evolução * José P. os elementos integrantes da solução (intra ou extra sistema) e a relação entre os mesmos É feita a classificação dos componentes. Visões : regras do negócio Implementação Conceitos básicos Projeto Nesta fase são tomadas as decisões que envolvem a solução do problema. Emiliano 7 de março de 2013 Slide nr 32 8 . sugerindo passos a serem seguidos para preencher o espaço existente entre a idéia e o produto. agrupando-os segundo características ou funcionalidades semelhantes (criação de classes em pacotes) São identificadas eventuais concorrências.Conceitos básicos As metodologias para desenvolvimento de software descrevem a organização necessária para a sua criação. O uso de uma metodologia torna mais eficiente a quantificação do progresso e o controle do trabalho. Emiliano 7 de março de 2013 Slide nr 30 Conceitos básicos Análise Chama-se análise o processo de identificação de objetivos e reconhecimento dos requisitos de um sistema. Emiliano 7 de março de 2013 Slide nr 29 José P. Nesta etapa é formulado o problema que o sistema deve atender.

Emiliano 7 de março de 2013 Slide nr 34 Conceitos básicos Construção Nesta etapa são construídos os componentes que fazem parte da aplicação. Emiliano 7 de março de 2013 Slide nr 35 José P. Emiliano 7 de março de 2013 Slide nr 33 José P.Software as a Service) Contrato de suporte anual (Annual Suport Contract) Assinatura (subscription) Conceitos básicos Projeto Equipe Engenheiro de Software Engenheiro de redes Designer de interfaces José P. etc) o protótipo poderá vir a ser o produto acabado ou a primeira versão de várias. Equipe Programador de interfaces Programador de componentes Programador de BD Analista de teste Equipe Gerente de integração José P. Dependendo da abordagem de desenvolvimento (spiral-model. waterfall.Conceitos básicos Projeto Na fase de projeto é conveniente o levantamento de custos para o orçamento do cliente. O modelo de negociação do produto final pode variar: Venda do código (full licensing ou bits-in-a-box) Venda do serviço (SaaS. Este protótipo tenderá para o modelo da solução visualizada. visando a apresentação de um protótipo que espelhe a solução desejada. Os componentes podem ser novos ou reutilizados de outros projetos Conceitos básicos Integração Na etapa de integração os componentes são reunidos. Emiliano 7 de março de 2013 Slide nr 36 9 .

Em prática. a engenharia de software buscou padronizar procedimentos através de modelos de desenvolvimento. O refinamento do modelo permitirá a sua evolução rumo ao produto final ou à uma versão para uso. Oriundo da engenharia tradicional. José P. construção e manutenção de sistemas. Conceitos básicos Etapas de desenvolvimento de sistemas De modo geral. as etapas para o desenvolvimento de sistemas compreendem um ciclo de atividades de análise. Emiliano 7 de março de 2013 Slide nr 38 Conceitos básicos Evolução Fase que inicia um novo ciclo de desenvolvimento e agrega funcionalidades não previstas para o modelo inicial Segundo esta abordagem. Emiliano 7 de março de 2013 Slide nr 40 10 . o software continua sendo desenvolvido mesmo depois de entregue. Conceitos básicos Testes Participantes Gerente da aplicação Usuário final Patrocinadores José P. Emiliano 7 de março de 2013 Slide nr 39 José P. cada um dos modelos abaixo correspondem à evolução dos ciclos de desenvolvimento. Emiliano 7 de março de 2013 Slide nr 37 José P. quando incorporadas e aceitas darão origem a um novo ciclo de desenvolvimento.Conceitos básicos Testes Nesta etapa o produto é colocado em uso e suas funcionalidades previstas são verificadas. Como subproduto dos testes surgem as correções e novas necessidades*** As novas necessidades.

Codificar Corrigir Projetar Codificar Manter Testar José P. tornandoo próximo do modelo desejado. Incrementa a parte implementada até o ponto desejado pelo usuário (funcionalidades ou performance) Spiral Model – Utiliza ciclos interativos de desenvolvimento. Objetivo: Captar ao máximo os requisitos do sistema Conceitos básicos Modelos evolutivos: Incremental Model – Implementa parte de um modelo total.Modelo empírico. Exemplo: Desenvolver em MSAccess um protótipo a ser implantado em Java ou Delphi.Conceitos básicos Modelos clássicos de ciclo de vida Code and Fix (década de 50 / 60). Emiliano 7 de março de 2013 Slide nr 44 11 . Emiliano 7 de março de 2013 Slide nr 42 Conceitos básicos Modelos clássicos de ciclo de vida Waterfall Model (etapas em cascata) – Envolve módulos do projeto. apenas se pronta e validada a fase anterior. Rapid Application Development (RAD) Model – Múltiplas etapas paralelas em desenvolvimento José P.Test -. passando de uma fase a outra. consistia na codificação voltada para a solução desejada.Code -. envolve todo o projeto. Emiliano 7 de março de 2013 Slide nr 43 José P. Acrescenta fases de projeto (design) e manutenção (maintenance) ao modelo anterior. O protótipo poderá ou não ser o produto final. Prototyping Model – Prototipar sempre.Maintenance (1960s) – Clássico. Emiliano 7 de março de 2013 Slide nr 41 José P. A tecnologia da época limitava a possibilidade de efetuar ajustes imediatamente Conceitos básicos Modelos clássicos de ciclo de vida Design -.

segundo Jacobson (1992) Modelo de requisitos – captura requisitos funcionais Modelo de análise. Emiliano 7 de março de 2013 Slide nr 48 12 . Emiliano 7 de março de 2013 Slide nr 46 Conceitos básicos Modelo em espiral (spiral model) Conceitos básicos Modelos de um software Um único modelo é insuficiente para representar todos os fenômenos existentes em um sistema complexo. Principais modelos. Emiliano 7 de março de 2013 Slide nr 45 José P.dá ao sistema uma estrutura de objetos Modelo de design (projeto)-refinamento para a implementação Modelo de implementação-efetivamente implementa o sistema Modelo de teste.realiza verificações do sistema José P. Emiliano 7 de março de 2013 Slide nr 47 José P.Conceitos básicos Modelo em cascata (waterfall) Conceitos básicos Modelo em cascata (waterfall modificado) José P.

desenvolvedor da linguagem Pascal. cuja manipulação ocorre por conta de métodos implementados por eles próprios. os objetos guardam dados. etc. formando uma estrutura coesa e dinâmica. os dados vem em segundo lugar. A comunicação entre objetos através de mensagens permite que um objeto consulte dados de outro objeto. Fatura. Segundo Niklaus Wirth. Emiliano 7 de março de 2013 Slide nr 52 13 . os algoritmos vem em primeiro lugar de importância. programas são funções da interação de estruturas de dados com algoritmos. Neste contexo. Emiliano 7 de março de 2013 Slide nr 50 Programação estruturada x POO A programação orientada a objetos permite a criação de estruturas de dados que encapsulam funções que os manipula. métodos os tod mé métodos to mé s do métodos to mé s do dados métodos dados métodos dados métodos José P.O projeto UML Diferenciar análise estruturada da abordagem OO Caracterizar a abordagem OO e seus conceitos principais funções funções funções funções Dados globais Atualizado em 7/3/2013 49 José P.Programação estruturada x POO A programação estruturada tradicional consiste em construir estruturas de dados e então manipulá-las através de funções (algoritmos). visando facilitar sua consulta posterior. Item de estoque. Emiliano 7 de março de 2013 Slide nr 51 José P. Segundo ele. Automóvel. servindo para organizar os dados. Exemplo: Aluno. POO prioriza a estrutura de dados em vez das funções que os manipula. Conceitos de POO Objeto Sistemas baseados no paradigma da Orientação a Objetos. ocorrências ou elementos do mundo real Objeto é uma abstração capaz de representar e descrever formalmente elementos reais em um ambiente computacional. empregam este conceito para representar entidades. No conceito de OO. Conta Corrente. Unidade Didática II .

(permite a mudança do atributo valor_pago deste objeto) Possuir métodos capazes de alterar valores de atributos em outros objetos com os quais tenha algum tipo de relacionamento. Podem ser agregados visando adicionar uma desejada funcionalidade a um sistema. com base nos valores das características ou objetos que armazena Os comportamentos ou métodos capazes de atuar sobre estes estados . em dia. valor_pago. fatura não paga. José P. nr_cartao. Emiliano 7 de março de 2013 Slide nr 55 7 de março de 2013 14 . Conceitos de POO Qualquer objeto existente no mundo real pode ser mapeado para o ambiente computacional. estados e são capazes de comunicar entre si . modificandoos A interação deste objeto com demais integrantes do sistema José P. Conceitos de POO Um objeto caracteriza-se por: Possuir métodos (comportamentos) capazes de alterar valores de seus atributos. atuando sobre seus dados. data_vencimento. em atraso.etc. modificar seu estado: Ex: Considere o método : pagarFatura(float valor){ this. valor_total. status.Conceitos de POO Objetos armazenam dados. Emiliano 7 de março de 2013 Slide nr 53 José P. Exemplo: Um objeto computador é composto por diversos componentes eletrônicos (objetos) que o fazem funcionar corretamente. tornando-o mais complexo. data_pagamento. etc. desde que seja possível identificar: As características (aspectos) que definam este objeto Outros objetos que possam vir a compor este objeto Os estados que este objeto possa possuir. } Possuir estados que podem ser modificados em função dos valores dos dados por ele armazenados: Ex: Fatura paga. permitindo. Emiliano 7 de março de 2013 Slide nr 54 Conceitos de POO Um objeto caracteriza-se por: Guardar dados (atributos) que estão relacionados a características que o definem: Ex:[FATURA]=nome. comportamentos.valor_pago=valor. inclusive. Emiliano Slide nr 56 José P.

reusabilidade e confiabilidade. cuja funcionalidade depende das partes (objetos) que o compõem. Emiliano 7 de março de 2013 Slide nr 60 15 . garantindo segurança. Classe Instâncias métodos os tod mé Conceitos de POO Classe Este molde deverá descrever: Os atributos do objeto a ser gerado Os métodos ou funções O grau de visibilidade (encapsulamento) do objeto e de seus componentes internos PessoaFisica (public) Atributos ou Propriedades* os tod mé Auto instancia métodos private String Nome private String Cpf private String Identidade Public Consultar Dados () Public Cadastrar Nome () Public Cadastrar CPF() Public Cadastrar() Public Excluir () dados métodos métodos dados métodos os tod mé dados métodos Métodos José P. com vistas a compor um sistema complexo. métodos métodos to mé Mensagem: qual o nome do aluno? métodos os tod mé métodos to mé s do dados métodos X Não Mensagem: o nome é “Jose” Nome = “jose” métodos do to mé dados s do s métodos métodos os tod mé dados métodos métodos José P. Emiliano 7 de março de 2013 Slide nr 59 José P. O objeto criado é a instância da classe e traz consigo as definições. Emiliano 7 de março de 2013 Slide nr 57 José P.Conceitos de POO Nota: Na POO. Emiliano 7 de março de 2013 Slide nr 58 Conceitos de POO Classe Uma classe é um “molde” capaz de gerar os objetos de um sistema computacional. devem ser implementados métodos capazes de realizar esta consulta. Em vez disso. Permitir agregar-se e ser agregado a outros objetos. atributos e métodos por ela definidos. O processo de criação do objeto chama-se instanciação. não se deve acessar diretamente os valores dos dados de um objeto. Conceitos de POO Um objeto caracteriza-se por: Permitir o encapsulamento (ocultamento) de seus dados e métodos a outros objetos.

As classes com funções específicas podem ser agrupadas em pacotes (bibliotecas) que podem ser reutilizados pelo sistema. José P. O grau de relação entre os objetos depende basicamente dos seguintes fatores: Limitações e restrições das regras de negócio Reaproveitamento de código O momento do objeto em tempo de execução Conceitos de POO Relacionamentos entre objetos Uma aplicação baseada em OO possui os seguintes tipos de objetos. Emiliano 7 de março de 2013 Slide nr 64 16 . A associação pode ser dos tipos: Associação Agregação Composição Herança (generalização) José P. Emiliano 7 de março de 2013 Slide nr 61 José P. Emiliano 7 de março de 2013 Slide nr 62 Conceitos de POO Relacionamentos entre objetos Associações Conhecimento ou Associação (Link) Agregação Composição Conceitos de POO Associação Define o tipo de relacionamento básico que permite a chamada de métodos entre dois objetos do sistema. objetivando atingir funcionalidades desejadas. Emiliano 7 de março de 2013 Slide nr 63 José P.Conceitos de POO Relacionamentos entre objetos Um objeto pode se relacionar com outros objetos. a priori: Objetos do sistema (da aplicação propriamente dita) Objetos do modelo de negócios Cada objeto possui funcionalidade específica e agrega valor ao sistema como um todo.

Classe A José P. ser sua parte principal. Em tempo de execução. o objeto que agrega pode existir sem a existência do objeto agregado. com “fraco” grau de dependência. Pressupõe a existência de um objeto compondo um outro sem. Não deve haver paciente sem prontuário Paciente José P.Conceitos de POO Associação Relacionamento padrão entre objetos. Conceitos de POO Agregação (é parte de) Relacionamento com “médio” grau de dependência de um objeto sobre o outro. no entanto. Um objeto poderá chamar métodos de outro. Emiliano 7 de março de 2013 Classe B Slide nr 65 Curso É permitida a existência de cursos sem alunos José P. Emiliano Prontuário Slide nr 67 José P. Emiliano 7 de março de 2013 Aluno Slide nr 66 Conceitos de POO Composição (composto por) Relacionamento com “forte” grau de dependência onde a existência de uma instância de uma classe deve estar sujeita a existência de outra. Emiliano Slide nr 68 7 de março de 2013 7 de março de 2013 17 . Objetos do mesmo pacote ou de pacotes importados possuem este tipo de relacionamento. por padrão. Conceitos de POO Classes de associação Uma classe que representa a relação entre duas entidades. Há que se observar a conveniência do sistema para a chamada de métodos de um objeto em outro.

Emiliano 7 de março de 2013 Slide nr 69 José P.Utilizado por Java Múltipla (múltiplos pais para um filho) Conceitos de POO Herança José P. Agregação e Composição são as relações principais A Herança provê especialização das classes já implementadas public void contar(){ valor=valor+2. } Revisão A programação estruturada difere da programação OO por possuir funções do sistema acessando dados. public void contar(){ valor=valor+1. } José P. Emiliano 7 de março de 2013 Slide nr 71 José P. Na POO os objetos integram dados e as funções que os acessam. não necessitando a reimplementação de atributos ou métodos. Objetos são representações do mundo real no ambiente computacional As classes são os “moldes” dos objetos Instâncias são objetos criados por classes em tempo de execução Os objetos se relacionam aumentando o grau de complexidade de sistemas Associação. Emiliano 7 de março de 2013 Slide nr 72 18 . A herança visa especializar o objeto-filho em função de características do objeto-pai Tipos de herança: Simples (um pai apenas) . Emiliano 7 de março de 2013 Slide nr 70 Conceitos de POO Polimorfismo (overriding) É a possibilidade de sobreescrever um método definido por uma classe modificando o comportamento de objetos.Conceitos de POO Herança Possibilidade que tem um objeto de herdar as características de outro objeto.

Emiliano 7 de março de 2013 Slide nr 75 José P. particularmente sistemas Orientados a Objetos. Emiliano 7 de março de 2013 Slide nr 74 Conceitos básicos Visões Conceitual UML O que é UML Unified Modelling Language é uma família de notações gráficas utilizadas para a descrição e projeto de sistemas informatizados. Já encontra-se disponível a especificação da versão 2.5.0.Conceitos básicos Um sistema pode ser visto de diversas perspectivas. Emiliano 7 de março de 2013 Slide nr 76 19 . controlado pelo OMG (Object Management Group). a saber: Conceitual Introdução a UML Identificar principais diagramas para o projeto de sistemas OO Independente de linguagem Representa os conceitos no domínio do problema Especificação Foco no software (em especial nas funções a serem implementadas. O UML é um padrão aberto. Especificação Implementação José P. Surgiu da unificação de modelos gráficos préexistentes na década de 80 e 90. A versão normalmente em uso é 1. se for o caso) e dos métodos desejáveis para o sistema. como será visto adiante) Implementação Descrição detalhada dos atributos (com valores de inicialização. Atualizado em 7/3/2013 73 José P.

Visão lógica .8 Booch’93 Outros métodos José P. Emiliano 7 de março de 2013 Slide nr 80 20 . Descreve classes.Mostra como a funcionalidade é implementada dentro do sistema.0 Parceiros da UML UML 0. Visão de concorrência .UML Evolução UML 1.9 & 0. UML 1. É voltada para projetistas e desenvolvedores do sistema.Mostra a organização dos componentes e seu agrupamento em módulos e suas dependências. comunicação e sincronização Visão de desenvolvimento .Como o sistema é percebido por elementos que com ele interagem. objetos e relacionamentos. como concorrência. Emiliano 7 de março de 2013 Slide nr 79 José P. Emiliano 7 de março de 2013 Slide nr 78 UML Diagramas Modelo estático 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 disponíveis:1 Usuários do sistema: Administradores Usuários comuns Modelo dinâmico Colaboração Seqüência Atividade Estados Funcionalidades básicas: Autenticação de usuários Gerência de usuários Gerência de contatos Modelo de implementação Diagrama de componentes Diagrama de Implementação José P.91 Unified Method 0. Emiliano OMT-2 OMT-1 OOSE Fragmentação Booch’91 7 de março de 2013 Slide nr 77 José P.1 Industrialização (Set’97) Padronização (Jan’97) Unificação II (Out’96) Unificação I (Out’95) UML Visões da UML Visão de casos de uso . Visão de componentes .Mostra aspectos dinâmicos do sistema.Mostra o desenvolvimento de um sistema em sua arquitetura física com computadores e sistemas denominados de nós.

Emiliano 7 de março de 2013 Slide nr 82 Diagramas Diagramas de Colaboração Mostra a interação entre os objetos do sistema Cadastro de um objeto instância da classe Contato Diagramas Diagramas de Sequência Use case: Excluir contato José P. Emiliano 7 de março de 2013 Slide nr 84 21 .Diagramas Diagramas de Casos de Uso Diagramas Diagramas de Classe José P. Emiliano 7 de março de 2013 Slide nr 83 José P. Emiliano 7 de março de 2013 Slide nr 81 José P.

Emiliano 7 de março de 2013 Slide nr 85 José P. Emiliano 7 de março de 2013 Slide nr 86 Diagramas Diagramas de Componentes Diagramas Diagramas de Implantação José P.Diagramas Diagramas de Atividade Detalha o ciclo de vida da aplicação Diagramas Diagramas de Estado Objeto: Contato José P. Emiliano 7 de março de 2013 Slide nr 88 22 . Emiliano 7 de março de 2013 Slide nr 87 José P.

1991 Matos. closely follows the UML standard. Dia: a GTK+/GNOME diagramming tool that also supports UML (licensed under the GNU GPL) MonoUML: based on the latest Mono.UML Toolkit – Wiley Computer Publishing.Peter. Penker. Ed Érica. BSD license. Peter – Object-Oriented Analysis.Martin – UML Essencial. Licensed under the GNU GPL. reverse/generates C++/Java/IDL. ArgoUML: a Java-based UML engineering tool. 2002 Fowler.com/jude-web/index.Yourdon.Ferramentas para UML Jude Desenvolvido em Java (requer JRE 1. Very high performances (written in C++. Jans . GTK+ and ExpertCoder. Emiliano Slide nr 92 José P. Magnus .html Versões Community (open) Professional Unidade Didática III . licensed under a modified version of GNU GPL.0 toolbox. Alexandre-UML prático e descomplicado.Ferramentas para UML Identificar ferramentas para elaborar projetos de UML Rational Rose (proprietário) Together Plastic Atualizado em 7/3/2013 89 José P.Martin – UML Distilled Third Edition – Addison Wesley. Bookman. mostly written in Delphi Umbrello UML Modeller: part of KDE UMLet: a Java-based UML tool (licensed under the GNU GPL) Fonte: Wikipedia Referências Fowler.4 ou superior) Disponível em http://jude.change-vision. 2006 Eriksson. Papyrus (software): an open-source UML2 tool based on Eclipse and licensed under the EPL StarUML: a UML/MDA platform for Microsoft Windows. on Qt). 2000 José P. Yourdon Press. Emiliano 7 de março de 2013 Slide nr 90 Ferramentas Open Source Eclipse and EMF template-based system for source-code generation from UML models. Emiliano 7 de março de 2013 Slide nr 91 7 de março de 2013 23 . 1998 Coad. BOUML: multi-platform UML 2.