Apresentação do PowerPointarieldias.com/material/2018-1/ES/Aula1.pdf · 2018-03-15 ·...

14
15/03/2018 1 Professor Ariel da Silva Dias Introdução a Engenharia de Software O mundo moderno poderia existir sem software? Professor Ariel da Silva Dias - www.arieldias.com

Transcript of Apresentação do PowerPointarieldias.com/material/2018-1/ES/Aula1.pdf · 2018-03-15 ·...

15/03/2018

1

Professor Ariel da Silva Dias

Introdução a Engenharia de Software

O mundo moderno poderia existir sem software?

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

2

Software◦ Associação de programas de computador e documentação;

Atributos de um bom software◦ Prover funcionalidade, o desempenho requerido pelo

usuário, ser confiável e fácil de usar;

Engenharia de software◦ Disciplina que se preocupa com todos os aspectos de

produção de software;

Principais atividades da engenharia de software◦ Especificação, desenvolvimento, validação e evolução.

Professor Ariel da Silva Dias - www.arieldias.com

O mundo moderno poderia existir sem software?

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

3

O mundo moderno poderia existir sem software?

Professor Ariel da Silva Dias - www.arieldias.com

Características do software◦ Os softwares são abstratos;

◦ Intangíveis;

◦ Não existe limites naturais para o potencial do software;

Devido a estas características, o software pode se tornar complexo, difícil de entender e caro para manutenção;

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

4

Existem vários tipos de sistemas de softwares, para os mais variados fins;

Todos estes sistemas precisam da engenharia de software;

Existe um método, notação ou técnica universal para a engenharia de software?◦ Não! Pois diferentes tipos de softwares requerem

abordagens diferentes;

Professor Ariel da Silva Dias - www.arieldias.com

Desenvolver um sistema empresarial web...

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

5

... é diferente de desenvolver um jogo computacional ...

Professor Ariel da Silva Dias - www.arieldias.com

... é diferente de desenvolver um software controlador ...

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

6

Completando

Existem vários tipos de sistemas de softwares, paraos mais variados fins;

Todos estes sistemas precisam da engenharia desoftware embora nem todos necessitem dasmesmas técnicas.

Professor Ariel da Silva Dias - www.arieldias.com

Temos problemas em desenvolver softwares maiscomplexos, mas sem a engenharia de software,não teríamos explorado o espaço, não teríamos ainternet ou as telecomunicações;

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

7

Disciplina com foco em todos os aspectos daprodução de software◦ Da especificação até a manutenção;

Não há preocupação apenas com os processostécnicos do desenvolvimento de software;

Engenharia tem a ver com obter resultado dequalidade requeridos dentro do cronograma eorçamento;

Professor Ariel da Silva Dias - www.arieldias.com

Engenharia de software é importante pois:◦ Indivíduos e sociedade dependem dos sistemas de

software;

◦ A longo prazo, é mais barato usar métodos e técnicas deengenharia de software, uma vez que, a maior parte docusto é mudar o software depois que ele já começa a serusado.

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

8

Processos de software◦ Especificação de software: definição do software a ser

desenvolvido e as restrições de operação;

◦ Desenvolvimento de Software: o software é projetado eprogramado;

◦ Validação de Software: é verificado para garantir que é oque o cliente quer;

◦ Evolução de Software: o software é modificado para refletira mudança de requisitos do cliente e do mercado;

Professor Ariel da Silva Dias - www.arieldias.com

Diferentes sistemas necessitam de diferentesprocessos de software◦ Por exemplo, software para controle de aeronave deve ser

completamente especificado antes de iniciar odesenvolvimento.

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

9

Muitas pessoas escrevem programas◦ Planilhas;

◦ Programas para registro de dados experimentais;

◦ Programas para hobby e diversão;

Todavia, o desenvolvimento de software é umaatividade profissional◦ com especificação, projeto e evolução;

A engenharia de software apoia o desenvolvimentoprofissional de software, mais do que aprogramação individual.

Professor Ariel da Silva Dias - www.arieldias.com

Um sistema de software é mais do que umprograma:◦ Consiste em uma série de programas e arquivos de

configuração;

◦ Inclui também a documentação do sistema, documentaçãodo usuário, site para acesso dos usuários, entre outros;

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

10

Existem dois tipos de produto de software◦ Produtos genéricos;

◦ Produtos sob encomenda;

Característica importante destes dois tipos:◦ Software Genérico: a organização que o desenvolve controla

sua especificação;

◦ Software sob Encomenda: a especificação é normalmentedesenvolvida e controlada pela empresa que estáadquirindo o software;

Professor Ariel da Silva Dias - www.arieldias.com

Características essenciais de um sistema profissional de software

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

11

Existem muitos tipos diferentes de softwares,incluindo◦ Stand-Alone: Aplicações executadas em um computador

local. Exemplo: Software de manipulação de fotos;

◦ Interativas baseadas em transações: Aplicações queexecutam em um computador remoto, acessado pelousuário a partir de seu computador. Exemplo: aplicações decomércio eletrônico, e-mail, compartilhamento de fotos;

◦ Controle Embutido: Sistemas que controlam e gerenciamdispositivos de hardware. Exemplo: software em micro-ondas, controle antitravamento de freios em um carro;

Professor Ariel da Silva Dias - www.arieldias.com

Existem muitos tipos diferentes de softwares,incluindo◦ Processamento de Lotes: São sistemas para processarem

grandes números de dados de entradas individuais paracriar as saídas correspondentes. Exemplo: Sistema decobrança telefônica, cobrança de energia elétrica e emissorde folha de pagamento;

◦ Entretenimento: Fornece interação com o usuário a fim deentretê-lo. Exemplo: jogos de diferentes tipos;

◦ Modelagem e Simulação: sistemas criados para modelarprocessos ou situações físicas. Exemplo: Simuladores devoo, Simulador de direção;

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

12

Existem muitos tipos diferentes de softwares,incluindo◦ Coleta de Dados: São sistemas que coletam dados a partir

de um conjunto de sensores e os enviam para outrosistema realizar o processamento. Exemplo: central demeteorologia;

◦ Sistemas de Sistemas: Um pacote de software que possuivários sistemas dentro dele. Exemplo: Pacote Office.

Professor Ariel da Silva Dias - www.arieldias.com

Não existe uma técnica ou método universal para odesenvolvimento de software, mas existem trêsaspectos gerais que afetam vários tipos diferentesde softwares citados anteriormente

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

13

Aspectos gerais◦ Heterogeneidade: O desafio é desenvolver técnicas para

construir um software que seja flexível e possa executar emcomputadores, telefones móveis e tenha possibilidade deintegração com outros sistemas mais antigo;

◦ Mudança de Negócio e Social: Deve ser possível alterar e/oudesenvolver um software na mesma velocidade queocorrem as mudanças nos negócios e na sociedade;

◦ Segurança e Confiança: Precisamos ter certeza de que osusuários maliciosos não possam atacar nosso software e deque a proteção da informação seja mantida;

Estes aspectos não são independentes!

Professor Ariel da Silva Dias - www.arieldias.com

E para um sistema WEB?◦ uma abordagem baseada em desenvolvimento e entregas

iterativas pode ser adequada, com o sistema sendocomposto a partir de componentes reusáveis.

Professor Ariel da Silva Dias - www.arieldias.com

15/03/2018

14

SOMMERVILLE, I. Engenharia de Software. 9aedição. Pearson Addison Wesley. 2011

Professor Ariel da Silva Dias - www.arieldias.com