Como as pessoas definem os requisitos mínimos de hardware para software? Por exemplo: como uma empresa de desenvolvimento de software pode informar ao cliente que precisará de 8 GB de RAM para executar o programa corretamente?
fonte
Como as pessoas definem os requisitos mínimos de hardware para software? Por exemplo: como uma empresa de desenvolvimento de software pode informar ao cliente que precisará de 8 GB de RAM para executar o programa corretamente?
Primeiro, nem todos os requisitos são rígidos, mas o hardware mínimo suportado. Se alguém tiver menos do que o mínimo, ele pode funcionar - mas não de maneira ideal, ou pode não funcionar. Em ambos os casos, não é um sistema suportado e os problemas que você possui são seus.
A maneira mais simples de obter requisitos de hardware é adivinhar. O desenvolvedor olha para a máquina e diz: "Sim, é executado na minha, são esses os requisitos".
Em um ambiente mais rigoroso, a empresa de desenvolvimento possui um conjunto de sistemas de teste. Pode não estar em casa (os desenvolvedores não internos da Apple ocasionalmente usam o Apple Compatibility Lab ). Como parte do processo de teste, é testado todo o hardware disponível e determina os requisitos mínimos para sua execução.
Outro fator nos requisitos de hardware são os requisitos básicos do sistema operacional. Em teoria, o Windows 7 requer um mínimo de 1 GB de RAM para executar. Portanto, testar contra um sistema de 512 MB executando o Windows 7 não faz sentido.
Teste o sistema em execução com 1 GB de RAM. Funciona? Não ... atualize o carneiro. Repita o teste e as atualizações até que o aplicativo funcione de maneira suportável e liste-os como os requisitos mínimos.
Quando o desempenho se torna parte da promessa do software, o 'suportável' inclui que, além de realmente estar em execução, a operação atende à expectativa mínima de desempenho.
o
leve <tempot
para concluir, qualquer combinação de hardware que atenda a esse objetivo se tornará a especificação mínima.Os requisitos de hardware se enquadram em dois baldes diferentes. Geralmente, você inclui requisitos de alguns desses buckets ao determinar requisitos específicos de hardware para qualquer sistema de software que você criar.
Restrições técnicas na arquitetura
Esses são os tipos de requisitos que absolutamente devem ser satisfeitos pelo sistema construído e são projetados especificamente no sistema desde o início. Por exemplo, "é necessário um processador x86".
Um exemplo fácil que vem à mente é o Microsoft Office para Mac. Originalmente, os Macs usavam CPUs Power PC, enquanto o Microsoft Windows era estritamente direcionado para máquinas "IBM Compatible" (principalmente usando processadores x86). Como o Windows e, portanto, o Office funcionavam apenas no x86, um conjunto de códigos completamente novo (com diferentes restrições técnicas) foi gravado para dar suporte ao Office no Power PC para Mac OS. Depois que o Mac passou para os processadores Intel x86, o antigo Power PC otimizado para Office para Mac não funcionou mais - e as restrições técnicas mais uma vez foram alteradas para uma nova versão do Office para Mac na Intel. Aplicativos otimizados para 32 x 64 bits é outro exemplo fácil.
Requisitos implícitos de hardware
Às vezes, você não escolhe se restringir ativamente, mas outras decisões que você toma implicitamente impõem requisitos a você. Um cenário comum é construído sobre qualquer tipo de estrutura.
Por exemplo, se você estiver criando um aplicativo .Net 4.0, o .Net 4.0 terá requisitos de hardware verificados nos laboratórios de hardware da Microsoft. Agora, seu aplicativo requer pelo menos os mesmos requisitos de hardware exigidos pela estrutura .Net 4.0.
Requisitos de hardware contextual
Na maioria das vezes, quando você está falando sobre requisitos de hardware, o que realmente está falando é sobre como oferecer suporte a cenários específicos de atributos de qualidade. Coisas como desempenho, confiabilidade, disponibilidade e outras habilidades.
Isso é algo com o qual eu luto frequentemente ao fazer recomendações de hardware para clientes que criam aplicativos sobre o IBM InfoSphere Data Explorer (basicamente uma plataforma de mecanismo de pesquisa de Big Data). Os requisitos básicos do Data Explorer são mínimos (você pode executá-lo em um laptop), mas as recomendações de hardware para qualquer aplicativo Big Data específico (leia-se: requisitos) se resumem a cenários específicos de atributos de qualidade para esse aplicativo. Com que rapidez os dados devem ser indexados? Quantas consultas por segundo devem ser processadas? Quanto tempo de inatividade é aceitável?
Identificar cenários específicos de atributos de qualidade desenha uma linha na areia e permite que eu faça uma recomendação para requisitos mínimos de hardware com base nesses cenários - número X de CPUs com quantidade Y de RAM, Z Gigabytes de discos rígidos e N sistemas redundantes. No nosso caso, temos fórmulas básicas (determinadas por meio de testes extensivos em nossos laboratórios de hardware) que usam suposições dos cenários de atributos de qualidade para ajudar a determinar um ponto de partida para uma recomendação de hardware. Essa recomendação se torna o requisito para esse aplicativo específico de Big Data.
Neste exemplo, para qualquer sistema de produção, um laptop realmente não funciona, mesmo que tecnicamente atenda aos requisitos "mínimos". O contexto dessa implementação - os cenários e dados específicos, estejam em execução na produção ou não, e assim por diante, ditam os requisitos de hardware.
Se as suposições nos cenários mudarem, os requisitos de hardware também mudarão. Portanto, a frase "Y GB de RAM é necessária para executar o software corretamente" significa realmente "Y GB de RAM é necessário para rastrear X milhões de documentos em Z horas ou uma taxa de ABC docs / min".
Requisitos mínimos de hardware suportados
Ou seja, as especificações de hardware devem funcionar corretamente e seu grupo de Suporte está preparado para ajudar na solução de problemas. Geralmente, esse é o conjunto de hardware ao qual você tem acesso direto, sua máquina de desenvolvimento ou através de algum tipo de laboratório de teste.
Um exemplo disso é praticamente qualquer aplicativo Android que foi lançado. Como desenvolvedor Android, você testa seu aplicativo por meio de alguns simuladores de software, provavelmente em pelo menos alguns dispositivos físicos. Mas existem milhares de dispositivos diferentes executando o Android, muitos dos quais com pequenas ... peculiaridades ... que podem causar problemas ao seu aplicativo. Na maioria dos casos, você ainda oferecerá suporte se um usuário tiver problemas. E na maioria dos casos, os usuários não terão problemas, mesmo que você não tenha testado especificamente essa variação de hardware. A Microsoft também tem esse problema com o Windows - quantas combinações diferentes de placa de vídeo, placa-mãe, CPU e memória existem por aí?
Basicamente, identificar o hardware mínimo suportado é como dizer "este software funciona em minha máquina, espero que funcione em máquinas semelhantes às minhas, muitas pessoas usaram esse software em muitas máquinas diferentes sem problemas, sua milhagem pode variar e se você tiver algum problema, farei o possível para ajudar / consertar, mas não posso garantir. "
fonte
Para alguns aplicativos, os requisitos podem realmente ser difíceis, como quando o desenvolvedor analisa ou cria um perfil de seu aplicativo e sabe exatamente quantos megaflops, MIPS, polígonos por segundo, tamanhos de conjuntos de trabalho de matriz etc. são necessários para atender a algum benchmark de desempenho especificado .
Para pequenos desenvolvedores, o custo pode ser o problema. Eles têm apenas um sistema disponível e, portanto, declaram as especificações do sistema como o mínimo, pois não foram capazes de testar o aplicativo em mais nada (mais lento, menor etc.) e têm poucas pistas sobre como o aplicativo funcionaria. com menos recursos.
fonte