UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO...

37
ANÁLISE E PROJETO DE SISTEMAS INTRODUÇÃO A ENGENHARIA DE SOFTWARE Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia

Transcript of UFU Universidade Federal de Uberlândia ANÁLISE E PROJETO...

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

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

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

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

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

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

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

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

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
Page 10: 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

PROBLEMAS COM SOFTWARE

*

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Á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

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

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

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

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

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
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

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

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

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

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

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

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

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.