49
Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do Sommerville, 2000 Disponíveis em inglês em www.software-engin.com ©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 1 Traduzidos por Jacinta Pereira Graduando do Curso de Letras da UFC Apresentados por Rossana Andrade Ph.D, SITE, University of Ottawa, Canadá Profa. Departamento de Computação, Centro de Ciências, Universidade Federal do Ceará [email protected] http://great.ufc.br

Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Engenharia de Software

Capítulo 4 – Processos de Software

Slides adaptados do capítulo 3 do Sommerville, 2000

Disponíveis em inglês em www.software-engin.com

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 1

Traduzidos por Jacinta Pereira

Graduando do Curso de Letras da UFC

Apresentados por Rossana AndradePh.D, SITE, University of Ottawa, Canadá

Profa. Departamento de Computação, Centro de Ciências,Universidade Federal do Ceará

[email protected]://great.ufc.br

Page 2: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Processos de Software

� Conjuntos de atividades coerentes para especificar, projetar, implementar

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 2

e testar sistemas de software

Page 3: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Objetivos

� Introduzir modelos de processo de software

� Descrever uma variedade de modelos de processo e quando eles podem ser usados

Descrever esboços de modelos de processo para

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 3

� Descrever esboços de modelos de processo para engenharia de requisitos, desenvolvimento de software, teste e evolução

� Apresentar a tecnologia CASE para dar suporte às atividades de processo de software

Page 4: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Tópicos abordados

� Modelos de processo de software

� Iteração do Processo

� Especificação de Software

Projeto e implementação do Software

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 4

� Projeto e implementação do Software

� Validação do Software

� Evolução do Software

� Suporte de processo automatizado

Page 5: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

O processo de software

� Um conjunto estruturado de atividades requeridas para desenvolver um sistema de software• Especificação

• Projeto

• Implementação

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 5

• Implementação

• Validação e Verificação

• Evolução

� Um modelo de processo de software é uma representação abstrata de um processo. Apresenta uma descrição de um processo de alguma perspectiva particular

Page 6: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Modelos genéricos de processo de software

� O modelo cascata• Separa e distingue fases de especificação e desenvolvimento

� Desenvolvimento evolucionário• Especificação e desenvolvimento são entrelaçados

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 6

• Especificação e desenvolvimento são entrelaçados

� Desenvolvimento Formal de sistemas • Um modelo de sistema matemático é formalmente transformado

para uma implementação

� Desenvolvimento baseado na reutilização• O sistema é montado a partir de componentes existentes

Page 7: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Modelo CascataRequirements

definition

System andsoftware design

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 7

Implementationand unit testing

Integration andsystem testing

Operation andmaintenance

Page 8: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Fases do modelo cascata

� Análise e definição de requisitos

� Projeto do sistema e do software

� Implementação e teste da unidade

Integração e teste do sistema

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 8

� Integração e teste do sistema

� Operação e manutenção

� A desvantagem do modelo cascata é a dificuldade de acomodar mudanças depois que o processo está em andamento

Page 9: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Problemas do modelo cascata

� Partição inflexível do projeto em diferentes estágios

� Isto faz com que seja difícil responder aos requisitos mutáveis dos clientes

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 9

requisitos mutáveis dos clientes

� Portanto, este modelo só é apropriado quando os requisitos são bem entendidos

Page 10: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento evolucionário

� Desenvolvimento exploratório • O objetivo é trabalhar com clientes e evoluir o sistema final de

um esboço de especificação inicial. Deve começar com os requisitos que estão bem entendidos

Preparação de protótipos descartáveis

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 10

� Preparação de protótipos descartáveis• Objetivo é entender os requisitos do sistema. Deve começar

com requisitos pobremente entendidos

Page 11: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento evolucionário

SpecificationInitial

version

Concurrentactivities

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 11

ValidationFinal

version

DevelopmentIntermediate

versionsOutline

description

Page 12: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento evolucionário

� Problemas• Falta de visibilidade do processo

• Sistemas são, em geral, pobremente estruturados

• Habilidades especiais (ex. em línguas para rápida preparação de protótipos ) podem ser requeridas

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 12

protótipos ) podem ser requeridas

� Aplicabilidade• Para sistemas interativos pequenos ou médios

• Para partes de sistemas grandes (ex. a interface de usuário)

• Para sistemas de curto-prazo

Page 13: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento de sistemas formais

� Baseado na transformação de uma especificação matemática através de diferentes representações para um programa executável

� Transformações são ‘preservadoras de exatidão’,

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 13

� Transformações são ‘preservadoras de exatidão’, portanto, são diretas para mostrar que o programa está de acordo com sua especificação

� Contido na abordagem ‘Cleanroom’ para desenvolvimento de software

Page 14: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento de sistemas formais

Requirements Formal Formal Integration andsystem testing

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 14

Requirementsdefinition

Formalspecification

Formaltransformation

Integration andsystem testing

Page 15: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Transformações Formais

Formal Executable

T1 T2 T3 T4

Formal transformations

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 15

R2Formal

specificationR3

Executableprogram

P2 P3 P4

Proofs of transformation correctness

R1

P1

Page 16: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento de sistemas formais

� Problemas• Necessidade de habilidades especializadas e treinamento para

aplicar a técnica

• Difícil de especificar formalmente alguns aspectos do sistema como a interface de usuário

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 16

como a interface de usuário » Difícil, mas não impossível, por exemplo, redes de petri coloridas

podem ser utilizadas para especificar interfaces

� Aplicabilidade• Sistemas críticos, especialmente aqueles no qual um case de

segurança deve ser feito antes do sistema ser posto em operação

Page 17: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento orientado ao reuso

� Engenharia de Software baseada em Componentes

� Baseado no reuso sistemático, onde os sistemas são integrados de componentes existentes ou sistemas padronizados

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 17

� Estágios do Processo• Análise do componente

• Modificação dos requisitos

• Projeto do sistema com reuso

• Desenvolvimento e integração

� Esta abordagem está se tornando mais importante, mas a experiência ainda é limitada com ela

Page 18: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento orientado ao reuso

Requirementsspecification

Componentanalysis

System designwith reuse

Requirementsmodification

• Engenharia de Software baseada em Componentes

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 18

Developmentand integration

Systemvalidation

Page 19: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Iteração de Processo

� Requisitos do sistema SEMPRE evoluem no decorrer de um projeto, então a iteração do processo, onde estágios anteriores são re-trabalhados, é sempre parte de um processo para sistemas maiores

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 19

sistemas maiores � Iteração pode ser aplicada para qualquer modelo

de processo genérico� Duas abordagens (relacionadas)

• Desenvolvimento incremental• Desenvolvimento espiral

Page 20: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento incremental� Ao invés de entregar o sistema de uma única vez, o

desenvolvimento e a entrega é dividida em incrementos com cada incremento entregando parte da funcionalidade requerida

� Os requisitos dos usuários são priorizados e os requisitos

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 20

� Os requisitos dos usuários são priorizados e os requisitos de maior prioridade são incluídos em incrementos iniciais

� Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados embora requisitos para incrementos posteriores possam continuar a evoluir

Page 21: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento incremental

Design systemarchitecture

Define outline requirements

Assign requirements to increments

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 21

Validateincrement

Develop systemincrement

Integrateincrement

Validatesystem

System incomplete

Finalsystem

Page 22: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Vantagens do desenvolvimento incremental

� O valor agregado ao Cliente está na entrega em cada incremento de modo que a funcionalidade do sistema estará disponível mais cedo

� Incrementos iniciais funcionam como protótipos

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 22

Incrementos iniciais funcionam como protótipos para ajudar a evocar requisitos para incrementos posteriores

� Menores riscos de falha no projeto em geral� Os serviços do sistema de alta prioridade tendem

a receber a maioria dos testes

Page 23: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Programação extrema

� Nova abordagem para o desenvolvimento de software baseado no desenvolvimento e entrega de incrementos de funcionalidade bem pequenos

� Conta com melhoramento constante do código,

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 23

� Conta com melhoramento constante do código, envolvimento do usuário no time de desenvolvimento e programação em pares

Page 24: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Desenvolvimento espiral

� Processo é representado como uma espiral ao invés de uma seqüência de atividades com retorno

� Cada volta na espiral representa uma fase no processo.

� Não existem fases fixas como especificação ou projeto –

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 24

Não existem fases fixas como especificação ou projeto –as voltas na espiral são escolhidas de acordo com o que é requerido

� Os riscos são explicitamente cotados e resolvidos durante todo o processo

Page 25: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Modelo espiral do processo de software

Riskanalysis

Riskanalysis

Riskanalysis

Prototype 2

Prototype 3Opera-tionalprotoype

Evaluate alternativesidentify, resolve risks

Determine objectivesalternatives and

constraints

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 25

Riskanalysis Proto-

type 1

Prototype 2 protoype

Concept ofOperation

Simulations, models, benchmarks

S/Wrequirements

Requirementvalidation

DesignV&V

Productdesign Detailed

design

CodeUnit test

IntegrationtestAcceptance

testService Develop, verifynext-level product

Plan next phase

Integrationand test plan

Developmentplan

Requirements planLife-cycle plan

REVIEW

Page 26: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Setores do modelo espiral

� Estabelecimento de objetivos• Objetivos específicos para a fase são identificados

� Avaliação e redução de riscos• Os riscos são avaliados e atividades postas em prática para

reduzir os riscos principias

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 26

reduzir os riscos principias

� Desenvolvimento e validação• Um modelo de desenvolvimento para o sistema é escolhido,

podendo ser qualquer um dos modelos genéricos

� Planejamento • O projeto é revisado e a fase seguinte da espiral é planejada

Page 27: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Especificação do Software

� O processo de estabelecer que serviços são requisitados e quais as restrições na operação e desenvolvimento do sistema

� Processo de engenharia de requisitos

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 27

� Processo de engenharia de requisitos• Estudo de viabilidade

• Elicitação e análise dos requisitos

• Especificação dos requisitos

• Validação dos requisitos

Page 28: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

O processo de engenharia de requisitos

Feasibilitystudy

Requirementselicitation and

analysisRequirementsspecification

Requirementsvalidation

Feasibilityreport

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 28

validationreport

Systemmodels

User and systemrequirements

Requirementsdocument

Page 29: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Projeto e implementação de Software

� O processo de converter a especificação do sistema em um sistema executável

� Projeto de Software• Projeto de uma estrutura de software que perceba a

especificação

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 29

especificação

� Implementação• Transformar esta estrutura em um programa executável

� As atividades de projeto e implementação são intimamente relacionadas e podem ser entrelaçadas

Page 30: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Atividades de processo de projeto

� Projeto arquitetural

� Especificação abstrata

� Projeto de interface

Projeto de componente

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 30

� Projeto de componente

� Projeto de estrutura de dados

� Projeto de algoritmo

Page 31: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

O processo do projeto de software

Architectural Abstract Interface Component Data Algorithm

Requirementsspecification

Design activities

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 31

Architecturaldesign

Abstractspecification

Interfacedesign

Componentdesign

Datastructuredesign

Algorithmdesign

Systemarchitecture

Softwarespecification

Interfacespecification

Componentspecification

Datastructure

specification

Algorithmspecification

Design products

Page 32: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Métodos do Projeto

� Abordagens sistemáticas para desenvolver um projeto de software

� O projeto é geralmente documentado como uma série de modelos gráficos

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 32

série de modelos gráficos

� Modelos possíveis• Modelo de fluxo de dados

• Modelo de atributos relacionados à entidade

• Modelo Estrutural

• Modelos de objetos

Page 33: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Programando e Depurando

� Transformar um projeto em um programa e remover erros do programa

� Programação é uma atividade pessoal – não existe processo de programação genérico

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 33

existe processo de programação genérico

� Programadores realizam alguns testes de programa para detectar falhas no programa e remover tais falhas no processo de depuração

Page 34: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

O processo de depuração

Locateerror

Designerror repair

Repairerror

Re-testprogram

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 34

error error repair error program

Page 35: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Validação do Software

� Verificação e validação pretendem mostrar que um sistema está de acordo com sua especificação e cumpre os requisitos do cliente do sistema

� Envolve a verificação e a revisão de processos e

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 35

� Envolve a verificação e a revisão de processos e teste do sistema

� Teste de sistema envolve a execução do sistema com cases de teste que são derivados da especificação dos dados reais a serem processados pelo sistema

Page 36: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

O processo de teste

Sub-system

Moduletesting

Unittesting

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 36

Sub-systemtesting

Systemtesting

Acceptancetesting

Componenttesting

Integration testing Usertesting

Page 37: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Etapas de teste� Teste da Unidade

• Os componentes individuais são testados

� Teste do Módulo• Conjuntos de componentes dependentes relacionados são testados

� Teste do Sub-sistema

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 37

� Teste do Sub-sistema• Os módulos são integrados em sub-sistemas e testados. O foco aqui

deve ser no teste da interface

� Teste do Sistema• Teste do sistema como um todo. Teste das propriedades emergentes

� Teste de Aceitação• Teste com dados do consumidor para verificar que é aceitável

Page 38: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Fases de teste

Requirementsspecification

Systemspecification

Systemdesign

Detaileddesign

Module andSub-systemSystem

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 38

Module andunit codeand tess

Sub-systemintegrationtest plan

Systemintegrationtest plan

Acceptancetest plan

ServiceAcceptance

testSystem

integration testSub-system

integration test

Page 39: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Evolução do Software

� Software é hereditariamente flexível e pode ser mudado.

� Como os requisitos mudam ao se alterar as circunstâncias de negócios, o software que

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 39

circunstâncias de negócios, o software que suporta o negócio também deve evoluir e mudar

� Embora tenha havido uma demarcação entre desenvolvimento e evolução (manutenção), este é cada vez mais irrelevante na medida que menos e menos sistemas são totalmente novos

Page 40: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Evolução do sistema

Assess existingsystems

Define systemrequirements

Propose systemchanges

Modifysystems

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 40

systemsrequirements changes systems

Newsystem

Existingsystems

Page 41: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Suporte ao processo automatizado (CASE)

� Engenharia de software auxiliada por computador (CASE) é um software para dar suporte aos processos de desenvolvimento e evolução do software

� Automação da atividade

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 41

• Editores gráficos para o desenvolvimento de modelos de sistema

• Dicionário de dados para gerenciar entidades de projeto

• Construtor Gráfico UI para a construção de interface para usuário

• Depuradores para suportar detecção de falhas no sistema

• Tradutores automáticos para gerar novas versões de um programa

Page 42: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Tecnologia Case

� Tecnologia Case tem levado a melhorias significantes no processo de software embora não na ordem de magnitude de melhorias que foram antes previstos

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 42

antes previstos• A engenharia de software requer pensamento criativo – isto não

é prontamente automatizável

• A engenharia de software é uma atividade de grupo e, para grandes projetos, muito tempo é utilizado em interações do grupo. A tecnologia CASE não os suporta de fato

Page 43: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

CASE classificação

� A classificação nos ajuda a entender os diferentes tipos de ferramentas de CASE e seu suporte para atividades do processo

� Perspectiva Funcional

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 43

� Perspectiva Funcional • As ferramentas são classificadas de acordo com suas funções

específicas

� Perspectiva do Processo• As ferramentas são classificadas de acordo com as atividades do

processo que suportam

� Perspectiva da Integração• As ferramentas são classificadas de acordo com sua organização

em unidades integradas

Page 44: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Classificação das Ferramentas Funcionais

Tool type Examples

Planning tools PERT tools, estimation tools,spreadsheets

Editing tools Text editors, diagram editors, wordprocessors

Change management tools Requirements traceability tools, changecontrol systems

Configuration management tools Version management systems, system

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 44

Configuration management tools Version management systems, systembuilding tools

Prototyping tools Very high-level languages,user interface generators

Method-support tools Design editors, data dictionaries, codegenerators

Language-processing tools Compilers, interpretersProgram analysis tools Cross reference generators, static

analysers, dynamic analysersTesting tools Test data generators, file comparatorsDebugging tools Interactive debugging systemsDocumentation tools Page layout programs, image editorsRe-engineering tools Cross-reference systems, program re-

structuring systems

Page 45: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Classificação baseada em atividades (Funcional vs. Processo)

Reengineering tools

Testing tools

Debugging tools

Program analysis tools

Language-processingtools

Method support toolsMethod support tools

Prototyping tools

Configurationmanagement tools

Change management tools

Documentation tools

Editing tools

Planning tools

Specification Design Implementation Verificationand

Validation

Page 46: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Perspectiva de Integração CASE

� Ferramentas• Suporta tarefas individuais do processo como verificação da

consistência de um projeto, edição de texto, etc.

� Áreas de trabalho (workbenches)

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 46

• Suporte a fases do processo como especificação ou projeto. Normalmente inclui uma variedade de ferramentas integradas

� Ambientes• Suporta tudo ou uma parte substancial de todo um processo de

software. Normalmente inclui várias áreas de trabalho integradas

Page 47: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Ferramentas, áreas de trabalho e ambientes

EnvironmentsWorkbenchesTools

CASEtechnology

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 47

Single-methodworkbenches

General-purposeworkbenches

Multi-methodworkbenches

Language-specificworkbenches

Programming TestingAnalysis and

design

Integratedenvironments

Process-centredenvironments

Filecomparators

CompilersEditors

Page 48: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Pontos chave

� Processos de software são as atividades envolvidas na produção e evolução de um sistema de software. Eles são representados em um modelo de processo de software

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 48

modelo de processo de software

� As atividades gerais são especificação, projeto e implementação, validação e evolução

� Modelos genéricos de processo descrevem a organização processos de software

� Modelos iterativos de processo descrevem o processo de software como um de atividades

Page 49: Engenharia de Software - UFCdisciplinas.lia.ufc.br/es10.1/arquivos/Ch4_Somm_Process...Engenharia de Software Capítulo 4 – Processos de Software Slides adaptados do capítulo 3 do

Pontos chave

� Engenharia de requisitos é o processo de desenvolver uma especificação de software

� Os processos de projeto e implementação transformam a especificação em um programa executável

A Validação envolve verificar que o sistema cumpre com as

©Ian Sommerville 2000 Baseado no Capítulo 3 de Software Engineering, 6th edição . Slide 49

� A Validação envolve verificar que o sistema cumpre com as especificações e as necessidades do usuário

� Evolução se preocupa em modificar o sistema depois que ele está em uso

� Tecnologia CASE suporta atividades de processo de software