O autor permite o uso e a modificao dos slides para fins didticos
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 1
Motivao J ouviram falar da Crise do Software ?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 2
Motivao J ouviram falar da Crise do Software ?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 3
Motivao J ouviram falar da Crise do Software ?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 4
Motivao J ouviram falar da Crise do Software ?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 5
Motivao J ouviram falar da Crise do Software ?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 6
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
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 7
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 8
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?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 9
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?
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 10
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 11
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 12
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! 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 13
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 14
O que processo de software? Um conjunto estruturado de atividades, prticas, artefatos e ferramentas necessrios para o desenvolvimento de um sistema de software Especificao Projeto Validao Evoluo Exemplos: Processo Unificado (RUP), Programao Extrema, UML Components
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 15
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 16
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 Os 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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 17
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 18
Distribuio de custos nas atividades
Figura 1.1 Distribuio de custos nas atividades de engenharia de software
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 19
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 20
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 conforme sua especificao Eficincia O software deve usar o mnimo de recursos e prover mxima funcionalidade Usabilidade O software deve ser compreensvel e fcil de usar
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 21
Quais so os desafios-chave enfrentados pela engenharia de software? Heterogeneidade Sistemas de software devem suportar 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
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 22
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
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 23
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 explcito para seus contratantes Competncia Os engenheiros no devem conscientemente aceitar um trabalho que esteja fora de sua competncia
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 24
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
2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 25
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 2007 by Pearson Education
Ian Sommerville 2006 Engenharia de Software, 8. edio. Captulo 1 Slide 26
Search-Based Software Engineering - Aplicação de Metaheurísticas em Problemas Da Engenharia de Software Revisão de Literatura (Otimização em Engenharia de Software) 2