Professional Documents
Culture Documents
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)
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
3. mitos do Software
Realidade:
É preciso muito mais do que os mais recentes
computadores para se fazer um desenvolvimento de
software de alta qualidade.
Mitos do Software (administrativos)
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.
Mitos do Software (cliente)
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.
Mitos do Software (cliente)
Realidade:
Uma mudança, quando solicitada tardiamente num projeto,
pode ser maior do que mais do que uma ordem de magnitude
mais dispendiosa do que a mesma mudança solicitada nas
fases iniciais.
magnitude das mudanças
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.
Mitos do Software (profissional)
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.
Preocupação: Sistematizar o processo de
criação e manutenção de software.
Engenharia de Software
Definições
Engenharia de
Sistemas
Análise de
Requisitos
Projeto
Codificação
Testes
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,
requisitos
construção projeto identificam quais requisitos são
produto rápido
conhecidos e as áreas que
construção necessitam de definições adicionais
refinamento
protótipo protótipo
avaliação
protótipo
Projeto Rápido: representação dos
aspectos do software que são
visíveis ao usuário (abordagens de
entrada e formatos de saída)
Atividades da Prototipação
início
fim
obtenção
Construção Protótipo:
dos implementação do projeto
requisitos
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 cliente e desenvolvedor refinam
obtenção
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 identificados os requisitos, o
construção projeto
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ção dos
Requisitos
Estratégia do
“Projeto”
Implementação
usando 4GL
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: Implementaçã
o usando 4GL
o cliente descreve os requisitos Testes
os 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,
2. DESENVOLVIMENTO e
3. 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
2. Planejamento Software 1. Entender
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