ENGENHARIA DE SOFTWARE I



Documentos relacionados
Universidade Federal do Espírito Santo Centro de Ciências Agrárias CCA-UFES Departamento de Computação

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 Processo de Desenvolvimento de Software

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

Resumo do BABok 2.0 O Guia de Referência de Análise de Negócio Curso de Analista de Negócio 3.0

Fundamentos de Engenharia de Software Professor Rafael Escalfoni

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

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

Universidade Paulista

Engenharia de Software II

Sistemas de Informação I

TI Aplicada. Aula 02 Áreas e Profissionais de TI. Prof. MSc. Edilberto Silva prof.edilberto.silva@gmail.com

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

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

Introdução a Computação

Gerência de Projetos Prof. Dr. Sandro Ronaldo Bezerra Oliveira

Sistemas de Informação I

GARANTIA DA QUALIDADE DE SOFTWARE

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

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

Processos de Desenvolvimento de Software

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

Pós Graduação Engenharia de Software

Desenvolvimento Ágil de Software

Tópicos em Engenharia de Software (Optativa III) AULA 2. Prof. Andrêza Leite (81 )

Projeto de Sistemas I

Prof. Me. Marcos Echevarria

NORMA ISO/IEC Isac Aguiar isacaguiar.com.br

Engenharia de Software

Gerenciamento de Integração do Projeto Planejamento e Execução do Projeto

ATO Nº 91/2015/GP/TRT 19ª, DE 1º DE JUNHO DE 2015

Resumo artigo Agile Modeling- Overview

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos

Melhorias de Processos de Engenharia de Software

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

Gerência de Projetos

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

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Introdução ao OpenUP (Open Unified Process)

development Teresa Maciel DEINFO/UFRPE

Engenharia de Software II

Referências internas são os artefatos usados para ajudar na elaboração do PT tais como:

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

Prof. Me. Marcos Echevarria

Com metodologias de desenvolvimento

Gerenciamento de Projetos Modulo II Ciclo de Vida e Organização do Projeto

O Rational Unified Process (RUP) é um processo de desenvolvimento de software inspirado no

Metodologia de Gerenciamento de Projetos da Justiça Federal

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

Implantação de um Processo de Medições de Software

SETIS- III Seminário de Tecnologia Inovação e Sustentabilidade 4 e 5 de novembro de 2014.

CES-32 e CE-230 Qualidade, Confiabilidade e Segurança de Software. Conceitos de Qualidade. CURSO DE GRADUAÇÃO e DE PÓS-GRADUAÇÃO DO ITA

Processo de Desenvolvimento Unificado

Introdução à Engenharia de Software

Trilhas Técnicas SBSI

Sistemas de Informação I

CIÊNCIA DA COMPUTAÇÃO Engenharia de SoftwareLuiz Carlos Aires de Macêdo. Gestão de Projeto de Software

Prova de Conhecimento para Consultores de Implementação MPS.BR INSTRUÇÕES

Tecnologia e Sistemas de Informações

MASTER IN PROJECT MANAGEMENT

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

Introdução à Qualidade de Software. Profº Aldo Rocha

Metodologia e Gerenciamento do Projeto na Fábrica de Software

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

Glossário Apresenta a definição dos termos, siglas e abreviações utilizadas no contexto do projeto Citsmart.

QUALIDADE DE SOFTWARE. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 27 Slide 1

Engenharia de Software. Artigo revista Engenharia de Software, edição 30 (novembro 2010)

UNIP Ciência da Computação / Sistemas de Informação TED I - Orientações Gerais para Elaboração dos Documentos

Gerenciamento de Projetos

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

Gerenciamento de Problemas

Jonas de Souza H2W SYSTEMS

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

Atividade da gerência da qualidade

Planejamento de Projetos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

O Processo Unificado

Qualidade, Processos e Gestão de Software Professores: Alexandre Vasconcelos e Hermano Moura. O Modelo. Wesley Torres Galindo. wesleygalindo@gmail.

PROJETO DE FÁBRICA DE SOFTWARE

Capítulo 1. Extreme Programming: visão geral

Qualidade de Processo de Software Normas ISO e 15504

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

Fábrica de Software 29/04/2015

Processo de Implementação de um Sistema de Gestão da Qualidade

Qualidade de Software MPS.BR - Questões CESPE (2010 a 2013)

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

Aula Anterior. Capítulo 2

MELHORIA DE SERVIÇO CONTINUADA ITIL FOUNDATION V3 Conteúdo deste resumo deve ser contemplado com a leitura do livro ITIL Melhoria de Serviço

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

QUALIDADE DE SOFTWARE

Material de Apoio. Sistema de Informação Gerencial (SIG)

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

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

Projeto 2.47 QUALIDADE DE SOFTWARE WEB

Transcrição:

ENGENHARIA DE SOFTWARE I Prof. Cássio Huggentobler de Costa [cassio.costa@ulbra.br] Twitter: www.twitter.com/cassiocosta_

Agenda da Aula (002) Metodologias de Desenvolvimento de Softwares Métodos Ágeis Processo de Software Ciclo de Vida Gerência de Projetos de Software

METODOLOGIAS ÁGEIS Scrum, Extreme Programming (XP), e outros, estabeleceram princípios comuns compartilhados por todos esses métodos, criando a Aliança Ágil, estabelecendo o Manifesto Ágil (2001)

Manifesto Ágil Conceitos chave do Manifesto Ágil : Indivíduos e interaçõesao invés de processos e ferramentas Software executável ao invés de documentação Colaboração do cliente ao invés de negociação de contratos Respostas rápidas a mudanças ao invés de seguir planos

Manifesto Ágil O Manifesto Ágil não rejeita os processos e ferramentas, a documentação, a negociação de contratos ou o planejamento, mas simplesmente mostra que eles têm importância secundária quando comparado com os indivíduos e interações... Esses conceitos aproximam-se melhor com a forma que pequenas e médias empresa trabalham e respondem a mudanças.

Extreme Programming (XP) Metodologia ágil para equipes pequenas e médias que desenvolvem software baseado em requisitos vagos e que se modificam rapidamente. Principais diferenças da XP para outras metodologias: Feedback constante Abordagem incremental A comunicação entre as pessoas é encorajada A maioria das regras da XP causam polêmica a primeira vista e muitas não fazem sentido se aplicadas isoladamente.

Extreme Programming (XP) Principais valores: Comunicação: manter o melhor relacionamento possível entre clientes e desenvolvedores, preferindo conversas pessoais a outros meios de comunicação. Simplicidade: visa permitir a criação de código simples que não deve possuir funções desnecessárias, evitando funcionalidades que podem ser úteis no futuro. Feedback constante: o programador terá informações constantes do código e do cliente, tendo freqüentemente uma parte do software totalmente funcional para avaliar.

Extreme Programming (XP) A XP baseia-se em 12 práticas: 1. Planejamento: decidir o que é necessário ser feito e o que pode ser adiado no projeto, baseando-se em requisitos atuais, e não em requisitos futuros. 2. Entregas Frequentes: visa a construção de um sw simples, e conforme os requisitos surgem, há a atualização do sw. 3. Metáfora: são as descrições de um software sem a utilização de termos técnicos, com o intuito de guiar o desenvolvimento do software

Extreme Programming (XP) A XP baseia-se em 12 práticas (continuação): 4. Projeto Simples: o programa desenvolvimento pelo método XP deve ser o mais simples possível e satisfazer os requisitos atuais, sem a preocupação de requisitos futuros. 5. Testes: focaliza a validação do projeto durante todo o processo de desenvolvimento. Os programadores desenvolvem o software criando primeiramente os testes. 6. Programação em pares: a implementação do código é feita em duplas, em um único computador. O desenvolvedor que está com o controle do teclado e mouse implementa o código, enquanto o outro observa procurando erros e possíveis melhorias, além de ambos estarem aprendendo um com o outro;

Extreme Programming (XP) A XP baseia-se em 12 práticas (continuação): 7. Refatoração: focaliza o aperfeiçoamento do projeto do software e está presente em todo o desenvolvimento. Deve ser feita apenas quando é necessário, ou seja, quando percebe-se que é possível simplificar o módulo atual sem perder nenhuma funcionalidade. 8. Propriedade coletiva: o código do projeto pertence a todos os membros da equipe. Qualquer pessoa que perceba que pode agregar valor ao código, pode fazê-lo, desde que faça a bateria de testes necessárias. 9. Integração contínua: é a prática de interagir e construir o sistema de software várias vezes por dia, mantendo os programadores em sintonia, além de possibilitar processos rápidos.

Extreme Programming (XP) A XP baseia-se em 12 práticas (continuação): 10. 40 horas de trabalho semanal: não deve fazer horasextras constantemente. 11. Cliente presente: é fundamental a participação do cliente durante todo o desenvolvimento do projeto. 12. Código padrão: padronização na arquitetura do código, para que este possa ser compartilhado entre todos os programadores.

Processo de Software Conjunto de atividades, métodos, práticas e transformações que guiam pessoas na produção de um software Um processo eficaz deve, claramente, considerar: As relações entre as atividades Os artefatos produzidos no desenvolvimento As ferramentas Os procedimentos necessários A habilidade, treinamento e motivação do pessoal envolvido.

Definição de Processos No centro da arquitetura de um processo de desenvolvimento estão algumas atividades chave: Análise e especificação de requisitos Projeto Desenvolvimento Testes

Definição de Processos Envolve a escolha de um modelo de ciclo de vida O detalhamento (decomposição) de suas macro-atividades Escolha de métodos Escolha de técnicas Escolha de roteiros(procedimentos) Definição dos recursos e artefatos que serão desenvolvidos

Definição de Processos Devem ser definidos caso a caso Devem considerar: As especificidades de cada aplicação A tecnologia a ser utilizada na sua construção A organização onde o produto será desenvolvido O grupo de desenvolvimento

O objetivo de se definir um processo de software é favorecer a produção de sistemas de alta qualidade, atingindo as necessidades dos usuários finais, dentro de um cronograma e orçamento previsíveis.

Escolha de um modelo de Ciclo de Vida Um modelo de ciclo de vida organiza as macro-atividades básicas, estabelecendo precedência e dependência entre as mesmas. Pode ser entendido como passos ou atividades que devem ser executados durante um projeto

Fatores que influenciam a definição de um processo Tipo de software (sistema de informação, sistema de tempo real, etc.); Paradigma (orientado a objetos, etc.); Domínio da aplicação; Tamanho; Complexidade; Características da equipe...

Definição de Processos Padrão São coleções de ativos de processo de software para uma organização Pode-se adaptar o processo padrão para alguma situação específica Para apoiar a definição de processos existem diversas normas e modelos de qualidade: ISO9001, ISO/IEC 12207, ISO/IEC 15504, CMM, CMMI, MPS.BR O objetivo dessas normas é apontar características que um bom processo de software tem que apresentar, deixando a organização livre para estruturar essas características segundo sua própria cultura

Ciclo de Vida de um Software De maneira geral, o ciclo de vida de um software envolve as seguintes fases: 1. Planejamento 2. Análise e Especificação de Requisitos 3. Projeto 4. Implementação 5. Testes 6. Entrega e Implantação 7. Operação 8. Manutenção

Ciclo de Vida: 1. Planejamento Objetiva oferecer estrutura quer possibilite ao gerente fazer estimativas razoáveis de recursos, custos e prazos. Objetiva estabelecer o escopo do software Objetiva estabelecer uma proposta de desenvolvimento de software A medida em que o projeto progride, o planejamento deve ser detalhado e atualizado regularmente. Pelo menos ao final de cada uma das fases do ciclo de vida o planejamento como um todo deve ser revisto.

Ciclo de Vida: 2. Análise e Especificação de Requisitos É o onde o processo de levantamento de requisitos é intensificado Definição do escopo e identificação dos requisitos Compreender o domínio do problema Compreender as funcionalidades e comportamentos esperados Uma vez identificados os requisitos do sistema, estes devem ser modelados, avaliados e documentados. Construção de um modelo descrevendo o que o software tem que fazer (e não como fazer)

Ciclo de Vida: 3. Projeto Fase responsável por incorporar os requisitos tecnológicos aos requisitos essenciais do sistema, modelados na fase anterior Requer que a plataforma de desenvolvimento seja conhecida Envolve duas grande etapas: Projeto da arquitetura do sistema Projeto detalhado

Ciclo de Vida: 3. Projeto Projeto da Arquitetura do Sistema Objetiva definir a arquitetura geral do software, tendocomobase o modeloconstruídonafasede análise de requisitos Deve descrever a estrutura de nível mais alto da aplicação e identificar seus principais componentes Projeto Detalhado Objetiva detalhar o projeto de software para cada componente identificado na etapa anterior Os componentes devem ser sucessivamente refinados em níveis de maior detalhamento, até que possam ser codificados e testados.

Ciclo de Vida: 4. Implementação Tradução do projeto em uma forma passível de execução pela máquina Também chamada de fase de desenvolvimento Cada unidade de software do projeto detalhado é escrita

Ciclo de Vida: 5. Testes Inclui diversos níveis de testes, como por exemplo: Teste de unidade Teste de integração Teste de sistema Inicialmente cada unidade de software deve ser testada e os resultados documentados Os diversos componentes devem ser integrados sucessivamente até se obter o sistema Finalmente o sistema como um todo deve ser testado

Ciclo de Vida: 6. Entrega e Implantação Depois de testado, o software deve ser colocado em produção Objetiva estabelecer que o software satisfaça os requisitos dos usuários Isso é feito instalando o software e condizindo testes de aceitação (validação) Necessita-se: Treinar o usuário Configurar o ambiente de produção (Converter bases de dados)

Ciclo de Vida: 7. Operação É a fase em que os usuários utilizam o software em ambiente de produção.

Ciclo de Vida: 8. Manutenção O software sempre necessita de mudanças depois de entregue para o usuário Muitas vezes, em função do porte e do tipo de manutenção necessária, essa fase pode requerer um novo processo

Gerência de Projeto de Software Envolve: Produtos: a primeira coisa a se fazer é definir o escopo do projeto, fazendo um levantamento de requisitos inicial, decompondo o problema (dividir para conquistar). Sistema Sub-sistemas» Módulos Sub-módulos ou funções Processos Pessoas: várias pessoas exercendo diferentes papeis como gerente de projeto, analistas, projetistas, engenheiro de software, programadores, engenheiros de testes, gerente da qualidade, clientes e usuários

Atividades Típicas da Gerência de Projetos Determinação do escopo do software; Definição do processo de software do projeto; Realização de estimativas; Estimativa de tamanho; Estimativa de esforço; Estimativa(alocação) de recursos; Estimativa de tempo (elaboração do cronograma do projeto); Estimativa de custos; Gerência de riscos; Elaboração do plano de projeto.