professor mário dantas

59
Professor Mário Dantas ANÁLISE ORIENTADA A OBJETOS Ago/2010

Upload: george

Post on 07-Feb-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Análise Orientada a Objetos. Ago/2010. Professor Mário Dantas. Ementa da Disciplina. A UML - Linguagem de Modelagem Unificada História Métodos que originaram a UML Elementos Aplicação Processos Ferramentas de Apoio Engenharia de Requisitos Definição e Etapas. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Professor  Mário Dantas

Professor Mário Dantas

ANÁLISE ORIENTADA A OBJETOSANÁLISE ORIENTADA A OBJETOSAgo/2010

Page 2: Professor  Mário Dantas

Ementa da Disciplina

1. A UML - Linguagem de Modelagem Unificada

História Métodos que originaram a UML Elementos Aplicação Processos Ferramentas de Apoio

2. Engenharia de Requisitos Definição e Etapas

Page 3: Professor  Mário Dantas

Ementa da Disciplina

3. Diagramas: Caso de Uso: Aplicação e Notação Atividade: Aplicação e Notação Classes: Aplicação e Notação Objeto: Uso, Notação Interação - Seqüência: Aplicação e Notação Interação – Interação Geral Estrutura Composta: Uso, Notação e Aplicação Estados: Uso, Notação e Aplicação Demais Diagramas da UML 2.0 e extensões:

Uso, Notação

Page 4: Professor  Mário Dantas

Bibliografia Básica

WAZLAWICK, Raul Sidnei. Análise e Projeto de Sistemas de Informação Orientados a Objetos, Campus, 2004.

RUMBAUGH, James e BLAHA, Michael. Modelagem e projetos baseados em objetos com UML 2. Campus, 2006.

MEDEIROS, Ernani. Desenvolvendo Software com UML 2.0 Definitivo. Makron Books, 2004.

Page 5: Professor  Mário Dantas

Bibliografia Complementar

TAFNER, Malcon A. & Carlos Henrique Correia. Análise Orientada a Objetos. 2 Ed., Visual Books, 2006.

MELO, Ana Cristina. Exercitando Modelagem em UML. Brasport, 2006.

BEZERRA, Eduardo. Princípio de Análise e Projetos de Sistemas com UML. Elsevier - Campus, 2006.

PENDER, Tom. UML: a Bíblia. 1 ed., Campus, 2004.

Page 6: Professor  Mário Dantas

Aula 01 - Agenda

Grandes Verdades Sobre Software Conceitos Fundamentais A UML - Linguagem de Modelagem

Unificada História Métodos que originaram a UML Elementos

Page 7: Professor  Mário Dantas

Histórico

Anos 60 – 70 COBOL, FORTRAN E C Métodos de Análise e Projeto Estruturado

Final dos anos 60 Simula (primeira linguagem a incorporar

elementos de OO) Anos 80 e início dos anos 90

ADA, Smalltalk e C++ Primeiros métodos de OO

Page 8: Professor  Mário Dantas

Histórico

Restante dos anos 90: início da atração por OO Java, UML e Unified Process Proliferação de métodos OO

Método: notação + atividades

Page 9: Professor  Mário Dantas

Métodos OO Precursores

1989 – Wirfs-Brock Cartões CRC ( Classe – Responsabilidade –

Colaborador) 1991 – Coad / Yourdon

OOA e OOD 1991 – Grady Booch

Método BOOCH 1991 – James Rumbaugh

Método OMT (Object Modeling Technique)

Page 10: Professor  Mário Dantas

Métodos OO Precursores

1992 – Ivar Jacobson OBJECTORY OOSE

1994 – Coleman Método Fusion (Mistura de conceitos

presentes nos métodos Booch, OMT, CRC e Métodos Formais).

Page 11: Professor  Mário Dantas

Antes da UML

Vários métodos surgem entre 89 e 94 (“Guerra dos métodos”)

Novas versões dos métodos, incorporando técnicas uns dos outros (OOSE, OMT-2, Booch’93) Reconhecia-se que havia pontos mais fortes

em cada um dos métodos Parceria entre Booch e Rumbaugh

(Rational) –1994 Unified Method (UM)

Page 12: Professor  Mário Dantas

Antes da UML

Rational a incorpora a Objective Systems (Objectory) de Jacobson – 1995 Parceria Booch/Rumbaugh estendida com

Jacobson Unified Modeling Language (UML)

Page 13: Professor  Mário Dantas

Surgimento da UML

UMLBOOCH OMT

OOSE

Diagrama de Estados Diagrama de Objetos (Colaboração) Diagrama de Processo (Desenvolvimento) Diagrama de Módulos (Componentes) Use Case

Subsistemas (Package) Diagrama de Interações MiniEspecificação

Diagrama de Estados Diagrama de Classes

Page 14: Professor  Mário Dantas

Surgimento da UML

Page 15: Professor  Mário Dantas

Mais Contribuições

Page 16: Professor  Mário Dantas

UML

A UML - Unified Modeling Language é uma linguagem para especificação, documentação, visualização e desenvolvimento de sistemas orientados a objetos. Por meio de seus diagramas é possível representar sistemas de softwares sob diversas perspectivas de visualização.

Page 17: Professor  Mário Dantas

UML

A UML é uma linguagem de modelagem não proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos.

Page 18: Professor  Mário Dantas

A modelagem visual com UML

Permite a compreensão de detalhes de sistemas complexos;

Melhora a comunicação entre a equipe de projeto;

Fornece base não ambígua para a implementação;

Permite a formulação de alternativas de solução e sua comparação a baixo custo;

Captura os requisitos de modo preciso.

Page 19: Professor  Mário Dantas

A Estrutura de Conceitos do UML

“Elementos”

Relações (relacionam “elementos”)

Diagramas (agrupam “elementos”)

Page 20: Professor  Mário Dantas

A EC do UML: Elementos

Elementos de Estrutura

Elementos de Comportamento

Elementos de Agrupamento

Elementos de Anotação

Page 21: Professor  Mário Dantas

A EC do UML: Elementos

Elementos de Estrutura

Page 22: Professor  Mário Dantas

A EC do UML: Elementos

Page 23: Professor  Mário Dantas

A EC do UML: Relações

Tipos de Relações

Page 24: Professor  Mário Dantas

A EC do UML: Diagramas

Visão Funcional Diagrama de casos de utilização Diagrama de atividade

Visão Dinâmica Diagrama de máquina de

estados (state machine diagram) Diagrama de interação

Diagrama de sequência Diagrama de comunicação Diagrama de visão geral da

interação (interaction overview diagram)

Diagrama temporal (timing diagram)

Visão Estática ou Estrutural

Diagrama de pacotes Diagrama de classes Diagrama de objetos Diagrama de estrutura

composta (composite structure diagram)

Diagrama de componentes

Diagrama de instalação

Page 25: Professor  Mário Dantas

A EC do UML: Exemplos

Diagrama de Casos de Utilização: representa a visão do sistema na perspectiva dos seus utilizadores (e.g., UAnónimo no contexto do WebGTTI)

Page 26: Professor  Mário Dantas

A EC do UML: Exemplos

Diagrama de Classes: especifica a estrutura estática de um sistema segundo a abordagem baseada em objectos (e.g., classes do WebGTTI)

Page 27: Professor  Mário Dantas

A EC do UML: Exemplos

Diagrama de Sequências: especifica a dinâmica ou o comportamento de um sistema

(e.g., registo de membro no WebGTTI)

Page 28: Professor  Mário Dantas

A EC do UML: Exemplos

Exemplo de um Diagrama de Atividades

(processo de negócio “Fazer Proposta”)

Page 29: Professor  Mário Dantas

A EC do UML: Exemplos

Diagrama de Distribuição

(e.g., arquitectura hardware de um sistema distribuído)

Page 30: Professor  Mário Dantas

A EC do UML: Exemplos

Diagrama de (Transição de) Estados

(e.g., da classe “Termo” do WebGTTI)

Page 31: Professor  Mário Dantas

Aplicação

A UML é uma linguagem para: Visualização Especificação Construção Documentação

A UML fornece um método padrão para descrever um sistema tendo em conta aspectos conceituais e/ou concretos.

Page 32: Professor  Mário Dantas

Visualização

Modelos explícitos facilitam a comunicação

Algumas estruturas transcendem o que pode ser representado por uma linguagem de programação

Cada símbolo tem uma semântica bem definida.

Page 33: Professor  Mário Dantas

Especificação

A notação UML permite a especificação das decisões importantes em nível de análise, projeto, implementação e implantação

Page 34: Professor  Mário Dantas

Construção

Forward engineering Geração de código com base no modelo

Background engineering Geração do modelo com base no código

Round-Trip engineering Ciclo iterativo de desenvolvimento com

geração de código a parir de um modelo e atualização do modelo com base no código.

Page 35: Professor  Mário Dantas

Documentação

A notação UML permite a criação de documentação do artefatos existentes no sistema: Conceitos do problema Cenários de instalação

É possível acrescentar links para documentação externa: Documentos de requisitos, planos de

testes, ...

Page 36: Professor  Mário Dantas

Razões para modelar

Comunicar a estrutura e o comportamento desejado (desejável) para o sistema

Visualizar e controlar a arquitetura do sistema

Compreender o sistema e expor oportunidade de simplificação e reutilização

...

Page 37: Professor  Mário Dantas

Triângulo para o sucesso

Este conceito pertence a Terry Quatrani, autora do livro: Modelagem Visual com Rational Rose 2000 e UML.

Notação

Processo

Ferramenta

Page 38: Professor  Mário Dantas

Triângulo para o sucesso

Segundo Terry, para um projeto bem sucedido é necessário conhecer bem três coisas: Notação, Processo e Ferramenta.

Você pode saber uma notação, mas se não souber usar (Processar), terá falha;

Você pode ter um ótimo processo, mas se não souber comunicar (Notação), terá falha

Se não souber documentar seu trabalho (Ferramenta), terá falha.

Page 39: Professor  Mário Dantas

Processo de Desenvolvimento O que é um processo de desenvolvimento?

É a definição de quem faz o que, quando e como, para atingir um certo alvo.

UML é uma linguagem de modelagem, não é uma metodologia. Não se consegue fazer uma boa modelagem sem conhecer processos.

Linguagem de modelagem + processo de desenvolvimento = método (ou metodologia) de desenvolvimento.

Page 40: Professor  Mário Dantas

Processo de Desenvolvimento As grandes fases de qualquer processo

de desenvolvimento são: Planejamento e elaboração

Planejamento, definição de requisitos, construção de protótipos (opcional)

Construção do sistema (inclui codificação e testes)

Implantação (colocar em produção, treinar usuários, ...)

Page 41: Professor  Mário Dantas

Processo de Desenvolvimento UML não depende de processo. Você

deve escolher o que for adequado ao seu projeto.

Existem diversos modelos, e esse modelos são influenciados por alguns fatores como: Tipo de software que será desenvolvido

(real-time, sistema de informação, etc.) Escala (Um desenvolvedor, equipe

pequena, etc.)

Page 42: Professor  Mário Dantas

Processo em cascata

Page 43: Professor  Mário Dantas

Processo Unificado

O processo unificado (PU) de desenvolvimento de software é o conjunto de atividades necessárias para transformar requisitos do usuário em um sistema de software.

É fundamental na visão de que o avanço de um projeto deve estar baseado na construção de artefatos de software, e não apenas em documentação.

Page 44: Professor  Mário Dantas

Processo Unificado

Principais Características: Dirigido por casos de uso.

Descrições de casos de uso e seus diagramas embasam a construção do software.

Centrado na arquitetura. O documento visão, diagrama de componentes

e implantação, diagrama de interação e diagrama de classes (modelo de dados) fornecem a perspectivas da arquitetura do software.

Interativo e incremental.

Page 45: Professor  Mário Dantas

Fases do Processo Unificado

• Visão do Software

• Tecnologia• Riscos• Áreas críticas

Concepção

• Requisitos em detalhes

Elaboração • Protótipos

• Codificação• Banco de Dados

Construção

• Avaliação do software

• Versão de Produção

Transição

Page 46: Professor  Mário Dantas

Workflows do PU

Requisitos

Análise

ProjetoImplementaçã

o

Testes

Page 47: Professor  Mário Dantas

Processo Unificado

Page 48: Professor  Mário Dantas

Ferramentas

O que são Ferramentas CASE? A sigla CASE significa “Computer-Aided Software Engineering”.

Traduzindo para um bom português: “Engenharia de Software Auxiliada por Computador”.

Page 49: Professor  Mário Dantas

Ferramentas

As ferramentas se dividem em três categorias. São elas:

1. Lower CASE - ferramentas de codificação (front-end);

2. Upper CASE - ferramentas de análise, projeto e implementação;

3. Integrated CASE - união de Upper e Lower CASE.

Page 50: Professor  Mário Dantas

Ferramentas

Como escolher a ferramenta? O primeiro passo é saber qual será o uso

da ferramenta na sua empresa. Isto é, ferramenta para codificação ou ferramenta para análise.

Outro fator importante é que a ferramenta deve ser aderente ao conceitos de trabalho na sua empresa.Como estes conceitos e técnicas evoluem no tempo.

Page 51: Professor  Mário Dantas

Ferramentas

Questões importantes para escolha da ferramenta:1. O time de desenvolvimento está

preparado tecnicamente para trabalhar com ferramentas case?

2. Preciso capacitar os recursos de minha empresa?

3. A metodologia de desenvolvimento em minha empresa está “amadurecida”?

Page 52: Professor  Mário Dantas

Ferramentas

Na prática, as ferramentas existentes no mercado possuem as características das quais destacam-se os seguintes pontos: Desenvolvidas sobre uma arquitetura inteligente

(customizável); Possuem "facilitadores" para auxiliar nas tarefas

repetitivas; Verificação da consistência através de regras

específicas; Geração de relatórios para acompanhamento do

trabalho; Interfaces com outros aplicativos de desenvolvimento.

Page 53: Professor  Mário Dantas

Ferramentas

“Uma ferramenta CASE não é a solução para todos os problemas da organização. A organização deve ter certeza de estar pronta para a nova ferramenta. Desta forma uma ferramenta só deveria ser selecionada após a definição do processo de desenvolvimento, dos métodos e de ter sido utilizada num projeto piloto.” (Reid).

Page 54: Professor  Mário Dantas

Ferramentas

Comerciais e “Free Editions” MagicDraw ($ 1,599,00) Together Architect  ( $ 11.500,00) Poseidon ($ 875,00 ) Enterprise Architect ($ 2.500,00) Rose Technical Developer ($6,880.00) Jude/Astah ($280,00 1usuário/1ano) Omondo Eclipse UML ($

84,900.00 / 20 usuários) Visual Paradigm ($ 699)

Fonte: http://www.objectsbydesign.com/tools/umltools_byPrice.html

Page 55: Professor  Mário Dantas

Ferramentas

Livres (BSD e GPL) Umbrello ArgoUML Dia BOUML Fajuba StarUML

Page 56: Professor  Mário Dantas

Dia é um programa baseado em gtk+ para criação do diagrama, liberado sob a licença GPL.

É parte do projeto Gnome. Atualmente tem objetos especiais de

lógica, entidade e relacionamento, diagramas UML, fluxogramas, diagramas da rede, e circuitos simples entre outros.

Page 57: Professor  Mário Dantas

ArgoUML

ArgoUML é uma ferramenta CASE baseada na notação UML (Unified Modeling Language).

Foi desenvolvido pela comunidade de desenvolvedores de código livre Tigris vinculada a Universidade da California, Berkeley.

Sua interface é bem completa o que a torna um pouco complexa de manipular.

Page 58: Professor  Mário Dantas

Umbrello e um Software de Modelagem UML, que e integrado ao projeto KDE.

Este Software é utilizado para modelar o próprio projeto do KDE por a grande de seus desenvolvedores que utilizam UML.

Page 59: Professor  Mário Dantas

JUDE é uma ferramenta profissional de modelagem para sistemas a qual suporta UML, diagrama entidade relacionamento, Flowchart, CRUD, Mini Mapas e Diagrama de Fluxo de Dados.

Permite também a conversão entre modelos UML, ER Diagramas, Flowcharts, fluxo de dados e mini mapas.

O nome do programa é um acrônimo de Java and UML Developers Environment (Ambiente para Desenvolvedores UML e Java).