Olá, estudante! Pronto(a) para entender o processo de definição do projeto de sistemas e da análise de requisitos do sistema dentro da área da programação? Tenho certeza de que, baseado nas lições das outras disciplinas, você está totalmente preparado(a) para essa nova aventura.
Esta disciplina/lição trará algumas informações que você já deve ter visto em algum momento ao longo do seu curso, porém com uma visão voltada definitivamente para a programação. Dentre os assuntos que irei abordar nesta lição, estão questões que abordam sobre o objetivo do projeto de sistema em si e como ele resolverá as “dores” do cliente, ou seja, como aproveitar as oportunidades de mercado. Também veremos sobre o que eu chamo de escopo do projeto, que nada mais são do que os limites daquele projeto, o que deverá conter no sistema e até o que não deverá fazer parte do projeto, de acordo com o contrato e/ou expectativa do cliente.
A emoção maior ainda estar por vir na Análise de requisitos do sistema, que aborda desde a definição do que é requisito para desenvolvimento de software, passando por seus tipos, como descobri-los ou elicitá-los. O meu foco para esta disciplina é que você compreenda como analisar estes requisitos, documentá-los e, na sequência, programá-los. Estou te esperando no próximo item para continuarmos essa nova aventura!
Neste item, vou lhe explicar que tipo de problema você poderá evitar ao desenvolver um software, aplicativo ou sistema web passando pelas etapas de Definição do Projeto de Sistemas e Análise de Requisitos do sistema.
Ao realizar uma análise abrangente das necessidades dos stakeholders, que são as partes interessadas no projeto, ou, em outras palavras, todo mundo que impacta ou será impactado com o projeto que você está elaborando, e mapear os requisitos funcionais e não funcionais de forma detalhada, você será contemplado(a) com uma visão clara do escopo do projeto. Isso evitará retrabalho, minimizará custos e reduzirá o risco de desenvolver um sistema que não atenda às expectativas do cliente.
Além disso, a definição adequada do projeto e a análise precisa dos requisitos permitem uma comunicação mais eficaz entre os membros da equipe de desenvolvimento e os stakeholders, garantindo que todas as partes envolvidas tenham uma compreensão comum dos objetivos do sistema.
Resumindo, utilizando da abordagem estruturada, você com certeza terá mais chances de sucesso no desenvolvimento dos sistemas, pois criará sempre produtos finais que são mais eficientes, eficazes e alinhados com as necessidades reais dos usuários.
Agora que você já viu o tipo de problema trazido pela abordagem do título desta lição, vou lhe apresentar um case fictício sobre a sua utilização. Então, vamos lá! Apresento-lhe a Empresa Xpto, especializada na venda de produtos eletrônicos, eletrodomésticos e móveis. Com um número crescente de clientes e uma extensa variedade de produtos, a empresa enfrenta desafios para gerenciar suas operações de vendas de forma eficiente. Para isso, fez um processo de pesquisa para definir um projeto para melhorar essa situação.
Após a pesquisa, a Empresa Xpto chegou a uma definição do projeto e decidiu investir em um Sistema de Gestão de Vendas (SGV) para aprimorar seus processos e atender melhor seus clientes. O objetivo foi desenvolver uma solução que automatiza a gestão de vendas, estoques e pedidos, além de oferecer relatórios gerenciais para auxiliar na tomada de decisões.
Na parte de análise de requisitos, a empresa destacou alguns requisitos funcionais importantes:
Cadastro de produtos: o SGV deve permitir o cadastro completo de produtos, incluindo informações como descrição, preço, fornecedor e categoria.
Controle de estoque: o SGV precisa acompanhar o estoque em tempo real, alertando os gestores sobre a necessidade de reabastecimento.
Gestão de pedidos: o SGV deve possibilitar o registro de pedidos, rastreamento de status e histórico de compras de cada cliente.
E alguns requisitos não funcionais:
Segurança: é imprescindível garantir a segurança dos dados dos clientes e informações estratégicas da empresa.
Desempenho: o SGV deve suportar picos de demanda durante períodos de promoções ou datas especiais.
Usabilidade: a interface do sistema deve ser amigável e intuitiva, para que os funcionários possam utilizá-la com facilidade.
De posse desses e demais requisitos funcionais e não funcionais, a equipe de desenvolvimento trabalhou arduamente na implementação do SGV que foi lançado com sucesso e rapidamente adotado por todos os setores da empresa. Os colaboradores relataram que o sistema simplificou suas tarefas diárias, economizando tempo e reduzindo erros manuais, fazendo com que a Empresa Xpto se tornasse mais competitiva, mais produtiva e com uma melhora significativa na experiência do cliente, consolidando-a como uma líder em seu setor.
Sendo assim, neste case, podemos observar uma situação em que uma empresa realiza a definição do projeto de sistema, bem como a análise de requisitos do sistema. No entanto, ainda é preciso compreender como isso tudo funciona com mais detalhes, concorda? Então, sem mais demora, vamos lá!
O desenvolvimento de sistemas é um processo complexo e estruturado para criar soluções tecnológicas que atendam às necessidades específicas de um negócio, empresa ou usuário final. Esses sistemas podem variar desde aplicações web e mobile até sistemas de gestão empresarial, entre outros. Para garantir o sucesso do projeto e a satisfação dos usuários, as etapas iniciais são a de definição do projeto e a análise de requisitos. Sendo assim, vamos compreender no que consiste cada uma delas a seguir.
A definição do projeto de um sistema envolve a compreensão clara dos objetivos, escopo e requisitos do sistema a ser desenvolvido. Nessa fase, é essencial estabelecer os principais propósitos do projeto e entender as expectativas das partes interessadas do projeto – clientes, usuários finais e equipe de desenvolvimento. Sem uma definição adequada, o projeto corre o risco de não atender às reais necessidades do cliente, e, consequentemente, ocorrer desperdício de recursos e tempo.
Para complementar a ideia de definição do projeto de um sistema, gostaria de lhe apresentar a definição de Pressman e Maxim (2021). Os autores dizem que um software consiste em: (1) instruções (programas de computador), que quando executadas fornecem características, funções e desempenho desejados; (2) estruturas de dados, que possibilitam aos programas manipular informações adequadamente; e (3) informação descritiva, tanto na forma impressa quanto na virtual, descrevendo a operação e o uso dos programas. De forma mais geral, podemos dizer então que o software tem a função de fazer com que a máquina compreenda e execute os comandos passados pelos usuários. E, para que isso ocorra corretamente, a definição do projeto é o primeiro passo, pois é o momento em que será definido qual os objetivos, o escopo e os requisitos necessários.
A análise de requisitos é um processo detalhado de coleta, documentação e validação dos requisitos funcionais e não funcionais do sistema. Segundo Pressman e Maxim (2021), a Engenharia de Requisitos, como é chamada, estabelece uma base sólida para o projeto e para sua construção. Sem ela, o software resultante tem grande possibilidade de não atender às expectativas do cliente.
Especificando como eles funcionam temos os requisitos funcionais, que descrevem o que o sistema deve fazer, enquanto os requisitos não funcionais especificam as características que o sistema deve ter para atender aos critérios como desempenho, segurança e usabilidade. Uma análise precisa e completa de requisitos é crucial para evitar ambiguidades (incertezas), garantir que o sistema seja bem projetado e evitar retrabalho no futuro.
A modelagem de requisitos envolve a representação visual e organizada dos requisitos do sistema por meio de diagramas e técnicas específicas. Ao criar modelos claros e concisos, a modelagem de requisitos facilita a compreensão dos envolvidos no projeto – desenvolvedores, clientes e todas as partes interessadas no projeto, permitindo uma comunicação mais eficiente. Além disso, a modelagem ajuda a identificar lacunas e ambiguidades.
Pressman e Maxim (2021) exaltam que um modelo de requisitos, por ser prontamente avaliado por todos os envolvidos, resulta em um feedback útil no menor tempo possível através de uma modelagem, por isso, é de grande importância dentro do projeto.
Essa gestão tem o papel de garantir que as alterações ao longo do processo de desenvolvimento sejam gerenciadas de forma estruturada e controlada. À medida que o projeto evolui e novas informações são obtidas, é comum surgirem mudanças no ambiente de negócios. Através da gestão de mudança, essas alterações são identificadas e avaliadas quanto ao seu impacto e prioridade, e posteriormente incorporadas ao projeto, garantindo a sua rastreabilidade e controle.
Uma gestão adequada de mudanças evita retrabalho, atrasos e desperdício de recursos, mantendo o projeto alinhado com as expectativas dos clientes e as necessidades do mercado. Além disso, a comunicação clara com todos os envolvidos durante o processo de gestão de mudanças promove a compreensão mútua e a colaboração, fortalecendo o trabalho em equipe e o sucesso geral do desenvolvimento do sistema. De grande valor é o fato de que, se você tem todo um processo que gerencia mudanças dentro do escopo do projeto, tal operação deixa de ser algo pessoal e passa a ser algo analisado e metrificado por todos.
A validação e a verificação de requisitos garantem que os requisitos estão de acordo com o necessário, completos e consistentes. A validação envolve a avaliação dos requisitos para assegurar que eles estão atendendo às reais necessidades das partes interessadas e estão alinhados com os objetivos do projeto. Nessa etapa, é essencial garantir que os requisitos sejam claros, não ambíguos e compreensíveis para todos envolvidos. Além disso, é importante ressaltar que, segundo Pressman e Maxim (2021), a validação de requisitos vale também para os modelos de processo ágil, nos quais os requisitos tendem a ser elaborados na forma de histórias de usuário e/ou casos de teste.
Por outro lado, a verificação consiste em examinar os requisitos detalhadamente para identificar possíveis inconsistências, erros e omissões. Dessa forma, é possível garantir que os requisitos sejam tecnicamente viáveis e que não haja contradições entre eles.
A validação e a verificação de requisitos asseguram que o projeto comece com uma base sólida, reduzindo a probabilidade de erros ao longo do desenvolvimento do sistema, economizando recursos e aumentando a satisfação dos clientes ao entregar um produto final que atenda plenamente as suas expectativas.
A comunicação é um pilar essencial para o sucesso do desenvolvimento. Uma comunicação eficiente e contínua entre todos os envolvidos no projeto, como clientes, usuários finais, equipe de desenvolvimento e partes interessadas, garante que as expectativas e necessidades sejam compreendidas com clareza. Por meio da comunicação, é possível esclarecer dúvidas, obter feedbacks valiosos e promover uma compreensão compartilhada dos requisitos.
Isso ajuda a evitar mal-entendidos, ambiguidades e erros, além de permitir que todas as partes estejam alinhadas com relação aos objetivos do sistema. Através da comunicação, os desafios e riscos também podem ser identificados e gerenciados de forma proativa, contribuindo para criar uma base sólida para o desenvolvimento do sistema.
Existem diversas opções disponíveis para auxiliar nesse processo, tais como ferramentas de modelagem, como o Astah e o Enterprise Architect, que permitem representar visualmente os requisitos em diagramas claros e concisos.
Além disso, técnicas como entrevistas, questionários e workshops são eficazes para coletar informações junto às partes interessadas. O uso de prototipagem também se destaca ao criar modelos interativos que permitem validar conceitos e obter feedbacks precoces dos usuários.
A seleção e a aplicação adequada dessas ferramentas e técnicas promovem uma análise mais precisa de uma definição mais completa dos requisitos, resultando em um sistema bem projetado.
Finalizando este item, é importante reforçar que a importância da definição do projeto e da análise de requisitos do sistema está diretamente relacionada à economia de recursos, redução de riscos e à criação de um sistema que realmente atenda às expectativas do cliente. Um projeto bem definido possibilita uma melhor organização da equipe de desenvolvimento, evitando desvios durante a implementação e ajudando a estabelecer um cronograma realista.
A análise de requisitos também é fundamental para o desenvolvimento de um sistema que seja funcional, confiável e eficiente. Uma boa análise ajuda a identificar e resolver problemas potenciais antes que se tornem obstáculos no desenvolvimento, permitindo um planejamento mais preciso e alocando recursos de forma eficiente.
Agora que já conhece os conceitos de definição do projeto de sistema e análise de requisitos do sistema, tenho uma proposta interessante para aplicação destes conceitos. Espero que goste
Uma biblioteca pública deseja modernizar sua infraestrutura de gerenciamento de acervo e empréstimo de livros, buscando melhorar a experiência dos usuários e otimizar o trabalho dos bibliotecários. O projeto tem como objetivo desenvolver um Sistema de Gerenciamento de Biblioteca (SGB) que seja intuitivo, eficiente e abrangente.
A parte inicial da Análise de Requisito foi feita pela equipe da Biblioteca, em que você tem:
Requisitos funcionais
Cadastro de livro: o sistema deve permitir que os bibliotecários cadastrem informações detalhadas sobre cada livro, como título, autor, ISBN, editora e categoria.
Empréstimo e devolução: os usuários devem conseguir emprestar e devolver livros por meio do sistema, com controle das datas de empréstimo e prazo de devolução.
Controle de multas: o SGB precisa calcular multas automaticamente em caso de atraso na devolução e possibilitar o pagamento on-line.
Requisitos não funcionais
Usabilidade: o sistema deve ser de fácil utilização, com uma interface intuitiva e responsiva.
Segurança: é fundamental garantir a segurança dos dados dos usuários e das informações do acervo.
Desempenho: o SGB deve ser capaz de lidar com um grande número de usuários simultâneos sem comprometer a performance.
Viu como funciona a definição de um projeto e a elicitação de alguns requisitos funcionais e não funcionais para implementação de um novo sistema e/ou uma nova funcionalidade? Meu desafio é que você aplique em casa em algum “problema” ou em alguma “oportunidade” em seu dia a dia e utilize essa aplicação como exemplo para praticar as definições e elicitações de um novo projeto, ou até mesmo para “descobrir” mais requisitos funcionais e não funcionais para o SGB. O que acha? Topa? Te espero na próxima lição para saber!
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de Software: uma abordagem profissional. 9. ed. Porto Alegre: Bookman, 2021.