PROJETO
Selecionar Projeto
Desenvolver Diagramas de Fluxo de Dados Fsicos
I Desenvolver Diagramas de Relacionamentos de Entidades
Fsicas
I Projetar Arquitetura
I Selecionar Hardware e Software
I Desenvolver Cenrios de Uso
1 Projetar Estrutura de Interface
] Projetar Padres de Interface
] Projetar Prottipo de Interface
] Avaliar Interface de Usurio
1 Projetar Interface de Usurio
] Selecionar Formato de Armazenamento de Dados
] Desnormalizar Diagrama de Relacionamento de Entidades
] Otimizar Armazenamento de Dados
3 Dimensionar Armazenamento de Dados
] Desenvolver Diagrama de Estrutura de Programa
] Desenvolver Especificao de Programa
ANALISE PROJETO
PLANEJAMENTO
CAPITULO 9
PROJETO DE
ARQUITETURA
OBJETIVOS
ESTRUTURA DO CAPITULO
IMPLEMENTAO
INTRODUO
No ambiente atual, a maioria dos sistemas de informaes disseminada por meio de dois ou mais
computadores. Um sistema baseado na Web, por exemplo, ser executado no navegador em seu
computador pessoal, mas interagir com o servidor Web (e possivelmente com outros computa-
dores) por meio da Internet. Um sistema que opere inteiramente dentro da rede de uma empresa
pode ter um programa em Visual Basic instalado em seu computador, mas interagir com um ser-
vidor de banco de dados em algum lugar na rede. Portanto, uma etapa importante da fase de pro-
jeto a criao do projeto de arquitetura, o esquema de como o sistema ser distribudo pelos
computadores e quais hardwares e softwares sero usados para cada computador (p. ex., Win-
dows, Linux).
A maioria dos sistemas construda para usar os hardwares e softwares existentes na empresa;
assim, freqentemente a arquitetura atual e a infra-estrutura de hardware e software restringem a
opo. Outros fatores, como padres empresariais, acordos de licenciamento de uso local existen-
tes e relaes produto-fornecedor, tambm podem decretar qual arquitetura, hardware e software
a equipe de projeto deve desenvolver. Entretanto, muitas empresas hoje em dia dispem de mui-
tas infra-estruturas ou esto procurando abertamente projetos-piloto para testarem novas arquite-
turas, hardwares e softwares, permitindo que uma equipe de projeto selecione uma arquitetura
baseada em outros fatores importantes.
Projetar uma arquitetura pode ser muito difcil e, portanto, muitas empresas contratam consul-
tores especializados ou atribuem a tarefa a analistas muito experientes.1 Neste captulo, examina-
remos os fatores mais importantes no projeto de arquitetura, mas importante lembrar que pre-
ciso alguma experincia para fazer isso bem. Os requisitos no-funcionais desenvolvidos anteri-
ormente na fase de anlise (veja o Captulo 4) desempenham um papel importante no projeto de
arquitetura. Esses requisitos so reexaminados e refinados em requisitos mais detalhados que in-
fluenciam a arquitetura do sistema. Neste captulo, explicaremos primeiro com que finalidade os
projetistas analisam as arquiteturas de aplicaes e descreveremos as trs arquiteturas principais:
arquitetura baseada em servidor, arquitetura baseada em cliente e arquitetura cliente-servidor.
Depois, examinaremos como os requisitos no-funcionais definidos de forma mais generalizada
na fase de anlise so refinados em requisitos mais especficos, e as implicaes deles sobre o
projeto de arquitetura. Finalmente, apreciaremos como os requisitos e a arquitetura podem ser
usados para desenvolver as especificaes de hardware e software que definem exatamente quais
outros hardwares e softwares (p. ex., sistemas de banco de dados) so necessrios para dar suporte
ao sistema de informaes em desenvolvimento.
Componentes Arquitetnicos
Os componentes arquitetnicos mais importantes de qualquer sistema so os softwares e os
hardwares. Os componentes de software mais importantes do sistema em desenvolvimento tm
de ser identificados e, em seguida, alocados para os vrios componentes de hardware em que o
'Para obter mais informaes sobre projeto de arquitetura, consulte o Zachman Institute em www.zifa.com.
Projeto de Arquitetura 237
sistema operar. Cada um desses componentes pode ser combinado de diversas maneiras dife-
rentes.
Todos os sistemas de software podem ser divididos em quatro funes bsicas. A primeira a
armazenagem de dados. A maioria dos sistemas de informaes requer que os dados sejam arma-
zenados e recuperados, seja em um pequeno arquivo, como um campo memo produzido por um
processador de texto, seja em um grande banco de dados, como um que armazene registros cont-
beis de uma empresa. Essas so as entidades de dados documentadas nos diagramas de relaciona-
mentos de entidades (ERDs). A segunda funo a lgica de acesso aos dados, o processamento
exigido para acessar os dados, que freqentemente significa consultas a banco de dados em
Structured Query Language (SQL). A terceira funo a lgica de aplicao, que a lgica do-
cumentada nos diagramas de fluxo de dados (DFDs), casos de uso e requisitos funcionais. A quar-
ta funo a lgica de apresentao, a exibio das informaes para o usurio e a aceitao dos
comandos do usurio (a interface com o usurio). Essas quatro funes (armazenagem de dados,
lgica de acesso aos dados, lgica de aplicao e lgica de apresentao) so os blocos bsicos de
construo de qualquer sistema de informaes.
Os trs componentes principais de hardware de um sistema so os computadores cliente, os
servidores e a rede que os conecta. Os computadores cliente so os dispositivos de entrada/sada
empregados pelos usurios, e normalmente so computadores de mesa ou laptops, mas tambm
podem ser dispositivos manuais, telefones celulares, terminais com finalidades especiais, e assim
por diante. Os servidores normalmente so computadores grandes, usados para abrigar softwares
e hardwares que podem ser acessados por algum que tenha permisso. Os servidores podem se
apresentar em diversos tamanhos: mainframes (muito grandes, computadores poderosos custan-
do geralmente milhes de dlares), minicomputadores (computadores grandes custando centenas
de milhares de dlares) e microcomputadores (computadores pequenos de mesa, como os que voc
usa, podendo custar $50 mil ou mais). A rede que conecta os computadores pode variar em velo-
cidade de uma conexo lenta, via telefone celular ou modem que deve ser discado, a redes frame
relay sempre ativas de velocidade mdia, a conexes rpidas de banda larga, como circuitos de
modem via cabo, DSL ou TI sempre ativos, e ainda a circuitos Ethernet, T3 ou ATM, sempre
ativos de alta velocidade.2
Hospedeiro do Servidor
(computador mainframe)
Cliente/(terminal)
?s9t
Lgica de apresentao
Lgica de aplicao
FIGURA 9-1 Lgica de acesso aos dados
Arquitetura Baseada em Servidor Armazenamento de dados
2
Para obter mais informaes sobre redes, consulte Networking in the Internet Age, de Alan Dennis, John Wiley & Sons,
2002.
238 Captulo Nove
Essa arquitetura simples geralmente funciona muito bem. A aplicao desenvolvida e arma-
zenada em um computador, e todos os dados esto no mesmo computador. H um ponto de con-
trole pelo qual todas as mensagens trafegam por um servidor central. O problema fundamental
com as redes baseadas em servidor que este deve processar todas as mensagens. Como as de-
mandas por mais e mais aplicaes crescem, muitos computadores servidores ficam sobrecarre-
gados e incapazes de processar rapidamente todas as demandas dos usurios. O tempo de resposta
se torna mais lento, e os gerentes de redes so forados a gastar cada vez mais dinheiro para atu-
alizar o computador servidor. Infelizmente, as atualizaes incluem muitos adicionais e so caras
(em torno de $500 mil); difcil atualizar "um pouco".
Arquiteturas Cliente-Servidor
A maioria das empresas, hoje em dia, est mudando para as arquiteturas cliente-servidor, que
tenta equilibrar o processamento entre o cliente e o servidor. Nessas arquiteturas, o cliente res-
Cliente Servidor
(microcomputador) (microcomputador)
Cliente
(microcomputador)
FIGURA 9-3
Arquitetura Cliente-Servidor. Fonte:
Business Data Communications and
Networking, de Jerry Fitzgerald e Alan
Dennis, 65 ed, p. 75. Copyright 1 9 9 9
por John Wiley & Sons, Inc. Usado com Lgica de apresentao Lgica de armazenagem dos dados
permisso. Lgica de aplicao Armazenamento de dados
Projeto de Arquitetura 239
ponsvel pela lgica de apresentao, enquanto o servidor responsvel pela lgica de acesso aos
dados e pela armazenagem de dados. A lgica da aplicao pode residir no cliente, no servidor ou
ser dividida entre ambos (Figura 9-3). Quando o cliente tem a maior parte ou toda a lgica de
apresentao (como na Figura 9-3) denominado cliente gordo. Se o cliente contm apenas a funo
da apresentao e a maior parte da funo da aplicao reside no servidor, ele denominado cli-
ente magro. Por exemplo, muitos sistemas baseados na Web so projetados com o navegador Web
executando a lgica de apresentao e somente o mnimo da lgica de aplicao usando lingua-
gens de programao como Java, enquanto o servidor Web mantm a lgica de aplicao, a lgica
de acesso aos dados e a armazenagem de dados.
As arquiteturas cliente-servidor apresentam quatro benefcios importantes. Primeiro, elas so
redimensionveis. Isso significa que fcil aumentar ou diminuir as capacidades de armazena-
gem e processamento dos servidores. Se um servidor fica sobrecarregado, voc simplesmente
adiciona outro servidor a fim de que muitos servidores sejam usados para executar a lgica de
aplicao, a lgica de acesso aos dados ou a armazenagem de dados. O custo para atualizar mais
gradual, e voc pode fazer isso em etapas menores (em torno de $5 mil), em vez de gastar cente-
nas de milhares de dlares para atualizar um servidor mainframe.
Segundo, as arquiteturas cliente-servidor podem dar suporte a muitos tipos diferentes de clien-
tes e servidores. possvel conectar computadores que usem sistemas operacionais diferentes para
que os usurios possam escolher qual tipo de computador preferem (p. ex., combinar computado-
res Windows e Apple Macintosh na mesma rede). Voc no fica restrito a um fornecedor, como
freqente nos casos de redes baseadas em servidor. O middleware um tipo de software projetado
para fazer a converso de informaes entre softwares de fornecedores diferentes. O middleware
instalado nos computadores cliente e servidor. O software do cliente se comunica com o
middleware, que pode reformatar a mensagem em uma linguagem-padro possvel de ser com-
preendida pelo middleware que auxilia o software do servidor.
Terceiro, para as arquiteturas cliente magro-servidor que usam padres da Internet simples
separar claramente a lgica de apresentao, a lgica de aplicao e a lgica de acesso aos dados
e projetar cada uma para ser um pouco independente. Por exemplo, a lgica da apresentao pode
ser projetada em HTML ou XML para especificar como a pgina aparecer na tela (p. ex., cores,
fontes, ordem dos itens, palavras especficas usadas, botes de comando, tipo de listas de seleo,
e assim por diante; veja o Captulo 10). Declaraes simples de programa so usadas para vincu-
lar partes da interface a mdulos especficos da lgica de aplicao que executam vrias funes.
Esses arquivos HTML ou XML que definem a interface podem ser alterados sem afetar a lgica
da aplicao. Da mesma maneira, possvel alterar a lgica de aplicao sem alterar a lgica de
apresentao ou os dados, que esto armazenados em bancos de dados acessados por meio de
comandos SQL.
Finalmente, como no existe apenas um computador servidor processando todos os programas,
a rede geralmente mais confivel. No h nenhum ponto central de falha que interromper o
funcionamento de toda a rede se ele falhar, como existe nas arquiteturas baseadas em servidor. Se
qualquer servidor falhar em um ambiente cliente-servidor, a rede pode continuar a funcionar usando
todos os demais servidores.
As arquiteturas cliente-servidor tambm apresentam algumas limitaes crticas, sendo a mais
importante a sua complexidade. Todas as aplicaes no processamento cliente-servidor tm duas
partes, o software no cliente e o software no servidor. Escrever esse software mais complicado
que escrever o software tradicional exclusivo usado nas arquiteturas baseadas em servidor. Atua-
lizar a rede com uma nova verso do software ainda mais complicado. Nas arquiteturas basea-
das em servidor h um local onde o software armazenado; para atualiz-lo, voc simplesmente
o substitui em seu local de armazenagem. Com as arquiteturas cliente-servidor voc deve fazer a
atualizao em todos os clientes e servidores.
Muitos debates sobre arquiteturas baseadas em servidor versus cliente-servidor visam o custo.
Um dos grandes argumentos das redes baseadas em servidor na dcada de 1980 era que proporci-
onavam economia. Os fabricantes de grandes mainframes argumentavam que era mais barato
manter servios em um grande mainframe que em uma srie de computadores menores. A revolu-
o do microcomputador mudou isso. Desde a dcada de 1980 o custo de microcomputadores tem
cado continuamente, enquanto o desempenho tem crescido significativamente. Hoje, o hardware
do microcomputador mais de 1.000 vezes mais barato que o hardware do mainframe para a mes-
ma capacidade instalada de processamento.
240 Captulo Nove
Camadas Cliente-Servidor
H muitas maneiras de dividir a lgica da aplicao entre o cliente e o servidor. A Figura 9-3 mostra
uma das mais comuns. Nesse caso, o servidor responsvel pelos dados e o cliente responsvel
pela apresentao e pela aplicao. Isso denominado arquitetura de duas camadas, porque usa
apenas dois conjuntos de computadores, clientes e servidores.
Uma arquitetura de trs camadas usa trs conjuntos de computadores, como mostrado na Fi-
gura 9-4. Nesse caso, o software no computador cliente responsvel pela lgica da apresenta-
o, um (ou mais) servidor de aplicao responsvel pela lgica da aplicao e um (ou mais)
servidor de banco de dados separado responsvel pela lgica de acesso aos dados e pela armaze-
nagem de dados.
Uma arquitetura de n camadas usa mais de trs conjuntos de computadores. Nesse caso, o cli-
ente responsvel pela apresentao, um (ou mais) servidor de banco de dados responsvel pela
lgica de acesso aos dados e pela armazenagem de dados, e a lgica da aplicao distribuda por
dois ou mais conjuntos de servidores diferentes. A Figura 9-5 mostra um exemplo de uma arqui-
tetura de n camadas de um software denominado Consensus @nyWARE.3 O Consensus
@nyWARE tem quatro componentes principais. O primeiro o navegador Web no computador
cliente, empregado por um usurio para acessar o sistema e efetuar comandos (lgica da apresen-
tao). O segundo componente um servidor Web que responde s solicitaes do usurio forne-
cendo pginas e elementos grficos em HTML (lgica da aplicao) ou enviando a solicitao ao
terceiro componente (um conjunto de 28 programas escritos na linguagem de programao C) em
outro servidor de aplicao que executa diversas funes (lgica da aplicao). O quarto compo-
nente um servidor de banco de dados que armazena todos os dados (lgica de acesso aos dados
e armazenagem de dados). Cada um desses quatro componentes est separado, facilitando a dis-
tribuio dos componentes diferentes em servidores diferentes e a diviso da lgica da aplicao
em dois servidores diferentes.
A vantagem principal de uma arquitetura cliente-servidor de n camadas, comparada a uma ar-
quitetura de duas camadas (ou uma de trs camadas comparada a uma de duas camadas), que ela
divide inteiramente o processamento que ocorre para equilibrar melhor a carga nos servidores di-
ferentes; ela mais redimensionvel. Na Figura 9-5 temos trs servidores separados, uma confi-
gurao que oferece mais capacidade do que se tivssemos usado uma arquitetura de duas cama-
das com apenas um servidor. Se descobrirmos que o servidor de aplicao est muito sobrecarre-
gado, podemos simplesmente substitu-lo por um servidor mais eficiente ou apenas instalar mais
alguns servidores de aplicao. Inversamente, se descobrirmos que o servidor de banco de dados
est sendo subutilizado podemos armazenar dados de outra aplicao nele.
H duas desvantagens importantes em uma arquitetura de n camadas comparada a uma ar-
quitetura de duas camadas (ou uma de trs camadas comparada a uma de duas camadas). Pri-
meira, a configurao impe uma carga maior sobre a rede. Se voc comparar as Figuras 9-3,
9-4 e 9-5 ver que o modelo de n camadas requer mais comunicao entre os servidores; isso
gera mais trfego na rede, assim preciso usar uma rede de capacidade mais alta. Segunda,
muito mais difcil programar e testar softwares em arquiteturas de n camadas do que em arqui-
3
0 Consensus @nyWARE foi desenvolvido originariamente por Alan Dennis durante sua permanncia na Universidade
da Gergia. Pode ser consultado na Web em www.softbicycle.com.
Projeto de Arquitetura 241
Lgica de apresentao
teturas de duas camadas, porque muitos dispositivos tm de se comunicar para concluir a tran-
sao de um usurio.
qentemente fica a cargo de projetistas e consultores experientes, mas ciaremos uma idia do pro-
jeto aqui.
Cada uma das arquiteturas de computao discutidas anteriormente tem suas vantagens e des-
vantagens. A maioria das empresas est tentando mudar para arquiteturas cliente-servidor por razes
de custo; assim, no caso de no haver nenhuma razo convincente para escolher uma outra arqui-
tetura, o custo normalmente sugere a arquitetura cliente-servidor.
A criao de um projeto de arquitetura comea com os requisitos no-funcionais. A primeira
etapa refinar os requisitos no-funcionais em requisitos mais detalhados que so, ento, usados
para ajudar a selecionar a arquitetura a ser usada (baseada em servidor, baseada em cliente ou cli-
ente-servidor) e quais componentes de software sero colocados em cada mquina. Em uma ar-
quitetura cliente-servidor algum tambm tem de decidir se ser usada uma arquitetura de duas
camadas, de trs camadas ou de n camadas. Depois, os requisitos no-funcionais e o projeto de
arquitetura sero usados para desenvolver a especificao de hardware e software.
H quatro tipos principais de requisitos no-funcionais que podem ser importantes ao se proje-
tar a arquitetura: requisitos operacionais, de desempenho, de segurana e culturais/polticos. Des-
creveremos cada um e, em seguida, explicaremos como eles podem afetar o projeto de arquitetura.
Requisitos Operacionais
Os requisitos operacionais especificam o ambiente (ou ambientes) operacional em que o sistema
deve ser executado e como ele pode mudar ao longo do tempo. Isso normalmente se refere a sis-
temas operacionais, softwares e sistemas de informaes com os quais o sistema deve interagir, mas
ocasionalmente tambm incluir o ambiente fsico, se ele for importante para a aplicao (p. ex., um
ambiente barulhento de fbrica, no qual nenhum alerta audvel pode ser ouvido). A Figura 9-6 resu-
me as quatro reas principais do requisito operacional e fornece alguns exemplos de cada um.
Requisitos de Integrao A capacidade que o sistema ter para O sistema deve ser capaz de importar
de Sistemas operar com outros sistemas e exportar planilhas do Excel.
O sistema far a leitura e a gravao
para o banco de dados de estoque
principal no sistema de estoque.
Requisitos de A capacidade que o sistema ter para O sistema deve ser capaz de trabalhar
Portabilidade operar em outros ambientes em verses futuras do Internet Explorer.
O sistema pode precisar operar com
dispositivos manuais, como um Palm.
Requisitos de Alteraes operacionais esperadas O sistema deve ser capaz de assimilar
Atualizao s quais o sistema deve ser capaz mais uma fbrica com aviso prvio de
de se adaptar seis meses.
Novas verses do sistema sero
lanadas a cada seis meses.
FIGURA 9-6
Requisitos Operacionais
Projeto de Arquitetura 243
sistema operacional (p. ex., Windows, Linux), o software do sistema de banco de dados (p. ex.,
Oracle) e outros softwares do sistema (p. ex., Internet Explorer). Ocasionalmente, pode haver re-
quisitos de hardwares especficos que imponham importantes limitaes ao sistema, como a ne-
cessidade de operar em um PDA ou telefone celular com um visor muito pequeno.
Requisitos de Desempenho
Os requisitos de desempenho enfocam as questes de desempenho, como tempo de resposta, ca-
pacidade e confiabilidade. A Figura 9-7 resume trs reas principais do requisito de desempenho
e oferece alguns exemplos.
Requisitos d e V e l o c i d a d e O tempo no qual o sistema tem de O tempo de resposta tem de ser menor que sete
executar suas funes segundos para qualquer transao pela rede.
O banco de dados do estoque tem de ser
atualizado em tempo real.
Os pedidos sero transmitidos para a fbrica a
cada 30 minutos.
FIGURA 9 - 7
Requisitos de Desempenho
Requisitos de Velocidade Os requisitos de velocidade so exatamente o que querem dizer: o grau
de velocidade que o sistema deve ter para operar. Primeiramente, o tempo de resposta do sistema:
quanto tempo o sistema leva para responder a uma solicitao do usurio. Embora todo mundo
prefira agilidade nos tempos de resposta, com o sistema respondendo imediatamente a cada soli-
citao do usurio, essa no a prtica. Poderamos projetar esse sistema, mas seria muito caro. A
maioria dos usurios compreende que certas partes de um sistema respondero rapidamente, en-
quanto outras sero mais lentas. Aquelas aes que so executadas localmente no computador do
usurio devem ser quase imediatas (p. ex., digitao, arrastar e soltar), enquanto outras que reque-
rem comunicao por uma rede podem ter tempos de resposta maiores (p. ex., uma solicitao
Web). Em geral, tempos de resposta menores que sete segundos so considerados aceitveis quando
se requer uma comunicao por uma rede.
O segundo aspecto dos requisitos de velocidade quanto tempo leva para as transaes em
uma parte do sistema serem refletidas em outras partes. Por exemplo, com que rapidez um item se
tornar indisponvel para venda a outra pessoa aps ter sido comprado por algum? Se o estoque
no for atualizado imediatamente, outra pessoa poder efetuar um pedido do mesmo item, desco-
brindo somente depois que ele est fora de estoque. Ou com que rapidez, aps um pedido ter sido
feito, ele enviado ao depsito para ser selecionado no estoque e despachado? Nesse caso, algum
atraso poderia ter pouco impacto.
Requisitos de Segurana
A segurana a capacidade de proteger o sistema de informaes contra distrbios e perda de
dados, causados por uma ao intencional (um hacker ou um ataque terrorista) ou um aconteci-
Projeto de Arquitetura 245
EM AO
No final de 1997, a Oxford Health Plans contabilizou uma para mais de $ 4 0 0 milhes, e os pagamentos devidos a cola-
perda de $ 1 20 milhes em seus livros. O inesperado crescimento boradores importavam em mais de $ 6 5 0 milhes. Erros no pla-
da empresa foi sua runa, porque o sistema, que estava planeja- nejamento da infra-estrutura podem custar muito mais que os
do originalmente para suportar os 21 7 . 0 0 0 membros da empre- hardwares, softwares e equipamentos de rede sozinhos.
sa, tinha de satisfazer as necessidades de um grupo que exce-
dia 1,5 milho. Fonte: "Management: How New Technology was Oxford's Nemesis",
Os usurios do sistema descobriram que processar a inscri- The Wall Street Journal, December 11,1997, p. A. 1, de Ron
Winslow e George Anders.
o de um novo membro levava 15 minutos, em vez dos seis
segundos propostos. Alm disso, os problemas relacionados aos
PERGUNTA:
computadores deixaram a Oxford impossibilitada de enviar fa-
Se voc fosse o encarregado do projeto da Oxford, quais fa-
turas a muitos de seus clientes, alm de impedi-la de localizar os
tos teria considerado ao planejar a capacidade do sistema?
pagamentos de centenas de mdicos e hospitais. Em menos de
um ano, os pagamentos no cobrados de clientes triplicaram
FIGURA 9 - 8
Requisitos de Segurana
rante, o banco no poder conduzir os negcios com seus clientes. Uma aplicao crtica de mis-
so um sistema de informaes que seja literalmente crucial para a sobrevivncia da empresa.
uma aplicao que no pode se permitir falhar, e se falhar o pessoal de operaes parar tudo para
solucionar o problema. As aplicaes cruciais para o funcionamento em geral so claramente iden-
tificadas; portanto, a importncia delas no negligenciada.
Mesmo os distrbios temporrios no servio podem ter custos significativos. O custo de distrbi-
os no Web site principal de uma empresa ou nas redes locais e backbones que do suporte s opera-
es de vendas por telefone freqentemente medido em milhes. A Amazon.com, por exemplo,
tem receitas de mais de U$ 10 milhes por hora; assim, se o Web site da empresa ficar inoperante por
uma hora, ou mesmo uma frao de hora, acarretar um custo de milhes de dlares em perda de
receita. As empresas que efetuam menos vendas por meio de comrcio eletrnico ou via telefone
possuem custos menores, mas levantamentos recentes que sugerem perdas de $100.000 a $200.000
por hora no so incomuns para os principais sistemas de informaes voltados ao cliente.
Requisitos de Controle de Acesso Alguns dados armazenados no sistema precisam ser mantidos
em sigilo; alguns dados precisam de controles especiais sobre quem est autorizado a alter-los
ou exclu-los. Registros de pessoal, por exemplo, deveriam estar disponveis para leitura somente
para o departamento de pessoal e para o supervisor dos empregados; as alteraes deveriam ficar
a cargo somente do departamento de pessoal. Os requisitos de controle de acesso especificam quem
pode acessar quais dados e que tipo de acesso permitido: se o indivduo pode criar, ler, atualizar
e/ou excluir os dados. Os requisitos reduzem a chance de um usurio autorizado do sistema exe-
cutar aes no-autorizadas.
Requisitos de Criptografia e Autenticao Uma das melhores maneiras de evitar acesso no-auto-
rizado a dados a criptografia, que um meio de distinguir informaes pelo uso de algoritmos
matemticos (ou frmulas). A criptografia pode ser usada para proteger dados armazenados em
bancos de dados ou dados que so transmitidos por uma rede provenientes de um banco de dados
para um computador. H dois tipos fundamentalmente diferentes de criptografia: simtrica e assi-
mtrica. Um algoritmo de criptografia simtrica (como o Data Encryption Standard [DES] ou
Projeto de Arquitetura 247
Advanced Encryption Standard [AES]) uma criptografia em que a chave usada para criptografar
uma mensagem a mesma usada para decifr-la, o que significa que essencial proteger a chave,
e que uma chave separada deve ser usada para cada pessoa ou empresa com quem o sistema com-
partilha informaes (ou uma outra pessoa poder ler todos os dados).
Um algoritmo de criptografia assimtrica (como a criptografia de chave pblica) uma
criptografia em que a chave usada para criptografar os dados (denominada chave pblica) dife-
rente da chave usada para decriptograf-los (denominada chave privada). Mesmo que algum
conhea a chave pblica, uma vez que os dados estejam criptografados no podem ser decifrados
sem a chave privada. A criptografia de chave pblica reduz imensamente o problema de gerenci-
amento de chaves. Cada usurio possui sua chave pblica que usada para criptografar mensa-
gens enviadas a ele. Essas chaves pblicas so amplamente divulgadas (p. ex., listadas em um
diretrio no estilo de um catlogo telefnico) por isso elas so chamadas de chaves "pblicas".
A chave privada, ao contrrio, mantida em segredo (por isso chamada de chave "privada").
A criptografia de chave pblica tambm permite autenticaes (ou assinaturas digitais). Quando
um usurio envia uma mensagem para outro difcil provar legalmente quem realmente enviou a
mensagem. A prova legal importante em muitas comunicaes, como transferncias bancrias e
pedidos de compra/venda em moeda corrente e comercializao de aes, o que normalmente re-
quer assinaturas legais. Os algoritmos de criptografia de chave pblica so reversveis, o que signi-
fica que o texto criptografado com qualquer uma das duas chaves pode ser decifrado pela outra. Nor-
malmente criptografamos com a chave pblica e deciframos com a chave privada. Porm, possvel
fazer o inverso: criptografar com a chave privada e decifrar com a chave pblica. Visto que a chave
privada secreta, somente o usurio real poderia us-la para criptografar uma mensagem. Portanto,
uma assinatura digital ou seqncia de autenticao usada como uma assinatura legal em muitas
transaes financeiras. Essa assinatura normalmente o nome da parte signatria interessada mais
outra informao exclusiva da mensagem (p. ex., data, hora ou montante em dlares). Essa assinatu-
ra e a outra informao so criptografadas pelo remetente usando a chave privada. O destinatrio usa
a chave pblica do remetente para decifrar o bloco de assinatura e compara o resultado ao nome e ao
contedo de outra chave no restante da mensagem para assegurar uma correlao.
O nico problema com essa abordagem assegurar que a pessoa ou empresa que enviou o
documento com a chave privada correta realmente quem afirma ser. Qualquer pessoa pode pos-
tar uma chave pblica pela Internet sem que haja uma maneira segura de saber quem ela realmen-
te . Por exemplo, seria possvel uma pessoa afirmar ser da "Empresa A", quando na realidade
um impostor.
nessa situao que a infra-estrutura da chave pblica (PKI, public key infrastructure) se tor-
na importante.4 A PKI um conjunto de hardwares, softwares, empresas e polticas projetado para
fazer com que a criptografia de chave pblica funcione na Internet. A PKI comea com uma au-
toridade de certificao, AC (CA, certificate authority), que um rgo confivel que pode ga-
Requisitos de Controle de Vrus O problema de segurana individual mais comum vem do vrus.
Estudos recentes tm mostrado que quase 90% das empresas sofrem uma infeco por vrus a cada
ano. Os vrus provocam situaes indesejveis algumas inofensivas (como mensagens incon-
venientes), algumas srias (como a destruio de dados). Sempre que um sistema permite que dados
sejam importados ou carregados a partir do computador de um usurio, h a possibilidade de uma
infeco por vrus. Muitos sistemas requerem que todos os sistemas de informaes que permi-
tem a importao ou carga de arquivos de usurios verifiquem esses arquivos em busca de vrus
antes de armazen-los no sistema.
Requisitos Multilnges A primeira e mais bvia diferena entre as aplicaes usadas em uma regio
e aquelas projetadas para uso global o idioma. As aplicaes internacionais freqentemente tm
requisitos multilnges, o que significa que devem prever o uso por usurios que falem idiomas di-
ferentes ou escrevam usando caracteres diferentes do ingls (p. ex., caracteres com acentos, cirlico,
japons). Um dos aspectos mais desafiadores em projetar sistemas internacionais obter uma boa
traduo das mensagens no idioma original para um novo idioma. As palavras freqentemente tm
significados similares, mas podem transmitir significados ligeiramente diferentes quando so tradu-
zidas, assim importante usar tradutores qualificados em traduo de termos tcnicos.
O outro desafio o espao da tela. Em geral, as mensagens no idioma ingls normalmente
consomem de 20% a 30% menos letras que suas congneres no idioma francs ou espanhol. Pro-
jetar sistemas internacionais requer alocar mais espao de tela para as mensagens do que poderia
ser usado na verso em ingls.
Alguns sistemas so projetados para manipular diversos idiomas dinamicamente, para que
usurios em pases diferentes possam usar idiomas diferentes ao mesmo tempo; isto , o mesmo
sistema admite diversos idiomas diferentes simultaneamente (um sistema multilnge simultneo).
Outros sistemas contm partes separadas que so escritas em cada idioma e devem ser reinstaladas
antes que um idioma especfico possa ser usado; isto , cada idioma servido por uma verso
diferente do sistema para que qualquer instalao use apenas um idioma (especificamente, um
sistema multilnge discreto). Qualquer uma dessas abordagens pode ser eficiente, mas essa fun-
cionalidade deve ser projetada para o sistema bem antes da implementao.
Requisitos de Personalizao Para aplicaes internacionais, a equipe de projeto precisar dar al-
guma ateno aos requisitos de personalizao: o quanto da aplicao ser gerenciado por um
Projeto de Arquitetura 249
FIGURA 9-9
Requisitos Culturais e Polticos
EM AO
Tive a oportunidade de desenvolver dois sistemas multilnges. incluindo francs, espanhol, portugus, alemo, finlands e
O primeiro foi um sistema de suporte deciso com finalidade croata. Esse sistema permite que o usurio alterne vontade entre
especfica para ajudar a programar pedidos em fbricas de pa- idiomas, armazenando mensagens em arquivos simples de tex-
pel denominado BCW-Trim. O sistema foi instalado em dezenas to. Esse projeto muito mais flexvel, porque cada instalao
de fbricas de papel no Canad e nos Estados Unidos, e foi pro- individual pode revisar as mensagens vontade. Sem essa abor-
jetado para operar em ingls ou em francs. Todas as mensa- dagem, improvvel que houvesse demanda suficiente para jus-
gens eram armazenadas em arquivos separados (um definido tificar o desenvolvimento de verses para dar suporte a idiomas
em ingls, outro definido em francs), com o programa escrito menos usados normalmente (p. ex., o croata).
para usar variveis inicializadas para o texto em ingls ou em Alan Pennie
francs. Os arquivos do idioma apropriado foram includos quan- PERGUNTAS:
do o sistema foi compilado para produzir a verso em francs 1. Como voc decidiria admitir usurios que falam idiomas di-
ou em ingls. ferentes do ingls no sistema?
O segundo programa foi um sistema criado por um grupo de 2. Voc criaria recursos multilnges para qualquer aplicao
trabalho denominado GroupSystems, para o qual projetei diver- que estivesse disponvel para pessoas que no falassem o
sos mdulos. O sistema foi traduzido em dezenas de idiomas, idioma ingls? Pense nos W e b sites que existem hoje em dia.
grupo central e o quanto ser gerenciado localmente. Por exemplo, algumas empresas permitem
que as subsidirias em alguns pases personalizem a aplicao omitindo ou adicionando certos
recursos. Essa deciso traz equilbrio entre flexibilidade e controle, porque a personalizao fre-
qentemente dificulta a criao e a manuteno da aplicao pela equipe de projeto. Isso tambm
significa que o treinamento pode diferir entre partes diferentes da empresa, e a personalizao pode
criar problemas quando o pessoal se desloca de um local para outro.
Normas Implcitas Muitos pases possuem normas implcitas que no so compartilhadas interna-
cionalmente. importante para o projetista da aplicao tornar explcitas essas suposies, por-
que do contrrio elas podem gerar confuses. Nos Estados Unidos, a norma implcita para digitar
uma data o formato de data mm/dd/aa; porm, no Canad e na maioria dos pases europeus a
norma implcita dd/mm/aa. Quando voc estiver projetando sistemas internacionais crucial
reconhecer essas normas implcitas e torn-las explcitas, para que os usurios em pases diferen-
tes no fiquem confusos. A moeda corrente em uso outro item que s vezes negligenciado no
projeto do sistema; sistemas de aplicao internacionais devem especificar a moeda corrente que
est sendo usada para inserir e apresentar informaes.
Requisitos Legais Os requisitos legais so aqueles impostos pelas leis e regulamentos de gover-
nos. Os desenvolvedores de sistemas s vezes se esquecem de levar em conta os regulamentos
legais, mas, infelizmente, agir dessa forma vem a ser um risco, porque a ignorncia das leis no
nenhuma justificativa. Por exemplo, em 1997 um tribunal francs condenou o Gergia Institute of
Technology por violar a lei do idioma francs. O Gergia Tech operava uma pequena faculdade
na Frana que oferecia cursos de vero para estudantes americanos. As informaes no servidor
Web da faculdade estavam principalmente em ingls, porque as aulas eram ministradas em in-
gls, o que violou a lei que obriga o francs a ser o idioma predominante em todos os servidores
de Internet na Frana. Considerando formalmente os regulamentos legais, era pouco provvel que
tivessem sido negligenciados.
Projetando a Arquitetura
Em muitos casos, quando orientados pelos requisitos empresariais, os requisitos do ambiente tc-
nico podem simplesmente definir a arquitetura da aplicao. Nesse caso, a opo simples: os
requisitos empresariais predominam sobre outras consideraes. Por exemplo, os requisitos em-
presariais podem especificar que o sistema precisa operar por meio da Web usando o navegador
Web do cliente. Nesse caso, a arquitetura da aplicao deve ser cliente magro-servidor. Esses re-
quisitos empresariais ocorrem com maior probabilidade em sistemas projetados para dar suporte
a clientes externos. Sistemas internos tambm podem impor requisitos empresariais, mas normal-
mente no so to restritos.
No caso de os requisitos do ambiente tcnico no exigirem a escolha de uma arquitetura especfi-
ca, ento os outros requisitos no-funcionais se tornam importantes. Mesmo em casos em que os re-
quisitos empresariais conduzem a arquitetura ainda importante persistir e refinar os requisitos no-
funcionais restantes, porque eles sero importantes nas etapas posteriores do projeto e nas fases de
implementao. A Figura 9-10 resume a relao entre os requisitos e as arquiteturas recomendadas.
FIGURA 9 - 1 0
Requisitos No-funcionais e suas Baseada I Baseada Cliente Cliente
Requisitos em em Magro- Gordo-
Implicaes no Projeto de Arquitetura Servidor I Cliente Servidor Servidor
Requisitos Operacionais
Requisitos de Portabilidade
Requisitos de Atualizao
Requisitos de Desempenho
Requisitos de Velocidade
Requisitos de Capacidade
^uisitos de Disponibilidade/Confiabilidade
Requisitos de Segurana
Requisitos de Criptografia/Autenticao
Requisitos Culturais/Polticos
Requisitos Multilnge
Requisitos Culturais e Polticos Conforme os requisitos culturais e polticos se tornam mais impor-
tantes, a capacidade de separar a lgica de apresentao da lgica de aplicao e dos dados se torna
igualmente importante. Essa separao facilita o desenvolvimento da lgica de apresentao ein
idiomas diferentes, ao mesmo tempo em que mantm inalterados a lgica de aplicao e os dados.
Tambm facilita a personalizao da lgica de apresentao para usurios diferentes e a alterao
252 Captulo Nove
VEZ
Imagine o sistema de matrculas em disciplinas de sua univer- requisitos operacionais, de desempenho, de segurana e cultu-
sidade. Primeiro, desenvolva um conjunto de requisitos no-fun- rais e polticos. Depois crie um projeto de arquitetura que satis-
cionais se o sistema fosse ser desenvolvido hoje. Considere os faa esses requisitos.
VEZ
Muitas empresas multinacionais proporcionam cursos de nais para esse sistema. Considere os requisitos operacionais, de
aprendizado global baseados na Internet para seus emprega- desempenho, de segurana e culturais e polticos. Depois crie
dos. Primeiro, desenvolva um conjunto de requisitos no-funcio- um projeto de arquitetura que satisfaa esses requisitos.
dela para atender melhor s normas culturais. medida que a lgica de apresentao proporciona
acesso aplicao e aos dados, tambm facilita a implementao de diferentes verses que habi-
litam e desabilitam recursos exigidos por leis e regulamentos em diferentes pases. Essa separa-
o a mais simples nas arquiteturas cliente magro-servidor, e assim sistemas com muitos requi-
sitos culturais e polticos freqentemente usam arquiteturas cliente magro-servidor. Assim como
com os requisitos de integrao de sistemas, o impacto dos requisitos legais depende da natureza
especfica dos requisitos, mas em geral os sistemas baseados em clientes tendem a ser menos fle-
xveis.
FIGURA 9 - 1 1
Exemplo de uma Especificao de
Hardware e Software
devem ser usados; assim, em muitos casos essa etapa envolve simplesmente selecionar itens nas
listas. Outras vezes, porm, a equipe est operando em territrio novo e no est restrita neces-
sidade de selecionar em uma lista aprovada. Nesses casos, a equipe de projeto deve transferir es-
ses requisitos conforme o grau de capacidade de processamento, o grau de espao de armazena-
gem e qualquer recurso especial que deva ser includo. Essa etapa fica mais fcil quando se ex-
periente; entretanto, h sugestes que podem ajud-lo a descrever as necessidades de hardwares;
veja a Figura 9-12.
Funes e Recursos Quais funes e recursos especficos so necessrios (p. ex., tamanho de
monitor, recursos de software)
Desempenho O grau de rapidez de operao de hardwares e softwares (p. ex., processador,
nmero de gravaes por segundo em banco de dados)
Bancos de Dados e Sistemas Preexistentes O grau de interao de hardwares e softwares com
os sistemas preexistentes (p. ex., isso pode ser gravado nesse banco de dados)
Estratgias de Hardwares e Sistemas Operacionais Quais so os planos de migrao futuros
(p. ex., o objetivo dispor de todo o equipamento de um mesmo fornecedor)
Custo de Propriedade Quais so os custos alm da compra (p. ex., custos adicionais de licena,
manuteno anual, custos de treinamento, custos salariais)
Preferncias de Polticas As pessoas tm hbitos e so resistentes a mudanas, portanto as
modificaes devem ser minimizadas
FIGURA 9 - 1 2 Desempenho do Fornecedor Alguns fornecedores tm reputaes ou perspectivas futuras que no
Fatores na Seleo de Hardwares e condizem com os hardwares ou softwares especficos que vendem no momento
Softwares
254 Captulo Nove
VEZ
Desenvolva uma especificao de hardware e software para o sistema de matrculas em disciplinas de universidade descrito em
"Sua Vez 9 - 1 " .
I VEZ
I 9-4 SISTEMA DE APRENDIZADO ELETRNICO GLOBAL
Desenvolva uma especificao de hardware e software para o sistema de aprendizado eletrnico global descrito em "Sua Vez
9-2".
no-funcionais de alto nvel desenvolvidos na fase de anlise (veja a Figura 4-13, no Captulo 4)
e conduzindo uma sesso JAD e uma srie de entrevistas com gerentes no departamento de mar-
keting e gerentes de trs lojas para aprimorar os requisitos no-funcionais com mais riqueza de
detalhes. A Figura 9-13 mostra alguns dos resultados. A necessidade operacional clara de uma
arquitetura baseada na Web exigiu uma arquitetura cliente magro-servidor.
A CD Selections tinha um grupo de arquitetura formal responsvel por gerenciar a arquitetura
da CD Selections e sua infra-estrutura de hardware e software. Portanto, Alec organizou uma reu-
nio com a equipe de projeto e o grupo de arquitetura. Durante a reunio, ele confirmou que a CD
Selections ainda estava caminhando em direo a uma arquitetura final cliente-servidor, embora
o mainframe central ainda existisse como o servidor principal de muitas aplicaes baseadas em
servidor.
Eles discutiram o sistema de Internet e decidiram que ele deveria ser construdo usando uma
arquitetura cliente magro-servidor de trs camadas. Todos concordavam que era difcil saber nes-
se ponto exatamente quanto trfego esse Web site receberia e qual capacidade o sistema exigiria,
mas uma arquitetura cliente-servidor permitiria que a CD Selections aperfeioasse facilmente o
sistema conforme fosse necessrio.
No final da reunio, concordou-se que uma arquitetura cliente-servidor de trs camadas era a
melhor configurao para a parte do sistema relativa Internet. Os usurios utilizariam seus com-
putadores pessoais executando um navegador Web como o cliente. Um servidor de banco de da-
dos armazenaria os bancos de dados do sistema de Internet, enquanto um servidor de aplicao
abrigaria o software de servidor Web e o software de aplicao para operar o sistema.
O sistema de reservas j estava construdo, usando uma arquitetura cliente-servidor de duas
camadas; portanto, a parte do sistema responsvel pelas reservas satisfazia aquela arquitetura. Um
segundo sistema cliente-servidor de duas camadas habilitaria o pessoal no departamento de mar-
keting a manter as informaes sobre os materiais promocionais. Esse sistema teria uma aplica-
o para os microcomputadores do pessoal que trabalha no grupo de vendas pela Internet, que se
comunicaria diretamente com o servidor de banco de dados e permitiria ao pessoal atualizar as
informaes. O servidor de banco de dados teria um programa separado para trocar dados com o
sistema de pedidos especiais, com o sistema de estoque de CDs e com os bancos de dados de in-
formaes de CDs da CD Selections no mainframe da empresa.
Dado que a interface com a Web alcanaria um grupo geograficamente disperso, a equipe de
projeto percebeu que precisava planejar o suporte do sistema para 24 X 7. Ela agendou uma reu-
nio para conversar com o grupo de operaes de sistemas da CD Selections e discutiu como po-
deriam ser capazes de dar suporte ao sistema de Internet fora do horrio comercial padro.
1. Requisitos Operacionais
Ambiente Tcnico 1.1 O sistema funcionar por meio do ambiente Web com Internet Explorer e Real Audio.
1.2 Os clientes precisaro apenas do IE e do RA em seus computadores.
Integrao de Sistemas 1.3 O sistema de Internet lera informaes do banco de dados principal de informaes de CDs,
que contm informaes sobre CDs (p. ex., ttulo, artista, nmero de identificao, preo,
quantidade em estoque). O sistema de Internet no gravar informaes no banco de dados
principal de informaes de CDs.
1.4 O sistema de Internet transmitir pedidos de CDs novos no sistema de pedidos especiais e
contar com esse sistema para concluir os pedidos especiais gerados.
O sistema de Internet lera e gravar no banco de dados principal de estoque.
Um novo mdulo para o sistema de reservas ser escrito para gerenciar as "reservas"
geradas pelo sistema de Internet. Os requisitos desse novo mdulo sero documentados
como parte do sistema de Internet porque so necessrios para que ele funcione.
Portabilidade 1.7 O sistema precisar estar em dia com a evoluo dos padres Web, especialmente aqueles
pertencentes a formatos de msica.
Atualizao 1.8 Nenhum requisito especial de atualizao foi proposto.
2. Requisitos de Desempenho
Velocidade 2.1 Os tempos de resposta devem ser menores que sete segundos.
2.2 O banco de dados de estoque deve ser atualizado em tempo real.
2.3 As reservas devem ser enviadas ao estoque no prazo de cinco minutos.
Capacidade 2.4 Haver um mximo de usurios simultneos variando entre 20 e 50 no horrio de pico.
2.5 O sistema dar suporte a transmisses de udio de at 40 usurios simultneos.
2.6 O sistema enviar at 5K de dados para cada loja diariamente.
2.7 O banco de dados de reservas exigir de 10 a 20K de espao em disco por loja.
Disponibilidade e Confiabilidade 2.8 O sistema deve estar disponvel 24 horas por dias, 7 dias por semana.
2.9 O sistema ter 9 9 % de desempenho de funcionamento.
3. Requisitos de Segurana
Valor Agregado ao Sistema 3.1 Nenhum requisito especial de valor agregado ao sistema foi proposto.
Controle de Acesso 3.2 Apenas os gerentes de lojas podero anular reservas.
Criptografia/Autenticao 3.3 Nenhum requisito especial de criptografia/autenticao foi proposto.
Controle de Vrus 3.4 Nenhum requisito especial de controle de vrus foi proposto.
4. Requisitos Culturais/Polticos
FIGURA 9 - 1 3
Requisitos No-funcionais Selecionados
para a CD Selections
novos computadores clientes para o grupo de marketing que manter os materiais promocionais.
Eles desenvolveram uma especificao de hardware e software para aqueles componentes e a re-
passaram para o departamento de compras iniciar o processo de aquisio.
RESUMO
Arquiteturas de Aplicaes
Todos os sistemas de software podem ser divididos em quatro funes bsicas: armazenagem de
dados, lgica de acesso aos dados (p. ex., SQL), lgica de aplicao (que a lgica documentada
nos DFDs, casos de uso e requisitos funcionais) e a lgica de apresentao (a interface com o
usurio). H trs arquiteturas fundamentais de computao que dispem essas funes em com-
putadores diferentes. Nas arquiteturas baseadas em servidor, o servidor executa todas as funes.
Nas arquiteturas baseadas em cliente, os computadores clientes so responsveis pela lgica de
apresentao e pela lgica de acesso aos dados, com os dados sendo armazenados em um servidor
256 Captulo Nove
Projeto de Arquitetura
A criao de projetos de arquitetura comea com os requisitos no-funcionais. Os requisitos ope-
racionais especificam o ambiente operacional no qual o sistema deve ser executado e como po-
dem se modificar com o decorrer do tempo (especificamente, ambiente tcnico, integrao se sis-
temas, portabilidade e sustentabilidade). Os requisitos de desempenho enfocam questes de de-
sempenho, como velocidade, capacidade, disponibilidade e confiabilidade do sistema. Os requi-
sitos de segurana tentam proteger o sistema de informaes de distrbios e perdas de dados (p.
ex., valor agregado ao sistema, controle de acesso, criptografia e autenticao e controle de v-
rus). Os requisitos culturais e polticos so aqueles especficos para os pases onde o sistema ser
usado (ou seja, multilnge, personalizao, normas implcitas e legais).
TERMOS IMPORTANTES
24 X 7 Criptografia de chave pblica Requisitos de desempenho
Algoritmo de criptografia assimtrico Especificao de hardware e software Requisitos de disponibilidade e
Algoritmo de criptografia simtrico Funes confiabilidade
Armazenagem de dados Lgica de acesso aos dados Requisitos de integrao de sistemas
Arquitetura baseada em cliente Lgica de aplicao Requisitos de personalizao
Arquitetura baseada em servidor Lgica de apresentao Requisitos de portabilidade
Arquitetura cliente-servidor Mainframe Requisitos de segurana
Arquitetura de duas camadas Microcomputador Requisitos de velocidade
Arquitetura de n camadas Middleware Requisitos do ambiente tcnico
Arquitetura de trs camadas Minicomputador Requisitos legais
Autenticao Normas implcitas Requisitos multilnges
Autoridade de certificao, AC (CA, Projeto de arquitetura Requisitos operacionais
certificate authority) Rede Servidor
Chave privada Redimensionvel Sistema crucial para o funcionamento
Chave pblica Requisitos culturais e polticos Sistema multilnge discreto
Cliente gordo Requisitos de atualizao Sistema multilnge simultneo
Cliente magro Requisitos de capacidade Tempo de resposta
Componente arquitetnico Requisitos de controle de acesso Terminal
Computador cliente Requisitos de controle de vrus Valor agregado ao sistema
Controle Requisitos de criptografia e autenticao Vrus
Criptografia
Projeto de Arquitetura 257
PERGUNTAS
1. Quais so as quatro funes gerais de qualquer sistema de 12. Descreva os principais requisitos no-funcionais e como eles
informaes? influenciam o projeto de arquitetura.
2. Quais so os trs componentes de hardware principais de 13. Por que til definir os requisitos no-funcionais de forma
uma arquitetura de aplicao? mais detalhada, mesmo que os requisitos do ambiente tc-
3. Descreva dois exemplos de um servidor. nico determinem uma arquitetura especfica?
4. Compare e cite as diferenas entre as arquiteturas baseadas 14. Quais custos adicionais associados a hardwares e softwares
em servidor, baseadas em cliente e cliente-servidor. podem precisar ser includos na especificao de hardware
5. Qual o maior problema com as arquiteturas baseadas em e software?
servidor? 15. Quem, em ltima instncia, est encarregado de adquirir
6. Qual o maior problema com as arquiteturas baseadas em hardwares e softwares para o projeto?
cliente? 16. Na sua opinio, quais so os trs erros mais comuns come-
7. Descreva os principais benefcios e limitaes de arquitetu- tidos por analistas iniciantes na arquitetura de projeto e na
ras cliente-servidor. especificao de hardware e software?
8. Descreva as diferenas entre arquiteturas cliente-servidor 17. H algum requisito no-funcional que influencie mais que
de duas camadas, de trs camadas e de n camadas. outros o projeto de arquitetura e a especificao de hardwa-
9. Defina redimensionvel. Por que esse termo importante re e software?
para os desenvolvedores de sistemas? 18. Na sua opinio, quais so as questes de segurana mais
10. Descreva os elementos na criao de um projeto de arquite- importantes de um sistema?
tura.
11. Por que a equipe de projeto deve considerar a arquitetura da
aplicao existente na empresa ao projetar a arquitetura?
EXERCCIOS
A. Usando a Web (ou revistas especializadas), localize um sis- tema por um novo. Descreva por qual arquitetura do novo
tema que seja executado em um ambiente baseado em servi- sistema voc se decidiria usando os critrios apresentados
dor. Baseado no que aprendeu, por que voc acha que a em- neste captulo. De quais informaes voc precisar antes de
presa optou por esse ambiente? fazer uma comparao fundamentada das alternativas?
B. Usando a Web (ou revistas especializadas), localize um sis- F. Localize uma empresa de produtos de varejo na Web e leia
tema que seja executado em um ambiente cliente-servidor. atentamente sua descrio (para que voc tenha uma boa idia
Baseado no que aprendeu, por que voc acha que a empresa das localizaes geogrficas da empresa e de suas filiais). Ima-
optou por esse ambiente? gine que a empresa est para criar uma nova aplicao para
C. Usando a Web (ou revistas especializadas), localize alguns dar suporte a lojas de varejo pela Web. Crie um projeto de
mainframes, minicomputadores e microcomputadores. Com- arquitetura que represente os locais em que voc incluiria com-
pare-os em termos de preo, velocidade, memria disponvel ponentes que dessem suporte a essa aplicao.
e armazenagem em disco. Voc encontra grandes diferenas G. Imagine que sua me uma agente imobiliria e que tenha
de preo quando so levados em conta os desempenhos dos decidido automatizar suas tarefas dirias usando um laptop.
equipamentos? Considere as possveis necessidades de hardware e software
D. Voc foi selecionado para encontrai" a melhor arquitetura clien- e crie uma especificao que os descreva. A especificao
te-servidor para um sistema de entrada de pedidos baseado na deve ser desenvolvida para ajudar sua me a comprar por conta
Web que est sendo desenvolvido por L.L. Bean. Escreva um prpria o equipamento e o software.
pequeno memorando descrevendo ao gerente de projeto suas H. Imagine que o departamento de admisses em sua universi-
razes para selecionar uma arquitetura de n camadas em vez de dade disponha de uma aplicao baseada na Web para que os
uma arquitetura de duas camadas. No memorando, d uma idia estudantes possam solicitar a admisso online. Recentemen-
sobre quais componentes da arquitetura voc incluiria. te, houve um esforo visando admitir mais estudantes estran-
E. Pense no sistema que sua universidade usa atualmente para geiros na universidade. O que voc recomenda incluir na apli-
os servios vocacionais (colocao no mercado profissional) cao para assegurar que ela d suporte a esse requisito de
e imagine que voc esteja encarregado de substituir esse sis- mbito global?
MINICASOS
1. A equipe de projeto de desenvolvimento de sistemas na es- projeto de arquitetura de um novo sistema. O principal enfo-
cola de golfe Birdie Masters tem trabalhado para definir o que do projeto um sistema de operaes funcionando em
2S8 Captulo Nove
rede para a sede da escola e suas filiais, permitindo que cada servidores regionais, e os servidores regionais sero interli-
filial registre e recupere facilmente toda transao de dados gados matriz da empresa em Las Vegas. Os servidores re-
do grupo. Outro elemento do sistema o uso da Internet para gionais tambm sero interligados. Cada loja de varejo ser
permitir que possveis e atuais alunos consultem as turmas equipada com configuraes semelhantes de dois terminais
disponveis, agendem aulas e se matriculem em turmas em de vendas baseados em PC em rede com um servidor de ar-
qualquer instalao da Birdie Master, alm de manter um perfil quivos local. Jerry tem de desenvolver o projeto de arquite-
da evoluo do aluno uma anlise confidencial do desen- tura e a especificao de hardware e software de um mode-
volvimento das habilidades para o golfe de cada aluno. lo de rede que documentar a estrutura geogrfica desse sis-
A equipe de projeto vem considerando a possibilidade de tema. Ele nunca encarou um sistema dessa magnitude an-
globalizao do sistema, o que deve ser levado em conta no tes, e est um pouco inseguro sobre como comear. Que con-
projeto de arquitetura. O plano de expanso da escola para o selhos voc lhe daria?
mercado japons, que mostra uma grande procura por golfe, 3. A Java Master uma agncia de recolocao profissional que
continua de p. A primeira filial japonesa da escola est pla- tem escritrios no norte da Califrnia. A Java Master opera
nejada para abrir experimentalmente cerca de seis meses aps como uma agncia que faz a conexo entre suas empresas cli-
a data final de concluso do projeto do sistema. Logo, im- entes e especialistas em softwares independentes (normalmen-
portante que as questes relativas subsidiria internacional te denominados "contratantes") com avanadas qualificaes
sejam tratadas agora, durante o projeto. em desenvolvimento Web e Java para contratos de curto pra-
Prepare um conjunto de requisitos no-funcionais, inclu- zo. A empresa est desenvolvendo um sistema baseado na
indo requisitos operacionais, de desempenho, de segurana, Web que permitir que as empresas clientes listem as neces-
culturais e polticos. Muitas informaes esto incompletas, sidades de trabalho e os bancos de dados de contratantes in-
mas faa o melhor que puder. dependentes. Os contratantes independentes tambm podem
2. Jerry o gerente de projeto de uma equipe que desenvolve postar currculos e disponibilidades e pesquisar os bancos de
um sistema de gerenciamento de lojas de varejo para uma dados de trabalhos disponveis. Tanto os contratantes quanto
cadeia de lojas de material esportivo. A matriz da empresa as empresas pagam taxas para usufrurem o servio. Alguns
em Las Vegas, e a cadeia possui 27 filiais por toda a re- contratantes e empresas preferem permanecer annimos at
gio de Nevada, Utah e Arizona. Algumas cidades possuem que se encontrem pessoalmente. Desenvolva os requisitos no-
diversas lojas. As lojas sero interligadas por um dos trs funcionais e o projeto de arquitetura do sistema.
228 Captulo Oito
FIGURA 8-16
Matriz CRU D Preliminar dos Processos de 1.1 Encontrar 1.2 Fornecer 1.3 1.4 Colocar 1.5 Finalizar
CDs informaes Encontrar CD no compras
Registro e Solicitaes
de CD loja carrinho de
compras
Tabela CD
cd_numerodeestoque R R
cd titulo R R
cd artista R R
cd_categoria R R
cd statusdavenda R R
cd ultimaatualizacao
Tabela MATPRO
matjipo R
mat_numerodeidentificacao
mat descrio
mat email
mat contedo R
cd_numerodeestoque R
for nome
mat_ultimaatualizacao
Tabela ESTOQUE
est numerodoitem R
estjoja R
est_cep R
cd__numerodeestoque R
res identificao
est ultimaatualizacao
Tabela RESERVA
resjdentificacao CRUD
res_data CRUD
c!i_email CRUD
res_ultimaatualizacao CRUD
depsito de dados. Quando um depsito de dados atualizado de alguma maneira por um proces-
so, ento os dados devem trafegar no depsito de dados do processo. Veja a Figura 8-15 e observe
como a matriz CRUD reflete o que visto no modelo de processos.
A Figura 8-16 mostra um exemplo de uma matriz CRUD preliminar que foi criada para os
processos de registro de solicitaes do sistema de pedidos da CD Selections mostrados na Figu-
ra 8-7. Examine os modelos de processos originais e observe como os primeiros trs processos
so meramente leitura de informaes de depsitos de dados. Isso ilustrado na matriz CRUD
colocando-se um "R" (read=\er) nas intersees relevantes da matriz. Voc pode dizer como os
dados so usados pelos processos restantes?
Uma vez que os DFDs e ERDs tenham sido convertidos em modelos fsicos que descrevem
exatamente como o sistema ser criado e uma matriz CRUD tenha sido criada para mostrar como
os processos usam os dados, a equipe de projeto pode se concentrar no restante das tcnicas e ta-
refas da fase de projeto que sero apresentadas do Captulo 10 ao 12. Todos os documentos da
fase de projeto sero usados para criar a especificao do sistema, que usada pelos programado-
res para construir o sistema durante a implementao.
RESUMO
A Fase de Projeto
A fase de projeto a fase do SDLC em que o plano grfico do novo sistema desenvolvido, e
contm muitas etapas que orientam a equipe de projeto ao longo de todo o planejamento exata-
mente como o sistema precisa ser construdo. Os requisitos que foram identificados na fase de
Projeto de Sistema 229
anlise servem como entradas primrias para as atividades de projeto. O documento principal da
fase de projeto a especificao do sistema, que inclui os modelos fsicos de processos e de da-
dos, o relatrio de arquitetura, as especificaes de hardware e software, o projeto da interface, o
projeto de depsitos de dados e o projeto do programa.
Estratgias de Projeto
Durante a fase de projeto a equipe tambm precisa considerar trs abordagens para criar o novo
sistema, incluindo desenvolver uma aplicao personalizada domstica; comprar um sistema pron-
to e personaliz-lo; e contar com um fornecedor, desenvolvedor ou provedor de servios externo
para construir e/ou dar suporte ao sistema. O desenvolvimento personalizado permite que os
desenvolvedores sejam flexveis e criativos na maneira de resolver problemas operacionais e de-
senvolver conhecimento tcnico e funcional dentro da empresa. Muitas empresas, porm, tm
um pessoal de desenvolvimento que j est totalmente comprometido em atender enormes de-
mandas de solicitaes de sistemas e simplesmente no tem tempo para se dedicar a um projeto
para o qual um sistema ser construdo desde o princpio. Pode ser muito mais eficiente comprar
programas que tenham sido criados, testados e aprovados, e um sistema pronto pode ser compra-
do e instalado em um perodo de tempo relativamente curto, quando comparado a uma soluo
personalizada. Podem ser usadas solues alternativas para satisfazer s necessidades que no
sejam tratadas pela aplicao comprada pronta. A terceira estratgia terceirizar o projeto e pa-
gar um fornecedor, desenvolvedor ou provedor de servios para criar o sistema. Esta pode ser
uma boa alternativa de abordagem do novo sistema; entretanto, existem custos que precisam ser
considerados. Se decidir deixar a criao de um novo sistema nas mos de outra pessoa, a empre-
sa poder comprometer informaes confidenciais ou perder o controle sobre o desenvolvimen-
to futuro.
Estratgia do Projeto
Cada uma das estratgias discutidas h pouco tem suas vantagens e desvantagens, e nenhuma delas
inerentemente melhor que as outras. Portanto, importante considerar questes como a singula-
ridade de necessidades operacionais do sistema, a existncia de qualificao suficiente na empre-
sa disponvel para construir o sistema e a importncia das qualificaes do projeto para a empre-
sa. Alm disso, a existncia de bom gerenciamento de projeto e o tempo disponvel para desen-
volver a aplicao so importantes no processo de seleo.
TERMOS IMPORTANTES
Acordo de tempo indeterminado Fase de projeto Requisitos do sistema
Chave externa Integrao de sistemas Software pronto
Chave primria Integridade referencial Solicitao de informaes (RFI, request
Contrato de preo fixo Limite homem-mquina for informatior)
Contrato de valor agregado Matriz CRUD Solicitao de proposta (RFP, request for
Desenvolvimento personalizado Matriz de alternativas proposal)
Diagrama lgico de fluxo de dados Modelo de dados fsico Soluo alternativa
Diagrama lgico de relacionamento de Modelo de processos fsico Terceirizao
entidades Planejamento de recursos de empresas
Especificao do sistema (ERP, enterprise resource planning)
PERGUNTAS
1. Quais so as atividades principais que ocorrem durante a fase cpio de que ser usada uma estratgia de desenvolvimento
de projeto do ciclo de vida do desenvolvimento de sistemas personalizada ao considerarem um novo sistema pela pri-
(SDLC)? meira vez? Essa uma boa premissa?
2. Qual o documento principal da fase de projeto? O que ele 13. Podemos eliminar ou reduzir a fase de anlise quando j
inclui? sabemos que ser usado um software comprado pronto em
3. Compare e cite as diferenas entre as atividades de anlise detrimento da terceirizao ou do desenvolvimento perso-
e de projeto. Qual a relao entre os fatos que ocorrem na nalizado? Explique.
anlise e os que ocorrem no projeto? 14. Por que a integrao de sistemas est se tornando mais co-
4. Quais situaes so mais apropriadas para uma estratgia de mum?
projeto de desenvolvimento personalizado? 15. Qual a finalidade de criar os modelos lgicos antes dos
5. Quais so os problemas em usar uma abordagem de compra modelos fsicos?
de software pronto para construir um novo sistema? Como 16. Quais so as diferenas entre o diagramas de fluxo de da-
esses problemas podem ser tratados? dos (DFD) lgico e o fsico?
6. Por que as empresas investem em sistemas de planejamen- 17. Quais so as diferenas entre o diagrama de relacionamen-
to de recursos de empresas (ERP)? to de entidades (ERD) lgico e o fsico?
7. Quais so os prs e os contras de se usar uma soluo alter- 18. O que um limite homem-mquina?
nativa? 19. Que tipos de metadados so includos no repositrio CASE
8. Quando a terceirizao considerada uma boa estratgia de de um ERD fsico?
projeto? Quando no apropriada? 20. Descreva as finalidades de chaves primrias e chaves exter-
9. Quais so as diferenas entre os contratos de terceirizao nas.
de tempo indeterminado, preo fixo e valor agregado? 21. Quais so algumas das decises relacionadas ao sistema que
10. Qual a relao entre a matriz de alternativas e a anlise de podem resultar em uma alterao para o DFD ou o ERD f-
viabilidade? sico?
11. O que uma solicitao de propostas (RFP)? Como difere 22. O que uma matriz CRUD? Como est relacionada aos
de uma solicitao de informaes (RFI)? modelos de processos e de dados?
12. Por que voc acha que a maioria das empresas parte do prin-
EXERCCIOS
A. Desenhe o diagrama fsico de fluxo de dados nvel 0 (DFD) encontrado, a consulta agendada. Se for a primeira consul-
para o sistema de consultrio de dentista a seguir e compare - ta, feito um lanamento de dados incompleto no arquivo de
o ao modelo lgico que voc criou no Captulo 6. Quando no- pacientes; a informao completa ser coletada quando o pa-
vos pacientes so atendidos pela primeira vez, preenchem um ciente chegar para a consulta. Como as consultas so marca-
formulrio de informaes do paciente solicitando seus no- das geralmente com muita antecedncia, a recepcionista en-
mes, endereos, telefones e um histrico mdico resumido, via um lembrete por correio eletrnico para cada paciente duas
informaes que so armazenadas no arquivo de informaes semanas antes da consulta.
de pacientes. Quando um paciente liga para agendar uma con- B. Crie um DFD fsico nvel 0 para a situao a seguir e compa-
sulta ou alterar uma existente, a recepcionista verifica o ar- re-o com o modelo lgico que voc criou no Captulo 6. A
quivo de consultas para encontrar um horrio disponvel. Uma empresa A Real Estate Inc. (AREI) vende casas. As pessoas
vez que um horrio satisfatrio para o paciente tenha sido que querem vender suas casas assinam um contrato com a
Projeto de Sistema 231
MINICASOS
1. Susan, presidente da MOTO, Inc., uma firma de gerenciamen- gerenciar as contas de clientes se tornou difcil de controlar.
to de recursos humanos, est refletindo sobre o sistema de ge- Susan e Nancy, a chefe do departamento de SI, pesquisaram
renciamento de cliente que sua empresa comprou h quatro e selecionaram esse sistema que est em uso atualmente. Su-
anos. Naquela poca a firma tinha acabado de passar por uma san tinha ouvido falar sobre o software em uma conferncia
importante fase de crescimento, e a mistura de procedimen- profissional que assistiu e, pelo menos a princpio, ele funci-
tos automatizados e manuais que tinham sido usados para onou muito bem para a firma. Alguns de seus procedimentos