engenharia de software i - aula 1 - slides

49
Prof. Ms. Ronaldo Martins da Costa

Upload: rommeloliveira

Post on 11-Dec-2015

6 views

Category:

Documents


4 download

DESCRIPTION

Aula de engenharia de software - parte 1

TRANSCRIPT

Page 1: Engenharia de Software I - Aula 1 - Slides

Prof. Ms. Ronaldo Martins da Costa

Page 2: Engenharia de Software I - Aula 1 - Slides

� Compreender a importância da disciplina no

desenvolvimento de software; As

características específicas de cada tipo de

ciclo de vida e sua importância nociclo de vida e sua importância no

desenvolvimento de software.

� Introduzir as metodologias e técnicas para

desenvolvimento de software.

� Selecionar as ferramentas adequadas para

cada etapa de desenvolvimento de software.

Page 3: Engenharia de Software I - Aula 1 - Slides

� Aulas expositivas e dialogadas com auxilio de

recursos audiovisuais.

� Resolução de listas de exercícios.

Aulas práticas no Laboratório de Informática.� Aulas práticas no Laboratório de Informática.

Page 4: Engenharia de Software I - Aula 1 - Slides
Page 5: Engenharia de Software I - Aula 1 - Slides

� Freqüência Mínima ���� 75% = 12 semanas

� Média Final-Aprovação Direta(MF) ���� 7.0

� Aprovação com Exame(MFExame) ����5.0

� Condição para fazer o exame ���� 5.0 ≥ MF < 7.0� Condição para fazer o exame ���� 5.0 ≥ MF < 7.0

� Aprovação no exame ���� 5.0

+

+

+=∑∑

== 1.0*3.0*.

6.0*2

21 11

n

Listas

n

TrabPP

MF

n

i

n

i

+=2

ExameMFMFExame

Page 6: Engenharia de Software I - Aula 1 - Slides

� Software:

� Instruções (programas de computador) que,

quando executadas, produzem a função e o

desempenho desejado;desempenho desejado;

� Estruturas de dados que possibilitam que os

programas manipulem adequadamente a

informação;

� Documentos que descrevem a operação e o uso

dos programas.

Page 7: Engenharia de Software I - Aula 1 - Slides

Avanços da microeletrônica

Maior poder de computação a custo baixo

Maior qualidade de armazenamento e processamento

Osoftware é o mecanismo

que possibilita aproveitar e dar

vazão a esse potencial

Page 8: Engenharia de Software I - Aula 1 - Slides

� 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.

Page 9: Engenharia de Software I - Aula 1 - Slides

� Software não desgasta!

� Software não é sensível aos problemas

ambientais que fazem com que o hardware se

desgaste.desgaste.

� Toda falha indica erro de projeto ou

implementação: manutenção do SW é mais

complicada que a do HW.

Page 10: Engenharia de Software I - Aula 1 - Slides

� O hardware sofreu contínuas mudanças.

� O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos.qual havia poucos métodos sistemáticos.

� O hardware era de propósito geral.

� O software era específico para cada aplicação.

� Não havia documentação.

Page 11: Engenharia de Software I - Aula 1 - Slides

� Multiprogramação e sistemas multiusuários.

� Sistemas de tempo real.

1a geração de SGBD’s.� 1a geração de SGBD’s.

� Produto de software - software houses.

� Bibliotecas de Software.

� Cresce no de sistemas baseado em computador.

� Manutenção quase impossível...... CRISE DE..... CRISE DE SOFTWARE SOFTWARE

Page 12: Engenharia de Software I - Aula 1 - Slides

� Sistemas distribuídos.

� Redes locais e globais.

� Uso generalizado de microprocessadores -� Uso generalizado de microprocessadores -

produtos inteligentes.

� Hardware de baixo custo.

Page 13: Engenharia de Software I - Aula 1 - Slides

(Quarta era do software: atualidadeatualidade)

� Tecnologias orientadas o objetos.

� Sistemas especialistas e software de

inteligência artificial usados na prática.

� Software de rede neural artificial.

� Computação Paralela.

� Internet.

Page 14: Engenharia de Software I - Aula 1 - Slides

Hoje o software é um negócio competitivo.

Os principais direcionadores que propiciarão uma intensa

competição na área de software são: custo, adequação decompetição na área de software são: custo, adequação de

prazo e qualidade.

Intensifica-se, portanto, uma rápida movimentação dos

desenvolvedores para adotar práticas modernas de Engenharia

de Software.

Page 15: Engenharia de Software I - Aula 1 - Slides

11-- InstruçõesInstruções

Quando executadas produzem a função e o desempenho desejados.

22 -- EstruturasEstruturas dede DadosDados

Possibilitam que os programas manipulem adequadamente a

informação.

33 -- DocumentosDocumentos

Descrevem a operação e o uso dos programas.

Page 16: Engenharia de Software I - Aula 1 - Slides

� Desenvolvido ou projetado por engenharia,

não manufaturado no sentido clássico.não manufaturado no sentido clássico.

� Não se desgasta mas se deteriora.

� A maioria é feita sob medida em vez de ser

montada a partir de componentes existentes.

Page 17: Engenharia de Software I - Aula 1 - Slides

“desgaste”“desgaste”“mortalidadeinfantil”

“mortalidadeinfantil”

índice de

índice de

“desgaste”“mortalidadeinfantil”

índice de

tempotempo

infantil”infantil”de falhas

de falhas

tempo

infantil”de falhas

Page 18: Engenharia de Software I - Aula 1 - Slides

Software não se “desgasta”, mas se deteriora!

� Durante sua vida, o software enfrentará mudanças(manutenção). Quando estas são feitas, é provável quenovos defeitos sejam introduzidos, fazendo com que anovos defeitos sejam introduzidos, fazendo com que acurva do índice de falhas apresente picos, como mostra afigura abaixo. Antes que a curva possa retornar ao índicede falhas estável original, outra mudança é solicitada,fazendo com que a curva apresente um novo pico.Levemente, o nível de índice de falhas mínimo começa ase elevar – software está se deteriorando devido àsmudanças.

Page 19: Engenharia de Software I - Aula 1 - Slides

índice de mudançamudança

curva realcurva realíndice de

falhasmudançamudança

curva idealizada

tempo

Page 20: Engenharia de Software I - Aula 1 - Slides

� São criados por meio de uma série de

conversões que mapeiam as exigências do

cliente para código executável em máquina.

Modelo de

Exigências

do Cliente

ProjetoCodificação em

Linguagem

Page 21: Engenharia de Software I - Aula 1 - Slides

� Um modelo (ou protótipo) das exigências é

convertido num projeto. O projeto de software é

convertido numa forma de linguagem que

especifica a estrutura de dados do software, osespecifica a estrutura de dados do software, os

atributos procedimentais e os requisitos

relacionados. A forma de linguagem é processada

por um tradutor que a converte em instruções

executáveis em máquina

Modelo de

Exigências

do Cliente

ProjetoCodificação em

Linguagem

Page 22: Engenharia de Software I - Aula 1 - Slides

� Componentes de software são construídos

usando uma linguagem de programação que

tem um vocabulário limitado, uma gramática

explicitamente definida e regras de sintaxeexplicitamente definida e regras de sintaxe

bem formadas.

� Essas atribuições são essenciais para a

tradução por máquina.

� Componentes devem possuir reusabilidade

(Software de alta Qualidade).

Page 23: Engenharia de Software I - Aula 1 - Slides

� Um componente reusável engloba tanto

dados como processamento num único

pacote (às vezes chamado classe ou objeto),

possibilitando que o engenheiro de softwarepossibilitando que o engenheiro de software

crie novas aplicações a partir de partes

reusáveis.

Page 24: Engenharia de Software I - Aula 1 - Slides

� As interfaces interativas hoje em dia,

freqüentemente são construídas utilizando-

se componentes reusáveis que possibilitam a

criação de janelas gráficas, menus pull-downcriação de janelas gráficas, menus pull-down

e uma ampla variedade de mecanismos de

interação.

Page 25: Engenharia de Software I - Aula 1 - Slides

� As estruturas de dados e detalhes de

processamento exigidos para se construir a

interface com os usuários estão contidas

numa biblioteca (classes) de componentesnuma biblioteca (classes) de componentes

reusáveis para construção de interfaces.

Page 26: Engenharia de Software I - Aula 1 - Slides

� Qualquer situação em que um conjunto

previamente especificado de passos

procedimentais (algoritmo) tiver sido

definido (notáveis exceções a essa regra são odefinido (notáveis exceções a essa regra são o

software de sistema especialista e o software

de rede neural).

Page 27: Engenharia de Software I - Aula 1 - Slides

� Software básico:

Coleção de programas escritos para dar apoio a outros programas(compiladores, editores, utilitários de gerenciamento de arquivos,drivers).

Apresenta forte interação com o hardware de computador.

Intenso uso por múltiplos usuários.

Operações concorrentes que exigem escalonamento (componentesdo SO).

Compartilhamento de recursos.

Page 28: Engenharia de Software I - Aula 1 - Slides

�Software de tempo-real:

Um software que monitora/analisa/controla eventos do mundo

real).

A resposta em tempo real tipicamente varia de 1 milisegundo a 1

minuto).

Um sistema de tempo real deve responder dentro de restrições de

tempo estritas.

Page 29: Engenharia de Software I - Aula 1 - Slides

�Software Comercial:

O processamento de informações comerciais é a maior área

particular de aplicação de software.

Folha de pagamento.

Contas a pagar e a receber.

Controle de estoque.

Page 30: Engenharia de Software I - Aula 1 - Slides

�Software Científico e de Engenharia:

O software científico e de engenharia tem sido caracterizados

por algoritmos de processamento de números.

Astronomia.

Vulcanologia.

Mecânica de automóveis.

Biologia molecular.

Page 31: Engenharia de Software I - Aula 1 - Slides

�Software embutido (embedded software):

Produtos inteligentes têm-se tornado comuns em quase todo o

mercado industrial e de consumo.mercado industrial e de consumo.

� Reside na memória só de leitura (read-only) e é usado para controlar

produtos e sistemas para os mercados industriais e de consumo.

�Controle de teclado para fornos de microondas.

�Automóveis: Controle de combustível, mostradores no painel,

sistemas de freio, etc.

Page 32: Engenharia de Software I - Aula 1 - Slides

�Software de Computador Pessoal:

� Processamento de Textos.

� Planilhas Eletrônicas.Planilhas Eletrônicas.

� Diversões.

� Aplicações Financeiras.

Page 33: Engenharia de Software I - Aula 1 - Slides

�Software de Inteligência Artificial (Artificial Intelligency):

Faz uso de algoritmos não-numéricos para resolver problemascomplexos que não sejam favoráveis à computação ou à análise direta.

Sistemas Especialistas.

Sistemas Tutores Inteligentes (Intelligent Tutorial System)

Reconhecimento de padrões: voz e imagem.

Redes Neurais Artificiais: simula a estrutura dos processoscerebrais (a função do neurônio biológico).

Page 34: Engenharia de Software I - Aula 1 - Slides

Refere-se a um conjunto de problemas encontrados no

desenvolvimento de software:

As estimativas de prazo e de custo freqüentemente são As estimativas de prazo e de custo freqüentemente são imprecisasimprecisasAs estimativas de prazo e de custo freqüentemente são As estimativas de prazo e de custo freqüentemente são imprecisasimprecisas

“Não dedicamos tempo para coletar dados sobre o processo de

desenvolvimento de software.”

“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 35: Engenharia de Software I - Aula 1 - Slides

A produtividade das pessoas da área de software A produtividade das pessoas da área de software não tem acompanhado a demanda por seus não tem acompanhado a demanda por seus serviços.serviços.serviços.serviços.

“Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente.”

Page 36: Engenharia de Software I - Aula 1 - Slides

A qualidade de software às vezes é menos que adequadaA qualidade de software às vezes é menos que adequada

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

O software existente é muito difícil de manterO 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.

Page 37: Engenharia de Software I - Aula 1 - Slides

�estimativas de prazo e de custo

�produtividade das pessoas

�qualidade de software

�software difícil de manter

Page 38: Engenharia de Software I - Aula 1 - Slides

11.. OO PróprioPróprio carátercaráter dodo SoftwareSoftware

O software é um elemento de sistema lógico e não físico.

Conseqüentemente, 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!!!O software não se desgasta, mas se deteriora!!!

Page 39: Engenharia de Software I - Aula 1 - Slides

2. Falhas das pessoas responsáveis pelo 2. Falhas das pessoas responsáveis pelo

desenvolvimento do software.desenvolvimento do software.

Gerentes sem nenhum background em softwareGerentes 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 40: Engenharia de Software I - Aula 1 - Slides

“O estabelecimento e uso de sólidos princípios de

engenharia para que se possa obter

economicamente um software que seja confiável eeconomicamente um software que seja confiável e

que funcione eficientemente em máquinas reais”

1ª definição - Fritz Bauer, 1969

Page 41: Engenharia de Software I - Aula 1 - Slides

(1) aplicação de uma abordagem sistemática, disciplinada e

quantificável ao desenvolvimento, operação e

manutenção de software, ou seja, a aplicação da

engenharia ao softwareengenharia ao software

(2) o estudo de abordagens do tipo declarado em (1)

[IEEE]

Page 42: Engenharia de Software I - Aula 1 - Slides

� Ainda que muitas definições abrangentes tenham

sido propostas, todas elas reforçam a exigência da

disciplina de engenharia no desenvolvimento de

software.software.

� Para se atingir um perfil de qualidade eu necessito

usar da Engenharia de Software.

Page 43: Engenharia de Software I - Aula 1 - Slides

� A engenharia de software é um rebento da

engenharia de sistemas e de hardware.

� Possibilitar a construção de software de alta

qualidade.

Page 44: Engenharia de Software I - Aula 1 - Slides

Métodos

Engenharia

de

Software

Ferramentas

Procedimentos

Page 45: Engenharia de Software I - Aula 1 - Slides

Métodos:

Proporcionam os detalhes de “como fazer” para construir o

software. Envolvem:

Planejamento e estimativa de projeto

Análise de requisitos de software e de sistemas

Projeto de estrutura de dados

Arquitetura de programa e algorítmo de processamento

Codificação, teste e manutenção

Page 46: Engenharia de Software I - Aula 1 - Slides

Ferramentas:

Proporcionam apoio automatizado ou semi-automatizado aos

métodos.

Quando as ferramentas são integradas de forma que a

informação criada por uma ferramenta possa ser usada por

outra, é estabelecido um sistema de suporte ao

desenvolvimento de software chamado engenharia de

software auxiliada por computador (CASE – Computer-Aided

Software Engineering)

Page 47: Engenharia de Software I - Aula 1 - Slides

Procedimentos:

Elo de ligação que mantém juntos os métodos e as ferramentas

e possibilita o desenvolvimento racional e oportuno do software

de computador. Definem a sequencia de aplicação dosde computador. Definem a sequencia de aplicação dos

métodos, os controles que ajudam a assegurar a qualidade e

coordenar as mudanças.

Page 48: Engenharia de Software I - Aula 1 - Slides

� A Engenharia de Software compreende um

conjunto de etapas que envolve métodos,

ferramentas e os procedimentos discutidosferramentas e os procedimentos discutidos

anteriormente.

� Essas etapas são citadas como paradigmas da

Engenharia de Software.

Page 49: Engenharia de Software I - Aula 1 - Slides

Métodos Ciclo deMétodos

+

Ferramentas

+

Procedimentos

Ciclo de

vida