Escolar Documentos
Profissional Documentos
Cultura Documentos
- Serviços Web
- Computação em Nuvem
-......
Aplicação do Software
• Software de Sistema ou Software Básico: uma coleção de
programas escritos para fornecer serviços a outros
programas.
Automação Bancária
Frequência e Folha de Pagamento
Controle de Tráfego Urbano
Controle Acadêmico
Editoração de Jornais e Revistas
Controle de Elevadores
Automação de Biblioteca
O que é Software?
Programas de computadores
associados a documentação.
É um conjunto de soluções
algorítmicas, codificadas numa
linguagem de programação,
executado numa máquina real.
Tipos de produtos de
software
Genéricos (COTS – Commercial Off-
The Shelf) - tipo stand-alone, pacotes de
software, como por exemplo, processadores
de texto, ferramentas de gerenciamento.
Conformidade
Mutabilidade
Características do Software
Complexidade
– Software é mais complexo do que
qualquer outro produto construídos
por seres humanos.
Características do
Software
Conformidade
– O software deve ser desenvolvido conforme o
ambiente. Não é o ambiente que deve se
adaptar ao software.
– Desenvolvido ou projetado por
engenharia, não manufaturado no sentido
clássico (industrial).
Sucesso é medido pela qualidade e não
quantidade.
Características do
Software
Mutabilidade
– Existe sempre uma pressão para se
fazer mudanças em um software.
– Não se “desgasta”, mas se deteriora
devido as mudanças.
– A "maioria" é feita sob medida em vez de
ser montada a partir de catálogos de
componentes existentes (reusabilidade de
software).
Curva de Falhas do Hardware
Defeitos de projeto e manufatura
“desgaste”
índice “mortalidade
de infantil”
falhas Problemas
Ambientais
(poeira, vibração,
abuso,
temperaturas, ...)
tempo
-Quando o hardware falha, em geral, ele deixa de funcionar e deve ser substituído.
- Essa substituição significa trocar o componente por outro equivalente.
Curva de Falhas do Software
•A curva ideal seria a azul (depois de testado, o software vai funcionar sem gerar
problemas).
•A curva real é a verde pois de tempo em tempo o software sofre manutenções,
gerando uma nova fase de testes (curvas laranjas); cada vez que isso acontece faz com
que o software, como um todo, não seja tão bem adequado quanto a versão inicial.
•Assim, à medida que o tempo passa, o software vai apresentando mais falhas e vai
ficando menos ajustado às necessidades do cliente.
Falhas do Hardware/Software
Quando um componente de hardware se
desgasta é substituído por uma “peça de
reposição”.
Crise no software
Crise do Software
Prazos ultrapassados.
–
Não dedicamos tempo para coletar dados
sobre o processo de desenvolvimento de
software.
– Estimativas são feitas a olho, com
resultados ruins.
– Os prazos arrastam-se por meses.
Crise do
Software
As estimativas de prazo e de custo
são imprecisas (cont.)
– Os projetos de desenvolvimento de
software normalmente são efetuados
apenas com um vago indício das
exigências do cliente.
Crise do
Sofware
O 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.
Crise do Sofware
Filosofia do Software.
Falhas das Pessoas Responsáveis
pelo Desenvolvimento de Software.
Mitos do Software.
Filosofia do
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.
Mitos do Software
Mitos Administrativos
Mitos dodo
Mitos Cliente
Administrativos, do
MitosCliente e do Profissional
do Profissional
Problemas Administrativos
Gerentes se encontram sob pressão
Manter orçamentos.
Evitar que os prazos sejam
ultrapassados
melhorar a qualidade.
Mitos Administrativos
Realidade:
Mito:
Se nós estamos atrasados nos prazos,
podemos adicionar mais programadores
e tirar o atraso.
Mitos
Administrativos
Realidade:
– O desenvolvimento de software não é um
processo mecânico igual à manufatura.
– Acrescentar pessoas em um projeto pode
não recuperar o tempo de atraso.
Mitos dos Clientes
Realidade:
– Mecanismo (Revisão Técnica Formal) de
garantia de qualidade de software é aplicado
desde o começo do projeto.
A DOCUMENTAÇÃO é o alicerce.
Solução
Reconhecer os problemas e suas causas e
desmascarar os mitos do software são os
primeiros passos.
Métodos e Técnicas para disciplinar o
processo de desenvolvimento do software.
.
Aspectos históricos da
Engenharia de Software
Conceitos
O que é Engenharia de
Software?
Fritz Bauer – 1969 ( primeira definição)
“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”
O que é Engenharia de
Software?
IEEE, 1993
“A aplicação de uma abordagem sistemática,
disciplinada e quantificável para o
desenvolvimento, operação e manutenção do
software. O estudo de abordagens e
princípios a fim de obter economicamente
softwares confiáveis e que executem de forma
eficiente nas máquinas reais”
O que é Engenharia de Software?
Rigor e Formalidade
O rigor é a abordagem que produz
produtos mais confiáveis pelo controle
das variáveis envolvidas. Formalidade é o
requisito de que o processo seja dirigido e
avaliado por leis matemáticas.
Princípios da Engenharia de Software
Separação de interesses
Separar conceitos permite-nos trabalhar
com aspectos individuais e diferentes de
um mesmo problema. Esta separação
facilita o entendimento, focando a atenção
em certas características mais
significativas.
Princípios da Engenharia de Software
Modularidade
Modularidade (cont.)
Decomposição é o ato de dividir
um problema original em
subproblemas recursivamente.
Composição é o ato de juntar os
elementos componentes de um problema
até chegar ao sistema completo. Ajuda na
manutenção do sistema.
Princípios da Engenharia de Software
Antecipação de mudanças
Sistemas de softwares são desenvolvidos
enquanto seus requisitos ainda não estão
totalmente claros.
Quando o sistema é finalmente liberado,
novos requisitos podem ser descobertos e
velhos requisitos atualizados através do
“feedback” do usuário.
Princípios da Engenharia de Software
Generalidade / Especialidade
Soluções genéricas tendem a ser mais
caras em termos de recursos e em tempo
de desenvolvimento, ao contrário das
soluções específicas. No processo de
produção de software estas questões
devem ser cuidadosamente analisadas.
Princípios da Engenharia de Software
Incrementabilidade
Caracteriza o processo em modo passo
a passo, incrementalmente. O objetivo
desejado é atingido por aproximações
sucessivas. Útil quando os requisitos
iniciais não foram todos obtidos antes do
início do desenvolvimento da aplicação.
Custos da Engenharia de Software?
Ferramentas
Métodos de
Software Processo
de Software
1. Especificação de Requisitos
2. Projeto de Software
3. Implementação
4. Validação de Software
5. Evolução do Software
Especificação de Requisitos
11
0
Projeto de Software
Usuário FormaDePagamento
-cpf -data
#codigo #codigo
-nome -valor
-tipo
#login
- +escolher_pagamento()
senha +getData()
- +setData()
funca +getCodigo()
1
o +setCodigo()
-rg +getValor()
- +setValor()
ender +getTipo()
eco +setTipo()
-
cidade 1
-
+getCpf()
estad
+setCpf()
o
+getCodigo() Calendário
-pais
+setCodigo()
-cep
+getNome() 1. .* -dia
-telefone
+setNome() -mes
#email
+getLogin() -horario
-
+setLogin() 1.. *
permissa 1.. * +montar_calendario()
+getSenha()
o
+setSenha() +alterar_calendario()
+getFuncao() 1.. * +getDia()
+setFuncao() +setDia()
1.. *
+getRg() +getMes()
+setRg() +setMes() Serviço
+getEndereco() +getHorario()
+setHorario() -tipo
+setEndereco()
-quantidade
+getCidade()
-valor
+setCidade()
-tempo
+getEstado()
+setEstado() +calcular_servico()
+getPais() 1. .* +escolher_servico()
+setPais() +getTipo()
+geCep() +setTipo()
+setCep() +getQuantidade()
+getTelefone() +setQuantidade()
+setTelefone() +getValor()
+getEmail() +setValor()
+setEmail() +getTempo()
+getPermissao() +setTempo()
+setPermissao()
+marcar_horario() 111
+desmarcar_horario()
+verificar_horario()
+fazer_login()
Implementação
Localiza
r Erro
Projeta
Re-
r
testar Reparo
Repara
r
Erro
Validação e Testes
https://www.amazon.com.br/Engenharia-Software-Uma-
Abordagem-Profissional/dp/8580555337#reader_B01B6O5IJG