Formal Specification as High-Level Programming: The ASSL Approach

Abstract

Formal methods aim to build correct software by eliminating both requirements and design flaws. Still, specification languages have a somewhat bad reputation in the software engineering community for being too heavy and difficult to use. This is mainly due to the use of complex mathematical notations often requiring experts in the field. We rely on our experience to show that writing formal specifications can be easier if a specification language is used as a high-level programming language, where the distinction between a specification language and a programming language is somewhat blurred. The Autonomic System Specification Language (ASSL) is a declarative specification language for autonomic systems with well-defined semantics. It implements modern concepts and constructs such as inheritance, modularity, type system, and parameterization. Specifications written in ASSL present a view of the system under consideration, where specification and design are intertwined.

References

  1. 1.
    Hinchey, M., Bowen, J.P., Vassev, E.: Formal methods. In: Encyclopedia of Software Engineering, pp. 308–320. Taylor & Francis, London (2010) Google Scholar
  2. 2.
    Vassev, E.: Towards a framework for specification and code generation of autonomic systems. PhD Thesis, Computer Science and Software Engineering Department, Concordia University, Quebec, Canada (2008) Google Scholar
  3. 3.
    Vassev, E.: ASSL: Autonomic System Specification Language—A Framework for Specification and Code Generation of Autonomic Systems. LAP Lambert Academic Publishing, Saarbrücken (2009) Google Scholar
  4. 4.
    Murch, R.: Autonomic Computing: On Demand Series. IBM Press, Indianapolis (2004) Google Scholar
  5. 5.
    Knuth, D.E.: Backus normal form vs. Backus Naur form. Commun. ACM 7(12), 735–773 (1964) CrossRefGoogle Scholar
  6. 6.
    Srivas, M., Miller, S.: Formal verification of the AAMP5 microprocessor: A case study in the industrial use of formal methods. In: Proceedings of the Workshop on Industrial-Strength Formal Specification Techniques (WIFT ’95), pp. 2–16. IEEE Computer Society, Washington (1995) Google Scholar
  7. 7.
    Foord, M.: The future of programming: How high level can we get? The website, technical blog and projects of Michael Foord (2009). http://www.voidspace.org.uk/python/articles/object_shaped_future.shtml. Cited 30 Jan 2012
  8. 8.
    Blaha, M., Rumbaugh, J.: Object-Oriented Modeling and Design with UML, 2nd edn. Pearson, Prentice Hall, New York (2005) Google Scholar
  9. 9.
    Martin, R.C.: Granularity. C++ Rep. 8(10), 57–62 (1996) Google Scholar
  10. 10.
    Vassev, E., Hinchey, M.: Software verification of autonomic systems developed with ASSL. In: Proceedings of the 16th Monterey Workshop on Modeling, Development and Verification of Adaptive Computer Systems: The Grand Challenge for Robotic Software (Monterey2010), Microsoft Research Center, Redmond, USA, pp. 1–16. Springer, Berlin (2010). Google Scholar
  11. 11.
    Vassev, E.: Code generation for autonomic systems with ASSL. In: Software Engineering Research, Management and Applications—Management and Applications. Studies in Computational Intelligence, vol. 296, pp. 1–15. Springer, Berlin (2010) Google Scholar
  12. 12.
    Truszkowski, W., Hinchey, M., Rash, J., Rouff, C.: NASA’s swarm missions: The challenge of building autonomous software. IT Prof. 6(5), 47–52 (2004) CrossRefGoogle Scholar
  13. 13.
    Vassev, E., Hinchey, M.: ASSL specification and code generation of self-healing behavior for NASA swarm-based systems. In: Proceedings of the 6th IEEE International Workshop on Engineering of Autonomic and Autonomous Systems (EASe’09), pp. 77–86. IEEE Computer Society, Washington (2009) CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London 2012

Authors and Affiliations

  1. 1.Lero–the Irish Software Engineering Research CentreUniversity of LimerickLimerickIreland

Personalised recommendations