AnliseeProjetodeSistemas comUML
Prof.BrunoCrivelariSanches bcsanches@gmail.comEstematerialnopodeserreproduzidoouutilizadosem autorizao.
Bibliografia UMLBibleTomPender DesignPatternsHeadFirst UML:GuiadoUsurio,GradyBooch, JamesRumbaugh,IvarJacobson,Makron Books. UMLEssencial:umbreveguiaparaa linguagempadrodemodelagemde objetos.MartinFowlereKendallScott, Bookman.
Internet www.uml.org www.umlforum.com www.staruml.org http://jude.changevision.com/jude web/product/community.html
FerramentasCase Rational ArgoUML Poseidom JUDE Together VisualParadigm StarUML(OpenSource)
FundamentosUML UMLUnifiedModelingLanguage AUMLumalinguagemparavisualizar, especificar,construiredocumentaros artefatosdeumsistemadesoftware umconjuntodeferramentasenouma metodologiadedesenvolvimento Flexvelegenrica,podeseraplicadaa vriostiposdesistemas
FundamentosUML Mtodo=linguagem(UML)+Processo (RUP) ModeloConceitual: Coisas Relacionamentos Diagramas
Coisas Estruturais:nomesdosmodelos.Classes, casosdeuso,colaborao,componente, interface,n. Comportamentais:verbos.Interao, mquinadeestado, DeAgrupamento:organizao.Pacote, frameworks,subsistemas. DeAnotao:explicaes.Notas.
Relacionamentos Dependncia:indicaquemudanasemuma coisapodemafetaroutra Associao:representaaligaoentreum todoesuaspartes Generalizao:relacionamentoentrepaise filhosnoqualosfilhoscompartilham estruturaecomportamentodospais. Realizao:especificaumcontrato
Diagramas Visesdeumsistema: CasodeUso Projeto Processo Implementao Implantao
Diagramas Apresentaogrficadeumconjuntode elementos,geralmentemostradoscomoumgrafo conectadodevrtices(coisas)earcos (relacionamentos) Novediagramas:casosdeuso,classes,objetos, sequncia,colaborao,estados,atividades, componentes,execuo.
DiagramasUMLSeqncia Casos de Uso Objetos
...Colaborao Ambiente Estados
...Classes
Componentes
Atividades
Execuo
ProcessosdeDesenvolvimento CiclodeVidaTradicional Anlise Projeto Construo Testes Iterativo(RUP) ExtremeProgramming
RUP RationalUnifiedProcess Processodedesenvolvimentodesistemas iterativoeincrementalquesugereUML comopadrodeuso.
RUP
RUP Faseseseusprodutos: Concepo:Cronograma,descrio,diagramade casosdeusogeral Elaborao:Prottipo,casosdeusodetalhados, diagramadeclasses,projetolgicodobancode dados Construo:definiodasverses,mdulos implementados,bancodedados Transio:versobeta,versofinal,manuais.
ExtremeProgramming(XP) Processogildedesenvolvimento CriadoporKentBeck,WardCunningham, andRonJeffriesem2000 Objetivoprincipal:entregarosoftwarequeo clientequernomomentoemqueeleprecisa Menosformalizaoemaisdisciplina Sugereprticasparaalcanarvalores
ValoresdoXP1. Comunicao Maiorcomunicaoentremembrosdaequipe (presencial) Nolimitadaporprocessosformais Reduodacomplexidadedosistema Noprojetardemaneiragenrica:primeirooque necessrio Frequenteinversodasprticastradicionais
2. Simplicidade
ValoresdoXP1. Feedback Detecorpidadefalhas=economia Prazoscurtos Saberouvirecompreender Respeitarpontosdevistadiferentes Mudanaseerrossonaturais Jogarforaprticasquecausamproblemas
2. Respeito
3. Coragem
PrticasdoXP AmbienteInformativo Objetivo:aprimoraracomunicao Ferramentas: Cartescomhistrias(mural) QuadroBranco Postit FlipChart GrficosnaParede
PrticasdoXP BuilddeDezMinutos Objetivo:Melhorarofeedback,evitaroacmulo deerros Deveserpossvelexecutarobuildeostestes automatizadosemdezminutos Ajudamareduziroestresseemmomentos crticos
PrticasdoXP BuilddeDezMinutos Dificildeseobtercomjogos Visual:precompiledheaders VisualExpress2008:Buildsparalelos
PrticasdoXP DesenvolvimentoOrientadoaTestes Testeprimeiro,programedepois Escrevertestesquenofuncionemcasosejam inseridoserrosbviosnocdigo Fazerotestefuncionarcomimplementaes bvias Refatorarmtodosetestes
PrticasdoXP DesignIncremental Aplicaodesenvolvidadeformaiterativae incremental Criarsoluessimplesacadaiterao
SentarseJunto Trabalhoemconjunto Facilidadenacomunicao
PrticasdoXP EquipeIntegral Compostapelosdesenvolvedoresepelousurio
Trabalhoemconjunto Facilidadenacomunicao
Reunioemp
PrticasdoXP PadrodeCodificao(CodingStandard) Parecequeumapessoafeztodoosistema
PosseColetiva(CollectiveOwnership) Todossoresponsveis
IntegraoContnua(ContinuousIntegration) Vriasvezesaodia
RitmoSustentvel(SustainablePace) Prazosadequados
PrticasdoXP ProgramaoemPar(PairProgramming) Trocaealternncia
ProjetoSimples(SimpleDesign) Apenasoquenecessrio
Refatoramento(Refactoring) Melhoriacontnuadosoftware
Metfora(Metaphor) Analogiaparafacilitarodesenvolvimento
Vantagens Foconacodificao(programaspequenos) Envolvimentodousurio Trabalhoemequipeecomunicao Responsabilidadepelaqualidade Simplicidade Testesfrequentes Melhoriacontnua
FatoresCrticos PadresdeCodificao TarefasPequenas Refatorao TestesAutomticos ProgramaoemPar
PadresdeCodificao Facilitamacomunicaoeamanuteno Minimizamoconhecidoproblema:ningum entendeestecdigo Ferramentasautomticasparaformatao
TarefasPequenas Identifiquefuncionalidadespequenasque nodemoremmaisdoquealgumashoras Implementeafuncionalidadetotalmente, incluindotestesedocumentao
Refatorao Melhordedoismundos: Resolvaoproblemaomaisrpidopossvel Melhoreoprograma/recursosacadanova iterao
Oprogramaestsemprefuncionando,no importaafasedoseudesenvolvimento
Refatorao Encapsularcampos Extrairmtodos Extrairinterface(generalizartipo) Movermtododeumasubclasseparauma superclasse(PullUp) Movermtododeumasuperclasseparauma subclasse(PushDown) Renomearmtodos
TestesAutomticos Testesnoservemapenasparavalidarocdigo!!! Testessousadosparacomunicarclaramentecomo ocdigodeveserusadoecomoeledevefuncionar Aautomatizaodetestesassemelhaseaoprocesso decompilaomoderno: ProgramasemCartes=TestesManuais Compiladoresonthefly=TestesAutomticos
TestesAutomticos Sistemasquenopossuemtestesautomticos somaisdifceisdemanter ObjetosMock
TestedeNovasFuncionalidades Escrevaotesteparaafuncionalidade CodifiqueosobjetosMock Executeotesteunitrio Codifiqueanovafuncionalidade Executeotesteunitrio Executeoconjuntodetestes(TestSuite)
TestedeBugs Escrevaumtestequefalheparaobug reportado Executeotesteeobserveafalha Corrijaobug Executeotesteeobserveosucesso
ProgramaoemParFunciona?
ProgramaoemPar Podefuncionarbem(1+1
Top Related