PrincípiosdeEngenhariadeRequisitos
Problemachave:Comunicação
LeonardoMurta EngenhariadeRequisitos 2
Cliente EngenheirodeSoEware
EngenhariadeRequisitos• Concepção• Elicitação• Elaboração• Negociação• Especificação• Validação• Gerenciamento
LeonardoMurta EngenhariadeRequisitos 3
Concepção• ObjeMvo– Terumavisãogeraldonegócio
– ConheceroclienteesuasexpectaMvas
• Resultadosesperados– IdenMficaçãodosinteressados(stakeholders)
– IdenMficaçãodosdiferentespontosdevista
– Visãogeraldoescopodosistema
LeonardoMurta EngenhariadeRequisitos 4
GradyBoochetal.2007.Object-OrientedAnalysisandDesignwithApplica9ons.3rded.Addison-WesleyProfessional.
Elicitação
LeonardoMurta EngenhariadeRequisitos 5
Elicitação• ObjeMvo– EntenderoqueoclienteesperadosoEware
• Problemasmaiscomuns– Escopovariável(mascontratofixo)– Incertezasdocliente– VolaMlidadedosrequisitos
LeonardoMurta EngenhariadeRequisitos 6
Elicitação• ElementosaseremidenMficados– Objetosmanipuladospelosistema– Serviçosprestadospelosistema– Restriçõesquedevemserobedecidas– Critériosdedesempenho
• Resultadosesperados– NarraMvaemlinguagemnaturaldosrequisitosdosistema
– ListaderequisitosdosistemaLeonardoMurta EngenhariadeRequisitos 7
Elicitação(técnicas)
• Entrevistas• Oficinas(workshops)• ReuniõesdeBrainstorming• ProtoMpação• Maquetes• Análisededocumentaçãoexistente• Análisedesistemasexistentes• Observaçãodepessoastrabalhando• Análisedemercado• Etc.
LeonardoMurta EngenhariadeRequisitos 8
Elicitação(MaximizarasaMsfaçãodocliente!)
• Requisitonormal– Oclientelembradefalar– OclienteficarásaMsfeitoseesserequisitoesMvernosistema
• Requisitoesperado– Requisitoimplícito– Oclientenãolembradefalar– OclienteficaráinsaMsfeitoseesserequisitonãoesMvernosistema
• Requisitoexcitante– Oclientenãolembradefalar– Oclientenãoesperaencontraresserequisitonosistema– OclienteficarásaMsfeitoseesserequisitoesMvernosistema
LeonardoMurta EngenhariadeRequisitos 9
Elicitação(ClientexUsuáriofinal)
• Nemsempreoclienteéousuáriofinal• Cliente– Quemcontrataepagapeloserviço– Ex.:Administradordeumhospital
• Usuáriofinal– QuemusaosoEwarenodiaadia– Ex.:Médicoseenfermeiros
• Importante– Nuncadeixedeelicitarrequisitoscomosusuáriosfinaispoissemacolaboraçãodeles,osoEwarenãoseráusado
LeonardoMurta EngenhariadeRequisitos 10
Elicitação(escolhadosusuáriosfonte)
• AlgunssistemasserãouMlizadospormilharesoumilhõesdeusuários
• EscolhausuáriosfontedosrequisitosquesejamrepresentaMvos
• Lembre-sequearegradePareto(80-20)aparentaserválida– 20%dosrequisitossaMsfazema80%dosusuários– EscolherumusuáriomuitoespecialistapodelevaraimplementaçãoderequisitosquenuncaserãouMlizados
LeonardoMurta EngenhariadeRequisitos 11
Elicitação(requisitosfuncionais)
• NarraMvalivre– “Osistemadevemostrarumamensagemdestatusemintervalosnãomenoresque60segundos”
• Listaderequisitos– RF-1:Umamensagemdestatusdevesermostradanaáreainferiordajanela(desenhodaFig.1)
– RF-2:Amensagemdeveseratualizadaacada60segundos,comtolerânciade10segundosparamaisouparamenos
– RF-3:Amensagemdeveestarsemprevisível– RF-4:Seamensagemforreferenteaumatarefaemandamento,opercentualdeandamentodevesermostrado
– RF-5:Seamensagemforreferenteaumatarefajáterminada,issodeveserinformadocomotexto“Finalizada”
LeonardoMurta EngenhariadeRequisitos 12
Elicitação(requisitosnãofuncionais)
• Sinônimo:atributosdequalidade• Disponibilidade– DS-1:Osistemadeveficardisponívelpor99,5%dotemponosdiasúteis,das6hàs22h,e99,95%dotemponosdiasúteis,das16hàs18h
• Eficiência– EF-1:Emcondiçõesdepicodeuso,deveterumareservade25%decapacidadedeprocessamentoememória
– EF-2:Ocálculodeinterferênciadeveserfinalizadocomsucessoemmenosde5minutos
– EF-3:OmódulodeparserdeXMLdeveprocessar1.000.000dedocumentosporsegundo
LeonardoMurta EngenhariadeRequisitos 13
Elicitação(requisitosnãofuncionais)
• Flexibilidade– FL-1:UmnovoMpodesensordevepoderserconfiguradonosistemaemmenosde3horas
• Integridade– IN-1:Transaçõeshistóricasdosconsumidoressópoderãoservistasporusuárioscomprivilégiosde“auditor”
• Interoperabilidade– IT-1:OsistemadevesercapazdeimportardadostantodoMSOffice(versão2003oumaior)quantodoOpenOffice(versão2.4oumaior)
• Confiabilidade– CF-1:Emcada1.000execuções,nãomaisdoque2podemapresentarfalhasdesoEware
LeonardoMurta EngenhariadeRequisitos 14
Elicitação(requisitosnãofuncionais)
• Robustez– RB-1:Seacontecerumafalhaantesdousuáriosalvar,osistemadeve
recuperarumaversãonãosalvacomperdadeconteúdomenorque1minutodetrabalho
• Usabilidade– US-1:Umusuáriotreinadodevesercapazdesubmeterumpedidode
compraemmenosque5minutos– US-2:Umusuárionãotreinadodevesercapazdesubmeterumpedidode
compraemmenosque30minutos– US-3:Todososcomandosdemenudevemterteclasdeatalhoassociadas
• Manutenibilidade– MN-1:TodososmétodosdevemserdocumentadosuMlizandoanotação
Javadoc– MN-2:ModificaçõescorreMvasdevemserfeitasemmenosde5horas– MN-3:ModificaçõesadaptaMvasdevidoainstrumentoslegaisdevemser
feitasemmenosde20horas
LeonardoMurta EngenhariadeRequisitos 15
Elicitação(requisitosnãofuncionais)
• Portabilidade– PR-1:OsistemadevepoderserexecutadoemsistemaoperacionalWindowseLinux,nasarquiteturasi386,AIXeSPARC
• Reusabilidade– RS-1:OcontroledeusuáriosdevereuMlizarcomponentesdeautenMcaçãojáuMlizadosnosistemaPORTMAP
• Testabilidade– TS-1:AcomplexidadeciclomáMcamáximadeummódulonãopodesermaiorque20
LeonardoMurta EngenhariadeRequisitos 16
Elicitação(requisitosnãofuncionais)
LeonardoMurta EngenhariadeRequisitos 17
DS EF FL IN IT CF RB US MN PR RS TS
DS È + +
EF È - - - - - - - -
FL - È - + + + +
IN - È - - - -
IT - + - È +
CF + - + È + + + +
RB + - + È +
US - + È -
MN + - + + È +
PR - + + - - È + +
RS - + - + - + + È +
TS + - + + + + È
Elaboração• ObjeMvo– ExplicitaroconhecimentoobMdonaconcepçãoeelicitação
• TransformarnarraMvasdelinguagemnaturalparaUML
• Sinônimo:Análisederequisitos• Resultadosesperados– Casosdeuso– Classesconceituais
LeonardoMurta EngenhariadeRequisitos 18
Negociação• ObjeMvo– PriorizareidenMficarosriscosdosrequisitos– Eliminar,combinaroumodificarosrequisitos– Chegaraumconsensosobrealistafinalderequisitos
• Conflitoscomuns– Entrerepresentantesdocliente
• Requisitoscontraditórios• Prioridades
– Entreoclienteeaequipededesenvolvimento• Prazo• Custo
LeonardoMurta EngenhariadeRequisitos 19
Negociação• Dimensõesprincipaisemnegociações– Escopo– Prazo– Custo
• Asdimensõessãointerligadas– Mudançadeposiçãoemumadasdimensõespodegerarconseqüênciasnasoutrasdimensões
LeonardoMurta EngenhariadeRequisitos 20
Negociação(dicas)
• IdenMfiqueoobjeMvodointerlocutor• Cedanosaspectosrelevantesparaointerlocutorquenãosão
relevantesparavocê– NãoéumacompeMção.Ambostêmqueganhar!
• Definaumaestratégia– SaibadeantemãooquepodesercedidoeoqueéfundamentaldesermanMdo
• Escutecomcuidadoosargumentosdointerlocutor– Reavalieasuaposiçãocasonecessário
• Casochegueaumasituaçãoconfortável,façaumacordodeimediato– Nãobusquemelhorarasuaposiçãoseaposiçãoatualjáéadequadaparaambos!
LeonardoMurta EngenhariadeRequisitos 21
Especificação• ObjeMvo– Produziraespecificaçãoderequisitos
• Especificaçãoderequisitoengloba– Requisitosfuncionais– Requisitosnãofuncionais
LeonardoMurta EngenhariadeRequisitos 22
Validação• ObjeMvo– Assegurarqueaespecificaçãoderequisitosestáconsistente
• Problemascomuns– Ambigüidade– Inconsistência– Omissão– Erro
LeonardoMurta EngenhariadeRequisitos 23
Validação(questões)
• Osrequisitosestãoclaros?• AfontedosrequisitosestáidenMficada?• Osrequisitosforammostradosparaessafonte?• OsrequisitosestãodescritosdeformaquanMtaMva?• Osrequisitosestãorelacionadosviareferênciacruzada?• Osrequisitosviolamalgumarestriçãododomínio?• Orequisitoétestável?Ostestesforamespecificados?• Osrequisitossãorastreáveisparaosmodeloseocódigosubseqüente?
• Existemrequisitosimplícitos?
LeonardoMurta EngenhariadeRequisitos 24
Validação(exemplosdeambiguidade)
• Ajaneladeveabrirrapidamente• Osistemadeveserflexível• Ocálculodevesereficiente• Ainterfacecomousuáriodevesermelhorqueaatual
• Nãodevemsermostradasmuitasmensagensdeerro
• Aexibiçãodomapadenavegaçãodeveseramigável
LeonardoMurta EngenhariadeRequisitos 25
Gerenciamento• ObjeMvo– Controlarasmudançasnosrequisitos– PermiMraanálisedeimpactodasmudanças
• Tiposderastreabilidade– CaracterísMcasdosistema– Fontedorequisito– Dependênciasentrerequisitos– Subsistemas– Interfaces
LeonardoMurta EngenhariadeRequisitos 26
Gerenciamento(matrizderastreabilidade)
LeonardoMurta EngenhariadeRequisitos 27
Fonte:h|p://www.modernanalyst.com
10princípiosdeengenhariaderequisitos
• Primeiropassoparaseresolverumproblemaéentenderoproblema– Nãobastacomunicar,énecessárioentender!
• Princípio1:Escute– Tenteprestaraatençãonoqueointerlocutorfala– Eviteinterromperalinhaderaciocíniodointerlocutor– Peçadetalhesdealgoquenãoficouclaro– NãodesesMmuleseuinterlocutorcomgestosoupalavras
LeonardoMurta EngenhariadeRequisitos 28
10princípiosdeengenhariaderequisitos
• Princípio2:Seprepareantesdareunião– Tenteentenderoproblemaantesdareunião– TentecompreenderqualéojargãouMlizadonodomínio– Elaboreumaagendaparaareunião
• Princípio3:Éimportanteterummediador– Omediadoréresponsávelpormanterareuniãocomfocoapropriado
– Omediadoréresponsávelporresolverconflitos• Princípio4:Comunicaçãofaceafaceéoideal– Nacomunicaçãofaceafaceépossívelpercebergestos– Adedicaçãonacomunicaçãofaceafaceémaior
LeonardoMurta EngenhariadeRequisitos 29
10princípiosdeengenhariaderequisitos
• Princípio5:Tomenotadasdecisões– Empoucotempo,nãoserápossívelsaberporqueumadecisãofoitomada
– Éfundamentaldocumentarasrazõesdecadadecisão• Princípio6:EsMmulecolaborações– Duasoumaismentespensammelhorqueuma– Colaboraçõesgeramcumplicidadenaequipe
• Princípio7:Mantenhaofoco– EvitequeoreuniãosedesviemuitodoseuobjeMvo– Lembreàspessoasoqueaindaprecisaservisto
LeonardoMurta EngenhariadeRequisitos 30
10princípiosdeengenhariaderequisitos
• Princípio8:SealgoesMverobscuro,desenhe!– Representaçõesvisuaisajudamauniformizaridéias– Façausodepapelequadrobrancoemabundância
• Princípio9:Sigaemfrente!– Seconcordarem,sigamemfrente– Sediscordarem,sigamemfrente– SeesMverememdúvidaenãoforpossívelMraradúvidanomomento,sigamemfrente
• Princípio10:Negociaçãonãoéumjogo– Busqueporsoluçõesboasparaambasaspartes– Cedaemaspectosquenãosãofundamentais– Briguesomentepelasbatalhasquevalemapena
LeonardoMurta EngenhariadeRequisitos 31
Umpossívelprocesso...1. IdenMfiqueosinteressadosnosoEware2. Sereuniacomosinteressadosefaçaperguntasgenéricassobrecomo
funcionaosistema3. FaçaumdiagnósMcodeumapáginasobreoescopodoprojeto4. ReviseodiagnósMcocomosinteressados,visandovalidara
comunicaçãoanterior5. Façareuniõestécnicascomosinteressadosparadescobriroscenários
deusodosistema(entradas,saídas,caracterísMcas,funcionalidadesecomportamentos)
6. Façaumbreverelatóriodessescenários7. Refinacomosinteressadosesserelatório8. Priorizeessescenárioscomosinteressados9. Revisecomosinteressadosorelatóriodecenários10. Inicieoplanejamentodasetapasdeprojeto,codificaçãoetestes
LeonardoMurta EngenhariadeRequisitos 32
Deengenhariaderequisitosparaimplantação
• ApriorizaçãodosrequisitosdeterminaoconteúdodecadaiteraçãodeimplantaçãodosoEware– Dependênciasentrerequisitospodeinfluenciarnessaordem
• EntregarmaisqueopromeMdopodeserumafacadedoisgumes– Alegraoclientenaquelaiteração– ChateiaoclienteemiteraçõesfuturasseissonãoserepeMr
• Requisitosnãofuncionaispodemimplicaremcustospós-implantação– Ex:SLAdeterminando4horasparacorreçãodedefeitos
LeonardoMurta EngenhariadeRequisitos 33
Exercício• Secoloquemcomoclientesquedesejamcontratarumaso;warehouseparadesenvolverumaIDE– Inicialmente,cadagrupodevefazeruma“reuniãointerna”deelicitaçãoderequisitos(5-10minutos)• Oresultadodessareuniãodeveserumalistadeaté10requisitos
– 3gruposdevemapresentarseusrequisitosnoquadro,eentrarnumafasedeconciliação:combinação,divisãoouremoçãoderequisitosduplicados
– Aofinal,cadagrupodeverádistribuir10pontosparaosrequisitosmaisprioritários
LeonardoMurta EngenhariadeRequisitos 34
Bibliografia• RogerPressman.2004.So;wareEngineering:APrac99oner'sApproach.6thed.McGraw-Hill.
• Wiegers,KarlE.2003.So;wareRequirements,SecondEdi9on.2nded.MicrosoEPress.
LeonardoMurta 35EngenhariadeRequisitos
PrincípiosdeEngenhariadeRequisitos