fundamentos de engenharia de software willamys araújo

36
Fundamentos de Engenharia de Software Willamys Araújo

Upload: internet

Post on 21-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Fundamentos de Engenharia de Software Willamys Araújo

Fundamentos de Engenharia de Software

Willamys Araújo

Page 2: Fundamentos de Engenharia de Software Willamys Araújo

Motivação • Quando um Software é bem sucedido?

– Possui as necessidades das pessoas que o usam (who use it)– Executa perfeitamente em um longo período de tempo (long period

of time)– Fácil de modificar e utilizar

• PODE E MUDA COISAS PARA MELHOR• Quando um Software falha?

– Usuários estão insatisfeitos– Erros ocorrem– Difícil de modificar e utilizar

• COISAS RUIM PODEM E ACONTECEM

Page 3: Fundamentos de Engenharia de Software Willamys Araújo

Forma de Avaliação

• Prova Escrita• Projeto – Estudo de Caso - Software• Seminário

Page 4: Fundamentos de Engenharia de Software Willamys Araújo

Projeto• Os projetos visam aplicar os conceitos da ES no

desenvolvimento de um software - vivenciando um estudo de caso. – Construir o plano de desenvolvimento, análise, projeto, programação

(protótipo) e testes utilizando metodologia orientada a objetos. • Os Grupos devem ser de 2 ou 3 alunos • Os grupos devem definir o tema de pesquisa e

desenvolvimento do Software • A avaliação do Projeto é subdivida em 5 fases.

– Cada uma tem data a ser finalizada.

Page 5: Fundamentos de Engenharia de Software Willamys Araújo

Fases de Desenvolvimento do Software

• F1 - Definição do Tema e do Documento de Especificação do Sistema.

• F2 - Modelos de Análise (Especificação de Requisitos e Modelos).

• F3 - Modelos de Projeto.• F4 - Protótipo do Software (Implementação).• F5 - Proposta de Teste/Manutenção.

Page 6: Fundamentos de Engenharia de Software Willamys Araújo

Seminários

• As apresentações dos seminários iniciam aproximadamente no início de outubro. Após definidos os grupos será divulgado o horário de cada apresentação.

• As apresentações devem ter no máximo 45min de duração • Os grupos devem entregar como parte da avaliação do

seminário um artigo (segundo estrutura definida) de no máximo 10 páginas sobre o tema explorado. O artigo deve ser entregue como parte da avaliação do seminário e no máximo uma semana após a realização do mesmo.

Page 7: Fundamentos de Engenharia de Software Willamys Araújo

Temas

• Fábrica de Software • Teste e Depuração de Software • Qualidade e Gestão de Configuração de Software • Métricas no desenvolvimento do software • Modelos de Melhoria de Processo de Software

Page 8: Fundamentos de Engenharia de Software Willamys Araújo

Bibliografia

• Pressman, Roger S. Engenharia de Software. McGraw-Hill. 2006.

• Sommerville, Ian. Engenharia de Software. Prentice Hall. 2003.

• Cardoso, Caíque. UML na Prática. Ciência Moderna. 2003.• Conallen, Jim. Desenvolvendo Aplicações Web com UML.

Editora Campus, 2003. • Gustafson, David A.Teoria e problemas de engenharia de

software. Porto Alegre : Bookman, 2003.• Brooks Jr., Frederick P. The mythical man-month essays on

software engineering . Reading; Menlo Park : Addison-Wesley, 1975.

Page 9: Fundamentos de Engenharia de Software Willamys Araújo

O Software

• 1950 -1970: Desafio principal era desenvolver Hardware– reduzir o custo de processamento e

armazenamento de dados

• Hoje: Reduzir o custo e melhorar a qualidade dos Softwares (potencial da computação)– Funcionalidade– Human-Friendly

Page 10: Fundamentos de Engenharia de Software Willamys Araújo

O que é Software?

Page 11: Fundamentos de Engenharia de Software Willamys Araújo

Definição Software

• Dicionário Aurélio:– Programa– Aquilo que pode ser executado por um

equipamento (o hardware)– Um produto comercializado que consiste em um

sistema de rotinas e funções

Page 12: Fundamentos de Engenharia de Software Willamys Araújo

Definição Software

1- INSTRUÇÕES (programas de computador) que quando executadas produzem a função e o

desempenho desejados

2 - ESTRUTURAS DE DADOS que possibilitam que os programas manipulem

adequadamente a informação

3 - DOCUMENTOS que descrevem a operação e o uso dos

programas

Page 13: Fundamentos de Engenharia de Software Willamys Araújo

Definição Software

Definição mais exata

• Analisar as características que o tornam diferente dos outros produtos

• Hardware: produto em forma física• Software: elemento de sistema lógico

Page 14: Fundamentos de Engenharia de Software Willamys Araújo

Características do Software

1. desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial)

sucesso é medido pela qualidade e não quantidade

Page 15: Fundamentos de Engenharia de Software Willamys Araújo

Características do Software

2. não se “desgasta”, mas se deteriora devido as mudanças

tempo

“desgaste”“mortalidade infantil”

índice de

falhas

Defeitos de projeto e manufatura

ProblemasAmbientais

(poeira, vibração, abuso, temperaturas, ...)

Curva de falhas para o hardware

Page 16: Fundamentos de Engenharia de Software Willamys Araújo

Características do Software

mudanças

índice de falhas

curva real

curva idealizada

tempo

Curva de falhas do software

Page 17: Fundamentos de Engenharia de Software Willamys Araújo

Falhas Hardware/software

• Quando um componente de hardware se desgasta é substituído por uma “peça de reposição”

• Não existe “peça de reposição” para software– Toda falha indica um erro no projeto ou no processo de tradução para

o código executável– Manutenção do software é mais complexa do que a do hardware

Page 18: Fundamentos de Engenharia de Software Willamys Araújo

Como Desenvolver um Software?

• Aplicado a qualquer problema em que um conjunto previamente de passos procedimentais tiver sido definido (algoritmo)

• Exceção: Softwares de Inteligência Artificial

Page 19: Fundamentos de Engenharia de Software Willamys Araújo

Aplicações SOFTWARE BÁSICO coleção de programas escritos para apoiar outros

programas. Forte interação com o hardware

• sistema operacional, compiladores, ...

SOFTWARE DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real

• sistema de controle de tráfego aéreo, relógio digital, ...

SOFTWARE COMERCIAL sistemas de operações comerciais e tomadas de decisões administrativas

• folha de pagamentos, contas a pagar e a receber, ...

Page 20: Fundamentos de Engenharia de Software Willamys Araújo

AplicaçõesSOFTWARE CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de

processamento de números

• astronomia, vulcanologia, análise de fadiga da mecânica de automóveis, biologia molecular, projeto CAD, ...

SOFTWARE EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo

• controle de microondas, de combustível, sistemas de freio

Page 21: Fundamentos de Engenharia de Software Willamys Araújo

AplicaçõesSOFTWARE DE COMPUTADOR PESSOAL envolve processamento de textos,

planilhas eletrônicas, computação gráfica, diversões, etc.

SOFTWARE DE INTELIGÊNCIA ARTIFICIAL faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta

• sistemas especialistas, reconhecimento de padrões, jogos, ...

Page 22: Fundamentos de Engenharia de Software Willamys Araújo

Evolução do Software

Hardware: maior desempenho, menor tamanho e custo

1950 1960 1970 1980 1990 2000

Os primeiros anos•Orientação batch•Distribuição limitada•Software customizado

A segunda era•Multiusuário•Tempo real•Banco de Dados•Software Houses

A terceira era•Sistemas Distribuídos•“Inteligência” embutida•Hardware de baixo custo(PCs)•workstation•Impacto de consumo

A quarta era•Tecnologia O. O.•Sistemas Especialistas•Redes Neurais•Computação Paralela

Page 23: Fundamentos de Engenharia de Software Willamys Araújo

A Crise do Software

Page 24: Fundamentos de Engenharia de Software Willamys Araújo

Crise do SoftwareRefere-se a um conjunto de problemas encontrados no

desenvolvimento de software: (problemas não se limitam a softwares que não funcionam adequadamente)

1 - As estimativas de prazo e de custo freqüentemente são imprecisas–“Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software”–“Estimativas são feitas a olho, com resultados ruins”

Page 25: Fundamentos de Engenharia de Software Willamys Araújo

Crise do Software

– “Os prazos arrastam-se por meses”

– “Causa insastifação para o cliente e falta de confiança”

– “Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões”

Page 26: Fundamentos de Engenharia de Software Willamys Araújo

Crise do Software

2 - A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços– “Os projetos de desenvolvimento de software

normalmente são efetuados apenas com um vago indício das exigências do cliente”

– “A comunicação entre o cliente e o desenvolvedor de software é muito fraca”

Page 27: Fundamentos de Engenharia de Software Willamys Araújo

Crise do Software

3- A qualidade de software às vezes é menos que adequada

– Não uso de técnicas de teste sistemáticas e completas

– Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software

Page 28: Fundamentos de Engenharia de Software Willamys Araújo

Crise do Software4- O software existente é muito difícil de manter– A tarefa de manutenção devora o orçamento destinado

ao software– A facilidade de manutenção não foi enfatizada como um

critério importante

– Esses problemas podem ser corrigidos– Abordagem de engenharia de software aliada a técnicas e

ferramentas

Page 29: Fundamentos de Engenharia de Software Willamys Araújo

Causas da Crise do Software

1- PRÓPRIO CARÁTER DO SOFTWARE– O software é um elemento de sistema lógico e

não físico. Consequentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas• O software não se desgasta, mas se deteriora

Page 30: Fundamentos de Engenharia de Software Willamys Araújo

Causas da Crise do Software

2- FALHAS DAS PESSOAS RESPONSÁVEIS PELO DESENVOLVIMENTO DE SOFTWARE

– Gerentes sem nenhum background em software– Os profissionais da área de software têm recebido

pouco treinamento formal em novas técnicas para o desenvolvimento de software

– Resistência a mudanças.

Page 31: Fundamentos de Engenharia de Software Willamys Araújo

Causas da Crise do Software

3- MITOS DO SOFTWARE– “Não oferecem lições humanas”– Muitas causas da crise de software podem ser

localizadas pela mitologia que surgiu durante a história do desenvolvimento do software

– Propagaram desinformação e confusão– Mitos

• Administrativos, do Cliente e do Profissional

Page 32: Fundamentos de Engenharia de Software Willamys Araújo

Qual é a Solução?

• Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos

Métodos e Técnicas para o disciplinar o processo de desenvolvimento do software

Page 33: Fundamentos de Engenharia de Software Willamys Araújo

Definição Engenharia de Software

• Fritz Bauer - 1969“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”

Page 34: Fundamentos de Engenharia de Software Willamys Araújo

Definição Engenharia de Software

• IEEE“A aplicação de uma abordagem

sistemática, disciplinada e quantificável para o

desenvolvimento, operação e manutenção do software e o estudo

das abordagens para tal”

Page 35: Fundamentos de Engenharia de Software Willamys Araújo

Definição Engenharia de Software

• Arndt Von Staa, 1987“O desenvolvimento e a aplicação de ciência,

matemática, técnicas, métodos e ferramentas para o desenvolvimento e a manutenção econômica de sotfware de qualidade preditível e controlável, operando de modo econômico em máquinas e

ambientes reais”

Page 36: Fundamentos de Engenharia de Software Willamys Araújo

Engenharia de Software

“Uma disciplina da Ciência da Computação que oferece Métodos, Técnicas e Ferramentas para

desenvolver e manter softwares com alta qualidade para a resolução de problemas”.

(Anneliese Mayrhauser, 1990)