Escolar Documentos
Profissional Documentos
Cultura Documentos
A05 2 Artigo14647
A05 2 Artigo14647
Mtodo para Definio de Requisitos de Software de um Sistema a Partir das Necessidades dos seus Stakeholders
Ana Lcia de Sousa Sampaio1, Francisco Formoso Primo1, Wagner Roberto De Martino1
1
Centro de Pesquisas Renato Archer CenPRA Rodovia D. Pedro I - SP 65 - Km 143,6 13069-901 Campinas SP Brasil
Resumo. Este artigo descreve um mtodo de definio de requisitos de software de um sistema a partir das necessidades dos seus stakeholders. Abrange as atividades iniciais de Engenharia de Requisitos: a captura, a anlise e o registro dos requisitos. So descritos procedimentos que possibilitam desde a captura das necessidades dos stakeholders at o registro dos requisitos de uma forma segura e eficiente que permite a sua manuteno e controle. O registro permite o rastreamento bidirecional desde os stakeholders e suas necessidades at os respectivos requisitos. O mtodo descrito serve de base para um prottipo de aplicao sendo implantado no DMPS/CenPRA pelo grupo de requisitos.
1. Introduo
Embora a Engenharia de Software venha afirmando sistematicamente a necessidade da especificao de requisitos, comum, nos atuais ambientes de desenvolvimento de software, que ela ainda seja realizada de maneira informal e artesanal. Quando finalmente o produto fica pronto, no h registro das necessidades que o geraram e, na melhor da hipteses, os requisitos esto documentados. Decorrente deste fato, qualquer validao do produto ser feita sobre os requisitos e no sobre as necessidades que motivaram o seu desenvolvimento. Os motivos de tal comportamento podem ser o imediatismo por resultados, a reduo de custos e a busca de uma suposta flexibilidade no desenvolvimento. Tudo isso resulta, ao contrrio do esperado, em projetos que estouram em prazos e recursos; produtos que no satisfazem as necessidades de seus clientes e que so de difcil manuteno e evoluo. Uma dificuldade que se apresenta sempre aos desenvolvedores de sistemas de software que o entendimento claro de um problema normalmente surge apenas durante a sua resoluo. Raros so os problemas que podem ser perfeitamente entendidos antes de comearem a ser resolvidos. Todos os envolvidos no desenvolvimento precisam estar conscientes da existncia dos dois domnios:
domnio do problema onde situam-se o negcio e todos os nele interessados, isto , os stakeholders que possuem aspiraes e expectativas que gostariam de ver satisfeitas pela explorao do negcio s quais denominaremos necessidades; domnio da soluo onde um sistema definido com a finalidade de tornar operacional e de facilitar a implantao do negcio. O sistema deve fornecer um ou mais servios que enderece cada necessidade, as features. Cada feature, por sua vez, para ser efetivada demanda um conjunto de recursos, qualidades e restries aos quais denominaremos requisitos. Convm ressaltar que a fronteira entre os dois domnios nem sempre muito ntida e exige, durante a definio dos requisitos, que os envolvidos na tarefa distingam entre os dois domnios e saibam em qual se est trabalhando. Nos prximos itens, apresenta-se um mtodo para a definio de requisitos de software de um sistema a partir das necessidades dos seus stakeholders. So descritos tambm, procedimentos e instrumentos destinados a operacionalizar o mtodo de captura, anlise e registro dos requisitos e as respectivas origens, bem como suas caractersticas mais relevantes, que propiciem recursos necessrios para a implantao de uma efetiva gerncia de requisitos.
2. Motivao
Este trabalho busca caracterizar melhor os domnios envolvidos no desenvolvimento de um sistema de software e possibilitar que qualquer soluo encontrada possa ser validada na sua origem. So fornecidos subsdios para quebrar o paradigma validao sobre os requisitos especificados e baseia-se no princpio de que os sistemas devem ser construdos a partir de uma definio rigorosa dos seus objetivos e que leve em considerao as expectativas de todos os interessados na sua construo. Todos os mtodos de definio de requisitos levam em considerao as necessidades que devem ser atendidas pelo sistema. Ento, onde reside a diferena que justifique mais um no conjunto de mtodos? Nos mtodos atuais os requisitos de software evoluem durante o seu desenvolvimento, mas o conjunto de necessidades que os originaram permanece esttica; desconsidera-se o fato de que necessidades novas podem surgir, algumas podem desaparecer e muitas provavelmente devero ser ajustadas, corrigidas ou melhoradas para continuarem existindo. No antigo paradigma, as necessidades so tratadas informalmente, no evoluem aps estar pronta a especificao dos requisitos. Isso torna o produto cada vez mais distante das necessidades que o originaram. Mantendo o registro das necessidades e permitindo a sua atualizao temos, como reflexo, uma melhor qualidade e um prolongamento na vida til do produto. claro que isso tem seu preo: h um aumento na complexidade no desenvolvimento do projeto pois mais informaes precisam ser controladas. Acreditamos que a qualidade adicionada ao produto final e a satisfao dos stakeholders compense o custo adicional.
Embora o presente mtodo no tenha nenhuma restrio de aplicabilidade, ele foi concebido tendo em vista sua aplicao em organizaes de desenvolvimento de software de pequeno e mdio porte. Tal preferncia se justifica pela grande carncia que pode ser observada nessas organizaes e pela misso do Centro de Pesquisas Renato Archer - CenPRA em atend-las j que as grandes organizaes em geral j possuem polticas e recursos para tanto.
Na etapa 1 determinam-se quais so os grupos funcionais de stakeholders (gerentes, desenvolvedores, patrocinadores, agentes reguladores, usurios,...), definem-se a populao de cada grupo e respectivos representantes. Na etapa 2 feita a captura das necessidades dos stakeholders e, para cada necessidade, determinado um conjunto de features e para cada feature os requisitos necessrios ao seu atendimento. 3. Definio dos Stakeholders A sistemtica para a definio de stakeholders baseada no modelo proposto por Ian Alexander [1] e detalhada nas sees seguintes. 3.1. Modelagem dos stakeholders e Sistemtica de Aplicao Na modelagem escolhida, como ponto de partida necessrio estabelecer a estrutura do conjunto dos provveis stakeholders e, em seguida, definir como esse conjunto ser preenchido. A estrutura de stakeholders adotada conhecida como diagrama da cebola e esquematizada na Figura 1.
Todo o Ambiente (principalmente social)
Beneficirio Financeiro
(tcnico)
Legislador
Consultor Comprador
Suporte Operacional
Desenvolvedor
Figura 1 Organizao dos Stakeholders (Diagrama da Cebola) O diagrama constitudo por quatro crculos concntricos nos quais situam-se diversas classes de stakeholders, ou slots, simbolizados pela figura e o respectivo nome da classe representada. As classes so dispostas nos crculos de forma que nos mais externos estaro aquelas mais envolvidas com aspectos do negcio. Caminhando-se no sentido do centro sero encontradas classes cada vez mais envolvidas com o sistema que implementa a soluo. nos slots que sero alocadas pessoas que iro desempenhar os papis relevantes na definio dos requisitos. A organizao dos stakeholders, utilizando o diagrama da cebola, genrica e precisa ser adaptada dependendo do problema sendo abordado, de aspectos organizacionais e culturais do seu ambiente. Estabelecida esta organizao, necessrio escolher quais os
slots relevantes, popul-los e definir representantes para cada um deles. Alm disso, tambm necessrio definir a relevncia da opinio de cada slot quando da tomada de decises, atravs da atribuio de pesos a cada um deles. Esses assuntos devero ser tratados durante os primeiros contatos envolvendo os proponentes do produto e os especialistas responsveis pela definio dos requisitos.
Beneficirio Financeiro
Outros Sistemas
Proponente
Beneficirio Poltico Beneficirio Funcional Operador Normal
SW + HW
Legislador
Instrumentos
Especialistas de Requisitos
Consultor
Operador Manuteno
Stakeholder Negativo
Desenvolvedor
Figura 2 Definio da organizao de stakeholders A Figura 2 exemplifica a definio da organizao dos stakeholders: levando em considerao o domnio do negcio, aspectos organizacionais, ambientais e o contexto vislumbrado para o sistema. Os especialistas de requisitos em conjunto com os representantes do slot que contm o papel do proponente do sistema devero escolher, popular, definir e registrar representantes para os demais slots. O processo acima esboado poder resultar em um ou mais slots vazios, o que significa que, para o desenvolvimento do projeto em questo, os papis que seriam contidos naqueles slots foram considerados irrelevantes. Na figura 2 temos: simboliza um slot considerado relevante na definio dos requisitos e simboliza slot considerado irrelevante e que portanto no ser populado. , tambm, nesta reunio inicial que, dependendo do tipo de organizao, nmero e diversidade de stakeholders envolvidos, so definidos os instrumentos a serem utilizados no processo, tanto para a captura de necessidades como para a definio de features e requisitos. 3.2 Estabelecimento de necessidades, features e requisitos As necessidades, features e requisitos so definidos incremental e iterativamente medida que novos elementos vo sendo agregados e os elementos existentes
aprimorados. Esta etapa, para melhor entendimento, dividida em quatro fases que so descritas nas sees seguintes. A Figura 3 ilustra o processo de captura das necessidades dos stakeholders e a partir delas o estabelecimento do conjunto de features e requisitos..
Features
ESCOLHA DE FEATURES Anlise em conjunto com Stakeholders donos da Necessidade DEFINIO DE REQUISITOS Anlise em conjunto com Stakeholders e Especialistas
Problema
Escopo
Requisitos
Necessidades
Figura 3: Processo de definio de Necessidades, features e requisitos A volta mais interna da espiral representa a primeira compreenso do conjunto das necessidades at a definio dos requisitos que as endeream. As demais voltas representam aperfeioamentos sobre os resultados anteriores. Devido a um melhor entendimento do problema, novos elementos podem surgir, alguns podem desaparecer ou serem modificados at que se chegue a um resultado julgado necessrio e suficiente para iniciar o desenvolvimento propriamente dito. Conforme sugere a figura o processo iterativo e constitudo por quatro fases, cada uma representada por um quadrante. No quadrante 1, LEVANTAMENTO DAS NECESSIDADES, parte-se do conjunto anterior de necessidades e atravs de procedimentos e instrumentos especficos envolvendo especialistas de requisitos e representantes dos slots vo sendo colhidas e incorporadas as necessidades. Quando todos os slots forem considerados os especialistas estaro de posse de um conjunto de necessidades dos slots e tal conjunto ter redundncias e incongruncias minimizadas. O quadrante 2, NEGOCIAO, representa uma negociao em que as necessidades apuradas anteriormente so submetidas apreciao de uma plenria cujos participantes tm poder de deciso. Tal plenria tem como objetivo a definio do escopo do projeto, ou seja, definir quais as necessidades que devero ser atendidas por ele. Esse conjunto de necessidades servir como base para a definio dos requisitos. As necessidades
recusadas sero mantidas no sistema a ttulo de histrico no sendo mais objeto de anlise do projeto. No quadrante 3, ESCOLHA DE FEATURES, cada necessidade constante do escopo do projeto objeto de anlise com o objetivo de definir pelo menos uma feature do futuro sistema que a atenda. Podem existir diversas features alocadas a uma necessidade mas nenhuma necessidade pode ficar sem uma feature alocada. Essa parte do processo executada por especialistas que, com o auxlio dos stakeholders que deram origem s necessidades, buscam uma soluo adequada ela. O resultado um conjunto de features em que cada uma descrita na forma de caso de uso com um nvel alto de abstrao. No ltimo quadrante, DEFINIO DE REQUISITOS, as features so trabalhadas no sentido de se chegar a um conjunto de recursos ou requisitos que as suporte. Tal tarefa deve ser comandada pelos especialistas de requisitos auxiliados por stakeholders tcnicos e especialistas. O resultado um conjunto dos requisitos do projeto descritos na forma de casos de uso com um nvel de detalhes que permita o seu entendimento por qualquer interessado. Note-se que o processo inicia-se com a proposta do problema pelos interessados no desenvolvimento do sistema. Na primeira volta da espiral, a mais interna, obtida a maioria das necessidades, features e requisitos. As voltas adicionais da espiral sugerem que os conjuntos de necessidades, features e requisitos podem sempre ser alterados seja para modificao, incorporao ou remoo de elementos.
3.2.1 Captura das necessidades, negociao e definio de escopo O processo de captura de necessidades realizado mediante a aplicao de instrumentos de captura, anlise, definio e registro de elementos capturados envolvendo representantes de todos os slots. Inicia-se pelo slot do proponente e propaga-se pelos demais no sentido do exterior para o interior no diagrama da cebola. Na abordagem de cada novo slot os especialistas envolvidos devero se utilizar dos registros obtidos anteriormente. A figura 4 ilustra o processo.
N1 N2 Ni Ni+1
SW + HW
I+1
Nn
- Entrevista ANALISTA-i- simoREPRESENTANTE Tratamento de Redundncias/ Confitos - Reuino Geral do Slot
Necessidades
Escopo
1 2 Deciso Final para definio de ESCOPO + Registro Registro deFeatures e Requisitos Sugeridos
Figura 4: Captura e Registro de Necessidades As necessidades so coletadas pelo especialista de requisitos que utiliza como fonte de informao os representantes de cada classe de stakeholders. Caso seja capturado um requisito ao invs de uma necessidade, cabe ao especialista trabalhar junto ao fornecedor do requisito no sentido de extrair as necessidades subjacentes a ele. Todas as necessidades obtidas, direta ou indiretamente, so registradas juntamente com os seus respectivos proprietrios. No caso das necessidades obtidas indiretamente so registrados, parte, as features e os requisitos a elas relacionados. Desta forma a tabela de features e requisitos pode e deve servir de referncia na definio dos requisitos. As necessidades so coletadas slot a slot. Quando o especialista de requisitos aborda um novo slot para a coleta ele leva de bagagem as necessidades at ento coletadas. Uma vez realizada a captura em um slot, se houver controvrsias entre os membros do slot, promove-se uma negociao das necessidades obtidas fazendo-se os ajustes que forem necessrios e dando incio a um novo ciclo de captura. Isso caracteriza a face
incremental do processo e deve-se ressaltar aqui que cabe ao especialista o cuidado de minimizar redundncias e conflitos que possam aparecer. No final dessa etapa o especialista ter disponvel o conjunto total das necessidades coletadas, minimizados as redundncias e conflitos. Tal conjunto constitui a base para negociao do escopo do projeto. O conjunto de necessidades apurado submetido apreciao daqueles stakeholders aos quais anteriormente foi delegada a responsabilidade de deciso. A partir de pareceres emitidos por essas pessoas e de um processo de negociao definido o escopo do projeto que constitui o conjunto daquelas necessidades que devero ser endereadas por ele. 3.2.2 Estabelecimento de Features e Requisitos O escopo do projeto e o conjunto de requisitos sugeridos nas fases anteriores constituem as entradas para esta fase. Dela participam os especialistas de requisitos, os stakeholders especialistas no assunto sendo focalizado e os proprietrios das necessidades, isto , os stakeholders nos quais as necessidades tm a sua origem. O processo ilustrado na Figura 5.
Necessidades Features
3
R1 F1 F2
1 N2 N2 N3
R2 R3 R4 R5 R6 R7 R8 R9
5
N1
F3 F4 F5 F6
Escopo
N2 N2
F7 Fi Fn
2 4
3 4
5 6
Cada uma das necessidades do escopo considerada com o objetivo de se estabelecer um conjunto de features para atend-la x. Pelo menos uma feature precisa ser estabelecida para cada necessidade. Para auxiliar nessa tarefa devem-se considerar as features coletadas durante a captura das necessidades y. Tais features podem ser reutilizadas parcial ou integralmente se isso for julgado conveniente. No caso de necessidades que no tenham features sugeridas ser necessrio que se criem novas ou se reutilize alguma que j tenha sido definida. Assim que forem definidas, todas as features devero ser registradas z na forma de casos de uso com nvel pequeno de detalhes bem como informaes sobre o seu estado e seus relacionamentos com as necessidades de origem e com os requisitos a ela alocados. A definio dos requisitos feita com um processo semelhante da features: para cada uma das features determinado o conjunto de requisitos funcionais e no funcionais necessrios sua realizao|. O conjunto de requisitos coletados na captura das necessidades de grande valia nessa tarefa pois o reuso total ou parcial de requisitos sugeridos pode agilizar essa etapa{. Os requisitos que forem definidos sero registrados como casos de uso detalhados juntamente com as respectivas informaes de estado e relacionamentos}. O registro dos relacionamentos dos requisitos permitem o seu rastreamento, isto , determinar as suas origens e o que pode ser afetado em caso de uma modificao futura. As features e requisitos sugeridos durante a captura de necessidades devero ser mantidos pelo sistema a ttulo de histrico, mesmo os que no foram reaproveitados pois existe sempre a possibilidade que venha a s-lo numa prxima iterao. 4. Instrumentos de Captura e Anlise Durante o processo de definio de requisitos de um sistema diversos so os instrumentos que podem ser empregados. A escolha desses instrumentos dever ser realizada caso a caso, dependendo da estrutura organizacional, de aspectos culturais, das disponibilidades e das convenincias dos proponentes do produto. Como principais exemplos de instrumentos podemos citar: Entrevistas realizadas por especialistas de requisitos com os stakeholders do negcio sendo abordado, sejam individuais ou em grupo; Questionrios formulados por especialistas de requisitos que devero ser respondidos pelos stakeholders do negcio: proponentes, beneficirios, futuros usurios, especialistas, etc; Sesses de brainstorming envolvendo especialistas do domnio do problema e do domnio da soluo; Prototipao de partes do sistema sendo proposto; Instrumentos de Auxlio Anlise tais como tabelas, checklists, etc. E outros tipos de instrumentos que estejam disponveis ou sejam convenientes.
importante frisar tambm que a opo por um ou mais instrumentos pode ser determinada por ferramentas utilizadas para a definio dos requisitos. 5. Infra-estrutura de Registro e Recuperao de Dados Na implantao de qualquer mtodo deve-se sempre garantir que o ele seja factvel e o mais eficiente possvel. Visando tais objetivos no mtodo proposto vital a realizao de registros de dados em meio no voltil, seguro e de fcil recuperao. Outro fator a ser levado em conta o rastreamento dos dados. As necessidades, por exemplo, precisaro ser rastreadas nas suas origens, os stakeholders proprietrios, e tambm nas features e requisitos decorrentes. Isso devido volubilidade da necessidade, ela passvel de ser modificada no tempo e tais modificaes podem ter efeitos colaterais no conjunto. As necessidades sero registradas na forma textual descritiva, as features e requisitos sero registrados na forma de caso de uso, conforme templates predefinidos. Para cada um desses elementos, no seu registro, devero constar informaes adicionais que possibilitem o seu rastreamento e seus atributos tais como estabilidade, estado de implementao, etc. O formato e meios de tais registros dever ser definido caso a caso.
6. Concluso
Neste trabalho foi apresentado um mtodo de definio de requisitos utilizando as necessidades para a deduo dos requisitos e enfatizando a importncia de sua captura e registro. Tal abordagem possibilita que o produto final possa ser validado no apenas nos requisitos utilizados no seu projeto mas, principalmente nas necessidades dos stakeholders. Registrando todas as necessidades, mesmo as que forem consideradas fora do escopo do projeto, por estratgia ou falta de recursos, tais necessidades podero numa verso futura ser agregadas ao produto. Alm disso, o conjunto das necessidades do escopo pode evoluir atravs de incluses, excluses ou modificaes nas necessidades.
8. Referncias
Alexander, I. F. A Taxonomy of Stakeholders, htpp://easynet.co.uk/~iany/consultancy/stakholder_taxonmy
Leffingwell, D. Features, Use Cases, Requirements, Oh My!, Rational the edevelopment company Kotonya, G. e Sommerville, I. Requirements Engineering, John Wiley & Sons ltd., 1998 Davis, A. Software Requirements: Objects, Functions, and States, Prentice Hall, 1993 Reed Jr, P.R. Developing Application with JAVA and UML, Addison-Wesley, 2002 Cockburn, A. Escrevendo Casos de Uso Eficazes, Bookman, 2005
Mtodo para Definio de Requisitos de Software de um Sistema a Partir das Necessidades dos seus Stakeholders
Ana Lcia Sampaio Francisco Formoso Primo Wagner Roberto De Martino DMPS/CenPRA So Paulo - Novembro 2005
Motivao
Relevncia do assunto Especificao de Requisitos dentro do processo de desenvolvimento de Sw Trabalho desenvolvido junto a uma empresa desenvolvedora de Sw que tem como caractersticas: Um produto que o seu carro chefe e que no possui especificao de seus requisitos; Equipe pequena de desenvolvimento; Produto precisa evoluir continuamente pois tem vrios clientes potenciais com necessidades diversas. Necessidade de um mtodo que levasse em considerao a natureza dinmica dos requisitos, principalmente no que diz respeito s necessidades e que pudesse ser utilizado por empresas desenvolvedoras de Sw em geral
SIMPROS 2005 3
SIMPROS 2005
SIMPROS 2005
Domnio da Soluo
Hardware
Pessoas Necessidades
Stakeholders
Software
Mundo Real
SISTEMA
6
SIMPROS 2005
Especificao
Captura e Anlise
Stakeholders
R2 Rx Ry
Requisitos Especificao de Requisitos
Necessidades
SIMPROS 2005
Negociao
Projeto
Elicitao de Requisitos
Contrato
SIMPROS 2005 8
Release 1
Release 2
Release 3
Referncia
Elicitao Anlise Verificao Gerncia Requisitos Especificao Especificao Elicitao Anlise Verificao Gerncia Requisitos Elicitao Anlise Verificao Gerncia Requisitos Especificao
Referncia
SIMPROS 2005
Definir as Features
Stakeholders
Necessidades
Features
Requisitos
SIMPROS 2005
11
Comunicaes
Dinheiro Associaes
Negcio
Conhecimento Servios
Especialistas Requisitos
Tecnologias Pessoas
Stakeholders
SIMPROS 2005
12
Contato inicial normalmente ir indicar pessoas, seus papis e interesses Cada stakeholder pode indicar ou sugerir outros stakeholders Stakeholders incluem usurios diretos do sistema e interessados indiretos tais como reguladores e organizaes normativas
SIMPROS 2005 13
Outros Sistemas
Preenchimento
Sw + Hw
Legislador
Operador Manuteno
Stakeholder Negativo
Desenvolvedor
Ian F. Alexander
SIMPROS 2005 14
Beneficirio Financeiro
Outros Sistemas
Proponente
Beneficirio Poltico
Entrevistas
Analistas de Requisitos
Sw + Hw
Legislador
Consultor
Desenvolvedor
SIMPROS 2005
Ni Ni+1
I+1
Nn
- Entrevista ANALISTAi-simoREPRESENTANTE Tratamento de Redundncias/Conflitos - Reunio c/ Slot 1 2
Necessidades
Escopo
i
Deciso Final para definio de ESCOPO + Registro Registro de Features e Requisitos Sugeridos
SIMPROS 2005
16
Captura e Anlise
Stakeholders
17
SIMPROS 2005
F1 F2 F3 F4 F5 F6 F7 Fi Fn
5
2 4 3 Registro Features 4
5 6
Rastreabilidade
Rastreamento Vertical e Horizontal
Horizontal
Necessidade x Necessidade y
Vertical
Servios Servios
RequisitosRequisitos Sw Sw
RequisitosRequisitos Hw Hw
Projeto
Cdigo
....................... .......................
SIMPROS 2005 19
Problema
Escopo
Requisitos
20
Referncias - Gerald Kotonya & Ian Sommerville REQUIREMENTS ENGINEERING - John Wiley & Sons - 1998 - Mary Beth Chrissis, Mike Konrad, Sandy Shrum CMMI Guidelines for Process Integration and Product Improvement - Addison-Wesley - 2003 - Guide to the Software Engineering Body of Knowledge SwEBOK - IEEE - 2004 Version - Alexander, I. F. A Taxonomy of Stakeholders, htpp://easynet.co.uk/~iany/consultancy/stakholder_taxonmy
SIMPROS 2005 21