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



Documentos relacionados
Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I Aula 3

Engenharia de Software

Especialização em Engenharia de Software e Banco de Dados

PROJETO DE SISTEMAS. Professora Lucélia

O que é um processo de software?

Processos de Desenvolvimento de Software. Ricardo Argenton Ramos UNIVASF Engenharia de Software I - Aula 2

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

Engenharia de Software

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

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

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

Engenharia de Software I Para que eu Preciso Saber Engenharia de Software?

ENGENHARIA DE SOFTWARE

Engenharia de Software I Modelos de Processo de Software

Especialização em Engenharia de Software e Banco de Dados

Engenharia de Software

Introdução à ES - Continuação

Processo de Software

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

Engenharia de Software

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

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

Unidade I Conceitos BásicosB. Conceitos BásicosB

Modelo Cascata. Alunos: Bruno Nocera Zanette Pedro Taques

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

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Características do Software

Metodologia de Desenvolvimento de Sistemas

Engenharia de Software I Para que eu Preciso Saber Engenharia de Software?

Professor: Curso: Disciplina:

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

Engenharia de Software

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

PROFESSOR: CRISTIANO MARIOTTI

Engenharia de Software

O Processo de Desenvolvimento de Software. Engenharia de Software

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

Projeto de Sistemas I

Análise e Projeto de. Aula 01. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

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

Visão Geral Parte 1. O que é engenharia de software?

ENGENHARIA DE SOFTWARE II

Engenharia de Software 01 - Introdução. Márcio Daniel Puntel marciopuntel@ulbra.edu.br

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

ANÁLISE E PROJETO DE SISTEMAS

APRESENTAÇÃO DA DISCIPLINA QUALIDADE DE SOFTWARE. Isac Aguiar isacaguiar.com.br

Introdução à Engenharia de Software

Pós Graduação Engenharia de Software

Processo de Desenvolvimento de Software

Sistemas de Informação I

ENG1000 Introdução à Engenharia

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

Fundamentos de Engenharia de Software. Josino Rodrigues

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

Engenharia de Software II

Modernização e Evolução do Acervo de Software. Gustavo Robichez de Carvalho guga@les.inf.puc-rio.br

Engenharia de Software I. Prof. André Castro Garcia

Jonas de Souza H2W SYSTEMS

Faculdade Pitágoras. Engenharia de Software. Prof.: Julio Cesar da Silva.

Introdução à Engenharia de Software

Prof. Me. Marcos Echevarria

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

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

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

Sistemas de Gerenciamento de Banco de Dados

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

Extração de Requisitos

Gerenciamento de Problemas

Qualidade de Software

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

Introdução à Computação

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

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

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

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

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

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

Introdução a Computação

Desempenho e Segurança em Sistemas de Informação. Profa.: Me. Christiane Zim Zapelini christianezapelini@nwk.edu.br

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

Fundamentos de Sistemas de Informação Sistemas de Informação

Desenvolvimento Ágil de Software

GARANTIA DA QUALIDADE DE SOFTWARE

Processos de Desenvolvimento de Software

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

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

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

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

Metodologia de Desenvolvimento de Software. Prof. M.Sc. Sílvio Bacalá Jr

QUALIDADE DE SOFTWARE

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

SISTEMAS DE INFORMAÇÃO, ORGANIZAÇÕES, ADMINISTRAÇÃO E ESTRATÉGIA

Notas de Aula 02: Processos de Desenvolvimento de Software

ENGENHARIA DE SOFTWARE I

Transcrição:

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

Bibliografia Engenharia de Software, Roger Pressman, Makron Books: o mais completo (a bíblia) edição em português desatualizada (3a. Edição, de 1992) 4a. Edição em inglês. Software Engineering: Theory and Practice, Shari Pfleeger. Prentice Hall Sommerville, Addison Wesley, 1989.

1a. Aula Introdução a Engenharia de Software

Introdução O Software ultrapassou o Hardware como chave para o sucesso de muitos sistemas baseados em computador (Pressman, pg. 3, 1992)

A importância do Software Durante as 3 primeiras décadas da era do computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho. O hoje o desafio é melhorar a qualidade (e reduzir os custos) das soluções baseadas em SOFTWARE!

Filosofando... A mudança de uma sociedade industrial para uma baseada na informação é uma Radical Mudança Econômica: Material tem menos valor e Informação tem mais valor Antes: quanto menos pessoas possuísse algo, maior o valor. Hoje: quanto mais pessoas possuem algo, maior o valor.

O que é Software? Definição - Software é: 1 o - instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados; 2 o - estruturas de dados que permitem a manipulação das informações; 3 o - documentos que descrevem a operação e uso dos programas.

Características do Software - 1 O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico: Custos são concentrados no trabalho de engenharia. Projetos não podem ser geridos como projetos de manufatura. Fábrica de Software!

Características do Software - 2 Software não desgasta! Software não é sensível aos problemas ambientais que fazem com que o hardware se desgaste. Ver curvas de falha, páginas 14 e 15 do Pressman. Toda falha indica erro de projeto ou implementação: manutenção do SW é mais complicada que a do HW.

Características do Software - 3 A maioria dos softwares é feita sob medida e não montada a partir de componentes existentes.!= Hardware. Situação esta mudando: Orientação a objetos. Reusabilidade é o Santo Graal (diminui custos e melhora projetos).

Uma Crise no horizonte A industria de Software tem tido uma crise que a acompanha há quase 30 anos: Problemas não se limitam ao software que não funciona adequadamente, mas abrange: desenvolvimento, testes, manutenção, suprimento, etc.

Quais são os problemas? A sofisticação do software ultrapassou nossa capacidade de construção. Nossa capacidade de construir programas não acompanha a demanda por novos programas. Nossa capacidade de manter programas é ameaçada por projetos ruins.

Perguntas que Engenharia de Software quer responder: Porque demora tanto para concluir um projeto (não cumprimos prazos)? Porque custa tanto (uma ordem de magnitude a mais)? Porque não descobrimos os erros antes de entregar o software ao cliente? Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido?

Causas óbvias Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas a olho. Comunicação entre o cliente e o desenvolvedor é muito fraca. Falta de testes sistemáticos e completos.

Causas menos óbvias O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (característica 1). Gerentes sem background em desenvolvimento de SW. Profissionais recebem pouco treinamento formal. Falta investimento (em ES). Falta métodos e automação.

Mitos do Software - Administrativos Um manual oferece tudo que se precisa saber. Computadores de última geração solucionam problemas de desenvolvimento. Se estamos atrasados, basta adicionar programadores e tirar o atraso.

Mitos do Software - do Cliente Uma declaração geral é suficiente para começar a escrever programas. Mudanças podem ser facilmente acomodadas em um projeto (ver figura pg. 28).

Mitos do Software - do Profissional Um programa está terminado ao funcionar. Quanto mais cedo escrever o código, mais rápido terminarei o programa. Só posso avaliar a qualidade de um programa em funcionamento. A única coisa a ser entregue em um projeto é o programa funcionando.

Engenharia de Software: Definição Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais É METODOLOGIA!

Engenharia de Software: Abrangência E.S. possui 3 elementos fundamentais: métodos: como fazer ferramentas: apoio automatizado aos métodos. Procedimentos: elo de ligação entre os métodos e os procedimentos Existem diversos Paradigmas de Engenharia de Software: abordagens que envolvem estes métodos, ferramentas e procedimentos

Paradigmas de Engenharia de Software Existem dezenas. 4 principais: Ciclo de Vida Clássico (modelo Cascata) Prototipagem Espiral Técnicas de Quarta Geração Páginas 32 até 43 Pressman

Ciclo de Vida Clássico: modelo Cascata (Waterfall) Baseado em projetos de engenharia clássicos (não de Software) - 1970 Fases: Análise de requisitos Definição Projeto Implementação Integração e testes Operação e manutenção

Ciclo de Vida Clássico (II) Requirements definition System and software design Implementation and unit testing Integr ation and system testing Operation and maintenance de Sommerville, 1995.

Ciclo de Vida Clássico (III) Problemas: projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudanças depois de iniciado. Dificuldade de declaração de todas as exigências pelo cliente. Paciência!

Modelo Espiral de Boehm (1988) Determine ob jectiv es alternatives and cons traints Plan next phase REVIEW Requirements plan Life-cycle plan Develop ment plan Integration and test p lan Risk analys is Risk analys is Risk analys is Prototype 2 Risk analysis Prototy pe 1 Concept of Operation Requirement valid ation Design V&V Serv ice S/W requirements Accep tance test Prototype 3 Operational protoyp e Simulations, models, b en ch marks Prod uct design Integr ation test Ev aluate altern atives id en tify, resolve risk s Code Unit test Detailed design Develop, v erify next-level p rod uct

Fases do modelo Espiral Definição dos objetivos Especificação dos objetivos específicos desta fase. Análise dos riscos Identificação e solução dos principais riscos Desenvolvimento e validação Planejamento O projeto é revisto e se define planos para a próxima volta da espiral

Conclusão Software é elemento chave para o sucesso. Mas: Software não é hardware. Software não é fácil. Software mata. Precisamos de ajuda. Sugestão de trabalhos, início da ajuda: gerência de projetos.

Exercício para próxima aula Descreva 2 casos de problemas causados por erros em software que você conhece (OBS: não adianta falar do Windows) Descreva 2 produtos (que não seja um computador) onde o software faz a diferença.