Você está na página 1de 4

4/19/11

1
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 1
2007 by Pearson Education
Uma Introduo Engenharia
de Software
Prof. Mrcio Lopes Cornlio
Slides originais elaborados por Ian Sommerville
O autor permite o uso e a modificao dos slides para fins didticos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 2
2007 by Pearson Education
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
Sistemas no-triviais
Com base em um conjunto de requisitos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 3
2007 by Pearson Education
Custos de software
! Os custos de software dominam os custos de
sistemas computacionais.
Em geral, software custa mais que hardware
! Manter um software custa mais que desenvolv-lo
! A engenharia de software dedica-se ao
desenvolvimento de software com custos adequados
Respeitando o cronograma acordado
Satisfazendo as necessidades dos clientes
Minimizando o custo de manuteno
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 4
2007 by Pearson Education
Definies
! Disciplina gerencial e tecnolgica que lida com a
produo e manuteno sistemtica de produtos
de software desenvolvidos dentro de estimativas
de custo e tempo
! Multi-person construction of multi-version
software(Parnas)
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 5
2007 by Pearson Education
FAQs sobre engenharia de software
! 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 de sistemas?
! O que processo de software?
! O que um modelo de processo de software?
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 6
2007 by Pearson Education
FAQs sobre engenharia de software
! 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 software?
4/19/11
2
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 7
2007 by Pearson Education
O que software?
! Programas de computador e artefatos associados
! Produtos de software podem ser:
Genricos desenvolvidos para serem vendidos para
uma grande variedade de clientes (e.g., Excel e Word)!
Personalizados desenvolvidos para um nico cliente
de acordo com as suas especificaes.
! Um software novo pode ser criado atravs de
desenvolvimento de novos programas;
configurao de sistemas de software genricos; ou
reutilizao de um software existente.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 8
2007 by Pearson Education
O que engenharia de software?
! Engenharia de software uma disciplina relacionada
com todos os aspectos da produo de software.
! ... e prope ferramentas, tcnicas e processos para:
Entender com preciso qual o problema (as
necessidades associadas ao sistema que deve ser
construdo/modificado)!
Produzir uma soluo adequada para esse problema (um
sistema pronto para usar, levando-se em considerao
as necessidades das partes interessadas)!
Levando-se em conta restries de desenvolvimento e
recursos disponveis
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 9
2007 by Pearson Education
Qual a diferena entre engenharia de
software e cincia da computao?
! A cincia da computao dedica-se teoria e aos
fundamentos;
Engenharia de software dedica-se aos aspectos
prticos de desenvolvimento e de entrega de software
O que vs. Como
! 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).
Em outras palavras: no h receitas prontas!
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 10
2007 by Pearson Education
Qual a diferena entre engenharia de
software e engenharia de sistemas?
! Engenharia de sistemas:
Mais ampla
Muita nfase em aspectos de hardware e infra-estrutura
Abstrao do hardware
Organizao fsica das partes do sistema
Aspectos de comunicao
Engloba a engenharia do software
! Os engenheiros de sistema esto envolvidos em
diversas atividades da engenharia de software
Projeto da arquitetura
Elicitao e especificao de requisitos
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 11
2007 by Pearson Education
O que processo de software?
! Um conjunto estruturado de atividades, prticas,
artefatos e ferramentas necessrios para o
desenvolvimento de um sistema de software
Especificao;
Desenvolvimento;
Validao;
Evoluo.
! Exemplos: Processo Unificado (RUP), Programao
Extrema, UML Components
! Diferente da definio do livro!!!
processo, modelo de processo, mtodo e metodologia
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 12
2007 by Pearson Education
O que processo de software?
! Alguns elementos de um processo:
Modelos de sistema:
Modelos grficos que podem/devem ser produzidos e as
notaes que devem ser empregadas;
Restries aplicadas aos modelos de sistema;
Recomendaes de boas prticas de projeto;
Atividades que devem ser seguidas em determinada
ordem
s vezes tambm prescrevem ferramentas
! Um processo adere a um ou mais modelos de
processo
4/19/11
3
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 13
2007 by Pearson Education
O que um modelo de processo de
software?
! Uma representao simplificada de um processo de
software, apresentado sob uma perspectiva especfica
Incluindo algumas atividades e sua organizao de alto nvel
! Modelos gerais de processo
Cascata;
Desenvolvimento iterativo;
Engenharia de software baseada em componentes.
! Dois modelos no so necessariamente mutuamente
excludentes!
! Representaes de modelos de processo:
Modelo de workflow seqncia de atividades;
Modelo de fluxo de dados fluxo de informaes;
Modelo de papel/ao quem faz o qu.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 14
2007 by Pearson Education
Quais so os custos da engenharia de
software?
! 60% dos custos so custos de desenvolvimento
! 40% so custos de testes
! Para software sob encomenda, os custos de evoluo
normalmente excedem os de desenvolvimento.
! Os custos variam dependendo do tipo de sistema que
est sendo desenvolvido e dos requisitos do sistema,
tais como desempenho e confiabilidade
! A distribuio de custos depende do modelo de
desenvolvimento que usado.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 15
2007 by Pearson Education
Distribuio de custos nas atividades
Figura 1.1
Distribuio de custos
nas atividades de
engenharia de
software
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 16
2007 by Pearson Education
O que CASE (Computer-Aided Software
Engineering)!
! Sistemas de software que se destinam a fornecer
apoio automatizado para as atividades de
desenvolvimento de software.
! Sistemas CASE so usados freqentemente para
apoiar um mtodo especfico
! Upper-CASE
Ferramentas para apoiar as atividades iniciais de
processo de requisitos e de projeto;
! Lower-CASE
Ferramentas para apoiar as atividades finais tais como
programao, debugging e teste.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 17
2007 by Pearson Education
Quais so os atributos de um bom
software?
! O software deve fornecer a funcionalidade e o desempenho
requeridos para o usurio e deve apresentar certas
caractersticas
! Facilidade de manuteno
Deve ser fcil e barato fazer com que o sistema, depois de
implantado, evolua para atender s necessidades dos clientes
! Confiabilidade
O software deve funcionar de maneira que o usurio possa depender
dele. No caso de falha, no traz danos fsicos ou econmicos
! Eficincia
O software deve usar o mnimo de recursos e prover mxima
funcionalidade
! Usabilidade
O software deve ser compreensvel e fcil de usar
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 18
2007 by Pearson Education
Quais so os desafios-chave enfrentados
pela engenharia de software?
! Heterogeneidade
Sistemas de software devem ser capaz de lidar com diferentes
plataformas de hardware e ambientes de execuo;
! Entrega
O sistema deve ser entregue ao cliente no menor tempo possvel,
com o menor custo possvel;
! Confiana
O usurio deve poder justificadamente depositar sua confiana no
sistema
! Escala
O sistema deve funcionar adequadamente mesmo quando um
grande nmero de usurios o est usando
4/19/11
4
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 19
2007 by Pearson Education
Responsabilidade profissional e tica
! A engenharia de software envolve responsabilidades
mais amplas do que simplesmente a aplicao de
habilidades tcnicas.
! Os engenheiros de software devem se comportar de
modo honesto e eticamente responsvel para serem
respeitados como profissionais.
! O comportamento tico mais do que simplesmente a
sustentao de leis.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 20
2007 by Pearson Education
Questes de responsabilidade profissional
! Confidencialidade
Os engenheiros de software devem normalmente respeitar a
confidencialidade de seus funcionrios ou clientes,
independentemente de ter ou no assinado um acordo formal.
Caso no aceitem essas condies, devem deixar isso expicito
para seus contratantes
! Competncia
Os engenheiros no devem conscientemente aceitar um
trabalho que esteja fora de sua competncia.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 21
2007 by Pearson Education
Questes de responsabilidade profissional
! Direitos sobre propriedade intelectual
Desenvolvedores devem estar cientes das leis locais que
regem o uso de propriedade intelectual, tais como
patentes, direitos autorais, etc.
Eles devem tomar cuidado para assegurar que a
propriedade intelectual dos funcionrios e clientes seja
protegida.
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 22
2007 by Pearson Education
Dilemas ticos
! Discordncia, em princpio, das polticas da gerncia
snior.
! Um funcionrio age de uma forma no tica e libera um
sistema de segurana crtico sem finalizar o teste do
sistema.
! Participao no desenvolvimento de sistemas de
armamentos militares ou de sistemas nucleares

Você também pode gostar