Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1- Instruções
quando executadas produzem a função e o
desempenho desejados
2 - Estruturas de Dados
possibilitam que os programas manipulem
adequadamente a informação
3 - Documentos
descrevem a operação e o uso dos programas
Características do Software
“mortalidade “desgaste”
índice
de infantil”
falhas
tempo
Curva de falhas do Software
curva real
índice de
mudança
falhas
curva idealizada
tempo
Aplicações do Software
BÁSICO programas de apoio a outros programas
DE TEMPO REAL monitora, analisa e controla eventos do
mundo real
COMERCIAL operações comerciais e tomadas de
decisões administrativas
CIENTÍFICO E DE algoritmos de processamento de números
ENGENHARIA
EMBUTIDO controla produtos e sistemas de mercados
industriais e de consumo
DE COMPUTADOR processamento de textos, planilhas
PESSOAL eletrônicas, diversões, etc.
DE INTELIGÊNCIA algoritmos não numéricos para resolver
ARTIFICIAL problemas que não sejam favoráveis à
computação ou à análise direta
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
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
Cresce no de sistemas baseado em computador
Manutenção quase impossível
..... CRISE DE 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
..... CRISE DE SOFTWARE (aflição crônica???)
Evolução do Software
(Quarta era do software: atualidade)
atualidade
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
..... CRISE DE SOFTWARE (aflição crônica???)
Crise de Software
Refere-se a um conjunto de problemas
encontrados no desenvolvimento de software:
(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”
“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”
Crise de Software
qualidade de software
3. mitos do Software
Realidade:
Realidade:
ÉÉpreciso
precisomuito
muitomais
maisdodoque
queos
osmais
maisrecentes
recentes
computadores
computadorespara
parase
sefazer
fazerum
umdesenvolvimento
desenvolvimentode
de
software
softwarede
dealta
altaqualidade.
qualidade.
Mitos do Software (administrativos)
Realidade:
Realidade:
OOdesenvolvimento
desenvolvimentode
desoftware
softwarenão
nãoééumumprocesso
processomecânico
mecânico
igual
igualààmanufatura.
manufatura.
Acrescentar
Acrescentarpessoas
pessoasememum
umprojeto
projetotorna-o
torna-oainda
aindamais
mais
atrasado.
atrasado.Pessoas
Pessoaspodem
podemser
seracrescentadas,
acrescentadas,mas
massomente
somentede
de
uma
umaforma
formaplanejada.
planejada.
Mitos do Software (cliente)
Realidade:
Realidade:
Uma
Umadefinição
definiçãoinicial
inicialruim
ruimééaaprincipal
principalcausa
causadedefracassos
fracassosdos
dos
esforços
esforçosde dedesenvolvimento
desenvolvimentode desoftware.
software.
ÉÉfundamental
fundamentaluma umadescrição
descriçãoformal
formaleedetalhada
detalhadadododomínio
domínioda
da
informação,
informação,função,
função,desempenho,
desempenho,interfaces,
interfaces,restrições
restriçõesde
deprojeto
projetoee
critérios
critériosde
devalidação.
validação.
Mitos do Software (cliente)
Realidade:
Realidade:
Uma
Umamudança,
mudança,quando
quandosolicitada
solicitadatardiamente
tardiamentenumnumprojeto,
projeto,pode
pode
ser
sermaior
maiordo
doque
quemais
maisdo
doque
queumaumaordem
ordemde
demagnitude
magnitudemais
mais
dispendiosa
dispendiosado
doque
queaamesma
mesmamudança
mudançasolicitada
solicitadanas
nasfases
fasesiniciais.
iniciais.
magnitude das mudanças
Realidade:
Realidade:
Os
Osdados
dadosda
daindústria
indústriaindicam
indicamque
queentre
entre50
50ee70%
70%de
detodo
todoesforço
esforço
gasto
gastonum
numprograma
programaserão
serãodespendidos
despendidosdepois
depoisque
queele
elefor
for
entregue
entreguepela
pelaprimeira
primeiravez
vezao
aocliente.
cliente.
Mitos do Software (profissional)
Realidade:
Realidade:
Um
Umprograma
programafuncionando
funcionandoéésomente
somenteuma umaparte
partededeuma
uma
Configuração
Configuraçãode
deSoftware
Softwareque
queinclui
incluitodos
todosos
ositens
itensde
deinformação
informação
produzidos
produzidosdurante
duranteaaconstrução
construçãoeemanutenção
manutençãodo dosoftware.
software.
Preocupação: Sistematizar o processo de
criação e manutenção de software.
Engenharia de Software
Definições
métodos:
métodos proporcionam os detalhes de
como fazer para construir o software
Engenharia de 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.
Engenharia de Software
controles
e produtos que precisam ser
entregues
Ciclo de Vida Clássico (Cascata)
Engenhariade
Engenharia de
Sistemas
Sistemas
Análise de
Análise de
Requisitos
Requisitos
Projeto
Projeto
Codificação
Codificação
Testes
Testes
Manutenção
Manutenção
Atividades do Ciclo de Vida Clássico
ANÁLISE E ENGENHARIA DE
Engenharia de SISTEMAS
Sistemas
Análise de envolve a coleta de requisitos em
Requisitos
Projeto nível do sistema, pequena
Codificação quantidade de projeto e análise
Testes de alto nível
Manutenção visão essencial quando
o software deve fazer
interface com outros
elementos (hardware,
pessoas e banco de dados)
Atividades do Ciclo de Vida Clássico
ANÁLISE DE REQUISITOS DE
SOFTWARE
Engenharia de
Sistemas processo de coleta dos requisitos
Análise de
Requisitos
é intensificado e concentrado
Projeto especificamente no software
Codificação
deve-se compreender o domínio
Testes da informação, a função,
Manutenção desempenho e interfaces
exigidos
os requisitos (para o sistema e para
o software) são documentados e
revistos com o cliente
Atividades do Ciclo de Vida Clássico
PROJETO
tradução dos requisitos do software para
um conjunto de representações que podem
Engenharia de ser avaliadas quanto à qualidade, antes
Sistemas
Análise de que a codificação se inicie
Requisitos
Projeto se concentra em 4 atributos do
Codificação programa:
Testes Estrutura de Dados,
refinamento construção
protótipo protótipo
avaliação
protótipo
Atividades da Prototipação
início Obtenção dos Requisitos:
fim desenvolvedor e cliente definem os
obtenção
dos objetivos gerais do software, identificam
construção
requisitos
projeto quais requisitos são conhecidos e as áreas
produto rápido que necessitam de definições adicionais
refinamento construção
protótipo protótipo Projeto Rápido: representação dos
avaliação aspectos do software que são visíveis ao
protótipo
usuário (abordagens de entrada e
formatos de saída)
Atividades da Prototipação
início
fim obtenção Construção Protótipo:
dos
requisitos
implementação do projeto
construção projeto
produto rápido rápido
refinamento construção
protótipo protótipo
avaliação Avaliação do Protótipo:
protótipo
cliente e desenvolvedor avaliam
o protótipo
Atividades da Prototipação
início Refinamento dos Requisitos:
fim obtenção cliente e desenvolvedor refinam
dos
requisitos os requisitos do software a ser
construção projeto
produto rápido desenvolvido.
Ocorre neste ponto um processo
refinamento construção
protótipo protótipo de iteração que pode conduzir a
avaliação 1a. atividade até que as
protótipo
necessidades do cliente sejam
satisfeitas e o desenvolvedor
compreenda o que precisa ser
feito.
Atividades da Prototipação
início
fim obtenção
dos Construção Produto:
requisitos
construção projeto identificados os requisitos, o
produto rápido
protótipo deve ser descartado e a
construção versão de produção deve ser
refinamento
protótipo
protótipo construída considerando os
avaliação
protótipo critérios de qualidade.
Problemas com a Prototipação
planejamento
análise dos
riscos
direção de um
avaliação sistema
do cliente engenharia
concluído
Atividades do Ciclo de Vida em Espiral
Planejamento: determinação dos
objetivos, alternativas e restrições
planejamento
Análise de Risco: análise das análise dos
riscos
alternativas e identificação / resolução
dos riscos
Construção: desenvolvimento do avaliação
do engenharia
produto no nível seguinte cliente
Obtençãodos
Obtenção dos
Requisitos
Requisitos
Estratégiado
Estratégia do
“Projeto”
“Projeto” Implementação
Implementação
usando4GL
usando 4GL
Testes
Testes
Ferramentas do ambiente de
desenvolvimento de software de 4GL
O ambiente de desenvolvimento de software que sustenta o ciclo
de vida de 4a geração inclui as ferramentas:
linguagens não procedimentais para consulta de
banco de dados
geração de relatórios
manipulação de dados
interação e definição de telas
geração de códigos
capacidade gráfica de alto nível
capacidade de planilhas eletrônicas
Atividades das Técnicas de 4a Geração
Obtenção dos
Requisitos
Estratégia do
“Projeto”
1. obtenção dos Requisitos: o Implementação
usando 4GL
cliente descreve os requisitos os Testes
quais são traduzidos para um
protótipo operacional
demanda
global
demanda aplicação de
por técnicas de 4a
software Geração
métodos
convencionais
codificação
modelo espiral
no. interação
protomodelagem
no. interação
testes
sistema completo
manutenção
Engenharia de Software uma visão genérica
1. DEFINIÇÃO,
DEFINIÇÃO
2. DESENVOLVIMENTO e
3. MANUTENÇÃO.
MANUTENÇÃO
Engenharia de Software uma visão genérica
Construção Operação
Definição
“o que” Desenvolvimento Manutenção
1. Análise de “como” “mudanças”
SOFTWARE
Sistema 1. Projeto de
PRODUTO 1. Entender
2. Planejamento Software
do Projeto 2. Modificar
2. Codificação 3. Revalidar
3. Análise de
3. Teste
Requisitos
Atividades de Apoio
1. Revisões
2. Documentação
3. Controle de
Mudanças
Engenharia de Software uma visão genérica
DEFINIÇÃO : “o que” será desenvolvido.
Análise do Sistema: define o papel de cada
elemento num sistema baseado em computador,
atribuindo em última análise, o papel que o
software desempenhará.
Planejamento do Projeto de Software: assim que
o escopo do software é estabelecido, os riscos são
analisados, os recursos são alocados, os custos
são estimados e, tarefas e programação de
trabalho definidas.
Engenharia de Software uma visão genérica
Questões gerenciais
Os gerentes de software:
controlam os recursos e o ambiente no qual as atividades técnicas
ocorrem.
responsáveis pela entrega do produto no prazo e dentro das estimativas
de custo.
devem garantir que o produto tenha os atributos funcionais e de
qualidade desejados pelo cliente.
Treinam empregados.
desenvolvem planos e estratégias de marketing.
Engenharia de Software uma aborgagem
gerencial
,
Pontos a ponderar
Os mitos de software citados em aula são somente alguns entre muitos
outros. Liste mitos adicionais para cada uma das categorias apresentadas.
Existe algum caso em que as fases genéricas do processo de engenharia de
software não se aplicam? Se assim for, descreva-o.