Olá, estudante! Depois de ter aprendido nas lições anteriores sobre projeto de saída e melhores práticas para interface, nesta lição, o objetivo é a apresentação dos requisitos operacionais e de desempenho que são elementos essenciais no processo de desenvolvimento de sistemas, sejam eles software, sejam eles hardware ou sistemas combinados. Esses requisitos definem as condições sob as quais o sistema deve operar e as metas que ele deve atingir em termos de desempenho.
Requisitos operacionais se referem às características e condições sob as quais um sistema deve funcionar para atender às necessidades dos usuários e das partes interessadas e podem incluir aspectos como: ambiente de operação, usuários e papéis, segurança, integração com sistemas existentes e manutenção e suporte. Já os requisitos de desempenho se concentram nas características de desempenho que o sistema deve alcançar para atender às expectativas dos usuários e às metas do projeto, incluindo velocidade, escalabilidade, confiabilidade, disponibilidade, utilização de recursos, capacidade e tempo de resposta.
Tais requisitos, quando bem definidos, ajudam a garantir que o sistema atenda às necessidades dos usuários e funcione de maneira eficaz em seu ambiente profissional. Preparado(a) para saber mais sobre o assunto? Te espero na problematização!
Em um mundo cada vez mais digitalizado, a indústria de saúde enfrenta o desafio crítico de garantir a segurança e a privacidade dos dados do paciente. Um exemplo de como os requisitos operacionais podem resolver este problema está no desenvolvimento de sistemas de gerenciamento de registros médicos eletrônicos (EHR, na sigla em inglês).
Antigamente, hospitais e clínicas mantinham registros médicos em papel, mas imagine o tanto de problema que isso não causava! Eram comuns o extravio, as dificuldades no compartilhamento de informações entre profissionais de saúde e até mesmo potenciais riscos à segurança dos dados. Com a digitalização, a necessidade de requisitos operacionais bem definidos tornou-se crucial.
Um requisito operacional fundamental nesta situação envolve o controle de acesso e autenticação de usuários. Atualmente, os hospitais podem implementar um sistema que exige credenciais únicas para cada profissional de saúde acessar os registros de pacientes, o que não só garante que apenas pessoas autorizadas tenham acesso aos dados confidenciais, mas também permite melhor controle sobre quais partes do registro podem ser visualizadas por diferentes profissionais, com base nas suas funções e responsabilidades.
A implementação de requisitos operacionais sólidos em sistemas de gerenciamento de registros médicos eletrônicos resolveu um problema crítico de segurança e privacidade dos dados do paciente. Ao controlar o acesso, rastrear as ações dos usuários, assegurar backups regulares e garantir uma interface de usuário intuitiva, esses requisitos protegeram informações sensíveis bem como aprimoraram a eficiência e a qualidade do atendimento médico.
Hoje, em nossa lição, apresentarei um case sobre a empresa Stream Tech, que estava determinada a revolucionar a indústria de streaming de vídeo ao vivo, ao oferecer uma plataforma inovadora que proporcionaria aos usuários uma experiência de alta qualidade e sem interrupções. A concorrência neste mercado era acirrada, e os consumidores estavam cada vez mais exigentes quanto à qualidade e à velocidade de reprodução. A Stream Tech viu neste cenário um desafio e uma oportunidade de se destacar.
O principal desafio era fornecer uma experiência de streaming que fosse livre de buffering (armazenamento temporário), com transmissões suaves e de alta qualidade, independentemente da localização do espectador ou da intensidade de sua conexão à internet. O requisito de desempenho era claro: os usuários não deveriam enfrentar interrupções no fluxo de vídeo e a qualidade da transmissão não deveria degradar, mesmo em condições de conexão instável.
A Stream Tech reconheceu que atender a esse requisito de desempenho era fundamental ao sucesso do projeto. Eles adotaram uma abordagem abrangente para enfrentar o desafio, como: otimização de rede, distribuição de conteúdo em nuvem e adaptação dinâmica; esta última monitorava constantemente a qualidade de transmissão e a latência da rede. Com isso a empresa conquistou sucesso notável no mercado de streaming. Seu serviço foi elogiado pela fluidez e qualidade das transmissões, o que atraiu grande número de usuários. Ao cumprir e superar consistentemente os requisitos de desempenho, a Stream Tech conseguiu se diferenciar da concorrência e ganhar uma base de usuários leais, consolidando seu lugar como líder no setor de streaming.
Mesmo sendo um case fictício, conseguimos observar uma situação na qual o requisito de desempenho foi essencial, neste caso, para que a plataforma inovadora de streaming fosse criada. Portanto, vamos entender mais sobre esses requisitos?
São um conjunto de especificações que descrevem as condições e restrições nas quais um sistema deve operar de maneira eficaz e confiável. Eles definem as diretrizes para o ambiente no qual o sistema será utilizado e estabelecem as expectativas para seu funcionamento contínuo. Fernandes (2005) define os requisitos operacionais como a especificação de características relacionadas com o processamento do software, tais como: volume, frequência, disponibilidade, performance, localização física, entre outros. Os requisitos operacionais são uma parte crucial da documentação de requisitos de um projeto, uma vez que garantem que o sistema atenda às necessidades práticas dos usuários e do ambiente onde será implantado. Dentre os aspectos-chaves dos requisitos operacionais, temos:
Ambiente de operação: descreve o ambiente físico e lógico em que o sistema será implantado. Isso inclui detalhes como o hardware e software necessários, o sistema operacional, a rede, a infraestrutura de servidores, a conectividade com outros sistemas, entre outros fatores que afetam a operação do sistema.
Condições de uso: estipulam as condições sob as quais o sistema será usado e podem incluir informações sobre o número máximo de usuários simultâneos, as horas de operação, os locais geográficos onde o sistema será utilizado e quaisquer restrições específicas que devem ser observadas.
Requisitos de segurança: abordam aspectos de segurança, tais como autenticação, autorização, criptografia de dados, proteção contra ameaças cibernéticas e procedimentos de recuperação de desastres para garantir a confidencialidade, integridade e disponibilidade dos dados.
Manutenção e suporte: estabelecem as expectativas relacionadas à manutenção do sistema, como atualizações de software, correções de bugs, monitoramento de desempenho e suporte técnico, assim, garante-se que o sistema continue funcionando adequadamente ao longo do tempo.
Requisitos de conformidade: incluem requisitos de conformidade regulatória ou normas específicas da indústria que o sistema deve seguir. São particularmente relevantes em setores altamente regulamentados, como saúde, finanças e segurança.
Disponibilidade e tempo de inatividade planejado: estabelecem os níveis de disponibilidade desejados para o sistema e, também, podem especificar períodos de tempo de inatividade planejado para manutenção e atualizações, ajudando a minimizar o impacto sobre as operações do usuário final.
Usabilidade e interface do usuário: também podem abordar a usabilidade e a interface do usuário, garantindo a seus operadores que o sistema seja intuitivo e fácil de usar.
Riscos e contingências: costumam incluir a identificação de riscos potenciais e as medidas de contingência que devem ser tomadas em caso de falhas ou situações adversas.
São uma categoria essencial de requisitos de sistema que se concentram na especificação das metas e critérios relacionados ao desempenho o qual um sistema deve atingir. Eles são uma parte fundamental na definição do comportamento e das características esperadas de um sistema, garantindo que ele funcione de maneira eficaz, rápida e confiável.
A importância dos requisitos de desempenho reside no fato de que eles influenciam diretamente a experiência do usuário, a eficiência operacional e a aceitação do sistema em seu ambiente de uso. Mais do que isso, Pressman e Maxim (2021) incluem a conformidade de requisitos de desempenho explicitamente declarados como um dos principais fatores que definem a qualidade de um software. Dentre os aspectos-chaves sobre requisitos de desempenho, temos:
Garantem experiência do usuário adequada: os requisitos de desempenho definem expectativas claras em relação à velocidade e à responsividade do sistema, aspectos cruciais para garantir uma experiência do usuário satisfatória. Por exemplo, em um aplicativo de comércio eletrônico, um requisito de desempenho pode especificar que as páginas de produto devem ser carregadas em menos de 2 segundos, proporcionando uma experiência de compra rápida e eficiente.
Maximizam a eficiência operacional: ao estabelecer metas de desempenho, os requisitos ajudam a otimizar o uso de recursos do sistema, como processamento de CPU, memória e largura de banda de rede. Tais características contribuem para a eficiência operacional, permitindo que o sistema atenda a um maior número de usuários ou execute tarefas com menos consumo de recursos.
Apoiam o dimensionamento adequado: requisitos de desempenho são cruciais ao dimensionamento adequado do sistema. Eles ajudam a determinar os recursos de hardware e infraestrutura necessários para suportar a carga esperada, o que evita problemas de sobrecarga de servidores e interrupções no serviço.
Aumentam a confiabilidade: estabelecer requisitos de desempenho também ajuda a identificar gargalos potenciais e pontos fracos no sistema capazes de afetar a confiabilidade. Por exemplo, ao definir uma taxa mínima de transferência de dados para um servidor de banco de dados, você garante que consultas e atualizações sejam processadas de maneira eficaz, minimizando o risco de falhas.
Avaliam a capacidade de escalabilidade: os requisitos de desempenho devem considerar a escalabilidade do sistema, ou seja, sua capacidade de lidar com aumento no volume de dados ou usuários, o que permite o sistema crescer conforme as necessidades, sem comprometer o desempenho.
Métricas mensuráveis: requisitos de desempenho devem ser definidos em termos mensuráveis, como tempos de resposta, taxa de transferência, capacidade de carga e latência. Isso torna possível realizar testes de desempenho para verificar se o sistema atende às metas estabelecidas.
Nesse momento, trago a você as diferenças entre requisitos operacionais e de desempenho, por meio da apresentação de seus respectivos aspectos em quatro dimensões: definição, escopo, exemplos e ênfases.
● Requisitos operacionais:
Definição: aqui, são definidas as condições gerais nas quais um sistema deve operar. Os requisitos descrevem o contexto, o ambiente e as restrições sob as quais o sistema será utilizado.
Escopo: abrange fatores como o ambiente físico e lógico em que o sistema será implantado, as restrições de hardware e software, as políticas organizacionais, os procedimentos operacionais, os padrões de segurança e conformidade e as expectativas dos usuários em relação ao sistema.
Exemplos:
O sistema deve ser compatível com o sistema operacional X.
O sistema deve estar disponível 24 horas por dia, 7 dias por semana.
O sistema deve ser compatível com os regulamentos de privacidade de dados Y.
O sistema deve ser facilmente integrado com sistemas legados da empresa.
Ênfase: é dada ênfase na garantia de que o sistema funciona de acordo com as necessidades e diretrizes gerais da organização em seu ambiente operacional.
● Requisitos de desempenho:
Definição: aqui, os requisitos concentram-se no desempenho do sistema, ou seja, na capacidade do sistema executar tarefas específicas dentro de limites de tempo ou recursos definidos.
Escopo: incluem critérios quantitativos ou qualitativos que descrevem a eficiência, velocidade, escalabilidade, capacidade de resposta e outras métricas relacionadas ao funcionamento do sistema.
Exemplos:
O sistema deve ser capaz de processar 1.000 transações por segundo.
O tempo de resposta médio do sistema deve ser inferior a 2 segundos.
O sistema deve suportar até 10.000 usuários simultâneos.
A utilização máxima da CPU não deve exceder 80% em condições de carga máxima.
Ênfase: visa a garantir que o sistema atenda aos padrões de desempenho necessários para satisfazer às expectativas dos usuários, como velocidade, escalabilidade e eficiência.
Definir requisitos operacionais e de desempenho de forma mensurável e específica é fundamental para que esses requisitos sejam testados e avaliados de maneira eficaz durante o desenvolvimento e a implementação de um sistema.
Agora, você conhecerá algumas diretrizes que explicam como alcançar essa mensurabilidade e especificidade:
Use termos claros e não ambíguos: evite termos vagos ou ambíguos em suas descrições de requisitos. Utilize uma linguagem precisa e específica para descrever o que é necessário. Por exemplo, em vez de “rápido”, especifique uma métrica de desempenho, como “tempo de resposta inferior a 2 segundos”.
Estabeleça métricas quantitativas: para requisitos de desempenho, defina métricas quantitativas possíveis de serem medidas. Por exemplo, se você está definindo um requisito de escalabilidade, especifique o número máximo de usuários concorrentes que o sistema deve suportar.
Seja específico(a) sobre condições de operação: descreva em detalhes as condições sob as quais os requisitos operacionais devem ser atendidos, o que pode incluir informações sobre o ambiente de operação, o número de usuários, a carga de trabalho esperada e outras variáveis relevantes.
Defina critérios de aceitação: junto com cada requisito, estabeleça critérios claros de aceitação que indiquem como você determinará se o requisito foi atendido com sucesso. Esses critérios podem incluir limites numéricos, valores-alvo ou outros indicadores mensuráveis.
Revise e valide os requisitos: submeta os requisitos a revisões e validações por parte das partes interessadas, incluindo desenvolvedores, testadores e clientes. Isso ajuda a identificar e corrigir problemas de ambiguidade ou de falta de mensurabilidade.
Acompanhe o progresso: durante o desenvolvimento e a implementação, monitore o progresso em relação aos requisitos e use métricas para avaliar o desempenho do sistema em relação a esses requisitos. Tal atitude permitirá correções oportunas, se necessário.
O atendimento aos requisitos operacionais e de desempenho é um fator crítico ao sucesso do projeto, à satisfação do cliente e à eficácia do sistema em seu ambiente operacional. Algumas maneiras de ilustrar como o cumprimento desses requisitos terá impacto positivo são:
Melhor experiência do usuário.
Confiabilidade e disponibilidade.
Economia de recursos.
Manutenção mais fácil.
Redução de custos operacionais.
Conformidade regulatória.
Competitividade de mercado.
Satisfação do cliente e retenção.
Imagem da marca.
Atender aos requisitos operacionais e de desempenho não é apenas um objetivo técnico, mas também tem impacto direto sobre os resultados do projeto, a satisfação do cliente e a eficácia do sistema em seu ambiente operacional. É uma parte essencial do sucesso em longo prazo de qualquer projeto de desenvolvimento de software ou implementação de sistemas.
Nesta lição, você implementará um código em Python que simula um sistema de processamento de imagens e que mede o tempo médio de processamento para avaliar o desempenho. Primeiro, acesse o ambiente para codificar, neste caso, usaremos o site OnlineGDB, cujo acesso pode ser feito clicando aqui. Uma vez com o site aberto, selecione, no canto superior direito, na opção Language, a linguagem de programação Python 3.
Selecione todo o código que vem automaticamente no arquivo main.py e digite o seguinte código, conforme a Figura 1:
O funcionamento do código da Figura 1 possui o seguinte fluxo:
Linhas 1: importação da biblioteca time para cálculo de tempo.
Linhas 3 a 5: criação da função processa_imagem que recebe uma string dados_da_imagem fictícia só para simulação e apresenta, na tela, a mensagem “Imagem processada com sucesso”.
Linha 8: inicializa a variável numero_de_amostras com o valor de 10.
Linha 10: inicializa a variável tempo_total com o valor de 0.
Linhas 11 a 18: laço de repetição que gera 10 valores e que pega o tempo e salva na variável tempo_inicial, processa a imagem (simulação de 0.5 segundos) e salva o tempo na variável tempo)final, simulando o tempo de processamento da imagem (0.5 segundos).
Linhas 16 a 18: ainda no laço de repetição, efetua os cálculos de tempo de processamento e tempo total e, na última linha, apresenta o tempo de processamento daquela imagem.
Linhas 20 e 21: efetua o cálculo do tempo médio, baseado no tempo total dividido pelo número de amostras, e existe a mensagem para o usuário “Tempo médio de processamento: x.xx segundos”.
Neste código, a função “processa_imagem” simula o processamento de uma imagem, e medimos o tempo que leva para processar. Executamos essa operação várias vezes (“numero_de_amostras”) e calculamos o tempo médio de processamento. Com isso, você acaba de exemplificar, na prática, um requisito de desempenho que é o tempo de processamento da imagem. Parabéns!
FERNANDES, D. B. Análise de sistemas orientada ao sucesso: Por que os projetos atrasam? Rio de Janeiro: Ciência Moderna, 2005.
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: Uma abordagem profissional. 9. ed. Porto Alegre: AMGH, 2021.