Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Ago/2010.

Post on 18-Apr-2015

104 views 0 download

Transcript of Professor Mário Dantas A NÁLISE O RIENTADA A O BJETOS Ago/2010.

Professor Mário Dantas

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

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

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

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.

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.

Aula 01 - Agenda

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

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

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

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

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)

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).

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)

Antes da UML

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

Jacobson Unified Modeling Language (UML)

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

Surgimento da UML

Mais Contribuições

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.

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.

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.

A Estrutura de Conceitos do UML

“Elementos”

Relações (relacionam “elementos”)

Diagramas (agrupam “elementos”)

A EC do UML: Elementos

Elementos de Estrutura

Elementos de Comportamento

Elementos de Agrupamento

Elementos de Anotação

A EC do UML: Elementos

Elementos de Estrutura

A EC do UML: Elementos

A EC do UML: Relações

Tipos de Relações

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

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)

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)

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)

A EC do UML: Exemplos

Exemplo de um Diagrama de Atividades

(processo de negócio “Fazer Proposta”)

A EC do UML: Exemplos

Diagrama de Distribuição

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

A EC do UML: Exemplos

Diagrama de (Transição de) Estados

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

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.

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.

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

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.

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, ...

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

...

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

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.

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.

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, ...)

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.)

Processo em cascata

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.

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.

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

Workflows do PU

Requisitos

Análise

ProjetoImplementaçã

o

Testes

Processo Unificado

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”.

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.

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.

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”?

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.

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).

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

Ferramentas

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

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.

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.

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.

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).