pra que serve a engenharia de software??? -...

37
Pra que serve a engenharia de Software??? Professor: Saulo Henrique Cabral Silva Instituto Federal de Minas Gerais Campus Ponte Nova

Upload: doquynh

Post on 19-Jan-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Pra que serve a engenharia de Software???

Professor: Saulo Henrique Cabral Silva

Instituto Federal de Minas Gerais Campus Ponte Nova

O poder da informação....

• Atualmente a informação é um novo bem econômico A empresa que dispõe de mais informação esta em vantagem (necessidade) em relação as suas competidoras

• Sobre o seu processo • Sobre os seus clientes • Sobre tendências • Logística • Saúde • Segurança

• Há um ditado que diz que: “A necessidade é a mãe das invenções”. – Organização – Otimização

• Com a informação veio a necessidade de gerenciá-la...

– Sistemas de informação

2

4,4 zettabytes (ZiB) 1.000.000.000.000.000.000.000 de bytes.

Empresa que mais contrata nas grandes capitais ???

3

UBER

• 50.000

• 8.700.000

• 2.000.000.000

4

Empresa de mídia ???

5

Facebook

• 2.000.000.000

• Lucro Liquido – 3.000.000.000

• 50 minutos / dia

6

Concorrente de Empresas de Hospedagem???

7

AirBNB

8

Concorrente das telefonias

9

WhatsAPP

10

2016

$ 19.000.000.000

Concorrente das emissoras ???

11

Youtube

• 2.500.000.000 por dia

• $ 3.500.000.000

• R$ 0,15 a R$ 0,40 – por visualização

12

Concorrente de Sky, Net, ... ???

13

Netflix

• 93.000.000 de assinantes

• $ 8.830.000.000 de receita – $ 186.000 de lucro

14

Sistema de Informação

• Um Sistema de informação: – Envolve pessoas – Processos – Padrões – Tempo – Custo – Riscos – Tecnologias – Dados – Redes de comunicação

• Todas essas características ainda se interagem com objetivo de dar suporte e melhorar o processo de negócio de uma organização empresarial com relação as informações que nela fluem (provem vantagem para a empresa)

15

Engenharia de Software

• Engenharia de Software é uma área da computação voltada à especificação, desenvolvimento e manutenção de sistemas de software, com aplicação de tecnologias e práticas de gerência de projetos e outras disciplinas, visando a organização, produtividade e qualidade.

16

O que vamos fazer hoje???

Tentaremos gerenciar um projeto de Software

Processo de software

17

Análise de um observador externo...

18

PROCESSO DE SOFTWARE

19

O que um modelo de processo... E para que usar ???

• Processo de software é uma metodologia para as atividades e metodologias de construção de um software.

• Pergunta: uma metodologia em engenharia de software precisa de ser seguida a risca??? (grande crítica a engenharia de software)

20

O que vem a ser a palavra engenharia...???

O que um modelo de processo... E para que usar ???

• Processo de software é uma metodologia para as atividades e metodologias de construção de um software.

• Pergunta: uma metodologia em engenharia de software precisa de ser seguida a risca???

21

** Adapte-se **

Quem realiza???

• Engenheiros de software e Gerentes, adaptam o processo às suas necessidades.

• Os solicitantes do software tem o papel de desempenhar os testes do software e participar de etapas da construção.

22

TIPOS DE PROCESSOS DE SOFTWARE

23

Tipos de processos de software

• Linear – Cascata

• Iterativo • Evolucionário

– Espiral – Prototipação

• Paralelo

• Metodologias Ágeis

– Scrum – XP

24

Lembrando que: Tudo isso depende de um planejamento da própria empresa (capital, tempo)

Linear

25

Requisitos

Analise

Projeto

Codificação

Testes

Operação

Linear

26

Requisitos

Analise

Projeto

Codificação

Testes

Operação

Iterativo

27

Requisitos

Analise

Projeto

Codificação

Testes

Operação

Paralelo

28

Requisitos Analise

Projeto

Codificação

Testes

Operação

evolutivo

29

Requisitos

Analise Projeto

Codificação

Testes Transição

Versão

Versão

Versão

Tempo

Fun

cio

nal

idad

e

Metodologia Ágil - XP

30

Requisitos

Analise Projeto

Codificação

Testes Transição

Refabricação

Projeto simples cartões CRC

Soluções pontuais protótipos

Programação em dupla

Teste de unidades integração contínua

Testes de aceitação

Versão

Metodologia Ágil - Scrum

31

Software X Hardware

32

É importante saber desenvolver Software é diferente de Fabricar Hardware

33

Modelagem de um sistema de software

34

Modelagem de um sistema de Software

• Muito complexo.

• É necessário muito planejamento, podemos aqui fazer um paralelo com a engenharia civil.

–Planta elétrica

–Planta hidráulica

–Projeto arquitetônico

–Planta baixa

35

Vantagens do uso de modelos no desenvolvimento de Sistemas de Software

• Gerenciamento de complexidade: Auxilia na visualização de detalhes em todas as esferas do sistema (avião – fuselagem, elétrico,...)

• Comunicação entre as pessoas envolvidas: difusão de informações entre os indivíduos (ponto de referência)

• Redução de custo no desenvolvimento: – Redução de erros durante o desenvolvimento.

– Predição de comportamento.

– pode ser discutido através de modelos.

36

Modelos que iremos abordar na disciplina...

• Levantamento de requisitos

• Modelagem de casos de uso

• Modelagem de classes

• Modelagem de iterações

• Especificações de classes, propriedades e associações

37