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

AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

AULA 1 INTRODUÇÃO - ENGENHARIA DE

SOFTWAREProf. Msc. Hélio Esperidião

Page 2: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O QUE É UM ALGORITMO?

� É qualquer procedimento computacional bem definido que informa algum valor ou conjunto de valores como entrada e produz algum valor ou conjunto de valores como saída.

Page 3: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O QUE É SOFTWARE DE COMPUTADOR?

� É um produto que profissionais de informática constroem e depois mantém ao longo do tempo que abrangem quais quer tamanho ou arquitetura.

� Todo o seu conteúdo e documentos impressos e virtuais.

� O software é um transformador de Informações � Age produzindo, armazenando, gerindo, adquirindo,

modificando, exibindo ou transmitindo informações.

Page 4: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

QUEM FAZ?

� Profissionais de informática, estudantes, pesquisadores, curiosos.

Page 5: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

POR QUE É IMPORTANTE?

� Software transformou o comportamento e cultura da sociedade, está presente em todos os seguimentos profissionais e faz parte do cotidiano.

Page 6: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

QUAIS SÃO OS PASSOS?

� Construir um software requer a aplicação de um processo ágil que seja adaptável as suas necessidades de forma a levar a um resultado de alta qualidade e que irá satisfazer as necessidades de seus usuários. necessidades de seus usuários.

Page 7: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O PRODUTO DO TRABALHO

� Para o desenvolvedor:� Programas, dados� Documentos

� Para o usuário:� Informação que de alguma forma torna melhor o seu � Informação que de alguma forma torna melhor o seu

cotidiano.

Page 8: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O NOVO PROGRAMADOR

� O programados solitário de antigamente foi substituído por uma equipe de desenvolvedores que muitas vezes contam com profissionais de diversas áreas do conhecimento multidisciplinares. multidisciplinares.

Page 9: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

QUALIDADE DO SOFTWARE

� Definir qualidade de software pode parecer uma tarefa bastante complicada e subjetiva.

� De forma geral um software possui qualidade quando satisfaz os propósitos para os quais foi quando satisfaz os propósitos para os quais foi desenvolvido

Page 10: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

TIPOS DE SOFTWARE.

� Software de Sistemas:� São aqueles escritos para servir outros programas,

temos como exemplo os compiladores, editores e utilitários para gestão de arquivos.

� Software de aplicação:� Software de aplicação:� São programas isolados que resolvem uma

necessidade especifica do negócio, por exemplo temos processamento de informações num ponto de venda, controle de fabricação em tempo real.

Page 11: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

TIPOS DE SOFTWARE.

� Software cientifico e de engenharia.� Antigamente caracterizado como algoritmo numérico para

simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação.

� Software Embutido� Software Embutido� Aquele que reside dentro de um produto, realiza funções

muito limitadas e particulares como por exemplo os sistemas de frenagem em automóveis, painéis de medição de combustível, etc.

Page 12: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

TIPOS DE SOFTWARE.

� Softwares para linha de produtos.� É projetado com capacidade especifica e que atenda muitos

usuários diferentes.� Sistema de controle de estoque, processamento de textos,

gráficos ,etc.

� Aplicações para web.� Aplicações para web.� Aqueles que rodam na internet

� e-commerce.

Page 13: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

TIPOS DE SOFTWARE.

� Softwares para inteligência artificial.� Faz uso de algoritmos não numéricos para resolver

problemas complexos que não são passiveis de análise direta.

� Aplicações em robótica, reconhecimento de padrões em voz e imagem, redes neurais, etc.voz e imagem, redes neurais, etc.

� Computação ubíqua.� Caracteriza-se pela computação distribuída.

Page 14: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

SOFTWARE LEGADO

� Dayani-Fard define software legado como:� Foram desenvolvidos a muito tempo mas continuam

sendo modificados para atender a novas necessidades.

� Estes geralmente estão em grandes organizações � Estes geralmente estão em grandes organizações e desempenham funções criticas e estratégicas, são mantidos devido ao risco de perdas num processo de evolução.

Page 15: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

EVOLUÇÃO DE SOFTWARE

� Softwares evoluem com o tempo comumente devido as modificações denominadas manutenção de software.� Correções de erros, adicionar novas funcionalidades

Page 16: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O PROCESSO

� O que é?� Um roteiro que ajuda a criar a tempo um resultado

de alta qualidade, isso é chamado processo de software.

� Quem faz?� Os engenheiros de softwares

� Porque é importante?� Fornece controle e organização para uma atividade.

Page 17: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

PROCESSO

� Quais são os passos?� Variam de acordo com a aplicação. Exemplo: Um

software médico possui processo distinto de um software aeronáutico.

Page 18: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

A ENGENHARIA DE SOFTWARE

� Integra o processo, os métodos e as ferramentas necessárias para o desenvolvimento de software.

Page 19: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

MODELOS PRESCRITIVOS DE PROCESSO

� Propostos para colocar ordem no caos do desenvolvimento de software.

� Fornece um roteiro efetivos para as equipes de software.software.� Estabilidade� Controle� Define um fluxo de trabalho

� Linear� Incremental

Page 20: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

LINEAR - O MODELO EM CASCATA

� O processo flui do início ao fim de forma linear

� O processo é dividido em etapas claras e seqüenciais.

� Uma etapa posterior jamais deve ser desenvolvida antes de uma anterior.

� Etapa 1Etapa 1

Etapa 2

Etapa n

Page 21: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O MODELO EM CASCATA

� É chamado de modelo clássico� Abordagem sistemática e seqüencial.

� É utilizado quando o desenvolvimento do software começa pelos requisitos do cliente e progride ao longo do planejamento, progride ao longo do planejamento, modelagem, construção e implantação.

Page 22: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

O MODELO EM CASCATA

� É o paradigma mais antigo da engenharia de software.

� Foi e é amplamente utilizado.

� Vem sofrendo criticas a respeito

� Quais problemas podemos visualizar claramente?

Page 23: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação
Page 24: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

PROBLEMAS DO MODELO EM CASCATA

� Projetos reais raramente seguem o fluxo seqüencial que o modelo propõem.

� É possível acomodar iterações de forma indireta.� Gera confusão a medida que a equipe continua o � Gera confusão a medida que a equipe continua o

desenvolvimento.

� É difícil para o cliente estabelecer todos os requisitos explicitamente.� O modelo não prevê ocorrência de alterações nos

requisitos

Page 25: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

PROBLEMAS DO MODELO EM CASCATA

� O cliente terá que esperar até o final do projeto, ou seja, na etapa de implantação.� Erros grosseiros podem aparecer se não detectados

em etapas anteriores do processo.

Page 26: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

OS “ESTADOS DE BLOQUEIO”

� Ocorrem em modelos lineares.

� Ocorre quando uma equipe tem que esperar pelo termino do trabalho de uma outra equipe.

� Muitas vezes este tempo é maior que o tempo produtivo.

Page 27: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

MODELOS INCREMENTAIS DE PROCESSO

� Pode ser utilizado quando há necessidade de disponibilizar rapidamente um conjunto limitado de funcionalidades.

� Estas funcionalidades são aprimoradas em novas � Estas funcionalidades são aprimoradas em novas versões subseqüentes do software.

Page 28: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

MODELOS INCREMENTAIS

� Aplica seqüência lineares a medida que o tempo passa.

� Cada seqüência linear apresenta incrementos de software passiveis de serem entregues.software passiveis de serem entregues.

Page 29: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

MODELOS INCREMENTAIS

Page 30: AULA 1 INTRODUÇÃO -ENGENHARIADE SOFTWARE€¦ · simulação de problemas científicos ou matemáticos,mas, atualmente vem adquirindo características de sistemas de aplicação

EXEMPLO

� Imagine um software editor de textos.� A versão básica que funciona como o bloco de novas é

o primeiro incremento a ser entregue.

� Os próximos incrementos acrescentam � Os próximos incrementos acrescentam funcionalidades mais complexas ao sistema,

� Cada incremento entrega uma versão para os usuários.

� O primeiro incremento é chamado núcleo do

produto.