• Nenhum resultado encontrado

Aula02-Introduçao a modelagem de software

N/A
N/A
Protected

Academic year: 2021

Share "Aula02-Introduçao a modelagem de software"

Copied!
50
0
0

Texto

(1)

Modelagem de

Dados

Prof. Jorge Dias

jorge@dcx.ufpb.br

(2)

Por que modelar

software antes de

partir para a

codificação?

(3)

Dinâmica

• Dividir a turma em 2 equipes de especificação

• Equipe 1: Dispensa/aproveitamento de disciplinas • Equipe 2: Revisão de avaliação

• Para cada equipe, definir os seguintes times:

• Time para entender o problema

• Time para especificar os requisitos do sistema • Time para projetar o sistema

• Cada time tem 10 minutos para trabalhar

(4)

Problemas identificados

• Abstração da realidade

• Falta de um método para guiar as atividades de cada time

• Falta de padrão de como documentar os artefatos

• Ociosidade dos times por seguir uma abordagem “cascata”

(5)

Comunicação no

ciclo de vida

Requisitos

Análise

Projeto

Código

Usuários Comunicação Comunicação Comunicação Comunicação

(6)

Comunicação

• O profissional de software passa cerca de 50%

do seu dia se comunicando com pessoas [Lago, 2000]

• Todos do grupo devem ter em mente os

objetivos do trabalho

• Requisitos, produto, arquitetura etc.

• Barreiras:

• Pessoais • Físicas

(7)
(8)

Ok Sobre as

orelhas.

(9)
(10)

Entendendo o problema do cliente...

• Segundo Brooks*, a Engenharia de Requisitos é a parte mais difícil da

construção de um software.

• Nenhuma outra parte do desenvolvimento causa tantos danos se

feita de forma errada.

• Nenhuma outra parte é tão difícil de ser corrigida.

(11)

Objetivos não estavam claros Ignorar um grupo de clientes

Omitir um grupo de requisitos

Permitir inconsistências entre grupos de requisitos

Aceitar um requisito ambíguo e inconsistente

Requisitos e especificações incompletos

Requisitos e especificações instáveis (mudanças)

Aceitar requisito inadequado, incorreto, indefinido, ou impreciso

Fatores de falhas nos projetos

11

(12)

Aspectos econômicos

40% 66% 30% 25% 30% 9% 0% 10% 20% 30% 40% 50% 60% 70%

total erros % total do custo de correção erros % Especificação Projeto

Codificação

(13)

Além disso, o software…

2014.1 UFPB - Engenharia de Requisitos 13

• Está cada vez mais

complexo

• Os riscos são cada vez

maiores

• Os orçamentos são sempre

apertados

• Os prazos são cada vez

menores

• Há uma demanda por

(14)

Tenha em mente que...

• Eles estão satisfeitos quando você:

Atende às expectativas Entrega no prazo

Entrega no orçamento

14

O sucesso do software depende da satisfação do cliente

Tudo começa com Requisitos!!!

(15)

O que são requisitos?

Uma condição ou capacidade necessitada por um usuário para resolver um problema ou alcançar um objetivo

É o que o sistema deve fazer para implementar uma necessidade de

automação requerida pela solução

Desde as necessidades básicas do cliente, premissas e restrições obtidas na

fase de levantamento do projeto até as condições de negócio explicitadas no

contrato com o fornecedor da solução.

(16)

• “Você começa a codificar

enquanto eu vou descobrir o que o cliente quer”;

• Requisitos são fáceis de obter;

• O cliente/usuário sabe o que

quer;

• Quando os requisitos

estiverem congelados ...

(17)
(18)

Modelos

• Um modelo de sistema é uma abstração do sistema em

estudo

• O modelo deve simplificar a realidade, realçando as

características mais importantes Existem diferentes tipos

de modelo, cada um

enfatizando um aspecto

(Ex: interface, arquitetura, BD, etc)

(19)

Análise e Modelos

Vantagens de usar um modelo

• Documentar decisões

• Entender melhor o sistema

• Guiar a implementação e outras disciplinas do ciclo de vida • Ajudar na entrada de novas pessoas

(20)
(21)
(22)

Princípios da Modelagem

A

escolha dos modelos

a serem criados tem profunda

influência sobre a maneira como um determinado problema

é atacado e como uma

solução

é definida

Cada modelo poderá ser expresso em diferentes

níveis de

precisão

Os melhores modelos estão relacionados à

realidade

Geralmente, nenhum modelo único é suficiente

(23)

Linguagem de Modelagem

Linguagem Gráfica de Modelagem para:

• Visualizar

• Especificar

• Construir • Documentar

• Comunicar

Artefatos de sistemas complexos

(24)

Linguagem de Modelagem Unificada

UML não é:

um processo uma metodologia Análise e Projeto OO regras de projeto

(25)

Criadores da UML

• James Rumbaugh - Object Modeling Technique (OMT)

• Grady Booch - Booch Method

(26)

Diagramas

Apresentações gráficas de um conjunto de

elementos, geralmente representadas como

gráficos de vértices (itens) e arcos (relacionamentos)

• Nove tipos:

• classes, objetos, pacotes, casos de uso,

seqüências, colaborações, estados, atividades, componentes e implantação

(27)

Elementos Essenciais

Elementos Estruturais Elementos Comportamentais Elementos de Agrupamento Elementos de Anotação

(28)

• São as partes estáticas de um modelo, representando

elementos que são ou conceituais ou físicos.

• Exemplos:

Elementos Estruturais

ClasseInterfaceUse CasesComponente

(29)

Elementos Comportamentais

São as partes dinâmicas dos modelos da UML. Exemplos:

Interação - especifica um conjunto de mensagens trocadas

entre objetos

Máquina de Estado - especifica seqüências de estados de um

(30)

Elementos de Agrupamento

São partes organizacionais dos modelos da UML. Exemplo:

Pacotes - mecanismo para organização de elementos dentro de

(31)

Elementos de Anotação

São partes explicativas dos modelos da UML. São comentários que você aplica para descrever, iluminar e remarcar elementos no modelo.

Exemplo:

Nota - símbolo contendo restrições ou comentários que são

(32)

Diagrama Use Cases

• São especialmente importantes na organização e modelagem

das principais funcionalidades de um sistema

• Use Case é a especificação de sequências de ações atender a

(33)

Diagrama de Use cases

Estudante

Secretária <<estende>> Solicitar histórico do

semestre atual Solicitar histórico de todos os semestres Solicitar histórico <<estende>> Verificar dependências Matricular aluno <<inclui>> Sistema de controle de pré-requisitos

(34)

Diagrama de Classe

• Os diagramas de classes são os principais diagramas estruturais

da UML

• Diagramas de classe mostram classes, interfaces e seus

relacionamentos

• As classes especificam a estrutura e o comportamento dos

(35)

Diagrama de Classe

+confirmar() +cancelar() -calcularTotal():Currency gerarNovoCodigo: String -codigo: Integer -dataRecebido -total: Currency Pedido #creditoPermitido: Currency #nivelCredibilidade() -nome: String -endereco: String -dataPrimeiraCompra: Date -dataUltimaCompra: Date -totalComprado: Currency Cliente -quantidade: Integer -preco: Currency -emEstoque: Boolean Item de Pedido nomeContato: String telefones[1..10]: String CGC: String FAX[1..3]: String Cliente pessoa-jurídica colocarListaNegra() nome: String CPF: String numCartaoCredito Cliente pessoa-física Empregado Produto * representante de vendas * IPessoa itens 0..* ←faz 1

(36)

Diagrama de Objetos

• Mostram objetos e seus relacionamentos

• Representam instâncias estáticas de elementos dos diagramas

de classes

• Os diagramas de objetos são úteis para a modelagem de

(37)

Diagrama de Objetos

p2: Professor matricula: "205-6712-09"

nome: "Jaelson Castro" p1: Professor codCurso: "IF291" descrição: "MPS" codTurma: I7 : Curso codCurso: "IF185" descrição: "AER" codTurma: I6 : Curso matricula: "219846534" nome: "Nelson Mandella"

:aluno

matricula: "562746134" nome: "John Major"

:aluno : Aluno : Aluno : Aluno : Aluno c1: Curso c2: Curso c3: Curso Bill : Aluno : Aluno Lewinsky -matrícula: String -nome: String Professor -codDisciplina: String -descrição: String -codTurma: String Curso -matrícula: String -nome: String -período: Integer Aluno [0..10] ministra [1..5] * [1..3]

(38)

Diagrama de Seqüência

• Mostra um conjunto de objetos, seus relacionamentos e as

(39)

Diagrama de Seqüência

Janela de entrada

de pedido p: Pedido : ItemPedido :ItemEstoque preparar()

* [para cada item do pedido]

preparar() emEstoque := verificar() [emEstoque] remover() estoqueBaixo := verificEstoqueBaixo() :ItemRenovEstoque :ItemEntrega [estoqueBaixo] <<criar>> [emEstoque] <<criar>>

(40)

Diagrama de Colaboração

• Mostra um conjunto de objetos, seus relacionamentos e as

mensagens que enfatizam a organização dos objetos que trocam mensagens

(41)

Diagrama de Colaboração

Janela de entrada de pedido p: Pedido : ItemPedido :ItemEstoque :ItemRenovEstoque :ItemEntrega 1: preparar()

1.1: *[para cada item do pedido] preparar()

1.1.1 : emEstoque := verif icar() 1.1.2 : [emEstoque] remover() 1.1.2.1: estoqueBaixo := verif icEstoqueBaixo() 1.1.2.2 [estoqueBaixo] <<criar>> 1.1.3 : [emEstoque] <<criar>>

(42)

Diagrama de Estados

• Mostra uma máquina contendo estados, transições, eventos e

atividades

• Estes diagramas são usados para modelar o comportamento de

objetos (com comportamento complexo)

• Nestes diagramas são modelados os estados em que um objeto

pode estar e os eventos que fazem o objeto passar de um estado para outro

(43)

Ocioso Manutenção fazerManutenção Validando Selecionando Processando Imprimindo [continuar] [não continuar] H entry / lerCartão exit / ejetarCartão cartãoInserido cancelar Ativo

Diagrama de Estados

(44)

Diagrama de Atividades

• Destaca a lógica de realização de uma tarefa

• Mostra o fluxo entre atividades (ações não-atômicas)

• É semelhante aos antigos fluxogramas

• É usado também para modelar alternativas de execução e

(45)

Diagrama de Atividades

Procurar bebida

[achou café]

H

Pessoa

H [sem café] [sem Coca] [achou Coca] Pegar lata de Coca Beber Adicionar água à máquina Colocar café no filtro Colocar filtro na máquina Ligar máquina Filtrar café Pegar xícara Colocar café na xícara

(46)

Diagrama de Componentes

• Mostra os componentes de hardware e software de uma aplicação

e os relacionamentos entre eles

• É usado para modelar o aspecto físico de um sistema

• Exemplos de componentes são documentos, executáveis e tabelas

(47)

Diagrama de Componentes

FormCadastro.html Cadastro.exe Principal.html FormEntrada.html Autenticacao.exe <<link>> <<link>> Banco Usuários Senhas

(48)

Diagrama de Implantação

• É usado para modelar a arquitetura de distribuição em que o

sistema será executado

• É composto por nós e relacionamentos de comunicação

• Um nó pode ser um computador, uma rede, um disco rígido,

(49)

Diagramas de Implantação

servidorWeb Autenticação.exe Cadastro.exe servidorDeArquivos FormCadastro.html Principal.html FormEntrada.html servidorBancoDeDados SGBD O SGBD a ser utilizado ainda não foi escolhido. PC - G309

Nestscape Communicator

(50)

Quais dos diagramas vistos

poderíamos ter utilizado no

Referências

Documentos relacionados

Cabe, ainda, mencionar as virtudes que as fotografias têm como desencadeadoras da memória, quando pensamos no passado em busca de informações e significados (SIMSON,

However, should the guarantor use a currency other than the currency designated in the guarantee (the euro in the above example) to obtain the currency of the place of payment for

A análise de resultados revelou que a incorporação de materiais de mudança de fase nos gabinetes, sem nenhum sistema de arrefecimento, resulta na diminuição da temperatura

There is scanty information on the characterization of the microcrystalline cellulose obtained from Musa balbisiana. Hence this study aims to extract and characterize the

Como o espaço físico a Paulista oferece tipos de quadras, lotes, edificações, aberturas para os pedestres e articulação com o sistema de transportes, se colocando como um bom

O Objetivo deste trabalho foi avaliar o desempenho de seis métodos de estimativa da evapotranspiração de referência (ETo), utilizando o método Penman-Montheith

A qualitative post-disaster loss in value indicator LV for a certain damaged cultural heritage property can then be defined as the sum of the damage scores established for each type

Colitis progression was similar between the treated groups and control colitic mice, yet threonine had a surprisingly detrimental effect when administered in the beginning of