A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução a Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Introdução a Engenharia de Software"— Transcrição da apresentação:

1 Introdução a Engenharia de Software
Prof. Henrique Vila Nova TD - TARDE Unibratec

2 Introdução do Curso 2 partes: Teoria básica (antes da P1)
Modelagem + Prática (após a P1)

3 Estrutura do curso (I) Introdução + Ciclos de Vida
Gerência de Projetos: Análise e Projeto de Software Testes e Confiança Manutenção Garantia de Qualidade Introdução + Ciclos de Vida Gerência de Projetos: Métricas Estimativas: COCOMO-2 E Putnam Análise DFD Testes e Confiança (– Cap 8 shari pg 359 Motorola Zero-Failure Testing) e Manutenção Garantia de Qualidade? Avaliação – Capability Maturity Model - CMM

4 Estrutura do curso (II)
Modelagem Orientada a Objetos UML Computer Aided Software Engineering: Rational Rose

5 Bibliografia Engenharia de Software, Roger Pressman, Makron Books:
o mais completo (a bíblia) edição em português desatualizada (3a. Edição, de 1992) 4a. Edição em inglês. Software Engineering: Theory and Practice, Shari Pfleeger. Prentice Hall Sommerville, Addison Wesley, 1989.

6 Introdução a Engenharia de Software
1a. Aula Introdução a Engenharia de Software

7 Introdução “O Software ultrapassou o Hardware como chave para o sucesso de muitos sistemas baseados em computador” (Pressman, pg. 3, 1992)

8 O Software é o que faz a diferença!!!
Completeza da informação inteligência funcionalidade compatibilidade suporte Tornam 1 produto melhor que outro

9 A importância do Software
Durante as 3 primeiras décadas da era do computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho. O hoje o desafio é melhorar a qualidade (e reduzir os custos) das soluções baseadas em SOFTWARE!

10 A evolução do Software - 3a. Onda
- Nova Revolução Computação Industrial (Toffler) - 3a. Onda

11 Parêntesis: Revolução Industrial Primeira Onda
( Ferro (Darby, 1709) Máquina a vapor: Inventada (Newcomen, 1712) Aperfeiçoada (WATT, ’69 -’82) Mecanização da indústria têxtil: Tear Mecânico (Kay, 1722) Maquina de fiar (Hargreaves, 1764) Aspectos sociais, políticos e econo Têxteis, Carvão e Ferro Primeira Revolução Industrial the mechanization of manufacturing changed an agrarian into an urban industrial society The cotton textile industry was the first to be fully mechanized. The crucial inventions were John KAY's flying shuttle (invented in 1733 but not widely used until the 1760s), James HARGREAVES's spinning jenny (1765), Richard ARKWRIGHT's water frame (1769), Samuel CROMPTON's mule (1779), and Edmund CARTWRIGHT's machine LOOM (1785, but delayed in its general use). n 1709 the ironmaster Abraham DARBY I succeeded in producing sound cast iron in a blast furnace charged with iron ore and coal (and soon afterward with coke, derived from coal). In 1712 another Englishman engaged in the iron trade, Thomas NEWCOMEN, invented the STEAM ENGINE The first factories were driven by water, but James WATT's improved Newcomen STEAM ENGINE (1769; especially his "sun and planet" adaptation converting linear into circular motion) made steam-driven machinery and modern factories possible from the 1780s. This use of steam power led, in turn, to increased demand for coal and iron. Each development spawned new technological breakthroughs, as, for example, Sir Henry BESSEMER's process for making steel (1856). Other industries such as chemicals and mining and the engineering professions also developed rapidly Segunda Revolução Industrial From 1830 on, the development of steam-driven LOCOMOTIVES brought the advent of RAILROADS, extending the transportation network In the 20th century the United States also dominated the new automobile industry, which Henry Ford (see FORD family) revolutionized by introducing a system of coordinated ASSEMBLY-LINE operations. Ford's success led to the widespread adoption of MASS PRODUCTION techniques in industry If the engineer was instrumental in making the Industrial Revolution, it can equally be said that the Industrial Revolution gave rise to the ENGINEERING profession as it is recognized today. Where previously engineers had risen through the ranks of craftsmen, in the 18th century it was becoming apparent that the act of design could be codified in the form of technical training, and the military services began to seek such training for their officer corps. In the 1740s the British government established a military academy at Woolwich at which cadets were instructed in the application of elementary mathematics and statics to gunnery and the design of fortifications. Later in the century John SMEATON coined the term "civil engineer" to distinguish civilian engineers from the increasing number of military engineers being graduated from Woolwich. A short-lived fraternity that called itself the Society of Civil Engineers (the "Smeatonians") formed around Smeaton; the first true professional organization in the field of engineering, however, was the Institution of Civil Engineers, founded in London in 1818 Experiments with the INTERNAL-COMBUSTION ENGINE began early in the century but without success until Jean Joseph Etienne LENOIR built an operational if inefficient two-cycle engine (1860) and the first AUTOMOBILE with this type of engine in The critical breakthrough in designing an efficient internal-combustion engine came in 1876, when Nikolaus August OTTO marketed the "Silent Otto" gas engine, having four cycles: intake, compression, stroke, and exhaust. In the 1880s the engine was adopted by Karl BENZ and Gottlieb DAIMLER to power motor vehicles. Rudolf DIESEL's engine, in which combustion is produced by high pressure in the cylinder, was exhibited in 1897. INDUSTRIAL REVOLUTION, which began in Great Britain in the 18th century, spread to the rest of western Europe and North America during the 19th century. The pattern of diffusion was quite uniform, beginning with textiles, coal, and iron. In textiles such improvements as the Jacquard LOOM (France, 1801) were developed, which allowed fabrics with woven patterns to be produced cheaply. The SEWING MACHINE was invented (1846) in the United States by Elias HOWE and mass-marketed (1851) by Isaac Merrit SINGER. Iron was the basic metal of industry until after the discovery by Henry BESSEMER (British patent, 1856) and William Kelly (U.S. patent, 1847) of a process for making large amounts of steel cheaply (see IRON AND STEEL INDUSTRY). The superior Siemens-Martin open-hearth process for making high-quality steel was first demonstrated in France in 1863

12 Parêntesis: Revolução Industrial Segunda Onda
) Aço (Bessemel, 1856 e Liga) Locomotiva a Vapor (Rede de Transporte ) Máquina de Costura (SINGER,1851) Motor a combustão interna: Primeiro eficiente (OTTO, 1876) Produção automobilística em massa (Daimler e Benz, 1896) Desemprego e fim da escravidão Primeira Revolução Industrial the mechanization of manufacturing changed an agrarian into an urban industrial society The cotton textile industry was the first to be fully mechanized. The crucial inventions were John KAY's flying shuttle (invented in 1733 but not widely used until the 1760s), James HARGREAVES's spinning jenny (1765), Richard ARKWRIGHT's water frame (1769), Samuel CROMPTON's mule (1779), and Edmund CARTWRIGHT's machine LOOM (1785, but delayed in its general use). n 1709 the ironmaster Abraham DARBY I succeeded in producing sound cast iron in a blast furnace charged with iron ore and coal (and soon afterward with coke, derived from coal). In 1712 another Englishman engaged in the iron trade, Thomas NEWCOMEN, invented the STEAM ENGINE The first factories were driven by water, but James WATT's improved Newcomen STEAM ENGINE (1769; especially his "sun and planet" adaptation converting linear into circular motion) made steam-driven machinery and modern factories possible from the 1780s. This use of steam power led, in turn, to increased demand for coal and iron. Each development spawned new technological breakthroughs, as, for example, Sir Henry BESSEMER's process for making steel (1856). Other industries such as chemicals and mining and the engineering professions also developed rapidly Segunda Revolução Industrial From 1830 on, the development of steam-driven LOCOMOTIVES brought the advent of RAILROADS, extending the transportation network In the 20th century the United States also dominated the new automobile industry, which Henry Ford (see FORD family) revolutionized by introducing a system of coordinated ASSEMBLY-LINE operations. Ford's success led to the widespread adoption of MASS PRODUCTION techniques in industry If the engineer was instrumental in making the Industrial Revolution, it can equally be said that the Industrial Revolution gave rise to the ENGINEERING profession as it is recognized today. Where previously engineers had risen through the ranks of craftsmen, in the 18th century it was becoming apparent that the act of design could be codified in the form of technical training, and the military services began to seek such training for their officer corps. In the 1740s the British government established a military academy at Woolwich at which cadets were instructed in the application of elementary mathematics and statics to gunnery and the design of fortifications. Later in the century John SMEATON coined the term "civil engineer" to distinguish civilian engineers from the increasing number of military engineers being graduated from Woolwich. A short-lived fraternity that called itself the Society of Civil Engineers (the "Smeatonians") formed around Smeaton; the first true professional organization in the field of engineering, however, was the Institution of Civil Engineers, founded in London in 1818 Experiments with the INTERNAL-COMBUSTION ENGINE began early in the century but without success until Jean Joseph Etienne LENOIR built an operational if inefficient two-cycle engine (1860) and the first AUTOMOBILE with this type of engine in The critical breakthrough in designing an efficient internal-combustion engine came in 1876, when Nikolaus August OTTO marketed the "Silent Otto" gas engine, having four cycles: intake, compression, stroke, and exhaust. In the 1880s the engine was adopted by Karl BENZ and Gottlieb DAIMLER to power motor vehicles. Rudolf DIESEL's engine, in which combustion is produced by high pressure in the cylinder, was exhibited in 1897. INDUSTRIAL REVOLUTION, which began in Great Britain in the 18th century, spread to the rest of western Europe and North America during the 19th century. The pattern of diffusion was quite uniform, beginning with textiles, coal, and iron. In textiles such improvements as the Jacquard LOOM (France, 1801) were developed, which allowed fabrics with woven patterns to be produced cheaply. The SEWING MACHINE was invented (1846) in the United States by Elias HOWE and mass-marketed (1851) by Isaac Merrit SINGER. Iron was the basic metal of industry until after the discovery by Henry BESSEMER (British patent, 1856) and William Kelly (U.S. patent, 1847) of a process for making large amounts of steel cheaply (see IRON AND STEEL INDUSTRY). The superior Siemens-Martin open-hearth process for making high-quality steel was first demonstrated in France in 1863

13 Revolução Industrial: Terceira Onda
Energia Nuclear (Fermi, 1942) Uso Industrial/Comercial da Eletricidade Computadores Eletrônicos (ENIAC 1946) Transistor (Shockley, et al., 1948) Sociedade Sociedade Industrial da Informação transformação

14 Filosofando... A mudança de uma sociedade industrial para uma baseada na informação é uma Radical Mudança Econômica: Material tem menos valor e Informação tem mais valor Antes: quanto menos pessoas possuísse algo, maior o valor. Hoje: quanto mais pessoas possuem algo, maior o valor.

15 Filosofando ... Exemplo! Cite as características dos sistemas operacionais que você conhece. Compare os sistemas: Unix Windows MacOS O Windows vende mais porque é mais Conhecido ou é mais Conhecido porque vende mais???

16 A evolução do software Software é dividida em 4 Eras:
Primeiros anos Segunda Era Terceira Era Quarta Era

17 O que é Software? Definição - Software é:
1o - instruções (programas de computador) que, quando executadas, produzem a função e o desempenho desejados; 2o - estruturas de dados que permitem a manipulação das informações; 3o - documentos que descrevem a operação e uso dos programas.

18 Características do Software - 1
O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico: Custos são concentrados no trabalho de engenharia. Projetos não podem ser geridos como projetos de manufatura. “Fábrica de Software!”

19 Características do Software - 2
Software não desgasta! Software não é sensível aos problemas ambientais que fazem com que o hardware se desgaste. Toda falha indica erro de projeto ou implementação: manutenção do SW é mais complicada que a do HW.

20 Características do Software - 3
A maioria dos softwares é feita sob medida e não montada a partir de componentes existentes. != Hardware. Situação esta mudando: Orientação a objetos. Reusabilidade é o “Santo Graal”(diminui custos e melhora projetos).

21 Aplicações de Software
Pressman, página 20 Software Básico Software de Tempo Real Software Comercial Software Científico ou de Engenharia Software Embutido Software de Computador Pessoal Software de Inteligência Artificial

22 Uma Crise no horizonte A industria de Software tem tido uma “crise” que a acompanha há quase 30 anos: Aflição Crônica != Crise Problemas não se limitam ao software que não funciona adequadamente, mas abrange: desenvolvimento, testes, manutenção, suprimento, etc.

23 Therac-25 Equipamento de Radioterapia.
Entre 1985 e 1987 se envolveu em 6 acidentes, causando mortes por overdoses de radiação. Software foi adaptado de uma antecessora, Therac-6: falhas por falta de testes integrados falta de documentação .

24 Denver International Airport
Custo do projeto: US$ 4.9 bilhões 100 mil passageiros por dia 1,200 vôos 53 milhas quadradas 94 portões de embarque e desembarque 6 pistas de pouso / decolagem Significant mechanical and software problems have plagued the automated baggage handling system. In tests of the system, bags were misloaded, were misrouted, or fell out of telecarts, causing the system to jam. Video cameras were installed at several known trouble spots to document problems, such as the following: The baggage system continued to unload bags even though they were jammed on the conveyor belt. This problem occurred because the photo eye at this location could not detect the pile of bags on the belt and hence could not signal the system to stop. The baggage system loaded bags into telecarts that were already full. Hence, some bags fell onto the tracks, again causing the telecarts to jam. This problem occurred because the system had lost track of which telecarts were loaded or unloaded during a previous jam. When the system came back on-line, it failed to show that the telecarts were loaded. The timing between the conveyor belts and the moving telecarts was not properly synchronized, causing bags to fall between the conveyor belt and the telecarts. The bags became wedged under the telecarts. This occurred because telecarts were bumping into each other near the load point.

25 Denver International Airport
Erros no sistema automático de transporte de bagagens (misloaded, misrouted, jammed): Atraso na abertura do aeroporto com custo total estimado em US$360 Milhões 86 milhões para consertar o sistema Significant mechanical and software problems have plagued the automated baggage handling system. In tests of the system, bags were misloaded, were misrouted, or fell out of telecarts, causing the system to jam. Video cameras were installed at several known trouble spots to document problems, such as the following: The baggage system continued to unload bags even though they were jammed on the conveyor belt. This problem occurred because the photo eye at this location could not detect the pile of bags on the belt and hence could not signal the system to stop. The baggage system loaded bags into telecarts that were already full. Hence, some bags fell onto the tracks, again causing the telecarts to jam. This problem occurred because the system had lost track of which telecarts were loaded or unloaded during a previous jam. When the system came back on-line, it failed to show that the telecarts were loaded. The timing between the conveyor belts and the moving telecarts was not properly synchronized, causing bags to fall between the conveyor belt and the telecarts. The bags became wedged under the telecarts. This occurred because telecarts were bumping into each other near the load point.

26 Ariane 5

27 Ariane 5 Projeto da Agência Espacial Européia que custou:
10 anos. US$ 8 Bilhões. Capacidade 6 toneladas. Garante supremacia européia no espaço.

28 Vôo inaugural em 4/junho/1996

29 Resultado Explosão 40 segundos após a decolagem.
Destruição do foguete e carga avaliada em US$ 500 milhões.

30 O que aconteceu? (I) Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que? Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que? O foguete tinha perdido o controle de direção (atitude). Causa disso? Os computadores principal e back-up deram shut-down ao mesmo tempo. a program segment for converting a floating point number to asigned 16 bit integer was executed with an input data value outside the range representable by a signed 16 bit integer. This run time error (out of range, overflow), which arose in both the active and the backup computers at about the same time, was detected and both computers shut themselves down. This resulted in the total loss of attitude control. The Ariane 5 turned uncontrollably and aerodynamic forces broke the vehicle apart. This breakup was detected by an on-board monitor which ignited the explosive charges to destroy the vehicle in the air. Ironia: o resultado desta conversão não era mais necessário após a decolagem...

31 O que aconteceu? (II) Por que o Shut-down? Ocorrera um run time error (out of range, overflow , ou outro) e ambos computadores se desligaram. De onde veio este erro? Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. a program segment for converting a floating point number to asigned 16 bit integer was executed with an input data value outside the range representable by a signed 16 bit integer. This run time error (out of range, overflow), which arose in both the active and the backup computers at about the same time, was detected and both computers shut themselves down. This resulted in the total loss of attitude control. The Ariane 5 turned uncontrollably and aerodynamic forces broke the vehicle apart. This breakup was detected by an on-board monitor which ignited the explosive charges to destroy the vehicle in the air. Ironia: o resultado desta conversão não era mais necessário após a decolagem...

32 Especificamente:O que faltou?
strict precondition 1: { Set."x"=FLPT and Set."y"=INT16 and <= x <= } program code: y := int(x); postcondition: {Set."x"=FLPT and Set."y"=INT16 and y=int(x)}

33 Ironia... O resultado desta conversão não era mais necessário após a decolagem...

34 Quais são os problemas? A sofisticação do software ultrapassou nossa capacidade de construção. Nossa capacidade de construir programas não acompanha a demanda por novos programas. Nossa capacidade de manter programas é ameaçada por projetos ruins.

35 Perguntas que Engenharia de Software quer responder:
Porque demora tanto para concluir um projeto (não cumprimos prazos)? Porque custa tanto (uma ordem de magnitude a mais)? Porque não descobrimos os erros antes de entregar o software ao cliente? Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido?

36 Causas óbvias Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas “a olho”. Comunicação entre o cliente e o desenvolvedor é muito fraca. Falta de testes sistemáticos e completos.

37 Causas menos óbvias O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (característica 1). Gerentes sem background em desenvolvimento de SW. Profissionais recebem pouco treinamento formal. Falta investimento (em ES). Falta métodos e automação.

38 Mitos do Software - Administrativos
Um manual oferece tudo que se precisa saber. Computadores de última geração solucionam problemas de desenvolvimento. Se estamos atrasados, basta adicionar programadores e tirar o atraso (chamado “conceito de hordas de mongois”).

39 Mitos do Software - do Cliente
Uma declaração geral é suficiente para começar a escrever programas. Mudanças podem ser facilmente acomodadas em um projeto (ver figura pg. 28).

40 Mitos do Software - do Profissional
Um programa está terminado ao funcionar. Quanto mais cedo escrever o código, mais rápido terminarei o programa. Só posso avaliar a qualidade de um programa em funcionamento. A única coisa a ser entregue em um projeto é o programa funcionando.

41 Engenharia de Software: Definição
“Engenharia de Software é o estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais” É METODOLOGIA!

42 Engenharia de Software: Abrangência
E.S. possui 3 elementos fundamentais: métodos: “como fazer” ferramentas: apoio automatizado aos métodos. Procedimentos: elo de ligação entre os métodos e os procedimentos Existem diversos Paradigmas de Engenharia de Software: abordagens que envolvem estes métodos, ferramentas e procedimentos

43 Paradigmas de Engenharia de Software
Existem dezenas. 4 principais: Ciclo de Vida Clássico (modelo Cascata) Prototipagem Espiral Técnicas de Quarta Geração Páginas 32 até 43 Pressman

44 Ciclo de Vida Clássico: modelo Cascata (Waterfall)
Baseado em projetos de engenharia clássicos (não de Software) Fases: Análise de requisitos Definição Projeto Implementação Integração e testes Operação e manutenção

45 Ciclo de Vida Clássico (II)
de Sommerville, 1995.

46 Ciclo de Vida Clássico (III)
Problemas: projetos reais não seguem um fluxo seqüencial: dificuldade de acomodar mudanças depois de iniciado. Dificuldade de declaração de todas as exigências pelo cliente. Paciência!

47 Modelo Espiral de Boehm (1988)

48 Fases do modelo Espiral
Definição dos objetivos Especificação dos objetivos específicos desta fase. Análise dos riscos Identificação e solução dos principais riscos Desenvolvimento e validação Planejamento O projeto é revisto e se define planos para a próxima “volta da espiral”

49 Conclusão Software é elemento chave para o sucesso. Mas:
Software não é hardware. Software não é fácil. Software mata. Precisamos de ajuda. Próxima aula, início da ajuda: gerência de projetos.

50 Exercício para próxima aula
Descreva 2 casos de problemas causados por erros em software que você conhece (OBS: não adianta falar do Windows) Descreva 2 produtos (que não seja um computador) onde o software faz a diferença.


Carregar ppt "Introdução a Engenharia de Software"

Apresentações semelhantes


Anúncios Google