0:00:07.907,0:00:10.510 Antes de entrar[br]no universo dos requisitos, 0:00:10.510,0:00:14.114 vamos entender um pouco o contexto[br]de um projeto de software 0:00:14.114,0:00:16.916 e como os requisitos[br]se encaixam nesse processo. 0:00:16.916,0:00:20.178 Quando iniciamos o processo[br]de construção de um software, 0:00:20.178,0:00:24.457 precisamos levantar todas as características[br]que as partes interessadas, 0:00:24.457,0:00:28.561 também conhecidas como stakeholders,[br]desejam que esse software tenha. 0:00:28.561,0:00:32.766 Todas essas solicitações podem[br]ser de naturezas bem diferentes, 0:00:32.766,0:00:35.768 por exemplo, uma tela[br]com um layout específico, 0:00:35.768,0:00:38.939 um relatório que contém informações[br]de vários departamentos 0:00:38.939,0:00:42.909 ou até mesmo a necessidade[br]de que uma determinada transação ocorra 0:00:42.909,0:00:45.145 em um intervalo mínimo de tempo. 0:00:45.145,0:00:49.916 Fica claro que precisamos anotar todos[br]esses desejos de modo organizado, 0:00:49.916,0:00:53.887 já que eles serão o ponto de partida[br]para o projeto do nosso software. 0:00:53.887,0:00:54.888 Atualmente, 0:00:54.888,0:00:59.158 a comunidade de software é formada[br]pelos que produzem e pelos que consomem. 0:00:59.158,0:01:03.229 Software atua[br]com o paradigma dos projetos ágeis. 0:01:03.329,0:01:07.400 Esses projetos ágeis[br]promovem entregas mais rápidas, 0:01:07.467,0:01:11.070 sejam entregas[br]completas ou entregas parciais. 0:01:11.137,0:01:16.009 Já essas entregas permitem que os usuários[br]aproveitem o valor do software, 0:01:16.075,0:01:19.312 mesmo antes do projeto[br]ser totalmente concluído. 0:01:19.412,0:01:22.415 Um processo ágil[br]de desenvolvimento de software 0:01:22.548,0:01:26.119 tem como ponto central[br]a entrega dele funcionando, 0:01:26.185,0:01:28.921 empregando menos esforço em atividades 0:01:28.921,0:01:31.758 que não sejam a sua construção em si. 0:01:31.758,0:01:34.761 Com isso, o escopo dos stakeholders 0:01:34.761,0:01:39.565 pode ser ajustado ao longo do projeto,[br]conforme a necessidade, Claro. 0:01:39.666,0:01:44.270 Agora que entendemos melhor esse processo[br]ágil do desenvolvimento de software, 0:01:44.370,0:01:48.841 vamos revisitar brevemente[br]o processo clássico o modelo cascata. 0:01:49.042,0:01:52.512 O modelo cascata é composto[br]por fases fixas, 0:01:52.578,0:01:56.983 onde todas atividades de uma fase[br]devem ser completamente finalizadas 0:01:57.050,0:02:00.453 para que a próxima comece[br]na fase de análise. 0:02:00.520,0:02:03.756 Fazemos a coleta[br]e a organização dos requisitos 0:02:03.823,0:02:08.227 e, quando finalizada, o modelo não prevê[br]a repetição dessas atividades 0:02:08.227,0:02:09.429 durante o projeto. 0:02:09.429,0:02:12.398 Para efeito de comparação,[br]no processo ágil, 0:02:12.398,0:02:15.768 essas atividades de coleta[br]e organização de requisitos 0:02:15.868,0:02:19.705 podem acontecer repetidamente[br]em qualquer momento do projeto. 0:02:19.839,0:02:22.809 Outra característica[br]importante do processo ágil 0:02:22.875,0:02:26.479 é que ele ocorre em ciclos ou espirais. 0:02:26.546,0:02:30.950 Em cada espiral, os requisitos[br]são revistos e complementados 0:02:31.017,0:02:32.819 se houver necessidade. 0:02:32.819,0:02:37.824 Além disso, as especificações técnicas[br]são modeladas assim. 0:02:37.924,0:02:42.361 O incremento da solução é construído,[br]testado e entregue para uso. 0:02:42.428,0:02:46.799 Um exemplo que ilustra o processo ágil[br]com ciclos de entrega é o Scrum. 0:02:46.899,0:02:49.735 O ponto de partida[br]é uma lista de requisitos 0:02:49.735,0:02:53.539 que o software precisa[br]atender, ou seja, o backlog do produto. 0:02:53.639,0:02:57.743 A partir dele, são criadas[br]atividades de modelagem, construção 0:02:57.743,0:03:02.215 e entrega dentro de um ciclo de trabalho[br]conhecido como Sprint. 0:03:02.315,0:03:06.586 Ao fim desse ciclo se espera a entrega[br]de uma parte do software para o cliente. 0:03:06.652,0:03:09.422 O projeto é composto por várias sprints, 0:03:09.422,0:03:13.526 onde cada uma implementa[br]uma parte da relação dos requisitos 0:03:13.626,0:03:17.997 e os ajustes do backlog do produto[br]podem ocorrer em qualquer momento. 0:03:18.097,0:03:21.734 Comentamos mais de uma vez[br]que essa lista de requisitos 0:03:21.801,0:03:24.804 deve ser anotada e classificada. 0:03:24.937,0:03:28.140 Podemos classificar os requisitos[br]de diversas maneiras, 0:03:28.207,0:03:32.378 mas ao final desse processo[br]devemos ter necessário em mente 0:03:32.445,0:03:36.749 dois tipos de requisitos[br]os funcionais e os não funcionais. 0:03:36.949,0:03:40.553 Os requisitos funcionais[br]são aqueles que se relacionam 0:03:40.553,0:03:45.925 com uma funcionalidade, ou seja,[br]um serviço que o software deve fornecer. 0:03:46.025,0:03:47.193 Por meio deles. 0:03:47.193,0:03:52.264 Entendermos quais dados o sistema deve[br]guardar, recuperar e apresentar, 0:03:52.331,0:03:56.469 quais transações devem acontecer,[br]como devem ser as interações 0:03:56.469,0:04:01.407 com os usuários, atendendo, é claro,[br]as regras de negócio envolvidas. 0:04:01.507,0:04:05.077 Já os requisitos não funcionais[br]recebem este nome 0:04:05.077,0:04:08.748 por serem de natureza[br]oposta aos funcionais. 0:04:08.814,0:04:13.119 São os que se relacionam à performance,[br]aspecto de interface 0:04:13.119,0:04:16.956 e usabilidade do software[br]e condições de segurança. 0:04:17.022,0:04:19.658 Eles envolvem a solução como um todo. 0:04:19.658,0:04:23.295 Vale ressaltar[br]que o conjunto dos requisitos funcionais 0:04:23.295,0:04:28.467 e não funcionais de um sistema[br]é conhecido como requisitos de software. 0:04:28.567,0:04:32.738 Conhecendo esses requisitos,[br]podemos delimitar o escopo do software 0:04:32.738,0:04:36.208 a ser construído,[br]planejar o seu desenvolvimento 0:04:36.308,0:04:41.747 e ter bases para estimar qual o custo[br]e o tempo envolvidos em sua construção. 0:04:41.847,0:04:46.285 Pronto, agora você já compreende[br]o contexto de um projeto de software 0:04:46.385,0:04:49.255 e como ele serve de plano[br]de fundo para os requisitos.