Escolar Documentos
Profissional Documentos
Cultura Documentos
Msii20061 PDF
Msii20061 PDF
Informaes
Da Anlise de Requisitos ao Modelo de Interface
Incluindo:
Modelagem de Negcios
Modelagem Conceitual de Dados
Casos de Uso
Pontos de Funo
Pedido
Recebido
operador
operador
novela
cadastrar
diretor
cadastrar
novela
diretor
Digitar
Pedido
Pedido
Vendas
diretor
captulo + resumo
autor
cadastrar
ator
ator
aviso de alocao
Pedido
Digitado
captulo
dep.
pessoal
ator
receber
captulo
ator
captulo
captulo
diretor
ator horista
Dados de
Produto
diretor
Vendas
Verificar
Pedido
novela
ator horista
horas
Pedido
novela
diretor
enviar
formulrio
form. ator/horas
diretor
ator
registrar
horas
trabalh.
diretor
ator
XOR
ator horista
ator hor + horas
Pedido
Correto
Solicita
(0,N)
Livro
(1,1)
(1,N)
Estado
Inicial
Receber pedido
Entrega
(1,N)
Cliente
Pedido
Incorreto
Atividades
Processar pedido
Distribuidora
Enviar pedido
Transaes
Estado
Final
Incio
Evento a
Sada 1
Evento c
Sada 2
Evento b
Estado 1
Estado2
Evento d
Fim
Este documento est licenciado sob a Creative Commons Atribuio-Uso NoComercial-No a obras derivadas 2.0 Brasil.
Para ver uma cpia dessa licena visite
http://creativecommons.org/licenses/by-nc-nd/2.0/br/
ou envie uma carta a Creative Commons, 543 Howard Street, 5th Floor, San
Francisco, California, 94105, USA.
Todo o esforo foi feito para fornecer a mais completa e adequada informao.
Contudo, o autor no assume responsabilidade pelos resultados e uso da informao
fornecida.
e-mail de contato: xexeo@ufrj.br
Captulo I. Introduo
Este livro sobre a Modelagem de Sistemas de Informao seguindo uma forma
bastante atualizada da Anlise Essencial, unificada com outros mtodos importantes no dia a
dia do desenvolvedor de software, como o Modelo de Entidades e Relacionamentos.
Ele fruto da experincia de 10 anos ensinando Anlise de Sistemas para graduao,
primeiro na Universidade Estcio de S e depois na Universidade Federal do Rio de Janeiro,
j como professor Adjunto. O texto foi criado, alterado, cortado e aumentado de forma a
atender as necessidades do curso, do mercado e dos alunos. Muito do contedo aqui
apresentado resultado direto de dvidas e dos erros mais comuns que os alunos apresentam
durante o curso. A matria apresentada tambm resultado de 15 anos de atuao como
consultor, envolvido direta ou indiretamente na anlise e implementao de sistemas em
diferentes projetos, sobre temas variados como administrao pblica, gerncia de satlites,
controle de caminhes, etc.
O livro foi construdo com dois propsitos. O primeiro apoiar um primeiro curso de
modelagem de sistemas de informao, fundamentado na anlise essencial, no nvel de
graduao ou extenso, visando formar um analista de sistemas. O segundo fornecer uma
base de sustentao para o analista no seu dia a dia no trabalho. No apresentamos um
mtodo nico de anlise ou especificao de sistemas, mas sim um conjunto de ferramentas
que podem ser usadas tanto em conjunto como em separado, porm baseadas em uma
filosofia comum. Este livro no trata de modelagem orientada a objeto, que normalmente
assunto de um segundo curso de modelagem de sistemas.
Algumas premissas foram importantes na construo do texto. No um texto com
foco terico, mas sim aplicado. Durante os 10 anos em que o curso j foi dado, todas as
provas foram prticas, apresentando problemas para serem analisados e modelados, e com
consulta.
Neste livro, seguindo a anlise essencial, estamos interessados em sistemas de
informao que produzem respostas planejadas, isto , que executam aes prprogramadas em funo de mudanas reconhecveis e previsveis no ambiente externo.
Chamamos essas mudanas no estado do ambiente de eventos essenciais. No estamos
interessados em respostas ad-hoc, isto , respostas que tem que ser praticamente inventadas
caso a caso, mas sim em eventos que podem ser previstos e para os quais podemos programar
respostas em um computador digital.
importante deixar claro que a anlise essencial, unificada com o modelo de
entidades e relacionamento, uma ferramenta de grande qualidade para o desenvolvimento
de sistemas de informao.
Quando um cliente solicita um sistema de informao, pensa em automao de algum
processo, na modernizao de um processo j automatizado ou na criao de um novo
processo em sua empresa. O cliente ento imagina um sistema que executa algumas funes,
gerencia alguns dados e fornece alguns relatrios. Esse sistema imaginado pelo cliente,
porm, raramente descreve de forma clara o que ele realmente precisa, ou que precisar no
dia que o sistema ficar pronto. Cabe ao analista ajudar ao cliente a descobrir como o sistema
realmente necessrio.
O segundo captulo faz uma pequena introduo aos Sistemas de Informao,
principalmente aqueles que encontramos dentro de organizaes. O terceiro captulo discute o
desenvolvimento de software. Ambos os captulos so introdutrios e tm como finalidade
4
nivelar conhecimento, sendo que o ideal que o aluno envolvido nesse estudo tenha feito
antes desse curso cadeiras equivalentes a Sistemas de Informao e Introduo a Engenharia
de Software.
O quarto captulo discute o levantamento de requisitos do sistema. Apresenta ao leitor
dois conceitos importantes: o stakeholder, palavra que significa aquele que tem algum
interesse (aposta), e que traduzimos de forma liberal para interessado, e uma classificao de
tipos de requisitos de um sistema, onde se sobressaem os requisitos funcionais e no
funcionais. O captulo tambm apresenta uma leve introduo a mtodos de elicitao de
requisitos, discutindo os mtodos tradicionais e mais comuns, a entrevista e o JAD,
detalhadamente.
O quinto captulo apresenta a proposta inicial. O objetivo permitir ao desenvolvedor
compreender de forma geral o que ser feito no projeto de desenvolvimento, dando margem
para a criao de uma proposta comercial. Nesse captulo ainda tratamos o desenvolvimento
de sistemas como uma atividade informal, a nvel de negcios.
O sexto captulo trata da modelagem de negcios, partindo de modelos de alto grau de
abstrao, como o IDEF0, para modelos detalhados do comportamento da organizao, como
EPC e regras de negcio. Esses mtodos podem substituir na sua totalidade o uso de DFDs
para modelar a encarnao de um sistema, sendo na prtica mais adequados para o
mapeamento do funcionamento real de uma organizao.
O stimo captulo trata da modelagem conceitual de dados, baseado no modelo de
entidades e relacionamentos, necessidade primordial para uma boa anlise de sistemas. O
oitavo captulo trata da modelagem funcional essencial. Juntos, esses dois modelos definem o
funcionamento esperado do novo sistema.
Esta edio apresenta a primeira verso de um captulo sobre Casos de Uso (o nono).
Casos de Uso so provavelmente a forma mais indicada, hoje em dia, para levantar requisitos
funcionais de uma aplicao. Porm, o conhecimento da Anlise Essencial ainda me parece
importante para poder trabalhar com Casos de Uso, que so mais informais. Por outro lado, j
h alguns anos no vejo projetos usando DFDs, e resolvi definitivamente relega-los a um
apndice.
Esses modelos so completados com um modelo da interface do sistema,
preferivelmente na forma de um prottipo, que discutido no capitulo dez.
Finalmente o captulo onze trata de formas de prever o esforo necessrio para
desenvolver um sistema de software, usando como fator de determinao os documentos
previamente gerados.
Alm disso, apresentamos ao final alguns projetos para os alunos usarem nos
exerccios.
Recomenda-se que os captulos sejam apresentados na ordem em que esto no livro.
Os captulos de anlise funcional e modelagem de dados j foram dados em diferentes
ordens, tanto um quanto o outro na frente, porm a anlise de dados independente da anlise
funcional e o inverso no verdade, o que recomenda que seja a ordem adotada. Alm disso,
a modelagem de dados pode ser vista como uma forma de detalhar, a nvel do sistema, as
regras de negcio, o que apresenta uma continuidade ao curso. O livro suporta bem um
perodo de 15 semanas, com 4 horas por semana, incluindo aulas tericas e exerccios, duas
provas e um trabalho por equipe que tem em mdia 15 eventos e 10 entidades, e que deve
modelar de forma completa um sistema, de acordo com todo material apresentado.
comrcio Muitas das tcnicas deste livro podem, e devem, ser aplicadas para entender
sistemas de informao manuais.
Este captulo apresenta uma breve descrio de como funciona, para que servem e
quem usa os sistemas de informao dentro de uma organizao.
portuguesa, podendo ser usada no dia a dia como sinnimo de informao. Em informtica,
porm, normalmente chamamos de conhecimento algo que pode ser escrito na forma de
regras (como em se for maior de 18 anos, ento pode tirar carteira de motorista).
Alm disso, ainda podemos analisar as palavras compreenso (ou entendimento) e
sabedoria. A compreenso permite responder a pergunta por que, enquanto a sabedoria
um processo complexo e pessoal de compreenso e avaliao do entendimento, que no pode
ser compartilhado [B1].
Bellinger et. al. .[B2] afirmam que com o aumento da compreenso e da capacidade
de fazer conexes entre partes (dados, informaes, etc.), passamos do trabalho direto com o
dado em si para informao, ento para o conhecimento e finalmente para a sabedoria.
10
Estratgico
Gerencial
Conhecimento
Operacional
Figura 2. Nveis dos sistemas de informao dentro de uma organizao
12
13
Benefcios do Sistema
Vrios motivos podem ser analisados como benefcios esperados de um projeto. Um
deles modernizao de um sistema. Com o tempo a tecnologia de um sistema vai se
tornando superada. Isso faz com que o risco e o custo de manter o sistema funcionando
naquela tecnologia aumentem, aumentando gradativamente o interesse de se transportar o
sistema para uma nova plataforma. Simultaneamente, novas tecnologias apresentam novas
oportunidades, como desempenho superior ou facilidade de aprendizado, aumentando
tambm com o tempo o interesse nessa atualizao. Chega um momento ento que passa a
valer a pena o investimento em modernizao.
Outro motivo importante a mudana de premissas bsicas do negcio, causada pela
atuao da firma no mercado. Essas mudanas tanto podem de dentro da empresa quanto
podem ser provocadas por mudanas na legislao ou por ao dos concorrentes. Por
exemplo, h alguns anos atrs, no Brasil, foram feitas vrias modificaes nos sistemas
financeiros das empresas para aceitar a mudana de moedas e o convvio com moedas
diferentes simultaneamente. Em outro exemplo, com a inveno e grande aceitao dos
sistemas de premiao por viagens ou por milhas, as companhias areas tiveram que
desenvolver sistemas especficos, interagindo com seus sistemas de passagens, para tratar do
assunto. Muito comum tambm a mudana de uma atividade da empresa, seja por um
processo contnuo, como o de qualidade total, quanto por processos radicais como os de
reengenharia e downsizing.
Os sistemas de informao tambm so importantes por oferecerem as empresas uma
capacidade maior de competio. Com a informao correta e com os processos corretos de
tratamento da informao uma empresa pode ter um diferencial de qualidade no mercado. Por
outro lado, se todo um mercado j adotou um tipo de sistema, ou se pelo menos um
concorrente j o fez, a empresa que no tem um sistema equivalente fica prejudicada na
competio. Esse tipo de efeito foi visto quando as companhias areas passaram a vender
passagens via Internet. No incio era mais uma propaganda, depois passou a ser um
diferencial positivo. Atualmente todas as companhias areas possuem formas de vender
passagens diretamente via Internet.
Hoje em dia um grande motivador de novos projetos e a busca por melhor tratamento
da informao que j existe em sistemas de tipo operacional, como a criao de Sistemas
Suporte Executivo.
II.5 Exerccios
1)
Escolha um tipo de negcio de pequeno porte, como uma agncia de viagens, e descubra
(ou imagine) quais os principais sistemas de informao que ela necessita ou pode usar.
2)
3)
4)
Imagine que esse negcio se torna um grande negcio, por exemplo, uma grande cadeia
de agncias de viagens, e descubra (ou imagine) que novos sistemas podem ser
necessrios.
5)
Que sistemas de informao fazem parte de seu dia a dia? Que papel voc assume ao
utilizar esses sistemas?
6)
Que sistemas de informao voc pode se lembrar que contm informaes importantes
sobre sua vida pessoal ou profissional?
14
7)
Imagine uma empresa de plano de sade que possui um sistema de nvel operacional que
registra e permite a aprovao pela pessoa responsvel de exames e consultas. Que
sistemas de informao de outros nveis podem ser feitos para utilizar essa informao?
Que outros sistemas de informao podem fornecer informao para o sistema de
aprovao?
8)
9)
Muitas lojas no Rio de Janeiro ainda utilizam sistemas de informao feitos em MS-DOS.
Faa uma anlise dos custos e benefcios para mudar um sistema desse tipo para
Windows ou de mant-lo como est. Qual a melhor opo atualmente? Qual a melhor
opo nos prximos 2, 5 e 10 anos?
10)
11)
12)
Uma empresa precisa comprar uma impressora nova. Existem duas opes interessantes
no mercado, como descritas na tabela abaixo. Qual impressora comprar se a empresa
prev fazer 30.000 impresses com a impressora. E se forem 100.000? E se forem
146.668? E se forem 500.000?
Caracterstica
Impressora A
Impressora B
R$ 300,00
R$ 5.000,00
R$ 80,00
R$ 250,00
1.000
5.000
120.000
800.000
Nmero
cartucho
de
cpias
por
15
17
Atividades de Projeto, cuja finalidade descobrir como o software deve ser feito.
18
III.1 Anlise
Por anlise entendemos a tarefa de levantar e descrever os requisitos de um sistema,
definindo de que forma deve funcionar para atender as expectativas de todos que nele
possuem algum interesse. Normalmente se diz que a anlise define o que o sistema deve
fazer sem especificar como far. Durante a anlise devem ser explicitadas que tarefas o
sistema deve executar e que dados deve manter em memria. Para isso, criamos um ou mais
modelos do sistema, descrevendo-o com diferentes perspectivas e graus de detalhe.
a partir da anlise de desenvolvemos um sistema. Ela , simultaneamente, um
acordo entre os desenvolvedores e seus clientes e um mecanismo de comunicao entre os
desenvolvedores. Em ambos os casos, a anlise define que servios devem ser fornecidos
pelo sistema a ser implementado e, por conseqncia, que servios no esto no escopo do
sistema.
Segundo Pressman [B5], todos os mtodos de anlise devem ser capazes de suportar
cinco atividades:
Dessa definio, possvel deduzir que para a anlise de um sistema ser til e de
qualidade, no basta entender o que deve ser feito, mas tambm desenvolver uma
representao que permita documentar e comunicar essa informao.
III.1.1
Modelos de Anlise
Vrios autores fizeram propostas de modelos para descrever a anlise de sistemas.
Dentro do conceito de anlise, apresentaremos os seguintes modelos:
Modelo de Negcio, que descrevem como funciona o negcio onde o sistema est
inserido.
Modelo de Dados, que descreve os dados guardados pela memria do sistema, na forma
de um Modelo Conceitual e segundo o mtodo de entidades e relacionamentos.
Ferramentas da Anlise
A maior parte do trabalho de anlise feita da comunicao entre pessoas. Muito
dessa comunicao feita na linguagem natal dessas pessoas, como o portugus. Um grande
problema dessa comunicao que lnguas como o Portugus e o Ingls permitem a
construo de sentenas ambguas.
interpretao possvel (ou mais provvel). Para isso foram criadas vrias linguagens, algumas
grficas, que tem o poder de restringir as interpretaes possveis do que queremos dizer.
Veremos no decorrer desse livro uma viso geral de algumas dessas linguagens.
III.1.3
A Tecnologia
A grande maioria dos autores advoga que no devemos levar em conta a tecnologia
que a ser empregada no desenvolvimento durante a anlise de sistemas. A anlise deve se
preocupar com o o que fazer e nunca com o como fazer.
O Analista de Sistemas
O Analista de Sistemas o responsvel por levantar os requisitos do sistema e
transform-los em uma especificao do que deve ser feito, i.e., a Anlise do Sistema. Para
isso, assume vrios papis [B4]: reprter, detetive, consultor, diagnosticador, investigador,
organizador, solucionador de problemas, avaliador, simplificador, artista, escultor, arquiteto,
auditor, especialista de organizao e mtodos, especialista do domnio da aplicao, gerente,
etc. O porqu dessa longa relao de papis o fato de o analista realmente ter que assumilos ao longo do processo. Ele entrevista pessoas em busca de fatos e detalhes, descobre fatos
escondidos (intencionalmente ou no), muitas vezes por meio de inferncias ou pistas
encontradas, prope solues mais adequadas para problemas atuais e futuros, a partir de
diagnsticos, planeja sistemas abstratos a partir de diagramas, e ainda muitas outras
atividades.
Ou seja, essas decises, muitas vezes tomadas antes de se iniciar a anlise de um sistema, devem influenciar apenas a
forma de funcionamento, no a razo desse funcionamento.
20
Processos Fundamentais
Processos de Apoio
Aquisio
Documentao
Fornecimento
Gerncia de Configurao
Garantia de Qualidade
Operao
Verificao
Reviso Conjunta
Manuteno
Auditoria
Adaptao
Validao
Desenvolvimento
Soluo de Problemas
Processos Organizacionais
Infraestrutura
Treinamento
Gerncia
Melhoria
III.2.1
Para garantir que o sistema faz o que o usurio deseja, utilizamos duas tcnicas: a
verificao e a validao. Verificar significa analisar se o produto de uma fase do processo de
desenvolvimento est de acordo com sua especificao. Validar significa analisar se o
produto de uma fase do processo de desenvolvimento est de acordo com as expectativas do
cliente.
Precisamos ter claro em nossa mente a diferena entre as duas atividades. Quando
transformamos um algoritmo em portugus para pascal, por exemplo, podemos fazer isso de
forma perfeita e, ao mesmo tempo, fazer algo que o cliente no deseja. Quando validamos um
programa com o cliente e o aprovamos, no necessariamente o que fizemos foi o que estava
escrito na especificao do programa.
A tarefa mais importante, na verdade, a validao, j que devemos atender o cliente.
A validao, porm, geralmente mais informal e mais custosa que a verificao. Assim,
verificando que cada passo dado durante o processo de desenvolvimento esta conforme o
passo anterior previu podemos economizar na validao.
21
III.2.2
III.2.2.1 Processo
em Cascata
Tambm conhecido como Linear Seqencial. Nesse processo, assumimos que as
atividades de anlise, projeto e implementao podem ser feitas de forma seqencial, sem que
sejam necessrias interaes entre as fases.
Um processo em cascata tpico contaria com as seguintes fases:
1. Modelagem do Sistema, onde so estabelecidos os requisitos do sistema do
qual o software sendo realizado participa, incluindo os requisitos de informao e de
negcios.
2. Anlise de Requisitos, onde so modelados os requisitos de informao,
funcionais, comportamentais, de desempenho e de interface do software..
3. Projeto, onde so planejadas as estruturas de dados, a arquitetura do sistema e
o comportamento mapeado em procedimentos.
4. Codificao, onde o projeto transformado em uma linguagem inteligvel
pelo computador.
5.
6.
Anlise
Projeto
Codificao
Testes
Prototipagem
No processo de Prototipagem (pura) o desenvolvedor interage diretamente com o
usurio, escutando seus pedidos e desenvolvendo, imediatamente, um prottipo do produto
desejado. O usurio, ento, utiliza esse prottipo e fornece ao desenvolvedor novas
22
Escutar
o
Cliente
Processos Evolucionrios
Os modelos de processo evolucionrios reconhecem que sistemas complexos se
alteram com o tempo, usando a iterao do ciclo de desenvolvimento para acompanhar a
evoluo do sistema.
III.2.2.1.1
Processo Incremental
Pode ser visto como combinando o linear com a prototipagem. Tem o foco principal
na entrega do produto. Para realiz-lo, repetimos a seqncia linear em vrios calendrios
defasados no tempo. Busca implementar funcionalidades essenciais o mais cedo possvel.
23
Anlise
Projeto
Anlise
Codificao
Testes
Projeto
Anlise
Codificao
Testes
Anlise
Projeto
Codificao
Projeto
Codificao
Testes
Tempo
Testes
III.2.2.2 Processo
Espiral
O Processo Espiral se caracteriza pelo desenvolvimento por uma srie de produtos
desenvolvidos em seqncia, cada vez mais complexos e mais prximos do produto final
desejado. Ele se diferencia do Processo incremental porque os produtos de cada ciclo no so
subsistemas do sistema original, mas sim produtos especficos que atendem necessidades
especficas do projeto, como por exemplo, teste de viabilidade e definio da interface
com o usurio.
Avaliao
Comunicaao com
o Cliente
Planejamento
Construo
Engenharia
Anlise de
Riscos
III.2.2.3 Processo
Win-Win
O Processo Todos Ganham - Espiral (Win-Win Spiral) a unificao de dois
trabalhos distintos de Barry Boehm. No primeiro, o Processo espiral, ele prope que um
processo de software seja feito de acordo com um ciclo de especificaes cada vez mais
detalhadas que resultam em verses incrementais das capacidades operacionais desejadas.
Cada ciclo envolve a elaborao dos objetivos, restries e alternativas do produto, a
avaliao das alternativas e riscos, a elaborao da definio do produto e do processo e o
24
planejamento do prximo ciclo. No segundo, a Teoria-W, ele prope que todas as decises
tomadas em um processo gerencial devem gerar uma situao de todos ganham4.
As fases para esse Processo so
Identificar X
III.2.2.4 Desenvolvimento
Acelerado
Devido a grande presso pela produtividade que as empresas sofrem no processo de
desenvolvimento de software, constantemente so propostas novas tcnicas com a finalidade
de acelerar o processo de desenvolvimento. Entre elas podemos citar a prpria prototipagem,
Rapid Application Development (RAD), Adaptative Programming, Extreme Programming e
toda uma gama de processos geis.
Em contrapartida com o caso normal, onde um ganha e os outros perdem, ou, ainda pior, com os casos onde a
deciso tomada vista como uma situao onde todos perdem.
25
Em uma equipe com organizao democrtica, todos podem se comunicar com todos.
Esse tipo de equipe razovel para projetos pequenos, com equipes de at 5 ou 6 pessoas,
onde a comunicao incentivar a descoberta. Normalmente essas equipes so encontradas
em universidades e no desenvolvimento de pequenos projetos de alta tecnologia (um web
site, por exemplo).
A forma mais tradicional de organizar uma equipe a forma hierrquica, baseada nas
teorias clssicas de administrao (que por sua vez, so baseadas na forma de organizao do
Exrcito e da Igreja).
26
Secretria
Chefe
Administrador
Senior
Bibliotecria
Junior
Figura 12. Equipes do tipo programador chefe se baseiam na capacidade
do programador chefe
Os mtodos mais modernos, como RUP e XP, falam de papis necessrios nno
processo. Papis tpicos do RUP so Analista de Sistema, Arquiteto, Especificador de
Use-Case e Projetista de Interface com o Usurio, Engenheiro de Casos de Uso e
Engenheiro de Componentes. J os papis do XP so: o comprador ou GoldOwner, o
cliente ou GoalDonor, o gerente, o testador, o programador, o monitor ou tracker e o
treinador ou coach. Em ambos os casos, papis diferentes podem ser assumidos pela
mesma pessoa. importante notar que no caso do XP os dois primeiros papis so do cliente.
27
Existem muitas outras formas de organizar equipes. Cada tipo de produto exige um
tipo especial de equipe. Afinal, no desenvolveramos um software para controle de vo de
um avio com o mesmo tipo de equipe para o qual desenvolvemos um software para controle
de uma biblioteca.
III.4 Exerccios
13) Descreva de forma sucinta os seguintes processos descritos na literatura:
1) RUP Rational Unified Process
2) XP eXtreme Programming
3) Adaptative Software Development
14) Descreva como so as equipes de desenvolvimento da empresa em que voc trabalha
e de uma grande empresa (como a Microsoft, por exemplo).
III.4.1
28
29
A principal tarefa de um analista descobrir o que o sistema deve fazer e como deve
se comportar segundo as expectativas de seus usurios e outros interessados. Usualmente,
chamamos isso de requisitos do sistema. O problema que, no incio do desenvolvimento,
ningum realmente sabe o que um sistema desejado deve fazer ao ficar pronto, inclusive o
cliente. Descobrir os requisitos de um sistema uma tarefa investigativa, criativa e contnua.
O sistema dever avisar que a rede est fora do ar em 204 segundos aps a
rede sair do ar.
Conciso, de forma que cada requisito defina apenas um requisito que deve ser
feito e apenas o que deve ser feito, de maneira clara e simples.
o Um requisito, para ser conciso, no inclui explicaes, motivaes,
definies ou descries do seu uso.
o Estes textos podem ser mantidos em outros documentos, apontados
pelo requisito (de preferncia sob o controle de um sistema de gerncia
de requisitos).
31
32
Objetivo
Interesse
Prioridade
Cliente
Fazer pedido
Receber o
produto pedido
Cliente
Obter status do
pedido
Prever o prazo de
chegada do
pedido
Gerente
Obter lista de
pedidos diria
Saber a produo
diria
33
34
Um problema uma diferena entre uma situao percebida e uma situao desejada.
Mais tarde vamos analisar vrios tipos de problema. No momento, nos basta a noo que o
problema incomoda o usurio (ou stakeholder) ao ponto dele considerar necessrio investir
alguma quantia de forma a evitar que o problema acontea.
comum ouvirmos o ditado Em time que est ganhando, no se mexe. Quando
somos chamados para desenvolver um sistema, devemos imaginar imediatamente que, se
algum deseja mexer em sua organizao, ento porque no est ganhando, pelo menos da
maneira que supe possvel. Faz pouco sentido imaginar que algum iria fazer um
investimento de risco, e sempre h risco no desenvolvimento de software, sem que haja uma
necessidade clara. No prximo captulo veremos que um sistema precisa, alm de um
objetivo funcional, metas de negcio, que visam determinar como ser a soluo para
problemas especficos.
Muitas vezes o analista se depara com a necessidade de, antes de definir requisitos,
definir propriamente qual o problema a ser tratado. Para isso, deve fazer com que os clientes
cheguem a um acordo sobre qual o verdadeiro problema, ou o problema mais importante.
Faz pouco sentido construir um sistema se o verdadeiro problema de negcios no for
endereado pela soluo planejada.
Para analisar o problema, necessrio que os usurios:
35
o O problema por trs do problema pode ser mais importante, sendo que
o problema visto inicialmente apenas um sintoma
ambiente onde ele est funcionando. Para fazer um software transportvel, voc precisa
implement-lo de forma a funcionar no maior nmero possvel de ambientes. Normalmente
esses dois requisitos se relacionam de forma inversa e para implement-los simultaneamente
necessrio um grande investimento de recursos.
Existem muitas formas de se dividir os requisitos no funcionais, a figura a seguir
apresenta uma dessas formas, apenas para deixar clara a quantidade de fatores que podem
envolver um requisito no funcional, mas sem consider-la melhor ou pior que outras.
Requisitos
No Funcionais
Requisitos
do
Produto
Requisitos
de
Usabilidade
Requisitos
de
Confiabilidade
Requisitos
de
Eficincia
Requisitos
de
Desempenho
Requisitos
da
Organizao
Requisitos
De
Prazo
Requisitos
de
Espao
Requisitos
de
Portabilidade
Requisitos
de
Implementao
Requisitos
Externos
Requisitos
de Interoperabilidade
Requisitos
De
tica
Requisitos
De
Padronizao
Requisitos
Legais
Requisitos
de
Privacidade
Requisitos
de
Segurana
Esse texto tem como foco requisitos funcionais e requisitos de informao. Ainda no
existe uma forma plenamente aceita de tratar requisitos no funcionais, mas o leitor
interessado poder encontrar diferentes mtodos na literatura de Engenharia de Software.
Alguns requisitos no funcionais, quando negados, geram um anti-requisito que
nunca seria pedido por um cliente. Por exemplo, um requisito no funcional comum que o
software seja confivel. Ningum pediria para ser construdo um software no confivel,
porm diferentes clientes esto interessados em diferentes nveis de confiabilidade e
diferentes formas de certificar esse nvel. Deve ser levado em conta que quanto mais esforo
colocado para se alcanar um requisito, maior o custo agregado ao projeto e isso servir
como referncia para o cliente escolher o grau de confiabilidade que deseja.
IV.5.3 Outros tipos de Requisitos
James e Susan Robertson [B9] identificam mais trs tipos de requisitos: restries de
projeto, temas de projeto e impulsionadores de projeto.
37
38
Nmero identificador,
o para facilitar a discusso, identificamos todos os requisitos unicamente.
Tipo
o Classificando-o como funcional, no funcional,...
Descrio
Justificativa
Fonte do requisito
o A pessoa ou o grupo que o originou
Critrio de aceitao
o Uma medida que possa ser usada para garantir que o requisito foi
alcanado.
Satisfao do usurio
o Um grau, de 1 (nenhum interesse) a 5 (extremamente satisfeito), por
exemplo, indicando a satisfao do cliente se esse requisito for
alcanado.
Insatisfao do usurio
o Um grau, de 1 (nenhum interesse) a 5 (extremamente insatisfeito), por
exemplo, indicando a satisfao do cliente se esse requisito no for
alcanado.
Dependncias
o Referncias a outros requisitos que dependem de alguma forma desse
requisito
Conflitos
o Referncia aos requisitos que de alguma forma conflitam com esse
Material de apoio
Histrico
40
Nesse caso, algumas tcnicas podem ser utilizadas para caracterizar o que deve ser
realmente feito ou, pelo menos, em que ordem as coisas devem ser feitas.
A primeira tcnica disponvel associar a cada requisito do sistema uma importncia.
Uma escala de trs ou cinco valores adequada para isso, como em: Imprescindvel para o
sucesso do sistema, Funcionalidade Importante, mas podemos esperar algum tempo,
Ajudaria ter, mas possvel viver sem essa funcionalidade, Benefcios mnimos,
Desnecessrio.
A segunda tcnica disponvel planejar o sistema para ser entregue em vrias verses,
mesmo que nem todas as verses estejam includas nesse contrato, e pedir para o cliente
determinar que funcionalidades devem aparecer em cada verso. Nesse caso pode ser
41
interessante dar um peso ou custo para cada requisito, de modo que o cliente possa controlar
seus gastos.
Uma terceira tcnica disponvel dar uma moeda virtual para o cliente, por exemplo,
1000 dinheiros, e pedir para ele distribuir quanto pagaria por cada funo, priorizando no
desenvolvimento aquelas funes que o cliente decidir pagar mais.
Todas essas tcnicas, porm, ficam dependentes de uma outra priorizao importante
dos requisitos: a priorizao por dependncia.
Devem ser levados em conta os vrios fatores que influenciam nessa determinao de
prioridades, entre eles os citados por [B13]:
42
Para exemplificar esse processo, podemos imaginar a seguinte histria: uma criana e
seu pai esto conversando em uma praa, a criana ento pede a seu pai:
Pai, pega aquela pedra.
E o pai entrega uma pedra, a primeira que v, criana
No pai, a pedra pequena.
E o pai troca a pedra por um bem menor.
No pai, a pedra redonda.
E o pai troca a pedra por uma quase esfrica.
No pai, a pedra azul.
E o pai percebe ento que a criana queria uma bola de gude azul que estava na areia.
A criana fica feliz.
O mesmo acontece na investigao que um analista tem que fazer com o cliente em
busca do requisito. Inicialmente o cliente ser ambguo, generalista e paulatinamente, com a
ajuda do analista, dever chegar a uma especificao precisa do que deseja.
Uma receita geral para o levantamento de requisitos pode ser dada em 5 passos:
1. Identificar quem fornecer os requisitos
2. Levantar lista de desejos para estas pessoas
3. Refinar cada lista de desejos at que seja auto-consistente
4. Integrar as listas de desejos de forma que sejam consistentes
5. Determinar os requisitos no funcionais.
Apesar de tudo, no uma tarefa fcil levantar os requisitos. Muitos problemas
podem acontecer. comum que stakeholders no saibam exatamente o que querem ou no
saibam articular propriamente suas idias, especialmente quando o desenvolvedor no possui
o linguajar tpico da rea de aplicao (jargo). Muitas vezes, tambm, os desenvolvedores
pensam entender melhor do problema que seus clientes, propondo supostas melhorias que
afetam custo e aumento o risco dos sistemas propostos.
43
44
Tarefas orientadas ao
desenvolvedor
Busca de Fatos
Identificar
grupos
relevantes
atravs de mltiplos nveis da
organizao.
Determinar
os
contextos
operacional e do problema,
incluindo a definio dos modos
operacionais, objetivos e cenrios
de misso como apropriados.
Identificar sistemas similares.
Realizar anlise de contexto.
Coleta e
Classificao dos
Requisitos
Racionalizao e
Avaliao
Priorizao
Determinar
funcionalidades
crticas para a misso.
Integrao e
Validao
Resolver conflitos
consistncia.
verificar
45
por Questionrio
O questionrio muito usado como tcnica de entrevista, principalmente em
pesquisas de mercado e opinio. Exige preparao elaborada. Alguns aspectos particulares do
processo merecem destaque: emprego de vocabulrio adequado para o pblico entrevistado;
incluso de todos os contedos relevantes e de todas as possibilidades de respostas; cuidado
com os itens redundantes ou ambguos, contendo mais de uma idia ou no relacionados com
o propsito da pesquisa; redao clara; execuo de testes de validade e confiabilidade da
pesquisa.
IV.8.2.2 Entrevista
Aberta
Esse tipo de entrevista evita muitos dos problemas dos questionrios, porm tambm
cria outros. O entrevistador formula uma questo e permite que o entrevistado responda como
quiser. O entrevistador pode pedir mais detalhes, mas no determina os termos da entrevista.
Permanecem, entretanto, as questes: as perguntas podem ser respondidas? A resposta faz
parte do repertrio normal do discurso do entrevistado? H muitas coisas que as pessoas
sabem fazer, mas tem dificuldade de descrever, como h tambm o conhecimento tcito, que
de difcil elicitao.
47
Estruturada
A entrevista estruturada extrai informaes sobre perguntas especficas. Nesse tipo de
entrevista, importante entrevistar a pessoa certa. uma boa tcnica para ser usada aps uma
pesquisa com questionrio, quando possvel selecionar, entre as respostas, as partes
interessadas com maior potencial de gerao de outras informaes. Suas vantagens so:
Respostas diretas, com menos ambigidade, informao detalhada. Sua desvantagem bsica
que as questes relevantes precisam ser identificadas com antecedncia.
IV.8.2.4 O
processo da entrevista
O processo de entrevista no se resume ao ato especfico da entrevista. Na verdade ele
comea muito antes e acaba muito depois. O processo normal da entrevista inclui:
1. Determinao da necessidade da entrevista
a entrevista
Uma entrevista deve ter um objetivo. As perguntas ou o roteiro devem ser coerentes.
Para isso importante a determinao desse objetivo,. O entrevistado deve ter noo clara da
finalidade da entrevista e perceber sua utilidade. Isso se faz por meio de palestras, textos de
divulgao e, principalmente, se explicando ao entrevistado, no incio da entrevista, seu
objetivo e importncia.
48
A linguagem
Chegue sempre 10 minutos adiantado e esteja preparado para esperar e para ter
que encerrar a entrevista mais cedo, principalmente com a alta gerncia.
49
50
demais para ser tratado. O analista deve constatar esse fato no processo de anlise, mas no
durante a entrevista.
Observe (e anote) as interrupes casadas por fatores externos (telefone, pessoas que
entram e que saem, etc.).
Separe o que fato do que opinio.
Conclua a entrevista de forma positiva
IV.8.3.1 O
Comportamento do Entrevistador
Esteja atento ao prprio comportamento. Lembre-se que no importa sua inteno ao
fazer ou deixar de fazer algo, mas a interpretao que o entrevistado dar ou que fizer ou no
fizer.
51
IV.8.3.2 Roteiro
Bsico
1. Apresente-se ao entrevistado: Ol, muito prazer, eu sou fulano-de-tal,
responsvel por parte do projeto XYZ. Apresente seu carto de visitas se for
o primeiro encontro.
2. Informe ao entrevistado o motivo da entrevista e porque foi selecionado:
Estou aqui para levantar o funcionamento da sua rea, e seu nome foi
escolhido por ser o funcionrio mais experiente ou Estou aqui para levantar
o funcionamento da atividade X, que de sua responsabilidade.
3. Deixe clara a idia que o conhecimento e as opinies do entrevistado so
importantes e sero teis no processo de anlise
4. Diga o que vai acontecer com a informao levantada
5. Garanta que o entrevistado ler a transcrio da entrevista e ter a
oportunidade de corrigi-la, garanta que nada ser passado a outras pessoas sem
a reviso e verificao do entrevistado.
6. Determine os assuntos confidenciais ou restritos a serem tratados na entrevista
7. Deixe claro que no haver conseqncias negativas em funo do resultado
da entrevista
8. Solicite permisso para gravar a entrevista
9. Se autorizado, inicie a gravao com um texto de apresentao: Entrevista
realizada no dia X....
10. Faa a entrevista at faltarem 5 ou 10 minutos para o tempo determinado
a Entrevista
A entrevista deve ser documentada logo aps sua realizao. Ao document-la
rapidamente, estar garantindo que recuperar mais informao.
A documentao da entrevista deve fornecer a seguinte informao.
Nome do entrevistador
Cargo do entrevistador
Nome do entrevistado
52
O objetivo da entrevista
importante notar que o relatrio da entrevista deve ser aceito pelo entrevistado.
normal o entrevistado remover alguma coisa ou colocar algo a mais. O analista deve ficar
atento aos motivos do usurio em fazer modificaes.
Se houver discusso quanto interpretao de algo e o analista achar essencial manter
sua verso no relatrio, deve tambm permitir que o entrevistado coloque sua verso.
IV.8.3.4 As
perguntas de concluso
Ao final da entrevista, importante realizar uma avaliao da percepo do
entrevistado sobre a entrevista que acabou de ser realizada. Para isso necessrio que seja
respondido um formulrio, contendo perguntas como:
Voc acha que essa entrevista cobriu tudo que era necessrio?
Voc acha que era a pessoa mais certa para responder essas perguntas?
IV.8.4 JAD
Outra tcnica importante de elicitao de requisitos, que merece um tratamento
separado, o JAD.
Muitas vezes, quando um grupo de informtica entrega um sistema de informao aos
seus clientes escuta a frase: no era isso que eu queria! Isto acontece porque os
desenvolvedores no conseguiram levantar com os usurios suas verdadeiras necessidades.
Este problema de comunicao pode ter diversas causas: linguagem especializada de
ambas as partes, desconhecimento da rea de atuao pelos desenvolvedores, preocupaes
com a tecnologia empregada ao invs das necessidades dos usurios, etc. Na fase inicial do
projeto, a dificuldade de comunicao entre clientes e equipe de desenvolvimento a
principal causa de defeitos que sero encontrados no produto final.
53
Objetivo do Mtodo
O objetivo do mtodo extrair informaes de alta qualidade dos usurios, em curto
espao de tempo, atravs de reunies estruturadas para alcanar decises por consenso.
IV.8.4.2 Os
Componentes
O lder de sesso tem como tarefa nmero um conduzir o grupo para solues de
consenso. Esse lder de sesso age como facilitador, um servidor neutro dentro do grupo que
no avalia nem contribui com idias. A responsabilidade do facilitador sugerir mtodos e
procedimentos que ajudem o grupo a concentrar energia em tarefas especficas, garantindo a
todos os membros do grupo condies de participar.
O documentador um auxiliar imparcial do lder de sesso, responsvel pelo registro
das decises e especificaes produzidas. Apenas as informaes relevantes so
documentadas, segundo orientao do lder de sesso.
O patrocinador detm a autoridade formal sobre as reas afetadas pelo sistema,
estabelecendo diretrizes e objetivos do projeto.
A equipe responsvel pelo contedo da sesso, representando as reas envolvidas
no projeto.
IV.8.4.3 A
Dinmica
A base de trabalho a equipe presente na reunio. Para que no acontea como na
figura abaixo devemos combinar algumas regras de jogo, de modo a alcanar o mximo de
produtividade. natural que em um grupo de 15 pessoas surjam discusses, conversas
paralelas, interrupes, etc. Em respeito ao tempo precioso dos participantes vamos
necessrio estabelecer um cdigo de cooperao.
IV.8.4.4 O
Ambiente
O Ambiente fsico da reunio fundamental para a produtividade dos trabalhos. Os
seguintes aspectos devem ser considerados:
Os participantes devem estar organizados de forma a poderem se olhar e olhar para o
lder de sesso. A melhor arrumao a em forma de U.
No devem acontecer interrupes aos participantes.
Todos devem cumprir a agenda, principalmente o incio e o fim da reunio.
54
Consenso
A forma mais produtiva de deciso do grupo aquela obtida por consenso. Consenso
no a unanimidade de opinies, mas, sim, a situao em que cada membro concorda que a
soluo encontrada a melhor para o grupo e que possvel conviver com ela sem ferir
convices ou valores essenciais.
55
IV.9 Mind-Map
IV.10
Exerccios
IV.10.1
Projeto 1: Livraria ABC
Baseado em todos os textos disponveis sobre a Livraria ABC, faa:
1. Uma lista de requisitos funcionais preliminares
2. Uma lista de requisitos no-funcionais preliminares
3. Uma lista de requisitos de informao preliminares
IV.10.2
Projeto de Curso
Para o seu projeto de curso, faa uma lista com:
1. Requisitos funcionais preliminares
2. Requisitos de informao preliminares
3. Requisitos no funcionais preliminares
4. Documente cada requisito dessa lista de acordo os descritores de requisitos
mostrados nesse captulo.
5. Para o seu projeto de curso, prepare:
6. Um roteiro de uma entrevista inicial do projeto
7. Um questionrio a ser feito com os usurios atuais do servio com a finalidade
de descobrir sua qualidade
56
7
O custo de um sistema quanto ser gasto para o seu desenvolvimento. O preo do sistema quando ser cobrado ao
cliente. O custo funo direta do tamanho do sistema, o preo uma questo de mercado.
8
No chamaremos esse documento de proposta de desenvolvimento por considerar que so necessrios mais alguns
dados para desenvolver uma verdadeira proposta de desenvolvimento
57
documento, ou a partir das entrevistas iniciais, que o analista deve procurar as principais
motivaes e necessidades do cliente.
sempre importante focalizar nas necessidades de negcio do cliente. Muitas vezes o
cliente acredita precisar de um sistema para resolver um problema em seu negcio, quando na
verdade precisa de outro. Deixando claras as expectativas, teremos clientes mais contentes.
Em todos esses objetivos podemos, at certo ponto, que tarefas podem fazer parte e
que tarefas no devem fazer parte do sistema9.
O objetivo deve identificar junto ao cliente, de forma mais padronizada possvel
frente ao mercado, que tipo de sistema est sendo desenvolvido. Ao mesmo tempo, deve
fornecer informaes suficientes que caracterizem de que forma esse sistema especial.
Assim, um bom objetivo exemplo o seguinte:
Desenvolver um sistema de controle de vendas para uma loja de materiais de
construo que permita encomenda de mercadorias.
Nesse exemplo descrevemos o sistema de forma bastante geral e reconhecida no
mercado (sistema de controle de vendas), permitindo uma imediata compreenso do escopo
bsico do projeto. Logo aps, declaramos que ele deve ser especfico para um tipo de negcio
(loja de materiais de construo), ao mesmo tempo reduzindo e ampliando o escopo, em
funo da rea de aplicao. Finalmente, declaramos que deve suportar uma funo no
necessariamente comum nesse tipo de aplicao, como um requisito primordial (permita
encomenda de mercadorias), provavelmente diferenciando o sistema da prtica normal do
mercado.
No devemos dar vrios objetivos a um sistema. Quando isso parece necessrio,
temos a forte indicao que estamos tratando de mais de um sistema. Ao declarar um objetivo
devemos evitar o uso das conjunes e e tambm, ou ainda outra construo que leve a
representar mais de uma idia. Quando um objetivo tem mais de uma idia proposta,
9
58
V.4 Problemas
Ao conversar com o cliente, principalmente nas entrevistas iniciais, temos a
oportunidade de ouvir muitas reclamaes sobre o sistema atual, seja ele informatizado ou
no. Isso esperado, pois se no existissem defeitos na forma como o sistema executado no
momento, no haveria necessidade de implementar um novo sistema. Assim, devemos
entender que a verdadeira motivao que o cliente tem em chamar uma equipe de
desenvolvimento de sistema a de corrigir os seus problemas, principalmente os que mais
afetam negativamente o seu negcio.
Um problema pode ser classificado como:
De negcio
Funcional
Operacional
Para auxiliar o processo de levantamento de problemas, pode ser criada uma tabela
com as colunas: Causa, Resultado, Valor, Processo Causador, Dados causadores, Sugesto de
soluo.
59
Problemas do Negcio
#
Causa
Resultado
Valor
Processo
Dados
Causador
Causadores
Sugesto
de
Soluo
Como no
podemos
analisar
planos de
negcio
alternativos
No
possvel
analisar
cenrios de
mercado
Acima de 1
milho
Planejamento
Modelagem
de cenrios
Como no
sabemos o
custo real de
produo
futura
No
possvel
fazer
contratos de
longo prazo
30% do
faturamento
poderiam ser
passados de
curto prazo
para longo
Compras
Preos
Sistema de
acompanha
mento de
custos
V.5 Oportunidades
As oportunidades so ofertas que fazemos ao nosso cliente. Devido ao nosso
conhecimento tcnico e tecnolgico, normalmente ficamos vontade para oferecer
oportunidades tecnolgicas. Uma oportunidade tecnolgica, como diz o nome, a oferta de
uma tecnologia especfica de implementao que oferecer alguma vantagem ao cliente. Por
exemplo, ao implantar um novo sistema de estoque podemos oferecer a entrada e sada de
produtos pelo uso de cdigo de barras. A oportunidade tecnolgica no altera a
funcionalidade que o cliente necessita, mas sim sua forma de implementao.
Algumas vezes tambm podemos oferecer oportunidades de negcio. Uma
oportunidade de negcio alguma funcionalidade no prevista pelo cliente, mas que sabemos
ser possvel implementar. Devemos ter muito cuidado com oportunidades de negcio, pois
elas podem ser, na verdade, falsos requisitos. Um exemplo tpico a proliferao de
relatrios em sistemas que na prtica usam apenas alguns.
Uma oportunidade de negcio deve ser exaustivamente discutida com o cliente de
forma a ficar claro que ela realmente traz benefcios, que esses benefcios so considerveis,
que o risco do projeto no aumenta muito e que ela ser realmente utilizada.
Um exemplo que podemos dar , em um controle de estoque, a funcionalidade de
prever que produtos esto prximos de sua data de vencimento. Essa no uma funo
normal de sistemas de estoque. Exige um custo adicional no s de desenvolvimento, mas
tambm de operao, como identificar a data de vencimento, controlar diferentes datas para
um produto, etc. Em muitos contextos, essa funo pode parecer interessante mais ser, na
prtica, intil. Em uma oficina mecnica, por exemplo, ela pode ser totalmente intil. Em um
grande mercado, ela pode ser bastante til. Porm em um pequeno mercado, onde o
proprietrio tem na verdade um controle mental do estoque e precisa do sistema de estoque
apenas para fazer um controle legal ou financeiro, essa funcionalidade pode parecer til a
princpio, mas nunca ser usado no dia a dia.
As oportunidades devem produzir resultados teis para a empresa, como acelerar
processos, eliminar passos desnecessrios, reduzir erros na entrada e sada de dados,
aumentar a integrao entre sistemas, aumentar a satisfao do usurio e facilitar a interao
com os parceiros externos da organizao (fornecedores, representantes e clientes). [B15]
60
Para cada para par meta - mtrica, podem ser necessrios um procedimento de medida
e um procedimento de levantamento de dados passados. Isso no uma prtica comum no
desenvolvimento de sistemas, porm algo desejvel.
A principal vantagem de associar ao sistema metas que no fazem parte dos requisitos
demonstrar a sua utilidade, isto , como o sistema far o cliente ganhar mais dinheiro ou
realizar melhor sua tarefa.
Devemos tomar cuidado, porm, com as armadilhas que existem na escolha das
metas. Primeiro, muito comum que um cliente deseje uma meta que no pode ser alcanada
por um sistema com o objetivo definido. A questo, nesse caso, se resume a negociar a
mudana da meta ou negociar a mudana do objetivo. Como exemplo, podemos citar o caso
de um cliente que desejava um sistema de controle de pedidos para os fornecedores baseado
em pedidos de clientes e desejava que o sistema diminusse o prazo de entrega para os
clientes. Analisado o funcionamento da empresa, comprovamos que era impossvel acelerar o
prazo meramente controlando os pedidos. Era possvel, porm, fazer uma previso mais
acertada do prazo de entrega e estar preparado para atrasos, mediante o acompanhamento dos
pedidos.
61
Outra armadilha ter uma meta que afetada por muitas coisas alm do sistema. Em
um caso simples, tnhamos a proposta de um sistema de reservas de hotel que se propunha a
aumentar a ocupao dos quartos. Ora, o nvel de ocupao dos quartos de um hotel depende
de muitos fatores, inclusive da economia geral. Entendemos que o sistema poderia ter como
meta, por exemplo, diminuir o nmero de reservas no cumpridas. Essa meta mensurvel
e pode ser diretamente influenciada pelo sistema (por meio de verificaes com o cliente, por
exemplo). interessante notar que a meta selecionada um dos fatores que afeta a meta
proposta inicialmente. Essa outra armadilha comum, escolher uma meta (e uma mtrica)
que na verdade derivada da meta (e da mtrica) que o sistema tem condies de atingir.
Se no possvel nenhuma medida, no ser possvel tambm saber se a meta foi
alcanada, o que a torna suprflua.
V.6.1
Metas subjetivas
possvel que sejam definidas metas no mensurveis de forma objetiva. Isso pode
ser resolvido por meio de avaliaes subjetivas.
Por exemplo, uma meta comum melhorar o atendimento ao usurio. Essa meta
pode, em alguns casos, ser transformada em outra meta, como diminuir o tempo de
atendimento, diretamente mensurvel. Mas tambm pode ser medida por meio de
entrevistas, com avaliaes subjetivas, ou observao do servio.
V.6.2
Alguns pontos podem ser notados sobre essas perguntas. A pergunta sobre objetivos
muitas vezes pode no ser muito bem respondida, assim a segundo pergunta, sobre
responsabilidades, permite uma resposta mais prtica e mais fcil de ser dada. A terceira
pergunta visa buscar uma compreenso sobre os dados importantes para o entrevistado,
abrindo uma seqncia de perguntas sobre o tema. A quinta pergunta, sobre os problemas de
negcio, a mais importante do conjunto e deve ser dada a maior ateno e quantidade de
62
tempo disponvel. interessante que o problema seja estruturado em um formato causaefeito, por exemplo: "por causa da falta de dinheiro, o resultado que no possvel comprar
peas de reposio". Tambm importante verificar se a causa primordial do problema um
processo ou um dado. Alm disso, o entrevistador deve tentar obter alguma informao de
valor (financeiro) sobre o impacto do problema, seja em valores absolutos ou relativos,
objetivos ou subjetivos.
V.6.3
Definindo o Escopo
Uma boa estratgia complementar a especificao dos requisitos preliminares a
definio do escopo por meio de uma lista Dentro/Fora (in/out list) [B16]. Essa lista
simplesmente uma tabela contendo tpicos e a indicao se aquele tpico est dentro ou no
do escopo do sistema.
63
Escopo do Sistema
Tpico
Dentro
Fora
pedido
V.7.2
O uso de cartes para cada requisito uma abordagem interessante, pois permite a
manipulao dos mesmos de vrias formas, como comparao, correo e priorizao.
64
65
V.9.3
Restries
Muitos sistemas tm restries, que devemos considerar em nossas propostas. Um
tipo importante de restries so as exigncias de implementao, como banco de dados,
linguagem, sistema operacional, etc.
Quanto mais cedo forem detectadas as restries, mais cedo o analista evitar que haja
desperdcio de recursos pela equipe de desenvolvimento.
V.10
Construindo um Glossrio
V.11
Proposta Comercial
12
De forma exponencial
66
V.12
O Resumo Executivo
O resumo executivo deve permitir que o leitor tenha uma viso completa do texto do
documento em uma pgina. Resumos executivos tm esse nome por partir da hiptese que
um executivo, ao tomar uma deciso, no tem tempo para ler longos documentos. Na prtica
eles leriam o resumo executivo e folheariam os documentos.
V.13
Resumo Executivo
Apresentao do Documento
Identificao do Projeto
o Objetivo13
o Identificao do Cliente
o Identificao do Prestador de Servio
o Histrico do Apresentador de Servio
Proposta Tcnica
o Pequena Descrio da Solicitao do Cliente
13
O Objetivo do projeto implementar o sistema, que tem um objetivo para cumprir no negcio.
67
Objetivo do Sistema
Metas
Escopo
Viso
Pontos Crticos
Restries
Glossrio
o Identificao de Oportunidades
Proposta Comercial
o Cronograma Proposto
o Investimento Proposto14
o Exclusividade
o Forma de pagamento
o Reajustes
o Renegociao
o Confidencialidade
o Outras Clusulas (opcionais)
V.14
V.14.1
Exerccio
Projeto 1: Livraria ABC
Faa uma proposta inicial para a Livraria ABC.
V.14.2
Projeto de curso
Os grupos devem fazer uma proposta inicial, de acordo com o item V.13 e apresentla ao professor para discusso e aprovao.
14
Sutilmente, o preo do sistema proposto como investimento, o que de fato verdade na viso da empresa
contratante.
68
69
Organograma15
Modelagem de Processos
15
O organograma uma das formas mais simples e antigas de modelar uma empresa.
70
VI.1 O Organograma
Organogramas descrevem cargos, por meio de retngulos, e linhas hierrquicas, por
meio de linhas. Alguns autores utilizam uma notao levemente mais complicada com o
objetivo de descrever diferenas sutis em uma organizao.
Em geral o analista no precisa levantar o organograma, pois a empresa j o possui,
mas comum que haja algumas mudanas. importante tambm levantar no s a hierarquia
de cargos, mas tambm quem ocupa cada cargo, principalmente para apoio s tarefas de
anlise.
A importncia de conhecer o organograma da empresa se reflete tanto na modelagem
propriamente dita, pois ele fornece a descrio da empresa que ser convertida objetos do
modelo, como no processo de modelagem, pois a partir do organograma temos o
conhecimento de cargos e responsabilidades, definindo pessoas a serem entrevistadas.
71
Conselho
Administrativo
Presidente
Diretor
Comercial
Gerente de
Grandes Clientes
Diretor de
Produo
Gerente de
Vendas
Gerente de
Fbrica
Diretor
Administrativo
Gerente de
Logstica
Gerente de
Recursos
Humanos
Gerente
Financeiro
72
900mm
900mm
4775mm
Ser identificvel
16
Images copyright 2000 by Cartography Associates. Images may be reproduced or transmitted, but not for
commercial use. For commercial use or commercial republication, contact carto@luna-img.com. This work is
licensed under a Creative Commons License.
(http://creativecommons.org/licenses/by-nc-sa/2.0/).
17
Images copyright 2000 by Cartography Associates. Images may be reproduced or transmitted, but not for
commercial use. For commercial use or commercial republication, contact carto@luna-img.com. This work is
(http://creativecommons.org/licenses/by-nc-sa/2.0/).
licensed under a Creative Commons License..
18
73
19
Algumas imagens dessa seo no so originais, porm fazem parte de um documento (IFIP 183) em domnio
pblico (obra do governo americano).
20
21
O processo inicial sempre o A-0, no existindo um processo B-0 em nenhum caso. A letra A vem de atividade.
74
Controles (setas entrando por cima) so condies necessrias para produzir a sada
correta, podendo ou no ser transformados na sada. Controles so restries na operao
do processo.
Uma sada (setas saindo pela esquerda) apresenta um resultado do processo, um artefato
ou informao criada ou transformada por ele.
possvel que uma seta saia da parte de baixo do diagrama. Isso indica uma chamada de
funo, que na verdade representa que o processo chamador explicado pelo processo
chamado.
22
75
O diagrama A-0 (A menos zero) contm s uma caixa (a caixa zero), que expandida no
diagrama A0 (A zero).
Um diagrama por ser FEO (ver abaixo) ou conter apenas texto ou glossrio. Nesse caso, o
n recebe o seu identificador seguido respectivamente das letras F, T ou G.
Caixas denotam atividades, por isso devem ser ou conter verbos em seu nome.
Cada caixa numerada adicionando mais um nmero inteiro entre 1 e 6 (nmero mximo
de caixas em um diagrama) ao nmero da caixa pai.
Quando uma caixa detalhada em outro diagrama, colocada uma referncia a esse
diagrama abaixo do canto inferior esquerdo. Essa referncia conhecida como DRE.
Cada caixa (funo) representada por um rtulo centralizado formado por um verbo ou
um verbo-objeto e um segundo rtulo, no canto inferior direito, representando a
identificao (nmero) do rtulo.
76
23
Cada diagrama deve conter todas as setas que entram e saem do seu diagrama superior,
que podem ser indicadas pela seguinte notao (conhecida como ICOM):
77
Controle: C1, C2, C3..., contados da esquerda para a direita na caixa explodida.
A cada reviso deve ser marcado um nmero de reviso (no diagrama, ver
NOTES 1 2 3...).
Entradas: I1, I2, I3, contadas de cima para baixo na caixa explodida.
Sadas: O1, O2, O3, contadas de cima para baixo na caixa explodida.
Setas no representam fluxo, mas sim como os dados e objetos necessrios para o
funcionamento de uma funo so obtidos.
Setas podem ser tuneladas. Isso significa que no apareceram no diagrama filho
de uma caixa, mas apenas em diagramas netos. Para tunelar uma seta coloque
parnteses em torno da ponta ou da raiz da seta (formando um tnel)
78
parent
diagram
parent
box
1
2
A12
3
A1
child
diagram
C1
I1
C3
1
2
3
A12
O1
This output is not
shown connecting to
the parent box.
Uma seta pode ser dividida ou setas podem ser agregadas. Os segmentos
resultantes devem ser nomeados adequadamente para representar as partes. Por
exemplo, uma seta identificao de usurio e uma seta solicitao de servio
podem ser unificadas na seta solicitao identificada. O inverso tambm pode
acontecer.
79
GRAPHIC
INTERPRETATION
A
means
A
means
A
means
Where B is a
portion of A
A&B
means
A
Abreviaes, jargo, etc., devem ser colocados em um glossrio (nico para o modelo).
This fork means that Files contains
Customer Records (needed by Function 2) and
Price & Tax Tables (needed by Function 3).
Tax
Requirements
Files
KEEP
RECORDS
1
Customer
Records
DELIVER
PRODUCTS
Ordered
Product
Account
Entries
Transactions
DO
BILLING
Account
Clerk
Invoices
80
parent
diagram
parent
box
1
2
A12
3
child
diagram
A1
1
2
3
A12
Diagramas apenas para exposio (FEO "for exposition only") podem ser usados onde
um nvel adicional de conhecimento necessrio para entender adequadamente uma rea
especfica do modelo.
Diagramas FEO so numerados com um F no final de seu cdigo, ou seja, do cdigo que
teriam se fossem um diagrama normal.
81
Significado
2I1
Caixa 2 Entrada 1
O2
A21.3C2
A42.3
A42.|3|
A42.3
MFG/A42.1
O padro IDEF0 pede que um modelo seja publicado como no formato dado na figura
a seguir.
O tunelamento
Existem duas posies para colocar um tunelamento (na forma de parnteses): na
extremidade prxima a funo ou na extremidade prxima borda do diagrama:
82
Um conjunto de diagramas IDEF0, conhecido como um kit IDEF0, tem que responder
a duas perguntas: para que serve o sistema e como ele funciona.
Objetivo
Para comear a modelagem IDEF0 o analista deve primeiro determinar e descrever de
forma clara qual o objetivo do modelo, em que ponto de vista as atividades sero descritas e
em que contexto isso feito. Isso funciona como uma especificao de requisitos do modelo
que est sendo feito. Quando o objetivo do modelo atingido, o modelo est completo.
Um objetivo possvel , por exemplo, identificar oportunidades para consolidar
funes j existentes de forma a melhorar o desempenho da organizao. Claro que esse
objetivo sofre de um excesso de linguagem de negcios que pode ofuscar sua verdadeira
utilidade. Normalmente devemos preferir termos mais diretos como identificar as funes da
organizao em busca de estud-las e propor um plano de melhoria de desempenho com
possvel reestruturao das mesmas.
Ponto de Vista
O ponto de vista descreve a perspectiva tomada na construo, reviso e leitura do
modelo, definindo, na prtica, os limites do modelo e como as atividades do sistemas sendo
descrito sero abstradas ou idealizadas. A partir de um ponto de vista controlamos o escopo
e o nvel de detalhe de um modelo IDEF0. O ponto de vista sempre nico, apesar das
sesses de modelagem inclurem normalmente diferentes participantes com mltiplos pontos
de vista.
Uma forma de imaginar um ponto de vista e melhor descreve-lo entender o IDEF0
como parte de um manual destinado a descrever o funcionamento do sistema para alguma
pessoa ou algum grupo no contexto do negcio.
83
Contexto
O escopo do modelo dividido em duas partes: a profundidade e a extenso. A
profundidade define o nvel de detalhe esperado do modelo. A extenso define as fronteiras
do sistema sendo analisado.
importante a definio inicial do contexto, mesmo tendo conscincia que ele pode
sofrer alteraes (intencionais) durante o curso do processo de modelagem.
O contexto representado fortemente no diagrama de contexto (A-0), principalmente
pela definio de fronteira do sistema indicada pelas entradas (incluindo controles) e sadas.
Regras gerais de construo
O mtodo sempre se inicia pela definio da caixa inicial (A-0) e sua expanso em um
diagrama de primeiro nvel (A0). A partir desse ponto, sempre que for necessrio expandir
uma funo ser criado outro diagrama filho, mantendo as seguintes regras {Pierre Nancy,
2004 1998 /id}:
Cada funo deve trazer algum valor agregado a suas entradas e controles.
Cada seta que entra ou sai de uma funo deve ser encontrada em seu
diagrama de expanso .
Questione as fronteiras.
84
Fluxogramas
Fluxogramas so provavelmente a forma mais tradicional de modelar processos.
Atualmente, fluxogramas so poucos utilizados, tendo sido substitudos por outras formas,
semelhantes, que foram criadas com a finalidade de evitar problemas comuns encontrados na
criao dos fluxogramas.
86
algoritmos, mas esta prtica est totalmente superada, sendo normalmente substitudo por
programas em linguagens de alto nvel. Seu uso na especificao de processos tambm est
em franca decadncia, nesse caso o que se v a sua substituio por diagramas mais
modernos (incluindo o uso de fluxogramas em diagramas de raia25).
VI.5.2
EPC
EPC a sigla em ingls para Event Driven Process Chain (Cadeia de Processos
Dirigida por Eventos). Esse mtodo parte simplificada do mtodo ARIS usada para
modelagem de processo e tem grande aceitao no mundo, estando muitas vezes associado
implantao de sistemas de ERP SAP/R3.
25
Atividades tangveis
Decises (mentais)
Processamento de Informaes
swimlane diagrams
87
Tipo
Smbolo
Definio
Evento
Funo
Conectores
XOR
XOR
AND
OR
Fluxo
Caminho
Digitar
Pedido
Pedido
Digitado
Verificar
Pedido
XOR
Pedido
Correto
Pedido
Incorreto
Segundo a verso original de EPCs, sempre deveria haver um evento entre dois
processos. Atualmente permitido que uma seqncia de processos no tenha nenhum evento
entre eles.
De acordo com as regras sintticas para EPCs, possvel que um processo produza
um ou mais eventos simultaneamente, pelo conector E, ou no, pelos conectores OU ou OU88
Tipo
Smbolo
Unidade
Organizacional
Informao
Pessoa ou
Cargo
Fluxo de
Informao
Relaes
Organizacionais
Produto ou
Servio
Objetivo
89
Vendas
Digitar
Pedido
Pedido
Pedido
Digitado
Dados de
Produto
Vendas
Verificar
Pedido
Pedido
XOR
Pedido
Correto
Pedido
Incorreto
vendas
solicitao
pedido
estoque
cliente
produto
produto
entregas
VI.5.2.1 EPC
e 5W2H
Um evento indica quando (when) algum processo, funo ou tarefa deve ser iniciado.
Uma funo ou tarefa indica o qu (what) deve ser feito.
90
VI.5.2.2
de ouro de EPCs[B23]
No existem ns isolados
No existem loops
VI.5.3
Diagramas de Atividade
O Diagrama de Atividade uma das formas que UML [B24] prope para modelar os
aspectos dinmicos de um sistema, sendo basicamente um tipo de fluxograma mostrando
como o controle flui entre atividades. Um diagrama de atividades tambm um tipo de
diagrama de transio de estados que permite a modelagem de concorrncia.
91
Atividade
Estado
Inicial
Receber pedido
Atividades
Processar pedido
Enviar pedido
Transaes
Estado
Final
Processar pedido
Recusar pedido
[material disponvel]
[material no disponvel]
Enviar pedido
92
Preparar Nota
Fiscal
Separar
produtos
Empacotar
entrega
93
VI.5.4
Diagramas de Raias
Qualquer diagrama que passe a idia de um fluxo de execuo, como um fluxograma
ou um diagrama de atividades, pode ser construdo dentro de um espao que modele alguma
partio dessas atividades. Normalmente o que se faz utilizar colunas (ou linhas) para
modelar os agentes que realizam a atividade especfica, dando a impresso de raias de
natao ao diagrama (swimlanes).
94
95
VI.6.1
Declaraes Estruturais
Inclui os termos de negcios e fatos relacionando termos.
VI.6.1.1 Definio
de Termos de Negcios
O elemento bsico de uma regra de negcio a linguagem utilizada para express-la.
A definio das palavras utilizadas nessa linguagem descreve como as pessoas pensam e
falam [B26].
Normalmente um projeto s comea realmente a progredir quando a equipe de
desenvolvimento compreende o discurso dos clientes. Para isso, nas primeiras entrevistas ou
reunies, feito um esforo para levantar um glossrio de termos, e, mais tarde, muitos
desses termos podem aparecer no Modelo Conceitual de Dados do sistema.
Um exemplo tirado de um sistema governamental:
A definio de um termo muitas vezes envolve uma relao com outros termos, como
no exemplo acima.
Um termo pode ser um tipo (uma classe) ou um literal (uma instncia). No caso de
regras de negcio costumamos trabalhar principalmente com tipos. Um tipo especial de tipo
um sensor, que representa algo que detecta e reporta valores que mudam constantemente no
ambiente (mundo externo). Existe um sensor especial, o relgio, que relata a passagem do
tempo, cujo valor sempre o instante corrente (data e hora corrente).
Os termos definidos so reunidos em um glossrio e em um dicionrio de dado.
Declarao de Fatos
A partir dos termos, devemos construir sentenas que descrevam o negcio a partir
das relaes entre termos e da estrutura criada por essas relaes. Normalmente esses fatos
so caracterizados nas entrevistas e reunies, a partir de declaraes do cliente de como o
negcio funciona.
Fatos relacionando termos so bastante fceis de serem encontrados. Muitas vezes
encontramos primeiro um fato e depois analisamos o significado dos seus termos.
As declaraes estruturais podem declarar atributos, generalizaes ou participaes.
Uma participao, por sua vez, pode ser um papel, uma agregao ou uma associao
simples.
27
No sendo necessariamente igual ao modelo conceitual de dados, mas podendo fornecer elementos para esse.
96
Exemplos:
Tipo de Fato
Exemplo
Atributo
Generalizao
Papel
Agregao
Associao
simples
Exemplos:
97
Uma declarao de ao pode dizer que precisa acontecer (controle) ou o que pode
acontecer (influncia).
VI.6.3
Derivaes
So regras que mostram como transformar conhecimento em uma forma para outro
tipo de conhecimento, possivelmente em outra forma, incluindo leis da natureza[B27].
Geralmente so regras ou procedimentos de clculo ou manipulao de dados.
Exemplo:
VI.6.4
Regras e Eventos
Cada regra de negcio tem a possibilidade de ser violada em um ou mais eventos do
sistema.
A questo do que um evento ser respondida mais a frente nesse texto, no Captulo
VII. porm, no momento, basta entendermos que um evento algo que exige que alteremos
os fatos conhecidos pelo sistema (ou seja, um evento exige a alterao de algum dado na base
de dados) ou que consultemos esses fatos a fim de inform-los, de alguma forma processada,
ao usurio.
Analisando uma regra podemos ver que tipos de eventos so provveis de
necessitarem de alguma ateno do sistema. Por exemplo, suponha que um sistema de vendas
para uma empresa possua as regras[B28]:
O que acontece quando um cliente faz seu primeiro pedido(e no tem ainda um vendedor
associado)?
Em todo evento, um conjunto de regras deve ser ativado e cada erro deve ser
reportado ao usurio.
VI.6.5
98
Fragmento de
conversao de
negcios
Verso em linguagem
natural
Verso em uma
linguagem de
especificao de
regras
Verso em uma
linguagem de
implementao de
regras
Relevante
Atmica
Declarativa
No totalmente precisa
Pode ser incompleta
Confivel
Autntica
Pode ser redundante
Pode ser inconsistente
Relevante
Atmica
Declarativa
Precisa
Completa
Confivel
Autntica
nica
Consistente
Executvel
Pode ser procedural
99
Classificao
Descrio Detalhada
Termo
Fato
Template
Propriedade,
atributo,
Valor,
Conjunto de valores
detalhe,
Relacionamentos
entidades
entre
Relacionamentos
entidades e atributos
entre
Relacionamentos de herana
<termo1> um <termo2>
<termo1> <verbo> <termo2>
<termo1> composto de <termo2>
<termo1> um papel de <termo2>
<termo1> tem a propriedade <termo2>
Computao
Restrio
obrigatria
Guideline
Conhecimento
inferido
Sentenas
circunstncias
informaes
que
expressam
que levam a novas
Iniciador de ao
Obviamente, como fizemos aqui, a forma textual bastante til. Uma maneira
bastante comum utilizar Diagramas de Entidades e Relacionamentos[B27].
Deve ficar claro, porm, que a utilizao de DER para definir regras
de negcio no igual utilizao de DER para definir o modelo
conceitual de dados de um sistema.
100
Solicita
Livro
Entrega
Distribuidora
Alguns autores fazem uma descrio regra a regra, como na Figura 47.
Cliente
Solicita
Livro
Distribuidora
Entrega
Livro
As regras de negcio sero utilizadas nos prximos passos para definir modelos mais
formais do sistema. Mas podemos, por exemplo, definir a cardinalidade dos termos em cada
relacionamento descrito, como na Figura 48 e no texto a seguir:
101
(1,N)
Solicita
(0,N)
Livro
(1,1)
Cliente
(1,N)
Entrega
Distribuidora
interessante notar que regras de negcio devem ser feitas de forma declarativa, no
indicando como vo ser implementadas, onde vo funcionar, quem ser responsvel ou
quando devem ser testadas. Desse jeito as regras sero flexveis o suficiente para ser
utilizadas na modelagem do negcio. Como devem ser declarativas, elas tambm no devem
ser escritas como um procedimento.
102
Processos
Operao
Fornecimento
Planejamento
Pedidos de
Servio
Agendamento
Produo
Administrao
Venda
Gerncia do
Territrio
Vendas
VP de Vendas
Organizao
Gerente de
pedidos
Gerente de
vendas
VP Engenharia
VP Produo
Diretor da
Fbrica
Tabela 10 Exemplo de uma tabela Processo x Organizao
VI.7.2
Uma de suas caractersticas principais que pode ser construda com vrios pares
linha x coluna, dependendo do tipo de abstrao que est sendo usado. No nosso caso
usaremos principalmente no mapeamento de aes (CRUD) entre eventos essenciais e
entidades (os dois temas sero tratados mais tardes), mas podem ser usados em modelos de
negcio (processo x dados utilizados) ou orientados a objetos (casos de uso x objetos). Na
prtica, uma tabela de trabalho muito interessante, que permite a visualizao rpida da
relao entre funcionalidade e dados.
Como usaremos esta tabela para relacionar eventos e entidades, deixaremos esse tema
para ser tratado mais tarde, na unificao dos modelos funcional e de dados.
Processo A
CRUD R
Processo B
CRUD R
Processo C
RUD
Processo D
Processo E
Processo F
Dado 6
Dado 5
Dado 4
Dado 3
Dado 2
Processos
Dado 1
Dados
RU C
VI.7.3
Corrente/Planejado
Esta tabela indica que processos so correntes e que processos esto apenas
planejados. Pode ser feita tanto a nvel de negcios quanto a nvel de sistemas. No primeiro
103
caso estamos interessados nos processos correntes ou implementados no dia a dia da empresa.
No segundo caso estamos interessados em processos automatizados.
Corrente x Planejado
Funo
Situao
Cadastro de Cliente
Corrente
Cadastro de
Fornecedor
Corrente
Cadastro de Pedidos
Planejado
Criao de Pedidos
Planejado
VI.9 Exerccios
VI.9.1
104
105
1.1
Modelos e Abstraes
1.2
The human mind has first to construct forms, independently, before we can find them in things.
Einstein, Albert (1879-1955)
29
Todo modelo uma abstrao de algo que existe ou se imagina que possa existir no
mundo real. Abstrao o processo mental de separar um ou mais elementos de uma
totalidade complexa de forma a facilitar a sua compreenso por meio de um modelo.
Normalmente desejamos que o modelo seja, ao mesmo tempo, simples o bastante para
ser fcil de manipular e complexo o suficiente para resolver o problema em questo.
No nosso dia a dia utilizamos a abstrao para poder trabalhar com toda a informao
que o mundo nos fornece. Um mapa, por exemplo, um modelo de uma cidade. Dependendo
da informao que queremos, colocamos alguns smbolos e tiramos outros do mapa. Um
mapa tambm no pode ser perfeito, tem que abstrair as informaes que no so
necessrias naquele instante, ou teria que ter o mesmo tamanho da cidade.
No desenvolvimento de sistemas, utilizamos alguns processos de abstrao tpicos:
Classificao,
Composio,
Generalizao,
Identificao e
Normalizao
29
106
Na classificao o que estamos fazendo imaginar uma idia nica que descreve, de
forma abstrata, todos os objetos de uma classe. Ao eliminar a necessidade de tratar cada
objeto de forma nica, simplificamos o problema em questo.
Exemplos tpicos de classificao:
Instncias
Classe
Times de Futebol
Pas
Jogador de Futebol
Objeto
Carro
Livro
Homem
107
Pessoa
Meio de Transporte
Aparelhos Eletrnicos
H uma diferena entre instanciar e identificar. Uma instncia deve possuir uma
identificao e uma identificao se aplica a uma instncia. A identificao permite a que
duas instncias sejam reconhecidas como distintas ou como representaes de um mesmo
objeto (normalmente devendo ser reunidas em uma).
1.2.5 Normalizao30
Toda aplicao, ao funcionar, deve tratar de casos especficos que ocorrem durante o
funcionamento normal. Porm, bem mais fcil discutir o funcionamento normal antes e
depois os casos especficos. A abstrao de iniciar pelo modo normal indica que devemos
comear a trabalhar pelo modo comum ou normal de funcionamento, ou ainda melhor, o
modo onde tudo ocorre da forma mais simples e depois ir inserindo mecanismos para tratar
das variaes possveis.
1.2.6 Trabalhando com as abstraes
Imagine que precisamos descrever comprar um carro. bvio que todo carro possui
quatro pneus, um motor, etc. Isso uma classe bastante geral. Porm, desejamos ainda falar
sobre um modelo especfico: uma Ferrari Testarossa, por exemplo. Logo, acabamos de
especializar nosso modelo, mas ainda no chegamos ao nvel de objeto. Quando vemos o
carro especfico, a temos o objeto. Ele identificvel como instncia daquela classe porque
apesar de dividir vrias caractersticas em comum com outros objetos da classe, tambm tem
algumas caractersticas nicas, como o nmero de srie do chassi. Finalmente, desejamos
trocar a cor do assento do carro. Nesse instante, j estamos vendo uma parte do carro,
decompondo-o em suas partes.
1.3
A Memria do Sistema
108
composto por funes que coletam dados para que sejam, mais tarde, utilizados por funes
que fornecem relatrios.
Dessa forma, esses dados necessrios para realizar uma funo precisam estar em
algum lugar. Na anlise essencial ns abstramos a localizao e forma fsica dos dados,
supondo que o sistema possui uma memria. Com a Modelagem Conceitual de Dados damos
a forma abstrata a essa memria, de maneira a entender o que deve estar guardado na
memria sem decidir, prematuramente, sua localizao e estrutura.
1.3.1 Modelo Conceitual (MC)
O objetivo da modelagem conceitual fornecer aos desenvolvedores uma descrio
abstrata de alto nvel, independente de tecnologia, da informao contida no sistema. Essa
descrio conhecida como o esquema conceitual da base de dados.
A Modelagem Conceitual de Dados pode ser feita de muitas formas, algumas vezes
com sutis diferenas. Alguns autores defendem a modelagem do domnio, onde tentamos
descrever o domnio de aplicao sendo utilizados, outros tratam diretamente do sistema
sendo desenvolvido. Neste texto trabalharemos com uma abordagem mais prxima do
sistema sendo desenvolvido, pois estamos buscando uma ferramenta que se encaixe com a
anlise essencial.
O modelo conceitual construdo a partir da anlise de requisitos, em geral
simultaneamente ao desenvolvimento da anlise essencial. Na prtica, o primeiro modelo
essencial usar como memrias os objetos descritos no DER.
Mundo
Observado
Requisitos
Modelo
Conceitual
Esquema Conceitual
Modelo
Lgico
Esquema Lgico
Modelo
Fsico
Esquema Fsico
109
nos nossos modelos conceituais. No devemos confundir, porm, regras de negcio com
modelos de dados. Um relacionamento em uma regra de negcio pode representar uma
funo do sistema, enquanto um relacionamento no MER representa algo que deve pertencer
memria do sistema.
1.3.2 Modelo Lgico
O modelo lgico descreve a informao contida no sistema de acordo com uma
tecnologia adotada, sem utilizar, porm, detalhes de implementao. Ele descreve a estrutura
do banco de dados que ser processado por um SGDB.
nessa etapa que nos preocupamos com as principais questes de desempenho, como
escolha de ndices, particionamento, etc.
1.4
110
Cada entidade tem dois tipos de caractersticas importantes: seus atributos e seus
relacionamentos. Os atributos so caractersticas que toda a instncia de um tipo possui, mas
que podem variar entre as instncias. Uma instncia do tipo aluno tem os atributos nome
e ano de matrcula, por exemplo. Atributos caracterizam a informao que deve ser
guardada sobre uma entidade. S devemos colocar como atributos aquelas informaes que o
sistema precisa lembrar em algum momento. Assim, uma instncia de aluno no precisa ter
o atributo nome do animal de estimao em um sistema acadmico, pois apesar de ser algo
importante para o aluno propriamente dito, no tem importncia alguma para o sistema.
Cada caracterstica deve possuir um domnio. O domnio indica o conjunto de valores
vlidos para a caracterstica. No caso de nome, geralmente aceitamos qualquer seqncia
de caracteres, enquanto no caso de altura podemos aceitar apenas valores reais positivos
menores que 2,5.
Atributos eram originalmente descritos por crculos no modelo E-R. As notaes mais
modernas anotam os atributos dentro dos retngulos da entidade a que pertencem.
Finalmente, como indica o nome do modelo, entidades podem se relacionar entre si.
Essa caracterstica a principal fora do modelo de entidades e relacionamentos, pois permite
que, de certa forma, naveguemos no modelo.
Podemos indicar relacionamentos apenas pelas entidades envolvidas, como clientepedido, ou usar um termo que descreva o relacionamento cliente solicita pedido.
Modelos de Entidades e Relacionamentos para serem completos exigem tambm um
conjunto de restries. Algumas dessas restries, como a cardinalidade dos relacionamentos
que veremos a seguir, podem ser descritas em algumas (ou todas) notaes. Porm, a maioria
das descries muito complexa para ser descrita em um diagrama. Nesse caso so
necessrias anotaes ao diagrama descrevendo as descries. Isso pode ser feito em
linguagem natural ou em alguma notao formal especfica, dependendo de escolhas da
equipe de projeto ou do mtodo utilizado.
1.5
111
Figura
Significado
Entity name
Entidade
Relacionamento
1
Me
Value
Atributo
Notao de Ceri, Bertini e Navathe [B32], pouco difundida, mas com aspectos
tericos interessantes.
31
Deploramos o termo entidade fraca, que leva os alunos a acreditar que no devem existir entidades fracas
em um DER, associando o termo fraco ao conceito de errado,
112
Nome da
Entidade
Atributos
Identificadores
(Chave)
Empresa
CNPJ
NomeFantasia
NomeRegistro
Endereco
Telefone
Contato
Atributos
Figura 51. Uma entidade pode ser representada tambm dessa forma, bem
mais moderna e compacta que a proposta original. Esta a notao
utilizada no software Erwin (tanto no modelo IDEF1X e quanto na
Engenharia da Informao). Os atributos identificadores ficam acima de
uma linha divisria.
113
Um captulo compe uma e apenas uma novela e uma novela tem no mnimo um
captulo, podendo ter um nmero ilimitado deles.
Um ator atua em uma novela, podendo no atuar em nenhuma e uma novela tem
ao menos um ator, podendo ter vrios.
1.6
114
1.7
Entidades
Uma entidade uma pessoa, objeto, local, animal, acontecimento,
organizao ou outra idia abstrata sobre a qual o sistema deve se
lembrar alguma coisa.
Cada instncia de uma determinada entidade tem caractersticas
similares (mas no iguais), o mesmo comportamento e uma
identidade prpria.
Objetos tangveis
Papis exercidos
Eventos
Interaes
Especificaes
32
Novamente, lembro que apesar de usarmos a notao E-R para descrever regras de negcio, estamos falando
de duas atividades diferentes e que tem resultados diferentes (apesar de poderem, por coincidncia terem o mesmo
resultado).
115
Papis: representam papis assumidos pelas pessoas que esto envolvidas com o
sistema sendo analisado. Cuidado, pois no so apenas os usurios, nem
representam os cargos que as pessoas ocupam nas empresas necessariamente.
Exemplos so: aluno, professor.
James e Suzanne Robertson [B34] sugerem algumas regras para que verifiquemos se
um conceito deve ser realmente escolhido como uma entidade:
Toda entidade deve ter um papel nico e definido no negcio, se voc no pode
explic-la, provavelmente no precisa se lembrar dela.
116
Entidades devem ter mais de uma instncia. Se a instncia nica, ento no deve
ser uma entidade, mas uma informao constante, que parte do negcio da
empresa (uma regra de negcio?).
Relatrios
Sistemas j existentes
117
Definio
Exemplos
33
34
Devemos confessar que no temos a mesma preocupao com atributos, por exemplo.
35
118
Figura 56. Uma tela descrevendo uma entidade no software ERWIN 3.5.
Ateno para o fato que apesar de no cumprir todos os nossos
requisitos em campos distintos, apresenta vrios campos de anotao.
Aluno
Escola
NomeEscola
EnderecoEscola
CPF
NomeAluno
EnderecoAluno
NomePai
NomeMae
1.8
Relacionamentos
119
Devemos tentar obter apenas heranas totais e exclusivas, pois so mais fceis de
serem tratadas.
Dado um grupo de entidades candidatas a construir um relacionamento de herana,
devemos analisar se existe um atributo ou relacionamento que aplicvel a apenas um
subconjunto dessas entidades, se simplificamos o modelo e se aumentamos sua compreenso.
Ou seja, devemos usar a herana para aumentar a semntica do modelo sem causar excesso
de informao.
Outro relacionamento to comum que mereceu um tratamento especial em muitos
mtodos o relacionamento parte de. Esse relacionamento equivale abstrao de
composio. normal que utilizemos esse relacionamento apenas quando a parte s existe
em funo do todo, porm no uma exigncia muito forte.
Relacionamentos podem unir indiferentemente entidades do mesmo tipo ou entidades
de tipos diferentes. Quando relaciona entidades do mesmo tipo dizemos que um autorelacionamento. Ao especificar um auto-relacionamento devemos ter mais cuidado em
declarar os papis das entidades no relacionamento, alm de atentar para no produzir um
loop infinito no relacionamento.
Normalmente trabalhamos apenas com relacionamentos entre duas entidades. O
mtodo original de Chen permitia relacionamentos mltiplos. Atualmente transformamos
relacionamentos mltiplos em entidades.
O mesmo acontece com o uso de atributos no relacionamento. Apesar do mtodo
original permitir, atualmente criamos uma entidade para representar esse relacionamento.
120
Bertini et al. [B32] mostram algumas operaes que, aplicadas a um modelo e-r,
criam diagramas diferentes que podem representar uma mesma realidade. Assim, algo que foi
representado como uma entidade em um modelo pode ser representado como duas em outro,
ou um relacionamento em um modelo pode ser transformado em uma entidade que se
relaciona com as entidades originais (ou vice-versa) sem que haja uma representao falsa da
realidade. Pode acontecer de uma ou outra representao ser mais interessante em um
contexto.
Relacionamentos podem ser condicionais ou incondicionais, isto , uma entidade pode
ser obrigada a ter um relacionamento com outra ou no. Por exemplo: um automvel
obrigatoriamente fabricado em uma fbrica, mas nem todos os livros em uma livraria j
foram vendidos. Como veremos adiante, o fato de um relacionamento ser opcional
representado pela definio da cardinalidade mnima do relacionamento, que pode ser 0 ou 1.
Tambm importante notar que existem tambm relaes que ocorrem entre
relacionamentos. Dois relacionamentos podem ocorrer sempre juntos (contingentes) ou nunca
ocorrer juntos (mutuamente exclusivos). Existem mtodos que permitem anotar diretamente
no diagrama essas caractersticas, porm so pouco utilizados.
Tudo que no puder ser anotado no diagrama dever ser anotado em um
documento associado. O principal tipo de anotaes so as regras de negcio que funcionam
como restries, como um professor s pode dar aulas para alunos da escola em que
trabalha. Restries so geralmente impossveis de desenhar diretamente no diagrama36.
Normalmente associamos restries a ciclos no diagrama. Por exemplo, se temos que
fazer pedidos de livros para uma editora, ento temos um relacionamento entre livro e pedido,
um entre livro e editora e um entre editora e pedido, formando um ciclo. A restrio que
um pedido s pode conter livros da editora indicada no pedido. possvel desenhar o
diagrama sem ciclos, eliminado, por exemplo, a ligao entre pedido e editora, porm
aconteceriam duas coisas: primeiro teramos que escrever uma restrio que possivelmente
mais complexa (um pedido s pode conter livros da mesma editora), segundo no teramos
nenhuma indicao no diagrama que o pedido feito para a editora, exigindo uma nova regra.
Finalmente, a falta do ciclo funciona tambm como falta de indicao que existe uma
restrio, pois todo ciclo um aviso de restrio37.
1.8.1 Cardinalidade
Para bem representar um relacionamento, devemos indicar a cardinalidade desse
relacionamento, isto , quantas vezes uma instncia da entidade pode se relacionar com
instncias de outras entidades.
Veja por exemplo o relacionamento me-filha. Uma filha s pode ter uma me, mas
uma me pode ter vrias filhas.
Existem trs tipos bsicos de relacionamentos: o 1:1, um para um, o 1:N, um para
muitos, e o N:M, muitos para muitos. Nesse caso s estamos falando da cardinalidade
mxima. A cardinalidade mxima indica quantas vezes uma entidade pode aparecer em um
relacionamento.
36
Ross, porm, prope uma linguagem grfica que permite a definio de restries. A linguagem muito
complexa e no existe ainda nenhuma ferramenta CASE que a suporte.
37
121
o (1,1) :(0,1)
122
Relacionamentos 1 para N
o
(0,1):(0,N)
123
Pode ser usado quando algo para existir deve ter ao menos uma
parte, mas estas partes tem vida prpria, mesmo s podendo ser
usadas em um lugar.
Relacionamentos N para M
o (0,N):(0,N)
124
o (0,N):(1,N)
125
(0,1)
(0,1)
(0,1)
(1,1)
(1,1)
(0,N)
(0,N)
(0,N)
(1,1)
(1,N)
(1,N)
(0,N)
(1,N)
(1,N)
(0,1)
(1,N)
(1,1)
(0,1)
(0,N)
(1,1)
O nome escolhido para o relacionamento pode estar na voz ativa (me gera filho) ou
na voz passiva (filho gerado por me). Algumas notaes permitem que se usem os dois
nomes (um por cima e um por baixo da linha de relacionamento). Geralmente se usa o nome
que permite a leitura do relacionamento da esquerda para a direta na parte de cima da linha
(ou se d preferncia a esse nome quando apenas um pode ser utilizado).
126
CPF
NomeAluno
EnderecoAluno
NomePai
NomeMae
1.9
Atributos
Nome
Descrio
Domnio (valores vlidos, como inteiro, real, string ou uma lista de valores, ou
ainda tipos criados pelo projetista).
Exemplos
1.10
Identificando Entidades
38
Especificaes ou descries
127
Automvel
Automvel
Placa
Chassis
Chassis (AK1.1)
Modelo
Ano
Placa (AK1.1)
Modelo
Ano
1.10.2
Relacionamentos Identificadores
Algumas instncias so identificadas tambm, ou at mesmo unicamente, por seus
relacionamentos. Uma forma de denotar isso utilizar uma linha mais grossa no
relacionamento ou algum smbolo especfico.40
39
40
128
Produto
Nome
NomeFantasia
NomeRegistro
Telefone
Contato
Preco
Descrio
Empresa
CNPJ
Produto
Nome
NomeFantasia
NomeRegistro
Telefone
Contato
Preco
Descrio
Empresa
Produto
CNPJ
NomeFantasia
NomeRegistro
Telefone
Contato
produz
Nome
CNPJ (FK)
Preco
Descrio
Produto
CNPJ
NomeFantasia
NomeRegistro
Telefone
Contato
Nome
produz
CNPJ (FK)
Preco
Descrio
1.11
129
um ou mais
zero ou mais
zero ou um
um e apenas um
possui
Pessoa
Apartamento
possudo
possui
Pessoa
Apartamento
possudo
A cardinalidade indicada por trs smbolos usados na ponta da linha que indica o
relacionamento: uma linha indica 1, um crculo indica 0 (zero), e um p-de-galinha indica
130
n. Dessa forma podemos anotar o mnimo e o mximo da cardinalidade usando dois smbolos
em cada ponta.
O nome do relacionamento colocado acima ( esquerda) da linha que o indica,
sendo o nome do relacionamento inverso colocado abaixo ( direita). Normalmente se l a
notao partindo de uma entidade, lendo o nome do relacionamento, lendo a cardinalidade da
ponta oposta e finalmente o nome da segunda entidade.
Nessa notao os atributos podem ser colocados dentro da caixa que representa as
entidades, como apresentado na prxima seo.
1.11.1
Exemplos de notaes
Vamos descrever a seguir o seguinte modelo em vrias notaes:
131
Figura 69. Modelo da locadora, com atributos e os tipos (com cones) dos
atributos, notao EI, software ERWIN 3.5.
132
Fita
Aluga
Cliente
Contm
Filme
Atua
Dirige
Ator
Diretor
133
Fita
(0,n)
Aluga
(0,n)
Cliente
(1,1)
Contm
(1,n)
(1,n)
Atua
(1,n)
Ator
Filme
(1,n)
Dirige
(1,n)
Diretor
1.11.2
Notao adotada
Podemos adotar qualquer notao, contanto que seja utilizada de forma consistente
em um projeto ou em uma empresa. No curso que ministramos, porm, sugerimos as
seguintes notaes: IDEF1X ou IE. No recomendamos mais o uso de notaes com
losangos.
1.12
Tcnica Top-Down
Na tcnica top-down, desenvolvemos o modelo ER partindo de entidades altamente
abstratas e aplicando transformadas que permitem encontrar entidades menos abstratas e mais
representativas do sistema sendo desenvolvido. O processo termina quando todos os
requisitos foram representados.
Essa tcnica necessita que o analista possa construir um modelo abstrato em sua
mente, o que pode ser difcil em grandes sistemas.
Heuser [B36] sugere os seguintes passos para essa tcnica:
134
A seguir veremos essas transformaes, tratando algumas vezes de uma questo que
s abordada um pouco mais tarde, as formas normais.
Transformar uma entidade em duas entidades relacionadas: muitas vezes dentro de uma
entidade estamos na realidade olhando duas entidades mais especficas. Duas formas so
possveis: a entidade original existe, mas contm dentro dela outra entidade, ou a entidade
original na verdade dividida em duas entidades. No primeiro caso estamos extraindo a nova
entidade da entidade original. No segundo caso estamos detalhando parte do nosso modelo. O
primeiro caso pode se confundir naturalmente com o caso a seguir, onde um atributo
transformado em uma entidade, dependendo do momento da especificao. Muitas vezes uma
entidade na verdade contm dados que compe duas entidades.
Transforma atributo, ou conjunto de atributos, em entidade e relacionamento: isso pode
acontecer quando um atributo mltiplo (quebrando a primeira forma normal), uma
especificao (por exemplo, uma marca), ou ainda em casos que quebram a segunda e terceira
forma normal.
Criao de entidades mais especficas: algumas vezes identificamos inicialmente uma
entidade que um tipo muito geral e mais tarde descobrimos tipos especficos que representam
melhor o domnio da aplicao.
Transformar uma entidade em vrias entidades no relacionadas: isso no muito normal,
pois entidades no relacionadas normalmente no se encontram modeladas dentro de uma mesma
entidade, mesmo que temporariamente. Mesmo assim, pode ser um primeiro passo para depois
descobrirmos qual o relacionamento que as une.
Transformar um relacionamento em dois relacionamentos em paralelo: apesar de no
acontecer muitas vezes em um mesmo sistema, uma transformao comum. Acontece quando
entendemos que duas entidades so relacionadas e apenas mais tarde compreendemos que elas
so relacionadas de vrias formas diferentes e no de uma s forma.
Transformar um relacionamento em uma entidade: essa modificao muito comum. Muitas
vezes nossa compreenso inicial de um evento ou de uma relao qualquer entre duas entidades
muito simples. Mais tarde, compreendendo melhor esse relacionamento, entendemos que mais
interessante represent-lo como uma entidade.
135
Um atributo de uma
entidade pode ser
transformado em uma
entidade relacionada
Um relacionamento pode
ser transformado em dois
relacionamentos em
paralelo
Um relacionamento pode
ser transformado em uma
entidade relacionada com
as duas entidades ligadas
pelo relacionamento
Um relacionamento pode
receber um
relacionamento
136
1.12.2
Tcnica Bottom-Up
Na tcnica Bottom-Up, partimos das partes para construir o todo, partindo dos
conceitos mais elementares para construir conceitos mais complexos. Os requisitos so
decompostos, analisados de forma independente e agregados em um esquema global [B32].
Atributos levantados
podem formar uma
entidade
Entidades j levantadas
podem ser unificadas em
uma estrutura de
generalizao/
especializao
Entidades no
relacionadas podem
necessitar de um
relacionamento entre elas
1.12.3
Tcnica Inside-Out
Inicia nos conceitos mais importantes e navega em direo aos menos importantes.
comum que modelos E-R se desenvolvem em torno de algumas entidades que representam os
conceitos mais importantes de um domnio ou aplicao. A partir desses conceitos buscam-se
entidades relacionadas, possivelmente usando tanto operaes das tcnicas top-down como
bottom-up.
1.12.4
Tcnica Mista
Normalmente, modelos E-R no so desenvolvidos de forma Top-Down ou Bottomup, mas sim de uma forma mista, principalmente quando a uma grande quantidade de
entidades no esquema. Dessa forma, um esquema inicial de alto nvel dividido, de forma
que cada partio possa ser considerada separadamente.
137
1.12.5
Equivalncia de modelos
Dois modelos so equivalentes quando representam uma mesma realidade.
1.13
Muitas vezes uma aplicao necessita que sejam representados aspectos temporais.
Isso acontece, por exemplo, quando o preo de um contrato depende de sua data de
contratao, de acordo com vrios planos.
Dois efeitos so interessantes de serem discutidos: a necessidade de manter um
histrico do valor de um atributo (por exemplo, para responder a perguntas como quanto
custava uma ligao telefnica no dia 14 de novembro de 2001), como manter um histrico
de relacionamentos (por exemplo, para saber quais fitas o cliente alugou no passado,
permitindo que uma fita seja alugada vrias vezes).
No caso de necessitarmos de um histrico do valor do atributo, necessrio criar uma
nova entidade que represente o valor e a data de validade desse valor, sendo que essa
entidade se relaciona com a entidade original.
No caso de necessitarmos que um relacionamento seja mantido no histrico,
necessrio criar atributos que indiquem a validade desse relacionamento. Na prtica, o
relacionamento se torna uma entidade.
1.14
Formas Normais
As formas normais foram criadas para o modelo relacional44, para serem aplicadas no
modelo lgico, porm existem vantagens em utiliz-las no modelo conceitual, pois melhoram
a qualidade do modelo em relao a alguns quesitos45. O ato de normalizar implica na criao
de algumas tabelas que no so necessariamente criadas pelo analista preocupado apenas com
o modelo conceitual, influenciando sua longevidade e simplicidade total, diminuindo a
42
Mas no precisam ser obrigatoriamente substitudos. Modelos conceituais admitem e at ficam mais claros
com a presena de relacionamentos nxm.
43
Principalmente relacionamentos (1,1):(1,1). Qual o motivo de ter um par de entidades que s podem existir
juntas no sistema e considerar como entidades distintas?
44
Se voc tem dvidas sobre a diferena entre o modelo relacional e o modelo de entidades e
relacionamentos: o modelo relacional fala sobre a representao de dados como tuplas (relaes matemticas) em
tabelas, o modelo de entidades e relacionamentos fala da representao do mundo real em um modelo abstrato
composto de tipos de entidades e relacionamentos entre essas entidades.
45
Alguns autores no sugerem as formas normais em seus modelos conceituais e normalizam apenas seus
modelos lgicos. Essa prtica pode ser prejudicial ao entendimento do problema, pois as formas normais nos auxiliam
a desenvolver um modelo mais correto.
138
1.14.1
Primeira Forma Normal (1FN)46
Algumas definies equivalentes, prprias do modelo relacional:
Diz-se que uma tabela est na primeira forma normal quando todos os seus
atributos so atmicos.
Diz-se que uma tabela est na primeira forma normal se cada coluna contm
apenas um valor e se cada linha contm as mesmas colunas.
Diz-se que uma tabela est na primeira forma normal quando no contm tabelas
aninhadas.
Gerente
Empregado
Jim
Mary
Renee
Mike
Joe
Alan, Tim
46
Uma tabela (ou entidade) que no est na primeira forma normal denotada como N (no normalizada) ou
NFNF (Non-first normal form), ou ainda NF2
47
Essa regra foi abandonada na prtica pela necessidade que temos de trabalhar com esses tipos de valores.
139
Gerente
Empregado
Jim
Susan
Jim
Rob
Jim
Beth
Mary
Alice
Mary
John
Mary
Asim
Renee
Mike
Joe
Alan
Joe
Tim
Turma
Cdigo
smallint
Nome
Horrio
Alunos
String
smalldatetime
Lista de Alunos
Figura 76. Uma tabela no normalizada pode conter uma lista em um dos
campos.
FIGURA A SER RECUPERADA
Figura 77. Normalizando a tabela turma, aparece a tabela aluno, que
estava escondida em um atributo no atmico.
140
Ttulo
Ano
Durao
Tipo
Estdio
Estrela
Guerra nas
Estrelas
1977
124
Cor
Fox
Carrie Fisher
Guerra nas
Estrelas
1977
124
Cor
Fox
Carrie Fisher
Guerra nas
Estrelas
1977
124
Cor
Fox
Carrie Fisher
Might Ducks
1991
104
Cor
Disney
Emilio Estevez
Waynes
World
1992
95
Cor
Paramount
Dana Carvey
Waynes
World
1992
95
Cor
Paramount
Mike Meyers
Podemos verificar que essa tabela est na 1FN, porm ainda apresenta os seguintes
problemas, que sero resolvidos pelas prximas duas formas normais:
Redundncia
Atualizao
Eliminao
Incluso
Uma dependncia (funcional) parcial ocorre quando uma coluna depende apenas de
parte de uma chave primria composta.48
Se A dependente funcional de X, usamos a notao X -> A.
Uma tabela est 2FN se est na 1FN e cada uma das colunas no pertencentes chave
primria no for dependente parcialmente dessa chave.
48
Logo se a chave primria for simples, a tabela na 1FN est automaticamente na 2FN.
141
Primeiro devemos notar que isso significa que uma tabela cuja chave seja formada por
um nico atributo est automaticamente na 2FN.
1.14.4
Aluno
Escola
NomeEscola
EnderecoEscola
CPF
NomeAluno
EnderecoAluno
NomePai
NomeMae
Uma entidade est na terceira forma normal se est na 2FN e se nenhum atributo no
pertencente chave fica determinado transitivamente por esta.
A segunda e terceira formas normais fazem com que cada atributo que no seja
identificador fornea um fato sobre a entidade indicada pela chave e apenas pela chave [XXX
Kent 83]. Normalizar corresponde a criar relacionamentos 1:N ou 1:1.
1.14.5
142
Vendedor
Joo
Joo
Jos
Empresa
Ford
GM
Ford
Empresa
Ford
Ford
GM
GM
Produto
Caminho
Automvel
Caminho
Automvel
Vendedor
Joo
Joo
Jos
Produto
Caminho
Automvel
Automvel
1.14.6
1.15
Outros termos
1.16
Verificando o Modelo
Alguns erros comuns:
Usar uma entidade como atributo em outra entidade (e no fazer o relacionamento, que
seria o correto).
143
Esquecimento do aspecto temporal, isto , dos histricos das transaes, como atributos
que mudam de valor com o tempo ou relacionamentos que so alterados com o tempo.
Nesse caso, pode ser necessrio criar novas entidades.
Entidades nicas, entidades que possuem apenas uma instncia esto geralmente erradas.
Entidades sem atributos: geralmente erradas, a menos que estejam sendo usadas no lugar
de um relacionamento n x m (mesmo assim, no seriam necessrias na modelagem
conceitual).
1.17
Leitura Complementar
144
O Modelo Funcional tem como objetivo definir o que49 o sistema deve fazer, ou
seja, as funes que deve realizar para atender seus usurios.
Na Anlise Essencial fazemos essa definio de acordo com um conjunto de
princpios que nos permite escolher um modelo funcional especfico entre vrios possveis, o
Modelo Essencial.
VIII.1
Perspectiva Histrica
49
Devemos entender que quando nos propomos a descobrir o que o sistema deve fazer, estamos simultaneamente
evitando nos preocupar com como o sistema deve fazer, o que ser feito nas fases mais avanadas do
desenvolvimento.
50
Originalmente chamadas de entidades externas. Esse nome no utilizado neste texto para no confundir com o
conceito de entidade (de dados). Atualmente, nos modelos orientados a objeto, conhecido como ator.
51
145
Em 1984, dezesseis anos antes de este texto ser escrito52, McMenamim e Palmer
[B17] conseguiram definir de forma clara um mtodo de desenvolvimento que permite
dividir, sem sombra de dvidas, o que essencial do que encarnao. Essencial e
Encarnao podem ser vistos como uma nova maneira de definir o que lgico ou
fsico, mas vamos ficar com os nomes dados por Palmer e McMenamim para evitar toda
carga cognitiva trazida pelos nomes lgico e fsico. Eles tambm permitiram que
descobrssemos, com perguntas simples, se um requisito do sistema verdadeiro ou falso.
Esse mtodo uma evoluo da Anlise Estruturada e conhecido como Anlise Essencial.
Yourdon, mais tarde, vai denominar uma nova verso da Anlise Estruturada, baseada na
Anlise Essencial, de Anlise Estruturada Moderna. Existem pequenas diferenas na forma
de Palmer e McMenamim e Yourdon. Esse texto baseado em verses ainda mais modernas,
principalmente nos textos de [B34] e Ruble [B39], mas ainda mantendo a essncia da
Anlise Essencial.
VIII.2
A Anlise Essencial
VIII.3
A neutralidade tecnolgica
52
impressionante que tanto tempo depois da criao e divulgao da Modelagem Essencial e da Anlise Estruturada
Moderna, tantas pessoas ainda trabalhem com as tcnicas anteriores e, surpresos, declarem ser totalmente ineficazes.
o equivalente a esperar obter rendimento e velocidade de modelos atuais em automveis de 30 anos atrs!
146
VIII.3.1
O Oramento para a Complexidade
Esse princpio nos orienta a modelar um sistema que possamos compreender. Para
isso devemos manipular a complexidade do modelo de forma a manter tanto o todo como
cada uma de suas partes em um nvel de complexidade compatvel com a inteligncia
humana.
Para isso utilizamos tcnicas de particionamento do sistema e o controle de
caractersticas que aumento a complexidade do modelo, entre elas:
VIII.3.2
A Neutralidade Tecnolgica
O princpio da neutralidade tecnolgica exige que um modelo essencial no inclua em
nenhuma de suas partes indcios da tecnologia de implementao [B17].
Essa exigncia, apesar de importante, das mais quebradas pelos analistas. Isso
acontece por que geralmente j sabemos qual a tecnologia em que vamos implementar o
sistema. importante manter a neutralidade no s para permitir uma anlise mais objetiva
do verdadeiro problema do usurio, mas tambm para aumentar a durabilidade dessa anlise.
Alguns autores j criticam a neutralidade tecnolgica, ou simplesmente passam por
cima dessa questo, colocando preocupaes de tecnologia j nessa fase. A questo tem
relao com a necessidade de se assumir algumas premissas para obter solues mais
eficientes. Em todo caso, na definio de sistemas de informao, a metfora eventoatividade-memria fornecida pela anlise essencial na maioria dos casos suficiente para
fornecer todo o arcabouo necessrio para uma boa anlise de requisitos. Devemos ento no
s seguir esse princpio, mas tambm us-lo como ferramenta de conferncia em cada um dos
nossos passos, verificando se h ou no comprometimento com uma tecnologia especfica,
corrigindo cada ponto onde for encontrado esse comprometimento para uma especificao
tecnologicamente neutra.
VIII.3.3
A Tecnologia Interna Perfeita
O sistema deve ser modelado com a suposio que a tecnologia interna ao sistema
perfeita.
Por tecnologia interna perfeita queremos dizer que todos os recursos do sistema so
ideais. A velocidade do sistema perfeito infinita, significando que no h espera para
conseguir um resultado. A memria de um sistema perfeito tambm no possui limitaes,
podendo guardar qualquer quantidade de informao por um perodo indeterminado, sem
147
nenhum atraso no tempo de busco. O sistema perfeito nunca apresenta falhas ou necessidade
de manuteno.
Devemos, porm, lembrar que no fazemos essa suposio sobre a tecnologia externa
ao sistema, apenas sobre a tecnologia interna ao sistema. Alm disso, essa suposio s
feita na fase de anlise, sendo esquecida na fase de projeto, onde temas como velocidade,
tamanho de memria e gerncia de riscos passam a fazer parte de nossas preocupaes, junto
com outras caractersticas que, apesar de no fazer parte da suposio de um sistema perfeito,
tambm so postergadas para a fase de projeto, como controle de acesso (segurana).
Na prtica interessante imaginar o sistema como um gnio da lmpada, capaz de
fazer qualquer coisa em tempo zero, se possuir a informao necessria.
VIII.3.4
O Modelo Essencial Mnimo
Os princpios anteriores vo definir claramente a nossa forma de trabalho, porm
muitas vezes sero inteis para ajudar a escolher qual o o modelo essencial entre dois
modelos possveis. Precisamos, porm, para garantir que nosso mtodo tem uma resposta
nica, ter uma forma de escolher, entre dois modelos, qual o modelo essencial, mesmo que
eles cumpram todos os requisitos anteriores.
O princpio do modelo essencial mnimo exige que, entre dois modelos possivelmente
essenciais, a definio menos complicada o modelo essencial. Assim possumos uma forma
clara de escolha.
VIII.3.5
O Princpio da Ausncia de Surpresas
Esse princpio no faz parte da anlise essencial, mas foi proposto pelo GUIDE MVS
group [B27] para auxiliar a anlise de negcios. Ele essencialmente auto-explanatrio. O
princpio conservado quando o produto:
148
VIII.4
A Essncia
A essncia do sistema tudo que precisaria ser includo no sistema para que o mesmo
funcionasse quando implementado em um ambiente de tecnologia perfeita. Isso compreende
velocidade infinita no processador, tamanho infinito de memria, custo nulo para todas as
operaes, infalibilidade, etc.
Esse conceito ser de grande valia quando estivermos analisando se um requisito
verdadeiro ou falso. A primeira pergunta que faremos Esse requisito seria necessrio se
tivssemos um computador perfeito? Se a resposta for no, o requisito falso.
Um sistema de tecnologia perfeita como um gnio da lmpada. Se quisermos que o
gnio da lmpada pague nossos funcionrios, ainda teremos de alguma forma dizer quem so
nossos funcionrios, logo cadastrar funcionrios um requisito verdadeiro de um sistema
de pagamentos de funcionrios.
Sistemas essenciais possuem dois tipos de componentes: atividades e memrias.
Cada tarefa que o sistema de tecnologia perfeita tem que realizar para cumprir a finalidade do
sistema uma atividade essencial. Essas atividades existem em duas formas: as atividades
fundamentais e as atividades custodiais. As atividades essenciais, para poderem executar
suas tarefas, precisam guardar informao. Essa informao guardada em memrias. Da
forma que tratamos a anlise, a memria do sistema, vista como um todo, o modelo
conceitual de dados, discutido no Captulo VI. Cada atividade essencial, porm, pode ter
apenas uma viso parcial dessa memria, de acordo com suas necessidades.
As atividades fundamentais so aquelas que justificam a existncia do sistema
[B17]. Certamente, ao comprar um sistema, precisamos fundamentalmente das sadas que ele
nos disponibilizar. Assim, atividades fundamentais precisam incluir alguma sada para
agentes externos. Suponha que voc deseja comprar um sistema de controle de ponto para sua
empresa. Vrias atividades so necessrias ou possveis nesse sistema, porm poucas so
fundamentais. A atividade fundamental , certamente, informar a presena de cada
funcionrio, pois para saber disso que voc comprou o sistema. As atividades fundamentais
necessitam de dados para funcionar, que podem ser fornecidos diretamente por um agente
externo, um ser humano ou outro sistema que faz parte do ambiente, interagindo com o
sistema, ou estar guardada em uma memria.
As atividades custodiais se destinam a criar e manter as memrias necessrias para o
funcionamento das atividades fundamentais. Um sistema, mesmo de tecnologia perfeita, no
pode criar dados sozinho. Em ambos os exemplos, da folha de pagamento ou da lista de
presena, precisamos saber quem so nossos funcionrios. Manter essa lista de funcionrios
uma atividade custodial. Atividades custodiais, fique bem claro, so essenciais ao
funcionamento do sistema. Acontece que, enquanto o usurio conhece a grande maioria das
atividades fundamentais que precisa, muitas atividades custodiais ficam de fora de sua lista.
Assim, ao analisar um sistema, devemos estar sempre alerta para atividades custodiais
necessrias para manter nossas memrias em ordem.
149
VIII.5
Agentes Externos
54
55
150
56
Atualmente fcil entender como o vendedor pode ser substitudo por uma interface Web e o sistema manter sua
essncia.
57
A modelagem essencial no est preocupada com questes como segurana, backup, etc.
151
VIII.6
Eventos Essenciais
Evento
Sadas
Sistema
Parado
Sistema em Funcionamento
Sistema
Parado
Sadas
Tempo
Figura 80. O esquema mostra como o sistema reage a um evento. Um
Sistema parado s pode comear a funcionar ao receber um evento. A
partir desse evento, realiza uma srie de processamentos que podem
envolver sadas para o mundo externo, at parar novamente. No podem
existir outros eventos ou entradas do mundo externo durante o
funcionamento, porm possvel consultar as memrias, que so internas
ao sistema.
Muitas vezes o iniciante na anlise essencial imagina que ser travado um dilogo
com o usurio durante a atividade. Esse dilogo interno a uma atividade no existe na anlise
essencial. O estmulo relacionado ao evento, isto , o fluxo de dados que parte do agente
58
59
Yourdon no obedece essa regra, permitindo que algumas entidades externas forneam informaes sob demanda
de uma atividade essencial.
152
externo em direo atividade, possui toda a informao necessria para realizar a atividade,
incluindo partes opcionais. Caso o dilogo seja realmente necessrio para o funcionamento
do sistema, ento temos na verdade dois, ou mais, eventos e suas respectivas atividades. Isso
acontece porque uma atividade, por definio, no pode ficar esperando por uma entrada de
dados. A regra que usamos : se o sistema para, s pode voltar a funcionar com um
evento. O mesmo raciocnio se aplica quando falamos de vrios agentes externos.
Segundo a anlise essencial, no existem eventos internos ao sistema, isto , no
dizemos que um processo do sistema se inicia por causa de um evento causado por outro
processo. A anlise essencial parte do conceito que eventos iniciam atividades essenciais e
que essas atividades so executadas at que todas as respostas necessrias sejam geradas. O
sistema ento para e fica esperando pelo acontecimento de outro evento de essencial para
voltar a funcionar. Devemos ter bastante ateno regra que uma atividade contm a resposta
completa para um evento (e apenas para um nico evento), pois ela que vai definir o
particionamento do sistema sendo modelado.
Outra caracterstica da anlise essencial que os eventos so vistos por dentro do
sistema. Assim eles so descritos tendo como sujeito o agente externo que os iniciam, como
em Aluno solicita matrcula60.
Recapitulando, os eventos acontecem fora do sistema, correspondem a um estmulo
que cruza a fronteira do sistema de fora para dentro e so vistos e descritos na perspectiva de
um ser imaginrio que habita sistema.
Tambm importante frisar que atividades essenciais no se comunicam
diretamente, isto , no se comunicam por meio de fluxos de dados. Toda comunicao
entre atividades essenciais feita por meio do uso da memria do sistema
VIII.6.1
Propriedades dos eventos
Um evento pode ser caracterizados pelas seguintes propriedades61:
O evento relevante, isto , o sistema deve fazer alguma quando ele ocorre.
VIII.6.2
Tipos de Eventos
Cada evento pode ser externo ou temporal. Um evento externo quando parte do
ambiente para dentro do sistema. Um comando ou um pedido do usurio, por exemplo. Um
evento temporal quando provocado por uma mudana no tempo, como um alarme de
relgio ou uma data no calendrio.
60
A frase pode ser lida como significando Aluno solicita matrcula ao sistema.
61
Ruble, D.A. Use Cases that Work: Using Event Modelling to infuse rigor and discipline in Use Case Analysis.
White Paper. Olumpic Consulting Group.
http://www.ocgworld.com/doc/Use%20Cases%20that%20Work.pdf (29/9/2005)
153
No-Eventos
Eventos esperados formam uma categoria importante, pois sabemos que no mundo
real, quando um evento esperado no acontece (o pagamento de uma conta, por exemplo),
pode ser necessrio tomar uma atitude especfica. Dizemos ento que eventos esperados
podem necessitar que sejam definidos no-eventos. Esse o nome que damos para eventos
que acontecem em funo de outro no ter acontecido, possivelmente a partir de um prazo,
como na sentena: uma semana aps esgotar o prazo de pagamento, enviar lembrete.
Novamente, o nome no-evento pode causar confuso. Um no-evento um evento, em
especial, um evento temporal relativo.
Um s evento esperado pode necessitar de vrios no eventos, que ocorrem
normalmente em prazos distintos. Assim, se temos um evento esperado cliente paga conta,
at o dia 30 do ms, podemos ter vrios no eventos para os prazos de 1 dia, 1 semana, 1
ms, 3 meses e 1 ano, por exemplo.
Um no-evento um evento temporal relativo que deve acontecer se
um evento esperado (agendado) no ocorre, possivelmente
considerando um prazo.
62
eventos temporais podem ser implementados como eventos internos, mas no necessariamente. Isso costuma causar
confuso, pois temos o hbito imediato de pensar na implementao e de associar a proibio de eventos internos na
anlise como a proibio de eventos internos na implementao. Exigimos apenas, na anlise essencial, que no
existam eventos essenciais internos. A implementao no est limitada por essa regra.
154
Eventos Essenciais
Eventos Externos
Esperados
No Esperados
Eventos Temporais
Absolutos
Relativos
No-Evento
VIII.6.3
Um Exemplo Esclarecedor
Vamos tentar entender melhor a motivao para termos uma regra to rgida sobre um
evento s receber dado de um agente externo.
Imagine um sistema para uma loja de automveis onde o mecnico, um agente
externo, faz um pedido de pea. Esse pedido anotado e repassado, pelo sistema, para outro
sistema, o sistema de estoque, que outro agente externo, que responder se a pea est
disponvel ou no. Quando o sistema de estoque responder, ento avisaremos o mecnico da
disponibilidade da pea.
Segundo nossa regra, temos os seguintes eventos:
155
VIII.6.4
Habilitando Eventos
Da mesma forma que um evento esperado pode precisar de um no-evento,
interessante tambm perceber que muitos eventos esperados s podem acontecer caso outro
evento acontea antes. Por exemplo, em um sistema de controle de prestaes, Cliente paga
parcela de prestao normalmente um evento esperado, porm ele s pode acontecer
depois que Cliente solicita crdito ocorre. Dizemos que um evento habilita o outro. Isso
equivale a uma mudana no estado do sistema que deve ser anotada em alguma memria.
Em muitos sistemas podemos ver eventos sendo habilitados por outros eventos.
VIII.7
Onde prazo pode ser absoluto ou relativo a outro evento ou resposta de evento. Como
em: Fornecedor envia produtos pedidos, at 30 dias depois do pedido.
A sintaxe para definir eventos temporais :
<condio temporal>, (hora|dia|etc.) de <verbo no infinitivo> <objeto>
ou simplesmente
63
E possuem, em algumas variaes de DFD, uma notao especfica, utilizando uma seta tracejada em vez de slida.
156
Como em: Todo dia 30, dia enviar declarao de vendas ou dia 30, enviar
declarao de vendas.
A sintaxe para um no evento :
<condio de no acontecimento de um evento>, <prazo ou condio temporal>, <verbo no
infinitivo>, <objeto>
Caso o aluno no apresente o boletim assinado, 10 dias depois, enviar aviso aos pais.
Gerente imprime relatrio (quem imprime o sistema, o gerente solicita, alm disso,
relatrio um termo muito vago).
VIII.8
157
VIII.8.1
Classificando os Eventos
Apesar de termos descrito os eventos como podendo ser de vrios tipos, no
extremamente necessrio identificar todos os eventos. Porm, fazer isso traz a vantagem de
podermos testar a forma como o evento est descrito. Aqui esto algumas perguntas de teste:
Eventos externos:
o So esperados ou agendados?
o So no-esperados ou no agendados?
o So uma solicitao ou possuem dados?
Eventos temporais:
o S ocorrem dessa forma?
o So realmente temporais ou podem ser calculados antes (sendo, nesse caso, uma
sada do sistema)?
o So Relativos?
So no-eventos?
158
Classificao
Externo
Temporal
Noevento
Nmero
Evento
Esperado
Gerente cadastra
distribuidora
A distribuidora no
entregou...
NoEsperado
Relativo
Absoluto
(p/
evento)
(5)
VIII.8.2
Encontrando Eventos
Os principais eventos so os pedidos que so feitos ao sistema. Eles normalmente
podem ser encontrados em formulrios, memorandos, documentos que chegam e observando
o atendimento que os usurios do sistema prestam.
Relatrios devem ser gerados por algum evento. Eles, porm, so as respostas aos
eventos e no os eventos propriamente ditos. Todo evento externo esperado deve precisar de
um e pode precisar de mais no eventos.
No mundo real encontramos ainda outras caractersticas que indicam novos eventos:
Pedidos normalmente podem ser cancelados.
O que enviado pode retornar, exigindo uma ao especfica.
Documentos podem ser perdidos e segundas vias podem ser necessrias
Fiscais (ICMS, ISS, Trabalho,...) podem aparecer e solicitar relatrios (que podem
ser obrigatrios em um sistema).
Processos que ocorrem em uma ordem podem ter que ser acelerados para atender
um cliente preferencial.
159
Pagamentos podem ser feitos com o valor errado, para menos ou para mais, exigindo
emisso de novas cobranas ou de crditos.
VIII.8.3
Simplificando Eventos
Segundo a anlise essencial original, as operaes de incluir, eliminar e alterar uma
memria exigiriam pelo menos trs eventos distintos, como em:
Proprietrio cadastra produto
Proprietrio altera produto
Proprietrio apaga produto
Isso, porm, pode no representar a verdade e ser muito complicado em alguns
sistemas. Na vida real fcil termos um sistema com 30 a 40 entidades. Isso exigiria no
mnimo 90 eventos para cumprir as necessidades de manter a memria. No fazemos isso na
prtica.
Em primeiro lugar, no criamos atividades custodiais que no so necessrias. Isso
acontece quando a memria j gerenciada em uma atividade fundamental. Em segundo
lugar, quando uma memria necessita de uma funcionalidade que permita tratar esses trs
casos, podemos utilizar uma notao mais simples:
Proprietrio mantm produtos
VIII.9
Para cada evento o sistema deve executar uma resposta. Essa resposta representada
pela atividade essencial correspondente ao evento e produz dois tipos de resultados:
alteraes no estado do sistema e emisso de informao para o ambiente (alteraes do
estado do ambiente).
Uma alterao no estado do sistema significa que uma ou mais memrias foram
alteradas. Nisso inclumos a criao de registros, a mudana de valores dentro de registros e a
eliminao de registros.
Como emisso de informao temos vrias formas de emisso de relatrios, feedback
para os agentes externos e comandos para atuadores externos.
Cada evento pode exigir uma ou mais repostas, obrigatrias ou opcionais, do sistema.
O processamento de todas essas respostas, juntas a atividade essencial.
Algumas respostas a eventos so bvias a partir do nome do evento, como por
exemplo, em Gerente solicita relatrio de vendas. Uma resposta bvia relatrio de
vendas. Porm, poderamos, em um caso real, ter outras respostas, como por exemplo,
aviso ao diretor.
Logo aps levantar a lista de eventos importante levantar a lista de respostas para
cada evento. Apesar de no ser importante classificar cada resposta, recomendvel que o
analista saiba se a resposta opcional ou obrigatria, e, caso seja opcional, estar preparado
para fornecer, mais tarde, as regras que indicam sua necessidade.
VIII.9.1
Confundindo eventos e respostas
muito comum tambm que o iniciante confunda uma resposta a um evento com um
evento. Para isso podemos usar uma ttica de verificao: perguntar por que um evento
acontece. Se a resposta for Esse evento acontece porque o usurio X enviou um dado ou
160
VIII.10
A Memria do Sistema
VIII.10.1
Eventos x Entidades (Matriz CRUD)
A Matriz CRUD uma tabela que relaciona processos e dados, podendo ser utilizada
em diferentes momentos do desenvolvimento de software. Nessa tabela representamos
processos nas linhas e dados nas colunas, preenchendo as clulas resultantes com uma ou
mais letras entre C, R, U e D, indicando que o processo Cria, Read ou L, Update ou
Altera, ou Delete ou Apaga um registro,
No caso da modelagem essencial, esta tabela se torna muito interessantes, pois
permite relacionar facilmente os eventos essenciais com as entidades do modelo ER. Mais
tarde, se necessrio na fase de projeto, essa tabela pode ser reconstruda utilizando os
processos sendo implementados e as tabelas do banco de dados.
161
Cadastrar Diretor
CRUD
Cadastrar Novela
Cadastrar Ator
CRUD
Receber Captulo
Captulo
Horas
CRUD
CRUD
Ator Horista
Novela
Diretor
Eventos ou Atividades
Ator
Entidades
R
R
CR
C
VIII.10.2
Verificando a consistncia
Um dos principais usos da Matriz CRUD verificar a consistncia do modelo.
obrigatrio que cada entidade seja criada e lida por algum evento. Com a Matriz CRUD essa
verificao muito fcil, basta checar se todas as colunas possuem ao menos um C e um
R. Alm disso, interessante, mas no obrigatrio, que as entidades tambm possam ser
alteradas e apagadas. Assim, para cada coluna onde no h nenhum C ou R devemos
imediatamente questionar a necessidade da entidade ou buscar eventos que as justifiquem
junto ao usurio. Do mesmo jeito, para cada coluna sem U ou D devemos verificar se
essa entidade foi tratada de forma completa em relao aos desejos do usurio.
Existe uma exceo obrigatoriedade de leitura de uma entidade, que quando ela
est sendo criada para guardar dados que s sero utilizados em uma verso futura do
sistema.
VIII.10.3
Manipulando a Matriz CRUD
Manipula-se a Matriz CRUD para se obter subsistemas. Um subsistema identificado
pela formao de um cluster, isto , um grupo de clulas prximas com as mesmas
caractersticas, que no nosso caso estarem sendo usadas.
A manipulao feita alterando-se as posies das linhas e das colunas. Com isso
possvel agrupar atividades e entidades que se relacionam mais fortemente em grupos,
permitindo a identificao de subsistemas. Os subsistemas interagem normalmente por meio
da leitura, por um processo, de uma entidade mantida em outro processo.
A Figura 83 tenta mostrar a dinmica da manipulao da Matriz CRUD com objetivo de
encontrar subsistemas. Essas operaes so facilmente feitas em uma planilha eletrnica. As
operaes de transposio de linha ou coluna podem ser feitas em qualquer ordem. O
objetivo obter uma matriz onde as clulas prximas a diagonal sejam bem preenchidas,
formando os grupos que caracterizam os subsistemas, enquanto as outras clulas esto
normalmente vazias, apresentando eventualmente operaes que indicam a interao entre
dois subsistemas.
De certa forma, manipular a Matriz CRUD dessa forma uma ao equivalente a
manipular o DFD Global para se obter o DFD Hierrquico. A diferena bsica que ao tratar
a Matriz CRUD estamos em busca de achar configuraes da mesma que definam
162
subsistemas de maneira clara, enquanto quando estamos grupando processos em DFD Global
buscamos apenas uma forma de organizar o DFD que facilite sua leitura e compreenso.
CRUD R
Processo B
R
C
Processo A
CRUD
Processo B
RU
R
C
Processo F
Processo C
RUD
R
RU
Processo E
Posio inicial
Processo A
Processo B
CRUD R
Processo D
Processo E
Processo C
RUD
CRUD R
Processo B
CRUD R
Processo C
RUD
C
C
Entidade 5
RU
Entidade 4
Entidade 3
Entidade 2
Entidade 1
Entidade 6
Processos
Processo A
C
R
Entidade 5
CRUD R
Processo F
Entidades
Entidade 4
Entidade 3
Entidade 2
Entidade 1
Entidades
Processos
Entidade 6
Entidade 5
CRUD R
RUD
C
Entidade 4
Entidade 3
Entidade 2
Entidade 1
CRUD R
Processo D
C
R
Processos
R
R
Processo F
Processo E
Entidade 2
Entidade 6
Entidade 5
R
Processo D
Processo C
Entidades
Processo D
Processo E
Processo F
Entidade 6
Processo A
Entidade 4
Entidade 3
Processos
Entidade 1
Entidades
RU
VIII.10.4
Extenses da Matriz CRUD
possvel estender a Matriz CRUD para incluir outros conceitos. Uma idia
transform-la em uma Matriz CRUDL, onde L significa Listar (List). claro que para listar
precisamos ler, mas isso faz uma diferenciao entre consultas que retornam muitos registros
(e que possivelmente retornam apenas parte desses registros) e consultas que retornam um
registro inteiro.
Sulaiman64 et al. prope a criao, originalmente em modelos onde se est fazendo a
anlise reversa de uma aplicao em operao, da criao de Cubos CRUD, onde a dimenso
adicional representa o tempo, ou seja, as clulas passam a ser vetores, indexados por
intervalos de tempo ligados as fases do negcio.
64
www.cos.ufrj.br/publicacoes/reltec/es61603.pdf
163
VIII.11
Entendendo um Evento
Who? Ou Quem?
Quem o iniciador?
Quem o transportador?
When? Quando?
Essa atividade est limitada no tempo por algum outro evento? Por exemplo, s podemos
vender aps a loja abrir e at a loja fechar.
Where? Onde?
What? O que?
How? Como?
164
VIII.12
O Dicionrio de Eventos
Tempo, limites de tempo do evento, ligado aos eventos esperados, quando devem acontecer.
165
VIII.13
Especificando Processos
166
Evento
Atividade
Emitir Boletim
Receber mercadoria
VIII.13.1
Especificao do Tipo Caixa Preta
A primeira especificao que devemos fazer de um processo ou atividade essencial
deve enxergar esse processo ou atividade como uma caixa preta. Dessa forma, a descrio
deve discutir apenas seus efeitos nas memrias e as entradas e sadas dos agentes externos.
Esta especificao inicial deve ser feita utilizando a linguagem do cliente.
Por exemplo:
Aps conferir se o CGC vlido, deve registrar as informaes passadas pelo cliente na
memria CLIENTE.
VIII.13.2
Especificao do Tipo Caixa Branca
A especificao de processo, na modelagem essencial, chamada de miniespecificao. Cada processo, e nisso se incluem as atividades essenciais, deve ser
especificados por meio de uma mini-especificao ou refinado por meio de outro DFD.
Uma mini-especificao pode ser escrita em portugus estruturado, usando tabelas ou
rvores de deciso. Qualquer que seja a linguagem escolhida, deve permitir o entendimento
claro do que deve ser feito durante aquele processo.
Por exemplo:
Especificao do Processo Cadastrar Cliente:
o Se CGC Vlido Ento
o
Salvar Cliente.
VIII.13.3
Mini-especificaes
Uma especificao de um processo (mini-especificao) tem como objetivo
especificar o que o processo deve fazer (e no como). Uma especificao em portugus
estruturado deve ser clara. Em geral, cada empresa ou projeto deve determinar como escrever
sua mini-especificao.
Portugus Estruturado
Algumas regras bsicas:
Toda a lgica deve ser expressa na forma de estruturas seqenciais, estruturas de deciso,
estruturas de case, ou iteraes.
167
Sintaticamente falando:
Um bloco
Um comando se - ento
Um comando repita - at
Um comando de atribuio
168
IMPRIMIR iptu
FIM
VIII.13.4
O Diagrama de Transio de Estados
Um diagrama de transio de estados, ou simplesmente diagrama de estados, ou ainda
DTE, uma das abstraes mais gerais que temos para um sistema ou objeto. O objetivo de
um DTE descrever como um sistema ou objeto muda de estado em funo de eventos que
ocorrem no ambiente, e que respostas esto associadas a cada mudana de estado.
Diagramas de estados so compostos de dois smbolos bsicos: estados (crculos ou
caixas) e transies (setas). Os estados tm um nome ou um nmero, enquanto as transies
so indicadas com um evento, que ativa a transio, e uma sada, provocada pela transio.
Apesar de sua simplicidade, DTEs so ferramentas muito poderosas para modelagem.
Podem ser usados de diferentes formas na modelagem essencial: para descrever o
funcionamento do sistema como um todo ou de parte dele, para descrever os estados
possveis de uma entidade. Mesmo uma mini-especificao pode, em alguns casos, ser mais
bem representada por um diagrama de estados.
Yourdon [B43] sugere que as seguintes perguntas devem ser feitas para verificar um
DTE:
Todos os estados foram definidos?
Todos os estados podem ser atingidos?
Todos os estados tm uma sada?
Em cada estado o sistema reage adequadamente a todos os eventos?
Existem no mercado diferentes ferramentas, gratuitas ou comerciais, de desenho e
verificao de DTEs. Existem tambm outras formas similares de modelagem, como Redes
de Petri e StateCharts.
Incio
Evento a
Sada 1
Evento c
Sada 2
Evento b
Estado 1
Estado2
Evento d
Fim
No existe uma notao padro para diagramas de estado, mas a notao utilizada na
com smbolos especiais para os estados iniciais e finais, ser a adotada nesse texto.
Figura 86,
169
Estado Atual
Evento
Resposta
Prximo Estado
Incio
Evento a
Sada 1
Estado 1
Estado 1
Evento b
Estado 2
Estado 2
Evento c
Sada 2
Estado 2
Estado 2
Evento d
Fim
Resp
ostas
ou
Aes
Eventos
ou fatos
VIII.13.5
Tabelas de Deciso
Uma tabela de deciso descreve que aes devem ser tomadas quando uma srie de
fatos acontece. Uma tabela de deciso tem duas partes. Na primeira parte cada linha
representa um fato. Na segunda parte, cada linha representa uma ao. As colunas significam
combinaes de fatos, determinados pelos valores: verdadeiro, falso e no aplicvel.
Livro Existe na Base
Cliente Cadastrado
Cliente deve dinheiro
Cadastra cliente
Prepara pedido
Recusa pedido
Tabela 26. Uma tabela de decises
VIII.13.6
Pr-condies e ps-condies
Baseadas em linguagens formais de especificao e implementadas em algumas
linguagens, como Eiffel, pr-condies (e ps-condies) so declaraes que devem ser
verdade antes (e depois) do cdigo ser executado.
Por exemplo, um cadastro poderia ser especificado (de forma bastante simplificada)
como:
pr
input = (x,y,z) onde x Nome , y Endereo, z Telefone
ps
(x,y,z) Aluno
VIII.14
Dicionrio de Dados
Repetio de termos (uso das chaves, possivelmente com limites mnimos e mximos)
{<termo>}
1:3{<termo>}
(<termo>)
valor1
[cgc
cnpj]
endereo
0:2{telefone}
65
O modelo ambiental foi definido por Yourdon[B43], sendo questo tpica de concurso.
66
O modelo comportamental foi definido por Yourdon [B43], sendo questo tpica de concurso.
171
VIII.15
Exerccio
VIII.15.1
Rede Bobo de Televiso
O Ncleo de Novelas da Rede Bobo de Televiso contratou voc para fazer um
sistema para controlar suas novelas. O sistema deve permitir que um operador cadastre, em
separado, novelas, atores e diretores. Os atores podem ser contratados ou horistas. Os atores e
diretores s podem trabalhar em uma novela, mas uma novela pode ter vrios atores e apenas
um diretor.
Quando um ator passa a trabalhar em uma novela, isso deve ser registrado no sistema.
Se ele for ator contratado, deve ser impresso um aviso para o departamento de pessoal,
dizendo que ele est alocado na novela.
Quando um autor envia um captulo (com resumo), o sistema deve cadastrar esse
captulo e produzir uma cpia para cada ator e diretor da novela.
Toda segunda feira, o sistema deve emitir cpias, para a imprensa, dos 6 resumos dos
captulos da semana.
No final do ms (dia 25), o sistema deve gerar, para a pagadoria, uma listagem dos
atores horistas que devem ser pagos. Para isso, dia 15 deve ser enviado um formulrio aos
diretores, com o nome de todos os atores horistas associados novela com um espao para
marcar. Os diretores devem devolver esses relatrios preenchidos, com o registro de horas
trabalhadas por ator horista, que so registrados no sistema. Se dia 23 existir um diretor que
no devolveu o relatrio, deve ser enviada uma carta de notificao ao diretor.
Lista de Eventos67:
Autor Envia Captulo (composto, externo, no esperado, na prtica deveria ser esperado, mas
no assim que foi descrito)
dia de enviar carta de notificao ao diretor (no evento) (esse evento no est no diagrama
por um defeito de fabricao do mesmo, mas aparecer na prxima verso).
67
172
dados de diretor
operador
operador
novela
cadastrar
diretor
cadastrar
novela
diretor
diretor
captulo + resumo
autor
cadastrar
ator
ator
aviso de alocao
captulo
dep.
pessoal
ator
receber
captulo
ator
captulo
captulo
diretor
ator horista
diretor
novela
ator horista
horas
novela
diretor
enviar
formulrio
registrar
horas
trabalh.
form. ator/horas
ator
diretor
diretor
ator
ator horista
ator hor + horas
VIII.16
Modelos Adicionais
VIII.16.1
Finalizando a Anlise
Um dos trabalhos mais importantes e aborrecidos da fase de anlise manter todos os
documentos consistentes. Isso fica mais difcil quando estamos usando mtodos diferentes em
ferramentas distintas.
Assim, se temos em uma mesma ferramenta CASE o diagrama de entidades e
relacionamentos e todos os nossos eventos, provvel que seja possvel nunca conseguir
escrever uma especificao inconsistente ou pelo menos verificar se existe alguma
inconsistncia. Porm, se utilizamos mais de uma ferramenta CASE69, fica mais difcil
manter essa consistncia.
68
Esse DFD particionado uma figura inexistente durante o projeto. Em um documento real, cada diagrama
apareceria em uma pgina, e no todos agrupados. Alm disso, devemos notar a ausncia de um no evento possvel.
69
173
IX.1 Conceituao
Um caso de uso uma especificao, em forma de narrativa, de uma seqncia de
interaes entre um sistema e os atores (agentes externos) que o usam. Casos de uso podem
ser simples ou complexos, devendo descrever, em um nvel de detalhe desejado, algo que um
usurio ou cliente quer que o sistema faa. Eles descrevem e definem parte da funcionalidade
de um sistema.
Casos de uso foram criados por Ivar Jacobson em 1986. Uma das melhores descries
de seu uso foi feita por Alistair Cockburn, no livro Effective Use Cases.
Um caso de uso bem escrito deve descrever, de forma completa, um processo
executado pelo sistema, contando uma histria, completa, de como o usurio tenta alcanar
um objetivo especfico ao usar o sistema. Na sua forma mais completa, um caso de uso
apresenta vrios cenrios possveis de sucesso ou falha na busca por esse objetivo.
Os casos de uso formam a especificao funcional de um sistema. Essa especificao
facilmente legvel por usurios ou desenvolvedores, permitindo tambm sua validao e
verificao. importante notar que os diagramas de caso de uso tm um valor muito pequeno
frente ao documento textual que o caso de uso.
Casos de uso tratam o sistema sendo descrito como uma caixa preta. As interaes
entre os usurios e o sistema so descritas como percebidas pelo usurio.
Um caso de uso deve:
IX.2 Ator
Um ator uma entidade externa ao sistema com comportamento prprio. Os atores
interagem com o sistema para alcanar seus objetivos. Em cada Caso de Uso, um ator o ator
principal, que visa um objetivo principal naquele caso de uso. Muitas vezes, o sistema
174
invocar outros atores, que devero cumprir suas responsabilidades para que o ator principal
alcanar seu objetivo.
Os principais tipos de atores so:
pessoas,
organizaes,
equipamentos, e
outros sistemas.
IX.2.1 Objetivos
Todo ator possui um ou mais objetivos ao usar o sistema. Cada objetivo define e d
nome a um caso de uso.
IX.2.2 Cenrios
Um caso de uso pode acontecer de acordo com vrios cenrios. Cada cenrio descreve
como uma instncia especfica do caso de uso pode acontecer, ou seja, que seqncias
especficas de interaes entre o sistema e os atores.
Um desses cenrios o cenrio principal, conhecido como cenrio principal ou
cenrio feliz (happy day), que narra como um ator alcana seu objetivo da forma mais fcil
ou comum. O cenrio principal descrito de forma integral em todos os casos de uso.
Na maior parte das vezes, os casos de uso tambm possuem vrios cenrios
alternativos, alguns que tambm levam ao objetivo desejado, outros que levam a verses
parciais desse objetivo e ainda cenrios de falhas. Todos esses cenrios tambm so descritos
nos casos de uso, porm normalmente de forma compactada, sendo mostrado apenas como
eles diferem do caso de uso principal.
Os cenrios diferem em funes de condies especficas que podem acontecer na
execuo de uma instncia do caso de uso. Por exemplo, se o caso de uso descreve uma
retirada de dinheiro de uma conta bancria, o cenrio principal considera que existe saldo na
banca, enquanto cenrios alternativos podem considerar que no existe saldo suficiente ou
que tarde demais para retirar a quantia pedida70.
A figura a seguir ilustra o conceito de um caso de uso contendo um caminho principal
e quatro condies que podem alterar a execuo de uma instncia do caso de uso. A figura
seguinte mostra possveis cenrios de execuo desse caso de uso.
70
No Rio de Janeiro h um limite de retirada nos caixas automticos a partir de certa hora da noite, por medida
de segurana.
175
176
A descrio contnua bastante adequada para a fase inicial dos projetos, pois pode
ser retirada diretamente de entrevistas e facilmente validade pelo usurio. Em fase mais
avanadas apresenta problemas por se tornar muito confusa com a adio de detalhes e a falta
de estrutura. Outro problema acontece quando forem criados os passos alternativos referente
a cenrios possveis, que no tero como se referir ao ponto onde pode acontecer a diferena
para o cenrio principal.
177
Cliente
Sistema
Passa o carto
Solicita senha
Digita senha
178
Breve, onde usamos apenas uma frase ou pargrafo descrevendo o processo principal e
tpico.
Casual, onde descrevemos diferentes cenrios, mas cada descrio composta por
apenas um pargrafo.
Expandido, todos os passos e variaes so detalhadamente descritos, incluindo prcondies e ps-condies de sucesso.
IX.4.1 Exemplo de caso de uso Breve
Caso de uso: Alugar Fitas
Um cliente solicita a locao de algumas fitas. Aps identificar-se e
identificar as fitas ele pode lev-las para casa, ciente do prazo de
devoluo e do valor a ser pago.
Fluxos Alternativos:
3a. O cliente no possui cadastro.
3a.1 O cliente deve informar seus dados para cadastro.
3a.2 O funcionrio registra o cadastro.
3a.3 Retorna ao fluxo principal no passo 3.
179
180
183
A relao de extenso deve ser utilizada quando queremos fatorar de um caso de uso
um comportamento excepcional ou opcional que executado apenas em algumas condies
especficas, de forma a simplificar o evento base. Tambm usada para criar um
comportamento adicional a um caso de uso j existente.
Uma instncia de caso de uso executando um caso especializado vai seguir o fluxo de
eventos descritos pelo caso parente, inserindo comportamento adicional e modificando seu
comportamento como definido no fluxo de eventos do caso especializado.
184
Sumrio
Objetivo do Usurio
Sub-Funo
Muito detalhado
Cada nvel de abstrao pode ser associado um cone que o representa:
Nvel
cone
185
Componente
Escopo
cone
186
IX.10
Escopo x Abstrao
IX.11
IX.11.1
Interessados
Pr-condies
187
Ps-condies de sucesso
Requisitos Especiais
Freqncia
Questes em aberto
IX.11.2
Atores
So as classes de pessoas e sistemas externos que interagem com o sistema de alguma
forma
IX.11.3
IX.11.4
IX.11.5
IX.11.6
Interessados - Stakeholders
A quem serve o caso de uso?
Pr-condies
O que deveria ser sempre verdadeiro para que o caso de uso possa acontecer
Tipos de Passos
188
IX.11.9
IX.11.10
Requisitos Especiais
Requisitos no funcionais associados ao caso de uso, como
eficincia desejada,
tecnologia de implementao,
etc.
Questes em aberto
Tudo o que deve ser esclarecido posteriormente
IX.12
IX.13
o Operao+objecto
o Funo+dados
o Exemplo: Inserir Carto
As aes corretivas que podem ser tomadas so:
IX.14
IX.14.1
Resultado
Resultado
Resultado:
4) Resolva as falhas.
Extenses recuperveis voltam ao caso principal
Pode escrever se
Resultado:
IX.14.6
IX.14.7
IX.14.8
Adie variaes que podem ser tratadas por casos de uso de menor abstrao
Boas Perguntas
Quais so as tarefas de um ator?
Manuteno do sistema
Manuteno da informao
Comentrios
O valor dos casos de falha detectar situaes anormais e manter a
completude
Todo cenrio vai do incio ao fim (sem ses), mas a descrio pode ser
abreviada
Funes comuns
No analisa os detalhes
IX.14.9
Casos de uso NO
Mostram requisitos de interface
o Colete por caso de uso
o Capture separadametne
IX.14.10
IX.14.11
O Processo de Escrita
Defina o escopo e as fronteiras
IX.15
IX.15.1
Aparncia - Essencial
1. Cliente fornece a sua identificao
2. Sistema identifica usurio
3. Sistema oferece operaes disponveis
4. Cliente solicita saque de uma determinada quantia
5. Sistema fornece a quantia desejada da conta do cliente
6. Cliente recebe dinheiro e recibo
193
IX.15.2
Aparncia Real
1. Cliente passa seu carto no caixa eletrnico
2. Sistema apresenta solicitao de senha
3. Cliente digita senha
4. Sistema exibe menu de operaes disponveis
5. Cliente indica que deseja realizar um saque
6. Sistema requisita quantia a ser sacada
7. Cliente informa quantia a ser sacada
8. Sistema solicita re-insero do carto
9. Cliente insere o carto
10. Sistema fornece dinheiro
11. Cliente retira dinheiro
12. Sistema fornece recibo
13. Cliente retira recibo
14. Sistema libera carto
15. Cliente recupera carto
194
IX.16
Verbos Informativos
Analisar
Descobrir
Buscar
Identificar
Informar
Monitorar
Notificar
Encontrar
Consultar
Requisitar
Selecionar
Especificar
Ver
12
Verbos Performativos
Conseguir
Permitir
Arranjar
Mudar
Classificar
Definr
Entregar
Projetar
Garantir
Estabelecer
Alcanar
Avaliar
Questionar
Fazer
Realizar
Executar
Providenciar
Preencher
Solicitar
Aprontar
Preparar
Especificar
Recuperar
Completar
13
IX.17
UCD2:
28
29
195
22
23
includo
24
25
1.
2.
3.
4.
5.
6.
27
Bibliography
[1] A. Cockburn, Writing Effective Use Cases Addison Wesley, 2001.
196
197
Ler
Responder
Pensar
HOMEM
Ler
I
n
t
e
r
f
a
c
e
COMPU
TADOR
Pensar
Responder
198
O exemplo escolhido bastante complicado e envolve sub-objetivos e sub-intenes, em uma atividade longa e
composta.
199
tempo no cargo e na empresa, sua experincia com computadores, Internet, outros sistemas
da empresa ou sistemas semelhantes. Alm disso, interessante conhecer que atividades o
usurio faz em seu trabalho e com que freqncia (diria, semanal, mensal, raramente).
Outras informaes podem ser levantadas, como impossibilidades de usar uma ferramenta
especfica ou incapacidades fsicas. Existem vrios modelos de formulrios que podem ser
utilizados como referncia na literatura e na Internet, a seguir apresentamos um exemplo
muito simples.
Tempo na empresa
Tempo no cargo
Tempo de uso de
computador
Tempo de uso da Internet
Sem
educao
formal
Menos
de 6
meses
Menos
de 6
meses
Nunca
usou
Nunca
usou
Qualidade do ambiente de
trabalho
Iluminao
1 grau
2 grau
3
grau
Entre 6 Entre 1 e
Entre Mais de 5
meses e
2 anos
2e5
anos
1 ano
anos
Entre 6 Entre 1 e
Entre Mais de 5
meses e
2 anos
2e5
anos
1 ano
anos
Menos
Entre 6
Entre Mais de 5
de 6
meses e
2e5
anos
meses
2 ano
anos
Menos
Entre 6
Entre Mais de 5
de 6
meses e
2e5
anos
meses
2 ano
anos
Indique a freqncia de realizao
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Diria Semanal
Mensal
Rara
Ruim Razovel
Boa
Muito
ruim
Respostas
Psgraduado
Outra
_____
Outra
_____
Outra
_____
Outra
_____
Outra
_____
Outra
_____
Outra
_____
Outra
_____
tima
200
Pergunta
Rudo
Postura ao trabalhar
Risco ao trabalhar
(venenos, exploses...
Muito
alto
Muito
ruim
Muito
alto
Alto Aceitvel
Pouco
Ruim Aceitvel
Boa
Respostas
Quase
nenhum
tima
Baixo
Nenhum
Alto
Pouco
X.3 Prottipos
Levando em conta a necessidade de mostrar algo menos abstrato do que modelos aos
clientes, qualquer processo de desenvolvimento atual tem a tendncia de acelerar a criao da
interface com o usurio, que representada pelas telas ou formulrios com o qual o usurio
interage e os relatrios e outras formas de aviso que recebe do sistema.
Um prottipo uma implementao simplificada do sistema, podendo inclusive ser
descartvel, com diferentes finalidades, como validar um modelo de interface ou um modelo
de funcionamento ou ainda um algoritmo. Normalmente prottipos so construdos utilizando
a ferramenta em que o sistema est ou ser desenvolvido (podendo servir inclusive para
validar essa ferramenta) e apresentam algum comportamento, mesmo que simulado.
Um mock-up uma representao da interface que no cumpre nenhuma finalidade a
no ser demonstrar a uma proposta para a aparncia final do sistema, sem a capacidade de
simular seu comportamento (a no ser, possivelmente, a navegao entre telas). Um mock-up
no precisa ser feito com uma ferramenta de programao, podendo ser feito com ferramentas
de desenho, como os softwares Visio ou SmartDraw. Um prottipo de baixa fidelidade
um mock-up feito a mo da interface, basicamente um conjunto de desenhos, com a
finalidade de demonstrar a aparncia bsica e simular, manualmente, o comportamento do
sistema. Um prottipo de alta fidelidade um mock-up feito de forma a se assemelhar ao
software final, sendo normalmente construdo na linguagem de desenvolvimento ou em uma
ferramenta com resultados similares. Prottipos de alta fidelidade so executados pelo
computador.
201
72
Imagem ilustrativa usada pelos princpios de fair use. Imagem ilustrativa usada pelos princpios de fair
use. No se aplicam a essa imagem os mesmos direitos desse texto.
73
McConnell, Steve. Rapid Development: Taming Wild Software Schedules. Microsoft Press, Redmond, Washington,
1996
202
porm pode trazer como risco a confiana demasiada e um otimismo exagerado em relao a
prazos, como uma decepo proporcional a seguir.
Com certeza, prottipos facilitam em muito a validao de sistemas, principalmente
de novos sistemas, onde h certo grau de explorao da soluo mais adequada. Alm disso,
podem facilitar a encontrar funes desnecessrias ou funes esquecidas, principalmente
com usurios j acostumados com sistemas semelhantes.
Prottipos podem ser criados de forma parcial. Por exemplo, se um sistema exige a
manuteno (incluir, excluir e alterar) de vrias entidades, como aluno, professor e
funcionrio em um sistema acadmico, a prototipagem de uma dessas interaes pode servir
de forma de validao para todas as outras.
203
74
204
75
Imagem ilustrativa usada pelos princpios de fair use. Imagem ilustrativa usada pelos princpios de fair
use. No se aplicam a essa imagem os mesmos direitos desse texto.
76
Imagem ilustrativa usada pelos princpios de fair use. No se aplicam a essa imagem os mesmos direitos
desse texto.
205
77
Imagem ilustrativa usada pelos princpios de fair use. No se aplicam a essa imagem os mesmos direitos
desse texto.
206
78
Imagem ilustrativa usada pelos princpios de fair use. No se aplicam a essa imagem os mesmos direitos
desse texto.
79
Imagem ilustrativa usada pelos princpios de fair use. No se aplicam a essa imagem os mesmos direitos
desse texto.
207
208
Erros de Captura
Erros de Descrio
211
80
Nessa relao o cliente tenta pagar o menor preo possvel para o sistema e o fornecedor tenta cobrar o maior preo
possvel. Tanto fornecedores quanto clientes devem evitar fazer um acordo com risco de futuro arrependimento.
212
Outros custos adicionais comuns so equipamento e software. Mesmo quando j possumos o equipamento e o
software temos que nos lembrar de amortizar o seu custo original de alguma forma entre os vrios projetos.
82
213
TDEV = [C ( PM NS ) ( D + 0.2( E B )) ]
SCED %
100
E = B + 0.01 SF j
j =1
83
84
PMNS um valor de pessoas-ms sem considerar esforos de traduo automtica e ainda sem considerar efeitos da
necessidade de acelerar o desenvolvimento
214
2.94
0.91
3.67
0.28
Fase
Esforo %
Tempo %
Planos e Requisitos
7 (2-15)
16-24 (2-30)
Projeto do Produto
17
24-28
Programao
64-52
56-40
Programao: Projeto
Detalhado
27-23
Programao: codificao e
Teste de unidade
37-29
Integrao e Testes
19-31
20-32
Transio
12 (0-20)
12.5 (0-20)
215
216
Transacionais
Um processo elementar a menor atividade significativa para o usurio de forma
indivisvel. Isso significa que o usurio o v como um processo nico, completo e
independente de outros, que se inicia com o sistema em um estado consistente e termina com
o sistema em um estado consistente.
Um processo elementar ser contado como uma de trs possveis formas de funo
transacional.
XI.6.1.2 Funes
de Dados
Arquivos lgicos internos (ALI ou ILF), que contm os dados permanentes,
relevantes para o usurio e mantidos e utilizados pelo sistema. O sistema cria,
altera e apaga esses dados.
Arquivos de interface externos (AIE ou EIF), que contm dados
permanentes e relevantes para os usurios, guardados em algum lugar por
outra aplicao, mas referenciados pela aplicao em questo. Outro sistema
mantm esses dados.
217
Determinar
Tipo da
Contagem
Identificar Escopo e
Fronteira da Aplicao
Determinar valor
do Fator de Ajuste
Contar PF
Transacionais
Contar PF para
Dados
Determinar PF
no ajustado
Calcular PF
Ajustado
No manual da IFPUG podemos encontrar vrios exemplos que nos permitem dirimir
as dvidas de como realizar a contagem. A tcnica simples, porm difcil de dominar.
Identificando Sadas
Para contar as sadas necessrio contar todas as informaes que o sistema gera para
o ambiente de forma procedimental. Tipicamente, sadas so relatrios impressos, telas,
janelas e arquivos gerados para outras aplicaes.
Deve ser contadas como sadas distintas cada formato utilizado. Basicamente, se for
necessrio fazer outro procedimento para produzir a informao, contamos como uma sada
distinta. Tambm contamos cada tipo de lgica utilizada para fazer gerar a informao.
Assim, se um relatrio de vendas contm as vendas por vendedor e por loja, contaremos
como duas sadas, pois so necessrios procedimentos lgicos distintos para calcular cada um
desses valores. Linhas de sumrio e total, porm, no so contadas como novas sadas.
Uma sada externa pode ter uma parte de entrada, para, por exemplo, selecionar os
registros necessrios em um relatrio, usando alguns campos como filtro. Essa parte
entrada no contada a parte, j est considerada nessa contagem.
Identificando Consultas
Consultas so, na prtica, sadas simplificadas. Normalmente utilizadas para achar
informaes para modific-las ou apag-las. So sempre no monitor, no existe uma consulta
em relatrio de papel.
Uma consulta no pode calcular nenhum valor. Em caso de clculo de qualquer valor,
temos uma sada.
Identificando Entradas
Entradas permitem adicionar, modificar e apagar informaes. Se uma tela permite
estas 3 funes, so contadas 3 entradas. Normalmente as funes de modificar e apagar
ainda exigem consultas correspondentes para achar a informao que ser alterada.
Um comando especfico para o sistema executar algo uma entrada.
Mensagens de erro que fazem parte de um processo no so contadas isoladamente,
mas sim como um DET. Por exemplo, se voc esquecer de colocar um campo obrigatrio e
receber uma mensagem de erro, no deve contar uma sada a mais, e sim essa mensagem
como um DET da entrada ou consulta.
Mensagens de notificao, por outro lado, so processos elementares e devem ser
contados como uma sada a parte. Por exemplo, ao tentar comprar um produto que no existe
e receber uma mensagem com essa notificao foi feito um processamento, que contado
como uma sada externa adicional.
219
Tipo de Funo
Transacional
O*
O*
O*
O*
O*
O*
220
mensagens de erro
botes
mensagens de confirmao
Em Sadas Externas
Campos em relatrio
Valores calculados
Mensagens de erro
O clique do mouse
Em GUIs, botes onde s se pode fazer uma seleo entre muitas (normalmente radio
buttons) devem ser contados como um DET apenas. J check boxes so normalmente
contadas uma a uma. Botes de comando devem ser contados como um elemento de dados
levando em conta o fato de executarem uma funo.
221
Sadas
Arquivos
Referenciados
6-19
20+
0 1
Simples (4)
Simples (4)
Mdia (5)
2-3
Simples(4)
Mdia(5)
Complexa(7)
4+
Mdia (5)
Complexa (7)
Complexa (7)
5-15
16+
0 1
Simples (3)
Simples (3)
Mdia (4)
Simples (3)
Mdia (4)
Complexa (6)
3+
Mdia (4)
Complexa (6)
Complexa (6)
6-19
20+
0 1
Simples (3)
Simples (3)
Mdia (4)
2-3
Simples (3)
Mdia (4)
Complexa (6)
4+
Mdia (4)
Complexa (6)
Complexa (6)
20-50
51+
Simples (7)
Simples (7)
Mdia (10)
2-5
Simples (7)
Mdia (10)
Complexa (15)
Mdia (10)
Complexa (15)
Complexa (15)
20-50
51+
Simples (5)
Simples (5)
Mdia (7)
2-5
Simples (5)
Mdia (7)
Complexa (10)
Mdia (7)
Complexa (10)
Complexa (10)
XI.6.7 As Perguntas
So 14 as perguntas que devem ser feitas e ajudaram a determinar a quantidade de PF
relativa a um sistema. Cada uma deve ser respondida com um nmero, de 0 a 5, indicando a
importncia da caracterstica que se pergunta sobre o sistema, da seguinte forma:
222
0 - No tem influncia
1 - Influncia incidental
2 - Influncia moderada
3 - Influncia mdia
4 - Influncia significativa
5 - Influncia essencial em todo o sistema
Para cada pergunta, o padro IFPUG determina tipos de respostas padronizadas que
nos permitem dar a resposta (entre 0 e 5) mais facilmente, como exemplificado no item 1
(Comunicao de Dados). Foge ao objetivo desse texto fornecer um detalhamento completo
do padro de contagem, que pode ser obtido junto ao IFPUG.
1. Quantas facilidades de comunicao existem para facilitar a transferncia ou troca de
informao com a aplicao ou sistema?
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
223
224
(passo 1)
Mdia
Contagem
Total
Simples
Funo
Complexa
Complexidade (passo 2)
Total
Sadas Externas
Consultas Externas
Entradas Externas
10
15
Arquivos de Interface
Externos
10
Total
Tabela 38. Guia de clculo para os pontos de funo. Primeiro deve ser
feita a contagem total, por tipo de funo. Para cada item contado deve
ento ser determinada a complexidade, o que permitir encontrar o total
(que o total-de-2).
XI.6.10
Inflao de PFs ao decorrer do projeto
normal que o nmero de PFs se modifique ao decorrer o desenvolvimento do
projeto. Isso acontece por dois motivos: alterao dos requisitos e necessidade de
implementar mais pontos de funo para atender ao comportamento desejado pelo usurio do
que estritamente exigido pelo modelo essencial.
normal que os pontos de funo previstos em um incio de anlise aumentem em at
25% at o final do projeto.
XI.6.11
Utilizando Pfs para previses
Para utilizar os Pfs para fazer previses necessrio primeiro conhecer a
produtividade em PF/(homem/ms) da equipe que realizar o software. importante levar em
conta o ambiente onde esta equipe trabalha, suas qualidades e defeitos, as ferramentas
disponveis e o tipo de trabalho que realizam afetam o clculo dessa produtividade. Por
225
Mdia
35
69
172
148
60
59
38
73
47
61
60
21
38
41/42
30
39
50
SLOC/FP
Mediana Mais Baixo Mais Alto
38
15
47
62
32
127
157
86
320
104
9
704
53
29
178
59
51
66
39
27
70
77
8
400
46
31
63
50
40
60
59
14
97
22
15
25
29
4
122
30
21/23
100
24
7
105
35
15
143
42
14
276
85
226
XI.8.2 Cenrios
Outra tcnica alternativa determinar cenrios de pior caso, caso mais provvel e de
melhor caso. O valor final da estimativa dado por:
Ve =
86
Ou Delphi. Baseado no Orculo de Delfos, nica relao direta com a linguagem Delphi.
227
PFs mdios
IBSBG
PFs mdios
NESMA
7,4
5,5
Entrada Externas
4,3
Sada Externa
5,4
Consulta Externa
3,8
Tabela 40. Valores mdios recomendados pelo IBSBG e pela NESMA para
contagem estimativa de Pontos de Funo
Outra forma possvel a analogia com sistemas semelhantes (com possvel aplicao
do mtodo Delphi ou do Valor Estimado).
XI.10
87
http://www.davidconsultinggroup.com/indata.htm
228
Plataforma de
Desenvolvimento
Cliente-Servidor
Mainframe
Web
e-Business Web
Vendor Packages
Data Warehouse
PF por Pessoa
Ms
17
13
25
15
18
9
229
XII.1
Ateno:
A descrio a seguir tenta manter um nvel ainda inicial, mas mostrar alguns
problemas tpicos da elicitao de requisitos:
1. Nem todo entrevistado diz tudo o que faz na primeira entrevista.
2. Alguns casos de uso ficam escondidos em uma palavra ou sentena que
parece ter pouca importncia.
3. Termos diferentes so usados por entrevistados para significar a mesma coisa.
4. Alguns entrevistados falam de uma parte (ou de alguns objetos) de um caso de
uso que outro entrevistado no falou.
5. Usurio de mais alto nvel na empresa muitas vezes no citam partes
importantes do processo.
6. Algumas coisas que a empresa no quer que acontea, acontecem.
XII.2
O cliente pode pedir qualquer livro, mas ns no trabalhamos com livros comuns.
Nosso mercado restrito e de alto valor agregado. Trabalhamos com livros do mundo todo e
temos contatos em todos os lugares. At no Nepal. A partir do pedido do cliente, a gente
investiga se o livro pode ser encontrado e trazido para o Brasil.
Para usar os servios da livraria, os clientes devem se cadastrar previamente. O
pedido de cadastro aprovado por mim ou por meu filho.
230
Os clientes enviam seus pedidos pelo correio, telefone ou fax. O pedido aceito se o
cliente estiver previamente cadastrado. Caso contrrio, o pedido rejeitado com um aviso ao
solicitante para se cadastrar. Isso importante, pois ns normalmente pagamos os livros antes
de receber por eles e so livros caros.
Nas sextas-feiras, a livraria emite requisies de livros para os fornecedores, com base
nos pedidos recebidos.
Quando os livros so entregues pelo fornecedor, a livraria confere a nota de entrega
da editora com a requisio, devolvendo as que contiverem erros.
Os pedidos dos clientes so atendidos imediatamente quando completos, isto ,
quando todos os livros pedidos foram enviados pelos fornecedores (ou forem cancelados). O
atendimento consiste na emisso de uma nota fiscal, de um boleto de pagamento, que so
enviados junto com o livro. Cpias da nota fiscal e do boleto so enviadas a tesouraria.
Se depois de 30 dias da data de entrega o fornecedor no enviou um livro requisitado,
a livraria cancela o pedido junto ao fornecedor e elimina o livro do pedido do cliente.
enviado um aviso ao cliente desse fato, junto com o restante do pedido, se existir, ou
isoladamente pelo correio.
XII.3
231
XII.4
XII.5
Sou eu que fao as vendas mesmo aqui. Normalmente eu recebo um pedido do cliente
com uma lista de livros. Ento eu vou nos vrios catlogos que possumos, alguns de editoras,
outros de distribuidoras, e procuro os livros desejados. Fao uma lista com cada livro, onde
podemos compr-los, o prazo de entrega, e o preo de custo e uma estimativa de preo de
88
232
frete. Tambm consulto a Internet para fazer essa lista. Algumas vezes tenho que esperar uma
cotao que vai chegar for fax ou telefone, ento eu para o servio para comear mais tarde.
Essa lista eu envio para a Lcia, que define o preo de venda de cada livro. Ela faz
isso baseada na experincia dela com os clientes e as necessidades da empresa. Ns
compramos os livros em muitas moedas, so livros caros, de arte, ou livros raros e antigos, de
colecionador, e a taxa de cmbio tambm importante.
Com os preos definidos eu fao uma estimativa do frete para o cliente e preparo uma
proposta. Essa proposta passada para o cliente de vrias formas: fax, carta, telefone ou,
ultimamente, tenho usado meu e-mail pessoal para facilitar.
Geralmente dentro de 24h o cliente confirma a proposta, ou parte dela. Eu ento
separo os pedidos que sero feitos na sexta-feira. Quem trata dessa parte dos pedidos para os
fornecedores o prprio Sr. Letrado. Muitas vezes ele consegue mais um desconto na compra
dos livros. Algumas das vezes esse desconto, ou parte dele, repassado para o cliente.
Quando chegam todos os livros de um cliente eu comeo a trabalhar de novo. Sou eu
que fecha a venda. Recalculo o preo de custo e de venda. Passo os casos de possvel
desconto para a Lcia, que decide na hora. Emito uma fatura, uma nota fiscal, empacoto e
preparo para os entregadores (a gente usa a DHD ou a XPS). Muitas vezes eu telefono, ou
mando um e-mail, para avisar o cliente que o pedido est sendo enviado.
XII.6
Nesse Exerccio:
1. Levante os stakeholders
2. Levante interesses e objetivos dos stakeholders
3. Levante os atores
4. Levante os casos de uso de nvel sumrio (nuvem) e nvel empresarial caixapreta
5. Levante os casos de uso de nvel sumrio (pipa) e nvel empresarial branca
6. Liste os casos de uso de nvel usurio e nvel sistema (caixa preta)
a. Descreva de forma breve e casual um desses os casos de uso
b. Descreva de forma detalhada um desses casos de uso
7. Desenhe os Diagramas de Atividade para todos os casos de uso
8. Define as condies de exceo
233
234
Cada processo em um DFD pode ser expandido em outro DFD, que o descreve. Dessa
forma, DFDs so utilizados para descrever um sistema em nveis cada vez mais detalhados de
informao. Usualmente tambm usamos o termo DFD para descrever um conjunto de
diagramas construdos com essa notao.
Figura
Processo
Descrio
1.2
Um processo com nmero e nome
Nome
Agente Externo
Memria
fluxo
235
Agente Externo
estmulo
resposta
Processo
Memria
produtos comprados
produtos disponveis
Sistema
de Compra
e Venda
Compradores
Vendedores
produtos novos
produtos existentes
produtos comprados
Compradores
1
Comprar
Produtos
produtos
2
Promover
Produtos
produtos disponveis
Vendedores
89
De certa maneira, descries feitas com DFDs so semelhantes a descries feitas com diagramas IDEF0, pois estes
so descendentes de uma outra notao, SADT, que era usada de forma alternativa a DFDs.
236
ou no executar, uma ou mais vezes. Na verdade, existem tcnicas especiais para derivar
relaes de controle entre processos a partir da estrutura de um DFD. Essas tcnicas, porm,
no se aplicam ao caso em estudo nesse livro, pois no so muito eficazes para desenvolver
sistemas Cliente/Servidor. Finalmente, o DFD tambm no informa se algo acontece (ou seja,
se os fluxos de dados realmente comunicam os dados entre os processos), mas sim que algo
pode acontecer (ou seja, que possvel que um processo envie seus fluxos de dados).
XII.6.1
Um processo tem um nome e um nmero. O nome deve ser formado por um verbo
no infinitivo e um objeto (atender cliente, vender produto, etc.). O nmero deve identificar
unicamente o processo. Se estivermos usando um DFD para descrever um processo que
aparece em outro DFD, ento usamos uma numerao hierrquica. Por exemplo, os processos
que ficam em um DFD que explica o processo nmero 2 devem ser numerados 2.1,
2.2, 2.3 e assim sucessivamente. Se precisarmos de outro DFD para explicar o processo
2.2, os processos nesse terceiro DFD sero numerados 2.2.1, 2.1.2, sucessivamente.
Agentes externos e memrias (depsitos de dados) possuam um rtulo na notao
original de Gane e Sarson [B42], porm na notao de Yourdon, que utilizamos agora, no
possuem rtulos.
XII.6.2
Nos diagramas particionados isso um ou-exclusivo, ou seja, um fluxo de dados pode partir ou chegar em uma
atividade, mas no ambos. Nos outros diagramas um fluxo pode indicar a comunicao entre dois processos.
237
assncrona. Devemos notar que no aparecem fluxos de dados entre processos em DFDs
particionados por eventos.
XII.6.3
Entendendo as Memrias
Na anlise de sistemas fazemos a modelagem de dados simultaneamente a
modelagem funcional. Isso permite que as memrias do modelo essencial sejam modeladas
diretamente nas entidades do modelo de entidades e relacionamentos, uma das tcnicas
recomendadas originalmente e a mais adequada para o desenvolvimento de sistemas na
atualidade91.
XII.6.4
Tipos de DFD
Em um DFD de Contexto todo o sistema representado por apenas um processo.
No aparecem memrias internas ao sistema em um DFD de Contexto, apenas agentes
externos e, segundo alguns autores, memrias que pertencem a outros sistemas e que so
utilizadas pelo sistema sendo descrito. Geralmente o DFD de Contexto o primeiro diagrama
de um DFD nivelado. O processo que aparece nesse diagrama geralmente tem o nome do
sistema sendo implementado.
Isso porque a modelagem conceitual de dados se encaixa perfeitamente com o conceito de modelo essencial e ainda
permite uma transio rpida para os SGBD relacionais (oops! Estamos falando de tecnologia?).
238
pode ser usado como passo intermedirio para transformar um DFD particionado em um
DFD nivelado. DFDs globais so normalmente ferramentas de rascunho e no de anlise.
Tambm possvel substituir um DFD global por uma Matriz CRUD.
XII.6.5
Quando dizemos que cada diagrama contm apenas um evento, estamos tambm
dizendo existe no mximo um fluxo de dados entrando o sistema vindo de um agente externo.
Da atividade para os agentes externos podem existir vrios fluxos, que representam a sada de
dados do sistema. Entre atividades e memrias tambm podem existir quantos fluxos forem
necessrios para representar a busca, insero, alterao e eliminao de dados da memria.
Os DFD particionados podem ser resumidos em um DFD de Contexto. Nesse DFD
no aparecem as memrias internas ao sistema e o sistema representado como apenas um
processo. A principal funo do DFD de contexto representar, em um s diagrama, todas as
interaes do ambiente com o sistema (o contexto da aplicao!).
Vejamos a seguir uma descrio simples de um sistema e os DFDs particionados
equivalentes.
XII.6.6
Em todo caso, o DFD nivelado permite uma viso abstrata do sistema composta de
vises parciais cada vez mais detalhadas. Como essa caracterstica muito boa, algumas
vezes ainda podemos desenvolver DFD hierrquicos.
Para isso, iniciamos com o DFD Global do sistema. O DFD global no nada mais
que a unificao de todos os DFD particionados do sistema em um nico DFD, onde cada
memria, atividade essencial e agente externo s aparece uma vez. Ao fazer o DFD global
escolhemos uma folha de grande tamanho (A3 ou maior) e colocamos os DFDs particionados
nessa folha um a um, sempre reaproveitando todos os smbolos j existentes. Essa forma de
construir pode ser difcil para sistemas muito grandes, sendo outra estratgia colocar no
centro da folha todas as memrias, depois colocando os processos ao redor das memrias e os
agentes externos ao redor dos processos. Se o sistema ficar realmente muito complicado,
aceitvel duplicar agentes externos. A duplicao de memrias para facilitar a construo do
diagrama deve ser evitada ao mximo, mas aceitvel em alguns casos, como memrias que
so claramente acessadas por um nmero grande de processos. A duplicao de processos
proibida.
O diagrama global representa um nvel intermedirio do sistema, o nvel onde cada
processo representa um evento. A partir do diagrama global construiremos o DFD
particionado pela seleo de atividades essenciais em processos.
As seguintes heursticas podem ser utilizadas para isso:
239
Agregar em um nico processo todas as atividades essenciais que usam uma memria
especfica. Como resultado, essa memria tambm ser representada dentro desse processo em
um nvel superior do DFD,
Agregar todas as atividades de custdia que acessem uma memria especfica,
Agregar funcionalidades que so utilizadas por um agente externo especfico e
Agregar por meio de funes de negcio.
Manter o nvel de complexidade de cada processo criado entre nmeros recomendveis (7 2
objetos em cada processo).
O resultado ser um conjunto de processos onde cada processo contm vrias
atividades essenciais e talvez uma ou duas memrias, interligados por sua conexo com
memrias do sistema.
240
ndice
Abstrao, 72, 106, 185, 187
Classificao, 45, 100, 106, 159, 165
Aberta, 47
Estruturada, 48
por Questionrio, 47
Palmer, 146
Pontos de Funo, 212, 226, 228
arquivos, 217
interfaces, 217
sadas, 219
241
Pressman, 19
SIG, 12
Requerimentos
Tela, 166
verdadeiros, 39
Requisitos, 22, 30, 31, 36, 37, 38, 39, 41,
42, 45, 56, 57, 63, 68, 188, 189
Requisitos falsos, 38
SAD, 12
242