Download - Engenharia de Software I - Aula 1 - Slides
![Page 1: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/1.jpg)
Prof. Ms. Ronaldo Martins da Costa
![Page 2: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/2.jpg)
� Compreender a importância da disciplina no
desenvolvimento de software; As
características específicas de cada tipo de
ciclo de vida e sua importância nociclo de vida e sua importância no
desenvolvimento de software.
� Introduzir as metodologias e técnicas para
desenvolvimento de software.
� Selecionar as ferramentas adequadas para
cada etapa de desenvolvimento de software.
![Page 3: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/3.jpg)
� Aulas expositivas e dialogadas com auxilio de
recursos audiovisuais.
� Resolução de listas de exercícios.
Aulas práticas no Laboratório de Informática.� Aulas práticas no Laboratório de Informática.
![Page 4: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/4.jpg)
![Page 5: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/5.jpg)
� Freqüência Mínima ���� 75% = 12 semanas
� Média Final-Aprovação Direta(MF) ���� 7.0
� Aprovação com Exame(MFExame) ����5.0
� Condição para fazer o exame ���� 5.0 ≥ MF < 7.0� Condição para fazer o exame ���� 5.0 ≥ MF < 7.0
� Aprovação no exame ���� 5.0
+
+
+=∑∑
== 1.0*3.0*.
6.0*2
21 11
n
Listas
n
TrabPP
MF
n
i
n
i
+=2
ExameMFMFExame
![Page 6: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/6.jpg)
� Software:
� Instruções (programas de computador) que,
quando executadas, produzem a função e o
desempenho desejado;desempenho desejado;
� Estruturas de dados que possibilitam que os
programas manipulem adequadamente a
informação;
� Documentos que descrevem a operação e o uso
dos programas.
![Page 7: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/7.jpg)
Avanços da microeletrônica
Maior poder de computação a custo baixo
Maior qualidade de armazenamento e processamento
Osoftware é o mecanismo
que possibilita aproveitar e dar
vazão a esse potencial
![Page 8: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/8.jpg)
� 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.
![Page 9: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/9.jpg)
� Software não desgasta!
� Software não é sensível aos problemas
ambientais que fazem com que o hardware se
desgaste.desgaste.
� Toda falha indica erro de projeto ou
implementação: manutenção do SW é mais
complicada que a do HW.
![Page 10: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/10.jpg)
� O hardware sofreu contínuas mudanças.
� O software era uma arte "secundária" para a qual havia poucos métodos sistemáticos.qual havia poucos métodos sistemáticos.
� O hardware era de propósito geral.
� O software era específico para cada aplicação.
� Não havia documentação.
![Page 11: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/11.jpg)
� Multiprogramação e sistemas multiusuários.
� Sistemas de tempo real.
1a geração de SGBD’s.� 1a geração de SGBD’s.
� Produto de software - software houses.
� Bibliotecas de Software.
� Cresce no de sistemas baseado em computador.
� Manutenção quase impossível...... CRISE DE..... CRISE DE SOFTWARE SOFTWARE
![Page 12: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/12.jpg)
� Sistemas distribuídos.
� Redes locais e globais.
� Uso generalizado de microprocessadores -� Uso generalizado de microprocessadores -
produtos inteligentes.
� Hardware de baixo custo.
![Page 13: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/13.jpg)
(Quarta era do software: atualidadeatualidade)
� Tecnologias orientadas o objetos.
� Sistemas especialistas e software de
inteligência artificial usados na prática.
� Software de rede neural artificial.
� Computação Paralela.
� Internet.
![Page 14: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/14.jpg)
Hoje o software é um negócio competitivo.
Os principais direcionadores que propiciarão uma intensa
competição na área de software são: custo, adequação decompetição na área de software são: custo, adequação de
prazo e qualidade.
Intensifica-se, portanto, uma rápida movimentação dos
desenvolvedores para adotar práticas modernas de Engenharia
de Software.
![Page 15: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/15.jpg)
11-- InstruçõesInstruções
Quando executadas produzem a função e o desempenho desejados.
22 -- EstruturasEstruturas dede DadosDados
Possibilitam que os programas manipulem adequadamente a
informação.
33 -- DocumentosDocumentos
Descrevem a operação e o uso dos programas.
![Page 16: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/16.jpg)
� Desenvolvido ou projetado por engenharia,
não manufaturado no sentido clássico.não manufaturado no sentido clássico.
� Não se desgasta mas se deteriora.
� A maioria é feita sob medida em vez de ser
montada a partir de componentes existentes.
![Page 17: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/17.jpg)
“desgaste”“desgaste”“mortalidadeinfantil”
“mortalidadeinfantil”
índice de
índice de
“desgaste”“mortalidadeinfantil”
índice de
tempotempo
infantil”infantil”de falhas
de falhas
tempo
infantil”de falhas
![Page 18: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/18.jpg)
Software não se “desgasta”, mas se deteriora!
� Durante sua vida, o software enfrentará mudanças(manutenção). Quando estas são feitas, é provável quenovos defeitos sejam introduzidos, fazendo com que anovos defeitos sejam introduzidos, fazendo com que acurva do índice de falhas apresente picos, como mostra afigura abaixo. Antes que a curva possa retornar ao índicede falhas estável original, outra mudança é solicitada,fazendo com que a curva apresente um novo pico.Levemente, o nível de índice de falhas mínimo começa ase elevar – software está se deteriorando devido àsmudanças.
![Page 19: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/19.jpg)
índice de mudançamudança
curva realcurva realíndice de
falhasmudançamudança
curva idealizada
tempo
![Page 20: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/20.jpg)
� São criados por meio de uma série de
conversões que mapeiam as exigências do
cliente para código executável em máquina.
Modelo de
Exigências
do Cliente
ProjetoCodificação em
Linguagem
![Page 21: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/21.jpg)
� Um modelo (ou protótipo) das exigências é
convertido num projeto. O projeto de software é
convertido numa forma de linguagem que
especifica a estrutura de dados do software, osespecifica a estrutura de dados do software, os
atributos procedimentais e os requisitos
relacionados. A forma de linguagem é processada
por um tradutor que a converte em instruções
executáveis em máquina
Modelo de
Exigências
do Cliente
ProjetoCodificação em
Linguagem
![Page 22: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/22.jpg)
� Componentes de software são construídos
usando uma linguagem de programação que
tem um vocabulário limitado, uma gramática
explicitamente definida e regras de sintaxeexplicitamente definida e regras de sintaxe
bem formadas.
� Essas atribuições são essenciais para a
tradução por máquina.
� Componentes devem possuir reusabilidade
(Software de alta Qualidade).
![Page 23: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/23.jpg)
� Um componente reusável engloba tanto
dados como processamento num único
pacote (às vezes chamado classe ou objeto),
possibilitando que o engenheiro de softwarepossibilitando que o engenheiro de software
crie novas aplicações a partir de partes
reusáveis.
![Page 24: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/24.jpg)
� As interfaces interativas hoje em dia,
freqüentemente são construídas utilizando-
se componentes reusáveis que possibilitam a
criação de janelas gráficas, menus pull-downcriação de janelas gráficas, menus pull-down
e uma ampla variedade de mecanismos de
interação.
![Page 25: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/25.jpg)
� As estruturas de dados e detalhes de
processamento exigidos para se construir a
interface com os usuários estão contidas
numa biblioteca (classes) de componentesnuma biblioteca (classes) de componentes
reusáveis para construção de interfaces.
![Page 26: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/26.jpg)
� Qualquer situação em que um conjunto
previamente especificado de passos
procedimentais (algoritmo) tiver sido
definido (notáveis exceções a essa regra são odefinido (notáveis exceções a essa regra são o
software de sistema especialista e o software
de rede neural).
![Page 27: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/27.jpg)
� Software básico:
Coleção de programas escritos para dar apoio a outros programas(compiladores, editores, utilitários de gerenciamento de arquivos,drivers).
Apresenta forte interação com o hardware de computador.
Intenso uso por múltiplos usuários.
Operações concorrentes que exigem escalonamento (componentesdo SO).
Compartilhamento de recursos.
![Page 28: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/28.jpg)
�Software de tempo-real:
Um software que monitora/analisa/controla eventos do mundo
real).
A resposta em tempo real tipicamente varia de 1 milisegundo a 1
minuto).
Um sistema de tempo real deve responder dentro de restrições de
tempo estritas.
![Page 29: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/29.jpg)
�Software Comercial:
O processamento de informações comerciais é a maior área
particular de aplicação de software.
Folha de pagamento.
Contas a pagar e a receber.
Controle de estoque.
![Page 30: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/30.jpg)
�Software Científico e de Engenharia:
O software científico e de engenharia tem sido caracterizados
por algoritmos de processamento de números.
Astronomia.
Vulcanologia.
Mecânica de automóveis.
Biologia molecular.
![Page 31: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/31.jpg)
�Software embutido (embedded software):
Produtos inteligentes têm-se tornado comuns em quase todo o
mercado industrial e de consumo.mercado industrial e de consumo.
� Reside na memória só de leitura (read-only) e é usado para controlar
produtos e sistemas para os mercados industriais e de consumo.
�Controle de teclado para fornos de microondas.
�Automóveis: Controle de combustível, mostradores no painel,
sistemas de freio, etc.
![Page 32: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/32.jpg)
�Software de Computador Pessoal:
� Processamento de Textos.
� Planilhas Eletrônicas.Planilhas Eletrônicas.
� Diversões.
� Aplicações Financeiras.
![Page 33: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/33.jpg)
�Software de Inteligência Artificial (Artificial Intelligency):
Faz uso de algoritmos não-numéricos para resolver problemascomplexos que não sejam favoráveis à computação ou à análise direta.
Sistemas Especialistas.
Sistemas Tutores Inteligentes (Intelligent Tutorial System)
Reconhecimento de padrões: voz e imagem.
Redes Neurais Artificiais: simula a estrutura dos processoscerebrais (a função do neurônio biológico).
![Page 34: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/34.jpg)
Refere-se a um conjunto de problemas encontrados no
desenvolvimento de software:
As estimativas de prazo e de custo freqüentemente são As estimativas de prazo e de custo freqüentemente são imprecisasimprecisasAs estimativas de prazo e de custo freqüentemente são As estimativas de prazo e de custo freqüentemente são imprecisasimprecisas
“Não dedicamos tempo para coletar dados sobre o processo de
desenvolvimento de software.”
“Sem nenhuma indicação sólida de produtividade, não podemos
avaliar com precisão a eficácia de novas ferramentas, métodos ou
padrões.”
![Page 35: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/35.jpg)
A produtividade das pessoas da área de software A produtividade das pessoas da área de software não tem acompanhado a demanda por seus não tem acompanhado a demanda por seus serviços.serviços.serviços.serviços.
“Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente.”
![Page 36: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/36.jpg)
A qualidade de software às vezes é menos que adequadaA qualidade de software às vezes é menos que adequada
Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software.software.
O software existente é muito difícil de manterO software existente é muito difícil de manter
A tarefa de manutenção devora o orçamento destinado ao software.
A facilidade de manutenção não foi enfatizada como um critério importante.
![Page 37: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/37.jpg)
�estimativas de prazo e de custo
�produtividade das pessoas
�qualidade de software
�software difícil de manter
![Page 38: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/38.jpg)
11.. OO PróprioPróprio carátercaráter dodo SoftwareSoftware
O software é um elemento de sistema lógico e não físico.
Conseqüentemente, o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas
O software não se desgasta, mas se deteriora!!!O software não se desgasta, mas se deteriora!!!
![Page 39: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/39.jpg)
2. Falhas das pessoas responsáveis pelo 2. Falhas das pessoas responsáveis pelo
desenvolvimento do software.desenvolvimento do software.
Gerentes sem nenhum background em softwareGerentes sem nenhum background em software
Os profissionais da área de software têm recebido pouco
treinamento formal em novas técnicas para o
desenvolvimento de software
Resistência a mudanças
![Page 40: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/40.jpg)
“O estabelecimento e uso de sólidos princípios de
engenharia para que se possa obter
economicamente um software que seja confiável eeconomicamente um software que seja confiável e
que funcione eficientemente em máquinas reais”
1ª definição - Fritz Bauer, 1969
![Page 41: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/41.jpg)
(1) aplicação de uma abordagem sistemática, disciplinada e
quantificável ao desenvolvimento, operação e
manutenção de software, ou seja, a aplicação da
engenharia ao softwareengenharia ao software
(2) o estudo de abordagens do tipo declarado em (1)
[IEEE]
![Page 42: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/42.jpg)
� Ainda que muitas definições abrangentes tenham
sido propostas, todas elas reforçam a exigência da
disciplina de engenharia no desenvolvimento de
software.software.
� Para se atingir um perfil de qualidade eu necessito
usar da Engenharia de Software.
![Page 43: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/43.jpg)
� A engenharia de software é um rebento da
engenharia de sistemas e de hardware.
� Possibilitar a construção de software de alta
qualidade.
![Page 44: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/44.jpg)
Métodos
Engenharia
de
Software
Ferramentas
Procedimentos
![Page 45: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/45.jpg)
Métodos:
Proporcionam os detalhes de “como fazer” para construir o
software. Envolvem:
Planejamento e estimativa de projeto
Análise de requisitos de software e de sistemas
Projeto de estrutura de dados
Arquitetura de programa e algorítmo de processamento
Codificação, teste e manutenção
![Page 46: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/46.jpg)
Ferramentas:
Proporcionam apoio automatizado ou semi-automatizado aos
métodos.
Quando as ferramentas são integradas de forma que a
informação criada por uma ferramenta possa ser usada por
outra, é estabelecido um sistema de suporte ao
desenvolvimento de software chamado engenharia de
software auxiliada por computador (CASE – Computer-Aided
Software Engineering)
![Page 47: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/47.jpg)
Procedimentos:
Elo de ligação que mantém juntos os métodos e as ferramentas
e possibilita o desenvolvimento racional e oportuno do software
de computador. Definem a sequencia de aplicação dosde computador. Definem a sequencia de aplicação dos
métodos, os controles que ajudam a assegurar a qualidade e
coordenar as mudanças.
![Page 48: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/48.jpg)
� A Engenharia de Software compreende um
conjunto de etapas que envolve métodos,
ferramentas e os procedimentos discutidosferramentas e os procedimentos discutidos
anteriormente.
� Essas etapas são citadas como paradigmas da
Engenharia de Software.
![Page 49: Engenharia de Software I - Aula 1 - Slides](https://reader038.vdocuments.pub/reader038/viewer/2022110204/563dba2a550346aa9aa34607/html5/thumbnails/49.jpg)
Métodos Ciclo deMétodos
+
Ferramentas
+
Procedimentos
Ciclo de
vida