Formale Konsistenzsicherung in informellen Software-Spezifikationen

Zusammenfassung.Die Spezifikation ist die Grundlage für den Erfolg eines Software-Projekts. Der Praktiker konzentriert sich hier i.d.R. auf die größte Herausforderung: die vollständige und inhaltlich korrekte Erfassung aller Anforderungen an das zu erstellende Software-System. Dass Spezifikationen für große Systeme aus vielen Dokumenten verschiedener Ausprägung in Form und Inhalt bestehen, tritt dabei meist in den Hintergrund. Ihre Konsistenz wird meist mit hohem manuellem Aufwand sichergestellt. Der Erstellung formal korrekter und konsistenter Software-Spezifikationen widmen sich zahlreiche theoretische Arbeiten. In der Praxis sind sie jedoch meist nicht mit der gewohnten Arbeitsweise vereinbar. In diesem Artikel stellen wir einen Mittelweg vor: Wir nutzen die Spezifikationsbausteine von sd&m für die Spezifikation, die als Ergebnisse Dokumente in natürlicher Sprache sowie semi-formale Darstellungen umfasst. Für Spezifikationen, die nach diesen Bausteinen erstellt wurden, definieren wir Konsistenz durch formale zeitbehaftete Konsistenzregeln. Ein von uns entwickeltes Auswertungswerkzeug ermittelt Inkonsistenzen präzise. Unterstützt von einem solchen Werkzeug kann sich der Software-Ingenieur wieder ganz auf das Hauptanliegen der Spezifikation konzentrieren: ihre inhaltliche Korrektheit und Vollständigkeit.Abstract.Specification is the base for the success of a software project. Usually, practitioners concentrate on completely and correctly capturing all requirements for the specified system. In practice, a serious problem often fails to gain attention: Specifications for large systems consist of many documents with heterogeneous structure and content. Their consistency is often achieved by time-consuming manual effort. On the other hand, many theoretical approaches aim at formally correct and consistent software specifications. In practice, however, these approaches fail to be integrated into the every day work of software engineers. This article is located at the boundary between theory and practice: For specifying software we use analysis modules developed at sd&m, the results of which are documents in natural language or semi-formal documents. For a specification using our analysis modules we define consistency via formal temporal consistency rules. Our newly developed tool pinpoints inconsistencies precisely. Supported by our tool, software designers can concentrate on their actual work: the technical correctness and completeness of a specification.

[1]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[2]  Dennis de Champeaux Subproblem finder and instance checker, two cooperating modules for theorem provers , 1986, JACM.

[3]  Maria Amélia Pacheco e Silva,et al.  Dynamic Integrity Constraints Definition and Enforcement in Databases: A Classification Framework , 1997, IICIS.

[4]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[5]  Peyton Jones,et al.  Haskell 98 language and libraries : the revised report , 2003 .

[6]  Jan Scheffczyk,et al.  Consistent document engineering , 2004 .

[7]  Alistair Cockburn,et al.  Agile Software Development , 2001 .

[8]  Tom DeMarco,et al.  Structured Analysis and System Specification , 1978 .

[9]  Serge Abiteboul,et al.  Temporal versus first-order logic to query temporal databases , 1996, PODS.

[10]  Licia Capra,et al.  xlinkit: a consistency checking and smart link generation service , 2002, TOIT.

[11]  Frank Wolter,et al.  Decidable fragment of first-order temporal logics , 2000, Ann. Pure Appl. Log..

[12]  Philippe Kruchten,et al.  The Rational Unified Process: An Introduction , 1998 .

[13]  Lothar Schmitz,et al.  Efficient (In-)Consistency Management for Heterogeneous Repositories , 2003, SNPD.

[14]  Johan Nordlander,et al.  Reactive Objects and Functional Programming , 1999 .

[15]  Colin Runciman,et al.  Haskell and XML: generic combinators or type-based translation? , 1999, ICFP '99.

[16]  Anne Doucet,et al.  Thémis: A database programming language handling integrity constraints , 1995, The VLDB Journal.

[17]  Anthony Finkelstein,et al.  A Foolish Consistency: Technical Challenges in Consistency Management , 2000, DEXA.

[18]  Anthony Finkelsteiin A Foolish Consistency: Technical Challenges in Consistency Management , 2000 .

[19]  Suzanne Robertson,et al.  Mastering the Requirements Process , 1999 .

[20]  Markus Roggenbach,et al.  Towards Trustworthy Specifications I: Consistency Checks , 2001, WADT.

[21]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[22]  Dan Suciu,et al.  Verifying Integrity Constraints on Web Sites , 1999, IJCAI.

[23]  Martin Gogolla,et al.  Partially Ordered Sorts in Algebraic Specifications , 1984, CAAP.

[24]  Wenfei Fan,et al.  Path Constraints in Semistructured Databases , 2000, J. Comput. Syst. Sci..

[25]  F. Wolter,et al.  Fragments of first-order temporal logics , 2000 .

[26]  Bashar Nuseibeh,et al.  Leveraging Inconsistency in Software Development , 2000, Computer.

[27]  Peter D. Mosses,et al.  CASL: the Common Algebraic Specification Language , 2002, Theor. Comput. Sci..

[28]  Ivar Jacobson,et al.  Unified Modeling Language , 2020, Definitions.

[29]  Bryan Ratcliff Introducing specification using Z : a practical case study approach / Bryan Ratcliff , 1994 .

[30]  Jennifer Widom,et al.  Constraint checking with partial information , 1994, PODS.

[31]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[32]  Martin Gogolla,et al.  An Extension of OCL with Temporal Logic , 2002 .

[33]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .