capítulo 1 - software e engenharia de software

18
Apostila da disciplina Introdução à Engenharia de Software Professor: Sandro Melo Faculdades São José Curso de Tecnologia de Sistemas de Informação 1 Capítulo 1: Software e Engenharia de Software O que é? E quem produz? Porque é importante? Quais são as fases? Qual o resultado? Como avaliar? Arcabouço: processo, conjunto de métodos e ferramentas. 1.1 O papel evolutivo do Software: Por que leva tanto tempo para concluir o software? Por que os custos de desenvolvimento são tão altos? Por que não podemos achar todos os erros antes de entregar o software para os clientes? Por que gastamos tanto tempo e esforço mantendo programas exitentes? Por que continuamos a ter dificuldade em avaliar o progresso enqunato o software é desenvolvido e mantido? 1.2 Software: Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido clássico. Software não se desgasta. Apesar de a indústria estar se movendo em direção à montagem baseada em componentes, a maior parte dos softwares continua a ser construída sob encomenda. 1.3 A Natureza Mutável do Software: Software de sistemas Software de aplicação Software científico e de engenharia Software embutido Software para linhas de produtos Aplicações da Web Software para inteligência artificial Computação ubíqua NetSourcing Software Aberto 1.4 Software Legado: O software precisa ser adaptado para satisfazer às necessidades do novo ambiente ou tecnologia computacional. O software precisa ser aperfeiçoado para implementar novos requisitos do negócio. O software precisa ser estendido para torná-lo interoperável com os sistemas ou banco de dados mais modernos. O software precisa ser re-arquitetado para torná-lo viável em um ambiente de rede. 1.5 Mitos do Software: Mitos de Gerência Mitos do Cliente Mitos do Profissional 1.6 Como tudo começa: Necessidade do negócio (clientes)

Upload: celinha1978

Post on 09-Aug-2015

96 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

1

Capítulo 1: Software e Engenharia de Software

O que é? E quem produz?

Porque é importante? Quais são as fases?

Qual o resultado? Como avaliar?

Arcabouço: processo, conjunto de métodos e ferramentas.

1.1 O papel evolutivo do Software:

Por que leva tanto tempo para concluir o software?

Por que os custos de desenvolvimento são tão altos?

Por que não podemos achar todos os erros antes de entregar o software para os clientes?

Por que gastamos tanto tempo e esforço mantendo programas exitentes?

Por que continuamos a ter dificuldade em avaliar o progresso enqunato o software é

desenvolvido e mantido?

1.2 Software:

Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido

clássico.

Software não se desgasta.

Apesar de a indústria estar se movendo em direção à montagem baseada em componentes, a

maior parte dos softwares continua a ser construída sob encomenda.

1.3 A Natureza Mutável do Software:

Software de sistemas

Software de aplicação

Software científico e de engenharia

Software embutido

Software para linhas de produtos

Aplicações da Web

Software para inteligência artificial

Computação ubíqua

NetSourcing

Software Aberto

1.4 Software Legado:

O software precisa ser adaptado para satisfazer às necessidades do novo ambiente ou

tecnologia computacional.

O software precisa ser aperfeiçoado para implementar novos requisitos do negócio.

O software precisa ser estendido para torná-lo interoperável com os sistemas ou banco de

dados mais modernos.

O software precisa ser re-arquitetado para torná-lo viável em um ambiente de rede.

1.5 Mitos do Software:

Mitos de Gerência

Mitos do Cliente

Mitos do Profissional

1.6 Como tudo começa:

Necessidade do negócio (clientes)

Page 2: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

2

Capítulo 1: Software e Engenharia de Software

ENGENHARIA DE SOFTWARE: É uma disciplina que integra métodos, ferramentas e

procedimentos para o desenvolvimento de software de computador.

Métodos: Envolvem um amplo conjunto de tarefas que incluem: Planejamento e estimativa

de projeto, análise de requisitos de software e de sistemas, projeto de estrutura de dados,

especificação e codificação de programas, teste e manutenção.

Ferramentas: CASE (Computer –Aided Software Engineering)

Procedimentos: Constituem o elo de ligação que mantém juntos os métodos e as ferramentas

para desenvolvimento do 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.” Fritz Bauer

“A engenharia de Software não deve buscar uma solução, deve procurar sempre a melhor

solução.”

A UTILIDADE DA ENGENHARIA DE SOFTWARE:

Criar um software com menor custo: Técnico, pessoas, tempo certo, etc.;

Gerenciar o tempo de construção: Medidas e métricas;

Atender os requisitos (necessidades do usuário): Elevar o nível de satisfação;

Facilidade na manutenção;

Reusabilidade dos módulos;

Aumento do ciclo de vida.

Page 3: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

3

COMPONENTES DE SOFTWARE:

Executáveis: É o programa principal , escrito numa linguagem com uma gramática exata

sem ambigüidade, com sintaxe clara e precisa, que compilada ou interpretada gera uma

linguagem de comunicação com a máquina.

O código fonte é uma linguagem de alto nível, que após compilada gera o código binário

que é uma linguagem de baixo nível

Não executáveis arquivos auxiliares, configurações, bibliotecas, módulos.

Níveis Nomes Classificação

Linguagem de máquina Binária : 0 e 1 1ª Geração

Linguagem Montadora Assembler 2ª Geração

Linguagem de Nível Médio C 3ª Geração

Linguagem de alto Nível Pascal, Cobol, Ada, Fortram 3ª Geração

Linguagem de Alto Nível Visual Basic, Delphi, Visual Java, etc... 4ª Geração

Código Fonte Compilado

r

Linguagem de Máquina

Page 4: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

4

Capítulo 1: Software e Engenharia de Software

Page 5: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

5

1.1 O papel evolutivo do Software:

Page 6: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

6

Page 7: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

7

1.2 Software:

Page 8: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

8

Page 9: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

9

APLICAÇÕES DO SOFTWARE:

Básicos : Sistemas Operacionais.

Utilitários: Ferramentas de sistema, antivírus, etc.

Tempo - Real : Apresenta resultados no exato momento do acontecimento, controle

de tráfego, temperatura, velocidade do cento, etc.

Científico e Engenharia: Astronômico, fadiga de componentes mecânicos, médicos,

engenharia civil, científico, CASE.

Comerciais: Folha de Pagamento, contabilidade, controle de estoque.

Pessoais: Jogos, editores de texto, planilhas eletrônicas, agendas, etc.

Embutidos: São programas embutidos em outros aparelhos, microondas, automóveis,

televisores, videocassetes, etc.

Profissionais Artísticos: Manipula figuras, imagens, fotos, desenhos, criações

artísticas tais como: Corel Draw, Adobe PhotoShop, 3DS.

Inteligência Artificial: Por ser um Software de algoritmo não numérico, para

resolver problemas complexos, esses softwares processam conhecimentos. Simula

uma rede neural cumulativa – AI (Artificial Inteligency), é muito usado para o

reconhecimento de voz, imagens, reconhece padrões complexos, imita o raciocínio

biológico do cérebro humano, muito usado em jogo de xadrez.

Page 10: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

10

1.3 A Natureza Mutável do Software:

Page 11: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

11

Page 12: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

12

Page 13: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

13

1.4 Software Legado:

1.4.1 A Qualidade do Software Legado

Page 14: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

14

1.4.2 Evolução de Software:

Page 15: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

15

1.5 Mitos do Software:

Page 16: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

16

Page 17: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

17

Page 18: Capítulo 1 - Software e Engenharia de Software

Apostila da disciplina Introdução à Engenharia de Software

Professor: Sandro Melo

Faculdades São José – Curso de Tecnologia de Sistemas de Informação

18

1.6 Como tudo começa:

1.7 Resumo: