Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos...

25
Engenharia de Software I Prof. Josué Froner

Transcript of Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos...

Page 1: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Engenharia de Software I

Prof. Josué Froner

Page 2: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Introdução

Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar a definição modularidade e arquitetura, ciclo de vida do software, reutilização, medição, ferramentas e ambientes integrados, trabalhar a distinção entre engenharia de software e ciência da computação;

Page 3: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

O que é software?

Em geral, é o conjunto de programas, e sua respectiva documentação, que instruem computadores a realizar funções desejadas. Em termos simples, são conjuntos de instruções para um computador (NASA).

Conjunto de programas, procedimentos, dados e documentação associados a um sistema de computador, e não somente ao programa em sí (PFLEEGER)

Page 4: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Compreendendo o software

Desenvolvido por engenharia e não manufaturado;

Não tem desgaste; Construção do software é exclusiva

para o problema em questão. Desenvolvido através de códigos

(linguagens); Diferentes tipos de aplicações.

Page 5: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Curva de falhas real para o software

Curva ideal

Curva real

mudança tempo

Índ

ice d

e f

alh

as

Page 6: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Software no tempo

1-orientacao batch, distribuição limitada, software customizado

2 – multiusuário, tempo real, banco de dados, produtos de software

3 – sistemas distribuídos, Inteligência embutida, Hardware de baixo custo, impacto de consumo

4 - sistemas de desk-top poderosos, tecnologias orientadas a objetos, sistemas especialistas, redes neurais artificiais, computação paralela

195019601970

1980

1990

2000

50/60- sem metodologia, programar é arte

60 – conceito de estruturação: programação, projeto e análise estruturada

60/70 – inicio do SGBD´s 1976 – Modelo Entidade

Relacionamento – Peter Shen

80 – Metodos: focados no processo x focados nos dados

81 – Eng. Informação : James Martin e Clive Finkelstein

84 – prevalencia da funcionalidade sobre os dados origina a análise de PF, OO

95 – criação do conceito de caso de uso – Ivar Jacobson

96 – criação UML 97 – jacobson lança RUP

Mais info: http://www.cesarkallas.net/arquivos/faculdade/engenharia_de_software/02-Origens%20da%20Modelagem/Origens%20da%20Modelagem.pdf

Page 7: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Importância

Software é fator que diferencia; Evolução do hardware evolução do software

= aproveitar as potencialidades;PARA QUÊ SOFTWARE? automatização de processos; melhorar qualidade das informações; apoiar decisões estratégicas; mais credibilidade as informações;

Page 8: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Crise do software

Aflição crônica (Prf. Daniel Teichroew, 1989) Não funcionamento adequado; métodos de desenvolvimento; Processo de manutenção crescente com o

aumento de software no mercado; Estimativas de prazos imprecisas; Produtividade dos trabalhadores da área não

acompanham a demanda; Qualidade do software a desejar

Page 9: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Causas da aflição ou crise

Elemento de sistema lógico e único -> desafio intelectual probabilidade de falhas é um fato;

Manutenção envolve correção ou modificação no projeto;

Falta de experiência em gerenciamento de software;

Profissionais com pouco treinamento formal.

Page 10: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Mitos

Administrativos Utilização correta de manuais de padrões; CASE atualizadas mas sem utilização; Contratação de novos profissionais para compensar o

atraso; Do cliente

Objetividade profissional dos desenvolvedores e gerencia para com o anseio do cliente (detalhar, requisitos);

Do profissional O trabalho nunca fica completo plenamente; Avaliação continua do trabalho não só quando está

pronto; Entrega do software não é o fim temos a documentação

do mesmo como base;

Page 11: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

O que é Engenharia de Software? Definições formais

Segundo Bauer (1969): estabelecimento e uso de princípios e métodos comprovadamente eficazes de engenharia a fim de obter software: Economicamente viável; Confiável; Operável em máquinas reais.

Page 12: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Engenharia de Software (IEEE)

Aplicação de abordagem sistemática, disciplinada e quantificada para o desenvolvimento, operação e manutenção do software. (IEEE, STD 610-1990) Além disso, compreende o estudo das abordagens em si.

Page 13: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Engenharia de Software

Disciplina tecnológica e gerencial que se preocupa com a produção sistemática e a manutenção dos produtos de software que são desenvolvidos e modificados no tempo e seguindo estimativas de custos.(Fairley, 1985)

Parte da engenharia de sistemas e de hardware, abrangendo um conjunto de três elementos fundamentais – métodos, ferramentas e procedimentos – possibilitando o gerenciamento e controle do processo de desenvolvimento de software visando a alta qualidade de desenvolvimento. (Pressman, 2006)

Page 14: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Engenharia de Software (Webopaedia)

Disciplina no ramo da Ciência da Computação que se preocupa com o desenvolvimento de grandes aplicações de software. Cobre não somente os aspectos técnicos do desenvolvimento de sistemas de software, mas também questões relativas a gerenciamento, tais como a direção de equipes de programação, cronograma e orçamento.

Page 15: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Em resumo (SEI):

Engenharia é a aplicação sistemática do conhecimento científico para a construção de soluções efetivas em custos para problemas práticos relativos à humanidade.

Engenharia de Software é o ramo da engenharia que aplica conceitos da Ciência da Computação e da Matemática para alcançar soluções efetivas em custos para problemas de software.

Page 16: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Por que Engenharia de Software?

Softwares que extraiam o potencial do hardware;

Ritmo de demanda de novos programas; Projetos ruins e recursos inadequados

interferem na manutenção de programas;

objetivo: Sistematizar o processo de

criação e manutenção de software

Page 17: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Problemática levantada

Tempo longo para conclusão de programas;

Custos elevados; Encontrar erros antes da entrega final

do software para o cliente; Difícil medição do progresso de

desenvolvimento;

Page 18: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Pilares da ES

(4Ps+1F) - Jacobson Pessoas Projeto Produto Processo Ferramentas

Page 19: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Pessoas

Arquitetos, desenvolvedores, engenheiros de teste, gerentes, usuários, clientes, patrocinadores, sponsors e todos os primariamente envolvidos em um projeto de software.

Page 20: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Projeto

O elemento organizacional através do qual o desenvolvimento de software é gerenciado. O seu resultado é o produto.

Page 21: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Produto

Artefatos que são criados durante o ciclo de vida do projeto, tais quais: modelos, código fonte, executáveis, e documentação. É o software per se.

Page 22: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Processo

Definição do conjunto completo de atividades necessárias para a transformação dos requisitos dos usuários em um produto. Um processo é um modelo para a criação de projetos.

Page 23: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Ferramentas

Software que é utilizado para a automação das atividades definidas no processo. Exemplo: ferramentas de engenharia de software auxiliada pelo computador (CASE) ou de gerenciamento de projeto.

Page 24: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Observação:

O processo que guia o desenvolvimento deve ser orientado às pessoas, ou seja, é agradável para todas as pessoas que o utilizam…

Page 25: Engenharia de Software I Prof. Josué Froner. Introdução Objetivo: apresentar conceitos introdutórios sobre Engenharia de Software, assim como auxiliar.

Referências

PRESSMAN, ROGER.S.ENGENHARIA DE SOFTWARE. SÃO PAULO: MAKRON, 2006

JURAN, J. GRYNA, FRANK. CONTROLE DA QUALIDADE: COMPONENTES BÁSICOS DA FUNÇÃO QUALIDADE - V.2 - SÃO PAULO : MAKRON, 1991.

PFLEEGER, SHARI L. ENGENHARIA DE SOFTWARE: TEIORIA E PRÁTICA. 2.ED.SÃO PAULO: PRENTICE HALL, 2004.

FAIRLEY, RICHARD. SOFTWARE ENGINEERING CONCEPTS. SINGAPORE: MCGRAW-HILL, 1985.

http://www.er.les.inf.puc-rio.br/ http://www.sei.cmu.edu/ e

http://www.sei.cmu.edu/pub/documents/92.reports/pdf/tr34.92.pdf http://engenhariadesoftware.blogspot.com/2007/02/o-que-

software.html