Olá sejam bem-vindos ao canal engenharia de software com ênfase ml Eu sou professor Jes gues e eu já atuo na área de modelagem de software há vários anos eu tenho quatro livos publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos sobre modelagem de software utilizando a linguagem uml na aula de hoje eu vou dar continuidade às especificações do padrão internacional de especificação da i3e Então hoje eu vou abordar as a especificação de requisitos desse sistema Então vamos iniciar a nossa aula Então essa é a terceira aula sobre a o padrão internacional
de especificação de requisitos da ISO IEC e3e 29148 cuja última versão é a de 2018 eh e hoje eu vou abordar como eu falei a especificação de requisitos de sistema em vídeos anteriores nós já vimos especificação de requisitos de negócio e especificação de requisitos de partes interessadas eh cada uma dessas especificações elas possuem um nível eh de detalhamento um pouco mais baixo ou um pouco mais específico então depois da especificação de requisitos de sistema nós temos ainda especificação de requisitos de software H como foi falado nas aulas anteriores algumas dessas das informações contidas nessas especificações
se repetem mas com um viés um pouco diferente Vamos então falar sobre essa especificação Então essa especificação ela identifica os requisitos técnicos para o sistema bem como o nível de usabilidade prevista para interação entre os usuários e o sistema ela também define os requisitos de sistema de alto nível a partir da perspectiva do domínio do problema bom Ah aqui o termo é alto nível porque na especificação de requisitos de software o nível é ainda mais baixo mas em comparação com a especificação de requisitos de partes interessadas ou especificação de requisitos de negócio eh esses requisitos
dessa especificação de requisitos D sistema são mais detalhados Além disso além dos do do do detalhamento da definição dos requisitos de sistema de nível mais alto H também apresenta informações básicas sobre os objetivos gerais do sistema sobre o ambiente de destino o ambiente no qual ele será instalado e possivelmente uma declaração das restrições suposições e requisitos não funcionais necessários ao software Lembrando que requisitos de sistema são requisitos mais detalhados que são produzidos pela fase de análise toma-se requisitos de usuário e os detalha melhor os especifica melhor ã estabelece mais profundamente como vai ser o comportamento
das funcionalidades se define ações do dos atores ações do sistema e resposta esse tipo de coisa então requisitos de sistema são eh um detalhamento mais profundo dos requisitos nós temos requisitos de usuário que são uma declaração mais geral e os itos de sistema são uma declaração um pouco mais detalhada bom ah essa especificação ela pode incluir modelos conceituais modelos conceituais podem ser modelos de classes que identificam as classes de entidades relacionadas ao domínio do problema Ah podemos ter também cenários de uso cenários que H simulam como o software será utilizado as principais entidades relacionadas ao
domínio que se que ao ao que o s se destina pode incluir informações sobre dados sobre outras informações sobre fluxos de trabalho ou seja workflows ã como a informação trafega entre vários setores ou vários atores por exemplo então a especificação ela precisa fornecer uma descrição do que o sistema deveria fazer ã em termos das interações ou interface do sistema com seu ambiente externo e ela deve descrever completamente todas as entradas todas as saídas e todos os relacionamentos necessários entre as entradas e as saídas Aqui nós temos uma figura retirada da eh do padrão 29148 sobre
a especificação de requisitos de sistema então a essa especificação possui os seguintes tópicos introdução que se que se divide em propósito do sistema escopo do sistema visão Geral do sistema contexto do sistema funções do sistema e características do usuário além de definições ã nós temos as referências que é um termo comum genérico para genérico não comum a todas as especificações que basicamente referenciam todos os documentos utilizados nessa especificação depois nós temos o tópico requisitos de sistema que se divide em requisitos funcionais requisitos de usabilidade requisitos de desempenho requisitos de interface que por sua vez se
dividem em requisitos de interface externa e requisitos de interface interna operações de sistema eh modos e estados do sistema características físicas condições ambientais requisitos de segurança H requisitos de gerenciamento de informação requisitos de política e regulação Ah e requisitos de eh do requisitos de de de sustentabilidade do ciclo de vida do sistema temos também requisitos de empacotamento manuseamento envio e transporte ã nós temos um tópico também de verificação que eh também é comum a maioria das especificações que basicamente determinam como essa especificação será inspecionada será verificada para ver se ela está correta se ela não
possui anomalias ou erros e nós temos o tópico sobre apêndices que contém h suposições e dependências e acrônimos e abreviações que é comum a todas as especificações basicamente contém todos os acrônimos abreviações siglas etc que são utilizados por essa especificação Lembrando que como foi falado nas outras especificações a esse padrão 29148 ele é muito abrangente ele foi projetado para cobrir toda as possíveis características de um sistema Mas acontece que algumas dessas características elas são muito específicas então elas não são úteis em determinadas situações Em algumas situações elas pode ser útil descrever eh numa especificação de
um software eh algumas informações eh muito específicas como por exemplo empacotamento e manuseamento requisitos de empacotamento e manuseamento mas em muitos outros sistemas isso pode ser desnecessário então não é porque existe esse tópico no nesse padrão que Obrigatoriamente ele precisa ser eh cumprido precisa ser coberto precisa ser descrito em toda a especificação do sistema existem situações em que eles podem ser úteis e existem situações que eles não são necessários bom então vamos falar sobre o sobre tópico de introdução Então esse esse tópico ele define o conteúdo normativo de uma especificação de requisitos de sistema com
relação ao propósito do sistema ele define as razões pelas quais o sistema será desenvolvido ou modificado ou evoluído ou seja vai se produzir uma nova versão do sistema com relação ao escopo do sistema como o nome já diz esse tópico Ele trabalha com a definição do escopo do sistema sobre consideração ou seja Qual é o objetivo ã possível do sistema em termos do que é possível realmente Ah fazer com que o sistema alcance considerando as restrições do projeto como orçamento cronograma limitações tecnológicas nível de expertiz da da da equipe complexidade inerente do software bom mas
então Eh esse esse item de define o escopo do sistema começando pela Identificação do nome do software que irá ser desenvolvido e referindo e declarando os resultados da análise de necessidades que foram que foi desenvolvido anteriormente e também foi declarada anteriormente nas especificações eh que nós já vimos nas outras aulas especificação de requisitos de negócio especificação de requisitos de partes interessadas ah com relação a esse subitem deve ser se deve se expressar breve mas claramente os problemas dos usuário que foram identificadas explicando o que o sistema irá e não irá fazer para satisfazer essas necessidades
Porque isso é uma característica do escopo do sistema o escopo define o que realmente será feito muitas vezes trabalhando com priorização de requisitos Como já foi visto em outras aulas Então se estabelece quais os requisitos fazem realmente parte do escopo do sistema estão dentro do objetivo do software fazem parte daquele software e quais requisitos não fazem parte daquele software então é importante Deixar claro o que não se irá fazer para não gerar falsas expectativas das partes para as partes interessadas Além disso também se define se descreve a aplicação do sistema que está sendo especificado E
para isso é preciso descrever os benefícios as metas e os objetivos de alto nível que foram considerados relevantes da forma mais precisa possível com relação ao tópico funções do sistema são descritas as principais capacidades condições e restrições do sistema com relação às características de usuário o nome já diz cada tipo de usuário ou operador ou mantenedor do sistema é identificado em termos de suas funções onde eles estão localizados que tipo de dispositivos eles utilizam também eventualmente poem ser identificados grupos e eles devem esses grupos devem ser numerados e também a natureza do do uso do
sistema por parte desses grupos também as características e capacidades de cada um desses grupos de usuários ah com relação ao tópico de requisitos funcionais esse nome é auto explicativo todos os requisitos funcionais necessários à operação do sistema são escritos depois nós temos requisitos de usabilidade requisitos de usabilidade dizem respeito à facilidade de utilizar e aprender o software o quão intuitivo o software deve ser o quão fácil de utilizar e deve ser o quão satisfatório ele deve ser para os usuários finais Então esse item define requisitos e objetivos de usabilidade e qualidade de uso eh para
o sistema e pode incluir medidas de quão eficaz o o software deve ser o quão eficiente ele deve ser eh critérios para determinar a satisfação eh ou para garantir a satisfação dos usuários eh e formas de prevenções de danos mensuráveis que possam eventualmente surgir em situações específicas de uso nós temos requisitos de desempenho requisitos de desempenho levam em consideração eh o tempo de resposta eh do sistema Então esse item ele define as condições de desempenho críticas e quais as suas capacidades associadas incluindo considerações como ações ou mudanças dinâmicas que podem ocorrer eh requisitos de desempenho
para fase de modos operacionais eu não errei aqui não não não coloquei o item C ã eh errado não tá numerado errado Está correto é que o item C ele é bem curtinho e o item B é muito grande então eu inverti coloquei os itens a e c e agora eu falo sobre o item B que são os critérios quantitativos e eles abrangem a capacidade aqui já a nível de Ráo as capacidades de resistência dos equipamentos que são necessários à necessidades do usuário levando em consideração as condições ambientais e outras possíveis condições que sejam estipuladas
Isso inclui a expectativa de vida Total mínima desses equipamentos de hardware Em algumas situações pode ser necessário considerar o tempo de vida do equipamento considerando se ele está exposto a elementos ambientais que podem eh afetar eh esse tempo de vida então esse item ele também indica a duração necessária da sessão operacional e a taxa que foi planejada para utilização eh daqueles itens de hardware hã com relação aos requisitos de interface do sistema então H esse item ele considera interfaces entre elementos do sistema que podem ser H componentes internos ã isso pode incluir também interfaces com
os elementos humanos e também ele especifica requisitos com entidades externas que podem incluir interfaces com outros sistemas ã outros eh outros softwares Então o meu sistema pode estar integrado a outros sistemas ou pode ter que se comunicar com outros softwares específicos então é necessário estabelecer essas interfaces Lembrando que como todo item dessa especificação ele pode ser necessário ou não para um determinado software em alguns casos isso pode ser desnecessário Ahã esse item também define quaisquer interdependência ou possíveis restrições associadas com as interfaces então isso implica em estabelecer Protocolos de comunicação eventualmente se é necessário algum
dispositivo especial para comunicação padrões de comunicação formatos esse tipo de coisa então cada interface pode não significa que sempre ocorrerá mas ela pode representar um fluxo bidirecional de informação então a informação pode trafegar noos dois sentidos operações de sistema então Eh aqui ele cobre esse item cobre requisitos de integração eh humano sistema requisitos de manutenibilidade requisitos de confiabilidade e outros requisitos de qualidade vamos falar um pouco sobre cada um deles com relação aos requisitos de integração humano sistema Então se referencia documentos aplicáveis a integração entre humanos e o sistema e especifica quaisquer requisitos especiais ou
únicos necessários como por exemplo restrições sobre a alocação de funções para pessoal e comunicações e interações de pessoal eh e equipamento interações entre as pessoas e o equipamento Ah ainda se define requisitos para quaisquer áreas específicas Estações ou equipamentos que requeiram a atenção de Aria humana concentrada onde é necessário muito trabalho com muitas pessoas devem estar envolvidas ah ou funcionários específicos devem estar envolvidos eh em determinadas eh operações do sistema e essa essas operações elas podem ser muito sensíveis ou críticas Então são situações em que áreas em que erros humanos poderiam eh causar eh sérios
problemas no uso do sistema nós temos também os requisitos de Man manutenibilidade que determinam Ah o quão fácil o software será de manter ou evoluir então alguns requisitos podem levar em consideração tempo grau complexidade mantenção índice de ação de manutenção e acessibilidade vamos falar um pouquinho sobre cada um deles com relação ao tempo pode-se estabelecer o tempo médio e máximo de inatividade aceitável para o software durante as operações de manutenção o tempo de reação necessário quando é preciso dar manutenção no software o tempo de retorno máximo aceitável para que o sistema volte a funcionar em
caso de eh ser necessário uma manutenção e o tempo médio e máximo de reparo Então se estabelecer um uma média esperada para manutenção do software e o máximo de eh tempo necessário para dar manutenção e o tempo médio entre ações de manutenção Esse é o item que vai ser previsto eh que muitas vezes talvez não seja tão fácil de estabelecer ah com relação ao grau ou ou taxa leva-se em consideração horas eh previstas para a equipe de manutenção em termos de eh quanto tempo vai se levar para uma manutenção específica o grau de prontidão operacional
o quão rapidamente uma equipe pode ser acionada para dar manutenção no software o tempo de manutenção considerando horas de operações e a frequência de manutenção preventiva em termos de refatoração sempre procurando deixar o software melhor ainda se considera a complexidade de manutenção ah levando em consideração o número de pessoas necessárias e os seus níveis de habilidade a variedade de equipamento de suporte que pode ser necessário e quais são os procedimentos para remoção substituição e reparo de componentes necessários ao software que pode ser componentes físicos no caso itens de hardware ou componentes lógicos Ah ainda os
índices de ação de manutenção que leva em consideração custos de manutenção por hora de operação e as horas da equipe por revisão Quantas horas em média se espera eh que sejam gastos por uma equipe para fazer uma revisão no software ainda com relação a a à acessibilidade ã qual eh com relação à manutenibilidade qual será a acessibilidade que será possível para componentes dentro de sistemas e partes dentro de componentes porque um componente ele pode ser composto Poo de várias partes vários elementos internos dentro de componente é comum que o componente tenha vários elementos internos que
podem ser outros componentes ou classes por exemplo para poder suportar as funcionalidades que são atribuídas a esse componente agora vamos falar sobre requisitos de confiabilidade então confiabilidade é a capacidade do software seguir funcionando o quão confiável o software deve ser alguns sistemas eles devem funcionar 24 horas por dia 7 dias na semana 365 dias por por por ano Ah então aqui se determina o quão confiável o software Deve ser isso significa que eh mesmo que haja um erro o sistema deve ser capaz de continuar funcionando e preferencialmente de forma transparência ao usuário que o usuário
não perceba que houve um erro então para isso é necessário investimento forte em hardware é necessário replicação de servidores é necessário ã formas de recuperação de informação ah backup esse tipo de coisa ah então ah esse item estabelece as condições sobre as quais os requisitos de confiabilidade devem ser atendidos e também o modelo de repartição de confiabilidade que permite apoiar a locação de valores de confiabilidade atribuídos às funções do sistema de forma que serja possível auxiliar na obtenção da confiabilidade que se espera do sistema ah e nós temos ainda outros requisitos de qualidade que estabele
por exemplo como o sistema irá implementar compatibilidade e a portabilidade compatibilidade é qu compatível o meu software deve ser com outros softwares e eventualmente com determinados hardwares e portabilidade é a capacidade do meu software rodar em diversas plataformas diversos sistemas operacionais Então se o meu software ele for muito portável ele eventualmente poderá ser um pouco lento um pouco mais lento e isso afetará a minha o meu desempenho se o meu software não for portável ele pode aproveitar melhor H características particulares do sistema operacional por exemplo Mas em compensação vai ser nativo daquele sistema operacional e
só rodará naquele sistema operacional específico então tem vantagens e desvantagens Isso deve ser determinado pela especificação modos estado sistema um sistema ele pode ter mais de um modo ou estado de operação ã se isso ocorre eles precisam ser definidos De novo isto é opcional pode ser utilizado ou não e pode ser utilizar diagramas para estabelecer isso existem também as características físicas Então os requisitos físicos eles incluem restrições sobre peso volume e dimensão do Hardware Quais são os servidores que irão ã cortar o meu sistema onde eles estarão localizados que tamanho máximo eles podem ocupar onde
eles vão vão ser colocados ã também implica em características de construção do local onde o sistema será instalado Quais são as necessidades daquela construção o que é necessário que ela que que que aquela construção possua ou ainda eh se determinar isso como uma restrição Olha o sistema deverá ser instalado nesta construção deve se considerar em algumas situações específicas a o ambiente físico onde o software será executado deve ser ah importante ser declarado eh também requisitos para materiais a serem usados no item ou serviço que é coberto para especificação e requisitos abrangendo placas de identificação marcações
do sistema intercambiabilidade de equipamentos e acabamento então aqui é uma situação física então Em algumas situações como eu falei é necessário estabelecer eh ambientes específicos incluindo os prédios necessários ao software Claro eh considerando principalmente aqui também o hardware que vai ser necessário ao software e isso implica também eh como esse hardware poderá ser afetado pelo meio ambiente Ah isso implica também requisitos de adaptabilidade então estabel estabelece requisitos para crescimento expansão capacidade e contração do sistema então se há uma previsão de como sof como o sistema irá crescer escalar Qual é a capacidade necessária ou prevista
para para aquele para aquele sistema e eventualmente situações em que o sistema sofrerá contração isso pode acontecer em situações em que há um grande pico então H vários servidores precisam ser acionados e situações em que a demanda é menor então ã vários servidores podem ser desligados ou colocados em nativos por por exemplo Ah ainda nós temos as condições ambientais que são que são associadas às características físicas obviamente que H determinam situações ambientais que podem afetar o sistema ou pode ser necessário ser atendidos pelo sistema então eu posso ter considerar o ambiente natural levando em consideração
por exemplo mas não limitado a vento chuva temperatura umidade Flora fauna fungos bolor areia maresia pó radiação elementos químicos elementos contaminantes que podem ser transportados pelo ar e também questões de se o software deverá ser imerso em algum líquido por exemplo o software não o hardware deverá ser imerso em algum líquido então claro que aqui e envolve principalmente hardware mas existem sistemas que precisam interagir com elementos de hardware que estarão expostos ao ambiente então posso ter precisar de um medidor de temperatura ura eu posso precisar de um ã medidor de umidade eu posso precisar T
um medidor de ah nível de vento eu eu posso n tipos de de hardwares e esses hardwares eles podem estar expostos a n possíveis elementos ambientais que podem desgastar esse hard então eu tenho que estabelecer essas condições ambientais e como eu vou tentar preservar esse hard ou ainda De quanto em quanto tempo ele deverá ser trocado ã também leva-se em consideração ambiente induzido e autoinduzido eu tenho que prever questões como possíveis movimentos que podem ocorrer sobre o hardware possíveis choques ruídos eh questões de eletromagnéticas questões de temperatura eh possíveis ameaças eh ameaças físicas ameaças não
intencionais ameaças intencionais quando alguém pode tentar eh propositalmente ã estragar algum r tentar atacar o sistema por meio disso ah ambientes cooperativos onde eh elementos de hardware ou mesmo pessoas precisam cooperar elementos de software precisam cooperar também ah e também pode eventualmente se considerar ambientes legais ou regulatórios ambientes políticos econômicos sociais e de negócio nesse item ah com relação aos requisitos de segurança de sistema então estabelece como o sistema deverá ser protegido levando em consideração a instalação que irá abrigar o sistema isso ainda a nível físico e também requisitos de segurança operacional do sistema propriamente
dito para evitar que o software seja por exemplo invadido e que as informações sejam perdidas ou roubadas [Música] ã então o exemplo disso seria especificar requisitos de segurança e privacidade incluindo formas de limitar o acesso ao sistema oferecendo ah procedimentos e senhas de autenticação por exemplo e métodos de recuperação de dados e métodos de proteção de dados Ah isso também pode incluir fatores que protegeriam o sistema de acesso uso modificação destruição ou divulgação de informação acidental ou maliciosa quer dizer intencional ah em particular sistemas embarcados de segurança crítica isso pode pode também incorporar um log
distribuído ou um histórico de conjunto de dados utilizados atribuição de certas funções a diferentes sistemas únicos ou a restrição de comunicações entre algumas áreas do sistema com relação aos requisitos de gerenciamento de informação Então se estabelece requisitos para o gerenciamento e informação do sistema H sobre considerando as informações que são recebidas as informações que são geradas ou as informações que são exportadas ainda eh exemplos desse tipo de requisito podem eh estabelecer os tipos e quantidade de informação que o sistema precisa receber e armazenar Produções proprietárias ou proteções impostas informações que o sistema eh terá de
lar e também requisitos de cópia e Recuperação de informações Ah bem como arquivamento as formas de arquivamento para essas informações ah com relação aos requisitos de política e regulamentação estabelece determina Quais são os requisitos de políticas organizacionais e práticas de negócio e também eventualmente regulamentações externas relevantes e regulamentações do governo regulamentações de Sindicatos regulamentações de órgãos em que a empresa estar associada eh quando se trata de corporações por exemplo que irão afetar a operação ou o desempenho do sistema então eu posso precisar ter que determinar esse tipo de requisito também eh especifica requisitos derivados para
critérios de saúde e segurança quando necessário Ah quando existem ambientes que podem eventualmente afetar a saúde de seus usuários e deve se prevenir que isso para que isso não ocorra Ah isso também inclui eh eh os que são básicos para o projeto sistema considerando as características de equipamento métodos de operação e influências ambientais como por exemplo sistemas tóxicos sistemas eh radioativos sistemas eh que sofre algum ã algum alguma hã alguma interação eletromagnética alguma influência eletromagnética eh também nós temos os requisitos de sustentação do ciclo de vida do sistema que definem atividades de qualidade que estabelecem
como vai se determinar Ah o nível de qualidade do da especificação por meio de revisões ou inspeções então aqui aplicando técnicas de verificação e validação ã Que tipo de inspeções vão ser aplicadas a especificação para garantir que ela não possui anomalias erros e outras possíveis falhas eh também como vão ser coletadas E analisadas essas medições eh de forma a garantir um sistema de qualidade Ah isso também inclui a fornecimento de instalações necessárias ao suporte operacional e depósito peças sobressalentes abastecimento e fornecimento provisionamento documentação e dados técnicos treinamento de pessoal de suporte treinamento inicial da equipe
apoio Logístico inicial do contratante Ah nós temos também os requisitos de empacotamento manuseio envio transporte novamente isso pode ser necessário ou não se o meu sistema vai ser ã se o meu software precisa ser enviado ã dentro de algum eh receptáculo físico ou mesmo quando ele vem junto com elementos de hardware então pode ser necessário estabelecer esse tipo de requisito Então esse esse item ele cobre ã requisitos que garantam que o software que eventualmente o seu hardware necessário possa ser impactado aliás imputado manuseado enviado transportado e armazenado considerando o contexto operacional pretendido para ele com
relação à verificação ã ainda está relacionada a qualidade do sistema Então se estabelece Quais as abordagens e métodos de verificação que são planejados para qualificar o sistema ou os elementos do sistema garantir a qualidade do sistema e nós temos as suposições dependentes Então se lista quaisquer suposições e quaisquer dependências aplicáveis aos requisitos do sistema que poderiam ser levados em consideração durante a locação e e derivação de requisitos de sistema de baixo nível vão ser que vão ser detalhados na próxima especificação e nós concluímos mais essa especificação de requisitos do sistema sobre o padrão de especificação
de requisitos da i3e 29148 Ah eu espero que vocês tenham gostado dessa aula espero que vocês tenham considerado que essa aula tenha sido útil se vocês gostaram desse vídeo eu peço então que curtam esse vídeo compartilhem com que possa ter ter interesse e e se ainda não estão inscritos eu peço que se inscrevam no canal nós nos vemos na próxima aula obrigado pela atenção