ufu universidade federal de uberlândia anÁlise e projeto...
TRANSCRIPT
![Page 1: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/1.jpg)
ANÁLISE E PROJETO DE SISTEMAS INTRODUÇÃO A ENGENHARIA DE SOFTWARE
Professora: Fabíola Gonçalves.
UFU Universidade Federal de Uberlândia
![Page 2: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/2.jpg)
AGENDA
Introdução à Engenharia de Software
Características do Software
Comunicação no desenvolvimento de Software
O que é Engenharia de Software
Qualidade versus Incidentes
Aplicações
Importância do Software
Princípios de Engenharia de Software
![Page 3: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/3.jpg)
O QUE É SOFTWARE?
● “Programas de computador, juntamente com
as estruturas de dados e documentação
associada”.
● “Software de computador é o produto que os
profissionais de software constroem e, depois,
mantém ao longo do tempo. Abrange desde
programas que executam em computadores de
qualquer tamanho e arquitetura a sistemas
embutidos.”
![Page 4: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/4.jpg)
O QUE É SOFTWARE?
● Onipresença / DEPENDÊNCIA de
“computadores”
● Computador "=" Software
● Quem o faz/desenvolve?
● Qual sua importância?
● Qual o produto do trabalho dos elaboradores
de um software?
![Page 5: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/5.jpg)
SOFTWARE
Primeiras décadas da era do computador..
“Hoje o problema é diferente, o
principal desafio desta década é melhorar
a qualidade e reduzir o custo das
soluções baseadas em computador, ou
seja, que são resolvíveis com softwares de
computador”.
![Page 6: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/6.jpg)
SOFTWARE
Evolução do Software...
![Page 7: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/7.jpg)
CARACTERÍSTICAS DO SOFTWARE
Pontos chaves:
Comunicação entre o clientes e
desenvolvedores
“ Devemos entender o que o cliente quer e quais
são as suas necessidades, antes de começarmos a
construir um sistema que o ajude a resolver seus
problemas”.
Número de pessoas trabalhando em um
projeto?
![Page 8: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/8.jpg)
CARACTERÍSTICAS DO SOFTWARE
Boa Comunicação? Por quê?
QUALIDADE..
![Page 9: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/9.jpg)
![Page 11: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/11.jpg)
FALHAS EM SOFTWARE
Ariane
Custo: $500 milhões
Desastre: Ariane 5, o mais novo foguete da Europa não-
tripulado, foi intencionalmente destruído segundos após
seu lançamento em seu vôo inaugural. Também foram
destruídos quatro satélites científicos para estudar como
o campo magnético da Terra interage com os ventos
solares.
Causa: O desligamento ocorreu quando o computador de
orientação tentou converter a velocidade do foguete de 64-
bits para um formato de 16 bits. O número era muito
grande, o que resultou em erro de estouro. Quando o
sistema de orientação desligou, o controle passou para
uma unidade idêntica redundante, que também falhou
porque nele estava correndo o mesmo algoritmo.
![Page 12: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/12.jpg)
FALHAS EM SOFTWARE
3ª Guerra Mundial (Quase!) (1983)
Custo: Quase toda a humanidade
Desastre: O sistema de alerta soviético falsamente
indicou que os Estados Unidos tinham lançado cinco
mísseis balísticos. Felizmente, o oficial de serviço
soviético tinha uma “sensação esquisita no estômago” e
fundamentalmente, se os EUA estavam realmente
atacando, eles lançariam mais de cinco mísseis, por
isso ele relatou o aparente ataque como um alarme
falso.
Causa: Um bug no software soviético falhou ao
detectar reflexos solares como falsos mísseis.
![Page 13: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/13.jpg)
QUALIDADE?
![Page 14: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/14.jpg)
CARACTERÍSTICAS DO SOFTWARE
O software é um elemento de um sistema
lógico e não de um sistema físico..
O software é desenvolvido; não é fabricado no
sentido clássico.
O software não se desgasta: o software não é
suscetível aos males ambientais que causam
desgastes.
Natureza “MUTÁVEL”
do SW
![Page 15: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/15.jpg)
ATRIBUTOS DE UM BOM SOFTWARE
Facilidade de manutenção: um software deve ser
escrito de modo que possa evoluir para atender as
necessidades mutáveis dos clientes.
Nível de confiança: incluem confiabilidade,
proteção e segurança. Um software confiável não
deve ocasionar danos físicos ou econômicos, no caso
de defeito no sistema.
Eficiência: inclui rapidez de resposta, o tempo de
processador, a utilização da memória, entre outros.
Facilidade de uso: deve dispor de interface
apropriada com o usuário e de documentação
adequada.
![Page 16: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/16.jpg)
APLICAÇÕES DE SOFTWARE
● industrial automation
● business software
● video games
● telecommunications (i.e., the Internet and everything
that flows on it)
● databases
● educational software
● medical software
● image editing
● simulation software, word processing e Decision
making software
![Page 17: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/17.jpg)
IMPORTÂNCIA DO SOFTWARE
● 98% dos microprocessadores não estão
nos computadores, mas embutidos em
produtos
![Page 18: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/18.jpg)
MERCADO DO SOFTWARE
● 2008: U$303bi
● 2013: U$457bi
● 40% em 5 anos!!!
● Carros modernos da GM possuem 100 milhões
de linha de código e mais de 30
microprocessadores.
● Modernos celulares possuem 20 milhões de
linha de código.
![Page 19: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/19.jpg)
CRISE DO SOFTWARE
● Conferência da NATO (1968) – Crise de
Software
– Preço do hardware cai
– Maior demanda por software
– Baixa produtividade e qualidade: Projetos abandonados,
Módulos que não operam corretamente quando combinados, Sistemas tão difíceis de
usar que são descartados, Sistemas que simplesmente param de funcionar., etc.
● Resultado:
– Software entregue fora do prazo e com maior custo
– Grandes falhas
![Page 20: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/20.jpg)
CRISE DO SOFTWARE - SOLUÇÃO
● Métodos e técnicas: como fazer (processo de
software).
– Combinar métodos para a fase de
desenvolvimento.
– Ferramentas para automatizar estes métodos.
● Técnicas para assegurar qualidade (Engenharia
de Software).
● Interesse do governo em treinamentos e
educação
![Page 21: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/21.jpg)
POR QUE ENGENHARIA DE SOFTWARE?
● Termo criado em 1968
● Ideia de usar processos e métodos bem
definidos, quantificáveis, formais, para
desenvolvimento de software
● Aplicação de conceitos de engenharia ao
desenvolvimento de software
● Definições:
![Page 22: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/22.jpg)
ENGENHARIA DE SOFTWARE
● “Aplicação de uma abordagem
sistemática, disciplinada e quantificável
para o desenvolvimento, operação e
manutenção do software”.
IEEE
![Page 23: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/23.jpg)
ENGENHARIA DE SOFTWARE
● “Engenharia é a aplicação sistemática de
conhecimentos científicos na criação e
construção de soluções com um bom
custo-benefício para a resolução de
problemas práticos da sociedade”.
SEI
![Page 24: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/24.jpg)
ÁREAS DA ENGENHARIA DE SOFTWARE
![Page 25: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/25.jpg)
PRODUTO E PROCESSO DE SOFTWARE
A engenharia de software abrange um
conjunto de elementos Métodos: fornecem os detalhes de como fazer para
construir softwares...
Ferramentas: apoio automatizado ou semi-automatizado.
Procedimentos: definem a sequência em que os métodos
são aplicados, os produtos a serem disponibilizados,
controles de qualidade e avaliação.
Paradigmas: abordagem ou filosofia em particular para a
construção de software.
![Page 26: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/26.jpg)
RESPONSABILIDADE E ÉTICA
![Page 27: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/27.jpg)
RESPONSABILIDADE E ÉTICA
Dilemas/Pontos de vista divergentes
Discordar políticas da alta gerência?
Relatar problemas com o software?
Liberação de sw sem testes?
SW militares/nucleares?
![Page 28: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/28.jpg)
MITOS DO SOFTWARE?
● “Se nos atrasarmos no planejamento,
podemos adicionar mais programadores”.
● “O estabelecimento geral de objetivos é
suficiente para iniciar o desenvolvimento do
software – podemos fornecer os detalhes
posteriormente”.
![Page 29: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/29.jpg)
MITOS DO SOFTWARE
● “Quando escrevemos um programa e o
fazemos funcionar, nosso trabalho está
completo”.
● “Até que eu esteja com o programa
funcionando não tenho como avaliar sua
qualidade ”.
![Page 30: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/30.jpg)
![Page 31: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/31.jpg)
PRINCÍPIOS DE SOFTWARE
Objetivo SUCESSO no desenvolvimento
Envolve tanto PRODUTO quanto PROCESSO
GENÉRICOS
INDEPENDENTES de linguagem/BD/SO e etc…
Princípios de Software: “declarações gerais e
abstratas que descrevem as propriedades
desejadas dos processos de desenvolvimento e dos
produtos de software”.
![Page 32: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/32.jpg)
PRINCÍPIOS DE SOFTWARE
![Page 33: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/33.jpg)
PRINCÍPIOS DE SOFTWARE
Rigor e Formalismo
Desenvolvimento SW artesanal
CRIATIVO
INSPIRAÇÃO
RIGOR
Complemento à criatividade …
![Page 34: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/34.jpg)
PRINCÍPIOS DE SOFTWARE
Modularização
Modular??
Dividir complexidade …
Facilitar manutenção
Bastante COESÃO
Pouca INTERRELAÇÃO
![Page 35: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/35.jpg)
PRINCÍPIOS DE SOFTWARE
Abstração
Acompanha todo e qualquer processo de
implementação ou programação.
As linguagens de programação que
utilizamos nada mais são do que
construções abstratas para representar
soluções ou interagir com o hardware.
![Page 36: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/36.jpg)
PRINCÍPIOS DE SOFTWARE
Generalização versus Decomposição
Focar na descoberta de um problema mais
geral que possa existir por trás do problema.
Capacidade de solucionar problemas mais e
associa-los em módulos comuns.
Reusabilidade (outro príncipio)
![Page 37: UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO ...fabiola/GGI033%20-%20An%e1lise%20e%20Projeto%20... · O QUE É SOFTWARE? “Programas de computador, ... as estruturas](https://reader034.vdocuments.pub/reader034/viewer/2022052407/5be6531509d3f288458d1efa/html5/thumbnails/37.jpg)
PRINCÍPIOS DE SOFTWARE
Incrementabilidade
A incrementabilidade é o princípio que
busca a perfeição ou a obtenção dos
objetivos através de passos que evoluem
(ou são incrementados) ao longo do tempo.