• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
11
0
0

Texto

(1)

Engenharia de Software:

Engenharia de Software:

Uma Visão Geral

Uma Visão Geral

SCE 186 - Engenharia de Software Profs. José Carlos Maldonado e Elisa Yumi Nakagawa

2o semestre de 2002 2

Tópicos

Tópicos

A importância do Software Software Aplicações de Software Mitos de Software

Processo de Desenvolvimento de Software Modelos de Processo de Desenvolvimento de Software 3

Software

Software

INSTRUÇÕES INSTRUÇÕES que quando executadas produzem a função e o desempenho desejados ESTRUTURAS DE DADOS

ESTRUTURAS DE DADOS que possibilitam que os programas manipulem adequadamente a informação DOCUMENTOS

DOCUMENTOS que descrevem a operação e o uso dos programas

4

Características do Software

Características do Software

desenvolvido ou projetado por

engenharia, não manufaturado no sentido clássico

não se desgasta mas se deteriora

5

Características do Software

Características do Software

desenvolvido ou projetado por

engenharia, não manufaturado no sentido clássico

não se desgasta mas se deteriora

tempo “desgaste” “mortalidade infantil” índice de falhas

CURVA DE FALHAS DO HARDWARE

6

Características do Software

Características do Software

desenvolvido ou projetado por

engenharia, não manufaturado no sentido clássico

não se desgasta mas se deteriora índice de falhas mudança curva real curva idealizada tempo

(2)

Características do Software

Características do Software

desenvolvido ou projetado por

engenharia, 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

Aplicações de Software

Aplicações de Software

BÁSICO DE TEMPO REAL COMERCIAL CIENTÍFICO E DE ENGENHARIA EMBUTIDO DE COMPUTADOR PESSOAL DE INTELIGÊNCIA ARTIFICIAL

Aplicações do Software

Aplicações do Software

BÁSICO coleção de programas escritos para dar apoio a outros programas

DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real COMERCIAL sistemas de operações comerciais e tomadas de decisões administrativas

10

Aplicações do Software

Aplicações do Software

CIENTÍFICO E DE ENGENHARIA caracterizado por algoritmos de processamento de números EMBUTIDO usado para controlar produtos e sistemas para os mercados industriais e de consumo

DE COMPUTADOR PESSOAL envolve processamento de textos, planilhas eletrônicas, diversões, etc

.

11

Aplicações do Software

Aplicações do 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

12

Evolução do Software

Evolução do Software

(1950 - 1965)

O hardware sofreu contínuas mudanças O software era uma arte "secundária" para a 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

(3)

13

Evolução do Software

Evolução do Software

(1965 – 1975) Multiprogramação e sistemas multiusuários Técnicas interativas Sistemas de tempo real 1a geração de SGBD’s

Produto de software - software houses Bibliotecas de Software

14

Evolução do Software

Evolução do Software

(1965 – 1975)

Cresce o número de sistemas baseado em computador

Manutenção quase impossível

...

... CRISE DE

CRISE DE

SOFTWARE

SOFTWARE

15

Evolução do Software

Evolução do Software

(1975 - hoje)

Sistemas distribuídos Redes locais e globais

Uso generalizado de microprocessadores - produtos inteligentes

Hardware de baixo custo Impacto de consumo

16

Evolução do Software

Evolução do Software

(Quarta era do software de computador)

Tecnologias orientadas a objetos Sistemas especialistas e software de inteligência artificial usados na prática Software de rede neural artificial Computação Paralela

17

(1965 - 1975)

Cresce o número de sistemas baseado em computador

Manutenção quase impossível

Evolução do Software

Evolução do Software

... CRISE DE

... CRISE DE

SOFTWARE

SOFTWARE

CRISE DE SOFTWARE

Refere-se a um conjunto de

Refere-se a um conjunto de problemas

problemas

encontrados no desenvolvimento de

encontrados no desenvolvimento de

software

software

AFLIÇÃO CRÔNICA

18

Crise de Software - problemas

Crise de Software - problemas

1-1- As estimativas de prazo e de custo As estimativas de prazo e de custo freqüentemente são imprecisas freqüentemente são imprecisas

“ 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”

(4)

Crise de Software - problemas

Crise de Software - problemas

2-2- Insatisfação do cliente com o sistema Insatisfação do cliente com o sistema concluído

concluído

“Os projetos de desenvolvimento de “Os projetos de desenvolvimento de

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

cliente”

Crise de Software - problemas

Crise de Software - problemas

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

menos que adequada

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

Crise de Software - problemas

Crise de Software - problemas

4-4- O software existente é muito difícil de O software existente é muito difícil de manter

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

22

Causas dos problemas associados à

Causas dos problemas associados à

crise de software

crise de software

1-1- PRÓPRIO CARÁTER DO SOFTWARE PRÓPRIO CARÁTER DO SOFTWARE 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

O software não se desgasta, mas se

deteriora

deteriora

23

Causas dos problemas associados à crise

Causas dos problemas associados à crise

de software

de software

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

SOFTWARE

Gerentes sem nenhum background em software

Profissionais da área de software têm pouco treinamento formal em novas técnicas para o desenvolvimento de software

Resistência a mudanças

24

Causas dos problemas associados à crise

Causas dos problemas associados à crise

de software

de software

3-3-MITOS DO SOFTWAREMITOS DO SOFTWARE

Propagaram desinformação e confusão

administrativos cliente

(5)

25

Mitos do software

Mitos do software

Mito 1

Mito 1::

Já temos um manual repleto de padrões e procedimentos para a construção de software.

Isso não oferecerá ao meu pessoal tudo o que eles precisam saber?

ADMINISTRATIVOS:

ADMINISTRATIVOS:

26

Mito 1

Mito 1::

Já temos um manual repleto de padrões e procedimentos para a construção de software.

Isso não oferecerá ao meu pessoal tudo o que eles precisam saber?

Realidade:

Realidade:

Será que o manual é usado? Os profissionais sabem que ele existe?

Ele reflete a prática moderna de desenvolvimento de software? Ele é completo? ADMINISTRATIVOS: ADMINISTRATIVOS:

Mitos do software

Mitos do software

27 Mito 2 Mito 2::

Meu pessoal tem ferramentas de desenvolvimento de software de última geração. ADMINISTRATIVOS: ADMINISTRATIVOS:

Mitos do software

Mitos do software

28 Mito 2 Mito 2::

Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal lhes compramos os mais novos computadores.

Realidade:

Realidade:

É preciso muito mais do que os mais recentes computadores e ferramentas para se fazer um desenvolvimento de software de alta qualidade.

ADMINISTRATIVOS: ADMINISTRATIVOS:

Mitos do software

Mitos do software

29 Mito 3 Mito 3::

Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso ADMINISTRATIVOS: ADMINISTRATIVOS:

Mitos do software

Mitos do software

30 Mito 3 Mito 3::

Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso

Realidade:

Realidade:

O desenvolvimento de software não é um processo mecânico igual à manufatura. Acrescentar pessoas em um projeto torna-o ainda mais atrasado.

Pessoas podem ser acrescentadas, mas somente de uma forma

planejada.

ADMINISTRATIVOS:

ADMINISTRATIVOS:

Mitos do software

Mitos do software

(6)

Mito 1

Mito 1::

Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

CLIENTE: CLIENTE:

Mitos do software

Mitos do software

Mito 1 Mito 1::

Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

Realidade:

Realidade:

Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software. É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação. CLIENTE: CLIENTE:

Mitos do software

Mitos do software

Mito 2 Mito 2::

Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. CLIENTE: CLIENTE:

Mitos do software

Mitos do software

34 Mito 2 Mito 2::

Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

Realidade:

Realidade:

Uma mudança, quando solicitada tardiamente num projeto, pode ser maior do que a ordem de magnitude mais dispendiosa da mesma mudança solicitada nas fases iniciais.

CLIENTE:

CLIENTE:

Mitos do software

Mitos do software

35

MAGNITUDE DAS MUDANÇAS

MAGNITUDE DAS MUDANÇAS

FASES CUSTO DE MANUTENÇÃO

DEFINIÇÃO 1 x DESENVOLVIMENTO 1.5 - 6x MANUTENÇÃO 60 - 100x

Mitos do software

Mitos do software

36 Mito 1 Mito 1::

Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

PROFISSIONAL:

PROFISSIONAL:

Mitos do software

Mitos do software

(7)

37

Mito 1

Mito 1::

Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

Realidade:

Realidade:

Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente.

PROFISSIONAL: PROFISSIONAL:

Mitos do software

Mitos do software

38 Mito 2 Mito 2::

Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. PROFISSIONAL: PROFISSIONAL:

Mitos do software

Mitos do software

39 Mito 2 Mito 2::

Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

Realidade:

Realidade:

Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software. PROFISSIONAL: PROFISSIONAL:

Mitos do software

Mitos do software

40

Evolução do Software

Evolução do Software

(1965 - 1975)

Cresce o número de sistemas baseado em computador

Manutenção quase impossível

CRISE DE SOFTWARE

Refere-se a um conjunto de

Refere-se a um conjunto de problemas

problemas

encontrados no desenvolvimento de

encontrados no desenvolvimento de

software

software

41

Resposta à Crise de Software

Resposta à Crise de Software

ENGENHARIA DE SOFTWARE

A aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE)

42

Abrange um conjunto de três elementos fundamentais:

Métodos

Métodos,

,

Ferramentas

Ferramentas

e

Procedimentos

Procedimentos

para projetar, construir e manter grandes sistemas de software de forma profissional

O Processo de Desenvolvimento de

O Processo de Desenvolvimento de

Software

(8)

MÉTODOSMÉTODOS: proporcionam os detalhes de como fazer para construir o software

Planejamento e estimativa de projeto Análise de requisitos de software e de sistemas Projeto da estrutura de dados

Algoritmo de processamento Codificação Teste Manutenção

O Processo de Desenvolvimento de

O Processo de Desenvolvimento de

Software

Software

FERRAMENTAS:

FERRAMENTAS: dão suporte

automatizado aos métodos.

Existem atualmente ferramentas para sustentar os métodos especificamente; algumas integradas.

Quando as ferramentas são integradas, é estabelecido sistemas de suporte ao desenvolvimento de software chamados de ferramentas CASE - Computer Aided Software Engineering.

O Processo de Desenvolvimento de

O Processo de Desenvolvimento de

Software

Software

PROCEDIMENTOS:

PROCEDIMENTOS: constituem o elo de

ligação entre os métodos e ferramentas Seqüência em que os métodos serão aplicados

Produtos que se exige que sejam entregues Controles que ajudam assegurar a qualidade e coordenar as alterações Marcos de referência que possibilitam administrar o progresso do software.

O Processo de Desenvolvimento de

O Processo de Desenvolvimento de

Software

Software

46

Um Processo de Desenvolvimento de

Um Processo de Desenvolvimento de

Software com Qualidade

Software com Qualidade

A Qualidade do Processo de Desenvolvimento Qualidade do Processo de Desenvolvimento de Software

de Software está relacionada à extensão na qual um processo de desenvolvimento de software específico é eficienteeficiente e é

explicitamente definidodefinido, gerenciado, gerenciado medidomedido e controlado

controlado.

A Qualidade de Processo de Desenvolvimento Qualidade de Processo de Desenvolvimento de Software

de Software também implica em um potencialpotencial

para crescimento na capacidade do processo de desenvolvimento de software e a

consistência

consistência com a qual ele é aplicado em projetos por toda a organização.

47

Um Processo de Desenvolvimento de

Um Processo de Desenvolvimento de

Software com Qualidade

Software com Qualidade

(SOMMERVILLE)(SOMMERVILLE) Inteligibilidade

o processo é definido e inteligível Visibilidade

o progresso do processo é visível externamente

Suportabilidade

o processo pode ser apoiado por ferramentas CASE

48

Aceitabilidade

o processo é aceito por todos envolvidos nele

Confiabilidade

os erros do processo são descobertos antes que resultem em erros no produto

Robustez

o processo pode continuar a despeito de problemas inesperados

Um Processo de Desenvolvimento de

Um Processo de Desenvolvimento de

Software com Qualidade

(9)

49

Manutenibilidade Manutenibilidade

O processo pode evoluir para atender alterações de necessidades organizacionais Velocidade

quão rápido o sistema pode ser produzido

Um Processo de Desenvolvimento de

Um Processo de Desenvolvimento de

Software com Qualidade

Software com Qualidade

(SOMMERVILLE)(SOMMERVILLE)

50

MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE MODELOS DE PROCESSO DE DESENVOLVIMENTO DE SOFTWARE

Um Processo de Desenvolvimento de

Um Processo de Desenvolvimento de

Software com Qualidade

Software com Qualidade

PROCESSO DE PROCESSO DE DESENVOLVIMENT DESENVOLVIMENT O SOFTWARE O SOFTWARE eficiente eficiente controlado controlado definido definido medido medido gerenciado gerenciado 51

Especificação - estabelecer os requisitos e restrições do sistema

Projeto - produzir um modelo documentado do sistema

Implementação - construir o sistema Teste - verificar se o sistema atende às especificações requeridas

Instalação - liberar o sistema para o cliente e garantir que ele seja operacional

Manutenção – eliminar defeitos e evoluir o sistema conforme demanda.

Fases Genéricas dos Modelos de

Fases Genéricas dos Modelos de

Processo de Desenvolvimento

Processo de Desenvolvimento

52

Fases Genéricas dos Modelos de

Fases Genéricas dos Modelos de

Processo de Desenvolvimento

Processo de Desenvolvimento

Independentemente da natureza do projeto e aplicação os modelos de processo de desenvolvimento de software possuem: fase de definição fase de definição fase de desenvolvimento fase de desenvolvimento fase de manutenção fase de manutenção atividades de apoio atividades de apoio 53

Fase de Definição

Fase de Definição

focaliza

focaliza ""o queo que"" será desenvolvido será desenvolvido que informação vai ser processada que função e desempenho são desejados que comportamento pode ser esperado do sistema

que interfaces vão ser estabelecidas que restrições de projeto existem

que critérios de validação são exigidos para definir um sistema bem sucedido

que tarefas serão realizadas

54

Fase de Definição

Fase de Definição

focaliza "

focaliza "o queo que" será desenvolvido" será desenvolvido que informação vai ser processada que função e desempenho são desejados que comportamento pode ser esperado do sistema

que interfaces vão ser estabelecidas que restrições de projeto existem

que critérios de validação são exigidos para definir um sistema bem sucedido

três tarefas principais ocorrem de alguma forma:

engenharia de sistemas planejamento do projeto de software

(10)

Fase de Desenvolvimento

Fase de Desenvolvimento

Focaliza

Focaliza "como""como" o software será desenvolvido o software será desenvolvido como os dados vão ser estruturados

como a função vai ser implementada como uma arquitetura de software

como os detalhes procedimentais vão ser implementados

como as interfaces vão ser caracterizadas como o projeto será traduzido em uma linguagem de programação

como os testes serão efetuados

Fase de Desenvolvimento

Fase de Desenvolvimento

Focaliza "como" o software será desenvolvido Focaliza "como" o software será desenvolvido como os dados vão ser estruturados

como a função vai ser implementada como uma arquitetura de software

como os detalhes procedimentais vão ser implementados

como as interfaces vão ser caracterizadas como o projeto será traduzido em uma linguagem de programação

como os testes serão efetuados

três tarefas técnicas específicas deverão ocorrer sempre:

projeto de software geração de código Inspeção e teste de software

Fase de Manutenção

Fase de Manutenção

focaliza as

focaliza as ""mudançasmudanças"" que ocorrerão depois que que ocorrerão depois que o software for liberado para uso operacional o software for liberado para uso operacional A fase de manutenção reaplica os passos das fases de definição e desenvolvimento, mas faz isso no contexto de um software existente.

58

Fase de Manutenção

Fase de Manutenção

focaliza as "

focaliza as "mudançasmudanças" que ocorrerão depois " que ocorrerão depois que o software for liberado para uso que o software for liberado para uso

operacional operacional

A fase de manutenção reaplica os passos das fases de definição e desenvolvimento, mas faz isso no contexto de um software existente

As mudanças estão associadas com

correção de erros/defeitos

adaptações exigidas conforme o ambiente

do software evolui

mudanças devido a melhoramentos

ocorridos por alterações nos requisitos dos clientes

59

As três fases genéricas do processo de desenvolvimento de software são

complementadas por uma série de atividades

de apoio.

As atividades de apoio são aplicadas durante toda a engenharia do software

Atividades de Apoio ao Processo de

Atividades de Apoio ao Processo de

Desenvolvimento de Software

Desenvolvimento de Software

60

Atividades de Apoio ao Processo de

Atividades de Apoio ao Processo de

Desenvolvimento de Software

Desenvolvimento de Software

As três fases genéricas do processo de software são complementadas por uma série de

atividades de apoio.

As atividades de apoio são aplicadas durante toda a engenharia do software

Atividades típicas nessa categoria são:  Controle e Acompanhamento do Projeto de

Software

 Revisões Técnicas Formais  Garantia de Qualidade de Software

 Gerenciamento de Configuração de Software  Preparação e Produção de Documentos  Gerenciamento de Reusabilidade  Medidas

(11)

61

Modelos de Processo de

Modelos de Processo de

Desenvolvimento de Software

Desenvolvimento de Software

Existem vários modelos de processo de

desenvolvimento de software (ou paradigmas de engenharia de software)

Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica

Pode-se citar os seguintes modelos de modelos de

processo de desenvolvimento de

processo de desenvolvimento de

software

software

62

Existem vários modelos de processo de software

Cada um representa uma tentativa de colocar ordem em uma atividade inerentemente caótica

Pode-se citar os seguintes modelos de modelos de processo de software

processo de software

 O Modelo Sequencial Linear

 (também chamado Ciclo de Vida Clássico ou Modelo

Cascata)

 O Paradigma de Prototipação  Técnicas de Quarta Geração

 O Modelo RAD (Rapid Application Development)  Modelos de Métodos Formais

 Modelos Evolutivos de Processo de Software

 O Modelo Incremental  O Modelo Espiral

 O Modelo de Montagem de Componentes  O Modelo de Desenvolvimento Concorrente

Modelos de Processo de

Modelos de Processo de

Desenvolvimento de Software

Desenvolvimento de Software

Referências

Documentos relacionados

A Análise dos Gases Dissolvidos ou DGA (do inglês Dissolved Gases Analysis), obtidos através de cromatografia do óleo, permite inferir sobre a ocor- rência de falhas

Nosso foco será a diversidade que chega à Escola, que produz o inescapável encontro intercultural, que gera tensionamentos e atravessamentos, assim como impõe à equipe

Aprova as (IR 60 – 10) Instruções Reguladoras para a Organização e o Funcionamento do Programa de Atualização dos Diplomados pela Escola de Comando e Estado-Maior do

[r]

A partir de 01/01/2019 as empresas fornecerão mensalmente aos empregados que não tiverem nenhuma falta injustificada, uma cesta básica no valor de R$ 141,75 (cento

Este trabalho reúne informações científicas sobre as necessidades nutricionais da pupunheira, pesquisas sobre respostas à fertilizantes, sistemas para recomendar a

 Caraterísticas do descarregador e correspondente lei de vazão: descarregador de cheias sem comportas, ou seja, com descarga livre não controlada e com a largura, L, tal que SE

[r]