E aí o Olá após falarmos um pouco sobre os requisitos funcionais no vídeo anterior discutiremos um pouco mais sobre outro tipo de requisito o requisito não funcional tão importante quanto os demais para o desenvolvimento de um bom projeto de software ficar pulando fluxo na identificação dos requisitos Vamos retomar as perguntas que nós já fizemos quais funcionalidades o sistema deverá oferecer Qual o comportamento e desempenho esperados e quais as regras da empresa que influenciaram o sistema para o primeiro conjunto de perguntas nós temos o requisitos funcionais no segundo bloco os requisitos não-funcionais e por último as
regras de negócios Hoje nos concentraremos nos requisitos não-funcionais é um requisito não funcional corresponde a um conjunto de restrições impostas ao sistema a ser desenvolvido estabelecendo por exemplo o com atrativo usável rápido e fiável é o sistema os requisitos funcionais não estão ligados diretamente as funções fornecidas pelo sistema ou seja o requisito funcional não altera a essência das funcionalidades do sistema considerado isso é normal alguns projetos tem sua Gênese precisamente nos aspectos não-funcionais se o sistema atual é lento pouco confiável ou difícil de usar isso pode levar a necessidade se criar um sistema melhor que
faça exatamente o mesmo mas em que os requisitos não funcionais sejam prioridade ou seja mais rápido mais confiável e mais fácil de usar porém com as mesmas funções Oi hoje é que se tornar um funcionários tem um papel de suma importância durante o desenvolvimento de um sistema podemos ser usados como critério de seleção na escolha da Alternativa de projeto estilo arquitetural e forma de implementação o atendimento de um requisito não funcional não pode ser feito de forma isolada ou seja não se consegue maximizar um dado requisito não funcional sem sacrificar alguns outros requisitos não-funcionais pois
um afeta de forma positiva ou negativa a satisfação dos outros você quisitos não-funcionais abordam aspectos de qualidade importantes em Sistemas e software se Tais requisitos não são levados em consideração então o sistema de software poderá ser inconsistente e de baixa qualidade e vamos ver alguns exemplos o sistema não deve permitir o acesso sem autenticação prévia do usuário o sistema deve permitir a recuperação de dados de acesso o tempo de resposta do sistema não deve ultrapassar 30 segundos percebeu que agora o texto é mais impositivo mostrando principalmente restrições e deveres do sistema e o software deve
ser operacionalizado eficientemente no sistema Linux o sistema não deve permitir a exclusão de produtos já vendidos o sistema deve impedir duplicação de dados e vamos agora ver Algumas propostas de classificação de requisitos não-funcionais a primeira delas é de submergiu 2011 que agrupa os requisitos não-funcionais em três categorias requisitos o produto que caracterizam aspectos o funcionamento do produto propriamente dito incluindo aqui a confiabilidade desempenho e eficiência usabilidade portabilidade testabilidade elegibilidade requisitos organizacionais que provém estratégias e procedimentos estabelecidos no contexto do fabricante do produto ou da organização do cliente como por exemplo as normas processuais que devem
ser seguidas e os requisitos de implementação como a linguagem de programação a usar e os requisitos externos que tem origem em fatores exteriores ao produto e ao processo de desenvolvimento sendo exemplo os requisitos de interoperabilidade que define como os produtos interage os sistemas requisitos legais para garantir que o produto esteja conforme as leis e requisitos éticos para assegurar que o público em geral aceitará o produto Robertson si Robertson 2006 apresentam outra proposta agrupando os requisitos não-funcionais em aparência o aspecto visual e a parte estética do sistema principalmente a interface gráfica usa habilidade que a facilidade
de uso do sistema e tudo aquilo que permitido uma experiência de uso mais agradável desempenho que traz questões de rapidez de tempo real de capacidade de armazenamento de correção de execução operacional trazendo características sobre o que o sistema deve fazer para funcionar corretamente no ambiente em que está inserido manutenção e suporte agrupando atributos que permitem que o sistema seja reparado ou melhorado e que possa antecipar novas funcionalidades segurança trazendo e relacionados ao acesso à confidencialidade a proteção EA integridade dos dados cultura organizacional organizando fatores relacionados à cultura e aos hábitos as partes interessadas e legal
apontando leis regras e normas que se aplicam ao sistema para que esse possa ser colocado em funcionamento e para nossos estudos nós consideraremos alguns tipos de requisitos não-funcionais como a confiabilidade o desempenho a portabilidade a segurança EA usabilidade são aspectos que aparecem várias as classificações e por isso serão os que nós estudaremos e a confiabilidade é a probabilidade do software não causar uma falha no sistema durante um determinado período de tempo sob condições especificadas a probabilidade é uma função da existência de defeitos no software assim os estímulos recebidos por um sistema determina a existência ou
não de algum defeito a confiabilidade é um atributo de qualidade implica que o sistema executar as suas funções como esperado compreendem restrições sobre o comportamento do sistema de software em tempo de execução e corresponde a um conjunto de métricas quais seriam essas métricas e a disponibilidade a taxa de ocorrência de falhas a probabilidade de indisponibilidade e o tempo médio para falhas vamos detalhar cada uma delas e a disponibilidade é uma medida de com disponível sistema estaria para uso Isto é como disponível sistema estaria para efetuar um serviço solicitado por algum usuário por exemplo um serviço
de um sistema de software terá uma disponibilidade de 999 para mil Isso significa que dentre um conjunto de mil solicitações de serviço 999 deverão ser atendidas essa métrica é muito importante e sistemas de telecomunicações por exemplo é a taxa de ocorrência de falhas é uma medida da frequência na Qual o sistema falha em prover um serviço como esperado pelo usuário Ou seja a frequência na qual um comportamento inesperado é provável de ser observado por exemplo se temos uma taxa de ocorrência de falha de 2 para mil Isso significa que duas falhas são prováveis de acontecerem
para cada 1.000 unidades de tempo e a probabilidade de indisponibilidade é uma medida da probabilidade que o sistema irá comportar-se de maneira Inesperada quando em operação essa métrica é de suma importância em Sistemas críticos que requerem uma operação continua por exemplo o sistema deverá apresentar sucesso nas operações de 999 para mil E aí E aí e o tempo médio de falhas é uma medida do tempo entre falhas observadas essa métrica oferece o indicativo de quanto tempo o sistema permanecerá operacional antes que uma falha aconteça por exemplo o sistema deverá apresentar 500 horas de tempo médio
sem falhas nos cadastros e o desempenho diz respeito à tempo de resposta tempo de processamento e espaços ocupados pelos softer considere por exemplo um sistema de uma administradora de cartões de crédito então sistema um projetista o engenheiro de software poderia considerar os requisitos de desempenho para obter uma resposta de tempo para autorização das compras por cartão assim trata-se de um importante atributo de qualidade Além disso os requisitos de desempenho tem Impacto mais Global sobre o sistema e por essa razão instante os requisitos não funcionais mais importantes adicionalmente desempenha importante porque afeta usabilidade de um sistema
sistema de software é lento ele certamente reduz a produtividade os seus usuários ao ponto de não atender às suas necessidades também se o sistema de software requer muito espaço em disco para armazenamento de informações pode ser oneroso utilizado se você quiser o desempenho também trazem um conjunto de métricas são elas requisitos e resposta requisitos de processamento requisitos de temporização e requisitos de espaço vamos ver cada um deles Oi hoje é quesito de resposta específica o tempo de resposta de um sistema de software aceitável para usuários por exemplo no caixa eletrônico após o usuário inserir o
cartão magnético do banco no local apropriado o sistema deveria exibir uma nova tela no intervalo de dois segundos requerendo que o usuário Digite sua senha de conta corrente numa outra situação usuário pode ser solicitado a digitar sua senha e se não faz dentro do período de 20 segundos o sistema retorna à tela inicial nesse caso um projetista poderia especificar que o sistema deveria responder à solicitação de um serviço específico de usuário dentro do intervalo de dois segundos e os requisitos de processamento ou Fruit especificam a quantidade de dados que deveria ser processada num determinado período
um exemplo seria assistir que o sistema de software possa processar no mínimo 10 transações por segundo Oi hoje é quesito de temporização especificam com rapidamente o sistema deveria coletar dados de entrada de sensores antes que outros leitores de dados de entrada feitas posteriormente sobre a escrevam os dados anteriores assim por exemplo poderia ser especificado que o sistema deveria efetuar leitura de dados cinco vezes por segundo como condição mínima e os requisitos de espaço o consideram os espaços a serem ocupados pelo software durante o seu processamento a que podemos nos referir a memória principal ou secundária
por exemplo a memória principal para executar uma aplicação poderia ser considerada como requisito de desempenho uma vez que ela está relacionada ao comportamento do sistema em tempo de execução e a portabilidade refere-se a habilidade de se executar um sistema em várias plataformas pode ser definida como a facilidade na qual software pode ser transferido de um sistema computacional ou um ambiente para outro em outras palavras o sol ter edito portável se ele pode ser executado em ambientes distintos mas Note que o termo ambiente pode referir-se tanto a plataforma de hardware quanto o ambiente de software como
por exemplo um sistema operacional específico assim a portabilidade é proporcional à quantidade de esforço necessário para que funcione o novo ambiente e também pode se referir a um ambiente de hardware necessário em alguns exemplos de portabilidade o sistema deve executar eficientemente em um sistema Windows e Linux aqui diz respeito à questão do sistema operacional o sistema deve executar eficientemente em Sistemas Android também a outra exemplo apontando a questão de sistema operacional a segurança e um sistema de software esse requisito não funcional caracteriza a segurança de que acessos não autorizados ao sistema e dados Associados não
serão permitidos portanto é assegurada a integridade do sistema quanto a ataques intencionais ou acidentes dessa forma a segurança é vista como a probabilidade de que a ameaça de algum tipo será requerida vejamos alguns exemplos e o sistema deve exigir autenticação prévia de seus usuários o sistema deve restringir acesso de acordo com o tipo de usuário o sistema deve fazer backup de dados a cada 24Horas se você quisitos não-funcionais usabilidade especificam tanto o nível de desempenho quanto a satisfação do usuário no uso do sistema a usabilidade é um dos atributos de qualidade ou requisitos não-funcionais e
qualquer sistema interativo Ou seja no qual ocorre a interação entre o sistema e seres humanos a noção de usabilidade vendo fato de que qualquer sistema projetado para ser utilizado pelas pessoas deveria ser fácil de aprender e Fácil de usar tornando assim fácil e agradável a realização de qualquer tarefa requisitos de usabilidade especificam tanto o nível de desempenho quanto a satisfação do usuário no uso do sistema dessa forma aos habilidade pode ser expresso em termos de facilidade de aprender associada ao tempo de esforço mínimo exigido para alcançar um determinado nível de desempenho no uso do sistema
e facilidade de uso relacionado a velocidade de execução de tarefas a redução de erros no uso do sistema vejamos alguns exemplos e o sistema deve ter interface responsiva a dispositivos móveis o sistema deve ter Interface para usuários iniciantes o sistema deve garantir mensagens que informe erros de utilização ao usuário as dicas importantes a descrição dos requisitos não-funcionais também obedecem um padrão vamos ver qual é Primeiramente vem a sigla rmf de requisito não funcional com a sua respectiva numeração e o texto começando sempre com o sistema deve ou sistema não deve percebo que agora nós temos
a possibilidade de colocar essas duas escritas tanto deve quanto não deve o que não acontece com requisitos funcionais que não tem a questão da palavra não E aí e como será algumas situações de escrita importante observe a seguinte situação temos dois requisitos não-funcionais o primeiro diz o sistema não deve permitir o acesso sem autenticação prévia do usuário ou seja sem autenticação usuário não consegue entrar no sistema e o segundo requisito disso o sistema deve oferecer autenticação de usuário primeiro requisito não funcional nós destacamos o que eu não deve permitir isso deixa bem claro uma restrição
uma exigência por isso é um requisito não funcional já na segunda situação que o sistema deve oferecer é uma questão de funcionalidade ou seja nesse caso o segundo exemplo não é um requisito não funcional trata-se de uma funcionalidade portanto é um requisito funcional isso é muito comum de acontecer e escrita de requisitos é a segunda situação temos os seguintes requisitos o primeiro disso o sistema não deve permitir o acesso sem autenticação prévia do usuário e o segundo diz o sistema deve exigir autenticação de usuário nós já Vimos que o primeiro exemplo é um requisito não
funcional porque traz uma restrição ou seja não deve permitir o acesso já o segundo texto onde que diz que o sistema deve exigir autenticação de usuário apesar de não ter a palavra não também é uma exigência uma restrição portanto também trata-se de um requisito não funcional Espero que tenha ficado um pouco mais claro mas só praticando é que nós conseguiremos escrever com mais clareza em alguns pontos importantes que nós trazemos a partir de vacilar Week 2011 existem vários esquemas de classificação de requisitos não-funcionais assim sendo cada equipe de projeto têm de adotar um referencial de
classificação que pareça apropriado na realidade essas formas de classificação servem apenas para ajudar a organizar a informação não há nenhuma obrigação e identificar requisitos não-funcionais de todos os tipos no mesmo projeto também não é obrigatório identificar a que tipo pertencem a um dado o requisito não funcional é uma questão de organização o fundamental é reconhecer que o requisito existe bom então é isso pessoal Esperamos que vocês tenham entendido um pouco mais as inscrições as características e a importância dos requisitos não-funcionais falta agora nós estudarmos um pouco sobre regras de negócio assunto do nosso próximo vídeo
por hoje é só um abraço tchau tchau [Aplausos] E aí E aí [Música] E aí [Música]