uma abordagem de inclusão de design by contract no processo unificado eduardo silvestri...

35
Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvest ri.com.br Prof. Orientador Dr. José Maria Parente de Oliveira 1

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

Uma abordagem de Inclusão de Design

by Contract no Processo Unificado

Eduardo Silvestri

[email protected]

Prof. Orientador

Dr. José Maria Parente de Oliveira

1

Page 2: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

2Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 3: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

3Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 4: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300IntroduçãoIntrodução

Este trabalho propõe a utilização de

métodos mais rigorosos nos processos

de desenvolvimento software. Métodos

esses calcados na observância das

regras de colaboração entre as partes

do software fazendo uso da técnica de

Design by Contract (DBC).

4Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 5: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300IntroduçãoIntrodução

Design by Contract (DBC) surge como

um método que visa a construção de

sistemas orientados a objetos mais

confiáveis, na medida em que provê

mecanismos para checar a correção de

um sistema.

5Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 6: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300IntroduçãoIntrodução

A principal idéia do método é que

entre as classes e seus clientes seja

estabelecido um contrato o qual deve

ser explicitamente estabelecido. Nele

o cliente deve garantir certas

condições antes de invocar o método

pré-condições, que por sua vez deve

garantir alguns resultados após ter

sido executado pós-condições.

6Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 7: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

7Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 8: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300Definição do ProblemaDefinição do Problema

Software com qualidade = Atende aos

requisitos

Tudo se resume a criar uma maneira

de assegurar que o software será

desenvolvido conforme sua

especificação.

8Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 9: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300Definição do ProblemaDefinição do Problema

Os modelos e métodos convencionais

utilizados para especificação de

requisitos, permitem que estes

possam ser interpretados de formas

diferentes.

Requisitos obscuros ou até mesmo

imperceptíveis aos olhos dos

programadores e arquitetos.

9Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 10: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300Definição do ProblemaDefinição do Problema

Quando este cenário se projeta para

sistemas de software utilizados para

segurança de informações o problema

se agrava de forma exponencial.

10Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 11: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300Definição do ProblemaDefinição do Problema

A tecnologia biométrica pode chegar a

garantir acertos acima de 99,9%.

A tecnologia tem que ser empregada

em um software.

Ganho sobre a tecnologia biométrica

empregada perde a credibilidade.

11Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 12: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

12Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 13: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300Design by Contract - DBCDesign by Contract - DBC

O modelo baseado em contratos tem

como objetivo o desenvolvimento de

uma metodologia que contempla

interface, especificação e verificação de

sistemas orientados a objetos.

13Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 14: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

DBC é um método para desenvolvimento

de software.

•A classe e seus clientes possuem um

"contrato“;

•O cliente deve garantir certas condições

antes de chamar um método; e

•No retorno a classe garante certas

propriedades. 14Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 15: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Caso a execução de uma determinada

tarefa dependa de um outro método,

torna-se necessário especificar

precisamente a relação entre cliente

(quem invoca o método) e contratado

(método que é invocado).

15Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 16: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Em DBC a forma com que se expressa

as condições que devam ser seguidas

pelo contrato são chamadas de

asserções. Pré-condições e pós-

condições são asserções que definem

respectivamente os direitos e

obrigações de cada método.

16Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 17: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Invariantes de classes constituem um

outro tipo de asserção que são

propriedades que sempre são validas

ao longo do ciclo de um objeto.

17Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 18: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Exemplo de contrato.

Um método que recebe um número

qualquer como entrada e retorna sua

raiz quadrada.

18Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 19: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Pré-condição deve ser verdadeira

antes do método ser invocado.

Pós-condição o compromisso do

método depois de executado.

Neste caso a pré-condição tem como

obrigação passar um número (x)

positivo como argumento e a pós-

condição garantir que este receba

uma aproximação da raiz quadrada

como resultado. 19Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 20: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Com isso é que podemos tomar como

verdade que:

• A violação de uma pré-condição

indica um erro em quem invocou o

método;

• A violação de uma pós-condição

representa um erro no próprio

método.

20Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 21: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Uma propriedade é colocada na pré-

condição ou em uma instrução if no

corpo do método, mas nunca em

ambas. Isso significa que uma

determinada situação deve ficar ou

a cargo do cliente do método ou do

próprio método. 21

Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 22: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Invariante define as propriedades que

devem ser válidas em todos os

estados válidos dos objetos de uma

determinada classe.

A invariante deve ser satisfeita logo

após a criação do objeto de uma

classe, ou seja, seus construtores

devem estabelecer a invariante.

Todo método deve garantir que a

invariante seja preservada após a

sua execução.22

Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 23: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

No exemplo abaixo podemos verificar a

invariante definindo que a variável

nome não poderá ser vazio e que a

variável idade deve ser maior ou

igual a zero.

23Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Design by Contract - DBCDesign by Contract - DBC

Page 24: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

24Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 25: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

1. Visualizamos que os artefatos

desenvolvidos no PU em alguns casos

não transmitem todas as informações

necessárias para o desenvolver.

2. Existem uma grande dificuldade para

incorporar formalismo nas definições

previamente estabelecidas.

25Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Proposta de SoluçãoProposta de Solução

Page 26: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Permitindo que esses dois paradigmas

anteriormente citados sejam

quebrados este trabalho propõe que

incorporemos informações durante o

desenvolvimento dos artefatos no

processo unificado de forma a:

26Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Proposta de SoluçãoProposta de Solução

Page 27: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

1. Diminuir as possíveis falhas na

codificação de sistemas por falta de

clareza na definição dos requisitos.

27Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Proposta de SoluçãoProposta de Solução

2. Diminuir a dificuldade na criação e

incorporação de um processo formal

de definição de requisitos.

Page 28: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

28Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Proposta de SoluçãoProposta de Solução

Page 29: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300AgendaAgenda

29Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 30: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

Com a finalidade de verificar os aspectos levantados neste trabalho e aplicados no desenvolvimento de soluções biométricas, será aplicado em alguns grupos de trabalho o desenvolvimento da solução utilizando diferentes aspectos. Para alguns grupos será disponibilizado a analise de requisitos baseados no PU enquanto para outros grupos será apresentado uma especificação baseada nas informações deste trabalho, isto é, o PU incluindo-se artefatos refinados através do uso de contratos. 30Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

VerificaçãoVerificação

Page 31: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

As seguintes métricas serão aplicadas

para medir o desempenho de cada

grupo:1. Precisão nas estimativas do projeto.2. Qualidade do Produto. 3. Otimização do código produzido.4. Performance do produto final.5. Dificuldade na codificação.6. Volume necessário de testes.

31Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

VerificaçãoVerificação

Page 32: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

32Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

VerificaçãoVerificação

Avaliação de Processos de Software Baseada em MediçõesAugusto Gomes, Kathia Oliveira, Ana Regina Rocha

COPPE/UFRJ - Programa de Engenharia de Sistemas e Computaçã[email protected]

XV Simpósio Brasileiro de Engenharia de Software

Page 33: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300 BibliografiaBibliografia[ADL, 1965] ADLER, F. H. Physiology of the eye. St. Louis, MO:

Mosby, 1965

[DAU, 2004a] DAUGMAN, John. How iris recognition works. IEEE

Trans. CSVT, 2004.

  [DAU 2004b] DAUGMAN, John. Recognizing persons by their iris

patterns. Circuits and Systems for Video Technology, IEEE

Transactions, 2004.

[FER, 1999] FERREIRA, Aurélio B.H.. O Novo Dicionário Aurélio –

Século XXI. Ed. Nova Fronteira: 1999

[FIO, 2000] FIORESE, Mauricio. Uma proposta de Autenticação de

Usuários para o Ensino a Distância. Dissertação apresentada ao

programa de mestrado em Ciência da Computação da

Universidade do Rio Grande do Sul orientada pela Profa. Dra.

Liane M. R. Tarouco. 2002. Disponível em:

http://www.cleber.com.br/ufrgspes.htm33

Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 34: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300 BibliografiaBibliografia[GOL, 1999] GOLLMANN, Dieter. Computer Security. Wiley:1999 –

ISBN 0-471-97844-2

  [MEY, 1992] MEYER, B. Applying “Design by Contract”. 1992.

[MEY, 1997] MEYER, B. Object Oriented Software Constructor.

Prentice Hall, 2 edition. 1997. 

[MEY, 2003] MEYER, B. A Conversation with Bertrand Meyer, Part

II by Bill Venners. 2003

http://www.artima.com/intv/contracts.html

[MIT, 2002] MITCHELL, R. MCKIM, J. Design by Contract, by

Example. Addison-Wesley. 2002.

[SIL, 2005] SILVA Jr, R. D. Design by Contract com JML. JAI 2005.

2005.

34Uma Abordagem de Inclusão de Design by Contract no Processo Unificado

Page 35: Uma abordagem de Inclusão de Design by Contract no Processo Unificado Eduardo Silvestri silvestri@eduardosilvestri.com.br Prof. Orientador Dr. José Maria

CT-300

www.eduardosilvestri.com.brwww.eduardosilvestri.com.br

Eduardo SilvestriEduardo [email protected]@eduardosilvestri.com.br

DúvidasDúvidas

35Uma Abordagem de Inclusão de Design by Contract no Processo Unificado