skip to main content
10.1145/2591062.2591069acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Verily: a web framework for creating more reasonable web applications

Published: 31 May 2014 Publication History

Abstract

The complexity of web application construction is increasing at an astounding rate. Developing for the web typically crosses multiple application tiers in a variety of languages, which can result in disjoint code bases. This lack of standardization introduces new challenges for reasoning.
In this paper we introduce Verily, a new web framework for Java that supports the development of verifiable web applications. Rather than requiring that programs be verified in separate a posteriori analysis, Verily supports construction via a series of Recipes, which are properties of an application that are enforced at compile time. In addition to introducing the Verily framework, we also present two Recipes: the Core Recipe, an application architecture for web applications designed to replace traditional server-side Model View Controller, and the Global Mutable State Recipe, which enables developers to use sessions within their applications without resorting to the use of unrestricted global mutable state. Demo Video: http://www.youtube.com/watch?v=TjRF7E4um3c

References

[1]
J. Aldrich. The power of interoperability: Why objects are inevitable. In Proceedings of the 2013 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software, Onward! ’’13, pages 101–116, New York, NY, USA, 2013. ACM.
[2]
E. Börger and R. F. Stärk. Abstract state machines: a method for high-level system design and analysis, volume 14. Springer Heidelberg, 2003.
[3]
S. Burbeck. Applications programming in Smalltalk-80 tm : How to use Model-View-Controller (MVC). Smalltalk-80 v2. 5. ParcPlace, 1992.
[4]
P. Chalin, J. R. Kiniry, G. T. Leavens, and E. Poll. Beyond assertions: Advanced specification and verification with JML and ESC/Java2. In Proceedings of the 4th International Conference on Formal Methods for Components and Objects, FMCO’05, pages 342–363, Berlin, Heidelberg, 2006. Springer-Verlag.
[5]
T. S. Chow. Testing software design modeled by finite-state machines. Software Engineering, IEEE Transactions on, SE-4(3):178–187, 1978.
[6]
E. M. Clarke, E. a. Emerson, and a. P. Sistla. Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Transactions on Programming Languages and Systems, 8(2):244–263, Apr. 1986.
[7]
Z. Durdik. Towards a process for architectural modelling in agile software development. In Proceedings of the Joint ACM SIGSOFT Conference – QoSA and ACM SIGSOFT Symposium – ISARCS on Quality of Software Architectures – QoSA and Architecting Critical Systems – ISARCS, QoSA-ISARCS ’11, pages 183–192, New York, NY, USA, 2011. ACM.
[8]
B. George and L. Williams. A structured experiment of test-driven development. Information and Software Technology, 46(5):337–342, Apr. 2004.
[9]
S. Hansen and T. Fossum. Refactoring model-view-controller. Journal of Computing Sciences in Colleges, pages 120–129, 2005.
[10]
Z. Hemel, D. M. Groenewegen, L. C. Kats, and E. Visser. Static consistency checking of web applications with WebDSL. Journal of Symbolic Computation, 46(2):150–182, 2011.
[11]
C. A. R. Hoare. Proof of correctness of data representations. Acta Informatica, 1(4):271–281, 1972.
[12]
C. Jaspan and J. Aldrich. Checking framework interactions with relationships. In Proceedings of the 23rd European Conference on ECOOP 2009 — Object-Oriented Programming, Genoa, pages 27–51, Berlin, Heidelberg, 2009. Springer-Verlag.
[13]
S. Kojarski and D. H. Lorenz. Domain driven web development with WebJinn. Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications - OOPSLA ’03, page 53, 2003.
[14]
S. Moser and O. Nierstrasz. The effect of object-oriented frameworks on developer productivity. Computer, 29(9):45–51, 1996.
[15]
W. Pree. Meta patterns - a means for capturing the essentials of reusable object-oriented design. In Proceedings of the 8th European Conference on Object-Oriented Programming, ECOOP ’94, pages 150–162, London, UK, UK, 1994. Springer-Verlag.
[16]
A. Stoughton. A functional model-view-controller software architecture for command-oriented programs. Proceedings of the ACM SIGPLAN workshop on Generic programming - WGP ’08, page 1, 2008.
[17]
J. Vlissides, R. Helm, R. Johnson, and E. Gamma. Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley, 49:120, 1995.

Cited By

View all
  • (2015)Detecting inconsistencies in JavaScript MVC applicationsProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818796(325-335)Online publication date: 16-May-2015
  • (2015)Detecting Inconsistencies in JavaScript MVC Applications2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.52(325-335)Online publication date: May-2015

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE Companion 2014: Companion Proceedings of the 36th International Conference on Software Engineering
May 2014
741 pages
ISBN:9781450327688
DOI:10.1145/2591062
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

In-Cooperation

  • TCSE: IEEE Computer Society's Tech. Council on Software Engin.

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 31 May 2014

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Method Router Response
  2. Model View Controller
  3. Verily framework
  4. web frameworks

Qualifiers

  • Article

Conference

ICSE '14
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2015)Detecting inconsistencies in JavaScript MVC applicationsProceedings of the 37th International Conference on Software Engineering - Volume 110.5555/2818754.2818796(325-335)Online publication date: 16-May-2015
  • (2015)Detecting Inconsistencies in JavaScript MVC Applications2015 IEEE/ACM 37th IEEE International Conference on Software Engineering10.1109/ICSE.2015.52(325-335)Online publication date: May-2015

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media