Professional Documents
Culture Documents
2-Etapa de Concepo/Elaborao
Esta a primeira etapa do processo de desenvolvimento adotado e
corresponde essencialmente a atividades que visem:
-Analisar a viabilidade do projeto.
-Identificar a estrutura e a dinmica da organizao na qual o sistema
vai ser instalado.
-Identificar os problemas da organizao e propor melhorias.
-Levantar requisitos.
-Especificar os requisitos levantados.
Neste curso, detalhamos as atividades relacionadas a especificao de
requisitos. As outras fogem ao escopo deste curso.
autor
Submeter Documento
Figura 2.1- Notao da UML para ator (autor), interao (seta) e caso de uso
(Submeter Documento)
2.1.2-Relaes entre casos de uso
As relaes entre casos de uso podem ser do tipo usa ou estende.
A relao estende (extends) utilizada para indicar que determinado caso de
uso pode ser inserido em outro, estendendo sua descrio. Ambos sero
totalmente independentes, ou seja, funcionalidades adicionais de extenso
podem ser adicionadas sem qualquer alterao no caso de uso estendido, ou
seja, este completo. As situaes em que normalmente se usa a ligao
estende so as seguintes:
-Para modelar variaes com que um caso de uso pode ser executado.
Neste caso, na descrio do use case estendido deve-se colocar referncias aos
casos de uso extensores, no seguinte formato:
<<extend>>
Pesquisar por Ttulo
Pesquisar
<<extend>>
<<extend>>
<<extend>>
Cadastrar
<<include>>
<<include>>
Cadastrar Administradores
<<include>>
Cadastrar Autores
<<include>>
<<include>>
<<include>>
Cadastrar Cursos
Cadastrar Tpicos
Cadastrar Leitores
10
Usurio
leitor
autor
revisor
Administrador
Autenticar
Pesquisar
Usurio
autor
leitor
revisor
Administrador
2.2.1-Definio:Requisitos
11
12
Atores
Usurio
Usurio
Usurio
Usurio
Usurio
Usurio
Autor
Autor
Autor
Revisor
Administrador
Administrador
Administrador
Administrador
Administrador
Administrador
Administrador
Administrador
14
<<extend>>
<<include>>
Pesquisar por Ttulo
Autenticar
Pesquisar
<<extend>>
<<extend>>
Usurio
<<extend>>
Pesquisar por Cdigo RT
leitor
revisor
Administrador
Submeter Documento
Cadastrar
<<include>>
<<include>>
<<include>> <<include>>
<<include>>
Cadastrar Administradores Cadastrar Revisores Cadastrar Autores Cadastrar Cursos Cadastrar Tpicos Cadastrar Leitores
15
Respostas do Sistema
Respostas numeradas do sistema
Resposta do Sistema
Ttulo
2-Se no
documento
houver cadastrado o
ver seo
Cadastrar
Dados Documento
3-Se
no houver registrado os
autores do documento, ver seo
Resposta do Sistema
17
Cadastrar, que se relaciona com o caso de uso Submeter Documentos por meio
de uma relao usa (include-ver diagrama completo e descrio do caso de uso
Cadastrar no prximo item).
Subseo Registrar Autores do Documento
Aes do ator
1-O autor deve inicialmente pesquisar
o nome do(s) autor(es) do documento.
Para tal pode:
1.a.1-Deixar o campo de nome em
branco e solicitar a pesquisa
1.b.1-Digitar o nome do autor ou uma
parte do mesmo e solicitar a pesquisa.
Resposta do Sistema
indicando que aes subseqentes podem ser feitas tantas vezes quantos
forem os autores a serem registrados. Repare tambm na sugesto para
estruturas de deciso nas linhas 1.a.1 e 2.a.1
Seqncia alternativa
Linha 2.1- Autor selecionado j est na lista de autores. Sistema emite
mensagem informando que autor j foi includo.
18
19
3 -Etapa de Concepo-Anlise
Na etapa anterior obtivemos como artefatos principais o diagrama de casos de
uso estendidos e as descries dos casos de uso. Nesta etapa iniciamos o
desenvolvimento incremental, em que cada caso de uso refinado de forma a
produzirem-se descries reais.
3.1-UML Diagramas de Classes e Objetos
3.1.1-Definio
Um objeto um conceito pertinente a um domnio especfico, abstrado na
forma de procedimentos, operaes que so capazes de executar, e atributos
que o caracterizam. As operaes so invocadas atravs de mensagens
trocadas entre objetos, ou seja um objeto colabora com outro executando uma
operao que de sua responsabilidade, que lhe foi solicitada.
Uma classe uma representao de um conjunto de objetos que agregam
caractersticas semelhantes. O diagrama de classes o artefato da UML que
mostra as diversas classes que compem o sistema e, principalmente, as
relaes entre estas. Fornece, portanto, uma viso esttica do sistema sob
modelamento. Os diagramas de classes so produzidos em diversos nveis, num
processo incremental. Os tipos de diagramas seguintes traduzem nveis de
abstrao distintos, que se superpem:
-Diagrama de Classes de Domnio de Problema: traduz abstraes
especficas de classes que so nativamente pertinentes ao domnio no qual o
sistema se insere.
-Diagrama de Classes de Anlise: contm o diagrama anterior e
abstraes e consideraes especficas propostas pelo processo de anlise.
-Diagrama de Classes de Projeto: o diagrama de anlise modificado e
acrescido de abstraes e consideraes especficas propostas pelo processo de
projeto.
O diagrama de objetos, por sua vez, modela instncias de classes contidas em
um diagrama de classes. Portanto, eles denotam o estado de um determinado
diagrama de classes em um ponto determinado no tempo.
Nos itens seguintes apresentaremos a notao que a UML prope para
diagramas de classes e de objetos em seus diversos nveis. Mais adiante,
descreveremos o processo de criao de cada um dos nveis de abstrao
acima citados.
3.1.2-Notao
20
3.1.2.1-Classes e Objetos
Classes e objetos so representados por retngulos contendo um nome
identificador. As particularidades de notao so as seguintes:
-Quando deseja-se representar um objeto sem referncia classe qual
pertence, colocamos seu nome sublinhado dentro do retngulo:
AutorDoc
Figura 3.2: Notao para objeto com referncia classe qual pertence
-Quando deseja-se representar o objeto, no sendo relevante o nome de sua
instncia, representa-se apenas o nome da classe qual pertence, precedido
por um sinal de dois pontos:
:Autor
Figura 3.3: Notao para objeto com omisso do nome de sua instncia.
21
22
3.1.2.2-Associaes
Associaes so, na essncia, relacionamentos estruturais entre classes de
tipos diferentes. Os diversos tipos suportados pela UML esto relacionados nos
subitens a seguir.
3.1.2.2.1-Associaes de ocorrncia
Corresponde a associaes entre classes que descrevem o nmero de
ocorrncias (cardinalidade) de uma em relao a outra. A Figura 3.6 a seguir
mostra algumas cardinalidades comuns a associaes de ocorrncia.
Autor
1..n
Um ou mais
Curso
0..1
Zero ou 1
Topico
1
Exatamente 1
3.1.2.2.2-Associaes todo-parte
Correspondem a relaes entre uma classe (todo) e suas partes constituintes.
Identificamos dois tipos de associaes todo-parte:
23
Caderno
1
1..n
Documento
Figura 3.8- Exemplo de composio: a parte Itens depende do todo Lista para
existir: a eliminao de Lista provoca a eliminao de Itens.
3.1.2.2.3-Associaes mltiplas
So associaes que ocorrem entre trs ou mais classes. Cada instncia deste
tipo de associao uma n-tupla de valores das respectivas classes. Na Figura
3.9, temos sua representao.
Aluno
1..n
1..n
Turma
1..n
Disciplina
24
3.1.2.2.4-Navegabilidade
A navegabilidade entre duas classes define a visibilidade que as respectivas
instncias vo ter entre si. representada por uma seta na associao entre as
classes. A classe na origem tem visibilidade sobre a classe do destino, sem
reciprocidade. Na Figura 3.10, a classe Autor tem visibilidade sobre as
instncias de Curso, ou seja, tem referncias a instncias de curso. Por sua vez,
Curso no tem nenhuma visibilidade sobre instncias de autor.
Autor
Curso
1..n
0..1
3.1.2.2.5-Generalizaes-especializaes
So associaes entre classes que guardam entre si relaes de herana, ou
seja, uma classe pode herdar de outra, atributos e operaes que lhe sejam
visveis (que sejam de nvel de encapsulamento protegido ou pblico). Na
Figura 3.11 temos um exemplo em que 3 classes (Autor, Leitor, Revisor)
herdam caractersticas da classe usurio. Discriminador corresponde a um
nome que se d para a relao de herana dentro do contexto do domnio de
problema. Por exemplo, no contexto da Revista Digital, poderia ser papel.
Restries podem ser alocadas generalizao, colocadas entre chaves, sobre
uma linha pontilhada (ver Figura 3.11). Podem ser dos seguintes tipos:
{Sobreposio} : subclasses podem ocorrer simultaneamente.
{Disjuno}: subclasses so mutuamente exclusivas.
{Completo}: todas as subclasses esto representadas.
{Incompleto}: algumas subclasses foram representadas.
Usuario
Discriminador
--------------------------------------------- {Restrio}
Autor
Leitor
Revisor
25
Janela
TextBox
3.1.2.3-Mecanismos de extenso
Apesar de bastante completa, a UML no capaz de representar todas as
nuances de um ambiente ou modelo em todos os domnios possveis. Por esse
motivo a UML possui os chamados mecanismos de extenso, descritos a seguir.
3.1.2.3.1-Regras de restrio
A UML prov regras de restrio a serem aplicadas a classes e seus
constituintes (atributos e procedimentos).As associaes, atributos e
generalizaes em si j especificam restries, mas nem todas podem ser
expressas por meio de tais estruturas. A UML no define uma sintaxe rgida
para especificar restries, apenas determina que devem ser colocadas entre
chaves({}).
Estas restries podem ser definidas utilizando-se linguagens informal ou
formal, predicados ou fragmentos de cdigo-fonte. Na Figura 3.13 abaixo
temos um exemplo de uso das mesmas. O valor do atributo ComRes sendo 3,
determina a colocao da data de hoje (DATAHOJE) no campo DocDatApr. (No
contexto do sistema Revista Digital corresponde a alocar a data de hoje data
de aprovao do documento, caso ele tenha sido aprovado na ltima reviso).
ComentariosCorrecoes
ComRes
0..n
Documento
DocDatApr
3.1.2.3.2-Esteretipos
O esteretipo uma extenso ao vocabulrio da UML cujo objetivo a criao
de novos blocos de construo a partir dos existentes [BOO99]. A forma mais
comum a utilizada para designar determinada classificao de alto nvel para
objetos ou classes que possuam naturezas ou objetivos afins. Por exemplo,na
abordagem original de Jacobson, objetos so classificados em trs tipos:
objetos de interface, objetos de controle e objetos-entidades. So sugeridas
regras para comunicao entre estes objetos e cada um representado por um
cone diferente. Na UML isto no existe e estes tipos de objetos tornaram-se
esteretipos.
Esteretipos so usualmente mostrados entre os sinais << e >>, como por
exemplo, em <<controle>> (ver Figura 3.14).
<<controle>>
ControleSubmissaoDoc
3.1.2.4-Classificao Mltipla
\
A classificao mltipla refere-se situao em que uma classe me possui
classes derivadas em contextos diferentes. Utiliza-se o discriminador para
designar o contexto em que uma herana especfica est includa. Na Figura
3.16, no contexto do cargo em que ocupa na empresa, Funcionrio pode ser
classificado como Analista, Programador e Gerente. J no contexto do
departamento de recursos humanos, definem-se subclasses para discriminar a
forma na qual a contratao do funcionrio foi efetuada, ou seja, como
Celetista ou Consultor.
27
Celetista
Consultor
Contratao
Funcionario
Cargo
Analista
Programador
Gerente
Cargo
<<dinmica>>
Analista
Programador
Gerente
BasePersistencia
{Abstrata}
AutorBean
CursoBean
28
<<Interface>>
Janela
Caixa
Dilogo
ConnectionHolder
HttpSessionBi
ndingListener
3.1.2.8-Classes Associativas
As classes associativas so derivadas de uma associao.Neste caso, esta
possuir atributos e operaes. Classes associativas ocorrem na situao em
que a associao entre as classes existe no domnio do problema. Na Figura
3.21, existe um relacionamento 0 ou 1 para muitos entre Empresa e Pessoa. No
domnio do problema, esta relao o Emprego da pessoa (classe associativa),
caracterizado pelos atributos Cargo e Salrio.
29
Empresa
Pessoa
0..1
1..n
Emprego
Cargo
Salario
3.1.2.9-Classes Parametrizadas
Uma classe parametrizada um gabarito para criao de classes que seguem
seu formato. Ela declara parmetros padres que permitiro a sua adaptao a
contextos especficos. Na Figura 3.22 temos sua notao.
Par.
NomeClasse
Leitor
30
Caderno
Controle
Interface
Banco de
Dados
32
Incio do
Diagrama
Transio:condio/ao
Submetido esperando
definio de revisores
Aguardando
Reviso
Em reviso
Evento
[ Documento reprovado ]
Reviso Concluda
Reprovado
Alocado
Alocado ao
Caderno
Fim do
Diagrama
33
Objeto Entidade
Documentos.
3.3-Preencher tabela, atribuindo nota
a quesitos de avaliao.
3.4-Registrar resultado da avaliao:
Papis: revisor
35
entidade)
As classes de domnio de problema cujo estado dos objetos deva ser
preservado so classificadas como persistentes (entidade).A maior parte das
classes de domnio de problema certamente ser persistente. Estas classes
encapsulam apenas mtodos para armazenamento e recuperao de
informaes.
36
No nosso exemplo temos que, a partir da descrio estendida dos casos de uso,
identificamos as classes de domnio de problema mostradas na abaixo
.Utilizamos o processo descrito no item 3.3.1.
Topico
Leitor
Caderno
Curso
Autor
Revisor
Documento
Administrador
Download
Revisao
3.5.1-Adicionar associaes
Criam-se associaes para determinar dependncias entre classes, ou seja, a
necessidade que determinada classe tem de conhecimento acerca de instncias
de outras classes do modelo. Por exemplo, a classe Reviso necessita de
conhecimento acerca de instncia da classe Documento, pois uma Reviso
somente tem sentido quando vinculada a um Documento. Um Documento, por
sua vez, pode estar relacionado a mais de uma instncia de Reviso. Portanto,
vislumbra-se desta forma uma associao de dependncia entre Reviso e
Documento. Em nvel de projeto conceitual, adicionamos as seguintes
categorias de associaes(inspirado em [LAR00]):
Categoria
Conhecimento necessrio
Todo e parte
Uso
Dependncia
Comunicao
Descrio
Uma classe necessita conhecer a
ocorrncia de outra.Ex: Autor e
Documento
Uma classe uma parte lgica ou
fsica de outra, est contida em outra
ou ainda, possuda por outra. Ex:
Caderno e Documento
Uma classe utiliza algo de outra.
Ex: Item de Pedido e Produto (Item de
Pedido usa o preo de Produto)
Uma classe depende de outra para
que seu conceito faa sentido.Ex:
Reviso e Documento
Uma classe se comunica com a outra.
37
Objeto-Transao
Inter-transaes
Classe associativa
Documento
1..n
1..n
Categoria
Conhecimento necessrio
Todo e parte
Classe Associativa
Associaes
Autor e Documento, Documento e
Download, Autor e Curso, Curso e
Tpico, Curso e Revisor,Tpico e
Documento
Caderno e Documento
Reviso associa Revisor e Documento
38
Leitor
Caderno
Administrador
0..n
1..n
1..n
Autor
Documento
1..n
1..n
1..n
Topico
0..n
Download
1..n
Revisao
1..n
1
Curso
1..n
Revisor
1
1
0..n
3.5.2-Adicionar atributos
Atributos so caractersticas cujos valores determinam o estado atual de um
objeto, ou seja, identificam uma instncia de uma classe. Em um grande
nmero de situaes, classes possuem um nmero considervel de atributos, e
a tarefa do analista consiste em determinar aqueles que sejam relevantes no
domnio do problema.
Atributos devem ser preferencialmente tipos de dados simples e o que ocorre
na maioria esmagadora das vezes. Quando forem compostos, ou seja, se
dividem em dois ou mais atributos, melhor consider-los como classes
parte.
Atributos no devem ser usados como chave de associao entre classes, ou
seja, como chave estrangeira, tal como acontece em um modelo de dados
relacional, em um diagrama de classes. No prximo item, quando descrevermos
o processo de mapeamento para um modelo de dados, veremos o
aparecimento de tais chaves estrangeiras.
Toda classe deve possuir um atributo que designe a identidade de suas
instncias. Normalmente, tais atributos so cdigos ou nomes. As boas prticas
de modelagem determinam que uma classe deve possuir um nico atributo
identificador, de forma a se diminuir a probabilidade de ocorrncia de
inconsistncias e ambigidades.
Na figura abaixo temos a verso do diagrama de classes do exemplo,acrescido
dos atributos. Repare que no existem chaves estrangeiras no diagrama de
classes. Elas aparecem aps o mapeamento do mesmo para banco de dados.
39
Leitor
LEICOD
LEINOM
LEINOMUSU
LEISEN
LEIEMA
Caderno
CADCOD
CADANOMES
CADTIT
0..n
1..n
Documento
Autor
DOCCODRT
AUTCOD
DOCTIT
1..n AUTNOM
DOCNOMARQ
AUTNOMUSU 1..n 1..n DOCTAMARQ
AUTSEN
DOCDATSUB
AUTEMA
DOCDATAPR
1..n DOCPALCH
1..n
Topico
TOPCOD
TOPNOM
1
1
Curso
CURCOD
1
CURNOM
1..n
Administrador
ADMCOD
ADMNOM
ADMNOMUSU
ADMSEN
ADMEMA
Download
0..n DOWNCOD
1
1..n
Revisor
REVCOD
REVNOM
0..n REVNOMUSU
REVSEN
REVEMA
Revisao
COMCORREVNOM
DOCCODRT
REVCOD
COMDATREV
COM1
COM2
COM3
COM4
COM5
COM6
COM7
COM8
COM9
COMRES
COMCOR
Documentos.
3.3-Preencher tabela, atribuindo nota
a quesitos de avaliao.
3.4-Registrar resultado da avaliao:
43
44
Persistente1
Persistente2
PersistenteN
46
ControleCadastroBase
ControleInterface
ControleCadastroParticular
InterfacePagina
ControleFluxoEventos
Persistente
47
Interface
Base
InterfaceEstruturaComum
InterfacePagina1
InterfacePagina2
InterfacePagina3
...
InterfacePagina21
...
48
Portanto, antes
seguinte[MO95]:
de
criarmos
um
subtipo,
devemos
considerar
CompraaVista
CompraaPrazo
49
3.12.5-Definir pacotes
Uma vez identificadas as classes de anlise, o sistema pode conter um grande
nmero de classes. Para um projeto de tamanho mdio, tipicamente de 30 a
100 classes sero especificadas. Para obter-se uma viso mais clara destes
objetos, pode-se agrup-los nos j apresentados pacotes (ver item 3.2). Este
agrupamento pode ser feito em diversos nveis, ou seja, pacotes podem conter
outros pacotes. Eles empacotam os objetos de forma a reduzir a complexidade.
O nvel mais baixo de um pacote denominado pacote de servio e
considerado uma unidade de modificaes atmica.
A diviso de um sistema em pacotes deve ser a priori baseada na
funcionalidade do mesmo. Todas as classes que tm um acoplamento
funcional mtuo forte devem ser colocados no mesmo pacotes. Deseja-se
tambm um mnimo de comunicao entre os pacotes, de forma a privilegiar o
baixo acoplamento.
Comeamos procurando por pacotes opcionais.Outros pacotes so definidos a
partir da funcionalidade do sistema: todas as classes envolvidas em uma parte
especfica da funcionalidade sero colocadas no mesmo pacote. Para identificar
partes de funcionalidade um bom procedimento remover uma determinada
classe do modelo e verificar se ela e classes relacionadas so ou no
suprfluos. Se forem, constituiro um mesmo pacote. Outros critrios que
podem auxiliar na identificao de pacotes:
-Modificaes em uma classe levam modificaes em outra classe?
-Elas se comunicam com o mesmo ator?
-So dependentes de uma terceira classe, de interface ou entidade?
50
51