Na Engenharia de Software, temos uma especialidade que a Engenharia de Requisitos, sendo um de seus objetivos melhorar a modelagem de sistemas, possibilitando maior entendimento de suas caractersticas antes da implementao. Portanto, nesta aula abordaremos conceitos e tcnicas aplicados a estes requisitos. Caro aluno, nesta Web aula abordaremos assuntos relacionados ao tema Engenharia de Software, onde iremos explorar os Processos de Engenharia de Requisitos com suas principais caractersticas e funcionalidades. Darei algumas sugestes de leituras e vdeos para que possamos explorar mais a fundo o tema tratado.
Conceitos de Requisitos
Antes do assunto direto, vamos assistir algumas curiosidades em relao Evoluo do Computador por meio dos links:
Histria do computador em minutos Vdeo A interface Homem-computador
Vdeo O motivo pelo qual apresentamos as visualizaes por meio dos vdeos para identificar a importncia e a agilidade das inovaes no meio computacional. Dessa forma, podemos ter noo de alguns aspectos que destacam a necessidade do entendimento dos princpios de engenharia, para que possamos ter softwares que sejam eficientes e confiveis. Agora, voltamos para o assunto em destaque desta web aula, que so os Processos de Engenharia de Requisitos. Esses processos so utilizados para descobrir, analisar e validar os requisitos dos sistemas. Suas principais atividades so: Estudo de viabilidade; Elicitao (levantamento) e anlise de requisitos; Especificao e documentao de requisitos; Validao de requisitos.
Processo de Engenharia de Requisitos
Para aprofundar o seu conhecimento: Assista ao vdeo: Engenharia de Requisitos VIDEO Estudo de viabilidade O estudo de viabilidade consiste num estudo preliminar de requisitos de negcios, no qual decidido se vale a pena desenvolver o sistema proposto. Um estudo breve verifica se: sistema contribui para os objetivos da organizao; sistema pode ser implementado com a tecnologia atual e dentro do oramento; sistema pode ser integrado com outros sistemas em operao. (SOMMERVILLE, 2007, p. 97).
Implementao do estudo de viabilidade A realizao do estudo de viabilidade envolve a avaliao de informaes, coleta de dados e a elaborao de um relatrio. Para auxiliar na implementao, alguns questionamentos podem ser levantados s pessoas na organizao, tais como: - O que aconteceria se o sistema no fosse implementado? - Quais so os problemas com os processos atuais? - Como o sistema proposto ir ajudar? - Pode haver troca de informaes entre outros sistemas e o sistema proposto? - Ser necessrio nova tecnologia? Quais habilidades? - O que precisa e o que no precisa ser compatvel com o sistema? Durante esta fase, podemos consultar os engenheiros de software, especialistas em tecnologia e os usurios finais para coletarmos as informaes. Geralmente, leva-se de 02 (duas) a 03 (trs) semanas para concluir as atividades.
Elicitao e anlise de requisitos Nesta atividade, os engenheiros trabalham em conjunto com os usurios finais do sistema com o intuito de entender o domnio da aplicao. Para tal, envolvem-se vrias pessoas da organizao, que so denominadas stakeholders. Os membros da equipe tcnica trabalham com o cliente e os usurios para descobrir mais informaes sobre o domnio da aplicao, servios do novo sistema, desempenho e as restries operacionais. O termo Stakeholder aplicado a qualquer pessoa que ter influncia direta ou indireta sobre os requisitos do sistema, podendo ser usurios finais, pessoal de uma organizao que venha a ser afetado pelo sistema, engenheiros envolvidos no desenvolvimento ou manuteno do sistema (e/ou outros sistemas relacionados), gerentes de negcios, especialistas no domnio da aplicao e at representantes de sindicatos. roblemas com a anlise de requisitos Durante o processo de elicitao e anlise dos requisitos, encontramos alguns problemas para realizar a atividade, pois: - Pessoas diferentes podem ter requisitos conflitantes; - Pessoas expressam os requisitos usando termos prprios; - Fatores polticos podem influenciar os requisitos do sistema; - Os requisitos se alteram durante o processo de anlise, pois o ambiente econmico e de negcios dinmico.
Processo de elicitao e anlise de requisitos Podemos verificar que cada organizao ter a sua prpria verso de um modelo para a obteno e anlise de requisitos, dependendo de fatores locais, nvel de conhecimento da equipe, tipos do sistema a ser desenvolvido e os padres dos usurios. As atividades do processo so: - Obteno de requisitos um processo que visa coletar requisitos, em que os requisitos de domnio tambm so descobertos durante esta atividade. - Classificao e organizao de requisitos envolve a coleta de requisitos no estruturados, agrupando-os e organizando-os em conjuntos coerentes. - Priorizao e negociao de requisitos atividade relacionada priorizao de requisitos, devido a requisitos conflitantes (quando h vrios stakeholders atuando), procura e resoluo de conflitos por meio de negociaes. - Documentao de requisitos so documentados e colocados na prxima volta da espiral, podendo ser produzidos documentos de requisitos formais ou informais.
Especificao e documentao de requisitos A especificao de requisitos uma etapa essencial do processo de desenvolvimento de software, que compreende uma definio completa do comportamento externo de software do sistema ou parte do sistema.
Requisitos do usurio So declaraes, em linguagem natural e diagramas, sobre os servios que o sistema oferece e as restries para a sua operao. So escritos para os clientes.
Requisitos do sistema Estabelecem detalhadamente as funes e restries do sistema. O documento de requisitos, chamado de especificao funcional, pode servir como um contrato entre cliente e desenvolvedor.
Especificao de software Trata-se de uma especificao abstrata e precisa do software, indicando o que ele deve fazer (sem dizer como), que serve de base para o design e implementao. Ela acrescenta mais detalhes especificao funcional e escrita para a equipe de desenvolvimento. Ao descrever os requisitos, necessitamos nos atentar s seguintes situaes, pois: A especificao dos requisitos deve ser completa (deve descrever tudo o que necessrio), consistente (no deve haver conflitos e contradies) e no ambgua (no deve levar a interpretaes diferentes por desenvolvedores e usurios). difcil de ser atingida, considerando que existem diferentes tipos de requisitos envolvidos. Depende da preciso da linguagem utilizada, visto que a linguagem natural, informal, mais apropriada para os requisitos do usurio e do sistema, j as linguagens grficas, semiformais, so apropriadas para os requisitos do sistema e do software, e as linguagens formais so mais apropriadas para uma especificao formal de software em mtodos formais. Os requisitos de software so frequentemente classificados como requisitos funcionais e no-funcionais:
Requisitos funcionais So declaraes de servios que o sistema deve fornecer, como ele deve reagir a entradas especficas e como o sistema deve se comportar em determinadas situaes, sendo que, em muitas vezes, tambm podem explicar como o sistema deve ou no fazer. Exemplo: "o software deve possibilitar o clculo dos gastos dirios, semanais, mensais e anuais com pessoal". "o software deve emitir relatrios de compras a cada quinze dias". "os usurios devem poder obter o nmero de aprovaes, reprovaes e trancamentos em todas as disciplinas por um determinado perodo de tempo".
Requisitos no-funcionais So restries aos servios ou funes oferecidas pelo sistema, que incluem restries de tempo, no processo de desenvolvimento e tambm restries impostas por normas/leis. Os requisitos no- funcionais, muitas vezes, aplicam-se ao sistema como um todo. So exemplos de requisitos no-funcionais: "a base de dados deve ser protegida para acesso apenas de usurios autorizados". "o tempo de resposta do sistema no deve ultrapassar 30 segundos". "o software deve ser operacionalizado no sistema Linux" "o tempo de desenvolvimento no deve ultrapassar seis meses". Validao de requisitos o processo pelo qual se verifica se os requisitos elicitados definem o sistema que o cliente realmente quer. A validao tambm importante, uma vez que o custo para remover erros de requisitos grande, quando descobertos tardiamente. Durante o processo de validao de requisitos, diferentes tipos de verificao devem ser efetuados no documento de requisitos. Essas verificaes incluem: 1. Validade - O sistema fornece as funes que melhor atendem as necessidades de todos os usurios? 2. Consistncia - Existem conflitos de requisitos? 3. Completeza - Todas as funes necessrias foram includas? 4. Realismo - Os requisitos podem ser implementados com a tecnologia e oramento disponveis? 5. Verificabilidade - Os requisitos podem ser checados?
Uma srie de tcnicas de validao podem ser utilizadas individualmente ou em conjunto, tais como: 1. Revises de requisitos - feita uma anlise manual sistemtica dos requisitos; 2. Prototipao - um modelo executvel do sistema demonstrado para os usurios finais para checar os requisitos; 3. Gerao de casos de teste - os requisitos devem ser testveis, para tal, devem-se desenvolver testes para os requisitos a fim de verificar a testabilidade. WEBAULA 2 Unidade 2 Gerenciamento de Requisitos
O gerenciamento de requisitos o processo de controlar as mudanas nos requisitos durante o processo de engenharia de requisitos e desenvolvimento. Torna-se necessrio manter o acompanhamento dos requisitos individuais e manter as ligaes entre os requisitos dependentes, de modo que seja possvel avaliar os impactos das mudanas de requisitos. Considerando que os requisitos so inevitavelmente incompletos e inconsistentes, novos requisitos surgem durante o processo de desenvolvimento e os diferentes pontos de vista que esses requisitos possuem frequentemente so contraditrios. Existem vrias razes pelas quais as mudanas so inevitveis, dentre elas destacam-se: A prioridade dos requisitos de diferentes pontos de vista se modificam; As pessoas que pagam pelo sistema podem especificar os requisitos de maneira conflitante com os requisitos das pessoas que iro utilizar o sistema; A empresa e o ambiente tcnico do sistema se modificam durante o seu desenvolvimento.
Evoluo dos requisitos Do ponto de vista da evoluo, os requisitos dividem-se em duas classes:
Requisitos permanentes So requisitos estveis, derivados da atividade principal da organizao. Ex. Em um hospital, sempre haver requisitos relativos aos pacientes, aos mdicos, s enfermeiras a aos tratamentos. Requisitos volteis So requisitos que se modificam durante o desenvolvimento ou quando o sistema est em uso. Requisitos resultantes de polticas governamentais. Ex.: planos de assistncia mdica. Os requisitos volteis podem ser classificados em: Requisitos mutveis - Requisitos que se modificam por causa do ambiente do sistema que est operando. Requisitos emergentes - Requisitos que surgem medida que a compreenso do sistema pelo cliente progride durante o desenvolvimento do sistema. Requisitos consequentes - Requisitos que resultam da introduo do sistema de computador, onde podem ser criadas novas formas de trabalho, que geram novos requisitos de sistema. Requisitos de compatibilidade - Requisitos que dependem de outros sistemas ou processos de negcio especficos dentro da organizao.
Gerenciamento de mudanas de requisitos A figura abaixo mostra o processo de gerenciamento de requisitos, o qual deve ser aplicado a todas as mudanas propostas aos requisitos. A vantagem de se usar um mtodo formal para gerenciar as mudanas est no fato de que as propostas so tratadas consistentemente e a documentao dos requisitos feita de maneira controlada.
Existem trs estgios no processo de gerenciamento de mudanas, que so: Anlise do problema e especificao da mudana. Discutem-se os problemas com os requisitos e propem-se mudanas. Anlise e custo da mudana. Avaliam-se os efeitos da mudana em outros requisitos do sistema. Implementao das mudanas. O documento de requisitos e outros documentos so alterados de forma a refletir as mudanas.
Tcnicas de Requisitos A seguir apresentaremos algumas tcnicas para o levantamento e anlise de requisitos: Levantamento baseado em pontos de vista; Entrevistas; Cenrios de utilizao do sistema; Etnografia (anlise do ambiente de trabalho dos usurios).
Levantamento baseado em pontos de vista As abordagens baseadas em pontos de vista tm como ponto forte o reconhecimento de vrias perspectivas, fornecendo um framework para descobrir conflitos nos requisitos propostos por diferentes stakeholders. Sistemas mdios e grandes possuem diferentes tipos de usurios finais: Pessoas envolvidas com o sistema possuem diferentes interesses e pontos de vista a respeito do sistema; A anlise desta multiperspectiva importante para se descobrir e esclarecer os requisitos conflitantes propostos por diferentes usurios.
Entrevistas Fazem parte da maioria dos processos de engenharia de requisitos. Nestas entrevistas, a equipe de engenheiros formula questes para os stakeholders sobre o sistema a ser desenvolvido. As entrevistas podem ser abertas, em que o stakeholder responde um conjunto de perguntas predefinidas, ou fechadas, nas quais no h um roteiro definido, onde o engenheiro explora vrios assuntos com os stakeholders no sistema, desenvolvendo assim uma maior compreenso das suas necessidades. As entrevistas so teis para se obter um entendimento geral sobre o que os stakeholders fazem, como eles podem interagir com o sistema e as dificuldades que enfrentam com o sistema atual, porm no so eficientes para elicitao de conhecimento sobre os requisitos e suas restries.
Cenrios de utilizao do sistema Geralmente, as pessoas consideram mais simples relatar exemplos da vida real a que abstrair descries, desta forma, os cenrios podem ser descritos e criticados por eles como uma forma de interao com o sistema de software. Os cenrios so teis para adicionar detalhes a um esboo da descrio de requisitos, onde cada cenrio abrange uma ou mais interaes possveis. Assim sendo, diversos cenrios foram desenvolvidos, cada um dos quais fornecendo diferentes tipos de informaes sobre o sistema em diversos nveis de detalhamento. Descries de cenrios incluem: Estado do sistema no incio do cenrio; Fluxo normal de eventos no cenrio; O que pode sair errado e como lidar com isso; Outras atividades concorrentes; Estado do sistema no final do cenrio.
Etnografia (anlise do ambiente de trabalho dos usurios) uma tcnica de observao que pode ser usada na compreenso dos requisitos sociais e organizacionais, na qual um analista se insere no ambiente de trabalho onde o sistema ser usado, observa o trabalho do dia a dia e anota as tarefas reais nas quais os participantes esto envolvidos. Denota-se o valor desta tcnica na ajuda prestada aos analistas para se descobrir os requisitos implcitos de sistemas que refletem os processos reais, e no os formais no qual as pessoas esto envolvidas. A etnografia particularmente eficaz para descobrir: Requisitos derivados da maneira como as pessoas realmente trabalham, ao invs da maneira pela qual as definies de processo dizem o que deveria fazer. Requisitos derivados da cooperao e do conhecimento das atividades de outras pessoas. A etnografia pode e deve ser combinada com a prototipao, pois informa o desenvolvimento do prottipo de tal forma que poucos ciclos de refinamento sejam necessrios. Uma vantagem da etnografia que ela pode revelar detalhes importantes do processo, que frequentemente so ignorados por outras tcnicas, porm, no apropriada para obter os requisitos organizacionais e de domnio. Assim sendo, a etnografia no uma abordagem completa para a elicitao de requisitos, ento devendo ser usada como complemento de outras abordagens como, por exemplo, a de cenrios.
BOAVENTURA, Ins A. G. O processo de engenharia de requisitos. So Paulo: UNESP, 2006. Disponvel em:. Acesso em: ago. 2013. SOMMERVILLE, Ian. Engenharia de software. 8. ed. So Paulo: Pearson, 2007. 552p. SOMMERVILLE, Ian. Engenharia de software. 9. ed. So Paulo: Pearson, 2011. 529p.