Prof. Me. Clodoaldo Brasilino [email protected] · Pressman (2005) define processo de...

39
Engenharia de Software Prof. Me. Clodoaldo Brasilino [email protected]

Transcript of Prof. Me. Clodoaldo Brasilino [email protected] · Pressman (2005) define processo de...

Engenharia de SoftwareProf. Me. Clodoaldo Brasilino [email protected]

Prof. Me. Clodoaldo Brasilino

2

1. Introdução à Engenharia de Software 2. Processos de Software e Projetos3. Projeto de Software 4. Teste de Software

Acompanhamento da Disciplina

Prof. Me. Clodoaldo Brasilino

3

• O que é um processo de software? • Atividades de um processo de software

‣ Especificação ‣ Projeto e Implementação ‣ Validação ‣ Evolução

• Modelos de processo de software ‣ Modelos Genéricos

- Cascata - Incremental - Baseado em Componentes

‣ Modelos Iterativos - Incremental - Espiral

Conteúdo da Aula

Prof. Me. Clodoaldo Brasilino

4

A engenharia de software é uma tecnologia em camadas

O que é um processo de software?

Foco na Qualidade

Modelo de Processo

Métodos

Ferramentas

Conteúdo desta aula

Prof. Me. Clodoaldo Brasilino

5

Pressman (2005) define processo de software como “um framework para as tarefas que são necessárias para construir software de alta qualidade”

Já Sommerville (2008) diz que “um processo de software é um conjunto de atividades que leva à produção de um produto de software”

O que é um processo de software?

Prof. Me. Clodoaldo Brasilino

6

• São quatro: ‣ Especificação ‣ Projeto e Implementação ‣ Validação ‣ Evolução

Atividades de um processo de software

Prof. Me. Clodoaldo Brasilino

7

• Também chamada de Engenharia de Requisitos

• Possui quatro estágios principais: ‣ Estudo de Viabilidade ‣ Elicitação e Análise de Requisitos ‣ Especificação de Requisitos ‣ Validação de Requisitos

Especificação

Prof. Me. Clodoaldo Brasilino

8

Especificação

Estudo de Viabilidade

Requisitos de Usuário e de Sistema

Obtenção e Análise de Requisitos

Especificação de Requisitos

Validação de Requisitos

Relatório de Viabilidade Modelos de Sistema Documento de

Requisitos

Prof. Me. Clodoaldo Brasilino

9

• Nesta atividade, podemos identificar sete estágios: ‣ Projeto de arquitetura ‣ Especificação abstrata ‣ Projeto de interface ‣ Projeto de componente ‣ Projeto de estruturas de dados ‣ Projeto de algoritmo

Projeto e Implementação

Prof. Me. Clodoaldo Brasilino

10

Projeto e Implementação

Especificação de Requisitos

Especificação Abstrata

Projeto de Estrutura de Dados

Projeto de Arquitetura

Projeto de Algoritmo

Projeto de Componente

Projeto de Interface

Arquitetura de Sistema

Especificação de Software

Especificação de interface

Especificação de Componente

Especificação de Estrutura de Dados

Especificação de Algoritmo

Prof. Me. Clodoaldo Brasilino

11

• Também conhecida como Verificação e Validação (V & V) ou Testes

• Verifica a conformidade do software com a especificação e se o software atende as expectativas do cliente

• Possui três estágios: ‣ Teste de componente (ou unidade) ‣ Teste de sistema ‣ Teste de aceitação

Validação

Prof. Me. Clodoaldo Brasilino

12

Validação

Teste de Componente Teste de Sistema Teste de

Aceitação

Prof. Me. Clodoaldo Brasilino

13

Validação

AceitaçãoSistema

Componente

Prof. Me. Clodoaldo Brasilino

14

• Após a finalização do software, demandas adicionais podem fazer com que o software necessite de evolução no futuro

• São identificados quatro estágios nesta fase: ‣ Definir requisitos de sistema ‣ Avaliar sistemas existentes ‣ Propor mudanças de sistema ‣ Modificar o sistema

Evolução

Prof. Me. Clodoaldo Brasilino

15

Evolução

Definir requisitos de sistema

Avaliar sistemas existentes

Propor mudanças de sistema Modificar o sistema

Sistemas Existentes Sistemas Novos

Prof. Me. Clodoaldo Brasilino

16

• O que é um modelo de processo de software?

Pressman (2005) define modelos de processo de software como “Modelos Prescritivos”, onde as atividades de um processo de software são apresentadas através de um fluxo (workflow), mostrando como essas atividades interagem entre si.

Modelos de processo de software

Prof. Me. Clodoaldo Brasilino

17

• O que é um modelo de processo de software?

Sommerville (2008) chama de modelo de processo de software “uma versão simplificada do processo de software, apresentado sob perspectiva específica”

Modelos de processo de software

Prof. Me. Clodoaldo Brasilino

18

• O que é um modelo de processo de software? ‣ Nos modelos, as atividades de processo

apresentadas são organizadas/montadas/esquematizadas de formas diferentes para cada modelo

‣ Os modelos trazem uma visão integrada dessas atividades

Modelos de processo de software

Prof. Me. Clodoaldo Brasilino

19

• Os três modelos genéricos são: ‣ Cascata (ou Clássico) ‣ Evolucionário ‣ Baseado em Componentes

Modelos Genéricos

Prof. Me. Clodoaldo Brasilino

20

• Dr. Winston W. Royce, em 1970, publica um artigo chamado Managing the Development of Large Software Systems, com “visões pessoais do autor sobre o gerenciamento de grandes softwares”

• Com isso, surge o primeiro modelo de processo de software, o Cascata (Clássico)

Modelo em Cascata

Prof. Me. Clodoaldo Brasilino

21

Modelo em Cascata

Prof. Me. Clodoaldo Brasilino

22

Modelo em Cascata

Prof. Me. Clodoaldo Brasilino

23

• Vantagens ‣ Aderência a modelos de processo de

engenharia ‣ Estabilidade dos requisitos

• Desvantagens ‣ Iterações são onerosas e burocráticas ‣ Modificações no sistema são caras e lentas

Modelo em Cascata

Prof. Me. Clodoaldo Brasilino

24

• Se baseia em duas premissas principais ‣ Desenvolvimento exploratório ‣ Prototipação throwaway

Modelo Evolucionário

Prof. Me. Clodoaldo Brasilino

25

Modelo Evolucionário

Versões do software

Atividades Simultâneas

Versões intermediárias

Versões intermediárias

Especificação

Descrição do esboçoDesenvolvimento

Validação

Versão inicial

Versões intermediárias

Versão final

Prof. Me. Clodoaldo Brasilino

26

• Vantagens ‣ Especificação pode ser feita de forma

incremental ‣ Comporta-se bem para sistemas de até

médio porte (500.000 linhas) • Desvantagens ‣ Difícil obter arquitetura estável ‣ Integração entre equipes é um desafio

Modelo Evolucionário

Prof. Me. Clodoaldo Brasilino

27

Modelo Baseado em Componentes

Prof. Me. Clodoaldo Brasilino

28

• No comitê de ciências da OTAN, em 1968, Dr. Malcolm Douglas McIlroy deu início à ideia de software componentizado pelo artigo Mass produced software components

• Foco no Reuso • Commercial Off-The-Shelf Systems (COTS)

Modelo Baseado em Componentes

Prof. Me. Clodoaldo Brasilino

29

Modelo Baseado em Componentes

Especificação de Requisitos

Análise de Componentes

Modificação de Requisitos

Projeto de Sistema com Reuso

Desenvolvimento e Integração

Validação

Prof. Me. Clodoaldo Brasilino

30

• Vantagens ‣ Reuso de código ‣ Entregas mais rápidas ‣ Reduz custos e riscos

• Desvantagens ‣ Componentes de terceiros podem

prejudicar na evolução do software ‣ Modificações nos requisitos podem não

atender às necessidades do usuário

Modelo Baseado em Componentes

Prof. Me. Clodoaldo Brasilino

31

• Foco em mudanças • Modelos principais: ‣ Incremental ‣ Espiral

Modelos Iterativos

Prof. Me. Clodoaldo Brasilino

32

Modelo Incremental

Definir Requisitos Iniciais

Atribuir Requisitos aos Incrementos

Projetar Arquitetura do Sistema

Desenvolver Incremento Validar Incremento Integrar Incremento Validar Sistema

Sistema Incompleto

Sistema Completo

Prof. Me. Clodoaldo Brasilino

33

• Vantagens ‣ Entregas rápidas ‣ Menor risco de insucesso do projeto ‣ Fácil priorização

• Desvantagens ‣ Incrementos devem ser pequenos ‣ Dificuldade de identificar requisitos comuns

Modelo Incremental

Prof. Me. Clodoaldo Brasilino

Análise de Riscos

34

Modelo Espiral

Boehm, 1998

Prof. Me. Clodoaldo Brasilino

35

• Vimos: ‣ O que é processo de software e suas

principais atividades ‣ O que é modelo de processo de software e

os modelos mais difundidos - Paradigmas (Cascata, Evolucionário,

ESBC) - Iterativos (Incremental, Espiral)

Resumo da Aula

Prof. Me. Clodoaldo Brasilino

36

Alguma dúvida?

Prof. Me. Clodoaldo Brasilino

37

• Leitura dos capítulos: ‣ Sommerville - Cap. 4 ‣ Pressman - Cap. 2 e 3

• Lista de exercícios

Fixação da Aula

Prof. Me. Clodoaldo Brasilino

38

MCILLROY, M. D. Mass produced software components. Software Engineering: Report of a conference sponsored by the NATO Science Committee, Garmisch, Alemanha, Scientific Affairs Division, NATO. 1968. p. 79. Disponível em <http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF>. Acessado em 01 de Junho de 2014.

PRESSMAN, R. S. Software Engineering: A Practitioner's Approach. 6 Ed. McGraw Hill, 2005. 912p.

ROYCE, W. W. Managing the development of large software systems. 1970. Disponível em <http://leadinganswers.typepad.com/leading_answers/files/original_waterfall_paper_winston_royce.pdf>. Acessado em 01 de Junho de 2014.

SOMMERVILLE, I. Engenharia de Software. 8 Ed. Pearson, 2008. 552p.

Referências

Prof. Me. Clodoaldo Brasilino

39

Para Refletir