capítulo 1 - software e engenharia de software
TRANSCRIPT
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)
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.
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
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
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:
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
6
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:
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
8
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.
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:
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
11
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
12
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
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:
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:
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
16
Apostila da disciplina Introdução à Engenharia de Software
Professor: Sandro Melo
Faculdades São José – Curso de Tecnologia de Sistemas de Informação
17
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: