1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

29
1 INTRODUÇÃO A INFORMÁTICA INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software

Transcript of 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

Page 1: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

1

INTRODUÇÃO A INFORMÁTICAINTRODUÇÃO A INFORMÁTICA

Introdução à Engenharia de

Software

Page 2: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

2

Engenharia de Software

“Estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais”. Pressman (1995)

Page 3: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

3

Engenharia de Software

Todas as definições reforçam a exigência da engenharia no desenvolvimento do software.

Ela abrange um conjunto de três elementos fundamentais: - métodos;

- ferramentas; - procedimentos.

Page 4: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

4

Métodos

Proporcionam os detalhes de “como fazer” para construir o software.

Envolvem um conjunto de tarefas:

- Planejamento e estimativa de projeto.

- Análise de requisitos de software e de sistemas.

- Projeto de estrutura de dados.

- Programas e algoritmos de processamento.

- Codificação.

- Teste.

- Manutenção.

Page 5: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

5

Ferramentas

Proporciona apoio automatizado ou semi-automatizado aos métodos.

Engenharia de software auxiliada por computador. CASE (Computer - Aided Software Engeneering). São ferramentas integradas de forma que a informação criada por uma ferramenta possa ser utilizada por outra ferramenta.

Page 6: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

6

Procedimentos

Constituem o elo de ligação que mantém juntos os métodos e as ferramentas.

Definem :

- A seqüência em que os métodos serão aplicados.

- Os produtos que ajudam a assegurar a qualidade e

coordenar as mudanças.

- Marcos de referência que possibilitam os gerentes de software avaliar o progresso.

Page 7: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

7

Engenharia de Software

Engenharia de Software compreende um conjunto de etapas que envolve : Métodos, Ferramentas e Procedimentos.

Essas etapas são conhecidas como componentes do Ciclo de Vida do Software.

Page 8: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

8

Engenharia de Software

Ciclos de Vida mais conhecidos : Ciclo de Vida Clássico; Prototipação; Modelo Espiral; Técnicas de quarta geração

Page 9: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

9

Engenharia de Software

Um ciclo de vida é escolhido tendo-se como base :

a natureza do projeto e da aplicação;

os métodos e as ferramentas a serem

usados;

os controles e produtos que precisam ser

entregues.

Page 10: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

10

Ciclo de Vida Clássico (Cascata)

Requer uma abordagem sistemática seqüencial ao desenvolvimento de software.

Engenharia de Engenharia de SistemasSistemas

Engenharia de Engenharia de SistemasSistemas

Análise de Análise de Requisitos Requisitos

Análise de Análise de Requisitos Requisitos

Projeto Projeto Projeto Projeto

Codificação Codificação Codificação Codificação

Testes Testes Testes Testes

ManutençãoManutenção ManutençãoManutenção

Page 11: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

11

Ciclo de Vida Clássico

Análise e engenharia de sistemas Estabelecimento dos requisitos para todos os

elementos do sistema. Envolve a coleta dos requisitos em nível do sistema,

com uma pequena quantidade de projeto e análise de alto nível.

Page 12: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

12

Ciclo de Vida Clássico

Análise de requisitos de software O processo de coleta dos requisitos é

intensificado e concentrado especificamente no software.

O engenheiro de software deve compreender o domínio da informação para o software, bem como a função, desempenho e interface exigidos.

Os requisitos tanto para o sistema como para o software, são documentados e revistos com o cliente.

Page 13: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

13

Ciclo de Vida Clássico

Projeto Se concentra em quatro atributos distintos do

programa:

estrutura de dados;

arquitetura de software;

detalhes procedimentais;

caracterização de interface. Traduz as exigências numa representação do software

que pode ser avaliada quanto à qualidade antes que a codificação se inicie.

É documentado e torna-se parte da configuração do software.

Page 14: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

14

Ciclo de Vida Clássico

Codificação O projeto é traduzido em instruções executáveis

pelo computador. Se o projeto estiver bem detalhado, a codificação

pode ser executada mecanicamente.

Page 15: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

15

Ciclo de Vida Clássico

Testes Concentra-se :

Nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas.

Nos aspectos funcionais externos, garantindo que a entrada definida produza resultados reais que concordem com os resultados exigidos.

Page 16: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

16

Ciclo de Vida Clássico

Manutenção O software sofrerá mudanças depois que for entregue

ao cliente. Causas:

erros foram encontrados; o software deve ser adaptado a fim de acomodar

mudanças em seu ambiente externo.

A manutenção de software reaplica cada uma das etapas precedentes do ciclo de vida a um programa existente, e não a um novo.

Page 17: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

17

Ciclo de Vida Clássico

É o mais antigo e o mais amplamente usado da engenharia de software.

Problemas: Projetos reais raramente seguem fluxo seqüencial

que o modelo propõe. Muitas vezes é difícil para o cliente declarar

todas as exigências explicitamente. Uma versão de trabalho não estará disponível

até um ponto tardio do cronograma do projeto.

Page 18: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

18

Ciclo de Vida Clássico

Embora o ciclo de vida clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software.

Page 19: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

19

Uma visão genérica

O processo de desenvolvimento de software contém três fases genéricas, independente do paradigma de software escolhido:

1. DEFINIÇÃO,1. DEFINIÇÃO,

2. DESENVOLVIMENTO e2. DESENVOLVIMENTO e

3. MANUTENÇÃO.3. MANUTENÇÃO.

Page 20: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

20

Uma visão genérica

1. Revisões2. Documentação3. Controle de

Mudanças

CCCooonnnssstttrrruuuçççãããooo

1. Entender2. Modificar3. Revalidar

Manutenção “mudanças”

OOOpppeeerrraaaçççãããooo

SSSOOOFFFTTTWWWAAARRREEE

PPPRRROOODDDUUUTTTOOO

AAAtttiiivvviiidddaaadddeeesss dddeee AAApppoooiiiooo

1. Análise deSistema

2. Planejamentodo Projeto

3. Análise deRequisitos

Definição“o que” Desenvolvimento

“como”

1. Projeto deSoftware

2. Codificação3. Teste

Page 21: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

21

Uma visão genérica

Definição: “o que” será desenvolvido.

Análise do sistema : define o papel de cada elemento num sistema baseado em computador, atribuindo, em última análise, o papel que o software desempenhará.

Planejamento do projeto de software : assim que o escopo do software é estabelecido, os riscos são analisados, os recursos são alocados, os custos são estimados e as tarefas e a programação de trabalho, definidas.

Page 22: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

22

Uma visão genérica

Definição: “o que” será desenvolvido.

Análise de requisitos : o escopo definido para o software proporciona uma direção, mas uma definição detalhada do domínio da informação e da função do software é necessária antes que o trabalho se inicie.

Page 23: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

23

Uma visão genérica

Desenvolvimento: “como” será desenvolvido.

Projeto de software : traduz os requisitos do software num conjunto de representações que descrevem a estrutura de dados, a arquitetura, o procedimento algorítmico e as características de interfaces.

Codificação : as representações do projeto devem ser convertidas numa linguagem artificial que resulte em instruções que possam ser executadas pelo computador. A etapa de codificação realiza essa conversão.

Page 24: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

24

Uma visão genérica

Desenvolvimento: “como” será desenvolvido.

Realização de testes do software : logo que é implementado numa forma executável por máquina, o software deve ser testado para que se possa descobrir defeitos de função, lógica e implementação.

Page 25: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

25

Uma visão genérica

Manutenção:“mudanças” que estão associadas à:

CORRECÃO DE ERROS,

ADAPTAÇÕES, e

AMPLIAÇÕES.

Três tipos de mudanças são encontradas durante a fase de manutenção:

Page 26: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

26

Uma visão genérica

Correção : mesmo com as melhores atividades de garantia da qualidade, é possível que o cliente descubra defeitos no software. A manutenção corretiva muda o software para corrigir defeitos.

Adaptação : com o passar de tempo, o ambiente original para o qual o software foi desenvolvido provavelmente mudará. A manutenção adaptativa resulta em modificações no software a fim de acomodar mudanças em seu ambiente.

Page 27: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

27

Uma visão genérica

Melhoramento funcional : à medida que o software é usado, o cliente/usuário reconhecerá funções adicionais que oferecerão benefícios, estendendo o software para além de suas exigências funcionais originais.

Page 28: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

28

Uma visão genérica

Atividades de proteção : complementam as fases e passos descritos na visão genérica da Engenharia de Software.

Revisões : são feitas para garantir que a qualidade seja mantida à medida que cada etapa é concluída.

Page 29: 1 INTRODUÇÃO A INFORMÁTICA Introdução à Engenharia de Software.

29

Uma visão genérica

Documentação : desenvolvida e controlada para garantir que informações completas sobre o sistema e o software estejam disponíveis para uso posterior.

Controle das mudanças : é instituído de forma que elas possam ser aprovadas e acompanhadas.