Introdução à ES - Continuação



Documentos relacionados
ENGENHARIA DE SOFTWARE I

Introdução a Engenharia de Software

ENGENHARIA DE SOFTWARE

PROFESSOR: CRISTIANO MARIOTTI

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

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

Manutenção de Ambientes de Saúde

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

MÉTRICAS DE SOFTWARE

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

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

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

Distribuidor de Mobilidade GUIA OUTSOURCING

Universidade Paulista

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

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

ENGENHARIA DE SOFTWARE I

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

Engenharia de Software

! Software e Engenharia de Software! Engenharia de Software e Programação! Histórico. " Crise do Software

Jonas de Souza H2W SYSTEMS

Introdução a Engenharia de Software. Alterações na aula do Prof. Reinaldo Bianchi Alterado por: Antonio Carlos Souza ADS - IFBA

Projeto de Sistemas I

Leonardo Gresta Paulino Murta

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

Sistemas de Informação I

ISO/IEC 12207: Gerência de Configuração

Conceitos ADMINISTRAÇÃO DE SISTEMAS DE INFORMAÇÃO. Comunicação; Formas de escritas; Processo de contagem primitivo;

Exame de Fundamentos da ITIL

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

Gestão de Operações. Introdução a Engenharia de Produção

COMO FAZER A TRANSIÇÃO

Padrões de Qualidade e Métricas de Software. Aécio Costa

Tecnologia e Sistemas de Informações

UNIDADE 4. Introdução à Metodologia de Desenvolvimento de Sistemas

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

Ciência da Computação ENGENHARIA DE SOFTWARE. Análise dos Requisitos de Software

Gerenciamento de Problemas

Engenharia de Software Introdução. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 1

GARANTIA DA QUALIDADE DE SOFTWARE

Exame de Fundamentos da ITIL

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

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

Gestão da Qualidade Políticas. Elementos chaves da Qualidade 19/04/2009

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

Itinerários de Ônibus Relatório Final

ROTEIRO PARA ELABORAÇÃO DE PROJETOS

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

Metodologia de Desenvolvimento de Sistemas

Aula 04 - Planejamento Estratégico

Gerenciamento de Projetos Modulo II Clico de Vida e Organização

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

Engenharia de Software

Engenharia de Software II

Teste de Software. Profa. Cátia dos Reis Machado

Engenharia de Software Processo de Desenvolvimento de Software

Planejamento e Gerência de Projetos de Software. Prof.: Ivon Rodrigues Canedo. PUC Goiás

Engenharia de Software

Orientações iniciais. FATTO Consultoria e Sistemas -

Capítulo X. Gerenciar Mudanças dos Requisitos. Aluizio Saiter, M. Sc.

Tópicos. Engenharia de Software: Uma Visão Geral

Roteiro SENAC. Análise de Riscos. Planejamento do Gerenciamento de Riscos. Planejamento do Gerenciamento de Riscos

Qualidade de Software

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

Análise e Projeto de Sistemas. Engenharia de Software. Análise e Projeto de Sistemas. Contextualização. Perspectiva Histórica. A Evolução do Software

Por que gerenciar comunicação nos projetos?

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Gestão da Tecnologia da Informação

Orientação a Objetos

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

Testes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

A Disciplina Gerência de Projetos

Multiplexador. Permitem que vários equipamentos compartilhem um único canal de comunicação

Gestão de Pessoas e Projetos. Introdução. Prof. Luciel Henrique de Oliveira luciel@fae.br

Projeto de Desenvolvimento de Software. Apresentação (Ementa) e Introdução

Gestão da TI. Os custos escondidos da. Conheça os custos escondidos na gestão amadora da TI e pare de perder dinheiro.

Prof. JUBRAN. Aula 1 - Conceitos Básicos de Sistemas de Informação

MÓDULO 9 METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS

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

Ciência da Computação ENGENHARIA DE SOFTWARE. Recursos e Cronograma

Ciência da Computação ENGENHARIA DE SOFTWARE. Planejamento e Gerenciamento

Desenvolvimento Ágil de Software

Extração de Requisitos

Engenharia de Software I

Objetivos. Engenharia de Software. O Estudo de Viabilidade. Fase do Estudo de Viabilidade. Idéias chave. O que Estudar? O que concluir?

Requisitos. Professor Gabriel Baptista ( gabriel.baptista@uninove.br ) ( )

Prof. Me. Marcos Echevarria

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

Análise Estruturada de Sistemas

Requisitos. Sistemas de Informações

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

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

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

2 Diagrama de Caso de Uso

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Transcrição:

Introdução à ES - Continuação

Roteiro Software X Hardware Manutenção de software Elementos da ES Mitos do software Princípios de Hooker Modelos de ciclo de vida

Escopo do Curso Atividades de Desenvolvimento

Software Instruções: quando executadas, produzem a função com desempenho desejados Estruturas de dados: possibilitam que os programas manipulem a informação de maneira adequada e segura Documentos: descrevem a operação e o uso do programa

Software X Hardware Software é desenvolvido Alto custo de criação Baixo custo de reprodução Não enguiça, mas deteriora Defeitos no produto usualmente são consequências de problemas no processo de desenvolvimento Hardware é manufaturado Alto custo de reprodução Pode enguiçar Defeitos podem vir tanto na concepção quanto na produção Pode ser substituído na totalidade ou em partes

Software X Hardware Curva de falha de hardware

Software X Hardware Curva ideal de falha de software

Software X Hardware Curva real de falha de software

Por que fazer bem feito? Porque é mais barato! Historicamente, 60% a 80% do esforço total ocorre na manutenção Porque é mais rápido! Não ter tempo para fazer bem feito agora significa ter tempo para refazer depois Porque é mais fácil! Desenvolvimento ocorre uma única vez Manutenção é para sempre

O que é manutenção? O processo de modificar um sistema de software ou componente, depois da entrega, para corrigir falhas, melhorar desempenho ou outros atributos, ou adaptar a mudanças no ambiente. IEEE Std 620.12 1990

Quando inicia a manutenção?

Quais são os tipos de manutenção?

Quais são os tipos de manutenção? Manutenção corretiva Reativa Corrige problemas reportados Faz o software voltar a atender aos requisitos Manutenção emergencial Não programada Mantém temporariamente o sistema funcionando Necessita uma manutenção corretiva posterior

Quais são os tipos de manutenção? Manutenção preventiva Pró-ativa Corrige problemas latentes Manutenção adaptativa Mantém o software usável após mudanças no ambiente Manutenção perfectiva Provê melhorias para o usuário Melhora atributos de qualidade do software

Processo de Manutenção

Exercícios 1) Quais são os quatro principais atributos que todos os produtos de software devem ter? Sugira dois outros atributos que também considera importantes em um produto de software. 2) Os métodos de engenharia de software tornaram-se amplamente usados somente quando a tecnologia CASE tornou-se disponível para apoiá-los. Sugira três tipos de apoio a métodos que podem ser fornecidos pelas ferramentas CASE. 3) Para ajudar a conter o terrorismo, vários países estão planejando o desenvolvimento de sistemas de computador que monitorem 24 horas populações em grandes centros urbanos. Essa medida tem, obviamente, implicações quanto à privacidade. Discuta as questões éticas envolvidas no desenvolvimento desse tipo de sistema.

Elementos da ES Engenharia de Software

Elementos da ES Processo Define os passos gerais para o desenvolvimento e manutenção do software Serve como uma estrutura de encadeamento de métodos e ferramentas Métodos São os how to's de como fazer um passo específico do processo Ferramentas Automatizam o processo e os métodos

Elementos da ES Cuidado com o desenvolvimento guiado por ferramentas É importante usar a ferramenta certa para o problema O problema não deve ser adaptado para a ferramenta disponível Para quem tem um martelo, tudo parece prego

Elementos da ES 1. Coloque em uma panela funda o leite condensado, a margarina e o chocolate em pó 2. Cozinhe [no fogão] em fogo médio e mexa sem parar com uma colher de pau 3. Cozinhe até que o brigadeiro comece a desgrudar da panela 4. Deixe esfriar bem, então unte as mãos com margarina, faça as bolinhas e envolva-as em chocolate granulado O que é processo, método ou ferramenta????

Elementos da ES 1. Coloque em uma panela funda o leite condensad o, a margarina e o chocolate em pó 2. Cozinhe [no fogão] em fogo médio e mexa sem parar com uma colher de pau 3. Cozinhe até que o brigadeiro comece a desgrudar da panela 4. Deixe esfriar bem, então unte as mãos com margarina, faça as bolinhas e envolva-as em chocolate granulado Método Processo Ferramenta

O supermercado de ES ES fornece um conjunto de métodos para produzir software de qualidade Pense como em um supermercado: em função do problema, se escolhe o processo, os métodos e as ferramentas Cuidado Menos do que o necessário pode levar à desordem Mais do que o necessário pode emperrar o projeto

Engenharia de Software Um dos objetivos básicos da Engenharia de Software é transformar a criação de sistemas de software, realizada de maneira artística, indisciplinada e pouco entendível para uma forma devidamente controlada, quantificada e previsível

Crise do software Refere-se a um conjunto de problemas encontrados no desenvolvimento de software. Problemas concretos: Péssimas estimativas de prazo e custos Produtividade não tem aumentado tanto quanto a demanda Qualidade questionável dos produtos

Crise do software Dificuldades: Pouca coleta de dados Insatisfação do cliente Falta de garantia Manutenção caríssima

Causas Características próprias do software Produto lógico Falhas dos responsáveis pelo desenvolvimento de software Gerentes sem background Pouco treinamento Resistência a mudanças

Mitos do software Mitos do software gerenciais do cliente do desenvolvedor

Mitos gerenciais Basta um bom livro de ES para fazer um bom software Um bom livro com certeza ajuda, mas precisa refletir as técnicas mais eficientes e ser lido! Meu pessoal tem ótimas ferramentas de desenvolvimento, afinal compramos equipamento sofisticado É necessário mais do que as melhores ferramentas para se fazer um desenvolvimento de software de qualidade

Mitos gerenciais Se estivermos com o cronograma atrasado, basta adicionar mais gente ao projeto Adicionar gente a um projeto atrasado faz o projeto atrasar mais! Se o projeto for tercerizado, todos meus problemas estão resolvidos É mais difícil gerenciar projetos terceirizados do que projetos internos

Mitos do cliente No início, basta dar uma ideia geral do que é necessário Requisitos ambíguos normalmente são uma receita para desastre! Comunicação contínua com o cliente é fundamental! Modificações podem ser facilmente acomodadas, porque software é flexível O impacto de modificações no software varia em função da modificação e do momento em que ela é requisitada Comunicação contínua com o cliente é fundamental!

Mitos do cliente

Mitos do desenvolvedor Assim que o código for escrito, o trabalho termina 60% a 80% do esforço será gasto depois que o código for escrito! Vale a pena esforçar para chegar a um bom código (boa documentação, bom projeto, etc.) Só é possível verificar a qualidade de um software quando um executável existir Revisões usualmente são mais eficazes que testes, e podem ser utilizadas antes do software estar executável

Mitos do desenvolvedor O único produto a ser entregue em um projeto é o código Além do código, documentações tanto para a manutenção quanto para o uso são fundamentais ES gera documentação desnecessária ES foca em criar qualidade, e não criar documentos Algum grau de documentação é necessário para evitar retrabalho Questione sempre que encontrar um documento desnecessário para o projeto

Princípios de Hooker Tem que existir uma razão para se fazer software KISS Mantenha o estilo O que é produzido por você é consumido por outros Esteja pronto para o futuro Planeje para reutilização Pense http://www.macoratti.net/11/05/sd_prnc1.htm

Precisamos de ES

Resposta à crise do software Engenharia de Software: Processo de Software

Exercício 1) Problema Definir o procedimento de implantação para os dois cenários a seguir Cenário 1: urna eletrônica O software da urna eletrônica acabou de ser implementado, e precisa ser instalado em 480 mil urnas Cenário 2: padaria O software de controle de venda de pão da padaria do seu Manuel acabou de ser implementado, e precisa ser instalado

Exercício 2) Assuma as atividades básicas de todo processo como sendo Comunicação Planejamento Modelagem Construção Implantação Projete um processo que determina a ordem com que cada uma dessas atividades é executada Quais as características positivas ou negativas desse processo?

Bibliografia Engenharia de Software (Capítulo 1) - Roger Pressman 6ª edição. McGraw-Hill