Upload
internet
View
105
Download
0
Embed Size (px)
Citation preview
Uma abordagem de Inclusão de Design
by Contract no Processo Unificado
Eduardo Silvestri
Prof. Orientador
Dr. José Maria Parente de Oliveira
1
CT-300AgendaAgenda
2Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
CT-300AgendaAgenda
3Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
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
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
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
CT-300AgendaAgenda
7Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
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
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
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
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
CT-300AgendaAgenda
12Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
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
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
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
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
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
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
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
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
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
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
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
CT-300AgendaAgenda
24Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
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
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
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.
CT-300
28Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
Proposta de SoluçãoProposta de Solução
CT-300AgendaAgenda
29Uma Abordagem de Inclusão de Design by Contract no Processo Unificado
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
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
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
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
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
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