Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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
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
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
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
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
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
Modelos de processos genricos Cascata (Waterfall) Desenvolvimento evolucionrio (Iterativo) Integrao a partir de componentes reutilizveis
Slide 21 de 27
Specification
Design
Developm ent
Specification
Sy stem testing
1 00
Specification
Developm ent em s
30
400
Sy stem evolution
Slide 22 de 27
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
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
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
Obedecer prazos
os
Confiabilidade Desempenho
Slide 26 de 27
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