Abstract
The opportunities offered by LLM coders (and their current limitations) demand a reevaluation of how software is structured. Software today is often “illegible”—lacking a direct correspondence between code and observed behavior—and insufficiently modular, leading to a failure of three key requirements of robust coding: incrementality (the ability to deliver small increments by making localized changes), integrity (avoiding breaking prior increments) and transparency (making clear what has changed at build time, and what actions have happened at runtime).
A new structural pattern offers improved legibility and modularity. Its elements are concepts and synchronizations: fully independent services and event-based rules that mediate between them. A domain-specific lan…
Abstract
The opportunities offered by LLM coders (and their current limitations) demand a reevaluation of how software is structured. Software today is often “illegible”—lacking a direct correspondence between code and observed behavior—and insufficiently modular, leading to a failure of three key requirements of robust coding: incrementality (the ability to deliver small increments by making localized changes), integrity (avoiding breaking prior increments) and transparency (making clear what has changed at build time, and what actions have happened at runtime).
A new structural pattern offers improved legibility and modularity. Its elements are concepts and synchronizations: fully independent services and event-based rules that mediate between them. A domain-specific language for synchronizations allows behavioral features to be expressed in a granular and declarative way (and thus readily generated by an LLM). A case study of the RealWorld benchmark is used to illustrate and evaluate the approach.
Formats available
You can view the full content in the following formats:
References
[1]
M. Ainsworth, A. H. Cktumcsmmm, L. J. Groves, and P. J. L. Wallis. 1994. Viewpoint Specification and Z. Information and Software Technology, 36, 1 (1994), 43–51. https://doi.org/10.1016/0950-5849(94)90007-8
[2]
Reem Aleithan, Haoran Xue, Mohammad Mahdi Mohajer, Elijah Nnorom, Gias Uddin, and Song Wang. 2024. SWE-Bench+: Enhanced Coding Benchmark for LLMs. https://doi.org/10.48550/arXiv.2410.06992 arxiv:2410.06992.
[3]
Carliss Baldwin and Kim B. Clark. 2000. Design Rules, Vol. 1: The Power of Modularity. MIT Press. https://doi.org/10.7551/mitpress/2366.001.0001
[4]
David Beckett, Tim Berners-Lee, Eric Prud’hommeaux, and Gavin Carothers. 2014. RDF 1.1 Turtle: Terse RDF Triple Language. World Wide Web Consortium (W3C). https://www.w3.org/TR/turtle/
[5]
Tim Berners-Lee. 2006. Linked Data. Design Issues, W3C. https://www.w3.org/DesignIssues/LinkedData.html Updated 2009
[6]
Tim Berners-Lee, James Hendler, and Ora Lassila. 2001. The Semantic Web. Scientific American, 284, 5 (2001), May, 34–43. https://doi.org/10.1038/scientificamerican0501-34
[7]
Richard Cyganiak, David Wood, and Markus Lanthaler. 2014. RDF 1.1 Concepts and Abstract Syntax. World Wide Web Consortium (W3C). https://www.w3.org/TR/rdf11-concepts/
[8]
J. Derrick, H. Bowman, and M. Stetsen. 1995. Maintaining cross-viewpoint consistency using Z. In IFIP International Conference on Open Distributed Processing. Chapman and Hall, 395–406. https://doi.org/10.1007/978-0-387-34882-7_32
[9]
Edsger W. Dijkstra. 1974. On the role of scientific thought (EWD 447). http://www.cs.utexas.edu/users/EWD/ewd04xx/EWD447.PDF
[10]
Steven D. Eppinger and Tyson R. Browning. 2012. Design Structure Matrix Methods and Applications. MIT Press. https://doi.org/10.7551/mitpress/8896.001.0001
[11]
Eric Evans. 2003. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley.
[12]
A. Finkelstein, J. Kramer, B. Nuseibeh, L. Finkelstein, and M. Goedicke. 1992. Viewpoints: A Framework for Integrating Multiple Perspectives in System Development. International Journal of Software Engineering and Knowledge Engineering, 2, 1 (1992), 31–57. https://doi.org/10.1142/S0218194092000038
[13]
Martin Fowler. [n. d.]. Microservices. https://martinfowler.com/articles/microservices.html Accessed: 2025-04-24
[14]
Gothinkster. 2023. RealWorld: The mother of all demo apps. https://github.com/gothinkster/realworld Accessed: 2025-04-24
[15]
GraphQL Foundation. 2021. GraphQL Specification. GraphQL Specification. https://spec.graphql.org/October2021/ Version: October 2021
[16]
Steve Harris and Andy Seaborne. 2013. SPARQL 1.1 Query Language. World Wide Web Consortium (W3C). https://www.w3.org/TR/sparql11-query/
[17]
William Harrison and Harold Ossher. 1993. Subject-Oriented Programming (A Critique of Pure Objects). In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA). https://doi.org/10.1145/165854.165932
[18]
Carl Hewitt. 2015. Actor Model of Computation: Scalable Robust Information Systems. https://doi.org/10.48550/arXiv.1008.1459 arxiv:1008.1459.
[19]
C.A.R. Hoare. 1985. Communicating Sequential Processes. Prentice Hall. isbn:9780131532892 http://www.usingcsp.com/cspbook.pdf
[20]
Daniel Jackson. 1995. Structuring Z Specifications with Views. ACM Transactions on Software Engineering and Methodology, https://doi.org/10.1145/226241.226249 TOSEM
[21]
Daniel Jackson. 2006. Software Abstractions: Logic, Language, and Analysis. MIT Press.
[22]
Daniel Jackson. 2021. The Essence of Software: Why Concepts Matter for Great Design. Princeton University Press. https://doi.org/10.2307/j.ctv1nj340p
[23]
Carlos E. Jimenez, John Yang, Alexander Wettig, Shunyu Yao, Kexin Pei, Ofir Press, and Karthik Narasimhan. 2024. SWE-bench: Can Language Models Resolve Real-World GitHub Issues? https://doi.org/10.48550/arXiv.2310.06770 arxiv:2310.06770.
[24]
Elizabeth Barnes Joel Becker, Nate Rush and David Rein. 2025. Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity. arXiv preprint, https://doi.org/10.48550/arXiv.2507.09089 arxiv:2507.09089.
[25]
Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. 1997. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP). https://doi.org/10.1007/BFb0053381
[26]
David Parnas. 1972. On the criteria to be used in decomposing systems into modules. Commun. ACM, 15, 12 (1972), 1053–1058. https://doi.org/10.1145/361598.361623
[27]
David Parnas. 1979. Designing Software for Ease of Extension and Contraction. IEEE Transactions on Software Engineering, SE-5, 2 (1979), April, 128–138. https://doi.org/10.1109/TSE.1979.234169
[28]
Michel Rauch and Immer.js contributors. 2023. Immer: Create the next immutable state by mutating the current one. https://github.com/immerjs/immer Accessed: 2025-04-21
[29]
Trygve Reenskaug, Per Wold, and Odd Arild Lehne. 1996. Working with Objects: The OOram Software Engineering Method. Manning/Prentice Hall. https://doi.org/10.17632/8tj2d5gh7b.1
[30]
W. P. Stevens, G. J. Myers, and L. L. Constantine. 1999. Structured Design. IBM Systems Journal, 38, 2&3 (1999), https://doi.org/10.1147/sj.132.0115
[31]
Kevin Sullivan and David Notkin. 1992. Reconciling environment integration and software evolution. ACM Transactions on Software Engineering and Methodology, 1, 4 (1992), July, 229–286. https://doi.org/10.1145/131736.131744
[32]
Ruben Taelman, Joachim Van Herwegen, Miel Vander Sande, and Ruben Verborgh. 2018. Comunica: a Modular SPARQL Query Engine for the Web. In Proceedings of the 17th International Semantic Web Conference. https://doi.org/10.1007/978-3-030-00668-6_15
[33]
Ruben Verborgh and RubenVerborgh/N3.js contributors. 2023. N3.js: Lightning fast, spec-compliant, streaming RDF for JavaScript. https://github.com/rdfjs/N3.js Accessed: 2025-04-24
[34]
Edward Yourdon and Larry Constantine. 1979. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice Hall.