SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
SPEC#



        João Oliveira
        Joel Carvalho
O que é?
 Metodologia de desenvolvimento de software.
 M t d l i  d  d          l i    t  d   ft
 Definição de contratos (regras) associado ao 
 código.
 Contratos são uma forma de especificação que 
                                 p      ç q
 garantem a sua validade.
 Ferramentas: Eiffel, JML, SPEC#, etc…


                                                 3
Imagem facultada pelo Prof. Simão Melo de Sousa   4
Origem: 
 Criado pela Microsoft.
 Criado pela Microsoft
 Extensão do C#.
 Constituído por:
 C tit íd  
 ▪ Compilador (Type Checking).
 ▪ V ifi d  Di â i  (R ti )
   Verificador Dinâmico (Runtime).
 ▪ Prover Estático (Boogie).

Motivação:
 Desenvolvimento Formal.
 Desenvolvimento Formal
                                     5
Anotações (Pré, Pós Condições e Invariantes).

Tipos não Nulos.

Geração de Excepções sobre as anotações. 
    ç          pç                  ç




                                                6
Imagem retirada da Apresentação “VSTTE‐SpecSharp.ppt”   7
Código em SPEC#                                                                Código em C#
    g                                                                              g




                                                                                              8

Mais conteúdo relacionado

Semelhante a O que é SPEC# e suas principais características

Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentDaniel Wildt
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesJefferson Moreira
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareMarcelo Fleury
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeEder Magalhães
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)elliando dias
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoraçãoguest23778e
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesPaulo César M Jeveaux
 
Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro LocawebFabio Akita
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb CuritibaFabio Akita
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkGiuseppe Lopes
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosVitor Silva
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareRobson Silva Espig
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfHoctairBernardino
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSThiago Rodrigues
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwarePablo Dall'Oglio
 

Semelhante a O que é SPEC# e suas principais características (20)

Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean DevelopmentCriando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
Criando um ambiente ágil! Lições aprendidas em XP, Scrum e Lean Development
 
IC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas DoentesIC Cuidando de Sistemas Doentes
IC Cuidando de Sistemas Doentes
 
Segurança no Desenvolvimento de Software
Segurança no Desenvolvimento de SoftwareSegurança no Desenvolvimento de Software
Segurança no Desenvolvimento de Software
 
Desenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o ForgeDesenvolva uma app Java web em poucos passos, com o Forge
Desenvolva uma app Java web em poucos passos, com o Forge
 
Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)Gestão de Projeto de Desenvolvimento Agil(XP)
Gestão de Projeto de Desenvolvimento Agil(XP)
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Testes e Refatoração
Testes e RefatoraçãoTestes e Refatoração
Testes e Refatoração
 
Testes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de TestesTestes de Software & Ferramentas de Testes
Testes de Software & Ferramentas de Testes
 
Encontro Locaweb
Encontro  LocawebEncontro  Locaweb
Encontro Locaweb
 
Encontro Locaweb Curitiba
Encontro  Locaweb CuritibaEncontro  Locaweb Curitiba
Encontro Locaweb Curitiba
 
Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6Uma Olhada no Netbeans 6
Uma Olhada no Netbeans 6
 
Novidades no Netbeans 6
Novidades no Netbeans 6Novidades no Netbeans 6
Novidades no Netbeans 6
 
Não deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do frameworkNão deixe seu projeto só nas mãos do framework
Não deixe seu projeto só nas mãos do framework
 
#Moving br workshop
#Moving br workshop#Moving br workshop
#Moving br workshop
 
Desenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes UnitáriosDesenvolvimento em .Net - Testes Unitários
Desenvolvimento em .Net - Testes Unitários
 
Paradigmas De Engenharia De Software
Paradigmas De Engenharia De SoftwareParadigmas De Engenharia De Software
Paradigmas De Engenharia De Software
 
Aula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdfAula07_TesteSoftware_Parte1_semResposta.pdf
Aula07_TesteSoftware_Parte1_semResposta.pdf
 
Depurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSSDepurando aplicações PHP like a BOSS
Depurando aplicações PHP like a BOSS
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 

Mais de Joel Carvalho

Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Joel Carvalho
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaJoel Carvalho
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação MestradoJoel Carvalho
 
Verificação de Sistemas de Tempo Real
Verificação de Sistemas de Tempo RealVerificação de Sistemas de Tempo Real
Verificação de Sistemas de Tempo RealJoel Carvalho
 
Verificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALVerificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALJoel Carvalho
 
Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Joel Carvalho
 
Apresentação Dissertação Mestrado
Apresentação Dissertação MestradoApresentação Dissertação Mestrado
Apresentação Dissertação MestradoJoel Carvalho
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Joel Carvalho
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Joel Carvalho
 
Minimização Autômatos
Minimização AutômatosMinimização Autômatos
Minimização AutômatosJoel Carvalho
 
Car Free Apresentacao
Car Free ApresentacaoCar Free Apresentacao
Car Free ApresentacaoJoel Carvalho
 

Mais de Joel Carvalho (20)

Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
 
Relatório de Projecto de Licenciatura
Relatório de Projecto de LicenciaturaRelatório de Projecto de Licenciatura
Relatório de Projecto de Licenciatura
 
Dissertação Mestrado
Dissertação MestradoDissertação Mestrado
Dissertação Mestrado
 
Tutorial de Uppaal
Tutorial de UppaalTutorial de Uppaal
Tutorial de Uppaal
 
Verificação de Sistemas de Tempo Real
Verificação de Sistemas de Tempo RealVerificação de Sistemas de Tempo Real
Verificação de Sistemas de Tempo Real
 
Verificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAALVerificação Automatizada de STR com UPPAAL
Verificação Automatizada de STR com UPPAAL
 
Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)Apoio ao Projecto DSAS (CET, 12º)
Apoio ao Projecto DSAS (CET, 12º)
 
Apresentação Dissertação Mestrado
Apresentação Dissertação MestradoApresentação Dissertação Mestrado
Apresentação Dissertação Mestrado
 
Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)Arquitectura de Computadores 4 (EFA, 9º ano)
Arquitectura de Computadores 4 (EFA, 9º ano)
 
Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)Arquitectura de Computadores 3 (EFA, 9º ano)
Arquitectura de Computadores 3 (EFA, 9º ano)
 
Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)Arquitectura de Computadores 2 (EFA, 9º ano)
Arquitectura de Computadores 2 (EFA, 9º ano)
 
Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)Arquitectura de Computadores 1 (EFA, 9º ano)
Arquitectura de Computadores 1 (EFA, 9º ano)
 
Minimização Autômatos
Minimização AutômatosMinimização Autômatos
Minimização Autômatos
 
carFree2
carFree2carFree2
carFree2
 
Car Free Apresentacao
Car Free ApresentacaoCar Free Apresentacao
Car Free Apresentacao
 
Sensor Networks
Sensor NetworksSensor Networks
Sensor Networks
 
Prog Din08
Prog Din08Prog Din08
Prog Din08
 

O que é SPEC# e suas principais características