processo de software

22
Processo de Software ►METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala e-mail: [email protected] 1

Upload: yen

Post on 17-Feb-2016

25 views

Category:

Documents


0 download

DESCRIPTION

Processo de Software. ► METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala e-mail: [email protected]. Objetivos. Introduzir os principais processos de software; Discutir as vantagens e desvantagens de cada um dos processos;. Plano. - PowerPoint PPT Presentation

TRANSCRIPT

Engenharia de Software Introducao

Processo de SoftwareMETODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS

Prof. Dr. rer. nat. Daniel D. Abdalae-mail: [email protected] os principais processos de software;Discutir as vantagens e desvantagens de cada um dos processos;2PlanoModelos de Processos de Software;Modelo em CascataPrototipaoModelo IterativoModelo em EspiralMtodos geis Desenvolvimento Dirigido por Modelos

3Processo de SoftwareUm conjunto estruturado de atividades que so necessrias para se desenvolver um sistema de softwareEspecificao;Projeto;Implementao;Validao;Evoluo.Um modelo de processo de software uma representao abstrata de um processo. Ele apresenta uma descrio do processo a partir de uma dada perspectiva4Modelo em Cascata5Definio de RequisitosProjeto do SoftwareImplementao e Teste de UnidadesIntegrao e teste do SistemaImplantao e ManutenoFases do Modelo em CascataDefinio dos Requisitos e Anlise do ProblemaProjeto do SoftwareImplementao e Teste de UnidadesIntegrao e Teste do SistemaOperao e Manuteno

A principal desvantagem do modelo em cascata a dificuldade em se acomodar mudanas uma vez que o processo se iniciou. Uma fase deve terminar antes que a fase seguinte possa se iniciar6Problemas do Modelo em CascataDifcil atender a mudana de requisitos dos usuriosApropriado apenas quando os requisitos so claros desde o incio do projetoPoucos sistemas possuem requisitos estveisO modelo em cascata principalmente usado em processos de engenharia onde o sistema desenvolvido em diversas localidades (modularizao)Ainda assim, cerca de 40% de todos os projetos utilizam este modelo!

7Modelo de Prototipao8Descrio em Alto NvelEspecificaoDesenvolvimentoValidaoVerso InicialVerso IntermediriaVerso FinalObservaes sobre PrototipaoDesenvolvimento ExploratrioO objetivo trabalhar com os clientes (stackholders) para criar iterativamente um sistema final a partir de uma especificao inicial. Deve-se iniciar o processo com um conjunto de requisitos muito bem entendidos e novas caractersticas so adicionadas a medida que vo sendo propostas pelo usurioProttipo DescartvelTem como objetivo o entendimento dos requisitos do sistema

9Observaes sobre PrototipaoProblemasFalta de visibilidade;Sistemas possuem geralmente uma estrutura pobre;Habilidades especiais (i.e. Em linguagens de prototipao rpida) podem ser necessrias.AplicabilidadeEm projetos de pequenos e de mdio tamanho;Em partes de sistemas mais complexos(i.e. As interfaces do usurio);Em programas de curto ciclo de vida.

10Modelo de Desenvolvimento Incremental11Definio de requisitos iniciaisAtribuio de requisitos iteraesProjeto da arquitetura do sistemaDesenvolvimento do incremento do sistemaValidao do IncrementoIntegrao do IncrementoValidao do SistemaSistema FinalVantagens do Modelo IncrementalUma parte usvel do sistema entregue ao cliente a cada iterao (incremento);Incrementos iniciais podem ser usados como prottipos para clarificao de requisitos;Baixo risco de falha geral do projeto;Os sub-sistemas de mais alta prioridade tendem a passar por testes mais intensos.12Modelo Espiral13

Modelo EspiralO Processo representado por meio de uma espiral ao invs de uma sequncia de atividades com retro-alimentao;No existem fases fixas tal como especificao ou projeto loops na espiral so escolhidos dependendo do que requerido;Riscos so avaliados explicitamentee resolvidos durante todo o processo;

14Seces do Modelo EspiralDefinio dos objetivosEspecificao dos objetivos para a fase corrente so identificados;Avaliao e reduo de riscosRiscos so avaliados e atividades so especificadas para reduzir os riscos chave;Desenvolvimento e validaoUm modelo de desenvolvimento escolhido para o projeto que pode ser qualquer dos modelos vistos anteriormentePlanejamentoO projeto revisto e a prxima fase da espiral planejada15Mtodos geisBaseado modelo interativo, porm mais leve e centrado no ponto de vista das pessoas envolvidasCada fase demora dias e no semanasEnvolvidos ficam presentes numa mesma salaEnfatizam trabalho no software como uma medida primria de progressoUtiliza feedback ao invs de planejamento como mecanismo primrio de controle Disponibilizao regular de verses do software16Mtodos geis - ExemplosExtreme Programming (XP)Fases pequenas e rpidas (alguns dias)Testes so automatizados: metas p/ desenvolvimento Programao feita em duplasProjeto e arquitetura surgem por refactoringSCRUMUsado no gerenciamento de projetos de softwareCiclos formados por vrias interaes (sprint)Breves reunies dirias (daily scrum)17SCRUM um termo usado no jogo de Rgbi, que significa quando os jogadores se amontoamMtodos geis - Aplicabilidade Mais adequados quando os requisitos esto emergindo e mudando rapidamenteMais adequados para projetos com pequenos times, em torno de 20 pessoasNo so aplicveis em sistemas crticos18

Desenv. Dirigido por Modelos(Greenfield and Short 2003)Definir vises abstratas para o projeto at chegar no cdigoModelos so refinados atravs de transformaes sucessivas19Plataforma(WEB + Desktop + Celular)Cdigo WEBJSP+Spring+HibeCdigo DesktopSwing + SpringCdigo CelularMIDP + BurlapModelo WEBJSP+Spring+HibeModelo DesktopSwing + SpringModelo CelularMIDP + BurlapModelo Especfico de Domnio(modelos em XML)MetaCASE DSLToolsDesenv. Dirigido por Modelos20Pontos ChaveProcessos de Software so conjuntos de atividades envolvidas na criao de um software;Modelos de processo de software so representaes abstratas destes processos;As atividades comuns a todos os modelos so: especificao, projeto, implementao, validao e evoluo;Modelos gerais de processo descrevem a organizao do processo de software. Exemplos incluem o modelo em cascata, prototipagem, iterativo, modelos geis e baseado em componentes;21RefernciasR. S. Pressman, Engenharia de Software, McGraw Hill, 6a Ed., 2002. Chap. 3.I. Sommerville. Software Engineering. 7th Ed. Addison-Wesley, 2004. Chap. 4.22