UNIVERSIDADE DO ESTADO DO RIO GRANDE DO NORTE UERN
FACULDADE DE CINCIAS EXATAS E NATURAIS FANAT
CINCIA DA COMPUTAO ENGENHARIA DE SOFTWARE
Discente: Joo Pedro da Costa Ribeiro RESUMO CAPTULO 4
Engenharia de Requisitos
Os requisitos de um sistema so as descries do que o sistema deve fazer, os servios que oferece e as restries a seu funcionamento. Esses requisitos refletem as necessidades dos clientes para um sistema que serve a uma finalidade determinada, como controlar um dispositivo, colocar um pedido ou encontrar informaes. O processo de descobrir, analisar, documentar e verificar esses servios e restries chamado engenharia de requisitos. Requisitos de usurio e requisitos de sistema podem ser definidos como de usurios sendo declaraes, em uma linguagem natural com diagramas, de quais servios o sistema dever fornecer a seus usurios e as restries com as quais este deve operar e requisitos de sistema so descries mais detalhadas das funes, servios e restries operacionais do sistema de software. O documento de requisitos do sistema deve definir exatamente o que deve ser implementado. Os requisitos de software so frequentemente classificados como requisitos funcionais e requisitos no funcionais, onde requisitos funcionais so declaraes de servios que o sistema deve fornecer, de como o sistema deve reagir a entradas especficas e de como o sistema deve se comportar em determinadas situaes. Em alguns casos, os requisitos funcionais tambm podem explicitar o que o sistema no deve fazer. J os requisitos no funcionais, so restries aos servios ou funes oferecidos pelo sistema. Incluem restries de timing, restries no processo de desenvolvimento e restries impostas pelas normas. Aos contrrio das caractersticas individuais ou servios do sistema, os requisitos no funcionais, muitas vezes, aplicam- se ao sistema como um todo. Os requisitos no so independentes e muitas vezes geram ou restringem outros requisitos. Portanto, os requisitos de sistema no apenas especificam os servios ou as caractersticas necessrias ao sistema, mas tambm a funcionalidade necessria para garantir que esses servios/caractersticas sejam entregues corretamente. Os requisitos funcionais de um sistema mais especificamente, descrevem o que ele deve fazer. Eles dependem do tipo de software a ser desenvolvido, de quem so seus possveis usurios e da abordagem geral adotada pela organizao ao escrever os requisitos. Quando expressos como requisitos de usurios, os requisitos funcionais so normalmente descritos de forma abstrata, para serem compreendidos pelos usurios do sistema. No entanto, requisitos de sistema funcionais mais especficos descrevem em detalhes as funes do sistema, suas entradas e sadas, excees etc. Em principio, a especificao dos requistos funcionais de um sistema deve ser completa e consistente. Completude significa que todos os servios requeridos pelo usurio devem ser definidos. Consistncia significa que os requisitos no devem ter definies contraditrias. Na prtica, para sistemas grandes e complexos, praticamente impossvel alcanar completude e consistncia dos requisitos. Os requisitos no funcionais, como o nome sugere, so requisitos que no esto diretamente relacionados com os servios especficos oferecidos pelo sistema a seus usurios. Eles podem estar relacionados s propriedades emergentes do sistema, como confiabilidade, tempo de resposta e ocupao de rea. Uma alternativa a esse cenrio seria os requisitos definirem restries sobre a implementao do sistema, como as capacidades dos dispositivos de E/S ou as representaes de dados usadas nas interfaces com outros sistemas. Os requisitos no funcionais, como desempenho, proteo ou disponibilidade, normalmente especificam ou restringem as caractersticas do sistema como um todo. Requisitos no funcionais so frequentemente mais crticos que requisitos funcionais individuais. Requisitos no funcionais podem afetar a arquitetura geral de um sistema em vez de apenas componentes individuais; um nico requisito no funcional, tal como um requisito de proteo, pode gerar uma srie de requisitos funcionais relacionados que definam os servios necessrios no novo sistema. Requisitos podem ser de produto, organizacionais ou externos. De produto, especificam ou restringem o comportamento do software, os organizacionais, so os requisitos gerais de sistemas derivados das polticas e procedimentos da organizao do cliente e do desenvolvedor, e os externos, que abrange todos os requisitos que derivam de fatores externos ao sistema e seu processo de desenvolvimento, podem incluir requisitos reguladores, requisitos legais e ticos. Na prtica, no documento de requisitos, difcil separar os requisitos funcionais dos no funcionais. Se no apresentados separadamente, os relacionamentos entre eles podem ficar difceis de serem entendidos. No entanto, os requisitos claramente relacionados com as propriedades emergentes do sistema, como desempenho ou confiabilidade, devem ser explicitamente destacados. Voc pode fazer isso colocando-os em uma seo separada do documento de requisitos ou distinguindo- os, de alguma forma, dos outros requisitos de sistema. O documento de requisitos de software, s vezes chamado Especificao de Requisitos de Software, uma declarao oficial de o que os desenvolvedores do sistema devem implementar. Deve incluir tanto os requisitos de usurio para um sistema quanto uma especificao detalhada dos requisitos de sistema. Em alguns casos, os requisitos de usurio e de sistema so integrados em uma nica descrio. Em outros, os requisitos de usurio so definidos em uma introduo especificao de requisitos de sistema. Documentos de requisitos so essenciais quando um contratante externo est desenvolvendo o sistema de software. Entretanto, os mtodos geis de desenvolvimento argumentam que os requisitos mudam to rapidamente que um documento de requisitos j est ultrapassado assim que termina de ser escrito. O nvel de detalhes que deve-se incluir em um documento de requisitos depende do tipo de sistema em desenvolvimento e o processo usado. Os sistemas crticos precisam ter requisitos detalhados, porque a segurana e a proteo devem ser analisadas em detalhes. Naturalmente, a informao includa em um documento de requisitos depende do tipo de software a ser desenvolvido e a abordagem de desenvolvimento que est em uso. Se uma abordagem evolutiva adotada para um produto de software, o documento de requisitos deixar de fora muitos dos captulos detalhados sugeridos. O foco ser sobre a definio de requisitos de usurio e os requisitos no funcionais de alto nvel de sistema. Em uma estrutura de um documento de requisitos deve conter prefcio, introduo, glossrio, definio de requisitos de usurio, arquitetura do sistema, especificao de requisitos do sistema, modelos do sistema, evoluo do sistema, apndices e ndice. Especificao de requisitos o processo de escrever os requisitos de usurio e de sistema em um documento de requisitos. Idealmente, os requisitos de usurio e de sistema devem ser claros, inequvocos, de fcil compreenso, completos e consistentes. Na prtica, isso difcil de conseguir, pois os stakeholder interpretam os requisitos de maneiras diferentes, e, muitas vezes, notam-se conflitos e inconsistncias inerentes aos requisitos. Modelos grficos so mais teis quando voc precisa mostrar como um estado se altera ou quando voc precisa descrever uma sequncia de aes. Diagramas de sequncia e de estado da UML mostram a sequncia de aes que ocorrem em resposta a uma determinada mensagem ou evento. Especificaes matemticas formais so, por vezes, usadas para descrever os requisitos para os sistemas crticos de segurana ou de proteo, mas raramente so usadas em outras circunstncias. Especificao em linguagem natural, desde o inicio da engenharia de software a linguagem natural tem sido usada para escrever os requisitos para o software. expressiva, intuitiva e universal. As formas de escrever uma especificao de requisitos de sistema, por meio de sentenas em linguagem natural onde os requisitos so escritos em frases numeradas em linguagem natural; linguagem natural estruturada, os requisitos so escritos em linguagem natural em um formulrio padro ou template; linguagem de descrio de projeto, essa abordagem usa uma linguagem como programao, mas com caractersticas mais abstratas, para especificar os requisitos, definindo um modelo operacional do sistema; notaes grficas, para definio dos requisitos funcionais para o sistema so usados modelos grficos, suplementados por anotaes de texto, diagramas de caso de uso e de sequncia da UML so comumente usados; especificao matemticas, essa notaes so baseadas em conceitos matemticos, como mquinas de estado finito ou conjuntos. Embora essas especificaes inequvocas possam reduzir ambiguidade de um documento de requisitos, a maioria dos clientes no entende uma especificao formal. Especificaes estruturadas, a linguagem natural estrutura uma forma de escrever os requisitos do sistema na qual a liberdade do escritor dos requisitos limitada e todos os requisitos so escritos em uma forma-padro. Essa abordagem mantm grande parte da expressividade e compreenso da linguagem natural, mas garante certa uniformidade imposta sobre a especificao. Notaes de linguagem estruturada usam templates para especificar os requisitos de sistema. A especificao pode usar construes de linguagem de programao para mostrar alternativas e iterao. Usar as especificaes estruturadas elimina alguns dos problemas de especificao em linguagem natural. Reduz-se a variabilidade na especificao, e os requisitos so organizados de forma mais eficaz. No entanto, algumas vezes ainda difcil escrever os requisitos de forma clara e inequvoca, especialmente quando processamentos complexos devem ser especificados. Processos de engenharia de requisitos, eles podem incluir quatro atividades de alto nvel. Elas visam avaliar se o sistema til para a empresa, descobrindo requisitos, convertendo-os em alguma forma-padro, e verificar se os requisitos realmente definem o sistema que o cliente quer. As atividades so organizadas em torno de uma espiral, como um processo iterativo, sendo a sada um documento de requisitos de sistema. A quantidade de tempo e esforo dedicados a cada atividade em cada iterao depende do estgio do processo como um todo e do tipo de sistema que est sendo desenvolvido. Em praticamente todos os sistemas os requisitos mudam. As pessoas envolvidas desenvolvem uma melhor compreenso do que querem do software, a organizao que compra o sistema tambm muda, modificaes so feitas no hardware, no software e no ambiente organizacional do sistema. O processo de gerenciamento desses requisitos em constante mudana chamado de gerenciamento de requisitos. Elicitao e anlise de requisitos, aps um estudo inicial de viabilidade, prximo estgio do processo de engenharia de requisitos. Nessa atividade, os engenheiros de software trabalham com clientes e usurios finais do sistema para obter informaes sobre o domnio da aplicao, os servios que o sistema deve oferecer, o desempenho do sistema, restries de hardware e assim por diante. A elicitao e anlise de requisitos podem envolver diversos tipos de pessoas em uma organizao. As atividades do processo so a descoberta de requisitos, classificao e organizao de requisitos, priorizao e negociao de requisitos e especificao de requisitos. Descoberta de requisitos, o processo de reunir informaes sobre o sistema requerido e os sistemas existentes e separar dessas informaes os requisitos de usurios e de sistema. Fontes de informao durante a fase de descoberta de requisitos incluem documentao, stakeholders do sistema e especificaes de sistemas similares. Os stakeholders variam desde os usurios finais, passando pelos gerentes do sistema at stakeholders externos, como reguladores, que certificam a aceitabilidade do sistema. Entrevistas formais ou informais com os stakeholders do sistema so parte da maioria dos processos de engenharia de requisitos Nessas, entrevistas a equipe de engenharia de requisitos questiona os stakeholders sobre o sistema que usam no momento e sobre o sistema que ser desenvolvido. Requisitos surgem a partir das respostas a essas perguntas. As entrevistas podem ser fechadas ou entrevistas abertas. Entrevistas so boas para obter uma compreenso global sobre o que os stakeholders fazem, como eles podem interagir com o novo sistema e as dificuldades que eles enfrentam com os sistemas atuais. Informaes recolhidas em entrevistas suplementam outras informaes sobre o sistema, advindas de documentos que descrevem processos de negcios ou sistemas existentes, observaes do usurio etc. Cenrios, as pessoas geralmente acham mais fcil se relacionar com exemplos da vida real do que com descries abstratas. Elas podem compreender e criticar um cenrio de como elas podem interagir com um sistema de software. Engenheiros de requisitos podem usar a informao obtida a partir deste debate para formular os requisitos do sistema atual. Os cenrios podem ser particularmente teis para adicionar detalhes a uma descrio geral de requisitos. Trata-se de descries de exemplos de sesses de interao. Cada cenrio geralmente cobre um pequeno nmero de interaes possveis. Diferentes cenrios so desenvolvidos e oferecem diversos tipos de informao em variados nveis de detalhamento sobre o sistema. Um cenrio comea com um esboo da interao. Durante o processo de elicitao, so adicionados detalhes ao esboo, para criar uma descrio completa dessa interao. Em sua forma mais geral um cenrio pode incluir, uma descrio do que o sistema e os usurios esperam quando o cenrio se iniciar; uma descrio do fluxo normal de eventos do cenrios; uma descrio do que pode dar errado e como isso tratado; informaes sobre outras atividades que podem acontecer ao mesmo tempo; e uma descrio do estado do sistema quando o cenrio acaba. Os cenrios podem ser escritos como texto, suplementados por diagramas, telas etc. Casos de uso so uma tcnica de descoberta de requisitos introduzida inicialmente no mtodo Objectory. Eles j se tornaram caracterstica fundamental da linguagem de modelagem unificada. Em sua forma mais simples, um caso de uso identifica os atores envolvidos em uma interao e d nome ao tipo de interao. Essa , ento, suplementada por informaes adicionais que descrevem a interao com o sistema. A informao adicional pode ser uma descrio textual ou um ou mais modelos grficos, como diagrama de sequncia ou de estados da UML. Os casos de uso so documentados por um diagrama de casos de uso de alto nvel. Os casos de uso identificam as interaes individuais entre o sistema e seus usurios ou outros sistemas. Cada caso de uso deve ser documentado com uma descrio textual. Etnografia, os sistemas no existem isoladamente. Eles so usados em um contexto social e organizacional, e requisitos de software do sistema podem ser derivados ou restringidos desse contexto. Geralmente, satisfazer a esses requisitos sociais e organizacionais crtico para o sucesso do sistema. Uma razo pela qual muitos sistemas de software so entregues, mas nunca so usados, que seus requisitos no levam devidamente em conta a forma como o contexto social e organizacional afeta o funcionamento prtico do sistema. Etnografia uma tcnica de observao que pode ser usada para compreender os processos operacionais e ajudar a extrair os requisitos de apoio para esses processos. Uma analista faz uma imerso no ambiente de trabalho em que o sistema ser usado. O trabalho do dia a dia observado e so feitas anotaes sobre as tarefas reais em que os participantes esto envolvidos. O valor da etnografia que ela ajuda a descobrir requisitos implcitos do sistema que refletem as formas reais com que as pessoas trabalham, em vez de refletir processos formais definidos pela organizao. A etnografia particularmente eficaz para descobrir dois tipos de requisitos, requisitos derivados da maneira como as pessoas realmente trabalham, e no da forma como as definies dos processos dizem que deveriam trabalhar; e requisitos derivados da cooperao e conhecimento das atividades de outras pessoas. A etnografia pode ser combinada com prototipao. A etnografia informa o desenvolvimento do prottipo, para que menos ciclos de refinamento do prottipo sejam necessrios. Validao de requisitos, o processo pelo qual se verifica se os requisitos definem o sistema que o cliente realmente quer. Ela se sobrepe analise, uma vez que est preocupada em encontrar problemas com os requisitos. A validao de requisitos importante porque erros em um documento de requisitos podem gerar altos custos de retrabalho quando descobertos durante o desenvolvimento ou aps o sistema j estar em servio. Durante o processo de validao de requisitos, diferentes tipos de verificao devem ser efetuados com os requisitos no documento de requisitos. Essas verificaes incluem a verificao de validade, de consistncia, de completude, de realismo e a verificabilidade. Existe uma srie de tcnicas de validao de requisitos que podem ser usadas individualmente ou em conjunto como revises de requisitos, prototipao e gerao de casos de teste. Gerenciamento de requisitos, o processo de compreenso e controle das mudanas nos requisitos do sistema. preciso se manter a par das necessidades individuais e manter as ligaes entre as necessidades dependentes para conseguir avaliar o impacto das mudanas nos requisitos. Voc precisa estabelecer um processo formal para fazer propostas de mudanas e a ligao destas s exigncias do sistema. O processo formal de gerenciamento de requisitos deve comear assim que uma verso preliminar do documento de requisitos estiver disponvel. No entanto, deve-se comear a planejar como gerenciar mudanas de requisitos durante o processo de elicitao de requisitos. Planejamento de gerenciamento de requisitos, o primeiro estgio essencial no processo de gerenciamento de requisitos, e determina o nvel de detalhamento requerido no gerenciamento de requisitos. Durante o estgio de gerenciamento de requisitos, deve- se decidir sobre a identificao de requisitos, o processo de gerenciamento de mudanas, sobre polticas de rastreabilidade e ferramenta de apoio. O gerenciamento de requisitos precisa de apoio automatizado, e as ferramentas de software para esse gerenciamento devem ser escolhidas durante a fase de planejamento. Precisa-se de ferramentas de apoio para o armazenamento de requisitos, gerenciamento de mudanas e gerenciamento de rastreabilidade. O gerenciamento de mudana de requisitos, aps a aprovao do documento de requisitos, deve ser aplicado a todas as mudanas propostas aos requisitos de um sistema. O gerenciamento de mudanas essencial, pois necessrio decidir se os benefcios da implementao de novos requisitos justificam os custos de implementao. A vantagem de se usar um processo formal de gerenciamento de mudanas que todas as propostas de mudanas so tratadas de forma consistente, e as alteraes nos documentos de requisitos so feitas de forma controlada. Existem trs estgios principais em um processo de gerenciamento de mudanas, que so a anlise de problema e especificao de mudanas, a anlise de mudanas e custos, e a implementao de mudanas. Processos geis de desenvolvimento como Extreme Programming, foram concebidos para lidar com requisitos mutveis durante o processo de desenvolvimento. Nesses processos, quando um usurio prope uma mudana nos requisitos, a mudana no passa por um processo formal de gerenciamento de mudanas. Pelo contrrio, o usurio tem de priorizar essa mudana e, em caso de alta prioridade, decidir quais recursos do sistema planejados para a prxima iterao devem ser abandonados.