Det är allmänt accepterat att programvaruspecifikationer är till stor nytta för mer rigorös mjukvaruutveckling. De kan användas för formell verifiering och automatiserad testning. De är nödvändiga för exakt programförståelse. Men trots att specifikationerna är användbara finns de ofta inte i praktiken. Detta dokument beskriver ett nytt sätt att automatiskt sluta specifikationer från kod. Med tanke på en modifier-metod och en uppsättning observatörsmetoder, kör vi först symboliskt modifier-metoden för att få en uppsättning körningsvägar. Därefter sammanfattas villkoren och sluttillstånden för vägarna med observatörsmetoder. Resultatet är en trolig specifikation av modifier metoden som är kompakt och människa-förståelig. Den inferred specifikationen kan undersökas av användaren, används som indata till programverifieringssystem, eller som indata för testgenereringsverktyg för validering, Vi implementerade tekniken för.NET-program i ett verktyg, som kallas Axiom Meister. Vår preliminära erfarenhet har varit lovande. Vi kunde härleda koncisa specifikationer för basklasser av.NET-plattformen och fann brister i utformningen av ett nytt bibliotek.
Axiom Meister-verktyget REF utvecklat hos Microsoft Research använder symboliskt utförande för att hitta rutinkontrakt för.NET-program.
Discovering Likely Method Specifications
{'venue': 'ICFEM', 'journal': None, 'mag_field_of_study': ['Computer Science']}