Вы находитесь на странице: 1из 27

Prof.

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 voc acha ?


Qual o primeiro conceito ?
Por onde devemos comear ?
O que vocs acham ?

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 ?

Diferena entre Hardware e


Software
Software um produto desenvolvido
pelo Eng. De Software e Hardware um
produto desenvolvido pelo Engenheiro
Eletrnico ?
Software lgico
Hardware fsico

Diferena entre Hardware e


Software

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.

Qual a diferena entre engenharia de


software e cincia da computao?
A cincia da computao dedica-se teoria e aos fundamentos; j a
engenharia de software dedica-se aos aspectos prticos de
desenvolvimento e de entrega de software para o uso.
Teorias de cincia da computao so ainda insuficientes para atuar como
uma base completa para a engenharia de software (diferente de, por
exemplo, fsica e engenharia eltrica).

Qual a diferena entre engenharia de


software e engenharia de sistemas?
A engenharia de sistemas dedica-se aos aspectos de desenvolvimento de
sistemas baseados em computador, incluindo a engenharia de hardware,
de software e de processo. A engenharia de software parte desse
processo que se dedica ao desenvolvimento da infra-estrutura do
software, controle, aplicaes e banco de dados no sistema.
Os engenheiros de sistema esto envolvidos na especificao, no projeto
de arquitetura e na integrao e implantao do sistema.

O que processo de software ?


um conjunto de atividades cuja meta o desenvolvimento ou
evoluo de software.
As atividades genricas em todos os processos de software so:
Especificao o que o sistema deve fazer e suas restries de
desenvolvimento.
Desenvolvimento produo do sistema de software.
Validao verificao de que o software o que o cliente deseja.
Evoluo mudana do software em resposta s demandas de
mudana.
Diferentes tipos de sistemas necessitam de diferentes tipos de
desenvolvimento. Ex.: Alguns podem requerer que sejam
especificados totalmente antes do desenvolvimento, para outros,
essas atividades podem ocorrem em paralelo. O uso de um processo
inadequado pode reduzir a qualidade ou a utilidade do produto de

O que um modelo de processo de


software ?
Uma representao simplificada de um processo de software,
apresentado sob uma perspectiva especfica.
Exemplos de modelos de processo so:
Modelo de workflow seqncia de atividades;
Modelo de fluxo de dados fluxo de informaes;
Modelo de papel/ao quem faz o qu.
Modelos gerais de processo
Cascata;
Desenvolvimento iterativo;
Engenharia de software baseada em componentes.

Quais so os custos da Engenharia de


Software ?
Aproximadamente 60% dos custos so custos de
desenvolvimento e 40% so custos de testes. Para software
sob encomenda, os custos de evoluo normalmente
excedem de desenvolvimento.
Os custos variam dependendo do tipo de sistema que est
sendo desenvolvido e dos requisitos de atributos de sistema,
tais como desempenho e confiabilidade.
A distribuio de custos depende do modelo de
desenvolvimento que usado.

Distribuio de custos nas atividades

Quais so os mtodos da Engenharia de


Software ?
Abordagens estruturadas para desenvolvimento de software
que incluem modelos de sistema, notaes, regras,
recomendaes de projeto e guia de processo.
Descries de modelo de sistema:
Descries de modelos grficos que devem ser
produzidos;
Regras
Restries aplicadas aos modelos de sistema;
Recomendaes:
Recomendaes de boas prticas de projeto;
Guia de processo:
Quais atividades devem ser seguidas.

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.

Vantagens das ferramentas case ?

Qualidade no produto final


Produtividade
Agilizar o tempo para tomada de deciso
Menor quantidade de cdigos de programao
Melhoria e reduo de custos na manuteno
Agilidade no retrabalho do software
Maior facilidade para desenvolvimento

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

Atributos de um bom software


O software deve fornecer a funcionalidade e o desempenho
requeridos para o usurio e deve ser manutenvel, confivel
e aceitvel.
Facilidade de manuteno
O software deve evoluir para atender s necessidades de
mudana;
Confiana
O software deve ser confivel;
Eficincia
O software no deve desperdiar os recursos do sistema;
Usabilidade
O software deve ser aceito pelos usurios para o qual foi
projetado. Isso significa que ele deve ser compreensvel,

Desafios da Engenharia de Software


Desafio da heterogeneidade: necessrio que os
sistemas de software operem com sistemas distribudos e
tambm com sistemas mais antigos (legados). Necessrio
tcnicas para desenvolver sistemas flexveis e confiveis
para adaptar-se a essa heterogeneidade.
Desafio de entrega:Muitas tcnicas tradicionais
demandam tempo para obter a qualidade. O desafio da
entrega consiste em reduzir os tempos de entrega dos
sistemas grandes e complexos sem comprometer a
qualidade.
Desafio da confiana: Os softwares esto presentes em

Responsabilidade profissional e tica


Confidencialidade: respeitar a confidencialidade de seus
funcionrios ou clientes independente ou no de acordo
formal.
Competncia:No deve conscientemente aceitar um
trabalho que esteja fora da sua competncia.
Direitos sobre propriedade intelectual:Estar ciente das
leis locais, patentes e assegurar que a propriedade
intelectual de funcionrios e clientes esteja protegida.
Mau uso de computadores:Evitar mau uso desde o trivial
(como jogos por exemplo) at o mais srio (disseminao de

Вам также может понравиться