28
Análise do Sistema Alexandre Mota ([email protected])

Análise do Sistema Alexandre Mota ([email protected])

Embed Size (px)

Citation preview

Page 1: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Análise do Sistema

Alexandre Mota([email protected])

Page 2: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Desenvolvendo o Sistema

Documentode

Requisitos

...

Problema Solução

: EstudanteForm. Matrícula

1: entra id

2: verifica id

3: entra semestre atual4: cria novo cronograma

5: processa

Modelo dosrequisitos

Perspectiva do Usuário

Detalhes eDec. de projeto

Perspectiva do Desenvolvedor

Sub-sistemas

Page 3: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Modelo UML: “Visão 4+1”

Development View

Process View Physical View

Use Cases/Scenarios

Logical View

Class diagrams,Sequence diagrams Component diagrams

Deployment diagrams Deployment diagrams

Use Case diagrams,Sequence diagrams

Funcionalidade

Performance

Configuração

Topologia

Page 4: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Modelo

Para criarmos um modelo do sistema, temos que identificar: Objetos Classes

Atributos Métodos

Associações entre classes Outros relacionamentos entre classes

Page 5: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Classes

<< Estereótipo >>NomeDaClasse

+ atribPub: Tipo = Inicial# atribProt- atribPriv<< constructor>>new()<<query>>getRiscos(o: Cliente)

** pode ser:{persistent}

Page 6: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Semântica das Classes

A descrição da classe deve Focar em seu propósito

(funcionalidade) e não em sua implementação

Na análise, as classes só devem estar relacionadas ao domínio do problemaEssência é “O QUÊ” e não “COMO”Essência é “O QUÊ” e não “COMO”

Análise Projeto

Page 7: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Abordagem 1: Linguagem Para identificar objetos, classes e interfaces,

liste todos os nomes (substantivos), pronomes e frases do seu documento de requisitos/casos de uso

Nomes próprios e frases que indiquem unicidade representam objetos João, ela, minha conta, o elevador 1

Nomes comuns ou no plural indicam classes ou interfaces Clientes, contas, um elevador

Page 8: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Abordagem 1: Linguagem

Para identificar serviços (métodos), atente para os verbos ou frases verbais Clientes podem depositar na poupança

Para identificar atributos, analise as frases que expressam propriedades de objetos/classes Clientes possuem uma senha, ou

A senha do cliente deve ser de no mínimo 8 caracteres

Page 9: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Abordagem 1: Linguagem

Verbos também podem identificar associações entre objetos, classes ou interfaces Uma disciplina tem pelo menos 3 alunos

matriculados Assim como, relacionamentos de

herança, dependência, etc. Uma poupança é um tipo especial de

conta bancária

Page 10: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Infelizmente...

Na documentação informal, existirão nomes que não serão objetos, classes e nem interfaces

Não há um algoritmo que nos permita modelar um sistema da forma perfeita

Tudo depende de experiência e julgamentos corretos na hora de escolher o grau de abstração certo

Page 11: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Utilidade dos casos de uso Casos de uso são mais interessantes que

texto informal pois são mais estruturados e orientados a serviços

Casos de uso naturalmente são vistos como métodos

As intenções de um subconjunto de casos de uso revelam as classes

Demais elementos são obtidos pelos fluxos de ações ou diag. de seqüência

Page 12: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Diagrama de Seqüências

Gerente BDSistemaAbre Conta

Solicita Info Cliente

Info Cliente Fornecida

Solicita Tipo de Conta

Tipo de Conta Fornecida

Solicita Saldo Inicial

Saldo Inicial Fornecido

ConfirmaçãoCria Conta

Page 13: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Abordagem 2: Cartões CRC CRC vem de Class-Responsibility-

Collaboration Um cartão CRC mostra

Nome da classe e descrição Suas responsabilidades

Conhecimento interno (atributos) Seus serviços (métodos)

Os colaboradores das responsabilidades Um colaborador é uma classe cujos serviços são

necessitados por uma responsabilidade

Page 14: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Uma sessão CRC

Grupo de pessoas desenvolvem um cenário

Um cartão é criado para cada objeto no cenário

Cada participante é associado a grupo de cartões A pessoa torna-se a “classe”

Page 15: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Uma sessão CRC

Os cenários definidos são praticados pelos participantes

Os cartões são anotados com as responsabilidades e colaborações

Novos cartões surgem para novos objetos descobertos

Page 16: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Exemplo de CRC

Class Name Catalog

Responsibilities Collaborations

Catalog number

Remove Book

Add Book

Book

Catalog store{{

Atributos

Métodos

Page 17: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

AtualizaçõesClass Name Catalog

Responsibilities Collaborations

Catalog number

Remove Book

Add Book

Book

Catalog store

Diagrama de Classes + Diagrama de Seqüências

{{

Atributos

Métodos

Page 18: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Evolução

Trabalho vai bem se . . . Todas as classes têm nomes

significativos, domínio específico e pequeno conjunto de colaboradores

Não há classes “instáveis” (uma classe que colabora com alguém precisa ser re-definida completamente)

Mudança nos requisitos só envolve classes

Page 19: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Evolução

E mal se . . . Várias classes não têm

responsabilidades Mesma responsabilidade atribuída a

várias classes Todas as classes colaboram com

todas as outras classes

Page 20: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Estereótipos (<< >>)

Um estereótipo representa a classificação de uma classe

Toda classe deve ter apenas um estereótipo

Mais comuns Boundary, Entity, Control, Exception,

Utility

Page 21: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Boundary Classe boundary modela a comunicação

entre a parte interna e externa do sistema

Mais comuns Windows (GUI) Protocolo de comunicação (interface do

sistema) Interface com a impressora Sensores Class Name

<<boundary>>

Page 22: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Boundary Informações entre ator e sistema

devem estar contidas em classe boundary Diagramas de seqüência são

examinados para identificar o conteúdo da classe : Estudante

Form. Matrícula

1: entra id

2: verifica id

3: entra semestre atual

4: cria novo cronograma

5: processa

Form. Matrícula<<boundary>>

Page 23: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Janelas Protótipos (desenhos) de janelas

podem ser criados para representar a classe boundary ao usuário

Page 24: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Interface com outros Sistemas

Classe boundary também pode ser usada para modelar interface com outros sistemas

Suas características são: Informação a ser comunicada com o

outro sistema Protocolo de comunicação usado

nesta transferência

Page 25: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Entidade Classe de entidade modela informação

geralmente “persistente” Valores de seus atributos são

freqüentemente fornecidos por um ator Exemplos seriam

Curso Estudante Professor Conta

Conta<<entity>>

Page 26: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Diagrama de Seqüência

Os diagramas de seqüência são atualizados Classes adicionais são incluídas no

diagrama Objetos no diagrama são associados a

classes

Page 27: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Diagrama Atualizado

John : Student

:Registration Form

:Catalogue :Course :Student Record

:Course Roster

:Schedule :BillingSystem

:Registration Manager

:Schedule Form

1: enter id2: validate id

3: enter current

4: create new 5: display

6: display

7: select course

8: process

16: registration complete

9: create schedule

10: get prerequisite

11: prerequisite taken ?

12: add student (John)

15: registration complete

13: print

14: send to billing system

Page 28: Análise do Sistema Alexandre Mota (acm@cin.ufpe.br)

Bibliografia

Sommerville, I. Software Engineering

Kruchten, P. The Rational Unified Process: An Introduction

Tepfenhart, W. et al. Practical Object-Oriented Development with UML and Java