Você está na página 1de 79

Engenharia de Software

Fbio Jos Colombo


fabio.fatectq@gmail.com
Bibliografia: Engenharia de Software, Uma abordagem profissional 7 Edio Presman, Roger S. Edittora: Mac Graw Hill Como Gerencial Sites Web de Sucesso Friedlein, Ashley Editora: Campus Use a Cabea! Web Design Watrall, e; Siartro Editora: Alta Books
1

Engenharia de Software
Sero apresentados mtodos e tcnicas para o desenvolvimento de software que abordam especificao, modelagem, arquiteturas, verificao e testes de software, bem como para o planejamento e gerenciamento do processo de desenvolvimento.
2

Engenharia de Software Esta disciplina de preocupa em sistematizar o desenvolvimento atravs de modelos, tcnicas e ferramentas para o construo de softwares.
3

Engenharia de Software

Fonte: Imagens Google

Engenharia de Software

5
Fonte: Imagens Google

O que um software?
Definies de Software de alguns livros:

1- Instrues (programas de computador) que quando exeutadas, fornecem caractersticas, funes e desempenho desejados; 2- Estruturas de dados que possibilitam a manipulao de dados transformando-os em informaes.

????? Dente Outras?????


6

O que um software?
Para entender melhor necessrio notar que o sotware tem caractersticas que o tornam diferente das outras coisas que o serres humanos constroem, tornando-o um elemento do sistema lgico e no do fsico (harware) O Sotware INTANGVEL

A natureza do Software
O papel desempenhado pelo software tem passado por grandes mudanas nos ltimos 50 anos, acompanhando e se beneficiando do aperfeioamento nas arquiteturas computacionais (hardware, redes e etc);
Atualmente o software assume um duplo papel, ele um produto e ao mesmo tempo um veculo que distribui o produto mais importante da nossa era a INFORMAO! ; Independente de residir num celular ou em um servidor, o software produz, transforma, gerencia, transmite ou exibe informaes
8

A natureza do Software
Hoje a indstria de software fator dominante nas economias do mundo

As equipes de especialistas em software, concentran-se em cada uma das partes da tecnologia para desenvolver e distribuir uma aplicao complexa, substituindo os programadores solitrios de antigamente.
9

A natureza do Software
Ainda hoje mesmo com os modernos sistemas computacionais desenvolvidos so levantadas as mesmas questes de antigamente: Por que concluir um software demora tanto? Por que os custos so to altos?

Por que no encontramos todos os erros antes de entregar o software ao cliente?


Por que temos dificuldades em medir o progresso enquanto o software est sendo desenvolvido e mantido?
10

A natureza do Software
As questes anteriores demonstram a preocupao com o software e a maneira de como ele mantido. Tais preocupaes tem levado a adoo das ferramentas de Engenharia de Software. Tom DeMarco em um de seus livros afirma: Em vez de perguntar por que o software custa tanto, precisamos comear perguntando: O que fizemos para tornar possvel que o software atual custe to pouco?

A resposta a esta pergunta nos ajudar a continuar com o extraordinrio nvel de realizao que tem distinguido a 11 indstria de software.

Caractersticas do Software
O Software no desenvolvido no sentido clssico de fabricao de hardware!

Ele depende exclusivamente de um processo de engenharia e no de fabricao...

Os Custos do Software concentram-se no processo de engenharia!


12

Caractersticas do Software
Invisibilidade Software invisvel e invisualizvel; Complexidade Software mais complexo do que qualquer outro produto construdos por seres humanos; Mutabilidade Existe sempre uma presso para se fazer mudanas em um software; Conformidade O software deve ser desenvolvido conforme o ambiente. No o ambiente que deve se adaptar ao software. Se o software esta conforme os requisitos (o ambiente) todo o suporte operacional deve se adaptar ao software.

[Brooks, F. No Silver Bullet]


13

Caractersticas do Software

14

Breve Evoluo do Software


Os primeiros anos (1950 a incio dos 60) Aplicaes cientficas e de engenharia; A segunda era (1960 a meados de 80) Aplicaes comerciais em grande-porte (sistemas de informao BD); A terceira era (meados de 70 e dcada de 80) Aplicativos pessoais em microcomputadores; A quarta era (meados de 80 a meados de 90) Aplicativos com Interfaces Grficas; Redes e Arquitetura Cliente-Servidor; A quinta era (de meados de 90 a ???) Software Distribudos,Internet, Groupwares e Intranets; Sexta era?? 15 Computao Mvel;

Campos de Aplicao de Software


Milhares de engenheiros de softwares trabalham arduamente em projetos em uma destas categorias.

Software de Sistema
Atendem outros programas (Compiladores, SOs, Utilitrios, Drivers), esta rea caracterizada por pesada interao com o Hardware.

Software de Aplicao
Programas sob medida que solucionam uma necessidade especfica de um negcio. (Controle de Processos em Tempo Real, Pocessamento de Transaes, Factoring).

Software Cientfico / Engenharia


Algortmos para processamento numrico pesado (Astronomia, Vulcanologia, Anlises de tenses da Indstria automotiva, Engenharia, Simulao de Sistemas).

Software Embutido
Integrado a um produto utilizado para implementar funes especficas e controlar caractersticas e funes para o usurio final (telefisores, microondas, comp. bordo automvel, tokens) 16

Campos de Aplicao de Software


Software para linha de produtos
Com capacidade estecfica, utilizado por vrios clientes diferentes (Controle de Estoque, Folha de Pgto, Apl. Financeiras), onde os usurios tem que se adaptar ao software.

Software de Inteligncia Artificial


Busca mtodos ou dispositivos computacionais que possuam ou multipliquem a capacidade racional do ser humano de resolver problemas, pensar ou, de forma ampla, ser inteligente. Sistemas com a capacidade de raciocnio, aprendizagem, reconhecer padres e inferncia. Utiliza Robtica, reconhecimento de padres, imagem, voz, redes neurais...

Aplicaes para a Web


Chamadas de WebApps, est centralizada em redes e atende uma gama de aplicaes. Antes da Web 2.0 apresentava informaes por meio de textos e graficos limitados, aps a web 2.0 tem evoludo para sofisticados ambientes computacionais integrados banco de dados.
17

Novas Categorias de Software


Computao Mundial Aberta
O rpido crescimento das redes sem fio, em breve, conduzir a uma verdadeira computao distribuda nos ambientes domsticos e comerciais.

Netsoursing (recursos via internet)


O desafio dos engenheiros est em arquitetar aplicaes simples (planejamento financeiro e pessoal) e sofisticadas, fornecendo benefcio aos usurios de mercado mundial.

Software Aberto
Uma tendncia crescente que resulta na distribuio de cdigo-fonte. (SOs Bancos de Dados dentre outros), onde muitos podem contribuir no desenvolvimento. O desafio construir um cdigo fonte auto descritivo e desenvolver ferramentas de controle de verses e ferramentas 18 embutidas.

Software Legado
Softwares antigos que tem sido constantemente modificados para se adequar s novas plataformas e os requisitos de softwares de cada negcio. Tais softwares trazem suporte funes vitais do negcio e so indispensveis. muito comum um jovem engenheiro de software trabalhar num programa mais velho que ele! Geraes passadas deixaram um legado que bem sido mantido e atualizado por essa nova gerao. Tal software deve passar por reengenharia para que permanea vivel no futuro. As ferramentas da engenharia de software moderna trazem as metodologias baseadas nesta evoluo contnua. 19

Natureza nica das WebApps


Incio da Rede Mundial de Computadores (19901995), sites formados por arquivos de hipertextos lincados com textos e grficos limitados; XML, Java e outros recursos permitiu utilizao de dados; Incio das aplicaes baseadas na Web com dados dinmicos; Integrao com bancos de dados corporativos; Com a Web 2.0, evoluo com arte e tecnologia, 20 novos recursos impressionantes;

Atributos das WebApps


Existem caractersticas que WebApps de outros softwares: diferenciam as

Uso intensivo de redes: As redes Internet ou Intranet prossibilitam o acesso e comunicao;


Simultaneidade: Acesso um grande nmero de usurios ao mesmo tempo; Carga no previsvel: Nmero de usurios pode ser muito varivel, uma WebApp deve ter planejamento e estudo de carga. Desempenho: O desempenho crucial para que o usurio no busque outra opo;
21

Atributos das WebApps


Disponibilidade: Expectativa de 100%, 24 horas por dia, 7 dias por semana, 365 dias por ano; Orientadas a Dados: Apresentar textos, grficos, udio e vdeo para o usurio final, atualmente armazenados em banco de dados (comrcio eletrnico); Sensibilidade no contedo: Natureza esttica e design so crucial para determinar a qualidade do software.

Evoluo contnua: Diferente das aplicaes convencionais que evoluem ao longo de uma srie de fatores com verses planejadas cronologicamente. comum ver WebApps receberem atualizaes minuto a minuto.
22

Atributos das WebApps


Imediatismo: A necessidade de colocar rapidamente o software no mercado, poucos dias ou semanas, atravs da utilizao de poderosas ferramentas; Segurana: Por estar disponveis via internet, fortes medidas de segurana devem ser implantadas ao longo da infraestrutura que suporta a WebApp; Esttica: Aparncia e impresso que desperta no usurio, sendo to importante quanto a estrutura tcnica empregada.

23

A Revoluo

24

A Revoluo

25

Primeira Revoluo

26

Segunda Revoluo

27

Terceira Revoluo

28

Quarta Revoluo

29

A Revoluo

30

Viso das Mudanas

31

O Futuro

32

Fonte: Imagens Google

33

Curva de Defeitos para Hardware


Estudos da Taxa de Defeitos de Hardware em funo do tempo:

Fonte: Roger S. Presman.

1. Taxa de Defeitos altas no inicio da vida, defeitos de fabricao;

2. Aps correo, a taxa fica estvel por um tempo;


3. Na fase do envelhecimento (vibraes, poeira, impactos, 34 temperatura e outros males ambientais)

Curva de Defeitos para Software


O Software no suscetvel aos males ambientais que fazem o hardware se desgastar, porm:
Aumento de Taxa de Defeitos Devido a Falhas...

Taxa de Falhas Alteraes e correes diminuem a taxa... Curva Real...

Curva Idealizada...
Fonte: Roger S. Presman.

Tempo

1. Durante a vida til o software passa por alteraes que induzem a erros fazendo a curva real ficar acentuada... 2. O software est se deteriorando devido s modificaes... Fica claro que o software no se desgasta, mas se deteriora...
35

Curva de Defeitos para Software


O software no se desgasta, mas se deteriora...
Aumento de Taxa de Defeitos Devido a Falhas...

Taxa de Falhas Alteraes e correes diminuem a taxa... Curva Real...

Fonte: Roger S. Presman.

Curva Idealizada... Tempo

1. Para reduzir a curva de deteriorao do software necessrio fazer um projeto melhor de software...
2. Os mtodos de Engenharia de Software tentam reduzir ao mximo os picos de defeitos e a inclinao da Curva Real visualizada na figura.
36

Falhas de Software
O foguete Ariane 5, 1996: O foguete explodiu 40 segundos aps a sua primeira decolagem; Prejuzo de U$ 500 milhes; Foi aproveitado um pacote de software de navegao do Ariane 4 que no tinha erros.
No mdulo Sistema de Referencia Inercial uma converso de valores de 64-bits para 16-bits causou um operando invlido que o interrompeu, a falha levou o computador de bordo a modificar a trajetria do foguete levando ruptura de juntas e isto causou a ativao da auto-destruio.
37

Falhas de Software
London Ambulance System - despacho de ambulncias em Londres, 1992.
Morte de pessoas que no foram socorridas em tempo. Responsveis contrataram uma empresa desconhecida cujo valor cobrado era menor que os cobrados pelas empresas de renome. Colocaram o sistema no ar sem os devidos testes. No foi feita uma migrao correta do sistema antigo para o novo. 38

Falhas de Software
Mquina de radioterapia com software controlador (1985 - 87). O controle de segurana feito pelo hardware em mquinas anteriores foi removido e passou a ser feito pelo software. O software falhou na tarefa de, ao mesmo tempo, manter invariantes essenciais: o feixe de eltrons e o dispositivo que controla a concentrao do feixe em nveis seguros. Diversas mortes em decorrncia de queimaduras. O programador no tinha experincia em programao concorrente.
39

Engenharia de Software

Fonte: Imagens Google

40

Engenharia de Software
uma disciplina da engenharia dedicada a todos os aspectos da produo de software; Engenheiros de software devem adotar uma abordagem sistemtica e organizada para o seu trabalho e usar tcnicas e ferramentas apropriadas, de acordo com o problema a ser resolvido, e com as restries e recursos disponveis;
Responsabilidade profissional e tica.
Fonte: Ian Sommerville 41

Engenharia de Software
Processo de desenvolvimento envolvendo anlise, design, implementao e avaliao Baseado em teoria, princpios, modelos, mtodos, tcnicas e ferramentas;

Equipe de especialistas Planejamento e gerenciamento de recursos, custos e prazos.


42

Objetivos da Engenharia de Software


Aplicao de teoria, modelos, formalismos, tcnicas e ferramentas da cincia da computao e reas afins para o desenvolvimento sistemtico de software;

Aplicao de mtodos, tcnicas e ferramentas para o gerenciamento do processo de desenvolvimento;


Produo da documentao formal destinada a comunicao entre os membros da equipe de desenvolvimento bem como aos usurios.
43

Projeto de Engenharia de Software


Um projeto um empreendimento temporrio empreendido para alcanar um nico conjunto de objetivos.
Fonte: (PMI,PMBOK Guide)
44

Projeto de Engenharia de Software


Podem ser de:
Desenvolvimento de um novo projeto ou a atualizao de programas existentes; A seleo, aquisio e implementao de pacotes de Softwares , os quais podem incluir aspectos de customizao;

A seleo, aquisio e implementao de Softwares, o que pode incluir equipamento de mainframe , servidores, estaes de trabalho e outros equipamentos de suporte; Produtos de redes e telecomunicaes e a seleo de servios, aquisio ou implementao;
Integrao de sistemas ; Alguma combinao dos itens acima.
45

Projeto de Engenharia de Software


Para desenvolver um software devemos perceber os fatos reais:
O software est inserido em todos os aspectos da nossa vida, Trabalho, celular, maquinas (micro-ondas, TV, Automvel);
Os requisitos de tecnologia demandados por indivduos e organizaes esto mais complexos a cada ano, de produtos eletrnicos de consumo a equipamentos mdicos e militares. Projetar tornou-se uma atividade fundamental;

Com a falha do software podem ocorrer desde pequenos inconvenientes, at falhas catastrficas, por isso Um software deve apresentar qualidade elevada;
Com o aumento de usurios em comum, a demanda por adaptao e aperfeioamento ir aumentar, portanto O software deve ser passvel de manuteno.. 46

Projeto de Engenharia de Software


Ao perceber os fatos reais destacados anteriormente, chegamos s seguintes concluses:

Um software em todas as suas formas e em todos os seus campos de aplicao, deve passar por processo de engenharia de software;
Entender o problema antes de elaborar uma soluo fundamental; Projetar atividade essencial na engenharia de software;

Qualidade e facilidade de manuteno so resultantes de um projeto bem feito; 47

Camandas da Engenharia de Software


A Engenharia de Software, uma abordagem sistemtica, disciplinada, e quantificvel, aplicvel por uma equipe, com adaptabilidade e agilidade; Automatizam
Permitem o desenvolvimento de forma racional e dentro do prazo.

Ferramentas Mtodos
Processos (Metodologias) Foco na Qualidade

os mtodos e processos

Anlise, Modelagem, desenvolviment o, testes e suporte.

A pedra fundamental de sustentao :

O Foco na Qualidade
48

Processo Genrico de Engenharia de Software

Um processo define quem est fazendo o qu, quando e como para atingir um objetivo.
Ivan Jacobson, Grady Booch e James Rumbaugh.

49

Processo Genrico de Engenharia de Software


Um processo no uma prescrio rgida de como desenvolver um software. uma abordagem adaptvel que permite s pessoas da equipe idealizar e escolher o conjunto apropriado de aes e tarefas, a fim de entregar o software dentro do prazo e com qualidade.
50

Processo Genrico de Engenharia de Software um conjunto de atividades, aes e tarefas desenvolvidas focando
atingir um objetivo de trabalho. Uma metodologia de processo de engenharia de software dividida em cinco partes: Comunicao: Levantamento de dados e requisitos; Planejamento: Desenvolvimento do Plano de Projeto de software (tarefas tcnicas, analise de riscos, recursos necessrios, cronograma de trabalho); Modelagem: Cria-se um esboo para se ter idia do todo, para entender as necessidades do projeto. (Diagrama de Caso de Uso); Construo: Gerao de Cdigo (manual ou automatizada); Emprego: O software completo ou mdulo entregue ao cliente que avalia o produto e fornece feedback;

As atividades acima so aplicadas repetidamente quantas forem as iteraes (mdulos) do projeto; A cada iterao o software se torna mais e mais completo. 51

Atividades de Apoio
Processo Genrico de Engenharia de Software Geralmente so aplicadas ao longo do processo de desenvolvimento, com o objetivo de ajudar a equipe a gerenciar, controlar, manter e gerenciar o projeto. Controle e Aconpanhamento: Avaliar andamento do projeto em relao com o plano do projeto a fim de tomar aes para cumprir o cronograma; Administrao de Riscos: Avaliao dos riscos, que possa afetar a qualidade; Revises Tcnicas: Identificar e eliminar erros antes da atividade seguinte; Gerenciamento da Configurao: Controla os efeitos das mudanas ao longo do processo; Gerenciamento da reusabilidade: Define critrios para a obteno de componentes reutilizveis no desenvolvimento.
52

Atividades de Apoio
Preparo e produo de Artefatos de Software

Engloba as atividades necessrias para criar artefatos como:


Modelos; Documentos; Logs; Formularios; Listas.

Sinto que uma receita consiste em apenas um tema onde o cozinheiro inteligente pode brincar, cada vez com uma variao.
Madame Benoit
53

Prtica da Engenharia de Software


A essncia da Prtica

Em seu livro How to Solve It, George Polya aponta em linha gerais a essncia da soluo de problemas e, consequentemente, a essncia da prtica da engenharia de software:
Compreender o Problema: comunicao e anlise;

Planejar uma soluo: modelagem e projeto;


Executar o Plano: gerao de cdigo; Examinar o resultado: testes e garantia da qualidade.

54

Prtica da Engenharia de Software


A essncia da Prtica

Compreender o Problema => Compreender nem sempre assim to fcil assim, vale apena despender um tempo respondendo algumas questes:
Quem so os interessados na soluo do Problema? Que dados, funes e recursos so necessrios para resolver o problema? O pode ser dividido em partes? Pequenas partes so fceis compreender... O problema pode ser representado graficamente?
55

Prtica da Engenharia de Software


A essncia da Prtica

Planeje a Soluo => Agora que voc entende o problema (ou pensa que entende), no v a hora de comear a codificar, relaxe e faa um projeto:
Voc j viu problemas semelhantes? Existem padres que levam a uma provvel soluo? Pesquise se algum problema similar j foi resolvido? possvel dividir em subproblemas? Existem solues imediatas para eles? possvel representar uma soluo que conduza a uma implementao efetiva? possvel criar um modelo de projeto para apresentar s pessoas envolvidas?
56

Prtica da Engenharia de Software


A essncia da Prtica

Execute o Plano => O projeto elaborado serve como o mapa para o sistema que se quer construir. Pode ser que no desenrolar do desenvolvimento surjam novidades, porm o planejamento nos permitir que continuemos sem nos perder.
A soluo se adequar ao plano? O cdigo fonte pode ser atribudo ao modelo do projeto?

O projeto e o cdigo foram revistos?

57

Prtica da Engenharia de Software


A essncia da Prtica

Examine o Resultado => No se pode ter certeza que a soluo seja perfeita, porm, pode-se assegurar que os testes tenham sido realizados para revelar o maior nmero de erros possveis.
possvel testar cada componente da Soluo? Foi implementada uma estratgia de testes razoveis?

O Software foi avaliado em relao a todas as solicitaes dos interessados?


58

Prtica da Engenharia de Software


A essncia da Prtica

Pode-se afirmar que a abordagem de George Polya simplesmente uma questo de bom senso. impressionante o quanto frequente a falta de bom senso no mundo de desenvolvimento de software.
59

Crise de software
Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:
(problemas no se limitam a softwares que no funcionam adequadamente)

1- As estimativas de prazo e de custo

frequentemente so imprecisas...
No dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software; Estimativas so feitas a olho, com resultados ruins.
60

Crise de software
Os prazos arrastam-se por meses; Causa insatisfao para o cliente e falta de confiana; Sem nenhuma indicao slida de produtividade, no podemos avaliar com preciso a eficcia de novas ferramentas, mtodos ou padres.
61

Crise de software
2- A produtividade das pessoas da rea de software no tem acompanhado a demanda por seus servios...
Os projetos de desenvolvimento de software normalmente so efetuados apenas com um vago indcio das exigncias do cliente; A comunicao entre o cliente e o desenvolvedor de software muito 62 fraca.

Crise de software
3- A qualidade de software s vezes menos que adequada...
No uso de tcnicas de teste sistemticas e completas; S recentemente comeam a surgir conceitos quantitativos slidos de garantia de qualidade de software.
63

Crise de software
4- O software existente muito difcil de manter...
A tarefa de manuteno devora o oramento destinado ao software; A facilidade de manuteno no foi enfatizada como um critrio importante;

Engenharia de Software
Esses problemas podem ser corrigidos; Abordagem de engenharia de software aliada a tcnicas e ferramentas.
64

Causas dos problemas associados crise de software


1- PRPRIO CARTER DO SOFTWARE

O software um elemento de sistema lgico e no fsico. Consequentemente o sucesso medido pela qualidade de uma nica entidade e no pela qualidade de muitas entidades manufaturadas.

O software no se desgasta, mas se deteriora...


65

Causas dos problemas associados crise de software


2- FALHAS DAS PESSOAS RESPONSVEIS PELO DESENVOLVIMENTO DE SOFTWARE Gerentes software; sem nenhum background em

Os profissionais da rea de software tm recebido pouco treinamento formal em novas tcnicas para o desenvolvimento de software;
Resistncia a mudanas.
66

Causas dos problemas associados crise de software


3MITOS DO SOFTWARE
(Gerenciamento, do Cliente e do Profissional)

No oferecem lies humanas;


Muitas causas da crise de software podem ser localizadas pela mitologia que surgiu durante a histria do desenvolvimento do software; Propagaram desinformao e confuso;
67

Mitos do software (Gerenciamento)


Gerentes se encontram sob presso
manter oramentos; evitar que os prazos estouram; melhor a qualidade;

Gerente quando est se afogando agarra crena de um mito (mesmo que temporariamente).

68

Mitos do software (Gerenciamento)


Mito: J temos um manual repleto de padres e procedimentos para a construo de software. Isso oferecer ao meu pessoal tudo o que eles precisam saber.

Realidade:

Ser que o manual usado? Os profissionais sabem que ele existe? Ele reflete a prtica moderna de desenvolvimento de software? Ele completo?
69

Mitos do software (Gerenciamento)


Mito: Se ns estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso (conceito de hordas de mongis).

Realidade:
O desenvolvimento de software no um processo mecnico igual manufatura.

Acrescentar pessoas em um projeto torna-o ainda mais atrasado.


Pessoas podem ser acrescentadas, mas somente de uma forma planejada e bem coordenada.
70

Mitos do software (Clientes)


Em muitos casos, o cliente acredita em muitos mitos sobre o software, porque os gerentes e profissionais no corrijam a desinformao;

Mitos levam a falsas expectativas e insatisfao.


71

Mitos do software (Clientes)


Mito: Uma declarao geral dos objetivos suficiente para se comear a escrever programas. Podemos preencher os detalhes mais tarde... Realidade:
Uma definio inicial ruim a principal causa de fracassos dos esforos de desenvolvimento de software;

fundamental uma descrio formal e detalhada do domnio da informao, funo, desempenho, interfaces, restries de projeto e critrios de validao.
72

Mitos do software (Clientes)


Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanas podem ser facilmente acomodadas, porque o software flexvel. Realidade:
Requisitos podem ser mudados, mas o impacto varia de acordo com o tempo que introduzido (projeto e custo); Um mudana, quando solicitada tardiamente num projeto, pode ser mais do que a ordem de magnitude mais dispendiosa da mesma mudana solicitada nas fases iniciais.
73

Mitos do software (Profissional)


Durante os primrdios da computao, a programao era vista como uma forma de arte...

Velhas maneiras e dificilmente morrem...

atitudes

Os mitos dos profissionais da rea de programao tem resistido por mais de 50 anos.
74

Mitos do software (Profissional)


Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estar completo. Realidade:

Os dados da indstria indicam que entre 50 e 70% de todo esforo gasto num programa sero despendidos depois que ele for entregue pela primeira vez ao cliente..
75

Mitos do software (Profissional)


Mito: Enquanto no tiver o programa "funcionando", eu no terei realmente nenhuma maneira de avaliar sua qualidade. Realidade: Mecanismo (Reviso Tcnica Formal) de garantia de qualidade de software aplicado desde o comeo do projeto;

Revises tcnicas de software so um filtro de qualidade - descobre erros/defeitos.


76

Mitos do software (Profissional)


Mito: A nica coisa a ser entregue em um projeto bem-sucedido o programa funcionando. Realidade:
Um programa funcionando somente uma parte de uma Configurao de Software que inclui todos os itens de informao produzidos durante a construo e manuteno do software.

A DOCUMENTAO o alicerce!
77

Problemas do Desenvolvimento atual de Software...


1 - Sofisticao do Software e desenvolvimento do Hardware;

2 - Aumento expressivo da demanda;


3 - M administrao, planejamento e gerenciamento da equipe de desenvolvimento de software.
78

Concluso...
Sempre que se pensa:

No temos tempo para a Engenharia de Software


Pergunte a si mesmo:

Temos tempo para fazer de novo?


79