Engenharia de Software

Documentos relacionados
Engenharia de Software

Tópicos. Métodos Ágeis. Histórico; Valores; Métodos Ágeis x Modelos Tradicionais; Exemplo: Referências Bibliográficas.

Desenvolvimento Ágil de Software

Engenharia de Software II

Gestão de Projectos. Processos e Aproximações de Desenvolvimento de Projectos. Informáticos. Selecção da Aproximação de Projectos

Engenharia de Software

ENG1000 Introdução à Engenharia

MANIFESTO ÁGIL. Esses conceitos aproximam-se melhor com a forma que pequenas e médias organizações trabalham e respondem à mudanças.

5. Métodos ágeis de desenvolvimento de software

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Desenvolvimento Ágil Modelos Ágeis. Profª Esp.: Maysa de Moura Gonzaga

Análise de Sistemas. Conceito de análise de sistemas

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Capítulo 2. Processos de Software Pearson Prentice Hall. Todos os direitos reservados. slide 1

Prof. Me. Marcos Echevarria

ENGENHARIA DE SOFTWARE I

Desenvolvendo Software Livre com Programação extrema

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Engenharia de Software II

Desenvolvimento Ágil de Software em Larga Escala

Sistemas de Informação I

Segurança de Aplicações Aula 6

Engenharia de Software. Parte I. Introdução. Metodologias para o Desenvolvimento de Sistemas DAS

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

Desenvolvimento Iterativo. Unified Process (UP) Esta abordagem ao desenvolvimento

PROCESSOS DE DESENVOLVIMENTO DE SOFTWARE 1. VISÃO GERAL 1.1. PROCESSOS EM GERAL

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

A Evolução de XP segundo Kent Beck Parte 2

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Unified Process e MSF

Sistemas de Informação I

Professor: Curso: Disciplina:

XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp

DSI é o processo cujo objetivo é introduzir mudanças num sistema de informação, com objetivo de melhorar o seu desempenho.

DISCIPLINA ENGENHARIA DE SOFTWARE Aula 03 Processo Unificado e Desenvolvimento Ágil. Profª Esp.: Maysa de Moura Gonzaga

Metodologias Ágeis. Aécio Costa

Gestão dos Níveis de Serviço

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

Projeto de Sistemas I

Com metodologias de desenvolvimento

Após completar este módulo você deverá ter absorvido o seguinte conhecimento: Uma ampla visão do framework Scrum e suas peculiaridades

Jonas de Souza H2W SYSTEMS

Modelo Cascata ou Clássico

DESENVOLVER E GERIR COMPETÊNCIAS EM CONTEXTO DE MUDANÇA (Publicado na Revista Hotéis de Portugal Julho/Agosto 2004)

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

Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação UFJF

GESTÃO de PROJECTOS. Gestor de Projectos Informáticos. Luís Manuel Borges Gouveia 1

Durante o desenvolvimento e execução de um projeto, ele passa por diversas fases, a esse conjunto de fases se denomina ciclo de vida.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Notas de Aula 02: Processos de Desenvolvimento de Software

Agenda. Introdução Etapas genéricas Atividades de apoio Ferramentas de apoio Modelos genéricos Modelos de mercado Modelos de melhoria

O DESAFIO DOS EXECUTIVOS

Ciclo de Vida Clássico ou Convencional CICLOS DE VIDA DE DESENVOLVIMENTO DE SISTEMAS. Ciclo de Vida Clássico ou Convencional. Enfoque Incremental

Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Programa de Pós-Graduação em Informática

Objetivos. Processos de Software. Tópicos abordados. O processo de software. Modelos genéricos de modelos de processo de software.

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

Liderança.

Negócios à Sua dimensão

Engenharia de Software I

Planeamento Serviços Saúde

Manifesto Ágil e as Metodologias Ágeis (XP e SCRUM)

Engenharia de Software Sistemas Distribuídos

REVISÃO ENGENHARIA DO SOFTWARE. Isac Aguiar isacaguiar.com.br

Princípios da Engenharia de Software Aula 02. Prof.: Franklin M. Correia

Base de Dados para Administrações de Condomínios

Criatividade e Inovação Organizacional: A liderança de equipas na resolução de problemas complexos

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

sistemas de informação nas organizações

Indice. Parte I - Um Modelo de Gestão de Projectos. Introdução... 1

Engenharia de Software: conceitos e aplicações. Prof. Tiago Eugenio de Melo, MSc tiagodemelo@gmail.com

Gerência de Projetos

Engenharia de Software I. Aula 15: Metodologias Ágeis. Prof. Márcio D. Puntel

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

UTILIZAÇÃO DAS METODOLOGIAS ÁGEIS XP E SCRUM PARA O DESENVOLVIMENTO RÁPIDO DE APLICAÇÕES

natureza do projeto e da aplicação métodos e ferramentas a serem usados controles e produtos que precisam ser entregues

Métodos Ágeis para Desenvolvimento de Software Livre

PHC Factoring CS. A gestão dos contratos de Factoring

REPROJETO DA ORGANIZAÇÃO COM SISTEMAS DE INFORMAÇÃO

PROPOSTA DE PROJECTO DE ROTEIRO DE ELABORAÇÃO DE ESTRATÉGIA NACIONAL DE DESENVOLVIMENTO DE ESTATÍSTICA

CONHEÇA. nosso. processo. Para você lançar sua Startup. Semana de descoberta. Semana de desenvolvimento. E depois de tudo pronto?

O Processo Unificado

O modelo unificado de processo. O Rational Unified Process, RUP.

Requisitos e Modelação

Modelos do Design de Software

05/05/2010. Década de 60: a chamada Crise do Software

Engenharia de Requisitos

PHC dteamcontrol Interno

Modelos de processos de desenvolvimento de software

Laudon & Laudon MIS, 7th Edition. Pg. 1.1

Descrição de Tarefas para a Posição de Director de Programas, Políticas e Comunicação da AAMOZ

Gerenciamento de Projetos de Software esenvolvidos à Luz das Metodologias Ágeis. Ana Liddy C C Magalhães

Transcrição:

Engenharia de Software Processos de software Departamento de Matemática Universidade dos Açores Hélia Guerra helia@uac.pt Processo Um processo é uma série de etapas envolvendo actividades, restrições e recursos, tendo em vista a produção de determinado produto. Envolve um conjunto de técnicas e de ferramentas 2

características de um processo Prescreve todas as actividades principais Utiliza recursos, sujeitos a restrições (e.g. calendarização) Produz produtos intermédios e finais Pode ser composto por subprocessos organizados hierarquicamente Cada actividade tem definidos critérios de entrada e de saída As actividades organizam-se sequencialmente, do ponto de vista temporal Tem um conjunto de linhas orientadoras que explicam os objectivos de cada actividade Pode haver restrições para cada actividade, cada recurso e cada produto 3 ciclo de vida do software Quando um processo envolve a construção de um produto de software, diz-se que o processo é o ciclo de vida do software Definição e análise de requisitos Desenho do sistema Desenho do programa Escrita dos programas Testes modulares, de integração e do sistema Entrega do sistema Manutenção 4

importância do processo Impõe consistencia e estrutura às actividades de desenvolvimento Facilita a compreensão, o controlo e a verificação das actividades Permite registar experiencias que poderão ser usadas em futuros processo 5 modelo de processos Cria uma forma de entendimento comum das actividades, recursos e restrições ao processo Ajuda a equipa a encontrar inconsistencias, redundancias, omissões no processo em geral e nas suas partes em particular Define os objectivos do desenvolvimento (detectar faltas cedo, obter programas de elevada qualidade, respeitar o orçamento) Deve ser escolhido pela equipa o modelo que melhor se adapta aos seus objecivos 6

Modelos de processos de Software Modelo em Cascata (Waterfall) Modelo em V Modelo de prototipagem Especificação operacional Desenvolvimento faseado: iterativo e incremental Modelo em espiral Métodos ágeis 7 Modelo em cascata Foi um dos primeiros modelos propostos (Winston Royce, 1970) As etapas surgem sequencialmente a cada etapa é associada a construção de produtos intermédios, sendo necessário terminar uma etapa antes de iniciar a seguinte 8

Modelo em cascata 9 Modelo em cascata Simples e fácil de explicar aos clientes Visão de alto nível do processo de desenvolvimento Existem marcos e produtos intermédios associados a cada etapa, facilitando a gestão do projecto Funciona bem quando se percebe bem o problema ou quando os requisitos são definitivos 10

Modelo em cascata Ignora a iteração muitas vezes presente no desenvolvimento de aplicações não descreve como é que cada actividade transforma o produto intermédio recebido no produto intermédio produzido 11 prototipagem no modelo em cascata Um protótipo é um produto parcialmente desenvolvido O desenho do protótipo ajuda a equipa de desenvolvimento a encontrar estratégias de desenho alternativas o protótipo da interface com o utilizador ajuda o utilizador a perceber como ficará o sistema A prototipagem é útil para a verificação e validação em diferentes etapas do processo 12

prototipagem no modelo em cascata 13 Modelo em v Variante do modelo em cascata Utiliza testes de módulos para verificar o desenho Utiliza testes de integração para verificar a arquitectura do sistema Utiliza teste de aceitação para validar os requisitos Caso surjam problemas na verificação e na validação, o lado esquerdo do V pode ser executado novamente para serem feitas as respectivas alterações 14

Modelo em v 15 modelo de prototipagem A prototipagem é a base do modelo Reduz riscos de incerteza no desenvolvimento 16

modelo de especificação operacional Os requisitos podem ser examinados e as suas implicações avaliadas ainda na fase inicial do processo A funcionalidade e o desenho fundem-se 17 modelo de desenvolvimento faseado Ciclo de desenvolvimento curto O sistema é entregue em partes clientes vão vendo algumas funcionalidades, enquanto a equipa vai desenvolvendo o resto Há dois sistemas a funcionar em paralelo sistema de produção (versão n): está a ser usado pelo cliente sistema de desenvolvimento (versão n+1): a versão seguinte que está a ser preparada 18

modelo de desenvolvimento faseado 19 modelo de desenvolvimento faseado Desenvolvimento Incremental: começa com subsistema pequeno e funcional, depois acrescenta novas funcionalidades a cada versão Desenvolvimento Iterativo: começa com o sistema completo que vai sofrendo alterações de funcionalidades em cada versão 20

modelo de desenvolvimento faseado Vantagens O treino e a familiarização dos utilizadores pode decorrer cedo, mesmo que faltem algumas funções Clientes/utilizadores ficam motivados desde cedo para novas funcionalidades Versões frequentes permitem corrigir problemas inesperados rapidamente e globalmente A equipa de desenvolvimento pode focar diferentes áreas de conhecimento nas diferentes versões 21 modelo em espiral Boehm, 1988 Combina as actividades do processo com a gestão do risco para minimizar e controlar o risco O modelo apresenta-se como uma espiral onde cada iteração é representada por um circuito à volta de quatro fases: Planificação Determinação de objectivos, alternativas e restrições Avaliação de alternativas e riscos Desenvolvimento e teste 22

modelo em espiral 23 métodos ágeis Agilidade ligeireza desembaraço vivacidade 24

métodos ágeis Apostam na produção rápida e eficiênte de software flexível e de qualidade, sem burocracia e de forma competitiva Contrastam com o formalismo de gestão de projectos e produção de extensa documentação associada aos processos anteriores Seguem abordagem iterativa e incremental, procurando minimizar os riscos do desenvolvimento cada iteração é um mini-projecto 25 Manifesto para o desenvolvimento ágil de software (www.agilealliance.org,2001) Principais valores Pessoas e interacções, em vez de processos e ferramentas. A motivação, a qualidade de vida, o ritmo de trabalho e as relações inter-pessoais são prioritários Software que trabalha, em vez de gastar tempo a preparar documentação de um sistema cujo desenvolvimento nunca chega ao fim Colaboração com o cliente e não a negociação do contrato. Estabelecer uma relação de confiança e de colaboração é preferível do que perder tempo a negociar cláusulas e a desgastar a relação Responder à mudança, e não seguir um plano 26

Manifesto para o desenvolvimento ágil de software (www.agilealliance.org,2001) Principais princípios Prioridade em satisfazer o cliente, através de entregas antecipadas e contínuas de software com valor Alterações dos requisitos são bem-vindas, mesmo no fim do desenvolvimento (vantagem competitiva) Trabalhar em equipa é sempre necessário Motivar e confiar Comunicar cara-a-cara Software a funcionar é a principal medida de progresso 27 Manifesto para o desenvolvimento ágil de software (www.agilealliance.org,2001) Promover desenvolvimento sustentável em que os participantes mantenham um ritmo constante e saudável de trabalho Excelência técnica e desenho de qualidade Simplicidade é essencial Equipa auto-organizada que trabalha em conjunto em todo o projecto Reflectir em equipa para afinar e ajustar o comportamento 28

métodos ágeis (exemplos) Extreme programming (XP): desenvolve software com requisitos incompletos e em constante mudança. Efectua acompanhamento constante e pequenos ajustes durante todo o processo de desenvolvimento Scrum: entrega incremental (iterações de 30 dias). Várias equipas autónomas e organizadas. Coordenação feita com breves reuniões diárias 29 métodos ágeis: Extreme Programming Valores da XP Comunicação: contínua entre clientes e equipas de desenvolvimento Simplicidade: escolhe desenho mais simples Coragem: entrega de novas funcionalidades cedo e com frequência. Persistência e capacidade de resolver problemas não triviais Feedback: revisita rapidamente as actividades durante o processo de desenvolvimento Respeito: respeito e sentido de responsabilidade 30

métodos ágeis: Extreme Programming Princípios da XP feedback rápido simplicidade mudanças incrementais abraçar a mudança 31 Extreme Programming (práticas) Jogo do planeamento (cliente define o valor e equipa estima o esforço) Pequenas versões Metáfora (história simples explicativa do sistema) Desenho simples e pragmático Desenvolvimento conduzido por testes (programa-se testes unitários ainda antes do código, cuja execução garante a correcção do sistema) 32

Extreme Programming (práticas) Refactorização Programação aos pares (um escreve e o outro verifica e pensa) Propriedade colectiva do código (é de todos) Integração contínua do código (pequenos incrementos) Ritmo de trabalho sustentável (40 h/semana) Padrões de codificação Incluir o cliente no projecto (representante do cliente a tempo integral) 33 34

Extreme Programming (equipa) programador (papel central, atribui tarefas e participa na calendarização) cliente (define as prioridades e a calendarização testador (tester) - apoia o cliente gestor (das pessoas da equipa) monitorizador (tracker) treinador (coach) - responsável pela aplicação da XP consultor (participa pontualmente) 35 demasiado extremo As práticas de XP são interdependentes Quando uma se altera as outras ficam vulneráveis Os requisitos têm que passar por testes de software não é para isso que o cliente paga Refactorização É difícil alterar continuamente a progamação sem degradar a arquitectura inicial 36

resumo O processo de desenvolvimento envolve actividades, recursos e produtos Há modelos de processos com diferentes perspectivas: organizacional, funcional, comportamental, etc Um modelo de processo é útil para a execução, colaboração e coordenação do trabalho em equipa 37