Prévia do material em texto
1 Processo de SoftwareProcesso de Software Copyright Leandro Becker Prof. Leandro Buss BeckerProf. Leandro Buss Becker Email: lbecker@das.ufsc.brEmail: lbecker@das.ufsc.br DefiniçãoDefinição:: conjunto conjunto de atividades de atividades + + ordenamento destas, ordenamento destas, com com finalidade finalidade de obter um de obter um produto de produto de softwaresoftware ModeloModelo de Desenvolvimento (Ciclo de Vida)de Desenvolvimento (Ciclo de Vida):: ProcessoProcesso de Softwarede Software Copyright Leandro Becker Modelo Modelo de Desenvolvimento (Ciclo de Vida)de Desenvolvimento (Ciclo de Vida): : representação abstrata do PS, que vai definir representação abstrata do PS, que vai definir como as etapas relativas ao desenvolvimento do como as etapas relativas ao desenvolvimento do software serão conduzidas e software serão conduzidas e relacionadasrelacionadas ISO/IEC ISO/IEC 12207:2008 Systems and software engineering 12207:2008 Systems and software engineering –– Software life cycle processesSoftware life cycle processes Modelos de Ciclo de Vida do Modelos de Ciclo de Vida do SoftwareSoftware Modelo em CascataModelo em Cascata PrototipaçãoPrototipação ModeloModelo IterativoIterativo Copyright Leandro Becker ModeloModelo emem EspiralEspiral Métodos Métodos ÁgeisÁgeis DesenvolvimentoDesenvolvimento DirigidoDirigido porpor ModelosModelos Modelo em Cascata (Modelo em Cascata (WaterfallWaterfall)) Projeto Análise de Requisitos Copyright Leandro Becker Implementação Testes Manutenção Limitações Apresentadas pelo Limitações Apresentadas pelo Modelo em CascataModelo em Cascata Impõe que todos os requisitos sejam completamente Impõe que todos os requisitos sejam completamente especificados antes do prosseguimento das prox. etapasespecificados antes do prosseguimento das prox. etapas Assume que os requisitos são inalterados ao longo do Assume que os requisitos são inalterados ao longo do desenvolvimentodesenvolvimento Copyright Leandro Becker Projetos reais dificilmente são estritamente seqüenciaisProjetos reais dificilmente são estritamente seqüenciais As primeiras versões operacionais do software são As primeiras versões operacionais do software são obtidas nas etapas mais tardias do processoobtidas nas etapas mais tardias do processo PrototipaçãoPrototipação Análise de Requisitos Projeto Projeto Codificação Teste Copyright Leandro Becker Codificação Teste Projeto Codificação Teste Análise de Requisitos 2 PrototipaçãoPrototipação Interessante para sistemas de grande porte, com Interessante para sistemas de grande porte, com alto grau de dificuldade para exprimir alto grau de dificuldade para exprimir rigorosamente os requisitos;rigorosamente os requisitos; Através da construção de um protótipo éAtravés da construção de um protótipo é Copyright Leandro Becker Através da construção de um protótipo é Através da construção de um protótipo é possível demonstrar a possível demonstrar a factibilidadefactibilidade do mesmodo mesmo Com um pequeno investimento inicial, é Com um pequeno investimento inicial, é possível obter uma versão, mesmo simplificada, possível obter uma versão, mesmo simplificada, do que será o sistemado que será o sistema Processo de Desenvolvimento Processo de Desenvolvimento IterativoIterativo Projeto 1 Projeto 0 Projeto N Copyright Leandro Becker Implementação Análise Implementação Análise Implementação Análise Processo IterativoProcesso Iterativo Por ser incremental, facilita a adição de novas Por ser incremental, facilita a adição de novas funcionalidadesfuncionalidades FacilitaFacilita o o testeteste do do sistemasistema F iliF ili ál lál l dd fi l dfi l d Copyright Leandro Becker FacilitaFacilita o o cálculocálculo do tempo do tempo parapara o final do o final do projetoprojeto Modelo em EspiralModelo em Espiral Análise de Riscos Análise de Riscos Análise de Riscos Protó Protó- tipo Avalia alternativas, identifica e resolve riscos Determina objetivos alternativas e restrições A áli CUSTO ACUMULADO AVANÇO Copyright Leandro Becker Protótipo 1 Conceito de Operação Plano de Requisitos Plano de Ciclo de Vida Revisão Protó- tipo 2 Protó- tipo 3 tipo Simulações, modelos, ... Requisitos de Software Requisitos Validação dosDesenvolvimento Plano de Integração e Testes Plano de ficação do Pro- Validação e Veri- jeto Projeto do pro- duto de software Opera- cional Projeto Detalha- do Código Teste de uni- dadeInte- gração e testeTeste de acei- tação Imple- menta- ção Próximas etapas do plano Desenvolve e verifica Produto do Próximo Nível Análise de Riscos Modelo EspiralModelo Espiral Continuidade do processo de desenvolvimento é Continuidade do processo de desenvolvimento é definida como função dos definida como função dos riscos remanescentesriscos remanescentes AvaliaçãoAvaliação contínuacontínua dos dos resultadosresultados do do projetoprojeto P i d lP i d l dd Copyright Leandro Becker Permite adequação a qualquer Permite adequação a qualquer processo de processo de softwaresoftware Métodos ÁgeisMétodos Ágeis Baseado modelo interativo, porém mais “leve” e Baseado modelo interativo, porém mais “leve” e centrado no ponto de vista das pessoascentrado no ponto de vista das pessoas envolvidasenvolvidas CadaCada fasefase demorademora diasdias e e nãonão semanassemanas EnvolvidosEnvolvidos ficamficam presentespresentes numanuma mesmamesma salasala Copyright Leandro Becker EnvolvidosEnvolvidos ficamficam presentespresentes numanuma mesmamesma salasala Enfatizam Enfatizam trabalho no software como uma trabalho no software como uma medida primária de medida primária de progressoprogresso UtilizaUtiliza feedback feedback aoao invésinvés de de planejamentoplanejamento comocomo mecanismomecanismo primárioprimário de de controlecontrole DisponibilizaçãoDisponibilização regular de regular de versõesversões do softwaredo software 3 Métodos Ágeis Métodos Ágeis -- ExemplosExemplos Extreme Programming (XP)Extreme Programming (XP) FasesFases pequenaspequenas e e rápidasrápidas ((algunsalguns diasdias)) Testes Testes sãosão automatizadosautomatizados: : metasmetas pp// desenvolvimentodesenvolvimento Pr r m ãPr r m ã f itf it mm d pl sd pl s Copyright Leandro Becker ProgramaçãoProgramação feitafeita emem duplasduplas ProjetoProjeto e e arquiteturaarquitetura surgemsurgem porpor refactoringrefactoring SCRUMSCRUM Usado no gerenciamento Usado no gerenciamento de projetos de de projetos de softwaresoftware CiclosCiclos formadosformados porpor váriasvárias interaçõesinterações ((sprintsprint)) BrevesBreves reuniõesreuniões diáriasdiárias ((daily scrumdaily scrum)) Métodos Ágeis Métodos Ágeis -- Aplicabilidade Aplicabilidade Mais Mais adequados quando os requisitos estão adequados quando os requisitos estão emergindo e mudando emergindo e mudando rapidamenterapidamente Mais Mais adequados para projetos com pequenos adequados para projetos com pequenos timestimes em torno deem torno de 2020 pessoaspessoas Copyright Leandro Becker times, times, em torno de em torno de 20 20 pessoaspessoas NãoNão sãosão aplicáveisaplicáveis emem sistemassistemas críticoscríticos DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos DefinirDefinir visõesvisões abstratasabstratas parapara o o projetoprojeto atéaté chegarchegar no no códigocódigo Copyright Leandro Becker (Greenfield and Short 2003) códigocódigo ModelosModelos sãosão refinadosrefinados atravésatravés de de transformaçõestransformações sucessivassucessivas Modelo Específico de Domínio (modelos em XML) MetaCASE DSLTools DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos Copyright Leandro Becker Plataforma (WEB + Desktop + Celular) Código WEB JSP+Spring+Hibe Código Desktop Swing + Spring Código Celular MIDP + Burlap Modelo WEB JSP+Spring+Hibe Modelo Desktop Swing + Spring Modelo Celular MIDP + Burlap DesenvDesenv. Dirigido por Modelos. Dirigido por Modelos –– Rápido Rápido desenvolvimentode uma aplicação desenvolvimento de uma aplicação (AMDA) para múltiplas (AMDA) para múltiplas plataformasplataformas –– Especificação automática/facilitada de modelos Especificação automática/facilitada de modelos (DSM(DSM)) Copyright Leandro Becker (( )) –– Transformação de modelos para características Transformação de modelos para características de arquiteturas e de plataformas (MDAde arquiteturas e de plataformas (MDA)) –– ReusoReuso de de modelosmodelos ((EngenhariaEngenharia de de DomínioDomínio)) Referências:Referências: V. B. V. B. MazzolaMazzola e Je J--M. Farines, "M. Farines, "MetodologiasMetodologias de de ConcepcaoConcepcao de Software e de de Software e de SistemasSistemas", ", Cap. Cap. 11 Manifesto para Desenvolvimento Ágil de Manifesto para Desenvolvimento Ágil de S ftS ft h // il if /i / bh // il if /i / b // Copyright Leandro Becker Software: Software: http://www.agilemanifesto.org/iso/ptbrhttp://www.agilemanifesto.org/iso/ptbr// SchmidtSchmidt, D.C. , D.C. "Model"Model--Driven Engineering". Driven Engineering". IEEE Computer 39 (2). IEEE Computer 39 (2). 20062006