You are on page 1of 27

Instituto Federal de Educao, Cincia e Tecnologia de Alagoas Campus Palmeira dos ndios Engenharia de Software

Introduo Engenharia de Software


Apresentao do captulo 1 do Sommerville

Por

Elvys Soares
elvys.soares@ifal.edu.br
Palmeira dos ndios Maro de 2012

Software em geral

As economias de TODAS as naes desenvolvidas so dependentes de software Cada vez mais sistemas so controlados por software Engenharia de software preocupa-se com teorias, mtodos e ferramentas para desenvolvimento profissional de software Gastos com engenharia de software representam uma frao significante do PIB em todos os pases desenvolvidos.
Slide 2 de 27

O que Software?

Programas de computador e documentao associada Produtos de software podem ser desenvolvidos para um cliente em particular ou para um mercado especfico Produtos de software podem ser Genrico desenvolvido para ser vendido a uma variedade de clientes diferentes Customizado desenvolvido para um cliente nico, de acordo com a especificao fornecida.
Slide 3 de 27

O que Engenharia de Software?

Uma disciplina de engenharia que se preocupa com todos os aspectos da produo de software Adota uma abordagem sistemtica e organizada, usa ferramentas e tcnicas apropriadas dependendo do problema a ser resolvido, das restries de desenvolvimento e dos recursos disponveis Usa notaes (tambm conhecidas como mtodos) e processos

Slide 4 de 27

Custos de Software

Custos de software geralmente dominam os custos do sistema. Os custos do software em um PC so geralmente maiores que o custo do hardware
Software vs Hardware Costs
100% 80% 60% 40% 20% 0% 1960

1975

1970

1975

1980

1985

1990

Slide 5 de 27

Custos de Software

Software custa mais para se manter do que para se desenvolver. Para sistemas de vida longa, os custos de manuteno podem ser muitas vezes maiores do que os de desenvolvimento A engenharia de software se preocupa com desenvolvimento de software com custo efetivo.

Slide 6 de 27

Evoluo do Software
1 Primeira Gerao

Software em segundo plano Desenvolvimento sem gerenciamento Foco no hardware Baixa mobilidade de atividades Design implcito Produtos de software em sua infncia

Slide 7 de 27

Evoluo do Software
2 Segunda Gerao Meio dos anos 60 ao final dos anos 70 Multi-tarefa, multi-usurio, interativo Interao abriu um novo mundo de sofisticaes em aplicaes e hardware Sistemas de Tempo Real (Real-time systems) Avanos em armazenamento direto em sistemas de bancos de dados Software houses & produtos de software para mainframes & mini-computadores Programas crescendo em tamanho, manuteno de software Natureza personalizada dos programas tornou muitos deles impossveis de manter - Crise do Software
Slide 8 de 27

Evoluo do Software
3

Sistemas distribudos, concorrncia, comunicao de banda larga, lans & wans Advento dos PCs Computadores desktops poderosos Mudanas arquiteturais de mainframe para cliente-servidor descentralizado Exploso de canais de informao Programao orientada a objetos IA & sistemas especialistas
Slide 9 de 27

Evoluo do Software
5

Objetos distribudos, computao empresarial Corba, DCom, EJB e .NET e-commerce e software baseado na web

Slide 10 de 27

Caractersticas de Software

Software engenharia e no manufatura Sem fase de manufatura, que introduz problemas de qualidade Custos concentrados na engenharia Software no fica obsoleto Fica deteriorado Sem partes reserva A maioria dos softwares construda de forma customizada ao invs de serem montados a partir de componentes
Slide 11 de 27

Caractersticas de Hardware

Slide 12 de 27

Caractersticas de Software

Slide 13 de 27

Caractersticas de Software

Slide 14 de 27

Perguntas sobre 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 um processo de software? O que um modelo de processo de software? Quais so os custos da engenharia de software? O que so mtodos de engenharia de software?

Slide 15 de 27

Perguntas sobre Engenharia de Software

O que uma ferramenta CASE (Computer-Aided Software Engineering) Quais so os atributos de um bom software? Quais so os desafios encontrados pela engenharia de software?

Slide 16 de 27

Qual a diferena entre engenharia de software e Cincia da Computao?

A cincia da computao est preocupada com a teoria e os fundamentos da computao em si; a engenharia de software est preocupada com as praticidades em desenvolver e entregar software til As teorias da cincia da computao so atualmente insuficientes para agir como adjacncias para a engenharia de software

Slide 17 de 27

Qual a diferena entre engenharia de software e engenharia de sistemas?

A engenharia de sistemas est preocupada com todos os aspectos do desenvolvimento de sistemas baseados em computador incluindo hardware, software e os processos de engenharia. A engenharia de software apenas uma parte desse processo Engenheiros de sistemas esto encolvidos com a especificao dos sistema, design arquitetural, integrao e desenvolvimento

Slide 18 de 27

O que um processo de software?

um conjunto de atividades cujo objetivo o desenvolvimento ou a evoluo do software Atividades genricas de todos os processos de software so: Especificao o que o sistema deve fazer e as suas restries Desenvolvimento produo do sistema de software Validao conferir que o produto o que o cliente quer Evoluo mudar o software de acordo com as requisies de mudana
Slide 19 de 27

O que um modelo de processo de software?

Uma representao simplificada de um processo de software, apresentado sob uma perspectiva especfica Exemplos: Perspectiva de Workflow seqncia de atividades Perspectiva de Data-flow fluxo de informaes Perspectiva de papis/aes quem faz o qu
Slide 20 de 27

O que um modelo de processo de software?

Modelos de processos genricos Cascata (Waterfall) Desenvolvimento evolucionrio (Iterativo) Integrao a partir de componentes reutilizveis

Slide 21 de 27

Quais so so custos da Engenharia de Software?


W at erfall m odel 0 25 50 75 100

Specification

Design

Developm ent

Integ ration and testing

It erative developm ent 0 25 50 75 1 00

Specification

Iterative developm ent ineering 50 75

Sy stem testing

Com ponent-based software eng 0 25

1 00

Specification

Developm ent em s

Integ ration and testing

Developm ent and evolution costs for long-lifetim e sy st 0 10 200

30

400

Sy stem developm ent

Sy stem evolution

Slide 22 de 27

O que so mtodos de engenharia de software?

So abordagens estruturadas para o desenvolvimento de software que incluem modelos de sistemas, notaes, regras, recomentaes de design e conduo do processo Descries do modelo descries de modelos grficos que devem ser produzidos Regras restries aplicadas aos modelos de sistemas Recomendaes conselhos sobre boas prticas de design Conduo do processo que atividades seguir
Slide 23 de 27

O que CASE (Computer-Aided Software Engineering)?

Sistemas de software que tem por objetivo prover suporte automatizado para as atividades de processo de software. Sistemas CASE so geralmente urilizados para suporte metodologia. Alto nvel Ferramentas para suporte s atividades iniciais dos processos de anlise de requisitos e projeto. Baixo Nvel Ferramentas para suporte s atividades posteriores, tais como programao, debugging e testes.

Slide 24 de 27

Quais so os atributos de um bom software?

O software deve entregar a funcionalidade e desempenho requeridos para o usurio e deve ser de fcil manuteno, evoluo e utilizao Manutenibilidade O software deve poder evoluir para alcanar as necessidades de mudana dos clientes Confiana - confiabilidade, robustez, proteo e segurana Eficincia quanto ao uso dos recursos do sistema Usabilidade - deve ser utilizvel pelos usurios para os quais foi projetado.
Slide 25 de 27

Atributos de Software Objetivos conflitantes


Facilidade de Manuteno Custo Produo de

Obedecer prazos

os

Confiabilidade Desempenho

Slide 26 de 27

Quais so os desafios-chave da engenharia de software?

Lidar com sistemas legados, diversidade crescente e demandas para tempos de entrega reduzidos Sistemas Legados Sistemas antigos mas valorosos devem ser mantidos e atualizados Heterogeneidade Sistemas so distribuidos e incluem uma mistura de hardware e software Entrega H uma presso crescente para a entrega rpida de software
Slide 27 de 27

You might also like