PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO

Documentos relacionados
Processos de software RUP

22/03/2018. Professor Ariel da Silva Dias RUP e Modelos Ágeis

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Processos de Software by Pearson Education Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1

Engenharia de Software Processo de Desenvolvimento. Ciclo de Vida - Modelo Cascata

Engenharia de Software

Engenharia de Software. Processos. Desenvolvimento de Software Tradicionais 2014/2. Prof. Luís Fernando Garcia

Aula 1 - Introdução à disciplina e Processos de desenvolvimento de software e suas atividades básicas

Engenharia de Software

Processos de Software

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS. Nome:

Análise e Projeto Orientados a Objetos

ENGENHARIA DE SOFTWARE. Aula 03 Processos de Software

Aula 3 - Modelos de Processo - cascata, iterativo e incremental e ágil

Departamento de Sistemas de Computação Universidade de São Paulo Análise e Projeto Orientados a Objetos Aula 2 O Processo Unificado (PU)

Engenharia de Software Simulado para a 1ª Avaliação Bimestral Professor: Danilo Giacobo - RESPOSTAS

Scrum Foundations. Fundamentos de Scrum

Fábricas de Software. Processos de Software. Fábricas de Software. Fábricas de Software 17/08/2010. Jorge Dias

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

Ainda que muitos modelos sejam semelhantes entre os modelos de ciclo de vida, existem alguns aspectos que os diferenciam:

O Processo Unificado (PU) SSC 121 Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

Análise e Projeto. Prof. Erinaldo Sanches Nascimento

MODELOS DE PROCESSOS (PARTE 2)

15/03/2018. Professor Ariel da Silva Dias Modelos de Processo de Software

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 03 PROFª BRUNO CALEGARO

Processo de Desenvolvimento. Edjandir Corrêa Costa

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Unidade II MODELAGEM DE PROCESSOS. Profa. Gislaine Stachissini

Engenharia de Software II

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Unidade VII Ferramentas de PDS. Luiz Leão

CAPÍTULO 1 O AMBIENTE DE DESENVOLVIMENTO DE SISTEMAS. Tereza Gonçalves Kirner

Processos de Software

Aula 3.1 Introdução e Visão Geral do Processo Unificado

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

MODELAGEM DE UM NOVO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE COM BASE EM METODOLOGIAS ÁGEIS.

RUP Unified Process. Profª Jocelma Rios

PROCESSO DE SOFTWARE

Scrum. Projeto de. Desenvolvimento. Software. Prof.: Ari Oliveira

Escolhendo um Modelo de Ciclo de Vida

Introdução ao RUP. Livar Correia de O. C. Cunha Effektiv Solutions

ENGENHARIA DE SOFTWARE

Comparação entre Metodologias Rational Unified Process (RUP) e extreme Programming(XP)

INTRODUÇÃO A ENGENHARIA DE SOFTWARE

Análise e Projetos de Sistemas - INF014

Engenharia de Software. Herbert Rausch Fernandes

Engenharia de Software. Apostila I >>> Introdução à ES - HEngholmJr

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE PELOTAS PRÓ-REITORIA DE GRADUAÇÃO PLANO DE ENSINO. Semestre letivo. 1. Identificação Código

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Disciplina - Requisitos. Grupo Yuni Luiz Eduardo Káthia

Engenharia Software. Ení Berbert Camilo Contaiffer

Bibliografia. Quais são os problemas? capacidade de construção. acompanha a demanda por novos programas. ameaçada por projetos ruins.

Modelos de Processo de Software

Rational Unified Process (RUP)

Cadeira: Engenharia de Software

QUESTÕES TESTES. Questão 1. O modelo de ciclo de vida em cascata:

Aula 2 - Modelos de Processo - cascata, iterativo e incremental e ágil

Modelos de Processo de Software

Introdução a Engenharia de Software

2. Processos em Engenharia de Software

Perguntas da Aula 2. Respostas da Pergunta 2. Respostas da Pergunta 1. Respostas da Pergunta 4. Respostas da Pergunta 3. Processos de Software

1.3 - Modelagem Ágil com UML. Professor: Júlio Cesar da Silva Msc.

Visão Geral do RUP (Rational Unified Process)

Transcrição:

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE PROF. MSC. EMILIANO MONTEIRO

CONTEÚDO Conceitos básicos Caracterização de um processo Estágios básicos Linha do tempo Cascata Espiral Prototipação Modelo-V Orientado ao Re-uso RUP SCRUM Kanban Considerações Finais

CONCEITOS BÁSICOS - PROCESSO Um conjunto de tarefas ordenadas constitui um processo, uma séria de etapas que envolvem atividades, restrições e recursos para alcançar a saída desejada. Um processo é um conjunto de procedimentos, organizados de modo que nos permita construir produtos que satisfaçam a uma série de objetivos e padrões.

CARACTERIZAÇÃO DE UM PROCESSO Um processo envolve um conjunto de ferramentas e técnicas, entre elas: a) o processo deve descrever todas as suas atividades b) o processo utiliza recursos e esta sujeito a restrições dos mesmos c) o processo pode ser composto de sub-processos d) cada atividade do processo tem critérios de entrada e saída e) as atividades são organizadas em sequência, com uma ordem de execução f) todo processo tem um conjunto de diretrizes que explicam os objetivos de cada atividade g) restrições e controles podem ser aplicadas a cada atividade.

ESTÁGIOS BÁSICOS Basicamente o desenvolvimento de software tem os seguintes estágios: 1. Análise e definição de requisitos 2. Projeto do sistema 3. Programação 4. Testes de integração e de sistemas 5. Entrega do sistema e treinamento de usuários 6. Manutenção 7. Descarte

TIME-LINE Atualmente existem mais de 100 filosofias de desenvolvimento: http://en.wikipedia.org/wiki/list_of_software_development_philosophies

CASCATA Características: Um dos primeiros modelos, proposto por Winston W. Royce, em 1970. O desenvolvimento de um estágio deve terminar antes do próximo começar. Só quando todos os requisitos forem enunciados é que a equipe de desenvolvimento pode iniciar suas atividades. Pode ser usado para estimar quando falta para o término do projeto. É fácil de explicar aos clientes. Não reflete como o código é desenvolvido. É frequentemente utilizado na resolução de problemas nunca antes resolvidos. Ao final de cada fase é produzido um artefado, sem detalhar como. Trata o desenvolvimento de software como resolução de problema. Enfoque nos documentos e artefatos.

ESPIRAL Criado por Barry Boehm em 1988, é similar a um risco envolvido que forma o desenho da espiral. É um modelo incremental e interativo. Avaliação e análise de risco Requisitos Primero concebe as operações, depois gera requisitos, depois desenvolve e finalmente habilita os testes, reiniciando o ciclo novamente. Testes Lançamento Codificação

PROTOTIPAÇÃO A prototipação pode ser a base de um processo de software. Permite o desenvolvimento rápido para esclarecer dúvidas, reduzindo os riscos e a incerteza do desenvolvimento. O protótipo começa com um conjunto simples de requisitos, quando apresentado aos clientes, este protótipo passa por refinamentos sucessivos, até que um protótipo final tenha sido obtido, permitindo então a codificação final.

MODELO V É uma variação do modelo em cascata. Proposto pelo ministério de defesa da Alemanha em 1992. A codificação é o vértice do V, a análise e projeto ficam em um lado e o testes do outro. Durante a verificação de problemas (lado direito), caso encontrados) o lado esquerdo pode ser revisto, permitindo a correção. O modelo V pode ser incrementado com prototipação. Principais desvantagens: Não aborda operações, manutenção, reparo nem descarte de sistemas!

DESENVOLVIMENTO ORIENTADO AO REUSO Sommervile (2003), na maioria dos projetos de software, ocorre algum reuso de software. Isto acontece quando as pessoas envolvidas no projeto de um software conhece outros projetos similares. Estes softwares similares sofrem pequenas modificações e são incorporados ao novo projeto em desenvolvimento. A abordagem voltada para a componentização de software, também trata do reuso de código entre projetos. Uma categoria de sistemas que se beneficia desta forma de trabalho são softwares de prateleira, pois muitos possuem funções similares, nesta categoria entram pequenas automações comerciais. Sua principal vantagem esta na redução de software a ser produzido, também propicia a redução do tempo de entrega. Sua desvantagem esta no controle sobre a evolução do sistema, pois partes do sistema, componentizadas estão sob controle de terceiros.

RUP Significa Rational Unified Process (processo unificado Rational), criado pela Rational Software Corporation. E desde fevereiro de 2003 pertence a IBM. O produto da IBM fornece uma base de conhecimento com artefatos de modelo e descrições detalhadas para muitos tipos diferentes de atividades. Os pilares da RUP: Um processo flexível que guie o desenvolvimento. Ferramentas que automatizem esse processo. Serviços que acelerem a adoção destes processos e ferramentas. Blocos de construção são também chamados de elementos de conteúdo. Linhas mestras: Gestão de requisitos Uso de arquitetura baseada em componentes Uso de software de modelos visuais Verificação da qualidade do software Gestão e Controle de Mudanças do Software Foco nos 4 P: Pessoas, Projeto, Produto, Processos

BREVE RESUMO DO RUP

DESENVOLVIMENTO ÁGIL 1. Acceptance Test Driven Development (ATDD) 2. Agile Modeling 3. Agile Unified Process (AUP) 4. Continuous integration (CI) 5. Crystal Clear 6. Crystal Methods 7. Dynamic Systems Development Method (DSDM) 8. Extreme Programming (XP) 9. Feature Driven Development (FDD) 10. Graphical System Design (GSD) 11. Kanban 12. Lean software development 13. Scrum 14. Scrum-ban 15. Story-driven modeling 16. Test-driven development (TDD) 17. Velocity tracking 18. Software Development Rhythms

SCRUM Scrum é um processo iterativo de desenvolvimento incremental de software. Ele vai do desenvolvimento de produto até a entrega da aplicação. Seu foco está em: Ser uma estratégia de desenvolvimento flexível, do produto, onde uma equipe de desenvolvimento funciona como uma unidade para alcançar um objetivo comum. Os criadores (em 1986 foram Hirotaka Takeuchi e Ikujiro Nonaka) descreveram o scrum como: uma nova abordagem para o desenvolvimento de produtos comerciais que aumenta a velocidade e flexibilidade, com base em estudos de caso de empresas de fabricação nas indústrias de fotocopiadoras, automotivo e impressora. Eles chamaram esta abordagem de holística ou rugby, porque todo o processo é realizado por uma equipe multifuncional em várias fases sobrepostas

KANBAN

KANBAN BOARD

KANBAN BOARD

KANBAN

CONSIDERAÇÕES FINAIS Conhecer os processos de desenvolvimento habilita o aluno a realizar uma melhor escolha de processo para uso em projetos futuros. A vantagem de conhecer vários processos permite inclusive evitar futuros problemas com projetos em andamento (o principal seria a mudança da metodologia de trabalho) o que impacta no custo e cronograma do projeto. Também permite conhecer vantagens e desvantagens de cada um possibilitando que se possa inclusive desenvolver um processo próprio e específico para uma empresa ou projeto de software.

REFERÊNCIAS BIBLIOGRÁFICAS Básica PFLEEGER, Shari Lawrance. Engenharia de software teoria e prática. 2ª. ed. São Paulo : Prentice Hall, 2004. SOMMERVILLE, Ian. Engenharia de Software. 6ª. Ed. São Paulo : Addison Wesley, 2003. BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 1.ed. Rio de Janeiro: Elsevier, 2007. Complementar FERNANDES, Aguinaldo, Aragon. TEIXEIRA, Descartes de Souza. Fábrica de software implantação e gestão de operações. São Paulo : Atlas, 2004. MONTEIRO, Emiliano S. Projeto de Sistemas e bancos de dados. São Paulo: Brasport, 2004. LARMAN, Craig. Utilizando UML e padrões: uma introdução à análise e o projeto orientados a objetos e ao processo unificado. 2.ed. Porto Alegre: Bookman, 2004.. Outras referências podem ser encontradas na página da disciplina em: www.pontodeensino.com