Engenharia de Software



Documentos relacionados
Engenharia de Software

ENG1000 Introdução à Engenharia

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

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

5. Métodos ágeis de desenvolvimento de software

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

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

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

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

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

Engenharia de Software II

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

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

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

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

Notas de Aula 02: Processos de Desenvolvimento de Software

Unified Process e MSF

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

ENGENHARIA DE SOFTWARE I

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

Prof. Me. Marcos Echevarria

Sistemas de Informação I

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

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

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

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

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

Jonas de Souza H2W SYSTEMS

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

Engenharia de Software II

4.1. UML Diagramas de casos de uso

Modelos do Design de Software

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

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

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

Professor: Curso: Disciplina:

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

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

Resumo artigo Agile Modeling- Overview

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

Sistemas de Informação e Programação II Odorico Machado Mendizabal

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

Modelos de processos de desenvolvimento de software

Diagrama de contexto

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

AULA 1 INTRODUÇÃO - ENGENHARIA DE SOFTWARE. Prof. Msc. Hélio Esperidião

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

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

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

Desenvolvimento Ágil de Software em Larga Escala

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

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

Requisitos e Modelação

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

Projeto de Sistemas I

Metodologia Projectual?

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

Diagrama de transição de Estados (DTE)

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

Planeamento Serviços Saúde

Metodologias Ágeis. Aécio Costa

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

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

Sistemas de Informação I

Pós Graduação Engenharia de Software

Processo Unificado (RUP)

Engenharia de Software I

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

Organização. Trabalho realizado por: André Palma nº Daniel Jesus nº Fábio Bota nº Stephane Fernandes nº 28591

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

REQUISITOS. Prof. Msc. Hélio Esperidião

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

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

Modelos de Processo (métodos)

Ciclo de Vida de um Projeto

Negócios à Sua dimensão

Engenharia de Software

Introdução Engenharia de Software

Prototipação de Software

Processos de Desenvolvimento de Software. Prof. Hélio Engholm Jr

Processo de Desenvolvimento Unificado

Liderança.

Sistemas de Informações Gerenciais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

O que é um processo de software?

Componente de Formação Técnica. Disciplina de

Modelo Cascata ou Clássico

PHC dteamcontrol Interno

Com metodologias de desenvolvimento

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 Apostam na produção rápida de software flexível e de qualidade Manifesto Ágil (princípios alternativos) Valorização das pessoas e interacções em relação aos processos e às ferramentas É preferível gastar tempo a programar do que a preparar documentação Enfatisa a colaboração com o cliente e não o contrato Concentra-se em responder às alterações pedidas e não em criar um plano e segui-lo 24

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 Crystal: diversas abordagens baseadas no princípio da unicidade de um projecto (políticas e convenções próprias) Scrum: iterações de 30 dias. Várias equipas autónomas e organizadas. Coordenação feita com breves reuniões diárias 25 métodos ágeis: Extreme Programming Princípios 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 frequencia retroalimentação: revisita rapidamente as actividades durante o processo de desenvolvimento 26

Extreme Programming (práticas) Jogo do planeamento (cliente define o valor) Pequenas versões Metáfora Desenho simples Testes de aceitação Programação aos pares Posse colectiva Integração contínua (pequenos incrementos) Ritmo sustentável (40 h/ semana) Padrões de codificação Refactoring 27 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 Refactoring É difícil alterar continuamente a progamação sem degradar a arquitectura inicial 28

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 29