Académique Documents
Professionnel Documents
Culture Documents
curva idealizada
tempo tempo
1
Aplicações do Software
BÁSICO programas de apoio a outros programas Evolução do Software
DE TEMPO REAL monitora, analisa e controla eventos do
mundo real (1950 - 1965)
COMERCIAL operações comerciais e tomadas de ð O hardware sofreu contínuas mudanças
decisões administrativas
ð O software era uma arte "secundária" para a
CIENTÍFICO E DE algoritmos de processamento de números qual havia poucos métodos sistemáticos
ENGENHARIA
EMBUTIDO controla produtos e sistemas de mercados ð O hardware era de propósito geral
industriais e de consumo ð O software era específico para cada aplicação
DE COMPUTADOR processamento de textos, planilhas
PESSOAL
ð Não havia documentação
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
2
Crise de Software Crise de Software
(3) A qualidade de software às vezes é menos que
(2) A produtividade das pessoas da área de software
adequada
não tem acompanhado a demanda por seus
serviços Só recentemente começam a surgir conceitos
quantitativos sólidos de garantia de qualidade de
“Os projetos de desenvolvimento de software software
normalmente são efetuados apenas com um vago
indício das exigências do cliente” (4) O 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
3
Mitos do Software (administrativos) Mitos do Software (administrativos)
Se nós estamos atrasados nos prazos, podemos Uma declaração geral dos objetivos é suficiente
adicionar mais programadores e tirar o atraso. para se começar a escrever programas -
podemos preencher os detalhes mais tarde.
Realidade:
Realidade:
O desenvolvimento de software não é um processo
mecânico igual à manufatura. Uma definição inicial ruim é a principal causa de fracassos dos
esforços de desenvolvimento de software.
Acrescentar pessoas em um projeto torna-o ainda mais
atrasado. Pessoas podem ser acrescentadas, mas É fundamental uma descrição formal e detalhada do domínio da
somente de uma forma planejada. informação, função, desempenho, interfaces, restrições de
projeto e critérios de validação.
4
Mitos do Software (profissional) Mitos do Software (profissional)
Assim que escrevermos o programa e o colocarmos Enquanto não tiver o programa "funcionando", eu
em funcionamento nosso trabalho estará completo. não terei realmente nenhuma maneira de avaliar
sua qualidade.
Realidade: Realidade:
Os dados da indústria indicam que entre 50 e 70% de todo Um programa funcionando é somente uma parte de uma
esforço gasto num programa serão despendidos depois que Configuração de Software que inclui todos os itens de
ele for entregue pela primeira vez ao cliente. informação produzidos durante a construção e manutenção do
software.
Engenharia de Software
Definições
5
Engenharia de Software
6
Engenharia de Software para escolha de um Ciclo de Vida de Software:
Ä Prototipação
Ü métodos e ferramentas a serem usados
Ä Modelo Espiral
Ä Técnicas de 4a Geração
Ü controles e produtos que precisam ser
entregues
7
Atividades do Ciclo de Vida Clássico Atividades do Ciclo de Vida Clássico
PROJETO CODIFICAÇÃO
w tradução dos requisitos do software para w tradução das representações
um conjunto de representações que podem do projeto para uma
Engenharia de ser avaliadas quanto à qualidade, antes Engenharia de
Sistemas Sistemas linguagem “artificial”
Análise de que a codificação se inicie Análise de
Requisitos Requisitos
resultando em instruções
Projeto w se concentra em 4 atributos do Projeto
executáveis pelo computador
Codificação programa: Codificação
Testes Ø Estrutura de Dados, Testes
Manutenção Ø Arquitetura de Software,
Manutenção
Ø Detalhes Procedimentais e
Ø Caracterização de Interfaces
M projetos reais raramente seguem o fluxo Embora o Ciclo de Vida Clássico tenha
seqüencial que o modelo propõe
fragilidades, ele é significativamente
M logo no início é difícil estabelecer explicitamente
todos os requisitos. No começo dos projetos melhor do que uma abordagem casual
sempre existe uma incerteza natural
ao desenvolvimento de software
Mo cliente deve ter paciência. Uma versão
executável do software só fica disponível numa
etapa avançada do desenvolvimento
8
Prototipação Prototipação
Ä processo que possibilita que o desenvolvedor crie início
um modelo do software que deve ser construído. fim obtenção
dos
Ä idealmente, o modelo (protótipo) serve como um requisitos
mecanismo para identificar os requisitos de construção projeto
produto rápido
software.
Ä apropriado para quando o cliente definiu um refinamento
construção
protótipo
conjunto de objetivos gerais para o software, mas protótipo
9
Problemas com a Prototipação Problemas com a Prototipação
10
Espiral (comentários) Espiral (comentários)
Ferramentas do ambiente de
desenvolvimento de software de 4GL Atividades das Técnicas de 4a Geração
Obtenção dos
Requisitos
O ambiente de desenvolvimento de software que sustenta o ciclo Estratégia do
“Projeto”
de vida de 4a geração inclui as ferramentas: 1. obtenção dos Requisitos: Implementaçã
o usando 4GL
ü linguagens não procedimentais para consulta de o cliente descreve os requisitos Testes
banco de dados os quais são traduzidos para um
ü geração de relatórios protótipo operacional
ü manipulação de dados
ü interação e definição de telas Öo cliente pode estar inseguro quanto aos requisitos
ü geração de códigos Öo cliente pode ser incapaz de especificar as informações
ü capacidade gráfica de alto nível de um modo que uma ferramenta 4GL possa consumir
ü capacidade de planilhas eletrônicas Öas 4GLs atuais não são sofisticadas suficientemente para
acomodar a verdadeira "linguagem natural"
11
Atividades das Técnicas de 4a Geração Atividades das Técnicas de 4a Geração
Obtenção dos Obtenção dos
Requisitos Requisitos
Estratégia do Estratégia do
2. estratégia de "Projeto": “Projeto”
Implementaçã
“Projeto”
Implementaçã
para pequenas aplicações é o usando 4GL 3. implementação usando o usando 4GL
Testes Testes
possível mover-se do passo de 4GL: os resultados desejados
Obtenção dos Requisitos para o são representados de modo que
passo de Implementação usando haja geração automática de
código . Deve existir uma
uma Linguagem de 4G
estrutura de dados com
Öpara grandes projetos é necessário desenvolver uma informações relevantes e que
estratégia de projeto. De outro modo ocorrerão os seja acessível pela 4GL
mesmos problemas encontrados quando se usa
abordagem convencional (baixa qualidade)
demanda
global projeto protomodelagem técnicas
no. interação 4G
demanda aplicação de
por técnicas de 4a codificação
software Geração modelo espiral
no. interação
métodos protomodelagem
convencionais no. interação
testes
1970 1980 1990 2000
sistema completo
manutenção
12
Engenharia de Software uma visão genérica Engenharia de Software uma visão genérica
Engenharia de Software uma visão genérica Engenharia de Software uma visão genérica
DEFINIÇÃO : “o que” será desenvolvido.
Ø Análise de Requisitos: o escopo definido para o
Ø Análise do Sistema: define o papel de cada
elemento num sistema baseado em computador, software proporciona uma direção, mas uma
atribuindo em última análise, o papel que o definição detalhada do domínio da informação e da
software desempenhará. função do software é necessária antes que o
trabalho inicie.
Ø 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 Engenharia de Software uma visão genérica
DESENVOLVIMENTO: “como” o software vai ser ðCodificação: as representações do projeto devem
desenvolvido. ser convertidas numa linguagem artificial (a linguagem
pode ser uma linguagem de programação
convencional ou uma linguagem não procedimental)
ð Projeto de Software: traduz os requisitos do que resulte em instruções que possam ser executadas
software num conjunto de representações (algumas pelo computador.
gráficas, outras tabulares ou baseadas em
linguagem) que descrevem a estrutura de dados, a ðRealização de Testes do Software: logo que o
arquitetura do software, os procedimentos software é implementado numa forma executável por
algorítmicos e as características de interface. máquina, ele deve ser testado para que se possa
descobrir defeitos de função, lógica e implementação.
13
Engenharia de Software uma visão genérica Engenharia de Software uma visão genérica
Correção: mesmo com as melhores atividades de
MANUTENÇÃO: concentra-se nas garantia de qualidade de software, é provável que o
“mudanças” que ocorrerão depois que o cliente descubra defeitos no software. A manutenção
corretiva muda o software para corrigir defeitos.
software for liberado para uso operacional
Ü Correção Adaptação: com o passar do tempo, o ambiente
Ü Adaptação original (por exemplo a CPU, o sistema operacional e
periféricos) para o qual o software foi desenvolvido
Ü Melhoramento Funcional
provavelmente mudará. A manutenção adaptativa
muda o software para acomodar mudanças em seu
ambiente.
Engenharia de Software uma visão genérica Engenharia de Software uma visão genérica
14
Engenharia de Software uma aborgagem Engenharia de Software uma aborgagem
gerencial gerencial
15
Engenharia de Software uma aborgagem Engenharia de Software uma aborgagem
gerencial gerencial
16