Академический Документы
Профессиональный Документы
Культура Документы
Gustavo Gonzalez
www.gustavo.pro.br
Engenharia de software I
Ian Sommerville 2006Engenharia de Software, 8. edio. Captulo 1
Objetivos
Apresentar a engenharia de software e explicar a sua
importncia
Dirigir as respostas s questes-chave sobre engenharia de
software
Apresentar questes ticas e profissionais e explicar por que
elas so assunto para engenheiros de software
Perguntas
O que software?
O que engenharia de software?
Qual a diferena entre engenharia de software e
cincia da computao?
Qual a diferena entre engenharia de software e
engenharia
Qual a diferena entre engenharia de software e
engenharia de sistemas?
O que processo de software?
O que um modelo de processo de software?
Perguntas
Quais so os custos da engenharia de software?
Quais so os mtodos da engenharia de software?
O que CASE (Computer-Aided Software
Engeneering)
Quais so os atributos de um bom software? Quais
so os desafios-chave enfrentados pela engenharia
de
Quais so os desafios-chave enfrentados pela
engenharia de software?
O que Software ?
Reposta no obvia, segundo Pressman, em 1970 menos de
1% dos profissionais poderiam ter definido o que software.
Produto que os engenheiros de software projetam e
constroem, englobando:
Instrues que produzem algum resultado desejado.
Estrutura de dados que permitem que os programas
manipulem adequadamente a informao.
Documentao que descreve o uso dos programas
Software se desgasta ?
O que software ?
Programas de computador e documentao associada, tais como
requisitos, modelos de projetos e manuais de usurio.
Produtos de software podem ser desenvolvidos para um cliente particular
ou para um mercado geral.
Produtos de software podem ser:
Genricos desenvolvidos para serem vendidos para uma grande
variedade de clientes, por exemplo, softwares para PC, tais como
Excel e Word.
Personalizados desenvolvidos para um nico cliente de acordo com
as suas especificaes.
Um software novo pode ser criado atravs do desenvolvimento de novos
programas, da configurao de sistemas de software genricos ou da
reutilizao de um software existente.
O que software ?
No desenvolvimento de software conceitualmente no existe um processo
manual, todos os envolvidos exercem um trabalho intelectual.
Custos de Software
Os custos de software dominam os custos de sistemas
computacionais. Em um PC, os custos de software so
freqentemente maiores que o custo do hardware.
Manter um software custa mais que desenvolv-lo. Para
sistemas com uma longa vida, os custos de manuteno
podem ser muito maiores que os custos de desenvolvimento.
A engenharia de software dedica-se ao desenvolvimento de
software com custos adequados
Erros em Software
Efeitos colaterais: o que tira o sono dos desenvolvedores de
software
Correes de erro tendem a gerar novos erros
Desenvolvedores temem modificaes, tentam evit-las.
Porm, as mudanas so inevitveis e temos que lidar com
isso.
Esso processo pode ser menos traumtico ? Como ?
Engenharia de Software
As economias de TODAS as naes desenvolvidas so
dependentes de software.
Cada vez mais sistemas so controlados por software.
A engenharia de software se dedica s teorias, mtodos e
ferramentas para desenvolvimento de software profissional
Os dispndios com software representam uma frao
Os dispndios com software representam uma frao
significativa do PIB em todos os pases desenvolvidos
O que Engenharia de
Software ?
uma disciplina de engenharia relacionada com todos os aspectos da
produo de software, desde a especificao at a manuteno.
Por que Disciplina? Os engenheiros aplicam teorias mtodos e
ferramentas onde for apropriado e de forma seletiva mesmo quando no
existem teorias e mtodos aplicveis, e fazem as coisas funcionarem.
Trabalham tambm sob restries organizacionais e financeiras.
Todos os aspectos? Porque tambm se relaciona com atividades do
gerenciamento do projeto, desenvolvimento de ferramentas, mtodos e
teorias que apoiem a produo.
Em geral utiliza-se uma abordagem sistemtica e organizada, mas pode
ser extremamente eficaz selecionar uma abordagem alternativa e menos
formal para uma determinada circunstncia.
O que case ?
So ferramentas utilizadas para dar apoio as atividades do
processo de software, tais como anlise, modelagem,
depurao e testes. Todos os mtodos vm atualmente com
uma tecnologia case associada.
E tem desvantagens ?
Incompatibilidade de ferramentas
Treinamento para utilizao
O que case ?
Controle de Verso
Gerncia de projetos
Edio
Ferramentas de
prototipagem
Suporte a programao
Anlise de programas
Teste
Depurao
Gerao de cdigo
Documentao
Reengenharia
Ferramentas Integradas
Ferramentas de Mtricas
Ferramentas de
Planejamento