Escolar Documentos
Profissional Documentos
Cultura Documentos
ANDRÉ MENOLLI
ARQUITETURA DE SOFTWARE
Bandeirantes
2017
Engenharia de Software II Arquitetura de Software
Arquitetura de Software
Sumário
Introdução ........................................... 3
Arquitetura de Software .............................. 5
Visões da Arquitetura de Software ....................................................... 7
Atributos de Qualidade .............................. 11
Táticas para Atingir os Atributos de Qualidade .................................. 12
Principais Tipos de Atributos de Qualidade........................................ 15
Padrões Arquiteturais ............................... 19
Camadas (Layers) ........................................................................... 23
Pipes e Filters (Dutos e Filtros) ........................................................ 25
Invocação Implícita ......................................................................... 28
Padrão MVC ................................................................................... 29
Cliente Servidor .............................................................................. 31
Arquitetura Peer to Peer .................................................................. 33
Arquitetura Orientada a Serviço (Service-Oriented Architecture –SOA) 34
Multicamadas (Multi-tier) ................................................................ 36
Padrões e Táticas de Atributos de Qualidade ......... 38
Decisões Arquiteturais Baseada em Atributos de Qualidade ................ 40
Arquiteturas e o Desenvolvimento de Software ........ 43
Sistemas Web .................................................................................. 44
Sistemas Mobile .............................................................................. 46
Sistemas IoT.................................................................................... 49
Exercícios .......................................... 53
Leitura Complementar ................................ 57
Referências ......................................... 58
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 2
Engenharia de Software II Arquitetura de Software
Introdução
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 3
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 4
Engenharia de Software II Arquitetura de Software
Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 5
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 6
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 7
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 8
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 9
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 10
Engenharia de Software II Arquitetura de Software
Atributos de Qualidade
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 11
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 12
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 13
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 14
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 15
Engenharia de Software II Arquitetura de Software
Desempenho
Para caracterizar o atributo de qualidade em um projeto
específico, pode-se utilizar a técnica de cenários gerais. O
modelo de cenários de atributos de qualidade é um modelo
universal e pode ser instanciado para cada domínio de
qualidade específico.
Para explicar a técnica, vamos caracterizar o desempenho
de um sistema bancário. Nesse exemplo, o cliente acessa o
sistema bancário por meio de um caixa eletrônico, e consegue
realizar as transações de saque, consulta ao saldo ou
transferência. Para tanto, temos que caracterizar cada um
dos seis elementos que estamos analisando. O artefato é o
desempenho geral do sistema. A fonte seria o usuário, que
inicia uma transação e envia ao sistema (estimulo).
Esperamos que a operação ocorra em condições normais
(ambiente), e o sistema enviará uma resposta. Por fim, deve-
se definir a medida de resposta do sistema, que pode ser:
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 16
Engenharia de Software II Arquitetura de Software
Disponibilidade
Refere-se à capacidade do sistema para estar disponível
para uso, especialmente após uma falha ocorrer. A falha deve
ser reconhecida (ou impedida) e, em seguida, o sistema deve
responder de alguma forma. Táticas para tratar
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 17
Engenharia de Software II Arquitetura de Software
Interoperabilidade
A interoperabilidade refere-se à capacidade dos sistemas
de trocar informações de forma útil. Os sistemas podem ter
sido construídos com a intenção de trocar informações, podem
ser sistemas já existentes e que se deseja trocar
informações entre eles, ou podem fornecer serviços gerais
sem conhecer os detalhes.
Alcançar a interoperabilidade envolve os sistemas
relevantes localizarem uns aos outros e, em seguida,
gerenciar as interfaces para que eles possam trocar
informações.
Modificabilidade
A modificabilidade lida com a mudança e o custo
monetário ou de tempo para se realizar uma mudança. As
alterações podem ser feitas por desenvolvedores,
instaladores ou usuários finais, e essas alterações precisam
ser preparadas. Há um custo de preparação para a mudança,
bem como um custo de fazer a mudança.
As táticas para reduzir o custo em se realizar uma
mudança incluem: implementar módulos menores, aumentar a
coesão e reduzir o acoplamento.
Segurança
A segurança em sistema está relacionada a diversos
conceitos distintos, tais como confidencialidade,
integridade e disponibilidade de um sistema ou de seus
dados. Confidencialidade significa manter os dados não
disponíveis àqueles que não deveriam ter acesso, ao mesmo
tempo em que se concede acesso àqueles que deveriam.
Integridade significa que não se podem realizar modificações
ou exclusão de dados não autorizadas, e disponibilidade
significa que o sistema é acessível para aqueles que têm
direito a usá-lo.
Existem táticas para detectar um ataque, limitar a
propagação de qualquer ataque, e reagir e se recuperar de um
ataque.
Recuperar-se de um ataque envolve muitas das mesmas
táticas que a disponibilidade e, em geral, envolve o retorno
do sistema para um estado consistente antes de qualquer
ataque.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 18
Engenharia de Software II Arquitetura de Software
Usabilidade
A usabilidade está relacionada com o quão fácil é para o
usuário realizar uma tarefa desejada e o tipo de suporte ao
usuário que o sistema fornece. O suporte arquitetônico para
usabilidade envolve tanto permitir que o usuário tome a
iniciativa em circunstâncias tais como, cancelar um comando
de longa duração ou desfazer um comando concluído.
Existe uma forte relação entre suportar o processo de
projeto da interface do usuário e suportar a
modificabilidade; esta relação é promovida por padrões que
obrigam a separação da interface do usuário do resto do
sistema, como o padrão MVC.
Portabilidade
Portabilidade está relacionada à capacidade do sistema
em rodar em diferentes plataformas. Para se obter sistemas
fáceis de portar, deve-se, dentre outros, facilitar a
instalação, a substituição de partes do sistema e a
adaptação a diferentes plataformas. As táticas de
portabilidade estão bastante relacionadas às táticas de
manutenibilidade. De fato, algumas delas são as mesmas, tal
como garantir interfaces existentes, usar intermediários e
separar a interface da aplicação. Além disso, o uso de
linguagens, bibliotecas e mecanismos de persistência capazes
de rodar em diferentes plataformas operacionais é uma
importante tática para tratar a portabilidade.
Padrões Arquiteturais
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 19
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 20
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 21
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 22
Engenharia de Software II Arquitetura de Software
Camadas (Layers)
O padrão em camada define a organização do software em
serviços agrupados em camadas de abstração. As camadas são
relacionadas de maneira que cada camada deve se comunicar
apenas com a próxima camada acima ou abaixo e esta relação é
permitida apenas de forma unidirecional.
Portanto, no padrão em camadas, a camada superior provê
serviços à camada abaixo, o que configura uma dependência
entre as camadas. Em geral, as camadas mais inferiores,
provêm serviços mais básicos, normalmente de infraestrutura,
e que servem para compor os serviços de camadas mais acima.
Um exemplo é a arquitetura TCP/IP, que é organizada em cinco
camadas, sendo elas: Aplicação, Transporte, Rede, Enlace e
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 23
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 24
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 25
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 26
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 27
Engenharia de Software II Arquitetura de Software
Invocação Implícita
A invocação implícita (ou baseado em eventos) requer que os
componentes interessados em um evento se registrem a fim de
recebê-lo. Os componentes podem tanto registrar interesse em
receber eventos quanto de divulgar eventos (MENDES, 2002).
A invocação implícita se baseia na ideia de que um
sistema é composto de diversos componentes, alguns
componentes divulgam um ou mais eventos enquanto outros
componentes divulgam o interesse por eventos. Quando um
evento é anunciado, o próprio sistema invoca todos os
procedimentos registrados para o evento. Assim, o anúncio de
um evento implicitamente provoca a invocação de
procedimentos em outros componentes (SHAW e GARLAN, 1996).
A Figura 17 ilustra o padrão invocação implícita. Neste
padrão, o componente anunciante de um evento divulga o
evento, que é então capturado pelo mecanismo de difusão de
eventos. Esse mecanismo é responsável por difundir o evento
para todos os componentes que registraram interesse no
mesmo, invocando os procedimentos associados. Portanto,
nesta arquitetura os componentes ouvintes e anunciantes não
são invocados diretamente, sempre a invocação é feita pelo
componente intermediário, mecanismo de difusão de eventos.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 28
Engenharia de Software II Arquitetura de Software
Padrão MVC
O padrão MVC é muito utilizado em soluções de software,
principalmente em aplicações que contém interfaces com os
usuários e estas interfaces permita a visualização de
diferentes formas de um mesmo conjunto de dados, tal como um
aplicativo que permita o usuário ver os dados de diferentes
perspectivas, como por exemplo, a visualização dos dados por
meio de um gráfico de barras ou um gráfico circular. Quando
se deseja este tipo de interação, a interface do usuário
deve ser mantida separada da funcionalidade do aplicativo e
ainda assim ser responsiva à entrada do usuário ou a
alterações nos dados da aplicação. Queremos uma solução em
que a interface seja disjunta da aplicação, como se
existisse várias interfaces do usuário, mantidas e
coordenadas por uma mesma aplicação.
Para conseguir isto, o padrão Modelo-View-Controller
(MVC) separa a aplicação em três partes:
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 29
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 30
Engenharia de Software II Arquitetura de Software
Cliente Servidor
A arquitetura cliente servidor é uma arquitetura o qual a
aplicação é executada fisicamente distribuída em dois tipos
de estrutura:
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 31
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 32
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 33
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 34
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 35
Engenharia de Software II Arquitetura de Software
Multicamadas (Multi-tier)
Em uma implantação distribuída, geralmente há a necessidade
de distribuir a infraestrutura de um sistema em subconjuntos
distintos. Isto pode ocorrer por razões operacionais ou
comerciais (por exemplo, diferentes partes da infraestrutura
podem pertencer a diferentes organizações).
Dessa forma, é necessário dividir o sistema em um número
de estruturas de execução computacionalmente independentes
que contenham grupos de software e hardware conectados por
alguns meios de comunicação. Isso é feito para fornecer
ambientes de servidores específicos otimizados para
requisitos operacionais e uso de recursos.
Como resposta a esta demanda as estruturas de execução
de muitos sistemas são organizadas como um conjunto de
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 36
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 37
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 38
Engenharia de Software II Arquitetura de Software
Modificabilidade
Aumento Diminuição do Retardo do Tempo
da Coesão Acoplamento de Vinculação
Usa um Intermediador
Usa um Wrapper
Encapsulamento
Padrão
Camadas x x x x x
Pipes e Filters x x x x
MVC x x x x
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 39
Engenharia de Software II Arquitetura de Software
Resistir a Ataques
Autenticação diz respeito a garantir que um usuário ou computador remoto é realmente quem diz ser. Senhas,
Autenticar usuários certificados digitais e identificação biométrica são alguns meios de se prover autenticação.
Autorização diz respeito a garantir que um usuário autenticado tenha o direito de acessar e modificar tanto
Autorizar usuários dados quanto serviços. Isso é feito normalmente provendo alguns padrões de controle de acesso dentro do
sistema. O controle de acesso pode ser por usuário ou classe de usuário. Classes de usuários podem ser
definidas por grupos de usuários, por papéis de usuário ou por listas de indivíduos.
Dados devem ser protegidos contra acesso não autorizado. Confidencialidade é normalmente atingida
Manter aplicando alguma forma de criptografia a dados e links de comunicação. Criptografia provê uma proteção
confidencialidade extra para dados mantidos em bases de dados, além da autorização. Já links de comunicação tipicamente não
dos dados têm controles de autorização e, portanto, a criptografia é a única proteção neste caso.
Manter integridade A integridade dos dados também deve ser garantida. Para verificar a integridade, informação redundante, tal
dos dados como soma de verificação, pode ser codificada junto aos dados.
A alocação de serviços a servidores pode ser feita de modo que apenas serviços limitados estejam
Limitar exposição disponíveis em cada servidor.
Firewalls podem ser usados para restringir o acesso com base em fonte de mensagens ou porta de destinação.
Mensagens de fontes desconhecidas podem ser uma forma de ataque. Contudo, nem sempre é possível
Limitar acesso limitar o acesso a fontes conhecidas. Um site web público, por exemplo, pode esperar receber solicitações de
fontes desconhecidas.
Detectar Ataques
Sistemas de detecção de intrusão funcionam comparando padrões de tráfego de rede. No caso de detecção de
Sistema de detecção mau uso, o padrão de tráfego é comparado com padrões históricos de ataques conhecidos. Detectores de
de intrusão intrusão têm de ter, dentre outros, algum tipo de sensor para detectar ataques, bases de dados para registrar
eventos para posterior análise, ferramentas para análise e um console de controle que permita ao analista
modificar ações de detecção de intrusão.
Recuperação de Ataques
As técnicas de recuperação de falhas sugeridas nas táticas de confiabilidade podem ser aplicadas, já que elas
Restaurar estado se propõem a restaurar um estado consistente a partir de um estado inconsistente. Atenção especial deve ser
dada à manutenção de cópias redundantes de dados administrativos do sistema, tais como senhas, listas de
controle de acesso, serviços de nomes de domínio e dados de perfis de usuários.
Manter uma trilha Uma trilha de auditoria é um registro das transações aplicadas aos dados do sistema junto com informações
de auditoria de identificação. Essas informações podem ser usadas para trilhar as ações do agressor, apoiar
reconhecimento (provendo evidência de que uma particular requisição foi feita) e apoiar a recuperação do
sistema. Trilhas de auditoria são frequentemente alvo de ataques e, portanto, devem ser mantidas de modo
confiável.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 40
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 41
Engenharia de Software II Arquitetura de Software
Atributos
Tecnologias Custo Segurança Disponibilidade Usabilidade Modificabilidade Desempenho Total
(5) (4) (3) (4) (4) (2)
SMS 3 4 4 4 4 3 3,6
Whatsapp 5 4 4 5 4 4 4,4
Email 5 2 4 2 4 4 3,5
Ligação 2 2 2 1 2 1 1,7
Sistema 5 5 4 2 5 5 4,3
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 42
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 43
Engenharia de Software II Arquitetura de Software
Sistemas Web
Sistemas Web funcionam sobre o protocolo HTTP (HiperText
Transfer Protocol), que é um protocolo de aplicações cliente
servidor que define um formato padrão para especificar a
requisição de recursos na Web. Por meio dele, um usuário
utilizando uma aplicação cliente (p.ex., um navegador) pode
requisitar recursos disponíveis em um servidor remoto
(p.ex., o servidor Web).
Além de gerenciar a requisição e a transferência de
recursos por meio do protocolo HTTP, um navegador web também
trata da apresentação visual dos recursos. A meta linguagem
HTML (HyperText Markup Language) é comumente usada para
expressar o conteúdo e a formatação visual de páginas Web.
No entanto, o navegador também pode tratar linguagens de
script, tal como JavaScript, para apresentar HTML dinâmico.
Os navegadores atuais suportam o uso conjunto de
JavaScript a da API XMLHttpRequest, o que permite fazer
requisições HTTP para um servidor web de maneira
transparente em background e independentemente da interação
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 44
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 45
Engenharia de Software II Arquitetura de Software
Sistemas Mobile
Os aplicativos mobile “apps”, são softwares que funcionam em
dispositivos móveis como smartphones ou tables. Os apps são
uma realidade, milhares deles estão disponíveis nas
principais lojas. Apenas na play store do Google, em junho
de 2016 estavam disponíveis para download mais de 2 milhões
e duzentos mil apps1. Para mensurar a evolução do mercado de
apps, a app store da Apple contava com cerca de oitocentos
apps em junho de 2008 e em janeiro de 2017 atingiu a marcar
de dois milhões e duzentos mil apps2.
No desenvolvimento mobile alguns atributos de qualidade
devem ser considerados mais detalhadamente na definição da
arquitetura. Três em especial são:
1 Fonte: https://www.statista.com
2 Fonte: https://www.statista.com
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 46
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 47
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 48
Engenharia de Software II Arquitetura de Software
Sistemas IoT
As aplicações de IoT podem estar relacionadas a uma
infinidade de atributos de qualidade, dependendo de sua
funcionalidade. Além do mais, uma aplicação IoT pode ser ao
mesmo tempo mobile e web. No entanto, três atributos são
fortemente relacionados a qualquer aplicação IoT:
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 49
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 50
Engenharia de Software II Arquitetura de Software
Fonte Quem ou que O subsistema inicia uma requisição para interagir com o
sistema
Estímulo Envia dados ao sistema Envia dados para trocar informações com o sistema
Artefato O sistema ou parte dele Para o sistema central
Ambiente Sobre certas condições Os sistemas que desejam interoperar são descobertos em
tempo de execução ou conhecidos antes do tempo de
execução.
Resposta O sistema reage as ações Um ou mais dos seguintes:
• O pedido é rejeitado (apropriadamente) e as
entidades (pessoas ou sistemas) apropriadas são
notificadas.
• O pedido é aceito (apropriadamente) e as
informações são trocadas com êxito.
• O pedido é registrado por um ou mais dos sistemas
envolvidos.
Medida Que pode ser medido por Um ou mais dos seguintes:
métricas • Porcentagem de trocas de informações corretamente
processadas
• Porcentagem de trocas de informações corretamente
rejeitadas.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 51
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 52
Engenharia de Software II Arquitetura de Software
Exercícios
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 53
Engenharia de Software II Arquitetura de Software
Sistema de Biblioteca
Da entrevista com o responsável da biblioteca de uma universidade resultou a seguinte
descrição para um novo sistema:
A atividade da biblioteca centra-se principalmente no empréstimo de publicações pelos
alunos da universidade. O aluguel é registrado pelos funcionários da biblioteca, que também
consultam diariamente os empréstimos cujos prazos foram ultrapassados. Todo este processo é
efetuado manualmente, sendo muito ineficiente. Espera-se que o novo sistema resolva esta
situação.
Os alunos necessitam de pesquisar os livros existentes na biblioteca. Caso um livro
esteja requisitado é mostrada a data esperada de entrega. Além disso, os alunos podem
solicitar a reserva de livros para uma data específica.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 54
Engenharia de Software II Arquitetura de Software
Sistema de Estacionamento
Considere os seguintes requisitos para um sistema informatizado para a gestão de um
parque de estacionamento.
a) O controle é efetuado com base na placa do veículo
b) Na entrada do parque existirá um funcionário que introduz as placas no
sistema, ficando de imediato registrado a data e hora de início do
estacionamento. O sistema tem que verificar se a placa já existe.
c) Se a placa não for reconhecida pelo sistema então deverá criar um novo
veículo no sistema.
d) Na saída, um funcionário introduz novamente a placa, sendo que o sistema
calcula o custo do estacionamento.
e) O gestor do parque precisa consultar diariamente uma listagem dos
estacionamentos. Em algumas situações, o gestor poderá desempenhar as
funções de atendimento, no entanto apenas o gestor poderá obter as listagens.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 55
Engenharia de Software II Arquitetura de Software
d) De início existe uma tarifa base que é aplicada a todos os veículos. Contudo,
para veículos com um elevado número de estacionamentos é possível criar
tarifas específicas. Cada tarifa possui um custo por hora.
e) O estacionamento possui um número de lugares limitado. Os lugares são
caracterizados por um número, piso e um estado. Este estado só pode assumir
os valores de Livre ou Ocupado.
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 56
Engenharia de Software II Arquitetura de Software
Leitura Complementar
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 57
Engenharia de Software II Arquitetura de Software
Referências
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 58
Engenharia de Software II Arquitetura de Software
André Menolli - Centro de Ciências Tecnológicas – Universidade Estadual do Norte do Paraná UENP 59