Escolar Documentos
Profissional Documentos
Cultura Documentos
Objetivo
tcnicas de
Identificar e explicar quais so as
obteno de requisitos e qual paradigma
de desenvolvimento so mais adequados para um
dado estudo de caso.
Informaes
Ementa
Introduo conceitos de sistemas, tipos de sistemas, Sistemas de informao:
conceito, caractersticas.
Tcnicas de obteno de requisitos.
Paradigmas de desenvolvimento de software.
Modelagem dos requisitos na fase de anlise de acordo com o paradigma de
desenvolvimento utilizado.
Modelagem dos requisitos na fase de projeto de acordo com o paradigma de
desenvolvimento utilizado.
Estudos de caso.
Crditos:: 3T 1P
Crditos
Pr
Pr--requisito recomendado:
recomendado: estar cursando POO
Avaliao - 1
Provas::
Provas
Avaliao - 2
Estudos de caso:
MediaExercicio = Mdia_aritmtica(EC)
Mdia_aritmtica(EC)
EC=estudo de caso, sero considerados apenas 75% dos propostos
em sala.
Entrega via Moodle.
No sero aceitas entregas de estudos de caso no resolvidos
ou fora do prazo.
Os resultados sero utilizados na disciplina de ED1 e POO.
Avaliao - 3
Projeto::
Projeto
Tema: estudo de caso.
Grupos de 5 alunos.
Inserir os nomes dos integrantes no link disponvel no Moodle at
24/03/2014.
Ao final do semestre o grupo dever entregar o documento final do
projeto.
Esteser composto pelos estudos de caso corrigidos.
Cada estudo de caso realizado ter sua correo retornada ao
grupo.
Comoentrega final, os grupos devem corrigir os estudos de caso e
agrup-los formando um projeto.
Avaliao - 4
Projeto:
Projeto:
Entrega Final:
a entrega final do projeto dever ser impressa e composta pelos
estudos de caso realizados e corrigidos;
todos os membros do grupo devem realizar a apresentao do
projeto (dividindo o tempo entre os itens que compem o projeto);
a nota da apresentao individual;
aquele que no realizar a apresentao ficar com nota zero de
apresentao.
MdiaProjeto=
MdiaProjeto= ((NotaDocumento
NotaDocumento + NotaApresentacao(individual))/2
NotaApresentacao(individual))/2
Avaliao - 5
Cronograma
Estudo de Caso e Projeto:
Estudo de caso 1: 31/03/2014 Processo e Requisitos
Estudo de caso 2: 07/04/2014 Caso de Uso
Estudo de caso 3 (Parte 1): 14/04/2014 Diagramas UML
Estudo de caso 3 (Parte 2): 28/04/2014 Diagrama Classe + BCE
Estudo de caso 4: 02/06/2014 Diagrama de Interao
Avaliaes:
P1: 05/05/2014
P2: 09/06/2014 (Aps a prova haver as orientaes sobre a apresentao)
P3: 30/06/2014 (aps as apresentaes)
Bibliografia (1)
Bibliografia Bsica
PRESSMAN, Roger S, Engenharia de Software, McGraw Hill Brasil,
2011. 7 exemplares
BEZERRA, Eduardo, Princpios de Anlise e Projeto de Sistemas com UML,
Editora Campus, 2007.
Pode ser substitudo pelo RUMBAUGH (complementar)
WIERGERS, K. E., Software Requirements, Second Edition, Microsoft
Press, 2003. 6 exemplares
exemplares..
Notas de aula.
Bibliografia (2)
Bibliografia Complementar
LAUDON, Kenneth C; LAUDON, Jane P, Sistemas de Informaes
Gerenciais, Prentice Hall Brasil, 2008. 11 exemplares.
exemplares.
RUMBAUGH, James; BLAHA, Michael, Modelagem e projetos baseado
em objetos, Editora Campus, 2006. 6 exemplares
exemplares..
SOMMERVILLE, Ian. Engenharia de Software. Addison Wesley Brasil.
2007 . 6 exemplares.
exemplares.
Withall, S. Software Requirement Patterns (Best Practices). Microsoft Press.
2007.
Site: Unified Modeling Language. http://www.uml.org/
Apoio
Orientaes Gerais
Introduo
Dado
Fatos em sua forma primria.
Exemplo:
Nome do Empregado
Introduo aos Sistemas da
Informao
Nota do aluno
Nmero de peas do estoque
Introduo
Informao
Conjunto de fatos organizados de modo a torn-los
Dado no Informao e
significativos e teis.
Exemplos:
Informao no
Total de vendas mensais por funcionrio
Lista de clientes ordenados por volume de compra
Media de alunos da disciplina de ES
Conhecimento!
cientfico e tecnolgico
(Laudon, K. C. & Laudon, J. P.) Retirado de Kenneth C. Laudon & Jane P. Laudon. Sistemas de Informao Gerenciais: Administrando a Empresa Digital. 5a
Edio. 2004. Pearson - Prentice-Hall.
Dimenses do SI Objetivos do SI
Aberto
auxiliam na tomada de decises
Interage com o ambiente no usuais. Simulaes.
Fechado usurios: assessores de gerncia
Os SPTs so os maiores
produtores de
informaes requisitadas
pelos outros sistemas.
Retirado de Kenneth
C. Laudon & Jane P.
Laudon. Sistemas de
Informao Gerenciais:
Administrando a
Empresa Digital. 5a
Edio. 2004. Pearson
- Prentice-Hall.
Organizao
uma estrutura social estvel e formal que retira
recursos do ambiente e os processa para produzir
resultados..
resultados
As organizaes podem influenciar o uso e a adoo de
tecnologia de informao:
por meio de decises sobre as configuraes
tcnicas e organizacionais dos sistemas
sistemas;
pelas decises sobre quem ir projetar, montar e
manter a sua infra-estrutura de TI
adoo de outsourcing
outsourcing.
Desenvolvimento de Software
especificao do
Alta demanda no atendida
Software existente de difcil manuteno estgios iniciais de
Causas
sistema at sua manuteno, depois de
Medio
Manuteno
Feedback
(Sommerville e Pressman)
Introduo aos Sistemas de Informao 11 Profa. Dra. Luciana Zaina Introduo aos Sistemas de Informao 12
Modelo Cascata
Modelo Cascata
Definio de
Base para outro modelos
Requisitos
Estrutura rigorosa
Projeto de Sistemas Uma etapa s comea quando a anterior estiver
e Software
totalmente concluda.
Implementao e Inflexvel
Teste de Unidade
No se adapta bem a mudanas de requisitos.
Integrao e Quando usar: Requisitos bem conhecidos
Testes de Sistema
Poucos sistemas possuem requisitos bem definidos
Operao e
Manuteno
Cliente s possui o produto no final
Evolucionrio
Atividades
Simultneas
Modelo Evolucionrio
Descrio do Verses
Desenvolvimento
Escopo Intermedirias
Evolucionrio
Especificao incremental
Ideal para sistemas mdios e pequenos
Problemas
Modelo Incremental
Processo no visvel difcil gerenciar
Sistemas mal estruturados
Muitas mudanas tendem a corromper a estrutura do
software
Incremental Incremental
Pequenos incrementos sistema entregue mais
cedo
Incremento 1 Entrega do Atua como prototipao do software
primeiro
Anlise Projeto Codificao Teste
incremento Risco menor de falha do projeto
Incremento 2 Entrega do
Prioridades mais altas entregues primeiro
segundo
Anlise Projeto Codificao Teste incremento
RAD (Rapid
(Rapid Application Development)
Development) RAD (Rapid
(Rapid Application Development)
Development)
Desenvolvimento em um curto perodo atravs de equipes No indicado a projetos que possuem grandes
trabalhando em paralelo.
riscos tcnicos
Equipe 1 Mudanas rpidas no negcio
Modelagem de
negcios
Modelagem
de dados
Modelagem
de processo
Gerao da
aplicao
Teste e
entrega Software deve se adequar as mudanas rapidamente
Equipe 2
60 a 90 dias
DSBC
(DSBC)
Desenvolvime Validao de
nto e Iterao Sistema
DSBC
Aumento de qualidade
Aumento da produtividade
Diminuio de custo Modelos de Processo
Compromisso com os requisitos so inevitveis
XP (eXtreme
(eXtreme Programming)
eXtreme Programming
Envolvimento do cliente
Entrega incremental
Pessoas, no processo
Aceite a mudanas
Mantenha a simplicidade
Paradigmas de Desenvolvimento
de Software
Fase de Anlise e Projeto
Introduo (1)
O que paradigma de desenvolvimento de software?
Forma pela qual um sistema entendido e construdo.
Cobrir um ciclo de vida
Formado por notaes e regras.
Independente do ciclo de vida.
Possibilitar a utilizao de ferramentas que automatizem
algumas funes.
modelar um sistema de forma que ele
possa ser entendido
Introduo aos Sistemas de Informao 2
Introduo (2)
Benefcios esperados...
Melhoria no relacionamento entre a rea de sistemas e
seus usurios.
Melhor controle de tarefas e recursos em todos os nveis.
Formalizao de tarefas atribudas as diversas pessoas /
equipes envolvidas.
Documentao adequada para iniciar o desenvolvimento.
Representao Grfica.
Introduo (3)
Classificao
Estruturado
OO
Paradigma Estruturado
Paradigma Estruturado
Modelos utilizados
Exemplo - DFD
Sistema de Vendas de CD
Paradigma OO (Orientado a
Objetos)
Introduo - OO
Produo de software mais confivel
proteo aos dados: encapsulamento
UML a forma de
representar um
software em diversos
estgios de
desenvolvimento.
Exemplos
Independente do Paradigma
Sempre existiram as fases de:
Anlise
Projeto
Codificao
Testes
Manuteno
Anlise
Vises de um Software
Modelos de Software
Um modelo pode ser visto como uma representao
idealizada de um sistema que se planeja construir.
Maquetes de edifcios e de avies, plantas de circuitos
eletrnicos, modelagem de predios em autocad, etc
Uso de diagramas.
No contexto de desenvolvimento de software, correspondem a
desenhos grficos que seguem algum padro lgico.
coleo de elementos grficos que possuem um
significado predefinido.
construdos de acordo com regras de notao bem
definidas.
Processo de Software X
Modelagem
O que processo?
Suporte ao Desenvolvimento
Ambientes de desenvolvimento
Tem sido amplamente sofisticados
Ferramentas Case
Muitas vezes ligadas ao ambiente de desenvolvimento.
Ferramentas CASE
Computer-Aided Software Engineering
Ferramentas CASE
Criao de diagramas e manuteno da consistncia
entre os mesmos
Interagir com cdigo-fonte
Engenharia direta
Engenharia reversa
Rastreamento de requisitos
Identificar artefatos produzidos a partir dos requisitos.
Evidncias para implantao e manuteno da
qualidade.
Ferramentas CASE
NO FOMOS CORRETAMENTE
ENTENDIDOS!!!
timo! Bom! Hum! ... um documento com
300 pginas e todos estes grficos, tabelas.
Enfim, vamos analis-lo e voltamos a falar;
REALMENTE, VOCS
NO SABEM O QUE QUEREM!!!
Problemas de
Documento de Requisitos
Requisitos
Negociao de Requisitos
Introduo aos Sistemas de Informao 19 Introduo aos Sistemas de Informao 20
Questionrios Brainstorming
Planejamento:
Construir questes objetivas e concisas. Reunies que permitem que as pessoas explorem idias
Usar a linguagem de quem vai responder o questionrio sempre que Existe um lder cujo papel e fazer com que a sesso comece e
possvel, mantendo as perguntas simples, claras e curtas.
organize a comunicao sem interferir na opinio dos
Ter certeza de que as questes esto tecnicamente adequadas.
outros elementos
A aplicao e compilao dos resultados devem ser planejadas
antecipadamente. Vantagens:
Ordem em que as perguntas devem aparecer especialmente til no comeo do processo de extrao de requisitos
Questes mais importantes devem vir primeiro. evita a tendncia a limitar o problema muito cedo
Dica: questes objetivas de mltipla-escolha devem ter nmero par de
alternativas.
Desvantagem:
Aplicao: por ser um processo relativamente no estruturado, pode no
produzir a mesma qualidade ou nvel de detalhe de outros processos
Quem ir responder.
Onde ser respondido.
Introduo aos Sistemas de Informao 29 Introduo aos Sistemas de Informao 30
Etnografia Reuso de requisitos
uma tcnica de observao.
Reuso envolve considerar requisitos que j foram
Analista se insere no ambiente de trabalho em que o sistema
ser utilizado. desenvolvidos para um sistema e us-los em
O trabalho dirio observado e so anotadas tarefas reais
sistemas diferentes
em que o sistema ser utilizado.
Utilizada para complementar descobertas obtidas por outras O reuso de requisitos economiza tempo e esforo,
esforo
tcnicas. pois requisitos reutilizados j foram analisados e
Vantagem: viso mais completa e perfeitamente ajustada ao validados em outros sistemas
contexto.
Desvantagem
Desvantagem:: tempo gasto e pouca sistematizao do
processo.
Reuso Prototipagem
justamente a capacidade de se aproveitar anlises Um prottipo uma verso inicial de um sistema que poder
anteriores que diferencia um analista experiente de ser usado para experimentao.
um inexperiente Prottipos so teis para elicitao de requisitos porque os
usurios podero experimentar com o sistema e mostrar os
Vantagens: produtividade e qualidade pontes fortes e fracos do sistema, modificando
modificando--o em
Desvantagens: dificuldade de se promover runtime.
runtime
reutilizao sem modificao O desenvolvimento rpido dos prottipos essencial para
que eles fiquem disponveis logo para o processo de
elicitao.
Exemplo
Sistema de uma Vdeo Locadora de pequeno
porte.
Questo 1: que tcnica de extrao de requisitos voc
usaria e por que?
Questo 2: Descreva os 5 requisitos funcionais e 3 no
funcionais.
Caso de Uso
Caso de Uso
Facilita a compreenso do funcionamento do sistema
em um nvel mais alto de abstrao.
descrio de vrias aes para realizao de um
objetivo.
Mostra o comportamento dinmico do sistema.
uma viso da funcionalidade do Sistema sob o
ponto de vista externo.
Descrever a essncia das operaes.
O que
essencial ?
Descrio Essencial
Somente o que fundamental sem detalhes
sobre a implementao.
Exemplo:
Sistema atual: o funcionrio procura a ficha do
cliente no fichrio
Sistema futuro: o funcionrio clica no boto
procurar digitando o cdigo do cliente no campo
cdigo do cliente
Descrio essencial: o funcionrio localiza as
informaes sobre o cliente
Definio
A narrativa do Caso de Uso um texto passo a
passo sobre as aes que o Ator pode tomar e como
o Sistema responder a esta ao.
A narrativa vai ento evoluindo, entre aes do Ator
e as respostas do Sistema, para que o objetivo do
Ator, possa ser alcanado.
No necessrio se preocupar em como o sistema
obteve ou calculou os dados.
Limite-se a escrever o que o sistema responde e no
como ele obtm a resposta.
Nome de um caso de uso deve ser um verbo.
Locar DVD
Um cliente solicita a locao de alguns DVDs. Aps
identificar-se, e identificar os DVDs ele pode lev-
los para casa, ciente do prazo de devoluo e do
valor a ser pago.
Modelo de UC
Modelo UC
Fluxo bsico:
maneira mais comum que o Ator usar para atingir o seu
objetivo;
refere-se a uma tarefa;
deve-se ser especfico na descrio.
Fluxos alternativos:
outros caminhos para atingir o mesmo objetivo;
o objetivo no pode ser alcanado;
tambm denominado de fluxos de excees.
Evitar informaes vagas como:
O cliente seleciona o tipo de cadastramento e informa seus
dados.
Introduo aos Sistemas de Informao 8
Voltar
Fluxo Alternativo
Exemplo
Exerccio
UML e
Orientao a Objetos
Introduo
Na fase de Elicitao de Requisitos captura-se as
intenes e necessidades dos usurios do sistema.
Atravs de um conjunto de tcnicas de elicitao.
Os interesses do cliente devem ser formalizados
para prxima fase.
Para formaliza-los um dos diagramas UML usados pe
o de casos de uso.
UML!!??
Introduo aos Sistemas de Informao 2
UML
Unified Modeling Language (Linguagem de
Modelagem Unificada)
Surgiu no final da dcada de 90 atravs da fuso
de conceitos desenvolvidos por Rumbaugh, Booch
e Jacobson.
um padro internacional amplamente adotado.
Utilizado para modelagem de sistemas orientado a
objetos.
Padronizada pela OMG (Object Management
Group) - http://www.omg.org/
UML
UML ...
uma linguagem visual.
independente de linguagem de programao.
independente de processo de desenvolvimento.
UML no ...
uma linguagem programao (mas possui verses!).
uma tcnica de modelagem.
Um processo de desenvolvimento que utilize a UML como
linguagem de modelagem envolve a criao de diversos
documentos.
Notao UML
Vises: Mostram os diferentes aspectos do sistema,
dando enfoque a ngulos e nveis de abstraes
diferentes
Modelos de Elementos: So os conceitos utilizados
nos diagramas
Mecanismos Gerais: Provm comentrios,
informaes ou semntica sobre os elementos dos
modelos.
Diagramas: So grficos que descrevem o contedo
em uma viso
Vises
Cada viso descrita por um nmero de diagramas
que contm informaes que do nfase aos
aspectos particulares do sistema.
Tipos:
Viso de Casos de Uso
Viso Lgica
Viso de Componentes
Viso de Organizao
Viso de Concorrncia
Diagramas UML
Diagrama de Classes
Viso estrutural: elementos e interligaes.
Antes de definir as classes necessrio entender
alguns conceitos de OO...
ORIENTAO A OBJETOS
Introduo (1)
A OO surgiu na tentativa de solucionar problemas
complexos existentes no desenvolvimento de
software e resolv-los de maneira com baixo custo de
desenvolvimento e manuteno
Representar esses objetos em um software mais
natural e permanente do que representar a sua
funcionalidade (decomposio funcional), pois essa
mutvel.
Introduo (2)
Maior facilidade de manuteno de sistemas
nfase nos dados do sistema que so mais
estveis que os procedimentos;
A ocorrncia de erros ou alteraes vo estar
associadas a um nico mdulo ou a um pequeno
grupo deles (mais fcil depurar e isolar erros).
Maior ndice de aproveitamento de cdigo.
Introduo (3)
Modelagem de classes
Modelo conceitual: primeiro momento.
Modelo de classes: refinamento.
Modelo estrutural esttico
Compreender como o sistema est estruturado
internamente para que as funcionalidades
externamente visveis sejam produzida.
Modelos dinmicos e estticos esto relacionados
entre si.
Cdigo-
Modelo de detalhamento Modelo de fonte Modelo de
classes de classes de classes de
anlise projeto implementao
Conceitos OO - Bsico
Domnio
Classificao
Classe
Informaes sobre o objeto
Atributo
Comportamento
Mtodos, na anlise operaes
Encapsulamento
Visibilidade
Instanciao
Objeto
Paradigma OO
Como determinar
Atributos
+ Operaes quais classes
fazem parte de
um problema ?
Classe
Encapsulamento
Grau de encampsulamento
Visibilidade
Identificao de Classes
Objetos,Responsabilidades e
Colaboradores
realizadas por
Objetos
possuem
Responsabilidades
O que o objeto conhece
+
O que o objeto faz Colaboradores
precisam de
Cartes CRC
Cartes CRC (Classe, Responsabilidade,
Colaborao).
Pessoas envolvidas no processo participaro da
construo.
A responsabilidade de aes a serem realizadas por
um sistema encontram-se em um objeto.
Procurar responder perguntas como:
Quais so os componentes do problema? (Classe)
O que cada um deles deve fazer
(Responsabilidades)?
Como eles trabalham em conjunto (Colaborao)?
Traduo do Carto
Para cada carto, cria-se uma classe.
O nome do carto o nome da classe.
As responsabilidades atribudas a cada carto so
traduzidas em atributos ou operaes:
As responsabilidades associadas ao armazenamento de
uma informao da classe so traduzidas em atributos.
As responsabilidades associadas a aes que a classe
deve executar para o sistema so traduzidas em
operaes.
Havendo colaborao entre duas classes, uma
indicao que pode haver algum tipo de relacionamento
entre classes.
Exemplo
Considere o exemplo da vdeo locadora:
Um cliente solicita a locao de alguns DVDs. Aps
identificar-se, e identificar os DVDs ele pode lev-los para
casa, ciente do prazo de devoluo e do valor a ser pago.
Um filme obrigatoriamente tem pelo menos uma cpia dele.
Para uma locao ocorrer ela deve estar vinculada a uma
cpia.
Identifique as classes candidatas. Para cada classe
candidata monte o carto CRC:
Identifique informaes
Identifique aes
Verifique se existem colaboradores
- Diagrama de Classes-
Classes-
Introduo
A OO Surgiu na tentativa de solucionar problemas
Complexos existentes no desenvolvimento de
Software e resolv-los de maneira com baixo custo de
desenvolvimento e manuteno
Mundo Real formado por objetos que se interagem
Representar esses objetos em um software mais
natural e permanente do que representar a sua
funcionalidade (decomposio funcional), pois essa
mutvel
1
03/04/2012
Definio
um diagrama que representa como as classes que fazem parte da
soluo do problema so definidas e como estas se associam
Define quais so os objetos envolvidos no seu sistema
um modelo esttico, pois no define aes no sistema
Pode mostrar:
Conceitos (classes envolvidas)
Associaes entre conceitos
Atributos de conceitos
Operaes do conceito
Um diagrama de classes criado quando j se tem muito bem
concretizado os requisitos.
2
03/04/2012
Representao
Observaes: Cliente
Classes devem estar no singular e iniciar
Associao
A associao um relacionamento que conecta duas ou mais
classes.
uma associao que permite em tempo de execuo que dois
objetos troquem mensagens entre si.
Durante a execuo do sistema objetos destas classes
podem colaborar para realizar alguma tarefa.
So representadas com uma linha entre os conceitos, indicando
a relao entre eles
Importante:
Deve-se tomar cuidado para no querer detalhar as
associaes.
O mais importante identificar as classes e as principais
associaes entre eles.
Introduo aos Sistemas de Informao 6
3
03/04/2012
Cliente Produto
compra
Cliente Produto
associao
1 consulta 1..*
Cliente Produto
4
03/04/2012
Associaes mltiplas:
1..40
T
1..*
T
5
T Exatamente 5
0..*
T
Associao
Associao no relao de Banco de Dados
Cliente Produto
nome 1 verifica 1..* codigo
end descrio
5
03/04/2012
Classes associativa
Normalmente aparecem quanto h uma associao
de muitos para muitos.
Usada quando necessrio manter informaes
sobre a associao existente.
Visibilidade (1)
Encapsulamento: o agrupamento dos dados e funo relacionados a uma
classe
modularizao
ocultar os dados e os mtodos da classe
acesso atravs de mensagens
segurana
Vantagens do encapsulamento:
conhecer somente o que necessrio para o uso da classe
detalhes de implementao ficam ocultos
manter integridade dos dados
garantir funcionalidade das operaes
Quebra de encapsulamento
6
03/04/2012
Visibilidade (2)
Uso de modificadores:
Publico (public)
Default (sem modificador)
Privado (private)
Semntica da Associao
Corresponde ao significado da associao, a natureza
conceitual que existe entre os objetos que participam
daquela associao.
Relao todo-parte
Um objeto est contido no outro.
Agregao.
Composio.
7
03/04/2012
Estruturas Todo-
Todo-Parte (1)
A agregao um caso particular da associao (somente
associaes binrias duas classes) utilizadas para expressar
um relacionamento todo-parte.
Na agregao, ambas as classes podem viver de forma
independente, ou seja, no existe ligao forte entre as duas.
Objetos da parte ou do da parte todo so independentes em
termos de vida, porm ambas depender do domnio do
problema em estudo.
Conta Corrente Aplicao
* 1
Cliente Cliente
Estruturas Todo-
Todo-Parte (2)
A composio uma variao mais poderosa da agregao.
O relacionamento interpretado como um objeto composto
de partes.
A diferena que a classe parte pertence s e somente
classe todo, em um determinado momento, no podendo
fazer parte de outro relacionamento de composio.
A classe composta responsvel pela criao e destruio
de suas partes. Entende-se assim, que uma vez que a
classe composta deixe de existir, todas as suas partes
morrem juntas.
8
03/04/2012
Exemplo - Composio
Funcionrio
*
Dependente
Herana
Relacionamento de generalizao e especializao.
Relacionamento entre classes.
superclasse
subclasse
9
03/04/2012
Associao reflexiva
Indica que objetos de uma classe se associa com outros
objetos da mesma classe.
Objetos possuem papis distintos na associao.
No diferentes atributos ou comportamentos entre eles, no
caracterizando a herana.
Exemplo
Considere o exemplo da video locadora:
Um cliente solicita a locao de alguns DVDs. Aps
identificar-se, e identificar os DVDs ele pode lev-los para
casa, ciente do prazo de devoluo e do valor a ser pago.
Um filme obrigatoriamente tem pelo menos uma cpia dele.
Para uma locao ocorrer ela deve estar vinculada a uma
cpia.
10
Introduo aos Sistemas de Informao UFSCar - Sorocaba
Caso de Uso
Nome do Caso
ATOR ASSOCIAO
Cadastrar aluno
Cadastrar professor
Listar alunos
Gerente da
escola Listar professores
Calcular mdia
Efetuar Pedido
realiza
Ator: pessoa, um
sistema ou Cliente
entidade externa
(exemplo:
instituio
financeira) Caso de Uso:
atividade em que h
participao do ator
Elementos
Ator: Ator est relacionado a um papel. No contexto
do sistema, papel diz respeito viso dada ao
sistema.
Caso de Uso: representa a funcionalidade.
Associao: Representa a interao do ator com o
caso de uso, ou seja, a comunicao entre atores e
casos de uso, por meio de envio e recebimento de
mensagens.
As associaes entre casos de usos so sempre
binrias, ou seja, envolvem sempre 2 elementos.
Pode ter uma seta indicativa do sentido da leitura.
Exemplo Viso 0
Outro
sistema
Viso 0
Dependncia
Existe alguma
dependncia no
sistema da Locadora?
Exemplo
ud Comprar Produto
Faturar Venda
Efetuar Pedido
Cliente
Entregar Produto
Departamento de
Faturamento
Departamento de
Vendas
Departamento de
Departamento de Estoque
Logistica
Extenso (Extend)
Um relacionamento de extenso entre casos de uso
indica que um deles ter seu procedimento
acrescido, em um ponto de extenso, de outro caso
de uso, indicado como base.
Um caso de uso de extenso muito utilizado para:
Expressar rotinas de exceo ou para expressar o
desmembramento de um caso de uso (quando um
cenrio alternativo possui um fluxo grande que
merea ateno especial).
Separar um trecho do caso de uso que ser
executado apenas em determinadas condies.
Exemplo - Extend
Cadastrar Cliente
Incluso (Include)
Exemplo - Include
Consultar Produto
Exemplo Locadora
Existe alguma
extenso?
Categorizao de Classes e
Padro GRASP
CATEGORIZAO DE
CLASSES
1
14/05/2014
Definio
Esteretipos: mecanismo para estender o significado
de um determinado elemento em um diagrama UML.
Tipos:
Grficos: cone que lembre o significado do
elemento
Textuais: definido por um nome delimitado por
<<e>> e colocado prximo ao elemento.
Categorizao BCE
Proposta por Jacobson.
Categorizao a definio de esteretipos textuais e
grficos para as classes de forma que estes definam
qual a real finalidade da classe dentro do sistema.
Ser trabalhado com a categorizao BCE:
Boundary: objetos de fronteira
Control: objetos de controle
Entity: objetos de entidade
2
14/05/2014
3
14/05/2014
4
14/05/2014
Objetos de Entidade
Conceito encontrado no domnio do problema
Lgica do negcio
Encontrados durante a anlise do domnio
Normalmente participam de vrios casos de uso
Responsabilidades:
Informar valores aos objetos requisitantes
Realizar clculos e impor restries relativas as regras de negcio
Criar e destruir partes de um todo-parte.
Notao UML:
Dicas
Cada objeto existente no sistema especialista em realizar um
dos trs tipos de tarefas: fronteira, controle ou entidade.
Normalmente deve-se:
Adicionar um objeto de fronteira para cada ator do caso de
uso
Adicionar um objeto de controle para cada caso de uso. O
controlador deve coordenar a realizao do processo de
negcio.
5
14/05/2014
Outros Esteretipos
Exemplo
Altere o diagrama da video locadora
categorizando os elementos.
6
14/05/2014
GRASP
General Responsability Assignment Software Patterns
Introduo
UML uma linguagem de modelagem.
modelagem
No um processo ou guia de projeto.
O uso do UML importante para se ter uma linguagem
nica e universal.
No suficiente para o bom desenvolvimento de projetos.
Importante: projeto guiado por responsabilidades.
Padres de Projeto de Anlise.
Anlise
7
14/05/2014
Padres
Padro uma descrio nomeada de um problema e
soluo que pode ser aplicada a novos contextos.
Aconselha como aplicar a soluo em circunstncias
variadas.
Discute prs e contras.
O nome de um padro deve sintetizar seus objetivos.
Um padro s existe se houverem situaes para
reutilizao.
Histria
Os padres foram introduzidos por Cristopher Alexander
que em seu livro descreve padres arquiteturais
(construo civil).
1980: Kent Beck trouxe as ideias de Alexander para o
desenvolvimento de software.
1994: os conceitos de padres foram disseminados a
partir da publicao do livro Design Patterns do Gamma.
Dois tipos bsico de padres:
Padres de anlise: GRASP
GRASP.
Padres de projeto: GoF Gang-of-Four.
8
14/05/2014
Tipos de Padres
Dois tipos bsico de padres:
Padres de anlise: GRASP
GRASP.
Padres de projeto: GoF Gang-of-Four.
GRASP (1)
General Responsability Assignment Software
Patterns.
Descreve princpios fundamentais para a anlise e
atribuio de responsabilidades aos objetos do
sistema.
9
14/05/2014
GRASP (2)
Exemplo
10
14/05/2014
Especialista
Problema:
Qual o princpio mais bsico de atribuio de
responsabilidades em projeto OO?
Em um sistema com centenas de classes, como
selecionamos quais responsabilidades devem estar em
quais classes?
Soluo:
Atribuir a responsabilidade ao especialista.
especialista
O especialista a classe que tem a informao necessria
para satisfazer a responsabilidade.
getTotalPedido ()
11
14/05/2014
getItemPedido ()
Criador
Problema:
Quem deveria ser responsvel pela criao de uma nova instncia
de uma classe?
Soluo:
Atribua classe A a responsabilidade de criar instncias da classe
B se ao menos:
A contm objetos de B
A agrega objetos de B
A registra objetos de B
A usa de maneira muito prxima objetos de B
A tem os dados necessrios para a construo de objetos de B
12
14/05/2014
Criador Exemplo
Problema:
Quem deve ser responsvel por criar em um ItemPedido?
Soluo: ??
Controlador
Problema:
Quem deveria ser responsvel por tratar um evento de sistema?
Os eventos de sistema esto associados s mensagens de
sistema, que so geradas a partir dos passos dos casos de uso.
Soluo:
Os eventos de sistemas devem ser tratados por uma das classes
abaixo:
o tratador de eventos ser um s para o sistema como um
todo.
Representa um dispositivo dentro do qual o software est
rodando.
Representante o caso de uso ou sesso.
13
14/05/2014
UC
14
14/05/2014
Soluo 2:
ControleVenda:
controle geral.
Controle geral
15
14/05/2014
Soluo:
Ligar o controle a Pagamento?
Ligar o controle a Pedido?
16
14/05/2014
Coeso Alta(1)
Coeso: a capacidade de uma classe fornecer componentes
que trabalham em conjunto para fornecer algum comportamento
delimitado.
considerada uma baixa coeso uma nica classe ser
responsvel por muitas coisas em reas funcionais diferentes.
Normalmente uma coeso ruim implica em um mau
acoplamento.
Coeso Alta(2)
Problema:
Como manter a complexidade sob controle?
As classes so difceis de compreender.
As classes so difceis de reutilizar.
As classes so difceis de manter.
As classes so frgeis, sendo afetadas por praticamente todas
as modificaes.
Soluo:
Atribuir responsabilidade de forma que as classes no fiquem
sobrecarregadas, e que as suas atribuies sejam
relacionadas.
17
14/05/2014
Consideraes
18
14/05/2014
Exemplo
19
Introduo aos Sistemas de Informao UFSCar- campus Sorocaba
- Diagrama de Interao-
Introduo
Caso de uso: interao entre ator e sistema,
apresentando como o sistema reage para atingir
determinado objetivo.
Modelo de classes: viso estrutural.
Questo: como os objetos podem colaborar entre
si para realizar um cenrio (caso de uso)?
Diagramas de Interao
Mensagens
Conceito fundamental em um diagrama de interao.
Representa a requisio de um objeto remetente a um objeto
receptor para que este ltimo execute uma operao definida em
sua classe.
O remetente deve enviar informaes suficientes para que a
mensagem possa ser executada pelo receptor.
Tipos de mensagens:
Sncrona: espera que o objeto receptor processe a mensagem
antes de recomear seu processamento.
Assncrona: objeto remetente no espera resposta para
prosseguir.
Retorno: utilizada para especificar o retorno(trmino) de uma
mensagem enviada anteriormente.
Diagrama de Sequncia
Definio
Permitem representar como os objetos interagem uns
com os outros.
Seu foco principal est na sequncia de mensagens,
isto , como mensagens so enviadas e recebidas
por um certo nmero de objetos
Tem uma viso temporal.
Simbologia (1)
O diagrama de sequncia possui dois eixos: o eixo vertical
representa o tempo e o eixo horizontal apresenta um
conjunto de objetos.
Cada um destes objetos representado por um retngulo,
dentro do qual aparece o nome do objeto(ou classe).
Saindo de cada objeto aparece uma linha vertical denominada
linha de vida do objeto, que representa a execuo do objeto
durante uma sequncia (mensagens enviadas e recebidas,
ativao e destruio do objeto etc).
cli:Cliente Varivel de
Cliente Classe :Cliente Instncia Instncia
Simbologia (2)
Linha de Vida: representa a colocao de um objeto em
memria durante a execuo de um cenrio.
Ativao: quando uma mensagem recebida, tem-se
uma ativao, ou seja, inicia-se uma atividade no objeto
receptor.
A ativao denota um foco de controle, ou seja, quais
objetos esto sendo executados em um determinado
tempo
representada por um retngulo que se sobrepe
linha de vida do objeto.
Simbologia (3)
Mensagem: uma mensagem uma comunicao
entre objetos que leva informao com a expectativa
de que uma ao seja tomada
O envio de mensagens representado por setas
cheias e o retorno de mensagens representado
por setas tracejadas
As mensagens podem ser sncronas (ponta da seta
cheia) ou assncrona (ponta da seta sem
preenchimento)
Mensagem
de retorno ativao
Mensagem
assncrona
auto-
chamada
linha de vida
Simbologia (5)
Criao do objeto: momento em que o objeto vai para a
memria. Se for criado no incio da interao deve ser
posicionado no topo do diagrama.
Destruio do objeto: retirado de memria quando no
mais necessrio na interao.
Esteretipo /
mensagem
de criao
Esteretipo /
mensagem /
smbolo de
destruio
Simbologia (7)
rtulos
Simbologia (8)
Diagrama de Colaborao
Definio (1)
Os objetos so distribudos no diagrama de
colaborao na ordem similar a do diagrama de
seqncias, obedecendo a seqncia de mensagens.
A colaborao entre mensagens acompanhada de
uma numerao seqencial e de outras informaes
como condies e iteraes.
Definio (2)
Em virtude da forma como um diagrama de
colaborao apresentado, identificamos a
seqncia temporal das mensagens por meio de
seqncias numricas.
A auto-chamada do diagrama de seqncias
identificado como auto-delegao e, no diagrama de
colaborao, representado como um arco ligado ao
objeto.
Simbologia
EXEMPLO
Exemplo
Considere o cenrio de uma vdeo locadora:
Exerccio
Considere o cenrio de vendas de itens na web:
Fluxo Bsico de Eventos
Aes do Ator Aes do Sistema
1. Cliente seleciona item que 2. Sistema adiciona item ao
deseja adicionar ao carrinho. carrinho.
3. Sistema solicita quantidade do
item desejada.
4. Cliente indica a quantidade 5. Sistema registra a quantidade.
desejada.
6. Sistema chama caso de uso
[Calcular valor total do livro].
7. Sistema apresenta valor total do
livro inserido a partir da quantidade
desejada e do preo unitrio do
mesmo.
Introduo aos Sistemas de Informao 23
Exerccio
Considere o cenrio de vendas de itens na web:
Fluxo Bsico de Eventos
Aes do Ator Aes do Sistema
8. Sistema apresenta a opo de: