skip to main content
Skip header Section
Software Abstractions: Logic, Language, and AnalysisApril 2006
Publisher:
  • The MIT Press
ISBN:978-0-262-10114-1
Published:01 April 2006
Skip Bibliometrics Section
Bibliometrics
Abstract

No abstract available.

Cited By

  1. ACM
    Wu J, Wei L, Jiang Y, Cheung S, Ren L and Xu C (2023). Programming by Example Made Easy, ACM Transactions on Software Engineering and Methodology, 33:1, (1-36), Online publication date: 31-Jan-2024.
  2. Cornejo C, Regis G, Aguirre N and Frias M (2023). A Study of the Electrum and DynAlloy Dynamic Behavior Notations, IEEE Transactions on Software Engineering, 49:11, (4946-4963), Online publication date: 1-Nov-2023.
  3. ACM
    Baldor K, Wang X and Niu J Thorium: A Language for Bounded Verification of Dynamic Reactive Objects Proceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems, (1-13)
  4. Ringert J and Sullivan A Abstract Alloy Instances Formal Methods, (364-382)
  5. Catano N (2023). Program Synthesis for Cyber-Resilience, IEEE Transactions on Software Engineering, 49:3, (962-972), Online publication date: 1-Mar-2023.
  6. Noble J, Streader D, Gariano I and Samarakoon M More Programming Than Programming: Teaching Formal Methods in a Software Engineering Programme NASA Formal Methods, (431-450)
  7. ACM
    Jovanovic A and Sullivan A Towards automated input generation for sketching alloy models Proceedings of the IEEE/ACM 10th International Conference on Formal Methods in Software Engineering, (58-68)
  8. Brida S, Regis G, Zheng G, Bagheri H, Nguyen T, Aguirre N and Frias M BeAFix Proceedings of the 36th IEEE/ACM International Conference on Automated Software Engineering, (1213-1217)
  9. Wang W, Yi P, Khurshid S and Marinov D Initial Results on Counting Test Orders for Order-Dependent Flaky Tests Using Alloy Testing Software and Systems, (123-130)
  10. ACM
    Zhang T, Szefer J and Lee R Practical and Scalable Security Verification of Secure Architectures Proceedings of the 10th International Workshop on Hardware and Architectural Support for Security and Privacy, (1-9)
  11. ACM
    Zhang C, Wagner R, Orvalho P, Garlan D, Manquinho V, Martins R and Kang E AlloyMax: bringing maximum satisfaction to relational specifications Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (155-167)
  12. Cristiá M and Rossi G (2021). Automated Reasoning with Restricted Intensional Sets, Journal of Automated Reasoning, 65:6, (809-890), Online publication date: 1-Aug-2021.
  13. Pol’la M, Buccella A and Cechich A (2021). Analysis of variability models: a systematic literature review, Software and Systems Modeling (SoSyM), 20:4, (1043-1077), Online publication date: 1-Aug-2021.
  14. Brida S, Regis G, Zheng G, Bagheri H, Nguyen T, Aguirre N and Frias M Artifact of bounded exhaustive search of alloy specification repairs Proceedings of the 43rd International Conference on Software Engineering: Companion Proceedings, (209-210)
  15. Molina F, Ponzio P, Aguirre N and Frias M EvoSpex Proceedings of the 43rd International Conference on Software Engineering, (1223-1235)
  16. Brida S, Regis G, Zheng G, Bagheri H, Nguyen T, Aguirre N and Frias M Bounded Exhaustive Search of Alloy Specification Repairs Proceedings of the 43rd International Conference on Software Engineering, (1135-1147)
  17. ACM
    Cornejo C SAT-based arithmetic support for alloy Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, (1161-1163)
  18. Rouland Q, Hamid B and Jaskolka J Reusable Formal Models for Threat Specification, Detection, and Treatment Reuse in Emerging Software Engineering Practices, (52-68)
  19. ACM
    Kang E Robustness analysis for secure software design Proceedings of the 3rd ACM SIGSOFT International Workshop on Software Security from Design to Deployment, (19-25)
  20. ACM
    Ringert J and Wali S Semantic comparisons of Alloy models Proceedings of the 23rd ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, (165-174)
  21. ACM
    Griffin J, Lesani M, Shadab N and Yin X (2020). TLC: temporal logic of distributed components, Proceedings of the ACM on Programming Languages, 4:ICFP, (1-30), Online publication date: 2-Aug-2020.
  22. ACM
    Bagheri H, Kang E and Mansoor N Synthesis of assurance cases for software certification Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering: New Ideas and Emerging Results, (61-64)
  23. ACM
    Yuan X and Yang J Effective Concurrency Testing for Distributed Systems Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems, (1141-1156)
  24. Cristiá M and Rossi G (2019). Solving Quantifier-Free First-Order Constraints Over Finite Sets and Binary Relations, Journal of Automated Reasoning, 64:2, (295-330), Online publication date: 1-Feb-2020.
  25. Godio A, Bengolea V, Ponzio P, Aguirre N and Frias M Efficient test generation guided by field coverage criteria Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering, (91-101)
  26. Sullivan A, Marinov D and Khurshid S Solution Enumeration Abstraction: A Modeling Idiom to Enhance a Lightweight Formal Method Formal Methods and Software Engineering, (336-352)
  27. ACM
    Lara J, Guerra E, Ruscio D, Rocco J, Cuadrado J, Iovino L and Pierantonio A (2019). Automated Reuse of Model Transformations through Typing Requirements Models, ACM Transactions on Software Engineering and Methodology, 28:4, (1-62), Online publication date: 12-Oct-2019.
  28. Gallardo M and Panizo L Teaching Formal Methods: From Software in the Small to Software in the Large Formal Methods Teaching, (97-110)
  29. Gómez A, Rodríguez R, Cambronero M and Valero V (2019). Profiling the publish/subscribe paradigm for automated analysis using colored Petri nets, Software and Systems Modeling (SoSyM), 18:5, (2973-3003), Online publication date: 1-Oct-2019.
  30. Balaban M and Maraee A (2019). Removing redundant multiplicity constraints in UML class models, Software and Systems Modeling (SoSyM), 18:4, (2717-2751), Online publication date: 1-Aug-2019.
  31. Bittman D, Miller E and Alvaro P Co-evolving tracing and fault injection with box of pain Proceedings of the 11th USENIX Conference on Hot Topics in Cloud Computing, (22-22)
  32. Bocić I, Bultan T and Rosner N (2019). Inductive verification of data model invariants in web applications using first-order logic, Automated Software Engineering, 26:2, (379-416), Online publication date: 1-Jun-2019.
  33. Hua J, Zhang Y, Zhang Y and Khurshid S (2019). EdSketch, International Journal on Software Tools for Technology Transfer (STTT), 21:3, (249-265), Online publication date: 1-Jun-2019.
  34. Kember M, Tran L, Gao G and Day N Extracting counterexamples from transitive-closure-based model checking Proceedings of the 11th International Workshop on Modelling in Software Engineerings, (47-54)
  35. Molina F, Degiovanni R, Ponzio P, Regis G, Aguirre N and Frias M Training binary classifiers as data structure invariants Proceedings of the 41st International Conference on Software Engineering, (759-770)
  36. Zhu C, Legunsen O, Shi A and Gligoric M A framework for checking regression test selection tools Proceedings of the 41st International Conference on Software Engineering, (430-441)
  37. ACM
    Bjørner D (2019). Domain Analysis and Description Principles, Techniques, and Modelling Languages, ACM Transactions on Software Engineering and Methodology, 28:2, (1-67), Online publication date: 9-Apr-2019.
  38. Guo J, Liang J, Shi K, Yang D, Zhang J, Czarnecki K, Ganesh V and Yu H (2019). SMTIBEA, Software and Systems Modeling (SoSyM), 18:2, (1447-1466), Online publication date: 1-Apr-2019.
  39. ACM
    Taube M, Losa G, McMillan K, Padon O, Sagiv M, Shoham S, Wilcox J and Woos D (2018). Modularity for decidability of deductive verification with applications to distributed systems, ACM SIGPLAN Notices, 53:4, (662-677), Online publication date: 2-Dec-2018.
  40. Uva M, Ponzio P, Regis G, Aguirre N and Frias M (2018). Automated workarounds from Java program specifications based on SAT solving, International Journal on Software Tools for Technology Transfer (STTT), 20:6, (665-688), Online publication date: 1-Nov-2018.
  41. ACM
    Mansoor N, Saddler J, Silva B, Bagheri H, Cohen M and Farritor S Modeling and testing a family of surgical robots: an experience report Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (785-790)
  42. ACM
    He X and Hu Z Putback-based bidirectional model transformations Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, (434-444)
  43. ACM
    Harkes D, van Chastelet E and Visser E Migrating business logic to an incremental computing DSL: a case study Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, (83-96)
  44. ACM
    Guerra E, de Lara J, Chechik M and Salay R Analysing meta-model product lines Proceedings of the 11th ACM SIGPLAN International Conference on Software Language Engineering, (160-173)
  45. ACM
    Weckesser M, Lochau M, Ries M and Schürr A Mathematical Programming for Anomaly Analysis of Clafer Models Proceedings of the 21th ACM/IEEE International Conference on Model Driven Engineering Languages and Systems, (34-44)
  46. Hashmi M, Governatori G, Lam H and Wynn M (2018). Are we done with business process compliance, Knowledge and Information Systems, 57:1, (79-133), Online publication date: 1-Oct-2018.
  47. Weber P, Filho J, Bordbar B, Lee M, Litchfield I and Backman R (2017). Automated conflict detection between medical care pathways, Journal of Software: Evolution and Process, 30:7, Online publication date: 22-Jul-2018.
  48. Hilken F, Gogolla M, Burgueño L and Vallecillo A (2018). Testing models and model transformations using classifying terms, Software and Systems Modeling (SoSyM), 17:3, (885-912), Online publication date: 1-Jul-2018.
  49. Maoz S and Ringert J (2018). A framework for relating syntactic and semantic model differences, Software and Systems Modeling (SoSyM), 17:3, (753-777), Online publication date: 1-Jul-2018.
  50. ACM
    Taube M, Losa G, McMillan K, Padon O, Sagiv M, Shoham S, Wilcox J and Woos D Modularity for decidability of deductive verification with applications to distributed systems Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation, (662-677)
  51. ACM
    Barboza T, Santoro F and Baião F Automatic Validation of Knowledge-intensive Process Models through Alloy Proceedings of the XIV Brazilian Symposium on Information Systems, (1-8)
  52. Abdulaziz M, Norrish M and Gretton C (2018). Formally Verified Algorithms for Upper-Bounding State Space Diameters, Journal of Automated Reasoning, 61:1-4, (485-520), Online publication date: 1-Jun-2018.
  53. ACM
    Molina F, Degiovanni R, Regis G, Castro P, Aguirre N and Frias M From operational to declarative specifications using a genetic algorithm Proceedings of the 11th International Workshop on Search-Based Software Testing, (39-42)
  54. ACM
    Dini N, Yelen C, Alrmaih Z, Kulkarni A and Khurshid S Korat-API Proceedings of the 33rd Annual ACM Symposium on Applied Computing, (1934-1943)
  55. Belyaev K, Sun W, Ray I and Ray I (2018). On the design and analysis of protocols for Personal Health Record storage on Personal Data Server devices, Future Generation Computer Systems, 80:C, (467-482), Online publication date: 1-Mar-2018.
  56. Carvalho V and Almeida J (2018). Toward a well-founded theory for multi-level conceptual modeling, Software and Systems Modeling (SoSyM), 17:1, (205-231), Online publication date: 1-Feb-2018.
  57. ACM
    Hückelheim J, Luo Z, Luporini F, Kukreja N, Lange M, Gorman G, Siegel S, Dwyer M and Hovland P Towards Self-Verification in Finite Difference Code Generation Proceedings of the First International Workshop on Software Correctness for HPC Applications, (42-49)
  58. ACM
    Padon O, Losa G, Sagiv M and Shoham S (2017). Paxos made EPR: decidable reasoning about distributed protocols, Proceedings of the ACM on Programming Languages, 1:OOPSLA, (1-31), Online publication date: 12-Oct-2017.
  59. ACM
    Celik A, Pai S, Khurshid S and Gligoric M (2017). Bounded exhaustive test-input generation on GPUs, Proceedings of the ACM on Programming Languages, 1:OOPSLA, (1-25), Online publication date: 12-Oct-2017.
  60. Maoz S, Pomerantz N, Ringert J and Shalom R Why is my component and connector views specification unsatisfiable? Proceedings of the ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems, (134-144)
  61. ACM
    Bornholt J and Torlak E (2017). Synthesizing memory models from framework sketches and Litmus tests, ACM SIGPLAN Notices, 52:6, (467-481), Online publication date: 14-Sep-2017.
  62. ACM
    Regis G, Cornejo C, Gutiérrez Brida S, Politano M, Raverta F, Ponzio P, Aguirre N, Galeotti J and Frias M DynAlloy analyzer: a tool for the specification and analysis of alloy models with dynamic behaviour Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, (969-973)
  63. ACM
    Hua J and Khurshid S EdSketch: execution-driven sketching for Java Proceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of Software, (162-171)
  64. Giammarco K, Giles K and Whitcomb C Comprehensive use case scenario generation: An approach for modeling system of systems behaviors 2017 12th System of Systems Engineering Conference (SoSE), (1-6)
  65. ACM
    Bornholt J and Torlak E Synthesizing memory models from framework sketches and Litmus tests Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation, (467-481)
  66. van den Berghe A, Yskout K, Joosen W and Scandariato R A model for provably secure software design Proceedings of the 5th International FME Workshop on Formal Methods in Software Engineering, (3-9)
  67. Sen S, Ribeiro M, de Melo Minardi R, Meira W and Nygård M Portinari Proceedings of the 39th International Conference on Software Engineering: Software Engineering in Society Track, (37-46)
  68. ACM
    Lara J and Guerra E (2017). A Posteriori Typing for Model-Driven Engineering, ACM Transactions on Software Engineering and Methodology, 25:4, (1-60), Online publication date: 5-May-2017.
  69. Pinto A and Sangiovanni Vincentelli A (2017). CSL4P, Systems Engineering, 20:3, (220-234), Online publication date: 1-May-2017.
  70. Uva M, Ponzio P, Regis G, Aguirre N and Frias M Automated Workarounds from Java Program Specifications Based on SAT Solving Proceedings of the 20th International Conference on Fundamental Approaches to Software Engineering - Volume 10202, (356-373)
  71. ACM
    Kim H, Kang E, Lee E and Broman D A Toolkit for Construction of Authorization Service Infrastructure for the Internet of Things Proceedings of the Second International Conference on Internet-of-Things Design and Implementation, (147-158)
  72. ACM
    Gambi A, Mayr-Dorn C and Zeller A Model-based testing of end-user collaboration intensive systems Proceedings of the Symposium on Applied Computing, (1213-1218)
  73. ACM
    Rocchetto M and Tippenhauer N Towards Formal Security Analysis of Industrial Control Systems Proceedings of the 2017 ACM on Asia Conference on Computer and Communications Security, (114-126)
  74. Baresi L, Ghezzi C, Ma X and Manna V (2017). Efficient Dynamic Updates of Distributed Components Through Version Consistency, IEEE Transactions on Software Engineering, 43:4, (340-358), Online publication date: 1-Apr-2017.
  75. ACM
    Lamba H, Glazier T, Cámara J, Schmerl B, Garlan D and Pfeffer J Model-based Cluster Analysis for Identifying Suspicious Activity Sequences in Software Proceedings of the 3rd ACM on International Workshop on Security And Privacy Analytics, (17-22)
  76. Gonzalez-de-Aledo P, Przigoda N, Wille R, Drechsler R and Sanchez P (2017). Towards a Verification Flow Across Abstraction Levels Verifying Implementations Against Their Formal Specification, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, 36:3, (475-488), Online publication date: 1-Mar-2017.
  77. Bjørner D (2017). Manifest domains: analysis and description, Formal Aspects of Computing, 29:2, (175-225), Online publication date: 1-Mar-2017.
  78. ACM
    Braione P, Denaro G and Pezzè M JBSE: a symbolic executor for Java programs with complex heap inputs Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (1018-1022)
  79. ACM
    Kang E, Milicevic A and Jackson D Multi-representational security analysis Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (181-192)
  80. ACM
    Ponzio P, Aguirre N, Frias M and Visser W Field-exhaustive testing Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, (908-919)
  81. ACM
    Batot E and Sahraoui H A generic framework for model-set selection for the unification of testing and learning MDE tasks Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, (374-384)
  82. ACM
    Przigoda N, Wille R and Drechsler R Ground setting properties for an efficient translation of OCL in SMT-based model finding Proceedings of the ACM/IEEE 19th International Conference on Model Driven Engineering Languages and Systems, (261-271)
  83. Mokni A, Urtado C, Vauttier S, Huchard M and Zhang H (2016). A formal approach for managing component-based architecture evolution, Science of Computer Programming, 127:C, (24-49), Online publication date: 1-Oct-2016.
  84. Xie M, Huang W, Yang L and Yang Y (2016). VOAuth, Computers in Industry, 82:C, (151-159), Online publication date: 1-Oct-2016.
  85. Neves R, Madeira A, Martins M and Barbosa L (2016). Proof theory for hybrid(ised) logics, Science of Computer Programming, 126:C, (73-93), Online publication date: 15-Sep-2016.
  86. ACM
    Grewe S, Erdweg S, Raulf M and Mezini M Exploration of language specifications by compilation to first-order logic Proceedings of the 18th International Symposium on Principles and Practice of Declarative Programming, (104-117)
  87. ACM
    Bocić I and Bultan T Finding access control bugs in web applications with CanCheck Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering, (155-166)
  88. ACM
    Padhi S, Sharma R and Millstein T (2016). Data-driven precondition inference with learned features, ACM SIGPLAN Notices, 51:6, (42-56), Online publication date: 1-Aug-2016.
  89. Kehrer T, Taentzer G, Rindt M and Kelter U Automatically Deriving the Specification of Model Editing Operations from Meta-Models Proceedings of the 9th International Conference on Theory and Practice of Model Transformations - Volume 9765, (173-188)
  90. ACM
    Padhi S, Sharma R and Millstein T Data-driven precondition inference with learned features Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation, (42-56)
  91. Kossak F and Mashkoor A How to Select the Suitable Formal Method forźan Industrial Application Proceedings of the 5th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z - Volume 9675, (213-228)
  92. ACM
    Day N and Vakili A Representing hierarchical state machine models in SMT-LIB Proceedings of the 8th International Workshop on Modeling in Software Engineering, (67-73)
  93. ACM
    Near J and Jackson D Finding security bugs in web applications using a catalog of access control patterns Proceedings of the 38th International Conference on Software Engineering, (947-958)
  94. ACM
    Schmerl B, Gennari J, Cámara J and Garlan D Raindroid Proceedings of the Symposium and Bootcamp on the Science of Security, (115-117)
  95. Córdoba-Sánchez I and de Lara J (2016). Ann, Computer Languages, Systems and Structures, 45:C, (164-190), Online publication date: 1-Apr-2016.
  96. Vekris D, Lang F, Dima C and Mateescu R (2016). Verification of specifications using CADP, Formal Aspects of Computing, 28:1, (145-178), Online publication date: 1-Mar-2016.
  97. Reps T and Thakur A Automating Abstract Interpretation Proceedings of the 17th International Conference on Verification, Model Checking, and Abstract Interpretation - Volume 9583, (3-40)
  98. Rafe V and Hosseinpouri R (2015). A security framework for developing service-oriented software architectures, Security and Communication Networks, 8:17, (2957-2972), Online publication date: 25-Nov-2015.
  99. Bocić I and Bultan T Efficient data model verification with many-sorted logic Proceedings of the 30th IEEE/ACM International Conference on Automated Software Engineering, (42-52)
  100. Gogolla M, Vallecillo A, Burgueño L and Hilken F Employing classifying terms for testing model transformations Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (312-321)
  101. Przigoda N, Hilken C, Wille R, Peleska J and Drechsler R Checking concurrent behavior in UML/OCL models Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (176-185)
  102. Soltana G, Sannier N, Sabetzadeh M and Briand L A model-based framework for probabilistic simulation of legal policies Proceedings of the 18th International Conference on Model Driven Engineering Languages and Systems, (70-79)
  103. ACM
    Nijjar J, Bocić I and Bultan T (2015). Data Model Property Inference, Verification, and Repair for Web Applications, ACM Transactions on Software Engineering and Methodology, 24:4, (1-27), Online publication date: 2-Sep-2015.
  104. ACM
    Braione P, Denaro G and Pezzè M Symbolic execution of programs with heap inputs Proceedings of the 2015 10th Joint Meeting on Foundations of Software Engineering, (602-613)
  105. Marcozzi M, Vanhoof W and Hainaut J (2015). Relational symbolic execution of SQL code for unit testing of database programs, Science of Computer Programming, 105:C, (44-72), Online publication date: 1-Jul-2015.
  106. ACM
    Nelson T, Ferguson A, Yu D, Fonseca R and Krishnamurthi S Exodus Proceedings of the 1st ACM SIGCOMM Symposium on Software Defined Networking Research, (1-7)
  107. Bocić I and Bultan T Coexecutability for efficient verification of data model updates Proceedings of the 37th International Conference on Software Engineering - Volume 1, (744-754)
  108. Milicevic A, Near J, Kang E and Jackson D Alloy* Proceedings of the 37th International Conference on Software Engineering - Volume 1, (609-619)
  109. ACM
    Pike L (2014). SmartCheck, ACM SIGPLAN Notices, 49:12, (53-64), Online publication date: 11-May-2015.
  110. Barr E, Harman M, McMinn P, Shahbaz M and Shin Yoo (2015). The Oracle Problem in Software Testing: A Survey, IEEE Transactions on Software Engineering, 41:5, (507-525), Online publication date: 1-May-2015.
  111. Amálio N and Glodt C (2015). A tool for visual and formal modelling of software designs, Science of Computer Programming, 98:P1, (52-79), Online publication date: 1-Feb-2015.
  112. ACM
    Rosner N, Bengolea V, Ponzio P, Khalek S, Aguirre N, Frias M and Khurshid S (2014). Bounded exhaustive test input generation from hybrid invariants, ACM SIGPLAN Notices, 49:10, (655-674), Online publication date: 31-Dec-2015.
  113. ACM
    Vakili A and Day N Verifying CTL-live properties of infinite state models using an SMT solver Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, (213-223)
  114. Drechsler R, Soeken M and Wille R Automated and quality-driven requirements engineering Proceedings of the 2014 IEEE/ACM International Conference on Computer-Aided Design, (586-590)
  115. Milicevic A and Jackson D (2014). Preventing arithmetic overflows in Alloy, Science of Computer Programming, 94:P2, (203-216), Online publication date: 1-Nov-2014.
  116. ACM
    Skene J Description Logic as Programming Language Proceedings of the 2014 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, (143-162)
  117. ACM
    Rosner N, Bengolea V, Ponzio P, Khalek S, Aguirre N, Frias M and Khurshid S Bounded exhaustive test input generation from hybrid invariants Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications, (655-674)
  118. ACM
    Yang G, Person S, Rungta N and Khurshid S (2014). Directed Incremental Symbolic Execution, ACM Transactions on Software Engineering and Methodology, 24:1, (1-42), Online publication date: 14-Oct-2014.
  119. ACM
    Guo J, Zulkoski E, Olaechea R, Rayside D, Czarnecki K, Apel S and Atlee J Scaling exact multi-objective combinatorial optimization by parallelization Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering, (409-420)
  120. Vissani I, Pombo C, Ţu ţU I and Fiadeiro J A Full Operational Semantics for Asynchronous Relational Networks Revised Selected Papers of the 22nd International Workshop on Recent Trends in Algebraic Development Techniques - Volume 9463, (131-150)
  121. ACM
    Pike L SmartCheck Proceedings of the 2014 ACM SIGPLAN symposium on Haskell, (53-64)
  122. ACM
    Torjusen A, Abie H, Paintsil E, Trcek D and Skomedal Å Towards Run-Time Verification of Adaptive Security for IoT in eHealth Proceedings of the 2014 European Conference on Software Architecture Workshops, (1-8)
  123. ACM
    Bollin A and Rauner-Reithmayer D Formal specification comprehension: the art of reading and writing z Proceedings of the 2nd FME Workshop on Formal Methods in Software Engineering, (3-9)
  124. Milicevic A, Efrati I and Jackson D αRby--An Embedding of Alloy in Ruby Proceedings of the 4th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z - Volume 8477, (56-71)
  125. Devyanin P, Khoroshilov A, Kuliamin V, Petrenko A and Shchepetkov I Formal Verification of OS Security Model with Alloy and Event-B Proceedings of the 4th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z - Volume 8477, (309-313)
  126. ACM
    Bocić I and Bultan T Inductive verification of data model invariants for web applications Proceedings of the 36th International Conference on Software Engineering, (620-631)
  127. BjØrner D and Havelund K 40 Years of Formal Methods Proceedings of the 19th International Symposium on FM 2014: Formal Methods - Volume 8442, (42-61)
  128. Nelson T, Ferguson A, Scheer M and Krishnamurthi S Tierless programming and reasoning for software-defined networks Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation, (519-531)
  129. ACM
    Gore R, Diallo S and Padilla J (2014). ConceVE, ACM Transactions on Modeling and Computer Simulation, 24:2, (1-17), Online publication date: 1-Feb-2014.
  130. Gore R and Diallo S The need for usable formal methods in verification and validation Proceedings of the 2013 Winter Simulation Conference: Simulation: Making Decisions in a Complex World, (1257-1268)
  131. ACM
    Milicevic A, Jackson D, Gligoric M and Marinov D Model-based, event-driven programming paradigm for interactive web applications Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software, (17-36)
  132. ACM
    Perez De Rosso S and Jackson D What's wrong with git? Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software, (37-52)
  133. Semeráth O, Horváth Á and Varró D Validation of Derived Features and Well-Formedness Constraints in DSLs Proceedings of the 16th International Conference on Model-Driven Engineering Languages and Systems - Volume 8107, (538-554)
  134. Randolph A, Imine A, Boucheneb H and Quintero A Specification and Verification Using Alloy of Optimistic Access Control for Distributed Collaborative Editors Proceedings of the 18th International Workshop on Formal Methods for Industrial Critical Systems - Volume 8187, (184-198)
  135. ACM
    Ruchansky N and Proserpio D (2013). A (not) NICE way to verify the openflow switch specification, ACM SIGCOMM Computer Communication Review, 43:4, (527-528), Online publication date: 19-Sep-2013.
  136. ACM
    Damiani F, Gladisch C and Tyszberowicz S Refinement-based testing of delta-oriented product lines Proceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools, (135-140)
  137. ACM
    Fantechi A Topologically configurable systems as product families Proceedings of the 17th International Software Product Line Conference, (151-156)
  138. ACM
    Braione P, Denaro G and Pezzè M Enhancing symbolic execution with built-in term rewriting and constrained lazy initialization Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering, (411-421)
  139. ACM
    Ruchansky N and Proserpio D A (not) NICE way to verify the openflow switch specification Proceedings of the ACM SIGCOMM 2013 conference on SIGCOMM, (527-528)
  140. ACM
    Nijjar J and Bultan T Data model property inference and repair Proceedings of the 2013 International Symposium on Software Testing and Analysis, (202-212)
  141. ACM
    Balaban M and Maraee A (2013). Finite satisfiability of UML class diagrams with constrained class hierarchy, ACM Transactions on Software Engineering and Methodology, 22:3, (1-42), Online publication date: 1-Jul-2013.
  142. Sen S and Gotlieb A Testing a data-intensive system with generated data interactions Proceedings of the 25th international conference on Advanced Information Systems Engineering, (657-671)
  143. Bąk K, Zayan D, Czarnecki K, Antkiewicz M, Diskin Z, Wąsowski A and Rayside D Example-driven modeling: model = abstractions + examples Proceedings of the 2013 International Conference on Software Engineering, (1273-1276)
  144. Teixeira L, Borba P and Gheyi R (2013). Safe composition of configuration knowledge-based software product lines, Journal of Systems and Software, 86:4, (1038-1053), Online publication date: 1-Apr-2013.
  145. Shimakawa M, Hagihara S and Yonezaki N SAT Proceedings of the 2013 international conference on Information and Communication Technology, (60-70)
  146. Zhang T, Szefer J and Lee R Security Verification of Hardware-enabled Attestation Protocols Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture Workshops, (47-54)
  147. ACM
    Near J and Jackson D Rubicon Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, (1-11)
  148. ACM
    Torlak E Scalable test data generation from multidimensional models Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering, (1-11)
  149. ACM
    Beynon M Realising software development as a lived experience Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software, (229-244)
  150. ACM
    Sheard T (2012). Painless programming combining reduction and search, ACM SIGPLAN Notices, 47:9, (89-102), Online publication date: 15-Oct-2012.
  151. Geepalla E, Bordbar B and Last J Transformation of spatio-temporal role based access control specification to alloy Proceedings of the 2nd international conference on Model and Data Engineering, (67-78)
  152. ACM
    Etien A, Aranega V, Blanc X and Paige R Chaining model transformations Proceedings of the First Workshop on the Analysis of Model Transformations, (9-14)
  153. ACM
    Saadatpanah P, Famelis M, Gorzny J, Robinson N, Chechik M and Salay R Comparing the effectiveness of reasoning formalisms for partial models Proceedings of the Workshop on Model-Driven Engineering, Verification and Validation, (41-46)
  154. ACM
    Faily S, Lyle J, Namiluko C, Atzeni A and Cameroni C Model-driven architectural risk analysis using architectural and contextualised attack patterns Proceedings of the Workshop on Model-Driven Security, (1-6)
  155. Kuhlmann M and Gogolla M From UML and OCL to relational logic and back Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems, (415-431)
  156. Hamann L, Hofrichter O and Gogolla M On integrating structure and behavior modeling with OCL Proceedings of the 15th international conference on Model Driven Engineering Languages and Systems, (235-251)
  157. ACM
    Sheard T Painless programming combining reduction and search Proceedings of the 17th ACM SIGPLAN international conference on Functional programming, (89-102)
  158. ACM
    Gopinath D, Zaeem R and Khurshid S Improving the effectiveness of spectra-based fault localization using specifications Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering, (40-49)
  159. Alalfi M, Cordy J and Dean T Recovering role-based access control security models from dynamic web applications Proceedings of the 12th international conference on Web Engineering, (121-136)
  160. Kuhlmann M and Gogolla M Strengthening SAT-based validation of UML/OCL models by representing collections as relations Proceedings of the 8th European conference on Modelling Foundations and Applications, (32-48)
  161. Batori G, Theisz Z and Asztalos D Metamodel based methodology for dynamic component systems Proceedings of the 8th European conference on Modelling Foundations and Applications, (275-286)
  162. Leino K and Yessenov K (2012). Stepwise refinement of heap-manipulating code in Chalice, Formal Aspects of Computing, 24:4-6, (519-535), Online publication date: 1-Jul-2012.
  163. Garis A, Paiva A, Cunha A and Riesco D Specifying UML protocol state machines in alloy Proceedings of the 9th international conference on Integrated Formal Methods, (312-326)
  164. Rebello de Andrade F, Faria J, Lopes A and Paiva A Specification-Driven unit test generation for java generic classes Proceedings of the 9th international conference on Integrated Formal Methods, (296-311)
  165. Vakili A and Day N Avestan Proceedings of the 4th International Workshop on Modeling in Software Engineering, (36-42)
  166. ACM
    Hatcliff J, Leavens G, Leino K, Müller P and Parkinson M (2012). Behavioral interface specification languages, ACM Computing Surveys, 44:3, (1-58), Online publication date: 1-Jun-2012.
  167. Bengolea V, Aguirre N, Marinov D and Frias M Using coverage criteria on RepOK to reduce bounded-exhaustive test suites Proceedings of the 6th international conference on Tests and Proofs, (19-34)
  168. ACM
    Marcozzi M, Vanhoof W and Hainaut J Test input generation for database programs using relational constraints Proceedings of the Fifth International Workshop on Testing Database Systems, (1-6)
  169. ACM
    Alvaro P, Hutchinson A, Conway N, Marczak W and Hellerstein J BloomUnit Proceedings of the Fifth International Workshop on Testing Database Systems, (1-7)
  170. ACM
    Zave P (2012). Using lightweight modeling to understand chord, ACM SIGCOMM Computer Communication Review, 42:2, (49-57), Online publication date: 29-Mar-2012.
  171. ACM
    Siddiqui J and Khurshid S Staged symbolic execution Proceedings of the 27th Annual ACM Symposium on Applied Computing, (1339-1346)
  172. Salay R, Famelis M and Chechik M Language independent refinement using partial modeling Proceedings of the 15th international conference on Fundamental Approaches to Software Engineering, (224-239)
  173. Bulwahn L Smart testing of functional programs in isabelle Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning, (153-167)
  174. Morse E, Vrvilo N, Mercer E and McCarthy J Modeling asynchronous message passing for c programs Proceedings of the 13th international conference on Verification, Model Checking, and Abstract Interpretation, (332-347)
  175. Garis A, Cunha A and Riesco D Translating alloy specifications to UML class diagrams annotated with OCL Proceedings of the 9th international conference on Software engineering and formal methods, (221-236)
  176. Parrino B, Galeotti J, Garbervetsky D and Frias M A dataflow analysis to improve SAT-based bounded program verification Proceedings of the 9th international conference on Software engineering and formal methods, (138-154)
  177. Vakili A Analyzing temporal properties of abstract models Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (656-659)
  178. Khalek S, Guowei Yang , Lingming Zhang , Marinov D and Khurshid S TestEra Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (608-611)
  179. Khalek S, Narayanan V and Khurshid S Mixed constraints for test input generation - An initial exploration Proceedings of the 26th IEEE/ACM International Conference on Automated Software Engineering, (548-551)
  180. Leuschel M, Falampin J, Fritz F and Plagge D (2011). Automated property verification for large scale B models with ProB, Formal Aspects of Computing, 23:6, (683-709), Online publication date: 1-Nov-2011.
  181. Chamarthi H and Manolios P Automated specification analysis using an interactive theorem prover Proceedings of the International Conference on Formal Methods in Computer-Aided Design, (46-53)
  182. Xing Z, Sun J, Liu Y and Dong J Differencing labeled transition systems Proceedings of the 13th international conference on Formal methods and software engineering, (537-552)
  183. Siddiqui J and Khurshid S Symbolic execution of alloy models Proceedings of the 13th international conference on Formal methods and software engineering, (340-355)
  184. Power D, Slaymaker M and Simpson A Conformance checking of dynamic access control policies Proceedings of the 13th international conference on Formal methods and software engineering, (227-242)
  185. Bollin A Is there evolution before birth? deterioration effects of formal Z specifications Proceedings of the 13th international conference on Formal methods and software engineering, (66-81)
  186. ACM
    Svendsen A, Haugen Ø and Møller-Pedersen B Specifying a testing oracle for train stations Proceedings of the 8th International Workshop on Model-Driven Engineering, Verification and Validation, (1-6)
  187. ACM
    Soeken M, Wille R and Drechsler R Towards automatic determination of problem bounds for object instantiation in static model verification Proceedings of the 8th International Workshop on Model-Driven Engineering, Verification and Validation, (1-4)
  188. ACM
    Chen E, Bau J, Reis C, Barth A and Jackson C App isolation Proceedings of the 18th ACM conference on Computer and communications security, (227-238)
  189. Maoz S, Ringert J and Rumpe B CD2Alloy Proceedings of the 14th international conference on Model driven engineering languages and systems, (592-607)
  190. Maoz S, Ringert J and Rumpe B Semantically configurable consistency analysis for class and object diagrams Proceedings of the 14th international conference on Model driven engineering languages and systems, (153-167)
  191. Svendsen A, Haugen Ø and Møller-Pedersen B Specifying a testing oracle for train stations --- going beyond with product line technology Proceedings of the 2011th international conference on Models in Software Engineering, (187-201)
  192. Ghezzi C, Mocci A and Sangiorgio M Runtime monitoring of functional component changes with behavior models Proceedings of the 2011th international conference on Models in Software Engineering, (152-166)
  193. Blanchette J, Bulwahn L and Nipkow T Automatic proof and disproof in Isabelle/HOL Proceedings of the 8th international conference on Frontiers of combining systems, (12-27)
  194. Côté D, Fraikin B, Frappier M and St-Denis R A SAT-based approach for the construction of reusable control system components Proceedings of the 16th international conference on Formal methods for industrial critical systems, (52-67)
  195. Maoz S, Ringert J and Rumpe B Modal object diagrams Proceedings of the 25th European conference on Object-oriented programming, (281-305)
  196. Maoz S, Ringert J and Rumpe B CDDiff Proceedings of the 25th European conference on Object-oriented programming, (230-254)
  197. ACM
    Blanchette J, Weber T, Batty M, Owens S and Sarkar S Nitpicking c++ concurrency Proceedings of the 13th international ACM SIGPLAN symposium on Principles and practices of declarative programming, (113-124)
  198. ACM
    Nijjar J and Bultan T Bounded verification of Ruby on Rails data models Proceedings of the 2011 International Symposium on Software Testing and Analysis, (67-77)
  199. Udupa A, Desai A and Rajamani S Depth bounded explicit-state model checking Proceedings of the 18th international SPIN conference on Model checking software, (57-74)
  200. Svendsen A, Haugen Ø and Møller-Pedersen B Synthesizing software models Proceedings of the 15th international conference on Integrating System and Software Modeling, (38-53)
  201. Aguirre N, Bengolea V, Frias M and Galeotti J Incorporating coverage criteria in bounded exhaustive black box test generation of structural inputs Proceedings of the 5th international conference on Tests and proofs, (15-32)
  202. Kuhlmann M, Hamann L and Gogolla M Extensive validation of OCL models by integrating SAT solving into USE Proceedings of the 49th international conference on Objects, models, components, patterns, (290-306)
  203. Bowen J and Reeves S From a community of practice to a body of knowledge Proceedings of the 17th international conference on Formal methods, (308-322)
  204. El Ghazi A and Taghdiri M Relational reasoning via SMT solving Proceedings of the 17th international conference on Formal methods, (133-148)
  205. ACM
    Ledru Y, Qamar N, Idani A, Richier J and Labiadh M Validation of security policies by the animation of Z specifications Proceedings of the 16th ACM symposium on Access control models and technologies, (155-164)
  206. Svendsen A, Haugen Ø and Møller-Pedersen B Analyzing variability Proceedings of the 7th European conference on Modelling foundations and applications, (253-269)
  207. Van Der Straeten R, Puissant J and [email protected] T Assessing the Kodkod model finder for resolving model inconsistencies Proceedings of the 7th European conference on Modelling foundations and applications, (69-84)
  208. ACM
    Person S, Yang G, Rungta N and Khurshid S Directed incremental symbolic execution Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, (504-515)
  209. ACM
    Person S, Yang G, Rungta N and Khurshid S (2011). Directed incremental symbolic execution, ACM SIGPLAN Notices, 46:6, (504-515), Online publication date: 4-Jun-2011.
  210. Ferreira J, Mendes A, Cunha A, Baquero C, Silva P, Barbosa L and Oliveira J Logic training through algorithmic problem solving Proceedings of the Third international congress conference on Tools for teaching logic, (62-69)
  211. Mu S and Oliveira J Programming from galois connections Proceedings of the 12th international conference on Relational and algebraic methods in computer science, (294-313)
  212. Michels G, Joosten S, van der Woude J and Joosten S Ampersand applying relation algebra in practice Proceedings of the 12th international conference on Relational and algebraic methods in computer science, (280-293)
  213. ACM
    Kattepur A, Sen S, Baudry B, Benveniste A and Jard C Pairwise testing of dynamic composite services Proceedings of the 6th International Symposium on Software Engineering for Adaptive and Self-Managing Systems, (138-147)
  214. ACM
    Milicevic A, Rayside D, Yessenov K and Jackson D Unifying execution of imperative and declarative code Proceedings of the 33rd International Conference on Software Engineering, (511-520)
  215. ACM
    Near J, Milicevic A, Kang E and Jackson D A lightweight code analysis and its role in evaluation of a dependability case Proceedings of the 33rd International Conference on Software Engineering, (31-40)
  216. Milicevic A and Kugler H Model checking using SMT and theory of lists Proceedings of the Third international conference on NASA Formal methods, (282-297)
  217. Barjis J, Rychkova I and Yilmaz L Modeling and simulation driven software development Proceedings of the 2011 Emerging M&S Applications in Industry and Academia Symposium, (4-10)
  218. Gopinath D, Malik M and Khurshid S Specification-based program repair using SAT Proceedings of the 17th international conference on Tools and algorithms for the construction and analysis of systems: part of the joint European conferences on theory and practice of software, (173-188)
  219. ACM
    Nigam D and Ojha A An aspect oriented model of efficient and secure card-based payment system Proceedings of the 2011 International Conference on Communication, Computing & Security, (559-564)
  220. Power D, Slaymaker M and Simpson A Automatic conformance checking of role-based access control policies via alloy Proceedings of the Third international conference on Engineering secure software and systems, (15-28)
  221. Farahbod R and Glässer U (2011). The CoreASM modeling framework, Software—Practice & Experience, 41:2, (167-178), Online publication date: 1-Feb-2011.
  222. ACM
    Krieger M, Knapp A and Wolff B (2010). Automatic and efficient simulation of operation contracts, ACM SIGPLAN Notices, 46:2, (53-62), Online publication date: 26-Jan-2011.
  223. ACM
    Prountzos D, Manevich R, Pingali K and McKinley K A shape analysis for optimizing parallel graph programs Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (159-172)
  224. ACM
    Prountzos D, Manevich R, Pingali K and McKinley K (2011). A shape analysis for optimizing parallel graph programs, ACM SIGPLAN Notices, 46:1, (159-172), Online publication date: 26-Jan-2011.
  225. Shaikh A, Wiil U and Memon N (2011). Evaluation of tools and slicing techniques for efficient verification of UML/OCL class diagrams, Advances in Software Engineering, 2011, (1-18), Online publication date: 1-Jan-2011.
  226. Frappier M, Fraikin B, Chossart R, Chane-Yack-Fa R and Ouenzar M Comparison of model checking tools for information systems Proceedings of the 12th international conference on Formal engineering methods and software engineering, (581-596)
  227. Ogata K and Futatsugi K A combination of forward and backward reachability analysis methods Proceedings of the 12th international conference on Formal engineering methods and software engineering, (501-517)
  228. Massoni T, Gheyi R and Borba P Synchronizing model and program refactoring Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications, (96-111)
  229. Seebach H, Nafz F, Holtmann J, Meyer J, Tichy M, Reif W and Schäfer W Designing self-healing in automotive systems Proceedings of the 7th international conference on Autonomic and trusted computing, (47-61)
  230. ACM
    Jackson E, Kang E, Dahlweid M, Seifert D and Santen T Components, platforms and possibilities Proceedings of the tenth ACM international conference on Embedded software, (39-48)
  231. ACM
    Walter T, Parreiras F, Gröner G and Wende C OWLizing Ontology-Driven Software Engineering, (1-6)
  232. ACM
    Roberson M and Boyapati C (2010). Efficient modular glass box software model checking, ACM SIGPLAN Notices, 45:10, (4-21), Online publication date: 17-Oct-2010.
  233. ACM
    Roberson M and Boyapati C Efficient modular glass box software model checking Proceedings of the ACM international conference on Object oriented programming systems languages and applications, (4-21)
  234. ACM
    Kang E and Jackson D Patterns for building dependable systems with trusted bases Proceedings of the 17th Conference on Pattern Languages of Programs, (1-14)
  235. Bak K, Czarnecki K and Wasowski A Feature and meta-models in Clafer Proceedings of the Third international conference on Software language engineering, (102-122)
  236. ACM
    Krieger M, Knapp A and Wolff B Automatic and efficient simulation of operation contracts Proceedings of the ninth international conference on Generative programming and component engineering, (53-62)
  237. Maoz S, Ringert J and Rumpe B A manifesto for semantic model differencing Proceedings of the 2010 international conference on Models in software engineering, (194-203)
  238. Rodriguez-Priego E, García-Izquierdo F and Rubio Á Modeling issues Proceedings of the 13th international conference on Model driven engineering languages and systems: Part II, (361-375)
  239. ACM
    Shaikh A, Clarisó R, Wiil U and Memon N Verification-driven slicing of UML/OCL models Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, (185-194)
  240. ACM
    Reps T, Sagiv M and Loginov A (2010). Finite differencing of logical formulas for static analysis, ACM Transactions on Programming Languages and Systems, 32:6, (1-55), Online publication date: 1-Aug-2010.
  241. Blanchette J and Krauss A Monotonicity inference for higher-order formulas Proceedings of the 5th international conference on Automated Reasoning, (91-106)
  242. Blanchette J Relational analysis of (Co)inductive predicates, (Co)algebraic datatypes, and (Co)recursive functions Proceedings of the 4th international conference on Tests and proofs, (117-134)
  243. Gogolla M, Hamann L and Kuhlmann M Proving and visualizing OCL invariant independence by automatically generated test cases Proceedings of the 4th international conference on Tests and proofs, (38-54)
  244. Cantú F and Ceballos H (2010). A multiagent knowledge and information network approach for managing research assets, Expert Systems with Applications: An International Journal, 37:7, (5272-5284), Online publication date: 1-Jul-2010.
  245. Fiorentini C, Momigliano A, Ornaghi M and Poernomo I A constructive approach to testing model transformations Proceedings of the Third international conference on Theory and practice of model transformations, (77-92)
  246. Zaeem R and Khurshid S Contract-based data structure repair using alloy Proceedings of the 24th European conference on Object-oriented programming, (577-598)
  247. ACM
    Gimblett A and Thimbleby H User interface model discovery Proceedings of the 2nd ACM SIGCHI symposium on Engineering interactive computing systems, (145-154)
  248. ACM
    Roubtsova E, Joosten S and Wedemeijer L Behavioural model for a business rules based approach to model services Proceedings of the Second International Workshop on Behaviour Modelling: Foundation and Applications, (1-8)
  249. ACM
    Torlak E, Vaziri M and Dolby J (2010). MemSAT, ACM SIGPLAN Notices, 45:6, (341-350), Online publication date: 12-Jun-2010.
  250. ACM
    Torlak E, Vaziri M and Dolby J MemSAT Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, (341-350)
  251. Haesevoets R, Weyns D, Torres M, Helleboogh A, Holvoet T and Joosen W A middleware model in alloy for supply chain-wide agent interactions Proceedings of the 11th international conference on Agent-oriented software engineering, (189-204)
  252. ACM
    Soares G Making program refactoring safer Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2, (521-522)
  253. ACM
    Ghezzi C and Mocci A Behavior model based component search Proceedings of 2010 ICSE Workshop on Search-driven Development: Users, Infrastructure, Tools and Evaluation, (9-12)
  254. Veanes M, Tillmann N and de Halleux J Qex Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning, (425-446)
  255. Falbo R, Baião F, Lopes M and Guizzardi G (2010). The Role of Foundational Ontologies for Domain Ontology Engineering, International Journal of Information System Modeling and Design, 1:2, (1-22), Online publication date: 1-Apr-2010.
  256. Calinescu R and Kikuchi S Formal methods @ runtime Proceedings of the 16th Monterey conference on Foundations of computer software: modeling, development, and verification of adaptive systems, (122-135)
  257. ACM
    Nakajima S Semi-automated diagnosis of FODA feature diagram Proceedings of the 2010 ACM Symposium on Applied Computing, (2191-2197)
  258. Ghezzi C, Mocci A and Salvaneschi G Automatic cross validation of multiple specifications Proceedings of the 13th international conference on Fundamental Approaches to Software Engineering, (233-247)
  259. Soeken M, Wille R, Kuhlmann M, Gogolla M and Drechsler R Verifying UML/OCL models using Boolean satisfiability Proceedings of the Conference on Design, Automation and Test in Europe, (1341-1344)
  260. Jacob J Trace specifications in alloy Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (105-117)
  261. Tiberghien A, Merle P and Seinturier L Specifying self-configurable component-based systems with fractoy Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (91-104)
  262. Nokhbeh Zaeem R and Khurshid S Introducing specification-based data structure repair using alloy Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (398-399)
  263. Malik P, Groves L and Lenihan C Translating z to alloy Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (377-390)
  264. Slaymaker M, Power D and Simpson A Formalising and validating RBAC-to-XACML translation using lightweight formal methods Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (349-362)
  265. D’Ippolito N, Frias M, Galeotti J, Lanzarotti E and Mera S Alloy+HotCore Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (160-173)
  266. Reynolds M Lightweight modeling of java virtual machine security constraints Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (146-159)
  267. Khoury J, Abdallah C and Heileman G Towards formalizing network architectural descriptions Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (132-145)
  268. Near J and Jackson D An imperative extension to alloy Proceedings of the Second international conference on Abstract State Machines, Alloy, B and Z, (118-131)
  269. Sen S, Baudry B and Vangheluwe H (2010). Towards Domain-specific Model Editors with Automatic Model Completion, Simulation, 86:2, (109-126), Online publication date: 1-Feb-2010.
  270. Cabot J, Clarisó R, Guerra E and de Lara J (2010). Verification and validation of declarative model-to-model transformations through invariants, Journal of Systems and Software, 83:2, (283-302), Online publication date: 1-Feb-2010.
  271. Bjørner D and Eir A Compositionality Concurrency, Compositionality, and Correctness, (22-59)
  272. Benevides A, Guizzardi G, Braga B and Almeida J Assessing Modal Aspects of OntoUML Conceptual Models in Alloy Proceedings of the ER 2009 Workshops (CoMoL, ETheCoM, FP-UML, MOST-ONISW, QoIS, RIGiM, SeCoGIS) on Advances in Conceptual Modeling - Challenging Perspectives, (55-64)
  273. ACM
    Auguston M Monterey Phoenix, or how to make software architecture executable Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications, (1031-1040)
  274. ACM
    Shah S, Anastasakis K and Bordbar B From UML to Alloy and back again Proceedings of the 6th International Workshop on Model-Driven Engineering, Verification and Validation, (1-10)
  275. Shah S, Anastasakis K and Bordbar B From UML to alloy and back again Proceedings of the 2009 international conference on Models in Software Engineering, (158-171)
  276. ACM
    Auguston M (2009). Software architecture built from behavior models, ACM SIGSOFT Software Engineering Notes, 34:5, (1-15), Online publication date: 2-Oct-2009.
  277. ACM
    Shankar N (2009). Automated deduction for verification, ACM Computing Surveys, 41:4, (1-56), Online publication date: 1-Oct-2009.
  278. Walter T, Silva Parreiras F and Staab S OntoDSL Proceedings of the 12th International Conference on Model Driven Engineering Languages and Systems, (408-422)
  279. ACM
    Thimbleby H Contributing to safety and due diligence in safety-critical interactive systems development by generating and analyzing finite state models Proceedings of the 1st ACM SIGCHI symposium on Engineering interactive computing systems, (221-230)
  280. Sakai A, Hori Y and Sakurai K Formal Verification for Access Control in Web Information Sharing System Proceedings of the 3rd International Conference and Workshops on Advances in Information Security and Assurance, (80-89)
  281. Veanes M and Bjørner N Symbolic bounded conformance checking of model programs Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics, (388-400)
  282. Bjørner D Rôle of domain engineering in software development—why current requirements engineering is flawed ! Proceedings of the 7th international Andrei Ershov Memorial conference on Perspectives of Systems Informatics, (2-34)
  283. Mougenot A, Blanc X and Gervais M D-Praxis Proceedings of the 9th IFIP WG 6.1 International Conference on Distributed Applications and Interoperable Systems, (16-29)
  284. ACM
    Toahchoodee M, Ray I, Anastasakis K, Georg G and Bordbar B Ensuring spatio-temporal access control for real-world applications Proceedings of the 14th ACM symposium on Access control models and technologies, (13-22)
  285. ACM
    Alalfi M, Cordy J and Dean T A verification framework for access control in dynamic web applications Proceedings of the 2nd Canadian Conference on Computer Science and Software Engineering, (109-113)
  286. Bucchiarone A, Dennis G and Gnesi S (2009). A Graph-based Design Framework for Global Computing Systems, Electronic Notes in Theoretical Computer Science (ENTCS), 236, (117-130), Online publication date: 1-Apr-2009.
  287. ACM
    Cataño N and Wahls T Executing JML specifications of Java card applications Proceedings of the 2009 ACM symposium on Applied Computing, (404-408)
  288. Smaragdakis Y, Csallner C and Subramanian R (2009). Scalable satisfiability checking and test data generation from modeling diagrams, Automated Software Engineering, 16:1, (73-99), Online publication date: 1-Mar-2009.
  289. ACM
    Runciman C, Naylor M and Lindblad F (2008). Smallcheck and lazy smallcheck, ACM SIGPLAN Notices, 44:2, (37-48), Online publication date: 28-Jan-2009.
  290. Bowen J and Hinchey M Ten commandments ten years on Rigorous Methods for Software Construction and Analysis, (219-233)
  291. Kühne T Contrasting classification with generalisation Proceedings of the Sixth Asia-Pacific Conference on Conceptual Modeling - Volume 96, (71-78)
  292. Batory D A Modeling Language for Program Design and Synthesis Advances in Software Engineering, (39-58)
  293. ACM
    Nejati S, Sabetzadeh M, Chechik M, Uchitel S and Zave P Towards compositional synthesis of evolving systems Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering, (285-296)
  294. ACM
    Roberson M, Harries M, Darga P and Boyapati C (2008). Efficient software model checking of soundness of type systems, ACM SIGPLAN Notices, 43:10, (493-504), Online publication date: 27-Oct-2008.
  295. ACM
    Batory D Using modern mathematics as an FOSD modeling language Proceedings of the 7th international conference on Generative programming and component engineering, (35-44)
  296. ACM
    Roberson M, Harries M, Darga P and Boyapati C Efficient software model checking of soundness of type systems Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications, (493-504)
  297. ACM
    Runciman C, Naylor M and Lindblad F Smallcheck and lazy smallcheck Proceedings of the first ACM SIGPLAN symposium on Haskell, (37-48)
  298. Dechev D, Rouquette N, Pirkelbauer P and Stroustrup B Verification and semantic parallelization of goal-driven autonomous software Proceedings of the 2nd International Conference on Autonomic Computing and Communication Systems, (1-8)
  299. Salay R, Mylopoulos J and Easterbrook S Managing Models through Macromodeling Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, (447-450)
  300. Khalek S, Elkarablieh B, Laleye Y and Khurshid S Query-Aware Test Generation Using a Relational Constraint Solver Proceedings of the 23rd IEEE/ACM International Conference on Automated Software Engineering, (238-247)
  301. Höfner P and Struth G On Automating the Calculus of Relations Proceedings of the 4th international joint conference on Automated Reasoning, (50-66)
  302. ACM
    Kuzmina N, Paul J, Gamboa R and Caldwell J Extending dynamic constraint detection with disjunctive constraints Proceedings of the 2008 international workshop on dynamic analysis: held in conjunction with the ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2008), (57-63)
  303. ACM
    Silva P and Oliveira J 'Galculator' Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming, (44-55)
  304. ACM
    Shaffer A, Auguston M, Irvine C and Levin T A security domain model to assess software for exploitable covert channels Proceedings of the third ACM SIGPLAN workshop on Programming languages and analysis for security, (45-56)
  305. Khosravi R, Sirjani M, Asoudeh N, Sahebi S and Iravanchi H Modeling and analysis of Reo connectors using alloy Proceedings of the 10th international conference on Coordination models and languages, (169-183)
  306. ACM
    Bunyakiati P, Finkelstein A, Skene J and Chapman C Using JULE to generate a compliance test suite for the UML standard Proceedings of the 30th international conference on Software engineering, (827-830)
  307. Mariën M, Wittocx J, Denecker M and Bruynooghe M SAT(ID) Proceedings of the 11th international conference on Theory and applications of satisfiability testing, (211-224)
  308. ACM
    Mannering D Implementable requirements in problem orientation Proceedings of the 3rd international workshop on Applications and advances of problem frames, (9-15)
  309. ACM
    Rubin J, Chechik M and Easterbrook S Declarative approach for model composition Proceedings of the 2008 international workshop on Models in software engineering, (7-14)
  310. Powell C and Akama K (2008). Extending the equivalent transformation framework to model dynamic interactive systems, WSEAS Transactions on Computers, 7:4, (235-244), Online publication date: 1-Apr-2008.
  311. Massoni T, Gheyi R and Borba P Formal model-driven program refactoring Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering, (362-376)
  312. Datta S and Van Engelen R COMP-REF Proceedings of the Theory and practice of software, 11th international conference on Fundamental approaches to software engineering, (332-346)
  313. Wright J and Dietrich J Survey of existing languages to model interactive web applications Proceedings of the fifth Asia-Pacific conference on Conceptual Modelling - Volume 79, (113-123)
  314. Massoni T, Gheyi R and Borba P (2008). A Framework for Establishing Formal Conformance between Object Models and Object-Oriented Programs, Electronic Notes in Theoretical Computer Science (ENTCS), 195, (189-209), Online publication date: 1-Jan-2008.
  315. Ramananandro T (2008). Mondex, an electronic purse: specification and refinement checks with the Alloy model-finding method, Formal Aspects of Computing, 20:1, (21-39), Online publication date: 1-Jan-2008.
  316. Powell C and Akama K Conceptual modeling of dynamic interactive systems using the equivalent transformation framework Proceedings of the 7th Conference on 7th WSEAS International Conference on Applied Computer Science - Volume 7, (253-258)
  317. ACM
    Pike L Model checking for the practical verificationist Proceedings of the second workshop on Automated formal methods, (21-31)
  318. ACM
    Choppella V, Sengupta A, Robertson E and Johnson S Preliminary explorations in specifying and validating entity-relationship models in PVS Proceedings of the second workshop on Automated formal methods, (1-10)
  319. ACM
    Song Y Adaptation hiding modularity Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (551-554)
  320. ACM
    Cai Y, Huynh S and Xie T A framework and tool supports for testing modularity of software design Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (441-444)
  321. ACM
    Rayside D and Mendel L Object ownership profiling Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (194-203)
  322. ACM
    Elkarablieh B, Garcia I, Suen Y and Khurshid S Assertion-based repair of complex data structures Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (64-73)
  323. ACM
    Smaragdakis Y, Csallner C and Subramanian R Scalable automatic test data generation from modeling diagrams Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, (4-13)
  324. Delaet T and Joosen W PoDIM Proceedings of the 21st conference on Large Installation System Administration Conference, (1-13)
  325. ACM
    Shao D, Khurshid S and Perry D Whispec Proceedings of the 2007 Symposium on Library-Centric Software Design, (11-20)
  326. ACM
    Elkarablieh B, Khurshid S, Vu D and McKinley K (2007). Starc, ACM SIGPLAN Notices, 42:10, (387-404), Online publication date: 21-Oct-2007.
  327. ACM
    Elkarablieh B, Khurshid S, Vu D and McKinley K Starc Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems, languages and applications, (387-404)
  328. Anastasakis K, Bordbar B, Georg G and Ray I UML2Alloy Proceedings of the 10th international conference on Model Driven Engineering Languages and Systems, (436-450)
  329. Mannering D, Hall J and Rapanotti L Safety process improvement with POSE and alloy Proceedings of the 26th international conference on Computer Safety, Reliability, and Security, (252-257)
  330. ACM
    Uzuncaova E, Garcia D, Khurshid S and Batory D A specification-based approach to testing software product lines Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (525-528)
  331. ACM
    Misailovic S, Milicevic A, Petrovic N, Khurshid S and Marinov D Parallel test generation and execution with Korat Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering, (135-144)
  332. ACM
    Uzuncaova E, Garcia D, Khurshid S and Batory D A specification-based approach to testing software product lines The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers, (525-528)
  333. Elkarablieh B, Zayour Y and Khurshid S Efficiently generating structurally complex inputs with thousands of objects Proceedings of the 21st European conference on Object-Oriented Programming, (248-272)
  334. Podorozhny R, Khurshid S, Perry D and Zhang X Verification of multi-agent negotiations using the alloy analyzer Proceedings of the 6th international conference on Integrated formal methods, (501-517)
  335. Milicevic A, Misailovic S, Marinov D and Khurshid S Korat Proceedings of the 29th international conference on Software Engineering, (771-774)
  336. Uzuncaova E and Khurshid S Kato Proceedings of the 29th international conference on Software Engineering, (767-770)
  337. Dwyer M, Hatcliff J, Robby R, Pasareanu C and Visser W Formal Software Analysis Emerging Trends in Software Model Checking 2007 Future of Software Engineering, (120-136)
  338. Kramer J and Magee J Self-Managed Systems 2007 Future of Software Engineering, (259-268)
  339. Cheng B and Atlee J Research Directions in Requirements Engineering 2007 Future of Software Engineering, (285-303)
  340. Seater R, Jackson D and Gheyi R (2007). Requirement progression in problem frames: deriving specifications from requirements, Requirements Engineering, 12:2, (77-102), Online publication date: 1-Apr-2007.
  341. Malik M, Pervaiz A and Khurshid S Generating representation invariants of structurally complex data Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems, (34-49)
  342. Marnette B, Kuncak V and Rinard M Polynomial constraints for sets with cardinality bounds Proceedings of the 10th international conference on Foundations of software science and computational structures, (258-273)
  343. Zee K, Kuncak V, Taylor M and Rinard M Runtime checking for program verification Proceedings of the 7th international conference on Runtime verification, (202-213)
  344. ACM
    Mostefaoui F and Vachon J Verification of Aspect-UML models using alloy Proceedings of the 10th international workshop on Aspect-oriented modeling, (41-48)
  345. Frisch A, Grum M, Jefferson C, Hernández B and Miguel I The design of ESSENCE Proceedings of the 20th international joint conference on Artifical intelligence, (80-87)
  346. Fitzgerald J and Larsen P Balancing insight and effort Formal methods and hybrid real-time systems, (237-254)
  347. Woodcock J and Freitas L Z/Eves and the mondex electronic purse Proceedings of the Third international conference on Theoretical Aspects of Computing, (15-34)
  348. Nipkow T Verifying a hotel key card system Proceedings of the Third international conference on Theoretical Aspects of Computing, (1-14)
  349. ACM
    Uzuncaova E and Khurshid S (2006). Program slicing for declarative models, ACM SIGSOFT Software Engineering Notes, 31:6, (1-2), Online publication date: 1-Nov-2006.
  350. ACM
    Hamer J (2006). Some experiences with the "contributing student approach", ACM SIGCSE Bulletin, 38:3, (68-72), Online publication date: 26-Sep-2006.
  351. Baresi L and Spoletini P On the use of alloy to analyze graph transformation systems Proceedings of the Third international conference on Graph Transformations, (306-320)
  352. ACM
    Dennis G, Chang F and Jackson D Modular verification of code with SAT Proceedings of the 2006 international symposium on Software testing and analysis, (109-120)
  353. ACM
    Hamer J Some experiences with the "contributing student approach" Proceedings of the 11th annual SIGCSE conference on Innovation and technology in computer science education, (68-72)
  354. Jackson D and Jackson M Separating concerns in requirements analysis Rigorous Development of Complex Fault-Tolerant Systems, (210-225)
Contributors
  • Massachusetts Institute of Technology

Recommendations

Reviews

George Hacken

Software abstractions (SAs), as implemented in the author's (and his colleagues') Alloy modeling language, are in my opinion a milestone in rendering verification more easily practicable. From the author's preface: "Simplicity of design means addressing the essence of design-the abstractions on which software is built-explicitly and up front." The Alloy language is used to write declarative models of a system that specify what a system is supposed to do (or in effect not to do), not how it should do it. Jackson mentions two traditional obstacles to formal specification's appeal: intimidating mathematical syntax, and the "lack of tool support beyond type checking and pretty printing." Alloy's greater practicability, as compared with the heavy investment of effort required even by today's theorem-prover-based formal methods, stems from its admittedly incomplete (because finite) automatic analysis, which nevertheless has a huge, prescribable coverage (scope) that test-case coverage cannot begin to approach, and which gives immediate feedback (the other half of enhanced practicability). Regarding test cases, "an assertion [which is an Alloy language construct] is rarely more trouble to write than a single test case, but has the coverage of an unimaginably huge test suite." Alloy's ASCII-based keywords and symbols (& for intersection, + for union), a seemingly small feature, prevent the last-minute annoyances of strange printouts and displays of Alloy model texts. Jackson's book delivers on a promise born of Sir C.A.R. Hoare's famous Turing Award quotation: "There are two ways of constructing a software design: One way is to make it so simple there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." The book is a substantive, philosophical (in the good sense, that is, well-grounded) adjunct to the publicly available Alloy toolkit, documentation, and tutorial (http://alloy.mit.edu), and should be read as such-though it certainly passes muster as standalone reading. The book's audience comprises "analysts, specifiers, designers, architects, or programmers," and its level is that of advanced undergraduates and up, though the only explicit prerequisite is "familiarity with the basic notions of set theory." (Those who have assimilated more-than-naïve set theory will be asked to get used to the nuance that sets "are" unary relations-a small price to pay.) Though I dare say that all software practitioners who have ever been within earshot of Hoare's truth agree with it in principle, the road to realization of correctness has been found to be a winding one indeed, complete with rather steep grades through heavy formal methods territory. Jackson, very much in the thick of formal methods (FM) since the 1980s and knowledgeable in its various species (theorem proving, model checking, and constraint satisfaction), modestly refers to his approach as "lightweight formal methods." Although model checking was the Alloy Analyzer's "original inspiration," its analysis renders constraints to be solved as Boolean constraints and passes these to one of several satisfiability (SAT) solvers imported into the Alloy toolkit. Page 150 has an excellent explanation of the role of SAT solvers. Chapter 2, "A Whirlwind Tour," asks the reader not to "expect to follow all the details." The tour is one of an email client model, and covers (some) keywords, states, operations, and traces. The service that this well-characterized tour renders is to exhibit the look and feel of Alloy, and to impart a slightly-above-nodding acquaintance with such keywords as "sig"[nature], "lone" [zero or one], "pred"[icate], "some", and "check." Given that chapter 2 is, along with the rest of the book, a static presentation of Alloy's text and graphics, and assuming the reader can tolerate less-than-full comprehension, the tour achieves its goal. It is, of course, better to take the tour and interleave it with sessions at the Alloy Web site. My favorite detailed example (beginning on page 203) is titled "Media Asset Management," and involves the management of your photo albums and other digitized media and their ancillary files. The example resonated with my gradually developed impatience with many off-the-shelf, do-everything-for-you tools. A quotation is worth a thousand words: "Although I'd used (and been impressed by) [CommercialTool] for several years, when I constructed this [Alloy] model, [it became clear that] I hadn't understood the details of the basic functions." The discussion (question-and-answer) sections at the end of each chapter are very informative; they serve to enrich the reader's understanding by elaborating on design decisions, such as skolemization, that underlie the Alloy system. The same can be said of Appendix E, which is a clear, fair, and balanced comparison with B, the object constraint language, the Vienna development method, and Z. The examples and exercises, if given time, thought, and effort, can make better designers of all of us, as Alloy is a powerful force-multiplier in the war on bugs. Jackson's Software Abstractions has my highest recommendation. It is being put to immediate use in my group's venue of software-based safety-critical systems. Online Computing Reviews Service

Panagiotis Louridas

It is difficult to ignore a book that starts off by noting that The New Yorker is much more fun than The Economist , especially when this particular book is quite fun by itself. This work is, essentially, a book on formal methods in software engineering that happens to use a particular approach, Alloy, to present its views. The main idea is that formal methods can be engaging, if properly integrated into the development process. This can happen if they are lightweight enough that writing formal specifications does not take hours of abstract reasoning, and if they are endowed with adequate tool support so that writing abstract models and testing them can happen interactively during development. To illustrate this, the book starts with a whirlwind tour that presents the essentials of Alloy, both the modeling formalism and the environment that implements it. The tour chooses as an example an email address book, and that example is used repeatedly throughout the book. The tour is not always easy to follow, but the purpose is only to scratch the surface, leaving the details for later. Indeed, the details are given in their full glory in what follows. The next chapter presents the mathematical logic foundation of Alloy. This is a variation of relational logic. The presentation is leisurely, and adopts a style of presenting the basic facts first and then firing off a discussion section, where the author gives the rationale and more involved material. A minor carp may be that, in this way, the coverage becomes a bit lengthy; others may appreciate the conversational style, however. In the chapter that follows, the language constructs of Alloy build easily on the logic foundations. Alloy models consist of signatures, which may have fields and correspond to types, and also contain facts, predicates, functions, and assertions. In order to analyze a model, we write commands, and then instruct the Alloy tool to run them. We may instruct the tool to search for an instance of a predicate, or for a counterexample of an assertion. Analysis is the subject of the next chapter, which examines it in depth. A well-known dictum in program checking from Dijkstra—"program testing can be used to show the presence of bugs, but never to show their absence"—is quoted in the book. Even showing the presence of bugs, though, is no easy matter. Starting from an abstract software model, be it in the Alloy specification or in some other approach, and trying to find buggy instances of it, is an intractable problem, as the number of distinct states that must be considered grows exponentially. Here is the central premise of Alloy: "most bugs have small counterexamples." Hence, it is enough to run a model checker over a limited scope, namely, a restriction on the size of instances considered, in order to discover a significant number of bugs. Running abstract software models on a limited scope makes the whole process exploratory, and, in a sense, agile. Developers are expected to check their models on a scope, fix bugs, possibly increase the scope, extend the model by adding more elements to it, and so on. A chapter dedicated to examples gives insight on how one might proceed in real projects. The book ends with a series of appendices, containing, among other things, the Alloy language reference and a series of exercises. The bane of formal methods has been the reluctance of developers to dedicate serious brain power to nonprogramming tasks, especially when these involve dealing with intricate formalisms. The formalism described in this book is very close to a programming language, and it very much looks like one, so developers have a much narrower gap to cross. The Alloy tool makes a serious effort to move abstract model building much closer to programming. The book is well written, and may be the ideal introduction to the area of formal methods, combining theory and practice in a nice way. Will Alloy change the way programs are written__?__ There will always be code that will not be put in any kind of formal reasoning framework; it is likely that nobody knows whether formal methods will be applied in more areas than the relatively niche applications where they are currently used. Familiarity with formal methods, though, and the discipline they instill, would benefit all programmers. This book is a step in the right direction.

Fernando Berzal

Essentially, this is a handbook for the Alloy specification language. Alloy is a structural modeling language based on relational logic, which combines first-order logic quantifiers and relational calculus operations. Its associated tool, dubbed Alloy Analyzer, is technically a model finder. Given a specification written using the Alloy language, the Alloy Analyzer attempts to check that the described system has a given property by looking for counterexamples, or, in a different setting, it tries to find some possible states that make the specification true. Alloy has been developed during the last decade or so within the Software Design Group at the Massachusetts Institute of Technology, with the praiseworthy goal of making formal methods more approachable to a wider audience. It tries to obtain the benefits of traditional formal methods at a lower cost, and provides an interesting tool for designers to play with while they devise the solutions to their design problems. The rationale behind its development goes more or less like this: the core of software development is the design of abstractions, but programming languages, mired in details, are a poor medium for exploring abstractions. Therefore, a better notation should be chosen by following Whitehead's advice: "By relieving the brain from all unnecessary work, a good notation sets it free to concentrate on more advanced problems." Alloy is Daniel Jackson's proposal for such a notation. After a brief guided tour with an email client address book as a companion, Jackson delves right into the details of the Alloy language. First, he describes the basic blocks of the language. Even though it is remarkably flexible by admitting three styles of writing expressions (namely, predicate calculus, navigation expressions, and relational calculus), Alloy is still a relatively simple language, reminding us that simplicity is key to good software design. It should be noted, however, that this does not imply that Alloy is easy to use, since complexity is at the heart of software and its inherent complexity does not disappear just by changing notations. Alloy, whose notation was chosen for ease of expression, is heavily influenced by the Z notation from Oxford and the symbolic model verifier from Carnegie Mellon. Like Z, it does not distinguish functions from relations. Unlike Z, Alloy does not distinguish scalars, sets, and tuples from each other. This is probably the most interesting feature of Alloy syntax. Apart from its logic foundations, Alloy, as a language, also provides a type system and a module system. They provide ways to organize a model and build larger models from smaller ones. In the book, you will find a dedicated chapter that informally describes its syntax by example, and separate appendices that provide a formal language reference, a description of the language kernel semantics, and a quick guide to the diagrammatic notation used to illustrate Alloy textual models. The book also includes four complete examples that show how to use Alloy in different situations, from a textbook problem justifying the correctness of a memory implementation to a more realistic example analyzing the interactions of user interface features in a typical photo organizer. More than 30 graded exercises are also stated in an appendix for interested readers to get acquainted with the quirks of Alloy and achieve proficiency in its use. A key chapter in the book is devoted to the analysis techniques underlying Alloy, their strengths, and their limitations. Alloy is based on the "small scope hypothesis," which states that most design flaws in models can be illustrated by small instances. These instances represent the test cases that make bug reports reproducible. If we were able to perform a complete analysis of all small problem instances, way beyond what the best test suites can do, then most design flaws would be revealed. This is exactly what the Alloy Analyzer does. By setting a predefined scope, the analyzer performs an exhaustive search that finds all instances satisfying a predicate (the possible states obtained by simulation) or those violating an assertion (the counterexamples in checking). Since users limit the search space when using the Alloy Analyzer interactively, false positives might still be possible but true negatives will never be overlooked. Provided that the scope is sufficiently high, the small scope hypothesis will give us some confidence that our designs are correct, according to our Alloy specification. Researchers and graduate students will find the book valuable, especially the question-and-answer sections at the end of each topic discussion. For them, the final appendix is particularly relevant, since it describes five solutions to the same problem using different techniques (Alloy and four alternative approaches: B, OCL, VDM, and Z). This direct comparison of approaches lets the reader acquaint himself with the peculiarities each notation introduces as it provides a wider perspective on specification languages. However, a more tutorial-like gradual exposition of ideas would be desirable to target software practitioners as a potential audience for this book. I would even dare to suggest that a different notation, integrated within the metadata annotation capabilities of modern programming languages, would probably let lightweight formal methods achieve more momentum and have a more profound impact in practice. Online Computing Reviews Service

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.