análise do sistema
DESCRIPTION
Análise do Sistema. Alexandre Mota ([email protected]). Form. Matrícula. : Estudante. 1: entra id. 2: verifica id. 3: entra semestre atual. 4: cria novo cronograma. 5: processa. Desenvolvendo o Sistema. Sub-sistemas. Documento de Requisitos. Problema. Solução. Modelo dos - PowerPoint PPT PresentationTRANSCRIPT
![Page 2: Análise do Sistema](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/5.jpg)
Classes
<< Estereótipo >>NomeDaClasse
+ atribPub: Tipo = Inicial# atribProt- atribPriv<< constructor>>new()<<query>>getRiscos(o: Cliente)
** pode ser:{persistent}
![Page 6: Análise do Sistema](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/11.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/18.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/19.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/23.jpg)
Janelas Protótipos (desenhos) de janelas
podem ser criados para representar a classe boundary ao usuário
![Page 24: Análise do Sistema](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/26.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813c09550346895da572a8/html5/thumbnails/28.jpg)
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