aula 5 - modelos

46
Fatec Fatec Ourinhos/SP Ourinhos/SP FATEC - OURINHOS FATEC - OURINHOS Baseado no material fornecido Baseado no material fornecido Profa. Me. Viviane de Fatima Bartholo Profa. Me. Viviane de Fatima Bartholo Potenza Potenza

Upload: felipegozeloto

Post on 03-Oct-2015

29 views

Category:

Documents


6 download

DESCRIPTION

modelo de processos...

TRANSCRIPT

  • Modelo Cascata

  • Modelo Cascata na Prtica

    FatecOurinhos/SP

    Contribuies e problemas do ciclo de vida clssicoContribuiesProcesso de desenvolvimento de software deve ser sujeito disciplina, planejamento e gerenciamento.A implementao do produto deve ser postergada at que os objetivos tenham sido completamente entendidos.Deve ser utilizado quando os requisitos esto bem claros no inicio do desenvolvimento.

    FatecOurinhos/SP

    ProblemaRigidezQualquer desvio desencorajadoTodo o planejamento orientado para a entrega do produto de software em uma data nica.Processo de desenvolvimento pode ser longo e a aplicao pode ser entregue quando as necessidades do usurio j tiverem sido alteradas.

    Contribuies e problemas do ciclo de vida clssico

    FatecOurinhos/SP

    Problema (cont.)Projetos reais raramente seguem o fluxo seqencial que o modelo prope.Logo no incio difcil estabelecer explicitamente todos os requisitos. No comeo dos projetos sempre existe uma incerteza natural.O cliente deve ter pacincia. Uma verso executvel do software s fica disponvel numa etapa avanada do desenvolvimento

    Contribuies e problemas do ciclo de vida clssico

    FatecOurinhos/SP

    FatecOurinhos/SP

    Modelo de Desenvolvimento EvolucionrioPrototipagem DescartvelProgramao Exploratria

    FatecOurinhos/SP

    Prototipagem DescartvelComo na programao exploratria, a primeira fase prev o desenvolvimento de um programa para o usurio experimentar No entanto, o objetivo aqui estabelecer os requisitos do sistemaO software deve ser reimplementado na fase seguinteA construo de prottipos com os quais os usurios possam brincar uma idia bastante atrativa:Para sistemas grandes e complicadosQuando no existe um sistema anterior ou um sistema manual que ajude a especificar os requisitos

    FatecOurinhos/SP

    Prototipagem DescartvelOs objetivos do prottipo devem estar bem claros antes do incio da codificao. Possveis objetivos: Entender os requisitos dos usuriosDefinir a interface com os usuriosDemonstrar a viabilidade do sistemas para os gerentes. Uma deciso importante a ser tomada escolher o que ser e o que no ser parte do prottipoNo economicamente vivel implementar todo o sistema! Os objetivos do prottipo so o ponto de partida

  • Modelo evolucionrio (prototipao)

    FatecOurinhos/SP

    Programao ExploratriaIdia geral:Desenvolvimento da primeira verso do sistema o mais rpido possvelModificaes sucessivas at que o sistema seja considerado adequadoAps o desenvolvimento de cada uma das verses do sistema ele mostrado aos usurios para comentriosAdequado para o desenvolvimento de sistemas onde difcil ou impossvel se fazer uma especificao detalhada do sistemaPrincipal diferena para os outros modelos a ausncia da noo de programa correto

    FatecOurinhos/SP

    Programao ExploratriaTem sido mais usada no desenvolvimento de sistemas especialistas - geralmente sistemas que tentam emular capacidades humanasA maioria dos sistemas desenvolvidos com sucesso usando a programao exploratria foi implementada usando pequenos grupos de profissionais altamente qualificados e motivados

  • Modelo evolucionrio (prototipao)

    FatecOurinhos/SP

    Contribuies e problemas do modelo evolutivoContribuiesSistemas pequenos til quando os requisitos esto obscurosEspecificao construda gradativamentePossibilitam um rpido desenvolvimento da aplicaoTestes podem ser mais efetivos.

    FatecOurinhos/SP

    Contribuies e problemas do modelo evolutivoProblemaO processo no visvel Os sistemas so freqentemente mal-estruturados e mal-documentadosPode exigir ferramentas e tcnicas especiais.Processo no claro, dificuldade de planejamento e gerenciamento

    FatecOurinhos/SP

    Problema (cont)

    Cliente no sabe que o software que ele v no considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo

    No aceita bem a idia que a verso final do software vai ser construda e fora a utilizao do prottipo como produto final.

    Contribuies e problemas do modelo evolutivo

    FatecOurinhos/SP

    Problema (cont)

    Desenvolvedor freqentemente faz uma implementao comprometida (utilizando o que est disponvel) com o objetivo de produzir rapidamente um prottipo.

    Depois de um tempo ele familiariza com essas escolhas, e esquece que elas no so apropriadas para o produto final.Contribuies e problemas do modelo evolutivo

    FatecOurinhos/SP

    FatecOurinhos/SP

    Modelo de Desenvolvimento Rpido da Aplicaes RAD um modelo de desenvolvimento de software incremental que enfatiza um ciclo de desenvolvimento extremamente curto uma adaptao do modelo seqencial linear, no qual o desenvolvimento rpido se utiliza da construo baseada em componentes.Se os requisitos so bem compreendidos e o objetivo do projeto restrito, o processo RAD permite a uma equipe de desenvolvimento criar um sistema plenamente funcional, dentro de perodos muito curtos (e. 60 a 90 dias)Muito aplicado a sistemas de informao

  • *Desenvolvimento Rpido de Aplicaes (RAD)Equipa 1Equipa 2Equipa 3

    FatecOurinhos/SP

    *Modelo de Desenvolvimento Rpido da Aplicaes RADFasesModelagem do negcioo fluxo de informao entre as funes do negcio modeladoModelagem de dadoso fluxo de informao refinado num conjunto de objetos de dados necessrios para dar suporte ao negcio. Os atributos e as relaes so definidosModelagem do processodescries do processamento so criadas para adicionar, modificar, descartar ou recuperar um objeto de dadosGerao da aplicaousa: tcnicas de quarta gerao; reuso e desenvolvimento de componentes; e ferramentas automatizadas para facilitar a construoTeste e entregareutiliza componentes o que reduz o tempo de teste, porm os novos componentes e as interfaces entre eles precisam ser testados

    FatecOurinhos/SP

    *Modelo de Desenvolvimento Rpido da Aplicaes RADDesvantagensPara projetos grandes exige RH suficiente para criar um nmero adequado de equipes RADExige desenvolvedores e clientes comprometidos com atividades rpidasNem todos os tipos de aplicaes so apropriadas. A abordagem RAD pode no funcionar se o software:no pode ser adequadamente modularizadoexigir desempenho superior que deve ser conseguido atravs de ajustes das interfaces dos componentesQuando riscos tcnicos forem elevados, o RAD no adequado (novas tecnologias, interoperabilidade com outros sistemas, etc)

    FatecOurinhos/SP

    *Modelo de Desenvolvimento Rpido da Aplicaes RADExemplo de RAD metodologias geisExtreme programing (XP)Valores definidos na metodologiaComunicao: a comunicao da equipe deve ser eficazSimplicidade: a soluo mais simples deve ser a selecionada para resolver o problemaFeedback: o trabalho da equipe deve ser orientado ao feedback do cliente e ao software funcionadoCoragem: as pessoas assumam responsabilidade sobre o trabalho a ser realizado

    FatecOurinhos/SP

    FatecOurinhos/SP

    Transformao FormalIdia geral:Uma especificao formal (definio matemtica, no ambgua) do software desenvolvida e posteriormente transformada em um programa atravs de regras que preservam a corretude da especificao

    FatecOurinhos/SP

    Transformao FormalA grande motivao por trs da idia de refinamento formal a possibilidade de gerar automaticamente programas que so corretos por construoO prprio processo de desenvolvimento deve grantir que o programa faz exatamente o que foi especificadoEste modelo tem sido aplicado ao desenvolvimento de sistemas crticos, especialmente naqueles onde a segurana um fator crtico (ex: sistema de controle de trfego areo)

    FatecOurinhos/SP

    *Modelo de Mtodos FormaisProblemasDemanda pessoal especializadoComo poucos desenvolvedores de software tem o preparo necessrio para aplicar mtodos formais, torna-se necessrio treinamento extensivoDificuldade em especificar formalmente alguns aspectos de sistemasInterface com usurio difcil usar os modelos como um mecanismo de comunicao, com clientes despreparados tecnicamenteAplicaoSistemas crticos onde segurana e/ou confiabilidade devem ser garantidas antes mesmo que o sistema entre em operaoEletrnica de aeronaves, dispositivos mdicos, ...Desenvolvedores que queiram evitar multas caso ocorram falhas (transaes financeiras, etc)

    FatecOurinhos/SP

    FatecOurinhos/SP

    Desenvolvimento Orientado ao Reuso

    usado nas partes intermedirias em um processoAnlise dos componentes: Considerando os requisitos so feitas buscas em componentes que implementa a especificaoModificao de requisitos: os requisitos so modificados para refletir o componente disponvel. Caso seja impossvel procura-se solues alternativasProjeto de Sistema de Reuso: projeta-se a infraestrutura levando em considerao os componentes reutilizadosDesenvolvimento e Integrao: Se no houver componente que possa ser reutilizado este desenvolvido e integrado a infraestrutura. Observe que desenvolvimento uma etapa a parte.

    FatecOurinhos/SP

    Modelos IterativosRequisitos de sistema SEMPRE evoluem durante curso de um projeto. Assim a iterao do processo sempre faz parte do desenvolvimento de grandes sistemasIteraes podem ser aplicadas a quaisquer dos modelos de ciclo de vida Duas abordagens (relacionadas)Desenvolvimento espiral Desenvolvimento incremental

    FatecOurinhos/SP

    Desenvolvimento Espiral (Boehm)Acrescenta aspectos gerenciais ao processo de desenvolvimento de software. anlise de riscos em intervalos regulares do processo de desenvolvimento de softwareplanejamentocontroletomada de decisoO processo representado como uma espiral em vez de uma seqncia de atividadesCada volta na espiral representa uma fase no processoNo h fases fixas como especificao ou projeto - voltas na espiral so escolhidas dependendo do que requeridoRiscos so avaliados explicitamente e resolvidos ao longo do processo

  • Desenvolvimento Espiral

    FatecOurinhos/SP

    Modelo em EspiralVantagens O modelo em espiral permite que, ao longo de cada iterao, se obtenham verses do sistema cada vez mais completas, recorrendo prototipagem para reduzir os riscos. Este tipo de modelo permite a abordagem do refinamento seguido pelo modelo em cascata, mas incorpora um enquadramento iterativo que reflete, de uma forma bastante realstica, o processo de desenvolvimento.

    FatecOurinhos/SP

    Modelo em EspiralNo entanto... A abordagem deste tipo de modelo exige considervel experincia na avaliao dos riscos e fia-se nessa experincia para o sucesso. Se um grande risco no for descoberto, podero ocorrer problemas. O modelo em espiral pode levar ao desenvolvimento em paralelo de mltiplas partes do projeto, cada uma sendo abordada de modo diferenciado, por isso necessrio o uso de tcnicas especficas para estimar e sincronizar cronogramas, bem como para determinar os indicadores de custo e progresso mais adequados.

    FatecOurinhos/SP

    Desenvolvimento IncrementalEm vez de entregar o sistema como um todo, o desenvolvimento e a entrega so divididos em incrementos, com cada incremento entregando parte da funcionalidade requeridaRequisitos dos usurios so priorizados e os requisitos de mais alta prioridade so includos nas iteraes iniciaisUma vez que o desenvolvimento de um incremento iniciado, os requisitos so "congelados". Embora os requisitos possam continuar a evoluir para incrementos posterioresEm certos aspectos similar programao exploratria. No entanto, o escopo do sistema deve ser claramente entendido antes de se iniciar o desenvolvimento

    FatecOurinhos/SP

    Desenvolvimento Incremental

    Definir esboo dos requisitos

    Associar requisitos a incrementos

    Projetar a arquitetura do sistema

    Validar o sistema

    Integrar o incremento

    Validar o incremento

    Desenvolver um incremento

    Sistema Final

    FatecOurinhos/SP

    Processo de Software Modelo IncrementalEngenharia de Sistemas / Informaoincremento 1incremento 2incremento 3incremento 4produto liberadodo incremento 1produto liberadodo incremento 2produto liberadodo incremento 3produto liberadodo incremento 4tempo

    FatecOurinhos/SP

    Modelo IncrementalVantagensOs clientes no precisam esperar at que todo o sistema seja entregue, para ento tirarem proveito dele.O primeiro estgio deve satisfazer os requisitos mais importantes e, assim, o software pode ser imediatamente usado Os clientes podem utilizar os primeiros incrementos como um prottipo e obter uma experincia que fornea os requisitos para estgios posterioresExiste um risco menor de fracasso completo do sistemaProblemasPode ser difcil mapear os requisitos para incrementos especficos difcil identificar facilidades comuns que todos os incrementos exijam

    FatecOurinhos/SP

    FatecOurinhos/SP

    ProcessoConjunto de atividades bem definidas com responsveiscom artefatos de entrada e sadacom dependncias entre as mesmas e ordem de execuocom modelo de ciclo de vida

    FatecOurinhos/SP

    Processo uma ao regular e contnua (ou sucesso de aes) realizada de forma bem definida, levando a um resultado um conjunto parcialmente ordenado de atividades (ou passos) para se atingir um objetivodefine quem est fazendo o que, quando e como para atingir um certo objetivo

    FatecOurinhos/SP

    Processo versus MetodologiaAlguns autores consideram que processos incluem uma metodologiapessoastecnologia (suporte de ferramentas)Outros consideram que uma metodologia a especializao de um processo com um conjunto de mtodos

    FatecOurinhos/SP

  • Jogo Educativo:

    Implementa modelo Cascata, Iterativo e Prototipao

    http://www.inf.furb.br/~fabiane/serpg2/

  • FatecOurinhos/SP

    Mtodos geis - Movimento iniciado por programadores experientes e consultores em desenvolvimento de software. Objetivo: satisfazer o cliente entregando, rapidamente e com freqncia, sistemas com algum valor. Mtodos geis (AM) uma coleo de metodologias baseada na prtica para modelagem efetiva de sistemas baseados em software. uma filosofia onde muitas metodologias se encaixam.As metodologias geis aplicam uma coleo de prticas, guiadas por princpios e valores que podem ser aplicados por profissionais de software no dia a dia.

    Mtodos geis

    FatecOurinhos/SP

    Exemplos:

    SCRUM - um processo para construir software incrementalmente em ambientes complexos, onde os requisitos no so claros ou mudam com muita freqncia. http://www.dcc.unicamp.br/~ra022247/Arquivos/scrum.pdf

    Crystal/Clear ( Cockburn ) - permitir que cada organizao implemente as atividades que lhe parecem adequadas, fornecendo um mnimo de suporte til do ponto de vista de comunicao e documentoshttp://alistair.cockburn.us

    Mtodos geis

    FatecOurinhos/SP

    Dynamic Systems Development Method - DSDM - (Mtodo Dinmico de Desenvolvimento de Sistemas)Progenitor do XP. Suporta mudanas nos requisitos durante o ciclo de vida

    Extreme Programming - uma metodologia gil para equipes pequenas e mdias desenvolvendo software com requisitos vagos e em constante mudana [Kent Beck ] Mtodos geis

    FatecOurinhos/SP

    Feature Driven Development FDD (Desenvolvimento orientado a funcionalidades)Suporta desenvolvimento gil com rpidas adaptaes s mudanas de requisitos e necessidades do mercado. Foco nas fases de desenho e construo.

    Adaptive Software Development - ASD (Desenvolvimento Adaptvel de Software)Sistemas grandes e complexos. Iterativo e incremental. Cliente sempre presente

    Mtodos geis

    FatecOurinhos/SP

    Referncias BibliogrficasFonte:

    Engenharia de Software 6 Edio / Ian Sommerville 2000 Engenharia de Softawre 3 Edio / Roger PressmanEngenharia de Software 1 Edio / Ariadne CarvalhoEngenharia de Software Teoria e Prtica 2. Edio/ Pfleeger, S.L. www.ime.usp.br/~gdaltonl/ageis.htmXPRecife Grupo de Estudos de Mtodos geis de Recifewww.cin.ufpe.br/~xprecifeXisp Portal Brasileiro de XPwww.xispe.com.br

    FatecOurinhos/SP

    Dvidas ?????

    ********Desenvolvimento com o ciclo clssico de vida muito curto atravs da limitao do mbito do sistema e utilizando uma construo baseada em componentes. Abrange as fases seguintes:Modelado da gesto: Qual informao conduz o processo? Qual informao gerada? Aonde vai a informao? Quem a processa?Modelado dos dados: conjunto de objectos de dados necessrios para o sistema. Se definem as suas caractersticas e ligaesModelado do processo: descrio das funes para inserir, modificar, apagar ou recuperar dadosGerao de aplicaes: assume-se a utilizao de tcnicas e ferramentas de 4a gerao baseadas na reutilizao de componentes ou a criao de componentes reutilizveis.Testes e entrega: Testes dos componentes novos e as interfaces e testes de integraoVantagens:Tempo de entregaReduo dos testesApropriado para software de gesto ou com funcionalidades vulgaresDisvantagens:Requer muitos recursos humanos e muito comprometidos com o projectoClientes e programadores comprometidos com os rpidos tempos de entregaNo todos os tipos de aplicaes so apropriado. O sistema deve pode ser decomposto em mdulosNo apropriado aquando os riscos tcnicos so altos*12***