Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Análise e Projeto de Sistemas Material Teórico Levantamento de Dados e Análise de Requisitos Responsável pelo Conteúdo: Prof. Ms. Rodrigo da Rosa Revisão Textual: Profa. Ms. Rosemary Toffoli • Introdução • O que é um Sistema? • O que são Requisitos? • Técnicas de Levantamento de Requisitos Levantamento de Dados e Análise de Requisitos Por que a análise de requisitos é fundamental no desenvolvimento do projeto de sistemas? Como utilizar técnicas de levantamento de dados para garantir que as necessidades de clientes e/ou parceiros sejam plenamente atingidas? Como a fase de levantamento de requisitos contribui para solução de problemas de engenharia de sistemas? Para que os objetivos da unidade sejam alcançados, é fundamental que você leia cuidadosamente todo o material e realize com atenção todas as atividades propostas. Nesta unidade é importante que, durante as leituras e realização dos exercícios, você consiga compreender a importância de levantamento de dados e análise de requisitos para desenvolvimento de sistemas. Sugerimos que você acesse e leia cuidadosamente o material teórico. Após isso você poderá acompanhar a Apresentação Narrada, pois ela lhe ajudará a compreender melhor os principais assuntos da Unidade. Outro recurso fundamental é a atividade de sistematização, já que com ela você poderá perceber o quanto aprendeu sobre o tema. Realize a atividade de aprofundamento, que associa os assuntos que estudamos à atividade profissional por meio de reflexão e produção de sua própria autoria. Além disso tudo, você contará com textos e vídeos indicados no material complementar. 5 Contextualização O processo de desenvolvimento de sistemas não é tarefa fácil. Quando o assunto é sistema relacionado com software, a complexidade pode ser ainda maior. Muitos podem até imaginar que basta ter uma ideia qualquer e conhecer programação para que os resultados sejam satisfatórios aos interesses de usuários e/ou clientes. Contudo, para o desenvolvimento de softwares, algumas etapas devem, fundamentalmente, ser obedecidas para que suas funcionalidades estejam de acordo com as necessidades da empresa e para que problemas futuros sejam evitados. A primeira fase no desenvolvimento de um projeto como este é o levantamento de dados e análise de requisitos. A figura do analista é de grande importância, pois a ele compete o trabalho de captar todas as informações possíveis e detalhadas dos usuários que precisam deste sistema e transmitir de maneira clara aos desenvolvedores para que as etapas seguintes sejam plenamente atendidas. O analista não pode, em hipótese alguma, ter entendimento errado do que se pretende, pois este fato trará consequências prejudiciais ao projeto. Para que isto seja evitado, muitas são as técnicas de levantamento de dados projetadas na tentativa de reduzir ao máximo o risco de iniciar o projeto com defeito de análise. O contato direto e indireto com os clientes é fator decisivo, e analisar as características da empresa, comparando com as expectativas expostas são critérios que um bom analista deve estabelecer. Esta unidade irá descrever as ideias principais no que diz respeito a levantamento e análise de requisitos, bem como apresentar algumas técnicas mais utilizadas para este fim. Unidade: Levantamento de Dados e Análise de Requisitos 10 11 Introdução Entende-se que a etapa mais complicada no desenvolvimento de sistemas de software é a de análise de requisitos, pois ela servirá como fundamento para todas as outras fases posteriores do projeto. Além disso, é nela que o usuário recebe especial atenção, já que as informações por ele apresentadas é que darão suporte para a elaboração do projeto. Ideais humanos são estabelecidos; questões organizacionais e políticas são inseridas; suas preferências, objetivos e metas são imaginados; cenários e metodologias são projetados. Todas estas situações contribuem para especificação do que se pretende com o sistema. Nesta unidade, abordaremos sobre a importância da análise de requisitos de usuários em projetos que envolvem o desenvolvimento de sistemas computacionais. Compreenderemos que existem técnicas de levantamento de dados que visam estruturar as etapas de análise de requisitos de forma a tentar satisfazer as necessidades gerenciais exigidas por clientes e/ou parceiros. O que é um Sistema? Você já deve ter ouvido a palavra sistema em diferentes contextos: sistema de transporte, sistema digestivo, sistema solar, sistema de informação, etc. Na era digital este termo tem sido utilizado frequentemente. Diálogo com o Autor De maneira mais sucinta, podemos definir sistema como o conjunto de elementos interdependentes, ou um todo organizado, ou partes que interagem formando um todo unitário e complexo (BATISTA, 2004, 13). Assim, o sistema de transporte urbano é constituído por um conjunto de veículos (ônibus, trens, metrô) com a função de transportar cargas ou as pessoas para locais diferentes; o sistema digestivo é composto por um conjunto de órgãos que tem por objetivo proporcionar a digestão dos alimentos. Atenção Quando tratamos do assunto “sistema” com uma abordagem computacional, podemos definir a palavra como um conjunto de objetos ou elementos que estão organizados com o propósito de pro- cessar dados de entrada para se obter informações de interesse. Na figura 1, você poderá identificar os elementos, geralmente mais utilizados em um sistema de software: Figura 1: Elementos em um sistema de software Procedimentos são as etapas que definem a função de cada elemento do sistema; Hardware é um conjunto de componentes eletrônicos associados ao computador, como por exemplo, a CPU, periféricos, memória, placas e monitor; Você Sabia ? CPU é o nome dado à Unidade Central de Processamento (Central Processing Unit) em um computador. É um componente conhecido também como Processador, responsável por executar as instruções dos programas e fornecer resultados para os usuários. Em comparação com o corpo humano, a CPU seria o cérebro do computador. Clique no link abaixo para ampliar seus conhecimentos sobre o assunto: https://www.youtube.com/watch?v=Nmvxk1yuoPE Software é o conjunto sequencial de instruções que definem um programa de computador; Pessoas, no contexto de sistemas de software, são aqueles usuários e manipuladores dos componentes de hardware e de software; Banco de dados é um conjunto de dados relacionados entre si que podem ser acessados por softwares específicos para gerência, manipulação e acesso às informações ali armazenadas; Documentos são o conjunto de manuais, formulários, relatórios e outros meios capazes de representar o funcionamento do sistema como um todo. Um conjunto de atividades/etapas que seguem determinada ordem é chamado de processo. Construir uma casa exige que sejam feitos os fundamentos, sejam colocadas as ferragens, os tijolos, o cimento, as colunas, o concreto, etc. Ninguém pode alterar a ordem, caso contrário o projeto ficará comprometido. Quando falamos em sistema como um software, chamamos de ciclo de vida do software o processo de desenvolvimento dele, que vai desde a análise de requisitos até a entrega total deste ao cliente/usuário. Diálogo com o Autor Segundo Pfleeger (2004, p. 38), todo processo de desenvolvimento de software tem como entrada os requisitos do sistema e como saída um produto fornecido. Muitos modelos foram propostos ao longo dos anos. A seguir serão apresentados alguns dos modelos que o autor comenta: Modelo de Ciclo de Vida em Cascata: existe uma sequência simples de cumprimento das etapas, conforme figura 2. É um modelo que transmite confiabilidade e que ajuda os desenvolvedores a explicarem certos detalhes do projeto de software, porém há deficiência no que diz respeito a correções em fases anteriores, já que o início de uma etapa acontece ao término da anterior. Figura 2: Modelo em cascata Modelo de Ciclo de Vida em Cascata com Realimentação: semelhante ao modelo em cascata, busca sanar a dificuldade de ajustes em etapas anteriores prevendo a possibilidade de realimentação de correções. Figura 3: Modelo em cascata com realimentação. Modelo de Ciclo de Vida em Espiral: o desenvolvimento baseia-se em um processo iterativo. Ele permite que os usuários acompanhem as etapas que desejarem e definam requisitos enquanto se projeta o software. Figura 4: Modelo em espiral. Explore Além destes existem ainda outros modelos de ciclo de vida de software. Leia as páginas 92 a 97 do livro Engenharia de Software: fundamentos, métodos e padrões, de Wilson de Pádua disponível na Biblioteca Virtual da UNICSUL. Como vimos, a primeira etapa no desenvolvimento de software é a entrada de requisitos, ou seja, o levantamento e análise daquilo que o usuário pretende com a criação do sistema. Compete ao analista de sistemas fazer o levantamento de dados a respeito de uma situação objeto de estudo, utilizando os elementos acima apresentados, com o objetivo de melhor atender às necessidades de empresas e/ou clientes; estudar a economia obtida com a implementação do sistema; definir funções para pessoal, hardware, software e banco de dados; determinar limites de datas e de custos. Para que isto seja possível o analista deve possuir algumas características fundamentais, como por exemplo: ser capaz de entender o ambiente do cliente através da observação e escuta e leitura; possuir habilidade em se expressar escrita e verbalmente; ser capaz de decidir a melhor maneira de sanar um problema em situações de conflito; ter criatividade para organizar ideias a partir de conceitos reais e abstratos e propor soluções. Este profissional deverá ter ação de supervisão das tarefas que envolvem à análise de requisitos de software, sendo aquele intermediador que procura obter conhecimento das características gerais do ambiente tal como se encontra (requisitos de usuário) e prepara a equipe de desenvolvimento para estabelecimento das características do sistema. Unidade: Levantamento de Dados e Análise de Requisitos Figura 5: Funções de um analista de requisitos (PRESSMAN, 1995, p.236). A seguir vamos estudar as etapas de requisitos de usuário e de sistema e suas implicações na definição dos sistemas. O que são Requisitos? A mãe de um garoto diz para ele: você deve comer toda a refeição para ganhar o doce. O pai diz ao filho: quando você completar dezoito anos você poderá dirigir meu carro. Ainda o padrão diz: você deverá concluir a pós-graduação para receber promoção. Perceba que em todos os casos existe algum critério que se deve obter para conseguir algo. Atenção Requisito se refere à condição que se deve satisfazer para atingir um determinado propósito. A análise de requisitos de sistemas se preocupa em organizar os dados colhidos através de certas técnicas para que se obtenham informações essenciais úteis no desenvolvimento de um sistema. Assim que as condições forem estabelecidas o projeto poderá ser elaborado de maneira a suprir às necessidades de uma organização. Os requisitos para projeto de sistemas podem ser classificados como requisitos de usuário e requisitos de sistema. Requisitos de usuário: são requisitos que descrevem os elementos necessários para que os usuários do sistema possam compreender com facilidade, já que não possuem detalhes técnicos envolvidos. A linguagem deve ser simples e estruturada, geralmente, de forma ilustrativa com tabelas, imagens, gráficos, diagramas, dentre outros. Os requisitos de usuário por sua vez são descritos de, basicamente, duas maneiras: Requisitos funcionais de usuários: definem as funcionalidades do sistema sob a ótica dos usuários, ou seja, o que eles precisam ou desejam que o sistema realize. Atenção Exemplos de requisito funcional de usuário: O sistema de controle de estoque de um restaurante deve armazenar registros de todos os itens perecíveis e não perecíveis localizados na cozinha. Deve ainda fornecer relatórios sobre os produtos de menor e de maior consumo. Deve permitir a inclusão de novos produtos de estoque de forma intuitiva. Note que a forma como o texto está escrito permite que os usuários tenham ideia clara dos requisitos do sistema sem mesmo ter conhecimento técnico de como o sistema irá processar estas tarefas. Aos requisitos funcionais pode-se acrescentar a ideia de armazenamento de dados (armazenar dados dos alimentos); transformação de dados em informação (emitir relatório de prazos de validade dos produtos); recuperação de dados (consultar os dados dos alimentos que são classificados como vegetais). Requisitos não-funcionais de usuários: são requisitos que descrevem características qualitativas do sistema, como por exemplo confiabilidade, performance, espaço de armazenamento, segurança, portabilidade, custos, manutenção, etc. Atenção Exemplos de requisito não-funcional de usuário: O tempo resposta do sistema não deve ultrapassar 15 segundos. Somente usuários autorizados poderão realizar consultas na base de dados do sistema. O sistema deverá ser implementado em sistema operacional da plataforma Linux. No que diz respeito à confiabilidade, o sistema deve garantir que eventos inesperados possam ser tratados e resolvidos. Mas o que podemos chamar de eventos inesperados? Suponha que o usuário esteja cadastrando um cliente no sistema e através de um formulário e após inserir todos os dados, porém antes de armazenar, há uma queda de energia elétrica e as informações são perdidas. O sistema deve ser capaz de restaurar os registros digitados anteriormente para que o usuário não tenha que digitar tudo novamente. Performance, também chamada de tempo de resposta ou desempenho, é o tempo calculado entre a solicitação do usuário (por exemplo o clique em um botão gravar) até a resposta desejada por ele (por exemplo a mensagem indicando que a operação foi realizada com sucesso). Nenhum sistema deverá ser lento, pois este fato causa desconforto para os usuários. Para atender com o requisito espaço de armazenamento o sistema deverá ser projetado de forma a garantir que terá espaço suficiente para armazenamento de dados e de arquivos. Falhas neste item pode comprometer bastante a performance e confiabilidade do sistema. Em um ambiente corporativo muitas pessoas têm acesso ao sistema, porém nem todas elas necessitam ter permissões para acessar o sistema como um todo. Segurança do sistema visa a identificação dos privilégios que cada um dos usuários terão para manipular os dados do sistema. Um funcionário que trabalha no setor de estoque precisa acessar o sistema para visualizar se um produto encontra-se disponível ou se está em falta. Ele não precisa (e não pode) ter acesso às informações do setor de RH, como folha de pagamento dos funcionários. Restrições de acesso fazem parte do item segurança, assim como formas de acesso aos dados como, por exemplo, a utilização de criptografia em senhas. A portabilidade se refere à capacidade do sistema em operar em diversas plataformas ou arquiteturas, como por exemplo em sistemas operacionais Linux ou Windows. A figura a seguir apresenta uma visão mais detalhada dos tipos de requisitos não-funcionais de usuários: Figura 6: Tipos de requisitos não-funcionais (SOMMERVILLE, 2007, 82) A análise de requisitos não-funcionais deverá receber especial atenção, já que falhas neste processo poderá comprometer o sistema por inteiro. Requisitos de sistema: são uma extensão dos requisitos de usuários, já que neste modelo são adicionados detalhes técnicos que serão projetados pela equipe de engenharia de sistemas. Você Sabia ? Engenheiro de sistemas é o profissional responsável por projetar soluções de software e/ou de sistemas. Ele precisa ter conhecimento amplo das fases que envolvem a análise de requisitos, pois contará com uma equipe que desenvolverá o sistema com base nos dados coletados e analisados. Uma forma padronizada de se escrever os requisitos de sistema é a chamada linguagem estruturada natural, que faz uso de modelos gráficos ou formulários estruturados dos requisitos para este fim. A linguagem natural é simples para a compreensão dos modelos por parte do público interessado, porém é necessário que ela se apresente de maneira padronizada, ou estruturada, para garantir certa uniformidade nas especificações. Leia a página 88 do livro Engenharia de Software de Ian Sommerville, referente às especificações em linguagem estruturada. Técnicas de Levantamento de Requisitos Como vimos, o levantamento de requisitos é fundamental para o desenvolvimento de sistemas bem estruturados e que apresentem soluções para os problemas dos usuários. Nem sempre os usuários sabem exatamente o que precisarão de um sistema, pois normalmente sentem a necessidade de um a partir de alguma dificuldade que enfrenta no dia-a-dia. Sendo assim, algumas técnicas para tal propósito são utilizadas na tentativa de captar ao máximo as informações sobre o ambiente atual e o que se pretende fazer. Abaixo são apresentadas e descritas algumas das principais técnicas para levantamento de requisitos. Não existe a obrigatoriedade de utilização de todas elas e nem mesmo de utilização de apenas uma. Cada projeto deverá se valer daquela ou daquelas que forem úteis e necessárias. Entrevista: este item é muito comum em levantamento de requisitos e produz bons resultados. Aqui o público interessado (ou parte interessada) responde perguntas que podem ser previamente elaboradas ou não pela equipe de engenharia de requisitos sobre o sistema atualmente utilizado e também sobre o sistema que esperam que seja desenvolvido. Muitas respostas podem sugerir novos questionamentos e, por isso, nem sempre seguir um roteiro é a melhor maneira de obter qualidade na entrevista. Entretanto manter um foco é sempre indicado como forma de controle desta atividade. Fonte: Thinkstock.com Você Sabia ? Engenheiro de sistemas é o profissional responsável por projetar soluções de software e/ou de sistemas. Ele precisa ter conhecimento amplo das fases que envolvem a análise de requisitos, pois contará com uma equipe que desenvolverá o sistema com base nos dados coletados e analisados. É importante que o entrevistado fique a vontade para expressar sua ideias em um tempo adequado para o processo todo. A entrevista não deve ter um caráter persuasivo, ou seja, as perguntas não podem ser direcionadas para uma resposta a que se pretende chegar, mas a parte interessada deverá ser levada a refletir naquilo que tem e no que se deseja em relação ao sistema. Questionário: normalmente apresentado em forma de formulário entregue ao público interessado que poderá ou não responder ser recolhido em horário estipulado ou, simplesmente, poderá ser recolhido posteriormente para análise das informações desejadas. É importante que os formulários contenham as mesmas questões e que estejam em uma mesma disposição, caso sejam distribuídos para mais de uma pessoa. Este meio apresenta, de modo geral, algumas vantagens por ser mais simples sua aplicação; Fonte: Thinkstock.com pela agilidade no processo; pela possibilidade de uma reflexão mais apurada na resposta; pela oportunidade de ser aplicado à grande quantidade de pessoas, etc. Entretanto algumas desvantagens também precisam ser apontadas, como por exemplo, a possibilidade de manipulação das respostas antes de serem recolhidos os questionários; o baixo envolvimento com aqueles que respondem; a impossibilidade de tirar dúvidas imediatas sobre repostas fornecidas. Os questionários poderão também formar a base para uma entrevista. As questões poderão iniciar com: O que você acha...? Como você tem percebido...? Qual a motivação para...? Prototipagem: no momento em que diversas informações já foram colhidas e analisadas é possível a criação de um protótipo do sistema que se pretende desenvolver, demonstrando apenas certas funcionalidades ainda pouco definidas. Deste modo, ao ser apresentado este modelo inicial de sistema, o público de interesse poderá ter uma breve visão de como o projeto deverá ser estruturado e, a partir disso, será possível sua interação apontando melhorias ou identificando possíveis falhas. Embora seja uma técnica que traz excelentes resultados, projetar um protótipo envolve custos que poderão se elevar dependendo da complexidade do sistema. Este fato muitas vezes impede a aceitação por parte dos usuários. Verificação de documentos: trata-se de uma importante investigação de situações que estão registradas em documentos como formulários, relatórios, manuais, fichas, dentre outros. Deste modo o analista poderá ter uma visão ampla de quais são as informações que recebem tratamento especial, além de poder detectar comoa organização está politicamente estruturada e quais são as metas que se procuram estrategicamente alcançar. Você Sabia ? Etnografia é uma palavra derivada de outras duas: etno significa nação ou povo e grafia significa escritaAnálise Etnográfica: envolve o trabalho de fazer anotações a partir dos processos rotineiros desempenhados pelas pessoas que trabalham na organização. Fonte: Thinkstock.com Fonte: Thinkstock.com Diálogo com o Autor Etnografia é uma técnica de observação que pode ser usada para compreender os requisitos sociais e orga- nizacionais (SOMMERVILLE, 2007, 104).O analista se dirige até o ambiente de trabalho onde o sistema será implementado e acompanha o dia-a-dia das pessoas envolvidas no processo. Esta técnica é bastante útil para levantamento de requisitos, pois diversas informações poderão ser captadas somente desta maneira, uma vez que grandes detalhes são, normalmente, esquecidos ou ocultados pelos usuários em momentos como entrevistas e/ou aplicação de questionários. Outro ponto importante é o fato de que a análise etnográfica permite que o analista tenha conhecimento da realidade do ambiente de trabalho tal como ela é e não como se espera que fosse. Por exemplo, dispositivos periféricos como teclado, mouse e monitor são sensíveis, ao ponto de precisarem ficar longe de produtos líquidos. Entretanto o analista percebe que muitos dos funcionários trabalham com uma garrafa com água próxima a estes componentes, para evitar a sua locomoção até o refeitório. A escolha da melhor técnica ou das melhores técnicas deve ser pautada na situação de cada sistema a ser desenvolvido. Aquela que serve melhor para uma talvez seja pouco proveitosa para outra. Estar atento em cada detalhe da produção do software é responsabilidade fundamental do analista. Material Complementar Para mais conhecimento sobre o conteúdo desta unidade, acesse: http://www.portalarquiteto.com.br, portal da Internet com notícias e artigos sobre o assunto Arquitetura de Softwrare. PAULA FILHO, W. P.. Engenharia de Software: fundamentos, métodos e padrões. Rio de Janeiro. LTC, 2009, disponível na biblioteca virtual da Unicsul. PRESSMAN, R. S.. Engenharia de Software. São Paulo. Pearson, 2011, disponível na biblioteca virtual da Unicsul. Referências BATISTA, Emerson de O.. Sistemas de Informação: o uso consciente da tecnologia para o gerenciamento. São Paulo. Saraiva, 2004. PFLEEGER, S. L.. Engenharia de Software: teoria e prática. São Paulo. Prentice Hall, 2004. PRESSMAN, R. S. Engenharia de Software. São Paulo.Pearson Makron Books, 1995. SOMMERVILLE, Ian. Engenharia de Software. São Paulo. Pearson Addilson-Wesley, 2007. Anotações www.cruzeirodosulvirtual.com.br Campus Liberdade Rua Galvão Bueno, 868 CEP 01506-000 São Paulo SP Brasil Tel: (55 11) 3385-3000
Compartilhar