Você está na página 1de 17

Engenharia de Software

Prof. Bruno Queiroz Pinto


(IFET Triângulo – Campus
Uberlândia)
Ciclo de Vida de um sistema
Fases de um sistema:
Criação;
Operação (Manutenção);
Finalização;
criação Operação Finalização

Manutenção

Utilizar algum processo de


Como controlar isto? desenvolvimento
Desenvolvimento sem um Processo
definido
Caos
O que fazer?
Quem fará?
Quando?
Prazo?
Custo?
Desenvolvimento sem um Processo
definido
Implementação Sem Projeto
Sem Documentação
Implantação
Processo de desenvolvimento de
Softwares Software
Um conjunto estruturado de atividades necessárias para
desenvolver um software. Principais Atividades:
Especificação (Define o que fazer)
Projeto (Define como fazer e Faz)
Validação (Verifica se foi feito do modo correto)
Evolução (Acompanha o software até o seu fim)

Um modelo de processo de software é uma


representação abstrata do processo.
Processo do Software
O modelo cascata (Clássico)
Fases separadas e distintas de
especificação e desenvolvimento.

Prototipação e Espiral
Especificação e desenvolvimento são
intercalados.
Processo Iterativos e incrementais.
XP, RUP, SCRUM
Engenharia de Software
O que é um software?
Engenharia de Software
Aplicação de métodos, ferramentas e
procedimentos para desenvolver softwares com
Qualidade.
Qualidade:
Qualidade de Produto. (ISO 9126)
Qualidade de Processo. (CMMI, SPICE e MPS-BR)

Métodos:
Atividades que devem ser feitas para se desenvolver o
software com qualidade.
Modelagem, Testes de Software, Estimativas de tamanho,
etc
Engenharia de Software
Ferramentas:
FP(Function Point) : fazer estimativa.
Ferramentas Case: automatizar diversos
métodos(TESTE, Modelagem, análise, codificação,
etc.)
Procedimento:
Define a metodologia adequada para aplicar os
diversos métodos e utilizar as diversas
ferramentas para desenvolver um determinado
software.
Aplicações de Software
Softwares Básicos:
coleção de programas escritos para apoiar outros programas. Forte
interação com o hardware. Tão a estrutura básica aos outros
software permitindo a sua execução.
• sistema operacional, compiladores, drivers, etc...
Sistemas Operacionais.
• Chaves de pesquisa: Sistemas Operacionais OnLine, Sistemas Operacionais na
Internet
Compiladores/Interpretadores.(softwares de desenvolvimento)
Drivers.
Aplicações de Software
SOFTWARE DE TEMPO REAL: software que monitora,
analisa e controla eventos do mundo real. Eles precisam
responder em um tempo muito restrito.
• Tem que responder a alguma mudança no ambiente em
tempo restrito, tem autonomia no monitoramento e na
execução das ações.
• Sistema de controle de tráfego aéreo, Sistema de gestão de
uma usina nuclear, sistema.
• Viabilidade?
• Casos: Cirurgia remota através da internet, comunicadores
instantâneos.
Aplicações de Software
SOFTWARE DE TEMPO REAL: software que monitora,
analisa e controla eventos do mundo real. Eles precisam
responder em um tempo muito restrito.
• Tem que responder a alguma mudança no ambiente em
tempo restrito, tem autonomia no monitoramento e na
execução das ações.
• Sistema de controle de tráfego aéreo, Sistema de gestão de
uma usina nuclear, sistema.
• Viabilidade? Melhor web x apenas internet?
• Casos: Cirurgia remota através da internet, comunicadores
instantâneos(Vídeo e Áudio), computação Móvel, e outros).
Aplicações de Software
SOFTWARE CIENTÍFICO E DE ENGENHARIA: caracterizado
por algoritmos de processamento numérico.
• Seu principal objetivo é auxiliar nos cálculos
matemáticos utilizados nestas áreas.
• astronomia, vulcanologia, análise de fadiga da
mecânica de automóveis, biologia molecular, projeto
CAD, softwares matemáticos, softwares de projeto de
sistemas(modelagem, implementação, testes, etc)...
• Exemplo de Ferramenta: MathLab
Aplicações de Software
SOFTWARE EMBUTIDO: usado para controlar produtos e
sistemas para os mercados industriais e de consumo –
produtos inteligentes.
• Baixa ou nenhuma interação com usuários.
• Alta interação com o hardware
• controle de microondas, de combustível, sistemas de
freio, injeção eletrônica.
• Podem se integrar utilizando a internet.
– Celular por exemplo, geladeira inteligente, carro inteligente.
Aplicações de Software
SOFTWARE DE INTELIGÊNCIA ARTIFICIAL: faz
uso de algoritmos não numéricos para resolver
problemas que não sejam favoráveis à
computação ou à análise direta.
• sistemas especialistas, reconhecimento de
padrões, redes neurais, jogos, ...
• A internet é um ambiente propicio para software que
fazem parte desta categoria.
Aplicações de Software
SOFTWARE DE COMPUTADOR PESSOAL: são
software desenvolvidos especificamente para
automatizar atividades do dia a dia da pessoa.
Processamento de textos, planilhas eletrônicas,
computação gráfica, diversões, comunicação,
etc.
Jogos.
Uma das áreas com mais aplicação na web.
Aplicações de Software
SOFTWARE COMERCIAIS: sistemas de operações
comerciais e tomadas de decisões administrativas
• folha de pagamentos, contas a pagar e a receber, ...
• A outra grande área de aplicações Web.
• Foco deste curso